diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f64ee4682a5d163b18ed0e371dd2a4b73b26edbb..0c1d461dc146c3ae6d683bbbbac9780022d99521 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='utf-8'?>
-<manifest android:hardwareAccelerated="true" android:versionCode="105003" android:versionName="1.5.3" package="fr.duniter.cesium" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
+<manifest android:hardwareAccelerated="true" android:versionCode="105004" android:versionName="1.5.4" package="fr.duniter.cesium" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
     <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
     <uses-permission android:name="android.permission.INTERNET" />
     <application android:hardwareAccelerated="true" android:icon="@mipmap/icon" android:label="@string/app_name" android:supportsRtl="true">
diff --git a/assets/www/api/index.html b/assets/www/api/index.html
index dddac1f7e8889296ba9392e7ef60e18c0a0ce0f3..d3c3c2d29ee94e797e56feab123060eba72a76b2 100644
--- a/assets/www/api/index.html
+++ b/assets/www/api/index.html
@@ -44,22 +44,22 @@
 
 
 <!-- ionic/angularjs js -->
-<script src="../lib/ionic/js/ionic.js"></script>
-<script src="../lib/angular/angular.js"></script>
-<script src="../lib/angular-animate/angular-animate.js"></script>
-<script src="../lib/angular-sanitize/angular-sanitize.js"></script>
-<script src="../lib/angular-ui-router/release/angular-ui-router.js"></script>
-<script src="../lib/ionic/js/ionic-angular.js"></script>
-<script src="../lib/ionic-material/dist/ionic.material.js"></script>
-<script src="../lib/angular-resource/angular-resource.js"></script>
-<script src="../lib/angular-translate/angular-translate.js"></script>
-<script src="../lib/angular-messages/angular-messages.js"></script>
+<script src="../lib/ionic/js/ionic.min.js"></script>
+<script src="../lib/angular/angular.min.js"></script>
+<script src="../lib/angular-animate/angular-animate.min.js"></script>
+<script src="../lib/angular-sanitize/angular-sanitize.min.js"></script>
+<script src="../lib/angular-ui-router/release/angular-ui-router.min.js"></script>
+<script src="../lib/ionic/js/ionic-angular.min.js"></script>
+<script src="../lib/ionic-material/dist/ionic.material.min.js"></script>
+<script src="../lib/angular-resource/angular-resource.min.js"></script>
+<script src="../lib/angular-translate/angular-translate.min.js"></script>
+<script src="../lib/angular-messages/angular-messages.min.js"></script>
 <script src="../lib/angular-api/angular-api.js"></script>
-<script src="../lib/angular-cache/dist/angular-cache.js"></script>
+<script src="../lib/angular-cache/dist/angular-cache.min.js"></script>
 <script src="../lib/angular-screenmatch/dist/angular-screenmatch.min.js"></script>
 <script src="../lib/angular-bind-notifier/dist/angular-bind-notifier.min.js"></script>
-<script src="../lib/angular-file-saver/dist/angular-file-saver.bundle.js"></script>
-<script src="../lib/ng-idle/angular-idle.js"></script>
+<script src="../lib/angular-file-saver/dist/angular-file-saver.bundle.min.js"></script>
+<script src="../lib/ng-idle/angular-idle.min.js"></script>
 <script src="../lib/angular-fullscreen/src/angular-fullscreen.js"></script>
 
   <script src="../js/vendor/base58.js" async></script>
diff --git a/assets/www/config.js b/assets/www/config.js
index 711ff9793fd59a3dfe1e4fb4da6eb329ec46752b..ccbe1f18150af3827cc491d988a2865451865ad1 100644
--- a/assets/www/config.js
+++ b/assets/www/config.js
@@ -32,7 +32,16 @@ angular.module("cesium.config", [])
 	},
 	"license": {
 		"fr-FR": "license/license_g1-fr-FR",
-		"en": "license/license_g1-en"
+		"en": "license/license_g1-en",
+		"es-ES": "license/license_g1-es-ES",
+		"eo-EO": "license/license_g1-eo-EO"
+	},
+	"feed": {
+		"jsonFeed": {
+			"fr-FR": "feed.json",
+			"en": "feed.json"
+		},
+		"maxContentLength": 650
 	},
 	"node": {
 		"host": "g1.duniter.fr",
@@ -86,8 +95,8 @@ angular.module("cesium.config", [])
 			"defaultCountry": "France"
 		}
 	},
-	"version": "1.5.3",
-	"build": "2020-01-27T13:59:04.792Z",
+	"version": "1.5.4",
+	"build": "2020-03-05T17:28:19.372Z",
 	"newIssueUrl": "https://git.duniter.org/clients/cesium-grp/cesium/issues/new"
 })
 
diff --git a/assets/www/dist_css/cesium-5d672210aa.css b/assets/www/dist_css/cesium-d05ee7c9bb.css
similarity index 65%
rename from assets/www/dist_css/cesium-5d672210aa.css
rename to assets/www/dist_css/cesium-d05ee7c9bb.css
index e9d43451179a6f4eda468c6224a2dc1a74917649..ff88c10c17b155e7ba121fe9fcc61e5fb9d30acf 100644
--- a/assets/www/dist_css/cesium-5d672210aa.css
+++ b/assets/www/dist_css/cesium-d05ee7c9bb.css
@@ -22,4 +22,4 @@
  * https://github.com/fians/Waves/blob/master/LICENSE 
  *
  */
-.ink{cursor:pointer}.button-clear,.button-fab,.button-flat,.button-raised,.button-text,.ink,.popup .button{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.popup .button{cursor:pointer}.ink-ripple{position:absolute;border-radius:50%;width:100px;height:100px;margin-top:-50px;margin-left:-50px;opacity:0;background-color:rgba(255,255,255,.4);-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;-o-transition:all .5s ease-out;transition:all .5s ease-out;-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;-o-transition-property:-o-transform,opacity;transition-property:transform,opacity;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);pointer-events:none}.ink-notransition{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}.button-clear,.button-fab,.button-flat,.button-raised,.button-text,.ink-button,.ink-circle{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.activated.button-text,.button-clear.activated,.button-clear:active,.button-fab.activated,.button-fab:active,.button-flat.activated,.button-flat:active,.button-raised.activated,.button-raised:active,.button-text:active,.ink-button.activated,.ink-button:active,.ink-circle.activated,.ink-circle:active,.ink.activated,.ink:active,.popup .button.activated,.popup .button:active{-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.button-clear,.button-fab,.button-fab:link,.button-fab:visited,.button-flat,.button-flat:link,.button-flat:visited,.button-raised,.button-raised:link,.button-raised:visited,.ink-button,.ink-button:link,.ink-button:visited{white-space:nowrap;vertical-align:middle;cursor:pointer;border:none;outline:none;font-size:14px;text-align:center;text-decoration:none;z-index:1}.button-clear:link,.button-clear:visited,.button-text,.button-text:link,.button-text:visited,.ink-button-input{white-space:nowrap;vertical-align:middle;cursor:pointer;border:none;outline:none;text-align:center;text-decoration:none;z-index:1}.button-clear:link,.button-clear:visited,.button-text:link,.button-text:visited,.ink-button-input{font-size:14px}.ink-button{padding:10px 15px;border-radius:2px}.ink-button-input{margin:0;padding:10px 15px}.ink-input-wrapper{border-radius:2px;vertical-align:bottom}.ink-input-wrapper.ink-button{padding:0}.ink-input-wrapper .ink-button-input{position:relative;top:0;left:0;z-index:1}.ink-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%}.ink-float{-webkit-mask-image:none;-webkit-box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12);box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12)}.ink-float:active{-webkit-box-shadow:0 8px 20px 1px rgba(0,0,0,.3);box-shadow:0 8px 20px 1px rgba(0,0,0,.3)}.ink-block{display:block}.ink-ripple{z-index:0}.button-clear .ink-ripple,.button-text .ink-ripple,.ink-dark .ink-ripple,.list .ink-ripple,[class$="-100"]>.ink-ripple,[class$=-clear]>.ink-ripple,[class$=-light]>.ink-ripple,[class$=-stable]>.ink-ripple{background-color:rgba(0,0,0,.2)}.tab-item{position:relative}*{font-family:"RobotoDraft","Roboto","Helvetica Neue","Segoe UI",sans-serif}.rounded{border-radius:4px}a{cursor:pointer}.has-header.expanded{top:76px}.bar{border-bottom:none;padding:0}.bar .button{min-height:44px;min-width:44px;max-width:48px;margin-bottom:0;max-height:44px;width:48px}.bar .title+.buttons.buttons-right{top:0}.title-left,.title-right,.title.title-left,.title.title-right{left:48px}.button-positive,.positive-bg{background-color:#3f51b5;color:#fff}.button-text{background-color:#3f51b5}.activated.button-text,.bar .activated.button-text,.bar .button-positive,.bar .button-positive.activated,.bar .button-positive:active,.bar .button-positive:hover,.bar .button-text,.bar .button-text:active,.bar .button-text:hover,.bar-positive,.bar-positive.activated,.bar-positive:active,.bar-positive:hover,.button-bar-positive,.button-bar-positive.activated,.button-bar-positive:active,.button-bar-positive:hover,.button-positive.activated,.button-positive:active,.button-positive:hover,.button-text:active,.button-text:hover,.header-positive,.header-positive.activated,.header-positive:active,.header-positive:hover,.positive-bg.activated,.positive-bg:active,.positive-bg:hover,.positive-border,.positive-border.activated,.positive-border:active,.positive-border:hover{background-color:#3f51b5;color:#fff}.bar .button-positive-900,.bar .button-positive-900.activated,.bar .button-positive-900:active,.bar .button-positive-900:hover,.bar-positive-900,.bar-positive-900.activated,.bar-positive-900:active,.bar-positive-900:hover,.button-bar-positive-900,.button-bar-positive-900.activated,.button-bar-positive-900:active,.button-bar-positive-900:hover,.button-positive-900,.button-positive-900.activated,.button-positive-900:active,.button-positive-900:hover,.header-positive-900,.header-positive-900.activated,.header-positive-900:active,.header-positive-900:hover,.positive-900-bg,.positive-900-bg.activated,.positive-900-bg:active,.positive-900-bg:hover,.positive-900-border,.positive-900-border.activated,.positive-900-border:active,.positive-900-border:hover{background-color:#1a237e;color:#fff}.bar .button-positive-100,.bar .button-positive-100.activated,.bar .button-positive-100:active,.bar .button-positive-100:hover,.bar-positive-100,.bar-positive-100.activated,.bar-positive-100:active,.bar-positive-100:hover,.button-bar-positive-100,.button-bar-positive-100.activated,.button-bar-positive-100:active,.button-bar-positive-100:hover,.button-positive-100,.button-positive-100.activated,.button-positive-100:active,.button-positive-100:hover,.header-positive-100,.header-positive-100.activated,.header-positive-100:active,.header-positive-100:hover,.positive-100-bg,.positive-100-bg.activated,.positive-100-bg:active,.positive-100-bg:hover,.positive-100-border,.positive-100-border.activated,.positive-100-border:active,.positive-100-border:hover{background-color:#c5cae9;color:#fff}.bar .button-calm,.bar .button-calm.activated,.bar .button-calm:active,.bar .button-calm:hover,.bar-calm,.bar-calm.activated,.bar-calm:active,.bar-calm:hover,.button-bar-calm,.button-bar-calm.activated,.button-bar-calm:active,.button-bar-calm:hover,.button-calm,.button-calm.activated,.button-calm:active,.button-calm:hover,.calm-bg,.calm-bg.activated,.calm-bg:active,.calm-bg:hover,.calm-border,.calm-border.activated,.calm-border:active,.calm-border:hover,.header-calm,.header-calm.activated,.header-calm:active,.header-calm:hover{background-color:#2196f3;color:#fff}.bar .button-calm-900,.bar .button-calm-900.activated,.bar .button-calm-900:active,.bar .button-calm-900:hover,.bar-calm-900,.bar-calm-900.activated,.bar-calm-900:active,.bar-calm-900:hover,.button-bar-calm-900,.button-bar-calm-900.activated,.button-bar-calm-900:active,.button-bar-calm-900:hover,.button-calm-900,.button-calm-900.activated,.button-calm-900:active,.button-calm-900:hover,.calm-900-bg,.calm-900-bg.activated,.calm-900-bg:active,.calm-900-bg:hover,.calm-900-border,.calm-900-border.activated,.calm-900-border:active,.calm-900-border:hover,.header-calm-900,.header-calm-900.activated,.header-calm-900:active,.header-calm-900:hover{background-color:#0d47a1;color:#fff}.bar .button-calm-100,.bar .button-calm-100.activated,.bar .button-calm-100:active,.bar .button-calm-100:hover,.bar-calm-100,.bar-calm-100.activated,.bar-calm-100:active,.bar-calm-100:hover,.button-bar-calm-100,.button-bar-calm-100.activated,.button-bar-calm-100:active,.button-bar-calm-100:hover,.button-calm-100,.button-calm-100.activated,.button-calm-100:active,.button-calm-100:hover,.calm-100-bg,.calm-100-bg.activated,.calm-100-bg:active,.calm-100-bg:hover,.calm-100-border,.calm-100-border.activated,.calm-100-border:active,.calm-100-border:hover,.header-calm-100,.header-calm-100.activated,.header-calm-100:active,.header-calm-100:hover{background-color:#bbdefb;color:#fff}.bar .button-royal,.bar .button-royal.activated,.bar .button-royal:active,.bar .button-royal:hover,.bar-royal,.bar-royal.activated,.bar-royal:active,.bar-royal:hover,.button-bar-royal,.button-bar-royal.activated,.button-bar-royal:active,.button-bar-royal:hover,.button-royal,.button-royal.activated,.button-royal:active,.button-royal:hover,.header-royal,.header-royal.activated,.header-royal:active,.header-royal:hover,.royal-bg,.royal-bg.activated,.royal-bg:active,.royal-bg:hover,.royal-border,.royal-border.activated,.royal-border:active,.royal-border:hover{background-color:#673ab7;color:#fff}.bar .button-royal-900,.bar .button-royal-900.activated,.bar .button-royal-900:active,.bar .button-royal-900:hover,.bar-royal-900,.bar-royal-900.activated,.bar-royal-900:active,.bar-royal-900:hover,.button-bar-royal-900,.button-bar-royal-900.activated,.button-bar-royal-900:active,.button-bar-royal-900:hover,.button-royal-900,.button-royal-900.activated,.button-royal-900:active,.button-royal-900:hover,.header-royal-900,.header-royal-900.activated,.header-royal-900:active,.header-royal-900:hover,.royal-900-bg,.royal-900-bg.activated,.royal-900-bg:active,.royal-900-bg:hover,.royal-900-border,.royal-900-border.activated,.royal-900-border:active,.royal-900-border:hover{background-color:#311b92;color:#fff}.bar .button-royal-100,.bar .button-royal-100.activated,.bar .button-royal-100:active,.bar .button-royal-100:hover,.bar-royal-100,.bar-royal-100.activated,.bar-royal-100:active,.bar-royal-100:hover,.button-bar-royal-100,.button-bar-royal-100.activated,.button-bar-royal-100:active,.button-bar-royal-100:hover,.button-royal-100,.button-royal-100.activated,.button-royal-100:active,.button-royal-100:hover,.header-royal-100,.header-royal-100.activated,.header-royal-100:active,.header-royal-100:hover,.royal-100-bg,.royal-100-bg.activated,.royal-100-bg:active,.royal-100-bg:hover,.royal-100-border,.royal-100-border.activated,.royal-100-border:active,.royal-100-border:hover{background-color:#d1c4e9;color:#fff}.balanced-bg,.balanced-bg.activated,.balanced-bg:active,.balanced-bg:hover,.balanced-border,.balanced-border.activated,.balanced-border:active,.balanced-border:hover,.bar .button-balanced,.bar .button-balanced.activated,.bar .button-balanced:active,.bar .button-balanced:hover,.bar-balanced,.bar-balanced.activated,.bar-balanced:active,.bar-balanced:hover,.button-balanced,.button-balanced.activated,.button-balanced:active,.button-balanced:hover,.button-bar-balanced,.button-bar-balanced.activated,.button-bar-balanced:active,.button-bar-balanced:hover,.header-balanced,.header-balanced.activated,.header-balanced:active,.header-balanced:hover{background-color:#4caf50;color:#fff}.balanced-900-bg,.balanced-900-bg.activated,.balanced-900-bg:active,.balanced-900-bg:hover,.balanced-900-border,.balanced-900-border.activated,.balanced-900-border:active,.balanced-900-border:hover,.bar .button-balanced-900,.bar .button-balanced-900.activated,.bar .button-balanced-900:active,.bar .button-balanced-900:hover,.bar-balanced-900,.bar-balanced-900.activated,.bar-balanced-900:active,.bar-balanced-900:hover,.button-balanced-900,.button-balanced-900.activated,.button-balanced-900:active,.button-balanced-900:hover,.button-bar-balanced-900,.button-bar-balanced-900.activated,.button-bar-balanced-900:active,.button-bar-balanced-900:hover,.header-balanced-900,.header-balanced-900.activated,.header-balanced-900:active,.header-balanced-900:hover{background-color:#1b5e20;color:#fff}.balanced-100-bg,.balanced-100-bg.activated,.balanced-100-bg:active,.balanced-100-bg:hover,.balanced-100-border,.balanced-100-border.activated,.balanced-100-border:active,.balanced-100-border:hover,.bar .balanced-100-bg:hover,.bar .button-balanced-100,.bar .button-balanced-100.activated,.bar .button-balanced-100:active,.bar-balanced-100,.bar-balanced-100.activated,.bar-balanced-100:active,.bar-balanced-100:hover,.button-balanced-100,.button-balanced-100.activated,.button-balanced-100:active,.button-balanced-100:hover,.button-bar-balanced-100,.button-bar-balanced-100.activated,.button-bar-balanced-100:active,.button-bar-balanced-100:hover,.header-balanced-100,.header-balanced-100.activated,.header-balanced-100:active,.header-balanced-100:hover{background-color:#c8e6c9;color:#fff}.bar .button-energized,.bar .button-energized.activated,.bar .button-energized:active,.bar .button-energized:hover,.bar-energized,.bar-energized.activated,.bar-energized:active,.bar-energized:hover,.button-bar-energized,.button-bar-energized.activated,.button-bar-energized:active,.button-bar-energized:hover,.button-energized,.button-energized.activated,.button-energized:active,.button-energized:hover,.energized-bg,.energized-bg.activated,.energized-bg:active,.energized-bg:hover,.energized-border,.energized-border.activated,.energized-border:active,.energized-border:hover,.header-energized,.header-energized.activated,.header-energized:active,.header-energized:hover{background-color:#ff9800;color:#fff}.bar .button-energized-900,.bar .button-energized-900.activated,.bar .button-energized-900:active,.bar .button-energized-900:hover,.bar-energized-900,.bar-energized-900.activated,.bar-energized-900:active,.bar-energized-900:hover,.button-bar-energized-900,.button-bar-energized-900.activated,.button-bar-energized-900:active,.button-bar-energized-900:hover,.button-energized-900,.button-energized-900.activated,.button-energized-900:active,.button-energized-900:hover,.energized-900-bg,.energized-900-bg.activated,.energized-900-bg:active,.energized-900-bg:hover,.energized-900-border,.energized-900-border.activated,.energized-900-border:active,.energized-900-border:hover,.header-energized-900,.header-energized-900.activated,.header-energized-900:active,.header-energized-900:hover{background-color:#e65100;color:#fff}.bar .button-energized-100,.bar .button-energized-100.activated,.bar .button-energized-100:active,.bar .button-energized-100:hover,.bar-energized-100,.bar-energized-100.activated,.bar-energized-100:active,.bar-energized-100:hover,.button-bar-energized-100,.button-bar-energized-100.activated,.button-bar-energized-100:active,.button-bar-energized-100:hover,.button-energized-100,.button-energized-100.activated,.button-energized-100:active,.button-energized-100:hover,.energized-100-bg,.energized-100-bg.activated,.energized-100-bg:active,.energized-100-bg:hover,.energized-100-border,.energized-100-border.activated,.energized-100-border:active,.energized-100-border:hover,.header-energized-100,.header-energized-100.activated,.header-energized-100:active,.header-energized-100:hover,.modal.modal-help .activated.row.selected,.modal.modal-help .row.selected,.modal.modal-help .row.selected:active,.modal.modal-help .row.selected:hover{background-color:#ffe0b2}.assertive-bg,.assertive-bg.activated,.assertive-bg:active,.assertive-bg:hover,.assertive-border,.assertive-border.activated,.assertive-border:active,.assertive-border:hover,.bar .button-assertive,.bar .button-assertive.activated,.bar .button-assertive:active,.bar .button-assertive:hover,.bar-assertive,.bar-assertive.activated,.bar-assertive:active,.bar-assertive:hover,.button-assertive,.button-assertive.activated,.button-assertive:active,.button-assertive:hover,.button-bar-assertive,.button-bar-assertive.activated,.button-bar-assertive:active,.button-bar-assertive:hover,.header-assertive,.header-assertive.activated,.header-assertive:active,.header-assertive:hover{background-color:#f44336;color:#fff}.assertive-900-bg,.assertive-900-bg.activated,.assertive-900-bg:active,.assertive-900-bg:hover,.assertive-900-border,.assertive-900-border.activated,.assertive-900-border:active,.assertive-900-border:hover,.bar .button-assertive-900,.bar .button-assertive-900.activated,.bar .button-assertive-900:active,.bar .button-assertive-900:hover,.bar-assertive-900,.bar-assertive-900.activated,.bar-assertive-900:active,.bar-assertive-900:hover,.button-assertive-900,.button-assertive-900.activated,.button-assertive-900:active,.button-assertive-900:hover,.button-bar-assertive-900,.button-bar-assertive-900.activated,.button-bar-assertive-900:active,.button-bar-assertive-900:hover,.header-assertive-900,.header-assertive-900.activated,.header-assertive-900:active,.header-assertive-900:hover{background-color:#b71c1c;color:#fff}.assertive-100-bg,.assertive-100-bg.activated,.assertive-100-bg:active,.assertive-100-bg:hover,.assertive-100-border,.assertive-100-border.activated,.assertive-100-border:active,.assertive-100-border:hover,.bar .button-assertive-100,.bar .button-assertive-100.activated,.bar .button-assertive-100:active,.bar .button-assertive-100:hover,.bar-assertive-100,.bar-assertive-100.activated,.bar-assertive-100:active,.bar-assertive-100:hover,.button-assertive-100,.button-assertive-100.activated,.button-assertive-100:active,.button-assertive-100:hover,.button-bar-assertive-100,.button-bar-assertive-100.activated,.button-bar-assertive-100:active,.button-bar-assertive-100:hover,.header-assertive-100,.header-assertive-100.activated,.header-assertive-100:active,.header-assertive-100:hover{background-color:#ffcdd2;color:#fff}.bar .button-stable,.bar .button-stable.activated,.bar .button-stable:active,.bar .button-stable:hover,.bar-stable,.bar-stable.activated,.bar-stable:active,.bar-stable:hover,.button-bar-stable,.button-bar-stable.activated,.button-bar-stable:active,.button-bar-stable:hover,.button-stable,.button-stable.activated,.button-stable:active,.button-stable:hover,.header-stable,.header-stable.activated,.header-stable:active,.header-stable:hover,.stable-bg,.stable-bg.activated,.stable-bg:active,.stable-bg:hover,.stable-border,.stable-border.activated,.stable-border:active,.stable-border:hover{background-color:#e0e0e0;color:#fff}.icon-help,.icon-help *,.icon-help:active,.icon-help:active *,.icon-help:hover,.icon-help:hover *,.positive,.positive *,.positive-900,.positive-900 *,.positive-900:active,.positive-900:active *,.positive-900:hover,.positive-900:hover *,.positive:active,.positive:active *,.positive:hover,.positive:hover *,.text-editable:active:hover,.text-editable:active:hover *,.text-editable:hover,.text-editable:hover *{color:#3f51b5}.positive-100,.positive-100 *,.positive-100:active,.positive-100:active *,.positive-100:hover,.positive-100:hover *{color:#c5cae9}.calm-900,.calm-900 *,.calm-900:active,.calm-900:active *,.calm-900:hover,.calm-900:hover *{color:#0d47a1}.calm-100,.calm-100 *,.calm-100:active,.calm-100:active *,.calm-100:hover,.calm-100:hover *{color:#bbdefb}.royal,.royal *,.royal:active,.royal:active *,.royal:hover,.royal:hover *{color:#673ab7}.royal-900,.royal-900 *,.royal-900:active,.royal-900:active *,.royal-900:hover,.royal-900:hover *{color:#311b92}.royal-100,.royal-100 *,.royal-100:active,.royal-100:active *,.royal-100:hover,.royal-100:hover *{color:#d1c4e9}.balanced,.balanced *,.balanced:active,.balanced:active *,.balanced:hover,.balanced:hover *{color:#4caf50}.balanced-900,.balanced-900 *,.balanced-900:active,.balanced-900:active *,.balanced-900:hover,.balanced-900:hover *{color:#1b5e20}.balanced-100,.balanced-100 *,.balanced-100:active,.balanced-100:active *,.balanced-100:hover,.balanced-100:hover *{color:#c8e6c9}.energized,.energized *,.energized:active,.energized:active *,.energized:hover,.energized:hover *{color:#ff9800}.energized-900,.energized-900 *,.energized-900:active,.energized-900:active *,.energized-900:hover,.energized-900:hover *{color:#e65100}.energized-100,.energized-100 *,.energized-100:active,.energized-100:active *,.energized-100:hover,.energized-100:hover *{color:#ffe0b2}.assertive,.assertive *,.assertive:active,.assertive:active *,.assertive:hover,.assertive:hover *,.icon-alert,.icon-alert *,.icon-alert:active,.icon-alert:active *,.icon-alert:hover,.icon-alert:hover *{color:#f44336}.assertive-900,.assertive-900 *,.assertive-900:active,.assertive-900:active *,.assertive-900:hover,.assertive-900:hover *{color:#b71c1c}.assertive-100,.assertive-100 *,.assertive-100:active,.assertive-100:active *,.assertive-100:hover,.assertive-100:hover *{color:#ffcdd2}.stable,.stable *,.stable:active,.stable:active *,.stable:hover,.stable:hover *{color:#e0e0e0}.light,.light *,.light:active,.light:active *,.light:hover,.light:hover *{color:#fff}.button-text-dark,.button-text-dark *,.button-text-dark:active,.button-text-dark:active *,.button-text-dark:hover,.button-text-dark:hover *,.dark,.dark *,.dark:active,.dark:active *,.dark:hover,.dark:hover *{color:#444}.light-border{border-color:#ddd}.navbar-default .navbar-nav>li>a{margin:0;padding-right:26px;padding-left:26px;border-top:3px solid transparent;color:#bfd5c9;opacity:1}.mid-bar{padding:16px}.mid-bar h1,.mid-bar h2,.mid-bar h3,.mid-bar h4,.mid-bar h5,.mid-bar h6{color:#fff;margin-bottom:5px}.mid-bar p{color:rgba(255,255,255,.5);margin-bottom:0}.card>.item-avatar,.item-avatar,.item-avatar .item-content,.item-avatar-left,.item-avatar-left .item-content{padding-left:95px}.item,.item-complex .item-content,.item-radio .item-content,.menu{background-color:transparent}.bar .button.button-clear,.bar .button.button-text,.dark-bg h2,.item.dark-bg h2,.popup-container.confirm .popup-head h1,.popup-container.confirm .popup-head h2,.popup-container.confirm .popup-head h3,.popup-container.confirm .popup-head h5,.popup-container.confirm .popup-head h6,.popup-container.confirm .popup-head p,.popup-container.warning .popup-head h1,.popup-container.warning .popup-head h2,.popup-container.warning .popup-head h3,.popup-container.warning .popup-head h5,.popup-container.warning .popup-head h6,.popup-container.warning .popup-head p{color:#fff}.tabs-striped .tabs{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}#menu .footer .bar .button.button-icon .icon-help:before,.bar .button.button-icon #menu .footer .icon-help:before,.bar .button.button-icon .icon-alert:before,.bar .button.button-icon .icon-help:before,.bar .button.button-icon .icon:before,.bar .button.button-icon.icon-left:before,.bar .button.button-icon.icon-right:before,.bar .button.button-icon:before{vertical-align:top;font-size:24px}.button-icon.button.activated,.button-icon.button.active{opacity:initial}.popover,.popover.ng-enter,.popover.ng-leave{transition:transform .3s ease-in-out,opacity .3s ease-in-out}.popover{position:absolute;right:8px;top:8px}.popover.ng-enter,.popover.ng-leave{opacity:1;transform:translate(0,-14px) scale(1,1)}.popover,.popover.ng-leave{opacity:0;transform:translate(50%,-50%) scale(0,0)}.button{overflow:hidden!important}@font-face{font-family:"Cesiumicons";src:url(../fonts/cesiumicons.eot?v=1.2);src:url(../fonts/cesiumicons.eot?v=1.2#iefix) format("embedded-opentype"),url(../fonts/cesiumicons.ttf?v=1.2) format("truetype"),url(../fonts/cesiumicons.woff?v=1.2) format("woff"),url(../fonts/cesiumicons.woff) format("woff"),url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE+R2VuZXJhdGVkIGJ5IEljb01vb248L21ldGFkYXRhPgo8ZGVmcz4KPGZvbnQgaWQ9ImNlc2l1bWljb25zIiBob3Jpei1hZHYteD0iMTAyNCI+Cjxmb250LWZhY2UgdW5pdHMtcGVyLWVtPSIxMDI0IiBhc2NlbnQ9Ijk2MCIgZGVzY2VudD0iLTY0IiAvPgo8bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iMTAyNCIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwOyIgaG9yaXotYWR2LXg9IjUxMiIgZD0iIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwMDsiIGQ9Ik03MDQuNjMxIDU3MS4xMjhjLTg4LjYxMy0xNDEuNDA5LTIyMC40MDMtMjYzLjQwOC0zODUuNTIxLTMwNS40NzMtNjcuMjUyLTE4LjQ5My0xMzcuMTEyLTI1LjgyMi0yMDYuNzA1LTI3LjAyMiA4NS41NDktMTYzLjA5NSAyNzUuODEtMjYyLjI3MiA0NTguNTQ1LTIzNy45NSAxODEuMTY2IDE5LjA3NiAzNDEuNjYyIDE1Ny4yMTUgMzg4LjMzOCAzMzMuMTYyLTU0LjYwMSAxMDMuOTI0LTE0MS40OSAxOTcuODc0LTI1NC42NTYgMjM3LjI4M3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTAxOyIgZD0iTTcwNS45MzcgNTcyLjA4OGMtMTYuNzU2LTExMS44MTUtODUuMDg2LTIwNy4yLTEwNy4yNjctMzE3LjIyMS05LjE4OC01MS41NDEgMjYuNzg2LTExMC42NDItMTQuNTc5LTE1NS41MTQtNDYuMjEtNTIuNDAyLTExOC45MDctNjUuMzc5LTE4MS45MzgtODcuNDY2IDE3Ny43My00Ny45MSAzNzkuNjYgMjQuMjE1IDQ4NS45ODIgMTc0Ljc4IDUwLjU1IDY5LjExNiA4MC45OTIgMTUyLjY4OSA4Ni42OTYgMjM4LjEyNS00Ni4wODUgOS40ODMtNjkuNDM2IDU1LjAyMC0xMTAuNTU2IDc0LjIwMS00OS45MTcgMjkuOTkyLTEwMy41NzEgNTMuNTE0LTE1OC4zMzkgNzMuMDk1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDI7IiBkPSJNNzA0LjQyMiA1NjMuNGMtMjMuNzg2LTUxLjQwOC0yNi40MzYtMTA5Ljc1Ny01NC4wODQtMTU5LjcyNi03LjIxMS0zMi45MDktNDEuMDkxLTg0LjI4OC0yOS40OTgtMTA2LjQ4OSAxMDEuNTktMTYuNTQyIDIwMy4xODEtMzMuMDg1IDMwNC43NzEtNDkuNjI3IDE4LjI3OCAzNS42NDkgMzEuODQ1IDczLjcxMSA0MC4yMDEgMTEyLjg5NC03My44NjggNzkuMjY5LTE1MC40NzEgMTYzLjQyNi0yNTUuMzU4IDIwMC42MzVsLTYuMDMyIDIuMzE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDM7IiBkPSJNNjY4LjYxNiA0NDUuNzk0Yy0yMC45ODMtMzEuNjc5LTI3LjI0NS03MC40MDgtNDQuMTA0LTEwNC40MjYtMTYuMjIxLTM1LjY4OS01MS40MTUtMTE5LjQ3MiAxOS42ODQtMTA5Ljg5IDUwLjQ1OSAyNC42NTQgOTUuMDUwLTEzLjM3OSAxNDUuODE5LTE2LjkyOSA0MC4zMTctNS41NjEgODIuMTM3LTQuNjY1IDEyMS4yOTUgNy4yMDEgMTQuOTgzIDMxLjcxNiA1MC42ODYgODIuNTk0IDM4LjcyNiAxMDguMzA1LTQ4LjU2MyA5Ljg2Ny05OS40NzMgMTMuODc5LTE0NS4yMTUgMzMuNjkgMTkuMjczIDQ1LjU5NS01NC45NzQgNTUuNDY1LTg5Ljk3NiA2OC44NC0xNS4zNDEgNC42MzctMzAuNzY1IDguOTk4LTQ2LjIyOSAxMy4yMDh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwNDsiIGQ9Ik02MDcuNzE0IDE2MC44NzNjLTMwLjE4My04NS4wMDItMTIzLjE4Ni0xMTkuOTQ4LTIwMS44MzItMTQ1Ljk0MyA1LjAyMC0xMS4xODYgNzEuMTg2LTE2LjMyNSAxMDAuNzg3LTE3LjMyNiAxMTcuMTE1LTMuMDY3IDIzNC41NDIgNDEuMDg2IDMyMC40OCAxMjAuNzUyLTc0LjgzMSAyLjgzNC0xNDkuNTQ5IDE0Ljc4NC0yMTkuNDM1IDQyLjUxN3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA1OyIgZD0iTTU5OC40ODUgMjY4LjUzNGMtNC4xNzQtNDIuNzY0LTI1LjE4OC0xMTUuOTM2IDM0LjAyOC0xMjguNDk0IDU4LjUzNy0xNC41ODEgMTE5LjQzNC0xOC41MTEgMTc3LjA2Ny0zNy4wMjAgNDUuMjAxIDM3LjQ0NyA4My4xNjcgODMuNTk5IDExMS4xMiAxMzUuMjE3LTEwNy45OC0xLjY4MS0yMTkuNDMxLTEwLjIwNC0zMjIuMjE1IDMwLjI5N3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA2OyIgZD0iTTYwNy4yMSA2MDAuNzhjMTguOTU5IDIuMjkgMzUuMjM0IDEuODk2IDI4LjI4OC0yMS43MiA1LjkzNS0xNC42NDQtMzYuNjE0LTE0LjYwNy0yOC4yODggMS44NDEgMCA2LjYyNiAwIDEzLjI1MiAwIDE5Ljg3OXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA3OyIgZD0iTTQ0NC41NDEgNzAyLjk2MmMyMS4wODggMy45NTggMzIuNjU0LTEuNjA0IDI2Ljk1NC0yNC40MzUtNS42NzMtMTEuMDcxLTM3LjY5Ny03LjY1LTI2Ljk1NCAxNC4wMzYgMCAzLjQ2NiAwIDYuOTMzIDAgMTAuMzk5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDg7IiBkPSJNNTA0LjUzMiA2ODEuNzhjMTMuNDc4LTMuMjk4IDQzLjIzNiA5LjY4MiAzNi43NTUtMTMuNTc1IDYuMjU0LTIzLjAzMC03LjA1Ny0yNi40OTYtMjcuMTUtMjMuMTgtMTguNTY3LTUuNDk2LTUuODcxIDI2LjUyNy05LjYwNSAzNi43NTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwOTsiIGQ9Ik01MDIuNTM5IDQxNy40MjZjMTguNzg2IDAgMzcuNTcyIDAgNTYuMzU4IDAgMC0xOC43ODYgMC0zNy41NzIgMC01Ni4zNTgtMTguNzg2IDAtMzcuNTcyIDAtNTYuMzU4IDAgMCAxOC43ODYgMCAzNy41NzIgMCA1Ni4zNTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYTsiIGQ9Ik01MDguODU2IDYzMC4xNTdjMTMuNDc4LTMuMjk4IDQzLjIzNiA5LjY4MiAzNi43NTUtMTMuNTc1IDYuMjU0LTIzLjAzMC03LjA1Ny0yNi40OTYtMjcuMTUtMjMuMTgtMTguNTY3LTUuNDk2LTUuODcxIDI2LjUyNy05LjYwNSAzNi43NTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYjsiIGQ9Ik01NjkuMTAzIDQ3NC4xNGMxOC45NyAxLjkyOSAzNi40OTIgMi40MDkgMjkuNDA0LTIxLjcyIDYuODk0LTE1LjkzMi0zNy4yMzUtMTUuODMzLTI5LjQwNCAwLjcyNSAwIDYuOTk4IDAgMTMuOTk2IDAgMjAuOTk0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MGM7IiBkPSJNNjI3LjA4NyA1MzEuNDAzYzE5LjM1IDcuODY5IDI5LjQwOC05LjU4MiAxOS4zMzgtMjIuMDUzLTIxLjU4My00LjE0Ny0yMC44MDEgMy4zODctMTkuMzM4IDIyLjA1M3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBkOyIgZD0iTTU0Ny42MjcgNTI1LjIzMWMxMy40NzgtMy4yOTggNDMuMjM2IDkuNjgyIDM2Ljc1NS0xMy41NzUgNi4yNTQtMjMuMDMwLTcuMDU3LTI2LjQ5Ni0yNy4xNS0yMy4xOC0xOC41NjctNS40OTYtNS44NzEgMjYuNTI3LTkuNjA1IDM2Ljc1NXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBlOyIgZD0iTTQwMy44MDIgMzM1LjAyNGMxNC40MjYtMS45OTggMzYuNzMgMy44ODIgNDYuNTU2LTIuNzE1LTIuMDIwLTE0LjMxNSAzLjkxMy0zNi41ODQtMi43MTUtNDYuMjkyLTEyLjg3OSAzLjU0NS00MC4wMTctNy4xNjktNDMuODQxIDUuNDMgMCAxNC41MjYgMCAyOS4wNTEgMCA0My41Nzd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwZjsiIGQ9Ik00NDcuOTA3IDQwNi4wODRjMTYuODM2LTAuMTE3IDM5LjY3NyA1Ljc3IDMxLjg1NC0xOS4wMDUgNy44Mi0yNC4zNTUtMTYuMDgwLTE2Ljk5LTMxLjg1NC0xNy43NSAwIDEyLjI1MiAwIDI0LjUwMyAwIDM2Ljc1NXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTEwOyIgZD0iTTUxNS4yOTEgNDY4LjU2N2MtMTguOTcxIDEuODk0LTM2LjYxMiAyLjQ1OS0yOS41MS0yMS43Mi0yLjUzOC0xMi45OSAzOS42MjctMTMuMzc0IDI5LjUxIDUuODkxIDAgNS4yNzYgMCAxMC41NTMgMCAxNS44Mjl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkxMTsiIGQ9Ik01NzguNDg2IDU3Mi44NjZjMjEuMjMyIDQuOTIgMjkuNDY5LTMuMTU2IDI0LjUwMy0yNC40MzUtMTMuMTA0LTguNTMyLTMyLjk1NS0yLjEwNi0yNC41MDMgMTkuMjAxdjUuMjM0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MTI7IiBkPSJNNjAxLjQ3MSA2NDEuNjg5Yy0xOC45NzEgMS44OTQtMzYuNjEyIDIuNDU5LTI5LjUxLTIxLjcyLTIuNTM4LTEyLjk5IDM5LjYyNy0xMy4zNzQgMjkuNTEgNS44OTEgMCA1LjI3NiAwIDEwLjU1MyAwIDE1LjgyOXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTE1OyIgZ2x5cGgtbmFtZT0iZGlhc3BvcmEiIGhvcml6LWFkdi14PSIxMDY0IiBkPSJNNjcwLjEgMjIuMTA5Yy0yOC42OTIgNDAuMDQ2LTczLjQ1OSAxMDIuNTcxLTk5LjQ4MiAxMzguOTQ1LTI2LjU3OSAzNy4xNTEtNDguMjAyIDY2LjE0Ni00OS4zNCA2Ni4xNjEtMS4xNjkgMC4wMTUtNDIuOTg2LTU2LjE5Ni05OC45MTItMTMyLjk2MS01My4yODgtNzMuMTQzLTk3LjMzLTEzMi45ODctOTcuODcyLTEzMi45ODctMS41MTYgMC0xOTIuMTE0IDEzNC4yNS0xOTIuNjA1IDEzNS42NjMtMC4yMzcgMC42ODQgNDIuODUgNjMuOTM1IDk1Ljc1MSAxNDAuNTU5czk2LjE4MiAxNDAuNTIzIDk2LjE4MiAxNDEuOTk5YzAgMi4zOC0xNy4xNDIgOC4zOTgtMTUxLjYwNSA1My4yMjYtODMuMzgzIDI3Ljc5OC0xNTIuNDIyIDUwLjg2MS0xNTMuNDIgNTEuMjUxLTEuMzg4IDAuNTQyIDYuNTUgMjcuMTAzIDMzLjc4MyAxMTMuMDMyIDE5LjU3OCA2MS43NzggMzYuMDQwIDExMi44MjggMzYuNTgxIDExMy40NDRzNzMuMDExLTIyLjU3NCAxNjEuMDQzLTUxLjUzNGM4OC4wMzMtMjguOTYgMTYwLjc5Ni01Mi42NTQgMTYxLjY5Ni01Mi42NTNzMS45MTkgMS4zNDggMi4yNjMgMi45OTRjMC4zNDQgMS42NDYgMS4xMDQgNzYuNjAxIDEuNjg4IDE2Ni41NjZzMS41NDYgMTY0LjMyMiAyLjEzNyAxNjUuMjM2YzAuODQ3IDEuMzA5IDI1LjU3NiAxLjY1OCAxMTYuMzY0IDEuNjQyIDYzLjQwOC0wLjAxMSAxMTUuOTQ4LTAuNDYgMTE2Ljc1Ni0wLjk5NyAxLjAxOC0wLjY3NyAyLjc1Ny01MC4xMzggNS42Ny0xNjEuMjI2IDQuNzgzLTE4Mi40MDggNC44ODYtMTg0Ljg1MiA3Ljc5NS0xODQuODUyIDEuMTI4IDAgNzAuODk2IDIzLjM1MyAxNTUuMDQxIDUxLjg5NnMxNTMuNCA1MS40MzMgMTUzLjkwMSA1MC44NjhjMS43LTEuOTE4IDcwLjcxNS0yMjYuNjAyIDY5Ljg2NS0yMjcuNDUxLTAuNDY0LTAuNDY0LTcwLjY5LTI0LjUxNC0xNTYuMDU2LTUzLjQ0NC0xMTcuNDMyLTM5Ljc5Ny0xNTUuMzE1LTUzLjE0My0xNTUuNjMzLTU0LjgyNy0wLjIzNS0xLjI0NCA0MC4xNDktNjEuNTk0IDkxLjQ5OS0xMzYuNzM3IDUwLjU1NS03My45ODEgOTEuNzMzLTEzNS4wNjIgOTEuNTA3LTEzNS43MzctMC41MjEtMS41NDktMTg5LjY4MS0xNDAuODg0LTE5MS4yNjMtMTQwLjg4NC0wLjY0MiAwLTI0LjY0MyAzMi43NjUtNTMuMzM1IDcyLjgxeiIgLz4KPC9mb250PjwvZGVmcz48L3N2Zz4=) format("svg");font-weight:400;font-style:normal}.cesiumicons,.cion,.ion-library:before,.ion-office:before,.ion-social-diaspora:before,.ion-social-duniter:before{display:inline-block;font-family:"Cesiumicons";speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-social-duniter:before{content:""}.ion-social-diaspora:before{content:""}.ion-office:before{content:""}.ion-library:before{content:""}.digit-keyboard{position:absolute;left:0;right:0;bottom:0;background:0 0;font-size:24px;z-index:5000}.digit-keyboard *{box-sizing:border-box}.digit-keyboard .digit-keyboard-row{display:flex;flex-direction:row;border-bottom:1px solid #333}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper{flex:1;text-align:center;position:relative;height:60px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{display:block;margin:0 auto;position:absolute;left:0;top:0;right:0;bottom:0;border-right:1px solid #333;border-left:1px solid #333;line-height:60px;-webkit-transition:background-color 100ms linear;-moz-transition:background-color 100ms linear;-o-transition:background-color 100ms linear;-ms-transition:background-color 100ms linear;transition:background-color 100ms linear}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{font-size:1em;vertical-align:middle;display:inline-block;line-height:normal;text-align:center;margin-top:-.4em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{font-size:9.6px;line-height:9.6px;height:9.6px;margin-top:-.25em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters.hidden,.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper.hidden{visibility:hidden}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-action{position:absolute;left:0;top:0;right:0;bottom:0;line-height:60px;font-size:24px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:first-child .digit-keyboard-key{border-right:none}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:last-child .digit-keyboard-key{border-left:none}.digit-keyboard .digit-keyboard-row:first-child{border-top:1px solid #333}.digit-keyboard .digit-keyboard-row:last-child{border:none}.digit-keyboard .digit-keyboard-row:last-child .digit-keyboard-key-wrapper .digit-keyboard-key{border-bottom:1px solid #333}.digit-keyboard.align-center{margin:0 auto}.digit-keyboard.align-left{margin-right:auto}.digit-keyboard.align-right{margin-left:auto}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{margin-top:-.3em}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{display:none}.digit-keyboard.round-buttons .digit-keyboard-row{border:none}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper{margin:10px 0 0}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{width:60px;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;border:1px solid #333}.digit-keyboard.round-buttons .digit-keyboard-row:last-child .digit-keyboard-key-wrapper{margin-bottom:10px}.digit-keyboard.round-buttons.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{height:57.6px;line-height:57.6px}.digit-keyboard.keyboard-light *{border-color:#e6e6e6!important}.digit-keyboard.keyboard-light .digit-keyboard-key{background:#fff;color:#444}.digit-keyboard.keyboard-light .digit-keyboard-key.activated{background:#e6e6e6}.digit-keyboard.keyboard-stable *{border-color:#dfdfdf!important}.digit-keyboard.keyboard-stable .digit-keyboard-key{background:#f8f8f8;color:#444}.digit-keyboard.keyboard-stable .digit-keyboard-key.activated{background:#dfdfdf}.digit-keyboard.keyboard-positive *{border-color:#0c60ee!important}.digit-keyboard.keyboard-positive .digit-keyboard-key{background:#387ef5;color:#fff}.digit-keyboard.keyboard-positive .digit-keyboard-key.activated{background:#0c60ee}.digit-keyboard.keyboard-calm *{border-color:#0a9dc7!important}.digit-keyboard.keyboard-calm .digit-keyboard-key{background:#11c1f3;color:#fff}.digit-keyboard.keyboard-calm .digit-keyboard-key.activated{background:#0a9dc7}.digit-keyboard.keyboard-balanced *{border-color:#28a54c!important}.digit-keyboard.keyboard-balanced .digit-keyboard-key{background:#33cd5f;color:#fff}.digit-keyboard.keyboard-balanced .digit-keyboard-key.activated{background:#28a54c}.digit-keyboard.keyboard-energized *{border-color:#e6b500!important}.digit-keyboard.keyboard-energized .digit-keyboard-key{background:#ffc900;color:#fff}.digit-keyboard.keyboard-energized .digit-keyboard-key.activated{background:#e6b500}.digit-keyboard.keyboard-assertive *{border-color:#e42112!important}.digit-keyboard.keyboard-assertive .digit-keyboard-key{background:#ef473a;color:#fff}.digit-keyboard.keyboard-assertive .digit-keyboard-key.activated{background:#e42112}.digit-keyboard.keyboard-royal *{border-color:#6b46e5!important}.digit-keyboard.keyboard-royal .digit-keyboard-key{background:#886aea;color:#fff}.digit-keyboard.keyboard-royal .digit-keyboard-key.activated{background:#6b46e5}.digit-keyboard.keyboard-dark *{border-color:#2b2b2b!important}.digit-keyboard.keyboard-dark .digit-keyboard-key{background:#444;color:#fff}.digit-keyboard.keyboard-dark .digit-keyboard-key.activated{background:#2b2b2b}.digit-keyboard.keyboard-opaque-black *{border-color:rgba(0,0,0,.75)!important}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key{background:rgba(0,0,0,.15);color:rgba(0,0,0,.75)}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key.activated{background:rgba(0,0,0,.25)}.digit-keyboard.keyboard-opaque-white *{border-color:rgba(255,255,255,.75)!important}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key{background:rgba(255,255,255,.15);color:rgba(255,255,255,.75)}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key.activated{background:rgba(255,255,255,.25)}.digit-keyboard.animation-pop,.digit-keyboard.animation-slide-up{-webkit-transition:transform linear 150ms;transition:transform linear 150ms}.digit-keyboard.animation-slide-up{transform:translate3d(0,0,0)}.digit-keyboard.animation-slide-up.ng-hide{transform:translate3d(0,100%,0)}.digit-keyboard.animation-pop{transform:scale3d(1,1,1)}.digit-keyboard.animation-pop.ng-hide{transform:scale3d(0,0,1)}@media screen and (max-width:400px){@-ms-viewport{width:320px}}@media screen and (max-width:767px){.hidden-xs{display:none!important;visibility:hidden!important}.padding-top-xs{padding-top:10px}}@media screen and (min-width:768px){.hidden-xs{display:inherit;visibility:visible}.row.hidden-xs{display:flex!important}.button.hidden-xs{display:inline-block}}@media screen and (max-width:767px){.visible-xs{display:inherit!important;visibility:visible!important}.button.visible-xs{display:inline-block!important}}@media screen and (min-width:768px){.visible-xs{display:none!important;visibility:hidden!important}}@media screen and (max-width:767px){.padding-xs{padding:16px!important}.no-padding-xs{padding:0!important}.no-margin-xs{margin:0!important}}@media screen and (min-width:768px) and (max-width:991px){.hidden-sm,.row-header.hidden-sm,.row.hidden-sm{display:none!important;visibility:hidden!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:400px!important;display:inline-block!important}.badge:empty{display:none!important}.padding-sm{padding:16px!important}.no-padding-sm{padding:0!important}.no-margin-sm{margin:0!important}}@media screen and (min-width:768px){.item-toggle .toggle{right:32px}}@media screen and (min-width:992px){.hidden-sm{display:inherit;visibility:visible}.row.hidden-sm{display:flex!important}.button.hidden-sm{display:flex}#menu .footer .popover-helptip .icon-bottom-center.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-bottom-left.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-bottom-right.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-center.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-left.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-right.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-center.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-left.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-right.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-center.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-left.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-right.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-center.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-center.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-left.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-left.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-right.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-right.icon-help .button.hidden-sm,.popover-helptip .icon-center.icon-alert .button.hidden-sm,.popover-helptip .icon-center.icon-help .button.hidden-sm,.popover-helptip .icon-left.icon-alert .button.hidden-sm,.popover-helptip .icon-left.icon-help .button.hidden-sm,.popover-helptip .icon-right.icon-alert .button.hidden-sm,.popover-helptip .icon-right.icon-help .button.hidden-sm,.popover-helptip .icon.icon-bottom-center .button.hidden-sm,.popover-helptip .icon.icon-bottom-left .button.hidden-sm,.popover-helptip .icon.icon-bottom-right .button.hidden-sm,.popover-helptip .icon.icon-center .button.hidden-sm,.popover-helptip .icon.icon-left .button.hidden-sm,.popover-helptip .icon.icon-right .button.hidden-sm,.pull-left .button.hidden-sm,.pull-right .button.hidden-sm{display:inline-block}}@media screen and (max-width:767px){.hidden-sm{display:inherit;visibility:visible}}@media screen and (max-width:991px){.visible-sm{display:inherit!important;visibility:visible!important}.button.visible-sm{display:inline-block!important}}@media screen and (min-width:992px){.visible-sm{display:none;visibility:hidden}}@media screen and (max-width:767px){.visible-sm{display:none;visibility:hidden}}@media screen and (max-width:991px){body{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEbSURBVDiNndMxK4ZRGMbx3zmRMrwvM2XCQFFik/IJpCw+hJLPgfIhLBY+gEEGJQPFwGZg9TIoBrfhOfSQHl7XeM7/fw3nvk+KCPWklEawgGlMlOMrnOMoIm6/8B8FKaWMFazhGQ94LFwbg+jHDvYi4u2zIKWUsIk5XNfE72ljHKfYiIjI5WIZMzhrkJW7s8IuQ8IwdnGDpwa5nhbGsJqxiNcuZIV9xWJWvXY3cr1kOmMSnX8UdDCZEb+RDYmMS9WMu80gLrNqw1r/KGjhPOMQvaol+Wva6MFhjoh7bGEUuVGrkgu7HRH3H8IBTjCLgQZ5oDAnxfnymRKWsI4X1Zw7NbGFPmxjP4qYfvjOQ5jHlGpHqCZ1geOIuKvz76QSW1T3cwmnAAAAAElFTkSuQmCC),auto}}@media screen and (min-width:992px){body{cursor:inherit}}@media screen and (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important;visibility:hidden!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:400px!important;display:block!important}.badge:empty{display:none!important}}@media screen and (min-width:1200px){.hidden-md{display:inherit;visibility:visible}}@media screen and (max-width:991px){.hidden-md{display:inherit;visibility:visible}}@media screen and (min-width:992px) and (max-width:1199px){.visible-md{display:inherit!important;visibility:visible!important}}@media screen and (min-width:1200px){.visible-md{display:none;visibility:hidden}}@media screen and (max-width:991px){.visible-md{display:none;visibility:hidden}}@media screen and (min-width:1200px){.hidden-lg{display:none!important;visibility:hidden!important}.visible-lg{display:inherit!important;visibility:visible!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:450px!important;display:block!important}.badge:empty{display:none!important}}@media screen and (max-width:1199px){.hidden-lg{display:inherit;visibility:visible}.visible-lg{display:none;visibility:hidden}}@media screen and (max-width:768px){.no-padding-xs{padding:inherit}}@media screen and (max-width:767px){.no-margin-xs{margin:0!important}}@media screen and (min-width:992px){.disable-user-behavior,.scroll,body,html{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important;-webkit-touch-callout:default!important;-webkit-tap-highlight-color:#387ef5;-webkit-user-drag:none!important;touch-action:auto!important;-ms-touch-action:auto!important;-ms-content-zooming:none!important}}@media screen and (max-width:844px){.hidden-nomenu{display:none!important;visibility:hidden!important}.visible-nomenu{display:inherit!important;visibility:visible!important}}@media screen and (min-width:845px){.hidden-nomenu{display:inherit;visibility:visible}.hidden-menu,.visible-nomenu{display:none!important;visibility:hidden!important}.visible-menu{display:inherit!important;visibility:visible!important}}@media screen and (max-width:844px){.hidden-menu{display:inherit;visibility:visible}.visible-menu{display:none;visibility:hidden}}body,html{position:absolute;top:0;left:0;height:100%;width:100%}.item.item-icon-right .item-select select,.item.item-icon-right.item-select select{right:48px;padding:0 20px 0 16px}.item.item-icon-right .item-select:after,.item.item-icon-right.item-select:after{right:56px}#unitPopover .item.selected,.popover-unit .item.selected{background-color:#f8f8f8}@media (max-width:767px){.popover-share{width:auto}}.ios ion-content{pointer-events:auto}.popover-share{height:110px}.popover-share .bar{box-shadow:none!important}.popover-share .bar-header{height:20px}.popover-share .bar-header .title{font-size:12px;font-weight:700;height:20px;line-height:19px;max-width:260px;margin:0 5px;text-align:left}.popover-share .bar-header span{font-size:10px;height:20px;position:absolute;right:0;top:0;margin:0 5px;display:block}.popover-share .has-header{top:20px}.popover-share .has-footer{bottom:40px}.popover-share .bar-footer{color:#387ef5;height:40px}.popover-share .bar-footer .button-icon{padding:0 5px}.popover-share .bar-footer .button-close{position:absolute;right:0;bottom:0}.popover-share .item{padding:5px}.popover-share .item input{border:1px solid gray;border-radius:3px;box-shadow:inset 0 1px 1px rgba(0,0,0,.3)}.popover-share .item input:focus{border-color:#387ef5;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.3),0 0 8px #08c}.popover-share .list .item{border-bottom:0!important}.popover-light .bar-footer,.popover-light .bar-header,.popover-notification .bar-footer,.popover-notification .bar-header{height:30px}.popover-light .bar-footer .title,.popover-light .bar-header .title,.popover-notification .bar-footer .title,.popover-notification .bar-header .title{color:#000;text-align:left;left:0!important;font-size:14px;line-height:30px}#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-right.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-help,.popover-helptip .popover-light .bar-footer .icon-center.icon-alert,.popover-helptip .popover-light .bar-footer .icon-center.icon-help,.popover-helptip .popover-light .bar-footer .icon-right.icon-alert,.popover-helptip .popover-light .bar-footer .icon-right.icon-help,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-center,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-right,.popover-helptip .popover-light .bar-footer .icon.icon-center,.popover-helptip .popover-light .bar-footer .icon.icon-right,.popover-helptip .popover-light .bar-header .icon-bottom-center.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-center.icon-help,.popover-helptip .popover-light .bar-header .icon-bottom-right.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-right.icon-help,.popover-helptip .popover-light .bar-header .icon-center.icon-alert,.popover-helptip .popover-light .bar-header .icon-center.icon-help,.popover-helptip .popover-light .bar-header .icon-right.icon-alert,.popover-helptip .popover-light .bar-header .icon-right.icon-help,.popover-helptip .popover-light .bar-header .icon.icon-bottom-center,.popover-helptip .popover-light .bar-header .icon.icon-bottom-right,.popover-helptip .popover-light .bar-header .icon.icon-center,.popover-helptip .popover-light .bar-header .icon.icon-right,.popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-help,.popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-help,.popover-helptip .popover-notification .bar-footer .icon-center.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-center.icon-help,.popover-helptip .popover-notification .bar-footer .icon-right.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-right.icon-help,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-center,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-right,.popover-helptip .popover-notification .bar-footer .icon.icon-center,.popover-helptip .popover-notification .bar-footer .icon.icon-right,.popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-help,.popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-help,.popover-helptip .popover-notification .bar-header .icon-center.icon-alert,.popover-helptip .popover-notification .bar-header .icon-center.icon-help,.popover-helptip .popover-notification .bar-header .icon-right.icon-alert,.popover-helptip .popover-notification .bar-header .icon-right.icon-help,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-center,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-right,.popover-helptip .popover-notification .bar-header .icon.icon-center,.popover-helptip .popover-notification .bar-header .icon.icon-right,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-center.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-right.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-center.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-right.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-center.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-right.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-footer .popover-helptip .icon-center.icon-alert,.popover-light .bar-footer .popover-helptip .icon-center.icon-help,.popover-light .bar-footer .popover-helptip .icon-right.icon-alert,.popover-light .bar-footer .popover-helptip .icon-right.icon-help,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-center,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-right,.popover-light .bar-footer .popover-helptip .icon.icon-center,.popover-light .bar-footer .popover-helptip .icon.icon-right,.popover-light .bar-footer .pull-right,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-center.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-right.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-center.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-right.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-center.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-right.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-header .popover-helptip .icon-center.icon-alert,.popover-light .bar-header .popover-helptip .icon-center.icon-help,.popover-light .bar-header .popover-helptip .icon-right.icon-alert,.popover-light .bar-header .popover-helptip .icon-right.icon-help,.popover-light .bar-header .popover-helptip .icon.icon-bottom-center,.popover-light .bar-header .popover-helptip .icon.icon-bottom-right,.popover-light .bar-header .popover-helptip .icon.icon-center,.popover-light .bar-header .popover-helptip .icon.icon-right,.popover-light .bar-header .pull-right,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-center.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-center.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-right.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon-center.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-footer .popover-helptip .icon-right.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-center,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-right,.popover-notification .bar-footer .popover-helptip .icon.icon-center,.popover-notification .bar-footer .popover-helptip .icon.icon-right,.popover-notification .bar-footer .pull-right,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-center.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-right.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-center.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-right.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-header .popover-helptip .icon-center.icon-alert,.popover-notification .bar-header .popover-helptip .icon-center.icon-help,.popover-notification .bar-header .popover-helptip .icon-right.icon-alert,.popover-notification .bar-header .popover-helptip .icon-right.icon-help,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-center,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-right,.popover-notification .bar-header .popover-helptip .icon.icon-center,.popover-notification .bar-header .popover-helptip .icon.icon-right,.popover-notification .bar-header .pull-right{margin-right:10px}#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-left.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-help,.popover-helptip .popover-light .bar-footer .icon-left.icon-alert,.popover-helptip .popover-light .bar-footer .icon-left.icon-help,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-left,.popover-helptip .popover-light .bar-footer .icon.icon-left,.popover-helptip .popover-light .bar-header .icon-bottom-left.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-left.icon-help,.popover-helptip .popover-light .bar-header .icon-left.icon-alert,.popover-helptip .popover-light .bar-header .icon-left.icon-help,.popover-helptip .popover-light .bar-header .icon.icon-bottom-left,.popover-helptip .popover-light .bar-header .icon.icon-left,.popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-help,.popover-helptip .popover-notification .bar-footer .icon-left.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-left.icon-help,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-left,.popover-helptip .popover-notification .bar-footer .icon.icon-left,.popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-help,.popover-helptip .popover-notification .bar-header .icon-left.icon-alert,.popover-helptip .popover-notification .bar-header .icon-left.icon-help,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-left,.popover-helptip .popover-notification .bar-header .icon.icon-left,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-left.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-left.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-left.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-footer .popover-helptip .icon-left.icon-alert,.popover-light .bar-footer .popover-helptip .icon-left.icon-help,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-left,.popover-light .bar-footer .popover-helptip .icon.icon-left,.popover-light .bar-footer .pull-left,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-left.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-left.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-left.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-header .popover-helptip .icon-left.icon-alert,.popover-light .bar-header .popover-helptip .icon-left.icon-help,.popover-light .bar-header .popover-helptip .icon.icon-bottom-left,.popover-light .bar-header .popover-helptip .icon.icon-left,.popover-light .bar-header .pull-left,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-left.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon-left.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-left,.popover-notification .bar-footer .popover-helptip .icon.icon-left,.popover-notification .bar-footer .pull-left,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-left.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-left.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-header .popover-helptip .icon-left.icon-alert,.popover-notification .bar-header .popover-helptip .icon-left.icon-help,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-left,.popover-notification .bar-header .popover-helptip .icon.icon-left,.popover-notification .bar-header .pull-left{margin-left:10px}.popover-light .bar-footer a,.popover-light .bar-header a,.popover-notification .bar-footer a,.popover-notification .bar-header a{font-size:14px;text-decoration:none;line-height:30px}.popover-light .has-footer,.popover-notification .has-footer{bottom:28px}.popover-light .has-header,.popover-notification .has-header{top:30px}.popover-light .item.unread,.popover-notification .item.unread{background-color:#ecf0f7!important;border-color:#dddfe2!important}.popover-light .item-avatar,.popover-notification .item-avatar{padding:12px 10px 8px 76px;min-height:80px!important}#menu .footer .popover-light .item-avatar h4 i.icon-help,#menu .footer .popover-notification .item-avatar h4 i.icon-help,#menu .footer .view-notification ion-item h4 i.icon-help,.popover-light .item-avatar h4 #menu .footer i.icon-help,.popover-light .item-avatar h4 i.icon,.popover-light .item-avatar h4 i.icon-alert,.popover-light .item-avatar h4 i.icon-help,.popover-notification .item-avatar h4 #menu .footer i.icon-help,.popover-notification .item-avatar h4 i.icon,.popover-notification .item-avatar h4 i.icon-alert,.popover-notification .item-avatar h4 i.icon-help,.view-notification ion-item h4 #menu .footer i.icon-help,.view-notification ion-item h4 i.icon,.view-notification ion-item h4 i.icon-alert,.view-notification ion-item h4 i.icon-help{font-size:18px!important;line-height:12px!important;vertical-align:middle!important}.popover-light .item-avatar .item-content .item-image,.popover-light .item-avatar .item-content>img:first-child,.popover-light .item-avatar .item-image,.popover-light .item-avatar>img:first-child,.popover-notification .item-avatar .item-content .item-image,.popover-notification .item-avatar .item-content>img:first-child,.popover-notification .item-avatar .item-image,.popover-notification .item-avatar>img:first-child{top:12px;left:10px}.popover-light .button.button-small,.popover-notification .button.button-small{height:30px;font-size:12px;padding:0 5px!important;line-height:30px}.popover-invitation,.popover-network,.popover-peer-info{width:420px}.popover-wallets .item-avatar{padding-left:95px!important}#menu .footer .popover-wallets .item-avatar .icon-help:last-child,.popover-wallets .item-avatar #menu .footer .icon-help:last-child,.popover-wallets .item-avatar .icon-alert:last-child,.popover-wallets .item-avatar .icon-help:last-child,.popover-wallets .item-avatar .icon:last-child{display:none}.popover-endpoints .item .badge,.popover-peer-info .item .badge{right:16px!important}.popover-endpoints .item .badge.badge-secondary,.popover-peer-info .item .badge.badge-secondary{top:35px!important}.popover-unit{height:108px;max-width:115px}.view-notification .item.unread{background-color:#ecf0f7!important;border-color:#dddfe2!important}.bar.bar-header .button.button-clear.button-icon i.ion-android-more-vertical,.bar.bar-header .button.button-clear.button-icon.ion-android-more-vertical,.bar.bar-header .button.button-icon.button-text i.ion-android-more-vertical,.bar.bar-header .button.button-icon.ion-android-more-vertical.button-text{padding-left:8px;padding-right:8px}#menu .footer .popover-helptip .bar .buttons.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-right.icon-help,.bar .buttons.pull-right,.bar .popover-helptip #menu .footer .buttons.icon-bottom-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-bottom-right.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon-bottom-center.icon-alert,.bar .popover-helptip .buttons.icon-bottom-center.icon-help,.bar .popover-helptip .buttons.icon-bottom-right.icon-alert,.bar .popover-helptip .buttons.icon-bottom-right.icon-help,.bar .popover-helptip .buttons.icon-center.icon-alert,.bar .popover-helptip .buttons.icon-center.icon-help,.bar .popover-helptip .buttons.icon-right.icon-alert,.bar .popover-helptip .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon.icon-bottom-center,.bar .popover-helptip .buttons.icon.icon-bottom-right,.bar .popover-helptip .buttons.icon.icon-center,.bar .popover-helptip .buttons.icon.icon-right,.bar .title+.button:last-child,.bar .title+.buttons,.bar>.button+.button:last-child,.bar>.button.pull-right,.popover-helptip #menu .footer .bar .buttons.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-right.icon-help,.popover-helptip .bar .buttons.icon-bottom-center.icon-alert,.popover-helptip .bar .buttons.icon-bottom-center.icon-help,.popover-helptip .bar .buttons.icon-bottom-right.icon-alert,.popover-helptip .bar .buttons.icon-bottom-right.icon-help,.popover-helptip .bar .buttons.icon-center.icon-alert,.popover-helptip .bar .buttons.icon-center.icon-help,.popover-helptip .bar .buttons.icon-right.icon-alert,.popover-helptip .bar .buttons.icon-right.icon-help,.popover-helptip .bar .buttons.icon.icon-bottom-center,.popover-helptip .bar .buttons.icon.icon-bottom-right,.popover-helptip .bar .buttons.icon.icon-center,.popover-helptip .bar .buttons.icon.icon-right,.popover-helptip .bar>.button.icon-bottom-center.icon-alert,.popover-helptip .bar>.button.icon-bottom-center.icon-help,.popover-helptip .bar>.button.icon-bottom-right.icon-alert,.popover-helptip .bar>.button.icon-bottom-right.icon-help,.popover-helptip .bar>.button.icon-center.icon-alert,.popover-helptip .bar>.button.icon-center.icon-help,.popover-helptip .bar>.button.icon-right.icon-alert,.popover-helptip .bar>.button.icon-right.icon-help,.popover-helptip .bar>.button.icon.icon-bottom-center,.popover-helptip .bar>.button.icon.icon-bottom-right,.popover-helptip .bar>.button.icon.icon-center,.popover-helptip .bar>.button.icon.icon-right{top:0!important}.bar.bar-header{padding-right:5px!important}.bar.bar-header .buttons-right span{margin-left:0!important}.bar .title+.buttons.buttons-right{right:5px}.button-icon{border-color:transparent;box-shadow:none!important}.button-small-padding{padding:0 7px!important}.button-text{color:gray!important;font-size:12px}.button-text.button-small{padding:5px 2px;font-size:12px!important}.button-text-positive{color:#387ef5!important}.button-text-stable{color:#b2b2b2!important}.popup-buttons .button.icon-left,.popup-buttons .button.icon-right{padding-left:32px!important;padding-right:32px!important;line-height:42px}.button-fab-bottom-left.has-footer,.button-fab-bottom-right.has-footer{bottom:64px!important}#home .logo{margin-top:15px;width:100%;background-position:center center;background-repeat:no-repeat}#home .center{float:none;text-align:center}#home .center,#home .center .button{display:inline-block}@media screen and (max-width:767px){#home .logo{height:96px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4AgRBwUf93UlLAAAIABJREFUeNrtnXd8VkX2/99z71PTewEChBK6VCnSAigIUlVgLeuqq7vq2nddf+vqV9a2rm0XXQvsVxF11Q0qJKFLCSBNqZESOoSEkoTwpD/t3vP7IyEkkEASsO3Xeb2e1+u5be7c85k5M/M558zAz+nn9HP6Of1gSf3UP2DSOxuuMUW1AbAoWfH5Pf33/ZTKb/lJS3+aaIba+mfN9A4FMOA24GcAGi4/0TI+IcIMJlxBlAbh4scGoOv4fVAOIAqXHQr8BeRl3I4nOZ1+CqaIMNkoDGqhVRT+ZOvQDwpAxhwCkkoomnmzKjhTc5NTJMhnR1UIAXYnIVJGuKYR6dHoa4libHI6VwHhUqlAS02rc5vptRdofs8JEfPAhd43OUV0QJ8zRXl/7gMamIalSgdTcZ+CXwOBgBtYpjTSMdipFC1N6ILCIbDT6mXVshvUwfryG71Q7BUVRJcUcHLzb5XvZwDqScNTZYipMQ1hWFVJj4vJGw47M5Zcqwrr6g+GXEVb5WGQMmmlwUm/TsbqsWp3XfkPSZNEzYIvY4zK+RmAmjV+nvQTjSeBsQAi7FXwFiHMyBim3A3NZ0SqxBqK0UAHUXztrWDx+imqouY9ySkSh5W45IlkTlPK/D8NQPJ86YrJC8C4qlP7gLUIZUojRgQNReiZ+0UoBE4oxXFMjiPkorMtY5wqODfvwenSyyKMFY1iND6rWet7p0tAEHQP0Nm5aIwq/j8HwLBUGSgaT4nJNUqhVZ32C2QrOI3iNEKRUpgihAGaQLiCSIF4ReWoqUY6DGxGsUlg1arNbGRaZe0eMk8SlMYvFRheO7PWjVJ5ZzrnfCcD8JOTMUkd/u8GYJpoyb25SgnXi3CzaEQowaqgHOEjMflrxkSOoJQ0JK8hPWiu6bQVoZuC7gJXAl0V1WDmK5iPMF88LM2YokpHpkmiT3GHKeQrgw8zJikXwLD50tvwUr76+rr7jZ80AIMXSrTu5zcCdwL7lRCCoj8gCDN0gyeXX69O1SfogT0J1PwEKRtBmARpGoHqw8ljJC8rSRtwz3Lp/7ts0bAKGLqJQxSdTKE3igEKoqu+1o3wmTL558qJamNyqvRB8VsMFmRMUvMABs+TzladoBXj1Nf/FQCMSJUrDMWDQAcFH5omu5XGe0A74CRwV8Z4Nf+czjHIEkCM3yRGCTEGROnq/DmLvNT+finY31Uf+tgMue6lrXW9X0ApaCnQT+BKBSFVFw4rxVzNZK5PZ6hSRPisvLhulMpLTpeOpkHE6omshwa0xB8jAEPSJFHBc5rCKiYvZUxQm4aly20ivAM4ET7TDe45U+uT0yVKhEQ0Wmsm4TXzig3A2j2SkE7hhMc6aR5sJTjQQuDL9yb32r1lTdifXvrYlTxmqnhNTISSKsF7vCbuMh+lJT7yT7kpOFlByapjxO0tpp/XoE1V9iUIS5TGQUwGicZbGePUv0d8IUk+jajVE9W6n9RMOHmuhCmNJ0whVmk8u3Kcyhq9UOxD0+TfItwMuJTirpXj1cfJKRI0PF36+qGdEoIUYFOYI1sT3j+GpJZBdIl00M6pE1nXu0KCgkCBw24Ns2pgrdT6te6NsNd+5sYqsW8v5NAr2zidU0p3FDeKcFrpfClwdfJ8aWFs4lVrXyzJC6RHxnVq208CgOR0uQW4yYTnV41T68+okwofnynFKIGDojFWPLiS58vVylfeRiSApBAcN7ahfY8oukY76KspAr5r1dg9gsQPh5N4rIwTf9vi25vpsvYTkylKyFEKm/Tk76qUJw0nbUd8IUnLr1d76+ufzoyyfjAABi+UaIufV0XYmbGF8WcKNOILiTQszAf6AxuUxt1K6IBuxqq/tn8wNj6hfPrsjNMxAQwH9Ka9/dJUdIzNG3fquS5xt954X9GGpEe27i+mv8DNaOzwO/jECneLnbZD5knF6onq6Hnf3pfINZD/gwEwLFWuF4PJuuLxZeNUdnUfME8SDI0VQDtN8ZnpY7aycFWbUJz3dNb6rM0c0ybt07cdFcd3Q9tOTXp3xyv64naXEx3bosnlT5n1GseO7qf/lf1Df92D/utOsPfZrWhuP10FksRkqa4Ypym6DEwV19oJqqTm87qgX5Mqzb6coI59r51w8kqxqGJeEEVRxhb+WrMZVtX8NUAn4H1RrOsQSuBDXRjSMZyxmsJaXlbC1GEJtEzsyJv/2fCDTAJdp/KYOqIVfQdfy7NvzK0+bwrmu1ms+WQ/3QXCAJcGN2BgWbGdZeeqnGHzZdTKsWpJU8qgNeWhUYslQkqYrWB+xnj1fM0CjUuXAMNCKtBJQUqonW9e7MtVbw/ixc4RTNIUVoCAwGDuffw1dmVuZH3G/B8EgDdeeBjTMHjgiem1haLQ7u7E0E+uxh/pYDsQZsAS00Kv5J70Oi8jk5yh6TLgeyn0iAWSlJwqc4akSeK513rPEOvQNFmQnCaSnCbpb+yQp8p8clTqSYZhyG3XdZLrB8eJ1+OW7zPt3bVFkjspeW/6Uxe8zxSRd3fLhuRU8VZ916JrPpP252mENHn8uyfM0iU5OU3mjV4oIXX2B2nyWnKayIj5svbbUzK/IYLYsXWdDOuEfDzzxe8VgLsm9ZDx/SLFXVHWoPt3FkrO8HQpqgIhe8h86XROXzh+SKr0/M5U0PA0GW4tK3wyOGfrDOf+jSF1gDNR4GGHTtbn19C8awTXNSTfLj0GcNWIibz/5jRcp/K+l1a8YuGn7N+9jYeffgu7o2Ej3s7hNH9jINkojgMJymRDcrokn7ke5WGBUtz4nQAwPE2GC9waULi/u453oWmRSeeg3wHhA02j4OPhxITaaNWYQjz05zdAYF1G+vcCQGH+CXr0TWbY6CmNeq5zOF1/2Z5vUBxQEBiUt2vFhLc35U56a8MOf8HG7cH5u64dvkBaXVYAhqfKEBPuc1i4F5QFwFQWZ03extSYK2B58ypOhTuIaKxAouNa8PGyg4y54dfnXzQ8cPrbyp8YlwWAG3/1MH+fvbJJz96exNhYBzsQVmt+N0r8zQS6CHTRvWVe0+CeywbA8HTpZWj8nmBuXTRGedxh8a9XhLR4VTT1KUDyLHEoJy8podNN7fimYzgdmyqUyOj4eq6Y4HFV/hB+6KQptBf70U7p2JRp1rLQaWJWICQg0uDhfb0TsZFfSIwXngnQuXnRMOVOXikObwm5JhxdcmuL7MkpYsuzMhlhSridzb/pxODv6JPBEVV72uIpwMidV3nGGoaWcOP3CkLrYLoMi2Pe5hxlqaNOfDN0Pv1Xwfomt4DeM8TqtTLdAvdVm+lcxAFoGnkgKt/OcKUxBgj45yDi1XfFrOp2COtU+VM6P5b0aHcGmxZ7mWmxuQS1F2SHIAc1C/MUTL2kFhAUzyuYvLpswllqAb0SANE4OTidnsogQjQmj23JmhDDlXwqr5zImGb8X0kFR3ZFjh7QdV7KfuJF59+rxqo3aswJ2jaUpNPqGE5ORdiRMUFtqkV5qUqrkkNh0YRYE661ahx5qBtXzXr9f7jp6jbMfusZvB73d//19kj0xNvRE29Ha3F2QFZ2bCOFuz+l+NDS7+zVecezeeLecdwxriu9i1eOtGq4lcnwIfMkocZt24f3pkejW0ByukQh9F81QT1SB+kYJhoet58edjvbPR6m3tOZrRaNNrfd9z+43eXMfnMaX3wwnfv+32uMmvirJn9kWUkRh/btoCDvGOVlxZiGgTMwGKczkBatk2iW0AbNtR78ZZW1KGoQWEPwlR3HXbgHW1D8ZRe8x11OyqxX+fDt51Cazp0PPkvPXlcFjN5DYdphWqC4HpgOoBQrBQYBWxpFxg1Ll2eC4MX0caq85vnJKWIrcHC7qRFlMXjXD390WBi9aAwdahi/2bdrCy/9+dfsz9pG+869ePz592jbsXuDPvDIgd0sTf2AtStSOXLgwjZxXbfQqWM7evdMYkRyf1r0+Q3KHklpzlo8rgNYnJGEtr3usgl/7Yo0XnnqLlynCxg68gYefupNwiJjADjt5vgNyzkoJvkEc1NG1YBFipmxaoL6VYMBGJYuYzA4tXKi2nge/5MqsSbcic5Jr8EcqyL3d13ZcWMi5xFQIsLy+R/z+vMPUlpymlETbuOex14hNDyqzgIcP3qQGa8+zuovv0DMxts1lKb45V2/545HXq5dDvdJMN2gB6HskU1TNyeO8sS94ziQtZ2kLr3543Pv1lmhHljL3B2nSBR4dNUEtbJKnikrx6kpZ+02otXl/KUBDEgRp0CzuoRfOfEiCkW8YbDVChN0RfGk1vStUyBKcfW4W0hZmc0v7vwjy+d/SvbBrDo/cP6cf/Hrid1ZteSzOoWv6ToRUXHExLckMDi0bnOMKfQZdH5tl9NbME98iRTvbHLND4+IISgkjKf/nsKMzzbV25pvbU+M0vAqmFKD0j5ek7BMn4+j3j7AbmMgQbxfX0FEo79mkm3qFGkmU0Y0J0tXNL9Q4R3OQH7z+xf5xa8fIyTs/Br47vQn+eid5887f+WgUQy55nr6DBxJbLNWKHVWSxa7TrE/axub1y3jq+XzyD6YRc/+w+l2ZXLjpev3gsV2wVusNjv/mJ1x0ayujKafVZHhUfRNnithGZOUS1NsFugNHAJwKuxUudvXAmBgqgSbGkdWD1P+egwvQZQQLFBs86FMnavv7EiDXfjqEn7KrFfPE377Tj25/8/TuaL34Avm1av/CHr1H8Hdj/6VzE2rCQyq0TJMH+RtAM2KihyAJl5Eq6PiuQ5T+t51+ALjsLfqT8DIZ0HTmtxSNIXlqjhKMo4Rr2AE8LloZCo/I6s1g6fuFqAFGjhXj1P1R5WU0kMJ2QCGheFhdnbGOoltamEzN69hxqu1qfN+Q8bwxsdfXVD4daUr+gypVy0oWxjYY1DWkHN1FmTNozy+M+VdhlBqFOCaMZjTsyfjP7y+ySCMSSAe8Boalc2xjP2mOktKWrW6HQ20pZkU1Jfp6IUSguA3tcoJtzIZOiaB0qYW0jQMpj97P6ZxllTr1X8Ez705r8G08IV7ZAtE9oDwrvXfszedshN7MOI7AOALbUZZt5F4midQuup/yH//Bjy7Gm+h6xVND4uiTKt0jSRjiirVwHlmFOm31M06WC40W/MIPXCzBQeJojAFBoxv3XSXkWULPubgnszq4+DQCP704mwsFuulCV78YFZpUEvAWcpC/JinNqJsYRT5Y9i/IZ3cfevJ37sJX2gkNpuV8NBg4uMiad48BqPtIKzFJyjbOpOib2YR3GkMzr6/bhhjonC0CSNv72muGJkuHZeOU9Ujj+IQguweyhpFxvVOlwBDkFVTVOnQdHEgBNl1fLHOSkqiKWnuv/9Z6/iOB/5CVGzzS674Zv4apLQyOkmLHowK7lB1wc/GFSn8Z+5KMjN3XnCY63TY6ZjUin5XdqFv906ElORSfGIDJR8sJqTbDTh6/uKi5RgQjWNfIYZXkQxkiapsAT6DYDOEokbR0QHQ0YAdZ4BS0KZdCCeaKqSjh/aQlXnW3zUgKOSSZssXSz6vhxeeuIsnnn6d7du+vegco8LtYWvmXt55dy6rN+7EHdMeHT8S1wxXbgb5H/4C39FvLphHvxiamQpDhG4ASqiYnCK6CeHR+eePgC7QAkQpIWzNOHW6Rt+VMDCu6X5E33xV22tj+OipBAQGXxZhK6WfsRVV16m//+Vevkz7d635Sdeu3YjWSwmIqyQNS0rLyD2Wz6Hs4xj+yn4pMMDJ4KsqO3ZPRGusJXkoDbyJnTi1/h84vw4ldNLroJ0viqRQOipFFpB0ZryVD07NT0h9gYF1CvTqdBIMk9wa02VBI/rKaKKaKqRvt66tddytz+UzH6joIajoIdXH+7O2seiLWdXHfXp259HHniA+Pp4Ti17FaF/bdl5e4WbL9j1s2rybhBax2G1n5we+4Bh0dxE2Vw7eZkmU+91437+eiDEvoMfV7ux1DUeIlfJiLy2SZ4nDVPjsFgK8Wv2apk4ADGhffILVtT5SiE4Mbpytt2Y6dzbcpUfT3GjchfswvSXojjDsYW1qXTu14wMMTxErl571pQ0KCOCZ51/C6XRinDqEFhzAuYbNAKeDQf27M6h/3UNawxEKKGynj+INT8Cb1Jv8L6cR2m0yzh61qf8YB95iL7qKpK0Ifr+DYAz8DaajJ6eIDeDcEE5dR7do2JsKwPGjB2upg/jmiU1jSo+tw3UgnfIT5+tjv/s0fncheSeqGy8tWrbE6aw0YRdvW4wvrkOT3ms4QjCcIdhclXkbid0oykqjbOOsWvclhqBVcWztAAwvzUwfpxoMwPEAWig/h8+honWR+lFsyPjfXVFWqwPW9Mtv3bIFNcMWnEBQjdlxbk4uHo8bTBOf99Ji8AxHKKbNgaWs0hfXaJFESU4GxYufqr6nZTCBCjRTiFGKQA0CNGv9zrvnqSAdmkf62Hh+t4xLqqC9upsNw187xnn8L+7hkaffrlttuMsROWs8DQoOa7IQIrvcWpmXOt8CGt5xMhheOsdvYF7VuZLSEv7xj79zb3I7jFadLhlkf0Ak1uITHM7ay5Ovfnz2wiPPAfC7WZlAN5QiBiEIDUfyWAozGtYCRCmw+wo2fjTx7Q2ZE9/a8OyZTlhMigwTz5kmcR6SFyC2bPbaNIjffwkB6kpHISh/KfiKzv7ED34PZM5myNjJxETHVD+yePEiHnrtAzZ8m41hXno4sC8kDoe/pO75xJrnWldJKEYUEZi4LxSDXKsFDF5IlDI5LUp1USKdDYujoKr2mwgej8Fxi0brZd82ToAWixWHM7BaDZUWuxr3xd5CEANR1kqOpyIHs6A2b6OFXQkHMiC+A3almPaXZ/jDY7+nvKzynYfzinj9nRQiwkMYPqQPw4b0IjQkqMkgxHXpxWcvhOCOru0muj8rv6hK2lFKiNNsHL0gkVerpvqI93s4hqan+QIiT/sCooKqxqGiwOfycbKpBQ4OPRv25XGX4/N6GjHT/aqS2y/cVM/QqAj2zodmHatVU6dOnXn7rRl06FDbVanwdDGfpa7gwcf/zjvvzuXQkWNNbIkKb2iz6k757GmbW4GhhAiBQKOU7AYDYGhE6BHkp/62z5/KI9p94g5pHjQsVTpg4EZhFFTQZOfN8MjaBOqhfTsuT89bfBLysiC27XmXWrZsyduvT+fhCb1JbFXbY8PwG3y1YTtPPTeT516axZbtexo/uLAFVgrRe3aSW64HlCqoUOBU4M2YokobDICYqIwqu4Cq9PHHhAla5UIZlmNlHG+qnDp07VPreHdmI8JwraFgi0DZzqGW8/ZC2TGIqN8IX/rNHPpeey3PPvkbnnniboYO6onNVpv8y9p3hNf++QmvvfkJ5RWN8+rwhjXHVlzZiixuF4UB7Q4KlJtCNIr9F7UlnPkzTURTGtXKvd1RVlIZ0TjeVBxDYd1f1PQW0Ll7/1rHWzYsb7jBI2YoWvy1qIhKK6jowagTx1AhzVGxvVABrRC9TnsH5cUnMavY1jaJzbn7VxN4/W+PMPX6q4kMr23m3LJtD8+//D5er6+RILTA5spFHT/M2sipG4ASTSNMGuAVUQ3AmuWEo6juHWf+VvkQlgARGrQX0DNP1T+huFjq2vOqWsfrVqRxKr8JDSp/F2rvfFTClajQjihni8qf7jx/tHJkM4SfT94GBQUwbvQgXnvhQaZMGlGLejhy9ATpi75qnCqyOFCmD79Yjd1uZ4VoVJhCgGayq8EAGD6CTX9tytTUSamiJiYqsB0oodxtNK0jbtE6iXYde9Qaip5LT5+tUqeh7NDZn1EOhhd2poBrN8S0bZAJ0bVvHf6o+ulu3aIzfsxgnnzs9lpqafW6xocFe8MS8LqNUkzQIECDALGwucEAmAZOo0YLAFg9Vu0W2KiEAYpKm+bxCpoctDzxlt/VOv7Pe6+wP+v87KQ8G7NgffVP9s2HnR9DRCwExzRwxlSBmA1bmSyxdTNGX3OWmzpVWERFI/sCS1kBJSGdjlT1pWGi8EWXXTx8tRoAXbCtnXC+uVHXmQVgSKVr4o5CmrySyKgJt9G8ZbuzMvJ5ee4PN1NYUI+ZoeAQ6tA6sJqVtV413HBeunkuRssuDb4/Pra284ApjXOFtx7OZH3XaXPFJEIUIUDhnCnKaLgK0jDrWphixRjWCOzXNKJNIfTLoxxpKgAWq41H//IOqob6OHJgNw/cMojc7KoBgwjkbEEdWQ+aF4luAVZH40m74lOYF3E7qZlycs+OLxx2G4EBzsZNCywBsuKkJU9pODGIEhqmqs+2AAOzngmHaML7CH6lMXRHIeUl3nPIukakXv1HcPv902qdO5Z9gDvHd2Xmn2+gZMPbqIAAiL8CFdQCZYtEaeeTsH6/j127dpK1+/wGmZ46j3U7D2IYDYuoyT56guWrzk7yrujarnEkYP5hPK1HHs8rIxQ4qTRClFx4BnweFaEM6lV6UR7m5zs5AfRAsXaXi4x+MdzeVBBuu/cpKspK+fTdl852Yh4Pn3zxBSmpqXTp0pUePXoSGxtLWGgYcApXkYvCwlOcPn2aPXuy2Lt3Lz6fjylTptKxU22Sbd+W1aSv3kzgsl307JZE506JtE6IIzoqHKfTjuE3KCop42ReIZu2ZbFy9ebqoaeuaYwbPahxLfvEPr4eO+sLthFnCLGa4pSCkkYB4HPWbbMEmDNFeZPTZSbC0yYMm3eEJf0u0hd6PW4++d+/0a5jDwaOmFDFQRRD7jfgLeG3o7uRGHQfr787m7LSs1S1YRhkZm4nM3N70xnLispvLyur4KsN2/lqw9m8lKYQs279rjTF7bdcV2vWXOH2sGffEXp0S6p7JOUrxxaeyEd7KVMKlwb3A6eFhjmvVQPgL+bC5EwQ71DM4yjafX2czNMessLtdceErUp/n3+88CiuIhe3Tp7MwHgPGG6w6BDaAgIigUhGTmxFnyEj+fiTj1i4YAEVFRWN07uaRljY+dR2YlwoAU5HnbPa+oTfLD6KX04dTbcutSmNNWu38cGni2jfNoG7fjWe5vHRta7bd6/BddOKPcfW4jAhFHCgyDFpmANDNaneO10CNp/jln5uGpouC5VJm0BKnX8IWHIwOUFPxnBXEmCmwZGj2bz81v+yc98BWrZqyeN//BOdOzdsJOLxuNm4cSPbt2/j4MGDuFwuiopcFBUX4XA4seg6ERGRxMTE0KplK9onJdGnTx/Cw88PyjyxdDplzTvw7c797Nx9iNzj+ZzMK8Tj8VHuduOw2XA47cRGR9AyIZY+PTrSMak1mna+jUFE2LhpF+//ewFl5RUM7HcFt0wdRXBQAHrZaUJLiuWZVu/965uT7PIL92iKr0VIUhr/WjlWvddgAOpzn66ZktPkDxoM1MTbv4slu/CVHsfbWjTsJSXFzJw5gwUL5xMYGMT9v7ufkSOvreVY+32mE0unY7Tpdlnz9Hi9pC5Yw4Ila9F1nRsnDOP6mCKyp6z75JGvtW+VSXNR3GFzu54ydfutFl/FGwOyImZPu0iYUrUKatDCpUKGqYg1lK3NPl98wsbCwgMDozydZ73/HosXL+Lmm27hl7+8DbvdwQ+bLj/wdpuNKZNGMGxQL979MJ2P5ywl8b67i6Zv1dYhmMB9CmYGFuz5W5Vc39sWap8LuC5bSavW10w1DVJ03Xi+uZzU3ut1MLqirMjqdlcQExPLjyHlL38Hb6uk7+4FhsHx1UvMlGs2PvxNAYUKJogwHgvtwg5vPMyZxac89vB5j/R0NZiOvliaM0UZAid9XpYj+to8M8ox80BEXkhIyI9G+AB253e74plz51LZPPKzF7YUsEmZtBRhLIp3KlfklVwgD+GkR/eYl72tDkuXEQgdxMpC8bIkkPKYvyV9a3YN80b8WAAwDm/kVOEBfCFxlz1v28HNbHWOWPHXwId+rwzaCkxDEeXU6dCUpY8bHZWwcjMrgf4Zo9VhCzxboZzlL+xt7Sv3qYofCwB6dBu00tOXPV/L6aPs8bXe96LzoRcsQjHCDUBXJTzU1HWnGx8WMk2ZArlXp0vL5RPUR6A+P0mUenF7UK78GBZzAFBWxDAuL6gVJRzM9uQ+Ff36g1FjyfDDJNG4EVi1crxKaWq+TYrL0U0+9MMdAA4Lj5mavnOddAualdm0ha8vyU2lrvxyt2NGXL5YYc1TYe7bnXviz60+/E20hy/z0+iJyWMiVFgUt11S3k15aPlEtUtB7OQU0ReNUR6Lg9tNpbs+qehrT93rb/SGCM899yzT/vL0ZRNYac5u/IH1h6aapsniZRvYmrn34v2Jz+vZvuPE8RcTZt4jm1maX4YVxf+KIkaDO2uuFPm9AVBZMmbnORkDsOwalW36uNOv2TxvFg801h4oOtrQbLJ272b16gzatml7eaRvmngqii6soZRi1dqt/Gt2Kn5//R6X5adPFW7a4cqb0fzlu8szgxdkPI0hUaQA3RW8u3K8+vySW1dTH1w5UW3UhGo/71XXq/Wm4n6/2Jh2alTZjv3HsrmIUUNEePmVlwgLC+cXv7jpssi/6Kt3MVt3vSgAv71jIsUlZaTVY//NOXLi6LrsgILprd6cMG9yzKKMaco/NJ3pShgHbKeABy6LervE+eZXyalS7W+yepxaaJg84cMa8MjpycXb9ufn4KufXlq6dDEHDx7g0Uf/gNVqveSPKft2MRWawrRd3JjSumU8/Xp3IW3hGlyus8xxhc9wbco8tn9rcfPD77d9cdTqCWpr1fD7TwoeUIqDaNyacYdy/+AArBivVkBtRnT1RPWxUjzjRwv8Q9ENheuP23dSdKxO8u2tN9+kQ8eODBp06cEaJRvnUOI6ihHXpsHP3HbTaFCK2Z8uwjQxdhdUbFuXWVp8yN593udRT47LGF05qEhOlWkivKAUuUrn4Yyx6jJ5lV0iAABYyTh3obqM8epdBY/4BdsTJ5P5oHTgEk4eEIyzjPes92dRUlrK43/806WNePIPULDoNUrtghEUwp5tAAAGFUlEQVTfuH4kNCSICdcOlm+27OLTpbuzj+Yq+9Ko+6Y+ctd9f1w2RRVNThHb0HR5F8XTqnJ2+4IdLutaOJcMQMYYlaM4P3Bj5XiVqsPvBDyzjrVo9Uf37Z8ZbvGRtx8xDfZk7ebaa68lMbFpgRpSWsDhea+ya+3nFLfqjBnUuOgpQ/DtK2Knpe2V3wQEBvuz9mXvndPmr/3/fWv7DaBkxBcSme9giRLuFDhqKl71CvMWjVGeywnAZaENe88Qa3ASel3bTA1Lky6m8A8NWkY5OfLWAHfXqJzF8Xhd+MJaYLU1LujGvfNLinN3IhaNl+fvYPO2LB6+Zyp9ejXM97/Yy6k9xWp/ToEhTrc3xir+bZ9y3UOLHhxWPXyu2tEpDUgEtuuK9/zC+lXjVb1hkpPXiXPOANwN2vum5uz6cgBQFc5UazY16c31d5tK3a+OblSGxfppSXyv6Hw319y00pH7SPeJ+8e08wy2HvwSXLkQFg22+iMmPftWU3J0J4a3FIlvjdHmiipScjuqAXWo2MupI6VyZF+pPd/qKmtpFSMyFHP9+63/duOKcSoXXqlZYW4Qk1lAMDBfUyzwC0dWjaNO1+wRqRLr0wgpdZHdWOFfNgDqVBGailPCFSgQ3XFUabwlgssPo17eSvS8w/aFL/Yd2zPCQTzHt4DrEHiLICwebEF49iynJGcvhq8EiWuF0bJhsV0iSsp8RmF+hco/WqEV5FQEFIeUF7XSff6wEMo1V0DCix9FPTC3chn6s04BoxZLhMfD6wK3AB4NnhfIFsEV42b5ucIdtVji3T76i5/M1RNUk3dw/X428xTApLmC40pYampcta+ITpOXU9E1gmVjE3odbxbbKzTMSnRwwdfxLH0lzlecazWtNt0SGIy3yivaFIVflN8veH2GuCt8ZoAgjv2FnoPuE/qJ0369zFviDQ7weqNElNUUPTpez7PkWdu/lt7s7qUZ33KMB5QJD57L8I7xeJlJ5RI8ezTFg6aQgOC3eFhSM8Z3SJokaopRHi85MW7SGuJ89Z33AXWlsW+va25VeksA5fcf87W6Kr9IiNUgVkFzEwYqoYdSJImiWAmrlWKbSG3/pK5Fa1t1KF07yO4rDfbruq5M06LhtyKK/VnbA0+dyHW069anMDK2ebkhyuO3Bm/7Kvz6uSedrY7iI+fMHmF1qo8vJNLQmY7iFgBRvKdrPGOYDFeg42Vxxg0qh2miDe3JUKUxVAnfSjCpGfUs7/OjAaAhaViqdFBWhpsmvUUYqIQSEZYpja+ViWmCXemV1iUBQ4zKEF8d/GiUmVBuMSnzaVSIjiuutGHugANSxOmw84Ao/h8QjuKAMnlI9/CVz8F4FA5lshIbfs3HOEORAKzvcIz5My/zDqw/+FaGk1NEL7TTxdRJEJP2UrmXZJgSFioL86PK2HSpzfwslS7a0J7coBR/qxrhVCC8FHpqawp+6eBxxPT1RLQoEUFTQrypOGwoPv9qbP3b4/7kAagBhC3PQXdlEmqCTdO5AhihBBuQgcY63c6GZdeooqYIflgvxgk8D3Sp6pVSLRq/17yU2gp3vWLxlvxSlGYUt7hyughzko6zeeb3sN/wj2472+SVYtErSPL7aC46OVYDq0+nj2bSTaCzUvgQdgBZunDEp5FjmJw4d3MdgIGpEmxT3GTCQwo6V53erjRWmIIPE4umKA3M29XO4i25GVT5vPv6BX6f3/sj3lFb1NXpJPhMOugKwzQ4yHZyPP0JsfvoDMQBsUqIEUUMEKZMSkRRpiBUoBuKrggOQFDsBP5jGqywKg4sn6CqvZcnvLOhsyZcIeCbd2//z38G4Jw0eqHYywxaIiRoGprh51iQjZyadthRiyXC42USMFVghKrc9rZQwQcoZmTUWMHqx5R+EgCcq6KC927/H01840CzidKDyyMSC3yOkK7KxFr1RZsVzAxSfJR+EXfLnwFoQprw1oZ/KqiOdyqN6ojfGbobWAUs1032+gTBxG+zUuaHcpuNitAi3HMmYzaFMviukoX/ghRQevz2tClhs3+KZdf+GwDQvUXHfqpl/2m2AI23BBZW61G/2vJTBeD/A62herFIRO47AAAAAElFTkSuQmCC);background-size:96px 96px}#home .footer{display:none}}@media screen and (min-width:768px) and (max-width:991px){#home .logo{height:144px;background-image:url(../img/logo_144px.png);background-size:144px 144px}#home .button{max-width:350px;margin-top:20px}}@media screen and (min-width:992px){#home .logo{height:200px;background-image:url(../img/logo_200px.png);background-size:200px 200px}#home .button{max-width:350px;margin-top:20px}.circle-bg-dark{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOmJ4PSJodHRwczovL2JveHktc3ZnLmNvbSI+CiAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDgyNjEsIDAsIDAsIDAuNjA4MjYxLCAtMjAuMDg0OTc2LCAzLjI1NTczNikiPgogICAgPGc+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC43ODsiIGlkPSJwYXRoLTEwIiBkPSJNIDQxOS4xMzMgODUuNzM4IEMgNDE3LjI5NSA4NS43MzkgNDE1LjQ1NSA4NS43NTQgNDEzLjYxMSA4NS43NzggQyAzNTQuODUyIDg2LjU2MSAyOTkuMDIzIDk5LjE3NCAyNDguMzU4IDEyMS4zMiBDIDU4NC4xMjEgMTMuMjA2IDc5Ni4xNzUgMjExLjI2IDgzMS43IDUwOC43NzMgTCA4NDYuMzgzIDUwNy4xMjQgQyA4MTUuNTg2IDIzNS44MDEgNjUyLjQ3NyA4NS41ODggNDE5LjEzMyA4NS43MzggWiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NjM3MywgMC4yNjY4NzgsIC0wLjI2Njg3OCwgMC45NjM3MywgODkuNTA1MjMxLCAtMTM2LjYxNTA2MSkiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDE7IiBpZD0icGF0aC0zIiBkPSJNIDE0Ni4wMzcgMTk0LjA2NSBDIDE0NC4yMDEgMTk0LjA2NiAxNDIuMzYxIDE5NC4wODEgMTQwLjUxNyAxOTQuMTA0IEMgODEuNzYgMTk0Ljg4OCAyNS45MzEgMjA3LjUwMyAtMjQuNzM2IDIyOS42NDggQyAzMTEuMDI5IDEyMS41MzEgNTIzLjA4MyAzMTkuNTgzIDU1OC42MDQgNjE3LjA5MyBMIDU3My4yODQgNjE1LjQ0MyBDIDU0Mi40OSAzNDQuMTIyIDM3OS4zODUgMTkzLjkxMyAxNDYuMDM3IDE5NC4wNjUgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuMTgwOTg4LCAtMC45ODM0ODUsIDAuOTgzNDg1LCAtMC4xODA5ODgsIC0zOS4yOTg1ODEsIDcwNS44OTc1NDQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMSIgZD0iTSA0ODcuNzQ0IDE5My4wODQgQyA0ODUuOTA2IDE5My4wODUgNDg0LjA2NyAxOTMuMSA0ODIuMjIzIDE5My4xMjMgQyA0MjMuNDY0IDE5My45MDcgMzY3LjYzNSAyMDYuNTIgMzE2Ljk3NSAyMjguNjY4IEMgNjUyLjcyNiAxMjAuNTUyIDg2NC43NzUgMzE4LjYwNSA5MDAuMjk5IDYxNi4xMDkgTCA5MTQuOTc5IDYxNC40NiBDIDg4NC4xODQgMzQzLjE0NCA3MjEuMDgxIDE5Mi45MzUgNDg3Ljc0NCAxOTMuMDg0IFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNjE5OTk3LCAwLjc4NDYwNSwgLTAuNzg0NjA1LCAwLjYxOTk5NywgNTIzLjA2NzIzMSwgLTM0My4zMzE1MzkpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjg0OyIgaWQ9InBhdGgtMTIiIGQ9Ik0gMjk1Ljk2OSA0MzIuNzU3IEMgMjk0LjEzMSA0MzIuNzU4IDI5Mi4yOTMgNDMyLjc3MyAyOTAuNDQ5IDQzMi43OTcgQyAyMzEuNjg4IDQzMy41OCAxNzUuODYgNDQ2LjE5NCAxMjUuMTk4IDQ2OC4zNDEgQyA0NjAuOTU3IDM2MC4yMjYgNjczLjAwNSA1NTguMjggNzA4LjUyNiA4NTUuNzg2IEwgNzIzLjIwNyA4NTQuMTM5IEMgNjkyLjQxMiA1ODIuODE5IDUyOS4zMSA0MzIuNjA5IDI5NS45NjkgNDMyLjc1NyBaIiB0cmFuc2Zvcm09Im1hdHJpeCgtMC45Nzg4NDksIDAuMjA0NTg0LCAtMC4yMDQ1ODQsIC0wLjk3ODg0OSwgOTYzLjgyMDc5NiwgMTExNi4zNjcyOTMpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMyIgZD0iTSAxNTguMDM2IDE0OC44MyBDIDE1Ni4yIDE0OC44MzMgMTU0LjM2IDE0OC44NDYgMTUyLjUxNiAxNDguODcyIEMgOTMuNzU5IDE0OS42NTMgMzcuOTMgMTYyLjI2NyAtMTIuNzM0IDE4NC40MTEgQyAzMjMuMDIyIDc2LjMwMSA1MzUuMDc2IDI3NC4zNTIgNTcwLjYwNCA1NzEuODU3IEwgNTg1LjI4NiA1NzAuMjA4IEMgNTU0LjQ4MyAyOTguODkxIDM5MS4zOCAxNDguNjgzIDE1OC4wMzYgMTQ4LjgzIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuMzM4NjE0LCAtMC45NDA5MjYsIDAuOTQwOTI2LCAwLjMzODYxNCwgLTExNS41OTUxNTgsIDQ4My43MDU5ODQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAxOyIgaWQ9InBhdGgtMTQiIGQ9Ik0gNTAxLjAxOSAyODguMjkyIEMgNDk5LjE4MSAyODguMjkzIDQ5Ny4zNCAyODguMzA4IDQ5NS40OTYgMjg4LjMzMSBDIDQzNi43MzYgMjg5LjExNSAzODAuOTA4IDMwMS43MjYgMzMwLjI0MyAzMjMuODc0IEMgNjY2LjAwNCAyMTUuNzU3IDg3OC4wNjIgNDEzLjgxMiA5MTMuNTg2IDcxMS4zMjIgTCA5MjguMjY4IDcwOS42NzMgQyA4OTcuNDY4IDQzOC4zNTIgNzM0LjM2MSAyODguMTQxIDUwMS4wMTkgMjg4LjI5MiBaIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjE2NDY1NiwgMC45ODYzNTEsIC0wLjk4NjM1MSwgMC4xNjQ2NTYsIDk4Mi44NTcyNjYsIC0yMzMuNDUyMDYzKSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC40OyIgaWQ9InBhdGgtMTUiIGQ9Ik0gMTkyLjk1NCAzNzYuNTIxIEMgMTkxLjExNSAzNzYuNTIyIDE4OS4yNzcgMzc2LjUzNyAxODcuNDMzIDM3Ni41NjEgQyAxMjguNjc0IDM3Ny4zNDQgNzIuODQ1IDM4OS45NTggMjIuMTgxIDQxMi4xMDMgQyAzNTcuOTQgMzAzLjk4OSA1NjkuOTg3IDUwMi4wNDUgNjA1LjUwNSA3OTkuNTUzIEwgNjIwLjE4OCA3OTcuOTA1IEMgNTg5LjM5MiA1MjYuNTg0IDQyNi4yOTUgMzc2LjM2OSAxOTIuOTU0IDM3Ni41MjEgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuOTMxNDA0LCAtMC4zNjM5ODgsIDAuMzYzOTg4LCAtMC45MzE0MDQsIDQxOS40OTkwMDYsIDExODIuNTk5ODA5KSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMTsiIGlkPSJwYXRoLTE2IiBkPSJNIDIyMS42MTQgNjMuOTczIEMgMjE5Ljc3NyA2My45NzYgMjE3LjkzOCA2My45OSAyMTYuMDk0IDY0LjAxNSBDIDE1Ny4zMzQgNjQuNzk1IDEwMS41MDYgNzcuNDA5IDUwLjg0MSA5OS41NTQgQyAzODYuNTk4IC04LjU1OSA1OTguNjUxIDE4OS40OTcgNjM0LjE3MyA0ODcuMDAxIEwgNjQ4Ljg1NCA0ODUuMzU0IEMgNjE4LjA1OCAyMTQuMDM3IDQ1NC45NTQgNjMuODI0IDIyMS42MTQgNjMuOTczIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNzUwNDUyLCAtMC42NjA5MjUsIDAuNjYwOTI1LCAwLjc1MDQ1MiwgLTcwLjgwMzMyMiwgMjkwLjkyMDI3MykiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDAuNDsiIGlkPSJwYXRoLTE3IiBkPSJNIDQ0MS44ODggMzQyLjA5OCBDIDQ0MC4wNDcgMzQyLjA5OCA0MzguMjA3IDM0Mi4xMTQgNDM2LjM2MiAzNDIuMTM4IEMgMzc3LjYwMSAzNDIuOTIyIDMyMS43NjUgMzU1LjUzNSAyNzEuMTAzIDM3Ny42ODEgQyA2MDYuODg2IDI2OS41NjcgODE4Ljk0NCA0NjcuNjE1IDg1NC40NjIgNzY1LjEzMyBMIDg2OS4xNDIgNzYzLjQ4MyBDIDgzOC4zNTQgNDkyLjE1NCA2NzUuMjQyIDM0MS45NDggNDQxLjg4OCAzNDIuMDk4IFoiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjM1NjU4MiwgMC45MzQyNjQsIC0wLjkzNDI2NCwgLTAuMzU2NTgyLCAxMjU2Ljc1OTQ5MywgMTY5LjE4MjU1MikiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc2MjQ5MywgMCwgMCwgMC43NjI0OTMsIDE5LjI5NDY0NywgLTcxNi4zMjI4MTUpIj4KICAgICAgICA8cGF0aCBkPSJNIDU2Ni40NjYgMTA4OS4xMzcgTCA1NjYuNDY2IDExNDguMjIyIEMgNTY1Ljg2NyAxMTQ4LjIxOSA1NjUuMjY3IDExNDguMjE3IDU2NC42NjcgMTE0OC4yMTcgQyA1NjEuNDgxIDExNDguMjE3IDU1OC4zMSAxMTQ4LjI1OSA1NTUuMTU0IDExNDguMzQxIEwgNTU1LjE1NCAxMDg5LjEzNyBaIE0gOTA4LjI5IDE0NzcuMTQ2IEwgOTU2Ljk4NyAxNDc3LjE0NiBMIDk1Ni45ODcgMTQ4OC40NTggTCA5MDguNTY5IDE0ODguNDU4IEMgOTA4LjUzOSAxNDg0LjY5MyA5MDguNDQ3IDE0ODAuOTIyIDkwOC4yOSAxNDc3LjE0NiBaIE0gNTY2LjQ2NiAxODM1LjAxMyBMIDU2Ni40NjYgMTg3Ni40NjcgTCA1NTUuMTU0IDE4NzYuNDY3IEwgNTU1LjE1NCAxODM0Ljg4NiBDIDU1OC4zMTggMTgzNC45NzMgNTYxLjQ5IDE4MzUuMDE3IDU2NC42NjcgMTgzNS4wMTcgQyA1NjUuMjY3IDE4MzUuMDE3IDU2NS44NjcgMTgzNS4wMTYgNTY2LjQ2NiAxODM1LjAxMyBaIE0gMjIwLjc3NSAxNDg4LjQ1OCBMIDE2OS42NTcgMTQ4OC40NTggTCAxNjkuNjU3IDE0NzcuMTQ2IEwgMjIxLjA4OSAxNDc3LjE0NiBDIDIyMC45MjEgMTQ4MC45MDkgMjIwLjgxNiAxNDg0LjY4IDIyMC43NzUgMTQ4OC40NTggWiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgc3Ryb2tlOiBub25lOyIgYng6b3JpZ2luPSIwIDAiLz4KICAgICAgICA8cGF0aCBkPSJNIDc2MC4xMjEgMTE0My4zMTEgTCA3MTcuMzM2IDEyMTcuNDE3IEMgNzE1LjcyIDEyMTYuNTE4IDcxNC4wOTYgMTIxNS42MzIgNzEyLjQ2NSAxMjE0Ljc2MSBMIDc1NS4zMTggMTE0MC41MzcgWiBNIDgzMC4xMjIgMTMyNC4yMDMgTCA5MDAuNDI0IDEyODMuNjE0IEwgOTAzLjE5OCAxMjg4LjQxNyBMIDgzMy4wNCAxMzI4LjkyMyBDIDgzMi4wOCAxMzI3LjMzOSA4MzEuMTA3IDEzMjUuNzY2IDgzMC4xMjIgMTMyNC4yMDMgWiBNIDg0MC41OTkgMTY0MS4xMzcgTCA5MDMuMTk3IDE2NzcuMjc4IEwgOTAwLjQyNCAxNjgyLjA4MiBMIDgzNy45MTEgMTY0NS45OSBDIDgzOC44MjEgMTY0NC4zOCA4MzkuNzE3IDE2NDIuNzYyIDg0MC41OTkgMTY0MS4xMzcgWiBNIDcyNS4xNjggMTc2MS44NDMgTCA3NjAuMTIyIDE4MjIuMzg1IEwgNzU1LjMxOCAxODI1LjE1OCBMIDcyMC4zNzkgMTc2NC42NDEgQyA3MjEuOTg1IDE3NjMuNzIyIDcyMy41ODIgMTc2Mi43ODkgNzI1LjE2OCAxNzYxLjg0MyBaIE0gNDAzLjUzOCAxNzYwLjkzMiBMIDM2Ni40NTYgMTgyNS4xNTkgTCAzNjEuNjUzIDE4MjIuMzg2IEwgMzk4LjgwMiAxNzU4LjA0MiBDIDQwMC4zNzIgMTc1OS4wMTkgNDAxLjk1MSAxNzU5Ljk4MiA0MDMuNTM4IDE3NjAuOTMyIFogTSAyODkuNTggMTY0Mi42ODkgTCAyMjEuMzUgMTY4Mi4wODIgTCAyMTguNTc3IDE2NzcuMjc5IEwgMjg2Ljk0NCAxNjM3LjgwNyBDIDI4Ny44MDcgMTYzOS40MzcgMjg4LjY4NSAxNjQxLjA2NSAyODkuNTggMTY0Mi42ODkgWiBNIDI5NC4zNTQgMTMzMi4xNjggTCAyMTguNTc2IDEyODguNDE3IEwgMjIxLjM1IDEyODMuNjE0IEwgMjk3LjIxMyAxMzI3LjQxNCBDIDI5Ni4yNDYgMTMyOC45OSAyOTUuMjkzIDEzMzAuNTc1IDI5NC4zNTQgMTMzMi4xNjggWiBNIDQwNi4wNzkgMTIyMC4yNTkgTCAzNjEuNjUzIDExNDMuMzExIEwgMzY2LjQ1NyAxMTQwLjUzNyBMIDQxMC44ODkgMTIxNy40OTUgQyA0MDkuMjc2IDEyMTguNDAzIDQwNy42NzMgMTIxOS4zMjQgNDA2LjA3OSAxMjIwLjI1OSBaIiBzdHlsZT0iZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBzdHJva2U6IG5vbmU7IiBieDpvcmlnaW49IjAgMCIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8cmVjdCB4PSI0MjkuMzY3IiB5PSI0MjUuOTc5IiB3aWR0aD0iMjAuMDAzIiBoZWlnaHQ9IjIxLjczNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTkxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAwLjk5OTk5OSwgLTMwMS4zNzcwNzUsIC0yMTkuNDk4NDM0KSIvPgogICAgPHJlY3QgeD0iNDQ2Ljg1MyIgeT0iMjUuNDYyIiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05MyIvPgogICAgPHJlY3QgeD0iLTEzNS45NTYiIHk9IjYwNS4xNDEiIHdpZHRoPSIzOS44NTEiIGhlaWdodD0iMzkuODUxIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTQiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk5OTk5LCAwLCAwLCAxLCA4NDYuMTc2NzU2LCAtMzk0Ljk1NjAyNCkiLz4KICAgIDxyZWN0IHg9IjIyNS43NzkiIHk9IjY4OS44MzYiIHdpZHRoPSIyNS45OSIgaGVpZ2h0PSIyNS45OSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk1Ii8+CiAgICA8cmVjdCB4PSI1OTQuMDEzIiB5PSI3MzcuMTQyIiB3aWR0aD0iMjAuNzkyIiBoZWlnaHQ9IjIyLjUyNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk2Ii8+CiAgICA8cmVjdCB4PSIzODcuMjM1IiB5PSI0NzkuMzk3IiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05OCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4wMDAwMDEsIDAsIDAsIDAuOTk5OTk5LCAzNjUuMjc0OTY2LCA3OS4yOTUyNDEpIi8+CiAgICA8cmVjdCB4PSI0MjEuOTYyIiB5PSI3NzUuOTM3IiB3aWR0aD0iMzIuOTIiIGhlaWdodD0iMzQuNjUzIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTkiLz4KICAgIDxyZWN0IHg9Ii02Ni45MzkiIHk9Ii01NjguOTc4IiB3aWR0aD0iMjAuODY3IiBoZWlnaHQ9IjIwLjc5MiIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTEwMSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsIDAsIDAsIDAuOTk5OTk3LCAzMS4zNTY5MjgsIDk4NC43MzYzMDYpIi8+CiAgPC9nPgo8L3N2Zz4=);background-repeat:no-repeat;background-position:-725px -145px;background-size:1024px 1024px}}.gray,.gray b,.popover-helptip .button-close,.popover-helptip .button-close b,.popover-share .bar-footer .button-close,.popover-share .bar-footer .button-close b,.popover-share .bar-header span,.popover-share .bar-header span b{color:gray!important}#home h4 a,.gray a,.gray a:hover,.gray a:visited,.icon-help a,.icon-help a:hover,.icon-help a:visited,.popover-helptip .button-close a,.popover-helptip .button-close a:hover,.popover-helptip .button-close a:visited,.popover-share .bar-footer .button-close a,.popover-share .bar-footer .button-close a:hover,.popover-share .bar-footer .button-close a:visited,.popover-share .bar-header span a,.popover-share .bar-header span a:hover,.popover-share .bar-header span a:visited,.positive a,.positive a:hover,.positive a:visited,.text-editable:hover a,.text-editable:hover a:hover,.text-editable:hover a:visited{color:inherit}.item a{text-decoration:none}.no-padding{padding:0!important}.avatar-member{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAQAAABpN6lAAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfgBA0LKSJACf7RAAAFqElEQVR42u2dbUjdZRjGf+c4dTndFnO+TRcD3ZIxdVlJL2PSIHDZBqtRaINojWRrgR8a4fDbIOrzoIKIMay2iGpQsg0y4xRZIk5i1NTaik3TZeRcvmzl0wc7qTPz6Lnv5/kfz/86XzxyuM59Xf/r//o893MCBqtIoYgSSsgjndWkk8RV+v959dFPP9/wm82CAtYM2MCTPMZGgnN87iZNvMdH1mww+q8Es9e0m/nhhjltnjG361enL3+HOT9P8ZMYNC+YhFg2IN2cWbD4MNrN3bFqQIm5FLV8Y4wZMbtj0YBdZlhEvjHGjJsXY82A+8yomPwJ1OhUqnMazKOVTGHOUe7lW/lS5zorLwSJnBKXD0s5SUpsGHCAzQqsUMgr8qTyu8AqulmpYgCMcQd9spTyCahTkw/JHJCmlE5AIj2kqxkAA6xlWJJQOgEVqvJhFY/LEkobUKUqH2Cbtw0oVTdgqyyd7DEgiWES1C1YxyU5MtkEFFiQD/dLkskacKcF+ZAb7waIXmbHogEZ3jVANJyxaEDAigHJ8W6AKDRuh2MKfgJcF+AafgJ8A+IcfgJcF+AafgJcF+AafgJE2URvU2aFqM2SzwSXM8ASCwaMkc9lKTLJBNRbkQ/JvCRHJpeANPpZasUAuEa21PiQXAJ2WJMPy9ktRSVnwBPW5IPgCJScAXdZNSDHewbcsGpAmvcMGLVqgNhkGTkDfrVqQLv3DHjfqgGnpYjkrgMyuGLpQgigkO9liOQS0M+H1uS/JSVf9l5gBV9RaEH+TxRxTYpM8l5gkEcZUJc/zB45+dK3wz9QhW4LiuERQpKE0k+EzvKuqgENNMsSyj8SO6lqwFFpQvmpskv4kTwl+e3ydxzyCfhTfiv9i9flKTX6BVZymWUK8ofI4bo0qcZj8d85psAKDfLytRonC7ig8Ii8hA75UnUGRrr4RJyzRUO+3sjQq8J8hjqdQrUMCAkfsV/jM51C9Zqnl3GOfCGuixRpHABBc3D0D/bwlwiTYa+WfN3R4RZeFuFRiz9orx+QSEvUF6+K8Qft+QE3eSpqDsX4g40VJKL9AuU5B/4MEdcFuIZvgOsCXEPbgFQPMDg1INsDDL4BLg2IfqRIeaxJ24CdHmD4X+heCaZxNerJk2OsZkivRN0EVAvMHU2mWrNEzQSk0C1yCOslX3bViKnQTECt0BE8m1q9IvUSUEaz2NTJUcr5OrYMyKWVLEG+X7hHboL0VOjsArk0isqHLBp1WrM1DCijlU3irJtopcz7BqRwmGbhrR9GFs0cFl9PTHBpujRTY3qEF9GbiR5TY9K8tJxeKtlkU8hOHrLUMgNjNHGK7+ilN9pHpvMxYAXVPKu0Upwc2nmTtxmM+PMRRiXB7DcD6vGWwoDZH+lqtJEl4EGOUux6084THTzPF3N/bO6zQA4NhGJOPhQToiGCxoo5InLQDLnOc1QYMgcXvgsk8QZPu96QAjjGc7P3s8xuQAYf8IDr2oXwJbvon58BG2lkreu6BfEz2zkfuQEb+FxhYVy36GMrFyIzYB0h1riuVwFX2MLFW/858zSYR9OilA9raJo5i/nWBGQSosB1pYroYsv0lYmnJyDIiUUtHwo4MV3zdAPqKXddoTrKqZ/6duouUM6ncTFcPs62yb6TSQPS6ZBrSfY4eigOd7qGt3iA43EjH3I4Hp58FTZgHxWuq7KKCvZN/DGxC6TSveiu/OZCH/lcDyfgUNzJh0wOwUQCcujS+PEKz2OYAnqCwJG4lA8pHIGAKaI9Ls7+/4VxNgfMGR52XYdDnA0Yyz846DXEa/h9A3wDfAN8A3wDfAOAIL2uS3CK3iBtrmtwira4NyBg1nOO21zX4QgjlATp1OrMjwHU0RkwEOBjtruuxQEaqcQEAUMltYy4rscqRqilEjN1XGA9VZRSqt2k5By9tNHGO3ROvP0bpkYvBeY8k00AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMTNUMTE6NDE6MzQrMDI6MDCAxbwoAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTEzVDExOjQxOjM0KzAyOjAw8ZgElAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=)}.avatar.disable{opacity:.7}.avatar-wallet{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAQAAABpN6lAAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfgBA0JMBOJU4OdAAAB2klEQVR42u3au0ocUQCH8e+IxFRKUohrkG0Eu4BiLrCFDxDBNtjoI1gYTJnGQrRInc4HyBuopNHgBVZIwCJFsHBXLURtQiIyKYyFN3B3zJyd3e/X7e7MmXP+e26zOyBJkiRJkiRJkiRJkiRJkppVSF9E0sk0r+jKuOYnrLMQTqMHkHSzQTHS17fLy3CYroi21JWYj9Z8KDIfvwdUKAC7bGfc+CH6gGrojTyJJBemMr/u+4sLpy2njRZnAAZgAK2t/YHKGUzeZlzz5w2yFU6/EKVsQHAIGIABGIABGIABRN4ILbOVcc1fM9IQCfp7gHOAARiAAbgMXpuhH/GJ0brK/sG78OVfKR0cXPnsQ/iYkwAYY6LOM4eZpXR5q3/t77bH+RkCO5HObZQeEL4nQ7ypcwh8boIAIJQpuwoYQMsugwBJ/73L/h1+3vr+OYtXXn/Lzz7gCV8ZqOH4LUrhz4155IzJvA6B0VqaDwzHu7f/PwEsc1zT8RXWmmoOCJWkl9L95wBWbw6AvO8DfrHkMmgABmAABtDw0j8gUaWHeA9K7odC7GVwhXGgGOmB2ZX4PaDAJs8i9d89XoRq5AAgecoMg3Rm3PhTysyFIyRJkiRJkiRJkiRJkiRJku7wFyuiadmIs5Q9AAAAAElFTkSuQmCC)}.popup-container.confirm .popup,.popup-container.warning .popup{min-width:250px!important;width:350px!important}.popup-container.warning .popup-head{background-color:#ef473a}.popup-container.confirm .popup-head{background-color:#387ef5}body{--refresher-bg-height:100px;--refresher-background-color:inherit}.refresher-positive-900-bg{--refresher-background-color:#1a237e}.refresher-dark-100-bg{--refresher-background-color:#555}.platform-android .refresher-dark-100-bg:before,.platform-android .refresher-positive-900-bg:before{background-color:var(--refresher-background-color);position:absolute;display:block;top:0;width:100%;height:var(--refresher-bg-height,100px);z-index:-10;content:" "}.platform-android .scroll-refresher{z-index:50}.platform-ios .refresher-dark-100-bg,.platform-ios .refresher-positive-900-bg{background-color:var(--refresher-background-color)!important}.platform-ios .refresher-dark-100-bg .scroll,.platform-ios .refresher-positive-900-bg .scroll{background-color:#fff;bottom:auto;min-height:100%}#home h4,.refresher-dark-100-bg .scroll-refresher .ionic-refresher-content,.refresher-light .scroll-refresher .ionic-refresher-content,.refresher-positive-900-bg .scroll-refresher .ionic-refresher-content{color:#fff}.refresher-dark-100-bg .scroll-refresher .spinner,.refresher-light .scroll-refresher .spinner,.refresher-positive-900-bg .scroll-refresher .spinner{stroke:#fff;fill:#fff}.view-wallet{--refresher-bg-height:200px}.view-wallet .hero{height:200px}.view-wallet .hero h4:after{content:' ';display:inline-block}.view-wallet .item-text-wrap{white-space:normal!important}.view-wallet .item .comment{font-style:italic!important}.popover-helptip .view-wallet .item h3 .button-close,.popover-helptip .view-wallet-tx .item h3 .button-close,.popover-share .bar-footer .view-wallet .item h3 .button-close,.popover-share .bar-footer .view-wallet-tx .item h3 .button-close,.popover-share .bar-header .view-wallet .item h3 span,.popover-share .bar-header .view-wallet-tx .item h3 span,.view-wallet .item h3 .gray,.view-wallet .item h3 .popover-helptip .button-close,.view-wallet .item h3 .popover-share .bar-footer .button-close,.view-wallet .item h3 .popover-share .bar-header span,.view-wallet-tx .item h3 .gray,.view-wallet-tx .item h3 .popover-helptip .button-close,.view-wallet-tx .item h3 .popover-share .bar-footer .button-close,.view-wallet-tx .item h3 .popover-share .bar-header span{font-size:11px!important}.view-wallet .list .item span,.view-wallet-tx .list .item span{display:inline}.view-wallet .item-divider .badge{top:16px!important}.view-wallet .item.item-wallet-event{padding-top:5px;padding-bottom:5px;min-height:30px;max-height:auto;height:auto}.view-wallet .item.item-wallet-event:last-child{min-height:48px}#menu .footer .view-wallet .item.item-icon-left.item-wallet-event .icon-help,.view-wallet .item.item-icon-left.item-wallet-event #menu .footer .icon-help,.view-wallet .item.item-icon-left.item-wallet-event .icon,.view-wallet .item.item-icon-left.item-wallet-event .icon-alert,.view-wallet .item.item-icon-left.item-wallet-event .icon-help{font-size:17px;height:18px;top:6px}.view-identity .qrcode,.view-wallet .qrcode{position:absolute;display:block;top:0;right:0;width:0;height:0;background:#fff;z-index:1;-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important;overflow:hidden}.view-identity .qrcode img,.view-wallet .qrcode img{display:float;float:right;width:0;height:0;z-index:1;transition:all .5s ease-out!important}.view-identity .qrcode.on,.view-wallet .qrcode.on{width:50px;height:50px;padding:3px;margin:7px}.view-identity .qrcode.on img,.view-wallet .qrcode.on img{width:44px;height:44px}.view-identity .qrcode.on.active,.view-wallet .qrcode.on.active{margin:0!important;padding:10px;width:200px;height:200px}.view-identity .qrcode.on.active img,.view-wallet .qrcode.on.active img{width:180px;height:180px}@media screen and (max-width:991px){.view-identity .hero.hero-qrcode-active h1,.view-identity .hero.hero-qrcode-active h2,.view-identity .hero.hero-qrcode-active h3,.view-identity .hero.hero-qrcode-active h4,.view-identity .hero.hero-qrcode-active h5,.view-identity .hero.hero-qrcode-active i.avatar,.view-wallet .hero.hero-qrcode-active h1,.view-wallet .hero.hero-qrcode-active h2,.view-wallet .hero.hero-qrcode-active h3,.view-wallet .hero.hero-qrcode-active h4,.view-wallet .hero.hero-qrcode-active h5,.view-wallet .hero.hero-qrcode-active i.avatar{margin-right:200px}}.popover-wallet-actions{height:400px}@media screen and (max-width:991px){.view-wallet-tx{--refresher-bg-height:100px}.view-wallet-tx .hero{height:100px}}@media screen and (min-width:992px){.view-wallet-tx{--refresher-bg-height:140px}.view-wallet-tx .hero{height:140px}}.view-wallet-tx .item-text-wrap{white-space:normal!important}.view-wallet-tx .item .comment{font-style:italic!important}.view-wallet-tx .item-divider .badge{top:16px!important}.stable-100-bg{background-color:#f2f2f2!important}.item-tx{border-top:solid 1px #d3d3d3!important;padding-bottom:6px;padding-top:8px;margin:0!important}.item-tx .badge-energized{background-color:rgba(255,201,0,.3);color:#888!important}.item-tx .badge{right:1%!important;top:13px}.item-tx .badge-white{background-color:#fff}.item-tx .vertical-center{position:absolute;top:30%;width:40%}.item-tx p.comment{width:100%;white-space:nowrap;text-overflow:ellipsis}.item-tx p.text-wrap{white-space:normal}.item-tx p.text-wrap a{white-space:nowrap}.item-tx .col-pubkey{max-width:80%}.item-tx .col-pubkey .pubkeys{display:block;white-space:nowrap;text-overflow:ellipsis;max-height:130px;overflow:hidden}.expert-mode .item-tx .item-note{top:8%}.expert-mode .item-tx .badge-secondary{top:calc(8% + 23px)!important}.view-identity{--refresher-bg-height:200px;--refresher-background-color:#555}.view-identity .member{--refresher-background-color:#1a237e}.view-identity .hero{height:200px;background-color:var(--refresher-background-color)}.card .card-header{font-size:90%;opacity:.8;filter:alpha(opacity=80)}.card .stable-900-bg,.card.stable-900-bg,.item .stable-900-bg,.item-complex .item-content .stable-900-bg,.item-radio .item-content .stable-900-bg,.item.stable-900-bg{background-color:#e0e0e0!important}.card .item{background:inherit}.card .stable-bg,.card.stable-bg,.item .stable-bg,.item-complex .item-content .stable-bg,.item-radio .item-content .stable-bg,.item.stable-bg{background-color:#f8f8f8!important}.card .card-header{padding-top:5px!important;padding-bottom:0!important;min-height:25px}.card .item .card-footer{margin-bottom:5px}.card .card-avatar .avatar,.card.card-avatar .avatar{box-shadow:0 3px 4px 0 rgba(0,0,0,.26);top:7px;background-color:#d9d9d9}.card .card-avatar img.avatar,.card.card-avatar img.avatar{border:0;min-height:54px;min-width:54px}.card .card-avatar .item.item-avatar,.card.card-avatar .item.item-avatar{padding-top:10px;padding-bottom:2px;min-height:45px!important;margin-bottom:1px}.card .card-avatar .card-footer,.card.card-avatar .card-footer{padding-left:88px;overflow:hidden}#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-center.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-right.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-center.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-right.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-center.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-center.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-center.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-center.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-right.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon.icon-bottom-center a,.card .card-avatar .card-footer .popover-helptip .icon.icon-bottom-right a,.card .card-avatar .card-footer .popover-helptip .icon.icon-center a,.card .card-avatar .card-footer .popover-helptip .icon.icon-right a,.card .card-avatar .card-footer .pull-right a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-center.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-center.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-center.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-center.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-right.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon.icon-bottom-center a,.card.card-avatar .card-footer .popover-helptip .icon.icon-bottom-right a,.card.card-avatar .card-footer .popover-helptip .icon.icon-center a,.card.card-avatar .card-footer .popover-helptip .icon.icon-right a,.card.card-avatar .card-footer .pull-right a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-center.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-right.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-center.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-center.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-center.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-right.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon.icon-bottom-center a,.popover-helptip .card .card-avatar .card-footer .icon.icon-bottom-right a,.popover-helptip .card .card-avatar .card-footer .icon.icon-center a,.popover-helptip .card .card-avatar .card-footer .icon.icon-right a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-center.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-center.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-right.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon.icon-bottom-center a,.popover-helptip .card.card-avatar .card-footer .icon.icon-bottom-right a,.popover-helptip .card.card-avatar .card-footer .icon.icon-center a,.popover-helptip .card.card-avatar .card-footer .icon.icon-right a{margin-right:8px}.a.underline:active,.underline a:active,.underline a:focus,.underline a:hover,a.underline:focus,a.underline:hover{outline:1px!important;text-decoration:underline!important}.card-avatar-small .card,.card-avatar-small .card .card-avatar,.card-avatar-small .card.card-avatar,.card-avatar-small.card{min-height:45px}.card-avatar-small .card .avatar,.card-avatar-small .card .card-avatar .avatar,.card-avatar-small .card .card-avatar .item-avatar .avatar,.card-avatar-small .card .item-avatar .avatar,.card-avatar-small .card.card-avatar .avatar,.card-avatar-small .card.card-avatar .item-avatar .avatar,.card-avatar-small.card .avatar,.card-avatar-small.card .item-avatar .avatar{box-shadow:0 2px 2px 0 rgba(0,0,0,.26);height:30px!important;width:30px!important;left:5px!important}.card-avatar-small .card .card-avatar .item.item-avatar,.card-avatar-small .card .item.item-avatar,.card-avatar-small .card.card-avatar .item.item-avatar,.card-avatar-small.card .item.item-avatar{min-height:25px!important;padding-left:42px!important}.card-avatar-small .card .card-avatar .card-footer,.card-avatar-small .card .card-footer,.card-avatar-small .card.card-avatar .card-footer,.card-avatar-small.card .card-footer{padding-top:0;padding-left:42px!important}.gallery .card-gallery,.gallery .card.card-gallery{margin-bottom:15px!important;float:left;display:block}.gallery .card-gallery img,.gallery .card.card-gallery img{max-height:150px}.gallery .card-gallery-new{max-height:199px}.list .item.text-left{text-align:left!important}.list .item.large-button-bar,.list .item.text-center{text-align:center!important}.list .item.text-right{text-align:right!important}.list .item-divider.item-divider-top-border{border-top:solid 1px rgba(0,0,0,.12)}.lookupForm .list .item.item-avatar.item-checkbox .item-content{padding-left:47px;min-height:auto!important;height:auto!important}.fade-in{opacity:0;filter:alpha(opacity=0);-webkit-transform:translate3d(-30px,1px,0);-webkit-transition:all 1s ease-in-out}.fade-in.on{opacity:1;filter:alpha(opacity=100);-webkit-transform:translate3d(0,0,0)}.item-avatar,.lookupForm .list .item.item-avatar{min-height:80px!important}.item-avatar .item-content i.item-image:first-child,.item-avatar .item-content img.item-image:first-child,.item-avatar .item-content>i:first-child,.item-avatar .item-content>img:first-child,.item-avatar i.item-image:first-child,.item-avatar img.item-image:first-child,.item-avatar-left .item-content i.item-image:first-child,.item-avatar-left .item-content img.item-image:first-child,.item-avatar-left .item-content>i:first-child,.item-avatar-left .item-content>img:first-child,.item-avatar-left i.item-image:first-child,.item-avatar-left img.item-image:first-child,.item-avatar-left>i:first-child,.item-avatar-left>img:first-child,.item-avatar>i:first-child,.item-avatar>img:first-child{color:#d9d9d9;background-color:#f8f8f8;border:solid 1px #d9d9d9;overflow:hidden!important;font-size:45px!important;line-height:56px;width:100%!important;max-height:56px!important;max-width:56px!important;top:12px!important}#menu .footer .item-avatar .item-content>.icon-help:first-child:before,#menu .footer .item-avatar .item-image.icon-help:first-child:before,#menu .footer .item-avatar.item-icon-right .icon-help:first-child:before,#menu .footer .item-avatar>.icon-help:first-child:before,.item-avatar #menu .footer .item-content>.icon-help:first-child:before,.item-avatar #menu .footer .item-image.icon-help:first-child:before,.item-avatar .icon.item-image:first-child:before,.item-avatar .item-content>.icon-alert:first-child:before,.item-avatar .item-content>.icon-help:first-child:before,.item-avatar .item-content>.icon:first-child:before,.item-avatar .item-image.icon-alert:first-child:before,.item-avatar .item-image.icon-help:first-child:before,.item-avatar.item-icon-right #menu .footer .icon-help:first-child:before,.item-avatar.item-icon-right .icon-alert:first-child:before,.item-avatar.item-icon-right .icon-help:first-child:before,.item-avatar.item-icon-right .icon:first-child:before,.item-avatar>.icon-alert:first-child:before,.item-avatar>.icon-help:first-child:before,.item-avatar>.icon:first-child:before{width:56px!important}#menu .footer .item-avatar.item-icon-right .icon-help:last-child,#menu .footer .item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-help,.item-avatar.item-icon-right #menu .footer .icon-help:last-child,.item-avatar.item-icon-right .icon-alert:last-child,.item-avatar.item-icon-right .icon-help:last-child,.item-avatar.item-icon-right .icon:last-child,.item-avatar.item-icon-right.ink #menu .footer .ion-ios-arrow-right.icon-help,.item-avatar.item-icon-right.ink .icon.ion-ios-arrow-right,.item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-alert,.item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-help{left:auto}.item.item-icon-left>i.avatar:first-child{position:absolute;display:flex;height:100%;align-items:center;font-size:16px;left:16px;top:8px;max-height:32px;max-width:32px}.item.item-checkbox.item-avatar * .item-content>i.avatar:first-child,.item.item-checkbox.item-avatar * .item-content>i.item-image:first-child,.item.item-checkbox.item-avatar *>i.avatar:first-child,.item.item-checkbox.item-avatar *>i.item-image:first-child,.item.item-checkbox.item-avatar .item-content>i.avatar:first-child,.item.item-checkbox.item-avatar .item-content>i.item-image:first-child,.item.item-checkbox.item-avatar>i.avatar:first-child,.item.item-checkbox.item-avatar>i.item-image:first-child{left:65px}.item.item-checkbox .item-content .item-avatar,.item.item-checkbox.item-avatar .item-content{padding-left:65px}#menu .footer .item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-help,.item-icon-left.item-icon-right.ink #menu .footer .ion-ios-arrow-right.icon-help,.item-icon-left.item-icon-right.ink .icon.ion-ios-arrow-right,.item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-alert,.item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-help{left:auto}@media screen and (max-width:767px){#menu .footer .item.item-icon-right>.icon-help:last-child,#menu .footer .item.item-icon-right>.ion-ios-arrow-right.icon-help,.item.item-icon-right>.icon-alert:last-child,.item.item-icon-right>.icon-help:last-child,.item.item-icon-right>.icon.ion-ios-arrow-right,.item.item-icon-right>.icon:last-child,.item.item-icon-right>.ion-ios-arrow-right.icon-alert,.item.item-icon-right>.ion-ios-arrow-right.icon-help{right:1px}}.item em,.view-messages .list .item h2.unread{font-weight:700!important}@media screen and (max-width:991px){.item .badge{right:16px}}@media screen and (min-width:992px){.list .item.item-border-large{margin-bottom:1px;border-bottom:solid 1px #ccc!important}.list.item-border-large .item{border-bottom:solid 1px #ccc!important;margin:0 0 1px}.list.item-border-large .item-divider{border-top:0}}.list .item.item-border{border-bottom:solid 1px #ccc!important;margin-bottom:1px}.list .item.item-small-height{padding-top:2px;padding-bottom:0;min-height:24px}.list .item.item-small-height .badge{padding-top:0!important;top:inherit}.list .item.item-small-height .badge.badge-assertive,.list .item.item-small-height .badge.badge-balanced,.list .item.item-small-height .badge.badge-calm,.list .item.item-small-height .badge.badge-editable:hover,.list .item.item-small-height .badge.badge-energized,.list .item.item-small-height .badge.badge-positive,.list .item.item-small-height .badge.badge-royal{top:1px!important;padding-top:3px!important;padding-bottom:2px!important}.form-errors:first-child{margin:5px 0}.form-errors:last-child{margin:5px 0 0}.form-error{padding:0 16px;font-size:12px;color:red;vertical-align:middle;text-align:end;top:0;position:relative}.item-input-error{border-bottom:2px solid red!important}.item-input.item-button-right input,.item-input.item-button-right textarea{margin-right:100px}.item-input.item-button-right .button,.item-input.item-button-right button{top:6px}.item-input.item-button-right.item-floating-label input,.item-input.item-button-right.item-floating-label textarea{padding-right:100px}.item-input.item-button-right.item-floating-label .button{top:inherit;bottom:6px}.item-input.item-button-right.item-floating-label .button-icon{height:inherit}.item.item-button-right .badge,.item.item-icon-right .badge{right:43px}@media screen and (max-width:767px){.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:300px!important;display:block!important}.badge:empty{display:none!important}.item.item-button-right .badge,.item.item-icon-right .badge{right:26px!important}}.badge-editable:hover{cursor:pointer}.badge-editable:hover:before{content:" "}.platform-ipad .bar-title{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%)}.platform-ipad .bar-title .title{background-color:#fff;margin-left:0;margin-right:0;height:44px}.bar .badge-button{margin:0!important;padding:0 4px!important;font-size:10px;position:absolute!important;top:5px;right:3px}.text-editable:hover{cursor:pointer}.text-editable:hover:after{content:""}.item h2 .text-editable:hover:after{font-size:14px}.modal.modal-full-height{bottom:0}@media screen and (max-width:767px){.modal{top:0!important;left:0!important;bottom:0;min-height:100%!important;width:100%!important}}@media screen and (max-width:991px){.modal{bottom:0}.modal .swiper-pagination{visibility:hidden!important}.modal.modal-full-height{top:0}.modal.modal-full-height ion-content.keyboard-up .scroll{min-height:calc(100% + 67px)}}@media (min-width:992px){.modal.modal-full-height{min-height:80%}}.modal.about .bar.bar-header .button+.title{left:0!important}.item-button-right .item-content>.button,.item-button-right .item-content>.buttons,.item-button-right>.button,.item-button-right>.buttons{top:16px}.item-button-right .item-content>.button.button-small,.item-button-right .item-content>.buttons .button-small,.item-button-right>.button.button-small,.item-button-right>.buttons .button-small{font-size:14px}.item.large-button-bar{margin-bottom:10px}.item-avatar-left-padding{padding-left:95px}.item-thumbnail-left-padding{padding-left:106px}.item-thumbnail-left,.item.item-thumbnail-left{min-height:100px!important}.item-thumbnail-left .item-content i.item-image,.item-thumbnail-left .item-content>i:first-child,.item-thumbnail-left i.item-image,.item-thumbnail-left>i:first-child{color:#d9d9d9;background-color:#f8f8f8;overflow:hidden!important;font-size:50px!important;line-height:80px;padding:0 15px;background-position:center;background-size:cover;display:inline-block}@media screen and (max-width:400px){.card>.item.item-thumbnail-left,.item-thumbnail-left,.item-thumbnail-left .item-content{padding-left:84px!important}.item-thumbnail-left .item-content img.item-image,.item-thumbnail-left .item-content>img:first-child,.item-thumbnail-left img.item-image,.item-thumbnail-left>img:first-child{max-width:70px;max-height:70px}.item h2{font-size:13px!important}}.item-icon-left-padding{padding-left:40px}.item-icon-right-padding{padding-right:40px}.text-keep-lines{white-space:pre-line!important}.text-italic{font-style:italic!important}.menu.menu-left{background-color:#f5f5f5}.menu.menu-left .item{opacity:.75;color:#000}.menu.menu-left .item-button-right .item-content>.button,.menu.menu-left .item-button-right .item-content>.buttons,.menu.menu-left .item-button-right>.button,.menu.menu-left .item-button-right>.buttons{top:8px!important}.menu.menu-left .item.active{background-color:#b2e0ff!important}.menu.menu-left .item.active .item-content{background-color:transparent}.menu.menu-left .item-menu-disable{color:#444!important}@media screen and (max-width:991px){.menu.menu-left .item.item-divider{min-height:2px;height:2px;padding-top:0;padding-bottom:0}.menu.menu-left .item,.menu.menu-left .item.item-complex .item-content{height:40px;min-height:40px;padding-top:10px;padding-bottom:10px}.menu.menu-left .item .badge,.menu.menu-left .item.item-complex .item-content .badge{top:10px;padding:2px 6px;font-size:12px}.menu.menu-left .item.item-complex{padding-top:0}.menu.menu-left .item.item-button-right .button{height:30px;min-height:30px;top:4px}.menu.menu-left ion-content.has-footer{bottom:0!important}.menu.menu-left .bar-header{background-color:#1a237e;color:#fff;height:150px;padding-right:0!important}.platform-ios.platform-cordova .menu.menu-left .bar-header{height:calc(constant(safe-area-inset-top) + 150px);height:calc(env(safe-area-inset-top) + 150px)}.menu.menu-left .bar-header .hero{height:150px;box-shadow:none}.menu.menu-left .bar-header .hero .content{bottom:0}.menu.menu-left .has-header{top:150px}.platform-ios.platform-cordova .menu.menu-left .has-header{top:calc(constant(safe-area-inset-top) + 150px);top:calc(env(safe-area-inset-top) + 150px)}}@media screen and (min-width:768px){.menu.menu-left .item.item-divider{min-height:5px;height:5px}.menu.menu-left .footer a{font-size:14px!important;color:gray!important}}@media screen and (min-width:992px){.menu.menu-left{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOmJ4PSJodHRwczovL2JveHktc3ZnLmNvbSI+CiAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDgyNjEsIDAsIDAsIDAuNjA4MjYxLCAtMjAuMDg0OTc2LCAzLjI1NTczNikiPgogICAgPGc+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC43ODsiIGlkPSJwYXRoLTEwIiBkPSJNIDQxOS4xMzMgODUuNzM4IEMgNDE3LjI5NSA4NS43MzkgNDE1LjQ1NSA4NS43NTQgNDEzLjYxMSA4NS43NzggQyAzNTQuODUyIDg2LjU2MSAyOTkuMDIzIDk5LjE3NCAyNDguMzU4IDEyMS4zMiBDIDU4NC4xMjEgMTMuMjA2IDc5Ni4xNzUgMjExLjI2IDgzMS43IDUwOC43NzMgTCA4NDYuMzgzIDUwNy4xMjQgQyA4MTUuNTg2IDIzNS44MDEgNjUyLjQ3NyA4NS41ODggNDE5LjEzMyA4NS43MzggWiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NjM3MywgMC4yNjY4NzgsIC0wLjI2Njg3OCwgMC45NjM3MywgODkuNTA1MjMxLCAtMTM2LjYxNTA2MSkiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDE7IiBpZD0icGF0aC0zIiBkPSJNIDE0Ni4wMzcgMTk0LjA2NSBDIDE0NC4yMDEgMTk0LjA2NiAxNDIuMzYxIDE5NC4wODEgMTQwLjUxNyAxOTQuMTA0IEMgODEuNzYgMTk0Ljg4OCAyNS45MzEgMjA3LjUwMyAtMjQuNzM2IDIyOS42NDggQyAzMTEuMDI5IDEyMS41MzEgNTIzLjA4MyAzMTkuNTgzIDU1OC42MDQgNjE3LjA5MyBMIDU3My4yODQgNjE1LjQ0MyBDIDU0Mi40OSAzNDQuMTIyIDM3OS4zODUgMTkzLjkxMyAxNDYuMDM3IDE5NC4wNjUgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuMTgwOTg4LCAtMC45ODM0ODUsIDAuOTgzNDg1LCAtMC4xODA5ODgsIC0zOS4yOTg1ODEsIDcwNS44OTc1NDQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMSIgZD0iTSA0ODcuNzQ0IDE5My4wODQgQyA0ODUuOTA2IDE5My4wODUgNDg0LjA2NyAxOTMuMSA0ODIuMjIzIDE5My4xMjMgQyA0MjMuNDY0IDE5My45MDcgMzY3LjYzNSAyMDYuNTIgMzE2Ljk3NSAyMjguNjY4IEMgNjUyLjcyNiAxMjAuNTUyIDg2NC43NzUgMzE4LjYwNSA5MDAuMjk5IDYxNi4xMDkgTCA5MTQuOTc5IDYxNC40NiBDIDg4NC4xODQgMzQzLjE0NCA3MjEuMDgxIDE5Mi45MzUgNDg3Ljc0NCAxOTMuMDg0IFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNjE5OTk3LCAwLjc4NDYwNSwgLTAuNzg0NjA1LCAwLjYxOTk5NywgNTIzLjA2NzIzMSwgLTM0My4zMzE1MzkpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjg0OyIgaWQ9InBhdGgtMTIiIGQ9Ik0gMjk1Ljk2OSA0MzIuNzU3IEMgMjk0LjEzMSA0MzIuNzU4IDI5Mi4yOTMgNDMyLjc3MyAyOTAuNDQ5IDQzMi43OTcgQyAyMzEuNjg4IDQzMy41OCAxNzUuODYgNDQ2LjE5NCAxMjUuMTk4IDQ2OC4zNDEgQyA0NjAuOTU3IDM2MC4yMjYgNjczLjAwNSA1NTguMjggNzA4LjUyNiA4NTUuNzg2IEwgNzIzLjIwNyA4NTQuMTM5IEMgNjkyLjQxMiA1ODIuODE5IDUyOS4zMSA0MzIuNjA5IDI5NS45NjkgNDMyLjc1NyBaIiB0cmFuc2Zvcm09Im1hdHJpeCgtMC45Nzg4NDksIDAuMjA0NTg0LCAtMC4yMDQ1ODQsIC0wLjk3ODg0OSwgOTYzLjgyMDc5NiwgMTExNi4zNjcyOTMpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMyIgZD0iTSAxNTguMDM2IDE0OC44MyBDIDE1Ni4yIDE0OC44MzMgMTU0LjM2IDE0OC44NDYgMTUyLjUxNiAxNDguODcyIEMgOTMuNzU5IDE0OS42NTMgMzcuOTMgMTYyLjI2NyAtMTIuNzM0IDE4NC40MTEgQyAzMjMuMDIyIDc2LjMwMSA1MzUuMDc2IDI3NC4zNTIgNTcwLjYwNCA1NzEuODU3IEwgNTg1LjI4NiA1NzAuMjA4IEMgNTU0LjQ4MyAyOTguODkxIDM5MS4zOCAxNDguNjgzIDE1OC4wMzYgMTQ4LjgzIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuMzM4NjE0LCAtMC45NDA5MjYsIDAuOTQwOTI2LCAwLjMzODYxNCwgLTExNS41OTUxNTgsIDQ4My43MDU5ODQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAxOyIgaWQ9InBhdGgtMTQiIGQ9Ik0gNTAxLjAxOSAyODguMjkyIEMgNDk5LjE4MSAyODguMjkzIDQ5Ny4zNCAyODguMzA4IDQ5NS40OTYgMjg4LjMzMSBDIDQzNi43MzYgMjg5LjExNSAzODAuOTA4IDMwMS43MjYgMzMwLjI0MyAzMjMuODc0IEMgNjY2LjAwNCAyMTUuNzU3IDg3OC4wNjIgNDEzLjgxMiA5MTMuNTg2IDcxMS4zMjIgTCA5MjguMjY4IDcwOS42NzMgQyA4OTcuNDY4IDQzOC4zNTIgNzM0LjM2MSAyODguMTQxIDUwMS4wMTkgMjg4LjI5MiBaIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjE2NDY1NiwgMC45ODYzNTEsIC0wLjk4NjM1MSwgMC4xNjQ2NTYsIDk4Mi44NTcyNjYsIC0yMzMuNDUyMDYzKSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC40OyIgaWQ9InBhdGgtMTUiIGQ9Ik0gMTkyLjk1NCAzNzYuNTIxIEMgMTkxLjExNSAzNzYuNTIyIDE4OS4yNzcgMzc2LjUzNyAxODcuNDMzIDM3Ni41NjEgQyAxMjguNjc0IDM3Ny4zNDQgNzIuODQ1IDM4OS45NTggMjIuMTgxIDQxMi4xMDMgQyAzNTcuOTQgMzAzLjk4OSA1NjkuOTg3IDUwMi4wNDUgNjA1LjUwNSA3OTkuNTUzIEwgNjIwLjE4OCA3OTcuOTA1IEMgNTg5LjM5MiA1MjYuNTg0IDQyNi4yOTUgMzc2LjM2OSAxOTIuOTU0IDM3Ni41MjEgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuOTMxNDA0LCAtMC4zNjM5ODgsIDAuMzYzOTg4LCAtMC45MzE0MDQsIDQxOS40OTkwMDYsIDExODIuNTk5ODA5KSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMTsiIGlkPSJwYXRoLTE2IiBkPSJNIDIyMS42MTQgNjMuOTczIEMgMjE5Ljc3NyA2My45NzYgMjE3LjkzOCA2My45OSAyMTYuMDk0IDY0LjAxNSBDIDE1Ny4zMzQgNjQuNzk1IDEwMS41MDYgNzcuNDA5IDUwLjg0MSA5OS41NTQgQyAzODYuNTk4IC04LjU1OSA1OTguNjUxIDE4OS40OTcgNjM0LjE3MyA0ODcuMDAxIEwgNjQ4Ljg1NCA0ODUuMzU0IEMgNjE4LjA1OCAyMTQuMDM3IDQ1NC45NTQgNjMuODI0IDIyMS42MTQgNjMuOTczIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNzUwNDUyLCAtMC42NjA5MjUsIDAuNjYwOTI1LCAwLjc1MDQ1MiwgLTcwLjgwMzMyMiwgMjkwLjkyMDI3MykiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDAuNDsiIGlkPSJwYXRoLTE3IiBkPSJNIDQ0MS44ODggMzQyLjA5OCBDIDQ0MC4wNDcgMzQyLjA5OCA0MzguMjA3IDM0Mi4xMTQgNDM2LjM2MiAzNDIuMTM4IEMgMzc3LjYwMSAzNDIuOTIyIDMyMS43NjUgMzU1LjUzNSAyNzEuMTAzIDM3Ny42ODEgQyA2MDYuODg2IDI2OS41NjcgODE4Ljk0NCA0NjcuNjE1IDg1NC40NjIgNzY1LjEzMyBMIDg2OS4xNDIgNzYzLjQ4MyBDIDgzOC4zNTQgNDkyLjE1NCA2NzUuMjQyIDM0MS45NDggNDQxLjg4OCAzNDIuMDk4IFoiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjM1NjU4MiwgMC45MzQyNjQsIC0wLjkzNDI2NCwgLTAuMzU2NTgyLCAxMjU2Ljc1OTQ5MywgMTY5LjE4MjU1MikiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc2MjQ5MywgMCwgMCwgMC43NjI0OTMsIDE5LjI5NDY0NywgLTcxNi4zMjI4MTUpIj4KICAgICAgICA8cGF0aCBkPSJNIDU2Ni40NjYgMTA4OS4xMzcgTCA1NjYuNDY2IDExNDguMjIyIEMgNTY1Ljg2NyAxMTQ4LjIxOSA1NjUuMjY3IDExNDguMjE3IDU2NC42NjcgMTE0OC4yMTcgQyA1NjEuNDgxIDExNDguMjE3IDU1OC4zMSAxMTQ4LjI1OSA1NTUuMTU0IDExNDguMzQxIEwgNTU1LjE1NCAxMDg5LjEzNyBaIE0gOTA4LjI5IDE0NzcuMTQ2IEwgOTU2Ljk4NyAxNDc3LjE0NiBMIDk1Ni45ODcgMTQ4OC40NTggTCA5MDguNTY5IDE0ODguNDU4IEMgOTA4LjUzOSAxNDg0LjY5MyA5MDguNDQ3IDE0ODAuOTIyIDkwOC4yOSAxNDc3LjE0NiBaIE0gNTY2LjQ2NiAxODM1LjAxMyBMIDU2Ni40NjYgMTg3Ni40NjcgTCA1NTUuMTU0IDE4NzYuNDY3IEwgNTU1LjE1NCAxODM0Ljg4NiBDIDU1OC4zMTggMTgzNC45NzMgNTYxLjQ5IDE4MzUuMDE3IDU2NC42NjcgMTgzNS4wMTcgQyA1NjUuMjY3IDE4MzUuMDE3IDU2NS44NjcgMTgzNS4wMTYgNTY2LjQ2NiAxODM1LjAxMyBaIE0gMjIwLjc3NSAxNDg4LjQ1OCBMIDE2OS42NTcgMTQ4OC40NTggTCAxNjkuNjU3IDE0NzcuMTQ2IEwgMjIxLjA4OSAxNDc3LjE0NiBDIDIyMC45MjEgMTQ4MC45MDkgMjIwLjgxNiAxNDg0LjY4IDIyMC43NzUgMTQ4OC40NTggWiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgc3Ryb2tlOiBub25lOyIgYng6b3JpZ2luPSIwIDAiLz4KICAgICAgICA8cGF0aCBkPSJNIDc2MC4xMjEgMTE0My4zMTEgTCA3MTcuMzM2IDEyMTcuNDE3IEMgNzE1LjcyIDEyMTYuNTE4IDcxNC4wOTYgMTIxNS42MzIgNzEyLjQ2NSAxMjE0Ljc2MSBMIDc1NS4zMTggMTE0MC41MzcgWiBNIDgzMC4xMjIgMTMyNC4yMDMgTCA5MDAuNDI0IDEyODMuNjE0IEwgOTAzLjE5OCAxMjg4LjQxNyBMIDgzMy4wNCAxMzI4LjkyMyBDIDgzMi4wOCAxMzI3LjMzOSA4MzEuMTA3IDEzMjUuNzY2IDgzMC4xMjIgMTMyNC4yMDMgWiBNIDg0MC41OTkgMTY0MS4xMzcgTCA5MDMuMTk3IDE2NzcuMjc4IEwgOTAwLjQyNCAxNjgyLjA4MiBMIDgzNy45MTEgMTY0NS45OSBDIDgzOC44MjEgMTY0NC4zOCA4MzkuNzE3IDE2NDIuNzYyIDg0MC41OTkgMTY0MS4xMzcgWiBNIDcyNS4xNjggMTc2MS44NDMgTCA3NjAuMTIyIDE4MjIuMzg1IEwgNzU1LjMxOCAxODI1LjE1OCBMIDcyMC4zNzkgMTc2NC42NDEgQyA3MjEuOTg1IDE3NjMuNzIyIDcyMy41ODIgMTc2Mi43ODkgNzI1LjE2OCAxNzYxLjg0MyBaIE0gNDAzLjUzOCAxNzYwLjkzMiBMIDM2Ni40NTYgMTgyNS4xNTkgTCAzNjEuNjUzIDE4MjIuMzg2IEwgMzk4LjgwMiAxNzU4LjA0MiBDIDQwMC4zNzIgMTc1OS4wMTkgNDAxLjk1MSAxNzU5Ljk4MiA0MDMuNTM4IDE3NjAuOTMyIFogTSAyODkuNTggMTY0Mi42ODkgTCAyMjEuMzUgMTY4Mi4wODIgTCAyMTguNTc3IDE2NzcuMjc5IEwgMjg2Ljk0NCAxNjM3LjgwNyBDIDI4Ny44MDcgMTYzOS40MzcgMjg4LjY4NSAxNjQxLjA2NSAyODkuNTggMTY0Mi42ODkgWiBNIDI5NC4zNTQgMTMzMi4xNjggTCAyMTguNTc2IDEyODguNDE3IEwgMjIxLjM1IDEyODMuNjE0IEwgMjk3LjIxMyAxMzI3LjQxNCBDIDI5Ni4yNDYgMTMyOC45OSAyOTUuMjkzIDEzMzAuNTc1IDI5NC4zNTQgMTMzMi4xNjggWiBNIDQwNi4wNzkgMTIyMC4yNTkgTCAzNjEuNjUzIDExNDMuMzExIEwgMzY2LjQ1NyAxMTQwLjUzNyBMIDQxMC44ODkgMTIxNy40OTUgQyA0MDkuMjc2IDEyMTguNDAzIDQwNy42NzMgMTIxOS4zMjQgNDA2LjA3OSAxMjIwLjI1OSBaIiBzdHlsZT0iZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBzdHJva2U6IG5vbmU7IiBieDpvcmlnaW49IjAgMCIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8cmVjdCB4PSI0MjkuMzY3IiB5PSI0MjUuOTc5IiB3aWR0aD0iMjAuMDAzIiBoZWlnaHQ9IjIxLjczNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTkxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAwLjk5OTk5OSwgLTMwMS4zNzcwNzUsIC0yMTkuNDk4NDM0KSIvPgogICAgPHJlY3QgeD0iNDQ2Ljg1MyIgeT0iMjUuNDYyIiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05MyIvPgogICAgPHJlY3QgeD0iLTEzNS45NTYiIHk9IjYwNS4xNDEiIHdpZHRoPSIzOS44NTEiIGhlaWdodD0iMzkuODUxIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTQiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk5OTk5LCAwLCAwLCAxLCA4NDYuMTc2NzU2LCAtMzk0Ljk1NjAyNCkiLz4KICAgIDxyZWN0IHg9IjIyNS43NzkiIHk9IjY4OS44MzYiIHdpZHRoPSIyNS45OSIgaGVpZ2h0PSIyNS45OSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk1Ii8+CiAgICA8cmVjdCB4PSI1OTQuMDEzIiB5PSI3MzcuMTQyIiB3aWR0aD0iMjAuNzkyIiBoZWlnaHQ9IjIyLjUyNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk2Ii8+CiAgICA8cmVjdCB4PSIzODcuMjM1IiB5PSI0NzkuMzk3IiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05OCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4wMDAwMDEsIDAsIDAsIDAuOTk5OTk5LCAzNjUuMjc0OTY2LCA3OS4yOTUyNDEpIi8+CiAgICA8cmVjdCB4PSI0MjEuOTYyIiB5PSI3NzUuOTM3IiB3aWR0aD0iMzIuOTIiIGhlaWdodD0iMzQuNjUzIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTkiLz4KICAgIDxyZWN0IHg9Ii02Ni45MzkiIHk9Ii01NjguOTc4IiB3aWR0aD0iMjAuODY3IiBoZWlnaHQ9IjIwLjc5MiIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTEwMSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsIDAsIDAsIDAuOTk5OTk3LCAzMS4zNTY5MjgsIDk4NC43MzYzMDYpIi8+CiAgPC9nPgo8L3N2Zz4=);background-repeat:no-repeat;background-position:-500px -100px;background-size:1024px 1024px;background-color:#f5f5f5;height:100%}}.certifications .item-divider .badge{top:16px!important}.certifications-lg .avatar-large{left:auto;position:relative;font-size:55px!important;height:88px;width:88px;color:#d9d9d9;background-color:#e0e0e0;border:solid 1px #d9d9d9}.icon-alert,.icon-help{font-size:38px;vertical-align:middle}#menu .footer .icon-help{font-size:25px!important;position:absolute;left:12px;top:8px;z-index:99}.popover-helptip{background-color:rgba(68,68,68,.85)!important;height:auto!important}.popover-helptip .button-close{padding:8px;height:25px;font-size:18.2px}.popover-helptip a,.popover-helptip a:active,.popover-helptip a:hover{text-decoration:underline}.nobackdrop .popover-backdrop.active{background-color:transparent!important}.helptip-anchor,.helptip-anchor-center,.helptip-anchor-left,.helptip-anchor-right{display:block;position:absolute;width:100%;bottom:0}.helptip-anchor-center,div[dropzone]{text-align:center}.helptip-anchor-left,div[dropzone] .item,div[dropzone] .list .item{text-align:left}.helptip-anchor-right{text-align:right}.helptip-anchor a:before,.helptip-anchor-center a:before,.helptip-anchor-left a:before,.helptip-anchor-right a:before{content:" "}@media (max-width:767px){.popover-helptip{width:auto}}#menu .footer .popover-helptip .icon-left.icon-help,.popover-helptip #menu .footer .icon-left.icon-help,.popover-helptip .icon-left.icon-alert,.popover-helptip .icon-left.icon-help,.popover-helptip .icon.icon-left{font-size:30px;position:relative;top:8px;left:8px}#menu .footer .popover-helptip .icon-right.icon-help,.popover-helptip #menu .footer .icon-right.icon-help,.popover-helptip .icon-right.icon-alert,.popover-helptip .icon-right.icon-help,.popover-helptip .icon.icon-right{font-size:30px;position:relative;top:8px;right:8px}#menu .footer .popover-helptip .icon-center.icon-help,.popover-helptip #menu .footer .icon-center.icon-help,.popover-helptip .icon-center.icon-alert,.popover-helptip .icon-center.icon-help,.popover-helptip .icon.icon-center{font-size:30px;width:100%;text-align:center;position:relative;top:8px;height:0}#menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-helptip .icon-bottom-right.icon-alert,.popover-helptip .icon-bottom-right.icon-help,.popover-helptip .icon.icon-bottom-right{font-size:30px;position:relative;bottom:8px;right:8px}#menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-helptip .icon-bottom-left.icon-alert,.popover-helptip .icon-bottom-left.icon-help,.popover-helptip .icon.icon-bottom-left{font-size:30px;position:relative;bottom:8px;left:8px}#menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-helptip .icon-bottom-center.icon-alert,.popover-helptip .icon-bottom-center.icon-help,.popover-helptip .icon.icon-bottom-center{font-size:30px;position:relative;width:100%;bottom:8px;text-align:center;height:0}.popover.popover-profile{height:200px}.popover.popover-profile .avatar{height:90px;width:90px;left:20px;top:20px;border:solid 1px #d9d9d9}.popover.popover-profile .bar.bar-footer{height:58px}.popover.popover-profile .bar.bar-footer .col .button{max-width:inherit;width:100%;padding:5px 0;margin:0}.popover.popover-profile .bar .button-positive,.popover.popover-profile .bar .button-text{background-color:#387ef5!important}.popover.popover-profile .bar .button-stable,.view-messages .list .item h2.read{color:#444!important}.bar-header .button-icon .avatar{border:solid 1px #d9d9d9;height:31px;width:31px;position:relative;left:0;top:6px}.bar-header .button-icon .avatar.active{background-color:#e0e0e0}.list .badge .badge-secondary,.list .badge.badge-secondary{font-size:12px;font-style:italic;top:37px;font-weight:400!important;margin-right:0;padding:3px 8px}.list .item-avatar .badge.badge-avatar{position:absolute!important;left:60px!important;right:inherit!important;top:15px!important;margin:0!important;padding:0 4px!important;font-size:10px}.popover.popover-login-methods{height:280px;width:290px}.popover.popover-login-methods.auth{height:204px}@media (max-width:767px){.popover.popover-login-methods{height:256px}.popover.popover-login-methods.auth{height:204px}}.ion-es-user-api:before{content:url(../img/logo.small.cs.dune.svg)}.ion-bma-tor-api:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAATEAYAAAChBNO0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAB3lJREFUWMPNmGtUVNcVx/93mBlmgEGeAyhYUoSERhmM9ZHSCL4AqURFEmSBEZOgWGqh0pqYNkREiIlxxSXqYpUoJhqVRWJ41tooKNYIGR8R8QlKAsj7PQ9k7tx7++Gc6VpQnctK4lo9X35zz+x79v7vM2fffYfB/8lYty4iIjFx/Oz0TEJpD2HTLwj1RmqwvbDw9OmjR3+8XylxHPBPcuk1QucbKIUn3GeZ/45eJlCWEfJfEJp3Ew6qqIADhNw3lsDHCrf1I9SMEi6XERpOEV7YRLn950q8lODUfcLJWVRIpkgCLGMG5S5q/kfKRXR+D0H7TSrIhfD2+B33JUiII0xZR6i4QljwiLC23HLDT915y2BIIIKY0J84DFsII/5NePHS2O9dqdDT8YTBdOezUwlzHxKyOT+XcMuQUCY93QQwv6TudkAKbygBhKAEMZMiuA7uGtc601HIETYL259loYASikNbif2uWU9LuGXQI2CqI5Q/rQw4Uvq6/86rUq0DpB9KG2xWrmzybvMt8FFnyBvmX6m5sbN/qiFT3294Pq9HUi1RSq4YE3+s8McXVUkela0g5BxoAr5MJgycR8i8Q+OmP1nfY3S+zbrbrgrKNdQ+gPDBNcIWvxFvw7GRBkChV+bbajvbg34951pwcYDUrDLfM2fZpGtrapK/XR1ikLCSQxKPG/8VIpaIxwv2CSNcyRH+ZgehcwFhz1l6BJLoDi2IIgwtpsvSwAevWxcu+BBmLiZ8iZ7d0BrC+C19tl2He9f+cKcitXhhaar8kGyJ/Dl5+txbihi7EuV+mZ1sozxavt9mhcQoiZTIVx3Hi1iE36pN1gU+aX6BPWHpAsI9VHBcJ2F4NGFCNWN9wUBavM7fInQvx2MHq6WZbiGsjL3N1JfdqgDWx2ZoNu4FKtnil8oLnhkMUsz+SPPu1mURbas+XuqX+KW7ndc2dYVS3Tjjps89CVA+fGxJaTY/YDira9GvO/cv5gFjwzx8fwNZt9qbkLv5+DiC/k5Y/AFhQBNEhsT613wppVnkF0AbE65EOCDkCHnAkYozyuNNQM2bpz87lxKuXey/PDo8unRnkmt66xs+yYemF866PENQqtllplzWH5g27Vce/ksBzRtzZJp7EmfhIr9X+HphHBgwYIrayfoZ9GlgmzXWv00rYZr/RIVPNAGhlG+JrEMbFcFTtlwmk20Gco9t/ir76gtVizetKAnPP1ATv3BDbYJqxvsqT6cwx2z4DysHzw7nA85rXZ2d2wAunq3mQgDNxrlzZnYBCg+7VMVqAJ8Je4VCFzuyflY9YcpHY917ORGGFU1MthBLqJOLJEAIox/iRVbsoPaOB9dUag4XSouDN80Nmdm/9fXIPaviohr8NhtN+lhjEcDam15kWwCPbVNe8wwFdMuH5uk6AVOaKce0CFAE2mUpUwHVQadGRwdA8BZG4GZxo6C1Jo2eZb+phPafEqpU1sM0BBK+R/uMcEYkAaiiwr4RsRsFBw4cfz6mbl7wy/y0Rv/h5+UB3qGZ/B4hht8B8LuFFfx2wCXHLcXFFeg/2VPcNxlQJtg/tDsOyJbKOGkqYC5idWwuYDNV8pZEAwiXUPW/3n19CWfT2oRXCSRfWQ/zPu0r9tNOs9YkloA+ygEROw5deIhOYZFdmMOAfZ7DC47tzsGT4pS8/s7QXf0WwKnTJdc5BeiWd6R0xQIOMY7xqn8A8lrbM/IRgPFkIphngJFso/ej+QDrZYpihwDmbWYX87fx7phuwilrqfA/j92wJ+5TCSGrscyIJeA8ZZ2I3SBsoYAtWvlWbhdfL+SzR9ledpugtmmXJtlwwPCRgSVDQYDiO6WXwgmQVksTpU3AUFR/xYAWQC860Qv0ft25vscDMMzXbzV0AEwxapnSJ7k10scZQ99JmG+th2mm/Y7wygQTIFgeiH8SScBtuEINN2Ztt7LjD11xP5R9H9Ho2BzedFBoFIqFemCgo8+jfw0gmybn5NHA4M6+GwM2gPRz2UaZFjCFjEaa7IG2qmbPlruA6dToSdMOAMuY1Yge7073HmE9rQ6S+TQB90X0PEf5yUQTcJiQvyxiRxsn5vfT5bMWB6X28tdwafBqRt65u6jfd+fCSMOw20Dd8BGgc1ZbZEcGwJawJnY3wDfwb/M1gL5E12B4Beha1v5x1z4AznCHCwAj9DCO91dOH3PafYRS+pbJXBDZKNqvWIq2aAK412gCSq3bWYoQ79K/t/uDPjNwVXpReznt875qTWXOWb+c9d+nNYU2pw/trw/QFlwvA/rcux/1vQv0xHfoesqgbyy6mX33HfT2nux8tccOECqFE0IZADd4wp1LosLpa/ZfHQhN9H8MNNONyLUeJm9L7dSWGan1G4y0pexeRTg5nS5Eqyi6CPrpe/yQgpkpeZMJwRlV3aRc1WyTtEpdrj0z5cMSvXF4jc7jtp9tgCJfEb+p9Eaydsn183OTZa/Lm2VHld2tUQ8+bY2Gg+nEaORooPkE8xfGh6lt3EAaoSO0un9Ci1xPztg4hxtpnLQfcaA1QaBHhKH/U7Q/S8g6We78Dzmv92D5rFiKAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTE0VDExOjU4OjIwKzA1OjAwUOI3hwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0xNFQxMTo1ODoyMCswNTowMCG/jzsAAAAvdEVYdHN2Zzpjb21tZW50AD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/5MH3awAAAABJRU5ErkJggg==)}.row-header{border-bottom:solid 1px #ccc!important;margin:0;min-height:28px!important}.col-header{text-align:center;display:block!important}.col-15{-webkit-box-flex:0;-webkit-flex:0 0 15%;-moz-box-flex:0;-moz-flex:0 0 15%;-ms-flex:0 0 15%;flex:0 0 15%;max-width:15%}.col-border-left{border-left:solid 1px #ccc!important}.col-border-right{border-right:solid 1px #ccc!important}.ion-spinner-small{line-height:14px;margin:0;padding:0}.ion-spinner-small,.ion-spinner-small svg{height:14px;width:14px}.icon-secondary{position:absolute;height:100%;display:flex;align-items:center;font-size:16px;left:25px;top:-7px}div[dropzone]{border:2px dashed #bbb;border-radius:5px;padding:15px;font:20pt 700;color:#bbb;margin-bottom:20px;cursor:pointer}div[dropzone]:hover{background-color:#f2f2f2}.button-fab-hero.button-fab-top-left,.button-fab-hero.button-fab-top-right,.hero .button-fab-top-left,.hero .button-fab-top-right{top:170px!important}.bar .button.button-fab.mini,.button.button-fab.mini{min-width:40px;min-height:40px}.button-fab-hero.button-fab-top-left.mini,.button-fab-hero.button-fab-top-right.mini,.hero .button-fab-top-left.mini,.hero .button-fab-top-right.mini{top:178px!important}.text-no-transform{text-transform:inherit}.button-icon-event,.item-icon-event{text-transform:inherit;pointer-events:none!important}#menu .footer .button-icon-event .icon-help,#menu .footer .item-icon-event .icon-help,.button-icon-event #menu .footer .icon-help,.button-icon-event .icon,.button-icon-event .icon-alert,.button-icon-event .icon-event,.button-icon-event .icon-help,.item-icon-event #menu .footer .icon-help,.item-icon-event .icon,.item-icon-event .icon-alert,.item-icon-event .icon-event,.item-icon-event .icon-help{pointer-events:all!important}.hero.dark-100-bg{background-color:#555}.hero.positive-900-bg{background-color:#1a237e!important}.hero.stable-bg{background-color:#f8f8f8!important}.popover-locked-outputs .item .badge{right:16px!important}.animate-show-hide.ng-hide{opacity:0}.animate-show-hide.ng-hide-add,.animate-show-hide.ng-hide-remove{transition:all linear .3s}.modal iframe.iframe-license{width:100%;height:calc(100% - 171px)!important}@media screen and (max-width:767px){.modal iframe.iframe-license{height:calc(100% - 104px)}}@media screen and (min-width:768px) and (max-width:991px) and (min-height:600px){.modal iframe.iframe-license{height:calc(100% - 171px)}}@media screen and (min-width:992px){.modal iframe.iframe-license{height:calc(100% - 171px)}.modal.modal-license iframe.iframe-license{height:calc(100% - 111px)!important}}.modal.modal-help .row.selected .col:first-child{font-weight:700}@media screen and (max-width:767px){.modal.modal-help .row .col:first-child{font-weight:700}.modal.modal-help h2{padding-left:10px}}.modal.modal-login .item.item-icon-right.item-text-wrap .item-content{margin-right:58px;text-overflow:ellipsis;overflow:hidden}.popover-locales{height:284px;width:200px}.popover-locales .item{height:48px}.buttons-tabs{display:block;height:57px;border:0;padding:16px 16px 0;overflow:hidden}.buttons-tabs .button.button-tab:first-child{border-top-left-radius:15px}.buttons-tabs .button.button-tab:last-child{border-top-right-radius:15px}.buttons-tabs .button.button-tab.active{background-color:#b2e0ff}.buttons-tabs.border-bottom{border-bottom:solid 1px #ccc!important}@media screen and (max-width:767px){.buttons-tabs{padding:10px 10px 0}.buttons-tabs .button.button-tab{padding:2px 10px 0!important}}#newAccount h1{font-size:25px;margin-top:30px}.badge sub,.badge sup{line-height:inherit}#home h1,#home h2{padding-top:15px;text-align:center}#home h2{font-size:22px;padding-bottom:15px;color:#fff}#home .footer .title{padding-top:0;font-size:14px;color:gray}#modal-license{color:#000}.bar .button.button-clear{font-size:12px!important;font-weight:300!important;width:initial!important;min-width:44px!important;max-width:90px!important}.bar .button.button-clear:first-child{margin-left:5px}.popup-buttons .button{padding:0 2px!important}#composeMessage .list .item,#transfer .list .item,.list .item-input,.popover .list .item{border-bottom:solid 1px #ccc}#transfer .list .item.item-no-border{border-bottom:0}#transfer .item.item-icon-right input{padding-right:50px!important}.menu .avatar{height:88px;width:88px}.center{text-align:center}.col-pubkey{min-width:130px!important}.modal .title{text-align:center!important}.slider{height:100%}.slider-slide{color:#000;background-color:#fff;font-family:"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;font-weight:300}#list{width:170px;margin:30px auto;font-size:20px}#list ol{margin-top:30px}#list ol li{text-align:left;list-style:decimal;margin:10px 0}.button.ng-hide{display:none}.settings .item-divider{background-color:#f5f5f5}.settings .item .input-label{width:80%}.settings .item-select .input-label,.settings .item-toggle .input-label{display:inline;width:auto;max-width:50%}.settings .item .badge{top:22px}.no-margin{margin:0!important}.item-block,.list .item-peer{padding-top:9px;padding-bottom:3px}.list .item-peer .badge{top:14px;right:6%}.list .item-peer:hover .badge.badge-balanced,.list .item-peer:hover .badge.badge-energized{color:#fff!important}.list .item-peer .badge .badge-secondary,.list .item-peer .badge.badge-secondary{top:31px;font-size:10px;padding-right:6px}.list .item-peer.compacted{padding-top:0;padding-bottom:0;min-height:3px!important;max-height:3px!important;border-bottom:double 1px #ddd!important}.list .item-peer.compacted>*{display:none}.item-block{padding-top:4px;max-height:48px}.item-block .badge{top:12px;right:6%}.item-block.item-block-empty{min-height:24px!important;max-height:24px!important;padding-top:0;padding-bottom:0}.item-block.item-block-empty .badge{padding-top:0!important;top:inherit}.item-block.item-block-empty .badge.badge-balanced{top:0!important;padding-top:3px!important;padding-bottom:2px!important}.item-block-empty.compacted{min-height:3px!important;max-height:3px!important;border-bottom:0!important}.item-block.item-block-empty.compacted{border-bottom:double 1px #eee!important}.list .item.item-wallet .badge{top:29px}.list .item.item-wallet{height:38px}.ng-image-crop{text-align:center;margin:0 auto;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.ng-image-crop>section{background:#ccc}.ng-image-crop button{margin-top:10px}.ng-image-crop .cropping-guide{display:block;background:rgba(255,255,255,.3);border:2px dashed #fff;position:absolute;pointer-events:none}.ng-image-crop--circle .cropping-guide{border-radius:50%;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%}.ng-image-crop .cropping-canvas{background:rgba(255,255,255,.3);margin:0 auto;cursor:move}.ng-image-crop .zoom-handle{display:block;position:absolute;bottom:1px;left:1px;background:rgba(255,255,255,.7);width:80px;height:80px;cursor:move;border-radius:200px 50px}.ng-image-crop .zoom-handle>span{color:rgba(0,0,0,.5);-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg);display:block;position:relative;top:32px}.leaflet-image-layer,.leaflet-layer,.leaflet-map-pane,.leaflet-marker-icon,.leaflet-marker-pane,.leaflet-marker-shadow,.leaflet-overlay-pane,.leaflet-overlay-pane svg,.leaflet-popup-pane,.leaflet-shadow-pane,.leaflet-tile,.leaflet-tile-container,.leaflet-tile-pane,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden;-ms-touch-action:none;touch-action:none}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-control-layers label,.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container img{max-width:none!important}.leaflet-container img.leaflet-image-layer{max-width:15000px!important}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-tile-pane{z-index:2}.leaflet-objects-pane{z-index:3}.leaflet-overlay-pane{z-index:4}.leaflet-shadow-pane{z-index:5}.leaflet-marker-pane{z-index:6}.leaflet-popup-pane{z-index:7}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:7;pointer-events:auto}.leaflet-bottom,.leaflet-top{position:absolute;z-index:1000;pointer-events:none}.card.card-comment .card-footer button,.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup,.leaflet-fade-anim .leaflet-tile{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup,.leaflet-fade-anim .leaflet-tile-loaded{opacity:1}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);-o-transition:-o-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-touching .leaflet-zoom-animated,.leaflet-zoom-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-clickable{cursor:pointer}.leaflet-container{cursor:-webkit-grab;cursor:-moz-grab}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-clickable,.leaflet-dragging .leaflet-container{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing}.leaflet-container{background:#ddd;outline:0}.leaflet-container a{color:#0078a8}.leaflet-container a.leaflet-active{outline:2px solid orange}.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,.5)}.leaflet-container{font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a,.leaflet-bar a:hover{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-align:center;text-decoration:none;color:#000}.leaflet-bar a:hover{display:block;background-color:#f4f4f4}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px 'Lucida Console',Monaco,monospace;text-indent:1px}.leaflet-control-zoom-out{font-size:20px}.leaflet-touch .leaflet-control-zoom-in{font-size:22px}.leaflet-touch .leaflet-control-zoom-out{font-size:24px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAVbSURBVEiJrZZfSFt3FMe/v3tvbmLUZleNKSHE/LGRiNbGRovTtrA9lcFkpcOnMvawwhhjrb3soQ8djGFhXMQNRqEvY3R9kJVuPpRRWQebcdKYxkaHqcHchKJ2rVo1WhNz//z2UOLUadVuv9fvOedzfuec3x9CKcV+1qVLlwgAdHV17cuR7AfU29tb43a73wWAVCr1Q0dHx8T/Curu7i5ubGw843K5ms1mMwBgdXUV6XQ6HI1Gb3Z2dj7/z6C+vr6T1dXVp6xWa+l2+uzs7PLk5OTP7e3tv70S6Pr1647q6uoOt9vtYRjmpcnouo5UKiVPTk72nj17dmpPIEmS+IaGhnaPx3O8tLSU3ahRSotyudzrAGAymf4ghGQ36svLy5osywOxWKxPFMX8jqBbt241ejyed+x2e9nWjPL5fK2iKC2UUiMAEELWDAbDEM/z41ttZ2Zmnsmy/OPp06ejm0DXrl2rqK2tPeNyuQ7zPL9pi5qmVaytrZ3Qdf3gdiVhGOYvo9H4O8uyc1sSI+l0enR8fPzmuXPn5sjt27ff8nq9bwiCYNpSJsPa2lqzqqr1AF7eJEDnOG7MaDSGCSHKRmFhYSGXTCZ/Zd1u93dOp3NJEAS9ICqK4snlcm/puu4EQHaBAADRdf2gqqo1hJBllmUXCsLjx4+L7t69e4Ztamqaffjw4QepVOr5oUOHDKqqvqkoShAAvwfA1sVrmlataVqlqqqzvb29lnA43KwoymeEUoqenp7XdF3vW11dPX7s2DHi9XpfgfHPSiaTuHfvHjWbzQMMw7SfP39+kUSj0ZOU0qsA/EtLSwiHwygpKUFraysOHDiwL0Amk8Hg4CBWVlbQ3NwMi8UCAHFCyIesw+H43uFwuAwGg9lkMsHj8SCfzyMUCkFRFNhsNux2YDVNQzQaRSgUgsvlwtGjR2EyvZitbDbL9Pf3H2YDgcD8xMREk67rCZvN5iSEkLKyMrjdbsiyjJGREVgslh13NzU1hf7+fui6jra2NlitVhBCQCmlo6OjoYGBASWbzX5BKKW4cuWKhRDyk67rJ4LBIFNRUbEeaHZ2FpFIBDabDS0tLSgqKipkiqGhITx58gTBYBBWq3XdZ25uDpFIhLIsO8jzfPuFCxeekTt37rQCuAqgfmVlBfF4HOXl5Thy5Ah4/sXgUUoRj8chyzIaGhoAALFYDB6PB36/H4S8OAH5fB4PHjzA/Pw8/H4/SkpKACAB4CPW6/XeqKysrOI4rpjnedjtdmSzWUSjURgMBgiCAEIIrFYrHA4HxsfHsbi4iNbWVtjt9nWILMsYGhpCeXk5ampqYDQaC3AyPDxcSy5evPg2IaTL6XTO+3y+NkIIAwCKoiCRSEBVVTQ1Ne3Yo0wmg+HhYXAcB5/PB4PBUJBoMpkclGW5lFJ6mVBKIYpiMYDLHMedCgQCnCAI/oL1wsICEokEHA4H6uvr1ydQ13WMjY1hamoKPp8PgiBshE/ev38/oyjKLwA+lyTp+abbWxTFOgDfCIKAQCAQ4DiutNCjdDqNp0+fIhAIAABGRkZQWVkJl8u1Xj5N01Zjsdjw3NwcBfCxJEl/FmL/6z0SRZEAeJ8QIvp8vsWqqqqWgpbL5RCPxwEAfr9//awAwPT0dDgejxfput4D4FtJkjYF3vGFFUWxHMCXRqPxcDAYtBYXF1dtZ5fNZmcikcijbDY7DuBTSZLmt7Pb9c8gimIbIeQrm82Wqaura2EYxggAlFI1Ho8PTk9PmymlnZIkhV4WZ0+/IFEUOQCdDMO8V19fn2NZ1hCLxaimaTcAdEuSpO4WY1//OlEUnQC+BkABfCJJ0qO9+v4NmO9xnZob3WcAAAAASUVORK5CYII=);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAbrwAAG68BXhqRHAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAArPSURBVGiB3Zp7TFvXHce/916/eBhCDInJwDjGBhvjQHi5SclaKRL5Z1Wl/rEq/WNr11TJmkpMw900pLVrplJ1cadFarp0zdZmmpZpf3SqNrUKfSnKgwI2sQPGBmNjAsUOxCW8bGzfe8/+SEAkMfa1A5m075/2+f3O+Z7X595zLkUIwf+T6EdRSWdnp7izs1P8KOqitnqE3n///QMajeYZAPD7/R8fPXr00lbWt2WGTp48qdRoNC/s2bNHXVhYyALA/Py86Pr16wG/3//hq6++GtqKejfdUGdnJ6XT6Q4bDIZWjUaTNLnf76fcbvdlr9d7vqura1MbsKmGTp8+XadWqw/v3bu3UCQS8anKsixLX7t2bT4QCJw/fvy4c7PasCmGTpw4Ia+qqnrRZDIZSkpK2ExiZ2dnRYODg+7R0dE/v/baa4sP25aHNnT27Nkf6HS6QwaD4aF2TLfbzXu93gtHjhz5z8PkydrQqVOnKtVq9Y/q6uqUubm5GY3KRopEIiKn0xkKBAJ/bW9v92WTI2NDnZ2dYoPB8ILRaGwoKyvjsqk0naamphiXyzXgdrs/7OrqSmQSm5GhM2fOHNBoNM/U1dVJKYoSFEgIEcVisWYAkEql/RRFCRpNQgjldDpjfr//42PHjglmlyBDJ0+eVO7evfsndXV1FatMEaJEIqGOx+MHCCFyAKAoalEikVwSi8UBoTnm5+dFTqdzYnx8/C9C2JXS0CpT9Hr9gcrKypTb8HrxPJ+/srJygOf53cn+p2l6XCaTXaJpekloTp/PR3s8nkvp2LWhoXfffbderVYfbmhoKEjHlPVtjcVidSzLNhFCUj67URSVEIlENqlU6gQgKD/LsvTAwMBCIBA4/8orrziS5r3f0IkTJ+Q6ne6IyWQy7NixQ/CCZFm2NB6PP8Hz/HahMQBA0/R3EonkokgkCgqNmZmZEQ8ODrq9Xu/Z+9l1j6EPPvjgKZ1Od6impoYSmpzneVksFtvHcZxBaEwyMQzjlkqlPTRNrwiNGR4eJl6v98JLL73079XfKEIITp06VVlRUfHj+vr6nZkwJR6P6xOJxH5CiCxTA8lEUdSKWCy+KpFIPEJjIpGIyOFw3JyYmDjX3t7uo86dO3fUaDQ2lJeXCzbCcdz2WCz2BM/zpdk1PbVomg5KpdKLDMN8JzRmcnJS5HK5Bhi9Xv9RcXHx7V27dqUd6rtMMcfj8YOEkIKHa3bKeuQsy9bwPC9mGCZEUVTaTWNsbKzQbrc/RXV0dBAAMYVCcfnpp5+eKC4uTmrsfqY8KqVj161bt2SffPJJRTgcbgUgZVpbW3sIIQei0Wij0+ksmZubW9DpdEsUdWdf4Hk+PxqNHmRZtgWA9NFZWZOU4zgdy7LFd0crDgCEEHz66aelX3zxxfcjkUg9gAmapg8zV65c8fX09PwpHo/zhJC22dnZ2oGBARQUFCwVFBTUxOPxQ4QQxf/AyD0ihBSxLFtDCCFerzdy/vz5PcFg8CAhRAqgSy6XP/fmm2+O3LNtd3R0VFEU9R6AgyKRiNfr9fS+ffsgFj+S8420SiQS6Onpgcfj4VmWpQF8SQh5+Z133hldLSNaH/Dss8+GGYYJ3Lhxg9jtdnpoaAiTk5NoampCdXX1IzewXiMjI7DZbJifn4dMJqPNZjNRqVQBjuPC68utjhA1MDDwPIDfASgG7vSGw+HA2NgYAEClUmH//v0oKip6pEbm5uZw9epV3LhxAwCg1WpRX1+/ftbcAvCLhoaGjwAQyuFwGDmOOwOgNVnCcDiMvr4+zM3NQSaTwWg0orm5GTS9tUd6PM+jv78fLpcLKysrKCoqQktLCxSKDZfzZYZhjjFarfYfKpWqmabppAslNzcXWq0WMpkMwWAQU1NTCAQCyM/Px7Zt27bEzMTEBD7//HP4fD5QFIWGhgaYzWbk5uZuGMNxXPHXX39tYkwm07nh4eGZ3Nxcz/bt27+XrDBFUVAoFNBoNIhEIggGg/D5fLh9+zaUSuWmbRqRSAQXL15EX18flpeXoVKp8OSTT0KpVGIVI8nk8/n6uru7xYuLi3WrHDr07bffmvx+f295eTktkUiSwlMsFkOlUqGkpAQzMzMIBoPwer0AAKVS+VBmHA4HvvrqK4RCIeTl5aG1tRU1NTUpO2t5eXn6s88+Gx4fHzcDmKVp+jBFCMEbb7whW1xc/BWAXwJgKysrbS0tLY9TFCXaKBnP8xgaGoLb7QbHcSgtLcW+ffsyNhYKhdDT04NgMAiGYWAwGFBbW5tyjRJC2L6+vis+n68Jd3bqt+Vy+Vuvv/76yoYcysvLi5nNZmm6Bi4sLMBmsyEUCkEsFkOv1+Oxxx5LOw0TiQS++eYbeDweJBIJKJVKNDU1oaAg9SNiKBRCb28vu7y8LEISDt1jqLu7ezuAt0Oh0IsjIyNUPB5HeXk5mpubIZWmfuqZmJiA3W7HysoKCgsLU7LrPqagsbERFRUVKfPHYjH09/djcnISEokE1dXVUCqV/wLQ3tbWNvmAoe7u7ucBnMRdDrEsC6/Xu5bAZDKhqqoq5eJMxy4BTHlAhBCMjo5icHAQqx2s0+kgEq2thiUAvwFwqq2tjaUuXLhQA+CPAL6fLOHCwgJcLhcWFxeFsADAg+yqra0FAAwNDQllygN55HI5jEZjqil5HcBPmerq6r/t2LFjL8MwOclKSaVSlJWVQSKRIBQKwefzIRqNYufOnRsu3GTsmp6eFswUlmVht9ths9mQSCRQVVUFo9EImWzjF2OO4+ROp1NPdXR0JAAsaLVat0ajeXzDCNyZxx6PBzdv3kROTg727t0LtVqdKgTRaBR2ux0A0NjYiJycpP22pkAggGvXrq11ml6vT7t+p6en+10uVykhpIzq6OhoA/AegEqxWOxsamrKl8vllakShMNhDA8Pr1VqNpuRn5+fstJ0WlpaQm9v71pn1dTUpJ2S0Wh02mazTUajUTMAH4CXKUIILBaLDMAqh+iSkpIre/bsaWEYZsN5wfM8/H4/AoEAKIqCwWCAyWRKuWkkEyEEg4ODcLvdIIRArVZDo9Gk5ZDb7b4yNTW1xiEAb1mt1ns5ZLFYqnBntA5SFDVlNBqDu3btak7VoOXlZXg8HoTDYeTn56OlpUUwXEOhEPr6+rC0tASFQgG9Xo+8vLyUMeFweNDhcEg5jqsC8CWAl61Wa3IOrTP2HIDfA9iZk5PT29TUVJ6Tk7MrXeNGRkYghF0bMCWlkUQiMWe324cWFhZaAcwA+LnVav37/eU2PAq2WCyFALoAHAMQLSsrsxkMhpSPQ+nYJYApSeX3+y+PjY3VANgG4AyATqvVOp+sbNrbB4vF0nw3SQPDMKP19fUxhUJhShWTjF0AMmEKAGBxcdFns9mWEolEHYABAMesVmt/qhhB1ykWi4UBcBzAbwHICwoKLjc2NtaKxeINX18JIZicnMTY2Bh4/s6xGk3T0Gq1KC8vT7l5cBwXuX79et/s7OzjAKIAfg3gtNVqTXvBltGFl8ViKQXwBwA/BPCdVqsd1mg0Sd90V7XKLgAZMwXAPwH8zGq1Cj7Iz+qO1WKxZMyudErGFKvV2p1pnqwvjbNhVzKlYko27Xroa/1s2LWqdEzJRpv2JUkm7BLKlGy0qZ/GCGFXJkzJRlvyNVYydkkkktxMmZKNtuzzsvvZBYADEEEGTMlGW/4B4Dp2ARkyJRv9F9vsxWD/43R9AAAAAElFTkSuQmCC);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,.7);margin:0}.leaflet-control-attribution{padding:0 5px;color:#333}.leaflet-control-scale-line{color:#333;border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;font-size:11px;white-space:nowrap;overflow:hidden;-moz-box-sizing:content-box;box-sizing:content-box;background:#fff;background:rgba(255,255,255,.5)}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-container .leaflet-control-attribution,.leaflet-container .leaflet-control-scale{font-size:11px}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 19px;line-height:1.4}.leaflet-popup-content p{margin:18px 0}.leaflet-popup-tip-container{margin:0 auto;width:40px;height:20px;position:relative;overflow:hidden}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;padding:4px 4px 0 0;text-align:center;width:18px;height:14px;font:16px/14px Tahoma,Verdana,sans-serif;color:#c3c3c3;text-decoration:none;font-weight:700;background:0 0}.leaflet-container a.leaflet-popup-close-button:hover{color:#999}.leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}.leaflet-oldie .leaflet-popup-content-wrapper{zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto}.leaflet-oldie .leaflet-popup-tip-container{margin-top:-1px}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-container .leaflet-control-search{position:relative;float:left;background:#fff;color:#1978cf;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;background-color:rgba(255,255,255,.8);z-index:1000;box-shadow:0 1px 7px rgba(0,0,0,.65);margin-left:10px;margin-top:10px}.leaflet-control-search.search-exp{box-shadow:0 1px 7px #999;background:#fff}.leaflet-control-search .search-input{display:block;float:left;background:#fff;border:1px solid #666;border-radius:2px;height:18px;padding:0 18px 0 2px;margin:3px 0 3px 3px}.leaflet-control-search.search-load .search-input{background:url(data:image/gif;base64,R0lGODlhEAAQAPQAAP///5mZmfj4+M/Pz/Ly8rS0tMnJyZmZmbu7u6enp93d3eTk5KCgoNfX15qamq6ursLCwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAAKAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAAQAAAFdyAgAgIJIeWoAkRCCMdBkKtIHIngyMKsErPBYbADpkSCwhDmQCBethRB6Vj4kFCkQPG4IlWDgrNRIwnO4UKBXDufzQvDMaoSDBgFb886MiQadgNABAokfCwzBA8LCg0Egl8jAggGAA1kBIA1BAYzlyILczULC2UhACH5BAAKAAEALAAAAAAQABAAAAV2ICACAmlAZTmOREEIyUEQjLKKxPHADhEvqxlgcGgkGI1DYSVAIAWMx+lwSKkICJ0QsHi9RgKBwnVTiRQQgwF4I4UFDQQEwi6/3YSGWRRmjhEETAJfIgMFCnAKM0KDV4EEEAQLiF18TAYNXDaSe3x6mjidN1s3IQAh+QQACgACACwAAAAAEAAQAAAFeCAgAgLZDGU5jgRECEUiCI+yioSDwDJyLKsXoHFQxBSHAoAAFBhqtMJg8DgQBgfrEsJAEAg4YhZIEiwgKtHiMBgtpg3wbUZXGO7kOb1MUKRFMysCChAoggJCIg0GC2aNe4gqQldfL4l/Ag1AXySJgn5LcoE3QXI3IQAh+QQACgADACwAAAAAEAAQAAAFdiAgAgLZNGU5joQhCEjxIssqEo8bC9BRjy9Ag7GILQ4QEoE0gBAEBcOpcBA0DoxSK/e8LRIHn+i1cK0IyKdg0VAoljYIg+GgnRrwVS/8IAkICyosBIQpBAMoKy9dImxPhS+GKkFrkX+TigtLlIyKXUF+NjagNiEAIfkEAAoABAAsAAAAABAAEAAABWwgIAICaRhlOY4EIgjH8R7LKhKHGwsMvb4AAy3WODBIBBKCsYA9TjuhDNDKEVSERezQEL0WrhXucRUQGuik7bFlngzqVW9LMl9XWvLdjFaJtDFqZ1cEZUB0dUgvL3dgP4WJZn4jkomWNpSTIyEAIfkEAAoABQAsAAAAABAAEAAABX4gIAICuSxlOY6CIgiD8RrEKgqGOwxwUrMlAoSwIzAGpJpgoSDAGifDY5kopBYDlEpAQBwevxfBtRIUGi8xwWkDNBCIwmC9Vq0aiQQDQuK+VgQPDXV9hCJjBwcFYU5pLwwHXQcMKSmNLQcIAExlbH8JBwttaX0ABAcNbWVbKyEAIfkEAAoABgAsAAAAABAAEAAABXkgIAICSRBlOY7CIghN8zbEKsKoIjdFzZaEgUBHKChMJtRwcWpAWoWnifm6ESAMhO8lQK0EEAV3rFopIBCEcGwDKAqPh4HUrY4ICHH1dSoTFgcHUiZjBhAJB2AHDykpKAwHAwdzf19KkASIPl9cDgcnDkdtNwiMJCshACH5BAAKAAcALAAAAAAQABAAAAV3ICACAkkQZTmOAiosiyAoxCq+KPxCNVsSMRgBsiClWrLTSWFoIQZHl6pleBh6suxKMIhlvzbAwkBWfFWrBQTxNLq2RG2yhSUkDs2b63AYDAoJXAcFRwADeAkJDX0AQCsEfAQMDAIPBz0rCgcxky0JRWE1AmwpKyEAIfkEAAoACAAsAAAAABAAEAAABXkgIAICKZzkqJ4nQZxLqZKv4NqNLKK2/Q4Ek4lFXChsg5ypJjs1II3gEDUSRInEGYAw6B6zM4JhrDAtEosVkLUtHA7RHaHAGJQEjsODcEg0FBAFVgkQJQ1pAwcDDw8KcFtSInwJAowCCA6RIwqZAgkPNgVpWndjdyohACH5BAAKAAkALAAAAAAQABAAAAV5ICACAimc5KieLEuUKvm2xAKLqDCfC2GaO9eL0LABWTiBYmA06W6kHgvCqEJiAIJiu3gcvgUsscHUERm+kaCxyxa+zRPk0SgJEgfIvbAdIAQLCAYlCj4DBw0IBQsMCjIqBAcPAooCBg9pKgsJLwUFOhCZKyQDA3YqIQAh+QQACgAKACwAAAAAEAAQAAAFdSAgAgIpnOSonmxbqiThCrJKEHFbo8JxDDOZYFFb+A41E4H4OhkOipXwBElYITDAckFEOBgMQ3arkMkUBdxIUGZpEb7kaQBRlASPg0FQQHAbEEMGDSVEAA1QBhAED1E0NgwFAooCDWljaQIQCE5qMHcNhCkjIQAh+QQACgALACwAAAAAEAAQAAAFeSAgAgIpnOSoLgxxvqgKLEcCC65KEAByKK8cSpA4DAiHQ/DkKhGKh4ZCtCyZGo6F6iYYPAqFgYy02xkSaLEMV34tELyRYNEsCQyHlvWkGCzsPgMCEAY7Cg04Uk48LAsDhRA8MVQPEF0GAgqYYwSRlycNcWskCkApIyEAOwAAAAAAAAAAAA==) no-repeat center right #fff}.leaflet-control-search.search-load .search-cancel{visibility:hidden}.leaflet-control-search .search-cancel{display:block;width:22px;height:18px;position:absolute;right:22px;margin:3px 0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABGCAYAAADMz7TxAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqdU3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAouGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIVSOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5UyBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwBgVYFSLALAwgCgrEAiLgTArgGAWbYyRwKAvQUAdo5YkA9AYACAmUIszAAgOAIAQx4TzQMgTAOgMNK/4KlfcIW4SAEAwMuVzZdL0jMUuJXQGnfy8ODiIeLCbLFCYRcpEGYJ5CKcl5sjE0jnA0zODAAAGvnRwf44P5Dn5uTh5mbnbO/0xaL+a/BvIj4h8d/+vIwCBAAQTs/v2l/l5dYDcMcBsHW/a6lbANpWAGjf+V0z2wmgWgrQevmLeTj8QB6eoVDIPB0cCgsL7SViob0w44s+/zPhb+CLfvb8QB7+23rwAHGaQJmtwKOD/XFhbnauUo7nywRCMW735yP+x4V//Y4p0eI0sVwsFYrxWIm4UCJNx3m5UpFEIcmV4hLpfzLxH5b9CZN3DQCshk/ATrYHtctswH7uAQKLDljSdgBAfvMtjBoLkQAQZzQyefcAAJO/+Y9AKwEAzZek4wAAvOgYXKiUF0zGCAAARKCBKrBBBwzBFKzADpzBHbzAFwJhBkRADCTAPBBCBuSAHAqhGJZBGVTAOtgEtbADGqARmuEQtMExOA3n4BJcgetwFwZgGJ7CGLyGCQRByAgTYSE6iBFijtgizggXmY4EImFINJKApCDpiBRRIsXIcqQCqUJqkV1II/ItchQ5jVxA+pDbyCAyivyKvEcxlIGyUQPUAnVAuagfGorGoHPRdDQPXYCWomvRGrQePYC2oqfRS+h1dAB9io5jgNExDmaM2WFcjIdFYIlYGibHFmPlWDVWjzVjHVg3dhUbwJ5h7wgkAouAE+wIXoQQwmyCkJBHWExYQ6gl7CO0EroIVwmDhDHCJyKTqE+0JXoS+cR4YjqxkFhGrCbuIR4hniVeJw4TX5NIJA7JkuROCiElkDJJC0lrSNtILaRTpD7SEGmcTCbrkG3J3uQIsoCsIJeRt5APkE+S+8nD5LcUOsWI4kwJoiRSpJQSSjVlP+UEpZ8yQpmgqlHNqZ7UCKqIOp9aSW2gdlAvU4epEzR1miXNmxZDy6Qto9XQmmlnafdoL+l0ugndgx5Fl9CX0mvoB+nn6YP0dwwNhg2Dx0hiKBlrGXsZpxi3GS+ZTKYF05eZyFQw1zIbmWeYD5hvVVgq9ip8FZHKEpU6lVaVfpXnqlRVc1U/1XmqC1SrVQ+rXlZ9pkZVs1DjqQnUFqvVqR1Vu6k2rs5Sd1KPUM9RX6O+X/2C+mMNsoaFRqCGSKNUY7fGGY0hFsYyZfFYQtZyVgPrLGuYTWJbsvnsTHYF+xt2L3tMU0NzqmasZpFmneZxzQEOxrHg8DnZnErOIc4NznstAy0/LbHWaq1mrX6tN9p62r7aYu1y7Rbt69rvdXCdQJ0snfU6bTr3dQm6NrpRuoW623XP6j7TY+t56Qn1yvUO6d3RR/Vt9KP1F+rv1u/RHzcwNAg2kBlsMThj8MyQY+hrmGm40fCE4agRy2i6kcRoo9FJoye4Ju6HZ+M1eBc+ZqxvHGKsNN5l3Gs8YWJpMtukxKTF5L4pzZRrmma60bTTdMzMyCzcrNisyeyOOdWca55hvtm82/yNhaVFnMVKizaLx5balnzLBZZNlvesmFY+VnlW9VbXrEnWXOss623WV2xQG1ebDJs6m8u2qK2brcR2m23fFOIUjynSKfVTbtox7PzsCuya7AbtOfZh9iX2bfbPHcwcEh3WO3Q7fHJ0dcx2bHC866ThNMOpxKnD6VdnG2ehc53zNRemS5DLEpd2lxdTbaeKp26fesuV5RruutK10/Wjm7ub3K3ZbdTdzD3Ffav7TS6bG8ldwz3vQfTw91jicczjnaebp8LzkOcvXnZeWV77vR5Ps5wmntYwbcjbxFvgvct7YDo+PWX6zukDPsY+Ap96n4e+pr4i3z2+I37Wfpl+B/ye+zv6y/2P+L/hefIW8U4FYAHBAeUBvYEagbMDawMfBJkEpQc1BY0FuwYvDD4VQgwJDVkfcpNvwBfyG/ljM9xnLJrRFcoInRVaG/owzCZMHtYRjobPCN8Qfm+m+UzpzLYIiOBHbIi4H2kZmRf5fRQpKjKqLupRtFN0cXT3LNas5Fn7Z72O8Y+pjLk722q2cnZnrGpsUmxj7Ju4gLiquIF4h/hF8ZcSdBMkCe2J5MTYxD2J43MC52yaM5zkmlSWdGOu5dyiuRfm6c7Lnnc8WTVZkHw4hZgSl7I/5YMgQlAvGE/lp25NHRPyhJuFT0W+oo2iUbG3uEo8kuadVpX2ON07fUP6aIZPRnXGMwlPUit5kRmSuSPzTVZE1t6sz9lx2S05lJyUnKNSDWmWtCvXMLcot09mKyuTDeR55m3KG5OHyvfkI/lz89sVbIVM0aO0Uq5QDhZML6greFsYW3i4SL1IWtQz32b+6vkjC4IWfL2QsFC4sLPYuHhZ8eAiv0W7FiOLUxd3LjFdUrpkeGnw0n3LaMuylv1Q4lhSVfJqedzyjlKD0qWlQyuCVzSVqZTJy26u9Fq5YxVhlWRV72qX1VtWfyoXlV+scKyorviwRrjm4ldOX9V89Xlt2treSrfK7etI66Trbqz3Wb+vSr1qQdXQhvANrRvxjeUbX21K3nShemr1js20zcrNAzVhNe1bzLas2/KhNqP2ep1/XctW/a2rt77ZJtrWv913e/MOgx0VO97vlOy8tSt4V2u9RX31btLugt2PGmIbur/mft24R3dPxZ6Pe6V7B/ZF7+tqdG9s3K+/v7IJbVI2jR5IOnDlm4Bv2pvtmne1cFoqDsJB5cEn36Z8e+NQ6KHOw9zDzd+Zf7f1COtIeSvSOr91rC2jbaA9ob3v6IyjnR1eHUe+t/9+7zHjY3XHNY9XnqCdKD3x+eSCk+OnZKeenU4/PdSZ3Hn3TPyZa11RXb1nQ8+ePxd07ky3X/fJ897nj13wvHD0Ivdi2yW3S609rj1HfnD94UivW2/rZffL7Vc8rnT0Tes70e/Tf/pqwNVz1/jXLl2feb3vxuwbt24m3Ry4Jbr1+Hb27Rd3Cu5M3F16j3iv/L7a/eoH+g/qf7T+sWXAbeD4YMBgz8NZD+8OCYee/pT/04fh0kfMR9UjRiONj50fHxsNGr3yZM6T4aeypxPPyn5W/3nrc6vn3/3i+0vPWPzY8Av5i8+/rnmp83Lvq6mvOscjxx+8znk98ab8rc7bfe+477rfx70fmSj8QP5Q89H6Y8en0E/3Pud8/vwv94Tz+4A5JREAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAAHdElNRQfdCR0OKzSQTWy0AAAEPElEQVRYw+2XXWhbZRjHf8vH7I6b2eqihLItXYgKTfuCClurOMUJboIyGV75gkLdja43IujFELxwV8KYV0KFwXsh+AHiTZkoohYUHGM7S4c2ZongPFvjUk+1J93apN48iYf0JP0wiBd5IOTkPe/7f77+z/mfwP/dNrW5dxtwF9Ajv6vAdWB+vYBRYBA4AowAO2XfPHAe+BSYBCprjfo54FvgJnALmAGuAX8BNaAAvAFsCzoc9l2HgAPAW8CDwI/AOHAG+Ay4CGwG7gMGABe4IE4CbSfwvkQ1CTwFRJoc3g98ACzKnky7VB8DikAZGJWmBNlBib4CvNzch5DvejewHbgCfCM1DLLvgB+k+7t9LFgBGBVvLrDQJpN5YK7pTCDgonzvaNVBsW2yx38mEPBnYBZIAU+I9yDejgD7pIZXAK+V5+3S5YpQ5Blgqy+lHmA/8JFMzTlgqB0PF6TDGaHHPiAJ9Ar3jgCvSJdD8imsxsUQcBj4HPhDanTTNzUeUJL1GjANvADcHhQhwLLU5ZwcXJauX5NoPpGULWCvDEMG+FMiXW5H9ChwJ9AvjUrI6G0CHgbOSuQ14Cd5Bvwre1RKUxNevkrTrK7XvpZausBvwMd0rWsd1mWtdaAuG2PWp8ta6zXpsjGmspqMAqCUOgq8KbO5R2baAnaJg0eAqFLqom3bt1pGqLUOyeZ3AAVclmiyMmJ7RVr3A78DbwPjxpglP6B/lnsBLel+D5wEztYPiMOvgNeAo8Dzos3ZVpoyCDwurxxngC/83o0xNWPMeZGJPPAAcEBrvTZdNsb8N7ostOmcLmutN6bLwsdmsBW6bIzxWgFOAV+KbrwIHNZab60XXWvdI0CjIq+XpZ7BxLZte0EpFajLSqmWuqyUumDbdi1wUpRSvwIOcDeQBoaBp4FnhfRxachmqfO9gKuUytm2vbgC0LbtZaXUhnRZIl1u97SJAnfIJyRvDTeksw8BJ0RKo0AOOGGM+TDShm+LAnAj4Pak1vqkcPCgvATs6upy1zopo8VioW+2XD7uuu4hz/OGgAXLsqZjsdjEjt7ed5PJ/qtrBsxmLx1zHOeU53lbgg5YllVJJBJjmczg+KqA2eylY78Ui+8tVatt04qEw+xJJl8KAg3503Qc51QdLB6PrwCqry1VqziOc7pYLPS1BJwtl8fqacbjcYaHRxgY+Off68BAhuHhkQao53lbZsvl4yuir1+4rvtk/bpUKpHP50mlUo2NqVSKfD5PqVTCd+YQ8HogoOd59/hvTE1lG0AA+Xy+sdbqTLOmdMQiPjpMu3NzQ/6a1dP0R+qP0rKs6ZaAsVhsog4Yj8cbYH6AVCrFzMz1Rh1jsdhESx4Wi4W+XC6X83fa34DmNcuyKul0Ot08NY0aJpP9VxOJxFgkHG50utnqa5FwmEQiMRY0gkGjN+o4zumOjF4nHg5d69oG7G9LxrhhWXdE7gAAAABJRU5ErkJggg==) no-repeat 0 -46px;text-decoration:none;opacity:.8}.leaflet-control-search .search-cancel:hover{opacity:1}.leaflet-control-search .search-cancel span{display:none;font-size:18px;line-height:20px;color:#ccc;font-weight:700}.leaflet-control-search .search-cancel:hover span{color:#aaa}.leaflet-control-search .search-button{display:block;float:left;width:26px;height:26px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABGCAYAAADMz7TxAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqdU3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAouGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIVSOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5UyBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwBgVYFSLALAwgCgrEAiLgTArgGAWbYyRwKAvQUAdo5YkA9AYACAmUIszAAgOAIAQx4TzQMgTAOgMNK/4KlfcIW4SAEAwMuVzZdL0jMUuJXQGnfy8ODiIeLCbLFCYRcpEGYJ5CKcl5sjE0jnA0zODAAAGvnRwf44P5Dn5uTh5mbnbO/0xaL+a/BvIj4h8d/+vIwCBAAQTs/v2l/l5dYDcMcBsHW/a6lbANpWAGjf+V0z2wmgWgrQevmLeTj8QB6eoVDIPB0cCgsL7SViob0w44s+/zPhb+CLfvb8QB7+23rwAHGaQJmtwKOD/XFhbnauUo7nywRCMW735yP+x4V//Y4p0eI0sVwsFYrxWIm4UCJNx3m5UpFEIcmV4hLpfzLxH5b9CZN3DQCshk/ATrYHtctswH7uAQKLDljSdgBAfvMtjBoLkQAQZzQyefcAAJO/+Y9AKwEAzZek4wAAvOgYXKiUF0zGCAAARKCBKrBBBwzBFKzADpzBHbzAFwJhBkRADCTAPBBCBuSAHAqhGJZBGVTAOtgEtbADGqARmuEQtMExOA3n4BJcgetwFwZgGJ7CGLyGCQRByAgTYSE6iBFijtgizggXmY4EImFINJKApCDpiBRRIsXIcqQCqUJqkV1II/ItchQ5jVxA+pDbyCAyivyKvEcxlIGyUQPUAnVAuagfGorGoHPRdDQPXYCWomvRGrQePYC2oqfRS+h1dAB9io5jgNExDmaM2WFcjIdFYIlYGibHFmPlWDVWjzVjHVg3dhUbwJ5h7wgkAouAE+wIXoQQwmyCkJBHWExYQ6gl7CO0EroIVwmDhDHCJyKTqE+0JXoS+cR4YjqxkFhGrCbuIR4hniVeJw4TX5NIJA7JkuROCiElkDJJC0lrSNtILaRTpD7SEGmcTCbrkG3J3uQIsoCsIJeRt5APkE+S+8nD5LcUOsWI4kwJoiRSpJQSSjVlP+UEpZ8yQpmgqlHNqZ7UCKqIOp9aSW2gdlAvU4epEzR1miXNmxZDy6Qto9XQmmlnafdoL+l0ugndgx5Fl9CX0mvoB+nn6YP0dwwNhg2Dx0hiKBlrGXsZpxi3GS+ZTKYF05eZyFQw1zIbmWeYD5hvVVgq9ip8FZHKEpU6lVaVfpXnqlRVc1U/1XmqC1SrVQ+rXlZ9pkZVs1DjqQnUFqvVqR1Vu6k2rs5Sd1KPUM9RX6O+X/2C+mMNsoaFRqCGSKNUY7fGGY0hFsYyZfFYQtZyVgPrLGuYTWJbsvnsTHYF+xt2L3tMU0NzqmasZpFmneZxzQEOxrHg8DnZnErOIc4NznstAy0/LbHWaq1mrX6tN9p62r7aYu1y7Rbt69rvdXCdQJ0snfU6bTr3dQm6NrpRuoW623XP6j7TY+t56Qn1yvUO6d3RR/Vt9KP1F+rv1u/RHzcwNAg2kBlsMThj8MyQY+hrmGm40fCE4agRy2i6kcRoo9FJoye4Ju6HZ+M1eBc+ZqxvHGKsNN5l3Gs8YWJpMtukxKTF5L4pzZRrmma60bTTdMzMyCzcrNisyeyOOdWca55hvtm82/yNhaVFnMVKizaLx5balnzLBZZNlvesmFY+VnlW9VbXrEnWXOss623WV2xQG1ebDJs6m8u2qK2brcR2m23fFOIUjynSKfVTbtox7PzsCuya7AbtOfZh9iX2bfbPHcwcEh3WO3Q7fHJ0dcx2bHC866ThNMOpxKnD6VdnG2ehc53zNRemS5DLEpd2lxdTbaeKp26fesuV5RruutK10/Wjm7ub3K3ZbdTdzD3Ffav7TS6bG8ldwz3vQfTw91jicczjnaebp8LzkOcvXnZeWV77vR5Ps5wmntYwbcjbxFvgvct7YDo+PWX6zukDPsY+Ap96n4e+pr4i3z2+I37Wfpl+B/ye+zv6y/2P+L/hefIW8U4FYAHBAeUBvYEagbMDawMfBJkEpQc1BY0FuwYvDD4VQgwJDVkfcpNvwBfyG/ljM9xnLJrRFcoInRVaG/owzCZMHtYRjobPCN8Qfm+m+UzpzLYIiOBHbIi4H2kZmRf5fRQpKjKqLupRtFN0cXT3LNas5Fn7Z72O8Y+pjLk722q2cnZnrGpsUmxj7Ju4gLiquIF4h/hF8ZcSdBMkCe2J5MTYxD2J43MC52yaM5zkmlSWdGOu5dyiuRfm6c7Lnnc8WTVZkHw4hZgSl7I/5YMgQlAvGE/lp25NHRPyhJuFT0W+oo2iUbG3uEo8kuadVpX2ON07fUP6aIZPRnXGMwlPUit5kRmSuSPzTVZE1t6sz9lx2S05lJyUnKNSDWmWtCvXMLcot09mKyuTDeR55m3KG5OHyvfkI/lz89sVbIVM0aO0Uq5QDhZML6greFsYW3i4SL1IWtQz32b+6vkjC4IWfL2QsFC4sLPYuHhZ8eAiv0W7FiOLUxd3LjFdUrpkeGnw0n3LaMuylv1Q4lhSVfJqedzyjlKD0qWlQyuCVzSVqZTJy26u9Fq5YxVhlWRV72qX1VtWfyoXlV+scKyorviwRrjm4ldOX9V89Xlt2treSrfK7etI66Trbqz3Wb+vSr1qQdXQhvANrRvxjeUbX21K3nShemr1js20zcrNAzVhNe1bzLas2/KhNqP2ep1/XctW/a2rt77ZJtrWv913e/MOgx0VO97vlOy8tSt4V2u9RX31btLugt2PGmIbur/mft24R3dPxZ6Pe6V7B/ZF7+tqdG9s3K+/v7IJbVI2jR5IOnDlm4Bv2pvtmne1cFoqDsJB5cEn36Z8e+NQ6KHOw9zDzd+Zf7f1COtIeSvSOr91rC2jbaA9ob3v6IyjnR1eHUe+t/9+7zHjY3XHNY9XnqCdKD3x+eSCk+OnZKeenU4/PdSZ3Hn3TPyZa11RXb1nQ8+ePxd07ky3X/fJ897nj13wvHD0Ivdi2yW3S609rj1HfnD94UivW2/rZffL7Vc8rnT0Tes70e/Tf/pqwNVz1/jXLl2feb3vxuwbt24m3Ry4Jbr1+Hb27Rd3Cu5M3F16j3iv/L7a/eoH+g/qf7T+sWXAbeD4YMBgz8NZD+8OCYee/pT/04fh0kfMR9UjRiONj50fHxsNGr3yZM6T4aeypxPPyn5W/3nrc6vn3/3i+0vPWPzY8Av5i8+/rnmp83Lvq6mvOscjxx+8znk98ab8rc7bfe+477rfx70fmSj8QP5Q89H6Y8en0E/3Pud8/vwv94Tz+4A5JREAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAAHdElNRQfdCR0OKzSQTWy0AAAEPElEQVRYw+2XXWhbZRjHf8vH7I6b2eqihLItXYgKTfuCClurOMUJboIyGV75gkLdja43IujFELxwV8KYV0KFwXsh+AHiTZkoohYUHGM7S4c2ZongPFvjUk+1J93apN48iYf0JP0wiBd5IOTkPe/7f77+z/mfwP/dNrW5dxtwF9Ajv6vAdWB+vYBRYBA4AowAO2XfPHAe+BSYBCprjfo54FvgJnALmAGuAX8BNaAAvAFsCzoc9l2HgAPAW8CDwI/AOHAG+Ay4CGwG7gMGABe4IE4CbSfwvkQ1CTwFRJoc3g98ACzKnky7VB8DikAZGJWmBNlBib4CvNzch5DvejewHbgCfCM1DLLvgB+k+7t9LFgBGBVvLrDQJpN5YK7pTCDgonzvaNVBsW2yx38mEPBnYBZIAU+I9yDejgD7pIZXAK+V5+3S5YpQ5Blgqy+lHmA/8JFMzTlgqB0PF6TDGaHHPiAJ9Ar3jgCvSJdD8imsxsUQcBj4HPhDanTTNzUeUJL1GjANvADcHhQhwLLU5ZwcXJauX5NoPpGULWCvDEMG+FMiXW5H9ChwJ9AvjUrI6G0CHgbOSuQ14Cd5Bvwre1RKUxNevkrTrK7XvpZausBvwMd0rWsd1mWtdaAuG2PWp8ta6zXpsjGmspqMAqCUOgq8KbO5R2baAnaJg0eAqFLqom3bt1pGqLUOyeZ3AAVclmiyMmJ7RVr3A78DbwPjxpglP6B/lnsBLel+D5wEztYPiMOvgNeAo8Dzos3ZVpoyCDwurxxngC/83o0xNWPMeZGJPPAAcEBrvTZdNsb8N7ostOmcLmutN6bLwsdmsBW6bIzxWgFOAV+KbrwIHNZab60XXWvdI0CjIq+XpZ7BxLZte0EpFajLSqmWuqyUumDbdi1wUpRSvwIOcDeQBoaBp4FnhfRxachmqfO9gKuUytm2vbgC0LbtZaXUhnRZIl1u97SJAnfIJyRvDTeksw8BJ0RKo0AOOGGM+TDShm+LAnAj4Pak1vqkcPCgvATs6upy1zopo8VioW+2XD7uuu4hz/OGgAXLsqZjsdjEjt7ed5PJ/qtrBsxmLx1zHOeU53lbgg5YllVJJBJjmczg+KqA2eylY78Ui+8tVatt04qEw+xJJl8KAg3503Qc51QdLB6PrwCqry1VqziOc7pYLPS1BJwtl8fqacbjcYaHRxgY+Off68BAhuHhkQao53lbZsvl4yuir1+4rvtk/bpUKpHP50mlUo2NqVSKfD5PqVTCd+YQ8HogoOd59/hvTE1lG0AA+Xy+sdbqTLOmdMQiPjpMu3NzQ/6a1dP0R+qP0rKs6ZaAsVhsog4Yj8cbYH6AVCrFzMz1Rh1jsdhESx4Wi4W+XC6X83fa34DmNcuyKul0Ot08NY0aJpP9VxOJxFgkHG50utnqa5FwmEQiMRY0gkGjN+o4zumOjF4nHg5d69oG7G9LxrhhWXdE7gAAAABJRU5ErkJggg==) no-repeat 2px 2px #fff;border-radius:4px}.leaflet-control-search .search-button:hover{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABGCAYAAADMz7TxAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqdU3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAouGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIVSOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5UyBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwBgVYFSLALAwgCgrEAiLgTArgGAWbYyRwKAvQUAdo5YkA9AYACAmUIszAAgOAIAQx4TzQMgTAOgMNK/4KlfcIW4SAEAwMuVzZdL0jMUuJXQGnfy8ODiIeLCbLFCYRcpEGYJ5CKcl5sjE0jnA0zODAAAGvnRwf44P5Dn5uTh5mbnbO/0xaL+a/BvIj4h8d/+vIwCBAAQTs/v2l/l5dYDcMcBsHW/a6lbANpWAGjf+V0z2wmgWgrQevmLeTj8QB6eoVDIPB0cCgsL7SViob0w44s+/zPhb+CLfvb8QB7+23rwAHGaQJmtwKOD/XFhbnauUo7nywRCMW735yP+x4V//Y4p0eI0sVwsFYrxWIm4UCJNx3m5UpFEIcmV4hLpfzLxH5b9CZN3DQCshk/ATrYHtctswH7uAQKLDljSdgBAfvMtjBoLkQAQZzQyefcAAJO/+Y9AKwEAzZek4wAAvOgYXKiUF0zGCAAARKCBKrBBBwzBFKzADpzBHbzAFwJhBkRADCTAPBBCBuSAHAqhGJZBGVTAOtgEtbADGqARmuEQtMExOA3n4BJcgetwFwZgGJ7CGLyGCQRByAgTYSE6iBFijtgizggXmY4EImFINJKApCDpiBRRIsXIcqQCqUJqkV1II/ItchQ5jVxA+pDbyCAyivyKvEcxlIGyUQPUAnVAuagfGorGoHPRdDQPXYCWomvRGrQePYC2oqfRS+h1dAB9io5jgNExDmaM2WFcjIdFYIlYGibHFmPlWDVWjzVjHVg3dhUbwJ5h7wgkAouAE+wIXoQQwmyCkJBHWExYQ6gl7CO0EroIVwmDhDHCJyKTqE+0JXoS+cR4YjqxkFhGrCbuIR4hniVeJw4TX5NIJA7JkuROCiElkDJJC0lrSNtILaRTpD7SEGmcTCbrkG3J3uQIsoCsIJeRt5APkE+S+8nD5LcUOsWI4kwJoiRSpJQSSjVlP+UEpZ8yQpmgqlHNqZ7UCKqIOp9aSW2gdlAvU4epEzR1miXNmxZDy6Qto9XQmmlnafdoL+l0ugndgx5Fl9CX0mvoB+nn6YP0dwwNhg2Dx0hiKBlrGXsZpxi3GS+ZTKYF05eZyFQw1zIbmWeYD5hvVVgq9ip8FZHKEpU6lVaVfpXnqlRVc1U/1XmqC1SrVQ+rXlZ9pkZVs1DjqQnUFqvVqR1Vu6k2rs5Sd1KPUM9RX6O+X/2C+mMNsoaFRqCGSKNUY7fGGY0hFsYyZfFYQtZyVgPrLGuYTWJbsvnsTHYF+xt2L3tMU0NzqmasZpFmneZxzQEOxrHg8DnZnErOIc4NznstAy0/LbHWaq1mrX6tN9p62r7aYu1y7Rbt69rvdXCdQJ0snfU6bTr3dQm6NrpRuoW623XP6j7TY+t56Qn1yvUO6d3RR/Vt9KP1F+rv1u/RHzcwNAg2kBlsMThj8MyQY+hrmGm40fCE4agRy2i6kcRoo9FJoye4Ju6HZ+M1eBc+ZqxvHGKsNN5l3Gs8YWJpMtukxKTF5L4pzZRrmma60bTTdMzMyCzcrNisyeyOOdWca55hvtm82/yNhaVFnMVKizaLx5balnzLBZZNlvesmFY+VnlW9VbXrEnWXOss623WV2xQG1ebDJs6m8u2qK2brcR2m23fFOIUjynSKfVTbtox7PzsCuya7AbtOfZh9iX2bfbPHcwcEh3WO3Q7fHJ0dcx2bHC866ThNMOpxKnD6VdnG2ehc53zNRemS5DLEpd2lxdTbaeKp26fesuV5RruutK10/Wjm7ub3K3ZbdTdzD3Ffav7TS6bG8ldwz3vQfTw91jicczjnaebp8LzkOcvXnZeWV77vR5Ps5wmntYwbcjbxFvgvct7YDo+PWX6zukDPsY+Ap96n4e+pr4i3z2+I37Wfpl+B/ye+zv6y/2P+L/hefIW8U4FYAHBAeUBvYEagbMDawMfBJkEpQc1BY0FuwYvDD4VQgwJDVkfcpNvwBfyG/ljM9xnLJrRFcoInRVaG/owzCZMHtYRjobPCN8Qfm+m+UzpzLYIiOBHbIi4H2kZmRf5fRQpKjKqLupRtFN0cXT3LNas5Fn7Z72O8Y+pjLk722q2cnZnrGpsUmxj7Ju4gLiquIF4h/hF8ZcSdBMkCe2J5MTYxD2J43MC52yaM5zkmlSWdGOu5dyiuRfm6c7Lnnc8WTVZkHw4hZgSl7I/5YMgQlAvGE/lp25NHRPyhJuFT0W+oo2iUbG3uEo8kuadVpX2ON07fUP6aIZPRnXGMwlPUit5kRmSuSPzTVZE1t6sz9lx2S05lJyUnKNSDWmWtCvXMLcot09mKyuTDeR55m3KG5OHyvfkI/lz89sVbIVM0aO0Uq5QDhZML6greFsYW3i4SL1IWtQz32b+6vkjC4IWfL2QsFC4sLPYuHhZ8eAiv0W7FiOLUxd3LjFdUrpkeGnw0n3LaMuylv1Q4lhSVfJqedzyjlKD0qWlQyuCVzSVqZTJy26u9Fq5YxVhlWRV72qX1VtWfyoXlV+scKyorviwRrjm4ldOX9V89Xlt2treSrfK7etI66Trbqz3Wb+vSr1qQdXQhvANrRvxjeUbX21K3nShemr1js20zcrNAzVhNe1bzLas2/KhNqP2ep1/XctW/a2rt77ZJtrWv913e/MOgx0VO97vlOy8tSt4V2u9RX31btLugt2PGmIbur/mft24R3dPxZ6Pe6V7B/ZF7+tqdG9s3K+/v7IJbVI2jR5IOnDlm4Bv2pvtmne1cFoqDsJB5cEn36Z8e+NQ6KHOw9zDzd+Zf7f1COtIeSvSOr91rC2jbaA9ob3v6IyjnR1eHUe+t/9+7zHjY3XHNY9XnqCdKD3x+eSCk+OnZKeenU4/PdSZ3Hn3TPyZa11RXb1nQ8+ePxd07ky3X/fJ897nj13wvHD0Ivdi2yW3S609rj1HfnD94UivW2/rZffL7Vc8rnT0Tes70e/Tf/pqwNVz1/jXLl2feb3vxuwbt24m3Ry4Jbr1+Hb27Rd3Cu5M3F16j3iv/L7a/eoH+g/qf7T+sWXAbeD4YMBgz8NZD+8OCYee/pT/04fh0kfMR9UjRiONj50fHxsNGr3yZM6T4aeypxPPyn5W/3nrc6vn3/3i+0vPWPzY8Av5i8+/rnmp83Lvq6mvOscjxx+8znk98ab8rc7bfe+477rfx70fmSj8QP5Q89H6Y8en0E/3Pud8/vwv94Tz+4A5JREAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAAHdElNRQfdCR0OKzSQTWy0AAAEPElEQVRYw+2XXWhbZRjHf8vH7I6b2eqihLItXYgKTfuCClurOMUJboIyGV75gkLdja43IujFELxwV8KYV0KFwXsh+AHiTZkoohYUHGM7S4c2ZongPFvjUk+1J93apN48iYf0JP0wiBd5IOTkPe/7f77+z/mfwP/dNrW5dxtwF9Ajv6vAdWB+vYBRYBA4AowAO2XfPHAe+BSYBCprjfo54FvgJnALmAGuAX8BNaAAvAFsCzoc9l2HgAPAW8CDwI/AOHAG+Ay4CGwG7gMGABe4IE4CbSfwvkQ1CTwFRJoc3g98ACzKnky7VB8DikAZGJWmBNlBib4CvNzch5DvejewHbgCfCM1DLLvgB+k+7t9LFgBGBVvLrDQJpN5YK7pTCDgonzvaNVBsW2yx38mEPBnYBZIAU+I9yDejgD7pIZXAK+V5+3S5YpQ5Blgqy+lHmA/8JFMzTlgqB0PF6TDGaHHPiAJ9Ar3jgCvSJdD8imsxsUQcBj4HPhDanTTNzUeUJL1GjANvADcHhQhwLLU5ZwcXJauX5NoPpGULWCvDEMG+FMiXW5H9ChwJ9AvjUrI6G0CHgbOSuQ14Cd5Bvwre1RKUxNevkrTrK7XvpZausBvwMd0rWsd1mWtdaAuG2PWp8ta6zXpsjGmspqMAqCUOgq8KbO5R2baAnaJg0eAqFLqom3bt1pGqLUOyeZ3AAVclmiyMmJ7RVr3A78DbwPjxpglP6B/lnsBLel+D5wEztYPiMOvgNeAo8Dzos3ZVpoyCDwurxxngC/83o0xNWPMeZGJPPAAcEBrvTZdNsb8N7ostOmcLmutN6bLwsdmsBW6bIzxWgFOAV+KbrwIHNZab60XXWvdI0CjIq+XpZ7BxLZte0EpFajLSqmWuqyUumDbdi1wUpRSvwIOcDeQBoaBp4FnhfRxachmqfO9gKuUytm2vbgC0LbtZaXUhnRZIl1u97SJAnfIJyRvDTeksw8BJ0RKo0AOOGGM+TDShm+LAnAj4Pak1vqkcPCgvATs6upy1zopo8VioW+2XD7uuu4hz/OGgAXLsqZjsdjEjt7ed5PJ/qtrBsxmLx1zHOeU53lbgg5YllVJJBJjmczg+KqA2eylY78Ui+8tVatt04qEw+xJJl8KAg3503Qc51QdLB6PrwCqry1VqziOc7pYLPS1BJwtl8fqacbjcYaHRxgY+Off68BAhuHhkQao53lbZsvl4yuir1+4rvtk/bpUKpHP50mlUo2NqVSKfD5PqVTCd+YQ8HogoOd59/hvTE1lG0AA+Xy+sdbqTLOmdMQiPjpMu3NzQ/6a1dP0R+qP0rKs6ZaAsVhsog4Yj8cbYH6AVCrFzMz1Rh1jsdhESx4Wi4W+XC6X83fa34DmNcuyKul0Ot08NY0aJpP9VxOJxFgkHG50utnqa5FwmEQiMRY0gkGjN+o4zumOjF4nHg5d69oG7G9LxrhhWXdE7gAAAABJRU5ErkJggg==) no-repeat 2px -22px #fafafa;background-color:#f4f4f4}.leaflet-control-search .search-tooltip{position:absolute;top:100%;left:0;float:left;list-style:none;padding-left:0;min-width:120px;max-height:122px;box-shadow:1px 1px 6px rgba(0,0,0,.4);background-color:rgba(0,0,0,.25);z-index:1010;overflow-y:auto;overflow-x:hidden;cursor:pointer}.leaflet-control-search .search-tip{margin:2px;padding:2px 4px;display:block;color:#000;background:#eee;border-radius:.25em;text-decoration:none;white-space:nowrap;vertical-align:center}.leaflet-control-search .search-tip-select,.leaflet-control-search .search-tip:hover{background-color:#fff}.leaflet-control-search .search-alert{cursor:pointer;clear:both;font-size:.75em;margin-bottom:5px;padding:0 .25em;color:#e00;font-weight:700;border-radius:.25em}.leaflet-bar button,.leaflet-bar button:hover{border:none;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar button{background-position:50% 50%;background-repeat:no-repeat;overflow:hidden;background-color:#fff}.leaflet-bar button:hover{background-color:#f4f4f4}.leaflet-bar button:first-of-type{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar button:last-of-type{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar button.disabled,.leaflet-bar.disabled{cursor:default;pointer-events:none;opacity:.4}.easy-button-button .button-state{display:block;width:100%;height:100%;position:relative}.leaflet-touch .leaflet-bar button{width:30px;height:30px;line-height:30px}.leaflet-control-loading:empty{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPQAAP///wAAAPDw8IqKiuDg4EZGRnp6egAAAFhYWCQkJKysrL6+vhQUFJycnAQEBDY2NmhoaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAAKAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAAQAAAFdyAgAgIJIeWoAkRCCMdBkKtIHIngyMKsErPBYbADpkSCwhDmQCBethRB6Vj4kFCkQPG4IlWDgrNRIwnO4UKBXDufzQvDMaoSDBgFb886MiQadgNABAokfCwzBA8LCg0Egl8jAggGAA1kBIA1BAYzlyILczULC2UhACH5BAAKAAEALAAAAAAQABAAAAV2ICACAmlAZTmOREEIyUEQjLKKxPHADhEvqxlgcGgkGI1DYSVAIAWMx+lwSKkICJ0QsHi9RgKBwnVTiRQQgwF4I4UFDQQEwi6/3YSGWRRmjhEETAJfIgMFCnAKM0KDV4EEEAQLiF18TAYNXDaSe3x6mjidN1s3IQAh+QQACgACACwAAAAAEAAQAAAFeCAgAgLZDGU5jgRECEUiCI+yioSDwDJyLKsXoHFQxBSHAoAAFBhqtMJg8DgQBgfrEsJAEAg4YhZIEiwgKtHiMBgtpg3wbUZXGO7kOb1MUKRFMysCChAoggJCIg0GC2aNe4gqQldfL4l/Ag1AXySJgn5LcoE3QXI3IQAh+QQACgADACwAAAAAEAAQAAAFdiAgAgLZNGU5joQhCEjxIssqEo8bC9BRjy9Ag7GILQ4QEoE0gBAEBcOpcBA0DoxSK/e8LRIHn+i1cK0IyKdg0VAoljYIg+GgnRrwVS/8IAkICyosBIQpBAMoKy9dImxPhS+GKkFrkX+TigtLlIyKXUF+NjagNiEAIfkEAAoABAAsAAAAABAAEAAABWwgIAICaRhlOY4EIgjH8R7LKhKHGwsMvb4AAy3WODBIBBKCsYA9TjuhDNDKEVSERezQEL0WrhXucRUQGuik7bFlngzqVW9LMl9XWvLdjFaJtDFqZ1cEZUB0dUgvL3dgP4WJZn4jkomWNpSTIyEAIfkEAAoABQAsAAAAABAAEAAABX4gIAICuSxlOY6CIgiD8RrEKgqGOwxwUrMlAoSwIzAGpJpgoSDAGifDY5kopBYDlEpAQBwevxfBtRIUGi8xwWkDNBCIwmC9Vq0aiQQDQuK+VgQPDXV9hCJjBwcFYU5pLwwHXQcMKSmNLQcIAExlbH8JBwttaX0ABAcNbWVbKyEAIfkEAAoABgAsAAAAABAAEAAABXkgIAICSRBlOY7CIghN8zbEKsKoIjdFzZaEgUBHKChMJtRwcWpAWoWnifm6ESAMhO8lQK0EEAV3rFopIBCEcGwDKAqPh4HUrY4ICHH1dSoTFgcHUiZjBhAJB2AHDykpKAwHAwdzf19KkASIPl9cDgcnDkdtNwiMJCshACH5BAAKAAcALAAAAAAQABAAAAV3ICACAkkQZTmOAiosiyAoxCq+KPxCNVsSMRgBsiClWrLTSWFoIQZHl6pleBh6suxKMIhlvzbAwkBWfFWrBQTxNLq2RG2yhSUkDs2b63AYDAoJXAcFRwADeAkJDX0AQCsEfAQMDAIPBz0rCgcxky0JRWE1AmwpKyEAIfkEAAoACAAsAAAAABAAEAAABXkgIAICKZzkqJ4nQZxLqZKv4NqNLKK2/Q4Ek4lFXChsg5ypJjs1II3gEDUSRInEGYAw6B6zM4JhrDAtEosVkLUtHA7RHaHAGJQEjsODcEg0FBAFVgkQJQ1pAwcDDw8KcFtSInwJAowCCA6RIwqZAgkPNgVpWndjdyohACH5BAAKAAkALAAAAAAQABAAAAV5ICACAimc5KieLEuUKvm2xAKLqDCfC2GaO9eL0LABWTiBYmA06W6kHgvCqEJiAIJiu3gcvgUsscHUERm+kaCxyxa+zRPk0SgJEgfIvbAdIAQLCAYlCj4DBw0IBQsMCjIqBAcPAooCBg9pKgsJLwUFOhCZKyQDA3YqIQAh+QQACgAKACwAAAAAEAAQAAAFdSAgAgIpnOSonmxbqiThCrJKEHFbo8JxDDOZYFFb+A41E4H4OhkOipXwBElYITDAckFEOBgMQ3arkMkUBdxIUGZpEb7kaQBRlASPg0FQQHAbEEMGDSVEAA1QBhAED1E0NgwFAooCDWljaQIQCE5qMHcNhCkjIQAh+QQACgALACwAAAAAEAAQAAAFeSAgAgIpnOSoLgxxvqgKLEcCC65KEAByKK8cSpA4DAiHQ/DkKhGKh4ZCtCyZGo6F6iYYPAqFgYy02xkSaLEMV34tELyRYNEsCQyHlvWkGCzsPgMCEAY7Cg04Uk48LAsDhRA8MVQPEF0GAgqYYwSRlycNcWskCkApIyEAOwAAAAAAAAAAAA==);background-repeat:no-repeat}.leaflet-control-layer-container,.leaflet-control-loading,.leaflet-control-zoom a.leaflet-control-loading,.leaflet-control-zoomslider a.leaflet-control-loading{display:none}.hero .content i.avatar:hover .button,.leaflet-control-layer-container.is-loading,.leaflet-control-loading.is-loading,.leaflet-control-zoom a.leaflet-control-loading.is-loading,.leaflet-control-zoomslider a.leaflet-control-loading.is-loading{display:block}.leaflet-bar-part-bottom{border-bottom:medium none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.awesome-marker{background:url(../img/markers-soft.png) no-repeat 0 0;width:35px;height:46px;position:absolute;left:0;top:0;display:block;text-align:center}.awesome-marker-shadow{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAQCAYAAACcN8ZaAAAB3klEQVR42s3U4UdDURzG8czMXJnJ1Vwzc6VJZjaZJdlMlpQsKdmUFNOUspRSSqUolfQfr+fF98Vx5mwv9qbDx7LdznnO7/7Omej3+/+Ga0QMUYkhbvBgmhzCQxwxibIGrGEF8CQhU+LLtKQkQNqScUgjxRxTBIxbgfgD/BgnhM8kM5KTeclLQYqGkkMRBckzR8ic/mAgd5BAZplsUaqyIg2sDtHg2brUZJk5SmwopErJUWE8SpmTMhNvya60Zd/SNrR4bkeaskG4uiwRZk6yrJEYFibGAxn+scECHTmTnuVCzvmty3PHciB7bGKN6lQkzysPqIrHmpFhYbKUtckC1/Ioz4ZHuZdbuSLYiRxRpSZVWXZVxAzC0R4Ik5SQsu6w8yd5l2/5kg95I9SdXMoZQfYIUjeqEUrgOkXGPeN4TYRhxy8E+ZUf+eS7B7miIoeybVSjKDnm8u3+gH3pDTYwu1igATvs/pXqvBKiR4i2bNJfi1ZfUAnjgrOG8wY2quNzBKuU/ZS+uSFEl5O0xRGuUIlZCcw7xG5QPkeHYUSNV5WXGou2sC3rBC0LjenqCXGO0WEiTJa0Lr4KixdHBrDGuGGiRqCUpFk8pGIpQtCU7p4YPwxYxEMCk1aAMQZh8Ac8PfbIzYPJOwAAAABJRU5ErkJggg==) no-repeat 0 0;width:36px;height:16px}@media (min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:3/2),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:1.5dppx){.awesome-marker{background-image:url(../img/markers-soft@2x.png);background-size:720px 46px}.awesome-marker-shadow{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAAAgCAYAAACvgw7DAAAFhElEQVR42tWZ/0ubVxSHZZQxpJQRwoqEUkJQQhlBCcEiQRGJiKFEQqQ4lKFYLA5FsSjKioqipRutbLJ2f627g+dyDmfvqfetzlLh+aFpcr88+dxzb+7bdwt/33wG974g/rhu+pdzwt86fJdA/82w7Un/18m6kRBXgD+5+4YHDt/fEtImfRppVlJ+MY4QEWEmbyZZUBQVP2TwMJGBDMx7aFP6K4gwJBlBecVYISIDCSJAJm0mUIJH8NhQdqjkh8/SNv2VRB6SjCAtJ2dKMGuFIEIEMHGZ2CAMQdXwxPDjNdQ++f+0Q9tD9F1RkgYYLwlCDmIg19IhJQiRVJToFAlMViYxHBiBOjQyGP0ETzMw76Ed+qC/YSVrSAkqiRySo1IjAnwkKSKlQKMIQQYS4sQZ/Bg0A+MwYZg0TKViPjeh+mjS72iUhKCqyCE5pCZdDEmxUmjwURQSZSCiqSbXCkwHZmAW2g7PEmkbZml/mj6nlKgm42rE9DDushHzQGpNohjefB8pD2NK6GSEjscZ1AyD7QTmAt1AD+YVz/Mjn6e9LswB0pCEICVnhFQPIabEfAoiJj0xkhaWj5LSoNMW39ocA14I/BRYCvwMy58NbdDe4r9twwLCEIUcEoSYCbWkhqk1g0lLyTv92bTQUBkpdZWSDoNbZAKrgbXAy8B64JdE1jN4SVsvAquwokUhaJ70dNTyaiEmLqUaYiqUArZu0qLF+EdjOa/wwWKsK2r5tPiGFhjoGhPcCmwHdgKvEtlRbMNWYDOwQbtIEjlGDIlhKUmNqZOWKuOPW3bRSct1iUGMbM2PabxBp20GtMygt5jkfuAg8DpwaOF1y6+BA9iDXdpDEoKQQ79LLKv5mBZVX8ZZQiO66Nqt2jngISFNTJkoPqXjLoOKUvaY5HHgJHDmcAoncBw4UtIOkLtnxJAapEid6aqkTKliW2f5VOPysXUFjJQ0Mf1KTAXzTb6VeeK8wQQOmeibwNvA7xn8xv+95X3nyIqCDiU9iGFJUXPWkLKo6krbLJ2GpIQdiJoiy8dJyg3E1IjoDDvCCgPfZ3LnCHgf+MNwwevveE+UE1N0RGKilJ0MIUv021Vb86QIYefJJUSkXF1d4eS6rdoXM0uUV5nA6ygFCZeBDxpe+1MEkSBJzbESs6uWzwu+gEWzdFpIidtxzWzHck5h6fgpETHI8cWYGlOMW7VKzEKWGCb/V+Bj4G/4wGtRzDsSc07SjjKSsqaEPFdCpkWIpMQc9UmJCLEXVVaGFXPP4G/XUnybjpg3TPhSS4GPKjHvVVJOY10hJduxyKpa0gt01Nlk3JxkbXEt+j8OBREhpIgRORzw6LiqdqUexXeTb/qUFFzE1MAly4vaQkpYNrHAqh1nSS2Ztl0yJiFsvyYhbh0RHDH+UvJSw7cxqM4xc9SZdbUrnaniewEiRBJyoBKyniGk4y8ZOY+kLhn4z19+MYLcw8ghr0ZqppnEMpPbZUmcIOAMTA1hubDTILenziKT5nBmt92B9G1XhOQQk3iliRgGU+JbqzOBttqdNkUOp1451e5LUWXJSFHtaCHebxunqKZJ4d+3LEZ2JwZWYcCjLKlnTHCZFGwgIB7MYjFdUculJwczKaZquVT9c4gUVKeG9P3fYuS3VPaPyRrf7CQ7Ro/0yDWD+qHn7C5j5ug+aO9m7c2+FZLndv/2xPin4BLJqcZf2wiaMbdxs3KzJncjzlWjFFM5lJl0+A/I7lpMX+bdDHKIe1WlZ0zuddXVIjJMMsr21t6mI+8DsbsXQ2pEDqdhuf+tsHM8YfJgbujZZh0Z/W4xNX9fXoz/+8nKKdlnSYqKTYctplYIfC1i7KFPnhwwUXnMah+dioxCsgyEfD1iIPMxrVAQ0p8ZexLuWsw/8PFSG0HPbPgAAAAASUVORK5CYII=);background-size:35px 16px}}.awesome-marker i{color:#333;margin-top:10px;display:inline-block;font-size:14px}.awesome-marker .icon-white{color:#fff}.awesome-marker-icon-red{background-position:0 0}.awesome-marker-icon-darkred{background-position:-180px 0}.awesome-marker-icon-lightred{background-position:-360px 0}.awesome-marker-icon-orange{background-position:-36px 0}.awesome-marker-icon-beige{background-position:-396px 0}.awesome-marker-icon-green{background-position:-72px 0}.awesome-marker-icon-darkgreen{background-position:-252px 0}.awesome-marker-icon-lightgreen{background-position:-432px 0}.awesome-marker-icon-blue{background-position:-108px 0}.awesome-marker-icon-darkblue{background-position:-216px 0}.awesome-marker-icon-lightblue{background-position:-468px 0}.awesome-marker-icon-purple{background-position:-144px 0}.awesome-marker-icon-darkpurple{background-position:-288px 0}.awesome-marker-icon-pink{background-position:-504px 0}.awesome-marker-icon-cadetblue{background-position:-324px 0}.awesome-marker-icon-white{background-position:-574px 0}.awesome-marker-icon-gray{background-position:-648px 0}.awesome-marker-icon-lightgray{background-position:-612px 0}.awesome-marker-icon-black{background-position:-682px 0}.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{-webkit-transition:-webkit-transform .3s ease-out,opacity .3s ease-in;-moz-transition:-moz-transform .3s ease-out,opacity .3s ease-in;-o-transition:-o-transform .3s ease-out,opacity .3s ease-in;transition:transform .3s ease-out,opacity .3s ease-in}.leaflet-cluster-spider-leg{-webkit-transition:-webkit-stroke-dashoffset .3s ease-out,-webkit-stroke-opacity .3s ease-in;-moz-transition:-moz-stroke-dashoffset .3s ease-out,-moz-stroke-opacity .3s ease-in;-o-transition:-o-stroke-dashoffset .3s ease-out,-o-stroke-opacity .3s ease-in;transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}.marker-cluster-small{background-color:rgba(181,226,140,.6)}.marker-cluster-small div{background-color:rgba(110,204,57,.6)}.marker-cluster-medium{background-color:rgba(241,211,87,.6)}.marker-cluster-medium div{background-color:rgba(240,194,12,.6)}.marker-cluster-large{background-color:rgba(253,156,115,.6)}.marker-cluster-large div{background-color:rgba(241,128,23,.6)}.leaflet-oldie .marker-cluster-small{background-color:#b5e28c}.leaflet-oldie .marker-cluster-small div{background-color:#6ecc39}.leaflet-oldie .marker-cluster-medium{background-color:#f1d357}.leaflet-oldie .marker-cluster-medium div{background-color:#f0c20c}.leaflet-oldie .marker-cluster-large{background-color:#fd9c73}.leaflet-oldie .marker-cluster-large div{background-color:#f18017}.marker-cluster{background-clip:padding-box;border-radius:20px}.marker-cluster div{width:30px;height:30px;margin-left:5px;margin-top:5px;text-align:center;border-radius:15px;font:12px "Helvetica Neue",Arial,Helvetica,sans-serif}.marker-cluster span{line-height:30px}@keyframes chartjs-render-animation{0%{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}.item-category{border:1px solid #ddd!important}.item-category .h2{overflow:inherit;text-overflow:inherit;white-space:normal!important}.item-category .item-divider,.item-category.item-divider{background-color:#f5f5f5!important}.item-record{height:80px!important;padding-top:5px!important}.row-record{border-bottom:solid 1px #ccc!important;padding:0!important;height:75px!important;overflow:hidden}.row-record .col{padding-top:5px;padding-bottom:0}.row-record .item-avatar i.item-image{font-size:34px!important}.card-record .badge-picture-count,.row-record .badge-picture-count{position:absolute!important;right:inherit!important;top:inherit!important}.card-record .badge-picture-count{left:67px!important;bottom:15px!important}.row-record .badge-picture-count{left:54px!important;bottom:13px!important}.card-record .item-thumbnail-left{padding-left:150px}.card-record .item-thumbnail-left .item-image{border-radius:0;box-shadow:none;max-width:130px;max-height:130px;top:inherit;background-repeat:no-repeat}.card-record .card-footer .badge{top:inherit;bottom:10px;right:10px}.row-record .col-text-wrap{padding:0;margin:0}.row-record .col .text-wrap{height:70px;white-space:normal;position:relative;word-wrap:break-word!important;overflow:hidden!important;text-overflow:ellipsis;-o-text-overflow:ellipsis;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;-o-hyphens:auto;hyphens:auto}.row-record .col .text-wrap:after{content:'';position:absolute;bottom:0;right:0;width:100%;height:30%;background:-moz-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(255,255,255,0)),color-stop(100%,#fff));background:-webkit-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:-o-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:-ms-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 )}.item.gallery{display:inline-block}.item-more-comments{padding-top:0;padding-bottom:0;min-height:inherit!important}.hero .content .button.button-camera{display:block;position:absolute;bottom:0;right:0}.hero .content i.avatar .button{display:none;position:absolute;bottom:-25px;left:-3px}.hero .content i.avatar{font-size:55px!important;line-height:88px}.view-message h1.title{font-size:22px;margin-top:5px}.view-messages .list .item{height:80px}.view-messages .list .item-content{padding-top:8px;padding-bottom:8px}.view-page ion-content.refresher-top-bg:before{background-color:#f8f8f8!important;height:200px}.view-page .hero{background-color:#f8f8f8!important}.view-page .hero .content i.avatar{border:1px solid gray;color:gray!important}.modal-search-location .bar-footer{height:30px}.modal-search-location .bar-footer .copyright{font-size:12px;line-height:30px}.list.dropdown-list{z-index:1010;opacity:1;display:block;list-style:none;position:absolute;background-color:#fff;border-radius:0 0 2px 2px;box-shadow:0 2px 4px rgba(0,0,0,.2);width:100%;overflow-y:auto;overflow-x:hidden;cursor:pointer}.list.dropdown-list .item{padding-top:5px;padding-bottom:5px}.list.dropdown-list .item.active,.list.dropdown-list .item:active,.list.dropdown-list .item:focus,.list.dropdown-list .item:hover{background-color:#b2e0ff}.item-document.compacted{min-height:16px!important;max-height:16px!important;border-bottom:0!important}.item-document.compacted .col{padding-top:1px}.cion-page-association:before,.ion-page-association:before{font-family:"Ionicons";content:"\f212"}.cion-page-company:before,.ion-page-company:before{font-family:"Cesiumicons";content:"\e903"}.cion-page-institution:before,.ion-page-institution:before{font-family:"Cesiumicons";content:"\e921"}.cion-page-shop:before,.ion-page-shop:before{font-family:"Ionicons";content:"\f110"}.buttons-block{display:block;height:57px}.popover-graph-currency{height:300px!important;max-width:250px!important}.legend{font:14px/16px Arial,Helvetica,sans-serif;background:rgba(255,255,255,.9);box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:5px;padding:6px 8px;width:180px;line-height:18px;color:#555}.legend .outline{border:0}.legend i{width:16px;height:16px;float:left;margin-right:8px;opacity:.7}.search-tip{white-space:nowrap}.leaflet-popup .item-peer{padding-bottom:3px;padding-top:0}.leaflet-popup .item.item-icon-left>i.avatar:first-child{left:9px;top:0}.leaflet-popup .item-peer .badge{top:inherit;bottom:0;right:5px;font-size:12px}.leaflet-popup .item-peer .badge .badge-secondary,.leaflet-popup .item-peer .badge.badge-secondary{top:inherit;bottom:-16px;right:5px;font-size:9px;padding-right:0}.view-map-network .leaflet-popup-content{max-height:250px}.view-map-network .leaflet-popup-content .item-peer .row{display:block}.view-map-network .leaflet-popup-content .item-peer .col.col-15,.view-map-network .leaflet-popup-content .item-peer .col.col-20{-webkit-box-flex:0;-webkit-flex:0 0 15%;-moz-box-flex:0;-moz-flex:0 0 15%;-ms-flex:0 0 15%;flex:0 0 15%;max-width:70px;text-align:start!important}.view-map-network .leaflet-popup-content .item-peer .col.col-20{-webkit-flex:0 0 20%;-moz-flex:0 0 20%;-ms-flex:0 0 20%;flex:0 0 20%}.view-map-registry .leaflet-popup-content,.view-map-wot .leaflet-popup-content{min-width:200px}.view-map-wot .leaflet-popup-content .item-avatar .item-image{left:0}.view-map-wot .leaflet-popup-content .item-avatar .item-content{padding-left:70px}.view-map-registry .leaflet-popup-content .item-avatar .item-image{left:0}.view-map-registry .leaflet-popup-content .item-avatar .item-content{padding-left:70px}.marker-cluster-small.blue{background-color:rgba(56,170,221,.6)}.marker-cluster-small.blue div{background-color:rgba(37,144,193,.9);color:#fff}.marker-cluster-medium.blue{background-color:rgba(37,144,193,.6)}.marker-cluster-medium.blue div{background-color:rgba(18,121,167,.9);color:#fff}.marker-cluster-large.blue{background-color:rgba(18,121,167,.6)}.marker-cluster-large.blue div{background-color:rgba(0,99,141,.9);color:#fff}.marker-cluster-small.green{background-color:rgba(110,170,37,.6)}.marker-cluster-small.green div{background-color:rgba(92,150,19,.9);color:#fff}.marker-cluster-medium.green{background-color:rgba(92,150,19,.6)}.marker-cluster-medium.green div{background-color:rgba(71,126,1,.9);color:#fff}.marker-cluster-large.green{background-color:rgba(171,126,1,.6)}.marker-cluster-large.green div{background-color:rgba(51,103,0,.9);color:#fff}.marker-cluster-small.lightgreen{background-color:rgba(187,249,112,.4)}.marker-cluster-small.lightgreen div{background-color:rgba(162,221,90,.8);color:gray}.marker-cluster-medium.lightgreen{background-color:rgba(162,221,90,.6)}.marker-cluster-medium.lightgreen div{background-color:rgba(136,192,69,.8);color:#fff}.marker-cluster-large.lightgreen{background-color:rgba(136,192,69,.6)}.marker-cluster-large.lightgreen div{background-color:rgba(115,168,49,.8);color:#fff}.marker-cluster-small.lightgray{background-color:rgba(163,163,163,.6)}.marker-cluster-small.lightgray div{background-color:rgba(163,163,163,.9);color:#fff}.marker-cluster-medium.lightgray{background-color:rgba(139,139,139,.6)}.marker-cluster-medium.lightgray div{background-color:rgba(139,139,139,.9);color:#fff}.marker-cluster-large.lightgray{background-color:rgba(116,116,116,.6)}.marker-cluster-large.lightgray div{background-color:rgba(116,116,116,.9);color:#fff}.marker-cluster-small.red{background-color:rgba(212,62,42,.4)}.marker-cluster-small.red div{background-color:rgba(186,42,23,.8);color:#fff}.marker-cluster-medium.red{background-color:rgba(186,42,23,.6)}.marker-cluster-medium.red div{background-color:rgba(161,23,5,.8);color:#fff}.marker-cluster-large.red{background-color:rgba(161,23,5,.6)}.marker-cluster-large.red div{background-color:rgba(137,5,0,.8);color:#fff}
\ No newline at end of file
+.ink{cursor:pointer}.button-clear,.button-fab,.button-flat,.button-raised,.button-text,.ink,.popup .button{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.popup .button{cursor:pointer}.ink-ripple{position:absolute;border-radius:50%;width:100px;height:100px;margin-top:-50px;margin-left:-50px;opacity:0;background-color:rgba(255,255,255,.4);-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;-o-transition:all .5s ease-out;transition:all .5s ease-out;-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;-o-transition-property:-o-transform,opacity;transition-property:transform,opacity;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);pointer-events:none}.ink-notransition{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}.button-clear,.button-fab,.button-flat,.button-raised,.button-text,.ink-button,.ink-circle{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.activated.button-text,.button-clear.activated,.button-clear:active,.button-fab.activated,.button-fab:active,.button-flat.activated,.button-flat:active,.button-raised.activated,.button-raised:active,.button-text:active,.ink-button.activated,.ink-button:active,.ink-circle.activated,.ink-circle:active,.ink.activated,.ink:active,.popup .button.activated,.popup .button:active{-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.button-clear,.button-fab,.button-fab:link,.button-fab:visited,.button-flat,.button-flat:link,.button-flat:visited,.button-raised,.button-raised:link,.button-raised:visited,.ink-button,.ink-button:link,.ink-button:visited{white-space:nowrap;vertical-align:middle;cursor:pointer;border:none;outline:none;font-size:14px;text-align:center;text-decoration:none;z-index:1}.button-clear:link,.button-clear:visited,.button-text,.button-text:link,.button-text:visited,.ink-button-input{white-space:nowrap;vertical-align:middle;cursor:pointer;border:none;outline:none;text-align:center;text-decoration:none;z-index:1}.button-clear:link,.button-clear:visited,.button-text:link,.button-text:visited,.ink-button-input{font-size:14px}.ink-button{padding:10px 15px;border-radius:2px}.ink-button-input{margin:0;padding:10px 15px}.ink-input-wrapper{border-radius:2px;vertical-align:bottom}.ink-input-wrapper.ink-button{padding:0}.ink-input-wrapper .ink-button-input{position:relative;top:0;left:0;z-index:1}.ink-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%}.ink-float{-webkit-mask-image:none;-webkit-box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12);box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12)}.ink-float:active{-webkit-box-shadow:0 8px 20px 1px rgba(0,0,0,.3);box-shadow:0 8px 20px 1px rgba(0,0,0,.3)}.ink-block{display:block}.ink-ripple{z-index:0}.button-clear .ink-ripple,.button-text .ink-ripple,.ink-dark .ink-ripple,.list .ink-ripple,[class$="-100"]>.ink-ripple,[class$=-clear]>.ink-ripple,[class$=-light]>.ink-ripple,[class$=-stable]>.ink-ripple{background-color:rgba(0,0,0,.2)}.tab-item{position:relative}*{font-family:"RobotoDraft","Roboto","Helvetica Neue","Segoe UI",sans-serif}.rounded{border-radius:4px}a{cursor:pointer}.has-header.expanded{top:76px}.bar{border-bottom:none;padding:0}.bar .button{min-height:44px;min-width:44px;max-width:48px;margin-bottom:0;max-height:44px;width:48px}.bar .title+.buttons.buttons-right{top:0}.title-left,.title-right,.title.title-left,.title.title-right{left:48px}.button-positive,.positive-bg{background-color:#3f51b5;color:#fff}.button-text{background-color:#3f51b5}.activated.button-text,.bar .activated.button-text,.bar .button-positive,.bar .button-positive.activated,.bar .button-positive:active,.bar .button-positive:hover,.bar .button-text,.bar .button-text:active,.bar .button-text:hover,.bar-positive,.bar-positive.activated,.bar-positive:active,.bar-positive:hover,.button-bar-positive,.button-bar-positive.activated,.button-bar-positive:active,.button-bar-positive:hover,.button-positive.activated,.button-positive:active,.button-positive:hover,.button-text:active,.button-text:hover,.header-positive,.header-positive.activated,.header-positive:active,.header-positive:hover,.positive-bg.activated,.positive-bg:active,.positive-bg:hover,.positive-border,.positive-border.activated,.positive-border:active,.positive-border:hover{background-color:#3f51b5;color:#fff}.bar .button-positive-900,.bar .button-positive-900.activated,.bar .button-positive-900:active,.bar .button-positive-900:hover,.bar-positive-900,.bar-positive-900.activated,.bar-positive-900:active,.bar-positive-900:hover,.button-bar-positive-900,.button-bar-positive-900.activated,.button-bar-positive-900:active,.button-bar-positive-900:hover,.button-positive-900,.button-positive-900.activated,.button-positive-900:active,.button-positive-900:hover,.header-positive-900,.header-positive-900.activated,.header-positive-900:active,.header-positive-900:hover,.positive-900-bg,.positive-900-bg.activated,.positive-900-bg:active,.positive-900-bg:hover,.positive-900-border,.positive-900-border.activated,.positive-900-border:active,.positive-900-border:hover{background-color:#1a237e;color:#fff}.bar .button-positive-100,.bar .button-positive-100.activated,.bar .button-positive-100:active,.bar .button-positive-100:hover,.bar-positive-100,.bar-positive-100.activated,.bar-positive-100:active,.bar-positive-100:hover,.button-bar-positive-100,.button-bar-positive-100.activated,.button-bar-positive-100:active,.button-bar-positive-100:hover,.button-positive-100,.button-positive-100.activated,.button-positive-100:active,.button-positive-100:hover,.header-positive-100,.header-positive-100.activated,.header-positive-100:active,.header-positive-100:hover,.positive-100-bg,.positive-100-bg.activated,.positive-100-bg:active,.positive-100-bg:hover,.positive-100-border,.positive-100-border.activated,.positive-100-border:active,.positive-100-border:hover{background-color:#c5cae9;color:#fff}.bar .button-calm,.bar .button-calm.activated,.bar .button-calm:active,.bar .button-calm:hover,.bar-calm,.bar-calm.activated,.bar-calm:active,.bar-calm:hover,.button-bar-calm,.button-bar-calm.activated,.button-bar-calm:active,.button-bar-calm:hover,.button-calm,.button-calm.activated,.button-calm:active,.button-calm:hover,.calm-bg,.calm-bg.activated,.calm-bg:active,.calm-bg:hover,.calm-border,.calm-border.activated,.calm-border:active,.calm-border:hover,.header-calm,.header-calm.activated,.header-calm:active,.header-calm:hover{background-color:#2196f3;color:#fff}.bar .button-calm-900,.bar .button-calm-900.activated,.bar .button-calm-900:active,.bar .button-calm-900:hover,.bar-calm-900,.bar-calm-900.activated,.bar-calm-900:active,.bar-calm-900:hover,.button-bar-calm-900,.button-bar-calm-900.activated,.button-bar-calm-900:active,.button-bar-calm-900:hover,.button-calm-900,.button-calm-900.activated,.button-calm-900:active,.button-calm-900:hover,.calm-900-bg,.calm-900-bg.activated,.calm-900-bg:active,.calm-900-bg:hover,.calm-900-border,.calm-900-border.activated,.calm-900-border:active,.calm-900-border:hover,.header-calm-900,.header-calm-900.activated,.header-calm-900:active,.header-calm-900:hover{background-color:#0d47a1;color:#fff}.bar .button-calm-100,.bar .button-calm-100.activated,.bar .button-calm-100:active,.bar .button-calm-100:hover,.bar-calm-100,.bar-calm-100.activated,.bar-calm-100:active,.bar-calm-100:hover,.button-bar-calm-100,.button-bar-calm-100.activated,.button-bar-calm-100:active,.button-bar-calm-100:hover,.button-calm-100,.button-calm-100.activated,.button-calm-100:active,.button-calm-100:hover,.calm-100-bg,.calm-100-bg.activated,.calm-100-bg:active,.calm-100-bg:hover,.calm-100-border,.calm-100-border.activated,.calm-100-border:active,.calm-100-border:hover,.header-calm-100,.header-calm-100.activated,.header-calm-100:active,.header-calm-100:hover{background-color:#bbdefb;color:#fff}.bar .button-royal,.bar .button-royal.activated,.bar .button-royal:active,.bar .button-royal:hover,.bar-royal,.bar-royal.activated,.bar-royal:active,.bar-royal:hover,.button-bar-royal,.button-bar-royal.activated,.button-bar-royal:active,.button-bar-royal:hover,.button-royal,.button-royal.activated,.button-royal:active,.button-royal:hover,.header-royal,.header-royal.activated,.header-royal:active,.header-royal:hover,.royal-bg,.royal-bg.activated,.royal-bg:active,.royal-bg:hover,.royal-border,.royal-border.activated,.royal-border:active,.royal-border:hover{background-color:#673ab7;color:#fff}.bar .button-royal-900,.bar .button-royal-900.activated,.bar .button-royal-900:active,.bar .button-royal-900:hover,.bar-royal-900,.bar-royal-900.activated,.bar-royal-900:active,.bar-royal-900:hover,.button-bar-royal-900,.button-bar-royal-900.activated,.button-bar-royal-900:active,.button-bar-royal-900:hover,.button-royal-900,.button-royal-900.activated,.button-royal-900:active,.button-royal-900:hover,.header-royal-900,.header-royal-900.activated,.header-royal-900:active,.header-royal-900:hover,.royal-900-bg,.royal-900-bg.activated,.royal-900-bg:active,.royal-900-bg:hover,.royal-900-border,.royal-900-border.activated,.royal-900-border:active,.royal-900-border:hover{background-color:#311b92;color:#fff}.bar .button-royal-100,.bar .button-royal-100.activated,.bar .button-royal-100:active,.bar .button-royal-100:hover,.bar-royal-100,.bar-royal-100.activated,.bar-royal-100:active,.bar-royal-100:hover,.button-bar-royal-100,.button-bar-royal-100.activated,.button-bar-royal-100:active,.button-bar-royal-100:hover,.button-royal-100,.button-royal-100.activated,.button-royal-100:active,.button-royal-100:hover,.header-royal-100,.header-royal-100.activated,.header-royal-100:active,.header-royal-100:hover,.royal-100-bg,.royal-100-bg.activated,.royal-100-bg:active,.royal-100-bg:hover,.royal-100-border,.royal-100-border.activated,.royal-100-border:active,.royal-100-border:hover{background-color:#d1c4e9;color:#fff}.balanced-bg,.balanced-bg.activated,.balanced-bg:active,.balanced-bg:hover,.balanced-border,.balanced-border.activated,.balanced-border:active,.balanced-border:hover,.bar .button-balanced,.bar .button-balanced.activated,.bar .button-balanced:active,.bar .button-balanced:hover,.bar-balanced,.bar-balanced.activated,.bar-balanced:active,.bar-balanced:hover,.button-balanced,.button-balanced.activated,.button-balanced:active,.button-balanced:hover,.button-bar-balanced,.button-bar-balanced.activated,.button-bar-balanced:active,.button-bar-balanced:hover,.header-balanced,.header-balanced.activated,.header-balanced:active,.header-balanced:hover{background-color:#4caf50;color:#fff}.balanced-900-bg,.balanced-900-bg.activated,.balanced-900-bg:active,.balanced-900-bg:hover,.balanced-900-border,.balanced-900-border.activated,.balanced-900-border:active,.balanced-900-border:hover,.bar .button-balanced-900,.bar .button-balanced-900.activated,.bar .button-balanced-900:active,.bar .button-balanced-900:hover,.bar-balanced-900,.bar-balanced-900.activated,.bar-balanced-900:active,.bar-balanced-900:hover,.button-balanced-900,.button-balanced-900.activated,.button-balanced-900:active,.button-balanced-900:hover,.button-bar-balanced-900,.button-bar-balanced-900.activated,.button-bar-balanced-900:active,.button-bar-balanced-900:hover,.header-balanced-900,.header-balanced-900.activated,.header-balanced-900:active,.header-balanced-900:hover{background-color:#1b5e20;color:#fff}.balanced-100-bg,.balanced-100-bg.activated,.balanced-100-bg:active,.balanced-100-bg:hover,.balanced-100-border,.balanced-100-border.activated,.balanced-100-border:active,.balanced-100-border:hover,.bar .balanced-100-bg:hover,.bar .button-balanced-100,.bar .button-balanced-100.activated,.bar .button-balanced-100:active,.bar-balanced-100,.bar-balanced-100.activated,.bar-balanced-100:active,.bar-balanced-100:hover,.button-balanced-100,.button-balanced-100.activated,.button-balanced-100:active,.button-balanced-100:hover,.button-bar-balanced-100,.button-bar-balanced-100.activated,.button-bar-balanced-100:active,.button-bar-balanced-100:hover,.header-balanced-100,.header-balanced-100.activated,.header-balanced-100:active,.header-balanced-100:hover{background-color:#c8e6c9;color:#fff}.bar .button-energized,.bar .button-energized.activated,.bar .button-energized:active,.bar .button-energized:hover,.bar-energized,.bar-energized.activated,.bar-energized:active,.bar-energized:hover,.button-bar-energized,.button-bar-energized.activated,.button-bar-energized:active,.button-bar-energized:hover,.button-energized,.button-energized.activated,.button-energized:active,.button-energized:hover,.energized-bg,.energized-bg.activated,.energized-bg:active,.energized-bg:hover,.energized-border,.energized-border.activated,.energized-border:active,.energized-border:hover,.header-energized,.header-energized.activated,.header-energized:active,.header-energized:hover{background-color:#ff9800;color:#fff}.bar .button-energized-900,.bar .button-energized-900.activated,.bar .button-energized-900:active,.bar .button-energized-900:hover,.bar-energized-900,.bar-energized-900.activated,.bar-energized-900:active,.bar-energized-900:hover,.button-bar-energized-900,.button-bar-energized-900.activated,.button-bar-energized-900:active,.button-bar-energized-900:hover,.button-energized-900,.button-energized-900.activated,.button-energized-900:active,.button-energized-900:hover,.energized-900-bg,.energized-900-bg.activated,.energized-900-bg:active,.energized-900-bg:hover,.energized-900-border,.energized-900-border.activated,.energized-900-border:active,.energized-900-border:hover,.header-energized-900,.header-energized-900.activated,.header-energized-900:active,.header-energized-900:hover{background-color:#e65100;color:#fff}.bar .button-energized-100,.bar .button-energized-100.activated,.bar .button-energized-100:active,.bar .button-energized-100:hover,.bar-energized-100,.bar-energized-100.activated,.bar-energized-100:active,.bar-energized-100:hover,.button-bar-energized-100,.button-bar-energized-100.activated,.button-bar-energized-100:active,.button-bar-energized-100:hover,.button-energized-100,.button-energized-100.activated,.button-energized-100:active,.button-energized-100:hover,.energized-100-bg,.energized-100-bg.activated,.energized-100-bg:active,.energized-100-bg:hover,.energized-100-border,.energized-100-border.activated,.energized-100-border:active,.energized-100-border:hover,.header-energized-100,.header-energized-100.activated,.header-energized-100:active,.header-energized-100:hover,.modal.modal-help .activated.row.selected,.modal.modal-help .row.selected,.modal.modal-help .row.selected:active,.modal.modal-help .row.selected:hover{background-color:#ffe0b2}.assertive-bg,.assertive-bg.activated,.assertive-bg:active,.assertive-bg:hover,.assertive-border,.assertive-border.activated,.assertive-border:active,.assertive-border:hover,.bar .button-assertive,.bar .button-assertive.activated,.bar .button-assertive:active,.bar .button-assertive:hover,.bar-assertive,.bar-assertive.activated,.bar-assertive:active,.bar-assertive:hover,.button-assertive,.button-assertive.activated,.button-assertive:active,.button-assertive:hover,.button-bar-assertive,.button-bar-assertive.activated,.button-bar-assertive:active,.button-bar-assertive:hover,.header-assertive,.header-assertive.activated,.header-assertive:active,.header-assertive:hover{background-color:#f44336;color:#fff}.assertive-900-bg,.assertive-900-bg.activated,.assertive-900-bg:active,.assertive-900-bg:hover,.assertive-900-border,.assertive-900-border.activated,.assertive-900-border:active,.assertive-900-border:hover,.bar .button-assertive-900,.bar .button-assertive-900.activated,.bar .button-assertive-900:active,.bar .button-assertive-900:hover,.bar-assertive-900,.bar-assertive-900.activated,.bar-assertive-900:active,.bar-assertive-900:hover,.button-assertive-900,.button-assertive-900.activated,.button-assertive-900:active,.button-assertive-900:hover,.button-bar-assertive-900,.button-bar-assertive-900.activated,.button-bar-assertive-900:active,.button-bar-assertive-900:hover,.header-assertive-900,.header-assertive-900.activated,.header-assertive-900:active,.header-assertive-900:hover{background-color:#b71c1c;color:#fff}.assertive-100-bg,.assertive-100-bg.activated,.assertive-100-bg:active,.assertive-100-bg:hover,.assertive-100-border,.assertive-100-border.activated,.assertive-100-border:active,.assertive-100-border:hover,.bar .button-assertive-100,.bar .button-assertive-100.activated,.bar .button-assertive-100:active,.bar .button-assertive-100:hover,.bar-assertive-100,.bar-assertive-100.activated,.bar-assertive-100:active,.bar-assertive-100:hover,.button-assertive-100,.button-assertive-100.activated,.button-assertive-100:active,.button-assertive-100:hover,.button-bar-assertive-100,.button-bar-assertive-100.activated,.button-bar-assertive-100:active,.button-bar-assertive-100:hover,.header-assertive-100,.header-assertive-100.activated,.header-assertive-100:active,.header-assertive-100:hover{background-color:#ffcdd2;color:#fff}.bar .button-stable,.bar .button-stable.activated,.bar .button-stable:active,.bar .button-stable:hover,.bar-stable,.bar-stable.activated,.bar-stable:active,.bar-stable:hover,.button-bar-stable,.button-bar-stable.activated,.button-bar-stable:active,.button-bar-stable:hover,.button-stable,.button-stable.activated,.button-stable:active,.button-stable:hover,.header-stable,.header-stable.activated,.header-stable:active,.header-stable:hover,.stable-bg,.stable-bg.activated,.stable-bg:active,.stable-bg:hover,.stable-border,.stable-border.activated,.stable-border:active,.stable-border:hover{background-color:#e0e0e0;color:#fff}.icon-help,.icon-help *,.icon-help:active,.icon-help:active *,.icon-help:hover,.icon-help:hover *,.positive,.positive *,.positive-900,.positive-900 *,.positive-900:active,.positive-900:active *,.positive-900:hover,.positive-900:hover *,.positive:active,.positive:active *,.positive:hover,.positive:hover *,.text-editable:active:hover,.text-editable:active:hover *,.text-editable:hover,.text-editable:hover *{color:#3f51b5}.positive-100,.positive-100 *,.positive-100:active,.positive-100:active *,.positive-100:hover,.positive-100:hover *{color:#c5cae9}.calm-900,.calm-900 *,.calm-900:active,.calm-900:active *,.calm-900:hover,.calm-900:hover *{color:#0d47a1}.calm-100,.calm-100 *,.calm-100:active,.calm-100:active *,.calm-100:hover,.calm-100:hover *{color:#bbdefb}.royal,.royal *,.royal:active,.royal:active *,.royal:hover,.royal:hover *{color:#673ab7}.royal-900,.royal-900 *,.royal-900:active,.royal-900:active *,.royal-900:hover,.royal-900:hover *{color:#311b92}.royal-100,.royal-100 *,.royal-100:active,.royal-100:active *,.royal-100:hover,.royal-100:hover *{color:#d1c4e9}.balanced,.balanced *,.balanced:active,.balanced:active *,.balanced:hover,.balanced:hover *{color:#4caf50}.balanced-900,.balanced-900 *,.balanced-900:active,.balanced-900:active *,.balanced-900:hover,.balanced-900:hover *{color:#1b5e20}.balanced-100,.balanced-100 *,.balanced-100:active,.balanced-100:active *,.balanced-100:hover,.balanced-100:hover *{color:#c8e6c9}.energized,.energized *,.energized:active,.energized:active *,.energized:hover,.energized:hover *{color:#ff9800}.energized-900,.energized-900 *,.energized-900:active,.energized-900:active *,.energized-900:hover,.energized-900:hover *{color:#e65100}.energized-100,.energized-100 *,.energized-100:active,.energized-100:active *,.energized-100:hover,.energized-100:hover *{color:#ffe0b2}.assertive,.assertive *,.assertive:active,.assertive:active *,.assertive:hover,.assertive:hover *,.icon-alert,.icon-alert *,.icon-alert:active,.icon-alert:active *,.icon-alert:hover,.icon-alert:hover *{color:#f44336}.assertive-900,.assertive-900 *,.assertive-900:active,.assertive-900:active *,.assertive-900:hover,.assertive-900:hover *{color:#b71c1c}.assertive-100,.assertive-100 *,.assertive-100:active,.assertive-100:active *,.assertive-100:hover,.assertive-100:hover *{color:#ffcdd2}.stable,.stable *,.stable:active,.stable:active *,.stable:hover,.stable:hover *{color:#e0e0e0}.light,.light *,.light:active,.light:active *,.light:hover,.light:hover *{color:#fff}.button-text-dark,.button-text-dark *,.button-text-dark:active,.button-text-dark:active *,.button-text-dark:hover,.button-text-dark:hover *,.dark,.dark *,.dark:active,.dark:active *,.dark:hover,.dark:hover *{color:#444}.light-border{border-color:#ddd}.navbar-default .navbar-nav>li>a{margin:0;padding-right:26px;padding-left:26px;border-top:3px solid transparent;color:#bfd5c9;opacity:1}.mid-bar{padding:16px}.mid-bar h1,.mid-bar h2,.mid-bar h3,.mid-bar h4,.mid-bar h5,.mid-bar h6{color:#fff;margin-bottom:5px}.mid-bar p{color:rgba(255,255,255,.5);margin-bottom:0}.card>.item-avatar,.item-avatar,.item-avatar .item-content,.item-avatar-left,.item-avatar-left .item-content{padding-left:95px}.item,.item-complex .item-content,.item-radio .item-content,.menu{background-color:transparent}#home .main-container h4,.bar .button.button-clear,.bar .button.button-text,.dark-bg h2,.item.dark-bg h2,.popup-container.confirm .popup-head h1,.popup-container.confirm .popup-head h2,.popup-container.confirm .popup-head h3,.popup-container.confirm .popup-head h5,.popup-container.confirm .popup-head h6,.popup-container.confirm .popup-head p,.popup-container.warning .popup-head h1,.popup-container.warning .popup-head h2,.popup-container.warning .popup-head h3,.popup-container.warning .popup-head h5,.popup-container.warning .popup-head h6,.popup-container.warning .popup-head p{color:#fff}.tabs-striped .tabs{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}#menu .footer .bar .button.button-icon .icon-help:before,.bar .button.button-icon #menu .footer .icon-help:before,.bar .button.button-icon .icon-alert:before,.bar .button.button-icon .icon-help:before,.bar .button.button-icon .icon:before,.bar .button.button-icon.icon-left:before,.bar .button.button-icon.icon-right:before,.bar .button.button-icon:before{vertical-align:top;font-size:24px}.button-icon.button.activated,.button-icon.button.active{opacity:initial}.popover,.popover.ng-enter,.popover.ng-leave{transition:transform .3s ease-in-out,opacity .3s ease-in-out}.popover{position:absolute;right:8px;top:8px}.popover.ng-enter,.popover.ng-leave{opacity:1;transform:translate(0,-14px) scale(1,1)}.popover,.popover.ng-leave{opacity:0;transform:translate(50%,-50%) scale(0,0)}.button{overflow:hidden!important}@font-face{font-family:"Cesiumicons";src:url(../fonts/cesiumicons.eot?v=1.2);src:url(../fonts/cesiumicons.eot?v=1.2#iefix) format("embedded-opentype"),url(../fonts/cesiumicons.ttf?v=1.2) format("truetype"),url(../fonts/cesiumicons.woff?v=1.2) format("woff"),url(../fonts/cesiumicons.woff) format("woff"),url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE+R2VuZXJhdGVkIGJ5IEljb01vb248L21ldGFkYXRhPgo8ZGVmcz4KPGZvbnQgaWQ9ImNlc2l1bWljb25zIiBob3Jpei1hZHYteD0iMTAyNCI+Cjxmb250LWZhY2UgdW5pdHMtcGVyLWVtPSIxMDI0IiBhc2NlbnQ9Ijk2MCIgZGVzY2VudD0iLTY0IiAvPgo8bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iMTAyNCIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwOyIgaG9yaXotYWR2LXg9IjUxMiIgZD0iIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwMDsiIGQ9Ik03MDQuNjMxIDU3MS4xMjhjLTg4LjYxMy0xNDEuNDA5LTIyMC40MDMtMjYzLjQwOC0zODUuNTIxLTMwNS40NzMtNjcuMjUyLTE4LjQ5My0xMzcuMTEyLTI1LjgyMi0yMDYuNzA1LTI3LjAyMiA4NS41NDktMTYzLjA5NSAyNzUuODEtMjYyLjI3MiA0NTguNTQ1LTIzNy45NSAxODEuMTY2IDE5LjA3NiAzNDEuNjYyIDE1Ny4yMTUgMzg4LjMzOCAzMzMuMTYyLTU0LjYwMSAxMDMuOTI0LTE0MS40OSAxOTcuODc0LTI1NC42NTYgMjM3LjI4M3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTAxOyIgZD0iTTcwNS45MzcgNTcyLjA4OGMtMTYuNzU2LTExMS44MTUtODUuMDg2LTIwNy4yLTEwNy4yNjctMzE3LjIyMS05LjE4OC01MS41NDEgMjYuNzg2LTExMC42NDItMTQuNTc5LTE1NS41MTQtNDYuMjEtNTIuNDAyLTExOC45MDctNjUuMzc5LTE4MS45MzgtODcuNDY2IDE3Ny43My00Ny45MSAzNzkuNjYgMjQuMjE1IDQ4NS45ODIgMTc0Ljc4IDUwLjU1IDY5LjExNiA4MC45OTIgMTUyLjY4OSA4Ni42OTYgMjM4LjEyNS00Ni4wODUgOS40ODMtNjkuNDM2IDU1LjAyMC0xMTAuNTU2IDc0LjIwMS00OS45MTcgMjkuOTkyLTEwMy41NzEgNTMuNTE0LTE1OC4zMzkgNzMuMDk1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDI7IiBkPSJNNzA0LjQyMiA1NjMuNGMtMjMuNzg2LTUxLjQwOC0yNi40MzYtMTA5Ljc1Ny01NC4wODQtMTU5LjcyNi03LjIxMS0zMi45MDktNDEuMDkxLTg0LjI4OC0yOS40OTgtMTA2LjQ4OSAxMDEuNTktMTYuNTQyIDIwMy4xODEtMzMuMDg1IDMwNC43NzEtNDkuNjI3IDE4LjI3OCAzNS42NDkgMzEuODQ1IDczLjcxMSA0MC4yMDEgMTEyLjg5NC03My44NjggNzkuMjY5LTE1MC40NzEgMTYzLjQyNi0yNTUuMzU4IDIwMC42MzVsLTYuMDMyIDIuMzE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDM7IiBkPSJNNjY4LjYxNiA0NDUuNzk0Yy0yMC45ODMtMzEuNjc5LTI3LjI0NS03MC40MDgtNDQuMTA0LTEwNC40MjYtMTYuMjIxLTM1LjY4OS01MS40MTUtMTE5LjQ3MiAxOS42ODQtMTA5Ljg5IDUwLjQ1OSAyNC42NTQgOTUuMDUwLTEzLjM3OSAxNDUuODE5LTE2LjkyOSA0MC4zMTctNS41NjEgODIuMTM3LTQuNjY1IDEyMS4yOTUgNy4yMDEgMTQuOTgzIDMxLjcxNiA1MC42ODYgODIuNTk0IDM4LjcyNiAxMDguMzA1LTQ4LjU2MyA5Ljg2Ny05OS40NzMgMTMuODc5LTE0NS4yMTUgMzMuNjkgMTkuMjczIDQ1LjU5NS01NC45NzQgNTUuNDY1LTg5Ljk3NiA2OC44NC0xNS4zNDEgNC42MzctMzAuNzY1IDguOTk4LTQ2LjIyOSAxMy4yMDh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwNDsiIGQ9Ik02MDcuNzE0IDE2MC44NzNjLTMwLjE4My04NS4wMDItMTIzLjE4Ni0xMTkuOTQ4LTIwMS44MzItMTQ1Ljk0MyA1LjAyMC0xMS4xODYgNzEuMTg2LTE2LjMyNSAxMDAuNzg3LTE3LjMyNiAxMTcuMTE1LTMuMDY3IDIzNC41NDIgNDEuMDg2IDMyMC40OCAxMjAuNzUyLTc0LjgzMSAyLjgzNC0xNDkuNTQ5IDE0Ljc4NC0yMTkuNDM1IDQyLjUxN3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA1OyIgZD0iTTU5OC40ODUgMjY4LjUzNGMtNC4xNzQtNDIuNzY0LTI1LjE4OC0xMTUuOTM2IDM0LjAyOC0xMjguNDk0IDU4LjUzNy0xNC41ODEgMTE5LjQzNC0xOC41MTEgMTc3LjA2Ny0zNy4wMjAgNDUuMjAxIDM3LjQ0NyA4My4xNjcgODMuNTk5IDExMS4xMiAxMzUuMjE3LTEwNy45OC0xLjY4MS0yMTkuNDMxLTEwLjIwNC0zMjIuMjE1IDMwLjI5N3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA2OyIgZD0iTTYwNy4yMSA2MDAuNzhjMTguOTU5IDIuMjkgMzUuMjM0IDEuODk2IDI4LjI4OC0yMS43MiA1LjkzNS0xNC42NDQtMzYuNjE0LTE0LjYwNy0yOC4yODggMS44NDEgMCA2LjYyNiAwIDEzLjI1MiAwIDE5Ljg3OXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA3OyIgZD0iTTQ0NC41NDEgNzAyLjk2MmMyMS4wODggMy45NTggMzIuNjU0LTEuNjA0IDI2Ljk1NC0yNC40MzUtNS42NzMtMTEuMDcxLTM3LjY5Ny03LjY1LTI2Ljk1NCAxNC4wMzYgMCAzLjQ2NiAwIDYuOTMzIDAgMTAuMzk5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDg7IiBkPSJNNTA0LjUzMiA2ODEuNzhjMTMuNDc4LTMuMjk4IDQzLjIzNiA5LjY4MiAzNi43NTUtMTMuNTc1IDYuMjU0LTIzLjAzMC03LjA1Ny0yNi40OTYtMjcuMTUtMjMuMTgtMTguNTY3LTUuNDk2LTUuODcxIDI2LjUyNy05LjYwNSAzNi43NTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwOTsiIGQ9Ik01MDIuNTM5IDQxNy40MjZjMTguNzg2IDAgMzcuNTcyIDAgNTYuMzU4IDAgMC0xOC43ODYgMC0zNy41NzIgMC01Ni4zNTgtMTguNzg2IDAtMzcuNTcyIDAtNTYuMzU4IDAgMCAxOC43ODYgMCAzNy41NzIgMCA1Ni4zNTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYTsiIGQ9Ik01MDguODU2IDYzMC4xNTdjMTMuNDc4LTMuMjk4IDQzLjIzNiA5LjY4MiAzNi43NTUtMTMuNTc1IDYuMjU0LTIzLjAzMC03LjA1Ny0yNi40OTYtMjcuMTUtMjMuMTgtMTguNTY3LTUuNDk2LTUuODcxIDI2LjUyNy05LjYwNSAzNi43NTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYjsiIGQ9Ik01NjkuMTAzIDQ3NC4xNGMxOC45NyAxLjkyOSAzNi40OTIgMi40MDkgMjkuNDA0LTIxLjcyIDYuODk0LTE1LjkzMi0zNy4yMzUtMTUuODMzLTI5LjQwNCAwLjcyNSAwIDYuOTk4IDAgMTMuOTk2IDAgMjAuOTk0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MGM7IiBkPSJNNjI3LjA4NyA1MzEuNDAzYzE5LjM1IDcuODY5IDI5LjQwOC05LjU4MiAxOS4zMzgtMjIuMDUzLTIxLjU4My00LjE0Ny0yMC44MDEgMy4zODctMTkuMzM4IDIyLjA1M3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBkOyIgZD0iTTU0Ny42MjcgNTI1LjIzMWMxMy40NzgtMy4yOTggNDMuMjM2IDkuNjgyIDM2Ljc1NS0xMy41NzUgNi4yNTQtMjMuMDMwLTcuMDU3LTI2LjQ5Ni0yNy4xNS0yMy4xOC0xOC41NjctNS40OTYtNS44NzEgMjYuNTI3LTkuNjA1IDM2Ljc1NXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBlOyIgZD0iTTQwMy44MDIgMzM1LjAyNGMxNC40MjYtMS45OTggMzYuNzMgMy44ODIgNDYuNTU2LTIuNzE1LTIuMDIwLTE0LjMxNSAzLjkxMy0zNi41ODQtMi43MTUtNDYuMjkyLTEyLjg3OSAzLjU0NS00MC4wMTctNy4xNjktNDMuODQxIDUuNDMgMCAxNC41MjYgMCAyOS4wNTEgMCA0My41Nzd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwZjsiIGQ9Ik00NDcuOTA3IDQwNi4wODRjMTYuODM2LTAuMTE3IDM5LjY3NyA1Ljc3IDMxLjg1NC0xOS4wMDUgNy44Mi0yNC4zNTUtMTYuMDgwLTE2Ljk5LTMxLjg1NC0xNy43NSAwIDEyLjI1MiAwIDI0LjUwMyAwIDM2Ljc1NXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTEwOyIgZD0iTTUxNS4yOTEgNDY4LjU2N2MtMTguOTcxIDEuODk0LTM2LjYxMiAyLjQ1OS0yOS41MS0yMS43Mi0yLjUzOC0xMi45OSAzOS42MjctMTMuMzc0IDI5LjUxIDUuODkxIDAgNS4yNzYgMCAxMC41NTMgMCAxNS44Mjl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkxMTsiIGQ9Ik01NzguNDg2IDU3Mi44NjZjMjEuMjMyIDQuOTIgMjkuNDY5LTMuMTU2IDI0LjUwMy0yNC40MzUtMTMuMTA0LTguNTMyLTMyLjk1NS0yLjEwNi0yNC41MDMgMTkuMjAxdjUuMjM0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MTI7IiBkPSJNNjAxLjQ3MSA2NDEuNjg5Yy0xOC45NzEgMS44OTQtMzYuNjEyIDIuNDU5LTI5LjUxLTIxLjcyLTIuNTM4LTEyLjk5IDM5LjYyNy0xMy4zNzQgMjkuNTEgNS44OTEgMCA1LjI3NiAwIDEwLjU1MyAwIDE1LjgyOXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTE1OyIgZ2x5cGgtbmFtZT0iZGlhc3BvcmEiIGhvcml6LWFkdi14PSIxMDY0IiBkPSJNNjcwLjEgMjIuMTA5Yy0yOC42OTIgNDAuMDQ2LTczLjQ1OSAxMDIuNTcxLTk5LjQ4MiAxMzguOTQ1LTI2LjU3OSAzNy4xNTEtNDguMjAyIDY2LjE0Ni00OS4zNCA2Ni4xNjEtMS4xNjkgMC4wMTUtNDIuOTg2LTU2LjE5Ni05OC45MTItMTMyLjk2MS01My4yODgtNzMuMTQzLTk3LjMzLTEzMi45ODctOTcuODcyLTEzMi45ODctMS41MTYgMC0xOTIuMTE0IDEzNC4yNS0xOTIuNjA1IDEzNS42NjMtMC4yMzcgMC42ODQgNDIuODUgNjMuOTM1IDk1Ljc1MSAxNDAuNTU5czk2LjE4MiAxNDAuNTIzIDk2LjE4MiAxNDEuOTk5YzAgMi4zOC0xNy4xNDIgOC4zOTgtMTUxLjYwNSA1My4yMjYtODMuMzgzIDI3Ljc5OC0xNTIuNDIyIDUwLjg2MS0xNTMuNDIgNTEuMjUxLTEuMzg4IDAuNTQyIDYuNTUgMjcuMTAzIDMzLjc4MyAxMTMuMDMyIDE5LjU3OCA2MS43NzggMzYuMDQwIDExMi44MjggMzYuNTgxIDExMy40NDRzNzMuMDExLTIyLjU3NCAxNjEuMDQzLTUxLjUzNGM4OC4wMzMtMjguOTYgMTYwLjc5Ni01Mi42NTQgMTYxLjY5Ni01Mi42NTNzMS45MTkgMS4zNDggMi4yNjMgMi45OTRjMC4zNDQgMS42NDYgMS4xMDQgNzYuNjAxIDEuNjg4IDE2Ni41NjZzMS41NDYgMTY0LjMyMiAyLjEzNyAxNjUuMjM2YzAuODQ3IDEuMzA5IDI1LjU3NiAxLjY1OCAxMTYuMzY0IDEuNjQyIDYzLjQwOC0wLjAxMSAxMTUuOTQ4LTAuNDYgMTE2Ljc1Ni0wLjk5NyAxLjAxOC0wLjY3NyAyLjc1Ny01MC4xMzggNS42Ny0xNjEuMjI2IDQuNzgzLTE4Mi40MDggNC44ODYtMTg0Ljg1MiA3Ljc5NS0xODQuODUyIDEuMTI4IDAgNzAuODk2IDIzLjM1MyAxNTUuMDQxIDUxLjg5NnMxNTMuNCA1MS40MzMgMTUzLjkwMSA1MC44NjhjMS43LTEuOTE4IDcwLjcxNS0yMjYuNjAyIDY5Ljg2NS0yMjcuNDUxLTAuNDY0LTAuNDY0LTcwLjY5LTI0LjUxNC0xNTYuMDU2LTUzLjQ0NC0xMTcuNDMyLTM5Ljc5Ny0xNTUuMzE1LTUzLjE0My0xNTUuNjMzLTU0LjgyNy0wLjIzNS0xLjI0NCA0MC4xNDktNjEuNTk0IDkxLjQ5OS0xMzYuNzM3IDUwLjU1NS03My45ODEgOTEuNzMzLTEzNS4wNjIgOTEuNTA3LTEzNS43MzctMC41MjEtMS41NDktMTg5LjY4MS0xNDAuODg0LTE5MS4yNjMtMTQwLjg4NC0wLjY0MiAwLTI0LjY0MyAzMi43NjUtNTMuMzM1IDcyLjgxeiIgLz4KPC9mb250PjwvZGVmcz48L3N2Zz4=) format("svg");font-weight:400;font-style:normal}.cesiumicons,.cion,.ion-library:before,.ion-office:before,.ion-social-diaspora:before,.ion-social-duniter:before{display:inline-block;font-family:"Cesiumicons";speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-social-duniter:before{content:""}.ion-social-diaspora:before{content:""}.ion-office:before{content:""}.ion-library:before{content:""}.digit-keyboard{position:absolute;left:0;right:0;bottom:0;background:0 0;font-size:24px;z-index:5000}.digit-keyboard *{box-sizing:border-box}.digit-keyboard .digit-keyboard-row{display:flex;flex-direction:row;border-bottom:1px solid #333}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper{flex:1;text-align:center;position:relative;height:60px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{display:block;margin:0 auto;position:absolute;left:0;top:0;right:0;bottom:0;border-right:1px solid #333;border-left:1px solid #333;line-height:60px;-webkit-transition:background-color 100ms linear;-moz-transition:background-color 100ms linear;-o-transition:background-color 100ms linear;-ms-transition:background-color 100ms linear;transition:background-color 100ms linear}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{font-size:1em;vertical-align:middle;display:inline-block;line-height:normal;text-align:center;margin-top:-.4em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{font-size:9.6px;line-height:9.6px;height:9.6px;margin-top:-.25em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters.hidden,.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper.hidden{visibility:hidden}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-action{position:absolute;left:0;top:0;right:0;bottom:0;line-height:60px;font-size:24px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:first-child .digit-keyboard-key{border-right:none}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:last-child .digit-keyboard-key{border-left:none}.digit-keyboard .digit-keyboard-row:first-child{border-top:1px solid #333}.digit-keyboard .digit-keyboard-row:last-child{border:none}.digit-keyboard .digit-keyboard-row:last-child .digit-keyboard-key-wrapper .digit-keyboard-key{border-bottom:1px solid #333}.digit-keyboard.align-center{margin:0 auto}.digit-keyboard.align-left{margin-right:auto}.digit-keyboard.align-right{margin-left:auto}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{margin-top:-.3em}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{display:none}.digit-keyboard.round-buttons .digit-keyboard-row{border:none}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper{margin:10px 0 0}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{width:60px;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;border:1px solid #333}.digit-keyboard.round-buttons .digit-keyboard-row:last-child .digit-keyboard-key-wrapper{margin-bottom:10px}.digit-keyboard.round-buttons.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{height:57.6px;line-height:57.6px}.digit-keyboard.keyboard-light *{border-color:#e6e6e6!important}.digit-keyboard.keyboard-light .digit-keyboard-key{background:#fff;color:#444}.digit-keyboard.keyboard-light .digit-keyboard-key.activated{background:#e6e6e6}.digit-keyboard.keyboard-stable *{border-color:#dfdfdf!important}.digit-keyboard.keyboard-stable .digit-keyboard-key{background:#f8f8f8;color:#444}.digit-keyboard.keyboard-stable .digit-keyboard-key.activated{background:#dfdfdf}.digit-keyboard.keyboard-positive *{border-color:#0c60ee!important}.digit-keyboard.keyboard-positive .digit-keyboard-key{background:#387ef5;color:#fff}.digit-keyboard.keyboard-positive .digit-keyboard-key.activated{background:#0c60ee}.digit-keyboard.keyboard-calm *{border-color:#0a9dc7!important}.digit-keyboard.keyboard-calm .digit-keyboard-key{background:#11c1f3;color:#fff}.digit-keyboard.keyboard-calm .digit-keyboard-key.activated{background:#0a9dc7}.digit-keyboard.keyboard-balanced *{border-color:#28a54c!important}.digit-keyboard.keyboard-balanced .digit-keyboard-key{background:#33cd5f;color:#fff}.digit-keyboard.keyboard-balanced .digit-keyboard-key.activated{background:#28a54c}.digit-keyboard.keyboard-energized *{border-color:#e6b500!important}.digit-keyboard.keyboard-energized .digit-keyboard-key{background:#ffc900;color:#fff}.digit-keyboard.keyboard-energized .digit-keyboard-key.activated{background:#e6b500}.digit-keyboard.keyboard-assertive *{border-color:#e42112!important}.digit-keyboard.keyboard-assertive .digit-keyboard-key{background:#ef473a;color:#fff}.digit-keyboard.keyboard-assertive .digit-keyboard-key.activated{background:#e42112}.digit-keyboard.keyboard-royal *{border-color:#6b46e5!important}.digit-keyboard.keyboard-royal .digit-keyboard-key{background:#886aea;color:#fff}.digit-keyboard.keyboard-royal .digit-keyboard-key.activated{background:#6b46e5}.digit-keyboard.keyboard-dark *{border-color:#2b2b2b!important}.digit-keyboard.keyboard-dark .digit-keyboard-key{background:#444;color:#fff}.digit-keyboard.keyboard-dark .digit-keyboard-key.activated{background:#2b2b2b}.digit-keyboard.keyboard-opaque-black *{border-color:rgba(0,0,0,.75)!important}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key{background:rgba(0,0,0,.15);color:rgba(0,0,0,.75)}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key.activated{background:rgba(0,0,0,.25)}.digit-keyboard.keyboard-opaque-white *{border-color:rgba(255,255,255,.75)!important}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key{background:rgba(255,255,255,.15);color:rgba(255,255,255,.75)}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key.activated{background:rgba(255,255,255,.25)}.digit-keyboard.animation-pop,.digit-keyboard.animation-slide-up{-webkit-transition:transform linear 150ms;transition:transform linear 150ms}.digit-keyboard.animation-slide-up{transform:translate3d(0,0,0)}.digit-keyboard.animation-slide-up.ng-hide{transform:translate3d(0,100%,0)}.digit-keyboard.animation-pop{transform:scale3d(1,1,1)}.digit-keyboard.animation-pop.ng-hide{transform:scale3d(0,0,1)}@media screen and (max-width:400px){@-ms-viewport{width:320px}}@media screen and (max-width:767px){.hidden-xs{display:none!important;visibility:hidden!important}.padding-top-xs{padding-top:10px}}@media screen and (min-width:768px){.hidden-xs{display:inherit;visibility:visible}.row.hidden-xs{display:flex!important}.button.hidden-xs{display:inline-block}}@media screen and (max-width:767px){.visible-xs{display:inherit!important;visibility:visible!important}.button.visible-xs{display:inline-block!important}}@media screen and (min-width:768px){.visible-xs{display:none!important;visibility:hidden!important}}@media screen and (max-width:767px){.padding-xs{padding:16px!important}.no-padding-xs{padding:0!important}.no-margin-xs{margin:0!important}}@media screen and (min-width:768px) and (max-width:991px){.hidden-sm,.row-header.hidden-sm,.row.hidden-sm{display:none!important;visibility:hidden!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:400px!important;display:inline-block!important}.badge:empty{display:none!important}.padding-sm{padding:16px!important}.no-padding-sm{padding:0!important}.no-margin-sm{margin:0!important}}@media screen and (min-width:768px){.item-toggle .toggle{right:32px}}@media screen and (min-width:992px){.hidden-sm{display:inherit;visibility:visible}.row.hidden-sm{display:flex!important}.button.hidden-sm{display:flex}#menu .footer .popover-helptip .icon-bottom-center.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-bottom-left.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-bottom-right.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-center.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-left.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-right.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-center.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-left.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-right.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-center.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-left.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-right.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-center.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-center.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-left.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-left.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-right.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-right.icon-help .button.hidden-sm,.popover-helptip .icon-center.icon-alert .button.hidden-sm,.popover-helptip .icon-center.icon-help .button.hidden-sm,.popover-helptip .icon-left.icon-alert .button.hidden-sm,.popover-helptip .icon-left.icon-help .button.hidden-sm,.popover-helptip .icon-right.icon-alert .button.hidden-sm,.popover-helptip .icon-right.icon-help .button.hidden-sm,.popover-helptip .icon.icon-bottom-center .button.hidden-sm,.popover-helptip .icon.icon-bottom-left .button.hidden-sm,.popover-helptip .icon.icon-bottom-right .button.hidden-sm,.popover-helptip .icon.icon-center .button.hidden-sm,.popover-helptip .icon.icon-left .button.hidden-sm,.popover-helptip .icon.icon-right .button.hidden-sm,.pull-left .button.hidden-sm,.pull-right .button.hidden-sm{display:inline-block}}@media screen and (max-width:767px){.hidden-sm{display:inherit;visibility:visible}}@media screen and (max-width:991px){.visible-sm{display:inherit!important;visibility:visible!important}.button.visible-sm{display:inline-block!important}}@media screen and (min-width:992px){.visible-sm{display:none;visibility:hidden}}@media screen and (max-width:767px){.visible-sm{display:none;visibility:hidden}}@media screen and (max-width:991px){body{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEbSURBVDiNndMxK4ZRGMbx3zmRMrwvM2XCQFFik/IJpCw+hJLPgfIhLBY+gEEGJQPFwGZg9TIoBrfhOfSQHl7XeM7/fw3nvk+KCPWklEawgGlMlOMrnOMoIm6/8B8FKaWMFazhGQ94LFwbg+jHDvYi4u2zIKWUsIk5XNfE72ljHKfYiIjI5WIZMzhrkJW7s8IuQ8IwdnGDpwa5nhbGsJqxiNcuZIV9xWJWvXY3cr1kOmMSnX8UdDCZEb+RDYmMS9WMu80gLrNqw1r/KGjhPOMQvaol+Wva6MFhjoh7bGEUuVGrkgu7HRH3H8IBTjCLgQZ5oDAnxfnymRKWsI4X1Zw7NbGFPmxjP4qYfvjOQ5jHlGpHqCZ1geOIuKvz76QSW1T3cwmnAAAAAElFTkSuQmCC),auto}}@media screen and (min-width:992px){body{cursor:inherit}}@media screen and (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important;visibility:hidden!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:400px!important;display:block!important}.badge:empty{display:none!important}}@media screen and (min-width:1200px){.hidden-md{display:inherit;visibility:visible}}@media screen and (max-width:991px){.hidden-md{display:inherit;visibility:visible}}@media screen and (min-width:992px) and (max-width:1199px){.visible-md{display:inherit!important;visibility:visible!important}}@media screen and (min-width:1200px){.visible-md{display:none;visibility:hidden}}@media screen and (max-width:991px){.visible-md{display:none;visibility:hidden}}@media screen and (min-width:1200px){.hidden-lg{display:none!important;visibility:hidden!important}.visible-lg{display:inherit!important;visibility:visible!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:450px!important;display:block!important}.badge:empty{display:none!important}}@media screen and (max-width:1199px){.hidden-lg{display:inherit;visibility:visible}.visible-lg{display:none;visibility:hidden}}@media screen and (max-width:768px){.no-padding-xs{padding:inherit}}@media screen and (max-width:767px){.no-margin-xs{margin:0!important}}@media screen and (min-width:992px){.disable-user-behavior,.scroll,body,html{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important;-webkit-touch-callout:default!important;-webkit-tap-highlight-color:#387ef5;-webkit-user-drag:none!important;touch-action:auto!important;-ms-touch-action:auto!important;-ms-content-zooming:none!important}}@media screen and (max-width:844px){.hidden-nomenu{display:none!important;visibility:hidden!important}.visible-nomenu{display:inherit!important;visibility:visible!important}}@media screen and (min-width:845px){.hidden-nomenu{display:inherit;visibility:visible}.hidden-menu,.visible-nomenu{display:none!important;visibility:hidden!important}.visible-menu{display:inherit!important;visibility:visible!important}}@media screen and (max-width:844px){.hidden-menu{display:inherit;visibility:visible}.visible-menu{display:none;visibility:hidden}}body,html{position:absolute;top:0;left:0;height:100%;width:100%}.item.item-icon-right .item-select select,.item.item-icon-right.item-select select{right:48px;padding:0 20px 0 16px}.item.item-icon-right .item-select:after,.item.item-icon-right.item-select:after{right:56px}#unitPopover .item.selected,.popover-unit .item.selected{background-color:#f8f8f8}@media (max-width:767px){.popover-share{width:auto}}.ios ion-content{pointer-events:auto}.popover-share{height:110px}.popover-share .bar{box-shadow:none!important}.popover-share .bar-header{height:20px}.popover-share .bar-header .title{font-size:12px;font-weight:700;height:20px;line-height:19px;max-width:260px;margin:0 5px;text-align:left}.popover-share .bar-header span{font-size:10px;height:20px;position:absolute;right:0;top:0;margin:0 5px;display:block}.popover-share .has-header{top:20px}.popover-share .has-footer{bottom:40px}.popover-share .bar-footer{color:#387ef5;height:40px}.popover-share .bar-footer .button-icon{padding:0 5px}.popover-share .bar-footer .button-close{position:absolute;right:0;bottom:0}.popover-share .item{padding:5px}.popover-share .item input{border:1px solid gray;border-radius:3px;box-shadow:inset 0 1px 1px rgba(0,0,0,.3)}.popover-share .item input:focus{border-color:#387ef5;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.3),0 0 8px #08c}.popover-share .list .item{border-bottom:0!important}.popover-light .bar-footer,.popover-light .bar-header,.popover-notification .bar-footer,.popover-notification .bar-header{height:30px}.popover-light .bar-footer .title,.popover-light .bar-header .title,.popover-notification .bar-footer .title,.popover-notification .bar-header .title{color:#000;text-align:left;left:0!important;font-size:14px;line-height:30px}#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-right.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-help,.popover-helptip .popover-light .bar-footer .icon-center.icon-alert,.popover-helptip .popover-light .bar-footer .icon-center.icon-help,.popover-helptip .popover-light .bar-footer .icon-right.icon-alert,.popover-helptip .popover-light .bar-footer .icon-right.icon-help,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-center,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-right,.popover-helptip .popover-light .bar-footer .icon.icon-center,.popover-helptip .popover-light .bar-footer .icon.icon-right,.popover-helptip .popover-light .bar-header .icon-bottom-center.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-center.icon-help,.popover-helptip .popover-light .bar-header .icon-bottom-right.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-right.icon-help,.popover-helptip .popover-light .bar-header .icon-center.icon-alert,.popover-helptip .popover-light .bar-header .icon-center.icon-help,.popover-helptip .popover-light .bar-header .icon-right.icon-alert,.popover-helptip .popover-light .bar-header .icon-right.icon-help,.popover-helptip .popover-light .bar-header .icon.icon-bottom-center,.popover-helptip .popover-light .bar-header .icon.icon-bottom-right,.popover-helptip .popover-light .bar-header .icon.icon-center,.popover-helptip .popover-light .bar-header .icon.icon-right,.popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-help,.popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-help,.popover-helptip .popover-notification .bar-footer .icon-center.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-center.icon-help,.popover-helptip .popover-notification .bar-footer .icon-right.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-right.icon-help,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-center,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-right,.popover-helptip .popover-notification .bar-footer .icon.icon-center,.popover-helptip .popover-notification .bar-footer .icon.icon-right,.popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-help,.popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-help,.popover-helptip .popover-notification .bar-header .icon-center.icon-alert,.popover-helptip .popover-notification .bar-header .icon-center.icon-help,.popover-helptip .popover-notification .bar-header .icon-right.icon-alert,.popover-helptip .popover-notification .bar-header .icon-right.icon-help,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-center,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-right,.popover-helptip .popover-notification .bar-header .icon.icon-center,.popover-helptip .popover-notification .bar-header .icon.icon-right,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-center.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-right.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-center.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-right.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-center.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-right.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-footer .popover-helptip .icon-center.icon-alert,.popover-light .bar-footer .popover-helptip .icon-center.icon-help,.popover-light .bar-footer .popover-helptip .icon-right.icon-alert,.popover-light .bar-footer .popover-helptip .icon-right.icon-help,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-center,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-right,.popover-light .bar-footer .popover-helptip .icon.icon-center,.popover-light .bar-footer .popover-helptip .icon.icon-right,.popover-light .bar-footer .pull-right,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-center.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-right.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-center.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-right.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-center.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-right.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-header .popover-helptip .icon-center.icon-alert,.popover-light .bar-header .popover-helptip .icon-center.icon-help,.popover-light .bar-header .popover-helptip .icon-right.icon-alert,.popover-light .bar-header .popover-helptip .icon-right.icon-help,.popover-light .bar-header .popover-helptip .icon.icon-bottom-center,.popover-light .bar-header .popover-helptip .icon.icon-bottom-right,.popover-light .bar-header .popover-helptip .icon.icon-center,.popover-light .bar-header .popover-helptip .icon.icon-right,.popover-light .bar-header .pull-right,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-center.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-center.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-right.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon-center.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-footer .popover-helptip .icon-right.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-center,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-right,.popover-notification .bar-footer .popover-helptip .icon.icon-center,.popover-notification .bar-footer .popover-helptip .icon.icon-right,.popover-notification .bar-footer .pull-right,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-center.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-right.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-center.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-right.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-header .popover-helptip .icon-center.icon-alert,.popover-notification .bar-header .popover-helptip .icon-center.icon-help,.popover-notification .bar-header .popover-helptip .icon-right.icon-alert,.popover-notification .bar-header .popover-helptip .icon-right.icon-help,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-center,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-right,.popover-notification .bar-header .popover-helptip .icon.icon-center,.popover-notification .bar-header .popover-helptip .icon.icon-right,.popover-notification .bar-header .pull-right{margin-right:10px}#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-left.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-help,.popover-helptip .popover-light .bar-footer .icon-left.icon-alert,.popover-helptip .popover-light .bar-footer .icon-left.icon-help,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-left,.popover-helptip .popover-light .bar-footer .icon.icon-left,.popover-helptip .popover-light .bar-header .icon-bottom-left.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-left.icon-help,.popover-helptip .popover-light .bar-header .icon-left.icon-alert,.popover-helptip .popover-light .bar-header .icon-left.icon-help,.popover-helptip .popover-light .bar-header .icon.icon-bottom-left,.popover-helptip .popover-light .bar-header .icon.icon-left,.popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-help,.popover-helptip .popover-notification .bar-footer .icon-left.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-left.icon-help,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-left,.popover-helptip .popover-notification .bar-footer .icon.icon-left,.popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-help,.popover-helptip .popover-notification .bar-header .icon-left.icon-alert,.popover-helptip .popover-notification .bar-header .icon-left.icon-help,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-left,.popover-helptip .popover-notification .bar-header .icon.icon-left,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-left.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-left.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-left.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-footer .popover-helptip .icon-left.icon-alert,.popover-light .bar-footer .popover-helptip .icon-left.icon-help,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-left,.popover-light .bar-footer .popover-helptip .icon.icon-left,.popover-light .bar-footer .pull-left,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-left.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-left.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-left.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-header .popover-helptip .icon-left.icon-alert,.popover-light .bar-header .popover-helptip .icon-left.icon-help,.popover-light .bar-header .popover-helptip .icon.icon-bottom-left,.popover-light .bar-header .popover-helptip .icon.icon-left,.popover-light .bar-header .pull-left,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-left.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon-left.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-left,.popover-notification .bar-footer .popover-helptip .icon.icon-left,.popover-notification .bar-footer .pull-left,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-left.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-left.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-header .popover-helptip .icon-left.icon-alert,.popover-notification .bar-header .popover-helptip .icon-left.icon-help,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-left,.popover-notification .bar-header .popover-helptip .icon.icon-left,.popover-notification .bar-header .pull-left{margin-left:10px}.popover-light .bar-footer a,.popover-light .bar-header a,.popover-notification .bar-footer a,.popover-notification .bar-header a{font-size:14px;text-decoration:none;line-height:30px}.popover-light .has-footer,.popover-notification .has-footer{bottom:28px}.popover-light .has-header,.popover-notification .has-header{top:30px}.popover-light .item.unread,.popover-notification .item.unread{background-color:#ecf0f7!important;border-color:#dddfe2!important}.popover-light .item-avatar,.popover-notification .item-avatar{padding:12px 10px 8px 76px;min-height:80px!important}#menu .footer .popover-light .item-avatar h4 i.icon-help,#menu .footer .popover-notification .item-avatar h4 i.icon-help,#menu .footer .view-notification ion-item h4 i.icon-help,.popover-light .item-avatar h4 #menu .footer i.icon-help,.popover-light .item-avatar h4 i.icon,.popover-light .item-avatar h4 i.icon-alert,.popover-light .item-avatar h4 i.icon-help,.popover-notification .item-avatar h4 #menu .footer i.icon-help,.popover-notification .item-avatar h4 i.icon,.popover-notification .item-avatar h4 i.icon-alert,.popover-notification .item-avatar h4 i.icon-help,.view-notification ion-item h4 #menu .footer i.icon-help,.view-notification ion-item h4 i.icon,.view-notification ion-item h4 i.icon-alert,.view-notification ion-item h4 i.icon-help{font-size:18px!important;line-height:12px!important;vertical-align:middle!important}.popover-light .item-avatar .item-content .item-image,.popover-light .item-avatar .item-content>img:first-child,.popover-light .item-avatar .item-image,.popover-light .item-avatar>img:first-child,.popover-notification .item-avatar .item-content .item-image,.popover-notification .item-avatar .item-content>img:first-child,.popover-notification .item-avatar .item-image,.popover-notification .item-avatar>img:first-child{top:12px;left:10px}.popover-light .button.button-small,.popover-notification .button.button-small{height:30px;font-size:12px;padding:0 5px!important;line-height:30px}.popover-invitation,.popover-network,.popover-peer-info{width:420px}.popover-wallets .item-avatar{padding-left:95px!important}#menu .footer .popover-wallets .item-avatar .icon-help:last-child,.popover-wallets .item-avatar #menu .footer .icon-help:last-child,.popover-wallets .item-avatar .icon-alert:last-child,.popover-wallets .item-avatar .icon-help:last-child,.popover-wallets .item-avatar .icon:last-child{display:none}.popover-endpoints .item .badge,.popover-peer-info .item .badge{right:16px!important}.popover-endpoints .item .badge.badge-secondary,.popover-peer-info .item .badge.badge-secondary{top:35px!important}.popover-unit{height:108px;max-width:115px}.view-notification .item.unread{background-color:#ecf0f7!important;border-color:#dddfe2!important}.bar.bar-header .button.button-clear.button-icon i.ion-android-more-vertical,.bar.bar-header .button.button-clear.button-icon.ion-android-more-vertical,.bar.bar-header .button.button-icon.button-text i.ion-android-more-vertical,.bar.bar-header .button.button-icon.ion-android-more-vertical.button-text{padding-left:8px;padding-right:8px}#menu .footer .popover-helptip .bar .buttons.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-right.icon-help,.bar .buttons.pull-right,.bar .popover-helptip #menu .footer .buttons.icon-bottom-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-bottom-right.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon-bottom-center.icon-alert,.bar .popover-helptip .buttons.icon-bottom-center.icon-help,.bar .popover-helptip .buttons.icon-bottom-right.icon-alert,.bar .popover-helptip .buttons.icon-bottom-right.icon-help,.bar .popover-helptip .buttons.icon-center.icon-alert,.bar .popover-helptip .buttons.icon-center.icon-help,.bar .popover-helptip .buttons.icon-right.icon-alert,.bar .popover-helptip .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon.icon-bottom-center,.bar .popover-helptip .buttons.icon.icon-bottom-right,.bar .popover-helptip .buttons.icon.icon-center,.bar .popover-helptip .buttons.icon.icon-right,.bar .title+.button:last-child,.bar .title+.buttons,.bar>.button+.button:last-child,.bar>.button.pull-right,.popover-helptip #menu .footer .bar .buttons.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-right.icon-help,.popover-helptip .bar .buttons.icon-bottom-center.icon-alert,.popover-helptip .bar .buttons.icon-bottom-center.icon-help,.popover-helptip .bar .buttons.icon-bottom-right.icon-alert,.popover-helptip .bar .buttons.icon-bottom-right.icon-help,.popover-helptip .bar .buttons.icon-center.icon-alert,.popover-helptip .bar .buttons.icon-center.icon-help,.popover-helptip .bar .buttons.icon-right.icon-alert,.popover-helptip .bar .buttons.icon-right.icon-help,.popover-helptip .bar .buttons.icon.icon-bottom-center,.popover-helptip .bar .buttons.icon.icon-bottom-right,.popover-helptip .bar .buttons.icon.icon-center,.popover-helptip .bar .buttons.icon.icon-right,.popover-helptip .bar>.button.icon-bottom-center.icon-alert,.popover-helptip .bar>.button.icon-bottom-center.icon-help,.popover-helptip .bar>.button.icon-bottom-right.icon-alert,.popover-helptip .bar>.button.icon-bottom-right.icon-help,.popover-helptip .bar>.button.icon-center.icon-alert,.popover-helptip .bar>.button.icon-center.icon-help,.popover-helptip .bar>.button.icon-right.icon-alert,.popover-helptip .bar>.button.icon-right.icon-help,.popover-helptip .bar>.button.icon.icon-bottom-center,.popover-helptip .bar>.button.icon.icon-bottom-right,.popover-helptip .bar>.button.icon.icon-center,.popover-helptip .bar>.button.icon.icon-right{top:0!important}.bar.bar-header{padding-right:5px!important}.bar.bar-header .buttons-right span{margin-left:0!important}.bar .title+.buttons.buttons-right{right:5px}.button-icon{border-color:transparent;box-shadow:none!important}.button-small-padding{padding:0 7px!important}.button-text{color:gray!important;font-size:12px}.button-text.button-small{padding:5px 2px;font-size:12px!important}.button-text-positive{color:#387ef5!important}.button-text-stable{color:#b2b2b2!important}.popup-buttons .button.icon-left,.popup-buttons .button.icon-right{padding-left:32px!important;padding-right:32px!important;line-height:42px}.button-fab-bottom-left.has-footer,.button-fab-bottom-right.has-footer{bottom:64px!important}#home .logo{margin-top:15px;width:100%;background-position:center center;background-repeat:no-repeat}#home .center{float:none;text-align:center}#home .center,#home .center .button{display:inline-block}@media screen and (max-width:767px){#home .logo{height:96px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4AgRBwUf93UlLAAAIABJREFUeNrtnXd8VkX2/99z71PTewEChBK6VCnSAigIUlVgLeuqq7vq2nddf+vqV9a2rm0XXQvsVxF11Q0qJKFLCSBNqZESOoSEkoTwpD/t3vP7IyEkkEASsO3Xeb2e1+u5be7c85k5M/M558zAz+nn9HP6Of1gSf3UP2DSOxuuMUW1AbAoWfH5Pf33/ZTKb/lJS3+aaIba+mfN9A4FMOA24GcAGi4/0TI+IcIMJlxBlAbh4scGoOv4fVAOIAqXHQr8BeRl3I4nOZ1+CqaIMNkoDGqhVRT+ZOvQDwpAxhwCkkoomnmzKjhTc5NTJMhnR1UIAXYnIVJGuKYR6dHoa4libHI6VwHhUqlAS02rc5vptRdofs8JEfPAhd43OUV0QJ8zRXl/7gMamIalSgdTcZ+CXwOBgBtYpjTSMdipFC1N6ILCIbDT6mXVshvUwfryG71Q7BUVRJcUcHLzb5XvZwDqScNTZYipMQ1hWFVJj4vJGw47M5Zcqwrr6g+GXEVb5WGQMmmlwUm/TsbqsWp3XfkPSZNEzYIvY4zK+RmAmjV+nvQTjSeBsQAi7FXwFiHMyBim3A3NZ0SqxBqK0UAHUXztrWDx+imqouY9ySkSh5W45IlkTlPK/D8NQPJ86YrJC8C4qlP7gLUIZUojRgQNReiZ+0UoBE4oxXFMjiPkorMtY5wqODfvwenSyyKMFY1iND6rWet7p0tAEHQP0Nm5aIwq/j8HwLBUGSgaT4nJNUqhVZ32C2QrOI3iNEKRUpgihAGaQLiCSIF4ReWoqUY6DGxGsUlg1arNbGRaZe0eMk8SlMYvFRheO7PWjVJ5ZzrnfCcD8JOTMUkd/u8GYJpoyb25SgnXi3CzaEQowaqgHOEjMflrxkSOoJQ0JK8hPWiu6bQVoZuC7gJXAl0V1WDmK5iPMF88LM2YokpHpkmiT3GHKeQrgw8zJikXwLD50tvwUr76+rr7jZ80AIMXSrTu5zcCdwL7lRCCoj8gCDN0gyeXX69O1SfogT0J1PwEKRtBmARpGoHqw8ljJC8rSRtwz3Lp/7ts0bAKGLqJQxSdTKE3igEKoqu+1o3wmTL558qJamNyqvRB8VsMFmRMUvMABs+TzladoBXj1Nf/FQCMSJUrDMWDQAcFH5omu5XGe0A74CRwV8Z4Nf+czjHIEkCM3yRGCTEGROnq/DmLvNT+finY31Uf+tgMue6lrXW9X0ApaCnQT+BKBSFVFw4rxVzNZK5PZ6hSRPisvLhulMpLTpeOpkHE6omshwa0xB8jAEPSJFHBc5rCKiYvZUxQm4aly20ivAM4ET7TDe45U+uT0yVKhEQ0Wmsm4TXzig3A2j2SkE7hhMc6aR5sJTjQQuDL9yb32r1lTdifXvrYlTxmqnhNTISSKsF7vCbuMh+lJT7yT7kpOFlByapjxO0tpp/XoE1V9iUIS5TGQUwGicZbGePUv0d8IUk+jajVE9W6n9RMOHmuhCmNJ0whVmk8u3Kcyhq9UOxD0+TfItwMuJTirpXj1cfJKRI0PF36+qGdEoIUYFOYI1sT3j+GpJZBdIl00M6pE1nXu0KCgkCBw24Ns2pgrdT6te6NsNd+5sYqsW8v5NAr2zidU0p3FDeKcFrpfClwdfJ8aWFs4lVrXyzJC6RHxnVq208CgOR0uQW4yYTnV41T68+okwofnynFKIGDojFWPLiS58vVylfeRiSApBAcN7ahfY8oukY76KspAr5r1dg9gsQPh5N4rIwTf9vi25vpsvYTkylKyFEKm/Tk76qUJw0nbUd8IUnLr1d76+ufzoyyfjAABi+UaIufV0XYmbGF8WcKNOILiTQszAf6AxuUxt1K6IBuxqq/tn8wNj6hfPrsjNMxAQwH9Ka9/dJUdIzNG3fquS5xt954X9GGpEe27i+mv8DNaOzwO/jECneLnbZD5knF6onq6Hnf3pfINZD/gwEwLFWuF4PJuuLxZeNUdnUfME8SDI0VQDtN8ZnpY7aycFWbUJz3dNb6rM0c0ybt07cdFcd3Q9tOTXp3xyv64naXEx3bosnlT5n1GseO7qf/lf1Df92D/utOsPfZrWhuP10FksRkqa4Ypym6DEwV19oJqqTm87qgX5Mqzb6coI59r51w8kqxqGJeEEVRxhb+WrMZVtX8NUAn4H1RrOsQSuBDXRjSMZyxmsJaXlbC1GEJtEzsyJv/2fCDTAJdp/KYOqIVfQdfy7NvzK0+bwrmu1ms+WQ/3QXCAJcGN2BgWbGdZeeqnGHzZdTKsWpJU8qgNeWhUYslQkqYrWB+xnj1fM0CjUuXAMNCKtBJQUqonW9e7MtVbw/ixc4RTNIUVoCAwGDuffw1dmVuZH3G/B8EgDdeeBjTMHjgiem1haLQ7u7E0E+uxh/pYDsQZsAS00Kv5J70Oi8jk5yh6TLgeyn0iAWSlJwqc4akSeK513rPEOvQNFmQnCaSnCbpb+yQp8p8clTqSYZhyG3XdZLrB8eJ1+OW7zPt3bVFkjspeW/6Uxe8zxSRd3fLhuRU8VZ916JrPpP252mENHn8uyfM0iU5OU3mjV4oIXX2B2nyWnKayIj5svbbUzK/IYLYsXWdDOuEfDzzxe8VgLsm9ZDx/SLFXVHWoPt3FkrO8HQpqgIhe8h86XROXzh+SKr0/M5U0PA0GW4tK3wyOGfrDOf+jSF1gDNR4GGHTtbn19C8awTXNSTfLj0GcNWIibz/5jRcp/K+l1a8YuGn7N+9jYeffgu7o2Ej3s7hNH9jINkojgMJymRDcrokn7ke5WGBUtz4nQAwPE2GC9waULi/u453oWmRSeeg3wHhA02j4OPhxITaaNWYQjz05zdAYF1G+vcCQGH+CXr0TWbY6CmNeq5zOF1/2Z5vUBxQEBiUt2vFhLc35U56a8MOf8HG7cH5u64dvkBaXVYAhqfKEBPuc1i4F5QFwFQWZ03extSYK2B58ypOhTuIaKxAouNa8PGyg4y54dfnXzQ8cPrbyp8YlwWAG3/1MH+fvbJJz96exNhYBzsQVmt+N0r8zQS6CHTRvWVe0+CeywbA8HTpZWj8nmBuXTRGedxh8a9XhLR4VTT1KUDyLHEoJy8podNN7fimYzgdmyqUyOj4eq6Y4HFV/hB+6KQptBf70U7p2JRp1rLQaWJWICQg0uDhfb0TsZFfSIwXngnQuXnRMOVOXikObwm5JhxdcmuL7MkpYsuzMhlhSridzb/pxODv6JPBEVV72uIpwMidV3nGGoaWcOP3CkLrYLoMi2Pe5hxlqaNOfDN0Pv1Xwfomt4DeM8TqtTLdAvdVm+lcxAFoGnkgKt/OcKUxBgj45yDi1XfFrOp2COtU+VM6P5b0aHcGmxZ7mWmxuQS1F2SHIAc1C/MUTL2kFhAUzyuYvLpswllqAb0SANE4OTidnsogQjQmj23JmhDDlXwqr5zImGb8X0kFR3ZFjh7QdV7KfuJF59+rxqo3aswJ2jaUpNPqGE5ORdiRMUFtqkV5qUqrkkNh0YRYE661ahx5qBtXzXr9f7jp6jbMfusZvB73d//19kj0xNvRE29Ha3F2QFZ2bCOFuz+l+NDS7+zVecezeeLecdwxriu9i1eOtGq4lcnwIfMkocZt24f3pkejW0ByukQh9F81QT1SB+kYJhoet58edjvbPR6m3tOZrRaNNrfd9z+43eXMfnMaX3wwnfv+32uMmvirJn9kWUkRh/btoCDvGOVlxZiGgTMwGKczkBatk2iW0AbNtR78ZZW1KGoQWEPwlR3HXbgHW1D8ZRe8x11OyqxX+fDt51Cazp0PPkvPXlcFjN5DYdphWqC4HpgOoBQrBQYBWxpFxg1Ll2eC4MX0caq85vnJKWIrcHC7qRFlMXjXD390WBi9aAwdahi/2bdrCy/9+dfsz9pG+869ePz592jbsXuDPvDIgd0sTf2AtStSOXLgwjZxXbfQqWM7evdMYkRyf1r0+Q3KHklpzlo8rgNYnJGEtr3usgl/7Yo0XnnqLlynCxg68gYefupNwiJjADjt5vgNyzkoJvkEc1NG1YBFipmxaoL6VYMBGJYuYzA4tXKi2nge/5MqsSbcic5Jr8EcqyL3d13ZcWMi5xFQIsLy+R/z+vMPUlpymlETbuOex14hNDyqzgIcP3qQGa8+zuovv0DMxts1lKb45V2/545HXq5dDvdJMN2gB6HskU1TNyeO8sS94ziQtZ2kLr3543Pv1lmhHljL3B2nSBR4dNUEtbJKnikrx6kpZ+02otXl/KUBDEgRp0CzuoRfOfEiCkW8YbDVChN0RfGk1vStUyBKcfW4W0hZmc0v7vwjy+d/SvbBrDo/cP6cf/Hrid1ZteSzOoWv6ToRUXHExLckMDi0bnOMKfQZdH5tl9NbME98iRTvbHLND4+IISgkjKf/nsKMzzbV25pvbU+M0vAqmFKD0j5ek7BMn4+j3j7AbmMgQbxfX0FEo79mkm3qFGkmU0Y0J0tXNL9Q4R3OQH7z+xf5xa8fIyTs/Br47vQn+eid5887f+WgUQy55nr6DBxJbLNWKHVWSxa7TrE/axub1y3jq+XzyD6YRc/+w+l2ZXLjpev3gsV2wVusNjv/mJ1x0ayujKafVZHhUfRNnithGZOUS1NsFugNHAJwKuxUudvXAmBgqgSbGkdWD1P+egwvQZQQLFBs86FMnavv7EiDXfjqEn7KrFfPE377Tj25/8/TuaL34Avm1av/CHr1H8Hdj/6VzE2rCQyq0TJMH+RtAM2KihyAJl5Eq6PiuQ5T+t51+ALjsLfqT8DIZ0HTmtxSNIXlqjhKMo4Rr2AE8LloZCo/I6s1g6fuFqAFGjhXj1P1R5WU0kMJ2QCGheFhdnbGOoltamEzN69hxqu1qfN+Q8bwxsdfXVD4daUr+gypVy0oWxjYY1DWkHN1FmTNozy+M+VdhlBqFOCaMZjTsyfjP7y+ySCMSSAe8Boalc2xjP2mOktKWrW6HQ20pZkU1Jfp6IUSguA3tcoJtzIZOiaB0qYW0jQMpj97P6ZxllTr1X8Ez705r8G08IV7ZAtE9oDwrvXfszedshN7MOI7AOALbUZZt5F4midQuup/yH//Bjy7Gm+h6xVND4uiTKt0jSRjiirVwHlmFOm31M06WC40W/MIPXCzBQeJojAFBoxv3XSXkWULPubgnszq4+DQCP704mwsFuulCV78YFZpUEvAWcpC/JinNqJsYRT5Y9i/IZ3cfevJ37sJX2gkNpuV8NBg4uMiad48BqPtIKzFJyjbOpOib2YR3GkMzr6/bhhjonC0CSNv72muGJkuHZeOU9Ujj+IQguweyhpFxvVOlwBDkFVTVOnQdHEgBNl1fLHOSkqiKWnuv/9Z6/iOB/5CVGzzS674Zv4apLQyOkmLHowK7lB1wc/GFSn8Z+5KMjN3XnCY63TY6ZjUin5XdqFv906ElORSfGIDJR8sJqTbDTh6/uKi5RgQjWNfIYZXkQxkiapsAT6DYDOEokbR0QHQ0YAdZ4BS0KZdCCeaKqSjh/aQlXnW3zUgKOSSZssXSz6vhxeeuIsnnn6d7du+vegco8LtYWvmXt55dy6rN+7EHdMeHT8S1wxXbgb5H/4C39FvLphHvxiamQpDhG4ASqiYnCK6CeHR+eePgC7QAkQpIWzNOHW6Rt+VMDCu6X5E33xV22tj+OipBAQGXxZhK6WfsRVV16m//+Vevkz7d635Sdeu3YjWSwmIqyQNS0rLyD2Wz6Hs4xj+yn4pMMDJ4KsqO3ZPRGusJXkoDbyJnTi1/h84vw4ldNLroJ0viqRQOipFFpB0ZryVD07NT0h9gYF1CvTqdBIMk9wa02VBI/rKaKKaKqRvt66tddytz+UzH6joIajoIdXH+7O2seiLWdXHfXp259HHniA+Pp4Ti17FaF/bdl5e4WbL9j1s2rybhBax2G1n5we+4Bh0dxE2Vw7eZkmU+91437+eiDEvoMfV7ux1DUeIlfJiLy2SZ4nDVPjsFgK8Wv2apk4ADGhffILVtT5SiE4Mbpytt2Y6dzbcpUfT3GjchfswvSXojjDsYW1qXTu14wMMTxErl571pQ0KCOCZ51/C6XRinDqEFhzAuYbNAKeDQf27M6h/3UNawxEKKGynj+INT8Cb1Jv8L6cR2m0yzh61qf8YB95iL7qKpK0Ifr+DYAz8DaajJ6eIDeDcEE5dR7do2JsKwPGjB2upg/jmiU1jSo+tw3UgnfIT5+tjv/s0fncheSeqGy8tWrbE6aw0YRdvW4wvrkOT3ms4QjCcIdhclXkbid0oykqjbOOsWvclhqBVcWztAAwvzUwfpxoMwPEAWig/h8+honWR+lFsyPjfXVFWqwPW9Mtv3bIFNcMWnEBQjdlxbk4uHo8bTBOf99Ji8AxHKKbNgaWs0hfXaJFESU4GxYufqr6nZTCBCjRTiFGKQA0CNGv9zrvnqSAdmkf62Hh+t4xLqqC9upsNw187xnn8L+7hkaffrlttuMsROWs8DQoOa7IQIrvcWpmXOt8CGt5xMhheOsdvYF7VuZLSEv7xj79zb3I7jFadLhlkf0Ak1uITHM7ay5Ovfnz2wiPPAfC7WZlAN5QiBiEIDUfyWAozGtYCRCmw+wo2fjTx7Q2ZE9/a8OyZTlhMigwTz5kmcR6SFyC2bPbaNIjffwkB6kpHISh/KfiKzv7ED34PZM5myNjJxETHVD+yePEiHnrtAzZ8m41hXno4sC8kDoe/pO75xJrnWldJKEYUEZi4LxSDXKsFDF5IlDI5LUp1USKdDYujoKr2mwgej8Fxi0brZd82ToAWixWHM7BaDZUWuxr3xd5CEANR1kqOpyIHs6A2b6OFXQkHMiC+A3almPaXZ/jDY7+nvKzynYfzinj9nRQiwkMYPqQPw4b0IjQkqMkgxHXpxWcvhOCOru0muj8rv6hK2lFKiNNsHL0gkVerpvqI93s4hqan+QIiT/sCooKqxqGiwOfycbKpBQ4OPRv25XGX4/N6GjHT/aqS2y/cVM/QqAj2zodmHatVU6dOnXn7rRl06FDbVanwdDGfpa7gwcf/zjvvzuXQkWNNbIkKb2iz6k757GmbW4GhhAiBQKOU7AYDYGhE6BHkp/62z5/KI9p94g5pHjQsVTpg4EZhFFTQZOfN8MjaBOqhfTsuT89bfBLysiC27XmXWrZsyduvT+fhCb1JbFXbY8PwG3y1YTtPPTeT516axZbtexo/uLAFVgrRe3aSW64HlCqoUOBU4M2YokobDICYqIwqu4Cq9PHHhAla5UIZlmNlHG+qnDp07VPreHdmI8JwraFgi0DZzqGW8/ZC2TGIqN8IX/rNHPpeey3PPvkbnnniboYO6onNVpv8y9p3hNf++QmvvfkJ5RWN8+rwhjXHVlzZiixuF4UB7Q4KlJtCNIr9F7UlnPkzTURTGtXKvd1RVlIZ0TjeVBxDYd1f1PQW0Ll7/1rHWzYsb7jBI2YoWvy1qIhKK6jowagTx1AhzVGxvVABrRC9TnsH5cUnMavY1jaJzbn7VxN4/W+PMPX6q4kMr23m3LJtD8+//D5er6+RILTA5spFHT/M2sipG4ASTSNMGuAVUQ3AmuWEo6juHWf+VvkQlgARGrQX0DNP1T+huFjq2vOqWsfrVqRxKr8JDSp/F2rvfFTClajQjihni8qf7jx/tHJkM4SfT94GBQUwbvQgXnvhQaZMGlGLejhy9ATpi75qnCqyOFCmD79Yjd1uZ4VoVJhCgGayq8EAGD6CTX9tytTUSamiJiYqsB0oodxtNK0jbtE6iXYde9Qaip5LT5+tUqeh7NDZn1EOhhd2poBrN8S0bZAJ0bVvHf6o+ulu3aIzfsxgnnzs9lpqafW6xocFe8MS8LqNUkzQIECDALGwucEAmAZOo0YLAFg9Vu0W2KiEAYpKm+bxCpoctDzxlt/VOv7Pe6+wP+v87KQ8G7NgffVP9s2HnR9DRCwExzRwxlSBmA1bmSyxdTNGX3OWmzpVWERFI/sCS1kBJSGdjlT1pWGi8EWXXTx8tRoAXbCtnXC+uVHXmQVgSKVr4o5CmrySyKgJt9G8ZbuzMvJ5ee4PN1NYUI+ZoeAQ6tA6sJqVtV413HBeunkuRssuDb4/Pra284ApjXOFtx7OZH3XaXPFJEIUIUDhnCnKaLgK0jDrWphixRjWCOzXNKJNIfTLoxxpKgAWq41H//IOqob6OHJgNw/cMojc7KoBgwjkbEEdWQ+aF4luAVZH40m74lOYF3E7qZlycs+OLxx2G4EBzsZNCywBsuKkJU9pODGIEhqmqs+2AAOzngmHaML7CH6lMXRHIeUl3nPIukakXv1HcPv902qdO5Z9gDvHd2Xmn2+gZMPbqIAAiL8CFdQCZYtEaeeTsH6/j127dpK1+/wGmZ46j3U7D2IYDYuoyT56guWrzk7yrujarnEkYP5hPK1HHs8rIxQ4qTRClFx4BnweFaEM6lV6UR7m5zs5AfRAsXaXi4x+MdzeVBBuu/cpKspK+fTdl852Yh4Pn3zxBSmpqXTp0pUePXoSGxtLWGgYcApXkYvCwlOcPn2aPXuy2Lt3Lz6fjylTptKxU22Sbd+W1aSv3kzgsl307JZE506JtE6IIzoqHKfTjuE3KCop42ReIZu2ZbFy9ebqoaeuaYwbPahxLfvEPr4eO+sLthFnCLGa4pSCkkYB4HPWbbMEmDNFeZPTZSbC0yYMm3eEJf0u0hd6PW4++d+/0a5jDwaOmFDFQRRD7jfgLeG3o7uRGHQfr787m7LSs1S1YRhkZm4nM3N70xnLispvLyur4KsN2/lqw9m8lKYQs279rjTF7bdcV2vWXOH2sGffEXp0S6p7JOUrxxaeyEd7KVMKlwb3A6eFhjmvVQPgL+bC5EwQ71DM4yjafX2czNMessLtdceErUp/n3+88CiuIhe3Tp7MwHgPGG6w6BDaAgIigUhGTmxFnyEj+fiTj1i4YAEVFRWN07uaRljY+dR2YlwoAU5HnbPa+oTfLD6KX04dTbcutSmNNWu38cGni2jfNoG7fjWe5vHRta7bd6/BddOKPcfW4jAhFHCgyDFpmANDNaneO10CNp/jln5uGpouC5VJm0BKnX8IWHIwOUFPxnBXEmCmwZGj2bz81v+yc98BWrZqyeN//BOdOzdsJOLxuNm4cSPbt2/j4MGDuFwuiopcFBUX4XA4seg6ERGRxMTE0KplK9onJdGnTx/Cw88PyjyxdDplzTvw7c797Nx9iNzj+ZzMK8Tj8VHuduOw2XA47cRGR9AyIZY+PTrSMak1mna+jUFE2LhpF+//ewFl5RUM7HcFt0wdRXBQAHrZaUJLiuWZVu/965uT7PIL92iKr0VIUhr/WjlWvddgAOpzn66ZktPkDxoM1MTbv4slu/CVHsfbWjTsJSXFzJw5gwUL5xMYGMT9v7ufkSOvreVY+32mE0unY7Tpdlnz9Hi9pC5Yw4Ila9F1nRsnDOP6mCKyp6z75JGvtW+VSXNR3GFzu54ydfutFl/FGwOyImZPu0iYUrUKatDCpUKGqYg1lK3NPl98wsbCwgMDozydZ73/HosXL+Lmm27hl7+8DbvdwQ+bLj/wdpuNKZNGMGxQL979MJ2P5ywl8b67i6Zv1dYhmMB9CmYGFuz5W5Vc39sWap8LuC5bSavW10w1DVJ03Xi+uZzU3ut1MLqirMjqdlcQExPLjyHlL38Hb6uk7+4FhsHx1UvMlGs2PvxNAYUKJogwHgvtwg5vPMyZxac89vB5j/R0NZiOvliaM0UZAid9XpYj+to8M8ox80BEXkhIyI9G+AB253e74plz51LZPPKzF7YUsEmZtBRhLIp3KlfklVwgD+GkR/eYl72tDkuXEQgdxMpC8bIkkPKYvyV9a3YN80b8WAAwDm/kVOEBfCFxlz1v28HNbHWOWPHXwId+rwzaCkxDEeXU6dCUpY8bHZWwcjMrgf4Zo9VhCzxboZzlL+xt7Sv3qYofCwB6dBu00tOXPV/L6aPs8bXe96LzoRcsQjHCDUBXJTzU1HWnGx8WMk2ZArlXp0vL5RPUR6A+P0mUenF7UK78GBZzAFBWxDAuL6gVJRzM9uQ+Ff36g1FjyfDDJNG4EVi1crxKaWq+TYrL0U0+9MMdAA4Lj5mavnOddAualdm0ha8vyU2lrvxyt2NGXL5YYc1TYe7bnXviz60+/E20hy/z0+iJyWMiVFgUt11S3k15aPlEtUtB7OQU0ReNUR6Lg9tNpbs+qehrT93rb/SGCM899yzT/vL0ZRNYac5u/IH1h6aapsniZRvYmrn34v2Jz+vZvuPE8RcTZt4jm1maX4YVxf+KIkaDO2uuFPm9AVBZMmbnORkDsOwalW36uNOv2TxvFg801h4oOtrQbLJ272b16gzatml7eaRvmngqii6soZRi1dqt/Gt2Kn5//R6X5adPFW7a4cqb0fzlu8szgxdkPI0hUaQA3RW8u3K8+vySW1dTH1w5UW3UhGo/71XXq/Wm4n6/2Jh2alTZjv3HsrmIUUNEePmVlwgLC+cXv7jpssi/6Kt3MVt3vSgAv71jIsUlZaTVY//NOXLi6LrsgILprd6cMG9yzKKMaco/NJ3pShgHbKeABy6LervE+eZXyalS7W+yepxaaJg84cMa8MjpycXb9ufn4KufXlq6dDEHDx7g0Uf/gNVqveSPKft2MRWawrRd3JjSumU8/Xp3IW3hGlyus8xxhc9wbco8tn9rcfPD77d9cdTqCWpr1fD7TwoeUIqDaNyacYdy/+AArBivVkBtRnT1RPWxUjzjRwv8Q9ENheuP23dSdKxO8u2tN9+kQ8eODBp06cEaJRvnUOI6ihHXpsHP3HbTaFCK2Z8uwjQxdhdUbFuXWVp8yN593udRT47LGF05qEhOlWkivKAUuUrn4Yyx6jJ5lV0iAABYyTh3obqM8epdBY/4BdsTJ5P5oHTgEk4eEIyzjPes92dRUlrK43/806WNePIPULDoNUrtghEUwp5tAAAGFUlEQVTfuH4kNCSICdcOlm+27OLTpbuzj+Yq+9Ko+6Y+ctd9f1w2RRVNThHb0HR5F8XTqnJ2+4IdLutaOJcMQMYYlaM4P3Bj5XiVqsPvBDyzjrVo9Uf37Z8ZbvGRtx8xDfZk7ebaa68lMbFpgRpSWsDhea+ya+3nFLfqjBnUuOgpQ/DtK2Knpe2V3wQEBvuz9mXvndPmr/3/fWv7DaBkxBcSme9giRLuFDhqKl71CvMWjVGeywnAZaENe88Qa3ASel3bTA1Lky6m8A8NWkY5OfLWAHfXqJzF8Xhd+MJaYLU1LujGvfNLinN3IhaNl+fvYPO2LB6+Zyp9ejXM97/Yy6k9xWp/ToEhTrc3xir+bZ9y3UOLHhxWPXyu2tEpDUgEtuuK9/zC+lXjVb1hkpPXiXPOANwN2vum5uz6cgBQFc5UazY16c31d5tK3a+OblSGxfppSXyv6Hw319y00pH7SPeJ+8e08wy2HvwSXLkQFg22+iMmPftWU3J0J4a3FIlvjdHmiipScjuqAXWo2MupI6VyZF+pPd/qKmtpFSMyFHP9+63/duOKcSoXXqlZYW4Qk1lAMDBfUyzwC0dWjaNO1+wRqRLr0wgpdZHdWOFfNgDqVBGailPCFSgQ3XFUabwlgssPo17eSvS8w/aFL/Yd2zPCQTzHt4DrEHiLICwebEF49iynJGcvhq8EiWuF0bJhsV0iSsp8RmF+hco/WqEV5FQEFIeUF7XSff6wEMo1V0DCix9FPTC3chn6s04BoxZLhMfD6wK3AB4NnhfIFsEV42b5ucIdtVji3T76i5/M1RNUk3dw/X428xTApLmC40pYampcta+ITpOXU9E1gmVjE3odbxbbKzTMSnRwwdfxLH0lzlecazWtNt0SGIy3yivaFIVflN8veH2GuCt8ZoAgjv2FnoPuE/qJ0369zFviDQ7weqNElNUUPTpez7PkWdu/lt7s7qUZ33KMB5QJD57L8I7xeJlJ5RI8ezTFg6aQgOC3eFhSM8Z3SJokaopRHi85MW7SGuJ89Z33AXWlsW+va25VeksA5fcf87W6Kr9IiNUgVkFzEwYqoYdSJImiWAmrlWKbSG3/pK5Fa1t1KF07yO4rDfbruq5M06LhtyKK/VnbA0+dyHW069anMDK2ebkhyuO3Bm/7Kvz6uSedrY7iI+fMHmF1qo8vJNLQmY7iFgBRvKdrPGOYDFeg42Vxxg0qh2miDe3JUKUxVAnfSjCpGfUs7/OjAaAhaViqdFBWhpsmvUUYqIQSEZYpja+ViWmCXemV1iUBQ4zKEF8d/GiUmVBuMSnzaVSIjiuutGHugANSxOmw84Ao/h8QjuKAMnlI9/CVz8F4FA5lshIbfs3HOEORAKzvcIz5My/zDqw/+FaGk1NEL7TTxdRJEJP2UrmXZJgSFioL86PK2HSpzfwslS7a0J7coBR/qxrhVCC8FHpqawp+6eBxxPT1RLQoEUFTQrypOGwoPv9qbP3b4/7kAagBhC3PQXdlEmqCTdO5AhihBBuQgcY63c6GZdeooqYIflgvxgk8D3Sp6pVSLRq/17yU2gp3vWLxlvxSlGYUt7hyughzko6zeeb3sN/wj2472+SVYtErSPL7aC46OVYDq0+nj2bSTaCzUvgQdgBZunDEp5FjmJw4d3MdgIGpEmxT3GTCQwo6V53erjRWmIIPE4umKA3M29XO4i25GVT5vPv6BX6f3/sj3lFb1NXpJPhMOugKwzQ4yHZyPP0JsfvoDMQBsUqIEUUMEKZMSkRRpiBUoBuKrggOQFDsBP5jGqywKg4sn6CqvZcnvLOhsyZcIeCbd2//z38G4Jw0eqHYywxaIiRoGprh51iQjZyadthRiyXC42USMFVghKrc9rZQwQcoZmTUWMHqx5R+EgCcq6KC927/H01840CzidKDyyMSC3yOkK7KxFr1RZsVzAxSfJR+EXfLnwFoQprw1oZ/KqiOdyqN6ojfGbobWAUs1032+gTBxG+zUuaHcpuNitAi3HMmYzaFMviukoX/ghRQevz2tClhs3+KZdf+GwDQvUXHfqpl/2m2AI23BBZW61G/2vJTBeD/A62herFIRO47AAAAAElFTkSuQmCC);background-size:96px 96px}#home .footer{display:none}}@media screen and (min-width:768px) and (max-width:991px){#home .logo{height:144px;background-image:url(../img/logo_144px.png);background-size:144px 144px}#home .button{max-width:350px;margin-top:20px}}@media screen and (min-width:992px){#home .logo{height:200px;background-image:url(../img/logo_200px.png);background-size:200px 200px}#home .button{max-width:350px;margin-top:20px}.circle-bg-dark{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOmJ4PSJodHRwczovL2JveHktc3ZnLmNvbSI+CiAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDgyNjEsIDAsIDAsIDAuNjA4MjYxLCAtMjAuMDg0OTc2LCAzLjI1NTczNikiPgogICAgPGc+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC43ODsiIGlkPSJwYXRoLTEwIiBkPSJNIDQxOS4xMzMgODUuNzM4IEMgNDE3LjI5NSA4NS43MzkgNDE1LjQ1NSA4NS43NTQgNDEzLjYxMSA4NS43NzggQyAzNTQuODUyIDg2LjU2MSAyOTkuMDIzIDk5LjE3NCAyNDguMzU4IDEyMS4zMiBDIDU4NC4xMjEgMTMuMjA2IDc5Ni4xNzUgMjExLjI2IDgzMS43IDUwOC43NzMgTCA4NDYuMzgzIDUwNy4xMjQgQyA4MTUuNTg2IDIzNS44MDEgNjUyLjQ3NyA4NS41ODggNDE5LjEzMyA4NS43MzggWiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NjM3MywgMC4yNjY4NzgsIC0wLjI2Njg3OCwgMC45NjM3MywgODkuNTA1MjMxLCAtMTM2LjYxNTA2MSkiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDE7IiBpZD0icGF0aC0zIiBkPSJNIDE0Ni4wMzcgMTk0LjA2NSBDIDE0NC4yMDEgMTk0LjA2NiAxNDIuMzYxIDE5NC4wODEgMTQwLjUxNyAxOTQuMTA0IEMgODEuNzYgMTk0Ljg4OCAyNS45MzEgMjA3LjUwMyAtMjQuNzM2IDIyOS42NDggQyAzMTEuMDI5IDEyMS41MzEgNTIzLjA4MyAzMTkuNTgzIDU1OC42MDQgNjE3LjA5MyBMIDU3My4yODQgNjE1LjQ0MyBDIDU0Mi40OSAzNDQuMTIyIDM3OS4zODUgMTkzLjkxMyAxNDYuMDM3IDE5NC4wNjUgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuMTgwOTg4LCAtMC45ODM0ODUsIDAuOTgzNDg1LCAtMC4xODA5ODgsIC0zOS4yOTg1ODEsIDcwNS44OTc1NDQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMSIgZD0iTSA0ODcuNzQ0IDE5My4wODQgQyA0ODUuOTA2IDE5My4wODUgNDg0LjA2NyAxOTMuMSA0ODIuMjIzIDE5My4xMjMgQyA0MjMuNDY0IDE5My45MDcgMzY3LjYzNSAyMDYuNTIgMzE2Ljk3NSAyMjguNjY4IEMgNjUyLjcyNiAxMjAuNTUyIDg2NC43NzUgMzE4LjYwNSA5MDAuMjk5IDYxNi4xMDkgTCA5MTQuOTc5IDYxNC40NiBDIDg4NC4xODQgMzQzLjE0NCA3MjEuMDgxIDE5Mi45MzUgNDg3Ljc0NCAxOTMuMDg0IFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNjE5OTk3LCAwLjc4NDYwNSwgLTAuNzg0NjA1LCAwLjYxOTk5NywgNTIzLjA2NzIzMSwgLTM0My4zMzE1MzkpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjg0OyIgaWQ9InBhdGgtMTIiIGQ9Ik0gMjk1Ljk2OSA0MzIuNzU3IEMgMjk0LjEzMSA0MzIuNzU4IDI5Mi4yOTMgNDMyLjc3MyAyOTAuNDQ5IDQzMi43OTcgQyAyMzEuNjg4IDQzMy41OCAxNzUuODYgNDQ2LjE5NCAxMjUuMTk4IDQ2OC4zNDEgQyA0NjAuOTU3IDM2MC4yMjYgNjczLjAwNSA1NTguMjggNzA4LjUyNiA4NTUuNzg2IEwgNzIzLjIwNyA4NTQuMTM5IEMgNjkyLjQxMiA1ODIuODE5IDUyOS4zMSA0MzIuNjA5IDI5NS45NjkgNDMyLjc1NyBaIiB0cmFuc2Zvcm09Im1hdHJpeCgtMC45Nzg4NDksIDAuMjA0NTg0LCAtMC4yMDQ1ODQsIC0wLjk3ODg0OSwgOTYzLjgyMDc5NiwgMTExNi4zNjcyOTMpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMyIgZD0iTSAxNTguMDM2IDE0OC44MyBDIDE1Ni4yIDE0OC44MzMgMTU0LjM2IDE0OC44NDYgMTUyLjUxNiAxNDguODcyIEMgOTMuNzU5IDE0OS42NTMgMzcuOTMgMTYyLjI2NyAtMTIuNzM0IDE4NC40MTEgQyAzMjMuMDIyIDc2LjMwMSA1MzUuMDc2IDI3NC4zNTIgNTcwLjYwNCA1NzEuODU3IEwgNTg1LjI4NiA1NzAuMjA4IEMgNTU0LjQ4MyAyOTguODkxIDM5MS4zOCAxNDguNjgzIDE1OC4wMzYgMTQ4LjgzIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuMzM4NjE0LCAtMC45NDA5MjYsIDAuOTQwOTI2LCAwLjMzODYxNCwgLTExNS41OTUxNTgsIDQ4My43MDU5ODQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAxOyIgaWQ9InBhdGgtMTQiIGQ9Ik0gNTAxLjAxOSAyODguMjkyIEMgNDk5LjE4MSAyODguMjkzIDQ5Ny4zNCAyODguMzA4IDQ5NS40OTYgMjg4LjMzMSBDIDQzNi43MzYgMjg5LjExNSAzODAuOTA4IDMwMS43MjYgMzMwLjI0MyAzMjMuODc0IEMgNjY2LjAwNCAyMTUuNzU3IDg3OC4wNjIgNDEzLjgxMiA5MTMuNTg2IDcxMS4zMjIgTCA5MjguMjY4IDcwOS42NzMgQyA4OTcuNDY4IDQzOC4zNTIgNzM0LjM2MSAyODguMTQxIDUwMS4wMTkgMjg4LjI5MiBaIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjE2NDY1NiwgMC45ODYzNTEsIC0wLjk4NjM1MSwgMC4xNjQ2NTYsIDk4Mi44NTcyNjYsIC0yMzMuNDUyMDYzKSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC40OyIgaWQ9InBhdGgtMTUiIGQ9Ik0gMTkyLjk1NCAzNzYuNTIxIEMgMTkxLjExNSAzNzYuNTIyIDE4OS4yNzcgMzc2LjUzNyAxODcuNDMzIDM3Ni41NjEgQyAxMjguNjc0IDM3Ny4zNDQgNzIuODQ1IDM4OS45NTggMjIuMTgxIDQxMi4xMDMgQyAzNTcuOTQgMzAzLjk4OSA1NjkuOTg3IDUwMi4wNDUgNjA1LjUwNSA3OTkuNTUzIEwgNjIwLjE4OCA3OTcuOTA1IEMgNTg5LjM5MiA1MjYuNTg0IDQyNi4yOTUgMzc2LjM2OSAxOTIuOTU0IDM3Ni41MjEgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuOTMxNDA0LCAtMC4zNjM5ODgsIDAuMzYzOTg4LCAtMC45MzE0MDQsIDQxOS40OTkwMDYsIDExODIuNTk5ODA5KSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMTsiIGlkPSJwYXRoLTE2IiBkPSJNIDIyMS42MTQgNjMuOTczIEMgMjE5Ljc3NyA2My45NzYgMjE3LjkzOCA2My45OSAyMTYuMDk0IDY0LjAxNSBDIDE1Ny4zMzQgNjQuNzk1IDEwMS41MDYgNzcuNDA5IDUwLjg0MSA5OS41NTQgQyAzODYuNTk4IC04LjU1OSA1OTguNjUxIDE4OS40OTcgNjM0LjE3MyA0ODcuMDAxIEwgNjQ4Ljg1NCA0ODUuMzU0IEMgNjE4LjA1OCAyMTQuMDM3IDQ1NC45NTQgNjMuODI0IDIyMS42MTQgNjMuOTczIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNzUwNDUyLCAtMC42NjA5MjUsIDAuNjYwOTI1LCAwLjc1MDQ1MiwgLTcwLjgwMzMyMiwgMjkwLjkyMDI3MykiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDAuNDsiIGlkPSJwYXRoLTE3IiBkPSJNIDQ0MS44ODggMzQyLjA5OCBDIDQ0MC4wNDcgMzQyLjA5OCA0MzguMjA3IDM0Mi4xMTQgNDM2LjM2MiAzNDIuMTM4IEMgMzc3LjYwMSAzNDIuOTIyIDMyMS43NjUgMzU1LjUzNSAyNzEuMTAzIDM3Ny42ODEgQyA2MDYuODg2IDI2OS41NjcgODE4Ljk0NCA0NjcuNjE1IDg1NC40NjIgNzY1LjEzMyBMIDg2OS4xNDIgNzYzLjQ4MyBDIDgzOC4zNTQgNDkyLjE1NCA2NzUuMjQyIDM0MS45NDggNDQxLjg4OCAzNDIuMDk4IFoiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjM1NjU4MiwgMC45MzQyNjQsIC0wLjkzNDI2NCwgLTAuMzU2NTgyLCAxMjU2Ljc1OTQ5MywgMTY5LjE4MjU1MikiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc2MjQ5MywgMCwgMCwgMC43NjI0OTMsIDE5LjI5NDY0NywgLTcxNi4zMjI4MTUpIj4KICAgICAgICA8cGF0aCBkPSJNIDU2Ni40NjYgMTA4OS4xMzcgTCA1NjYuNDY2IDExNDguMjIyIEMgNTY1Ljg2NyAxMTQ4LjIxOSA1NjUuMjY3IDExNDguMjE3IDU2NC42NjcgMTE0OC4yMTcgQyA1NjEuNDgxIDExNDguMjE3IDU1OC4zMSAxMTQ4LjI1OSA1NTUuMTU0IDExNDguMzQxIEwgNTU1LjE1NCAxMDg5LjEzNyBaIE0gOTA4LjI5IDE0NzcuMTQ2IEwgOTU2Ljk4NyAxNDc3LjE0NiBMIDk1Ni45ODcgMTQ4OC40NTggTCA5MDguNTY5IDE0ODguNDU4IEMgOTA4LjUzOSAxNDg0LjY5MyA5MDguNDQ3IDE0ODAuOTIyIDkwOC4yOSAxNDc3LjE0NiBaIE0gNTY2LjQ2NiAxODM1LjAxMyBMIDU2Ni40NjYgMTg3Ni40NjcgTCA1NTUuMTU0IDE4NzYuNDY3IEwgNTU1LjE1NCAxODM0Ljg4NiBDIDU1OC4zMTggMTgzNC45NzMgNTYxLjQ5IDE4MzUuMDE3IDU2NC42NjcgMTgzNS4wMTcgQyA1NjUuMjY3IDE4MzUuMDE3IDU2NS44NjcgMTgzNS4wMTYgNTY2LjQ2NiAxODM1LjAxMyBaIE0gMjIwLjc3NSAxNDg4LjQ1OCBMIDE2OS42NTcgMTQ4OC40NTggTCAxNjkuNjU3IDE0NzcuMTQ2IEwgMjIxLjA4OSAxNDc3LjE0NiBDIDIyMC45MjEgMTQ4MC45MDkgMjIwLjgxNiAxNDg0LjY4IDIyMC43NzUgMTQ4OC40NTggWiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgc3Ryb2tlOiBub25lOyIgYng6b3JpZ2luPSIwIDAiLz4KICAgICAgICA8cGF0aCBkPSJNIDc2MC4xMjEgMTE0My4zMTEgTCA3MTcuMzM2IDEyMTcuNDE3IEMgNzE1LjcyIDEyMTYuNTE4IDcxNC4wOTYgMTIxNS42MzIgNzEyLjQ2NSAxMjE0Ljc2MSBMIDc1NS4zMTggMTE0MC41MzcgWiBNIDgzMC4xMjIgMTMyNC4yMDMgTCA5MDAuNDI0IDEyODMuNjE0IEwgOTAzLjE5OCAxMjg4LjQxNyBMIDgzMy4wNCAxMzI4LjkyMyBDIDgzMi4wOCAxMzI3LjMzOSA4MzEuMTA3IDEzMjUuNzY2IDgzMC4xMjIgMTMyNC4yMDMgWiBNIDg0MC41OTkgMTY0MS4xMzcgTCA5MDMuMTk3IDE2NzcuMjc4IEwgOTAwLjQyNCAxNjgyLjA4MiBMIDgzNy45MTEgMTY0NS45OSBDIDgzOC44MjEgMTY0NC4zOCA4MzkuNzE3IDE2NDIuNzYyIDg0MC41OTkgMTY0MS4xMzcgWiBNIDcyNS4xNjggMTc2MS44NDMgTCA3NjAuMTIyIDE4MjIuMzg1IEwgNzU1LjMxOCAxODI1LjE1OCBMIDcyMC4zNzkgMTc2NC42NDEgQyA3MjEuOTg1IDE3NjMuNzIyIDcyMy41ODIgMTc2Mi43ODkgNzI1LjE2OCAxNzYxLjg0MyBaIE0gNDAzLjUzOCAxNzYwLjkzMiBMIDM2Ni40NTYgMTgyNS4xNTkgTCAzNjEuNjUzIDE4MjIuMzg2IEwgMzk4LjgwMiAxNzU4LjA0MiBDIDQwMC4zNzIgMTc1OS4wMTkgNDAxLjk1MSAxNzU5Ljk4MiA0MDMuNTM4IDE3NjAuOTMyIFogTSAyODkuNTggMTY0Mi42ODkgTCAyMjEuMzUgMTY4Mi4wODIgTCAyMTguNTc3IDE2NzcuMjc5IEwgMjg2Ljk0NCAxNjM3LjgwNyBDIDI4Ny44MDcgMTYzOS40MzcgMjg4LjY4NSAxNjQxLjA2NSAyODkuNTggMTY0Mi42ODkgWiBNIDI5NC4zNTQgMTMzMi4xNjggTCAyMTguNTc2IDEyODguNDE3IEwgMjIxLjM1IDEyODMuNjE0IEwgMjk3LjIxMyAxMzI3LjQxNCBDIDI5Ni4yNDYgMTMyOC45OSAyOTUuMjkzIDEzMzAuNTc1IDI5NC4zNTQgMTMzMi4xNjggWiBNIDQwNi4wNzkgMTIyMC4yNTkgTCAzNjEuNjUzIDExNDMuMzExIEwgMzY2LjQ1NyAxMTQwLjUzNyBMIDQxMC44ODkgMTIxNy40OTUgQyA0MDkuMjc2IDEyMTguNDAzIDQwNy42NzMgMTIxOS4zMjQgNDA2LjA3OSAxMjIwLjI1OSBaIiBzdHlsZT0iZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBzdHJva2U6IG5vbmU7IiBieDpvcmlnaW49IjAgMCIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8cmVjdCB4PSI0MjkuMzY3IiB5PSI0MjUuOTc5IiB3aWR0aD0iMjAuMDAzIiBoZWlnaHQ9IjIxLjczNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTkxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAwLjk5OTk5OSwgLTMwMS4zNzcwNzUsIC0yMTkuNDk4NDM0KSIvPgogICAgPHJlY3QgeD0iNDQ2Ljg1MyIgeT0iMjUuNDYyIiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05MyIvPgogICAgPHJlY3QgeD0iLTEzNS45NTYiIHk9IjYwNS4xNDEiIHdpZHRoPSIzOS44NTEiIGhlaWdodD0iMzkuODUxIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTQiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk5OTk5LCAwLCAwLCAxLCA4NDYuMTc2NzU2LCAtMzk0Ljk1NjAyNCkiLz4KICAgIDxyZWN0IHg9IjIyNS43NzkiIHk9IjY4OS44MzYiIHdpZHRoPSIyNS45OSIgaGVpZ2h0PSIyNS45OSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk1Ii8+CiAgICA8cmVjdCB4PSI1OTQuMDEzIiB5PSI3MzcuMTQyIiB3aWR0aD0iMjAuNzkyIiBoZWlnaHQ9IjIyLjUyNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk2Ii8+CiAgICA8cmVjdCB4PSIzODcuMjM1IiB5PSI0NzkuMzk3IiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05OCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4wMDAwMDEsIDAsIDAsIDAuOTk5OTk5LCAzNjUuMjc0OTY2LCA3OS4yOTUyNDEpIi8+CiAgICA8cmVjdCB4PSI0MjEuOTYyIiB5PSI3NzUuOTM3IiB3aWR0aD0iMzIuOTIiIGhlaWdodD0iMzQuNjUzIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTkiLz4KICAgIDxyZWN0IHg9Ii02Ni45MzkiIHk9Ii01NjguOTc4IiB3aWR0aD0iMjAuODY3IiBoZWlnaHQ9IjIwLjc5MiIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTEwMSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsIDAsIDAsIDAuOTk5OTk3LCAzMS4zNTY5MjgsIDk4NC43MzYzMDYpIi8+CiAgPC9nPgo8L3N2Zz4=);background-repeat:no-repeat;background-position:-725px -145px;background-size:1024px 1024px}}.gray,.gray b,.popover-helptip .button-close,.popover-helptip .button-close b,.popover-share .bar-footer .button-close,.popover-share .bar-footer .button-close b,.popover-share .bar-header span,.popover-share .bar-header span b{color:gray!important}.gray a,.gray a:hover,.gray a:visited,.icon-help a,.icon-help a:hover,.icon-help a:visited,.popover-helptip .button-close a,.popover-helptip .button-close a:hover,.popover-helptip .button-close a:visited,.popover-share .bar-footer .button-close a,.popover-share .bar-footer .button-close a:hover,.popover-share .bar-footer .button-close a:visited,.popover-share .bar-header span a,.popover-share .bar-header span a:hover,.popover-share .bar-header span a:visited,.positive a,.positive a:hover,.positive a:visited,.text-editable:hover a,.text-editable:hover a:hover,.text-editable:hover a:visited{color:inherit}.item a{text-decoration:none}.no-padding{padding:0!important}.avatar-member{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAQAAABpN6lAAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfgBA0LKSJACf7RAAAFqElEQVR42u2dbUjdZRjGf+c4dTndFnO+TRcD3ZIxdVlJL2PSIHDZBqtRaINojWRrgR8a4fDbIOrzoIKIMay2iGpQsg0y4xRZIk5i1NTaik3TZeRcvmzl0wc7qTPz6Lnv5/kfz/86XzxyuM59Xf/r//o893MCBqtIoYgSSsgjndWkk8RV+v959dFPP9/wm82CAtYM2MCTPMZGgnN87iZNvMdH1mww+q8Es9e0m/nhhjltnjG361enL3+HOT9P8ZMYNC+YhFg2IN2cWbD4MNrN3bFqQIm5FLV8Y4wZMbtj0YBdZlhEvjHGjJsXY82A+8yomPwJ1OhUqnMazKOVTGHOUe7lW/lS5zorLwSJnBKXD0s5SUpsGHCAzQqsUMgr8qTyu8AqulmpYgCMcQd9spTyCahTkw/JHJCmlE5AIj2kqxkAA6xlWJJQOgEVqvJhFY/LEkobUKUqH2Cbtw0oVTdgqyyd7DEgiWES1C1YxyU5MtkEFFiQD/dLkskacKcF+ZAb7waIXmbHogEZ3jVANJyxaEDAigHJ8W6AKDRuh2MKfgJcF+AafgJ8A+IcfgJcF+AafgJcF+AafgJE2URvU2aFqM2SzwSXM8ASCwaMkc9lKTLJBNRbkQ/JvCRHJpeANPpZasUAuEa21PiQXAJ2WJMPy9ktRSVnwBPW5IPgCJScAXdZNSDHewbcsGpAmvcMGLVqgNhkGTkDfrVqQLv3DHjfqgGnpYjkrgMyuGLpQgigkO9liOQS0M+H1uS/JSVf9l5gBV9RaEH+TxRxTYpM8l5gkEcZUJc/zB45+dK3wz9QhW4LiuERQpKE0k+EzvKuqgENNMsSyj8SO6lqwFFpQvmpskv4kTwl+e3ydxzyCfhTfiv9i9flKTX6BVZymWUK8ofI4bo0qcZj8d85psAKDfLytRonC7ig8Ii8hA75UnUGRrr4RJyzRUO+3sjQq8J8hjqdQrUMCAkfsV/jM51C9Zqnl3GOfCGuixRpHABBc3D0D/bwlwiTYa+WfN3R4RZeFuFRiz9orx+QSEvUF6+K8Qft+QE3eSpqDsX4g40VJKL9AuU5B/4MEdcFuIZvgOsCXEPbgFQPMDg1INsDDL4BLg2IfqRIeaxJ24CdHmD4X+heCaZxNerJk2OsZkivRN0EVAvMHU2mWrNEzQSk0C1yCOslX3bViKnQTECt0BE8m1q9IvUSUEaz2NTJUcr5OrYMyKWVLEG+X7hHboL0VOjsArk0isqHLBp1WrM1DCijlU3irJtopcz7BqRwmGbhrR9GFs0cFl9PTHBpujRTY3qEF9GbiR5TY9K8tJxeKtlkU8hOHrLUMgNjNHGK7+ilN9pHpvMxYAXVPKu0Upwc2nmTtxmM+PMRRiXB7DcD6vGWwoDZH+lqtJEl4EGOUux6084THTzPF3N/bO6zQA4NhGJOPhQToiGCxoo5InLQDLnOc1QYMgcXvgsk8QZPu96QAjjGc7P3s8xuQAYf8IDr2oXwJbvon58BG2lkreu6BfEz2zkfuQEb+FxhYVy36GMrFyIzYB0h1riuVwFX2MLFW/858zSYR9OilA9raJo5i/nWBGQSosB1pYroYsv0lYmnJyDIiUUtHwo4MV3zdAPqKXddoTrKqZ/6duouUM6ncTFcPs62yb6TSQPS6ZBrSfY4eigOd7qGt3iA43EjH3I4Hp58FTZgHxWuq7KKCvZN/DGxC6TSveiu/OZCH/lcDyfgUNzJh0wOwUQCcujS+PEKz2OYAnqCwJG4lA8pHIGAKaI9Ls7+/4VxNgfMGR52XYdDnA0Yyz846DXEa/h9A3wDfAN8A3wDfAOAIL2uS3CK3iBtrmtwira4NyBg1nOO21zX4QgjlATp1OrMjwHU0RkwEOBjtruuxQEaqcQEAUMltYy4rscqRqilEjN1XGA9VZRSqt2k5By9tNHGO3ROvP0bpkYvBeY8k00AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMTNUMTE6NDE6MzQrMDI6MDCAxbwoAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTEzVDExOjQxOjM0KzAyOjAw8ZgElAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=)}.avatar.disable{opacity:.7}.avatar-wallet{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAQAAABpN6lAAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfgBA0JMBOJU4OdAAAB2klEQVR42u3au0ocUQCH8e+IxFRKUohrkG0Eu4BiLrCFDxDBNtjoI1gYTJnGQrRInc4HyBuopNHgBVZIwCJFsHBXLURtQiIyKYyFN3B3zJyd3e/X7e7MmXP+e26zOyBJkiRJkiRJkiRJkiRJkppVSF9E0sk0r+jKuOYnrLMQTqMHkHSzQTHS17fLy3CYroi21JWYj9Z8KDIfvwdUKAC7bGfc+CH6gGrojTyJJBemMr/u+4sLpy2njRZnAAZgAK2t/YHKGUzeZlzz5w2yFU6/EKVsQHAIGIABGIABGIABRN4ILbOVcc1fM9IQCfp7gHOAARiAAbgMXpuhH/GJ0brK/sG78OVfKR0cXPnsQ/iYkwAYY6LOM4eZpXR5q3/t77bH+RkCO5HObZQeEL4nQ7ypcwh8boIAIJQpuwoYQMsugwBJ/73L/h1+3vr+OYtXXn/Lzz7gCV8ZqOH4LUrhz4155IzJvA6B0VqaDwzHu7f/PwEsc1zT8RXWmmoOCJWkl9L95wBWbw6AvO8DfrHkMmgABmAABtDw0j8gUaWHeA9K7odC7GVwhXGgGOmB2ZX4PaDAJs8i9d89XoRq5AAgecoMg3Rm3PhTysyFIyRJkiRJkiRJkiRJkiRJku7wFyuiadmIs5Q9AAAAAElFTkSuQmCC)}.popup-container.confirm .popup,.popup-container.warning .popup{min-width:250px!important;width:350px!important}.popup-container.warning .popup-head{background-color:#ef473a}.popup-container.confirm .popup-head{background-color:#387ef5}.platform-android .scroll-refresher{z-index:50}.view-wallet .hero{height:200px}.view-wallet .hero h4:after{content:' ';display:inline-block}.view-wallet .item-text-wrap{white-space:normal!important}.view-wallet .item .comment{font-style:italic!important}.popover-helptip .view-wallet .item h3 .button-close,.popover-helptip .view-wallet-tx .item h3 .button-close,.popover-share .bar-footer .view-wallet .item h3 .button-close,.popover-share .bar-footer .view-wallet-tx .item h3 .button-close,.popover-share .bar-header .view-wallet .item h3 span,.popover-share .bar-header .view-wallet-tx .item h3 span,.view-wallet .item h3 .gray,.view-wallet .item h3 .popover-helptip .button-close,.view-wallet .item h3 .popover-share .bar-footer .button-close,.view-wallet .item h3 .popover-share .bar-header span,.view-wallet-tx .item h3 .gray,.view-wallet-tx .item h3 .popover-helptip .button-close,.view-wallet-tx .item h3 .popover-share .bar-footer .button-close,.view-wallet-tx .item h3 .popover-share .bar-header span{font-size:11px!important}.view-wallet .list .item span,.view-wallet-tx .list .item span{display:inline}.view-wallet .item-divider .badge{top:16px!important}.view-wallet .item.item-wallet-event{padding-top:5px;padding-bottom:5px;min-height:30px;max-height:auto;height:auto}.view-wallet .item.item-wallet-event:last-child{min-height:48px}#menu .footer .view-wallet .item.item-icon-left.item-wallet-event .icon-help,.view-wallet .item.item-icon-left.item-wallet-event #menu .footer .icon-help,.view-wallet .item.item-icon-left.item-wallet-event .icon,.view-wallet .item.item-icon-left.item-wallet-event .icon-alert,.view-wallet .item.item-icon-left.item-wallet-event .icon-help{font-size:17px;height:18px;top:6px}.view-identity .qrcode,.view-wallet .qrcode{position:absolute;display:block;top:0;right:0;width:0;height:0;background:#fff;z-index:1;-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important;overflow:hidden}.view-identity .qrcode img,.view-wallet .qrcode img{display:float;float:right;width:0;height:0;z-index:1;transition:all .5s ease-out!important}.view-identity .qrcode.on,.view-wallet .qrcode.on{width:50px;height:50px;padding:3px;margin:7px}.view-identity .qrcode.on img,.view-wallet .qrcode.on img{width:44px;height:44px}.view-identity .qrcode.on.active,.view-wallet .qrcode.on.active{margin:0!important;padding:10px;width:200px;height:200px}.view-identity .qrcode.on.active img,.view-wallet .qrcode.on.active img{width:180px;height:180px}@media screen and (max-width:991px){.view-identity .hero.hero-qrcode-active h1,.view-identity .hero.hero-qrcode-active h2,.view-identity .hero.hero-qrcode-active h3,.view-identity .hero.hero-qrcode-active h4,.view-identity .hero.hero-qrcode-active h5,.view-identity .hero.hero-qrcode-active i.avatar,.view-wallet .hero.hero-qrcode-active h1,.view-wallet .hero.hero-qrcode-active h2,.view-wallet .hero.hero-qrcode-active h3,.view-wallet .hero.hero-qrcode-active h4,.view-wallet .hero.hero-qrcode-active h5,.view-wallet .hero.hero-qrcode-active i.avatar{margin-right:200px}}.popover-wallet-actions{height:400px}@media screen and (max-width:991px){.view-wallet-tx .hero{height:100px}}@media screen and (min-width:992px){.view-wallet-tx .hero{height:140px}}.view-wallet-tx .item-text-wrap{white-space:normal!important}.view-wallet-tx .item .comment{font-style:italic!important}.view-wallet-tx .item-divider .badge{top:16px!important}.stable-100-bg{background-color:#f2f2f2!important}.item-tx{border-top:solid 1px #d3d3d3!important;padding-bottom:6px;padding-top:8px;margin:0!important}.item-tx .badge-energized{background-color:rgba(255,201,0,.3);color:#888!important}.item-tx .badge{right:1%!important;top:13px}.item-tx .badge-white{background-color:#fff}.item-tx .vertical-center{position:absolute;top:30%;width:40%}.item-tx p.comment{width:100%;white-space:nowrap;text-overflow:ellipsis}.item-tx p.text-wrap{white-space:normal}.item-tx p.text-wrap a{white-space:nowrap}.item-tx .col-pubkey{max-width:80%}.item-tx .col-pubkey .pubkeys{display:block;white-space:nowrap;text-overflow:ellipsis;max-height:130px;overflow:hidden}.expert-mode .item-tx .item-note{top:8%}.expert-mode .item-tx .badge-secondary{top:calc(8% + 23px)!important}.view-identity{--background-color:#555}.view-identity .member{--background-color:#1a237e}.view-identity .hero{height:200px;background-color:var(--background-color)}.card .card-header{font-size:90%;opacity:.8;filter:alpha(opacity=80)}.card .stable-900-bg,.card.stable-900-bg,.item .stable-900-bg,.item-complex .item-content .stable-900-bg,.item-radio .item-content .stable-900-bg,.item.stable-900-bg{background-color:#e0e0e0!important}.card .item{background:inherit}.card .stable-bg,.card.stable-bg,.item .stable-bg,.item-complex .item-content .stable-bg,.item-radio .item-content .stable-bg,.item.stable-bg{background-color:#f8f8f8!important}.card .card-header{padding-top:5px!important;padding-bottom:0!important;min-height:25px}.card .item .card-footer{margin-bottom:5px}.card .card-avatar .avatar,.card.card-avatar .avatar{box-shadow:0 3px 4px 0 rgba(0,0,0,.26);top:7px;background-color:#d9d9d9}.card .card-avatar img.avatar,.card.card-avatar img.avatar{border:0;min-height:54px;min-width:54px}.card .card-avatar .item.item-avatar,.card.card-avatar .item.item-avatar{padding-top:10px;padding-bottom:2px;min-height:45px!important;margin-bottom:1px}.card .card-avatar .card-footer,.card.card-avatar .card-footer{padding-left:88px;overflow:hidden}#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-center.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-right.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-center.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-right.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-center.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-center.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-center.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-center.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-right.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon.icon-bottom-center a,.card .card-avatar .card-footer .popover-helptip .icon.icon-bottom-right a,.card .card-avatar .card-footer .popover-helptip .icon.icon-center a,.card .card-avatar .card-footer .popover-helptip .icon.icon-right a,.card .card-avatar .card-footer .pull-right a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-center.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-center.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-center.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-center.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-right.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon.icon-bottom-center a,.card.card-avatar .card-footer .popover-helptip .icon.icon-bottom-right a,.card.card-avatar .card-footer .popover-helptip .icon.icon-center a,.card.card-avatar .card-footer .popover-helptip .icon.icon-right a,.card.card-avatar .card-footer .pull-right a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-center.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-right.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-center.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-center.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-center.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-right.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon.icon-bottom-center a,.popover-helptip .card .card-avatar .card-footer .icon.icon-bottom-right a,.popover-helptip .card .card-avatar .card-footer .icon.icon-center a,.popover-helptip .card .card-avatar .card-footer .icon.icon-right a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-center.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-center.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-right.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon.icon-bottom-center a,.popover-helptip .card.card-avatar .card-footer .icon.icon-bottom-right a,.popover-helptip .card.card-avatar .card-footer .icon.icon-center a,.popover-helptip .card.card-avatar .card-footer .icon.icon-right a{margin-right:8px}.a.underline:active,.underline a:active,.underline a:focus,.underline a:hover,a.underline:focus,a.underline:hover{outline:1px!important;text-decoration:underline!important}.card-avatar-small .card,.card-avatar-small .card .card-avatar,.card-avatar-small .card.card-avatar,.card-avatar-small.card{min-height:45px}.card-avatar-small .card .avatar,.card-avatar-small .card .card-avatar .avatar,.card-avatar-small .card .card-avatar .item-avatar .avatar,.card-avatar-small .card .item-avatar .avatar,.card-avatar-small .card.card-avatar .avatar,.card-avatar-small .card.card-avatar .item-avatar .avatar,.card-avatar-small.card .avatar,.card-avatar-small.card .item-avatar .avatar{box-shadow:0 2px 2px 0 rgba(0,0,0,.26);height:30px!important;width:30px!important;left:5px!important}.card-avatar-small .card .card-avatar .item.item-avatar,.card-avatar-small .card .item.item-avatar,.card-avatar-small .card.card-avatar .item.item-avatar,.card-avatar-small.card .item.item-avatar{min-height:25px!important;padding-left:42px!important}.card-avatar-small .card .card-avatar .card-footer,.card-avatar-small .card .card-footer,.card-avatar-small .card.card-avatar .card-footer,.card-avatar-small.card .card-footer{padding-top:0;padding-left:42px!important}.gallery .card-gallery,.gallery .card.card-gallery{margin-bottom:15px!important;float:left;display:block}.gallery .card-gallery img,.gallery .card.card-gallery img{max-height:150px}.gallery .card-gallery-new{max-height:199px}.list .item.text-left{text-align:left!important}.list .item.large-button-bar,.list .item.text-center{text-align:center!important}.list .item.text-right{text-align:right!important}.list .item-divider.item-divider-top-border{border-top:solid 1px rgba(0,0,0,.12)}.lookupForm .list .item.item-avatar.item-checkbox .item-content{padding-left:47px;min-height:auto!important;height:auto!important}.fade-in{opacity:0;filter:alpha(opacity=0);-webkit-transform:translate3d(-30px,1px,0);-webkit-transition:all 1s ease-in-out}.fade-in.on{opacity:1;filter:alpha(opacity=100);-webkit-transform:translate3d(0,0,0)}.item-avatar,.lookupForm .list .item.item-avatar{min-height:80px!important}.item-avatar .item-content i.item-image:first-child,.item-avatar .item-content img.item-image:first-child,.item-avatar .item-content>i:first-child,.item-avatar .item-content>img:first-child,.item-avatar i.item-image:first-child,.item-avatar img.item-image:first-child,.item-avatar-left .item-content i.item-image:first-child,.item-avatar-left .item-content img.item-image:first-child,.item-avatar-left .item-content>i:first-child,.item-avatar-left .item-content>img:first-child,.item-avatar-left i.item-image:first-child,.item-avatar-left img.item-image:first-child,.item-avatar-left>i:first-child,.item-avatar-left>img:first-child,.item-avatar>i:first-child,.item-avatar>img:first-child{color:#d9d9d9;background-color:#f8f8f8;border:solid 1px #d9d9d9;overflow:hidden!important;font-size:45px!important;line-height:56px;width:100%!important;max-height:56px!important;max-width:56px!important;top:12px!important}#menu .footer .item-avatar .item-content>.icon-help:first-child:before,#menu .footer .item-avatar .item-image.icon-help:first-child:before,#menu .footer .item-avatar.item-icon-right .icon-help:first-child:before,#menu .footer .item-avatar>.icon-help:first-child:before,.item-avatar #menu .footer .item-content>.icon-help:first-child:before,.item-avatar #menu .footer .item-image.icon-help:first-child:before,.item-avatar .icon.item-image:first-child:before,.item-avatar .item-content>.icon-alert:first-child:before,.item-avatar .item-content>.icon-help:first-child:before,.item-avatar .item-content>.icon:first-child:before,.item-avatar .item-image.icon-alert:first-child:before,.item-avatar .item-image.icon-help:first-child:before,.item-avatar.item-icon-right #menu .footer .icon-help:first-child:before,.item-avatar.item-icon-right .icon-alert:first-child:before,.item-avatar.item-icon-right .icon-help:first-child:before,.item-avatar.item-icon-right .icon:first-child:before,.item-avatar>.icon-alert:first-child:before,.item-avatar>.icon-help:first-child:before,.item-avatar>.icon:first-child:before{width:56px!important}#menu .footer .item-avatar.item-icon-right .icon-help:last-child,#menu .footer .item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-help,.item-avatar.item-icon-right #menu .footer .icon-help:last-child,.item-avatar.item-icon-right .icon-alert:last-child,.item-avatar.item-icon-right .icon-help:last-child,.item-avatar.item-icon-right .icon:last-child,.item-avatar.item-icon-right.ink #menu .footer .ion-ios-arrow-right.icon-help,.item-avatar.item-icon-right.ink .icon.ion-ios-arrow-right,.item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-alert,.item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-help{left:auto}.item.item-icon-left>i.avatar:first-child{position:absolute;display:flex;height:100%;align-items:center;font-size:16px;left:16px;top:8px;max-height:32px;max-width:32px}.item.item-checkbox.item-avatar * .item-content>i.avatar:first-child,.item.item-checkbox.item-avatar * .item-content>i.item-image:first-child,.item.item-checkbox.item-avatar *>i.avatar:first-child,.item.item-checkbox.item-avatar *>i.item-image:first-child,.item.item-checkbox.item-avatar .item-content>i.avatar:first-child,.item.item-checkbox.item-avatar .item-content>i.item-image:first-child,.item.item-checkbox.item-avatar>i.avatar:first-child,.item.item-checkbox.item-avatar>i.item-image:first-child{left:65px}.item.item-checkbox .item-content .item-avatar,.item.item-checkbox.item-avatar .item-content{padding-left:65px}#menu .footer .item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-help,.item-icon-left.item-icon-right.ink #menu .footer .ion-ios-arrow-right.icon-help,.item-icon-left.item-icon-right.ink .icon.ion-ios-arrow-right,.item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-alert,.item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-help{left:auto}@media screen and (max-width:767px){#menu .footer .item.item-icon-right>.icon-help:last-child,#menu .footer .item.item-icon-right>.ion-ios-arrow-right.icon-help,.item.item-icon-right>.icon-alert:last-child,.item.item-icon-right>.icon-help:last-child,.item.item-icon-right>.icon.ion-ios-arrow-right,.item.item-icon-right>.icon:last-child,.item.item-icon-right>.ion-ios-arrow-right.icon-alert,.item.item-icon-right>.ion-ios-arrow-right.icon-help{right:1px}}.item em,.view-messages .list .item h2.unread{font-weight:700!important}@media screen and (max-width:991px){.item .badge{right:16px}}@media screen and (min-width:992px){.list .item.item-border-large{margin-bottom:1px;border-bottom:solid 1px #ccc!important}.list.item-border-large .item{border-bottom:solid 1px #ccc!important;margin:0 0 1px}.list.item-border-large .item-divider{border-top:0}}.list .item.item-border{border-bottom:solid 1px #ccc!important;margin-bottom:1px}.list .item.item-small-height{padding-top:2px;padding-bottom:0;min-height:24px}.list .item.item-small-height .badge{padding-top:0!important;top:inherit}.list .item.item-small-height .badge.badge-assertive,.list .item.item-small-height .badge.badge-balanced,.list .item.item-small-height .badge.badge-calm,.list .item.item-small-height .badge.badge-editable:hover,.list .item.item-small-height .badge.badge-energized,.list .item.item-small-height .badge.badge-positive,.list .item.item-small-height .badge.badge-royal{top:1px!important;padding-top:3px!important;padding-bottom:2px!important}.form-errors:first-child{margin:5px 0}.form-errors:last-child{margin:5px 0 0}.form-error{padding:0 16px;font-size:12px;color:red;vertical-align:middle;text-align:end;top:0;position:relative}.item-input-error{border-bottom:2px solid red!important}.item-input.item-button-right input,.item-input.item-button-right textarea{margin-right:100px}.item-input.item-button-right .button,.item-input.item-button-right button{top:6px}.item-input.item-button-right.item-floating-label input,.item-input.item-button-right.item-floating-label textarea{padding-right:100px}.item-input.item-button-right.item-floating-label .button{top:inherit;bottom:6px}.item-input.item-button-right.item-floating-label .button-icon{height:inherit}.item.item-button-right .badge,.item.item-icon-right .badge{right:43px}@media screen and (max-width:767px){.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:300px!important;display:block!important}.badge:empty{display:none!important}.item.item-button-right .badge,.item.item-icon-right .badge{right:26px!important}}.badge-editable:hover{cursor:pointer}.badge-editable:hover:before{content:" "}.platform-ipad .bar-title{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%)}.platform-ipad .bar-title .title{background-color:#fff;margin-left:0;margin-right:0;height:44px}.bar .badge-button{margin:0!important;padding:0 4px!important;font-size:10px;position:absolute!important;top:5px;right:3px}.text-editable:hover{cursor:pointer}.text-editable:hover:after{content:""}.item h2 .text-editable:hover:after{font-size:14px}.modal.modal-full-height{bottom:0}@media screen and (max-width:767px){.modal{top:0!important;left:0!important;bottom:0;min-height:100%!important;width:100%!important}}@media screen and (max-width:991px){.modal{bottom:0}.modal .swiper-pagination{visibility:hidden!important}.modal.modal-full-height{top:0}.modal.modal-full-height ion-content.keyboard-up .scroll{min-height:calc(100% + 67px)}}@media (min-width:992px){.modal.modal-full-height{min-height:80%}}.modal.about .bar.bar-header .button+.title{left:0!important}.item-button-right .item-content>.button,.item-button-right .item-content>.buttons,.item-button-right>.button,.item-button-right>.buttons{top:16px}.item-button-right .item-content>.button.button-small,.item-button-right .item-content>.buttons .button-small,.item-button-right>.button.button-small,.item-button-right>.buttons .button-small{font-size:14px}.item.large-button-bar{margin-bottom:10px}.item-avatar-left-padding{padding-left:95px}.item-thumbnail-left-padding{padding-left:106px}.item-thumbnail-left,.item.item-thumbnail-left{min-height:100px!important}.item-thumbnail-left .item-content i.item-image,.item-thumbnail-left .item-content>i:first-child,.item-thumbnail-left i.item-image,.item-thumbnail-left>i:first-child{color:#d9d9d9;background-color:#f8f8f8;overflow:hidden!important;font-size:50px!important;line-height:80px;padding:0 15px;background-position:center;background-size:cover;display:inline-block}@media screen and (max-width:400px){.card>.item.item-thumbnail-left,.item-thumbnail-left,.item-thumbnail-left .item-content{padding-left:84px!important}.item-thumbnail-left .item-content img.item-image,.item-thumbnail-left .item-content>img:first-child,.item-thumbnail-left img.item-image,.item-thumbnail-left>img:first-child{max-width:70px;max-height:70px}.item h2{font-size:13px!important}}.item-icon-left-padding{padding-left:40px}.item-icon-right-padding{padding-right:40px}.text-keep-lines{white-space:pre-line!important}.text-italic{font-style:italic!important}.menu.menu-left{background-color:#f5f5f5}.menu.menu-left .item{opacity:.75;color:#000}.menu.menu-left .item-button-right .item-content>.button,.menu.menu-left .item-button-right .item-content>.buttons,.menu.menu-left .item-button-right>.button,.menu.menu-left .item-button-right>.buttons{top:8px!important}.menu.menu-left .item.active{background-color:#b2e0ff!important}.menu.menu-left .item.active .item-content{background-color:transparent}.menu.menu-left .item-menu-disable{color:#444!important}@media screen and (max-width:991px){.menu.menu-left .item.item-divider{min-height:2px;height:2px;padding-top:0;padding-bottom:0}.menu.menu-left .item,.menu.menu-left .item.item-complex .item-content{height:40px;min-height:40px;padding-top:10px;padding-bottom:10px}.menu.menu-left .item .badge,.menu.menu-left .item.item-complex .item-content .badge{top:10px;padding:2px 6px;font-size:12px}.menu.menu-left .item.item-complex{padding-top:0}.menu.menu-left .item.item-button-right .button{height:30px;min-height:30px;top:4px}.menu.menu-left ion-content.has-footer{bottom:0!important}.menu.menu-left .bar-header{background-color:#1a237e;color:#fff;height:150px;padding-right:0!important}.platform-ios.platform-cordova .menu.menu-left .bar-header{height:calc(constant(safe-area-inset-top) + 150px);height:calc(env(safe-area-inset-top) + 150px)}.menu.menu-left .bar-header .hero{height:150px;box-shadow:none}.menu.menu-left .bar-header .hero .content{bottom:0}.menu.menu-left .has-header{top:150px}.platform-ios.platform-cordova .menu.menu-left .has-header{top:calc(constant(safe-area-inset-top) + 150px);top:calc(env(safe-area-inset-top) + 150px)}}@media screen and (min-width:768px){.menu.menu-left .item.item-divider{min-height:5px;height:5px}.menu.menu-left .footer a{font-size:14px!important;color:gray!important}}@media screen and (min-width:992px){.menu.menu-left{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOmJ4PSJodHRwczovL2JveHktc3ZnLmNvbSI+CiAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDgyNjEsIDAsIDAsIDAuNjA4MjYxLCAtMjAuMDg0OTc2LCAzLjI1NTczNikiPgogICAgPGc+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC43ODsiIGlkPSJwYXRoLTEwIiBkPSJNIDQxOS4xMzMgODUuNzM4IEMgNDE3LjI5NSA4NS43MzkgNDE1LjQ1NSA4NS43NTQgNDEzLjYxMSA4NS43NzggQyAzNTQuODUyIDg2LjU2MSAyOTkuMDIzIDk5LjE3NCAyNDguMzU4IDEyMS4zMiBDIDU4NC4xMjEgMTMuMjA2IDc5Ni4xNzUgMjExLjI2IDgzMS43IDUwOC43NzMgTCA4NDYuMzgzIDUwNy4xMjQgQyA4MTUuNTg2IDIzNS44MDEgNjUyLjQ3NyA4NS41ODggNDE5LjEzMyA4NS43MzggWiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NjM3MywgMC4yNjY4NzgsIC0wLjI2Njg3OCwgMC45NjM3MywgODkuNTA1MjMxLCAtMTM2LjYxNTA2MSkiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDE7IiBpZD0icGF0aC0zIiBkPSJNIDE0Ni4wMzcgMTk0LjA2NSBDIDE0NC4yMDEgMTk0LjA2NiAxNDIuMzYxIDE5NC4wODEgMTQwLjUxNyAxOTQuMTA0IEMgODEuNzYgMTk0Ljg4OCAyNS45MzEgMjA3LjUwMyAtMjQuNzM2IDIyOS42NDggQyAzMTEuMDI5IDEyMS41MzEgNTIzLjA4MyAzMTkuNTgzIDU1OC42MDQgNjE3LjA5MyBMIDU3My4yODQgNjE1LjQ0MyBDIDU0Mi40OSAzNDQuMTIyIDM3OS4zODUgMTkzLjkxMyAxNDYuMDM3IDE5NC4wNjUgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuMTgwOTg4LCAtMC45ODM0ODUsIDAuOTgzNDg1LCAtMC4xODA5ODgsIC0zOS4yOTg1ODEsIDcwNS44OTc1NDQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMSIgZD0iTSA0ODcuNzQ0IDE5My4wODQgQyA0ODUuOTA2IDE5My4wODUgNDg0LjA2NyAxOTMuMSA0ODIuMjIzIDE5My4xMjMgQyA0MjMuNDY0IDE5My45MDcgMzY3LjYzNSAyMDYuNTIgMzE2Ljk3NSAyMjguNjY4IEMgNjUyLjcyNiAxMjAuNTUyIDg2NC43NzUgMzE4LjYwNSA5MDAuMjk5IDYxNi4xMDkgTCA5MTQuOTc5IDYxNC40NiBDIDg4NC4xODQgMzQzLjE0NCA3MjEuMDgxIDE5Mi45MzUgNDg3Ljc0NCAxOTMuMDg0IFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNjE5OTk3LCAwLjc4NDYwNSwgLTAuNzg0NjA1LCAwLjYxOTk5NywgNTIzLjA2NzIzMSwgLTM0My4zMzE1MzkpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjg0OyIgaWQ9InBhdGgtMTIiIGQ9Ik0gMjk1Ljk2OSA0MzIuNzU3IEMgMjk0LjEzMSA0MzIuNzU4IDI5Mi4yOTMgNDMyLjc3MyAyOTAuNDQ5IDQzMi43OTcgQyAyMzEuNjg4IDQzMy41OCAxNzUuODYgNDQ2LjE5NCAxMjUuMTk4IDQ2OC4zNDEgQyA0NjAuOTU3IDM2MC4yMjYgNjczLjAwNSA1NTguMjggNzA4LjUyNiA4NTUuNzg2IEwgNzIzLjIwNyA4NTQuMTM5IEMgNjkyLjQxMiA1ODIuODE5IDUyOS4zMSA0MzIuNjA5IDI5NS45NjkgNDMyLjc1NyBaIiB0cmFuc2Zvcm09Im1hdHJpeCgtMC45Nzg4NDksIDAuMjA0NTg0LCAtMC4yMDQ1ODQsIC0wLjk3ODg0OSwgOTYzLjgyMDc5NiwgMTExNi4zNjcyOTMpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMyIgZD0iTSAxNTguMDM2IDE0OC44MyBDIDE1Ni4yIDE0OC44MzMgMTU0LjM2IDE0OC44NDYgMTUyLjUxNiAxNDguODcyIEMgOTMuNzU5IDE0OS42NTMgMzcuOTMgMTYyLjI2NyAtMTIuNzM0IDE4NC40MTEgQyAzMjMuMDIyIDc2LjMwMSA1MzUuMDc2IDI3NC4zNTIgNTcwLjYwNCA1NzEuODU3IEwgNTg1LjI4NiA1NzAuMjA4IEMgNTU0LjQ4MyAyOTguODkxIDM5MS4zOCAxNDguNjgzIDE1OC4wMzYgMTQ4LjgzIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuMzM4NjE0LCAtMC45NDA5MjYsIDAuOTQwOTI2LCAwLjMzODYxNCwgLTExNS41OTUxNTgsIDQ4My43MDU5ODQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAxOyIgaWQ9InBhdGgtMTQiIGQ9Ik0gNTAxLjAxOSAyODguMjkyIEMgNDk5LjE4MSAyODguMjkzIDQ5Ny4zNCAyODguMzA4IDQ5NS40OTYgMjg4LjMzMSBDIDQzNi43MzYgMjg5LjExNSAzODAuOTA4IDMwMS43MjYgMzMwLjI0MyAzMjMuODc0IEMgNjY2LjAwNCAyMTUuNzU3IDg3OC4wNjIgNDEzLjgxMiA5MTMuNTg2IDcxMS4zMjIgTCA5MjguMjY4IDcwOS42NzMgQyA4OTcuNDY4IDQzOC4zNTIgNzM0LjM2MSAyODguMTQxIDUwMS4wMTkgMjg4LjI5MiBaIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjE2NDY1NiwgMC45ODYzNTEsIC0wLjk4NjM1MSwgMC4xNjQ2NTYsIDk4Mi44NTcyNjYsIC0yMzMuNDUyMDYzKSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC40OyIgaWQ9InBhdGgtMTUiIGQ9Ik0gMTkyLjk1NCAzNzYuNTIxIEMgMTkxLjExNSAzNzYuNTIyIDE4OS4yNzcgMzc2LjUzNyAxODcuNDMzIDM3Ni41NjEgQyAxMjguNjc0IDM3Ny4zNDQgNzIuODQ1IDM4OS45NTggMjIuMTgxIDQxMi4xMDMgQyAzNTcuOTQgMzAzLjk4OSA1NjkuOTg3IDUwMi4wNDUgNjA1LjUwNSA3OTkuNTUzIEwgNjIwLjE4OCA3OTcuOTA1IEMgNTg5LjM5MiA1MjYuNTg0IDQyNi4yOTUgMzc2LjM2OSAxOTIuOTU0IDM3Ni41MjEgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuOTMxNDA0LCAtMC4zNjM5ODgsIDAuMzYzOTg4LCAtMC45MzE0MDQsIDQxOS40OTkwMDYsIDExODIuNTk5ODA5KSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMTsiIGlkPSJwYXRoLTE2IiBkPSJNIDIyMS42MTQgNjMuOTczIEMgMjE5Ljc3NyA2My45NzYgMjE3LjkzOCA2My45OSAyMTYuMDk0IDY0LjAxNSBDIDE1Ny4zMzQgNjQuNzk1IDEwMS41MDYgNzcuNDA5IDUwLjg0MSA5OS41NTQgQyAzODYuNTk4IC04LjU1OSA1OTguNjUxIDE4OS40OTcgNjM0LjE3MyA0ODcuMDAxIEwgNjQ4Ljg1NCA0ODUuMzU0IEMgNjE4LjA1OCAyMTQuMDM3IDQ1NC45NTQgNjMuODI0IDIyMS42MTQgNjMuOTczIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNzUwNDUyLCAtMC42NjA5MjUsIDAuNjYwOTI1LCAwLjc1MDQ1MiwgLTcwLjgwMzMyMiwgMjkwLjkyMDI3MykiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDAuNDsiIGlkPSJwYXRoLTE3IiBkPSJNIDQ0MS44ODggMzQyLjA5OCBDIDQ0MC4wNDcgMzQyLjA5OCA0MzguMjA3IDM0Mi4xMTQgNDM2LjM2MiAzNDIuMTM4IEMgMzc3LjYwMSAzNDIuOTIyIDMyMS43NjUgMzU1LjUzNSAyNzEuMTAzIDM3Ny42ODEgQyA2MDYuODg2IDI2OS41NjcgODE4Ljk0NCA0NjcuNjE1IDg1NC40NjIgNzY1LjEzMyBMIDg2OS4xNDIgNzYzLjQ4MyBDIDgzOC4zNTQgNDkyLjE1NCA2NzUuMjQyIDM0MS45NDggNDQxLjg4OCAzNDIuMDk4IFoiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjM1NjU4MiwgMC45MzQyNjQsIC0wLjkzNDI2NCwgLTAuMzU2NTgyLCAxMjU2Ljc1OTQ5MywgMTY5LjE4MjU1MikiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc2MjQ5MywgMCwgMCwgMC43NjI0OTMsIDE5LjI5NDY0NywgLTcxNi4zMjI4MTUpIj4KICAgICAgICA8cGF0aCBkPSJNIDU2Ni40NjYgMTA4OS4xMzcgTCA1NjYuNDY2IDExNDguMjIyIEMgNTY1Ljg2NyAxMTQ4LjIxOSA1NjUuMjY3IDExNDguMjE3IDU2NC42NjcgMTE0OC4yMTcgQyA1NjEuNDgxIDExNDguMjE3IDU1OC4zMSAxMTQ4LjI1OSA1NTUuMTU0IDExNDguMzQxIEwgNTU1LjE1NCAxMDg5LjEzNyBaIE0gOTA4LjI5IDE0NzcuMTQ2IEwgOTU2Ljk4NyAxNDc3LjE0NiBMIDk1Ni45ODcgMTQ4OC40NTggTCA5MDguNTY5IDE0ODguNDU4IEMgOTA4LjUzOSAxNDg0LjY5MyA5MDguNDQ3IDE0ODAuOTIyIDkwOC4yOSAxNDc3LjE0NiBaIE0gNTY2LjQ2NiAxODM1LjAxMyBMIDU2Ni40NjYgMTg3Ni40NjcgTCA1NTUuMTU0IDE4NzYuNDY3IEwgNTU1LjE1NCAxODM0Ljg4NiBDIDU1OC4zMTggMTgzNC45NzMgNTYxLjQ5IDE4MzUuMDE3IDU2NC42NjcgMTgzNS4wMTcgQyA1NjUuMjY3IDE4MzUuMDE3IDU2NS44NjcgMTgzNS4wMTYgNTY2LjQ2NiAxODM1LjAxMyBaIE0gMjIwLjc3NSAxNDg4LjQ1OCBMIDE2OS42NTcgMTQ4OC40NTggTCAxNjkuNjU3IDE0NzcuMTQ2IEwgMjIxLjA4OSAxNDc3LjE0NiBDIDIyMC45MjEgMTQ4MC45MDkgMjIwLjgxNiAxNDg0LjY4IDIyMC43NzUgMTQ4OC40NTggWiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgc3Ryb2tlOiBub25lOyIgYng6b3JpZ2luPSIwIDAiLz4KICAgICAgICA8cGF0aCBkPSJNIDc2MC4xMjEgMTE0My4zMTEgTCA3MTcuMzM2IDEyMTcuNDE3IEMgNzE1LjcyIDEyMTYuNTE4IDcxNC4wOTYgMTIxNS42MzIgNzEyLjQ2NSAxMjE0Ljc2MSBMIDc1NS4zMTggMTE0MC41MzcgWiBNIDgzMC4xMjIgMTMyNC4yMDMgTCA5MDAuNDI0IDEyODMuNjE0IEwgOTAzLjE5OCAxMjg4LjQxNyBMIDgzMy4wNCAxMzI4LjkyMyBDIDgzMi4wOCAxMzI3LjMzOSA4MzEuMTA3IDEzMjUuNzY2IDgzMC4xMjIgMTMyNC4yMDMgWiBNIDg0MC41OTkgMTY0MS4xMzcgTCA5MDMuMTk3IDE2NzcuMjc4IEwgOTAwLjQyNCAxNjgyLjA4MiBMIDgzNy45MTEgMTY0NS45OSBDIDgzOC44MjEgMTY0NC4zOCA4MzkuNzE3IDE2NDIuNzYyIDg0MC41OTkgMTY0MS4xMzcgWiBNIDcyNS4xNjggMTc2MS44NDMgTCA3NjAuMTIyIDE4MjIuMzg1IEwgNzU1LjMxOCAxODI1LjE1OCBMIDcyMC4zNzkgMTc2NC42NDEgQyA3MjEuOTg1IDE3NjMuNzIyIDcyMy41ODIgMTc2Mi43ODkgNzI1LjE2OCAxNzYxLjg0MyBaIE0gNDAzLjUzOCAxNzYwLjkzMiBMIDM2Ni40NTYgMTgyNS4xNTkgTCAzNjEuNjUzIDE4MjIuMzg2IEwgMzk4LjgwMiAxNzU4LjA0MiBDIDQwMC4zNzIgMTc1OS4wMTkgNDAxLjk1MSAxNzU5Ljk4MiA0MDMuNTM4IDE3NjAuOTMyIFogTSAyODkuNTggMTY0Mi42ODkgTCAyMjEuMzUgMTY4Mi4wODIgTCAyMTguNTc3IDE2NzcuMjc5IEwgMjg2Ljk0NCAxNjM3LjgwNyBDIDI4Ny44MDcgMTYzOS40MzcgMjg4LjY4NSAxNjQxLjA2NSAyODkuNTggMTY0Mi42ODkgWiBNIDI5NC4zNTQgMTMzMi4xNjggTCAyMTguNTc2IDEyODguNDE3IEwgMjIxLjM1IDEyODMuNjE0IEwgMjk3LjIxMyAxMzI3LjQxNCBDIDI5Ni4yNDYgMTMyOC45OSAyOTUuMjkzIDEzMzAuNTc1IDI5NC4zNTQgMTMzMi4xNjggWiBNIDQwNi4wNzkgMTIyMC4yNTkgTCAzNjEuNjUzIDExNDMuMzExIEwgMzY2LjQ1NyAxMTQwLjUzNyBMIDQxMC44ODkgMTIxNy40OTUgQyA0MDkuMjc2IDEyMTguNDAzIDQwNy42NzMgMTIxOS4zMjQgNDA2LjA3OSAxMjIwLjI1OSBaIiBzdHlsZT0iZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBzdHJva2U6IG5vbmU7IiBieDpvcmlnaW49IjAgMCIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8cmVjdCB4PSI0MjkuMzY3IiB5PSI0MjUuOTc5IiB3aWR0aD0iMjAuMDAzIiBoZWlnaHQ9IjIxLjczNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTkxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAwLjk5OTk5OSwgLTMwMS4zNzcwNzUsIC0yMTkuNDk4NDM0KSIvPgogICAgPHJlY3QgeD0iNDQ2Ljg1MyIgeT0iMjUuNDYyIiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05MyIvPgogICAgPHJlY3QgeD0iLTEzNS45NTYiIHk9IjYwNS4xNDEiIHdpZHRoPSIzOS44NTEiIGhlaWdodD0iMzkuODUxIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTQiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk5OTk5LCAwLCAwLCAxLCA4NDYuMTc2NzU2LCAtMzk0Ljk1NjAyNCkiLz4KICAgIDxyZWN0IHg9IjIyNS43NzkiIHk9IjY4OS44MzYiIHdpZHRoPSIyNS45OSIgaGVpZ2h0PSIyNS45OSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk1Ii8+CiAgICA8cmVjdCB4PSI1OTQuMDEzIiB5PSI3MzcuMTQyIiB3aWR0aD0iMjAuNzkyIiBoZWlnaHQ9IjIyLjUyNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk2Ii8+CiAgICA8cmVjdCB4PSIzODcuMjM1IiB5PSI0NzkuMzk3IiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05OCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4wMDAwMDEsIDAsIDAsIDAuOTk5OTk5LCAzNjUuMjc0OTY2LCA3OS4yOTUyNDEpIi8+CiAgICA8cmVjdCB4PSI0MjEuOTYyIiB5PSI3NzUuOTM3IiB3aWR0aD0iMzIuOTIiIGhlaWdodD0iMzQuNjUzIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTkiLz4KICAgIDxyZWN0IHg9Ii02Ni45MzkiIHk9Ii01NjguOTc4IiB3aWR0aD0iMjAuODY3IiBoZWlnaHQ9IjIwLjc5MiIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTEwMSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsIDAsIDAsIDAuOTk5OTk3LCAzMS4zNTY5MjgsIDk4NC43MzYzMDYpIi8+CiAgPC9nPgo8L3N2Zz4=);background-repeat:no-repeat;background-position:-500px -100px;background-size:1024px 1024px;background-color:#f5f5f5;height:100%}}.certifications .item-divider .badge{top:16px!important}.certifications-lg .avatar-large{left:auto;position:relative;font-size:55px!important;height:88px;width:88px;color:#d9d9d9;background-color:#e0e0e0;border:solid 1px #d9d9d9}.icon-alert,.icon-help{font-size:38px;vertical-align:middle}#menu .footer .icon-help{font-size:25px!important;position:absolute;left:12px;top:8px;z-index:99}.popover-helptip{background-color:rgba(68,68,68,.85)!important;height:auto!important}.popover-helptip .button-close{padding:8px;height:25px;font-size:18.2px}.popover-helptip a,.popover-helptip a:active,.popover-helptip a:hover{text-decoration:underline}.nobackdrop .popover-backdrop.active{background-color:transparent!important}.helptip-anchor,.helptip-anchor-center,.helptip-anchor-left,.helptip-anchor-right{display:block;position:absolute;width:100%;bottom:0}.helptip-anchor-center,div[dropzone]{text-align:center}.helptip-anchor-left,div[dropzone] .item,div[dropzone] .list .item{text-align:left}.helptip-anchor-right{text-align:right}.helptip-anchor a:before,.helptip-anchor-center a:before,.helptip-anchor-left a:before,.helptip-anchor-right a:before{content:" "}@media (max-width:767px){.popover-helptip{width:auto}}#menu .footer .popover-helptip .icon-left.icon-help,.popover-helptip #menu .footer .icon-left.icon-help,.popover-helptip .icon-left.icon-alert,.popover-helptip .icon-left.icon-help,.popover-helptip .icon.icon-left{font-size:30px;position:relative;top:8px;left:8px}#menu .footer .popover-helptip .icon-right.icon-help,.popover-helptip #menu .footer .icon-right.icon-help,.popover-helptip .icon-right.icon-alert,.popover-helptip .icon-right.icon-help,.popover-helptip .icon.icon-right{font-size:30px;position:relative;top:8px;right:8px}#menu .footer .popover-helptip .icon-center.icon-help,.popover-helptip #menu .footer .icon-center.icon-help,.popover-helptip .icon-center.icon-alert,.popover-helptip .icon-center.icon-help,.popover-helptip .icon.icon-center{font-size:30px;width:100%;text-align:center;position:relative;top:8px;height:0}#menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-helptip .icon-bottom-right.icon-alert,.popover-helptip .icon-bottom-right.icon-help,.popover-helptip .icon.icon-bottom-right{font-size:30px;position:relative;bottom:8px;right:8px}#menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-helptip .icon-bottom-left.icon-alert,.popover-helptip .icon-bottom-left.icon-help,.popover-helptip .icon.icon-bottom-left{font-size:30px;position:relative;bottom:8px;left:8px}#menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-helptip .icon-bottom-center.icon-alert,.popover-helptip .icon-bottom-center.icon-help,.popover-helptip .icon.icon-bottom-center{font-size:30px;position:relative;width:100%;bottom:8px;text-align:center;height:0}.popover.popover-profile{height:200px}.popover.popover-profile .avatar{height:90px;width:90px;left:20px;top:20px;border:solid 1px #d9d9d9}.popover.popover-profile .bar.bar-footer{height:58px}.popover.popover-profile .bar.bar-footer .col .button{max-width:inherit;width:100%;padding:5px 0;margin:0}.popover.popover-profile .bar .button-positive,.popover.popover-profile .bar .button-text{background-color:#387ef5!important}.popover.popover-profile .bar .button-stable,.view-messages .list .item h2.read{color:#444!important}.bar-header .button-icon .avatar{border:solid 1px #d9d9d9;height:31px;width:31px;position:relative;left:0;top:6px}.bar-header .button-icon .avatar.active{background-color:#e0e0e0}.list .badge .badge-secondary,.list .badge.badge-secondary{font-size:12px;font-style:italic;top:37px;font-weight:400!important;margin-right:0;padding:3px 8px}.list .item-avatar .badge.badge-avatar{position:absolute!important;left:60px!important;right:inherit!important;top:15px!important;margin:0!important;padding:0 4px!important;font-size:10px}.popover.popover-login-methods{height:280px;width:290px}.popover.popover-login-methods.auth{height:204px}@media (max-width:767px){.popover.popover-login-methods{height:256px}.popover.popover-login-methods.auth{height:204px}}.ion-es-user-api:before{content:url(../img/logo.small.cs.dune.svg)}.ion-bma-tor-api:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAATEAYAAAChBNO0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAB3lJREFUWMPNmGtUVNcVx/93mBlmgEGeAyhYUoSERhmM9ZHSCL4AqURFEmSBEZOgWGqh0pqYNkREiIlxxSXqYpUoJhqVRWJ41tooKNYIGR8R8QlKAsj7PQ9k7tx7++Gc6VpQnctK4lo9X35zz+x79v7vM2fffYfB/8lYty4iIjFx/Oz0TEJpD2HTLwj1RmqwvbDw9OmjR3+8XylxHPBPcuk1QucbKIUn3GeZ/45eJlCWEfJfEJp3Ew6qqIADhNw3lsDHCrf1I9SMEi6XERpOEV7YRLn950q8lODUfcLJWVRIpkgCLGMG5S5q/kfKRXR+D0H7TSrIhfD2+B33JUiII0xZR6i4QljwiLC23HLDT915y2BIIIKY0J84DFsII/5NePHS2O9dqdDT8YTBdOezUwlzHxKyOT+XcMuQUCY93QQwv6TudkAKbygBhKAEMZMiuA7uGtc601HIETYL259loYASikNbif2uWU9LuGXQI2CqI5Q/rQw4Uvq6/86rUq0DpB9KG2xWrmzybvMt8FFnyBvmX6m5sbN/qiFT3294Pq9HUi1RSq4YE3+s8McXVUkela0g5BxoAr5MJgycR8i8Q+OmP1nfY3S+zbrbrgrKNdQ+gPDBNcIWvxFvw7GRBkChV+bbajvbg34951pwcYDUrDLfM2fZpGtrapK/XR1ikLCSQxKPG/8VIpaIxwv2CSNcyRH+ZgehcwFhz1l6BJLoDi2IIgwtpsvSwAevWxcu+BBmLiZ8iZ7d0BrC+C19tl2He9f+cKcitXhhaar8kGyJ/Dl5+txbihi7EuV+mZ1sozxavt9mhcQoiZTIVx3Hi1iE36pN1gU+aX6BPWHpAsI9VHBcJ2F4NGFCNWN9wUBavM7fInQvx2MHq6WZbiGsjL3N1JfdqgDWx2ZoNu4FKtnil8oLnhkMUsz+SPPu1mURbas+XuqX+KW7ndc2dYVS3Tjjps89CVA+fGxJaTY/YDira9GvO/cv5gFjwzx8fwNZt9qbkLv5+DiC/k5Y/AFhQBNEhsT613wppVnkF0AbE65EOCDkCHnAkYozyuNNQM2bpz87lxKuXey/PDo8unRnkmt66xs+yYemF866PENQqtllplzWH5g27Vce/ksBzRtzZJp7EmfhIr9X+HphHBgwYIrayfoZ9GlgmzXWv00rYZr/RIVPNAGhlG+JrEMbFcFTtlwmk20Gco9t/ir76gtVizetKAnPP1ATv3BDbYJqxvsqT6cwx2z4DysHzw7nA85rXZ2d2wAunq3mQgDNxrlzZnYBCg+7VMVqAJ8Je4VCFzuyflY9YcpHY917ORGGFU1MthBLqJOLJEAIox/iRVbsoPaOB9dUag4XSouDN80Nmdm/9fXIPaviohr8NhtN+lhjEcDam15kWwCPbVNe8wwFdMuH5uk6AVOaKce0CFAE2mUpUwHVQadGRwdA8BZG4GZxo6C1Jo2eZb+phPafEqpU1sM0BBK+R/uMcEYkAaiiwr4RsRsFBw4cfz6mbl7wy/y0Rv/h5+UB3qGZ/B4hht8B8LuFFfx2wCXHLcXFFeg/2VPcNxlQJtg/tDsOyJbKOGkqYC5idWwuYDNV8pZEAwiXUPW/3n19CWfT2oRXCSRfWQ/zPu0r9tNOs9YkloA+ygEROw5deIhOYZFdmMOAfZ7DC47tzsGT4pS8/s7QXf0WwKnTJdc5BeiWd6R0xQIOMY7xqn8A8lrbM/IRgPFkIphngJFso/ej+QDrZYpihwDmbWYX87fx7phuwilrqfA/j92wJ+5TCSGrscyIJeA8ZZ2I3SBsoYAtWvlWbhdfL+SzR9ledpugtmmXJtlwwPCRgSVDQYDiO6WXwgmQVksTpU3AUFR/xYAWQC860Qv0ft25vscDMMzXbzV0AEwxapnSJ7k10scZQ99JmG+th2mm/Y7wygQTIFgeiH8SScBtuEINN2Ztt7LjD11xP5R9H9Ho2BzedFBoFIqFemCgo8+jfw0gmybn5NHA4M6+GwM2gPRz2UaZFjCFjEaa7IG2qmbPlruA6dToSdMOAMuY1Yge7073HmE9rQ6S+TQB90X0PEf5yUQTcJiQvyxiRxsn5vfT5bMWB6X28tdwafBqRt65u6jfd+fCSMOw20Dd8BGgc1ZbZEcGwJawJnY3wDfwb/M1gL5E12B4Beha1v5x1z4AznCHCwAj9DCO91dOH3PafYRS+pbJXBDZKNqvWIq2aAK412gCSq3bWYoQ79K/t/uDPjNwVXpReznt875qTWXOWb+c9d+nNYU2pw/trw/QFlwvA/rcux/1vQv0xHfoesqgbyy6mX33HfT2nux8tccOECqFE0IZADd4wp1LosLpa/ZfHQhN9H8MNNONyLUeJm9L7dSWGan1G4y0pexeRTg5nS5Eqyi6CPrpe/yQgpkpeZMJwRlV3aRc1WyTtEpdrj0z5cMSvXF4jc7jtp9tgCJfEb+p9Eaydsn183OTZa/Lm2VHld2tUQ8+bY2Gg+nEaORooPkE8xfGh6lt3EAaoSO0un9Ci1xPztg4hxtpnLQfcaA1QaBHhKH/U7Q/S8g6We78Dzmv92D5rFiKAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTE0VDExOjU4OjIwKzA1OjAwUOI3hwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0xNFQxMTo1ODoyMCswNTowMCG/jzsAAAAvdEVYdHN2Zzpjb21tZW50AD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/5MH3awAAAABJRU5ErkJggg==)}.row-header{border-bottom:solid 1px #ccc!important;margin:0;min-height:28px!important}.col-header{text-align:center;display:block!important}.col-15{-webkit-box-flex:0;-webkit-flex:0 0 15%;-moz-box-flex:0;-moz-flex:0 0 15%;-ms-flex:0 0 15%;flex:0 0 15%;max-width:15%}.col-border-left{border-left:solid 1px #ccc!important}.col-border-right{border-right:solid 1px #ccc!important}.ion-spinner-small{line-height:14px;margin:0;padding:0}.ion-spinner-small,.ion-spinner-small svg{height:14px;width:14px}.icon-secondary{position:absolute;height:100%;display:flex;align-items:center;font-size:16px;left:25px;top:-7px}div[dropzone]{border:2px dashed #bbb;border-radius:5px;padding:15px;font:20pt 700;color:#bbb;margin-bottom:20px;cursor:pointer}div[dropzone]:hover{background-color:#f2f2f2}.button-fab-hero.button-fab-top-left,.button-fab-hero.button-fab-top-right,.hero .button-fab-top-left,.hero .button-fab-top-right{top:170px!important}.bar .button.button-fab.mini,.button.button-fab.mini{min-width:40px;min-height:40px}.button-fab-hero.button-fab-top-left.mini,.button-fab-hero.button-fab-top-right.mini,.hero .button-fab-top-left.mini,.hero .button-fab-top-right.mini{top:178px!important}.text-no-transform{text-transform:inherit}.button-icon-event,.item-icon-event{text-transform:inherit;pointer-events:none!important}#menu .footer .button-icon-event .icon-help,#menu .footer .item-icon-event .icon-help,.button-icon-event #menu .footer .icon-help,.button-icon-event .icon,.button-icon-event .icon-alert,.button-icon-event .icon-event,.button-icon-event .icon-help,.item-icon-event #menu .footer .icon-help,.item-icon-event .icon,.item-icon-event .icon-alert,.item-icon-event .icon-event,.item-icon-event .icon-help{pointer-events:all!important}.hero.dark-100-bg{background-color:#555}.hero.positive-900-bg{background-color:#1a237e!important}.hero.stable-bg{background-color:#f8f8f8!important}.popover-locked-outputs .item .badge{right:16px!important}.animate-show-hide.ng-hide{opacity:0}.animate-show-hide.ng-hide-add,.animate-show-hide.ng-hide-remove{transition:all linear .3s}.modal iframe.iframe-license{width:100%;height:calc(100% - 171px)!important}@media screen and (max-width:767px){.modal iframe.iframe-license{height:calc(100% - 104px)}}@media screen and (min-width:768px) and (max-width:991px) and (min-height:600px){.modal iframe.iframe-license{height:calc(100% - 171px)}}@media screen and (min-width:992px){.modal iframe.iframe-license{height:calc(100% - 171px)}.modal.modal-license iframe.iframe-license{height:calc(100% - 111px)!important}}.modal.modal-help .row.selected .col:first-child{font-weight:700}@media screen and (max-width:767px){.modal.modal-help .row .col:first-child{font-weight:700}.modal.modal-help h2{padding-left:10px}}.modal.modal-login .item.item-icon-right.item-text-wrap .item-content{margin-right:58px;text-overflow:ellipsis;overflow:hidden}.popover-locales{height:284px;width:200px}.popover-locales .item{height:48px}.buttons-tabs{display:block;height:57px;border:0;padding:16px 16px 0;overflow:hidden}.buttons-tabs .button.button-tab:first-child{border-top-left-radius:15px}.buttons-tabs .button.button-tab:last-child{border-top-right-radius:15px}.buttons-tabs .button.button-tab.active{background-color:#b2e0ff}.buttons-tabs.border-bottom{border-bottom:solid 1px #ccc!important}@media screen and (max-width:767px){.buttons-tabs{padding:10px 10px 0}.buttons-tabs .button.button-tab{padding:2px 10px 0!important}}.feed h1,.feed h2,.feed h3,.feed h4,.feed h5,.hero .likes .gray,.hero .likes .popover-helptip .button-close,.hero .likes .popover-share .bar-footer .button-close,.hero .likes .popover-share .bar-header span,.popover-helptip .hero .likes .button-close,.popover-share .bar-footer .hero .likes .button-close,.popover-share .bar-header .hero .likes span{color:#fff!important}.hero .likes .icon-help,.hero .likes .icon-help a,.hero .likes .icon-help i,.hero .likes .positive,.hero .likes .positive a,.hero .likes .positive i,.hero .likes .text-editable:hover,.hero .likes .text-editable:hover a,.hero .likes .text-editable:hover i,.hero .likes a.icon-help,.hero .likes a.positive,.hero .likes a.text-editable:hover{color:#11c1f3!important}.view-wallet .hero .likes a{user-select:none!important;pointer-events:none}.feed .card{background-color:rgba(0,0,0,.3);color:#d3d3d3}.feed ul{list-style:unset;padding-left:40px}#home .main-container h4 a,.feed a{color:inherit}.feed .card .header,.feed .feed_header{height:25px;color:gray!important}.feed .card .header a:hover,.feed .feed_header a:hover{color:#387ef5!important}.feed .card .header .avatar,.feed .feed_header .avatar{margin-top:-6px;margin-left:-6px;height:30px;width:30px;border:1px solid #387ef5}.feed .card .header .avatar-left-padding,.feed .feed_header .avatar-left-padding{padding-left:30px}.feed .card .title,.feed .feed-title{margin-top:5px;font-size:18pt}.feed .card .title a,.feed .feed-title a,.list .item-peer:hover .badge.badge-balanced,.list .item-peer:hover .badge.badge-energized{color:#fff!important}.feed .card .content,.feed .feed-content{text-align:start;color:#d3d3d3!important}.feed .card .footer a:hover,.feed .feed-footer a:hover{color:#387ef5!important}#newAccount h1{font-size:25px;margin-top:30px}.badge sub,.badge sup{line-height:inherit}#home .main-container h1{padding-top:15px;text-align:center}#home .footer .title{padding-top:0;font-size:14px;color:gray}#modal-license{color:#000}.bar .button.button-clear{font-size:12px!important;font-weight:300!important;width:initial!important;min-width:44px!important;max-width:90px!important}.bar .button.button-clear:first-child{margin-left:5px}.popup-buttons .button{padding:0 2px!important}#composeMessage .list .item,#transfer .list .item,.list .item-input,.popover .list .item{border-bottom:solid 1px #ccc}#transfer .list .item.item-no-border{border-bottom:0}#transfer .item.item-icon-right input{padding-right:50px!important}.menu .avatar{height:88px;width:88px}.center{text-align:center}.col-pubkey{min-width:130px!important}.modal .title{text-align:center!important}.slider{height:100%}.slider-slide{color:#000;background-color:#fff;font-family:"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;font-weight:300}#list{width:170px;margin:30px auto;font-size:20px}#list ol{margin-top:30px}#list ol li{text-align:left;list-style:decimal;margin:10px 0}.button.ng-hide{display:none}.no-margin{margin:0!important}.settings .item-divider{background-color:#f5f5f5}.settings .item .input-label{width:80%}.settings .item-select .input-label,.settings .item-toggle .input-label{display:inline;width:auto;max-width:50%}.settings .item .badge{top:22px}.item-block,.list .item-peer{padding-top:9px;padding-bottom:3px}.list .item-peer .badge{top:14px;right:6%}.list .item-peer .badge .badge-secondary,.list .item-peer .badge.badge-secondary{top:31px;font-size:10px;padding-right:6px}.list .item-peer.compacted{padding-top:0;padding-bottom:0;min-height:3px!important;max-height:3px!important;border-bottom:double 1px #ddd!important}.list .item-peer.compacted>*{display:none}.item-block{padding-top:4px;max-height:48px}.item-block .badge{top:12px;right:6%}.item-block.item-block-empty{min-height:24px!important;max-height:24px!important;padding-top:0;padding-bottom:0}.item-block.item-block-empty .badge{padding-top:0!important;top:inherit}.item-block.item-block-empty .badge.badge-balanced{top:0!important;padding-top:3px!important;padding-bottom:2px!important}.item-block-empty.compacted{min-height:3px!important;max-height:3px!important;border-bottom:0!important}.item-block.item-block-empty.compacted{border-bottom:double 1px #eee!important}.list .item.item-wallet .badge{top:29px}.list .item.item-wallet{height:38px}.ng-image-crop{text-align:center;margin:0 auto;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.ng-image-crop>section{background:#ccc}.ng-image-crop button{margin-top:10px}.ng-image-crop .cropping-guide{display:block;background:rgba(255,255,255,.3);border:2px dashed #fff;position:absolute;pointer-events:none}.ng-image-crop--circle .cropping-guide{border-radius:50%;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%}.ng-image-crop .cropping-canvas{background:rgba(255,255,255,.3);margin:0 auto;cursor:move}.ng-image-crop .zoom-handle{display:block;position:absolute;bottom:1px;left:1px;background:rgba(255,255,255,.7);width:80px;height:80px;cursor:move;border-radius:200px 50px}.ng-image-crop .zoom-handle>span{color:rgba(0,0,0,.5);-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg);display:block;position:relative;top:32px}.leaflet-image-layer,.leaflet-layer,.leaflet-map-pane,.leaflet-marker-icon,.leaflet-marker-pane,.leaflet-marker-shadow,.leaflet-overlay-pane,.leaflet-overlay-pane svg,.leaflet-popup-pane,.leaflet-shadow-pane,.leaflet-tile,.leaflet-tile-container,.leaflet-tile-pane,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden;-ms-touch-action:none;touch-action:none}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-control-layers label,.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container img{max-width:none!important}.leaflet-container img.leaflet-image-layer{max-width:15000px!important}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-tile-pane{z-index:2}.leaflet-objects-pane{z-index:3}.leaflet-overlay-pane{z-index:4}.leaflet-shadow-pane{z-index:5}.leaflet-marker-pane{z-index:6}.leaflet-popup-pane{z-index:7}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:7;pointer-events:auto}.leaflet-bottom,.leaflet-top{position:absolute;z-index:1000;pointer-events:none}.card.card-comment .card-footer button,.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup,.leaflet-fade-anim .leaflet-tile{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup,.leaflet-fade-anim .leaflet-tile-loaded{opacity:1}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);-o-transition:-o-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-touching .leaflet-zoom-animated,.leaflet-zoom-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-clickable{cursor:pointer}.leaflet-container{cursor:-webkit-grab;cursor:-moz-grab}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-clickable,.leaflet-dragging .leaflet-container{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing}.leaflet-container{background:#ddd;outline:0}.leaflet-container a{color:#0078a8}.leaflet-container a.leaflet-active{outline:2px solid orange}.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,.5)}.leaflet-container{font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a,.leaflet-bar a:hover{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-align:center;text-decoration:none;color:#000}.leaflet-bar a:hover{display:block;background-color:#f4f4f4}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px 'Lucida Console',Monaco,monospace;text-indent:1px}.leaflet-control-zoom-out{font-size:20px}.leaflet-touch .leaflet-control-zoom-in{font-size:22px}.leaflet-touch .leaflet-control-zoom-out{font-size:24px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAVbSURBVEiJrZZfSFt3FMe/v3tvbmLUZleNKSHE/LGRiNbGRovTtrA9lcFkpcOnMvawwhhjrb3soQ8djGFhXMQNRqEvY3R9kJVuPpRRWQebcdKYxkaHqcHchKJ2rVo1WhNz//z2UOLUadVuv9fvOedzfuec3x9CKcV+1qVLlwgAdHV17cuR7AfU29tb43a73wWAVCr1Q0dHx8T/Curu7i5ubGw843K5ms1mMwBgdXUV6XQ6HI1Gb3Z2dj7/z6C+vr6T1dXVp6xWa+l2+uzs7PLk5OTP7e3tv70S6Pr1647q6uoOt9vtYRjmpcnouo5UKiVPTk72nj17dmpPIEmS+IaGhnaPx3O8tLSU3ahRSotyudzrAGAymf4ghGQ36svLy5osywOxWKxPFMX8jqBbt241ejyed+x2e9nWjPL5fK2iKC2UUiMAEELWDAbDEM/z41ttZ2Zmnsmy/OPp06ejm0DXrl2rqK2tPeNyuQ7zPL9pi5qmVaytrZ3Qdf3gdiVhGOYvo9H4O8uyc1sSI+l0enR8fPzmuXPn5sjt27ff8nq9bwiCYNpSJsPa2lqzqqr1AF7eJEDnOG7MaDSGCSHKRmFhYSGXTCZ/Zd1u93dOp3NJEAS9ICqK4snlcm/puu4EQHaBAADRdf2gqqo1hJBllmUXCsLjx4+L7t69e4Ztamqaffjw4QepVOr5oUOHDKqqvqkoShAAvwfA1sVrmlataVqlqqqzvb29lnA43KwoymeEUoqenp7XdF3vW11dPX7s2DHi9XpfgfHPSiaTuHfvHjWbzQMMw7SfP39+kUSj0ZOU0qsA/EtLSwiHwygpKUFraysOHDiwL0Amk8Hg4CBWVlbQ3NwMi8UCAHFCyIesw+H43uFwuAwGg9lkMsHj8SCfzyMUCkFRFNhsNux2YDVNQzQaRSgUgsvlwtGjR2EyvZitbDbL9Pf3H2YDgcD8xMREk67rCZvN5iSEkLKyMrjdbsiyjJGREVgslh13NzU1hf7+fui6jra2NlitVhBCQCmlo6OjoYGBASWbzX5BKKW4cuWKhRDyk67rJ4LBIFNRUbEeaHZ2FpFIBDabDS0tLSgqKipkiqGhITx58gTBYBBWq3XdZ25uDpFIhLIsO8jzfPuFCxeekTt37rQCuAqgfmVlBfF4HOXl5Thy5Ah4/sXgUUoRj8chyzIaGhoAALFYDB6PB36/H4S8OAH5fB4PHjzA/Pw8/H4/SkpKACAB4CPW6/XeqKysrOI4rpjnedjtdmSzWUSjURgMBgiCAEIIrFYrHA4HxsfHsbi4iNbWVtjt9nWILMsYGhpCeXk5ampqYDQaC3AyPDxcSy5evPg2IaTL6XTO+3y+NkIIAwCKoiCRSEBVVTQ1Ne3Yo0wmg+HhYXAcB5/PB4PBUJBoMpkclGW5lFJ6mVBKIYpiMYDLHMedCgQCnCAI/oL1wsICEokEHA4H6uvr1ydQ13WMjY1hamoKPp8PgiBshE/ev38/oyjKLwA+lyTp+abbWxTFOgDfCIKAQCAQ4DiutNCjdDqNp0+fIhAIAABGRkZQWVkJl8u1Xj5N01Zjsdjw3NwcBfCxJEl/FmL/6z0SRZEAeJ8QIvp8vsWqqqqWgpbL5RCPxwEAfr9//awAwPT0dDgejxfput4D4FtJkjYF3vGFFUWxHMCXRqPxcDAYtBYXF1dtZ5fNZmcikcijbDY7DuBTSZLmt7Pb9c8gimIbIeQrm82Wqaura2EYxggAlFI1Ho8PTk9PmymlnZIkhV4WZ0+/IFEUOQCdDMO8V19fn2NZ1hCLxaimaTcAdEuSpO4WY1//OlEUnQC+BkABfCJJ0qO9+v4NmO9xnZob3WcAAAAASUVORK5CYII=);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAbrwAAG68BXhqRHAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAArPSURBVGiB3Zp7TFvXHce/916/eBhCDInJwDjGBhvjQHi5SclaKRL5Z1Wl/rEq/WNr11TJmkpMw900pLVrplJ1cadFarp0zdZmmpZpf3SqNrUKfSnKgwI2sQPGBmNjAsUOxCW8bGzfe8/+SEAkMfa1A5m075/2+f3O+Z7X595zLkUIwf+T6EdRSWdnp7izs1P8KOqitnqE3n///QMajeYZAPD7/R8fPXr00lbWt2WGTp48qdRoNC/s2bNHXVhYyALA/Py86Pr16wG/3//hq6++GtqKejfdUGdnJ6XT6Q4bDIZWjUaTNLnf76fcbvdlr9d7vqura1MbsKmGTp8+XadWqw/v3bu3UCQS8anKsixLX7t2bT4QCJw/fvy4c7PasCmGTpw4Ia+qqnrRZDIZSkpK2ExiZ2dnRYODg+7R0dE/v/baa4sP25aHNnT27Nkf6HS6QwaD4aF2TLfbzXu93gtHjhz5z8PkydrQqVOnKtVq9Y/q6uqUubm5GY3KRopEIiKn0xkKBAJ/bW9v92WTI2NDnZ2dYoPB8ILRaGwoKyvjsqk0naamphiXyzXgdrs/7OrqSmQSm5GhM2fOHNBoNM/U1dVJKYoSFEgIEcVisWYAkEql/RRFCRpNQgjldDpjfr//42PHjglmlyBDJ0+eVO7evfsndXV1FatMEaJEIqGOx+MHCCFyAKAoalEikVwSi8UBoTnm5+dFTqdzYnx8/C9C2JXS0CpT9Hr9gcrKypTb8HrxPJ+/srJygOf53cn+p2l6XCaTXaJpekloTp/PR3s8nkvp2LWhoXfffbderVYfbmhoKEjHlPVtjcVidSzLNhFCUj67URSVEIlENqlU6gQgKD/LsvTAwMBCIBA4/8orrziS5r3f0IkTJ+Q6ne6IyWQy7NixQ/CCZFm2NB6PP8Hz/HahMQBA0/R3EonkokgkCgqNmZmZEQ8ODrq9Xu/Z+9l1j6EPPvjgKZ1Od6impoYSmpzneVksFtvHcZxBaEwyMQzjlkqlPTRNrwiNGR4eJl6v98JLL73079XfKEIITp06VVlRUfHj+vr6nZkwJR6P6xOJxH5CiCxTA8lEUdSKWCy+KpFIPEJjIpGIyOFw3JyYmDjX3t7uo86dO3fUaDQ2lJeXCzbCcdz2WCz2BM/zpdk1PbVomg5KpdKLDMN8JzRmcnJS5HK5Bhi9Xv9RcXHx7V27dqUd6rtMMcfj8YOEkIKHa3bKeuQsy9bwPC9mGCZEUVTaTWNsbKzQbrc/RXV0dBAAMYVCcfnpp5+eKC4uTmrsfqY8KqVj161bt2SffPJJRTgcbgUgZVpbW3sIIQei0Wij0+ksmZubW9DpdEsUdWdf4Hk+PxqNHmRZtgWA9NFZWZOU4zgdy7LFd0crDgCEEHz66aelX3zxxfcjkUg9gAmapg8zV65c8fX09PwpHo/zhJC22dnZ2oGBARQUFCwVFBTUxOPxQ4QQxf/AyD0ihBSxLFtDCCFerzdy/vz5PcFg8CAhRAqgSy6XP/fmm2+O3LNtd3R0VFEU9R6AgyKRiNfr9fS+ffsgFj+S8420SiQS6Onpgcfj4VmWpQF8SQh5+Z133hldLSNaH/Dss8+GGYYJ3Lhxg9jtdnpoaAiTk5NoampCdXX1IzewXiMjI7DZbJifn4dMJqPNZjNRqVQBjuPC68utjhA1MDDwPIDfASgG7vSGw+HA2NgYAEClUmH//v0oKip6pEbm5uZw9epV3LhxAwCg1WpRX1+/ftbcAvCLhoaGjwAQyuFwGDmOOwOgNVnCcDiMvr4+zM3NQSaTwWg0orm5GTS9tUd6PM+jv78fLpcLKysrKCoqQktLCxSKDZfzZYZhjjFarfYfKpWqmabppAslNzcXWq0WMpkMwWAQU1NTCAQCyM/Px7Zt27bEzMTEBD7//HP4fD5QFIWGhgaYzWbk5uZuGMNxXPHXX39tYkwm07nh4eGZ3Nxcz/bt27+XrDBFUVAoFNBoNIhEIggGg/D5fLh9+zaUSuWmbRqRSAQXL15EX18flpeXoVKp8OSTT0KpVGIVI8nk8/n6uru7xYuLi3WrHDr07bffmvx+f295eTktkUiSwlMsFkOlUqGkpAQzMzMIBoPwer0AAKVS+VBmHA4HvvrqK4RCIeTl5aG1tRU1NTUpO2t5eXn6s88+Gx4fHzcDmKVp+jBFCMEbb7whW1xc/BWAXwJgKysrbS0tLY9TFCXaKBnP8xgaGoLb7QbHcSgtLcW+ffsyNhYKhdDT04NgMAiGYWAwGFBbW5tyjRJC2L6+vis+n68Jd3bqt+Vy+Vuvv/76yoYcysvLi5nNZmm6Bi4sLMBmsyEUCkEsFkOv1+Oxxx5LOw0TiQS++eYbeDweJBIJKJVKNDU1oaAg9SNiKBRCb28vu7y8LEISDt1jqLu7ezuAt0Oh0IsjIyNUPB5HeXk5mpubIZWmfuqZmJiA3W7HysoKCgsLU7LrPqagsbERFRUVKfPHYjH09/djcnISEokE1dXVUCqV/wLQ3tbWNvmAoe7u7ucBnMRdDrEsC6/Xu5bAZDKhqqoq5eJMxy4BTHlAhBCMjo5icHAQqx2s0+kgEq2thiUAvwFwqq2tjaUuXLhQA+CPAL6fLOHCwgJcLhcWFxeFsADAg+yqra0FAAwNDQllygN55HI5jEZjqil5HcBPmerq6r/t2LFjL8MwOclKSaVSlJWVQSKRIBQKwefzIRqNYufOnRsu3GTsmp6eFswUlmVht9ths9mQSCRQVVUFo9EImWzjF2OO4+ROp1NPdXR0JAAsaLVat0ajeXzDCNyZxx6PBzdv3kROTg727t0LtVqdKgTRaBR2ux0A0NjYiJycpP22pkAggGvXrq11ml6vT7t+p6en+10uVykhpIzq6OhoA/AegEqxWOxsamrKl8vllakShMNhDA8Pr1VqNpuRn5+fstJ0WlpaQm9v71pn1dTUpJ2S0Wh02mazTUajUTMAH4CXKUIILBaLDMAqh+iSkpIre/bsaWEYZsN5wfM8/H4/AoEAKIqCwWCAyWRKuWkkEyEEg4ODcLvdIIRArVZDo9Gk5ZDb7b4yNTW1xiEAb1mt1ns5ZLFYqnBntA5SFDVlNBqDu3btak7VoOXlZXg8HoTDYeTn56OlpUUwXEOhEPr6+rC0tASFQgG9Xo+8vLyUMeFweNDhcEg5jqsC8CWAl61Wa3IOrTP2HIDfA9iZk5PT29TUVJ6Tk7MrXeNGRkYghF0bMCWlkUQiMWe324cWFhZaAcwA+LnVav37/eU2PAq2WCyFALoAHAMQLSsrsxkMhpSPQ+nYJYApSeX3+y+PjY3VANgG4AyATqvVOp+sbNrbB4vF0nw3SQPDMKP19fUxhUJhShWTjF0AMmEKAGBxcdFns9mWEolEHYABAMesVmt/qhhB1ykWi4UBcBzAbwHICwoKLjc2NtaKxeINX18JIZicnMTY2Bh4/s6xGk3T0Gq1KC8vT7l5cBwXuX79et/s7OzjAKIAfg3gtNVqTXvBltGFl8ViKQXwBwA/BPCdVqsd1mg0Sd90V7XKLgAZMwXAPwH8zGq1Cj7Iz+qO1WKxZMyudErGFKvV2p1pnqwvjbNhVzKlYko27Xroa/1s2LWqdEzJRpv2JUkm7BLKlGy0qZ/GCGFXJkzJRlvyNVYydkkkktxMmZKNtuzzsvvZBYADEEEGTMlGW/4B4Dp2ARkyJRv9F9vsxWD/43R9AAAAAElFTkSuQmCC);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,.7);margin:0}.leaflet-control-attribution{padding:0 5px;color:#333}.leaflet-control-scale-line{color:#333;border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;font-size:11px;white-space:nowrap;overflow:hidden;-moz-box-sizing:content-box;box-sizing:content-box;background:#fff;background:rgba(255,255,255,.5)}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-container .leaflet-control-attribution,.leaflet-container .leaflet-control-scale{font-size:11px}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 19px;line-height:1.4}.leaflet-popup-content p{margin:18px 0}.leaflet-popup-tip-container{margin:0 auto;width:40px;height:20px;position:relative;overflow:hidden}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;padding:4px 4px 0 0;text-align:center;width:18px;height:14px;font:16px/14px Tahoma,Verdana,sans-serif;color:#c3c3c3;text-decoration:none;font-weight:700;background:0 0}.leaflet-container a.leaflet-popup-close-button:hover{color:#999}.leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}.leaflet-oldie .leaflet-popup-content-wrapper{zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto}.leaflet-oldie .leaflet-popup-tip-container{margin-top:-1px}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-container .leaflet-control-search{position:relative;float:left;background:#fff;color:#1978cf;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;background-color:rgba(255,255,255,.8);z-index:1000;box-shadow:0 1px 7px rgba(0,0,0,.65);margin-left:10px;margin-top:10px}.leaflet-control-search.search-exp{box-shadow:0 1px 7px #999;background:#fff}.leaflet-control-search .search-input{display:block;float:left;background:#fff;border:1px solid #666;border-radius:2px;height:18px;padding:0 18px 0 2px;margin:3px 0 3px 3px}.leaflet-control-search.search-load .search-input{background:url(data:image/gif;base64,R0lGODlhEAAQAPQAAP///5mZmfj4+M/Pz/Ly8rS0tMnJyZmZmbu7u6enp93d3eTk5KCgoNfX15qamq6ursLCwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAAKAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAAQAAAFdyAgAgIJIeWoAkRCCMdBkKtIHIngyMKsErPBYbADpkSCwhDmQCBethRB6Vj4kFCkQPG4IlWDgrNRIwnO4UKBXDufzQvDMaoSDBgFb886MiQadgNABAokfCwzBA8LCg0Egl8jAggGAA1kBIA1BAYzlyILczULC2UhACH5BAAKAAEALAAAAAAQABAAAAV2ICACAmlAZTmOREEIyUEQjLKKxPHADhEvqxlgcGgkGI1DYSVAIAWMx+lwSKkICJ0QsHi9RgKBwnVTiRQQgwF4I4UFDQQEwi6/3YSGWRRmjhEETAJfIgMFCnAKM0KDV4EEEAQLiF18TAYNXDaSe3x6mjidN1s3IQAh+QQACgACACwAAAAAEAAQAAAFeCAgAgLZDGU5jgRECEUiCI+yioSDwDJyLKsXoHFQxBSHAoAAFBhqtMJg8DgQBgfrEsJAEAg4YhZIEiwgKtHiMBgtpg3wbUZXGO7kOb1MUKRFMysCChAoggJCIg0GC2aNe4gqQldfL4l/Ag1AXySJgn5LcoE3QXI3IQAh+QQACgADACwAAAAAEAAQAAAFdiAgAgLZNGU5joQhCEjxIssqEo8bC9BRjy9Ag7GILQ4QEoE0gBAEBcOpcBA0DoxSK/e8LRIHn+i1cK0IyKdg0VAoljYIg+GgnRrwVS/8IAkICyosBIQpBAMoKy9dImxPhS+GKkFrkX+TigtLlIyKXUF+NjagNiEAIfkEAAoABAAsAAAAABAAEAAABWwgIAICaRhlOY4EIgjH8R7LKhKHGwsMvb4AAy3WODBIBBKCsYA9TjuhDNDKEVSERezQEL0WrhXucRUQGuik7bFlngzqVW9LMl9XWvLdjFaJtDFqZ1cEZUB0dUgvL3dgP4WJZn4jkomWNpSTIyEAIfkEAAoABQAsAAAAABAAEAAABX4gIAICuSxlOY6CIgiD8RrEKgqGOwxwUrMlAoSwIzAGpJpgoSDAGifDY5kopBYDlEpAQBwevxfBtRIUGi8xwWkDNBCIwmC9Vq0aiQQDQuK+VgQPDXV9hCJjBwcFYU5pLwwHXQcMKSmNLQcIAExlbH8JBwttaX0ABAcNbWVbKyEAIfkEAAoABgAsAAAAABAAEAAABXkgIAICSRBlOY7CIghN8zbEKsKoIjdFzZaEgUBHKChMJtRwcWpAWoWnifm6ESAMhO8lQK0EEAV3rFopIBCEcGwDKAqPh4HUrY4ICHH1dSoTFgcHUiZjBhAJB2AHDykpKAwHAwdzf19KkASIPl9cDgcnDkdtNwiMJCshACH5BAAKAAcALAAAAAAQABAAAAV3ICACAkkQZTmOAiosiyAoxCq+KPxCNVsSMRgBsiClWrLTSWFoIQZHl6pleBh6suxKMIhlvzbAwkBWfFWrBQTxNLq2RG2yhSUkDs2b63AYDAoJXAcFRwADeAkJDX0AQCsEfAQMDAIPBz0rCgcxky0JRWE1AmwpKyEAIfkEAAoACAAsAAAAABAAEAAABXkgIAICKZzkqJ4nQZxLqZKv4NqNLKK2/Q4Ek4lFXChsg5ypJjs1II3gEDUSRInEGYAw6B6zM4JhrDAtEosVkLUtHA7RHaHAGJQEjsODcEg0FBAFVgkQJQ1pAwcDDw8KcFtSInwJAowCCA6RIwqZAgkPNgVpWndjdyohACH5BAAKAAkALAAAAAAQABAAAAV5ICACAimc5KieLEuUKvm2xAKLqDCfC2GaO9eL0LABWTiBYmA06W6kHgvCqEJiAIJiu3gcvgUsscHUERm+kaCxyxa+zRPk0SgJEgfIvbAdIAQLCAYlCj4DBw0IBQsMCjIqBAcPAooCBg9pKgsJLwUFOhCZKyQDA3YqIQAh+QQACgAKACwAAAAAEAAQAAAFdSAgAgIpnOSonmxbqiThCrJKEHFbo8JxDDOZYFFb+A41E4H4OhkOipXwBElYITDAckFEOBgMQ3arkMkUBdxIUGZpEb7kaQBRlASPg0FQQHAbEEMGDSVEAA1QBhAED1E0NgwFAooCDWljaQIQCE5qMHcNhCkjIQAh+QQACgALACwAAAAAEAAQAAAFeSAgAgIpnOSoLgxxvqgKLEcCC65KEAByKK8cSpA4DAiHQ/DkKhGKh4ZCtCyZGo6F6iYYPAqFgYy02xkSaLEMV34tELyRYNEsCQyHlvWkGCzsPgMCEAY7Cg04Uk48LAsDhRA8MVQPEF0GAgqYYwSRlycNcWskCkApIyEAOwAAAAAAAAAAAA==) no-repeat center right #fff}.leaflet-control-search.search-load .search-cancel{visibility:hidden}.leaflet-control-search .search-cancel{display:block;width:22px;height:18px;position:absolute;right:22px;margin:3px 0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABGCAYAAADMz7TxAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqdU3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAouGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIVSOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5UyBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwBgVYFSLALAwgCgrEAiLgTArgGAWbYyRwKAvQUAdo5YkA9AYACAmUIszAAgOAIAQx4TzQMgTAOgMNK/4KlfcIW4SAEAwMuVzZdL0jMUuJXQGnfy8ODiIeLCbLFCYRcpEGYJ5CKcl5sjE0jnA0zODAAAGvnRwf44P5Dn5uTh5mbnbO/0xaL+a/BvIj4h8d/+vIwCBAAQTs/v2l/l5dYDcMcBsHW/a6lbANpWAGjf+V0z2wmgWgrQevmLeTj8QB6eoVDIPB0cCgsL7SViob0w44s+/zPhb+CLfvb8QB7+23rwAHGaQJmtwKOD/XFhbnauUo7nywRCMW735yP+x4V//Y4p0eI0sVwsFYrxWIm4UCJNx3m5UpFEIcmV4hLpfzLxH5b9CZN3DQCshk/ATrYHtctswH7uAQKLDljSdgBAfvMtjBoLkQAQZzQyefcAAJO/+Y9AKwEAzZek4wAAvOgYXKiUF0zGCAAARKCBKrBBBwzBFKzADpzBHbzAFwJhBkRADCTAPBBCBuSAHAqhGJZBGVTAOtgEtbADGqARmuEQtMExOA3n4BJcgetwFwZgGJ7CGLyGCQRByAgTYSE6iBFijtgizggXmY4EImFINJKApCDpiBRRIsXIcqQCqUJqkV1II/ItchQ5jVxA+pDbyCAyivyKvEcxlIGyUQPUAnVAuagfGorGoHPRdDQPXYCWomvRGrQePYC2oqfRS+h1dAB9io5jgNExDmaM2WFcjIdFYIlYGibHFmPlWDVWjzVjHVg3dhUbwJ5h7wgkAouAE+wIXoQQwmyCkJBHWExYQ6gl7CO0EroIVwmDhDHCJyKTqE+0JXoS+cR4YjqxkFhGrCbuIR4hniVeJw4TX5NIJA7JkuROCiElkDJJC0lrSNtILaRTpD7SEGmcTCbrkG3J3uQIsoCsIJeRt5APkE+S+8nD5LcUOsWI4kwJoiRSpJQSSjVlP+UEpZ8yQpmgqlHNqZ7UCKqIOp9aSW2gdlAvU4epEzR1miXNmxZDy6Qto9XQmmlnafdoL+l0ugndgx5Fl9CX0mvoB+nn6YP0dwwNhg2Dx0hiKBlrGXsZpxi3GS+ZTKYF05eZyFQw1zIbmWeYD5hvVVgq9ip8FZHKEpU6lVaVfpXnqlRVc1U/1XmqC1SrVQ+rXlZ9pkZVs1DjqQnUFqvVqR1Vu6k2rs5Sd1KPUM9RX6O+X/2C+mMNsoaFRqCGSKNUY7fGGY0hFsYyZfFYQtZyVgPrLGuYTWJbsvnsTHYF+xt2L3tMU0NzqmasZpFmneZxzQEOxrHg8DnZnErOIc4NznstAy0/LbHWaq1mrX6tN9p62r7aYu1y7Rbt69rvdXCdQJ0snfU6bTr3dQm6NrpRuoW623XP6j7TY+t56Qn1yvUO6d3RR/Vt9KP1F+rv1u/RHzcwNAg2kBlsMThj8MyQY+hrmGm40fCE4agRy2i6kcRoo9FJoye4Ju6HZ+M1eBc+ZqxvHGKsNN5l3Gs8YWJpMtukxKTF5L4pzZRrmma60bTTdMzMyCzcrNisyeyOOdWca55hvtm82/yNhaVFnMVKizaLx5balnzLBZZNlvesmFY+VnlW9VbXrEnWXOss623WV2xQG1ebDJs6m8u2qK2brcR2m23fFOIUjynSKfVTbtox7PzsCuya7AbtOfZh9iX2bfbPHcwcEh3WO3Q7fHJ0dcx2bHC866ThNMOpxKnD6VdnG2ehc53zNRemS5DLEpd2lxdTbaeKp26fesuV5RruutK10/Wjm7ub3K3ZbdTdzD3Ffav7TS6bG8ldwz3vQfTw91jicczjnaebp8LzkOcvXnZeWV77vR5Ps5wmntYwbcjbxFvgvct7YDo+PWX6zukDPsY+Ap96n4e+pr4i3z2+I37Wfpl+B/ye+zv6y/2P+L/hefIW8U4FYAHBAeUBvYEagbMDawMfBJkEpQc1BY0FuwYvDD4VQgwJDVkfcpNvwBfyG/ljM9xnLJrRFcoInRVaG/owzCZMHtYRjobPCN8Qfm+m+UzpzLYIiOBHbIi4H2kZmRf5fRQpKjKqLupRtFN0cXT3LNas5Fn7Z72O8Y+pjLk722q2cnZnrGpsUmxj7Ju4gLiquIF4h/hF8ZcSdBMkCe2J5MTYxD2J43MC52yaM5zkmlSWdGOu5dyiuRfm6c7Lnnc8WTVZkHw4hZgSl7I/5YMgQlAvGE/lp25NHRPyhJuFT0W+oo2iUbG3uEo8kuadVpX2ON07fUP6aIZPRnXGMwlPUit5kRmSuSPzTVZE1t6sz9lx2S05lJyUnKNSDWmWtCvXMLcot09mKyuTDeR55m3KG5OHyvfkI/lz89sVbIVM0aO0Uq5QDhZML6greFsYW3i4SL1IWtQz32b+6vkjC4IWfL2QsFC4sLPYuHhZ8eAiv0W7FiOLUxd3LjFdUrpkeGnw0n3LaMuylv1Q4lhSVfJqedzyjlKD0qWlQyuCVzSVqZTJy26u9Fq5YxVhlWRV72qX1VtWfyoXlV+scKyorviwRrjm4ldOX9V89Xlt2treSrfK7etI66Trbqz3Wb+vSr1qQdXQhvANrRvxjeUbX21K3nShemr1js20zcrNAzVhNe1bzLas2/KhNqP2ep1/XctW/a2rt77ZJtrWv913e/MOgx0VO97vlOy8tSt4V2u9RX31btLugt2PGmIbur/mft24R3dPxZ6Pe6V7B/ZF7+tqdG9s3K+/v7IJbVI2jR5IOnDlm4Bv2pvtmne1cFoqDsJB5cEn36Z8e+NQ6KHOw9zDzd+Zf7f1COtIeSvSOr91rC2jbaA9ob3v6IyjnR1eHUe+t/9+7zHjY3XHNY9XnqCdKD3x+eSCk+OnZKeenU4/PdSZ3Hn3TPyZa11RXb1nQ8+ePxd07ky3X/fJ897nj13wvHD0Ivdi2yW3S609rj1HfnD94UivW2/rZffL7Vc8rnT0Tes70e/Tf/pqwNVz1/jXLl2feb3vxuwbt24m3Ry4Jbr1+Hb27Rd3Cu5M3F16j3iv/L7a/eoH+g/qf7T+sWXAbeD4YMBgz8NZD+8OCYee/pT/04fh0kfMR9UjRiONj50fHxsNGr3yZM6T4aeypxPPyn5W/3nrc6vn3/3i+0vPWPzY8Av5i8+/rnmp83Lvq6mvOscjxx+8znk98ab8rc7bfe+477rfx70fmSj8QP5Q89H6Y8en0E/3Pud8/vwv94Tz+4A5JREAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAAHdElNRQfdCR0OKzSQTWy0AAAEPElEQVRYw+2XXWhbZRjHf8vH7I6b2eqihLItXYgKTfuCClurOMUJboIyGV75gkLdja43IujFELxwV8KYV0KFwXsh+AHiTZkoohYUHGM7S4c2ZongPFvjUk+1J93apN48iYf0JP0wiBd5IOTkPe/7f77+z/mfwP/dNrW5dxtwF9Ajv6vAdWB+vYBRYBA4AowAO2XfPHAe+BSYBCprjfo54FvgJnALmAGuAX8BNaAAvAFsCzoc9l2HgAPAW8CDwI/AOHAG+Ay4CGwG7gMGABe4IE4CbSfwvkQ1CTwFRJoc3g98ACzKnky7VB8DikAZGJWmBNlBib4CvNzch5DvejewHbgCfCM1DLLvgB+k+7t9LFgBGBVvLrDQJpN5YK7pTCDgonzvaNVBsW2yx38mEPBnYBZIAU+I9yDejgD7pIZXAK+V5+3S5YpQ5Blgqy+lHmA/8JFMzTlgqB0PF6TDGaHHPiAJ9Ar3jgCvSJdD8imsxsUQcBj4HPhDanTTNzUeUJL1GjANvADcHhQhwLLU5ZwcXJauX5NoPpGULWCvDEMG+FMiXW5H9ChwJ9AvjUrI6G0CHgbOSuQ14Cd5Bvwre1RKUxNevkrTrK7XvpZausBvwMd0rWsd1mWtdaAuG2PWp8ta6zXpsjGmspqMAqCUOgq8KbO5R2baAnaJg0eAqFLqom3bt1pGqLUOyeZ3AAVclmiyMmJ7RVr3A78DbwPjxpglP6B/lnsBLel+D5wEztYPiMOvgNeAo8Dzos3ZVpoyCDwurxxngC/83o0xNWPMeZGJPPAAcEBrvTZdNsb8N7ostOmcLmutN6bLwsdmsBW6bIzxWgFOAV+KbrwIHNZab60XXWvdI0CjIq+XpZ7BxLZte0EpFajLSqmWuqyUumDbdi1wUpRSvwIOcDeQBoaBp4FnhfRxachmqfO9gKuUytm2vbgC0LbtZaXUhnRZIl1u97SJAnfIJyRvDTeksw8BJ0RKo0AOOGGM+TDShm+LAnAj4Pak1vqkcPCgvATs6upy1zopo8VioW+2XD7uuu4hz/OGgAXLsqZjsdjEjt7ed5PJ/qtrBsxmLx1zHOeU53lbgg5YllVJJBJjmczg+KqA2eylY78Ui+8tVatt04qEw+xJJl8KAg3503Qc51QdLB6PrwCqry1VqziOc7pYLPS1BJwtl8fqacbjcYaHRxgY+Off68BAhuHhkQao53lbZsvl4yuir1+4rvtk/bpUKpHP50mlUo2NqVSKfD5PqVTCd+YQ8HogoOd59/hvTE1lG0AA+Xy+sdbqTLOmdMQiPjpMu3NzQ/6a1dP0R+qP0rKs6ZaAsVhsog4Yj8cbYH6AVCrFzMz1Rh1jsdhESx4Wi4W+XC6X83fa34DmNcuyKul0Ot08NY0aJpP9VxOJxFgkHG50utnqa5FwmEQiMRY0gkGjN+o4zumOjF4nHg5d69oG7G9LxrhhWXdE7gAAAABJRU5ErkJggg==) no-repeat 0 -46px;text-decoration:none;opacity:.8}.leaflet-control-search .search-cancel:hover{opacity:1}.leaflet-control-search .search-cancel span{display:none;font-size:18px;line-height:20px;color:#ccc;font-weight:700}.leaflet-control-search .search-cancel:hover span{color:#aaa}.leaflet-control-search .search-button{display:block;float:left;width:26px;height:26px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABGCAYAAADMz7TxAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqdU3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAouGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIVSOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5UyBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwBgVYFSLALAwgCgrEAiLgTArgGAWbYyRwKAvQUAdo5YkA9AYACAmUIszAAgOAIAQx4TzQMgTAOgMNK/4KlfcIW4SAEAwMuVzZdL0jMUuJXQGnfy8ODiIeLCbLFCYRcpEGYJ5CKcl5sjE0jnA0zODAAAGvnRwf44P5Dn5uTh5mbnbO/0xaL+a/BvIj4h8d/+vIwCBAAQTs/v2l/l5dYDcMcBsHW/a6lbANpWAGjf+V0z2wmgWgrQevmLeTj8QB6eoVDIPB0cCgsL7SViob0w44s+/zPhb+CLfvb8QB7+23rwAHGaQJmtwKOD/XFhbnauUo7nywRCMW735yP+x4V//Y4p0eI0sVwsFYrxWIm4UCJNx3m5UpFEIcmV4hLpfzLxH5b9CZN3DQCshk/ATrYHtctswH7uAQKLDljSdgBAfvMtjBoLkQAQZzQyefcAAJO/+Y9AKwEAzZek4wAAvOgYXKiUF0zGCAAARKCBKrBBBwzBFKzADpzBHbzAFwJhBkRADCTAPBBCBuSAHAqhGJZBGVTAOtgEtbADGqARmuEQtMExOA3n4BJcgetwFwZgGJ7CGLyGCQRByAgTYSE6iBFijtgizggXmY4EImFINJKApCDpiBRRIsXIcqQCqUJqkV1II/ItchQ5jVxA+pDbyCAyivyKvEcxlIGyUQPUAnVAuagfGorGoHPRdDQPXYCWomvRGrQePYC2oqfRS+h1dAB9io5jgNExDmaM2WFcjIdFYIlYGibHFmPlWDVWjzVjHVg3dhUbwJ5h7wgkAouAE+wIXoQQwmyCkJBHWExYQ6gl7CO0EroIVwmDhDHCJyKTqE+0JXoS+cR4YjqxkFhGrCbuIR4hniVeJw4TX5NIJA7JkuROCiElkDJJC0lrSNtILaRTpD7SEGmcTCbrkG3J3uQIsoCsIJeRt5APkE+S+8nD5LcUOsWI4kwJoiRSpJQSSjVlP+UEpZ8yQpmgqlHNqZ7UCKqIOp9aSW2gdlAvU4epEzR1miXNmxZDy6Qto9XQmmlnafdoL+l0ugndgx5Fl9CX0mvoB+nn6YP0dwwNhg2Dx0hiKBlrGXsZpxi3GS+ZTKYF05eZyFQw1zIbmWeYD5hvVVgq9ip8FZHKEpU6lVaVfpXnqlRVc1U/1XmqC1SrVQ+rXlZ9pkZVs1DjqQnUFqvVqR1Vu6k2rs5Sd1KPUM9RX6O+X/2C+mMNsoaFRqCGSKNUY7fGGY0hFsYyZfFYQtZyVgPrLGuYTWJbsvnsTHYF+xt2L3tMU0NzqmasZpFmneZxzQEOxrHg8DnZnErOIc4NznstAy0/LbHWaq1mrX6tN9p62r7aYu1y7Rbt69rvdXCdQJ0snfU6bTr3dQm6NrpRuoW623XP6j7TY+t56Qn1yvUO6d3RR/Vt9KP1F+rv1u/RHzcwNAg2kBlsMThj8MyQY+hrmGm40fCE4agRy2i6kcRoo9FJoye4Ju6HZ+M1eBc+ZqxvHGKsNN5l3Gs8YWJpMtukxKTF5L4pzZRrmma60bTTdMzMyCzcrNisyeyOOdWca55hvtm82/yNhaVFnMVKizaLx5balnzLBZZNlvesmFY+VnlW9VbXrEnWXOss623WV2xQG1ebDJs6m8u2qK2brcR2m23fFOIUjynSKfVTbtox7PzsCuya7AbtOfZh9iX2bfbPHcwcEh3WO3Q7fHJ0dcx2bHC866ThNMOpxKnD6VdnG2ehc53zNRemS5DLEpd2lxdTbaeKp26fesuV5RruutK10/Wjm7ub3K3ZbdTdzD3Ffav7TS6bG8ldwz3vQfTw91jicczjnaebp8LzkOcvXnZeWV77vR5Ps5wmntYwbcjbxFvgvct7YDo+PWX6zukDPsY+Ap96n4e+pr4i3z2+I37Wfpl+B/ye+zv6y/2P+L/hefIW8U4FYAHBAeUBvYEagbMDawMfBJkEpQc1BY0FuwYvDD4VQgwJDVkfcpNvwBfyG/ljM9xnLJrRFcoInRVaG/owzCZMHtYRjobPCN8Qfm+m+UzpzLYIiOBHbIi4H2kZmRf5fRQpKjKqLupRtFN0cXT3LNas5Fn7Z72O8Y+pjLk722q2cnZnrGpsUmxj7Ju4gLiquIF4h/hF8ZcSdBMkCe2J5MTYxD2J43MC52yaM5zkmlSWdGOu5dyiuRfm6c7Lnnc8WTVZkHw4hZgSl7I/5YMgQlAvGE/lp25NHRPyhJuFT0W+oo2iUbG3uEo8kuadVpX2ON07fUP6aIZPRnXGMwlPUit5kRmSuSPzTVZE1t6sz9lx2S05lJyUnKNSDWmWtCvXMLcot09mKyuTDeR55m3KG5OHyvfkI/lz89sVbIVM0aO0Uq5QDhZML6greFsYW3i4SL1IWtQz32b+6vkjC4IWfL2QsFC4sLPYuHhZ8eAiv0W7FiOLUxd3LjFdUrpkeGnw0n3LaMuylv1Q4lhSVfJqedzyjlKD0qWlQyuCVzSVqZTJy26u9Fq5YxVhlWRV72qX1VtWfyoXlV+scKyorviwRrjm4ldOX9V89Xlt2treSrfK7etI66Trbqz3Wb+vSr1qQdXQhvANrRvxjeUbX21K3nShemr1js20zcrNAzVhNe1bzLas2/KhNqP2ep1/XctW/a2rt77ZJtrWv913e/MOgx0VO97vlOy8tSt4V2u9RX31btLugt2PGmIbur/mft24R3dPxZ6Pe6V7B/ZF7+tqdG9s3K+/v7IJbVI2jR5IOnDlm4Bv2pvtmne1cFoqDsJB5cEn36Z8e+NQ6KHOw9zDzd+Zf7f1COtIeSvSOr91rC2jbaA9ob3v6IyjnR1eHUe+t/9+7zHjY3XHNY9XnqCdKD3x+eSCk+OnZKeenU4/PdSZ3Hn3TPyZa11RXb1nQ8+ePxd07ky3X/fJ897nj13wvHD0Ivdi2yW3S609rj1HfnD94UivW2/rZffL7Vc8rnT0Tes70e/Tf/pqwNVz1/jXLl2feb3vxuwbt24m3Ry4Jbr1+Hb27Rd3Cu5M3F16j3iv/L7a/eoH+g/qf7T+sWXAbeD4YMBgz8NZD+8OCYee/pT/04fh0kfMR9UjRiONj50fHxsNGr3yZM6T4aeypxPPyn5W/3nrc6vn3/3i+0vPWPzY8Av5i8+/rnmp83Lvq6mvOscjxx+8znk98ab8rc7bfe+477rfx70fmSj8QP5Q89H6Y8en0E/3Pud8/vwv94Tz+4A5JREAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAAHdElNRQfdCR0OKzSQTWy0AAAEPElEQVRYw+2XXWhbZRjHf8vH7I6b2eqihLItXYgKTfuCClurOMUJboIyGV75gkLdja43IujFELxwV8KYV0KFwXsh+AHiTZkoohYUHGM7S4c2ZongPFvjUk+1J93apN48iYf0JP0wiBd5IOTkPe/7f77+z/mfwP/dNrW5dxtwF9Ajv6vAdWB+vYBRYBA4AowAO2XfPHAe+BSYBCprjfo54FvgJnALmAGuAX8BNaAAvAFsCzoc9l2HgAPAW8CDwI/AOHAG+Ay4CGwG7gMGABe4IE4CbSfwvkQ1CTwFRJoc3g98ACzKnky7VB8DikAZGJWmBNlBib4CvNzch5DvejewHbgCfCM1DLLvgB+k+7t9LFgBGBVvLrDQJpN5YK7pTCDgonzvaNVBsW2yx38mEPBnYBZIAU+I9yDejgD7pIZXAK+V5+3S5YpQ5Blgqy+lHmA/8JFMzTlgqB0PF6TDGaHHPiAJ9Ar3jgCvSJdD8imsxsUQcBj4HPhDanTTNzUeUJL1GjANvADcHhQhwLLU5ZwcXJauX5NoPpGULWCvDEMG+FMiXW5H9ChwJ9AvjUrI6G0CHgbOSuQ14Cd5Bvwre1RKUxNevkrTrK7XvpZausBvwMd0rWsd1mWtdaAuG2PWp8ta6zXpsjGmspqMAqCUOgq8KbO5R2baAnaJg0eAqFLqom3bt1pGqLUOyeZ3AAVclmiyMmJ7RVr3A78DbwPjxpglP6B/lnsBLel+D5wEztYPiMOvgNeAo8Dzos3ZVpoyCDwurxxngC/83o0xNWPMeZGJPPAAcEBrvTZdNsb8N7ostOmcLmutN6bLwsdmsBW6bIzxWgFOAV+KbrwIHNZab60XXWvdI0CjIq+XpZ7BxLZte0EpFajLSqmWuqyUumDbdi1wUpRSvwIOcDeQBoaBp4FnhfRxachmqfO9gKuUytm2vbgC0LbtZaXUhnRZIl1u97SJAnfIJyRvDTeksw8BJ0RKo0AOOGGM+TDShm+LAnAj4Pak1vqkcPCgvATs6upy1zopo8VioW+2XD7uuu4hz/OGgAXLsqZjsdjEjt7ed5PJ/qtrBsxmLx1zHOeU53lbgg5YllVJJBJjmczg+KqA2eylY78Ui+8tVatt04qEw+xJJl8KAg3503Qc51QdLB6PrwCqry1VqziOc7pYLPS1BJwtl8fqacbjcYaHRxgY+Off68BAhuHhkQao53lbZsvl4yuir1+4rvtk/bpUKpHP50mlUo2NqVSKfD5PqVTCd+YQ8HogoOd59/hvTE1lG0AA+Xy+sdbqTLOmdMQiPjpMu3NzQ/6a1dP0R+qP0rKs6ZaAsVhsog4Yj8cbYH6AVCrFzMz1Rh1jsdhESx4Wi4W+XC6X83fa34DmNcuyKul0Ot08NY0aJpP9VxOJxFgkHG50utnqa5FwmEQiMRY0gkGjN+o4zumOjF4nHg5d69oG7G9LxrhhWXdE7gAAAABJRU5ErkJggg==) no-repeat 2px 2px #fff;border-radius:4px}.leaflet-control-search .search-button:hover{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABGCAYAAADMz7TxAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqdU3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAouGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIVSOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5UyBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwBgVYFSLALAwgCgrEAiLgTArgGAWbYyRwKAvQUAdo5YkA9AYACAmUIszAAgOAIAQx4TzQMgTAOgMNK/4KlfcIW4SAEAwMuVzZdL0jMUuJXQGnfy8ODiIeLCbLFCYRcpEGYJ5CKcl5sjE0jnA0zODAAAGvnRwf44P5Dn5uTh5mbnbO/0xaL+a/BvIj4h8d/+vIwCBAAQTs/v2l/l5dYDcMcBsHW/a6lbANpWAGjf+V0z2wmgWgrQevmLeTj8QB6eoVDIPB0cCgsL7SViob0w44s+/zPhb+CLfvb8QB7+23rwAHGaQJmtwKOD/XFhbnauUo7nywRCMW735yP+x4V//Y4p0eI0sVwsFYrxWIm4UCJNx3m5UpFEIcmV4hLpfzLxH5b9CZN3DQCshk/ATrYHtctswH7uAQKLDljSdgBAfvMtjBoLkQAQZzQyefcAAJO/+Y9AKwEAzZek4wAAvOgYXKiUF0zGCAAARKCBKrBBBwzBFKzADpzBHbzAFwJhBkRADCTAPBBCBuSAHAqhGJZBGVTAOtgEtbADGqARmuEQtMExOA3n4BJcgetwFwZgGJ7CGLyGCQRByAgTYSE6iBFijtgizggXmY4EImFINJKApCDpiBRRIsXIcqQCqUJqkV1II/ItchQ5jVxA+pDbyCAyivyKvEcxlIGyUQPUAnVAuagfGorGoHPRdDQPXYCWomvRGrQePYC2oqfRS+h1dAB9io5jgNExDmaM2WFcjIdFYIlYGibHFmPlWDVWjzVjHVg3dhUbwJ5h7wgkAouAE+wIXoQQwmyCkJBHWExYQ6gl7CO0EroIVwmDhDHCJyKTqE+0JXoS+cR4YjqxkFhGrCbuIR4hniVeJw4TX5NIJA7JkuROCiElkDJJC0lrSNtILaRTpD7SEGmcTCbrkG3J3uQIsoCsIJeRt5APkE+S+8nD5LcUOsWI4kwJoiRSpJQSSjVlP+UEpZ8yQpmgqlHNqZ7UCKqIOp9aSW2gdlAvU4epEzR1miXNmxZDy6Qto9XQmmlnafdoL+l0ugndgx5Fl9CX0mvoB+nn6YP0dwwNhg2Dx0hiKBlrGXsZpxi3GS+ZTKYF05eZyFQw1zIbmWeYD5hvVVgq9ip8FZHKEpU6lVaVfpXnqlRVc1U/1XmqC1SrVQ+rXlZ9pkZVs1DjqQnUFqvVqR1Vu6k2rs5Sd1KPUM9RX6O+X/2C+mMNsoaFRqCGSKNUY7fGGY0hFsYyZfFYQtZyVgPrLGuYTWJbsvnsTHYF+xt2L3tMU0NzqmasZpFmneZxzQEOxrHg8DnZnErOIc4NznstAy0/LbHWaq1mrX6tN9p62r7aYu1y7Rbt69rvdXCdQJ0snfU6bTr3dQm6NrpRuoW623XP6j7TY+t56Qn1yvUO6d3RR/Vt9KP1F+rv1u/RHzcwNAg2kBlsMThj8MyQY+hrmGm40fCE4agRy2i6kcRoo9FJoye4Ju6HZ+M1eBc+ZqxvHGKsNN5l3Gs8YWJpMtukxKTF5L4pzZRrmma60bTTdMzMyCzcrNisyeyOOdWca55hvtm82/yNhaVFnMVKizaLx5balnzLBZZNlvesmFY+VnlW9VbXrEnWXOss623WV2xQG1ebDJs6m8u2qK2brcR2m23fFOIUjynSKfVTbtox7PzsCuya7AbtOfZh9iX2bfbPHcwcEh3WO3Q7fHJ0dcx2bHC866ThNMOpxKnD6VdnG2ehc53zNRemS5DLEpd2lxdTbaeKp26fesuV5RruutK10/Wjm7ub3K3ZbdTdzD3Ffav7TS6bG8ldwz3vQfTw91jicczjnaebp8LzkOcvXnZeWV77vR5Ps5wmntYwbcjbxFvgvct7YDo+PWX6zukDPsY+Ap96n4e+pr4i3z2+I37Wfpl+B/ye+zv6y/2P+L/hefIW8U4FYAHBAeUBvYEagbMDawMfBJkEpQc1BY0FuwYvDD4VQgwJDVkfcpNvwBfyG/ljM9xnLJrRFcoInRVaG/owzCZMHtYRjobPCN8Qfm+m+UzpzLYIiOBHbIi4H2kZmRf5fRQpKjKqLupRtFN0cXT3LNas5Fn7Z72O8Y+pjLk722q2cnZnrGpsUmxj7Ju4gLiquIF4h/hF8ZcSdBMkCe2J5MTYxD2J43MC52yaM5zkmlSWdGOu5dyiuRfm6c7Lnnc8WTVZkHw4hZgSl7I/5YMgQlAvGE/lp25NHRPyhJuFT0W+oo2iUbG3uEo8kuadVpX2ON07fUP6aIZPRnXGMwlPUit5kRmSuSPzTVZE1t6sz9lx2S05lJyUnKNSDWmWtCvXMLcot09mKyuTDeR55m3KG5OHyvfkI/lz89sVbIVM0aO0Uq5QDhZML6greFsYW3i4SL1IWtQz32b+6vkjC4IWfL2QsFC4sLPYuHhZ8eAiv0W7FiOLUxd3LjFdUrpkeGnw0n3LaMuylv1Q4lhSVfJqedzyjlKD0qWlQyuCVzSVqZTJy26u9Fq5YxVhlWRV72qX1VtWfyoXlV+scKyorviwRrjm4ldOX9V89Xlt2treSrfK7etI66Trbqz3Wb+vSr1qQdXQhvANrRvxjeUbX21K3nShemr1js20zcrNAzVhNe1bzLas2/KhNqP2ep1/XctW/a2rt77ZJtrWv913e/MOgx0VO97vlOy8tSt4V2u9RX31btLugt2PGmIbur/mft24R3dPxZ6Pe6V7B/ZF7+tqdG9s3K+/v7IJbVI2jR5IOnDlm4Bv2pvtmne1cFoqDsJB5cEn36Z8e+NQ6KHOw9zDzd+Zf7f1COtIeSvSOr91rC2jbaA9ob3v6IyjnR1eHUe+t/9+7zHjY3XHNY9XnqCdKD3x+eSCk+OnZKeenU4/PdSZ3Hn3TPyZa11RXb1nQ8+ePxd07ky3X/fJ897nj13wvHD0Ivdi2yW3S609rj1HfnD94UivW2/rZffL7Vc8rnT0Tes70e/Tf/pqwNVz1/jXLl2feb3vxuwbt24m3Ry4Jbr1+Hb27Rd3Cu5M3F16j3iv/L7a/eoH+g/qf7T+sWXAbeD4YMBgz8NZD+8OCYee/pT/04fh0kfMR9UjRiONj50fHxsNGr3yZM6T4aeypxPPyn5W/3nrc6vn3/3i+0vPWPzY8Av5i8+/rnmp83Lvq6mvOscjxx+8znk98ab8rc7bfe+477rfx70fmSj8QP5Q89H6Y8en0E/3Pud8/vwv94Tz+4A5JREAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAAHdElNRQfdCR0OKzSQTWy0AAAEPElEQVRYw+2XXWhbZRjHf8vH7I6b2eqihLItXYgKTfuCClurOMUJboIyGV75gkLdja43IujFELxwV8KYV0KFwXsh+AHiTZkoohYUHGM7S4c2ZongPFvjUk+1J93apN48iYf0JP0wiBd5IOTkPe/7f77+z/mfwP/dNrW5dxtwF9Ajv6vAdWB+vYBRYBA4AowAO2XfPHAe+BSYBCprjfo54FvgJnALmAGuAX8BNaAAvAFsCzoc9l2HgAPAW8CDwI/AOHAG+Ay4CGwG7gMGABe4IE4CbSfwvkQ1CTwFRJoc3g98ACzKnky7VB8DikAZGJWmBNlBib4CvNzch5DvejewHbgCfCM1DLLvgB+k+7t9LFgBGBVvLrDQJpN5YK7pTCDgonzvaNVBsW2yx38mEPBnYBZIAU+I9yDejgD7pIZXAK+V5+3S5YpQ5Blgqy+lHmA/8JFMzTlgqB0PF6TDGaHHPiAJ9Ar3jgCvSJdD8imsxsUQcBj4HPhDanTTNzUeUJL1GjANvADcHhQhwLLU5ZwcXJauX5NoPpGULWCvDEMG+FMiXW5H9ChwJ9AvjUrI6G0CHgbOSuQ14Cd5Bvwre1RKUxNevkrTrK7XvpZausBvwMd0rWsd1mWtdaAuG2PWp8ta6zXpsjGmspqMAqCUOgq8KbO5R2baAnaJg0eAqFLqom3bt1pGqLUOyeZ3AAVclmiyMmJ7RVr3A78DbwPjxpglP6B/lnsBLel+D5wEztYPiMOvgNeAo8Dzos3ZVpoyCDwurxxngC/83o0xNWPMeZGJPPAAcEBrvTZdNsb8N7ostOmcLmutN6bLwsdmsBW6bIzxWgFOAV+KbrwIHNZab60XXWvdI0CjIq+XpZ7BxLZte0EpFajLSqmWuqyUumDbdi1wUpRSvwIOcDeQBoaBp4FnhfRxachmqfO9gKuUytm2vbgC0LbtZaXUhnRZIl1u97SJAnfIJyRvDTeksw8BJ0RKo0AOOGGM+TDShm+LAnAj4Pak1vqkcPCgvATs6upy1zopo8VioW+2XD7uuu4hz/OGgAXLsqZjsdjEjt7ed5PJ/qtrBsxmLx1zHOeU53lbgg5YllVJJBJjmczg+KqA2eylY78Ui+8tVatt04qEw+xJJl8KAg3503Qc51QdLB6PrwCqry1VqziOc7pYLPS1BJwtl8fqacbjcYaHRxgY+Off68BAhuHhkQao53lbZsvl4yuir1+4rvtk/bpUKpHP50mlUo2NqVSKfD5PqVTCd+YQ8HogoOd59/hvTE1lG0AA+Xy+sdbqTLOmdMQiPjpMu3NzQ/6a1dP0R+qP0rKs6ZaAsVhsog4Yj8cbYH6AVCrFzMz1Rh1jsdhESx4Wi4W+XC6X83fa34DmNcuyKul0Ot08NY0aJpP9VxOJxFgkHG50utnqa5FwmEQiMRY0gkGjN+o4zumOjF4nHg5d69oG7G9LxrhhWXdE7gAAAABJRU5ErkJggg==) no-repeat 2px -22px #fafafa;background-color:#f4f4f4}.leaflet-control-search .search-tooltip{position:absolute;top:100%;left:0;float:left;list-style:none;padding-left:0;min-width:120px;max-height:122px;box-shadow:1px 1px 6px rgba(0,0,0,.4);background-color:rgba(0,0,0,.25);z-index:1010;overflow-y:auto;overflow-x:hidden;cursor:pointer}.leaflet-control-search .search-tip{margin:2px;padding:2px 4px;display:block;color:#000;background:#eee;border-radius:.25em;text-decoration:none;white-space:nowrap;vertical-align:center}.leaflet-control-search .search-tip-select,.leaflet-control-search .search-tip:hover{background-color:#fff}.leaflet-control-search .search-alert{cursor:pointer;clear:both;font-size:.75em;margin-bottom:5px;padding:0 .25em;color:#e00;font-weight:700;border-radius:.25em}.leaflet-bar button,.leaflet-bar button:hover{border:none;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar button{background-position:50% 50%;background-repeat:no-repeat;overflow:hidden;background-color:#fff}.leaflet-bar button:hover{background-color:#f4f4f4}.leaflet-bar button:first-of-type{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar button:last-of-type{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar button.disabled,.leaflet-bar.disabled{cursor:default;pointer-events:none;opacity:.4}.easy-button-button .button-state{display:block;width:100%;height:100%;position:relative}.leaflet-touch .leaflet-bar button{width:30px;height:30px;line-height:30px}.leaflet-control-loading:empty{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPQAAP///wAAAPDw8IqKiuDg4EZGRnp6egAAAFhYWCQkJKysrL6+vhQUFJycnAQEBDY2NmhoaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAAKAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAAQAAAFdyAgAgIJIeWoAkRCCMdBkKtIHIngyMKsErPBYbADpkSCwhDmQCBethRB6Vj4kFCkQPG4IlWDgrNRIwnO4UKBXDufzQvDMaoSDBgFb886MiQadgNABAokfCwzBA8LCg0Egl8jAggGAA1kBIA1BAYzlyILczULC2UhACH5BAAKAAEALAAAAAAQABAAAAV2ICACAmlAZTmOREEIyUEQjLKKxPHADhEvqxlgcGgkGI1DYSVAIAWMx+lwSKkICJ0QsHi9RgKBwnVTiRQQgwF4I4UFDQQEwi6/3YSGWRRmjhEETAJfIgMFCnAKM0KDV4EEEAQLiF18TAYNXDaSe3x6mjidN1s3IQAh+QQACgACACwAAAAAEAAQAAAFeCAgAgLZDGU5jgRECEUiCI+yioSDwDJyLKsXoHFQxBSHAoAAFBhqtMJg8DgQBgfrEsJAEAg4YhZIEiwgKtHiMBgtpg3wbUZXGO7kOb1MUKRFMysCChAoggJCIg0GC2aNe4gqQldfL4l/Ag1AXySJgn5LcoE3QXI3IQAh+QQACgADACwAAAAAEAAQAAAFdiAgAgLZNGU5joQhCEjxIssqEo8bC9BRjy9Ag7GILQ4QEoE0gBAEBcOpcBA0DoxSK/e8LRIHn+i1cK0IyKdg0VAoljYIg+GgnRrwVS/8IAkICyosBIQpBAMoKy9dImxPhS+GKkFrkX+TigtLlIyKXUF+NjagNiEAIfkEAAoABAAsAAAAABAAEAAABWwgIAICaRhlOY4EIgjH8R7LKhKHGwsMvb4AAy3WODBIBBKCsYA9TjuhDNDKEVSERezQEL0WrhXucRUQGuik7bFlngzqVW9LMl9XWvLdjFaJtDFqZ1cEZUB0dUgvL3dgP4WJZn4jkomWNpSTIyEAIfkEAAoABQAsAAAAABAAEAAABX4gIAICuSxlOY6CIgiD8RrEKgqGOwxwUrMlAoSwIzAGpJpgoSDAGifDY5kopBYDlEpAQBwevxfBtRIUGi8xwWkDNBCIwmC9Vq0aiQQDQuK+VgQPDXV9hCJjBwcFYU5pLwwHXQcMKSmNLQcIAExlbH8JBwttaX0ABAcNbWVbKyEAIfkEAAoABgAsAAAAABAAEAAABXkgIAICSRBlOY7CIghN8zbEKsKoIjdFzZaEgUBHKChMJtRwcWpAWoWnifm6ESAMhO8lQK0EEAV3rFopIBCEcGwDKAqPh4HUrY4ICHH1dSoTFgcHUiZjBhAJB2AHDykpKAwHAwdzf19KkASIPl9cDgcnDkdtNwiMJCshACH5BAAKAAcALAAAAAAQABAAAAV3ICACAkkQZTmOAiosiyAoxCq+KPxCNVsSMRgBsiClWrLTSWFoIQZHl6pleBh6suxKMIhlvzbAwkBWfFWrBQTxNLq2RG2yhSUkDs2b63AYDAoJXAcFRwADeAkJDX0AQCsEfAQMDAIPBz0rCgcxky0JRWE1AmwpKyEAIfkEAAoACAAsAAAAABAAEAAABXkgIAICKZzkqJ4nQZxLqZKv4NqNLKK2/Q4Ek4lFXChsg5ypJjs1II3gEDUSRInEGYAw6B6zM4JhrDAtEosVkLUtHA7RHaHAGJQEjsODcEg0FBAFVgkQJQ1pAwcDDw8KcFtSInwJAowCCA6RIwqZAgkPNgVpWndjdyohACH5BAAKAAkALAAAAAAQABAAAAV5ICACAimc5KieLEuUKvm2xAKLqDCfC2GaO9eL0LABWTiBYmA06W6kHgvCqEJiAIJiu3gcvgUsscHUERm+kaCxyxa+zRPk0SgJEgfIvbAdIAQLCAYlCj4DBw0IBQsMCjIqBAcPAooCBg9pKgsJLwUFOhCZKyQDA3YqIQAh+QQACgAKACwAAAAAEAAQAAAFdSAgAgIpnOSonmxbqiThCrJKEHFbo8JxDDOZYFFb+A41E4H4OhkOipXwBElYITDAckFEOBgMQ3arkMkUBdxIUGZpEb7kaQBRlASPg0FQQHAbEEMGDSVEAA1QBhAED1E0NgwFAooCDWljaQIQCE5qMHcNhCkjIQAh+QQACgALACwAAAAAEAAQAAAFeSAgAgIpnOSoLgxxvqgKLEcCC65KEAByKK8cSpA4DAiHQ/DkKhGKh4ZCtCyZGo6F6iYYPAqFgYy02xkSaLEMV34tELyRYNEsCQyHlvWkGCzsPgMCEAY7Cg04Uk48LAsDhRA8MVQPEF0GAgqYYwSRlycNcWskCkApIyEAOwAAAAAAAAAAAA==);background-repeat:no-repeat}.leaflet-control-layer-container,.leaflet-control-loading,.leaflet-control-zoom a.leaflet-control-loading,.leaflet-control-zoomslider a.leaflet-control-loading{display:none}.hero .content i.avatar:hover .button,.leaflet-control-layer-container.is-loading,.leaflet-control-loading.is-loading,.leaflet-control-zoom a.leaflet-control-loading.is-loading,.leaflet-control-zoomslider a.leaflet-control-loading.is-loading{display:block}.leaflet-bar-part-bottom{border-bottom:medium none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.awesome-marker{background:url(../img/markers-soft.png) no-repeat 0 0;width:35px;height:46px;position:absolute;left:0;top:0;display:block;text-align:center}.awesome-marker-shadow{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAQCAYAAACcN8ZaAAAB3klEQVR42s3U4UdDURzG8czMXJnJ1Vwzc6VJZjaZJdlMlpQsKdmUFNOUspRSSqUolfQfr+fF98Vx5mwv9qbDx7LdznnO7/7Omej3+/+Ga0QMUYkhbvBgmhzCQxwxibIGrGEF8CQhU+LLtKQkQNqScUgjxRxTBIxbgfgD/BgnhM8kM5KTeclLQYqGkkMRBckzR8ic/mAgd5BAZplsUaqyIg2sDtHg2brUZJk5SmwopErJUWE8SpmTMhNvya60Zd/SNrR4bkeaskG4uiwRZk6yrJEYFibGAxn+scECHTmTnuVCzvmty3PHciB7bGKN6lQkzysPqIrHmpFhYbKUtckC1/Ioz4ZHuZdbuSLYiRxRpSZVWXZVxAzC0R4Ik5SQsu6w8yd5l2/5kg95I9SdXMoZQfYIUjeqEUrgOkXGPeN4TYRhxy8E+ZUf+eS7B7miIoeybVSjKDnm8u3+gH3pDTYwu1igATvs/pXqvBKiR4i2bNJfi1ZfUAnjgrOG8wY2quNzBKuU/ZS+uSFEl5O0xRGuUIlZCcw7xG5QPkeHYUSNV5WXGou2sC3rBC0LjenqCXGO0WEiTJa0Lr4KixdHBrDGuGGiRqCUpFk8pGIpQtCU7p4YPwxYxEMCk1aAMQZh8Ac8PfbIzYPJOwAAAABJRU5ErkJggg==) no-repeat 0 0;width:36px;height:16px}@media (min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:3/2),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:1.5dppx){.awesome-marker{background-image:url(../img/markers-soft@2x.png);background-size:720px 46px}.awesome-marker-shadow{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAAAgCAYAAACvgw7DAAAFhElEQVR42tWZ/0ubVxSHZZQxpJQRwoqEUkJQQhlBCcEiQRGJiKFEQqQ4lKFYLA5FsSjKioqipRutbLJ2f627g+dyDmfvqfetzlLh+aFpcr88+dxzb+7bdwt/33wG974g/rhu+pdzwt86fJdA/82w7Un/18m6kRBXgD+5+4YHDt/fEtImfRppVlJ+MY4QEWEmbyZZUBQVP2TwMJGBDMx7aFP6K4gwJBlBecVYISIDCSJAJm0mUIJH8NhQdqjkh8/SNv2VRB6SjCAtJ2dKMGuFIEIEMHGZ2CAMQdXwxPDjNdQ++f+0Q9tD9F1RkgYYLwlCDmIg19IhJQiRVJToFAlMViYxHBiBOjQyGP0ETzMw76Ed+qC/YSVrSAkqiRySo1IjAnwkKSKlQKMIQQYS4sQZ/Bg0A+MwYZg0TKViPjeh+mjS72iUhKCqyCE5pCZdDEmxUmjwURQSZSCiqSbXCkwHZmAW2g7PEmkbZml/mj6nlKgm42rE9DDushHzQGpNohjefB8pD2NK6GSEjscZ1AyD7QTmAt1AD+YVz/Mjn6e9LswB0pCEICVnhFQPIabEfAoiJj0xkhaWj5LSoNMW39ocA14I/BRYCvwMy58NbdDe4r9twwLCEIUcEoSYCbWkhqk1g0lLyTv92bTQUBkpdZWSDoNbZAKrgbXAy8B64JdE1jN4SVsvAquwokUhaJ70dNTyaiEmLqUaYiqUArZu0qLF+EdjOa/wwWKsK2r5tPiGFhjoGhPcCmwHdgKvEtlRbMNWYDOwQbtIEjlGDIlhKUmNqZOWKuOPW3bRSct1iUGMbM2PabxBp20GtMygt5jkfuAg8DpwaOF1y6+BA9iDXdpDEoKQQ79LLKv5mBZVX8ZZQiO66Nqt2jngISFNTJkoPqXjLoOKUvaY5HHgJHDmcAoncBw4UtIOkLtnxJAapEid6aqkTKliW2f5VOPysXUFjJQ0Mf1KTAXzTb6VeeK8wQQOmeibwNvA7xn8xv+95X3nyIqCDiU9iGFJUXPWkLKo6krbLJ2GpIQdiJoiy8dJyg3E1IjoDDvCCgPfZ3LnCHgf+MNwwevveE+UE1N0RGKilJ0MIUv021Vb86QIYefJJUSkXF1d4eS6rdoXM0uUV5nA6ygFCZeBDxpe+1MEkSBJzbESs6uWzwu+gEWzdFpIidtxzWzHck5h6fgpETHI8cWYGlOMW7VKzEKWGCb/V+Bj4G/4wGtRzDsSc07SjjKSsqaEPFdCpkWIpMQc9UmJCLEXVVaGFXPP4G/XUnybjpg3TPhSS4GPKjHvVVJOY10hJduxyKpa0gt01Nlk3JxkbXEt+j8OBREhpIgRORzw6LiqdqUexXeTb/qUFFzE1MAly4vaQkpYNrHAqh1nSS2Ztl0yJiFsvyYhbh0RHDH+UvJSw7cxqM4xc9SZdbUrnaniewEiRBJyoBKyniGk4y8ZOY+kLhn4z19+MYLcw8ghr0ZqppnEMpPbZUmcIOAMTA1hubDTILenziKT5nBmt92B9G1XhOQQk3iliRgGU+JbqzOBttqdNkUOp1451e5LUWXJSFHtaCHebxunqKZJ4d+3LEZ2JwZWYcCjLKlnTHCZFGwgIB7MYjFdUculJwczKaZquVT9c4gUVKeG9P3fYuS3VPaPyRrf7CQ7Ro/0yDWD+qHn7C5j5ug+aO9m7c2+FZLndv/2xPin4BLJqcZf2wiaMbdxs3KzJncjzlWjFFM5lJl0+A/I7lpMX+bdDHKIe1WlZ0zuddXVIjJMMsr21t6mI+8DsbsXQ2pEDqdhuf+tsHM8YfJgbujZZh0Z/W4xNX9fXoz/+8nKKdlnSYqKTYctplYIfC1i7KFPnhwwUXnMah+dioxCsgyEfD1iIPMxrVAQ0p8ZexLuWsw/8PFSG0HPbPgAAAAASUVORK5CYII=);background-size:35px 16px}}.awesome-marker i{color:#333;margin-top:10px;display:inline-block;font-size:14px}.awesome-marker .icon-white{color:#fff}.awesome-marker-icon-red{background-position:0 0}.awesome-marker-icon-darkred{background-position:-180px 0}.awesome-marker-icon-lightred{background-position:-360px 0}.awesome-marker-icon-orange{background-position:-36px 0}.awesome-marker-icon-beige{background-position:-396px 0}.awesome-marker-icon-green{background-position:-72px 0}.awesome-marker-icon-darkgreen{background-position:-252px 0}.awesome-marker-icon-lightgreen{background-position:-432px 0}.awesome-marker-icon-blue{background-position:-108px 0}.awesome-marker-icon-darkblue{background-position:-216px 0}.awesome-marker-icon-lightblue{background-position:-468px 0}.awesome-marker-icon-purple{background-position:-144px 0}.awesome-marker-icon-darkpurple{background-position:-288px 0}.awesome-marker-icon-pink{background-position:-504px 0}.awesome-marker-icon-cadetblue{background-position:-324px 0}.awesome-marker-icon-white{background-position:-574px 0}.awesome-marker-icon-gray{background-position:-648px 0}.awesome-marker-icon-lightgray{background-position:-612px 0}.awesome-marker-icon-black{background-position:-682px 0}.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{-webkit-transition:-webkit-transform .3s ease-out,opacity .3s ease-in;-moz-transition:-moz-transform .3s ease-out,opacity .3s ease-in;-o-transition:-o-transform .3s ease-out,opacity .3s ease-in;transition:transform .3s ease-out,opacity .3s ease-in}.leaflet-cluster-spider-leg{-webkit-transition:-webkit-stroke-dashoffset .3s ease-out,-webkit-stroke-opacity .3s ease-in;-moz-transition:-moz-stroke-dashoffset .3s ease-out,-moz-stroke-opacity .3s ease-in;-o-transition:-o-stroke-dashoffset .3s ease-out,-o-stroke-opacity .3s ease-in;transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}.marker-cluster-small{background-color:rgba(181,226,140,.6)}.marker-cluster-small div{background-color:rgba(110,204,57,.6)}.marker-cluster-medium{background-color:rgba(241,211,87,.6)}.marker-cluster-medium div{background-color:rgba(240,194,12,.6)}.marker-cluster-large{background-color:rgba(253,156,115,.6)}.marker-cluster-large div{background-color:rgba(241,128,23,.6)}.leaflet-oldie .marker-cluster-small{background-color:#b5e28c}.leaflet-oldie .marker-cluster-small div{background-color:#6ecc39}.leaflet-oldie .marker-cluster-medium{background-color:#f1d357}.leaflet-oldie .marker-cluster-medium div{background-color:#f0c20c}.leaflet-oldie .marker-cluster-large{background-color:#fd9c73}.leaflet-oldie .marker-cluster-large div{background-color:#f18017}.marker-cluster{background-clip:padding-box;border-radius:20px}.marker-cluster div{width:30px;height:30px;margin-left:5px;margin-top:5px;text-align:center;border-radius:15px;font:12px "Helvetica Neue",Arial,Helvetica,sans-serif}.marker-cluster span{line-height:30px}@keyframes chartjs-render-animation{0%{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}.item-category{border:1px solid #ddd!important}.item-category .h2,.item.item-social-edit h2{overflow:inherit;text-overflow:inherit;white-space:normal!important}.item-category .item-divider,.item-category.item-divider{background-color:#f5f5f5!important}.item.item-social-edit h2{display:block}.item-record{height:80px!important;padding-top:5px!important}.row-record{border-bottom:solid 1px #ccc!important;padding:0!important;height:75px!important;overflow:hidden}.row-record .col{padding-top:5px;padding-bottom:0}.row-record .item-avatar i.item-image{font-size:34px!important}.card-record .badge-picture-count,.row-record .badge-picture-count{position:absolute!important;right:inherit!important;top:inherit!important}.card-record .badge-picture-count{left:67px!important;bottom:15px!important}.row-record .badge-picture-count{left:54px!important;bottom:13px!important}.card-record .item-thumbnail-left{padding-left:150px}.card-record .item-thumbnail-left .item-image{border-radius:0;box-shadow:none;max-width:130px;max-height:130px;top:inherit;background-repeat:no-repeat}.card-record .card-footer .badge{top:inherit;bottom:10px;right:10px}.row-record .col-text-wrap{padding:0;margin:0}.row-record .col .text-wrap{height:70px;white-space:normal;position:relative;word-wrap:break-word!important;overflow:hidden!important;text-overflow:ellipsis;-o-text-overflow:ellipsis;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;-o-hyphens:auto;hyphens:auto}.row-record .col .text-wrap:after{content:'';position:absolute;bottom:0;right:0;width:100%;height:30%;background:-moz-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(255,255,255,0)),color-stop(100%,#fff));background:-webkit-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:-o-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:-ms-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 )}.item.gallery{display:inline-block}.item-more-comments{padding-top:0;padding-bottom:0;min-height:inherit!important}.hero .content .button.button-camera{display:block;position:absolute;bottom:0;right:0}.hero .content i.avatar .button{display:none;position:absolute;bottom:-25px;left:-3px}.hero .content i.avatar{font-size:55px!important;line-height:88px}.view-message h1.title{font-size:22px;margin-top:5px}.view-messages .list .item{height:80px}.view-messages .list .item-content{padding-top:8px;padding-bottom:8px}.view-page ion-content.refresher-top-bg:before{background-color:#f8f8f8!important;height:200px}.view-page .hero{background-color:#f8f8f8!important}.view-page .hero .content i.avatar{border:1px solid gray;color:gray!important}.modal-search-location .bar-footer{height:30px}.modal-search-location .bar-footer .copyright{font-size:12px;line-height:30px}.list.dropdown-list{z-index:1010;opacity:1;display:block;list-style:none;position:absolute;background-color:#fff;border-radius:0 0 2px 2px;box-shadow:0 2px 4px rgba(0,0,0,.2);width:100%;overflow-y:auto;overflow-x:hidden;cursor:pointer}.list.dropdown-list .item{padding-top:5px;padding-bottom:5px}.list.dropdown-list .item.active,.list.dropdown-list .item:active,.list.dropdown-list .item:focus,.list.dropdown-list .item:hover{background-color:#b2e0ff}.item-document.compacted{min-height:16px!important;max-height:16px!important;border-bottom:0!important}.item-document.compacted .col{padding-top:1px}.popup-report-abuse .popup{width:370px!important}.popup-report-abuse .popup .item-toggle .toggle{right:0!important}.popup-report-abuse .popup .item-toggle .input-label{width:280px;max-width:100%;white-space:normal}.cion-page-association:before,.ion-page-association:before{font-family:"Ionicons";content:"\f212"}.cion-page-company:before,.ion-page-company:before{font-family:"Cesiumicons";content:"\e903"}.cion-page-institution:before,.ion-page-institution:before{font-family:"Cesiumicons";content:"\e921"}.cion-page-shop:before,.ion-page-shop:before{font-family:"Ionicons";content:"\f110"}.buttons-block{display:block;height:57px}.popover-graph-currency{height:300px!important;max-width:250px!important}.legend{font:14px/16px Arial,Helvetica,sans-serif;background:rgba(255,255,255,.9);box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:5px;padding:6px 8px;width:180px;line-height:18px;color:#555}.legend .outline{border:0}.legend i{width:16px;height:16px;float:left;margin-right:8px;opacity:.7}.search-tip{white-space:nowrap}.leaflet-popup .item-peer{padding-bottom:3px;padding-top:0}.leaflet-popup .item.item-icon-left>i.avatar:first-child{left:9px;top:0}.leaflet-popup .item-peer .badge{top:inherit;bottom:0;right:5px;font-size:12px}.leaflet-popup .item-peer .badge .badge-secondary,.leaflet-popup .item-peer .badge.badge-secondary{top:inherit;bottom:-16px;right:5px;font-size:9px;padding-right:0}.view-map-network .leaflet-popup-content{max-height:250px}.view-map-network .leaflet-popup-content .item-peer .row{display:block}.view-map-network .leaflet-popup-content .item-peer .col.col-15,.view-map-network .leaflet-popup-content .item-peer .col.col-20{-webkit-box-flex:0;-webkit-flex:0 0 15%;-moz-box-flex:0;-moz-flex:0 0 15%;-ms-flex:0 0 15%;flex:0 0 15%;max-width:70px;text-align:start!important}.view-map-network .leaflet-popup-content .item-peer .col.col-20{-webkit-flex:0 0 20%;-moz-flex:0 0 20%;-ms-flex:0 0 20%;flex:0 0 20%}.view-map-registry .leaflet-popup-content,.view-map-wot .leaflet-popup-content{min-width:200px}.view-map-wot .leaflet-popup-content .item-avatar .item-image{left:0}.view-map-wot .leaflet-popup-content .item-avatar .item-content{padding-left:70px}.view-map-registry .leaflet-popup-content .item-avatar .item-image{left:0}.view-map-registry .leaflet-popup-content .item-avatar .item-content{padding-left:70px}.marker-cluster-small.blue{background-color:rgba(56,170,221,.6)}.marker-cluster-small.blue div{background-color:rgba(37,144,193,.9);color:#fff}.marker-cluster-medium.blue{background-color:rgba(37,144,193,.6)}.marker-cluster-medium.blue div{background-color:rgba(18,121,167,.9);color:#fff}.marker-cluster-large.blue{background-color:rgba(18,121,167,.6)}.marker-cluster-large.blue div{background-color:rgba(0,99,141,.9);color:#fff}.marker-cluster-small.green{background-color:rgba(110,170,37,.6)}.marker-cluster-small.green div{background-color:rgba(92,150,19,.9);color:#fff}.marker-cluster-medium.green{background-color:rgba(92,150,19,.6)}.marker-cluster-medium.green div{background-color:rgba(71,126,1,.9);color:#fff}.marker-cluster-large.green{background-color:rgba(171,126,1,.6)}.marker-cluster-large.green div{background-color:rgba(51,103,0,.9);color:#fff}.marker-cluster-small.lightgreen{background-color:rgba(187,249,112,.4)}.marker-cluster-small.lightgreen div{background-color:rgba(162,221,90,.8);color:gray}.marker-cluster-medium.lightgreen{background-color:rgba(162,221,90,.6)}.marker-cluster-medium.lightgreen div{background-color:rgba(136,192,69,.8);color:#fff}.marker-cluster-large.lightgreen{background-color:rgba(136,192,69,.6)}.marker-cluster-large.lightgreen div{background-color:rgba(115,168,49,.8);color:#fff}.marker-cluster-small.lightgray{background-color:rgba(163,163,163,.6)}.marker-cluster-small.lightgray div{background-color:rgba(163,163,163,.9);color:#fff}.marker-cluster-medium.lightgray{background-color:rgba(139,139,139,.6)}.marker-cluster-medium.lightgray div{background-color:rgba(139,139,139,.9);color:#fff}.marker-cluster-large.lightgray{background-color:rgba(116,116,116,.6)}.marker-cluster-large.lightgray div{background-color:rgba(116,116,116,.9);color:#fff}.marker-cluster-small.red{background-color:rgba(212,62,42,.4)}.marker-cluster-small.red div{background-color:rgba(186,42,23,.8);color:#fff}.marker-cluster-medium.red{background-color:rgba(186,42,23,.6)}.marker-cluster-medium.red div{background-color:rgba(161,23,5,.8);color:#fff}.marker-cluster-large.red{background-color:rgba(161,23,5,.6)}.marker-cluster-large.red div{background-color:rgba(137,5,0,.8);color:#fff}
\ No newline at end of file
diff --git a/assets/www/dist_js/cesium-054ae838de.js b/assets/www/dist_js/cesium-054ae838de.js
deleted file mode 100644
index fefc773b016c3133982d7b603cfce3cddaec8422..0000000000000000000000000000000000000000
--- a/assets/www/dist_js/cesium-054ae838de.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/* minified */
-function e(e){var t=this;Object.keys(e).forEach((function(n){t[n]=e[n]})),t.endpoints=t.endpoints||[]}function t(e,t){"use strict";var n=this;t&&t.length?_.forEach(t,(function(t){n[t]=e[t]})):["currency","issuer","medianTime","number","version","powMin","dividend","membersCount","hash","identities","joiners","actives","leavers","revoked","excluded","certifications","transactions","unitbase"].forEach((function(t){n[t]=e[t]})),n.identitiesCount=n.identities?n.identities.length:0,n.joinersCount=n.joiners?n.joiners.length:0,n.activesCount=n.actives?n.actives.length:0,n.leaversCount=n.leavers?n.leavers.length:0,n.revokedCount=n.revoked?n.revoked.length:0,n.excludedCount=n.excluded?n.excluded.length:0,n.certificationsCount=n.certifications?n.certifications.length:0,n.transactionsCount=n.transactions?n.transactions.length:0,n.empty=n.isEmpty()}function n(e){var t=e.split(":");if(t.length<3||!t[0].startsWith("WS2P"))throw Error("Invalid format: "+e);if("HEAD"==t[1]){if(t.length<4)throw Error("Invalid format: "+e);if(4==t.length)this.pubkey=t[2],this.buid=t[3];else if(t[2]>=1){var n=t[0];if(n.length>4){var i=this.regexp.WS2P_PREFIX.exec(n);if(!i)throw Error("Invalid format: "+e);var a=i[1];if(a){this.private={useTor:a.startsWith("T")};var o=a.substring(1);"A"==o?this.private.mode="all":"M"==o?this.private.mode="mixed":"S"==o&&(this.private.mode="strict")}var r=i[2];r&&(this.public={useTor:r.startsWith("T"),mode:"all"})}this.pubkey=t[3],this.buid=t[4],this.ws2pid=t[5],this.software=t[6],this.version=t[7],this.powPrefix=t[8]}}}function a(e,t){e.extensionPoint=t.extensions.points.current.get()}function o(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,f,_){e.walletData=E.data,e.search={},e.login=E.isLogin(),e.auth=E.isAuth(),e.motion=p.motion.default,e.fullscreen=p.screen.fullscreen.isEnabled(),e.showHome=function(){return r.nextViewOptions({historyRoot:!0}),n.go("app.home").then(p.loading.hide)},e.scanQrCodeAndGo=function(){if(b.barcode.enable)return b.barcode.scan().then((function(e){if(e)return m.uri.parse(e).then((function(e){if(!e||!e.pubkey)throw{message:"ERROR.SCAN_UNKNOWN_FORMAT"};return n.go("app.wot_identity",{pubkey:e.pubkey,node:e.host?e.host:null})})).catch((function(t){return console.debug("[app] Scan data is not an URI (get error: "+(t&&t.message||t)+"). Trying to decode as a WIF or EWIF format..."),d.keyfile.parseData(e).then((function(e){if(!e||!e.signPk||!e.signSk)throw t;var i=u.base58.encode(e.signPk);console.debug("[app] Detected WIF/EWIF format. Will login to wallet {"+i.substring(0,8)+"}");var a=E.isLogin()?E.children.create({store:!1}):E;return a.login({silent:!0,forceAuth:!0,minData:!1,authData:{pubkey:i,keypair:e}}).then((function(){return r.nextViewOptions({historyRoot:!0}),n.go("app.new_transfer",{all:!0,wallet:a.isDefault()?void 0:a.id})}))})).catch(p.onError("ERROR.SCAN_UNKNOWN_FORMAT"))}))})).catch(p.onError("ERROR.SCAN_FAILED"))},e.createHelptipScope=function(n,i){if(n||!t.tour&&t.settings.helptip.enable&&!p.screen.isSmall()){var a=e.$new();return s(i||"HelpTipCtrl",{$scope:a}),a}},e.startHelpTour=function(n,i){if(t.tour=!0,!i)return r.clearHistory(),r.clearCache().then((function(){e.startHelpTour(n,!0)}));var a=e.createHelptipScope(!0,n);return a.startHelpTour().then((function(){a.$destroy(),delete t.tour})).catch((function(e){delete t.tour}))},e.isLogin=function(){return e.login},e.loadWalletData=function(e){return console.warn("[app-controller] DEPRECATED  - Please use csWallet.load() instead of $scope.loadWalletData()",new Error),((e=e||{}).wallet||E).loadData(e).then((function(e){if(!e)throw"CANCELLED";return e}))},e.loadWallet=function(t){if(console.warn("[app-controller] DEPRECATED  - Please use csWallet.loginOrLoad() instead of $scope.loadWallet()",new Error),!c.isStarted())return c.ready().then((function(){return e.loadWallet(t)}));var n=(t=t||{}).wallet||E;return t.auth&&!n.isAuth()?n.auth(t).then((function(e){if(e)return e;throw"CANCELLED"})):n.isLogin()?n.isDataLoaded(t)?a.when(n.data):e.loadWalletData(t):n.login(t).then((function(e){if(e)return e;throw"CANCELLED"}))},e.loginAndGo=function(t,i){e.closeProfilePopover();var a=(i=i||{}).wallet||E;if(delete i.wallet,t=t||"app.view_wallet",a.isLogin())return n.go(t,i);if(f.httpsMode&&l.location&&"https:"!==l.location.protocol){var o=l.location.href,r=o.indexOf("#"),s=-1!=r?o.substr(0,r):o;if(o=(s="https"+s.substr(4))+n.href(t),!f.httpsModeDebug)return void(l.location.href=o);console.debug("[httpsMode] --- Should redirect to: "+o)}return a.login(i).then((function(){return n.go(t,i)})).then(p.loading.hide)},e.logout=function(t){var n=(t=t||{}).wallet||E;return!t.force&&e.profilePopover?e.profilePopover.hide().then((function(){return t.force=!0,e.logout(t)})):t.askConfirm?p.alert.confirm("CONFIRM.LOGOUT").then((function(n){if(n)return t.askConfirm=!1,e.logout(t)})):(p.loading.show(),n.logout().then((function(){if(i.isOpenLeft()&&i.toggleLeft(),n.isDefault())return r.clearHistory(),r.clearCache().then((function(){return e.showHome()}))})).catch(p.onError()))},e.doAuth=function(e){return(e&&e.wallet||E).auth().then(p.loading.hide)},e.isUserPubkey=function(e){return E.isUserPubkey(e)},E.api.data.on.login(e,(function(t,n){return e.login=!0,n?n.resolve():a.when()})),E.api.data.on.logout(e,(function(){e.login=!1})),E.api.data.on.auth(e,(function(t,n){return e.auth=!0,n?n.resolve():a.when()})),E.api.data.on.unauth(e,(function(){e.auth=!1})),e.showTransferModal=function(e){return g.showTransfer(e)},e.showAboutModal=function(){return g.showAbout()},e.showJoinModal=function(){return e.closeProfilePopover(),g.showJoin()},e.showSettings=function(){return e.closeProfilePopover(),n.go("app.settings")},e.showHelpModal=function(e){return g.showHelp(e)},e.showProfilePopover=function(t){return p.popover.show(t,{templateUrl:"templates/common/popover_profile.html",scope:e,autoremove:!0,afterShow:function(t){e.profilePopover=t,o((function(){p.ink({selector:"#profile-popover .ink, #profile-popover .ink-dark"})}),100)}})},e.closeProfilePopover=function(){e.profilePopover&&e.profilePopover.isShown()&&o((function(){e.profilePopover.hide()}))},e.showPeerInfoPopover=function(t){return p.popover.show(t,{templateUrl:"templates/network/popover_peer_info.html",autoremove:!0,scope:e.$new(!0)})},e.openLink=function(e,t,n){return e.stopPropagation(),e.preventDefault(),(n=n||{}).onError=function(){return p.popover.copy(e,t)},_.uri.open(t,n),!1},e.showFab=function(e,t){p.motion.toggleOn({selector:"#"+e+".button-fab"},t)},e.hideFab=function(e,t){p.motion.toggleOff({selector:"#"+e+".button-fab"},t)},e.doMotion=function(t){return e.motion.show(t)},e.askFullscreen=function(){if(!e.fullscreen&&p.screen.isSmall()&&b.isWeb())return p.alert.confirm("CONFIRM.FULLSCREEN",null,{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES"}).then((function(t){t&&e.toggleFullscreen()}))},e.toggleFullscreen=function(){e.fullscreen=!p.screen.fullscreen.isEnabled(),p.screen.fullscreen.toggleAll()}}function r(e,t,n,i,a,o,r,s,l){e.loading=!0,e.locales=angular.copy(l.locales),e.enter=function(n,a){ionic.Platform.isIOS()&&window.StatusBar&&(StatusBar.overlaysWebView(!1),StatusBar.overlaysWebView(!0)),a&&a.stateParams&&a.stateParams.error?(e.error=a.stateParams.error,e.node=s.data.node,e.loading=!1,i.nextViewOptions({disableAnimate:!0,disableBack:!0,historyRoot:!0}),t.go("app.home",{error:void 0},{reload:!1,inherit:!0,notify:!1})):r.ready().then((function(){e.loading=!1})).catch((function(t){e.node=s.data.node,e.loading=!1,e.error=t}))},e.$on("$ionicView.enter",e.enter),e.reload=function(){e.loading=!0,delete e.error,n(e.enter,200)},e.doQuickFix=function(e){"settings"===e&&(i.nextViewOptions({historyRoot:!0}),t.go("app.settings"))},e.changeLanguage=function(t){a.use(t),e.hideLocalesPopover(),l.data.locale=_.findWhere(e.locales,{id:t})},e.showLocalesPopover=function(t){o.popover.show(t,{templateUrl:"templates/api/locales_popover.html",scope:e,autoremove:!0,afterShow:function(t){e.localesPopover=t}})},e.hideLocalesPopover=function(){e.localesPopover&&(e.localesPopover.hide(),e.localesPopover=null)}}function s(e,t,n,i,a){angular.extend(this,n("HomeCtrl",{$scope:e})),e.showJoinModal=function(){return e.loading?t(e.showJoinModal,500):a.isLogin()||e.error?void 0:t(i.showJoin,300)},e.$on("$ionicView.enter",e.showJoinModal)}function l(e,t,n,i,a){e.formData={},e.slides={slider:null,options:{loop:!1,effect:"slide",speed:500}},e.loading=!0,e.load=function(){if(e.loading)return a.get().then((function(t){t&&(e.currency=t,e.formData.currency=t.name,e.loading=!1)})).catch(i.onError("ERROR.GET_CURRENCY_FAILED"))},e.$on("modal.shown",e.load),e.$on("$ionicSlides.sliderInitialized",(function(e,t){t.slider.lockSwipes()})),e.slidePrev=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slidePrev(),e.slides.slider.lockSwipes()},e.slideNext=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slideNext(),e.slides.slider.lockSwipes()},e.selectAccountTypeAndClose=function(t){e.formData.accountType=t,e.closeModal(e.formData)},e.doQuickFix=function(n){"settings"==n&&(e.closeModal(),t.go("app.settings"))},e.showHelpModal=function(e){n.showHelp({anchor:e})}}function c(e,t,n,i,a,o,r,s,l,c,u,d,p){var m;e.formData={pseudo:p.uid||"",pubkey:p.pubkey||void 0},e.slides={slider:null,options:{loop:!1,effect:"slide",speed:500,pager:!1,showPager:!1}},e.slideBehavior={},e.loading=!0,e.isLicenseRead=o.isIOS(),e.showUsername=!1,e.showPassword=!1,e.formData.computing=!1,e.smallscreen=r.screen.isSmall(),e.userIdPattern=d.constants.regexp.USER_ID,e.accountAvailable=!!p.pubkey,e.currency=p.currency,e.accountType=p.accountType||"member",e.load=function(){if(e.loading){if(!(m=p.walletId&&u.children.get(p.walletId)||p.pubkey&&u.children.getByPubkey(p.pubkey)||(!p.pubkey||u.isUserPubkey(p.pubkey))&&u))throw new Error("Cannot found the corresponding wallet, from parameters.pubkey or parameters.walletId");console.debug("[join] Starting join modal on wallet {0}".format(m.id)),"member"===e.accountType&&(e.licenseFileUrl=l.getLicenseUrl(),e.licenseFileUrl&&(".txt"!=e.licenseFileUrl.substring(e.licenseFileUrl.length-3)&&(e.licenseFileUrl=e.licenseFileUrl+".html"),e.isLicenseRead||a((function(){e.isLicenseRead||(e.isLicenseRead=!0)}),5e3))),e.slideBehavior=e.computeSlideBehavior(),e.loading=!1}},e.$on("modal.shown",e.load),e.$on("$ionicSlides.sliderInitialized",(function(e,t){t.slider.lockSwipes()})),e.slidePrev=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slidePrev(),e.slides.slider.lockSwipes()},e.slideNext=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slideNext(),e.slides.slider.lockSwipes()},e.showAccountPubkey=function(){if(p.pubkey&&p.pseudo===e.formData.pseudo)return e.formData.pubkey=p.pubkey,void(e.formData.computing=!1);e.formData.computing=!0,s.scryptKeypair(e.formData.username,e.formData.password).then((function(t){return e.formData.pubkey=s.util.encode_base58(t.signPk),e.checkAccountAvailable()})).then((function(){return a((function(){e.formData.computing=!1}),400)})).catch((function(t){e.formData.pubkey=void 0,e.formData.computing=!1,r.onError("ERROR.CRYPTO_UNKNOWN_ERROR")(t)}))},e.formDataChanged=function(){e.formData.computing=!1,e.formData.pubkey=null},e.getCurrentFormName=function(){var t=e.slides.slider.activeIndex;if("member"===e.accountType){if(t+=e.licenseFileUrl?0:1,0===(t+=p.pubkey&&t>=2?2:0))return"licenseForm";if(1===t)return"pseudoForm";if(2===t)return"saltForm";if(3===t)return"passwordForm";if(4===t)return"confirmForm"}else{if(0===t)return"saltForm";if(1===t)return"passwordForm";if(2===t)return"confirmForm"}},e.computeSlideBehavior=function(){var t=e.getCurrentFormName();return"licenseForm"===t?{hasPreviousButton:!1,hasNextButton:!1,hasAcceptButton:!0}:"pseudoForm"===t?{helpAnchor:"join-pseudo",hasPreviousButton:e.licenseFileUrl&&!0,hasNextButton:!0,focus:"pseudo"}:"saltForm"===t?{helpAnchor:"join-salt",hasPreviousButton:"member"===e.accountType,hasNextButton:!0,focus:"salt"}:"passwordForm"===t?{helpAnchor:"join-password",hasPreviousButton:!0,hasNextButton:!0,focus:"password"}:"confirmForm"===t?{hasPreviousButton:!0,hasNextButton:!1,hasSendButton:!0,helpAnchor:"join-pubkey"}:{hasPreviousButton:!1,hasNextButton:!0}},e.doNext=function(){var t=e.getCurrentFormName();if(t&&e[t]){if(e[t].$submitted=!0,!e[t].$valid)return;if("pseudoForm"===t&&e.uiAlreadyUsed)return;"passwordForm"===t&&e.showAccountPubkey()}e.slideNext(),e.slideBehavior=e.computeSlideBehavior()},e.doPrev=function(){e.slidePrev(),e.slideBehavior=e.computeSlideBehavior()},e.doNewAccount=function(n){if(!n){var o="member"===e.accountType?"ACCOUNT.NEW.CONFIRMATION_MEMBER_ACCOUNT":"ACCOUNT.NEW.CONFIRMATION_WALLET_ACCOUNT";return r.alert.confirm(o,void 0,{cssClass:"warning",okText:"member"==e.accountType?"COMMON.BTN_SEND":"COMMON.BTN_CONTINUE",okType:"button-assertive"}).then((function(t){t&&e.doNewAccount(!0)}))}var s=function(e){return function(t){throw parameter.uid?m.unauth().then((function(){r.onError(e)(t)})):m.logout().then((function(){r.onError(e)(t)})),new Error("CANCELLED")}};return r.loading.show(),m.login({auth:!0,isNew:!0,method:"SCRYPT_DEFAULT",expectedPubkey:e.formData.pubkey,showMethods:!1}).then((function(){if("member"===e.accountType){e.closeModal(),l.data.wallet=l.data.wallet||{},l.data.wallet.alertIfUnusedWallet=!1;var n=angular.isUndefined(p.uid)||angular.isUndefined(p.blockUid)||p.uid.toUpperCase()!==e.formData.pseudo.toUpperCase();return n||m.setSelf(p.uid,p.blockUid),(n?m.self(e.formData.pseudo,!1).catch(s("ERROR.SEND_IDENTITY_FAILED")):i.when()).then((function(){return m.membership.inside().catch((function(e){e&&e.ucode!=d.errorCodes.MEMBERSHIP_ALREADY_SEND||s("ERROR.SEND_MEMBERSHIP_IN_FAILED")(e)}))})).then((function(){return e.closeModal(),m.isDefault()?t.go("app.view_wallet"):t.go("app.view_wallet_by_id",{id:m.id})})).then((function(){return a((function(){return m.isDataLoaded({requirements:!0})&&r.loading.hide(),e.downloadRevocationRegistration()}),2e3)}))}e.closeModal(),m.isDefault()?t.go("app.view_wallet"):t.go("app.view_wallet_by_id",{id:m.id})})).catch((function(e){r.loading.hide(),"CANCELLED"!==e&&(e&&e.ucode!=d.errorCodes.MEMBERSHIP_ALREADY_SEND?console.error("[wallet] Node: already membership",e):r.alert.error("ERROR.UNKNOWN_ERROR"))}))},e.downloadRevocationRegistration=function(){return r.alert.confirm("DOWNLOAD.POPUP_REVOKE_MESSAGE","DOWNLOAD.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_DOWNLOAD",okType:"button-assertive",cancelText:"COMMON.BTN_LATER"}).then((function(e){if(e)return m.downloadRevocation()}))},e.showHelpModal=function(e){c.showHelp({anchor:e})},e.startListenLicenseBottom=function(){var t=angular.element(document.querySelector(".modal #iframe-license"));if(!(t=t&&t.length?t[0]:void 0)||!t.contentWindow)return console.debug("[join] Waiting license frame to be load..."),a(e.startListenLicenseBottom,1e3);e.licenseBottomInterval=n((function(){var n=t.contentWindow.document.body.scrollTop;t.contentWindow.document.body.scrollHeight-t.contentWindow.document.body.clientHeight===n&&(e.isLicenseRead=!0,e.stopListenLicenseBottom())}),1e3)},e.stopListenLicenseBottom=function(){e.licenseBottomInterval&&(n.cancel(e.licenseBottomInterval),delete e.licenseBottomInterval)},e.$on("modal.hidden",e.stopListenLicenseBottom),e.checkUid=function(){if(!e.formData.pseudo||e.formData.pseudo.length<3)return e.formData.computing=!1,void delete e.uiAlreadyUsed;var t=e.formData.pseudo.toUpperCase();if(e.formData.computing=!0,p.uid&&t===p.uid.toUpperCase())return e.formData.computing=!1,void(e.uiAlreadyUsed=!1);d.wot.lookup({search:t}).then((function(n){e.uiAlreadyUsed=(n.results||[]).some((function(e){return(e.uids||[]).some((function(e){return e.uid.toUpperCase()===t}))})),e.formData.computing=!1})).catch((function(t){console.error(t),e.formData.computing=!1,e.uiAlreadyUsed=!1}))},e.$watch("formData.pseudo",e.checkUid,!0),e.checkAccountAvailable=function(){if(!p.pubkey)return delete e.accountAvailable,d.tx.sources({pubkey:e.formData.pubkey}).then((function(t){e.accountAvailable=!t||!t.sources.length})).catch((function(t){console.error(t),e.accountAvailable=!1}));e.accountAvailable=!0},e.identifierRecovery=function(){e.slides.slider.unlockSwipes();for(var t=0;t<2;t++)e.slides.slider.slidePrev();e.slides.slider.lockSwipes(),e.slideBehavior=e.computeSlideBehavior()}}function u(e,t,n,i){angular.extend(this,n("HomeCtrl",{$scope:e})),e.showLoginModal=function(){return e.loading?t(e.showLoginModal,500):i.isLogin()||e.error?void 0:t(i.login,300)},e.$on("$ionicView.enter",e.showLoginModal)}function d(e,t,n,i,a,o,r,s,l,c,u,d,p){p=p||{},e.computing=!1,e.pubkey=null,e.formData={},e.showPubkey=!1,e.showComputePubkeyButton=!1,e.autoComputePubkey=!1,e.pubkeyPattern="^(:?{0}|{1})$".format(l.constants.regexp.PUBKEY,l.constants.regexp.PUBKEY_WITH_CHECKSUM),e.isAuth=p.auth,e.okText=p.okText,e.title=p.title||(e.isAuth?"AUTH.TITLE":"LOGIN.TITLE"),e.showMethods=!angular.isDefined(p.showMethods)||p.showMethods,e.showNewAccountLink=!angular.isDefined(p.showNewAccountLink)||p.showNewAccountLink,e.expectedPubkey=p.expectedPubkey,e.expectedUid=p.uid,e.scryptParamsValues=_.keys(a.constants.SCRYPT_PARAMS).reduce((function(e,t){return e.concat({id:t,label:"LOGIN.SCRYPT."+t,params:a.constants.SCRYPT_PARAMS[t]})}),[{id:"USER",label:"LOGIN.SCRYPT.USER",params:{}}]),e.init=function(){r().then((function(){e.autoComputePubkey="a"===ionic.Platform.grade.toLowerCase()&&!s.screen.isSmall()})),e.formData.rememberMe=u.data.rememberMe,e.formData.keepAuthIdle=u.data.keepAuthIdle,e.formData.keepAuth=e.formData.keepAuthIdle==u.constants.KEEP_AUTH_IDLE_SESSION;var t=p.method||u.data.login&&u.data.login.method||"SCRYPT_DEFAULT",n=u.data.login&&u.data.login.params;(e.isAuth&&"PUBKEY"===t||"SCAN"===t||"default"===t)&&(t="SCRYPT_DEFAULT"),e.changeMethod(t,n)},e.enter=function(){s.loading.hide(),s.ink({selector:".modal-login .ink"})},e.$on("modal.shown",e.enter),e.leave=function(){e.formData={},e.computing=!1,e.pubkey=null,e.methods=[]},e.$on("modal.hide",e.leave),e.doLogin=function(n){var i=e.formData.method;if(e.form.$valid||"SCAN"===i){d.keyboard.close();var r,c=e.formData.keepAuthIdle;if("SCRYPT_DEFAULT"===i||"SCRYPT_ADVANCED"===i){if(!e.formData.username||!e.formData.password)return;var m=e.formData.scrypt&&e.formData.scrypt.params;s.loading.show(),r=a.scryptKeypair(e.formData.username,e.formData.password,m).then((function(t){if(!t)return s.loading.hide(10);var n=a.util.encode_base58(t.signPk);return p.expectedPubkey&&p.expectedPubkey!=n?(e.pubkey=n,e.showPubkey=!0,e.pubkeyError=!0,s.loading.hide(10)):(e.pubkeyError=!1,{pubkey:n,keypair:t,params:e.formData.scrypt&&"SCRYPT_DEFAULT"!=e.formData.scrypt.id?m:void 0})})).catch(s.onError("ERROR.CRYPTO_UNKNOWN_ERROR"))}else if("FILE"===i){if(!e.formData.file||!e.formData.file.valid||!e.formData.file.pubkey)return;c=e.formData.keepAuth&&u.constants.KEEP_AUTH_IDLE_SESSION||c,r=s.loading.show().then((function(){return e.readKeyFile(e.formData.file,{withSecret:e.isAuth||e.formData.keepAuth})})).then((function(t){if(!t)return s.loading.hide(10);var n=a.util.encode_base58(t.signPk);return p.expectedPubkey&&p.expectedPubkey!=n?(e.formData.file.valid=!1,s.loading.hide(10)):(e.pubkeyError=!1,{pubkey:n,keypair:t})})).catch(s.onError("ERROR.AUTH_FILE_ERROR"))}else if("PUBKEY"===i){var E=e.formData.pubkey&&e.formData.pubkey.trim(),b=e.formData.uid&&e.formData.uid.trim()||void 0;if(!E)return;var g=l.regexp.PUBKEY.exec(E);if(g)r=s.loading.show().then((function(){return{pubkey:E,uid:b}}));else{if(!(g=l.regexp.PUBKEY_WITH_CHECKSUM.exec(E)))return e.showWotLookupModal(E);E=g[1],g[2]!=o.util.pkChecksum(E)?e.form.pubkey.$error={checksum:!0}:r=s.loading.show().then((function(){return{pubkey:E,uid:b}}))}}else if("SCAN"===i){if(!e.formData.pubkey||e.isAuth&&!e.formData.keypair)return;r=s.loading.show().then((function(){return{pubkey:e.formData.pubkey,keypair:e.formData.keypair}}))}if(r)return r.then((function(n){if(n){var a=!angular.equals(u.data.rememberMe,e.formData.rememberMe),o=!angular.equals(u.data.keepAuthIdle,c),r=!angular.equals(u.data.login&&u.data.login.method,i),l=!angular.equals(u.data.login&&u.data.login.params,n.params);return(a||o||r||l)&&(u.data.rememberMe=e.formData.rememberMe,u.data.keepAuthIdle=c,u.data.useLocalStorage=!!u.data.rememberMe||u.data.useLocalStorage,u.data.login=u.data.login||{},u.data.login.method=i,u.data.login.params=n.params,t(u.store,500)),p.success&&p.success(e.formData),p.silent&&s.loading.hide(),e.closeModal(n)}}));console.warn("[login] unknown method: ",i)}},e.onScryptFormChanged=function(){e.computing||(e.pubkey=null,e.pubkeyError=!1,e.showPubkey=!!e.formData.username&&!!e.formData.password,e.autoComputePubkey&&e.showPubkey?(e.computePubkey(),e.showComputePubkeyButton=!1):e.showComputePubkeyButton=!e.autoComputePubkey&&e.showPubkey)},e.$watch("formData.username + formData.password",e.onScryptFormChanged,!0),e.computePubkey=function(){return e.showComputePubkeyButton=!1,e.computing=!0,e.pubkey=null,t((function(){var t=e.formData.username,n=e.formData.password,i=e.formData.scrypt&&e.formData.scrypt.params;return a.scryptSignPk(t,n,i).then((function(i){if(t!==e.formData.username||n!==e.formData.password)return e.computePubkey();e.pubkey=a.util.encode_base58(i),e.expectedPubkey&&e.expectedPubkey!=e.pubkey&&(e.pubkeyError=!0),e.computing=!1})).catch((function(t){s.onError("ERROR.CRYPTO_UNKNOWN_ERROR")(t),e.computing=!1,e.autoComputePubkey=!1,e.onScryptFormChanged()}))}),100)},e.showJoinModal=function(){e.closeModal(),t((function(){c.showJoin()}),300)},e.showAccountSecurityModal=function(){e.closeModal(),t((function(){c.showAccountSecurity()}),300)},e.showHelpModal=function(e){return c.showHelp(e)},e.doScan=function(){if(!e.computing)return e.computing=!0,e.formData.pubkey=null,e.formData.keypair=null,d.barcode.scan().then((function(t){if(t)return e.isAuth?n.when(t):l.uri.parse(t).then((function(e){if(!e||!e.pubkey)throw{message:"ERROR.SCAN_UNKNOWN_FORMAT"};return e})).catch((function(e){return console.debug("[login] Error while parsing as URI: "+(e&&e.message||e)),t}))})).then((function(e){if(e)return e&&e.pubkey?e:o.keyfile.parseData(e,{silent:!0}).then((function(e){if(!e||!e.signPk||!e.signSk)throw{message:"ERROR.SCAN_UNKNOWN_FORMAT"};return{pubkey:a.base58.encode(e.signPk),keypair:e}})).catch(s.onError("ERROR.SCAN_UNKNOWN_FORMAT"))})).then((function(t){t&&t.pubkey&&(e.pubkeyError=e.expectedPubkey&&e.expectedPubkey!=t.pubkey,e.formData.pubkey=t.pubkey,e.formData.keypair=t.keypair)})).then((function(){e.computing=!1,s.loading.hide(10)})).catch((function(t){e.computing=!1,s.onError("ERROR.SCAN_FAILED")(t)}))},e.changeMethod=function(t,n){if(e.hideMethodsPopover(),t&&t!=e.formData.method)if(console.debug("[login] method is: "+t),e.formData.method=t,e.formData.uid=null,e.form&&delete e.form.$submitted,"SCRYPT_DEFAULT"==t||"SCRYPT_ADVANCED"==t){var i;e.pubkey=null,n?(i=_.find(e.scryptParamsValues,(function(e){return e.params&&angular.equals(e.params,n)})))||((i=_.findWhere(e.scryptParamsValues,{id:"USER"})||{}).params=n):i=_.findWhere(e.scryptParamsValues,{id:"DEFAULT"}),e.changeScrypt(i),e.autoComputePubkey=e.autoComputePubkey&&"SCRYPT_DEFAULT"==t}else{if("SCAN"==t)return e.doScan();e.formData.username=null,e.formData.password=null,e.formData.pubkey=null,e.pubkey=null,e.computing=!1}},e.changeScrypt=function(t){e.formData.scrypt=angular.copy(t||{}),e.onScryptFormChanged()},e.readKeyFile=function(n,i){return(i=i||{}).password=i.password||e.formData.file.password||function(){return e.formData.file.password=void 0,c.showPassword({title:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.TITLE",subTitle:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.HELP",error:i.error,scope:e}).then((function(n){return e.formData.file.password=n,t((function(){return n}),150)}))},o.keyfile.read(e.formData.file,i).catch((function(t){if(e.formData.file.password=void 0,"CANCELLED"===t&&s.loading.hide(10),t&&t.ucode==o.errorCodes.BAD_PASSWORD)return e.readKeyFile(e.formData.file,{withSecret:i.withSecret,error:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_PASSWORD"});throw t}))},e.fileChanged=function(n){e.validatingFile=!0,e.formData.file=n&&n.target&&n.target.files&&n.target.files.length&&n.target.files[0],e.formData.file?t((function(){return console.debug("[login] key file changed: ",e.formData.file),e.validatingFile=!0,e.readKeyFile(e.formData.file,{withSecret:!1,password:e.formData.file.password}).then((function(t){t&&t.signPk?(e.formData.file.pubkey=a.util.encode_base58(t.signPk),e.formData.file.valid=!e.expectedPubkey||e.expectedPubkey==e.formData.file.pubkey,e.validatingFile=!1):(e.formData.file.valid=!1,e.formData.file.pubkey=void 0)})).catch((function(t){t&&"CANCELLED"===t?e.removeKeyFile():(e.validatingFile=!1,e.formData.file.valid=!1,e.formData.file.pubkey=void 0,s.onError("ERROR.AUTH_FILE_ERROR")(t))}))})):e.validatingFile=!1},e.onKeyFileDrop=function(n){n&&n.fileData&&(e.formData.file={name:n.fileData.name,size:n.fileData.size,content:n.fileContent},e.validatingFile=!0,t((function(){return e.readKeyFile(e.formData.file,{withSecret:!1}).then((function(t){t&&t.signPk?(e.formData.file.pubkey=a.util.encode_base58(t.signPk),e.formData.file.valid=!e.expectedPubkey||e.expectedPubkey==e.formData.file.pubkey,e.validatingFile=!1):(e.formData.file.valid=!1,e.formData.file.pubkey=void 0)})).catch((function(t){e.validatingFile=!1,e.formData.file.valid=!1,e.formData.file.pubkey=void 0,s.onError("ERROR.AUTH_FILE_ERROR")(t)}))})))},e.removeKeyFile=function(){e.formData.file=void 0},e.showWotLookupModal=function(n){return c.showWotLookup({q:n}).then((function(n){if(n&&n.pubkey)return e.formData.pubkey=n.pubkey,e.formData.uid=n.uid||void 0,t(e.doLogin,300)}))},e.showMethodsPopover=function(t){t.defaultPrevented||s.popover.show(t,{templateUrl:"templates/login/popover_methods.html",scope:e,autoremove:!0,afterShow:function(t){e.methodsPopover=t,s.ink({selector:".popover-login-methods .item"})}})},e.hideMethodsPopover=function(){e.methodsPopover&&(e.methodsPopover.hide(),e.methodsPopover=null)},e.init()}function p(e,t){angular.extend(this,t("LoginModalCtrl",{$scope:e,parameters:{auth:!0}})),e.setForm=function(t){e.form=t}}function m(e,t,n,i,a){e.$on("$ionicView.enter",(function(o){e.locale=a.data.locale.id,t.stateParams&&t.stateParams.anchor&&(e.anchor=t.stateParams.anchor,n((function(){i(t.stateParams.anchor)}),100))}))}function E(e,t,n,i,a){e.itemsClass={},e.locale=i.data.locale.id,(a=a||{})&&"string"==typeof a&&(a={anchor:a}),a.anchor&&(t((function(){n(a.anchor)}),100),e.itemsClass={},e.itemsClass[a.anchor]="selected",e.listClass="selection")}function b(e,t,n,i,a,o,r,s,l,c,u,d,p,m){e.tour=!1,e.continue=!0,e.executeStep=function(t,n,i){if((i=angular.isDefined(i)?i:0)>=n.length)return o.when(!0);var a=n[i];if("function"!=typeof a)throw new Error("[helptip] Invalid step at index {0} of '{1}' tour: step must be a function".format(i,t));var r=a();return"boolean"==typeof r&&(r=o.when(r)),r.then((function(a){return angular.isUndefined(a)?(e.continue=!1,i):a&&i!==n.length-1?e.executeStep(t,n,i+1):a?-1:i+1})).catch((function(n){return n&&"transition prevented"==n.message?console.error("ERROR: in help tour [{0}], in step [{1}] -> use large if exists, to prevent [transition prevented] error".format(t,i)):console.error("ERROR: in help tour  [{0}], in step [{1}] : {2}".format(t,i,n)),e.continue=!1,i}))},e.showHelpTip=function(t,n){return(n=n||{}).bindings=n.bindings||{},n.bindings.value=n.bindings.value||"",n.bindings.hasNext=!angular.isDefined(n.bindings.hasNext)||n.bindings.hasNext,n.timeout=n.timeout||(p.enable?900:500),n.autoremove=!0,n.bindings.tour=e.tour,n.backdropClickToClose=!e.tour,s.popover.helptip(t,n)},e.showHelpModal=function(e){Modals.showHelp({anchor:e})},e.startHelpTour=function(){return e.tour=!0,e.continue=!0,e.startCurrencyTour(0,!0).then((function(t){return!(!t||e.cancelled)&&(c.data.helptip.currency=t,c.store(),e.continue)})).then((function(t){return!!t&&e.startNetworkTour(0,!0).then((function(t){return!(!t||e.cancelled)&&(c.data.helptip.network=t,c.store(),e.continue)}))})).then((function(t){return!!t&&e.startWotLookupTour(0,!0).then((function(t){return!(!t||e.cancelled)&&(c.data.helptip.wotLookup=t,c.store(),e.continue)}))})).then((function(t){return!!t&&e.startWotTour(0,!0).then((function(t){return!(!t||e.cancelled)&&(c.data.helptip.wot=t,c.store(),e.continue)}))})).then((function(t){return!!t&&e.startWotCertTour(0,!0).then((function(t){return!!t&&(c.data.helptip.wotCerts=t,c.store(),e.continue)}))})).then((function(t){return!!t&&e.startWalletNoLoginTour(0,!0)})).then((function(t){return!!t&&(!m.isLogin()||e.startWalletTour(0,!0).then((function(t){return!!t&&(c.data.helptip.wallet=t,c.store(),e.continue)})))})).then((function(t){return!!t&&(!m.isLogin()||e.startWalletCertTour(0,!0).then((function(t){return!!t&&(c.data.helptip.walletCerts=t,c.store(),e.continue)})))})).then((function(t){return!!t&&(!m.isLogin()||e.startTxTour(0,!0).then((function(t){return!!t&&(c.data.helptip.tx=t,c.store(),e.continue)})))})).then((function(t){return!!t&&e.startHeaderTour(0,!0)})).then((function(t){return!!t&&e.startSettingsTour(0,!0)})).then((function(t){return!!t&&e.finishTour()}))},e.startCurrencyTour=function(n,a){var o,l=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-currency",{bindings:{content:"HELP.TIP.MENU_BTN_CURRENCY",icon:{position:"left"}}})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go(s.screen.isSmall()?"app.currency":"app.currency_lg").then((function(){return e.showHelpTip("helptip-currency-mass-member",{bindings:{content:"HELP.TIP.CURRENCY_MASS",icon:{position:"center"}}})}))},function(){return!c.data.useRelative||e.showHelpTip("helptip-currency-mass-member-unit",{bindings:{content:"HELP.TIP.CURRENCY_UNIT_RELATIVE",contentParams:o,icon:{position:s.screen.isSmall()?"right":"center"}}})},function(){return r("helptip-currency-rules-anchor"),e.showHelpTip("helptip-currency-rules",{bindings:{content:"HELP.TIP.CURRENCY_RULES",icon:{position:"center",glyph:"ion-information-circled"}}})},function(){return t.is("app.currency.tab_parameters")&&t.go("app.currency.tab_wot"),r("helptip-currency-newcomers-anchor"),e.showHelpTip("helptip-currency-newcomers",{bindings:{content:"HELP.TIP.CURRENCY_WOT",icon:{position:"center"},hasNext:a},timeout:1200})}];return u.get().then((function(t){return o=t.parameters,e.executeStep("currency",l,n)}))},e.startNetworkTour=function(o,r){var d=function(){t.is("app.currency")&&a((function(){var e=n.document.querySelectorAll("ion-tabs .tabs a");e&&3==e.length&&angular.element(e[2]).triggerHandler("click")}),100)},p=[function(){return!!s.screen.isSmall()||(i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-network",{bindings:{content:"HELP.TIP.MENU_BTN_NETWORK",icon:{position:"left"}}}))},function(){return i.isOpen()&&i.toggleLeft(!1),t.go(s.screen.isSmall()?"app.currency.tab_network":"app.network").then((function(){return d(),e.showHelpTip("helptip-network-peers",{bindings:{content:"HELP.TIP.NETWORK_BLOCKCHAIN",icon:{position:"center",glyph:"ion-information-circled"}},timeout:1200})}))},function(){return d(),e.showHelpTip("helptip-network-peer-0",{bindings:{content:"HELP.TIP.NETWORK_PEERS",icon:{position:s.screen.isSmall()?void 0:"center"}},timeout:1e3,retry:20})},function(){return d(),e.showHelpTip("helptip-network-peer-0-block",{bindings:{content:"HELP.TIP.NETWORK_PEERS_BLOCK_NUMBER",icon:{position:s.screen.isSmall()?void 0:"center"}}})},function(){d();var t=c.data.locale.id;return e.showHelpTip("helptip-network-peers",{bindings:{content:"HELP.TIP.NETWORK_PEERS_PARTICIPATE",contentParams:{installDocUrl:l.helptip&&l.helptip.installDocUrl?l.helptip.installDocUrl[t]?l.helptip.installDocUrl[t]:l.helptip.installDocUrl:"http://duniter.org"},icon:{position:"center",glyph:"ion-information-circled"},hasNext:r}})}];return u.parameters().then((function(t){return e.executeStep("network",p,o)}))},e.startWotLookupTour=function(o,r){var l=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-wot",{bindings:{content:"HELP.TIP.MENU_BTN_WOT",icon:{position:"left"}},onError:"continue"})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go(s.screen.isSmall()?"app.wot_lookup.tab_search":"app.wot_lookup_lg").then((function(){return e.showHelpTip("helptip-wot-search-text",{bindings:{content:s.screen.isSmall()?"HELP.TIP.WOT_SEARCH_TEXT_XS":"HELP.TIP.WOT_SEARCH_TEXT",icon:{position:"center"}}})}))},function(){return e.showHelpTip("helptip-wot-search-result-0",{bindings:{content:"HELP.TIP.WOT_SEARCH_RESULT",icon:{position:"center"}},timeout:700,retry:15})},function(){var t=n.document.getElementById("helptip-wot-search-result-0");return!t||(a((function(){angular.element(t).triggerHandler("click")})),e.showHelpTip("helptip-wot-view-certifications",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFICATIONS",hasNext:r},timeout:2500}))}];return e.executeStep("wotLookup",l,o)},e.startWotTour=function(t,n){var i,a=[function(){return e.showHelpTip("helptip-wot-view-certifications",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFICATIONS_COUNT",contentParams:i,icon:{position:"center",glyph:"ion-information-circled"}}})},function(){return e.showHelpTip("helptip-wot-view-certifications-count",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFICATIONS_CLICK",icon:{position:"center"},hasNext:n}})}];return u.get().then((function(n){return(i=n.parameters).currentUD=n.currentUD,e.executeStep("wot",a,t)}))},e.startWotCertTour=function(i,o){var r=[function(){if(t.is("app.wot_identity")){var i=n.document.getElementById("helptip-wot-view-certifications");if(!i)return!0;a((function(){angular.element(i).triggerHandler("click")}))}return e.showHelpTip(s.screen.isSmall()?"fab-certify":"helptip-certs-certify",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFY",icon:{position:s.screen.isSmall()?"bottom-right":"center"}},timeout:s.screen.isSmall()?2e3:1e3,retry:10})},function(){return e.showHelpTip(s.screen.isSmall()?"fab-certify":"helptip-certs-certify",{bindings:{content:"HELP.TIP.CERTIFY_RULES",icon:{position:"center",glyph:"ion-alert-circled"},hasNext:o}})}];return e.executeStep("certs",r,i)},e.startWalletNoLoginTour=function(t,n){if(m.isLogin())return o.when(!0);var a=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-account",{bindings:{content:"HELP.TIP.MENU_BTN_ACCOUNT",icon:{position:"left"},hasNext:n}})}];return e.executeStep("wallet-no-login",a,t)},e.startWalletTour=function(n,a){if(!m.isLogin())return o.when(!0);var l=m.data.isMember||m.data.requirements&&m.data.requirements.pendingMembership,c=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-account",{bindings:{content:m.data.isMember?"HELP.TIP.MENU_BTN_ACCOUNT_MEMBER":"HELP.TIP.MENU_BTN_ACCOUNT",icon:{position:"left"}}})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go("app.view_wallet").then((function(){return e.showHelpTip(s.screen.isSmall()?"helptip-wallet-options-xs":"helptip-wallet-options",{bindings:{content:"HELP.TIP.WALLET_OPTIONS",icon:{position:s.screen.isSmall()?"right":"center"}}})}))},function(){return r("helptip-wallet-pubkey"),e.showHelpTip("helptip-wallet-pubkey",{bindings:{content:"HELP.TIP.WALLET_PUBKEY",icon:{position:"center"},hasNext:!l&&a},timeout:s.screen.isSmall()?2e3:500,retry:10})},function(){return l?(r("helptip-wallet-certifications"),e.showHelpTip("helptip-wallet-certifications",{bindings:{content:s.screen.isSmall()?"HELP.TIP.WALLET_RECEIVED_CERTIFICATIONS":"HELP.TIP.WALLET_CERTIFICATIONS",icon:{position:"center"},hasNext:a},timeout:500,onError:"continue"})):a}];return c.length!=d.wallet.stepCount&&console.error("[help] Invalid value of 'csHelpConstants.wallet.stepCount'. Please update to {0}".format(c.length)),u.get().then((function(t){return t.parameters.currentUD=t.currentUD,e.executeStep("wallet",c,n)}))},e.startWalletCertTour=function(i,r){if(!m.isLogin())return o.when(!0);var l=!1,c=[function(){if(t.is("app.view_wallet")){var i=n.document.getElementById("helptip-wallet-certifications");if(!i)return l=!0,!0;a((function(){angular.element(i).triggerHandler("click")}))}return!s.screen.isSmall()||e.showHelpTip("helptip-received-certs",{bindings:{content:"HELP.TIP.WALLET_RECEIVED_CERTS"}})},function(){return!(!l&&s.screen.isSmall())||t.go("app.view_wallet").then((function(){return e.showHelpTip("helptip-wallet-given-certifications",{bindings:{content:"HELP.TIP.WALLET_GIVEN_CERTIFICATIONS",icon:{position:"center"}},timeout:500})}))},function(){if(l)return!0;if(t.is("app.view_wallet")){var i=n.document.getElementById("helptip-wallet-given-certifications");if(!i)return l=!0,!0;a((function(){angular.element(i).triggerHandler("click")}),500)}return e.showHelpTip(s.screen.isSmall()?"fab-select-certify":"helptip-certs-select-certify",{bindings:{content:"HELP.TIP.WALLET_CERTIFY",icon:{position:s.screen.isSmall()?"bottom-right":"center"}},timeout:s.screen.isSmall()?2e3:500,retry:10})},function(){return e.tour||l?r:e.showHelpTip("helptip-certs-stock",{bindings:{content:"HELP.TIP.CERTIFY_RULES",icon:{position:"center",glyph:"ion-alert-circled"},hasNext:r}})}];return u.parameters().then((function(t){return e.executeStep("certs",c,i)}))},e.startTxTour=function(n,a){if(!m.isLogin())return o.when(!0);var r,s=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-tx",{bindings:{content:m.data.isMember?"HELP.TIP.MENU_BTN_TX_MEMBER":"HELP.TIP.MENU_BTN_TX",icon:{position:"left"}}})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go("app.view_wallet_tx").then((function(){return e.showHelpTip("helptip-wallet-balance",{bindings:{content:c.data.useRelative?"HELP.TIP.WALLET_BALANCE_RELATIVE":"HELP.TIP.WALLET_BALANCE",contentParams:r,icon:{position:"center"}},retry:20})}))},function(){return e.showHelpTip("helptip-wallet-balance",{bindings:{content:"HELP.TIP.WALLET_BALANCE_CHANGE_UNIT",contentParams:r,icon:{position:"center",glyph:"ion-information-circled"}}})}];return u.get().then((function(t){return(r=t.parameters).currentUD=t.currentUD,e.executeStep("tx",s,n)}))},e.startHeaderTour=function(t,r){if(s.screen.isSmall())return o.when(!0);function l(){var e=n.document.querySelectorAll("#helptip-header-bar-btn-profile");return e&&e.length?_.find(e,(function(e){return e.offsetWidth>0})):null}var c=[function(){if(s.screen.isSmall())return!0;var t=l();return!t||e.showHelpTip(t,{bindings:{content:"HELP.TIP.HEADER_BAR_BTN_PROFILE",icon:{position:"right"}}})},function(){if(s.screen.isSmall())return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-settings",{bindings:{content:"HELP.TIP.MENU_BTN_SETTINGS",icon:{position:"left"},hasNext:r},timeout:1e3});var t=l();return!t||(a((function(){angular.element(t).triggerHandler("click")})),e.showHelpTip("helptip-popover-profile-btn-settings",{bindings:{content:"HELP.TIP.MENU_BTN_SETTINGS",icon:{position:"center"},hasNext:r},timeout:1e3}).then((function(t){return e.closeProfilePopover(),t})))}];return e.executeStep("header",c,t)},e.startSettingsTour=function(n,a){var o,r=[function(){return!s.screen.isSmall()||(i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-settings",{bindings:{content:"HELP.TIP.MENU_BTN_SETTINGS",icon:{position:"left"}},timeout:1e3}))},function(){return i.isOpen()&&i.toggleLeft(!1),t.go("app.settings").then((function(){return e.showHelpTip("helptip-settings-btn-unit-relative",{bindings:{content:"HELP.TIP.SETTINGS_CHANGE_UNIT",contentParams:o,icon:s.screen.isSmall()?{position:"right",style:"margin-right: 60px"}:{position:"center"},hasNext:a},timeout:1e3})}))}];return u.parameters().then((function(t){return o=t,e.executeStep("settings",r,n)}))},e.finishTour=function(){return i.isOpen()&&i.toggleLeft(!1),m.isLogin()?t.go("app.view_wallet").then((function(){return e.showHelpTip("helptip-wallet-pubkey",{bindings:{content:"HELP.TIP.END_LOGIN",hasNext:!1},timeout:1200})})):o.all([e.showHome(),u.parameters().then((function(e){n=e}))]).then((function(){return e.showHelpTip("helptip-home-logo",{bindings:{content:"HELP.TIP.END_NOT_LOGIN",contentParams:n,hasNext:!1}})}));var n}}function g(e){e.$on("$ionicView.enter",(function(t,n){e.startHelpTour()}))}function f(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,f){var T;e.loading=!0,e.settings=b.data,e.qrcodeId="qrcode-wallet-"+e.$id,e.toggleQRCode=!1,e.enter=function(t,n){if(e.loading=e.loading||n.stateParams&&n.stateParams.refresh,e.enableSelectWallet=g.children.count()>0,e.loading)return(T=n.stateParams&&n.stateParams.id?g.children.get(n.stateParams.id):g)?(e.isDefaultWallet=T.isDefault(),e.walletId=T.id,e.cleanLocationHref(n),e.load()):(c.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome());c.loading.hide(),a(e.updateView,300)},e.$on("$ionicView.enter",e.enter),e.load=function(){if(T)return T.login().then((function(t){e.formData=t,e.loading=!1,e.updateView(),e.showQRCode(),T.isDefault()&&e.showHelpTip(),e.addListeners(),c.loading.hide()})).catch((function(t){"CANCELLED"===t&&e.showHome()}))},e.updateView=function(){e.motion.show({selector:"#wallet .item"}),e.$broadcast("$$rebind::rebind")},e.setRegisterForm=function(t){e.registerForm=t},e.onWalletLogout=function(){e.hideQRCode(),e.removeListeners(),delete e.formData,T=null,e.loading=!0},e.addListeners=function(){e.listeners=[T.api.data.on.logout(e,e.onWalletLogout),e.$watchCollection("formData.events",(function(t,n){!n||e.loading||angular.equals(t,n)||e.updateView()}))]},e.removeListeners=function(){_.forEach(e.listeners,(function(e){e()})),e.listeners=[]},e.showUidPopup=function(){return n((function(t,n){r(["ACCOUNT.NEW.TITLE","ACCOUNT.POPUP_REGISTER.TITLE","ACCOUNT.POPUP_REGISTER.HELP","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then((function(a){e.formData.newUid=e.formData.uid?""+e.formData.uid:"",i.show({templateUrl:"templates/wallet/popup_register.html",title:a["ACCOUNT.POPUP_REGISTER.TITLE"],subTitle:a["ACCOUNT.POPUP_REGISTER.HELP"],scope:e,buttons:[{text:a["COMMON.BTN_CANCEL"]},{text:a["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.registerForm.$submitted=!0,e.registerForm.$valid&&e.formData.newUid)return e.formData.newUid;t.preventDefault()}}]}).then((function(i){if(!i)return delete e.formData.uid,c.loading.hide(),void n("CANCELLED");t(i)}))}))}))},e.self=function(){return e.hideActionsPopover(),e.showUidPopup().then((function(t){if(t)return c.loading.show(),T.self(t).then((function(){e.updateView(),c.loading.hide()})).catch((function(t){c.onError("ERROR.SEND_IDENTITY_FAILED")(t).then((function(){e.self()}))}))}))},e.doMembershipIn=function(t){return T.membership.inside().then((function(){e.updateView(),c.loading.hide()})).catch((function(n){if("CANCELLED"===n)throw n;if(n&&n.ucode!=m.errorCodes.MEMBERSHIP_ALREADY_SEND)return console.error("[wallet] Node: already membership",n),void c.loading.hide();if(!t||t<=2)return a((function(){return e.doMembershipIn((t||0)+1)}),1e3);throw n}))},e.membershipIn=function(t){if(e.hideActionsPopover(),T.isMember())return c.alert.info("INFO.NOT_NEED_MEMBERSHIP");var n=angular.isDefined(e.formData.blockUid)&&e.formData.uid||void 0;return d.showJoinMember({uid:n,blockUid:n&&e.formData.blockUid,pubkey:e.formData.pubkey}).catch((function(e){"CANCELLED"!==e&&(T.data.uid?c.onError("ERROR.SEND_MEMBERSHIP_IN_FAILED")(e):c.onError("ERROR.SEND_IDENTITY_FAILED")(e))}))},e.membershipOut=function(t,n){return e.hideActionsPopover(),t?n?(c.loading.show(),T.membership.out().then((function(){c.loading.hide(),c.toast.show("INFO.MEMBERSHIP_OUT_SENT")})).catch(c.onError("ERROR.SEND_MEMBERSHIP_OUT_FAILED"))):c.alert.confirm("CONFIRM.MEMBERSHIP_OUT_2","CONFIRM.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"}).then((function(t){t&&e.membershipOut(!0,!0)})):c.alert.confirm("CONFIRM.MEMBERSHIP_OUT","CONFIRM.POPUP_WARNING_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"}).then((function(t){t&&e.membershipOut(!0)}))},e.doUpdate=function(t){return console.debug("[wallet] Refreshing data..."),(t?T.refreshData():c.loading.show().then(T.refreshData).then(c.loading.hide)).then(e.updateView).catch(c.onError("ERROR.REFRESH_WALLET_DATA"))},e.renewMembership=function(t){return T.isMember()||e.formData.requirements.wasMember?t||e.formData.requirements.needRenew?T.auth({minData:!0}).then((function(){return c.loading.hide(),c.alert.confirm("CONFIRM.RENEW_MEMBERSHIP")})).then((function(t){if(t)return c.loading.show(),e.doMembershipIn()})).catch((function(e){"CANCELLED"!==e&&(c.loading.hide(),c.alert.error(e))})):r("CONFIRM.NOT_NEED_RENEW_MEMBERSHIP",{membershipExpiresIn:e.formData.requirements.membershipExpiresIn}).then((function(e){return c.alert.confirm(e)})).then((function(t){if(t)return e.renewMembership(!0)})):c.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")},e.fixIdentity=function(){if(e.formData.uid)return n.all([T.auth(),r("CONFIRM.FIX_IDENTITY",{uid:e.formData.uid})]).then((function(e){return c.alert.confirm(e[1])})).then((function(t){if(t)return c.loading.show(),e.formData.blockUid=null,e.formData.sigDate=null,T.self(e.formData.uid)})).then(e.doMembershipIn).catch((function(e){"CANCELLED"!==e&&(c.loading.hide(),c.alert.error(e))}))},e.fixMembership=function(){if(e.formData.uid)return T.isMember()?c.alert.info("INFO.NOT_NEED_MEMBERSHIP"):(e.hideActionsPopover(),T.auth({silent:!0}).then((function(){c.alert.confirm("CONFIRM.FIX_MEMBERSHIP")})).then((function(t){if(t)return c.loading.show(),e.formData.blockUid=null,e.formData.sigDate=null,T.self(e.formData.uid,!1)})).then(e.doMembershipIn).catch((function(e){"CANCELLED"!==e&&(c.loading.hide(),c.alert.error(e))})))},e.doQuickFix=function(t){"renew"===t?e.renewMembership():"membership"===t?e.membershipIn(!0):"fixMembership"===t?e.fixMembership(!1):"fixIdentity"===t&&e.fixIdentity()};var h=e.logout;e.logout=function(t){if(e.isDefaultWallet)return h(t)},e.startWalletTour=function(){return e.hideActionsPopover(),f.wallet.tour()},e.showHelpTip=function(){return f.wallet.helptip()},e.showQRCode=function(t){e.qrcode?(e.qrcode.clear(),e.qrcode.makeCode(e.formData.pubkey),c.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100)):(e.qrcode=new QRCode(e.qrcodeId,{text:e.formData.pubkey,width:180,height:180,correctLevel:QRCode.CorrectLevel.L}),c.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100))},e.hideQRCode=function(){e.qrcode&&(e.qrcode.clear(),c.motion.toggleOff({selector:"#"+e.qrcodeId}))},e.showCertifications=function(){e.isDefaultWallet?o.go(c.screen.isSmall()?"app.wallet_cert":"app.wallet_cert_lg",{type:"received"}):o.go(c.screen.isSmall()?"app.wallet_cert_by_id":"app.wallet_cert_lg_by_id",{id:e.walletId,type:"received"})},e.showGivenCertifications=function(){e.isDefaultWallet?o.go(c.screen.isSmall()?"app.wallet_cert":"app.wallet_cert_lg",{type:"given"}):o.go(c.screen.isSmall()?"app.wallet_cert_by_id":"app.wallet_cert_lg_by_id",{id:e.walletId,type:"given"})},e.showTxHistory=function(){o.go(e.isDefaultWallet?"app.view_wallet_tx":"app.view_wallet_tx_by_id",{id:e.walletId})},e.showLicenseModal=function(){return u.show("templates/currency/modal_license.html","CurrencyLicenseModalCtrl")},e.showTransferModal=function(){if(e.formData.balance&&e.formData.balance>0||g.children.count())return d.showTransfer({wallet:T.id}).then((function(t){t&&(c.toast.show("INFO.TRANSFER_SENT"),e.$broadcast("$$rebind::balance"),e.motion.show({selector:".item-pending"}))}));c.alert.info("INFO.NOT_ENOUGH_CREDIT")},e.showSecurityModal=function(){return e.hideActionsPopover(),d.showAccountSecurity({wallet:T}).then((function(t){if(t)return"self"===t?e.self():"membershipIn"===t?e.membershipIn():void 0}))},e.showSelectIdentitiesModal=function(){return e.hideActionsPopover(),d.showSelectPubkeyIdentity({identities:[e.formData.requirements].concat(e.formData.requirements.alternatives)}).then((function(t){if(t&&t.uid)return e.loading=!0,T.setSelf(t.uid,t.blockUid).then((function(){e.loading=!1,e.updateView(),c.loading.hide()}))}))},e.showSelectWalletModal=function(){if(g.children.count())return d.showSelectWallet({parameters:{showDefault:!0,showBalance:!1,excludedWalletId:e.walletId}}).then((function(t){if(t&&(!T||t.id!==T.id))return e.removeListeners(),e.loading=!0,T=t,console.debug("[transfer] Using wallet {"+T.id+"}"),e.formData={},e.load()}))},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"templates/wallet/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showSharePopover=function(n){e.hideActionsPopover();var i=e.formData.name||e.formData.uid||e.formData.pubkey,a=(E.shareBaseUrl||t.rootPath)+o.href("app.wot_identity",{pubkey:e.formData.pubkey,uid:e.formData.uid});c.screen.isSmall()&&(n=angular.element(document.querySelector("#wallet-share-anchor"))||n),c.popover.share(n,{bindings:{url:a,titleKey:"WOT.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:i},postMessage:i}})},e.showSelectWalletPopover=function(t){return p.showSelectWallet(t,{parameters:{excludedWalletId:e.walletId}}).then((function(t){if(t&&t.id!==e.walletId)return t.isDefault()?o.go("app.view_wallet"):o.go("app.view_wallet_by_id",{id:t.id})}))},e.cleanLocationHref=function(e){e&&e.stateParams&&e.stateParams.refresh&&a((function(){var t=angular.copy(e.stateParams);delete t.refresh,delete t.id,l.search(t).replace()}),300)}}function T(e,t,n,i,a,o,r,s,l,c,u,d,p,m){var E;e.loading=!0,e.settings=u.data,e.listeners=[],e.enter=function(t,n){if(e.loading=e.loading||n.stateParams&&n.stateParams.refresh,e.enableSelectWallet=p.children.count()>0,e.loading)return(E=n.stateParams&&n.stateParams.id?p.children.get(n.stateParams.id):p)?(e.walletId=E.id,e.cleanLocationHref(n),e.load()):(o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome());e.addListeners(),i(e.updateView,300)},e.$on("$ionicView.enter",e.enter),e.leave=function(){e.removeListeners()},e.$on("$ionicView.leave",e.leave),e.load=function(){if(E){var t=E.isDataLoaded({minData:!0}),n={requirements:!t,minData:!t,sources:!0,tx:{enable:!0}};return E.login(n).then((function(t){e.formData=t,e.loading=!1,e.updateView(),e.showFab("fab-transfer"),E.isDefault()&&e.showHelpTip(),e.addListeners(),o.loading.hide()})).catch((function(t){"CANCELLED"===t&&e.showHome()}))}},e.cleanLocationHref=function(e){e&&e.stateParams&&e.stateParams.refresh&&i((function(){var t=angular.copy(e.stateParams);delete t.refresh,delete t.id,a.search(t).replace()}),300)},e.updateView=function(){e.formData&&!e.loading&&(e.$broadcast("$$rebind::balance"),e.$broadcast("$$rebind::rebind"),e.motion.show({selector:".view-wallet-tx .item",ink:!1}))},e.downloadHistoryFile=function(t){(t=t||{}).fromTime=t.fromTime||-1;var n=e.formData.pubkey;m.downloadHistoryFile(n,t)},e.doUpdate=function(t){console.debug("[wallet] TX history reloading...");var n={sources:!0,tx:{enable:!0,fromTime:e.formData&&e.formData.tx&&e.formData.tx.fromTime||void 0},api:!1};return(t?E.refreshData(n):o.loading.show().then((function(){return E.refreshData(n)})).then(o.loading.hide)).then(e.updateView).catch(o.onError("ERROR.REFRESH_WALLET_DATA"))},e.addListeners=function(){e.listeners=[E.api.data.on.balanceChanged(e,e.updateView),e.$watch("settings.useRelative",e.updateView,!0),e.$watch("settings.showUDHistory",(function(t,n){e.formData&&!e.loading&&t!==n&&e.doUpdate()}),!0)],e.settings.walletHistoryAutoRefresh&&e.listeners.push(d.api.data.on.newBlock(e,(function(t){e.loading||(console.debug("[wallet] Received new block. Will reload history."),i((function(){e.doUpdate(!0)}),500))})))},e.removeListeners=function(){_.forEach(e.listeners,(function(e){e()})),e.listeners=[]},e.showTransferModal=function(){if(e.formData.balance&&e.formData.balance>0||p.children.count())return r.showTransfer({wallet:E.id}).then((function(t){t&&(o.toast.show("INFO.TRANSFER_SENT"),e.$broadcast("$$rebind::balance"),e.motion.show({selector:".item-pending"}))}));o.alert.info("INFO.NOT_ENOUGH_CREDIT")},e.showHelpTip=function(e,t){},e.showTxErrors=function(t){return E.isDefault()?e.goState("app.view_wallet_tx_errors"):e.goState("app.view_wallet_tx_errors_by_id",{id:E.id})},e.showMoreTx=function(t){return t=t||e.formData.tx.fromTime-u.data.walletHistoryTimeSecond||c.date.now()-2*u.data.walletHistoryTimeSecond,o.loading.show(),E.refreshData({tx:{enable:!0,fromTime:t}}).then((function(){e.updateView(),o.loading.hide()})).catch((function(n){n.ucode==l.errorCodes.HTTP_LIMITATION?i((function(){return e.showMoreTx(t)}),2e3):o.onError("ERROR.REFRESH_WALLET_DATA")(n)}))},e.showSelectWalletModal=function(){if(p.children.count())return r.showSelectWallet({parameters:{showDefault:!0,showBalance:!1,excludedWalletId:e.walletId}}).then((function(t){if(t&&(!E||t.id!==E.id))return e.removeListeners(),e.loading=!0,E=t,console.debug("[transfer] Using wallet {"+E.id+"}"),e.formData={},e.load()}))},e.toUnlockUIArray=function(t,n,i){return n=n||0,!t.children||"AND"!=t.type&&"OR"!=t.type?{style:{"padding-left":n+"px"},operator:i,type:t.type,value:t.value}:t.children.reduce((function(i,a,o){return a.children&&o>0?(i=i.concat({style:{"padding-left":n+"px","padding-top":"10px","padding-bottom":"10px"},operator:t.type})).concat(e.toUnlockUIArray(a,n+10)):i.concat(e.toUnlockUIArray(a,n+10,o&&t.type))}),[])},e.showLockedOutputsPopover=function(t,n){t.lockedOutputs&&(e.popoverData=e.popoverData||{},e.popoverData.lockedOuputs=t.lockedOutputs.reduce((function(t,n){return t.concat({amount:n.amount,unlockFunctions:n.unlockFunctions,unlockConditions:e.toUnlockUIArray(n.unlockTree)})}),[]),o.popover.show(n,{templateUrl:"templates/wallet/tx_locked_outputs_popover.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}}))},e.hideLockedOutputsPopover=function(){e.lockedOutputsPopover&&(e.lockedOutputsPopover.hide(),e.popoverData&&delete e.popoverData.unlockConditions,e.lockedOutputsPopover=null)},e.showSelectWalletPopover=function(t){return s.showSelectWallet(t,{scope:e}).then((function(t){if(t&&t.id!==E.id)return t.isDefault()?e.goState("app.view_wallet_tx"):e.goState("app.view_wallet_tx_by_id",{id:t.id})}))},e.goState=function(t,i){return e.hideLockedOutputsPopover(),n.go(t,i)}}function h(e,t,n,i){var a;e.settings=n.data,e.loading=!0,e.formData={},e.$on("$ionicView.enter",(function(n,o){return(a=o.stateParams&&o.stateParams.id?i.children.get(o.stateParams.id):i)?e.load():(t.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())})),e.load=function(){if(a)return a.login().then((function(n){e.formData=n,e.loading=!1,e.doMotion(),t.loading.hide()}))},e.doUpdate=function(n){return e.loading=!0,(n?a.refreshData():t.loading.show().then(i.refreshData).then(t.loading.hide)).then((function(){e.doMotion(),e.loading=!1})).catch((function(n){t.onError("ERROR.REFRESH_WALLET_DATA")(n),e.loading=!1}))},e.filterReceivedTx=function(e){return e.amount&&e.amount>0},e.filterSentTx=function(e){return e.amount&&e.amount<0},e.hasReceivedTx=function(){return e.formData.tx&&_(e.formData.tx.errors||[]).find(e.filterReceivedTx)&&!0},e.hasSentTx=function(){return e.formData.tx&&_(e.formData.tx.errors||[]).find(e.filterSentTx)&&!0}}function v(e,t,n,i,a){var o=a&&a.wallet||n;e.slides={slider:null,options:{loop:!1,effect:"slide",speed:500}},e.isLastSlide=!1,e.smallscreen=t.screen.isSmall(),e.recover={},e.isValidFile=!1,e.login=o.isLogin(),e.hasSelf=o.hasSelf(),e.needSelf=e.login&&o.data.requirements.needSelf,e.canRevoke=e.login&&e.hasSelf&&!o.data.requirements.revoked,e.needMembership=e.login&&o.data.requirements.needMembership,e.option=e.login?"saveID":"recoverID",e.formData={addQuestion:"",level:"4",questions:[]};for(var r=[],s=1;s<20;s++)r.push("ACCOUNT.SECURITY.QUESTION_"+s.toString());i(r).then((function(t){_.each(t,(function(t){e.formData.questions.push({value:t,checked:!1})}))})),e.slidePrev=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slidePrev(),e.slides.slider.lockSwipes(),e.isLastSlide=!1},e.slideNext=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slideNext(),e.slides.slider.lockSwipes(),e.isLastSlide=3===e.slides.slider.activeIndex&&("saveID"==e.option||"recoverID"==e.option)||2===e.slides.slider.activeIndex&&"revocation"==e.option},e.doNext=function(n){if(!n)switch(e.slides.slider.activeIndex){case 1:switch(e.option){case"saveID":n="questionsForm";break;case"recoverID":e.isValidFile?(e.slideNext(),e.hasContent=!1,e.fileData=""):t.alert.error("ERROR.NOT_VALID_SAVE_ID_FILE","ERROR.LOAD_FILE_FAILED")}break;case 2:switch(e.option){case"recoverID":n="recoverForm";break;case"saveID":n="answersForm"}}if(n){if(e[n].$submitted=!0,!e[n].$valid)return;switch(n){case"recoverForm":e.recoverId();break;case"answersForm":e.downloadSaveIDFile();break;default:e.slideNext()}}},e.selectOption=function(t){e.option=t,e.slideNext()},e.restore=function(){1===e.slides.slider.activeIndex&&"saveID"===e.option?(e.formData={addQuestion:"",level:"4",questions:[]},i(r).then((function(t){_.each(t,(function(t){e.formData.questions.push({value:t,checked:!1})}))}))):2===e.slides.slider.activeIndex&&"saveID"===e.option?_.each(e.formData.questions,(function(e){e.answer=void 0})):1===e.slides.slider.activeIndex&&"recoverID"===e.option?(e.hasContent=!1,e.recover={},e.fileData="",e.isValidFile=!1):2===e.slides.slider.activeIndex&&"recoverID"===e.option?_.each(e.recover.questions,(function(e){e.answer=void 0})):2===e.slides.slider.activeIndex&&"revocation"===e.option&&(e.isValidFile=!1,e.hasContent=!1,e.revocation=void 0)},e.recoverContent=function(t){if(e.hasContent=angular.isDefined(t)&&""!==t,e.fileData=t.fileData?t.fileData:"",e.isValidFile=""!==e.fileData&&"text/plain"==e.fileData.type,e.isValidFile&&"recoverID"===e.option){e.content=t.fileContent.split("\n");var n=_.indexOf(e.content,"Questions: "),i=-1;_.each(e.content,(function(t,n){/^Issuer:/.test(t)?i=n:/^Crypted-Nonce:/.test(t)?e.recover.cypherNonce=t.split(" ")[1]:/^Crypted-Pubkey:/.test(t)?e.recover.cypherPubkey=t.split(" ")[1]:/^Crypted-Salt:/.test(t)?e.recover.cypherSalt=t.split(" ")[1]:/^Crypted-Pwd:/.test(t)&&(e.recover.cypherPwd=t.split(" ")[1])})),e.recover.questions=[];for(var a=n+1;a<i;a++)e.recover.questions.push({value:e.content[a]})}else e.isValidFile&&"revocation"===e.option&&(e.revocation=t.fileContent)},e.recoverId=function(){if(e.recoverForm.$valid)return e.recover.answer="",_.each(e.recover.questions,(function(t){e.recover.answer+=t.answer})),o.recoverId(e.recover).then((function(n){angular.isDefined(n)?(e.recover=n,e.slideNext()):t.alert.error("ERROR.RECOVER_ID_FAILED")}))},e.addQuestion=function(){""!==e.formData.addQuestion&&(e.formData.questions.push({value:e.formData.addQuestion,checked:!0}),e.formData.addQuestion="")},e.downloadSaveIDFile=function(){var n;return o.auth({forceAuth:!0,expectedPubkey:e.pubkey,silent:!0,success:function(e){n=e}}).catch((function(e){e&&"CANCELLED"===e||t.alert.error("ERROR.SALT_OR_PASSWORD_NOT_CONFIRMED","ERROR.LOGIN_FAILED")})).then((function(t){if(t){var i={file:_.filter(e.formData.questions,(function(e){return e.checked}))},a={salt:n.username,pwd:n.password,questions:"",answer:""};return _.each(i.file,(function(e){a.questions+=e.value+"\n",a.answer+=e.answer})),o.getCryptedId(a).then((function(t){o.downloadSaveId(t),e.closeModal()}))}}))},e.isRequired=function(){return _.filter(e.formData.questions,(function(e){return e.checked})).length<e.formData.level},e.revokeWithFile=function(){e.isValidFile?e.revokeIdentity():t.alert.error("ERROR.NOT_VALID_REVOCATION_FILE","ERROR.LOAD_FILE_FAILED")},e.downloadRevokeFile=function(){return o.auth({forceAuth:!0}).then((function(){return o.downloadRevocation()})).then((function(){t.loading.hide()})).catch((function(e){e&&"CANCELLED"===e||t.onError("ERROR.DOWNLOAD_REVOCATION_FAILED")(e)}))},e.revokeWalletIdentity=function(){return e.hasSelf?o.auth({forceAuth:!0}).then((function(n){if(t.loading.hide(),n)return e.revokeIdentity()})).catch((function(e){"CANCELLED"!==e&&t.onError("ERROR.REVOCATION_FAILED")(e)})):t.alert.error("ERROR.ONLY_SELF_CAN_EXECUTE_THIS_ACTION")},e.revokeIdentity=function(n){return n?t.loading.show().then((function(){return e.revocation?o.revokeWithFile(e.revocation):o.revoke()})).then((function(){return t.toast.show("INFO.REVOCATION_SENT"),e.closeModal(),t.loading.hide()})).catch(t.onError("ERROR.REVOCATION_FAILED")):t.alert.confirm("CONFIRM.REVOKE_IDENTITY","CONFIRM.POPUP_WARNING_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"}).then((function(e){if(e)return t.alert.confirm("CONFIRM.REVOKE_IDENTITY_2","CONFIRM.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"})})).then((function(t){t&&e.revokeIdentity(!0,!0)}))},e.self=function(){return e.closeModal("self")},e.membershipIn=function(){return e.closeModal("membershipIn")},e.downloadKeyFile=function(n){return o.auth({forceAuth:!0}).then((function(){return o.downloadKeyFile(n)})).then((function(){return t.loading.hide(),e.closeModal()})).catch((function(e){e&&"CANCELLED"===e?t.loading.hide():t.onError("ERROR.DOWNLOAD_KEYFILE_FAILED")(e)}))}}function I(e,t,n,i,a,o,r,s){e.loading=!0,e.wallets=null,e.formData={useRelative:o.data.useRelative,showDefault:!0,showBalance:!1,balance:void 0,updatingWalletId:void 0,stopped:!1,minData:!0},e.motion=null,e.setParameters=function(t){t=t||{},e.formData.useRelative=angular.isDefined(t.useRelative)?t.useRelative:e.formData.useRelative,e.formData.showBalance=angular.isDefined(t.showBalance)?t.showBalance:e.formData.showBalance,e.formData.minData=angular.isDefined(t.minData)?t.minData:e.formData.minData,e.formData.excludedWalletId=t.excludedWalletId,e.formData.showDefault=(angular.isDefined(t.showDefault)?t.showDefault:e.formData.showDefault)&&"default"!==e.formData.excludedWalletId},e.load=function(n){n=n||{},e.loading=!1!==n.silent,e.formData.balance=void 0,e.formData.updatingWalletId=void 0,e.formData.stopped=!1;var o=[];o.push(r.name().then((function(t){return e.currency=t,a.ready()}))),e.defaultWallet=e.formData.showDefault?s:void 0,e.wallets||o.push(s.children.all().then((function(t){e.wallets=t,i.loading.hide()})));var l={silent:!0,minData:e.formData.minData,sources:e.formData.showBalance,tx:{enable:!1},api:!0},c=!1,u=0,d=Date.now(),p=0;return(o.length?t.all(o):t.when()).then((function(){var i=e.formData.showDefault?[s].concat(e.wallets):e.wallets;if(i.length)return console.debug("[wallets] Loading {0} wallets...".format(i.length)),i.reduce((function(t,i){return!n.refresh&&i.isDataLoaded(l)?(console.debug("[wallets] Wallet #{0} already loaded. Skipping".format(i.id)),t.then((function(){p+=i.data.balance,e.updateWalletView(i.id)}))):(u++,t.then((function(){if(!e.formData.stopped){var t;if(e.formData.updatingWalletId=i.id,n.refresh&&i.data.loaded){var a=angular.merge({requirements:!i.data.requirements.loaded||i.data.requirements.isMember||i.data.requirements.wasMember||i.data.requirements.pendingMembership},l);t=i.refreshData(a)}else t=i.loadData(l);return t.then((function(t){p+=t.balance,e.updateWalletView(i.id)})).catch((function(e){console.error("[wallets] Error while loading data of wallet #{0}".format(i.id),e),c=!0})),t}})))}),t.when())})).then((function(){if(c)return i.alert.error("ERROR.LOAD_WALLET_LIST_FAILED").then((function(){e.resetData(),e.cancel()}));e.formData.stopped||(u&&console.debug("[wallets] Loaded data of {0} wallet(s) in {1}ms".format(u,Date.now()-d)),e.formData.balance=p,e.formData.updatingWalletId=void 0,e.loading=!1,i.loading.hide(),e.updateView())})).catch((function(t){if(e.resetData(),t&&"CANCELLED"===t)throw e.cancel(),t;return i.onError("ERROR.LOAD_WALLET_LIST_FAILED")(t)}))},e.filterFn=function(e){return function(t){return!e||t.id!==e.excludedWalletId}},e.resetData=function(){console.debug("[wallets] Cleaning wallet list"),e.wallets=null,e.loading=!0,e.entered=!1,e.formData.balance=void 0,e.formData.updatingWalletId=void 0},e.updateView=function(t){if(e.wallets&&e.wallets.length){var n=t&&" #wallet-"+t||"";e.motion?e.motion.show({selector:".list .item.item-wallet"+n,ink:!0}):i.ink({selector:".list .item.item-wallet"+n})}},e.updateWalletView=function(t){e.motion?e.motion.show({selector:".list #wallet-"+t,ink:!0}):i.ink({selector:".list #wallet-"+t})},e.doUpdate=function(i){return e.loading||!e.wallets||!e.wallets.length||e.formData.updatingWalletId?t.when():(e.selectPrevented=!0,n((function(){e.selectPrevented=!1}),1e3),e.load({silent:i,refresh:!0}).then((function(){e.loading=!1,e.selectPrevented=!1,i&&e.$broadcast("$$rebind::rebind"),e.updateView()})))},e.addNewWallet=function(n){return n?o.data.useLocalStorageEncryption&&!s.isAuth()?s.auth({minData:!0}).then((function(){return e.addNewWallet(n)})).catch((function(e){if("CANCELLED"===e)return i.loading.hide();i.onError("ERROR.ADD_SECONDARY_WALLET_FAILED")(e)})):s.api.data.raisePromise.load(n.data).catch(console.error).then((function(){e.addListenersOnWallet(n),s.children.add(n)})):t.reject("Missing 'wallet' argument")},e.showNewWalletModal=function(){var t=s.children.instance();return t.login({showNewAccountLink:!1,title:"ACCOUNT.WALLET_LIST.BTN_NEW",okText:"COMMON.BTN_ADD",minData:!0,sources:!0,api:!1,success:i.loading.show,method:"PUBKEY"}).then((function(n){if(n)return s.isUserPubkey(n.pubkey)?(i.loading.hide(),void i.alert.error("ERROR.COULD_NOT_ADD_MAIN_WALLET")):s.children.hasPubkey(n.pubkey)?(i.loading.hide(),void i.alert.error("ERROR.COULD_NOT_ADD_EXISTING_WALLET")):(console.debug("[wallet] Adding secondary wallet {"+n.pubkey.substring(0,8)+"}"),e.addNewWallet(t).then((function(){i.loading.hide(),e.updateView()})));i.loading.hide(100)})).catch((function(e){"CANCELLED"===e&&i.loading.hide()}))},e.addListenersOnWallet=function(e){},e.cancel=function(){console.warn("cancel() must be implement by subclass")},e.select=function(e,t){console.warn("select() must be implement by subclass")}}function N(e,t,n){angular.extend(this,t("WalletListAbstractCtrl",{$scope:e})),e.$on("modal.shown",(function(){e.setParameters(n),e.load()})),e.cancel=function(){e.closeModal()},e.select=function(t,n){t.isDefaultPrevented()||!n||e.selectPrevented||e.closeModal(n)},n&&e.setParameters(n)}function O(e,t,n,i,a,o,r,s,l,c,u,d,p,m){e.settings=p.data,e.listeners=[],angular.extend(this,t("WalletListAbstractCtrl",{$scope:e,parameters:{}})),e.formData.name=void 0,e.motion=c.motion.default,e.entered=!1,e.enter=function(t,n){if(!e.entered)return e.entered=!0,e.setParameters({showDefault:!0,showBalance:!0,minData:!1}),e.load().then((function(){c.loading.hide(),e.wallets&&(e.addListeners(),e.showFab("fab-add-wallet"))}));e.addListeners(),e.formData.stopped&&(e.loading=!1,e.formData.stopped=!1,e.formData.updatingWalletId=void 0,e.updateView())},e.$on("$ionicView.enter",e.enter),e.leave=function(){e.formData.stopped=!0,e.formData.updatingWalletId=void 0,e.loading=!1,e.removeListeners()},e.$on("$ionicView.leave",e.leave),e.cancel=function(){e.showHome()},e.select=function(t,i){t.isDefaultPrevented()||!i||e.selectPrevented||(i.isDefault()?n.go("app.view_wallet"):n.go("app.view_wallet_by_id",{id:i.id}),t.preventDefault())},e.editWallet=function(t,n){return t.preventDefault(),e.showEditPopup(n).then((function(t){if(t)return(p.data.useLocalStorageEncryption?m.auth({minData:!0}):a.when()).then((function(){n.data.localName=t,m.storeData(),c.loading.hide(),e.updateView()})).catch((function(e){if("CANCELLED"===e)return c.loading.hide();c.onError("ERROR.SAVE_WALLET_LIST_FAILED")(e)}))}))},e.downloadAsFile=function(){if(e.wallets)return m.children.downloadFile()},e.selectAndRemoveWallet=function(){return e.hideActionsPopover(),u.showSelectWallet({wallets:e.wallets,showDefault:!1}).then((function(t){if(t&&t.id)return(p.data.useLocalStorageEncryption?m.auth({minData:!0}):a.when()).then((function(){m.children.remove(t.id),c.loading.hide(),e.updateView()})).catch((function(e){if("CANCELLED"===e)return c.loading.hide();c.onError("ERROR.ADD_SECONDARY_WALLET_FAILED")(e)}))}))},e.showImportFileModal=function(){return e.hideActionsPopover(),l.show("templates/wallet/list/modal_import_file.html","WalletListImportModalCtrl").then((function(t){if(t&&t.length)return c.loading.show(),(p.data.useLocalStorageEncryption?m.auth({minData:!0}):a.when()).then((function(){return t.reduce((function(t,n){return t.then((function(){return function(t){console.debug("[wallet] Adding secondary wallet {"+t.pubkey.substring(0,8)+"}");var n=m.children.instance();return n.login({authData:t,minData:!0,sources:!0,api:!1,success:c.loading.show}).then((function(i){return i.localName=t.localName,e.addNewWallet(n)}))}(n)}))}),a.when())})).then((function(){c.loading.hide(),e.updateView()})).catch((function(e){if("CANCELLED"===e)return c.loading.hide();c.onError("ERROR.ADD_SECONDARY_WALLET_FAILED")(e)}))}))},e.setEditForm=function(t){e.editForm=t},e.showEditPopup=function(t){return a((function(n,i){o(["ACCOUNT.WALLET_LIST.EDIT_POPOVER.TITLE","ACCOUNT.WALLET_LIST.EDIT_POPOVER.HELP","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then((function(i){e.formData.name=t.data.localName||t.data.name||t.data.uid||t.data.pubkey.substring(0,8),s.show({templateUrl:"templates/wallet/list/popup_edit_name.html",title:i["ACCOUNT.WALLET_LIST.EDIT_POPOVER.TITLE"],subTitle:i["ACCOUNT.WALLET_LIST.EDIT_POPOVER.HELP"],scope:e,buttons:[{text:i["COMMON.BTN_CANCEL"]},{text:i["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.editForm.$submitted=!0,e.editForm.$valid&&e.formData.name)return e.formData.name;t.preventDefault()}}]}).then((function(t){if(!t)return delete e.formData.name,void c.loading.hide();n(t)}))}))}))},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"templates/wallet/list/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.onWalletLogout=function(){e.resetData(),e.removeListeners()},e.addListeners=function(){e.removeListeners(),e.listeners=[m.api.data.on.logout(e,e.onWalletLogout)],p.data.walletHistoryAutoRefresh&&e.listeners.push(d.api.data.on.newBlock(e,(function(t){e.loading||(console.debug("[wallet-list] Received new block. Will reload list."),i((function(){e.doUpdate(!0)}),300))}))),_.forEach(e.wallets||[],e.addListenersOnWallet)},e.addListenersOnWallet=function(t){t&&(e.listeners.push(t.api.data.on.unauth(e,e.updateView)),e.listeners.push(t.api.data.on.auth(e,(function(t,n){return i(e.updateView),n?n.resolve():a.when()}))))},e.removeListeners=function(){_.forEach(e.listeners,(function(e){e()})),e.listeners=[]};var E=e.updateView;e.updateView=function(){E(),e.$broadcast("$$rebind::rebind")};var b=e.updateWalletView;e.updateWalletView=function(t){b(t),e.$broadcast("$$rebind::rebind")},e.$watch("settings.useRelative",(function(t,n){e.formData&&!e.loading&&t!==n&&(e.formData.useRelative=p.data.useRelative,e.updateView())}),!0)}function R(e,t,n,i){angular.extend(this,t("WalletListAbstractCtrl",{$scope:e})),e.motion=null,e.$on("popover.shown",(function(){e.loading&&(e.setParameters(i),e.load())})),e.updateView=function(){e.wallets&&e.wallets.length&&(n.ink({selector:".popover-wallets .list .item"}),e.$broadcast("$$rebind::rebind"))},e.select=function(t,n){t.isDefaultPrevented()||!n||e.selectPrevented||e.closePopover(n)}}function A(e,t,n,i){e.hasContent=!1,e.content=null,e.fileData="",e.isValidFile=!1,e.validatingFile=!1,e.importFromFile=function(a){e.validatingFile=!0,e.hasContent=angular.isDefined(a)&&""!==a,e.fileData=a.fileData?a.fileData:"";var o=""!==e.fileData&&("text/csv"==e.fileData.type||"text/plain"==e.fileData.type||"application/vnd.ms-excel");if(!o)return console.error("[wallet] Import failed. Invalid file type: "+e.fileData.type),e.isValidFile=!1,void(e.validatingFile=!1);console.debug("[wallet] Parsing file to import...");var r=a.fileContent.split("\n");e.content=r.reduce((function(e,t){if(!t||!t.trim().length)return e;var a=t.split("\t",3)||void 0;if(a&&3!=a.length)return console.debug("[wallet] Import: skip invalid row: "+t),o=!1,e;var r={pubkey:a[0],uid:a[1],localName:a[2]};return n.regexp.PUBKEY.test(r.pubkey)?i.isUserPubkey(r.pubkey)?(console.debug("[wallet] Pubkey equals to main wallet. Skip this row: ",t),e):i.children.hasPubkey(r.pubkey)?(console.debug("[wallet] Pubkey already in wallet list. Skip this row",t),e):e.concat(r):(console.debug("[wallet] Invalid pubkey, found in this row: ",t),o=!1,e)}),[]),e.isValidFile=o,t((function(){e.validatingFile=!1}),250)},e.removeFile=function(){e.hasContent=!1,e.content=null,e.fileData="",e.isValidFile=!1,e.validatingFile=!1}}function S(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){e.search={text:"",loading:!0,type:null,results:[]},e.entered=!1,e.wotSearchTextId="wotSearchText",e.enableFilter=!0,e.enableWallets=!1,e.allowMultiple=!1,e.selection=[],e.showResultLabel=!0,e.parameters={},e.enter=function(t,n){if(e.entered)e.updateLocationHref(),e.search.results&&e.search.results.length&&e.motion.show({selector:".lookupForm .list .item",ink:!0});else{var a=angular.merge({},e.parameters,n&&n.stateParams);a&&a.q?(e.search.text=a.q,i((function(){e.doSearch()}),100)):a&&a.hash?(e.search.text="#"+a.hash,i((function(){e.doSearch()}),100)):i((function(){u.data.initPhase&&!a.type?e.doGetPending(0,void 0,!0):"newcomers"==a.type||!c.initPhase&&!a.type?e.doGetNewcomers(0,void 0,!0):"pending"==a.type?e.doGetPending(0,void 0,!0):"wallets"==a.type&&e.doGetWallets(0,void 0,!0)}),100),e.entered=!0,i(l.ink,100),e.showHelpTip()}},e.$on("$ionicView.enter",e.enter),e.resetWotSearch=function(){e.search={text:null,loading:!1,type:"newcomers",results:[]}},e.updateLocationHref=function(){},e.doSearchText=function(){e.doSearch(),e.updateLocationHref(),p.keyboard.close()},e.doSearch=function(){e.search.loading=!0;var t=e.search.text.trim();return l.screen.isSmall()&&t.length<3||!t.length?(e.search.results=void 0,e.search.loading=!1,e.search.type="none",e.search.total=void 0,n.when()):(e.search.type="text",b.search(t).then((function(n){if("text"==e.search.type&&e.search.text.trim()===t){if(!(n&&n.length||!m.regexp.PUBKEY.test(t)&&!m.regexp.PUBKEY_WITH_CHECKSUM.test(t)))return m.uri.parse(t).then((function(t){e.doDisplayResult([t])}));e.doDisplayResult(n);var i=_.countBy(n,(function(e){return e.divider?"divider":"results"}));e.search.total=i&&i.results||0}})).catch(l.onError("ERROR.WOT_LOOKUP_FAILED")))},e.doGetNewcomers=function(t,n,i){return t=t||0,(n=n||10)<10&&(n=10),e.hideActionsPopover(),e.search.loading=0===t,e.search.type="newcomers",t||i||e.updateLocationHref(),b.newcomers(t,n).then((function(i){return"newcomers"===e.search.type&&(e.doDisplayResult(i&&i.hits,t,n,i&&i.total),!0)})).catch((function(n){e.search.loading=!1,e.search.results=t>0?e.search.results:[],e.search.hasMore=!1,e.search.total=void 0,l.onError("ERROR.LOAD_NEWCOMERS_FAILED")(n)}))},e.doGetPending=function(t,n,i){t=t||0,(n=n||10)<10&&(n=10),e.hideActionsPopover(),e.search.loading=0===t,e.search.type="pending";var a=u.data.initPhase?b.all:b.pending;return t||i||e.updateLocationHref(),a(t,n).then((function(i){return"pending"==e.search.type&&(e.doDisplayResult(i&&i.hits,t,n,i&&i.total),e.search.hasMore=!u.data.initPhase&&e.search.hasMore,!0)})).catch((function(n){e.search.loading=!1,e.search.results=t>0?e.search.results:[],e.search.total=void 0,e.search.hasMore=!1,l.onError("ERROR.LOAD_PENDING_FAILED")(n)}))},e.doGetWallets=function(t,n,i){return t=t||0,(n=n||10)<10&&(n=10),e.hideActionsPopover(),e.search.loading=0===t,e.search.type="wallets",t||i||e.updateLocationHref(),E.children.all().then((function(i){if(!i||"wallets"!=e.search.type)return!1;var a=[E].concat(i).reduce((function(e,t,n){var i={id:n,pubkey:t.data.pubkey,uid:t.data.uid,name:t.data.localName||t.data.name,avatar:t.data.avatar};return e.concat(i)}),[]);return e.doDisplayResult(a,t,n,a.length),e.search.hasMore=!1,!0}))},e.showMore=function(){var t=e.search.results?e.search.results.length:0;return e.search.loadingMore=!0,("newcomers"==e.search.type?e.doGetNewcomers:e.doGetPending)(t).then((function(t){t&&(e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete"))})).catch((function(t){console.error(t),e.search.loadingMore=!1,e.search.hasMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.select=function(e){var n=e.state;!n&&e.pubkey&&(n=E.isUserPubkey(e.pubkey)?"app.view_wallet":"app.wot_identity"),n&&(s.nextViewOptions({historyRoot:!1,disableAnimate:!1,expire:300}),t.go(n,e.stateParams||e))},e.next=function(){console.warn("Selected identities (should be override):",e.selection)},e.toggleCheck=function(t,n){var i=e.search.results[t];i.checked?e.addToSelection(i):e.removeSelection(i,n)},e.toggleSelect=function(e){e.selected=!e.selected},e.addToSelection=function(t){var n=angular.copy(t);n.name&&(n.name=n.name.replace("<em>","").replace("</em>","")),e.selection.push(n)},e.removeSelection=function(t,n){var i=_.findWhere(e.selection,{id:t.id});if(i&&e.selection.splice(e.selection.indexOf(i),1),!e.search.loading){var a=_.findWhere(e.search.results,{id:t.id});a&&a.checked&&(a.checked=!1)}},e.scanQrCode=function(){p.barcode.enable&&p.barcode.scan().then((function(t){t&&m.uri.parse(t).then((function(n){n.pubkey?e.search.text=n.pubkey:t.uid?e.search.text=n.uid:e.search.text=t,e.doSearch()}))})).catch(l.onError("ERROR.SCAN_FAILED"))},e.showHelpTip=function(t){if(e.isLogin()&&!((t=angular.isDefined(t)?t:d.data.helptip.wotLookup)<0)){0===t&&(t=1);var n=e.createHelptipScope();if(n)return n.startWotLookupTour(t,!1).then((function(e){n.$destroy(),d.data.helptip.wotLookup=e,d.store()}))}},e.doDisplayResult=function(t,n,i,a){t=t||[],e.allowMultiple&&t.length&&e.selection.length&&_.forEach(e.selection,(function(e){var n=_.findWhere(t,{id:e.id});n&&(n.checked=!0)})),e.search.results=n?e.search.results.concat(t):t||[],e.search.total=angular.isDefined(a)?a:void 0,e.search.loading=!1,e.search.hasMore=e.search.results.length>=n+i,e.smallscreen=l.screen.isSmall(),e.search.results.length&&t.length>0&&e.motion&&e.motion.show({selector:".lookupForm .list .item",ink:!0})},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"templates/wot/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function C(e,t,n,i,a){angular.extend(this,t("WotLookupCtrl",{$scope:e})),a=a||{},e.search.loading=!1,e.enableFilter=!!angular.isDefined(a.enableFilter)&&a.enableFilter,e.enableWallets=!!angular.isDefined(a.enableWallets)&&i.isLogin()&&i.children.count()&&a.enableWallets,e.allowMultiple=!!angular.isDefined(a.allowMultiple)&&a.allowMultiple,e.parameters=a,e.showResultLabel=!1,e.wotSearchTextId="wotSearchTextModal",e.allowMultiple&&a.selection&&(e.selection=a.selection);var o=e.enter;e.enter=function(t){e.parameters&&e.parameters.q&&(e.search.text=e.parameters.q,e.parameters.q.trim().length>2&&o(t))},e.$on("modal.shown",e.enter),e.cancel=function(){e.closeModal()},e.select=function(t){e.closeModal({pubkey:t.pubkey,uid:t.uid,name:t.name&&t.name.replace(/<\/?em>/gi,"")})},e.next=function(){e.closeModal(e.selection)},e.updateLocationHref=function(){},e.showHelpTip=function(){}}function D(e,t,n,i,a,o,r,s,l,c,u,d,p){e.formData={hasSelf:!0},e.disableCertifyButton=!0,e.loading=!0,e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!r.screen.isSmall()||t.enableBack})),e.load=function(t,n,i){return d.load(t,n,i).then((function(n){if(!n)return r.onError("ERROR.IDENTITY_NOT_FOUND")().then(e.showHome);e.formData=n;var i=p.isLogin();e.revoked=n.requirements&&(n.requirements.revoked||n.requirements.pendingRevocation),e.canCertify=n.hasSelf&&!e.revoked&&(!i||!p.isUserPubkey(t)||p.children.count()>0),e.canSelectAndCertify=n.hasSelf&&(p.isUserPubkey(t)||p.children.hasPubkey(t));var a=i&&_.find((n.received_cert||[]).concat(n.received_cert_pending||[]),(function(e){return e.pubkey===p.data.pubkey&&e.valid&&e.expiresIn>c.data.timeWarningExpire}));e.alreadyCertified=!(!e.canCertify||!i||p.children.count()>0||!a),e.disableCertifyButton=e.alreadyCertified||e.revoked,e.loading=!1})).catch((function(t){e.loading=!1,r.onError("ERROR.LOAD_IDENTITY_FAILED")(t)}))},e.doUpdate=function(t){t||(e.loading=!0,r.loading.show());var n={cache:!1,blockUid:e.formData.blockUid||void 0};return e.load(e.formData.pubkey,e.formData.uid,n).then(r.loading.hide)},e.certify=function(){return(p.children.count()?s.showSelectWallet({displayBalance:!1}):o.when(p)).then((function(t){if(t)return t.auth({minData:!0}).then((function(n){if(r.loading.hide(),u.data.initPhase||n.isMember)if(u.data.initPhase||e.formData.hasSelf)if(e.formData.requirements.expired)r.alert.error("ERROR.IDENTITY_EXPIRED");else{var a=_.find(e.formData.received_cert,(function(e){return e.pubkey===t.data.pubkey&&e.valid&&e.expiresIn>c.data.timeWarningExpire}));a?i("ERROR.IDENTITY_ALREADY_CERTIFY",a).then((function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")})):(a=_.findWhere(e.formData.received_cert_pending,{pubkey:t.data.pubkey,valid:!0}))?i("ERROR.IDENTITY_ALREADY_CERTIFY_PENDING",a).then((function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")})):r.alert.confirm("CONFIRM.CERTIFY_RULES","CONFIRM.POPUP_SECURITY_WARNING_TITLE",{cssClass:"warning",okText:"WOT.BTN_YES_CERTIFY",okType:"button-assertive"}).then((function(n){n&&(r.loading.show(),t.certify(e.formData.uid,e.formData.pubkey,e.formData.blockUid||e.formData.requirements&&e.formData.requirements.meta&&e.formData.requirements.meta.timestamp,e.formData.requirements&&e.formData.requirements.meta&&e.formData.requirements.meta.sig,e.formData.isMember,e.formData.wasMember).then((function(n){r.loading.hide(),n&&(e.prepareNewCert(t,n),e.alreadyCertified=!0,r.toast.show("INFO.CERTIFICATION_DONE"),e.formData.received_cert_pending.unshift(n),e.formData.requirements.pendingCertificationCount++,e.doMotion())})).catch(r.onError("ERROR.SEND_CERTIFICATION_FAILED")))}))}else r.alert.error("ERROR.IDENTITY_TO_CERTIFY_HAS_NO_SELF");else r.alert.error(n.requirements.needSelf?"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY":"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF")})).catch((function(e){"CANCELLED"!==e&&r.onError("ERROR.LOGIN_FAILED")(e)}))}))},e.selectAndCertify=function(){return(p.children.count()?s.showSelectWallet({displayBalance:!1}):o.when(p)).then((function(t){return t.auth({minData:!0}).then((function(e){if(u.data.initPhase||e.isMember)return r.loading.hide(),s.showWotLookup();r.alert.error(e.requirements.needSelf||e.requirements.needMembership?"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY":"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF")})).then((function(e){if(e&&e.pubkey){if(e.uid){r.loading.show();var t={cache:!1,blockUid:e.blockUid};return d.load(e.pubkey,e.uid,t)}r.alert.error("ERROR.IDENTITY_TO_CERTIFY_HAS_NO_SELF")}})).then((function(n){if(n)if(r.loading.hide(),n&&n.hasSelf)if(n.requirements.expired)r.alert.error("ERROR.IDENTITY_EXPIRED");else{var a=_.findWhere(n.received_cert,{pubkey:t.data.pubkey,valid:!0});a?i("ERROR.IDENTITY_ALREADY_CERTIFY",a).then((function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")})):(a=_.findWhere(n.received_cert_pending,{pubkey:t.data.pubkey,valid:!0}))?i("ERROR.IDENTITY_ALREADY_CERTIFY_PENDING",a).then((function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")})):i("CONFIRM.CERTIFY_RULES_TITLE_UID",{uid:n.uid}).then((function(e){return r.alert.confirm("CONFIRM.CERTIFY_RULES",e)})).then((function(i){i&&(r.loading.show(),t.certify(n.uid,n.pubkey,n.blockUid||n.requirements&&n.requirements.meta&&n.requirements.meta.timestamp,n.requirements&&n.requirements.meta&&n.requirements.meta.sig,n.isMember,n.wasMember).then((function(t){if(r.loading.hide(),t)return d.extendAll([t],"pubkey").then((function(){r.toast.show("INFO.CERTIFICATION_DONE"),e.formData.given_cert_pending.unshift(t),e.doMotion()}))})).catch(r.onError("ERROR.SEND_CERTIFICATION_FAILED")))}))}else r.alert.error("ERROR.IDENTITY_TO_CERTIFY_HAS_NO_SELF")})).catch((function(e){"CANCELLED"!==e&&r.onError("ERROR.LOAD_IDENTITY_FAILED")(e)}))}))},e.prepareNewCert=function(e,t){t.uid=e.data.uid,t.pubkey=e.data.pubkey,t.isMember=e.data.isMember,t.avatar=e.data.avatar,t.name=e.data.name},e.removeActionParamInLocationHref=function(e){if(e&&e.stateParams&&e.stateParams.action){var t=angular.copy(e.stateParams);t.action=null,a.nextViewOptions({disableAnimate:!0,disableBack:!1,historyRoot:!1}),n.go(e.stateName,t,{reload:!1,inherit:!0,notify:!1})}},e.doAction=function(t,n){if("certify"==t)return e.certify();"transfer"==t&&e.showTransferModal(n)},e.showCertifications=function(){var t=e.formData.requirements&&e.formData.requirements.alternatives&&e.formData.blockUid||void 0;r.screen.isSmall()?n.go("app.wot_cert",{pubkey:e.formData.pubkey,uid:e.formData.uid,type:"received",block:t}):n.go("app.wot_cert_lg",{pubkey:e.formData.pubkey,uid:e.formData.uid,block:t})},e.showGivenCertifications=function(){var t=e.formData.requirements&&e.formData.requirements.alternatives&&e.formData.blockUid||void 0;r.screen.isSmall()?n.go("app.wot_cert",{pubkey:e.formData.pubkey,uid:e.formData.uid,type:"given",block:t}):n.go("app.wot_cert_lg",{pubkey:e.formData.pubkey,uid:e.formData.uid,block:t})},e.showSharePopover=function(i){var a=e.formData.name||e.formData.uid||e.formData.pubkey,o=(l.shareBaseUrl||t.rootPath)+n.href("app.wot_identity",{pubkey:e.formData.pubkey,uid:e.formData.uid});r.screen.isSmall()&&(i=angular.element(document.querySelector("#wot-share-anchor-"+e.formData.pubkey))||i),r.popover.share(i,{bindings:{url:o,titleKey:"WOT.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:a},postMessage:a}})}}function y(e,t,n,i,a,o,r,s){angular.extend(this,n("WotIdentityAbstractCtrl",{$scope:e})),e.motion=o.motion.fadeSlideInRight,e.qrcodeId="qrcode-wot-"+e.$id,e.$on("$ionicView.enter",(function(t,n){var a=function(){e.doMotion(),n.stateParams&&n.stateParams.action&&(i((function(){e.doAction(n.stateParams.action.trim())}),100),e.removeActionParamInLocationHref(n)),e.showQRCode()},o={cache:!0,blockUid:n.stateParams&&n.stateParams.block||void 0};if(n.stateParams&&n.stateParams.pubkey&&n.stateParams.pubkey.trim().length>0){if(e.loading)return e.load(n.stateParams.pubkey.trim(),n.stateParams.uid,o).then(a)}else if(n.stateParams&&n.stateParams.uid&&n.stateParams.uid.trim().length>0){if(e.loading)return e.load(null,n.stateParams.uid,o).then(a)}else e.showHome()})),e.doMotion=function(){e.motion.show({selector:".view-identity .list .item"}),e.showFab("fab-transfer"),(e.canCertify&&!e.alreadyCertified||t.tour)&&e.showFab("fab-certify-"+e.formData.uid),e.$broadcast("$csExtension.motion")},e.doQuickFix=function(t){if("showSelectIdentities"===t)return e.showSelectIdentities()},e.showSelectIdentities=function(){if(e.formData.requirements&&e.formData.requirements.alternatives)return r.showSelectPubkeyIdentity({identities:[e.formData.requirements].concat(e.formData.requirements.alternatives)}).then((function(e){if(e&&e.pubkey)return a.go("app.wot_identity",{pubkey:e.pubkey,uid:e.uid,block:e.meta&&e.meta.timestamp||e.blockUid})}))},e.showQRCode=function(t){e.qrcode?(e.qrcode.clear(),e.qrcode.makeCode(e.formData.pubkey),o.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100)):(e.qrcode=new QRCode(e.qrcodeId,{text:e.formData.pubkey,width:180,height:180,correctLevel:QRCode.CorrectLevel.L}),o.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100))},e.hideQRCode=function(){e.qrcode&&(e.qrcode.clear(),o.motion.toggleOff({selector:"#"+e.qrcodeId}))}}function P(e,t,n,i,a,o,r,s){e.formData={},e.loading=!0,e.motion=s.motion.fadeSlideInRight,e.$on("$ionicView.enter",(function(t,n){e.loading?(e.pubkey=n.stateParams.pubkey,e.uid=n.stateParams.uid,e.load()):e.updateView()})),e.load=function(t){return n.all([o.extend({pubkey:e.pubkey}),r.load(e.pubkey,t)]).then((function(t){e.formData=angular.merge(t[0],t[1]),e.loading=!1,e.updateView()}))},e.doUpdate=function(t){return console.debug("[wot] TX history reloading..."),e.formData={},(t?e.load():s.loading.show().then(e.load).then(s.loading.hide)).then(e.updateView).catch(s.onError("ERROR.IDENTITY_TX_FAILED"))},e.updateView=function(){e.$broadcast("$$rebind::balance"),e.$broadcast("$$rebind::rebind"),e.motion.show()},e.downloadHistoryFile=function(t){(t=t||{}).fromTime=t.fromTime||-1,r.downloadHistoryFile(e.pubkey,t)},e.showMoreTx=function(n){return n=n||e.formData.tx.fromTime-a.data.walletHistoryTimeSecond||moment().utc().unix()-2*a.data.walletHistoryTimeSecond,s.loading.show(),r.load(e.pubkey,n).then((function(t){angular.merge(e.formData,t),e.updateView(),s.loading.hide()})).catch((function(a){a.ucode==i.errorCodes.HTTP_LIMITATION?t((function(){return e.showMoreTx(n)}),2e3):s.onError("ERROR.IDENTITY_TX_FAILED")(a)}))}}function k(e,t,n,i,a,o){var r;angular.extend(this,n("WotIdentityAbstractCtrl",{$scope:e})),e.motions={receivedCertifications:angular.copy(o.motion.fadeSlideIn),givenCertifications:angular.copy(o.motion.fadeSlideInRight),avatar:angular.copy(o.motion.fadeIn)},e.motions.receivedCertifications.enable=!0,e.motions.givenCertifications.enable=!0,e.motions.avatar.enable=!0,e.$on("$ionicView.enter",(function(t,n){if(n.stateParams&&n.stateParams.type&&(e.motions.receivedCertifications.enable="given"!=n.stateParams.type,e.motions.givenCertifications.enable="given"==n.stateParams.type,e.motions.avatar.enable=!1),e.loading){var i={cache:!0,blockUid:n.stateParams&&n.stateParams.block||void 0};return n.stateParams&&n.stateParams.pubkey&&n.stateParams.pubkey.trim().length>0?e.load(n.stateParams.pubkey.trim(),n.stateParams.uid,i).then((function(){e.doMotion(),e.showHelpTip()})):(r=n.stateParams&&n.stateParams.id?a.children.get(n.stateParams.id):a)?r.isLogin()?e.load(r.data.pubkey,r.data.uid,i).then((function(){e.doMotion(),e.showHelpTip()})):e.showHome():(o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())}e.doMotion()})),e.$on("$ionicView.leave",(function(){e.loading=!0})),e.doUpdate=function(){var t={cache:!1,blockUid:e.formData.blockUid||void 0};return e.load(e.formData.pubkey,e.formData.uid,t).then((function(){e.doMotion(),e.showHelpTip()}))},e.doMotion=function(t){e.doMotionReceivedCertifications(0,t),e.motions.avatar.enable&&e.motions.avatar.show({selector:".col-avatar ."+e.motions.avatar.ionListClass}),e.doMotionGivenCertifications(e.motions.receivedCertifications.enable?100:10,t)},e.doMotionReceivedCertifications=function(n,i){e.motions.receivedCertifications.enable?(i||e.motions.receivedCertifications.show({selector:".list.certifications .item",timeout:n}),(e.canCertify&&!e.alreadyCertified||t.tour)&&e.showFab("fab-certify",n)):(e.canCertify||t.tour)&&e.hideFab("fab-certify",0)},e.doMotionGivenCertifications=function(n,i){e.motions.givenCertifications.enable?(i||e.motions.givenCertifications.show({selector:".list.given-certifications .item",timeout:n}),(e.canSelectAndCertify||t.tour)&&e.showFab("fab-select-certify")):(e.canSelectAndCertify||t.tour)&&e.hideFab("fab-select-certify",0)},e.showHelpTip=function(){if(e.isLogin()&&i.data.helptip.enable){var t=e.createHelptipScope();if(t){var n=a.isUserPubkey(e.formData.pubkey),o=n?i.data.helptip.walletCerts:i.data.helptip.wotCerts;if(!(o<0))return(n?t.startWalletCertTour(o,!1):t.startWotCertTour(o,!1)).then((function(e){t.$destroy(),n?i.data.helptip.walletCerts=e:i.data.helptip.wotCerts=e,i.store()}))}}}}function M(e,t,n,i){e.loading=!0,e.load=function(){return i&&i.identities?(e.identities=i.identities,e.pubkey=e.identities[0].pubkey,e.loading=!1,t.when()):(e.pubkey=i&&i.pubkey,pubkey?n.loadRequirements({pubkey,uid}).then((function(t){t&&t.requirements&&(e.identities=t.requirements,t.requirements.alternatives?e.identities=[t.requirements].concat(t.requirements.alternatives):e.identities=[t.requirements]),e.loading=!1})):t.reject("Missing parameters: [pubkey] or [identities]"))},e.$on("modal.shown",e.load)}function w(e,t,n,i,a,o,r,s,l,c,u,d,p){e.networkStarted=!1,e.ionItemClass="",e.expertMode=c.data.expertMode&&!s.screen.isSmall(),e.isHttps="https:"===a.location.protocol,e.search={text:"",loading:!0,type:void 0,results:[],endpoint:null,bma:void 0,ssl:void 0,ws2p:void 0,sort:void 0,asc:!0},e.compactMode=!0,e.listeners=[],e.helptipPrefix="helptip-network",e.enableLocationHref=!0,e.removeListeners=function(){e.listeners.length&&(console.debug("[network] Closing listeners"),_.forEach(e.listeners,(function(e){e()})),e.listeners=[])},e.enter=function(t,n){e.networkStarted||(e.networkStarted=!0,e.search.loading=!0,u.get().then((function(t){t&&(e.node=r.node.same(t.node.host,t.node.port)?r:r.instance(t.node.host,t.node.port),n&&n.stateParams&&(n.stateParams.type&&-1!=["mirror","member","offline"].indexOf(n.stateParams.type)&&(e.search.type=n.stateParams.type),n.stateParams.expert&&(e.expertMode="true"==n.stateParams.expert)),e.load())})).catch((function(t){s.onError("ERROR.GET_CURRENCY_FAILED")(t),e.networkStarted=!1})))},e.$on("$ionicParentView.enter",e.enter),e.leave=function(){e.networkStarted&&(e.removeListeners(),d.close(),e.networkStarted=!1,e.search.loading=!0)},e.$on("$ionicView.beforeLeave",e.leave),e.$on("$ionicParentView.beforeLeave",e.leave),e.$on("$destroy",e.leave),e.computeOptions=function(){return{filter:{member:!e.search.type||"member"===e.search.type,mirror:!e.search.type||"mirror"===e.search.type,endpoint:angular.isDefined(e.search.endpoint)?e.search.endpoint:null,bma:e.search.bma,ssl:e.search.ssl,ws2p:e.search.ws2p,online:!(e.search.type&&"offline"===e.search.type)},sort:{type:e.search.sort,asc:e.search.asc},expertMode:e.expertMode,timeout:l.timeout&&(e.expertMode?l.timeout/10:l.timeout/100)}},e.load=function(){e.search.loading&&(d.start(e.node,e.computeOptions()),e.refreshing=!1,e.listeners.push(d.api.data.on.changed(e,(function(t){e.refreshing||(e.refreshing=!0,p.extendAll(t.peers).then((function(){e.networkStarted&&e.updateView(t),e.refreshing=!1})))})))),e.showHelpTip()},e.updateView=function(t){console.debug("[peers] Updating UI"),e.$broadcast("$$rebind::rebind"),e.search.results=t.peers,e.search.memberPeersCount=t.memberPeersCount,e.search.loading=!e.networkStarted||d.isBusy(),e.loading||e.$broadcast("$$rebind::rebind"),e.motion&&e.search.results&&e.search.results.length>0&&e.motion.show({selector:".item-peer"})},e.refresh=function(){e.search.loading=!0,d.loadPeers()},e.sort=function(){e.search.loading=!0,e.refreshing=!0,d.sort(e.computeOptions()),e.updateView(d.data)},e.toggleSearchType=function(t){e.hideActionsPopover(),e.search.type===t||"none"===t?e.search.type=void 0:e.search.type=t,d.close(),e.search.loading=!0,e.load(),e.enableLocationHref&&n.search({type:e.search.type}).replace()},e.toggleSearchEndpoint=function(t){e.hideActionsPopover(),e.search.endpoint===t||null===t?e.search.endpoint=null:e.search.endpoint=t,e.sort()},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.sort()},e.toggleCompactMode=function(){e.compactMode=!e.compactMode,e.$broadcast("$$rebind::rebind")},e.selectPeer=function(n){if(n.compacted&&e.compactMode)e.toggleCompactMode();else if(n.online&&n.hasBma()){var i={server:n.getServer()};n.isSsl()&&(i.ssl=!0),n.isTor()&&(i.tor=!0),t.go("app.view_peer",i)}},e.$on("csView.action.refresh",(function(t,n){"peers"===n&&e.refresh()})),e.$on("csView.action.showActionsPopover",(function(t,n){e.showActionsPopover(n)})),e.showActionsPopover=function(t){s.popover.show(t,{templateUrl:"templates/network/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showEndpointsPopover=function(e,t,n){e.preventDefault(),e.stopPropagation();var i=t.getEndpoints(n);(i=(i||[]).reduce((function(e,i){var a=r.node.parseEndPoint(i)||r.node.parseEndPoint(i,n);return e.concat({label:"NETWORK.VIEW.NODE_ADDRESS",value:t.getServer(a)+(a&&a.path||"")})}),[])).length&&s.popover.show(e,{templateUrl:"templates/network/popover_endpoints.html",bindings:{titleKey:"NETWORK.VIEW.ENDPOINTS."+n,items:i}})},e.showWs2pPopover=function(e,t){return e.stopPropagation(),o("NETWORK.VIEW.PRIVATE_ACCESS").then((function(n){s.popover.show(e,{templateUrl:"templates/network/popover_endpoints.html",bindings:{titleKey:"NETWORK.VIEW.ENDPOINTS.WS2P",valueKey:"NETWORK.VIEW.NODE_ADDRESS",items:[{label:"NETWORK.VIEW.NODE_ADDRESS",value:t.bma.private?n:t.getServer()+(t.bma.path||"")},{label:"NETWORK.VIEW.WS2PID",value:t.bma.ws2pid},{label:"NETWORK.VIEW.POW_PREFIX",value:t.powPrefix}]}})}))},e.showHelpTip=function(t,n){if(t=angular.isDefined(t)?t:c.data.helptip.network,n=!!angular.isDefined(n)&&n,!(t<0)){var i=e.createHelptipScope();if(i)return i.tour=n,i.startNetworkTour(t,!1).then((function(e){i.$destroy(),n||(c.data.helptip.network=e,c.store())}))}}}function U(e,t,n){angular.extend(this,t("NetworkLookupCtrl",{$scope:e})),n=n||{},e.enableFilter=!angular.isDefined(n.enableFilter)||n.enableFilter,e.search.type=angular.isDefined(n.type)?n.type:e.search.type,e.search.endpoint=angular.isDefined(n.endpoint)?n.endpoint:e.search.endpoint,e.search.bma=angular.isDefined(n.bma)?n.bma:e.search.bma,e.search.ssl=angular.isDefined(n.ssl)?n.ssl:e.search.ssl,e.search.ws2p=angular.isDefined(n.ws2p)?n.ws2p:e.search.ws2p,e.expertMode=angular.isDefined(n.expertMode)?n.expertMode:e.expertMode,e.ionItemClass=n.ionItemClass||"item-border-large",e.enableLocationHref=!1,e.helptipPrefix="",e.selectPeer=function(t){e.closeModal(t)},e.$on("modal.hidden",(function(){e.leave()})),e.showHelpTip=function(){},e.enter()}function B(e,t){angular.extend(this,t("NetworkLookupCtrl",{$scope:e}));var n=n||{};e.enableFilter=!angular.isDefined(n.enableFilter)||n.enableFilter,e.search.type=angular.isDefined(n.type)?n.type:e.search.type,e.search.endpoint=angular.isDefined(n.endpoint)?n.endpoint:e.search.endpoint,e.expertMode=angular.isDefined(n.expertMode)?n.expertMode:e.expertMode,e.ionItemClass=n.ionItemClass||"item-border-large",e.helptipPrefix="",e.selectPeer=function(t){e.closePopover(t)},e.$on("popover.hidden",(function(){e.leave()})),e.showHelpTip=function(){},e.enter()}function x(e,t,n,i,a,o){e.loading=!0,e.formData={},e.load=function(){return e.loading=!0,e.formData={},t.all([i.blockchain.current().then((function(t){e.formData.number=t.number,e.formData.medianTime=t.medianTime,e.formData.powMin=t.powMin,e.formData.useSsl=o.useSsl})).catch((function(){delete e.formData.number,delete e.formData.medianTime,delete e.formData.powMin,delete e.formData.useSsl})),o.node.summary().then((function(t){e.formData.version=t&&t.duniter&&t.duniter.version,e.formData.software=t&&t.duniter&&t.duniter.software})).catch((function(){delete e.formData.version,delete e.formData.software})),o.version.latest().then((function(t){e.formData.latestRelease=t})).catch((function(){delete e.formData.latestRelease}))]).then((function(){if(e.formData.latestRelease&&"duniter"==e.formData.software){var t=a.version.compare(e.formData.version,e.formData.latestRelease.version);e.formData.isPreRelease=t>0,e.formData.hasNewRelease=t<0}else e.formData.isPreRelease=!1,e.formData.hasNewRelease=!1;e.loading=!1,e.$broadcast("$$rebind::rebind")}))},i.api.data.on.newBlock(e,(function(t){e.loading||(console.debug("[peer info] Received new block. Reload content"),e.load())})),n.api.data.on.changed(e,(function(t){e.loading||(console.debug("[peer info] Peer settings changed. Reload content"),e.load())})),e.load()}function F(t,n,i,a,o,r,s){t.node={},t.loading=!0,t.isHttps="https:"===i.location.protocol,t.isReachable=!0,t.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!o.screen.isSmall()||t.enableBack})),t.$on("$ionicView.enter",(function(e,n){var i=!n.stateParams||!n.stateParams.server,a=n.stateParams&&n.stateParams.server||s.server,o=n.stateParams&&"true"==n.stateParams.ssl||!!i&&s.useSsl,r="true"==n.stateParams.tor||!!i&&s.useTor;return t.load(a,o,r).then((function(){return t.$broadcast("$csExtension.enter",e,n)})).then((function(){t.loading=!1})).catch((function(){t.loading=!1}))})),t.load=function(i,a,l){var c={server:i,host:i,useSsl:a,useTor:l},u=i.split(":");return 2===u.length&&(c.host=u[0],c.port=u[1]),angular.merge(t.node,l?s.lightInstance(c.host+".to",443,!0,6e4):s.lightInstance(c.host,c.port,c.useSsl),c),t.isReachable=!t.isHttps||a,t.isReachable?n.all([t.node.network.peering.self().then((function(e){t.node.pubkey=e.pubkey,t.node.currency=e.currency})).catch((function(e){console.error(e&&e.message||e)})),t.node.network.peers().then((function(n){var i=(n&&n.peers||[]).map((function(t){var n=new e(t);return n.online="UP"===t.status,n.buid=n.block,n.blockNumber=n.buid&&n.buid.split("-")[0],n.dns=n.getDns(),n.id=n.keyID(),n.server=n.getServer(),n}));return r.extendAll([t.node].concat(i)).then((function(){t.peers=_.sortBy(i,(function(e){var t=1;return t+=1e4*(e.online?1:0),t+=1e3*(e.hasMainConsensusBlock?1:0),-(t+=100*(e.uid?1:0))})),t.motion.show({selector:".item-peer"})}))})),t.node.blockchain.current().then((function(e){t.current=e}))]).catch((function(e){throw console.error(e&&e.message||e),o.onError(l?"PEER.VIEW.ERROR.LOADING_TOR_NODE_ERROR":"PEER.VIEW.ERROR.LOADING_NODE_ERROR")(e),e})):s.network.peers().then((function(n){var i=(n&&n.peers||[]).reduce((function(t,n){var i=new e(n);return(i.getEndpoints("BASIC_MERKLED_API")||[]).reduce((function(e,t){var n=s.node.parseEndPoint(t);return n.dns!=c.host&&n.ipv4!=c.host&&n.ipv6!=c.host||n.port!=c.port?e:(i.bma=n,e.concat(i))}),t)}),[]),a=i.length&&i[0];if(a)return t.node.pubkey=a.pubkey,t.node.currency=a.currency,r.extend(t.node);console.warn("Could not get peer from /network/peers")}))},t.selectPeer=function(e){if(e.online&&!e.isWs2p()){var t={server:e.getServer()};e.isSsl()&&(t.ssl=!0),e.isTor()&&(t.tor=!0),a.go("app.view_peer",t)}},t.openRawPeering=function(e){return t.openLink(e,t.node.url+"/network/peering")},t.openRawCurrentBlock=function(e){return t.openLink(e,t.node.url+"/blockchain/current")}}function H(e,t,n,i,a,o,r,s,l,c,u){e.formData={useRelative:!1,currency:"",M:0,MoverN:0,UD:0,cactual:0,c:0,dt:0,sigQty:0,sigStock:0,msWindow:0,msValidity:0,sigWindow:0,sigValidity:0,sigPeriod:0,medianTime:0,difficulty:0,Nprev:0,stepMax:0,sentries:0,xpercent:0,durationFromLastUD:0,blockUid:null,dtReeval:0,udReevalTime0:0,allRules:angular.isDefined(s.data.currency&&s.data.currency.allRules)?s.data.currency.allRules:s.data.expertMode,allWotRules:angular.isDefined(s.data.currency&&s.data.currency.allWotRules)?s.data.currency.allWotRules:s.data.expertMode,licenseUrl:s.getLicenseUrl()},e.loading=!0,e.screen=r.screen,e.enter=function(t,i){e.loading&&(e.formData.useRelative=s.data.useRelative,l.get().then(e.load).then((function(){e.isLogin()&&e.showHelpTip()})).catch(r.onError("ERROR.GET_CURRENCY_FAILED")),c.api.data.on.mainBlockChanged(e,(function(t){e.loading||e.formData.blockUid!==t.buid&&(console.debug("[currency] Updating parameters UI (new main block detected)"),n(e.load,1e3))}))),e.$broadcast("$csExtension.enter",i)},e.$on("$ionicView.enter",e.enter),e.load=function(){var n,i,a={},s=Date.now();return t.all([o.blockchain.parameters().then((function(e){a.currency=e.currency,a.c=e.c,a.dt=e.dt,a.sigQty=e.sigQty,a.sigStock=e.sigStock,a.msWindow=e.msWindow,a.msValidity=e.msValidity,a.sigWindow=e.sigWindow,a.sigValidity=e.sigValidity,a.sigPeriod=e.sigPeriod,a.stepMax=e.stepMax,a.xpercent=e.xpercent,a.avgGenTime=e.avgGenTime,a.dtReeval=e.dtReeval,a.udTime0=e.udTime0,a.udReevalTime0=e.udReevalTime0,a.dtReeval||(a.dtReeval=a.dt)})),o.blockchain.current().then((function(e){n=e.monetaryMass,a.N=e.membersCount,a.medianTime=e.medianTime,a.difficulty=e.powMin,a.blockUid=[e.number,e.hash].join("-")})).catch((function(e){if(e&&e.ucode==o.errorCodes.NO_CURRENT_BLOCK)return n=0,a.N=0,a.medianTime=moment().utc().unix(),a.difficulty=0,void(a.blockUid=null);throw e})),o.blockchain.stats.ud().then((function(e){if(e.result.blocks.length){var t=e.result.blocks[e.result.blocks.length-1];return o.blockchain.block({block:t}).then((function(e){a.currentUD=e.unitbase>0?e.dividend*Math.pow(10,e.unitbase):e.dividend,i=e.medianTime,a.Nprev=e.membersCount}))}return i=0,a.Nprev=0,o.blockchain.parameters().then((function(e){a.currentUD=e.ud0}))}))]).then((function(){var t=n-a.currentUD*a.Nprev,o=a.Nprev?t/a.Nprev:0;return a.cactual=o?100*a.currentUD/o:0,a.M=n,a.MoverN=a.Nprev?(t||n)/a.Nprev:0,a.UD=a.currentUD,a.durationFromLastUD=i?a.medianTime-i:0,a.sentries=Math.ceil(Math.pow(a.N,1/a.stepMax)),angular.extend(e.formData,a),console.debug("[currency] Parameters loaded in "+(Date.now()-s)+"ms"),e.loading=!1,e.$broadcast("$$rebind::rebind"),r.ink(),r.loading.hide()})).catch((function(t){e.loading=!1,r.onError("ERROR.LOAD_PEER_DATA_FAILED")(t)}))},e.refresh=function(){if(!e.loading)return e.loading=!0,r.loading.show(),e.load().then((function(){e.$broadcast("csView.action.refresh","currency")}))},e.refreshPeers=function(){return e.$broadcast("csView.action.refresh","peers"),t.when()},e.showExtendActionsPopover=function(t){e.$broadcast("csView.action.showActionsPopover",t)},e.onAllRulesChange=function(){s.data.currency=s.data.currency||{},s.data.currency.allRules!==e.formData.allRules&&(s.data.currency.allRules=e.formData.allRules,s.store())},e.$watch("formData.allRules",e.onAllRulesChange),e.onAllWotRulesChange=function(){s.data.currency=s.data.currency||{},s.data.currency.allWotRules!==e.formData.allWotRules&&(s.data.currency.allWotRules=e.formData.allWotRules,s.store())},e.$watch("formData.allWotRules",e.onAllWotRulesChange),e.startCurrencyTour=function(){return e.hideActionsPopover(),e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if(t=angular.isDefined(t)?t:s.data.helptip.currency,n=!!angular.isDefined(n)&&n,!(t<0)){var i=e.createHelptipScope(n);if(i)return i.tour=n,i.startCurrencyTour(t,!1).then((function(e){i.$destroy(),s.data.helptip.currency=e,s.store()}))}},e.showLicenseModal=function(){return u.show("templates/currency/modal_license.html","CurrencyLicenseModalCtrl")},e.showHelpModal=function(e){a.showHelp({anchor:e})},e.showActionsPopover=function(t){r.popover.show(t,{templateUrl:"templates/currency/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function W(e,t,n,i,a){e.loading=!0,e.load=function(){e.loading&&(e.licenseUrl=i.getLicenseUrl(),e.licenseUrl&&".txt"!=e.licenseUrl.substring(e.licenseUrl.length-3)&&(e.licenseUrlHtml=e.licenseUrl+".html",e.licenseUrl=e.licenseUrl+".txt"),e.loading=!1)},e.$on("modal.shown",e.load),e.downloadFile=function(){if(e.licenseUrl)return t.get(e.licenseUrl).success((function(e){var t=new Blob([e],{type:"text/plain; charset=utf-8"});a.saveAs(t,"license.txt")})).error((function(){n.onError("ERROR.GET_LICENSE_FILE_FAILED")()}))}}function V(e,t,n){angular.extend(this,t("TransferModalCtrl",{$scope:e,parameters:{}})),e.enter=function(t,i){return i&&i.stateParams&&e.setParameters(i.stateParams),e.load().then(n.loading.hide)},e.$on("$ionicView.enter",e.enter),e.setForm=function(t){e.form=t},e.closeModal=function(){return e.showHome()}}function G(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){var b;e.convertedBalance=0,e.formData={destPub:null,amount:null,comment:null,useRelative:m.data.useRelative,useComment:!1,all:!1,restPub:null,restAmount:null,walletId:null},e.udAmount=null,e.minAmount=.01,e.commentPattern=s.regexp.COMMENT,e.currency=p.data.name,e.loading=!0,e.commentInputId="transferComment-"+e.$id,e.enableSelectWallet=!0,e.smallscreen=angular.isDefined(e.smallscreen)?e.smallscreen:l.screen.isSmall(),(e.smallscreen||r.enable)&&(e.digitKeyboardSettings=e.digitKeyboardSettings||r.keyboard.digit.settings.bindModel(e,"formData.amount",{decimal:!0,decimalSeparator:".",resizeContent:!1}),e.digitKeyboardVisible=!1),e.setParameters=function(t){t&&(t.pubkey&&(e.formData.destPub=t.pubkey),t.uid?(e.destUid=t.uid,e.destPub=""):(e.destUid="",e.destPub=t.pubkey),t.amount?(e.formData.amount=t.amount,e.formData.useRelative=!1):t.udAmount&&(e.formData.amount=t.udAmount,e.formData.useRelative=!0),t.comment&&(e.formData.useComment=!0,e.formData.comment=t.comment),t.restPub||t.all?(e.restUid="",e.restPub=t.restPub,e.formData.restPub=t.restPub,e.formData.all=!0):e.formData.all=!1,t.wallet&&"default"!==t.wallet?e.formData.walletId=t.wallet:e.formData.walletId=u.id)},e.setParameters(E),e.load=function(){return e.enableSelectWallet=u.children.count()>0,(b=e.enableSelectWallet&&(e.formData.walletId?u.children.get(e.formData.walletId):u)||u).isDefault()||console.debug("[transfer] Using wallet {"+b.id+"}"),b.login({sources:!0,silent:!0}).then((function(t){if(b&&!e.$$destroyed){if(e.walletData=t,e.formData.walletId=b.id,e.onUseRelativeChanged(),e.onAmountChanged(),e.$watch("walletData.balance",e.onAmountChanged,!0),e.$watch("formData.amount",e.onAmountChanged,!0),e.$watch("formData.useRelative",e.onUseRelativeChanged,!0),e.$watch("walletData.balance",e.onUseRelativeChanged,!0),l.ink({selector:".modal-transfer .ink"}),e.destPub&&!e.destUid)return d.extend({pubkey:e.destPub}).then((function(t){e.destUid=t&&(t.name||t.uid),e.destUid&&(e.destPub=""),e.loading=!1}));e.loading=!1}})).catch((function(t){if("CANCELLED"===t)return e.cancel();l.onError("ERROR.LOGIN_FAILED")(t)}))},e.$on("modal.shown",e.load),e.cancel=function(){e.closeModal(),b=null},e.onUseRelativeChanged=function(){e.currency=p.data.name,e.formData.useRelative?(e.convertedBalance=e.walletData.balance/p.data.currentUD,e.minAmount=.01/(p.data.currentUD/100)):(e.convertedBalance=e.walletData.balance/100,e.minAmount=.01),e.form&&!e.loading&&e.form.$setPristine(!0)},e.onAmountChanged=function(){if(!e.sending){var t=e.formData.amount;t&&"string"==typeof t&&(t=parseFloat(t.replace(new RegExp("[.,]"),".")));var n=!0;t&&t<e.minAmount?(n=!1,e.form.amount.$error=e.form.amount.$error||{},e.form.amount.$error.min=!0):e.form.amount&&e.form.amount.$error&&e.form.amount.$error.min&&delete e.form.amount.$error.min,t&&t>e.convertedBalance?(e.form.$valid=!1,e.form.amount.$invalid=!0,e.form.amount.$error=e.form.amount.$error||{},e.form.amount.$error={max:!0}):e.form.amount&&e.form.amount.$error&&e.form.amount.$error.max&&delete e.form.amount.$error.max,e.form.$valid=n,e.form.amount&&(e.form.amount.$invalid=!n),n&&e.formData.all&&t?e.formData.useRelative?(e.formData.restAmount=e.walletData.balance-t*p.data.currentUD,e.formData.restAmount<.01&&(e.formData.restAmount=0)):e.formData.restAmount=e.walletData.balance-100*t:e.formData.restAmount=void 0}},e.doTransfer=function(){if(e.form.$submitted=!0,e.form.$valid&&e.formData.destPub&&e.formData.amount){var n,a=e.formData.amount;if("string"==typeof a&&(a=parseFloat(a.replace(new RegExp("[.,]"),"."))),!e.sending)return e.sending=!0,t.all([b.auth({silent:!0}),p.currentUD().then((function(e){n=e})),e.hideDigitKeyboard(300)]).then(e.askTransferConfirm).then((function(t){if(t)return l.loading.show().then((function(){e.formData.useRelative?a*=n:a=100*a.toFixed(2);var t=e.formData.comment&&e.formData.comment.trim();return t&&!t.length&&(t=null),e.formData.all&&e.formData.restAmount>0?b.transferAll(e.formData.destPub,a,t,e.formData.useRelative,e.formData.restPub):b.transfer(e.formData.destPub,a,t,e.formData.useRelative)})).then((function(){return l.loading.hide(),e.closeModal(!0)})).then((function(t){return i((function(){e.sending=!1,l.toast.show("INFO.TRANSFER_SENT")}),500),t}));e.sending=!1})).catch((function(t){e.sending=!1,"CANCELLED"!==t&&l.onError("ERROR.SEND_TX_FAILED")(t)}))}},e.askTransferConfirm=function(){return n(["COMMON.UD","COMMON.EMPTY_PARENTHESIS"]).then((function(t){var i=e.formData.all&&e.formData.restAmount>0;return n(i?"CONFIRM.TRANSFER_ALL":"CONFIRM.TRANSFER",{from:e.walletData.isMember?e.walletData.uid:a("formatPubkey")(e.walletData.pubkey),to:e.destUid||e.destPub,amount:e.formData.amount,unit:e.formData.useRelative?t["COMMON.UD"]:a("abbreviate")(e.currency),comment:e.formData.comment&&0!==e.formData.comment.trim().length?e.formData.comment:t["COMMON.EMPTY_PARENTHESIS"],restAmount:i&&a("formatAmount")(e.formData.restAmount,{useRelative:e.formData.useRelative}),restTo:i&&(e.restUid||e.restPub)})})).then(l.alert.confirm)},e.addComment=function(){e.formData.useComment=!0},e.showWotLookupModal=function(t){return t=t||"destPub",e.hideDigitKeyboard(0),c.showWotLookup({enableWallets:!0}).then((function(n){n&&("destPub"===t?(e.destUid=n.uid,e.destPub=n.uid?"":n.pubkey,e.formData.destPub=n.pubkey):"restPub"===t&&(e.restUid=n.uid,e.restPub=n.uid?"":n.pubkey,e.formData.restPub=n.pubkey))}))},e.showSelectWalletModal=function(){if(e.enableSelectWallet)return c.showSelectWallet({useRelative:e.formData.useRelative,showDefault:!0,showBalance:!0}).then((function(t){!t||b&&b.id===t.id||(b=t,e.walletData=b.data,console.debug("[transfer] Using wallet {"+b.id+"}"),e.onAmountChanged())}))},e.showUnitPopover=function(t){l.popover.show(t,{templateUrl:"templates/wallet/popover_unit.html",scope:e}).then((function(t){e.formData.useRelative=t}))},e.showDigitKeyboard=function(){if(e.digitKeyboardSettings&&!e.digitKeyboardVisible)return r.enable?(r.keyboard.close(),i((function(){e.digitKeyboardVisible=!0}),200)):(e.digitKeyboardVisible=!0,t.when())},e.hideDigitKeyboard=function(n){return e.digitKeyboardVisible?(e.digitKeyboardVisible=!1,i((function(){}),n||200)):t.when()}}function Y(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){e.formData=angular.copy(E.data),e.popupData={},e.loading=!0,e.nodePopup={},e.bma=u,e.keepAuthIdleLabels={10:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.SECONDS",labelParams:{value:10}},30:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.SECONDS",labelParams:{value:30}},60:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.MINUTE",labelParams:{value:1}},600:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.MINUTES",labelParams:{value:10}},3600:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.HOUR",labelParams:{value:1}},9999:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.ALWAYS"}},e.keepAuthIdles=_.keys(e.keepAuthIdleLabels),e.blockValidityWindowLabels={0:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.NONE"},6:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.N",labelParams:{count:6,time:void 0}},12:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.N",labelParams:{count:12,time:void 0}},24:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.N",labelParams:{count:24,time:void 0}}},e.blockValidityWindows=_.keys(e.blockValidityWindowLabels),e.$on("$ionicView.enter",(function(){t.all([E.ready(),m.parameters().then((function(e){return e&&e.avgGenTime})).catch((function(e){return console.error("[settings] Could not not currency parameters. Using default 'avgGenTime' (300)",e),{avgGenTime:300}})).then((function(t){_.each(e.blockValidityWindows,(function(n){n>0&&(e.blockValidityWindowLabels[n].labelParams.time=t.avgGenTime*n)}))}))]).then(e.load)})),e.setPopupForm=function(t){e.popupForm=t},e.load=function(){return e.loading=!0,e.locales=angular.copy(E.locales),angular.merge(e.formData,E.data),e.formData.locale=E.data.locale&&E.data.locale.id&&_.findWhere(e.locales,{id:E.data.locale.id})||_.findWhere(e.locales,{id:E.defaultSettings.locale.id}),o((function(){e.loading=!1,l.ink({selector:".item"}),e.showHelpTip()}),100)},e.reset=function(){e.actionsPopover&&e.actionsPopover.hide(),e.pendingSaving=!0,E.reset().then(b.restart).then((function(){e.load(),e.pendingSaving=!1}))},e.changeLanguage=function(e){r.use(e)},e.changeNode=function(t){var n=e.formData.node.port&&80!=e.formData.node.port&&443!=e.formData.node.port?e.formData.node.port:void 0;t=t||{host:e.formData.node.host,port:n,useSsl:angular.isDefined(e.formData.node.useSsl)?e.formData.node.useSsl:443==e.formData.node.port},e.showNodePopup(t).then((function(t){if(t.host!==e.formData.node.host||t.port!==e.formData.node.port||t.useSsl!==e.formData.node.useSsl||e.formData.node.temporary){l.loading.show();var n=u.instance(t.host,t.port,t.useSsl,!0);n.isAlive().then((function(a){return a?(l.loading.hide(),angular.merge(e.formData.node,t),delete e.formData.node.temporary,u.copy(n),e.bma=u,b.restart(),i.clearCache()):(l.loading.hide(),l.alert.error("ERROR.INVALID_NODE_SUMMARY").then((function(){e.changeNode(t)})))}))}}))},e.showNodeList=function(){var t=!!("true"===p.httpsMode||!0===p.httpsMode||"force"===p.httpsMode||n.location&&"https:"===n.location.protocol);return a._popupStack[0].responseDeferred.promise.close(),c.showNetworkLookup({enableFilter:!0,bma:!0,ssl:!!t||void 0}).then((function(e){if(e){var t=e.getBMA();return{host:t.dns?t.dns:e.hasValid4(t)?t.ipv4:t.ipv6,port:t.port||80,useSsl:t.useSsl||443==t.port}}})).then((function(t){e.changeNode(t)}))},e.showNodePopup=function(n){return t((function(t,i){e.popupData.newNode=n.port?[n.host,n.port].join(":"):n.host,e.popupData.useSsl=n.useSsl,e.popupForm&&e.popupForm.$setPristine(),r(["SETTINGS.POPUP_PEER.TITLE","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then((function(n){a.show({templateUrl:"templates/settings/popup_node.html",title:n["SETTINGS.POPUP_PEER.TITLE"],scope:e,buttons:[{text:n["COMMON.BTN_CANCEL"]},{text:n["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.popupForm.$submitted=!0,e.popupForm.$valid&&e.popupForm.newNode)return{server:e.popupData.newNode,useSsl:e.popupData.useSsl};t.preventDefault()}}]}).then((function(e){if(e){var n=e.server.split(":");n[1]=n[1]?n[1]:80,t({host:n[0],port:n[1],useSsl:e.useSsl})}else l.loading.hide()}))}))}))},e.save=function(){return e.loading||e.pendingSaving?t.when():e.saving?(e.pendingSaving=!0,o((function(){return e.pendingSaving=!1,e.save()}),500)):(e.saving=!0,o((function(){return e.cleanupHelpTip(),E.apply(e.formData),E.store()}),100).then((function(){e.saving=!1})))},e.onDataChanged=function(n,i,a){return e.loading||e.pendingSaving?t.when():e.saving?(e.pendingSaving=!0,o((function(){return e.pendingSaving=!1,e.onDataChanged(n,i,a)}),500)):void(a!==e||angular.equals(n,i)||e.save())},e.$watch("formData",e.onDataChanged,!0),E.api.data.on.changed(e,(function(t){e.loading||e.saving||e.pendingSaving||!angular.equals(t.useLocalStorageEncryption,e.formData.useLocalStorageEncryption)&&(console.debug("[settings] Settings changed (outside the settings page). Reloading..."),e.load())})),e.getServer=function(){return e.formData.node&&e.formData.node.host?d.getServer(e.formData.node.host,e.formData.node.port):""},e.cleanupHelpTip=function(){if(e.formData.helptip.enable!==E.data.helptip.enable){var t=e.formData.helptip.enable;e.formData.helptip=angular.merge({},E.defaultSettings.helptip),e.formData.helptip.enable=t}},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"templates/settings/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.startSettingsTour=function(){return e.hideActionsPopover(),e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if((e.isLogin()||n)&&!((t=angular.isDefined(t)?t:E.data.helptip.settings)<0)){0===t&&(t=1);var i=e.createHelptipScope(n);if(i)return i.startSettingsTour(t,!1).then((function(e){i.$destroy(),E.data.helptip.settings=e,E.store()}))}}}function j(e,n,i,a,o,r,s,l,c,u,d){e.search={result:[],total:0,loading:!0,loadingMore:!1,hasMore:!1,type:"last"},e.node={},e.currency=!1,e.entered=!1,e.searchTextId=null,e.ionItemClass="item-border-large",e.defaultSizeLimit=s.screen.isSmall()?50:100,e.helptipPrefix="helptip-network",e.listeners=[],e.enter=function(t,n){if(e.entered)e.addListeners();else{if(n&&n.stateParams&&n.stateParams.q&&(e.search.text=n.stateParams.q,e.search.text&&e.search.text.trim().length&&(e.search.type="text")),n&&n.stateParams&&n.stateParams.server){var i="true"==n.stateParams.ssl,a="true"==n.stateParams.tor,o={server:n.stateParams.server,host:n.stateParams.server,useSsl:i,useTor:a},r=n.stateParams.server.split(":");if(2==r.length&&(o.host=r[0],o.port=r[1]),!l.node.same(o.host,o.port))return e.node=a?l.instance(o.host+".to",443,!0,6e5):l.instance(o.host,o.port,o.useSsl),e.node.blockchain.parameters().then((function(t){e.currency=t.currency,e.enter()}));e.node=l}if(!e.currency)return c.get().then((function(t){e.currency=t?t.name:null,e.node=t.node?t.node:l,e.currency?e.enter():s.alert.error("ERROR.GET_CURRENCY_FAILED")})).catch(s.onError("ERROR.GET_CURRENCY_FAILED"));e.compactMode=!angular.isDefined(e.compactMode)||e.compactMode,e.expertMode=angular.isDefined(e.expertMode)?e.expertMode:!s.screen.isSmall()&&d.data.expertMode,e.doSearch(),e.addListeners(),e.entered=!0,e.showHelpTip()}},e.$on("$ionicParentView.enter",e.enter),e.leave=function(){e.removeListeners()},e.$on("$ionicParentView.leave",e.leave),e.$on("$destroy",e.leave),e.doSearchLast=function(){return e.search.type="last",
-e.doSearch()},e.doSearch=function(n){var i;if(n=angular.isDefined(n)?n:0,e.search.loading=0===n,e.search.hasMore=!1,0===n)i=e.node.blockchain.current().then((function(t){var n=t.number<e.defaultSizeLimit?t.number:e.defaultSizeLimit;return e.node.blockchain.blocksSlice({count:n,from:t.number-n}).then((function(e){return e&&e.splice(0,0,t),e}))})).catch((function(e){if(e&&e.ucode==l.errorCodes.NO_CURRENT_BLOCK)return[];throw e}));else{var a=e.search.results[e.search.results.length-1].number,o=a<e.defaultSizeLimit?a:e.defaultSizeLimit;i=e.node.blockchain.blocksSlice({count:o,from:a-o})}return i.then((function(i){if(!i||!i.length)return e.doDisplayResult([],n,0),void(e.search.loading=!1);i=i.reduce((function(e,n){var i=new t(n);return i.cleanData(),e.concat(i)}),[]),i=_.sortBy(i,(function(e){return-1*e.number}));var a=(0===n?i[0].number:e.search.results[0].number)+1;return e.doPrepareResult(i,n).then((function(){e.doDisplayResult(i,n,a),e.search.loading=!1}))})).catch((function(t){s.onError("BLOCKCHAIN.ERROR.SEARCH_BLOCKS_FAILED")(t),e.search.loading=!1}))};var p=a("formatDateShort");e.doPrepareResult=function(t,n){if(n=angular.isDefined(n)?n:0,"last"==e.search.type){var i;if(n>0&&e.search.results.length){var a=e.search.results[e.search.results.length-1];i=a.empty?a.day:void 0}_.forEach(t,(function(e,t){if(e.empty){var a=p(e.medianTime),o=0!==t||0!==n,r=!i||i==a;e.compacted=o&&r,i=a}else i=void 0}))}return u.extendAll(t,"issuer")},e.doDisplayResult=function(t,n,i){e.search.results=n?e.search.results.concat(t):t||[],e.search.hasMore=i&&e.search.results.length<i,e.search.total=i||e.search.total,e.smallscreen=s.screen.isSmall(),e.$broadcast("$$rebind::rebind"),t&&t.length&&e.motion.show({selector:".list-blocks .item-block"})},e.showMore=function(){var t=e.search.results?e.search.results.length:0;return e.search.loadingMore=!0,e.doSearch(t).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})).catch((function(t){console.error(t),e.search.loadingMore=!1,e.search.hasMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.removeListeners=function(){e.listeners.length&&(console.debug("[block] Closing listeners"),_.forEach(e.listeners,(function(e){e()})),e.listeners=[])},e.addListeners=function(){e.listeners.length||(console.debug("[block] Starting listeners"),e.node===l?e.listeners=[c.api.data.on.newBlock(e,e.onBlock)]:e.listeners=[e.node.websocket.block().onListener((function(n){if(n){var i=new t(n);i.cleanData(),e.onBlock(i)}}))])},e.onBlock=function(t){if(!(e.search.loading||"last"!=e.search.type||e.search.sort&&"desc"!=e.search.sort))if(e.search.results=e.search.results||[],e.search.results.length){var n=_.findWhere(e.search.results,{number:t.number});n?n.hash!=t.hash&&(console.debug("[ES] [blockchain] block #{0} updated (by websocket)".format(t.number)),angular.copy(t,n),e.doPrepareResult([t,e.search.results[1]]).then((function(){return e.showBlock(n)}))):(console.debug("[ES] [blockchain] new block #{0} received (by websocket)".format(t.number)),e.search.total++,e.search.results.splice(0,0,t),e.doPrepareResult([t,e.search.results[1]]).then((function(){return e.showBlock(t)})))}else console.debug("[ES] [blockchain] new block #{0} received (by websocket)".format(t.number)),e.search.total++,e.search.results.push(t),e.doPrepareResult([t]).then((function(){return e.showBlock(t)}))},e.showBlock=function(t){e.$broadcast("$$rebind::rebind"),e.motion.show({selector:"#block-"+t.number})},e.selectBlock=function(t){t.compacted&&e.compactMode?(e.toggleCompactMode(),n((function(){r("block-"+t.number)}),900)):l.node.same(e.node.host,e.node.port)?o.go("app.view_block_hash",{number:t.number,hash:t.hash}):o.go("app.view_server_block_hash",{server:e.node.server,ssl:e.node.useSsl,number:t.number,hash:t.hash})},e.toggleCompactMode=function(){if(e.compactMode=!e.compactMode,e.doDisplayResult(e.search.results,0,e.search.total),!e.search.hasMore&&e.search.results.length&&"last"==e.search.type){var t=e.search.results[e.search.results.length-1];t&&t.number>0&&n((function(){e.search.hasMore=!0}),500)}},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.doSearch()},e.showHelpTip=function(){}}function K(e,n,i,a,o,r,s){e.loading=!0,e.formData={},e.compactMode=!0,e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!a.screen.isSmall()||t.enableBack})),e.enter=function(t,n){if(e.loading){if(n&&(e.number=n.stateParams&&angular.isDefined(n.stateParams.number)?n.stateParams.number:"current",e.hash=n.stateParams&&n.stateParams.hash?n.stateParams.hash:void 0,n.stateParams&&n.stateParams.server)){var i="true"==n.stateParams.ssl,s="true"==n.stateParams.tor,l={server:n.stateParams.server,host:n.stateParams.server,useSsl:i,useTor:s},c=n.stateParams.server.split(":");if(2==c.length&&(l.host=c[0],l.port=c[1]),!o.node.same(l.host,l.port))return e.node=s?o.instance(l.host+".to",443,!0,6e5):o.instance(l.host,l.port,l.useSsl),e.node.blockchain.parameters().then((function(t){e.currency=t.currency,e.enter()}));e.node=o}e.currency&&e.node?e.load():r.get().then((function(t){t&&(e.currency=t.name,e.node=t.node,e.load())})).catch(a.onError("ERROR.GET_CURRENCY_FAILED"))}},e.$on("$ionicView.enter",e.enter),e.leave=function(){},e.$on("$ionicParentView.beforeLeave",e.leave),e.load=function(){if(e.number)return("current"==e.number?e.node.blockchain.current():e.node.blockchain.block({block:e.number})).then((function(n){var i=new t(n);if(i.parseData(),!i||!angular.isDefined(i.number)||!i.hash)return e.loading=!1,void a.alert.error("ERROR.GET_BLOCK_FAILED");if(e.hash&&i.hash!=e.hash)return e.loading=!1,void a.alert.error("ERROR.INVALID_BLOCK_HASH");var r=[];i.joiners.length&&(r=r.concat(i.joiners)),i.certifications.length&&(r=i.certifications.reduce((function(e,t){return t.to={pubkey:t.to},t.from={pubkey:t.from},e.concat(t.to,t.from)}),r),i.certifications=_.groupBy(i.certifications,(function(e){return e.to.pubkey}))),i.transactions.length&&(r=i.transactions.reduce((function(e,t){return t.issuers=t.issuers.reduce((function(e,t){return e.concat({pubkey:t})}),[]),_.forEach(t.outputs||[],(function(e){e.unlockCondition&&angular.merge(e,o.tx.parseUnlockCondition(e.unlockCondition))})),e.concat(t.issuers.concat(t.outputs||[]))}),r));var l={pubkey:i.issuer};return r.push(l),s.extendAll(r).then((function(){e.updateView({block:i,issuer:l})}))})).catch((function(t){e.loading=!1,a.onError("ERROR.GET_BLOCK_FAILED")(t)}))},e.updateView=function(t){e.formData=t.block,e.issuer=t.issuer,e.loading=!1},e.toggleCompactMode=function(){e.compactMode=!e.compactMode},e.toUnlockUIArray=function(t,n,i){return n=n||10,!t.children||"AND"!=t.type&&"OR"!=t.type?{style:{"padding-left":n+"px"},operator:i,type:t.type,value:t.value}:t.children.reduce((function(i,a,o){return a.children&&o>0?(i=i.concat({style:{"padding-left":n+"px","padding-top":"10px","padding-bottom":"10px"},operator:t.type})).concat(e.toUnlockUIArray(a,n+10)):i.concat(e.toUnlockUIArray(a,n+10,o&&t.type))}),[])},e.showUnlockConditionPopover=function(t,n){t.unlockTree&&(e.popoverData=e.popoverData||{},e.popoverData.unlockConditions=e.toUnlockUIArray(t.unlockTree),a.popover.show(n,{templateUrl:"templates/blockchain/unlock_condition_popover.html",scope:e,autoremove:!0,afterShow:function(t){e.unlockConditionPopover=t}}))},e.hideUnlockConditionsPopover=function(){e.unlockConditionPopover&&(e.unlockConditionPopover.hide(),e.unlockConditionPopover=null)},e.goState=function(t,n){e.hideUnlockConditionsPopover(),i.go(t,n)},e.openRawBlock=function(t){return e.openLink(t,e.node.url+"/blockchain/block/"+e.formData.number)},e.showHelpTip=function(e){}}function $(e,t){var n,i,a={registry:"EVENT.REGISTRY."},o=this;return e=e||{},o.type=e.type&&e.type.toLowerCase(),o.time=e.time,o.hash=e.hash,o.read=!!e.read_signature,o.message=e.reference&&a[e.reference.index]?a[e.reference.index]+e.code:"EVENT."+e.code,o.params=e.params,t&&"function"==typeof t&&(o.markAsReadCallback=t),o.markAsRead=function(){o.markAsReadCallback&&o.markAsReadCallback(o)},e.code=e.code||"",e.code.startsWith("MEMBER_")?(o.avatarIcon="ion-person",o.icon="ion-information-circled positive",o.state="app.view_wallet",o.medianTime=o.time):e.code.startsWith("TX_")?(o.avatarIcon="ion-card",o.icon="TX_SENT"==e.code?"ion-paper-airplane dark":"ion-archive balanced",o.medianTime=o.time,(n=e.params.length>0?e.params[0]:null)&&-1==n.indexOf(",")&&(o.pubkey=n),o.state="app.view_wallet_tx",o.stateParams={refresh:!0}):e.code.startsWith("CERT_")?(o.avatarIcon="CERT_RECEIVED"==e.code?"ion-ribbon-b":"ion-ribbon-a",o.icon="CERT_RECEIVED"==e.code?"ion-ribbon-b balanced":"ion-ribbon-a gray",o.pubkey=e.params.length>0?e.params[0]:null,o.medianTime=o.time,o.state="app.wallet_cert",o.stateParams={type:"CERT_RECEIVED"==e.code?"received":"given"}):e.code.startsWith("MESSAGE_")?(o.avatarIcon="ion-email",o.icon="ion-email dark",(n=e.params.length>0?e.params[0]:null)&&-1==n.indexOf(",")&&(o.pubkey=n),o.id=e.reference.id):e.reference&&"page"==e.reference.index?(o.avatarIcon="ion-ios-book",e.reference.anchor?(o.icon="ion-ios-chatbubble-outline dark",o.state="app.view_page_anchor",o.stateParams={id:e.reference.id,title:e.params[1],anchor:(i=e.reference.anchor,i?i.substr(0,4)+i.substr(i.length-4):"")}):(o.icon="ion-ios-book dark",o.state="app.view_page",o.stateParams={id:e.reference.id,title:e.params[1]})):"INFO"==e.type?(o.avatarIcon="ion-information",o.icon="ion-information-circled positive"):"WARN"==e.type?(o.avatarIcon="ion-alert-circled",o.icon="ion-alert-circled energized"):"ERROR"==e.type&&(o.avatarIcon="ion-close",o.icon="ion-close-circled assertive"),o}function z(e,t){var n=this;n.id=e,n.message=null,n.html=null,n.issuer=null,n.time=null,n.creationTime=null,n.reply_to=null,n.replyCount=0,n.parent=null,n.replies=[],n.onRemoveListeners=[],n.copy=function(e){n.message=e.message,n.html=e.html,n.issuer=e.issuer,n.time=e.time,n.creationTime=e.creationTime||n.time,n.id=e.id||n.id,n.reply_to=e.reply_to||n.reply_to,n.uid=e.uid||n.uid,n.name=e.name||n.name,n.avatarStyle=e.avatarStyle||n.avatarStyle,e.parent&&(n.parent=e.parent),e.replies&&n.setReplies(e.replies)},n.copyFromJson=function(e){n.message=e.message,n.issuer=e.issuer,n.time=e.time,n.creationTime=e.creationTime||n.time,n.reply_to=e.reply_to},n.addOnRemoveListener=function(e){e&&"function"==typeof e&&n.onRemoveListeners.push(e)},n.cleanAllListeners=function(){n.onRemoveListeners=[]},n.setReplies=function(e){n.removeAllReplies(),n.addReplies(e)},n.addReplies=function(e){e&&e.length&&(e=e.sort((function(e,t){return e.time-t.time})),_.forEach(e,(function(e){e.parent=n,n.replies.push(e)})),n.replyCount+=e.length)},n.containsReply=function(e){return-1!=n.replies.indexOf(e)},n.addReply=function(e){n.replyCount+=1,n.replies.push(e),n.replies=n.replies.sort((function(e,t){return e.time-t.time})),e.parent=n},n.removeAllReplies=function(){if(n.replyCount){var e=n.replies.splice(0,n.replies.length);n.replyCount=0,_.forEach(e,(function(e){e.remove()}))}},n.removeReply=function(e){var t=_.findIndex(n.replies,{id:e});-1!=t&&(n.replyCount--,delete n.replies.splice(t,1)[0].parent)},n.remove=function(){n.parent&&(n.parent.removeReply(n.id),delete n.parent),n.onRemoveListeners.length&&(_.forEach(n.onRemoveListeners,(function(e){e(n)})),n.issuer=null,n.message=null,n.cleanAllListeners())},t&&"object"==typeof t&&n.copyFromJson(t)}function q(e){if(e=e||{},this.type=e.type&&e.type.toLowerCase(),this.time=e.time,this.id=e.id,"certification"==this.type){if(this.comment=e.comment,this.icon="ion-ribbon-a",this.okText="WOT.BTN_CERTIFY",!e.content||-1==e.content.indexOf("-"))return console.error("[invitation] Empty content for invitation [{0}]".format(this.id)),this.message="INVITATION.ERROR.BAD_INVITATION_FORMAT",void(this.pubkey=e.issuer);var t=e.content.lastIndexOf("-");if(-1==t)return console.error("[invitation] Bad content format for invitation [{0}]: {1}".format(this.id,e.content)),this.message="INVITATION.ERROR.BAD_INVITATION_FORMAT",void(this.pubkey=e.issuer);var n={uid:e.content.substr(0,t),pubkey:e.content.substr(t+1)};this.state="app.wot_identity",this.stateParams={pubkey:n.pubkey,uid:n.uid,action:"certify"},n.pubkey==e.issuer?(this.pubkey=e.issuer,this.uid=n.uid,this.message="INVITATION.ASK_CERTIFICATION"):(this.issuer={pubkey:e.issuer},this.message="INVITATION.SUGGESTION_CERTIFICATION",this.pubkey=n.pubkey,this.uid=n.uid)}}function X(e){var t=this;Object.keys(e).forEach((function(n){t[n]=e[n]})),t.endpoints=t.endpoints||[]}function Q(e,t,n,i){e.selectNewPicture=function(t){if(i.enable)e.openPicturePopup();else{var n=angular.element(document.querySelector(t||"#pictureFile"));n&&n.length>0&&n[0].click()}},e.openPicturePopup=function(){i.camera.getPicture().then((function(t){e.pictures.push({src:"data:image/png;base64,"+t,isnew:!0})})).catch(t.onError("ERROR.TAKE_PICTURE_FAILED"))},e.fileChanged=function(n){if(n.target.files&&n.target.files.length){t.loading.show();var i=n.target.files[0];return t.image.resizeFile(i).then((function(i){e.pictures.push({src:i,isnew:!0}),n.target.value="",t.loading.hide(100)})).catch((function(e){console.error(e),n.target.value="",t.loading.hide()}))}},e.removePicture=function(t){e.pictures.splice(t,1)},e.favoritePicture=function(t){if(t>0){var n=e.pictures[t];e.pictures.splice(t,1),e.pictures.splice(0,0,n)}},e.rotatePicture=function(n){var i=e.pictures[n];t.image.rotateSrc(i.src).then((function(e){i.src=e}))}}function J(e,t,n,i){e.loading=!0,e.allCategories=[],e.categories=[],this.searchText="",this.title=i&&i.title,e.afterLoad=function(i){e.categories=i,e.allCategories=i,e.loading=!1,n((function(){t.ink()}),10)},this.doSearch=function(){var t=this.searchText.toLowerCase().trim();t.length>1?(e.loading=!0,e.categories=e.allCategories.reduce((function(e,n){return n.parent&&-1!=n.name.toLowerCase().search(t)?e.concat(n):e}),[]),e.loading=!1):e.categories=e.allCategories},i&&i.categories?e.afterLoad(i.categories):i&&i.load&&i.load().then((function(t){e.afterLoad(t)}))}function Z(e,t,n,i,a,o,r){e.loading=!0,e.defaultCommentSize=5,e.formData={},e.comments={},e.$on("$recordView.enter",(function(t,n){e.loading?e.anchor=n&&n.stateParams.anchor:!e.loading&&e.id&&e.load(e.id,{animate:!1})})),e.$on("$recordView.load",(function(t,n,i){e.id=n||e.id,e.service=i||e.service,console.debug("[ES] [comment] Will use {"+i.index+"} service"),e.id&&e.load(e.id).then((function(){e.scrollToAnchor()}))})),e.load=function(t,n){return(n=n||{}).from=n.from||0,n.size=n.size||e.anchor&&-1,n.size=n.size||e.defaultCommentSize,n.animate=!angular.isDefined(n.animate)||n.animate,n.loadAvatarAllParent=!angular.isDefined(n.loadAvatarAllParent)||n.loadAvatarAllParent,e.loading=!0,e.service.load(t,n).then((function(i){!n.animate&&i.result.length&&_.forEach(i.result,(function(e){e.isnew=!0})),e.comments=i,e.comments.hasMore=i.total>i.result.length,e.loading=!1,e.service.changes.start(t,i,e),e.motion.show({selector:".comments .item",ink:!1})}))},e.$on("$recordView.beforeLeave",(function(){if(e.comments){if(!e.service)return void console.error("[comment] Comment controller has no service ! Unable to listen changes...");e.service.changes.stop(e.comments)}})),e.scrollToAnchor=function(){if(e.anchor){var t=document.getElementsByName(e.anchor);if(!t||!t.length)return a(e.scrollToAnchor,500);for(var n=0;n<t.length-1;n++)angular.element(t[n]).remove();o(e.anchor),a((function(){e.anchor=null}),1500)}},e.showMore=function(){e.load(e.id,{from:0,size:-1,loadAvatarAllParent:!1}).then((function(){e.motion.show({selector:".card-avatar"})}))},e.onKeypress=function(t){t&&10==t.charCode&&t.ctrlKey&&(e.save(),t.preventDefault())},e.save=function(){e.formData.message&&e.formData.message.length&&e.loadWallet({minData:!0,auth:!0}).then((function(){r.loading.hide();var t=e.formData;return e.formData={},e.focusNewComment(),e.service.save(e.id,e.comments,t)})).then((function(){e.comments.total++})).catch(r.onError("COMMENTS.ERROR.FAILED_SAVE_COMMENT"))},e.share=function(i,a){var o,s=angular.copy(n.params);s.anchor?(s.anchor=t("formatHash")(a.id),o=n.href(n.current.name,s,{absolute:!0})):o=n.href(n.current.name,s,{absolute:!0})+"/"+t("formatHash")(a.id);var l=_.findIndex(e.comments.result,{id:a.id}),c=o+"?u="+(a.uid||t("formatPubkey")(a.issuer));r.popover.show(i,{templateUrl:"templates/common/popover_share.html",scope:e,bindings:{titleKey:"COMMENTS.POPOVER_SHARE_TITLE",titleValues:{number:l?l+1:1},date:a.creationTime,value:c,postUrl:o,postMessage:a.message},autoselect:".popover-share input"})},e.edit=function(t){var n=new z;n.copy(t),e.formData=n},e.remove=function(t){t&&(t.remove(),e.comments.total--)},e.reply=function(t){t&&t.id&&(e.formData={parent:t},e.focusNewComment(!0))},e.cancel=function(){e.formData={},e.focusNewComment()},e.focusNewComment=function(e){r.screen.isSmall()?e&&i("comment-form-input"):i("comment-form-textarea")},e.removeParentLink=function(){delete e.formData.parent,delete e.formData.reply_to,e.focusNewComment()},e.toggleExpandedReplies=function(e,t){e.expandedReplies=e.expandedReplies||{},e.expandedReplies[t]=!e.expandedReplies[t]},e.toggleExpandedParent=function(e,t){e.expandedParent=e.expandedParent||{},e.expandedParent[t]=!e.expandedParent[t]}}function ee(e,t,n,i,a){e.socialData={url:null,reorder:!1},e.addSocialNetwork=function(){if(e.socialData.url&&0!==e.socialData.url.trim().length){e.formData.socials=e.formData.socials||[];var o=e.socialData.url.trim();if(_.findWhere(e.formData.socials,{url:o}))e.socialData.url="";else{var r=a.get(o);if(!r)return i.alert.error("PROFILE.ERROR.INVALID_SOCIAL_NETWORK_FORMAT"),void t("socialUrl");e.formData.socials.push(r),e.socialData.url="",e.motion.show({selector:"#social-"+n("formatSlug")(r.url),startVelocity:1e4})}}},e.editSocialNetwork=function(n){var i=e.formData.socials[n];e.formData.socials.splice(n,1),e.socialData.url=i.url,t("socialUrl")},e.reorderSocialNetwork=function(t,n,i){t&&n!=i&&(e.formData.socials.splice(n,1),e.formData.socials.splice(i,0,t))},e.filterFn=function(e){return!e.recipient||e.valid}}function te(e){e.openSocial=function(t,n){return e.openLink(t,n.url,{type:n.type})},e.filterFn=function(e){return!e.recipient||e.valid}}function ne(e){e.formData={initCrop:!1,imageCropStep:0,imgSrc:void 0,result:void 0,resultBlob:void 0},e.openFileSelector=function(){var e=angular.element(document.querySelector(".modal-avatar #fileInput"));e&&e.length>0&&e[0].click()},e.fileChanged=function(t){var n=t.target.files,i=new FileReader;i.readAsDataURL(n[0]),i.onload=function(t){var n=this.result;e.$applyAsync((function(){e.formData.imgSrc=n}))}},e.doNext=function(){2==e.formData.imageCropStep?e.doCrop():3==e.formData.imageCropStep&&e.closeModal(e.formData.result)},e.doCrop=function(){e.formData.initCrop=!0},e.clear=function(){e.formData={initCrop:!1,imageCropStep:1,imgSrc:void 0,result:void 0,resultBlob:void 0}}}function ie(e,t,n,i){var a=t.plugins&&t.plugins.es&&t.plugins.es.defaultCountry,o=!1;e.formPosition={loading:!1,enable:void 0},e.tryToLocalize=function(){if(!e.formPosition.loading&&!o){var t=e.getAddressToSearch();return t?(e.formPosition.loading=!0,n.point.searchByAddress(t).then((function(n){return n&&1==n.length?e.updateGeoPoint(n[0]):e.openSearchLocationModal({text:t,results:n||[],forceFallback:!n||!n.length})})).then((function(){e.formPosition.loading=!1})).catch((function(t){console.error(t),e.formPosition.loading=!1}))):(o=!0,n.point.current().then(e.updateGeoPoint).then((function(){o=!1})).catch((function(e){console.error(e),o=!1})))}},e.onCityChanged=function(){if(!e.loading)return e.formPosition.enable?(e.formData.geoPoint&&(e.formData.geoPoint.lat=void 0,e.formData.geoPoint.lon=void 0),e.tryToLocalize()):void 0},e.onUseGeopointChanged=function(){e.loading||(e.formPosition.enable?e.tryToLocalize():e.formData.geoPoint&&(e.formData.geoPoint.lat=void 0,e.formData.geoPoint.lon=void 0,e.dirty=!0))},e.onGeopointChanged=function(){e.loading&&(e.formPosition.enable=e.formData.geoPoint&&!!e.formData.geoPoint.lat&&!!e.formData.geoPoint.lon)},e.$watch("formData.geoPoint",e.onGeopointChanged),e.getAddressToSearch=function(){return e.formData.address&&e.formData.city?[e.formData.address.trim(),e.formData.city.trim()].join(", "):e.formData.city||e.formData.address||e.formData.location},e.updateGeoPoint=function(t){if(t&&t.lat&&t.lon&&(e.dirty=!0,e.formData.geoPoint=e.formData.geoPoint||{},e.formData.geoPoint.lat=parseFloat(t.lat),e.formData.geoPoint.lon=parseFloat(t.lon),t.address&&t.address.city)){var n=[t.address.city];t.address.postcode&&n.push(t.address.postcode),t.address.country!=a&&n.push(t.address.country),e.formData.city=n.join(", ")}},e.openSearchLocationModal=function(t){var n={text:(t=t||{}).text||e.getAddressToSearch(),results:t.results,fallbackText:t.fallbackText||e.formData.city,forceFallback:angular.isDefined(t.forceFallback)?t.forceFallback:void 0};return i.show("plugins/es/templates/common/modal_location.html","ESSearchPositionModalCtrl",n,{focusFirstInput:!0}).then(e.updateGeoPoint)}}function ae(e,t,n,i,a){var o=n.plugins&&n.plugins.es&&n.plugins.es.defaultCountry,r=!1;e.geoDistanceLabels=[5,10,20,50,100,250,500].reduce((function(e,t){return e[t]={labelKey:"LOCATION.DISTANCE_OPTION",labelParams:{value:t}},e}),{}),e.geoDistances=_.keys(e.geoDistanceLabels),e.searchPosition=function(n){if(r)return t.when();r=!0;var a=n?i.point.searchByAddress(n).then((function(t){return t&&1==t.length?(t[0].exact=!0,t[0]):e.openSearchLocationModal({text:n,results:t||[],forceFallback:!t||!t.length}).then((function(e){if(e&&e.address&&e.address.city){var t=[e.address.city];e.address.postcode&&t.push(e.address.postcode),e.address.country!=o&&t.push(e.address.country),e.shortName=t.join(", ")}return e}))})):i.point.current();return a.then((function(e){if(r=!1,e&&e.lat&&e.lon)return{lat:parseFloat(e.lat),lon:parseFloat(e.lon),name:e.shortName,exact:e.exact}})).catch((function(e){console.error(e),r=!1})),a},e.openSearchLocationModal=function(t){var n={text:(t=t||{}).text||e.getAddressToSearch(),results:t.results,fallbackText:t.fallbackText||e.search.location,forceFallback:angular.isDefined(t.forceFallback)?t.forceFallback:void 0};return a.show("plugins/es/templates/common/modal_location.html","ESSearchPositionModalCtrl",n,{focusFirstInput:!0})}}function oe(e,t,n,i,a){var o=i.plugins&&i.plugins.es&&i.plugins.es.defaultCountry,r=!1;e.locations=void 0,e.selectLocationIndex=-1,e.onKeydown=function(t){switch(t.keyCode){case 27:e.hideDropdown();break;case 13:e.locations&&e.locations.length&&e.onEnter();break;case 38:e.onArrowUpOrDown(-1),t.preventDefault();break;case 40:e.onArrowUpOrDown(1),t.preventDefault();break;case 8:case 45:case 46:break;case 37:case 39:case 16:case 17:case 35:case 36:break;default:e.showDropdown()}},e.onEnter=function(){e.selectLocationIndex>-1?e.selectLocation(e.locations[e.selectLocationIndex]):e.selectLocation(e.locations[0])},e.onArrowUpOrDown=function(t){e.locations&&(e.selectLocationIndex+=t,e.selectLocationIndex>=e.locations.length&&(e.selectLocationIndex=0),e.selectLocationIndex<0&&(e.selectLocationIndex=e.locations.length-1),_.forEach(e.locations||[],(function(t,n){t.selected=n==e.selectLocationIndex})))},e.onLocationChanged=function(){r||e.search.loading||(e.search.geoPoint=void 0,e.showDropdown())},e.showDropdown=function(){var t=e.search.location&&e.search.location.trim();if(!t||t.length<3)return e.hideDropdown(!0);var n=e.requestId&&e.requestId+1||1;return e.requestId=n,r=!0,a.point.searchByAddress(t).then((function(t){e.requestId==n&&(r=!1,e.locations=t||[],e.license=t&&t.length&&t[0].license)})).catch((function(t){throw e.hideDropdown(),t}))},e.hideDropdown=function(n){return n?(e.locations=void 0,e.selectLocationIndex=-1,e.license=void 0,void(r=!1)):t((function(){r||(e.locations=void 0,e.license=void 0,r=!1)}),500)},e.selectLocation=function(t,n){if(r=!0,t)if(e.search.geoPoint=e.search.geoPoint||{},e.search.geoPoint.lat=parseFloat(t.lat),e.search.geoPoint.lon=parseFloat(t.lon),n)e.search.geoPoint.exact=!0;else if(t&&t.address&&t.address.city){var i=[t.address.city];t.address.postcode&&i.push(t.address.postcode),t.address.country!=o&&i.push(t.address.country),e.search.location=i.join(", ")}e.hideDropdown(!0)},e.openSearchLocationModal=function(t){var i={text:(t=t||{text:e.search.location}).text||e.search.location};return n.show("plugins/es/templates/common/modal_location.html","ESSearchPositionModalCtrl",i,{focusFirstInput:!0}).then(e.selectLocation)}}function re(e,t,n,i,a){e.search={text:a.text||"",fallbackText:a.fallbackText||void 0,forceFallback:!!angular.isDefined(a.forceFallback)&&a.forceFallback,loading:!1,results:a.results||void 0},e.$on("modal.shown",(function(){e.doSearch(!0)})),e.doSearch=function(a){var o=e.search.text&&e.search.text.trim();if(!o)return t.when();e.search.loading=!0;var r=a&&e.search.fallbackText&&e.search.fallbackText.trim();return r=r&&r!=o?r:void 0,(a&&e.search.forceFallback&&e.search.results?t.when(e.search.results):i.point.searchByAddress(o)).then((function(e){return e&&e.length||!r?e:t.all([n("LOCATION.MODAL.ALTERNATIVE_RESULT_DIVIDER",{address:r}),i.point.searchByAddress(r)]).then((function(e){var t=e[0];return(e=e[1])&&e.length?[{name:t}].concat(e):e}))})).then((function(t){e.search.loading=!1,e.search.results=t||[],e.license=t&&t.length&&t[0].license})).catch((function(t){throw e.search.loading=!1,e.search.results=[],e.license=void 0,t}))}}function se(e,t,n){e.extensionPoint=n.extensions.points.current.get(),e.enable=t.isEnable(),t.api.state.on.changed(e,(function(t){e.enable=t,e.$broadcast("$$rebind::state")}))}function le(e,t,n,i,a){angular.extend(this,n("ESExtensionCtrl",{$scope:e})),e.showRegistryLookupView=function(){t.go(i.screen.isSmall()?"app.wot_lookup.tab_registry":"app.registry_lookup_lg")},e.showNotificationsPopover=function(t){return i.popover.show(t,{templateUrl:"plugins/es/templates/notification/popover_notification.html",scope:e,autoremove:!1,afterShow:function(e){var t=a.api.data.on.unauth(e.scope,(function(){e.scope.closePopover(),t()}))}})},e.showMessagesPopover=function(t){return a.isAuth()?i.popover.show(t,{templateUrl:"plugins/es/templates/message/popover_message.html",scope:e,autoremove:!1,afterShow:function(e){var t=a.api.data.on.unauth(e.scope,(function(){e.scope.closePopover(),t()}))}}):a.auth({minData:!0}).then((function(){return i.loading.hide(),e.showMessagesPopover(t)}))},e.showInvitationsPopover=function(t){return a.isAuth()?i.popover.show(t,{templateUrl:"plugins/es/templates/invitation/popover_invitation.html",scope:e,autoremove:!1,afterShow:function(e){var t=a.api.data.on.unauth(e.scope,(function(){e.scope.closePopover(),t()}))}}):a.auth().then((function(){return i.loading.hide(),e.showInvitationsPopover(t)}))}}function ce(e,t,n,i,a){e.updateView=function(){e.enable=a.isLogin()&&i.isEnable()},e.showEditUserProfile=function(){e.closeProfilePopover(),n.go("app.edit_profile")},i.api.state.on.changed(e,e.updateView),a.api.data.on.login(e,(function(n,a){return e.enable=i.isEnable(),a&&a.resolve()||t.when()})),a.api.data.on.logout(e,(function(){e.enable=!1})),e.updateView()}function ue(e,t,n,i,a,o,r,s,l,c,u,d,p){e.hasWindowNotification=!!("Notification"in window),e.formData={},e.popupData={},e.loading=!0,e.enter=function(t,n){e.load()},e.$on("$ionicView.enter",e.enter),e.load=function(t){e.loading=!0;var n=e.formData.enable;e.formData=c.data.plugins&&c.data.plugins.es?angular.copy(c.data.plugins.es):{enable:!1,host:void 0,port:void 0},t&&n&&(e.formData.enable=n),e.isFallbackNode=e.formData.enable&&u.node.isFallback(),e.server=e.getServer(u),e.loading=!1},d.api.state.on.changed(e,(function(t){e.load(!0)})),e.setPopupForm=function(t){e.popupForm=t},e.changeEsNode=function(t){t=t||{host:e.formData.host,port:e.formData.port&&80!=e.formData.port&&443!=e.formData.port?e.formData.port:void 0,useSsl:angular.isDefined(e.formData.useSsl)?e.formData.useSsl:443==e.formData.port},e.showNodePopup(t).then((function(t){if(t.host!==e.formData.host||t.port!=e.formData.port||t.useSsl!=e.formData.useSsl){o.loading.show();var n=u.instance(t.host,t.port,t.useSsl);return n.isAlive().then((function(i){return i?(e.formData.host=n.host,e.formData.port=n.port,e.formData.useSsl=n.useSsl,u.copy(n)):(o.loading.hide(),o.alert.error("ERROR.INVALID_NODE_SUMMARY").then((function(){e.changeEsNode(t)})))})).then((function(){e.server=e.getServer(u),e.isFallbackNode=!1,o.loading.hide()}))}o.loading.hide()}))},e.showNodePopup=function(t){return n((function(n,r){var s=[t.host];t.port&&80!=t.port&&s.push(t.port),e.popupData.newNode=s.join(":"),e.popupData.useSsl=angular.isDefined(t.useSsl)?t.useSsl:443==t.port,e.popupForm&&e.popupForm.$setPristine(),i(["ES_SETTINGS.POPUP_PEER.TITLE","ES_SETTINGS.POPUP_PEER.HELP","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then((function(t){a.show({templateUrl:"templates/settings/popup_node.html",title:t["ES_SETTINGS.POPUP_PEER.TITLE"],subTitle:t["ES_SETTINGS.POPUP_PEER.HELP"],scope:e,buttons:[{text:t["COMMON.BTN_CANCEL"]},{text:t["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.popupForm.$submitted=!0,e.popupForm.$valid&&e.popupForm.newNode)return{server:e.popupData.newNode,useSsl:e.popupData.useSsl};t.preventDefault()}}]}).then((function(e){if(e){var t=e.server.split(":");t[1]=t[1]?t[1]:e.useSsl?443:80,n({host:t[0],port:t[1],useSsl:e.useSsl})}else o.loading.hide()}))}))}))},e.showNodeList=function(){var n=!!("true"===l.httpsMode||!0===l.httpsMode||"force"===l.httpsMode||t.location&&"https:"===t.location.protocol);return a._popupStack[0].responseDeferred.promise.close(),p.showNetworkLookup({enableFilter:!0,endpoint:u.constants.ES_USER_API_ENDPOINT,ssl:!!n||void 0}).then((function(e){if(e){var t=(e.getEsEndpoints()||[]).reduce((function(e,t){var n=u.node.parseEndPoint(t);return n?e.concat(n):e}),[]);if(t.length){var n=t[0];return{host:n.dns?n.dns:e.hasValid4(n)?n.ipv4:n.ipv6,port:n.port||80,useSsl:n.useSsl||443==n.port}}}})).then((function(t){e.changeEsNode(t)}))},e.onFormChanged=function(){e.loading||(e.hasWindowNotification&&e.formData.notifications.emitHtml5!==("granted"===window.Notification.permission)?window.Notification.requestPermission((function(t){e.formData.notifications.emitHtml5="granted"===t,e.onFormChanged()})):(e.loading=!0,c.data.plugins=c.data.plugins||{},c.data.plugins.es=c.data.plugins.es?angular.merge(c.data.plugins.es,e.formData):e.formData,delete c.data.plugins.es.newNode,c.store().then((function(){e.loading=!1}))))},e.$watch("formData",e.onFormChanged,!0),e.getServer=function(t){if((t=t||e.formData).host)return s.getServer(t.host,t.port)}}function de(e,t,n,i,a){angular.extend(this,t("ESExtensionCtrl",{$scope:e})),e.showProfileHelp=!1,e.showNewPageModal=function(){var e=n.params&&n.params.id?a.children.get(n.params.id):a;if(e)return i.showNewPage({wallet:e});UIUtils.alert.error("ERROR.UNKNOWN_WALLET_ID")}}function pe(e,t,n){angular.extend(this,t("ESExtensionCtrl",{$scope:e})),e.openRegistryLookup=function(){var t=e.search.text&&e.search.text.trim()||"",i=e.search.location&&e.search.location.trim()||"",a={q:t.length?t:void 0,location:i.length?i:void 0};n.go("app.wot_lookup.tab_registry",a)}}function me(e,t,n,i,a,o,r,s,l,c){angular.extend(this,i("ESExtensionCtrl",{$scope:e})),e.canCertify=!1,e.showNewMessageModal=function(t){return r.login({minData:!0,method:"default"}).then((function(){return a.loading.hide(),!(!t&&!e.formData.profile)||a.alert.confirm("MESSAGE.CONFIRM.USER_HAS_NO_PROFILE").then((function(e){if(e)return!0}))})).then((function(t){return!!t&&s.showMessageCompose({destPub:e.formData.pubkey,destUid:e.formData.name||e.formData.uid}).then((function(e){e&&a.toast.show("MESSAGE.INFO.MESSAGE_SENT")}))}))},e.showSuggestCertificationModal=function(){var t;return e.hideCertificationActionsPopover(),r.auth({minData:!0}).then((function(i){if(a.loading.hide(),i)return i.isMember?o.showWotLookup({allowMultiple:!0,enableFilter:!0,title:"WOT.SUGGEST_CERTIFICATIONS_MODAL.TITLE",help:"WOT.SUGGEST_CERTIFICATIONS_MODAL.HELP",okText:"COMMON.BTN_NEXT",okType:"button-positive"}).then((function(o){if(o&&o.length)return t=o,n.all([l.box.getKeypair(i.keypair),a.alert.confirm("WOT.CONFIRM.SUGGEST_CERTIFICATIONS",void 0,{okText:"COMMON.BTN_SEND"})]).then((function(a){if(a){var o=a[0];if(a[1]){var r=moment().utc().unix();return n.all(t.reduce((function(t,n){return t.concat(c.send({issuer:i.pubkey,recipient:e.formData.pubkey,time:r,content:[n.uid,n.pubkey].join("-")},o,"certification"))}),[]))}}})).then((function(){a.toast.show("INVITATION.INFO.INVITATION_SENT")})).catch(a.onError("INVITATION.ERROR.SEND_INVITATION_FAILED"))})):a.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")}))},e.showAskCertificationModal=function(){var t;return e.hideCertificationActionsPopover(),(r.children.count()?o.showSelectWallet({displayBalance:!1}):n.when(r)).then((function(e){return e.auth({minData:!0})})).then((function(e){if(a.loading.hide(),e)return e.isMember?o.showWotLookup({allowMultiple:!0,enableFilter:!1,title:"WOT.ASK_CERTIFICATIONS_MODAL.TITLE",help:"WOT.ASK_CERTIFICATIONS_MODAL.HELP",okText:"COMMON.BTN_NEXT",okType:"button-positive"}).then((function(i){if(i&&i.length)return t=i,n.all([l.box.getKeypair(e.keypair),a.alert.confirm("WOT.CONFIRM.ASK_CERTIFICATIONS",void 0,{okText:"COMMON.BTN_SEND"})]).then((function(i){var o=i&&i[0],r=i&&i[1];if(o&&r){var s=moment().utc().unix();return n.all(t.reduce((function(t,n){return t.concat(c.send({issuer:e.pubkey,recipient:n.pubkey,time:s,content:[e.uid,e.pubkey].join("-")},o,"certification"))}),[])).then((function(){a.toast.show("INVITATION.INFO.INVITATION_SENT")})).catch(a.onError("INVITATION.ERROR.SEND_INVITATION_FAILED"))}}))})):a.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")}))},e.askCertification=function(){return e.hideCertificationActionsPopover(),(r.children.count()?o.showSelectWallet({displayBalance:!1}):n.when(r)).then((function(e){return e.auth({minData:!0})})).then((function(t){if(a.loading.hide(),t)return t.isMember?a.alert.confirm("WOT.CONFIRM.ASK_CERTIFICATION",void 0,{okText:"COMMON.BTN_SEND"}).then((function(n){if(n)return c.send({issuer:t.pubkey,recipient:e.formData.pubkey,content:[t.uid,t.pubkey].join("-")},{type:"certification",keypair:t.keypair}).then((function(){a.toast.show("INVITATION.INFO.INVITATION_SENT")})).catch(a.onError("INVITATION.ERROR.SEND_INVITATION_FAILED"))})):a.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")}))},e.showCertificationActionsPopover=function(t){a.popover.show(t,{templateUrl:"plugins/es/templates/wot/popover_certification_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.certificationActionsPopover=t}})},e.hideCertificationActionsPopover=function(){e.certificationActionsPopover&&(e.certificationActionsPopover.hide(),e.certificationActionsPopover=null)},"buttons-top-fab"===e.extensionPoint&&e.$on("$csExtension.motion",(function(t){e.formData.profile&&e.showFab("fab-compose-"+e.formData.pubkey)}))}function Ee(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g){angular.extend(this,a("ESLookupPositionCtrl",{$scope:e})),e.search={text:"",results:[],loading:!0,lastRecords:!0,type:null,category:null,location:null,advanced:null,issuer:null,geoDistance:isNaN(p.data.plugins.es.geoDistance)?20:p.data.plugins.es.geoDistance},e.searchTextId="registrySearchText",e.enableFilter=!0,e.smallscreen=angular.isDefined(e.smallscreen)?e.smallscreen:c.screen.isSmall(),e.options=angular.merge(e.options||{},{location:{show:!0,help:"REGISTRY.SEARCH.LOCATION_HELP"}}),e.enter=function(n,i){if(!e.entered||!e.search.results||0===e.search.results.length){if(!e.geoUnit)return r("LOCATION.DISTANCE_UNIT").then((function(t){return e.geoUnit=t,e.enter(n,i)}));var a=function(){e.searchTextId&&t(e.searchTextId),e.entered=!0,e.doSearch()};if(i.stateParams&&i.stateParams.q&&"string"==typeof i.stateParams.q&&(e.search.text=i.stateParams.q),i.stateParams&&i.stateParams.hash&&(e.search.text="#"+i.stateParams.hash),i.stateParams&&i.stateParams.location)e.search.location=i.stateParams.location,i.stateParams.lat&&i.stateParams.lon&&(e.search.geoPoint={lat:parseFloat(i.stateParams.lat),lon:parseFloat(i.stateParams.lon)}),i.stateParams.d&&(e.search.geoDistance=i.stateParams.d);else{var o=p.data.plugins.es.registry&&p.data.plugins.es.registry.defaultSearch;if(o&&(o.location?angular.merge(e.search,p.data.plugins.es.registry.defaultSearch):o=void 0),!o&&m.isLogin()&&m.data.profile){if(!m.isDataLoaded())return c.loading.show(),m.loadData().then((function(){return c.loading.hide(),e.enter(n,i)}));e.search.geoPoint=m.data.profile.geoPoint,e.search.location=m.data.profile.city||(m.data.profile.geoPoint?r.instant("LOCATION.PROFILE_POSITION"):void 0)}}i.stateParams&&(i.stateParams.type||i.stateParams.last)?i.stateParams.last||"last"==i.stateParams.type?(e.search.lastRecords=!0,e.search.type=void 0):e.search.type=i.stateParams.type:e.search.lastRecords=!1,i.stateParams&&i.stateParams.issuer&&(e.search.issuer=i.stateParams.issuer),i.stateParams&&i.stateParams.category?b.category.get({id:i.stateParams.category}).then((function(t){e.search.category=t,a()})).catch(c.onError("REGISTRY.ERROR.LOAD_CATEGORY_FAILED")):a()}e.showFab("fab-add-registry-record")},e.$on("$ionicView.enter",(function(t,n){return e.enter(t,n)})),e.leave=function(){var t=!1;p.data.plugins.es.registry=p.data.plugins.es.registry||{},p.data.plugins.es.registry.defaultSearch=p.data.plugins.es.registry.defaultSearch||{};var i=e.search.location&&e.search.location.trim(),a=p.data.plugins.es.registry.defaultSearch.location;a&&a===i||(p.data.plugins.es.registry.defaultSearch={location:i,geoPoint:i&&e.search.geoPoint?angular.copy(e.search.geoPoint):void 0},t=!0);var o=p.data.plugins.es.geoDistance;o&&o===e.search.geoDistance||(p.data.plugins.es.geoDistance=e.search.geoDistance,t=!0),t&&n((function(){p.store()}))},e.$on("$ionicView.leave",(function(){return e.leave()})),e.onGeoPointChanged=function(){e.search.loading||e.search.geoPoint&&e.search.geoPoint.lat&&e.search.geoPoint.lon&&!e.search.geoPoint.exact&&(e.doSearch(),e.updateLocationHref())},e.$watch("search.geoPoint",e.onGeoPointChanged,!0),e.resolveLocationPosition=function(){if(!e.search.loadingPosition)return e.search.loadingPosition=!0,e.searchPosition(e.search.location).then((function(t){if(!t)throw e.search.loading=!1,e.search.results=void 0,e.search.total=0,e.search.loadingPosition=!1,e.search.geoPoint=void 0,"CANCELLED";e.search.geoPoint=t,t.shortName&&!t.exact&&(e.search.location=t.shortName),e.search.loadingPosition=!1}))},e.doGetLastRecords=function(t){return e.hidePopovers(),e.search.text=void 0,e.doSearch(t)},e.doSearchText=function(){e.doSearch(),l.keyboard.close()},e.doSearch=function(t){if(e.search.loading=!t,e.search.location&&e.search.location.length>=3&&!e.search.geoPoint)return e.resolveLocationPosition().then((function(){return e.doSearch(t)}));var n=e.search.text&&e.search.text.trim()||"";e.search.lastRecords=!n||!n.length;var i=[],a=[];if(n&&n.length)if(d.regexp.PUBKEY.test(n))a.push({term:{pubkey:n}});else{var o=(n=n.toLowerCase())?g.util.parseTags(n):void 0;i.push({multi_match:{query:n,fields:["title","description","city","address"],type:"phrase_prefix"}}),i.push({match:{title:{query:n,boost:2}}}),i.push({prefix:{title:n}}),i.push({match:{description:n}}),i.push({nested:{path:"category",query:{bool:{filter:{match:{"category.name":n}}}}}}),o&&o.length&&a.push({terms:{tags:o}})}else e.search.issuer&&a.push({term:{issuer:e.search.issuer}});e.search.type&&a.push({term:{type:e.search.type}}),e.search.category&&a.push({nested:{path:"category",query:{bool:{filter:{term:{"category.id":e.search.category.id}}}}}});var r=e.search.location&&e.search.location.trim().toLowerCase();if(e.search.geoPoint&&e.search.geoPoint.lat&&e.search.geoPoint.lon)if(r&&r.length){var s=r.split(",")[0];a.push({or:[{and:[{not:{exists:{field:"geoPoint"}}},{match_phrase:{city:s}}]},{geo_distance:{distance:e.search.geoDistance+e.geoUnit,geoPoint:{lat:e.search.geoPoint.lat,lon:e.search.geoPoint.lon}}}]})}else a.push({geo_distance:{distance:e.search.geoDistance+e.geoUnit,geoPoint:{lat:e.search.geoPoint.lat,lon:e.search.geoPoint.lon}}});var l={highlight:{fields:{title:{},description:{},tags:{}}},from:t};return i.length>0&&(l.query=l.query||{bool:{}},l.query.bool.should=i,l.query.bool.minimum_should_match=1),a.length>0&&(l.query=l.query||{bool:{}},l.query.bool.filter=a),e.search.lastRecords&&(l.sort={creationTime:"desc"}),e.updateLocationHref(),e.doRequest(l)},e.doRequest=function(t){(t=t||{}).from=t.from||0,t.size=t.size||10,t.size<10&&(t.size=10),e.search.loading=0===t.from;var n=e.requestId&&e.requestId+1||1;return e.requestId=n,b.record.search(t).then((function(a){if(e.requestId==n){if(!a||!a.hits||!a.hits.length)return e.search.results=t.from>0?e.search.results:[],e.search.total=t.from>0?e.search.total:0,e.search.loading=!1,void(e.search.hasMore=!1);var o=i("formatSlug");_.forEach(a.hits,(function(e){e.urlTitle=o(e.title)})),t.from?e.search.results=e.search.results.concat(a.hits):(e.search.results=a.hits,e.search.total=a.total),e.search.hasMore=e.search.results.length<a.total,e.search.loading=!1,e.motion.show({selector:".list .item",ink:!0})}})).catch((function(n){e.search.loading=!1,e.search.results=t.from>0?e.search.results:[],e.search.total=t.from>0?e.search.total:0,e.search.hasMore=!1,c.onError("REGISTRY.ERROR.LOOKUP_RECORDS_FAILED")(n)}))},e.showMore=function(){var t=e.search.results?e.search.results.length:0;return e.search.loadingMore=!0,(e.search.lastRecords?e.doGetLastRecords:e.doSearch)(t).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})).catch((function(t){console.error(t),e.search.loadingMore=!1,e.search.hasMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.removeType=function(){e.search.type=null,e.doSearch(),e.updateLocationHref()},e.removeCategory=function(){e.search.category=null,e.category=null,e.doSearch(),e.updateLocationHref()},e.removeLocation=function(){e.search.location=null,e.search.geoPoint=null,e.doSearch(),e.updateLocationHref()},e.updateLocationHref=function(t){t||n((function(){var t=e.search.text&&e.search.text.trim(),n=e.search.location&&e.search.location.trim(),i={location:n&&n.length?n:void 0,category:e.search.category?e.search.category.id:void 0,last:!!e.search.lastRecords||void 0,type:e.search.type?e.search.type:void 0,lat:e.search.geoPoint&&e.search.geoPoint.lat||void 0,lon:e.search.geoPoint&&e.search.geoPoint.lon||void 0,d:e.search.geoPoint&&e.search.geoDistance||void 0};t&&t.match(/^#\w+$/)?i.hash=t.substr(1):t&&t.length&&(i.q=t),o.search(i).replace()}))},e.onToggleAdvanced=function(){e.search.entered&&!e.search.lastRecords&&(e.doSearch(),e.updateLocationHref())},e.$watch("search.advanced",e.onToggleAdvanced,!0),e.toggleAdvanced=function(){e.search.advanced=!e.search.advanced,n(e.hidePopovers,200)},e.showRecordTypeModal=function(t){e.hidePopovers(),n((function(){t.isDefaultPrevented()||u.show("plugins/es/templates/registry/modal_record_type.html").then((function(t){t&&(e.search.type=t,e.doSearch(),e.updateLocationHref())}))}),350)},e.showCategoryModal=function(t){n((function(){t.isDefaultPrevented()||b.category.all().then((function(e){return u.show("plugins/es/templates/common/modal_category.html","ESCategoryModalCtrl as ctrl",{categories:e},{focusFirstInput:!0})})).then((function(t){t&&t.parent&&(e.search.category=t,e.doSearch(),e.updateLocationHref())}))}),350)},e.showNewPageModal=function(){return e.hidePopovers(),E.showNewPage()},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"plugins/es/templates/registry/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.filtersPopover=null)},e.showFiltersPopover=function(t){c.popover.show(t,{templateUrl:"plugins/es/templates/registry/lookup_popover_filters.html",scope:e,autoremove:!0,afterShow:function(t){e.filtersPopover=t}})},e.hideFiltersPopover=function(){e.filtersPopover&&(e.filtersPopover.hide(),e.filtersPopover=null)},e.hidePopovers=function(){e.hideActionsPopover(),e.hideFiltersPopover()}}function be(e,t,n,i,a,o){var r;angular.extend(this,t("ESRegistryLookupCtrl",{$scope:e})),e.searchTextId=void 0,e.enter=function(t,a){return e.entered?a.stateParams&&a.stateParams.refresh?n(e.doSearch,2e3):void 0:(r=a.stateParams&&a.stateParams.id?o.children.get(a.stateParams.id):o)?r.login({minData:!0}).then((function(t){i.loading.hide(),e.search.issuer=t.pubkey,e.search.advanced=!0,n(e.doSearch,100),e.showFab("fab-wallet-add-registry-record")})):(i.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())},e.doUpdate=function(){if(r&&r.isLogin())return e.search.issuer=o.data.pubkey,e.search.advanced=!0,e.doSearch()},e.showNewPageModal=function(){return e.hidePopovers(),a.showNewPage({wallet:r})}}function ge(e,t,n,i,a,o,r,s,l,c,u,d,p,m){e.formData={},e.id=null,e.category={},e.pictures=[],e.canEdit=!1,e.showTransfer=!1,e.loading=!0,e.motion=p.motion.fadeSlideIn,e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!p.screen.isSmall()||t.enableBack})),e.$on("$ionicView.enter",(function(t,i){i.stateParams&&i.stateParams.id?((e.loading||i.stateParams.refresh)&&e.load(i.stateParams.id,i.stateParams.anchor),e.$broadcast("$recordView.enter",i)):n.go("app.wot_lookup.tab_registry")})),e.$on("$ionicView.beforeLeave",(function(t,n){e.$broadcast("$recordView.beforeLeave",n)})),e.load=function(t,o){return t=t||e.id,e.loading=!0,i.all([d.record.load(t).then((function(t){e.id=t.id,e.formData=t.record,e.canEdit=u.isUserPubkey(e.formData.issuer)||u.children.hasPubkey(e.formData.issuer),e.showTransfer=!e.canEdit&&e.formData.pubkey,e.issuer=t.issuer,e.avatar=e.formData.avatar,e.avatarStyle=e.formData.avatar&&{"background-image":'url("'+e.avatar.src+'")'},p.loading.hide(),e.loading=!1,e.motion.show({selector:".list > .item, .list > ng-if > .item"})})).catch((function(a){e.secondTry?(e.loading=!1,a&&404===a.ucode?(p.toast.show("REGISTRY.ERROR.RECORD_NOT_EXISTS"),n.go("app.wot_lookup.tab_registry")):p.onError("REGISTRY.ERROR.LOAD_RECORD_FAILED")(a)):(e.secondTry=!0,i((function(){e.load(t)}),100))})),d.record.picture.all({id:t}).then((function(t){e.pictures=t._source.pictures&&t._source.pictures.reduce((function(e,t){return e.concat(m.image.fromAttachment(t.file))}),[]),e.pictures.length>0&&e.motion.show({selector:".lazy-load .item.card-gallery",startVelocity:3e3})})).catch((function(){e.pictures=[]})),a((function(){return e.$broadcast("$recordView.load",t,d.record.comment)}))]).then((function(){e.motion.show({selector:".lazy-load .item",startVelocity:3e3}),o&&a((function(){l(o)}),1e3)}))},e.edit=function(){var t=u.isUserPubkey(e.formData.issuer)?u:u.children.getByPubkey(e.formData.issuer);if(t)return p.loading.show(),n.go("app.registry_edit_record",{id:e.id,wallet:t.id})},e.delete=function(){e.hideActionsPopover();var t,i=u.isUserPubkey(e.formData.issuer)?u:u.children.getByPubkey(e.formData.issuer);i&&s(["REGISTRY.VIEW.REMOVE_CONFIRMATION","REGISTRY.INFO.RECORD_REMOVED"]).then((function(e){return t=e,p.alert.confirm(e["REGISTRY.VIEW.REMOVE_CONFIRMATION"])})).then((function(a){a&&d.record.remove(e.id,{wallet:i}).then((function(){i.data.pages&&i.data.pages.count&&i.data.pages.count--,r.nextViewOptions({historyRoot:!0}),i.isDefault()?n.go("app.wallet_pages",{refresh:!0}):n.go("app.wallet_pages_by_id",{refresh:!0,id:i.id}),p.toast.show(t["REGISTRY.INFO.RECORD_REMOVED"])})).catch(p.onError("REGISTRY.ERROR.REMOVE_RECORD_FAILED"))}))},e.showActionsPopover=function(t){p.popover.show(t,{templateUrl:"plugins/es/templates/registry/view_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showSharePopover=function(i){e.hideActionsPopover();var a=e.formData.title,o=(c.shareBaseUrl||t.rootPath)+n.href("app.view_page",{title:a,id:e.id});p.screen.isSmall()&&(i=angular.element(document.querySelector("#registry-share-anchor-"+e.id))||i),p.popover.share(i,{bindings:{url:o,titleKey:"REGISTRY.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:a},time:e.formData.time,postMessage:a}})}}function fe(e,t,n,i,a,o,r,s,l,c,u,d,p,m){var E;angular.extend(this,s("ESPositionEditCtrl",{$scope:e})),e.formData={title:null,description:null,socials:[],geoPoint:null},e.loading=!0,e.dirty=!1,e.walletData=null,e.id=null,e.avatar=null,e.pictures=[],e.setForm=function(t){e.form=t},e.$on("$ionicView.enter",(function(t,n){if(e.loading)return(E=n.stateParams&&n.stateParams.wallet&&"default"!=n.stateParams.wallet?d.children.get(n.stateParams.wallet):d)?E.login({minData:!0}).then((function(t){e.walletData=t,n.stateParams&&n.stateParams.id?e.load(n.stateParams.id):n.stateParams&&n.stateParams.type&&e.updateView({record:{type:n.stateParams.type}}),o("registry-record-title")})):(c.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())})),e.$on("$stateChangeStart",(function(t,i,o,r){if(e.dirty&&!e.saving&&(t.preventDefault(),!e.loading))return e.loading=!0,c.alert.confirm("CONFIRM.SAVE_BEFORE_LEAVE","CONFIRM.SAVE_BEFORE_LEAVE_TITLE",{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES_SAVE"}).then((function(t){return e.loading=!1,t?(e.form.$submitted=!0,e.save(!1,!0).then((function(t){return t&&(e.dirty=!1),t}))):(e.dirty=!1,!0)})).then((function(e){e&&(a.nextViewOptions({historyRoot:!0}),n.go(i.name,o))})).catch((function(e){}))})),e.load=function(t){e.loading=!0,m.record.load(t,{raw:!0}).then((function(t){t&&t.record?e.updateView(t):e.updateView({record:{}})})).catch((function(t){c.loading.hide(10),e.loading=!1,c.onError("REGISTRY.ERROR.LOAD_RECORD_FAILED")(t)}))},e.updateView=function(n){e.formData=n.record||{},e.id=n.id,e.avatar=e.formData.avatar,e.avatar?(e.avatarStyle=e.avatar&&{"background-image":'url("'+e.avatar.src+'")'},e.avatarClass={}):(e.avatarStyle=void 0,e.avatarClass={},e.avatarClass["cion-page-"+e.formData.type]=!e.avatar),e.pictures=n.record&&n.record.pictures||[],delete n.record.pictures,e.motion.show({selector:".animate-ripple .item, .card-gallery",startVelocity:3e3}),c.loading.hide(),t((function(){e.loading=!1}),1e3)},e.onFormDataChanged=function(){e.loading||(e.dirty=!0)},e.$watch("formData",e.onFormDataChanged,!0),e.needCategory=function(){return e.formData.type&&("company"==e.formData.type||"shop"==e.formData.type)},e.save=function(o,s){if(e.form.$submitted=!0,e.saving||!e.form.$valid||("shop"===e.formData.type||"company"===e.formData.type)&&(!e.formData.category||!e.formData.category.id))return i.reject();if(!s)return console.debug("[ES] [page] Waiting debounce end, before saving..."),t((function(){return e.save(o,!0)}),650);e.saving=!0,console.debug("[ES] [page] Saving record...");var l=i.when();return o||(l=c.loading.show()),l.then((function(){var t=e.formData;return e.needCategory()||delete t.category,t.time=moment().utc().unix(),t.geoPoint&&t.geoPoint.lat&&t.geoPoint.lon?(t.geoPoint.lat=parseFloat(t.geoPoint.lat),t.geoPoint.lon=parseFloat(t.geoPoint.lon)):t.geoPoint=null,t.socials&&t.socials.length&&(t.socials=_.uniq(t.socials,!1,(function(e){return e.url}))),t.picturesCount=e.pictures.length,t.picturesCount>0?t.pictures=e.pictures.reduce((function(e,t){return e.concat({file:p.image.toAttachment(t)})}),[]):t.pictures=[],e.avatar&&e.avatar.src?c.image.resizeSrc(e.avatar.src,!0).then((function(e){return t.avatar=p.image.toAttachment({src:e}),t})):(t.avatar={_content:"",_content_type:""},t)})).then((function(t){return e.id?m.record.update(t,{id:e.id,wallet:E}):m.record.add(t,{wallet:E})})).then((function(t){return console.info("[ES] [page] Record successfully saved."),!e.id&&E.data.pages&&E.data.pages.count&&d.data.pages.count++,e.id=e.id||t,e.saving=!1,e.dirty=!1,o||(c.loading.hide(),r("REGISTRY.INFO.RECORD_SAVED").then((function(e){c.toast.show(e)}))),a.clearCache(a.currentView().stateId),a.nextViewOptions({historyRoot:!0}),n.go("app.view_page",{id:e.id,refresh:!0})})).catch((function(t){e.saving=!1,c.onError("REGISTRY.ERROR.SAVE_RECORD_FAILED")(t)}))},e.openPicturePopup=function(){l.camera.getPicture().then((function(t){t&&e.pictures.push({src:"data:image/png;base64,"+t})})).catch(c.onError("ERROR.TAKE_PICTURE_FAILED"))},e.rotateAvatar=function(){if(e.avatar&&e.avatar.src&&!e.rotating)return e.rotating=!0,c.image.rotateSrc(e.avatar.src).then((function(t){e.avatar.src=t,e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.rotating=!1})).catch((function(t){console.error(t),e.rotating=!1}))},e.fileChanged=function(t){return c.loading.show(),i((function(n,i){var a=t.target.files[0];c.image.resizeFile(a).then((function(t){e.pictures.push({src:t}),c.loading.hide(),n()}))}))},e.removePicture=function(t){e.pictures.splice(t,1)},e.favoritePicture=function(t){if(t>0){var n=e.pictures[t];e.pictures.splice(t,1),e.pictures.splice(0,0,n)}},e.cancel=function(){a.goBack()},e.showAvatarModal=function(){return l.camera.enable?l.camera.getPicture().then((function(t){t&&(e.avatar={src:"data:image/png;base64,"+t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.avatarClass={})})).catch(c.onError("ERROR.TAKE_PICTURE_FAILED")):u.show("plugins/es/templates/common/modal_edit_avatar.html","ESAvatarModalCtrl",{}).then((function(t){t&&(e.avatar={src:t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.avatarClass={})}))},e.showRecordTypeModal=function(){u.show("plugins/es/templates/registry/modal_record_type.html").then((function(t){t&&(e.formData.type=t,e.avatar||(e.avatarClass["cion-page-"+t]=!0),e.doSearch(),e.updateLocationHref())}))},e.showCategoryModal=function(t){m.category.all().then((function(e){return u.show("plugins/es/templates/common/modal_category.html","ESCategoryModalCtrl as ctrl",{categories:e},{focusFirstInput:!0})})).then((function(t){t&&t.parent&&(e.formData.category=t,e.doSearch(),e.updateLocationHref())}))}}function _e(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){var b;angular.extend(this,r("ESPositionEditCtrl",{$scope:e})),e.formData={title:null,description:null,socials:[],geoPoint:null},e.loading=!0,e.dirty=!1,e.walletData=null,e.avatar=null,e.existing=!1,e.socialData={url:null},e.socialReorder=!0,e.enter=function(t,n){return(b=n.stateParams&&n.stateParams.id?u.children.get(n.stateParams.id):u)?(e.walletId=b.id,b.auth({minData:!0}).then(e.load).catch((function(t){if("CANCELLED"==t)return c.loading.hide(10),void e.cancel();c.onError("PROFILE.ERROR.LOAD_PROFILE_FAILED")(t)}))):(c.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())},e.$on("$ionicView.enter",e.enter),e.$on("$stateChangeStart",(function(t,n,a,o){if(e.dirty&&!e.saving&&(t.preventDefault(),!e.loading))return e.loading=!0,c.alert.confirm("CONFIRM.SAVE_BEFORE_LEAVE","CONFIRM.SAVE_BEFORE_LEAVE_TITLE",{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES_SAVE"}).then((function(t){return e.loading=!1,t?(e.form.$submitted=!0,e.save(!1,!0).then((function(t){return t&&(e.dirty=!1),t}))):(e.dirty=!1,!0)})).then((function(e){e&&(s.nextViewOptions({historyRoot:!0}),i.go(n.name,a))})).catch((function(e){}))})),e.load=function(t){return e.loading=!0,p.get(t.pubkey,{raw:!0}).then((function(i){return i?(e.avatar=d.image.fromAttachment(i.source.avatar),e.existing=!0,e.updateView(t,i.source)):(e.avatar=void 0,e.existing=!1,e.updateView(t,{})),c.loading.hide(),n((function(){e.loading=!1}),1e3)})).then((function(){a("profile-name")})).catch(c.onError("PROFILE.ERROR.LOAD_PROFILE_FAILED"))},e.setForm=function(t){e.form=t},e.updateView=function(t,n){e.walletData=t,e.formData=n,n.avatar&&(e.avatarStyle={"background-image":'url("'+e.avatar.src+'")'}),e.motion.show()},e.onFormDataChanged=function(){e.loading||(e.dirty=!0)},e.$watch("formData",e.onFormDataChanged,!0),e.save=function(i,a){if(e.form.$invalid||!e.walletData||e.saving&&!a)return t.reject();if(!a)return e.saving=!0,n((function(){return e.save(i,!0)}),650);console.debug("[ES] [profile] Saving user profile..."),i||c.loading.show();var r=function(t){return function(n){e.saving=!1,c.onError(t)(n)}},s=function(t){t&&(e.walletData.name=t.title,e.avatar?e.walletData.avatar=e.avatar:delete e.walletData.avatar,e.walletData.profile=angular.copy(t),e.walletData.profile.description=d.util.parseAsHtml(t.description))},l=function(){if(!i)return c.loading.hide(),o("PROFILE.INFO.PROFILE_SAVED").then((function(e){c.toast.show(e)}))},u=function(t){return t.socials&&t.socials.length&&(t.socials=_.uniq(t.socials,!1,(function(e){return e.url}))),t.position&&(t.position=null),t.geoPoint&&t.geoPoint.lat&&t.geoPoint.lon?(t.geoPoint.lat=parseFloat(t.geoPoint.lat),t.geoPoint.lon=parseFloat(t.geoPoint.lon)):t.geoPoint=null,e.existing?p.update(t,{id:e.walletData.pubkey,wallet:b}).then((function(){return console.info("[ES] Profile successfully updated."),e.saving=!1,e.dirty=!1,s(t),l(),!0})).catch(r("PROFILE.ERROR.SAVE_PROFILE_FAILED")):p.add(t,{wallet:b}).then((function(){return console.info("[ES] [profile] Successfully created."),e.existing=!0,e.saving=!1,e.dirty=!1,s(t),l(),!0})).catch(r("PROFILE.ERROR.SAVE_PROFILE_FAILED"))};return e.avatar&&e.avatar.src?c.image.resizeSrc(e.avatar.src,!0).then((function(t){return e.formData.avatar=d.image.toAttachment({src:t}),u(e.formData)})):(delete e.formData.avatar,u(e.formData))},e.saveAndClose=function(){return e.save().then((function(t){t&&e.close()}))},e.submitAndSaveAndClose=function(){e.form.$submitted=!0,e.saveAndClose()},e.cancel=function(){return e.dirty=!1,b.isDefault()?(s.nextViewOptions({historyRoot:!0}),i.go("app.view_wallet")):i.go("app.view_wallet_by_id",{id:b.id})},e.close=function(){return b.isDefault()?(s.nextViewOptions({historyRoot:!0}),i.go("app.view_wallet",{refresh:!0})):i.go("app.view_wallet_by_id",{refresh:!0,id:b.id})},e.showAvatarModal=function(){return E.camera.enable?E.camera.getPicture().then((function(t){t&&(e.avatar={src:"data:image/png;base64,"+t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0)})).catch(c.onError("ERROR.TAKE_PICTURE_FAILED")):m.show("plugins/es/templates/common/modal_edit_avatar.html","ESAvatarModalCtrl",{}).then((function(t){t&&(e.avatar={src:t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0)}))},e.rotateAvatar=function(){if(e.avatar&&e.avatar.src&&!e.rotating)return e.rotating=!0,c.image.rotateSrc(e.avatar.src).then((function(t){e.avatar.src=t,e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.rotating=!1})).catch((function(t){console.error(t),e.rotating=!1}))},e.removeProfile=function(){return e.hideActionsPopover(),e.existing&&b.auth({minData:!0}).then((function(t){c.loading.hide(),c.alert.confirm("PROFILE.CONFIRM.DELETE",void 0,{okText:"COMMON.BTN_DELETE"}).then((function(i){if(i)return console.debug("[ES] [profile] Deleting user profile..."),c.loading.show(),p.remove(t.pubkey,{wallet:b}).then((function(){return b.isDefault()&&(t.name=null),t.profile=null,t.avatar=null,console.debug("[ES] [profile] Successfully deleted"),e.dirty=!1,e.close()})).then((function(){return n((function(){c.toast.show("PROFILE.INFO.PROFILE_REMOVED")}),750)})).catch(c.onError("PROFILE.ERROR.REMOVE_PROFILE_FAILED"))}))}))},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"plugins/es/templates/user/edit_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function Te(e,t,n,i,a,o,r,s,l,c){var u,d=!1;e.search={loading:!0,results:[],hasMore:!1,loadingMore:!1,limit:40,type:"last",text:null,options:{}},e.fabButtonNewMessageId=void 0,e.enter=function(t,n){if(e.search.loading){if(!(u=n.stateParams&&n.stateParams.id?r.children.get(n.stateParams.id):r))return l.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();e.isDefaultWallet=u.isDefault(),e.walletId=u.id,u.auth({minData:!0}).then((function(){e.entered||(e.entered=!0,e.type=e.type||n.stateParams&&n.stateParams.type||"inbox",e.load()),e.fabButtonNewMessageId&&e.showFab(e.fabButtonNewMessageId)})).catch((function(t){"CANCELLED"===t&&(i.nextViewOptions({historyRoot:!0}),e.showHome())}))}else e.updateView()},e.$on("$ionicView.enter",e.enter),e.load=function(t,n,i){var a=angular.copy(e.search.options);return a.from=a.from||t||0,a.size=a.size||n||40,a.type=e.type,a.summary=!1,a.filter="text"==e.search.type&&e.search.text&&e.search.text.trim().length>0?e.search.text:void 0,a.wallet=u,e.search.loading=!i,c.load(a).then((function(t){a.from?t&&(e.search.results=e.search.results.concat(t)):e.search.results=t||[],l.loading.hide(),e.search.loading=!1,e.search.hasMore=e.search.results&&e.search.results.length>=e.search.limit,e.updateView()})).catch((function(t){e.search.loading=!1,a.from||(e.search.results=[]),e.search.hasMore=!1,l.onError("MESSAGE.ERROR.LOAD_MESSAGES_FAILED")(t)}))},e.updateView=function(){e.motion&&e.motion.ionListClass&&e.search.results.length&&e.motion.show({selector:".view-messages .list .item"}),e.$broadcast("$$rebind::rebind")},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit+=40,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit,!0).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.markAllAsRead=function(){e.hideActionsPopover(),e.search.results&&e.search.results.length&&l.alert.confirm("MESSAGE.CONFIRM.MARK_ALL_AS_READ").then((function(t){t&&c.markAllAsRead().then((function(){_.forEach(e.search.results,(function(e){e.read=!0}))})).catch(l.onError("MESSAGE.ERROR.MARK_ALL_AS_READ_FAILED"))}))},e.delete=function(t){var n=e.search.results[t];n&&l.alert.confirm("MESSAGE.CONFIRM.REMOVE").then((function(i){i&&c.remove(n.id,e.type,{walletId:e.walletId}).then((function(){e.search.results.splice(t,1),e.updateView(),l.toast.show("MESSAGE.INFO.MESSAGE_REMOVED")})).catch(l.onError("MESSAGE.ERROR.REMOVE_MESSAGE_FAILED"))}))},e.deleteAll=function(){e.hideActionsPopover(),e.search.results&&e.search.results.length&&l.alert.confirm("MESSAGE.CONFIRM.REMOVE_ALL").then((function(t){t&&c.removeAll(e.type,{walletId:e.walletId}).then((function(){e.search.results.splice(0,e.search.results.length),e.updateView(),l.toast.show("MESSAGE.INFO.All_MESSAGE_REMOVED")})).catch(l.onError("MESSAGE.ERROR.REMOVE_All_MESSAGES_FAILED"))}))},e.doSearchLast=function(){return e.search.type="last",e.search.loadingMore=!1,e.search.limit=40,e.load()},e.doSearch=function(){if(e.search.text&&!(e.search.text.length<3))return e.search.type="text",e.search.loadingMore=!1,e.search.results=[],e.search.limit=40,console.debug("[message] [{0}] Searching for: {1}".format(e.type,e.search.text)),e.load()},e.refresh=function(t){return d=!0,e.load(void 0,void 0,t).then((function(){d=!1})).catch((function(){d=!1}))},e.select=function(n,i){if(!(i.isDefaultPrevented()||e.search.loading||d))return o((function(){if(!d&&!i.isDefaultPrevented())return i.preventDefault(),"default"===e.walletId?t.go("app.user_view_message",{type:e.type,messageId:n.id}):t.go("app.user_view_message_by_id",{type:e.type,messageId:n.id,id:e.walletId})}),200)},e.showNewMessageModal=function(t){return u.login({minData:!0}).then((function(){return l.loading.hide(),(t=t||{}).wallet=e.walletId,s.showMessageCompose(t).then((function(e){e&&l.toast.show("MESSAGE.INFO.MESSAGE_SENT")}))}))},e.showReplyModal=function(t){var i=e.search.results[t];i&&n("MESSAGE.REPLY_TITLE_PREFIX").then((function(t){var n=i.content?i.content.replace(/^/g," > "):null;return n=(n=n?n.replace(/\n/g,"\n > "):null)?n+"\n":null,s.showMessageCompose({destPub:i.issuer,destUid:i.name||i.uid,title:t+i.title,content:n,isReply:!0,wallet:e.walletId})})).then((function(e){e&&l.toast.show("MESSAGE.INFO.MESSAGE_SENT")}))},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"plugins/es/templates/message/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.onMessageDelete=function(t){var n=_.findIndex(e.search.results,(function(e){return e.id==t}));n&&e.search.results.splice(n,1),e.updateView()},c.api.data.on.delete(e,e.onMessageDelete),e.onNewOutboxMessage=function(t){if("outbox"===e.type)return e.search.loading=!0,o((function(){return c.get(t,e.type,{summary:!0,wallet:u})}),500).then((function(t){e.search.results.splice(0,0,t),e.search.loading=!1,e.updateView()})).catch((function(){e.loading=!1}))},c.api.data.on.sent(e,e.onNewOutboxMessage),e.onNewInboxMessage=function(t){if("inbox"===e.type&&e.entered&&u.isUserPubkey(t.issuer))return e.search.loading=!0,c.get(t.id,e.type,{summary:!0,wallet:u}).then((function(t){e.search.results.splice(0,0,t),e.search.loading=!1,e.updateView()})).catch((function(){e.search.loading=!1}))},c.api.data.on.new(e,e.onNewInboxMessage),e.onUnauth=function(){e.search.results=void 0,e.search.loading=!1,e.entered=!1},r.api.data.on.unauth(e,e.onUnauth)}function he(e,t){angular.extend(this,t("ESMessageAbstractListCtrl",{$scope:e})),e.type="inbox",e.fabButtonNewMessageId="fab-add-message-record-inbox"}function ve(e,t){angular.extend(this,t("ESMessageAbstractListCtrl",{$scope:e})),e.type="outbox",e.fabButtonNewMessageId="fab-add-message-record-outbox"}function Ie(e,t){angular.extend(this,t("ESMessageComposeModalCtrl",{$scope:e,parameters:{}})),e.enter=function(t,n){return n&&n.stateParams&&e.setParameters(n.stateParams),e.load().then(UIUtils.loading.hide)},e.$on("$ionicView.enter",e.enter),e.cancel=function(){e.sending=!1,e.showHome()},e.setForm=function(t){e.form=t},e.closeModal=function(){e.sending=!1,e.showHome()}}function Ne(e,t,n,i,a,o,r){var s;e.formData={title:null,content:null,destPub:null,walletId:null},e.destUid=null,e.destPub=null,e.isReply=!1,e.enableSelectWallet=!0,e.sending=!1,e.setParameters=function(t){t&&((t.pubkey||t.destPub)&&(e.formData.destPub=t.pubkey||t.destPub,t.uid||t.destUid?(e.destUid=t.uid||t.destUid,e.destPub=""):(e.destUid="",e.destPub=e.formData.destPub)),t.title&&(e.formData.title=t.title),t.content&&(e.formData.content=t.content),e.isReply=t.isReply||!1,t.wallet&&(e.formData.walletId=t.wallet))},e.setParameters(r),e.load=function(){return e.enableSelectWallet=i.children.count()>0,(s=e.enableSelectWallet&&(e.formData.walletId?i.children.get(e.formData.walletId):i)||i).isDefault()?console.debug("[message] Using default wallet"):console.debug("[message] Using {"+s.id+"} wallet"),s.login({minData:!0,silent:!0}).then((function(t){e.walletData=t})).catch((function(t){"CANCELLED"===t&&e.cancel()}))},e.$on("modal.shown",e.load),e.doSend=function(t){if(e.form.$submitted=!0,e.form.$valid){if(!(t||e.formData.content&&e.formData.content.trim().length))return n.alert.confirm("MESSAGE.COMPOSE.CONTENT_CONFIRMATION").then((function(t){t&&e.doSend(!0)}));e.sending=!0,n.loading.show();var i={issuer:s.data.pubkey,recipient:e.formData.destPub,title:e.formData.title,content:e.formData.content,time:moment().utc().unix()};o.send(i,{wallet:s}).then((function(t){e.id=t,n.loading.hide(),e.closeModal(t)})).catch((function(t){e.sending=!1,"CANCELLED"!==t?n.onError("MESSAGE.ERROR.SEND_MSG_FAILED")(t):n.loading.hide()}))}},e.cancel=function(){e.closeModal()},e.showWotLookupModal=function(){t.showWotLookup().then((function(t){t&&(t.uid?(e.destUid=t.uid,e.destPub=""):(e.destUid="",e.destPub=t.pubkey),e.destName=t.name||t.uid,e.formData.destPub=t.pubkey)}))},e.showSelectWalletModal=function(){if(e.enableSelectWallet)return t.showSelectWallet({showDefault:!0,showBalance:!1}).then((function(t){!t||s&&s.id===t.id||(s=t,e.walletData=s.data,console.debug("[message] Using {"+s.id+"} wallet"))}))}}function Oe(e,t,n,i,a,o,r,s,l,c){var u;e.formData={},e.id=null,e.loading=!0,e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!r.screen.isSmall()||t.enableBack})),e.enter=function(t,i){if(e.loading){if(!(u=i.stateParams&&i.stateParams.id?c.children.get(i.stateParams.id):c))return r.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();e.isDefaultWallet=u.isDefault(),e.walletId=u.id;var a=i.stateParams&&i.stateParams.messageId;if(e.type=i.stateParams.type||"inbox",angular.isUndefined(a))return void e.goBack();u.auth({minData:!0}).then((function(){return e.load(a,e.type)})).then((function(t){r.loading.hide(),t&&(e.updateView(t),e.showFab("fab-view-message-reply"),t.read||n((function(){e.id===t.id&&l.markAsRead(t,{type:e.type,wallet:u}).then((function(){console.debug("[message] marked as read")})).catch(r.onError("MESSAGE.ERROR.MARK_AS_READ_FAILED"))}),2e3))}))}},e.$on("$ionicView.enter",e.enter),e.load=function(t,n){return n=n||"inbox",l.get(t,n,{wallet:u}).catch(r.onError("MESSAGE.ERROR.LOAD_MESSAGE_FAILED")).then((function(t){return t.valid?t:r.alert.error(e.isUserPubkey(t.recipient)?"MESSAGE.ERROR.NOT_AUTHENTICATED_MESSAGE":"MESSAGE.ERROR.USER_NOT_RECIPIENT","MESSAGE.ERROR.MESSAGE_NOT_READABLE").then((function(){e.goBack(!0)}))}))},e.updateView=function(t){e.loading=!1,e.id=t.id,e.formData=t,e.canDelete=!0,e.motion.show({selector:".view-message .list .item"})},e.delete=function(){e.actionsPopover&&e.actionsPopover.hide(),r.alert.confirm("MESSAGE.CONFIRM.REMOVE").then((function(t){if(t)return l.remove(e.id,e.type,{wallet:u}).then((function(){e.goBack(!0),r.toast.show("MESSAGE.INFO.MESSAGE_REMOVED")})).catch(r.onError("MESSAGE.ERROR.REMOVE_MESSAGE_FAILED"))}))},e.goBack=function(n){n&&a.clearCache(a.currentView().stateId),a.nextViewOptions({historyRoot:!0}),e.isDefaultWallet?e.type&&t.go("app.user_message.tab_"+e.type,{type:e.type}):e.type&&t.go("app.user_messages_by_id.tab_"+e.type,{type:e.type,id:e.walletId})},e.showActionsPopover=function(t){r.popover.show(t,{templateUrl:"plugins/es/templates/message/view_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showReplyModal=function(){var t="inbox"===e.type?"issuer":"recipient";i("MESSAGE.REPLY_TITLE_PREFIX").then((function(n){var i=e.formData.content?e.formData.content.replace(/^/g," > "):null;return i=(i=i?i.replace(/\n/g,"\n > "):null)?i+"\n":null,s.showMessageCompose({destPub:e.formData[t],destUid:e.formData.name||e.formData.uid,title:n+e.formData.title,content:i,isReply:!0,walletId:u.id})})).then((function(e){e&&r.toast.show("MESSAGE.INFO.MESSAGE_SENT").then((function(){a.goBack()}))}))}}function Re(e,t,n,i,a,o,r,s){var l;e.search={loading:!0,results:null,hasMore:!1,loadingMore:!1,limit:40},e.$on("popover.shown",(function(){e.search.loading&&((l=e.walletId&&i.children.get(e.walletId)||i).isDefault()&&(l.api.data.on.logout(e,e.resetData),o.api.data.on.new(e,e.onNewMessageNotification)),e.load())})),e.load=function(n,i){var a={};return a.from=n||0,a.size=i||40,o.notifications.load(a).then((function(t){e.search.results=n?e.search.results.concat(t):t,e.search.loading=!1,e.search.hasMore=e.search.results&&e.search.results.length>=e.search.limit,e.updateView()})).catch((function(i){e.search.loading=!1,n||(e.search.results=[]),e.search.hasMore=!1,t.onError("MESSAGE.ERROR.LOAD_NOTIFICATIONS_FAILED")(i)}))},e.updateView=function(){e.motion&&e.search.results&&e.search.results.length&&e.motion.show({selector:".popover-notification .item"})},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit=2*e.search.limit,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.onNewMessageNotification=function(t){e.search.loading||e.search.loadingMore||l.isUserPubkey(t.issuer)&&(e.search.results.splice(0,0,t),e.updateView())},e.select=function(t){t.read||(t.read=!0),"default"===e.walletId?n.go("app.user_view_message",{messageId:t.id}):n.go("app.user_view_message_by_id",{messageId:t.id,id:e.walletId}),e.closePopover(t)},e.resetData=function(){e.search.loading||(console.debug("[ES] [messages] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},e.showNewMessageModal=function(n){e.closePopover(),s((function(){(n=n||{}).walletId=l.id,r.showMessageCompose(n).then((function(e){e&&t.toast.show("MESSAGE.INFO.MESSAGE_SENT")}))}),500)},a.api.node.on.stop(e,e.resetData),a.api.node.on.start(e,e.load)}function Ae(e,t,n,i,a,o,r,s){var l;e.preventSelect=!1,e.search={loading:!0,results:null,hasMore:!1,loadingMore:!1,limit:40,options:{codes:{excludes:s.constants.EXCLUDED_CODES}}},e.listeners=[],e.setWallet=function(e){l=e},e.$on("$ionicView.enter",(function(t,n){if(e.search.loading){if(!(l=n.stateParams&&n.stateParams.id?r.children.get(n.stateParams.id):r))return a.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();l.login({minData:!0}).then((function(){return e.load(),a.loading.hide(),e.addListeners(),i((function(){e.resetUnreadCount()}),1e3)}))}})),e.refresh=function(t){return e.load(void 0,void 0,t)},e.load=function(t,n,i){if((l=l||r).data.pubkey){e.search.preventSelect=!0;var o=angular.copy(e.search.options);return o.from=o.from||t||0,o.size=o.size||n||40,o.pubkey=l.data.pubkey,e.search.loading=!i,s.load(o).then((function(t){o.from?t&&(e.search.results=e.search.results.concat(t)):e.search.results=t||[],e.search.loading=!1,e.search.preventSelect=!1,e.search.hasMore=e.search.results.length>=e.search.limit,e.updateView()})).catch((function(t){e.search.loading=!1,o.from||(e.search.results=[]),e.search.preventSelect=!1,e.search.hasMore=!1,a.onError("COMMON.NOTIFICATIONS.LOAD_NOTIFICATIONS_FAILED")(t)}))}e.search.loading=!0},e.updateView=function(){e.motion&&e.motion.ionListClass&&e.search.results.length&&e.motion.show({selector:".view-notification .item"})},e.markAllAsRead=function(){if(e.hideActionsPopover(),!l.isAuth())return l.auth().then((function(){return a.loading.hide(),e.markAllAsRead()}));e.search.results.length&&a.loading.show().then((function(){l.data.notifications.unreadCount=0;var t=e.search.results[0];return l.data.notifications.time=t?t.time:0,_.forEach(e.search.results,(function(e){e.markAsRead&&"function"==typeof e.markAsRead&&e.markAsRead()})),a.loading.hide()}))},e.resetUnreadCount=function(){if(e.search.loading||!l.data.notifications)return i(e.resetUnreadCount,2e3);if(l.data.notifications.unreadCount&&e.search.results&&e.search.results.length){l.data.notifications.unreadCount=0;var t=e.search.results[0],n=t.time?t.time:0;!n||l.data.notifications.time&&l.data.notifications.time==n||(l.data.notifications.time=n,l.storeData())}},e.select=function(t,a){e.search.loading||t.preventDefault()||e.search.preventSelect||(a.markAsRead&&"function"==typeof a.markAsRead&&i(a.markAsRead),a.state&&n.go(a.state,a.stateParams))},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit+=40,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.onNewNotification=function(t){if(!e.search.loading&&!e.search.loadingMore){var n=_.findIndex(e.search.results,(function(e){return t.time>e.time}));n<0&&(n=0),e.search.results.splice(n,0,t),e.updateView()}},e.resetData=function(){e.search.loading||(console.debug("[ES] [notifications] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},e.showActionsPopover=function(t){a.popover.show(t,{templateUrl:"plugins/es/templates/notification/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.addListeners=function(){if(!l)throw"Controller wallet not set !";e.listeners=[o.api.node.on.stop(e,e.resetData),o.api.node.on.start(e,e.load),l.api.data.on.logout(e,e.resetData)],l.isDefault()&&e.listeners.push(s.api.data.on.new(e,e.onNewNotification))},e.removeListeners=function(){_.forEach(e.listeners,(function(e){e()})),e.listeners=[]}}function Se(e,t,n,i,a,o){angular.extend(this,n("NotificationsCtrl",{$scope:e})),e.motion=null,e.setWallet(o),e.$on("popover.shown",(function(){e.search.loading&&(e.addListeners(),e.load())})),e.updateView=function(){e.search.results.length&&t((function(){a.ink({selector:".popover-notification .item.ink"})}),100)},e.$on("popover.hidden",e.resetUnreadCount),e.select=function(t,n){!t.preventDefault()&&n&&(n.markAsRead&&"function"==typeof n.markAsRead&&n.markAsRead(),n.state&&i.go(n.state,n.stateParams),e.closePopover(n))}}function Ce(e,t,n,i,a,o){angular.extend(this,t("BlockLookupCtrl",{$scope:e})),e.search.text=null,e.search.type="last",e.search.sort=void 0,e.search.asc=!0,e.searchTextId="blockchainSearchText",e.compactMode=!0,e.enableFilter=!0,e.doSearchText=function(){if(!(e.search.text&&e.search.text.trim().length||e.search.filters&&e.search.filters.length))return e.doSearchLast();e.search.type="text",e.doSearch(),i.search({q:e.search.query}).replace()},e.doSearchLast=function(){e.hideActionsPopover(),e.search.type="last",e.search.sort=void 0,e.doSearch(),i.search({q:void 0}).replace()},e.doSearch=function(t){if(!e.search.error){var n;t=angular.isDefined(t)?t:0;var i={};if(e.search.loading=0===t,i.size=e.defaultSizeLimit,"last"==e.search.type)i.from=0===t?0:t+1,e.search.sort?(i.sort={},i.sort[e.search.sort]=e.search.asc?"asc":"desc"):i.sort={number:"desc"},i.excludeCurrent=0===t,n=o.block.search(e.currency,i);else if("text"==e.search.type){var r=o.block.parseSearchText(e.search.text,e.search.filters);e.search.filters=r.filters;var s=e.search.filters.reduce((function(e,t){return e+" AND "+t.text}),"");r.text.length&&(s+=" AND "+r.text),e.search.query=s.substr(5),e.search.text=r.text,i.from=t,e.search.sort?i.sort=e.search.sort+":"+(e.search.asc?"asc":"desc"):i.sort="number:desc",i.excludeCurrent=!0,n=o.block.searchText(e.currency,e.search.query,i)}var l=Date.now();return n.then((function(t){return e.doPrepareResult(t.hits).then((function(){return t}))})).then((function(n){e.showPubkey="issuer"==e.search.sort,e.search.took=0===t?Date.now()-l:e.search.took;var i=0===t?n.total:e.search.total;e.doDisplayResult(n.hits,t,i),e.search.loading=!1})).catch((function(t){e.search.error=!0,e.search.loading=!1,a.onError("BLOCKCHAIN.ERROR.SEARCH_BLOCKS_FAILED")(t).then((function(){e.search.error=!1}))}))}},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.doSearch()},e.showHelpTip=function(){},e.showActionsPopover=function(t){a.popover.show(t,{templateUrl:"plugins/es/templates/blockchain/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.itemRemove=function(t){e.search.filters.splice(t,1),e.doSearchText()},e.toggleShowQuery=function(){e.showQuery=!e.showQuery}}function Le(e,t,n,i,a,o,r,s,l,c,u,d,p){e.networkStarted=!1,e.ionItemClass="",e.expertMode=c.data.expertMode&&!s.screen.isSmall(),e.isHttps="https:"===a.location.protocol,e.search={text:"",loading:!0,online:!0,results:[],endpointFilter:r.constants.ES_USER_API,sort:void 0,asc:!0},e.listeners=[],e.helptipPrefix="helptip-network",e.enableLocationHref=!0,e.removeListeners=function(){e.listeners.length&&(console.debug("[ES] [network] Closing listeners"),_.forEach(e.listeners,(function(e){e()})),e.listeners=[])},e.enter=function(t,n){e.networkStarted||(e.networkStarted=!0,e.search.loading=!0,u.get().then((function(t){t&&(e.node=r.node.same(t.node.host,t.node.port)?r:r.instance(t.node.host,t.node.port),n&&n.stateParams&&("true"==n.stateParams.online&&(e.search.online=!0),n.stateParams.expert&&(e.expertMode="true"==n.stateParams.expert)),e.load())})).catch((function(t){s.onError("ERROR.GET_CURRENCY_FAILED")(t),e.networkStarted=!1})))},e.$on("$ionicParentView.enter",e.enter),e.leave=function(){e.networkStarted&&(e.removeListeners(),d.close(),e.networkStarted=!1,e.search.loading=!0)},e.$on("$ionicView.beforeLeave",e.leave),e.$on("$ionicParentView.beforeLeave",e.leave),e.$on("$destroy",e.leave),e.computeOptions=function(){return{filter:{member:!e.search.type||"member"===e.search.type,mirror:!e.search.type||"mirror"===e.search.type,endpointFilter:angular.isDefined(e.search.endpointFilter)?e.search.endpointFilter:null,online:e.search.online&&!0},sort:{type:e.search.sort,asc:e.search.asc},expertMode:e.expertMode,timeout:l.timeout&&(e.expertMode?l.timeout/10:l.timeout/100)}},e.load=function(){e.search.loading&&(d.start(e.node,e.computeOptions()),e.refreshing=!1,e.listeners.push(d.api.data.on.changed(e,(function(t){e.refreshing||(e.refreshing=!0,p.extendAll(t.peers).then((function(){e.networkStarted&&e.updateView(t),e.refreshing=!1})))}))))},e.updateView=function(t){console.debug("[peers] Updating UI"),e.search.results=t.peers,e.search.memberPeersCount=t.memberPeersCount,e.search.loading=!e.networkStarted||d.isBusy(),e.loading||e.$broadcast("$$rebind::rebind"),e.motion&&e.search.results&&e.search.results.length>0&&e.motion.show({selector:".item-peer"})},e.refresh=function(){e.search.loading=!0,d.loadPeers()},e.sort=function(){e.search.loading=!0,e.refreshing=!0,d.sort(e.computeOptions()),e.updateView(d.data)},e.toggleOnline=function(t){e.hideActionsPopover(),e.search.online=!1!==t,d.close(),e.search.loading=!0,e.load(),e.enableLocationHref&&n.search(e.search.online?{}:{online:!1}).replace()},e.toggleSearchEndpoint=function(t){e.hideActionsPopover(),e.search.endpointFilter===t||null===t?e.search.endpointFilter=null:e.search.endpointFilter=t,e.sort()},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.sort()},e.selectPeer=function(e){if(e.online){var n={server:e.getServer()};e.isSsl()&&(n.ssl=!0),e.isTor()&&(n.tor=!0),t.go("app.view_es_peer",n)}},e.$on("csView.action.refresh",(function(t,n){"peers"===n&&e.refresh()})),e.$on("csView.action.showActionsPopover",(function(t,n){e.showActionsPopover(n)})),e.showActionsPopover=function(t){s.popover.show(t,{templateUrl:"plugins/es/templates/network/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showEndpointsPopover=function(e,t,n){e.preventDefault(),e.stopPropagation();var i=t.getEndpoints(n);(i=(i||[]).reduce((function(e,n){var i=r.node.parseEndPoint(n);return e.concat({label:"NETWORK.VIEW.NODE_ADDRESS",value:t.getServer()+(i.path||"")})}),[])).length&&s.popover.show(e,{templateUrl:"templates/network/popover_endpoints.html",bindings:{titleKey:"NETWORK.VIEW.ENDPOINTS."+n,items:i}})},e.showWs2pPopover=function(e,t){return e.stopPropagation(),o("NETWORK.VIEW.PRIVATE_ACCESS").then((function(n){s.popover.show(e,{templateUrl:"templates/network/popover_endpoints.html",bindings:{titleKey:"NETWORK.VIEW.ENDPOINTS.WS2P",valueKey:"NETWORK.VIEW.NODE_ADDRESS",items:[{label:"NETWORK.VIEW.NODE_ADDRESS",value:t.bma.private?n:t.getServer()+(t.bma.path||"")},{label:"NETWORK.VIEW.WS2PID",value:t.bma.ws2pid},{label:"NETWORK.VIEW.POW_PREFIX",value:t.powPrefix}]}})}))}}function De(e,t,n){angular.extend(this,t("ESNetworkLookupCtrl",{$scope:e})),n=n||{},e.enableFilter=!angular.isDefined(n.enableFilter)||n.enableFilter,e.search.type=angular.isDefined(n.type)?n.type:e.search.type,e.search.endpointFilter=angular.isDefined(n.endpointFilter)?n.endpointFilter:e.search.endpointFilter,e.expertMode=angular.isDefined(n.expertMode)?n.expertMode:e.expertMode,e.ionItemClass=n.ionItemClass||"item-border-large",e.enableLocationHref=!1,e.helptipPrefix="",e.selectPeer=function(t){e.closeModal(t)},e.$on("modal.hidden",(function(){e.leave()})),e.showHelpTip=function(){},e.enter()}function ye(e,t){angular.extend(this,t("NetworkLookupCtrl",{$scope:e}));var n=n||{};e.enableFilter=!angular.isDefined(n.enableFilter)||n.enableFilter,e.search.type=angular.isDefined(n.type)?n.type:e.search.type,e.search.endpointFilter=angular.isDefined(n.endpointFilter)?n.endpointFilter:e.search.endpointFilter,e.expertMode=angular.isDefined(n.expertMode)?n.expertMode:e.expertMode,e.ionItemClass=n.ionItemClass||"item-border-large",e.helptipPrefix="",e.selectPeer=function(t){e.closePopover(t)},e.$on("popover.hidden",(function(){e.leave()})),e.showHelpTip=function(){},e.enter()}function Pe(e,t,n,i,a,o){e.loading=!0,e.formData={},e.load=function(){return e.loading=!0,e.formData={},t.all([i.blockchain.current().then((function(t){e.formData.number=t.number,e.formData.medianTime=t.medianTime,e.formData.powMin=t.powMin,e.formData.useSsl=o.useSsl})).catch((function(){delete e.formData.number,delete e.formData.medianTime,delete e.formData.powMin,delete e.formData.useSsl})),o.node.summary().then((function(t){e.formData.version=t&&t.duniter&&t.duniter.version,e.formData.software=t&&t.duniter&&t.duniter.software})).catch((function(){delete e.formData.version,delete e.formData.software})),o.version.latest().then((function(t){e.formData.latestRelease=t})).catch((function(){delete e.formData.latestRelease}))]).then((function(){if(e.formData.latestRelease&&"cesium-plus-pod"===e.formData.software){var t=a.version.compare(e.formData.version,e.formData.latestRelease.version);e.formData.isPreRelease=t>0,e.formData.hasNewRelease=t<0}else e.formData.isPreRelease=!1,e.formData.hasNewRelease=!1;e.loading=!1,e.$broadcast("$$rebind::rebind")}))},i.api.data.on.newBlock(e,(function(t){e.loading||(console.debug("[peer info] Received new block. Reload content"),e.load())})),n.api.data.on.changed(e,(function(t){e.loading||(console.debug("[peer info] Peer settings changed. Reload content"),e.load())})),e.load()}function ke(e,t,n,i,a,o,r,s,l){e.node={},e.loading=!0,e.isHttps="https:"===n.location.protocol,e.isReachable=!0,e.options={document:{index:l.data.plugins.es&&l.data.plugins.es.document&&l.data.plugins.es.document.index||"user",type:l.data.plugins.es&&l.data.plugins.es.document&&l.data.plugins.es.document.type||"profile"}},e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!a.screen.isSmall()||t.enableBack})),e.$on("$ionicView.enter",(function(t,n){var i=!n.stateParams||!n.stateParams.server,a=n.stateParams&&n.stateParams.server||r.server,o=n.stateParams&&"true"==n.stateParams.ssl||!!i&&r.useSsl,s="true"==n.stateParams.tor||!!i&&r.useTor;return e.load(a,o,s).then((function(){return e.$broadcast("$csExtension.enter",t,n)})).then((function(){e.loading=!1})).catch((function(){e.loading=!1}))})),e.load=function(n,i,l){var c={server:n,host:n,useSsl:i,useTor:l},u=n.split(":");return 2===u.length&&(c.host=u[0],c.port=u[1]),c.url=s.getUrl(c.host,c.port,void 0,c.useSsl),angular.merge(e.node,l?r.lightInstance(c.host+".to",443,443,!0,6e4):r.lightInstance(c.host,c.port,c.useSsl),c),e.isReachable=!e.isHttps||i,e.isReachable?t.all([e.node.network.peering.self().then((function(t){e.node.pubkey=t.pubkey,e.node.currency=t.currency})),e.node.record.count(e.options.document.index,e.options.document.type).then((function(t){e.node.docCount=t})),e.node.network.peers().then((function(t){var n=t.peers.reduce((function(e,t){var n=new X(t);return n.hasEsEndpoint()?(n.online="UP"===t.status,n.blockNumber=n.block.replace(/-.+$/,""),n.ep=r.node.parseEndPoint(n.getEsEndpoints()[0]),n.dns=n.getDns(),n.id=n.keyID(),n.server=n.getServer(),e.concat(n)):e}),[]);return o.extendAll([e.node].concat(n)).then((function(){e.peers=_.sortBy(n,(function(e){var t=1;return t+=1e4*(e.online?1:0),t+=1e3*(e.hasMainConsensusBlock?1:0),-(t+=100*(e.name?1:0))})),e.motion.show({selector:".item-peer"})}))})),e.node.blockchain.current().then((function(t){e.current=t}))]).catch(a.onError(l?"PEER.VIEW.ERROR.LOADING_TOR_NODE_ERROR":"PEER.VIEW.ERROR.LOADING_NODE_ERROR")):r.network.peers().then((function(t){var n=(t&&t.peers||[]).reduce((function(e,t){var n=new X(t);if(!n.hasEsEndpoint())return e;var i=r.node.parseEndPoint(n.getEsEndpoints()[0]);return i.dns!=c.host&&i.ipv4!=c.host&&i.ipv6!=c.host||i.port!=c.port?e:(n.ep=i,e.concat(n))}),[]),i=n.length&&n[0];if(i)return e.node.pubkey=i.pubkey,e.node.currency=i.currency,o.extend(e.node);console.warn("Could not get peer from /network/peers")}))},e.selectPeer=function(e){if(e.online){var t={server:e.getServer()};e.isSsl()&&(t.ssl=!0),e.isTor()&&(t.tor=!0),i.go("app.view_es_peer",t)}},e.openRawPeering=function(t){return e.openLink(t,e.node.url+"/network/peering?pretty")},e.openRawCurrentBlock=function(t){return e.openLink(t,e.node.url+"/network/peering?pretty")}}function Me(e,t,n,i,a,o){e.search={loading:!0,results:null,type:"last",hasMore:!1,loadingMore:!1,limit:40},e.enableFilter=!t.screen.isSmall(),e.ionItemClass="item-border-large",e.$on("$ionicView.enter",(function(){e.search.loading&&e.doSearch()})),e.doSearchText=function(){var t=e.search.text&&e.search.text.trim();return t&&t.length?(e.search.type="text",e.doSearch()):e.doSearchLast()},e.doSearchLast=function(){return e.search.type="last",e.doSearch()},e.doSearch=function(n,i){var o={};return o.from=n||0,o.size=i||40,o.text="text"==e.search.type&&e.search.text&&e.search.text.trim(),e.search.loading=!0,a.record.search(o).then((function(t){n?t&&(e.search.results=e.search.results.concat(t)):e.search.results=t||[],e.search.loading=!1,e.search.hasMore=e.search.results.length>=e.search.limit,e.updateView()})).catch((function(i){e.search.loading=!1,n||(e.search.results=[]),e.search.hasMore=!1,t.onError("GROUP.ERROR.SEARCH_GROUPS_FAILED")(i)}))},e.updateView=function(){e.$broadcast("$$rebind::rebind"),e.motion.show({selector:".list.{0} .item".format(e.motion.ionListClass)})},e.select=function(e){e&&e.id&&n.go("app.view_group",{id:e.id})},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit+=40,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.resetData=function(){e.search.loading||(console.debug("[ES] [group] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},i.api.data.on.logout(e,e.resetData),e.showNewRecordModal=function(){e.loadWallet({minData:!0}).then((function(i){t.loading.hide(),e.walletData=i,o.show("plugins/es/templates/group/modal_record_type.html").then((function(e){e&&n.go("app.add_group",{type:e})}))}))}}function we(e,t,n,i,a,o,r,s,l){e.formData={},e.id=null,e.pictures=[],e.canEdit=!1,e.loading=!0,e.motion=o.motion.fadeSlideIn,e.$on("$ionicView.enter",(function(n,i){i.stateParams&&i.stateParams.id?((e.loading||i.stateParams.refresh)&&e.load(i.stateParams.id,i.stateParams.anchor),o.loading.hide(),e.$broadcast("$recordView.enter",i)):t.go("app.groups")})),e.load=function(t){s.record.load(t,{fetchPictures:!0}).then((function(n){e.id=n.id,e.formData=n.record,e.issuer=n.issuer,e.canEdit=l.isUserPubkey(e.formData.issuer)||l.children.hasPubkey(e.formData.issuer),e.pictures=n.record.pictures||[],delete n.record.pictures,e.$broadcast("$recordView.load",t,s.record.comment),e.loading=!1,o.loading.hide(),e.updateView()})).catch(o.onError("GROUP.ERROR.LOAD_RECORD_FAILED"))},e.updateView=function(){e.motion.show()},e.edit=function(){o.loading.show(),t.go("app.edit_group",{id:e.id})},e.delete=function(){var n;e.hideActionsPopover(),a(["GROUP.VIEW.REMOVE_CONFIRMATION","GROUP.INFO.RECORD_REMOVED"]).then((function(e){return n=e,o.alert.confirm(e["GROUP.VIEW.REMOVE_CONFIRMATION"])})).then((function(a){a&&s.record.remove(e.id).then((function(){i.nextViewOptions({historyRoot:!0}),t.go("app.groups"),o.toast.show(n["GROUP.INFO.RECORD_REMOVED"])})).catch(o.onError("GROUP.ERROR.REMOVE_RECORD_FAILED"))}))},e.showActionsPopover=function(t){o.popover.show(t,{templateUrl:"plugins/es/templates/group/view_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showSharePopover=function(n){e.hideActionsPopover();var i=e.formData.title,a=(r.shareBaseUrl||$rootScope.rootPath)+t.href("app.view_group",{id:e.id});o.screen.isSmall()&&(n=angular.element(document.querySelector("#group-share-anchor-"+e.id))||n),o.popover.share(n,{bindings:{url:a,titleKey:"GROUP.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:i},time:e.formData.time,postMessage:i}})}}function Ue(e,t,n,i,a,o,r,s,l,c){e.walletData={},e.formData={},e.id=null,e.pictures=[],e.loading=!0,e.setForm=function(t){e.form=t},e.$on("$ionicView.enter",(function(t,i){e.loadWallet({minData:!0}).then((function(t){e.walletData=t,i.stateParams&&i.stateParams.id?e.load(i.stateParams.id):(i.stateParams&&i.stateParams.type&&(e.formData.type=i.stateParams.type),e.loading=!1,n.loading.hide(),e.updateView()),l("group-record-title")}))})),e.load=function(i){t.record.load(i,{fetchPictures:!0,html:!1}).then((function(t){e.formData=t.record,e.issuer=t.issuer,e.id=t.id,e.pictures=t.record.pictures||[],delete t.record.pictures,e.loading=!1,n.loading.hide(),e.updateView()})).catch(n.onError("GROUP.ERROR.LOAD_RECORD_FAILED"))},e.updateView=function(){e.motion.show({selector:".list.{0} .item, .card-gallery".format(e.motion.ionListClass)})},e.save=function(){if(e.form.$submitted=!0,!e.saving&&e.form.$valid&&("managed"===e.formData.type||"open"===e.formData.type))return e.saving=!0,n.loading.show().then((function(){var t=e.formData;return t.time=moment().utc().unix(),t.picturesCount=e.pictures.length,t.picturesCount>0?(t.pictures=e.pictures.reduce((function(e,t){return e.concat({file:c.image.toAttachment(t)})}),[]),n.image.resizeSrc(e.pictures[0].src,!0).then((function(e){return t.avatar=c.image.toAttachment({src:e}),t}))):(t.avatar&&(t.avatar={_content:"",_content_type:""}),t.pictures=[],t)})).then((function(n){return e.id?t.record.update(n,{id:e.id}):(n.creationTime=moment().utc().unix(),t.record.add(n))})).then((function(t){return e.id=e.id||t,e.saving=!1,r.clearCache(r.currentView().stateId),r.nextViewOptions({historyRoot:!0}),i.go("app.view_group",{id:e.id,refresh:!0})})).catch((function(t){e.saving=!1,n.onError("GROUP.ERROR.SAVE_RECORD_FAILED")(t)}))},e.openPicturePopup=function(){o.camera.getPicture().then((function(t){e.pictures.push({src:"data:image/png;base64,"+t})})).catch(n.onError("ERROR.TAKE_PICTURE_FAILED"))},e.fileChanged=function(t){return n.loading.show(),a((function(i,a){var o=t.target.files[0];n.image.resizeFile(o).then((function(t){e.pictures.push({src:t}),n.loading.hide(),i()}))}))},e.removePicture=function(t){e.pictures.splice(t,1)},e.favoritePicture=function(t){if(t>0){var n=e.pictures[t];e.pictures.splice(t,1),e.pictures.splice(0,0,n)}},e.cancel=function(){r.goBack()},e.showRecordTypeModal=function(){s.show("plugins/es/templates/group/modal_record_type.html").then((function(t){t&&(e.formData.type=t)}))}}function Be(e,t,n,i,a,o,r,s,l,c,u){var d,p=u.constants.DEFAULT_LOAD_SIZE;e.search={loading:!0,results:null,hasMore:!1,loadingMore:!1,limit:p,options:{codes:{includes:c.constants.INVITATION_CODES}}},e.setWallet=function(e){d=e},e.$on("$ionicView.enter",(function(t,n){if(e.search.loading){if(!(d=n.stateParams&&n.stateParams.id?r.children.get(n.stateParams.id):r))return o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();e.loadWallet({wallet:d,minData:!0}).then((function(){e.addListeners(),s.isAlive()&&(e.load(),e.resetUnreadCount(),e.showFab("fab-new-invitation"))}))}})),e.load=function(t,n){var i=angular.copy(e.search.options);return i.from=i.from||t||0,i.size=i.size||n||p,d=d||r,u.load(i,d.data.keypair).then((function(t){e.search.results=t,e.search.loading=!1,e.search.hasMore=e.search.results&&e.search.results.length>=e.search.limit,e.updateView(),o.loading.hide()})).catch((function(n){if("CANCELLED"==n)return e.cancel();e.search.loading=!1,t||(e.search.results=[]),e.search.hasMore=!1,o.onError("INVITATION.ERROR.LOAD_INVITATIONS_FAILED")(n)}))},e.cancel=function(){},e.updateView=function(){e.motion&&e.search.results&&e.search.results.length&&e.motion.show({selector:".view-invitation .item"})},e.$watchCollection("search.results",e.updateView),e.showMore=function(){e.search.limit=e.search.limit||p,e.search.limit=2*e.search.limit,e.search.limit<p&&(e.search.limit=p),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.onNewInvitation=function(t){e.search.loading||e.search.loadingMore||e.search.results[0]&&e.search.results[0]===t||e.search.results.splice(0,0,t)},e.resetData=function(){e.search.loading||(console.debug("[ES] [invitation] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},e.resetUnreadCount=function(){if(e.search.loading||!d.data.invitations)return a(e.resetUnreadCount,2e3);if(d.data.invitations.unreadCount&&(console.debug("[ES] [invitation] Resetting unread count"),d.data.invitations.unreadCount=0,e.search.results&&e.search.results.length)){var t=e.search.results[0],n=t.time?t.time:0;!n||d.data.invitations.readTime&&d.data.invitations.readTime==n||(d.data.invitations.readTime=n,d.storeData())}},e.deleteAll=function(n){if(e.hideActionsPopover(),e.search.results.length)return n?t.all([o.loading.show(),u.deleteAll(d.data.pubkey)]).then((function(){return e.search.results.splice(0,e.search.results.length),o.loading.hide()})).catch(o.onError("INVITATION.ERROR.REMOVE_ALL_INVITATIONS_FAILED")):o.alert.confirm("INVITATION.CONFIRM.DELETE_ALL_CONFIRMATION").then((function(t){if(t)return e.deleteAll(t)}))},e.delete=function(t){var n=e.search.results[t];if(n)return u.delete(n).then((function(){e.search.results[t]&&e.search.results[t]===n&&e.search.results.splice(t,1)})).catch(o.onError("INVITATION.ERROR.REMOVE_INVITATION_FAILED"))},e.accept=function(t){e.hideActionsPopover(),t.state&&i.go(t.state,t.stateParams||{})},e.showNewInvitationModal=function(){return e.hideActionsPopover(),l.showNewInvitation({})},e.showActionsPopover=function(t){o.popover.show(t,{templateUrl:"plugins/es/templates/invitation/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.addListeners=function(){if(!d)throw"Controller wallet not set !";e.listeners=[s.api.node.on.stop(e,e.resetData),s.api.node.on.start(e,e.load),d.api.data.on.logout(e,e.resetData)],d.isDefault()&&e.listeners.push(u.api.data.on.new(e,e.onNewInvitation))}}function xe(e,t,n){angular.extend(this,t("InvitationsCtrl",{$scope:e})),e.motion=null,e.setWallet(n),e.$on("popover.shown",(function(){e.search.loading&&(e.addListeners(),e.load())})),e.updateView=function(){},e.$on("popover.hidden",e.resetUnreadCount),e.hideActionsPopover=function(){e.closePopover()},e.cancel=function(){e.closePopover()}}function Fe(e,t,n,i,a,o,r,s,l){var c;e.recipients=[],e.suggestions=[],e.formData={useComment:!1,walletId:null},e.enableSelectWallet=!0,e.setParameters=function(t){t&&(t.wallet&&"default"!==t.wallet?e.formData.walletId=t.wallet:e.formData.walletId=a.id)},e.setParameters(l),e.load=function(){return e.enableSelectWallet=a.children.count()>0,c=e.enableSelectWallet&&(e.formData.walletId?a.children.get(e.formData.walletId):a)||a,e.formData.walletId=c.id,c.isDefault()||console.debug("[transfer] Using {"+c.id+"} wallet"),c.login({sources:!0,silent:!0}).then((function(t){if(e.walletData=t,i.ink({selector:".modal-invitation .ink"}),e.destPub&&!e.destUid)return csWot.extend({pubkey:e.destPub}).then((function(t){e.destUid=t&&(t.name||t.uid),e.destUid&&(e.destPub=""),e.loading=!1}));e.loading=!1})).catch((function(t){if("CANCELLED"==t)return e.cancel();i.onError("ERROR.LOGIN_FAILED")(t)}))},e.$on("modal.shown",e.load),e.onUseCommentChanged=function(){e.formData.useComment||(e.formData.comment=null)},e.$watch("formData.useComment",e.onUseCommentChanged,!0),e.removeRecipient=function(t,n){e.recipients.splice(t,1),n.preventDefault()},e.removeSuggestion=function(t,n){e.suggestions.splice(t,1),n.preventDefault()},e.cancel=function(){e.closeModal()},e.doSend=function(){if(e.form.$submitted=!0,e.form.$valid&&e.recipients.length&&e.suggestions.length)return c.isLogin()?c.auth({silent:!0}).then((function(){return t.all([r.box.getKeypair(c.data.keypair),i.alert.confirm("INVITATION.CONFIRM.SEND_INVITATIONS_TO_CERTIFY",void 0,{okText:"COMMON.BTN_SEND"})])})).then((function(n){var a=n&&n[0],o=n&&n[1];if(a&&o){i.loading.show();var r=moment().utc().unix(),l=e.formData.useComment&&e.formData.comment&&e.formData.comment.trim();return t.all(e.recipients.reduce((function(t,n){return t.concat(e.suggestions.reduce((function(e,t){if(!t.uid||!t.pubkey)return console.error("Unable to send suggestion for this identity (no uid or pubkey)",t),e;var i={issuer:c.data.pubkey,recipient:n.pubkey,time:r,content:[t.uid,t.pubkey].join("-"),comment:l};return e.concat(s.send(i,{wallet:c,type:"certification"}))}),[]))}),[])).then((function(){return e.closeModal(),i.loading.hide()})).then((function(){i.toast.show("INVITATION.INFO.INVITATION_SENT")})).catch(i.onError("INVITATION.ERROR.SUGGEST_CERTIFICATIONS_FAILED"))}})):e.closeModal()},e.showSelectRecipientModal=function(t){if(!t.isDefaultPrevented())return n.showWotLookup({allowMultiple:!0,enableFilter:!0,title:"INVITATION.NEW.RECIPIENTS_MODAL_TITLE",help:"INVITATION.NEW.RECIPIENTS_MODAL_HELP",okText:"COMMON.BTN_OK",okType:"button-positive",selection:angular.copy(e.recipients)}).then((function(t){t&&(e.recipients=t)}))},e.showSelectSuggestionModal=function(t){if(!t.isDefaultPrevented())return n.showWotLookup({allowMultiple:!0,enableFilter:!0,title:"INVITATION.NEW.SUGGESTION_IDENTITIES_MODAL_TITLE",help:"INVITATION.NEW.SUGGESTION_IDENTITIES_MODAL_HELP",okText:"COMMON.BTN_OK",okType:"button-positive",selection:angular.copy(e.suggestions)}).then((function(t){t&&(e.suggestions=t)}))},e.showSelectWalletModal=function(){if(e.enableSelectWallet)return n.showSelectWallet().then((function(t){t&&e.formData.walletId!==t.id&&(console.debug("[transfer] Using {"+t.id+"} wallet"),e.wallet=t,e.walletData=t.data,e.formData.walletId=t.id,e.onAmountChanged())}))}}function He(e,t,n,i,a,o,r,s){var l;e.loading=!0,e.popupData={},e.search={results:[],loading:!0},e.emailFrequencies=[{id:"daily",label:"daily"},{id:"weekly",label:"weekly"}],e.enter=function(t,i){if(e.loading){if(!(l=i.stateParams&&i.stateParams.id?a.children.get(i.stateParams.id):a))return o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();l.auth({minData:!0}).then((function(){return o.loading.hide(),e.load()})).then((function(){e.showFab("fab-add-subscription-record")})).catch((function(t){if("CANCELLED"===t)return o.loading.hide(10),e.loading=!0,void n.goBack();o.onError("SUBSCRIPTION.ERROR.LOAD_SUBSCRIPTIONS_FAILED")(t)}))}},e.$on("$ionicView.enter",e.enter),e.load=function(){return e.loading=!0,s.record.load(l.data.pubkey,l.data.keypair).then((function(e){var t=_.groupBy(e||[],(function(e){return[e.type,e.recipient].join("|")}));return _.keys(t).reduce((function(e,n){var i=n.split("|");return e.concat({type:i[0],recipient:i[1],items:t[n]})}),[])})).then((function(e){return i.extendAll(e,"recipient")})).then(e.updateView).catch((function(t){o.loading.hide(10),t&&404==t.ucode?(e.updateView([]),e.existing=!1):o.onError("PROFILE.ERROR.LOAD_PROFILE_FAILED")(t)}))},e.updateView=function(t){t&&(e.search.results=t),e.search.results&&e.search.results.length&&e.motion.show(),e.search.loading=!1},e.addSubscription=function(){e.showCategoryModal().then((function(t){if(t){if("email"===t.id)return e.showEmailModal();o.alert.notImplemented()}})).then((function(t){t&&(o.loading.show(),s.record.add(t,{wallet:l}).then(e.addToUI).then((function(){l.data.subscriptions=l.data.subscriptions||{count:0},l.data.subscriptions.count++,o.loading.hide(),e.updateView()})).catch(o.onError("SUBSCRIPTION.ERROR.ADD_SUBSCRIPTION_FAILED")))}))},e.editSubscription=function(t){var n,i=angular.copy(t);if("email"===t.type&&(n=e.showEmailModal(t)),n)return n.then((function(n){if(n)return o.loading.show(),t.id=i.id,s.record.update(t,l).then((function(){if(i.type!==t.type||i.recipient!==t.recipient)return e.removeFromUI(i),e.addToUI(t)})).then((function(){o.loading.hide(),e.updateView()})).catch(o.onError("SUBSCRIPTION.ERROR.UPDATE_SUBSCRIPTION_FAILED"))}))},e.deleteSubscription=function(t,n){if(t&&t.id){if(!n)return o.alert.confirm("SUBSCRIPTION.CONFIRM.DELETE_SUBSCRIPTION").then((function(n){if(n)return e.deleteSubscription(t,n)}));o.loading.show(),s.record.remove(t.id,{wallet:l}).then((function(){l.data.subscriptions=l.data.subscriptions||{count:1},l.data.subscriptions.count--,e.removeFromUI(t),o.loading.hide()})).catch(o.onError("SUBSCRIPTION.ERROR.DELETE_SUBSCRIPTION_FAILED"))}},e.removeFromUI=function(t){var n=_.findWhere(e.search.results,{type:t.type,recipient:t.recipient}),i=_.findIndex(n.items,t);i>=0&&n.items.splice(i,1),n.items.length||(i=_.findIndex(e.search.results,n),e.search.results.splice(i,1))},e.addToUI=function(n){e.search.results=e.search.results||[];var a=_.findWhere(e.search.results,{type:n.type,recipient:n.recipient});return a?(a.items.push(n),t.when(n)):(a={type:n.type,recipient:n.recipient,items:[]},i.extendAll([a],"recipient").then((function(){return a.items.push(n),e.search.results.push(a),n})))},e.showCategoryModal=function(){return s.category.all().then((function(e){return r.show("plugins/es/templates/common/modal_category.html","ESCategoryModalCtrl as ctrl",{categories:e},{focusFirstInput:!0})})).then((function(e){if(e&&e.parent)return e}))},e.showEmailModal=function(e){return r.show("plugins/es/templates/subscription/modal_email.html","ModalEmailSubscriptionsCtrl",e,{focusFirstInput:!0})}}function We(e,t,n,i,a,o,r){e.frequencies=[{id:"daily",label:"daily"},{id:"weekly",label:"weekly"}],e.formData=r||{},e.formData.content=e.formData.content||{},e.formData.content.frequency=e.formData.content.frequency||e.frequencies[0].id,e.recipient={},e.$on("modal.shown",(function(){return e.formData.recipient?(e.recipient={pubkey:e.formData.recipient},a.extendAll([e.recipient])):i.network.peering.self().then((function(t){if(t)return e.formData.recipient=t.pubkey,e.recipient={pubkey:e.formData.recipient},a.extendAll([e.recipient])}))})),e.doSubmit=function(){if(e.form.$submitted=!0,e.form.$valid&&e.formData.content.email&&e.formData.content.frequency){var t={type:"email",recipient:e.formData.recipient,content:{email:e.formData.content.email,locale:n.data.locale.id,frequency:e.formData.content.frequency}};e.closeModal(t)}},e.cancel=function(){e.closeModal()},e.subscriptionForm&&e.subscriptionForm.$setPristine(),e.showNetworkLookup=function(){return o.showNetworkLookup({enableFilter:!0,endpointFilter:i.constants.ES_SUBSCRIPTION_API}).then((function(t){t&&(e.recipient=t,e.formData.recipient=t.pubkey)}))}}function Ve(e,t,n,i,a,o,r,s,l){e.search=e.search||{loading:!0,hasMore:!1,text:void 0,index:"invitation",type:"certification",results:[],sort:"time",asc:!1,loadingMore:!1},e.entered=!1,e.searchTextId="documentSearchText",e.ionItemClass="item-border-large",e.defaultSizeLimit=e.defaultSizeLimit||(r.screen.isSmall()?50:100),e.helptipPrefix="helptip-document",e.compactMode=!angular.isDefined(e.compactMode)||e.compactMode,e._source=e._source||["issuer","hash","time","creationTime","title","message"],e.showHeaders=!angular.isDefined(e.showHeaders)||e.showHeaders,e.enter=function(t,n){e.entered||(e.entered=!0,e.search.index=n.stateParams&&n.stateParams.index||e.search.index,e.search.type=n.stateParams&&n.stateParams.type||e.search.type,e.search.text=n.stateParams&&n.stateParams.q||e.search.text,e.search.last=!e.search.text,e.load()),e.expertMode=angular.isDefined(e.expertMode)?e.expertMode:!r.screen.isSmall()&&a.data.expertMode},e.$on("$ionicView.enter",e.enter),e.computeOptions=function(t,n){var i={index:e.search.index,type:e.search.type,from:t||0,size:n||e.defaultSizeLimit};return e.search.sort?(i.sort={},i.sort[e.search.sort]=e.search.asc?"asc":"desc"):i.sort={time:"desc"},i._source=i._source||e._source,i},e.load=function(t,n,i){if(!e.search.error){var a=e.computeOptions(t,n);return e.search.loading=!i,(e.search.last?l.search(a):l.searchText(e.search.text||"",a)).then((function(n){t?e.search.results=e.search.results.concat(n.hits):(e.search.results=n.hits,e.search.took=n.took),e.search.total=n.total,r.loading.hide(),e.search.loading=!1,e.search.hasMore=n.hits&&n.hits.length>0&&n.total>e.search.results.length,e.updateView()})).catch((function(t){e.search.results=[],e.search.loading=!1,e.search.error=!0,e.search.hasMore=!1,r.onError("DOCUMENT.ERROR.LOAD_DOCUMENTS_FAILED")(t).then((function(){e.search.error=!1}))}))}},e.updateView=function(){e.motion&&e.search.results&&e.search.results.length&&e.motion.show({selector:".list .item.item-document"}),e.$broadcast("$$rebind::rebind")},e.doSearchText=function(){return e.search.last=!e.search.text,e.load().then((function(){n.search({q:e.search.text}).replace()}))},e.doSearchLast=function(){return e.search.last=!0,e.search.text=void 0,e.load()},e.removeAll=function(){if(e.hideActionsPopover(),e.search.results&&e.search.results.length)return r.alert.confirm("DOCUMENT.CONFIRM.REMOVE_ALL").then((function(t){if(t)return r.loading.show(),l.removeAll(e.search.results).then((function(){return e.search.loading=!1,i((function(){return r.toast.show("DOCUMENT.INFO.REMOVED"),e.load()}),1e3)})).catch(r.onError("DOCUMENT.ERROR.REMOVE_ALL_FAILED"))}))},e.remove=function(t,n){var i=e.search.results[n];i&&!t.defaultPrevented&&(t.stopPropagation(),r.alert.confirm("DOCUMENT.CONFIRM.REMOVE").then((function(t){if(t)return l.remove(i).then((function(){e.search.results.splice(n,1),e.$broadcast("$$rebind::rebind"),r.toast.show("DOCUMENT.INFO.REMOVED")})).catch(r.onError("MESSAGE.ERROR.REMOVE_FAILED"))})))},e.selectDocument=function(t,n){console.debug("Selected document: ",n,s);var i=s.getUrl("/{0}/{1}/_search?pretty&q=_id:{2}".format(n.index,n.type,n.id));return e.openLink(t,i)},e.toggleCompactMode=function(){e.compactMode=!e.compactMode,e.updateView(),!e.search.hasMore&&e.search.results.length&&"last"==e.search.type&&i((function(){e.search.hasMore=!0}),500)},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.load()},e.showMore=function(){e.search.loading||(e.search.loadingMore=!0,e.load(e.search.results.length,e.defaultSizeLimit,!0).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})))},e.startListenChanges=function(){var t=Date.now(),n=e.search.index+"/"+e.search.type,i=s.websocket.changes(n);return i.open().then((function(){console.debug("[ES] [document] Websocket opened in {0} ms".format(Date.now()-t)),i.on((function(t){e.search.last&&t&&l.fromHit(t).then((function(n){"DELETE"===t._operation?e.onDeleteDocument(n):e.onNewDocument(n)}))}))}))},e.onNewDocument=function(t){if(e.search.last&&!e.search.loading){console.debug("[ES] [document] Detected new document: ",t);var n=_.findIndex(e.search.results,{id:t.id,index:t.index,type:t.type});n<0?(e.search.total++,e.search.results.splice(0,0,t)):(t.updated=!0,i((function(){t.updated=!1}),2e3),e.search.results.splice(n,1,t)),e.updateView()}},e.onDeleteDocument=function(t){e.search.last&&!e.search.loading&&i((function(){var n=_.findIndex(e.search.results,{id:t.id,index:t.index,type:t.type});n<0||(console.debug("[ES] [document] Detected document deletion: ",t),e.search.results.splice(n,1),e.search.total--,e.updateView())}),750)},e.showActionsPopover=function(t){r.popover.show(t,{templateUrl:"plugins/es/templates/document/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.resetData=function(){e.search.loading||(console.debug("[ES] [document] Resetting data (settings or account may have changed)"),e.search.results=[],e.search.loading=!1,e.search.total=void 0,e.search.loadingMore=!1,e.entered=!1,delete e.search.limit)},o.api.data.on.unauth(e,e.resetData)}function Ge(e,t,n,i,a){angular.extend(this,t("ESDocumentLookupCtrl",{$scope:e})),e.search={loading:!0,hasMore:!0,text:void 0,index:"user,page,group",type:"profile,record,comment",results:void 0,sort:"time",asc:!1},e.expertMode=!1,e.defaultSizeLimit=20,e._source=["issuer","hash","time","creationTime","title","avatar._content_type","city","message","record","type"],e.showHeaders=!1,e.$on("$ionicParentView.enter",e.enter),e.selectDocument=function(e,t){if(t&&e&&!e.defaultPrevented)if(e.stopPropagation(),"user"===t.index&&"profile"===t.type)i.go("app.wot_identity",{pubkey:t.pubkey,uid:t.name});else if("page"===t.index&&"record"===t.type)i.go("app.view_page",{title:t.title,id:t.id});else if("page"===t.index&&"comment"===t.type){var n=a("formatHash")(t.id);i.go("app.view_page_anchor",{title:t.title,id:t.record,anchor:n})}else"group"===t.index&&"record"===t.type?i.go("app.view_group",{title:t.title,id:t.id}):"group"===t.index&&"comment"===t.type?(n=a("formatHash")(t.id),i.go("app.view_group_anchor",{title:t.title,id:t.record,anchor:n})):console.warn("Click on this kind of document not implement yet!",t)};var o=e.computeOptions;e.computeOptions=function(t,n){var i=o(t,n);if(!i.sort||i.sort.time){var a=i.sort&&i.sort.time||a;i.sort=[{time:a}]}return i._source=i._source||e._source,i.getTimeFunction=function(e){return e.time=e.creationTime||e.time,e.time},i},n((function(){e.startListenChanges()}),1e3)}function Ye(e,t,n,i,a,o,r,s,l){function c(t){return moment.unix(t).utc().startOf(e.formData.rangeDuration).unix()}e.loading=!0,e.formData=e.formData||{useRelative:o.data.useRelative,timePct:100,rangeDuration:"day",firstBlockTime:0,scale:"linear",hide:[],beginAtZero:!0},e.formData.useRelative=!1,e.scale="linear",e.height=void 0,e.width=void 0,e.maintainAspectRatio=!0,e.times=[],e.enter=function(t,n){if(e.loading){if(n&&n.stateParams&&(e.stateName=n&&n.stateName,e.stateParams=angular.copy(n&&n.stateParams||{}),!e.formData.currency&&n&&n.stateParams&&n.stateParams.currency&&(e.formData.currency=n.stateParams.currency),n.stateParams.t?e.formData.timePct=n.stateParams.t:n.stateParams.timePct&&(e.formData.timePct=n.stateParams.timePct),n.stateParams.stepUnit&&(e.formData.rangeDuration=n.stateParams.stepUnit),n.stateParams.scale&&(e.formData.scale=n.stateParams.scale),n.stateParams.hide&&(e.formData.hide=n.stateParams.hide.split(",").reduce((function(e,t){return e.concat(parseInt(t))}),[]))),e.init(t,n),!e.formData.currency)return r.get().then((function(i){return e.formData.currency=i?i.name:null,e.formData.firstBlockTime=i?c(i.firstBlockTime):0,e.formData.firstBlockTime||console.warn("[graph] currency.firstBlockTime not loaded ! Should have been loaded by currrency service!"),e.formData.currencyAge=c(moment().utc().unix())-e.formData.firstBlockTime,e.enter(t,n)}));e.load().then((function(){e.setScale(e.formData.scale),e.updateHiddenDataset(),e.loading=!1}))}},e.$on("$csExtension.enter",e.enter),e.$on("$ionicParentView.enter",e.enter),e.updateLocation=function(){e.stateName&&(i.nextViewOptions({disableAnimate:!0,disableBack:!0,historyRoot:!0}),e.stateParams=e.stateParams||{},e.stateParams.t=e.formData.timePct>=0&&e.formData.timePct<100?e.formData.timePct:void 0,e.stateParams.stepUnit="day"!=e.formData.rangeDuration?e.formData.rangeDuration:void 0,e.stateParams.hide=e.formData.hide&&e.formData.hide.length?e.formData.hide.join(","):void 0,e.stateParams.scale="linear"!=e.formData.scale?e.formData.scale:void 0,a.go(e.stateName,e.stateParams,{reload:!1,inherit:!0,notify:!1}))},e.setSize=function(t,n,i){e.height=t,e.width=n,e.maintainAspectRatio=angular.isDefined(i)?i:e.maintainAspectRatio},e.$on("csView.action.refresh",(function(t,n){if(!n||"currency"==n)return e.load()})),e.init=function(e,t){},e.load=function(){},e.toggleScale=function(){e.setScale("linear"===e.formData.scale?"logarithmic":"linear"),e.updateLocation()},e.setScale=function(n){if(e.hideActionsPopover(),e.formData.scale=n,e.options&&e.options.scales&&e.options.scales.yAxes){var i=t("formatInteger");_.forEach(e.options.scales.yAxes,(function(t,a){t.type=n,t.ticks=t.ticks||{},"linear"==n?(t.ticks.beginAtZero=!angular.isDefined(e.formData.beginAtZero)||e.formData.beginAtZero,delete t.ticks.min,t.ticks.callback=function(e){return i(e)}):(delete t.ticks.beginAtZero,delete t.ticks.callback,t.ticks.callback=function(e,t){if(e)return Math.log10(e)%1==0||Math.log10(e/3)%1==0?i(e):""})}))}},e.setRangeDuration=function(t){e.hideActionsPopover(),e.formData&&t==e.formData.rangeDuration||(e.formData.rangeDuration=t,delete e.formData.startTime,delete e.formData.endTime,delete e.formData.rangeDurationSec,e.load(),e.updateLocation())},e.updateHiddenDataset=function(t){t=t||e.datasetOverride||{},_.forEach(e.formData.hide||[],(function(n){if(t[n]){t[n].hidden=!0;var i=t[n].yAxisID,a=i&&e.options&&e.options.scales&&_.findWhere(e.options.scales.yAxes||[],{id:i});i&&a&&1==_.filter(t,(function(e){return e.yAxisID===i})).length&&(a.display=!1)}}))},e.onLegendClick=function(t,n){var i=n.datasetIndex,a=this.chart,o=a.getDatasetMeta(i);o.hidden=null===o.hidden?!a.data.datasets[i].hidden:null,a.config&&a.config.data&&a.config.data.datasets&&1===_.filter(a.config.data.datasets,(function(e){return e.yAxisID&&e.yAxisID===o.yAxisID})).length&&(a.scales[o.yAxisID].options.display=!(!0===o.hidden)),a.update(),e.formData.hide=e.formData.hide||[],e.formData.hide=o.hidden?_.union(e.formData.hide,[i]):_.difference(e.formData.hide,[i]),e.updateLocation()},e.goPreviousRange=function(){e.loadingRange||(e.loadingRange=!0,e.formData.startTime-=e.times.length*e.formData.rangeDurationSec,e.formData.startTime<e.formData.firstBlockTime&&(e.formData.startTime=e.formData.firstBlockTime),e.formData.endTime=e.formData.startTime+e.times.length*e.formData.rangeDurationSec,e.load().then((function(){e.updateLocation(),e.loadingRange=!1})))},e.goNextRange=function(){e.loadingRange||(e.loadingRange=!0,e.formData.startTime+=e.times.length*e.formData.rangeDurationSec,e.formData.startTime>e.formData.firstBlockTime+e.formData.currencyAge-e.formData.timeWindow&&(e.formData.startTime=e.formData.firstBlockTime+e.formData.currencyAge-e.formData.timeWindow),e.formData.endTime=e.formData.startTime+e.times.length*e.formData.rangeDurationSec,e.load().then((function(){e.updateLocation(),e.loadingRange=!1})))},e.onRangeChanged=function(){e.loadingRange||(e.loadingRange=!0,e.formData.startTime=e.formData.firstBlockTime+parseFloat(e.formData.timePct)/100*(e.formData.currencyAge-e.formData.timeWindow),e.formData.endTime=e.formData.startTime+e.times.length*e.formData.rangeDurationSec,e.load().then((function(){e.updateLocation(),e.loadingRange=!1})))},e.updateRange=function(t,n,i){i=!angular.isDefined(i)||i,e.formData.startTime=t,e.formData.endTime=n,e.formData.timeWindow=e.formData.timeWindow||e.formData.endTime-e.formData.startTime,e.formData.rangeDurationSec=e.formData.rangeDurationSec||e.formData.timeWindow/(e.times.length-1),i&&(e.formData.timePct=Math.ceil(100*(e.formData.startTime-e.formData.firstBlockTime)/(e.formData.currencyAge-e.formData.timeWindow)))},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"plugins/graph/templates/common/popover_range_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function je(e,t,n,i,a,o,r,s){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.displayRightAxis=!0,e.init=function(t,n){n&&n.stateParams&&!e.formData.issuer&&n&&n.stateParams&&n.stateParams.pubkey&&(e.formData.issuer=n.stateParams.pubkey)},e.load=function(t){var i=e.formData
-;return n.all([o(e.formData.issuer?"GRAPH.BLOCKCHAIN.TX_AMOUNT_PUBKEY_TITLE":"GRAPH.BLOCKCHAIN.TX_AMOUNT_TITLE",i),o(["GRAPH.BLOCKCHAIN.TX_AMOUNT_LABEL","GRAPH.BLOCKCHAIN.TX_COUNT_LABEL","GRAPH.BLOCKCHAIN.TX_AVG_BY_BLOCK","COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"]),r.blockchain.txCount(e.formData.currency,i)]).then((function(n){var i=n[0],o=n[1],r={hour:o["COMMON.DATE_PATTERN"],day:o["COMMON.DATE_SHORT_PATTERN"],month:o["COMMON.DATE_MONTH_YEAR_PATTERN"]};if((n=n[2])&&n.times){e.times=n.times,a("formatInteger");var l=a("formatDecimal");e.currencySymbol=a("currencySymbolNoHtml")(e.formData.currency,e.formData.useRelative),e.formData.rangeDuration,e.data=[n.amount,n.count];var c=r[e.formData.rangeDuration];e.labels=n.times.reduce((function(e,t){return e.concat(moment.unix(t).local().format(c))}),[]),e.colors=s.scale.fix(n.times.length),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.options={responsive:!0,maintainAspectRatio:!0,title:{display:!0,text:i},scales:{yAxes:[{id:"y-axis-amount",position:"left"},{id:"y-axis-count",display:e.displayRightAxis,position:"right",gridLines:{drawOnChartArea:!1}}]},legend:{display:e.displayRightAxis,onClick:e.onLegendClick},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return 0===t.datasetIndex?n.datasets[t.datasetIndex].label+": "+l(t.yLabel)+" "+e.currencySymbol:n.datasets[t.datasetIndex].label+": "+t.yLabel}}}},e.datasetOverride=[{yAxisID:"y-axis-amount",type:"bar",label:o["GRAPH.BLOCKCHAIN.TX_AMOUNT_LABEL"],hoverBackgroundColor:s.rgba.calm(.6)},{yAxisID:"y-axis-count",type:"line",label:o["GRAPH.BLOCKCHAIN.TX_COUNT_LABEL"],fill:!1,borderColor:s.rgba.gray(.5),borderWidth:2,backgroundColor:s.rgba.gray(.5),pointBackgroundColor:s.rgba.gray(.5),pointBorderColor:s.rgba.white(),pointHoverBackgroundColor:s.rgba.gray(1),pointHoverBorderColor:s.rgba.translucent(),pointRadius:3}]}}))},e.onChartClick=function(t,n,a){if(a){var o=e.times[a._index],r=moment.unix(o).utc().add(1,e.formData.rangeDuration).unix(),s="_exists_:transactions AND medianTime:>={0} AND medianTime:<{1}".format(o,r);e.formData.issuer&&(s+=" AND issuer:"+e.formData.issuer),i.go("app.blockchain_search",{q:s})}}}function Ke(e,t,n,i,a,o,r){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.load=function(){return n.all([a(["GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_TITLE","GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_LABEL"]),r.blockchain.countByIssuer(e.formData.currency)]).then((function(t){var n=t[0];(t=t[1])&&t.data&&(e.data=t.data,e.labels=t.labels,e.blockCount=t.blockCount,e.issuers=t.issuers,e.barOptions={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_TITLE"]},scales:{yAxes:[{type:"linear",ticks:{beginAtZero:!0}}]}},e.colors=o.scale.custom(t.data.length))}))},e.onChartClick=function(t,n,a){if(a){var o=e.issuers[a._index];i.go("app.wot_identity",o)}}}function $e(e,t,n,i,a,o){e.extensionPoint=n.extensions.points.current.get(),e.enable=i.isEnable(),e.loading=!0,e.node=e.node||{},i.api.state.on.changed(e,(function(t){e.enable=t})),e.enter=function(n,i){return!e.node.currency&&i&&i.stateParams&&i.stateParams.currency&&(e.node.currency=i.stateParams.currency),e.node.currency?e.node.pubkey?e.load():t((function(){return e.enter(n,i)}),500):a.get().then((function(t){return e.node.currency=t?t.name:null,e.enter(n,i)}))},e.$on("$csExtension.enter",e.enter),e.load=function(){if(e.node.currency||e.node.pubkey)return console.info("[Graph] [peer] Loading blocks count for [{0}]".format(e.node.pubkey.substr(0,8))),o.node.blockCount(e.node.currency,e.node.pubkey).then((function(t){e.blockCount=t,e.loading=!1}))}}function ze(e,t,n,i){e.extensionPoint=t.extensions.points.current.get(),e.enable=i.isEnable(),e.smallscreen=n.screen.isSmall(),i.api.state.on.changed(e,(function(t){e.enable=t}))}function qe(e,t,n,i,a,o,r,s,l,c){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.formData.useRelative=angular.isDefined(e.formData.useRelative)?e.formData.useRelative:c.data.useRelative,e.displayShareAxis=!0,e.hiddenDatasets=[],e.init=function(e,t){},e.onUseRelativeChanged=function(){e.loading||e.load()},e.$watch("formData.useRelative",e.onUseRelativeChanged);var u=function(e){return Math.trunc(100*e)/100};e.load=function(t,i){return t=t||0,i=i||1e4,n.all([a(["GRAPH.CURRENCY.MONETARY_MASS_TITLE","GRAPH.CURRENCY.MONETARY_MASS_LABEL","GRAPH.CURRENCY.MONETARY_MASS_SHARE_LABEL"]),s.blockchain.withDividend(e.formData.currency,{from:t,size:i})]).then((function(t){var n=t[0];if((t=t[1])&&t.times){e.times=t.times;var i,a=t.times[t.times.length-1]-t.times[0];i=l(a<31557600?"medianDateShort":"formatDateMonth");var o=l("formatDecimal");e.currencySymbol=l("currencySymbolNoHtml")(e.formData.currency,e.formData.useRelative);var s=[];e.formData.useRelative?(s.push(t.blocks.reduce((function(e,t){return e.concat(u(t.monetaryMass/t.dividend/t.membersCount))}),[])),s.push(t.blocks.reduce((function(e,t){return e.concat(u(t.monetaryMass/t.dividend))}),[]))):(s.push(t.blocks.reduce((function(e,t){return e.concat(u(t.monetaryMass/t.membersCount/100))}),[])),s.push(t.blocks.reduce((function(e,t){return e.concat(t.monetaryMass/100)}),[]))),e.data=s,e.labels=t.times.reduce((function(e,t){return e.concat(i(t))}),[]),e.colors=r.scale.fix(t.times.length),e.options={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.CURRENCY.MONETARY_MASS_TITLE"]},legend:{display:e.displayShareAxis,onClick:e.onLegendClick},scales:{yAxes:[{id:"y-axis-mn"},{id:"y-axis-mass",display:e.displayShareAxis,position:"right",gridLines:{drawOnChartArea:!1}}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return n.datasets[t.datasetIndex].label+": "+o(t.yLabel)+" "+e.currencySymbol}}}},e.datasetOverride=[{yAxisID:"y-axis-mn",type:"line",label:n["GRAPH.CURRENCY.MONETARY_MASS_SHARE_LABEL"],borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3},{yAxisID:"y-axis-mass",type:"line",label:n["GRAPH.CURRENCY.MONETARY_MASS_LABEL"],fill:!1,showLine:!0,borderColor:r.rgba.energized(),borderWidth:1,backgroundColor:r.rgba.energized(),pointBackgroundColor:r.rgba.energized(),pointBorderColor:r.rgba.energized(),pointHoverBackgroundColor:r.rgba.energized(),pointHoverBorderColor:r.rgba.energized(),pointRadius:0,pointHitRadius:4,pointHoverRadius:3}],e.setScale(e.scale),e.blocks=t.blocks.reduce((function(e,t){return e.concat(t.number)}),[])}}))},e.onChartClick=function(t,n,a){if(a){var o=e.blocks[a._index];i.go("app.view_block",{number:o})}},e.showActionsPopover=function(t){o.popover.show(t,{templateUrl:"plugins/graph/templates/currency/popover_monetary_mass_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function Xe(e,t,n,i,a,o,r,s){e.formData={scale:"linear",beginAtZero:!1},angular.extend(this,n("GpCurrencyMonetaryMassCtrl",{$scope:e})),e.load=function(n,s){return n=n||0,s=s||1e4,t.all([i(["GRAPH.CURRENCY.UD_TITLE","COMMON.UNIVERSAL_DIVIDEND"]),o.blockchain.withDividend(e.formData.currency,{from:n,size:s})]).then((function(t){var n=t[0];if((t=t[1])&&t.times){e.times=t.times;var i,o=t.times[t.times.length-1]-t.times[0];i=r(o<31557600?"medianDateShort":"formatDateMonth");var s=r("formatDecimal");e.currencySymbol=r("currencySymbolNoHtml")(e.formData.currency,!1),e.data=[t.blocks.reduce((function(e,t){return e.concat(t.dividend/100)}),[])],e.labels=t.times.reduce((function(e,t){return e.concat(i(t))}),[]),e.colors=t.blocks.reduce((function(e){return e.concat(a.rgba.calm(.5))}),[]),e.options={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.CURRENCY.UD_TITLE"]},scales:{yAxes:[{id:"y-axis-ud",ticks:{beginAtZero:e.formData.beginAtZero}}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return n.datasets[t.datasetIndex].label+": "+s(t.yLabel)+" "+e.currencySymbol}}}},e.setScale(e.scale),e.datasetOverride=[{yAxisID:"y-axis-ud",type:"line",label:n["COMMON.UNIVERSAL_DIVIDEND"],borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3}],e.blocks=t.blocks.reduce((function(e,t){return e.concat(t.number)}),[])}}))},e.showActionsPopover=function(t){s.popover.show(t,{templateUrl:"plugins/graph/templates/currency/popover_monetary_mass_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function Qe(e,t,n,i,a,o,r,s){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.load=function(t,i){return t=t||0,i=i||1e4,n.all([a(["GRAPH.CURRENCY.MEMBERS_COUNT_TITLE","GRAPH.CURRENCY.MEMBERS_COUNT_LABEL"]),r.blockchain.withDividend(e.formData.currency,{from:t,size:i,withCurrent:!0})]).then((function(t){var n=t[0];if((t=t[1])&&t.times){e.times=t.times;var i,a=t.times[t.blocks.length-1]-t.times[0];i=s(a<31557600?"medianDateShort":"formatDateMonth"),e.labels=t.times.reduce((function(e,t){return e.concat(i(t))}),[]),e.options={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.CURRENCY.MEMBERS_COUNT_TITLE"]},scales:{xAxes:[{position:"bottom"}],yAxes:[{id:"y-axis-1",ticks:{beginAtZero:!1}}]}},e.datasetOverride=[{yAxisID:"y-axis-1",type:"line",label:n["GRAPH.CURRENCY.MEMBERS_COUNT_LABEL"],borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3}],e.data=[t.blocks.reduce((function(e,t){return e.concat(t.membersCount)}),[])],e.colors=o.scale.fix(t.blocks.length)}}))},e.onChartClick=function(t,n,a){if(a)if(a._index){var o=e.times[a._index-1],r=moment.unix(o).utc().add(1,"day").unix();i.go("app.blockchain_search",{q:"(_exists_:joiners OR _exists_:leavers OR _exists_:revoked OR _exists_:excluded) AND medianTime:>{0} AND medianTime:<={1}".format(o,r)})}else i.go("app.view_block",{number:0})}}function Je(e,t,n,i,a){e.extensionPoint=t.extensions.points.current.get(),e.enable=n.isEnable(),n.api.state.on.changed(e,(function(t){e.enable=t})),e.showIdentityStats=function(){e.formData&&e.formData.pubkey&&i.go("app.wot_identity_stats",{pubkey:e.formData.pubkey})},e.showWalletStats=function(){a.isLogin()&&i.go("app.wot_identity_stats",{pubkey:a.data.pubkey})}}function Ze(e,t,n,i,a,o,r,s,l,c){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.init=function(t,n){n&&n.stateParams&&n.stateParams.pubkey?e.formData.pubkey=n.stateParams.pubkey:c.isLogin()&&(e.formData.pubkey=c.data.pubkey)};var u=e.setScale;e.setScale=function(t){e.data[e.data.length-2]="linear"===t?_.map(e.data[e.data.length-2],(function(e){return-1*Math.abs(e)})):_.map(e.data[e.data.length-2],(function(e){return Math.abs(e)})),u(t)},e.load=function(t){t=!angular.isDefined(t)||t;var i=!0;return r.load(e.formData.pubkey,null,{cache:!0}).then((function(t){return e.identity=t,i=e.identity.isMember||e.identity.wasMember,n.all([o("GRAPH.ACCOUNT.BALANCE_TITLE",e.formData),o(["GRAPH.ACCOUNT.UD_LABEL","GRAPH.ACCOUNT.TX_RECEIVED_LABEL","GRAPH.ACCOUNT.TX_SENT_LABEL","GRAPH.ACCOUNT.UD_ACCUMULATION_LABEL","GRAPH.ACCOUNT.TX_ACCUMULATION_LABEL","GRAPH.ACCOUNT.BALANCE_LABEL","COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"]),s.blockchain.movement(e.formData.currency,angular.copy(e.formData,{withUD:i}))])})).then((function(n){var o=n[0],r=n[1];if((n=n[2])&&n.times){e.times=n.times;var s=a("formatDecimal");e.currencySymbol=a("currencySymbolNoHtml")(e.formData.currency,e.formData.useRelative),e.data=[n.ud,n.received,n.sent,n.balance];var c={hour:r["COMMON.DATE_PATTERN"],day:r["COMMON.DATE_SHORT_PATTERN"],month:r["COMMON.DATE_MONTH_YEAR_PATTERN"]}[e.formData.rangeDuration];e.labels=n.times.reduce((function(e,t){return e.concat(moment.unix(t).local().format(c))}),[]),e.colors=l.scale.fix(n.times.length),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.options={responsive:!0,maintainAspectRatio:!0,title:{display:!0,text:o},scales:{xAxes:[{stacked:!0}],yAxes:[{id:"y-axis-left",type:"linear",position:"left",stacked:!0}]},legend:{display:!0,onClick:e.onLegendClick},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return n.datasets[t.datasetIndex].label+": "+(t.yLabel?s(t.yLabel)+" "+e.currencySymbol:"0")}}}},e.datasetOverride=[{yAxisID:"y-axis-left",type:"bar",label:r["GRAPH.ACCOUNT.UD_LABEL"],backgroundColor:l.rgba.energized(.3),hoverBackgroundColor:l.rgba.energized(.5),borderWidth:1},{yAxisID:"y-axis-left",type:"bar",label:r["GRAPH.ACCOUNT.TX_RECEIVED_LABEL"],backgroundColor:l.rgba.positive(.4),hoverBackgroundColor:l.rgba.positive(.6),borderWidth:1},{yAxisID:"y-axis-left",type:"bar",label:r["GRAPH.ACCOUNT.TX_SENT_LABEL"],backgroundColor:l.rgba.assertive(.4),hoverBackgroundColor:l.rgba.assertive(.6),borderWidth:1},{yAxisID:"y-axis-left",type:"line",label:r["GRAPH.ACCOUNT.BALANCE_LABEL"],fill:"origin",borderColor:l.rgba.calm(.5),borderWidth:2,pointBackgroundColor:l.rgba.calm(.5),pointBorderColor:l.rgba.white(),pointHoverBackgroundColor:l.rgba.calm(1),pointHoverBorderColor:"rgba(0,0,0,0)",pointRadius:3,lineTension:.1}],i||(e.data.splice(0,1),e.datasetOverride.splice(0,1))}}))},e.onChartClick=function(t,n,a){if(a){var o=e.times[a._index],r=moment.unix(o).utc().add(1,e.formData.rangeDuration).unix(),s="medianTime:>={0} AND medianTime:<{1}".format(o,r);e.formData.pubkey&&(s+=" AND (transactions.issuers:"+e.formData.pubkey+" OR transactions.outputs:*"+e.formData.pubkey+")"),i.go("app.blockchain_search",{q:s})}}}function et(e,t,n,i,a,o){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.init=function(t,n){e.pubkey=n&&n.stateParams&&n.stateParams.pubkey},e.load=function(t,n){if(e.pubkey)return a.load(e.pubkey,-1).then((function(t){t&&t.tx&&t.tx.history&&(e.inputChart=e.computeChartData(_.filter(t.tx.history,(function(e){return e.amount>0}))),e.outputChart=e.computeChartData(_.filter(t.tx.history,(function(e){return e.amount<0}))))}))},e.computeChartData=function(e){var t=n("formatPubkey"),i={};_.forEach(e,(function(e){i[e.pubkey]=i[e.pubkey]||{label:e.name||e.uid||t(e.pubkey),pubkey:e.pubkey,sum:0},i[e.pubkey].sum+=Math.abs(e.amount)}));var a=_.sortBy(_.values(i),"sum").reverse();return _.each(a,(function(e){e.sum=e.sum/100})),{data:_.pluck(a,"sum"),labels:_.pluck(a,"label"),pubkeys:_.pluck(a,"pubkey"),colors:o.scale.custom(Math.max(10,a.length))}},e.onInputChartClick=function(t,n,a){if(a){var o=e.inputChart.pubkeys[a._index];i.go("app.wot_identity",{pubkey:o})}},e.onOutputChartClick=function(t,n,a){if(a){var o=e.outputChart.pubkeys[a._index];i.go("app.wot_identity",{pubkey:o})}}}function tt(e,t,n,i,a,o,r,s,l){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.init=function(t,n){n&&n.stateParams&&n.stateParams.pubkey?e.formData.pubkey=n.stateParams.pubkey:l.isLogin()&&(e.formData.pubkey=l.data.pubkey)},e.load=function(t){var i=e.formData;return n.all([o("GRAPH.ACCOUNT.CERTIFICATION_TITLE",i),o(["GRAPH.ACCOUNT.GIVEN_CERT_LABEL","GRAPH.ACCOUNT.RECEIVED_CERT_LABEL","GRAPH.ACCOUNT.GIVEN_CERT_DELTA_LABEL","GRAPH.ACCOUNT.RECEIVED_CERT_DELTA_LABEL","COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"]),r.wot.certifications(i)]).then((function(n){var i=n[0],o=n[1];if((n=n[2])&&n.times){e.times=n.times;var r=a("formatInteger");e.data=[n.deltaReceived,n.received,n.deltaGiven,n.given],e.labels=n.labels;var l={hour:o["COMMON.DATE_PATTERN"],day:o["COMMON.DATE_SHORT_PATTERN"],month:o["COMMON.DATE_MONTH_YEAR_PATTERN"]}[e.formData.rangeDuration];e.labels=n.times.reduce((function(e,t){return e.concat(moment.unix(t).local().format(l))}),[]),e.colors=s.scale.fix(n.times.length),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.options={responsive:!0,maintainAspectRatio:!0,title:{display:!0,text:i},scales:{yAxes:[{id:"y-axis-left",type:"linear",position:"left"},{id:"y-axis-hide",type:"linear",display:!1,position:"right"}]},legend:{display:!0},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(e,t){var n=(0===e.datasetIndex||2===e.datasetIndex)&&e.yLabel>0;return t.datasets[e.datasetIndex].label+": "+(n?"+":"")+!e.yLabel?"0":r(e.yLabel)}}}},e.datasetOverride=[{yAxisID:"y-axis-left",type:"bar",label:o["GRAPH.ACCOUNT.RECEIVED_CERT_DELTA_LABEL"],borderColor:s.rgba.positive(.6),borderWidth:1,backgroundColor:s.rgba.positive(.4),hoverBackgroundColor:s.rgba.positive(.6)},{yAxisID:"y-axis-left",type:"line",label:o["GRAPH.ACCOUNT.RECEIVED_CERT_LABEL"],fill:!1,borderColor:s.rgba.positive(.5),borderWidth:2,backgroundColor:s.rgba.positive(1),pointBackgroundColor:s.rgba.positive(.5),pointBorderColor:s.rgba.white(),pointHoverBackgroundColor:s.rgba.positive(1),pointHoverBorderColor:"rgba(0,0,0,0)",pointRadius:3},{yAxisID:"y-axis-left",type:"bar",label:o["GRAPH.ACCOUNT.GIVEN_CERT_DELTA_LABEL"],borderColor:s.rgba.assertive(.6),borderWidth:1,backgroundColor:s.rgba.assertive(.4),hoverBackgroundColor:s.rgba.assertive(.6)},{yAxisID:"y-axis-left",type:"line",label:o["GRAPH.ACCOUNT.GIVEN_CERT_LABEL"],fill:!1,borderColor:s.rgba.assertive(.4),borderWidth:2,backgroundColor:s.rgba.assertive(1),pointBackgroundColor:s.rgba.assertive(.4),pointBorderColor:s.rgba.white(),pointHoverBackgroundColor:s.rgba.assertive(1),pointHoverBorderColor:"rgba(0,0,0,0)",pointRadius:3,lineTension:.1}]}}))},e.onChartClick=function(t,n,a){if(a){var o=e.times[a._index],r=moment.unix(o).utc().add(1,e.formData.rangeDuration).unix(),s="_exists_:transactions AND medianTime:>={0} AND medianTime:<{1}".format(o,r);e.formData.pubkey&&(s+=" AND (transactions.issuers:"+e.formData.pubkey+" OR transactions.outputs:*"+e.formData.pubkey+")"),i.go("app.blockchain_search",{q:s})}}}function nt(e,t,n,i,a,o,r,s){angular.extend(this,n("GpCurrencyAbstractCtrl",{$scope:e})),e.formData.rangeDuration="month",e.displayRightAxis=!0,e.hiddenDatasets=[],e.chartIdPrefix="docstats-chart-",e.charts=[{id:"user",title:"GRAPH.DOC_STATS.USER.TITLE",series:[{key:"user_profile",label:"GRAPH.DOC_STATS.USER.USER_PROFILE",color:o.rgba.royal(.7),pointHoverBackgroundColor:o.rgba.royal(),clickState:{name:"app.document_search",params:{index:"user",type:"profile"}}},{key:"user_settings",label:"GRAPH.DOC_STATS.USER.USER_SETTINGS",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"user",type:"settings"}}}]},{id:"user_delta",title:"GRAPH.DOC_STATS.USER_DELTA.TITLE",series:[{key:"user_profile_delta",label:"GRAPH.DOC_STATS.USER_DELTA.USER_PROFILE",type:"line",yAxisID:"y-axis-delta",color:o.rgba.royal(),pointHoverBackgroundColor:o.rgba.royal()},{key:"user_settings_delta",label:"GRAPH.DOC_STATS.USER_DELTA.USER_SETTINGS",type:"line",yAxisID:"y-axis-delta",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray()}]},{id:"message",title:"GRAPH.DOC_STATS.MESSAGE.TITLE",series:[{key:"message_inbox",label:"GRAPH.DOC_STATS.MESSAGE.MESSAGE_INBOX",color:o.rgba.royal(),pointHoverBackgroundColor:o.rgba.royal(),clickState:{name:"app.document_search",params:{index:"message",type:"inbox"}}},{key:"message_outbox",label:"GRAPH.DOC_STATS.MESSAGE.MESSAGE_OUTBOX",color:o.rgba.calm(),pointHoverBackgroundColor:o.rgba.calm(),clickState:{name:"app.document_search",params:{index:"message",type:"outbox"}}},{key:"invitation_certification",label:"GRAPH.DOC_STATS.MESSAGE.INVITATION_CERTIFICATION",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"invitation",type:"certification"}}}]},{id:"social",title:"GRAPH.DOC_STATS.SOCIAL.TITLE",series:[{key:"page_record",label:"GRAPH.DOC_STATS.SOCIAL.PAGE_RECORD",color:o.rgba.royal(),pointHoverBackgroundColor:o.rgba.royal(),clickState:{name:"app.document_search",params:{index:"page",type:"record"}}},{key:"group_record",label:"GRAPH.DOC_STATS.SOCIAL.GROUP_RECORD",color:o.rgba.calm(),pointHoverBackgroundColor:o.rgba.calm(),clickState:{name:"app.document_search",params:{index:"group",type:"record"}}},{key:"page_comment",label:"GRAPH.DOC_STATS.SOCIAL.PAGE_COMMENT",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"page",type:"comment"}}}]},{id:"other",title:"GRAPH.DOC_STATS.OTHER.TITLE",series:[{key:"history_delete",label:"GRAPH.DOC_STATS.OTHER.HISTORY_DELETE",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"history",type:"delete"}}}]}];var l=s("formatInteger");e.defaultChartOptions={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0},legend:{display:!0,onClick:e.onLegendClick},scales:{xAxes:[{stacked:!0}],yAxes:[{id:"y-axis",stacked:!0},{id:"y-axis-delta",stacked:!1},{id:"y-axis-delta-right",stacked:!1,display:e.displayRightAxis,position:"right",gridLines:{drawOnChartArea:!1}}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(e,t){return t.datasets[e.datasetIndex].label+": "+l(e.yLabel)}}}},e.init=function(t,n){if(n&&n.stateParams){var i=n.stateParams&&n.stateParams.server||void 0;i&&(console.debug("[docstats] Will use server: "+i),angular.merge(e.formData,{server:n.stateParams.server,useSsl:n.stateParams.useSsl,useTor:n.stateParams.useTor}))}},e.load=function(t){return i.all([a(e.charts.reduce((function(e,t){return e.concat(t.series.reduce((function(e,t){return e.concat(t.label)}),[t.title]))}),["COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"])),r.docstat.get(e.formData)]).then((function(n){var i=n[0],a={hour:i["COMMON.DATE_PATTERN"],day:i["COMMON.DATE_SHORT_PATTERN"],month:i["COMMON.DATE_MONTH_YEAR_PATTERN"]};if((n=n[1])&&n.times){e.times=n.times;var r=a[e.formData.rangeDuration];e.labels=_.map(n.times,(function(e){return moment.unix(e).local().format(r)})),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.setScale(e.scale),_.forEach(e.charts,(function(t){var a={};t.data=_.map(t.series,(function(e){if(a[e.yAxisID||"y-axis"]=!0,e.key.endsWith("_delta")){var t=e.key.substring(0,e.key.length-"_delta".length);return((i=n[t])?_.map(i,(function(e){var t=void 0!==e&&void 0!==o?e-(o||e):void 0;return o=e,t})):void 0)||[]}var i,o;return n[e.key]||[]})),t.options=angular.copy(e.defaultChartOptions),t.options.title.text=i[t.title],t.options.scales.yAxes=t.options.scales.yAxes.reduce((function(e,t){return a[t.id]?e.concat(t):e}),[]),t.datasetOverride=_.map(t.series,(function(e){return{yAxisID:e.yAxisID||"y-axis",type:e.type||"line",label:i[e.label],fill:"line"!==e.type,borderWidth:2,pointRadius:"line"!==e.type?0:2,pointHitRadius:4,pointHoverRadius:3,borderColor:e.color,backgroundColor:e.color,pointBackgroundColor:e.color,pointBorderColor:e.color,pointHoverBackgroundColor:e.pointHoverBackgroundColor||e.color,pointHoverBorderColor:e.pointHoverBorderColor||o.rgba.white()}}))}))}}))},e.onChartClick=function(n,i,a){if(a){var o=_.find(e.charts,(function(t){return e.chartIdPrefix+t.id==a._chart.canvas.id})).series[a._datasetIndex];if(o&&o.clickState&&o.clickState.name){var r=o.clickState.params?angular.copy(o.clickState.params):{},s=e.times[a._index],l=moment.unix(s).utc().add(1,e.formData.rangeDuration).unix();return r.q="time:>={0} AND time:<{1}".format(s,l),t.go(o.clickState.name,r)}console.debug("Click on item index={0} on range [{1},{2}]".format(a._index,s,l))}}}function it(e,t,n,i,a,o,r){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.formData.rangeDuration="month",e.hiddenDatasets=[],e.charts=[{id:"count",title:"GRAPH.SYNCHRO.COUNT.TITLE",series:[{key:"inserts",type:"bar",label:"GRAPH.SYNCHRO.COUNT.INSERTS",color:a.rgba.royal(),pointHoverBackgroundColor:a.rgba.royal()},{key:"updates",type:"bar",label:"GRAPH.SYNCHRO.COUNT.UPDATES",color:a.rgba.calm(),pointHoverBackgroundColor:a.rgba.calm()},{key:"deletes",type:"bar",label:"GRAPH.SYNCHRO.COUNT.DELETES",color:a.rgba.assertive(.5),pointHoverBackgroundColor:a.rgba.assertive()}]},{id:"peer",title:"GRAPH.SYNCHRO.PEER.TITLE",series:[{key:"ES_USER_API",label:"GRAPH.SYNCHRO.PEER.ES_USER_API",color:a.rgba.royal(),pointHoverBackgroundColor:a.rgba.royal()},{key:"ES_SUBSCRIPTION_API",label:"GRAPH.SYNCHRO.PEER.ES_SUBSCRIPTION_API",color:a.rgba.gray(.5),pointHoverBackgroundColor:a.rgba.gray()}]},{id:"performance",title:"GRAPH.SYNCHRO.PERFORMANCE.TITLE",series:[{key:"duration",type:"bar",label:"GRAPH.SYNCHRO.PERFORMANCE.DURATION",color:a.rgba.gray(.5),pointHoverBackgroundColor:a.rgba.gray()}]}];var s=r("formatInteger");e.defaultChartOptions={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0},legend:{display:!0,onClick:e.onLegendClick},scales:{xAxes:[{stacked:!0}],yAxes:[{stacked:!0,id:"y-axis"}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(e,t){return t.datasets[e.datasetIndex].label+": "+s(e.yLabel)}}}},e.init=function(t,n){if(n&&n.stateParams){var i=n.stateParams&&n.stateParams.server||void 0;i&&(console.debug("[synchro] Will use server: "+i),angular.merge(e.formData,n.stateParams))}},e.load=function(t){return n.all([i(e.charts.reduce((function(e,t){return e.concat(t.series.reduce((function(e,t){return e.concat(t.label)}),[t.title]))}),["COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"])),o.synchro.execution.get(e.formData)]).then((function(n){var i=n[0],o={hour:i["COMMON.DATE_PATTERN"],day:i["COMMON.DATE_SHORT_PATTERN"],month:i["COMMON.DATE_MONTH_YEAR_PATTERN"]};if((n=n[1])&&n.times){e.times=n.times;var r=o[e.formData.rangeDuration];e.labels=n.times.reduce((function(e,t){return e.concat(moment.unix(t).local().format(r))}),[]),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.setScale(e.scale),_.forEach(e.charts,(function(t){t.data=[],_.forEach(t.series,(function(e){t.data.push(n[e.key]||[])})),t.options=angular.copy(e.defaultChartOptions),t.options.title.text=i[t.title],t.datasetOverride=t.series.reduce((function(e,t){return e.concat({yAxisID:"y-axis",type:t.type||"line",label:i[t.label],fill:!0,borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3,borderColor:t.color,backgroundColor:t.color,pointBackgroundColor:t.color,pointBorderColor:t.color,pointHoverBackgroundColor:t.pointHoverBackgroundColor||t.color,pointHoverBorderColor:t.pointHoverBorderColor||a.rgba.white()})}),[])}))}}))}}function at(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){angular.extend(this,l("WotIdentityAbstractCtrl",{$scope:e})),angular.extend(this,l("ESWotIdentityViewCtrl",{$scope:e}));var g,f={member:{type:"awesomeMarker",icon:"person",markerColor:"blue"},pending:{type:"awesomeMarker",icon:"clock",markerColor:"lightgreen",iconColor:"gray"},wallet:{type:"awesomeMarker",icon:"key",markerColor:"lightgray"}};e.loading=!0,e.loadingMarker=!0,e.mapId="map-wot-"+e.$id,e.map=E.map({cache:"map-wot",layers:{overlays:{member:{type:"featureGroup",name:"MAP.WOT.VIEW.LAYER.MEMBER",visible:!0},pending:{type:"featureGroup",name:"MAP.WOT.VIEW.LAYER.PENDING",visible:!0},wallet:{type:"featureGroup",name:"MAP.WOT.VIEW.LAYER.WALLET",visible:!0}}},bounds:{},markers:{},loading:!0},e.mapId),e.showDescription=!1,c().then((function(){e.enableDescription=!d.screen.isSmall()&&"a"===ionic.Platform.grade.toLowerCase(),e.enableDescription||console.debug("[map] [wot] Disable profile description.",ionic.Platform.grade)})),e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!d.screen.isSmall()||t.enableBack})),e.enter=function(t,n){if(e.loading){if(d.loading.show({noBackdrop:!0}),n.stateParams&&n.stateParams.c){var i=n.stateParams.c.split(":");e.map.center.lat=parseFloat(i[0]),e.map.center.lng=parseFloat(i[1]),e.map.center.zoom=parseInt(i[2])}e.$watch("map.center",(function(){if(!e.loading)return a((function(){e.updateLocationHref()}),300)}),!0);var o=Date.now();e.loadMap().then(e.load).then((function(){console.debug("[map] [wot] Loaded in "+(Date.now()-o)+"ms"),e.showHelpTip()}))}else e.updateLocationHref(),e.showHelpTip()},e.$on("$ionicView.enter",e.enter),e.loadMap=function(){return s.all([r(["COMMON.BTN_HELP_TOUR_SCREEN","COMMON.BTN_REFRESH","MAP.COMMON.BTN_LOCALIZE_ME"]),u.getMap(e.mapId)]).then((function(t){var o=t[0],r=t[1];if(!e.map.loading)return r;d.screen.isSmall()||(L.easyButton({position:"topright",type:"replace",leafletClasses:!0,states:[{stateName:"show-help-tour",onClick:e.startHelpTour,title:o["COMMON.BTN_HELP_TOUR_SCREEN"],icon:"icon ion-easel"}]}).addTo(r),L.easyButton({position:"topright",type:"replace",leafletClasses:!0,states:[{stateName:"refresh",onClick:function(t,n){return e.load(n)},title:o["COMMON.BTN_REFRESH"],icon:"icon ion-refresh"}]}).addTo(r)),L.Control.loading({position:"topright",separate:!0}).addTo(r),E.control.localizeMe({title:o["MAP.COMMON.BTN_LOCALIZE_ME"]}).addTo(r),g=L.layerGroup({visible:!1});var s=i(n.get("plugins/map/templates/wot/item_search_tooltip.html"));E.control.search({layer:g,propertyName:"title",buildTip:function(e,t){return s(t.layer.options)},moveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e);var i=e.layer&&e.layer.options&&e.layer.options.popupMarkerId;a((function(){var e=i&&_.find(n._layers,(function(e){return e.options&&e.options.id===i}));e&&e.openPopup()}),400)},firstTipSubmit:!0,tooltipLimit:50}).addTo(r);var l=function(e){return e.options&&e.options.layer},c=L.markerClusterGroup({disableClusteringAtZoom:E.constants.LOCALIZE_ZOOM,maxClusterRadius:65,showCoverageOnHover:!1,iconCreateFunction:function(e){var t=_.countBy(e.getAllChildMarkers(),l),n=t.member?"blue":t.pending?"lightgreen":"lightgray",i=e.getChildCount(),a="marker-cluster "+n+" marker-cluster-";return a+=i<10?"small":i<100?"medium":"large",L.divIcon({html:"<div><span>"+i+"</span></div>",className:a,iconSize:new L.Point(40,40)})}});return r.eachLayer((function(e){e.addLayer&&angular.extend(e,L.featureGroup.subGroup(c))})),c.addTo(r),e.map.loading=!1,r}))},e.load=function(i){if(!i)return u.getMap(e.mapId).then(e.load);e.loading=!0,i.fire("dataloading");var o={fields:{description:e.enableDescription}};return e.map.bounds,b.load(o).then((function(o){var r={};if(g.clearLayers(),o&&o.length){var s=t("formatPubkey"),l=n.get("plugins/map/templates/wot/popup_marker.html");_.forEach(o,(function(t){var n=t.pending?"pending":t.uid?"member":"wallet",i=s(t.pubkey),a=t.index+"_"+(t.id||(t.uid?t.uid+":"+t.pubkey:t.pubkey)).replace(/-/g,"_"),o={layer:n,icon:f[n],opacity:t.uid?1:.7,title:t.name+" | "+i,lat:t.geoPoint.lat,lng:t.geoPoint.lon,getMessageScope:function(){var n=e.$new();return n.loadingMarker=!0,n.formData={},n.$applyAsync((function(){n.formData={pubkey:t.pubkey,uid:t.uid,name:t.name,profile:t},n.loadingMarker=!1})),n},focus:!1,message:l,id:a};r[a]=o;var c=t.name+(t.uid&&t.uid!=t.name?" | "+t.uid:"")+" | "+i,u=angular.merge({type:n,opacity:0,icon:L.divIcon({className:n+" ng-hide",iconSize:L.point(0,0)})},{title:c,pubkey:t.pubkey,uid:t.uid,name:t.name,pending:t.pending,popupMarkerId:a});g.addLayer(new L.Marker({lat:t.geoPoint.lat,lng:t.geoPoint.lon},u))}))}return e.map.markers=r,a((function(){e.loading=!1,i.fire("dataload"),d.loading.hide()}))})).catch((function(t){e.map.markers={},e.loading=!1,d.onError("MAP.WOT.ERROR.LOAD_POSITION_FAILED")(t)}))},e.updateLocationHref=function(t){(o.search()||{}).c&&E.center.isDefault(e.map.center)||(t=t||"{0}:{1}:{2}".format(e.map.center.lat.toFixed(4),e.map.center.lng.toFixed(4),e.map.center.zoom),o.search({c:t}).replace())},e.startHelpTour=function(){return e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if((n||m.isLogin())&&(t=angular.isDefined(t)?t:angular.isNumber(p.data.helptip.mapwot)?p.data.helptip.mapwot:0,n=!!angular.isDefined(n)&&n,!(t<0||t>2))){var i=e.createHelptipScope(n,"MapHelpTipCtrl");if(i)return i.tour=n,i.mapId=e.mapId,i.startMapWotTour(t,!1).then((function(e){i.$destroy(),p.data.helptip.mapwot=angular.isNumber(p.data.helptip.mapwot)?Math.max(e,p.data.helptip.mapwot):e,p.store()}))}}}function ot(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){var b,g={shop:{type:"awesomeMarker",icon:"page-shop",markerColor:"blue"},company:{type:"awesomeMarker",icon:"page-company",markerColor:"blue"},association:{type:"awesomeMarker",icon:"page-association",markerColor:"lightgreen",iconColor:"gray"},institution:{type:"awesomeMarker",icon:"page-institution",markerColor:"lightgray"}};e.loading=!0,e.loadingMarker=!0,e.mapId="map-registry-"+e.$id,e.map=m.map({cache:"map-registry",layers:{overlays:{shop:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.SHOP",visible:!0},company:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.COMPANY",visible:!0},association:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.ASSOCIATION",visible:!0},institution:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.INSTITUTION",visible:!0}}},bounds:{},markers:{},loading:!0},e.mapId),e.formData={},e.showDescription=!1,l().then((function(){e.enableDescription=!u.screen.isSmall()&&"a"===ionic.Platform.grade.toLowerCase(),e.enableDescription||console.debug("[map] [wot] Disable profile description.",ionic.Platform.grade)})),e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!u.screen.isSmall()||t.enableBack})),e.enter=function(t,n){if(e.loading){if(n.stateParams&&n.stateParams.c){var i=n.stateParams.c.split(":");e.map.center.lat=parseFloat(i[0]),e.map.center.lng=parseFloat(i[1]),e.map.center.zoom=parseInt(i[2])}e.$watch("map.center",(function(){if(!e.loading)return a((function(){e.updateLocationHref()}),300)}),!0),e.loadMap().then((function(){return p.isLogin()&&e.showHelpTip(),e.load()}))}else e.updateLocationHref(),p.isLogin()&&e.showHelpTip()},e.$on("$ionicView.enter",e.enter),e.loadMap=function(){return s.all([r(["COMMON.BTN_HELP_TOUR_SCREEN","COMMON.BTN_REFRESH","MAP.COMMON.BTN_LOCALIZE_ME"]),c.getMap(e.mapId)]).then((function(t){var o=t[0],r=t[1];if(!e.map.loading)return r;u.screen.isSmall()||L.easyButton({position:"topright",type:"replace",leafletClasses:!0,states:[{stateName:"refresh",onClick:function(t,n){return e.load(n)},title:o["COMMON.BTN_REFRESH"],icon:"icon ion-refresh"}]}).addTo(r),L.Control.loading({position:"topright",separate:!0}).addTo(r),m.control.localizeMe({title:o["MAP.COMMON.BTN_LOCALIZE_ME"]}).addTo(r),b=L.layerGroup({visible:!1});var s=i(n.get("plugins/map/templates/registry/item_search_tooltip.html"));m.control.search({layer:b,propertyName:"title",buildTip:function(e,t){return s(t.layer.options)},moveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e);var i=e.layer&&e.layer.options&&e.layer.options.popupMarkerId;a((function(){var e=i&&_.find(n._layers,(function(e){return e.options&&e.options.id===i}));e&&e.openPopup()}),400)},firstTipSubmit:!0,tooltipLimit:50}).addTo(r);var l=function(e){return e.options&&e.options.layer},c=L.markerClusterGroup({disableClusteringAtZoom:m.constants.LOCALIZE_ZOOM,maxClusterRadius:65,showCoverageOnHover:!1,iconCreateFunction:function(e){var t=_.countBy(e.getAllChildMarkers(),l),n=t.shop||t.company?"blue":t.association?"lightgreen":"lightgray",i=e.getChildCount(),a="marker-cluster "+n+" marker-cluster-";return a+=i<10?"small":i<100?"medium":"large",L.divIcon({html:"<div><span>"+i+"</span></div>",className:a,iconSize:new L.Point(40,40)})}});return r.eachLayer((function(e){e.addLayer&&angular.extend(e,L.featureGroup.subGroup(c))})),c.addTo(r),e.map.loading=!1,r}))},e.load=function(i){if(!i)return c.getMap(e.mapId).then(e.load);e.loading=!0,i.fire("dataloading");var a={fields:{description:e.enableDescription}};return E.load(a).then((function(a){var o={};if(b.clearLayers(),a&&a.length){var r=t("formatPubkey"),s=n.get("plugins/map/templates/registry/popup_marker.html");_.forEach(a,(function(t){var n=r(t.pubkey),i=t.index+"_"+t.id.replace(/-/g,"_"),a={layer:t.type,icon:g[t.type],opacity:1,title:t.name+" | "+n,lat:t.geoPoint.lat,lng:t.geoPoint.lon,getMessageScope:function(){var n=e.$new();return n.loadingMarker=!0,n.formData={},n.$applyAsync((function(){angular.extend(n.formData,t),n.loadingMarker=!1})),n},focus:!1,message:s,id:i};o[i]=a;var l=t.name+" | "+n,c=angular.merge({type:t.type,opacity:0,icon:L.divIcon({className:t.type+" ng-hide",iconSize:L.point(0,0)})},{title:l,pubkey:t.pubkey,name:t.name,popupMarkerId:i});b.addLayer(new L.Marker({lat:t.geoPoint.lat,lng:t.geoPoint.lon},c))}))}e.map.markers=o,e.loading=!1,i.fire("dataload")})).catch((function(t){e.map.markers={},e.loading=!1,u.onError("MAP.WOT.ERROR.LOAD_POSITION_FAILED")(t)}))},e.updateLocationHref=function(t){(o.search()||{}).c&&m.center.isDefault(e.map.center)||(t=t||"{0}:{1}:{2}".format(e.map.center.lat.toFixed(4),e.map.center.lng.toFixed(4),e.map.center.zoom),o.search({c:t}).replace())},e.$on("centerUrlHash",(function(t,n){if(!e.loading)return a((function(){e.updateLocationHref(n)}),300)})),e.startHelpTour=function(){return e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if(t=angular.isDefined(t)?t:angular.isNumber(d.data.helptip.mapwot)?d.data.helptip.mapwot:0,n=!!angular.isDefined(n)&&n,!(t<0||t>2)){var i=e.createHelptipScope(n,"MapHelpTipCtrl");if(i)return i.tour=n,i.mapId=e.mapId,i.startMapWotTour(t,!1).then((function(e){i.$destroy(),d.data.helptip.mapwot=angular.isNumber(d.data.helptip.mapwot)?Math.max(e,d.data.helptip.mapwot):e,d.store()}))}}}function rt(e,t){angular.extend(this,t("HelpTipCtrl",{$scope:e})),e.mapId=void 0,e.startMapWotTour=function(t,n){var i=[function(){return e.showHelpTip("helptip-map-wot",{bindings:{content:"MAP.HELP.TIP.WOT",icon:{position:"center",glyph:"ion-information-circled"}}})},function(){return e.showHelpTip(null,{selector:"#{0} .leaflet-control-search".format(e.mapId),bindings:{content:"MAP.HELP.TIP.WOT_BTN_SEARCH",icon:{position:"center"}}})},function(){return e.showHelpTip(null,{selector:"#{0} .leaflet-control-layers".format(e.mapId),bindings:{content:"MAP.HELP.TIP.WOT_BTN_LAYERS",icon:{position:"right"},hasNext:n}})}];return e.executeStep("mapwot",i,t)}}if(angular.module("cesium.settings.services",["ngApi","cesium.config"]).factory("csSettings",["$rootScope","$q","$window","Api","localStorage","$translate","csConfig",function(e,t,n,i,a,o,r){var s=[{id:"en",label:"English",country:"us"},{id:"en-GB",label:"English (UK)",country:"gb"},{id:"eo-EO",label:"Esperanto"},{id:"fr-FR",label:"Français",country:"fr"},{id:"nl-NL",label:"Nederlands",country:"nl"},{id:"es-ES",label:"Spanish",country:"es"},{id:"it-IT",label:"Italiano",country:"it"}],l=r.fallbackLanguage?c(r.fallbackLanguage):"en";function c(e){if(!e)return l;if(_.findWhere(s,{id:e}))return e;var t=e.split("-");if(t.length>1)return c(t[0]);var n=_.find(s,(function(t){return String.prototype.startsWith.call(t.id,e)}));return n?n.id:l}var u,d,p,m,E={STORAGE_KEY:"settings",KEEP_AUTH_IDLE_SESSION:9999},b={timeout:4e3,cacheTimeMs:6e4,timeWarningExpireMembership:5184e3,timeWarningExpire:7776e3,minVersion:"1.1.0",newIssueUrl:"https://git.duniter.org/clients/cesium-grp/cesium/issues/new",userForumUrl:"https://forum.monnaie-libre.fr",latestReleaseUrl:"https://api.github.com/repos/duniter/cesium/releases/latest",duniterLatestReleaseUrl:"https://api.github.com/repos/duniter/duniter/releases/latest",httpsMode:!1},g=angular.merge({useRelative:!1,useLocalStorage:!!n.localStorage,useLocalStorageEncryption:!1,walletHistoryTimeSecond:2592e3,walletHistorySliceSecond:432e3,walletHistoryAutoRefresh:!0,rememberMe:!0,keepAuthIdle:600,showUDHistory:!0,expertMode:!1,decimalCount:4,uiEffects:!0,blockValidityWindow:6,helptip:{enable:!0,installDocUrl:"https://duniter.org/en/wiki/duniter/install/",currency:0,network:0,wotLookup:0,wot:0,wotCerts:0,wallet:0,walletCerts:0,header:0,settings:0},currency:{allRules:!1,allWotRules:!1},wallet:{showPubkey:!0,alertIfUnusedWallet:!0},locale:{id:(p=r.defaultLanguage||o.use(),m=c(p),p!==m&&console.debug("[settings] Fix locale [{0}] -> [{1}]".format(p,m)),m)},license:{en:"license/license_g1-en","fr-FR":"license/license_g1-fr-FR","es-ES":"license/license_g1-es-ES"}},b,r),f={},T=!1,h=new i(this,"csSettings");g.walletHistoryAutoRefresh=!1;var v=function(){if(angular.isUndefined(u)||!angular.equals(u,f))return u=angular.copy(f),h.data.raise.changed(f)},I=function(){return T?(f.useLocalStorage?!0===f.node.temporary?a.getObject(E.STORAGE_KEY).then((function(e){var t=angular.copy(f);return t.node=e&&e.node||{},delete t.temporary,a.setObject(E.STORAGE_KEY,t)})):a.setObject(E.STORAGE_KEY,f):a.setObject(E.STORAGE_KEY,null)).then((function(){return f.useLocalStorage&&console.debug("[setting] Saved locally"),h.data.raisePromise.store(f)})).then(v):(console.debug("[setting] Waiting start finished..."),(d||R()).then(I))},N=function(e){if(e){var t=!1;if(e.locale&&e.locale.id){var n=c(e.locale.id);e.locale=_.findWhere(s,{id:n}),t=!f.locale||e.locale.id!==f.locale.id||e.locale.id!==o.use()}_.keys(b).forEach((function(t){e[t]=g[t]})),angular.merge(f,e),(e&&e.node&&!e.node.temporary||!f.node.temporary)&&delete f.node.temporary,t&&o.use(f.locale.id)}},O=function(){var e=Date.now();return a.getObject(E.STORAGE_KEY).then((function(t){if(!t)return console.debug("[settings] No settings in local storage. Using defaults."),N(g),void v();N(t),console.debug("[settings] Loaded from local storage in "+(Date.now()-e)+"ms"),v()}))},R=function(){return console.debug("[settings] Starting..."),d=a.ready().then(O).then((function(){console.debug("[settings] Started"),T=!0,d=null,h.data.raise.ready(f)}))};return e.$on("$translateChangeSuccess",(function(){var e=o.use();console.debug("[settings] Locale ["+e+"]");try{moment.locale(e.toLowerCase())}catch(t){try{moment.locale(e.substr(0,2))}catch(e){moment.locale("en-gb"),console.warn("[settings] Unknown local for moment lib. Using default [en]")}}try{numeral.language(e.toLowerCase())}catch(t){try{numeral.language(e.substring(0,2))}catch(e){numeral.language("en-gb"),console.warn("[settings] Unknown local for numeral lib. Using default [en]")}}h.locale.raise.changed(e)})),h.registerEvent("data","reset"),h.registerEvent("data","changed"),h.registerEvent("data","store"),h.registerEvent("data","ready"),h.registerEvent("locale","changed"),N(g),{ready:function(){return T?t.when():d||R()},start:R,data:f,apply:N,getByPath:function(e,t){var n=f;return _.each(e.split("."),(function(e){n=n[e],angular.isUndefined(n)&&(n=t)})),n},reset:function(){return _.keys(f).forEach((function(e){delete f[e]})),N(g),h.data.raisePromise.reset(f).then(I)},store:I,restore:O,getLicenseUrl:function(){var e=f.locale&&f.locale.id||r.defaultLanguage||"en";return r.license?r.license[e]?r.license[e]:g.license[r.defaultLanguage||"en"]||r.license:void 0},defaultSettings:g,api:h,locales:s,constants:E}}]),angular.module("cesium.network.services",["ngApi","cesium.currency.services","cesium.http.services"]).factory("csNetwork",["$rootScope","$q","$interval","$timeout","$window","csConfig","BMA","csHttp","csCurrency","Api",function(t,i,a,o,r,s,l,c,u,d){function p(t){var c,p="https:"===r.location.protocol,m=new d(this,"csNetwork-"+t),E={bma:null,listeners:[],loading:!0,peers:[],filter:{member:!0,mirror:!0,endpoint:null,online:!1,bma:!1,ssl:void 0,tor:void 0},sort:{type:null,asc:!0,compact:!0},groupBy:"pubkey",expertMode:!1,knownBlocks:[],mainBlock:null,minOnlineBlockNumber:0,uidsByPubkeys:null,searchingPeersOnNetwork:!1,difficulties:null,ws2pHeads:null,timeout:s.timeout},b=function(e){return e&&[e.number,e.hash].join("-")},g=function(){return E.bma.network.ws2p.heads().then((function(e){E.ws2pHeads=e.heads?e.heads.reduce((function(e,t){if(t.message&&t.sig)try{var i=new n(t.message);e[[i.pubkey,i.ws2pid].join("-")]=i}catch(e){console.error("[network] Ignoring WS2P head.",e&&e.message||e)}return e}),{}):{}})).catch((function(e){if(e&&e.ucode==l.errorCodes.HTTP_LIMITATION)return o((function(){return g()}),3e3);console.error(e),E.ws2pHeads={}}))},f=function(){return E.bma.blockchain.stats.difficulties().then((function(e){E.difficulties=e.levels?e.levels.reduce((function(e,t){return t.uid&&t.level&&(e[t.uid]=t.level),e}),{}):{}})).catch((function(e){if(e&&e.ucode==l.errorCodes.HTTP_LIMITATION)return o((function(){return f()}),3e3);console.error(e),E.difficulties={}}))},T=function(){E.peers=[],E.searchingPeersOnNetwork=!0,E.loading=!0,E.bma=E.bma||l;var t=[];c&&a.cancel(c),c=a((function(){t.length?O(t):E.loading&&!E.searchingPeersOnNetwork&&(E.loading=!1,a.cancel(c),A(!0),console.debug("[network] Finish: {0} peers found.".format(E.peers.length)))}),1e3);var n=[E.bma.wot.member.uids().then((function(e){E.uidsByPubkeys=e})).catch((function(e){console.error(e),E.uidsByPubkeys={}})),g()];return E.expertMode&&n.push(f()),i.all(n).then((function(){return E.bma&&E.bma.network.peers()})).then((function(n){if(n&&n.peers&&n.peers.length){if(!E.filter.online)return i.all(_(n&&n.peers||[]).reduce((function(e,n){return e.concat(v(n,t))}),[]));var a=[];_.forEach(n.peers,(function(e){"UP"===e.status&&(e.blockNumber=e.block&&parseInt(e.block.split("-")[0]),e.blockNumber&&e.blockNumber<E.minOnlineBlockNumber?console.debug("[network] Exclude a too old peer document, on pubkey {0}".format(e.pubkey.substring(0,6))):(a.push(v(e,t)),_.forEach(e.endpoints||[],(function(t){if(t.startsWith("WS2P")){var n=e.pubkey+"-"+t.split(" ")[1];E.ws2pHeads[n]&&(E.ws2pHeads[n].hasEndpoint=!0)}}))))}));var o=_.values(E.ws2pHeads);if(o&&o.length){var r=0;_.forEach(o,(function(n){if(!n.hasEndPoint){var i=n.buid&&parseInt(n.buid.split("-")[0]);if(i&&i<E.minOnlineBlockNumber)return void console.debug("[network] Exclude a too old WS2P message, on pubkey {0}".format(n.pubkey.substring(0,6)));var a=new e({buid:n.buid,currentNumber:i,pubkey:n.pubkey,version:n.version,powPrefix:n.powPrefix,online:!0,uid:E.uidsByPubkeys[n.pubkey],bma:{useWs2p:!0,private:!0,ws2pid:n.ws2pid},endpoints:["WS2P "+n.ws2pid]});a.id=a.keyID(),a.uid&&E.expertMode&&E.difficulties&&(a.difficulty=E.difficulties[a.uid]),h(a)&&(t.push(a),r++)}})),r&&console.debug("[http] Found {0} WS2P endpoints without endpoint (private ?)".format(r))}return a.length?i.all(a):void 0}})).then((function(){E.searchingPeersOnNetwork=!1})).catch((function(e){console.error(e),E.searchingPeersOnNetwork=!1}))},h=function(e){return!(E.filter&&(E.filter.member&&!E.filter.mirror&&!e.uid||E.filter.mirror&&!E.filter.member&&e.uid||E.filter.endpoint&&!e.hasEndpoint(E.filter.endpoint)||E.filter.online&&"UP"!==e.status&&e.oldBlock||!E.filter.online&&"UP"===e.status&&!e.oldBlock||angular.isDefined(E.filter.bma)&&e.isBma()!=E.filter.bma||angular.isDefined(E.filter.ws2p)&&e.isWs2p()!=E.filter.ws2p||angular.isDefined(E.filter.ssl)&&e.isSsl()!=E.filter.ssl||angular.isDefined(E.filter.tor)&&e.isTor()!=E.filter.tor))},v=function(e,t){t=t||E.newPeers,e.blockNumber=e.block&&parseInt(e.block.split("-")[0]),e.oldBlock="UP"===e.status&&e.blockNumber&&e.blockNumber<E.minOnlineBlockNumber;var n=I(e),a=!1,o=n.reduce((function(e,n){var i=_.findWhere(E.peers,{id:n.id}),o=i?i.buid:null,r=!!i&&i.online;return e.concat(N(n).then((function(e){i?!e||e.online!==E.filter.online&&"all"!==E.filter.online?(console.debug("[network] Peer [{0}] removed (cause: {1})".format(n.server,e?e.online?"UP":"DOWN":"filtered")),E.peers.splice(E.peers.indexOf(i),1),a=!0):e.buid!==o?(console.debug("[network] {0} endpoint [{1}] new current block".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server)),a=!0):r!==e.online?(console.debug("[network] {0} endpoint [{1}] is now {2}".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server,e.online?"UP":"DOWN")),a=!0):console.debug("[network] {0} endpoint [{1}] unchanged".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server)):!e||e.online!==E.filter.online&&"all"!==E.filter.online||(console.debug("[network] {0} endpoint [{1}] is {2}".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server,e.online?"UP":"DOWN")),t.push(e),a=!0)})))}),[]);return(1===o.length?o[0]:i.all(o)).then((function(){return a}))},I=function(t,n){if(!t)return[];var i=new e(t);if(!n){var a=i.getEndpoints();if(!a)return[];var o=a.reduce((function(e,t){var n=l.node.parseEndPoint(t);return n?e.concat(n):e}),[]);if(o.length>1)return o.reduce((function(e,n){return e.concat(I(t,n))}),[]);n=o[0]}return i.bma=n,i.server=i.getServer(),i.dns=i.getDns(),i.buid=i.buid||i.block,i.blockNumber=i.buid&&parseInt(i.buid.split("-")[0]),i.uid=i.pubkey&&E.uidsByPubkeys[i.pubkey],i.id=i.keyID(),[i]},N=function(e){if(!h(e))return i.when();if(!E.filter.online||!E.filter.online&&"DOWN"===e.status||!e.getHost())return e.online=!1,i.when(e);if(e.bma.useWs2p&&E.ws2pHeads){var t=[e.pubkey,e.bma.ws2pid].join("-"),n=E.ws2pHeads[t];return delete E.ws2pHeads[t],n&&(e.buid=n.buid,e.currentNumber=n.buid&&parseInt(n.buid.split("-")[0]),e.version=n.version,e.powPrefix=n.powPrefix),e.online=!!e.buid,e.uid&&E.expertMode&&E.difficulties&&(e.difficulty=E.difficulties[e.uid]),i.when(e)}return e.bma.useWs2p||!p||e.bma.useSsl?e.bma.useTor||e.bma.useWs2p?(e.online="UP"===e.status,e.buid=-1,delete e.version,e.uid&&E.expertMode&&E.difficulties&&(e.difficulty=E.difficulties[e.uid]),i.when(e)):(e.api=e.api||l.lightInstance(e.getHost(),e.getPort(),e.isSsl(),E.timeout),e.api.blockchain.current().then((function(t){return e.currentNumber=t.number,e.online=!0,e.buid=b(t),e.medianTime=t.medianTime,-1===E.knownBlocks.indexOf(e.buid)&&E.knownBlocks.push(e.buid),e})).catch((function(t){if(t&&t.ucode==l.errorCodes.NO_CURRENT_BLOCK)return e.online=!0,e.buid=b({number:0,hash:l.constants.ROOT_BLOCK_HASH}),e.difficulty=0,e;if(!e.secondTry){var n=e.bma||e.getBMA();if(n.dns&&-1===e.server.indexOf(n.dns))return e.secondTry=!0,e.api=l.lightInstance(n.dns,n.port,n.useSsl),N(e)}return e.buid=null,e.blockNumber=null,e.currentNumber=null,e.online=!1,e.uid=E.uidsByPubkeys[e.pubkey],e})).then((function(e){if(!(E.filter.online&&e&&e.online&&E.expertMode))return e;var t=[];return e.uid&&t.push(e.api.blockchain.stats.hardship({pubkey:e.pubkey}).then((function(t){e.difficulty=t?t.level:null})).catch((function(){e.difficulty=null}))),t.push(e.api.node.summary().then((function(t){e.software=t&&t.duniter&&t.duniter.software||void 0,e.version=t&&t.duniter&&t.duniter.version||"?"})).catch((function(){e.software=void 0,e.version="?"}))),i.all(t).then((function(){return e}))}))):(e.online="UP"===e.status,e.buid=-1,delete e.version,e.uid&&E.expertMode&&E.difficulties&&(e.difficulty=E.difficulties[e.uid]),i.when(e))},O=function(e,t){if((e=e||E.newPeers).length){var n=_.map(E.peers,(function(e){return e.id})),i=!1,a=0;_.forEach(e.splice(0),(function(e){n[e.id]||(E.peers.push(e),n[e.id]=e,i=!0,a++)})),i&&(console.debug("[network] Flushing {0} new peers...".format(a)),A(t))}},R=function(e,t,n){if(!e)return 0;var i=0;t>(e=e.toLowerCase()).length&&(t=e.length),i+=e.charCodeAt(0);for(var a=1;a<t;a++)i+=Math.pow(.001,a)*e.charCodeAt(a);return n?1e3-i:i},A=function(e){var t={};E.memberPeersCount=0,_.forEach(E.peers,(function(e){if(e.buid){var n=t[e.buid];n&&n.medianTime?!n.medianTime&&e.medianTime&&(n.medianTime=e.medianTime):(n={buid:e.buid,medianTime:e.medianTime,count:0},t[e.buid]=n),-1!==n.buid&&n.count++}E.memberPeersCount+=e.uid?1:0}));var n,i=E.mainBlock;E.filter.online&&(_.forEach(_.values(t),(function(e){e.pct=100*e.count/E.peers.length})),i=_.max(t,(function(e){return e.count})),_.forEach(E.peers,(function(e){e.hasMainConsensusBlock=e.buid===i.buid,e.hasConsensusBlock=e.buid&&!e.hasMainConsensusBlock&&t[e.buid].count>1,e.hasConsensusBlock&&(e.consensusBlockDelta=t[e.buid].medianTime-i.medianTime)}))),E.peers=_.uniq(E.peers,!1,(function(e){return e.id})),E.peers=_.sortBy(E.peers,(function(e){var n=0;return E.sort.type&&(n+="uid"===E.sort.type?R(e.uid||e.pubkey,3,E.sort.asc):0,n+="api"===E.sort.type&&(e.isWs2p()&&(E.sort.asc?1:-1)||0)+(e.hasEndpoint("ES_USER_API")&&(E.sort.asc?.01:-.01)||0)+(e.isSsl()&&(E.sort.asc?.75:-.75)||0)||0,n+="difficulty"===E.sort.type&&e.difficulty?E.sort.asc?1e4-e.difficulty:e.difficulty:0,n+="current_block"===E.sort.type&&e.currentNumber?E.sort.asc?1e9-e.currentNumber:e.currentNumber:0),n*=1e10,n+=1e9*(e.online?1:0),n+=1e8*(e.hasMainConsensusBlock?1:0),n+=1e6*(e.hasConsensusBlock?t[e.buid].pct:0),E.expertMode?(n+=100*(e.difficulty?1e4-e.difficulty:0),n+=1*(e.uid?R(e.uid,2,!0):0)):(n+=100*(e.uid?R(e.uid,2,!0):0),n+=1*(e.uid?0:R(e.pubkey,2,!0))),-(n+=e.isBma()?e.isSsl()?.01:.001:0)})),E.groupBy&&E.peers.forEach((function(e){e.compacted=n&&e[E.groupBy]&&e[E.groupBy]===n[E.groupBy],n=e})),e&&i&&i.buid&&(!E.mainBlock||E.mainBlock.buid!==i.buid)&&(E.mainBlock=i,m.data.raise.mainBlockChanged(i)),m.data.raise.changed(E)},S=function(e,t){return t=t||{},l.ready().then((function(){if(C(),E.bma=e||l,E.filter=t.filter?angular.merge(E.filter,t.filter):E.filter,E.sort=t.sort?angular.merge(E.sort,t.sort):E.sort,E.expertMode=angular.isDefined(t.expertMode)?t.expertMode:E.expertMode,E.timeout=angular.isDefined(t.timeout)?t.timeout:s.timeout,E.minOnlineBlockNumber=E.mainBlock&&E.mainBlock.buid&&parseInt(E.mainBlock.buid.split("-")[0])-1e3||void 0,void 0===E.minOnlineBlockNumber)return u.blockchain.current(!0).then((function(e){E.minOnlineBlockNumber=e.number-1e3}))})).then((function(){console.info("[network] Starting network from [{0}]".format(e.server));var t=Date.now();return E.listeners=[E.bma.websocket.block().onListener((function(e){if(e&&!E.loading){var t=[e.number,e.hash].join("-");-1===E.knownBlocks.indexOf(t)&&(console.debug("[network] Receiving block: "+t.substring(0,20)),E.knownBlocks.push(t),1===E.knownBlocks.length||(E.loading=!0,o((function(){console.debug("[network] new block received by WS: will refresh peers"),T()}),2e3,!1)))}})),E.bma.websocket.peer().onListener((function(e){if(e&&!E.loading){var t=[];v(e,t).then((function(e){e&&(t.length>0?O(t,!0):(console.debug("[network] [ws] Peers updated received"),A(!0)))}))}}))],T().then((function(e){return console.debug("[network] Started in "+(Date.now()-t)+"ms"),e}))}))},C=function(){E.bma&&(console.info("[network-service] Stopping..."),_.forEach(E.listeners,(function(e){e()})),E.listeners=[],E.bma=null,E.listeners=[],E.peers.splice(0),E.filter={member:!0,mirror:!0,endpoint:null,online:!0,bma:!1,ssl:void 0,tor:void 0},E.sort={type:null,asc:!0},E.groupBy="pubkey",E.expertMode=!1,E.memberPeersCount=0,E.knownBlocks=[],E.mainBlock=null,E.minOnlineBlockNumber=0,E.uidsByPubkeys={},E.loading=!0,E.searchingPeersOnNetwork=!1,E.difficulties=null,E.ws2pHeads=null,E.timeout=s.timeout)},L=function(e){return E.bma?S().then((function(){return i(e)})):i(e)};return m.registerEvent("data","changed"),m.registerEvent("data","mainBlockChanged"),m.registerEvent("data","rollback"),{id:t,data:E,start:S,close:C,hasPeers:function(){return E.peers&&E.peers.length>0},getPeers:function(){return E.peers},sort:function(e){e=e||{},E.filter=e.filter?angular.merge(E.filter,e.filter):E.filter,E.sort=e.sort?angular.merge(E.sort,e.sort):E.sort,A(!1)},getTrustedPeers:function(){return L((function(e,t){e(E.peers.reduce((function(e,t){return t.hasMainConsensusBlock&&t.uid?e.concat(t):e}),[]))}))},getKnownBlocks:function(){return E.knownBlocks},getMainBlockUid:function(){return L((function(e,t){e(E.mainBuid)}))},loadPeers:T,isBusy:function(){return E.loading},api:m}}var m=new p("default");return m.instance=function(e){return new p(e)},m}]),angular.module("cesium.crypto.services",["cesium.utils.services"]).factory("CryptoUtils",["$q","$timeout","ionicReady",function(e,t,n){function i(){this.loaded=!1;var e=this;this.copy=function(t){_.forEach(_.keys(t),(function(n){e[n]=t[n]}))},this.isLoaded=function(){return this.loaded},this.util=this.util||{},this.util.array_to_string=function(e,t){var n=new Blob([new Uint8Array(e)]),i=new FileReader;i.onload=function(e){t(e.target.result)},i.readAsText(n)}}i.prototype.constants={crypto_sign_BYTES:64,crypto_secretbox_NONCEBYTES:24,crypto_box_MACBYTES:16,SEED_LENGTH:32,SCRYPT_PARAMS:{SIMPLE:{N:2048,r:8,p:1,memory:-1},DEFAULT:{N:4096,r:16,p:1,memory:-1},SECURE:{N:16384,r:32,p:2,memory:33554432},HARDEST:{N:65536,r:32,p:4,memory:134217728},EXTREME:{N:262144,r:64,p:8,memory:536870912}}},i.prototype.async_load_base58=function(e){var n=this;if(null!==Base58)return e(Base58);t((function(){n.async_load_base58(e)}),100)},i.prototype.async_load_scrypt=function(e,n){var i=this;null!==scrypt_module_factory?scrypt_module_factory(e,n):t((function(){i.async_load_scrypt(e,n)}),100)},i.prototype.async_load_nacl_js=function(e,n){var i=this;null!==nacl_factory?nacl_factory.instantiate(e,n):t((function(){i.async_load_nacl_js(e,n)}),100)},i.prototype.async_load_base64=function(e){var n=this;null!==Base64?e(Base64):t((function(){n.async_load_base64(e)}),100)},i.prototype.async_load_sha256=function(e){var n=this;if(null!==sha256)return e(sha256);t((function(){n.async_load_sha256(e)}),100)},i.prototype.seed_from_signSk=function(e){for(var t=new Uint8Array(that.constants.SEED_LENGTH),n=0;n<t.length;n++)t[n]=e[n];return t},i.prototype.seed_from_signSk=function(e){for(var t=new Uint8Array(that.constants.SEED_LENGTH),n=0;n<t.length;n++)t[n]=e[n];return t};var a=window.crypto||window.msCrypto||window.Crypto;function o(){this.id="FullJS",this.scrypt=null,this.nacl=null,this.base58=null,this.base64=null;var t=this;function n(e,t){if(0!==t)throw{message:"nacl_raw."+e+" signalled an error"}}function i(e,n,i,o,r){return function(e,t,n,i){if(n.length!==i)throw{message:"nacl."+e+" expected "+i+"-byte "+t+" but got length "+n.length}}(e,n,i,o),function(e,n){var i=n||0,o=a(e.length+i);t.nacl.nacl_raw.HEAPU8.set(e,o+i);for(var r=o;r<o+i;r++)t.nacl.nacl_raw.HEAPU8[r]=0;return o}(i,r)}function a(e){var n=t.nacl.nacl_raw._malloc(e);if(0===n)throw{message:"malloc() failed",nbytes:e};return n}function o(e){t.nacl.nacl_raw._free(e)}function r(e){this.length=e,this.address=a(e)}this.util=this.util||{},this.util.decode_utf8=function(e){var t,n=unescape(encodeURIComponent(e)),i=new Uint8Array(n.length);for(t=0;t<n.length;t++)i[t]=n.charCodeAt(t);return i},this.util.encode_utf8=function(e){return t.nacl.encode_utf8(e)},this.util.encode_base58=function(e){return t.base58.encode(e)},this.util.decode_base58=function(e){var n,i=t.base58.decode(e),a=new Uint8Array(i.length);for(n=0;n<i.length;n++)a[n]=i[n];return a},this.util.decode_base64=function(e){return t.base64.decode(e)},this.util.encode_base64=function(e){return t.base64.encode(e)},this.util.hash_sha256=function(n){return e((function(e){var i=t.util.decode_utf8(n);e(t.nacl.to_hex(t.nacl.crypto_hash_sha256(i)).toUpperCase())}))},this.util.random_nonce=function(){if(t.crypto&&t.crypto.getRandomValues){var n=new Uint8Array(t.constants.crypto_secretbox_NONCEBYTES);return t.crypto.getRandomValues(n),e.when(n)}return e.when(t.nacl.crypto_box_random_nonce())},this.util.crypto_hash_sha256=function(e){return t.nacl.crypto_hash_sha256(e)},this.util.crypto_scrypt=function(n,i,a,o,r,s){return e((function(e,l){try{e(t.scrypt.crypto_scrypt(n,i,a,o,r,s))}catch(e){l(e)}}))},this.box_keypair_from_sign=function(a){return a.boxSk&&a.boxPk?e.when(a):e((function(e,s){try{e((l=i("crypto_box_keypair_from_sign_sk","sk",a.signSk,t.nacl.nacl_raw._crypto_sign_secretkeybytes()),c=new r(t.nacl.nacl_raw._crypto_box_secretkeybytes()),n("_crypto_sign_ed25519_sk_to_curve25519",t.nacl.nacl_raw._crypto_sign_ed25519_sk_to_curve25519(c.address,l)),o(l),t.nacl.crypto_box_keypair_from_raw_sk(c.extractBytes())))}catch(e){s(e)}var l,c}))},this.box_pk_from_sign=function(a){return e((function(e,s){try{e((l=i("crypto_box_pk_from_sign_pk","pk",a,t.nacl.nacl_raw._crypto_sign_publickeybytes()),c=new r(t.nacl.nacl_raw._crypto_box_publickeybytes()),n("_crypto_sign_ed25519_pk_to_curve25519",t.nacl.nacl_raw._crypto_sign_ed25519_pk_to_curve25519(c.address,l)),o(l),c.extractBytes()))}catch(e){s(e)}var l,c}))},this.box_sk_from_sign=function(a){return e((function(e,s){try{e((l=i("crypto_box_sk_from_sign_sk","sk",a,t.nacl.nacl_raw._crypto_sign_secretkeybytes()),c=new r(t.nacl.nacl_raw._crypto_box_secretkeybytes()),n("_crypto_sign_ed25519_sk_to_curve25519",t.nacl.nacl_raw._crypto_sign_ed25519_sk_to_curve25519(c.address,l)),o(l),c.extractBytes()))}catch(e){s(e)}var l,c}))},this.box=function(n,i,a,o){return e((function(e,r){if(n){var s=t.nacl.encode_utf8(n);"string"==typeof a&&(a=t.util.decode_base58(a));try{var l=t.nacl.crypto_box(s,i,a,o);e(t.util.encode_base64(l))}catch(e){r(e)}}else e(n)}))},this.box_open=function(n,i,a,o){return e((function(e,r){if(n){var s=t.util.decode_base64(n);"string"==typeof a&&(a=t.util.decode_base58(a));try{var l=t.nacl.crypto_box_open(s,i,a,o);e(t.nacl.decode_utf8(l))}catch(e){r(e)}}else e(n)}))},this.scryptKeypair=function(e,n,i){return t.util.crypto_scrypt(t.util.encode_utf8(n),t.util.encode_utf8(e),i&&i.N||t.constants.SCRYPT_PARAMS.DEFAULT.N,i&&i.r||t.constants.SCRYPT_PARAMS.DEFAULT.r,i&&i.p||t.constants.SCRYPT_PARAMS.DEFAULT.p,t.constants.SEED_LENGTH).then((function(e){var n=t.nacl.crypto_sign_seed_keypair(e),i=t.nacl.crypto_box_seed_keypair(e);return{signPk:n.signPk,signSk:n.signSk,boxPk:i.boxPk,boxSk:i.boxSk}}))},this.seedKeypair=function(n){return e((function(e,i){var a=t.nacl.crypto_sign_seed_keypair(n),o=t.nacl.crypto_box_seed_keypair(n);e({signPk:a.signPk,signSk:a.signSk,boxPk:o.boxPk,boxSk:o.boxSk})}))},this.scryptSignPk=function(n,i,a){return e((function(e,o){try{var r=t.scrypt.crypto_scrypt(t.util.encode_utf8(i),t.util.encode_utf8(n),a&&a.N||t.constants.SCRYPT_PARAMS.DEFAULT.N,a&&a.r||t.constants.SCRYPT_PARAMS.DEFAULT.r,a&&a.p||t.constants.SCRYPT_PARAMS.DEFAULT.p,t.constants.SEED_LENGTH);e(t.nacl.crypto_sign_seed_keypair(r).signPk)}catch(e){o(e)}}))},this.verify=function(n,i,a){return e((function(e,o){var r,s=t.util.decode_utf8(n),l=t.util.decode_base64(i),c=t.util.decode_base58(a),u=new Uint8Array(t.constants.crypto_sign_BYTES+s.length);for(r=0;r<t.constants.crypto_sign_BYTES;r++)u[r]=l[r];for(r=0;r<s.length;r++)u[r+t.constants.crypto_sign_BYTES]=s[r];e(null!==t.nacl.crypto_sign_open(u,c))}))},this.sign=function(n,i){return e((function(e,a){for(var o=t.util.decode_utf8(n),r=i.signSk,s=t.nacl.crypto_sign(o,r),l=new Uint8Array(t.constants.crypto_sign_BYTES),c=0;c<l.length;c++)l[c]=s[c];e(t.base64.encode(l))}))},this.load=function(){var n=e.defer(),i={},a={};"a"!=ionic.Platform.grade.toLowerCase()&&(console.info("Reduce NaCl memory to 16mb,  because plateform grade is not [a] but [{0}]".format(ionic.Platform.grade)),i.requested_total_memory=16777216);var o=0,r=function(){4==++o&&(t.loaded=!0,n.resolve())};return this.async_load_nacl_js((function(e){t.nacl=e,r()}),i),this.async_load_scrypt((function(e){t.scrypt=e,t.scrypt.requested_total_memory=a.requested_total_memory,r()}),a),this.async_load_base58((function(e){t.base58=e,r()})),t.async_load_base64((function(e){t.base64=e,r()})),n.promise},this.util.hash=t.util.hash_sha256,this.box={keypair:{fromSignKeypair:t.box_keypair_from_sign,skFromSignSk:t.box_sk_from_sign,pkFromSignPk:t.box_pk_from_sign},pack:t.box,open:t.box_open},r.prototype.extractBytes=function(e){var n=function(e,n){var i=new Uint8Array(n);return i.set(t.nacl.nacl_raw.HEAPU8.subarray(e,e+n)),i}(this.address+(e||0),this.length-(e||0));return o(this.address),this.address=null,n}}function r(){this.id="MiniSodium",this.nacl=null,this.base58=null,this.sha256=null;var t=this;this.util=this.util||{},this.util.decode_utf8=function(e){return t.nacl.to_string(e)},this.util.encode_utf8=function(e){return t.nacl.from_string(e)},this.util.encode_base58=function(e){return t.base58.encode(e)},this.util.decode_base58=function(e){var n,i=t.base58.decode(e),a=new Uint8Array(i.length);for(n=0;n<i.length;n++)a[n]=i[n];return a},this.util.decode_base64=function(e){return t.nacl.from_base64(e)},this.util.encode_base64=function(e){return t.nacl.to_base64(e)},this.util.hash_sha256=function(n){return e.when(t.sha256(n).toUpperCase())},this.util.random_nonce=function(){var n=new Uint8Array(t.constants.crypto_secretbox_NONCEBYTES);return t.crypto.getRandomValues(n),e.when(n)},this.util.crypto_hash_sha256=function(e){return t.nacl.from_hex(t.sha256(e))},this.util.crypto_scrypt=function(n,i,a,o,r,s){var l=e.defer();return t.nacl.crypto_pwhash_scryptsalsa208sha256_ll(n,i,a,o,r,s,(function(e,t){e?l.reject(e):l.resolve(t)})),l.promise},this.scryptKeypair=function(n,i,a){var o=e.defer();return t.nacl.crypto_pwhash_scryptsalsa208sha256_ll(t.nacl.from_string(i),t.nacl.from_string(n),a&&a.N||t.constants.SCRYPT_PARAMS.DEFAULT.N,a&&a.r||t.constants.SCRYPT_PARAMS.DEFAULT.r,a&&a.p||t.constants.SCRYPT_PARAMS.DEFAULT.p,t.constants.SEED_LENGTH,(function(e,n){e?o.reject(e):t.nacl.crypto_sign_seed_keypair(n,(function(e,n){if(e)o.reject(e);else{var i={signPk:n.pk,signSk:n.sk};t.box_keypair_from_sign(i).then((function(e){i.boxPk=e.pk,i.boxSk=e.sk,o.resolve(i)})).catch((function(e){o.reject(e)}))}}))})),o.promise},this.seedKeypair=function(n){var i=e.defer();return t.nacl.crypto_sign_seed_keypair(n,(function(e,t){e?i.reject(e):i.resolve({signPk:t.pk,signSk:t.sk})})),i.promise},this.scryptSignPk=function(n,i,a){var o=e.defer();return t.nacl.crypto_pwhash_scryptsalsa208sha256_ll(t.nacl.from_string(i),t.nacl.from_string(n),a&&a.N||t.constants.SCRYPT_PARAMS.DEFAULT.N,a&&a.r||t.constants.SCRYPT_PARAMS.DEFAULT.r,a&&a.p||t.constants.SCRYPT_PARAMS.DEFAULT.p,t.constants.SEED_LENGTH,(function(e,n){e?o.reject(e):t.nacl.crypto_sign_seed_keypair(n,(function(e,t){e?o.reject(e):o.resolve(t.pk)}))})),o.promise},this.verify=function(n,i,a){var o=e.defer();return t.nacl.crypto_sign_verify_detached(t.nacl.from_base64(i),t.nacl.from_string(n),t.nacl.from_base64(a),(function(e,t){e?o.reject(e):o.resolve(t)})),o.promise},this.sign=function(n,i){var a=e.defer();return t.nacl.crypto_sign(t.nacl.from_string(n),i.signSk,(function(e,n){if(e)a.reject(e);else{var i;if(n.length>t.constants.crypto_sign_BYTES){i=new Uint8Array(t.constants.crypto_sign_BYTES);for(var o=0;o<i.length;o++)i[o]=n[o]}else i=n;var r=t.nacl.to_base64(i);a.resolve(r)}})),a.promise},this.box_keypair_from_sign=function(n){if(n.boxSk&&n.boxPk)return e.when(n);var i=e.defer(),a={};return t.nacl.crypto_sign_ed25519_pk_to_curve25519(n.signPk,(function(e,t){e?i.reject(e):(a.boxPk=t,a.boxSk&&i.resolve(a))})),t.nacl.crypto_sign_ed25519_sk_to_curve25519(n.signSk,(function(e,t){e?i.reject(e):(a.boxSk=t,a.boxPk&&i.resolve(a))})),i.promise},this.box_pk_from_sign=function(n){var i=e.defer();return t.nacl.crypto_sign_ed25519_pk_to_curve25519(n,(function(e,t){e?i.reject(e):i.resolve(t)})),i.promise},this.box_sk_from_sign=function(n){var i=e.defer();return t.nacl.crypto_sign_ed25519_sk_to_curve25519(n,(function(e,t){e?i.reject(e):i.resolve(t)})),i.promise},this.box=function(n,i,a,o){if(!n)return e.reject("No message");var r=e.defer(),s=t.nacl.from_string(n);return"string"==typeof a&&(a=t.util.decode_base58(a)),t.nacl.crypto_box_easy(s,i,a,o,(function(e,n){if(e)r.reject(e);else{var i=t.util.encode_base64(n);r.resolve(i)}})),r.promise},this.box_open=function(n,i,a,o){if(!n)return e.reject("No cypherText");var r=e.defer(),s=t.nacl.from_base64(n);if("string"==typeof a&&(a=t.util.decode_base58(a)),!(s.length<t.constants.crypto_box_MACBYTES))return t.nacl.crypto_box_open_easy(s,i,a,o,(function(e,n){e?r.reject(e):t.util.array_to_string(n,(function(e){r.resolve(e)}))})),r.promise;r.reject("Invalid cypher content length")},this.load=function(){var n=e.defer();if(window.plugins&&window.plugins.MiniSodium){t.nacl=window.plugins.MiniSodium;var i=0,a=function(){2==++i&&(t.loaded=!0,n.resolve())};t.async_load_base58((function(e){t.base58=e,a()})),t.async_load_sha256((function(e){t.sha256=e,a()}))}else n.reject("Cordova plugin 'MiniSodium' not found. Please load Full JS implementation instead.");return n.promise},this.util.hash=t.util.hash_sha256,this.box={keypair:{fromSignKeypair:t.box_keypair_from_sign,skFromSignSk:t.box_sk_from_sign,pkFromSignPk:t.box_pk_from_sign},pack:t.box,open:t.box_open}}a&&a.getRandomValues&&(i.prototype.crypto=a,i.prototype.util={},i.prototype.util.random_nonce=function(){var t=new Uint8Array(crypto_secretbox_NONCEBYTES);return this.crypto.getRandomValues(t),e.when(t)}),o.prototype=new i,r.prototype=new i;var s=new i;return n().then((function(){console.debug("[crypto] Starting...");var e,t=Date.now();window.plugins&&window.plugins.MiniSodium&&a&&a.getRandomValues?(console.debug("[crypto] Loading 'MiniSodium' implementation..."),e=new r):(console.debug("[crypto] Loading 'FullJS' implementation..."),e=new o),e.load().catch((function(e){throw console.error(e),e})).then((function(){s.copy(e),console.debug("[crypto] Loaded '{0}' implementation in {1}ms".format(s.id,Date.now()-t))}))})),s}]).factory("csCrypto",["$q","$rootScope","$timeout","CryptoUtils","UIUtils","Modals",function(e,t,n,i,a,o){function r(e){return new RegExp(e)}function s(e,t){for(var n=Math.max(e.length,t.length),i=new Uint8Array(n),a=0;a<n;++a)i[a]=e[a]^t[a];return i}function l(e,t){var n=new Uint8Array(e.byteLength+t.byteLength);return n.set(new Uint8Array(e),0),n.set(new Uint8Array(t),e.byteLength),n}var c={WIF:{DATA_LENGTH:35},EWIF:{SALT_LENGTH:4,DERIVED_HALF_LENGTH:16,DATA_LENGTH:39,SCRYPT_PARAMS:{N:16384,r:8,p:8}},REGEXP:{PUBKEY:"[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}",SECKEY:"[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{86,88}",FILE:{TYPE_LINE:"^Type: ([a-zA-Z0-9]+)\n",VERSION:"Version: ([0-9]+)\n",PUB:"[Pp]ub: ([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44})\n",SEC:"[Ss]ec: ([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{86,88})(\n|$)",DATA:"[Dd]ata: ([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)(\n|$)"}}},u={FILE:{TYPE_LINE:r(c.REGEXP.FILE.TYPE_LINE),VERSION:r(c.REGEXP.FILE.VERSION),PUB:r(c.REGEXP.FILE.PUB),SEC:r(c.REGEXP.FILE.SEC),DATA:r(c.REGEXP.FILE.DATA)}},d={BAD_PASSWORD:3001,BAD_CHECKSUM:3002};function p(t,n){if(!t)return e.reject("Argument [content] is missing");var a;(n=n||{}).withSecret=!!angular.isDefined(n.withSecret)&&n.withSecret,n.defaultType=n.defaultType||"PubSec";var o=u.FILE.TYPE_LINE.exec(t),r=o&&o[1];if(!r&&n.defaultType)return p("Type: {0}\n{1}".format(n.defaultType,t),n);if("PubSec"==r){if(!(a=u.FILE.PUB.exec(t)))return e.reject("Missing [pub] field in file, or invalid public key value");var s={signPk:i.base58.decode(a[1])};return n.withSecret?(a=u.FILE.SEC.exec(t))?(s.signSk=i.base58.decode(a[1]),e.resolve(s)):e.reject("Missing [sec] field in file, or invalid secret key value"):e.resolve(s)}return"WIF"==r||"EWIF"==r?(a=u.FILE.DATA.exec(t))?m(a[1],{type:r,password:n.password}).then((function(e){return e&&!n.withSecret?{signPk:e.signPk}:e})):e.reject("Missing [Data] field in file. This is required for WIF or EWIF format"):n.defaultType?e.reject("Bad file format: missing Type field"):e.reject("Bad file format, unknown type ["+r+"]")}function m(t,n){n=n||{};var a=t&&i.base58.decode(t);return!a||a.length!=c.EWIF.DATA_LENGTH&&a.length!=c.WIF.DATA_LENGTH?e.reject("Invalid WIF or EWIF format (invalid bytes count)."):(n.type=n.type||1==a[0]&&"WIF"||2==a[0]&&"EWIF","WIF"==n.type?function(t){var n=i.util.decode_base58(t);if(1!=n[0])return e.reject({message:"Invalid WIF v1 format: expected [0x01] as first byte"});if(n.length!=c.WIF.DATA_LENGTH)return e.reject({message:"Invalid WIF v1 format: Data must be a "+c.WIF.DATA_LENGTH+" bytes array, encoded in base 58."});var a=n.slice(0,-2),o=n.slice(1,-2),r=n.slice(-2),s=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(a)).slice(0,2);return i.util.encode_base58(r)!=i.util.encode_base58(s)&&e.reject({message:"Invalid WIF format: bad checksum"}),i.seedKeypair(o)}(t):"EWIF"==n.type?"function"!=typeof n.password||(n.password=n.password(),n.password)?"object"==typeof n.password&&n.password.then?n.password.then((function(e){if(!e)throw"CANCELLED";return E(t,e)})):"string"==typeof n.password?E(t,n.password):e.reject({message:"Invalid EWIF options.password. Waiting a callback function, a promise or a string."}):e.reject({message:"Invalid callback result for 'options.password()': must return a promise or a string."}):e.reject({message:"Invalid WIF or EWIF format: unknown first byte identifier."}))}function E(t,n){var a=i.util.decode_base58(t);if(2!=a[0])return e.reject({message:"Invalid EWIF v1 format: Expected [0x02] as first byte"});if(a.length!=c.EWIF.DATA_LENGTH)return e.reject({message:"Invalid EWIF v1 format: Expected {0} bytes, encoded in base 58.".format(c.EWIF.DATA_LENGTH)});var o=a.slice(0,-2),r=a.slice(-2),u=a.slice(1,5),p=a.slice(5,21),m=a.slice(21,37);return i.util.crypto_scrypt(i.util.encode_utf8(n),u,c.EWIF.SCRYPT_PARAMS.N,c.EWIF.SCRYPT_PARAMS.r,c.EWIF.SCRYPT_PARAMS.p,64).then((function(e){var t=e.slice(0,32),n=e.slice(32,64),i=new aesjs.ModeOfOperation.ecb(n),a=i.decrypt(p),o=i.decrypt(m);return a=new Uint8Array(a),o=new Uint8Array(o),l(s(a,t.slice(0,16)),s(o,t.slice(16,32)))})).then(i.seedKeypair).then((function(e){var t=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(e.signPk)).slice(0,4);if(i.util.encode_base58(u)!==i.util.encode_base58(t))throw{ucode:d.BAD_PASSWORD,message:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_PASSWORD"};var n=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(o)).slice(0,2);if(i.util.encode_base58(r)!=i.util.encode_base58(n))throw{ucode:d.BAD_CHECKSUM,message:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_CHECKSUM"};return e}))}function b(t){if(!t)throw new Error("Missing keypair");return t.boxPk&&t.boxSk?e.when(t):e.all([i.box.keypair.skFromSignSk(t.signSk),i.box.keypair.pkFromSignPk(t.signPk)]).then((function(e){return{boxSk:e[0],boxPk:e[1]}}))}return{errorCodes:d,constants:c,util:angular.extend({pkChecksum:function(e){var t=i.util.decode_base58(e);return i.util.encode_base58(i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(t))).substring(0,3)}},i.util),keyfile:{read:function(t,n){return t&&t.content?p(t.content,n):e((function(e,i){if(!t)return i("Argument [file] is missing");var a=new FileReader;a.onload=function(t){p(t.target.result,n).then(e).catch(i)},a.readAsText(t,"utf8")}))},parseData:function e(t,i){return(i=i||{}).withSecret=!angular.isDefined(i.withSecret)||i.withSecret,i.silent=!!angular.isDefined(i.withSecret)&&i.silent,i.password=function(){return a.loading.hide(100).then((function(){return o.showPassword({title:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.TITLE",subTitle:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.HELP",error:i.error,scope:i.scope})})).then((function(e){return n((function(){return e&&a.loading.show(),e}),150)}))},i.silent||a.loading.show(),m(t,i).then((function(e){return e})).catch((function(n){if(!n||"CANCELLED"!==n){if(n&&n.ucode==d.BAD_PASSWORD)return e(t,{withSecret:i.withSecret,error:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_PASSWORD"});throw console.error("[crypto] Unable to parse as WIF or EWIF format: "+(n&&n.message||n)),n}}))},generateContent:function t(n,a){switch((a=a||{}).type=a.type||"PubSec",a.type){case"PubSec":return e.resolve("Type: PubSec\nVersion: 1\npub: "+i.base58.encode(n.signPk)+"\nsec: "+i.base58.encode(n.signSk)+"\n");case"WIF":return function(t){var n=i.seed_from_signSk(t.signSk);if(!n||n.byteLength!==i.constants.SEED_LENGTH)throw"Bad see format. Expected {0} bytes".format(i.constants.SEED_LENGTH);var a=new Uint8Array(1);a[0]=1;var o=l(a,n),r=l(o,i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(o)).slice(0,2));return e.when(i.util.encode_base58(r))}(n).then((function(e){return"Type: WIF\nVersion: 1\nData: "+e+"\n"}));case"EWIF":return a.password?a.password&&"function"==typeof a.password&&(console.debug("[crypto] [EWIF] Executing 'options.password()' to resolve the password..."),a.password=a.password(),!a.password)?e.reject({message:"Invalid callback result for 'options.password()': must return a promise or a string."}):a.password&&"object"==typeof a.password&&a.password.then?a.password.then((function(e){if(!e)throw"CANCELLED";return t(n,angular.merge({},a,{password:e}))})):a.password&&"string"==typeof a.password?function(t,n){var a=i.seed_from_signSk(t.signSk);if(!a||a.byteLength!==i.constants.SEED_LENGTH)return e.reject({message:"Bad see format. Expected {0} bytes".format(i.constants.SEED_LENGTH)});var o=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(t.signPk)).slice(0,4);return i.util.crypto_scrypt(i.util.encode_utf8(n),o,c.EWIF.SCRYPT_PARAMS.N,c.EWIF.SCRYPT_PARAMS.r,c.EWIF.SCRYPT_PARAMS.p,64).then((function(e){var t=e.slice(0,32),n=e.slice(32,64),r=s(a.slice(0,16),t.slice(0,16)),c=s(a.slice(16,32),t.slice(16,32)),u=new aesjs.ModeOfOperation.ecb(n),d=u.encrypt(r),p=u.encrypt(c);d=new Uint8Array(d),p=new Uint8Array(p);var m=new Uint8Array(1);return m[0]=2,m=l(m,o),m=l(m,d),m=l(m,p),m=l(m,i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(m)).slice(0,2)),i.util.encode_base58(m)}))}(n,a.password).then((function(e){return"Type: EWIF\nVersion: 1\nData: "+e+"\n"})):e.reject({message:"Invalid EWIF options.password. Waiting a callback function, a promise or a string."}):e.reject({message:"Missing EWIF options.password."});default:return e.reject({message:"Unknown keyfile format: "+a.type})}}},box:{getKeypair:b,pack:function(t,n,a,o,r){if(!t[a=a||"recipient"])return e.reject({message:"ES_WALLET.ERROR.RECIPIENT_IS_MANDATORY"});"string"==typeof(o=o||"content")&&(o=[o]),t=angular.copy(t);var s=i.util.decode_base58(t[a]);return e.all([b(n),i.box.keypair.pkFromSignPk(s),r?e.when(r):i.util.random_nonce()]).then((function(n){var a=n[0].boxSk,r=n[1],s=n[2];return e.all(o.reduce((function(e,n){return t[n]?e.concat(i.box.pack(t[n],s,r,a)):e}),[])).then((function(e){var n=0;return _.forEach(o,(function(i){t[i]?t[i]=e[n++]:t[i]=null})),t.nonce=i.util.encode_base58(s),t}))}))},open:function(t,n,a,o){a=a||"issuer","string"==typeof(o=o||"content")&&(o=[o]);var r=Date.now(),s={},l=[b(n)];return e.all(t.reduce((function(e,t){var n=t[a];if(!n)throw"Record has no "+a;return s[n]?res:e.concat(i.box.keypair.pkFromSignPk(i.util.decode_base58(n)).then((function(e){s[n]=e})))}),l)).then((function(n){var r=n[0];return e.all(t.reduce((function(e,t){var n=s[t[a]],l=i.util.decode_base58(t.nonce);return t.valid=!0,e.concat(o.reduce((function(e,a){return t[a]?e.concat(i.box.open(t[a],l,n,r.boxSk).then((function(e){t[a]=e})).catch((function(e){console.error(e),console.warn("[ES] [crypto] a record may have invalid cypher "+a),t.valid=!1}))):e}),[]))}),[]))})).then((function(){return console.debug("[ES] [crypto] All record decrypted in "+(Date.now()-r)+"ms"),t}))}}}}]),angular.module("cesium.utils.services",[]).factory("ionicReady",["$ionicPlatform",function(e){var t;return function(){return t||(t=e.ready()),t}}]).factory("UIUtils",["$ionicLoading","$ionicPopup","$ionicConfig","$ionicHistory","$translate","$q","ionicMaterialInk","ionicMaterialMotion","$window","$timeout","Fullscreen","$cordovaToast","$ionicPopover","$state","$rootScope","screenmatch",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){var g,f=null,T={MAX_HEIGHT:480,MAX_WIDTH:640,THUMB_MAX_HEIGHT:200,THUMB_MAX_WIDTH:200},h={smallscreen:b.bind("xs, sm",E)},v={};function I(e,n){return e?o((function(i){a([e,n,"ERROR.POPUP_TITLE","ERROR.UNKNOWN_ERROR","COMMON.BTN_OK"]).then((function(a){var o=e.message||a[e];return t.show({template:"<p>"+(o||a["ERROR.UNKNOWN_ERROR"])+"</p>",title:a["ERROR.POPUP_TITLE"],subTitle:a[n],buttons:[{text:"<b>"+a["COMMON.BTN_OK"]+"</b>",type:"button-assertive",onTap:function(e){i(e)}}]})}))})):o.when()}function N(e,n){return o((function(i){a([e,n,"INFO.POPUP_TITLE","COMMON.BTN_OK"]).then((function(a){t.show({template:"<p>"+a[e]+"</p>",title:a["INFO.POPUP_TITLE"],subTitle:a[n],buttons:[{text:a["COMMON.BTN_OK"],type:"button-positive",onTap:function(e){i(e)}}]})}))}))}function O(t){return t?c((function(){return e.hide()}),t):e.hide()}function R(t){return f?((t=t||{}).template=t.template||f,e.show(t)):a("COMMON.LOADING").then((function(e){return f=e,R(t)}))}function A(){return h.smallscreen.active}function S(e,t,n){return function(t){var i,a=t.target.width,o=t.target.height,r=n?T.THUMB_MAX_WIDTH:T.MAX_WIDTH,s=n?T.THUMB_MAX_HEIGHT:T.MAX_HEIGHT,l=document.createElement("canvas");if(n){a>o?(a*=s/o,o=s):(o*=r/a,a=r),l.width=r,l.height=s,i=l.getContext("2d");var c=Math.trunc((r-a)/2+.5),u=Math.trunc((s-o)/2+.5);i.drawImage(t.target,c,u,r+-2*c,s+-2*u)}else a>o?a>r&&(o*=r/a,a=r):o>s&&(a*=s/o,o=s),l.width=a,l.height=o,(i=l.getContext("2d")).drawImage(t.target,0,0,l.width,l.height);var d=l.toDataURL();l.remove(),e(d)}}function C(e,t){var n=o.defer();(t=t||{}).templateUrl=t.templateUrl?t.templateUrl:"templates/common/popover_copy.html",t.scope=t.scope||E,t.scope.popovers=t.scope.popovers||{},t.autoselect=t.autoselect||!1,t.autoremove=!angular.isDefined(t.autoremove)||t.autoremove,t.backdropClickToClose=!angular.isDefined(t.backdropClickToClose)||t.backdropClickToClose,t.focusFirstInput=!!angular.isDefined(t.focusFirstInput)&&t.focusFirstInput;var i=function(i){(i=i||t.scope.popovers[t.templateUrl]).isResolved=!1,i.deferred=n,i.options=t,t.bindings&&angular.merge(i.scope,t.bindings),c((function(){i.show(e).then((function(){var e;t.autoselect?(e=document.querySelectorAll(t.autoselect)[0])&&(l.getSelection&&!l.getSelection().toString()?(e.setSelectionRange(0,e.value.length),e.focus()):e.focus()):t.autofocus&&(e=document.querySelectorAll(t.autofocus)[0])&&e.focus(),i.scope.$parent.$emit("popover.shown"),t.afterShow&&t.afterShow(i)}))}))},a=function(e){(e=e||t.scope.popovers[t.templateUrl])&&(delete t.scope.popovers[t.templateUrl],e.remove().then((function(){angular.element(l.document.querySelectorAll("body")[0]).removeClass("popover-open")})))},r=t.scope.popovers[t.templateUrl];return r?i(r):p.fromTemplateUrl(t.templateUrl,{scope:t.scope,backdropClickToClose:t.backdropClickToClose}).then((function(e){e.isResolved=!1,e.scope.closePopover=function(t){var n=e.options&&e.options.autoremove;e.options&&delete e.options.autoremove,e.hide().then((function(){if(n)return a(e)})).then((function(){e.deferred&&e.deferred.resolve(t),delete e.deferred,delete e.options}))},e.scope.$on("popover.hidden",(function(){e.options&&e.options.afterHidden&&e.options.afterHidden(),e.options&&e.options.autoremove&&a(e)})),t.scope.$on("$remove",(function(){e.deferred&&e.deferred.resolve(),a()})),t.scope.popovers[t.templateUrl]=e,i(e)})),n.promise}function L(e,t){var n=A()?100:10,i=".list.{0} .item, .list .{0} .item".format(t,t);return{ionListClass:t,show:function(t){return(t=t||{}).selector=t.selector||i,t.ink=!angular.isDefined(t.ink)||t.ink,t.startVelocity=t.startVelocity||(A()?1100:3e3),c((function(){t.ink&&g.ink(),e(t)}),t.timeout||n)}}}function D(e,t){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return console.error("invalid toggleOn selector"),!1;c((function(){var t=document.querySelectorAll(e.selector);t&&_.forEach(t,(function(e){e.classList.toggle("on",!0)}))}),t||100)}function y(e,t){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return console.error("invalid toggleOff selector"),!1;c((function(){var t=document.querySelectorAll(e.selector);t&&_.forEach(t,(function(e){e.classList.toggle("on",!1)}))}),t||900)}return v.motion={enable:!0,default:L(s.ripple,"animate-ripple"),blinds:L(s.blinds,"animate-blinds"),fadeSlideIn:L(s.fadeSlideIn,"animate-fade-slide-in"),fadeSlideInRight:L(s.fadeSlideInRight,"animate-fade-slide-in-right"),panInLeft:L(s.panInLeft,"animate-pan-in-left"),pushDown:L(s.pushDown,"push-down"),ripple:L(s.ripple,"animate-ripple"),slideUp:L(s.slideUp,"slide-up"),fadeIn:L((function(e){D(e)}),"fade-in"),toggleOn:D,toggleOff:y},g={alert:{error:I,info:N,confirm:function(e,n,i){return n=n||"CONFIRM.POPUP_TITLE",(i=i||{}).cssClass=i.cssClass||"confirm",i.okText=i.okText||"COMMON.BTN_OK",i.cancelText=i.cancelText||"COMMON.BTN_CANCEL",a([e,n,i.cancelText,i.okText]).then((function(a){return t.confirm({template:a[e],cssClass:i.cssClass,title:a[n],cancelText:a[i.cancelText],cancelType:i.cancelType,okText:a[i.okText],okType:i.okType})}))},notImplemented:function(){return N("INFO.FEATURES_NOT_IMPLEMENTED")}},loading:{show:R,hide:O,update:function(t){return e._getLoader().then((function(e){if(e&&e.isShown)return t&&t.template?a(t&&t.template).then((function(n){return t.template=n,e})):void 0})).then((function(e){if(e&&e.isShown)return R(t)}))}},toast:{show:function(e,t,n){return t=t||"short",n=n||"bottom",a([e]).then((function(i){window.cordova&&d.show(i[e],t,n)}))}},onError:function(e,t){return function(n){var i,a=e;if(n&&n.message?(a=n.message,i=e):e||(a=n),!t)return"CANCELLED"==a?O(10):(O(10),I(a,i));t(a)}},screen:{isSmall:A,fullscreen:u},ink:r.displayEffect,motion:v.motion,setEffects:function(e){if(g.motion.enable!==e){if(console.debug("[UI] [effects] "+(e?"Enable":"Disable")),g.motion.enable=e,e)n.views.transition("platform"),angular.merge(g.motion,v.motion);else{n.views.transition("none");var t={class:void 0,show:function(){}};angular.merge(g.motion,{enable:!1,default:t,fadeSlideIn:t,fadeSlideInRight:t,panInLeft:t,pushDown:t,ripple:t,slideUp:t,fadeIn:t,toggleOn:D,toggleOff:y}),E.motion=t}i.clearCache()}},fab:{show:function(e,t){t||(t=900),c((function(){var t=document.getElementsByClassName("button-fab");_.forEach(t,(function(t){t.id==e&&t.classList.toggle("on",!0)}))}),t)},hide:function(e,t){t||(t=10),c((function(){var t=document.getElementsByClassName("button-fab");_.forEach(t,(function(t){t.id==e&&t.classList.toggle("on",!1)}))}),t)}},popover:{show:C,copy:function(e,t){var n=t&&t.indexOf("\n")>=0?t.split("\n").length:1;return C(e,{templateUrl:"templates/common/popover_copy.html",bindings:{value:t,rows:n},autoselect:".popover-copy "+(n<=1?"input":"textarea")})},share:function(e,t){return(t=t||{}).templateUrl=t.templateUrl?t.templateUrl:"templates/common/popover_share.html",t.autoselect=t.autoselect||".popover-share input",t.bindings=t.bindings||{},t.bindings.value=t.bindings.value||t.bindings.url||m.href(m.current,m.params,{absolute:!0}),t.bindings.postUrl=t.bindings.postUrl||t.bindings.value,t.bindings.postMessage=t.bindings.postMessage||"",t.bindings.titleKey=t.bindings.titleKey||"COMMON.POPOVER_SHARE.TITLE",C(e,t)},helptip:function e(t,n){var i="string"==typeof t&&t?l.document.getElementById(t):t;t||i||!n.selector||(i=l.document.querySelector(n.selector));var a=(n=n||{}).deferred||o.defer();if(i&&!n.timeout)n.preAction&&i[n.preAction](),n.templateUrl=n.templateUrl?n.templateUrl:"templates/common/popover_helptip.html",n.autofocus=n.autofocus||"#helptip-btn-ok",n.bindings=n.bindings||{},n.bindings.icon=n.bindings.icon||{},n.bindings.icon.position=n.bindings.icon.position||!1,n.bindings.icon.glyph=n.bindings.icon.glyph||(n.bindings.icon.position&&n.bindings.icon.position.startsWith("bottom-")?"ion-arrow-down-c":"ion-arrow-up-c"),n.bindings.icon.class=n.bindings.icon.class||"calm icon "+n.bindings.icon.glyph,n.bindings.tour=!!angular.isDefined(n.bindings.tour)&&n.bindings.tour,C(i,n).then((function(e){n.postAction&&i[n.postAction](),a.resolve(e)})).catch((function(e){n.postAction&&i[n.postAction](),a.reject(e)}));else if(n.timeout){var r=n.timeout;n.retryTimeout=n.retryTimeout||r,delete n.timeout,n.deferred=a,c((function(){e(t,n)}),r)}else angular.isDefined(n.retry)&&!n.retry?"continue"===n.onError?c((function(){a.resolve(!0)})):c((function(){a.reject("[helptip] element now found: "+t)})):(n.retry=angular.isUndefined(n.retry)?2:n.retry-1,n.deferred=a,c((function(){e(t,n)}),n.timeout||n.retryTimeout||100));return a.promise}},selection:{select:function e(t){if(t.value||"text"==t.type||"textarea"==t.type)l.getSelection&&!l.getSelection().toString()&&t.setSelectionRange(0,t.value.length);else if(t.childNodes&&t.childNodes.length>0)e(t.childNodes[0]);else{var n=l.document.createRange();n.selectNodeContents(t);var i=l.getSelection();i.removeAllRanges(),i.addRange(n)}},get:function(){var e="";return window.getSelection&&(e=l.getSelection().toString()),e}},image:{resizeFile:function(e,t){var n=document.createElement("img");return o((function(i,a){if(e){var o=new FileReader;o.onload=function(e){n.onload=S(i,0,t),n.src=e.target.result},o.readAsDataURL(e)}else a("no file to resize")})).then((function(e){return n.remove(),e}))},resizeSrc:function(e,t){var n=document.createElement("img");return o((function(i,a){n.onload=S(i,0,t),n.src=e})).then((function(e){return n.remove(),e}))},rotateSrc:function(e,t){var n=document.createElement("img");return o((function(t,i){n.onload=function(e,t){var n=Math.PI/180*90;return function(t){var i=t.target.width,a=t.target.height,o=T.MAX_WIDTH,r=T.MAX_HEIGHT;i>a?i>o&&(a*=o/i,i=o):a>r&&(i*=r/a,a=r);var s=document.createElement("canvas");s.width=a,s.height=i;var l=s.getContext("2d");l.rotate(n),l.drawImage(t.target,0,-1*s.width);var c=s.toDataURL();s.remove(),e(c)}}(t),n.src=e})).then((function(e){return n.remove(),e}))}},raw:v}}]).factory("$focus",["$timeout","$window",function(e,t){return function(n){e((function(){var e=t.document.getElementById(n);e&&e.focus()}))}}]),angular.module("cesium.cache.services",["angular-cache"]).factory("csCache",["$http","$window","csSettings","CacheFactory",function(e,t,n,i){var a={VERY_LONG:54e6,LONG:36e5,MEDIUM:3e5,SHORT:n.defaultSettings.cacheTimeMs},o=[];return{get:function(e,r,s){var l=(e=e||"csCache-")+(r=r||a.SHORT)/1e3,c=n.data.useLocalStorage&&t.localStorage?"localStorage":"memory";if(s){for(var u=1;i.get(l+u);)u++;return o[l+=u]||(o[l]=!0),console.debug("[cache] Creating cache {0} with 'onExpire' option...".format(l)),i.createCache(l,{maxAge:r,deleteOnExpire:"aggressive",recycleFreq:r,onExpire:s,storageMode:c})}return o[l]||(o[l]=!0,console.debug("[cache] Creating cache {0}...".format(l))),i.get(l)||i.createCache(l,{maxAge:r,deleteOnExpire:"passive",recycleFreq:Math.max(r-1e3,3e5),storageMode:c})},clear:function(e){_.forEach(_.keys(o),(function(t){if(t.startsWith(e)){var n=i.get(t);n&&n.removeAll()}}))},clearAll:function(){console.debug("[cache] cleaning all caches"),_.forEach(_.keys(o),(function(e){var t=i.get(e);t&&t.removeAll()}))},constants:a}}]),angular.module("cesium.modal.services",["cesium.utils.services"]).controller("EmptyModalCtrl",(function(){})).controller("AboutModalCtrl",["$scope","UIUtils","csHttp",function(e,t,n){e.openLink=function(e,i,a){return(a=a||{}).onError=function(){return t.popover.copy(e,i)},n.uri.open(i,a)}}]).factory("ModalUtils",["$ionicModal","$rootScope","$q","$injector","$controller","$timeout","Device",function(e,t,n,i,a,o,r){function s(e,t,i){e.deferred=t||n.defer(),e.resolved=!1,e.openModal=function(){return e.modal.show()},e.hideModal=function(){return e.modal.hide()},e.closeModal=function(t){return e.resolved=!0,r.enable&&r.keyboard.close(),e.modal.remove().then((function(){return document.body.classList.remove("modal-open"),e.deferred.resolve(t),t}))},e.setForm=function(t,n){n?e[n]=t:e.form=t},e.getParameters=function(){return i},e.$on("modal.hidden",(function(){e.resolved||(e.resolved=!0,o((function(){return e.deferred.resolve(),e.modal.remove().then((function(){document.body.classList.remove("modal-open")}))}),(e.modal.hideDelay||320)+20))}))}return{show:function(i,o,r,l){var c,u,d,p=n.defer();if((l=l||{}).animation=l.animation||"slide-in-up",l.focusFirstInput=!1,o){l.scope=l.scope?l.scope.$new():t.$new(),s.call({},l.scope,p,r);var m={$scope:l.scope,parameters:r},E=(u={isControllerAs:!1,controllerName:"",propName:""},d=((c=o)||"").trim().split(/\s+/),u.isControllerAs=3===d.length&&"as"===(d[1]||"").toLowerCase(),u.isControllerAs?(u.controllerName=d[0],u.propName=d[2]):u.controllerName=c,u),b=a(o,m);E.isControllerAs&&(b.openModal=l.scope.openModal,b.closeModal=l.scope.closeModal)}return e.fromTemplateUrl(i,l).then((function(e){if(o)e.scope.$parent.modal=e;else{var t=e.scope;s.call({},t,p,r),t.modal=e}return e.show()}),(function(e){p.reject(e)})),p.promise}}}]).factory("Modals",["$rootScope","$translate","$ionicPopup","$timeout","ModalUtils","UIUtils",function(e,t,n,i,a,o){function r(e){return a.show("templates/join/modal_join_member.html","JoinModalCtrl",e)}function s(e){return a.show("templates/join/modal_join_wallet.html","JoinModalCtrl",e)}return{showTransfer:function(e){var t=o.screen.isSmall();return a.show("templates/wallet/modal_transfer.html","TransferModalCtrl",e,{focusFirstInput:!t})},showLogin:function(e){return a.show("templates/login/modal_login.html","LoginModalCtrl",e,{focusFirstInput:!0,backdropClickToClose:!1})},showWotLookup:function(e){return a.show("templates/wot/modal_lookup.html","WotLookupModalCtrl",e||{},{focusFirstInput:!0})},showNetworkLookup:function(e){return a.show("templates/network/modal_network.html","NetworkLookupModalCtrl",e,{focusFirstInput:!0})},showAbout:function(e){return a.show("templates/modal_about.html","AboutModalCtrl",e)},showJoin:function(e){return a.show("templates/join/modal_choose_account_type.html","JoinChooseAccountTypeModalCtrl",e).then((function(e){if(e)return"member"==e.accountType?r(e):s(e)}))},showJoinMember:r,showJoinWallet:s,showHelp:function(e){return a.show("templates/help/modal_help.html","HelpModalCtrl",e)},showAccountSecurity:function(e){return a.show("templates/wallet/modal_security.html","WalletSecurityModalCtrl",e)},showLicense:function(e){return a.show("templates/currency/modal_license.html","CurrencyLicenseModalCtrl",e)},showSelectPubkeyIdentity:function(e){return a.show("templates/wot/modal_select_pubkey_identity.html","WotSelectPubkeyIdentityModalCtrl",e)},showSelectWallet:function(e){return a.show("templates/wallet/list/modal_wallets.html","WalletSelectModalCtrl",e)},showPassword:function(i){(i=i||{}).title=i.title||"COMMON.SET_PASSWORD_TITLE",i.subTitle=i.subTitle||"COMMON.SET_PASSWORD_SUBTITLE";var a=i.scope?i.scope.$new():e.$new();return a.formData={password:void 0},a.setForm=function(e){a.form=e},a.submit=function(e){a.form.$submitted=!0,e&&e.preventDefault&&e.preventDefault(),a.form.$valid&&a.formData.password&&i.popup.close(a.formData.password)},a.error=i.error||void 0,t([i.title,i.subTitle,"COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then((function(e){return i.popup=n.show({templateUrl:"templates/common/popup_password.html",title:e[i.title],subTitle:e[i.subTitle],scope:a,buttons:[{text:e["COMMON.BTN_CANCEL"]},{text:e["COMMON.BTN_OK"],type:"button-positive",onTap:a.submit}]}),i.popup}))}}}]).factory("csPopovers",["$rootScope","$translate","$ionicPopup","$timeout","UIUtils","$controller",function(e,t,n,i,a,o){return{showSelectWallet:function(t,n){var i=(n=n||{}).parameters||{};delete n.parameters;var r=n.scope&&n.scope.$new()||e.$new(!0);n.scope=r,n.templateUrl="templates/wallet/list/popover_wallets.html",n.autoremove=!0,angular.extend(this,o("WalletSelectPopoverCtrl",{$scope:n.scope,parameters:i}));var s=n.afterShow;return n.afterShow=function(e){r.closePopover=function(t){e.scope.closePopover(t)},s&&s(e)},a.popover.show(t,n).then((function(e){return r.$destroy(),e}))}}}]),angular.module("cesium.http.services",["cesium.cache.services"]).factory("csHttp",["$http","$q","$timeout","$window","csSettings","csCache","Device",function(e,t,n,i,a,o,r){var s=a.data.timeout,l=[];function c(e,t){return e?e+(t&&80!=t&&443!=t?":"+t:""):null}function u(e,t,n,i){return(443==t||i?"https":"http")+"://"+c(e,t)+(n||"")}function d(e,t,n,i){t&&t.message?e(t):e(404==i?{ucode:404,message:"Resource not found"+(n?" ("+n+")":"")}:n?"Error while requesting ["+n+"]":"Unknown error from node")}function p(e,t,n,i){var a=[],o={},r=e;return"object"==typeof t&&(a=_.keys(t)),_.forEach(a,(function(e){r===(r=r.replace(":"+e,t[e]))&&(o[e]=t[e])})),n.params=o,i(r,n)}function m(e){var t;e.startsWith("duniter://")&&(t="duniter",e=e.replace("duniter://","http://"));var n=document.createElement("a");n.href=e;var i=n.pathname;i&&i.startsWith("/")&&(i=i.substring(1));var a={protocol:t||n.protocol,hostname:n.hostname,host:n.host,port:n.port,username:n.username,password:n.password,pathname:i,search:n.search,hash:n.hash};return n.remove(),a}function E(e,t){var n=e.split("."),i=t.split(".");function a(e){for(var t=0;t<e.length;++t)if(n=e[t],!/^\d+$/.test(n))return!1;var n;return!0}if(!a(n)||!a(i))return NaN;for(var o=0;o<n.length;++o){if(i.length===o)return 1;if(n[o]!==i[o])return n[o]>i[o]?1:-1}return n.length!=i.length?-1:0}s||(s=4e3);var b=angular.copy(o.constants);return b.clear=function(){console.debug("[http] Cleaning cache..."),o.clear("csHttp-")},{get:function(n,i,a,o,r){if(!n)return t.reject("[http] invalid URL from host: "+n);var l=u(n,i,a,o);return function(n){return t((function(t,i){p(l,n,{timeout:r||s,responseType:"json"},(function(n,a){e.get(n,a).success((function(e,n,i,a){t(e)})).error((function(e,t,a,o){d(i,e,n,t)}))}))}))}},getWithCache:function(n,i,a,r,l,c,m,E){var b=u(n,i,a,r);return l=l||o.constants.LONG,function(n){return t((function(t,i){var a={timeout:m||s,responseType:"json"};a.cache=c?o.get(E,l,(function(t,n,i){console.debug("[http] Refreshing cache for ["+t+"] "),e.get(t,a).success((function(e){a.cache.put(t,e),i&&i(t,e)}))})):o.get(E,l),p(b,n,a,(function(n,a){e.get(n,a).success((function(e){t(e)})).error((function(e,t){d(i,e,n,t)}))}))}))}},post:function(n,i,a,o,r){var l=u(n,i,a,o);return function(n,i){return t((function(t,a){p(l,i,{timeout:r||s,headers:{"Content-Type":"application/json;charset=UTF-8"}},(function(i,o){e.post(i,n,o).success((function(e){t(e)})).error((function(e,t){d(a,e,i,t)}))}))}))}},ws:function(e,i,o,r,s){if(!o)throw console.error("calling csHttp.ws without path argument"),"calling csHttp.ws without path argument";var u=function(e,t,n,i){return(443==t||i?"wss":"ws")+"://"+c(e,t)+(n||"")}(e,i,o,r);function d(e){if(!e.delegate)throw new Error("Websocket {0} was closed!".format(u));return 1==e.delegate.readyState?t.when(e.delegate):3==e.delegate.readyState?t.reject("Unable to connect to websocket ["+e.delegate.url+"]"):(e.waitDuration>=s?(e.waitRetryDelay=e.waitRetryDelay&&Math.min(e.waitRetryDelay+2e3,3e4)||2e3,console.debug("[http] Will retry websocket [{0}] in {1}s...".format(e.path,Math.round(e.waitRetryDelay/1e3)))):Math.round(e.waitDuration/1e3)%10==0&&console.debug("[http] Waiting websocket ["+e.path+"]..."),n((function(){return e.waitDuration+=e.waitRetryDelay,d(e)}),e.waitRetryDelay))}function m(e,t,n){return e.delegate||(e.path=o,e.callbacks=[],e.waitDuration=0,e.waitRetryDelay=200,p(u,n,{},(function(t){e.delegate=new WebSocket(t),e.delegate.onerror=function(t){e.delegate.readyState=3},e.delegate.onmessage=function(t){var n=JSON.parse(t.data);_.forEach(e.callbacks,(function(e){e(n)}))},e.delegate.onopen=function(t){console.debug("[http] Listening on websocket ["+e.path+"]..."),l.push(e),e.delegate.openTime=Date.now()},e.delegate.onclose=function(t){var i=_.findIndex(l,(function(t){return t.path===e.path}));i>=0&&l.splice(i,1),e.delegate.closing?e.delegate=null:e.delegate.openTime?(console.debug("[http] Unexpected close of websocket [{0}] (open {1} ms ago): re-opening...",o,Date.now()-e.delegate.openTime),e.delegate=null,m(e,null,n)):t&&(console.debug("[http] TODO -- Unexpected close of websocket [{0}]: error code: ".format(o),t),e.delegate=null,m(e,null,n))}}))),t&&e.callbacks.push(t),d(e)}function E(e){e.delegate&&(e.delegate.closing=!0,console.debug("[http] Closing websocket ["+e.path+"]..."),e.delegate.close(),e.callbacks=[],e.onclose&&e.onclose())}return s=s||a.data.timeout,{open:function(e){return m(this,null,e)},on:function(e,t){return m(this,e,t)},onListener:function(e,t){var n=this;return m(n,e,t),function(){!function(e,t){e.callbacks=_.reject(e.callbacks,(function(e){return e===t})),e.callbacks.length||E(e)}(n,e)}},send:function(e){var t=this;return d(t).then((function(){t.delegate&&t.delegate.send(e)}))},close:function(){E(this)},isClosed:function(){return!this.delegate||this.delegate.closing}}},closeAllWs:function(){l.length>0&&(console.debug("[http] Closing all websocket..."),_.forEach(l,(function(e){e.close()})),l=[])},getUrl:u,getServer:c,uri:{parse:m,open:function(e,t){if(t=t||{},!e.startsWith("http://")&&!e.startsWith("https://")){var n=m(e);if(!n.protocol&&t.type&&(n.protocol="email"==t.type?"mailto:":"phone"==t.type?"tel:":"",e=n.protocol+e),"mailto:"==n.protocol&&r.isDesktop())try{return void nw.Shell.openExternal(e)}catch(e){console.error("[http] Failed not open 'mailto:' URI into external tool.")}if("mailto:"!=n.protocol&&"tel:"!=n.protocol||!r.enable)return void(t.onError&&"function"==typeof t.onError&&t.onError(e))}var a,o=t.target||(r.enable?"_system":"_blank");if("_blank"===o||"_system"===o&&r.isDesktop())try{return void nw.Shell.openExternal(e)}catch(e){console.error("[http] Failed not open URI into external browser.")}if("_blank"===o&&r.isDesktop()){if(nw&&nw.Shell)return nw.Shell.openExternal(e),!1;a="location=1,titlebar=1,status=1,menubar=1,toolbar=1,resizable=1,scrollbars=1",i.screen&&i.screen.width&&i.screen.height&&(a+=",width={0},height={1}".format(Math.trunc(i.screen.width/2),Math.trunc(i.screen.height/2)))}var s=i.open(e,o,a);a&&i.screen&&i.screen.width&&i.screen.height&&(s.moveTo(i.screen.width/2/2,i.screen.height/2/2),s.focus())}},date:{now:function(){return moment().utc().unix()}},version:{compare:E,isCompatible:function(e,t){return console.debug("[http] Checking actual version [{0}] is compatible with min expected version [{1}]".format(t,e)),E(e,t)<=0}},cache:b}}]),angular.module("cesium.storage.services",["cesium.config"]).factory("sessionStorage",["$window","$q",function(e,t){var n={storage:e.sessionStorage||{},put:function(e,i){return n.storage[e]=i,t.when()},get:function(e,i){return t.when(n.storage[e]||i)},setObject:function(e,i){return n.storage[e]=JSON.stringify(i),t.when()},getObject:function(e){return t.when(JSON.parse(n.storage[e]||"null"))}};return n}]).factory("localStorage",["$window","$q","$log","sessionStorage",function(e,t,n,i){var a,o="Cesium",r=!1,s=!0,l={standard:{storage:null},secure:{storage:null}};function c(){return e.localStorage?(console.debug("[storage] Starting {local} storage..."),l.standard.storage=e.localStorage,_.forEach(_.keys(l.standard),(function(e){l[e]=l.standard[e]}))):(console.debug("[storage] Starting {session} storage..."),_.forEach(_.keys(i),(function(e){l[e]=i[e]}))),t.when()}function u(){if(a)return a;var e=Date.now();return(a=s?function(){console.debug("[storage] Starting {secure} storage..."),_.forEach(_.keys(l.secure),(function(e){l[e]=l.secure[e]}));var e=t.defer();return cordova.plugins&&cordova.plugins.SecureStorage?l.secure.storage=new cordova.plugins.SecureStorage((function(){e.resolve()}),(function(t){console.error("[storage] Could not use secure storage. Will use standard.",t),c(),e.resolve()}),o):(c(),e.resolve()),e.promise}():c()).then((function(){console.debug("[storage] Started in "+(Date.now()-e)+"ms"),r=!0,a=null}))}return l.standard.put=function(e,n){return angular.isDefined(n)&&null!=n?l.standard.storage[e]=n:l.standard.storage.removeItem(e),t.when()},l.standard.remove=function(e,n){return l.standard.storage.removeItem(e),t.when()},l.standard.get=function(e,n){return t.when(l.standard.storage[e]||n)},l.standard.setObject=function(e,n){return l.standard.storage[e]=JSON.stringify(n),t.when()},l.standard.getObject=function(e){return t.when(JSON.parse(l.standard.storage[e]||"null"))},l.secure.put=function(e,i){return t((function(t,a){null!=i?l.secure.storage.set((function(e){t()}),(function(e){n.error(e),a(e)}),e,i):l.secure.storage.remove((function(){t()}),(function(e){n.error(e),t()}),e)}))},l.secure.get=function(e,i){return t((function(t,a){l.secure.storage.get((function(e){t(!e&&i?i:e)}),(function(e){n.error(e),t()}),e)}))},l.secure.setObject=function(e,i){return n.debug("[storage] Setting object into secure storage, using key="+e),t((function(t,n){l.secure.storage.set(t,n,e,i?JSON.stringify(i):void 0)}))},l.secure.getObject=function(e){return n.debug("[storage] Getting object from secure storage, using key="+e),t((function(t,i){l.secure.storage.get((function(e){t(JSON.parse(e||"null"))}),(function(e){n.error(e),t()}),e)}))},l.isStarted=function(){return r},l.ready=function(){return r?t.when():a||u()},u(),l}]),angular.module("cesium.device.services",["cesium.utils.services","cesium.settings.services"]).factory("Device",["$rootScope","$translate","$ionicPopup","$q","$cordovaClipboard","$cordovaBarcodeScanner","$cordovaCamera","ionicReady",function(e,t,n,i,a,o,r,s){var l,c=400,u=400,d={enable:!0},p={},m=!1;function E(e){if(!d.enable)return i.reject("Barcode scanner not enable. Please call 'ionicReady()' once before use (e.g in app.js).");var t=i.defer();return cordova.plugins.barcodeScanner.scan((function(e){e.cancelled?(console.debug("[device] barcode scanner scan: CANCELLED"),t.resolve()):(console.debug("[device] barcode scanner scan: "+e.text),t.resolve(e.text))}),(function(e){console.error("[device] Error while using barcode scanner: "+e),t.reject(e)}),e),t.promise}return d.clipboard={copy:function(e,t){if(!d.enable)return i.reject("Device disabled");var n=i.defer();return a.copy(e).then((function(){t&&t(),n.resolve()}),(function(){n.reject({message:"ERROR.COPY_CLIPBOARD"})})),n.promise}},d.camera={getPicture:function(e){return d.camera.enable?(e&&"string"==typeof e&&(e={sourceType:e}),e=e||{},angular.isUndefined(e.sourceType)?t(["SYSTEM.PICTURE_CHOOSE_TYPE","SYSTEM.BTN_PICTURE_GALLERY","SYSTEM.BTN_PICTURE_CAMERA"]).then((function(t){return n.show({title:t["SYSTEM.PICTURE_CHOOSE_TYPE"],buttons:[{text:t["SYSTEM.BTN_PICTURE_GALLERY"],type:"button",onTap:function(e){return navigator.camera.PictureSourceType.PHOTOLIBRARY}},{text:t["SYSTEM.BTN_PICTURE_CAMERA"],type:"button button-positive",onTap:function(e){return navigator.camera.PictureSourceType.CAMERA}}]}).then((function(t){return console.info("[camera] User select sourceType:"+t),e.sourceType=t,d.camera.getPicture(e)}))})):(e.quality=e.quality||50,e.destinationType=e.destinationType||navigator.camera.DestinationType.DATA_URL,e.encodingType=e.encodingType||navigator.camera.EncodingType.PNG,e.targetWidth=e.targetWidth||u,e.targetHeight=e.targetHeight||c,r.getPicture(e))):i.reject("Camera not enable. Please call 'ionicReady()' once before use (e.g in app.js).")},scan:function(e){return console.warn("Deprecated use of Device.camera.scan(). Use Device.barcode.scan() instead"),E(e)}},d.barcode={enable:!1,scan:E},d.keyboard={enable:!1,close:function(){d.keyboard.enable&&cordova.plugins.Keyboard.close()}},d.keyboard.digit={settings:{bindModel:function(t,n,i){t=t||e;var a=function(){return(n||"").split(".").reduce((function(e,t){return e?e[t]:void 0}),t)},o=function(e){var i=(n||"").split("."),a=i.length&&i[i.length-1];i.reduce((function(t,n){if(n!=a)return t[n];t[a]=e}),t)};return(i=i||{}).animation=i.animation||"pop",i.action=i.action||function(e){o((a()||"")+e)},i.decimal&&(i.decimalSeparator=i.decimalSeparator||".",i.leftButton={html:"<span>.</span>",action:function(){var e=a()||"";e.indexOf(i.decimalSeparator)>=0||(e.trim().length||(e="0"),o(e+i.decimalSeparator))}}),i.rightButton=i.rightButton||{html:'<i class="icon ion-backspace-outline"></i>',action:function(){var e=a();e&&e.length&&(e=e.slice(0,-1),o(e))}},i}}},d.isIOS=function(){return!!navigator.userAgent.match(/iPhone | iPad | iPod/i)||ionic.Platform.isIOS()},d.isOSX=function(){return!!navigator.userAgent.match(/Macintosh/i)||ionic.Platform.is("osx")},d.isDesktop=function(){if(!angular.isDefined(p.isDesktop))try{p.isDesktop=!(d.enable||!process||!nw||!nw.App)}catch(e){p.isDesktop=!1}return p.isDesktop},d.isWeb=function(){return!d.enable&&!d.isDesktop()},d.ready=function(){return m?i.when():l||d.start()},d.start=function(){return l=s().then((function(){d.enable=window.cordova&&cordova&&cordova.plugins,d.enable?(d.camera.enable=!!navigator.camera,d.keyboard.enable=cordova&&cordova.plugins&&!!cordova.plugins.Keyboard,d.barcode.enable=cordova&&cordova.plugins&&!!cordova.plugins.barcodeScanner&&!d.isOSX(),d.clipboard.enable=cordova&&cordova.plugins&&!!cordova.plugins.clipboard,d.keyboard.enable&&angular.extend(d.keyboard,cordova.plugins.Keyboard),console.debug("[device] Ionic platform ready, with [camera: {0}] [barcode scanner: {1}] [keyboard: {2}] [clipboard: {3}]".format(d.camera.enable,d.barcode.enable,d.keyboard.enable,d.clipboard.enable)),cordova.InAppBrowser&&console.debug("[device] Enabling InAppBrowser")):console.debug("[device] Ionic platform ready - no device detected."),m=!0,l=null}))},d}]),angular.module("cesium.currency.services",["ngApi","cesium.bma.services"]).factory("csCurrency",["$rootScope","$q","$timeout","BMA","Api","csSettings",function(e,n,i,a,o,r){var s=a;function l(a,l){l=l||s;var c,u,d={WELL_KNOWN_CURRENCIES:{g1:{firstBlockTime:1488987127,medianTimeOffset:3600}}},p={},m=!1,E=new o(this,"csCurrency-"+a);function b(){p.name=null,p.parameters=null,p.firstBlockTime=null,p.membersCount=null,p.cache={},p.node=l,p.currentUD=null,p.medianTimeOffset=0,m=!1,c=void 0,E.data.raise.reset(p)}function g(){return n.all([l.blockchain.parameters().then((function(e){return p.name=e.currency,p.parameters=e,p.medianTimeOffset=e.avgGenTime*e.medianTimeBlocks/2,e})).then((function(e){return t=e.currency,d.WELL_KNOWN_CURRENCIES[t]?(angular.merge(p,d.WELL_KNOWN_CURRENCIES[t]),n.when()):l.blockchain.block({block:0}).then((function(e){p.firstBlockTime=e.medianTime})).catch((function(e){if(e&&e.ucode===l.errorCodes.BLOCK_NOT_FOUND)return p.firstBlockTime=0,p.initPhase=!0,void console.warn("[currency] Blockchain not launched: Enable init phase mode");throw e}));var t})),l.blockchain.stats.ud().then((function(e){return e.result.blocks.length?function e(t,n){if(!t.result.blocks.length||n<0)return p.currentUD=p.parameters?p.parameters.ud0:-1,p.currentUD;var i=t.result.blocks[n];return l.blockchain.block({block:i}).then((function(e){var t,n;return p.currentUD=(t=e.dividend,(n=e.unitbase)<=0?t:t*Math.pow(10,n)),p.currentUD})).catch((function(a){if(console.error("[currency] Unable to load last block with UD, with number {0}".format(i)),n>0)return console.error("[currency] Retrying to load UD from a previous block..."),e(t,n-1);throw p.currentUD=null,a}))}(e,e.result.blocks.length-1):(p.currentUD=p.parameters?p.parameters.ud0:-1,p.currentUD)})).catch((function(e){throw p.currentUD=null,e})),E.data.raisePromise.load(p)]).catch((function(e){throw b(),e}))}function f(){return m?n.when(p):c||N()}function T(e){return function(){return m?n.when(p[e]):c||N().then((function(){return p[e]}))}}function h(e){var n=new t(e);n.cleanData(),console.debug("[currency] Received new block {"+n.number+"-"+n.hash+"}"),p.currentBlock=n,p.currentBlock.receivedAt=moment().utc().unix(),p.medianTime=n.medianTime,p.membersCount=n.membersCount,n.dividend&&(p.currentUD=n.dividend),E.data.raise.newBlock(n)}function v(){console.debug("[currency] Stopping..."),_.forEach(u,(function(e){e()})),u=[],b()}function I(){return v(),i(N,200)}function N(){console.debug("[currency] Starting...");var t=Date.now();return c=l.ready().then(g).then((function(){!function(){u=[l.api.node.on.restart(e,I,this),l.websocket.block().onListener(h)]}(),console.debug("[currency] Started in "+(Date.now()-t)+"ms"),m=!0,c=null,E.data.raise.ready(p)})).then((function(){return p}))}var O=T("currentBlock");function R(e){return O().then((function(t){var n=moment().utc().unix();if(e){if(t&&t.receivedAt&&n-t.receivedAt<60)return t;t||console.warn("[currency] No current block in cache: get it from network. Websocket [/ws/block] may not be started ?")}return l.blockchain.current().catch((function(e){if(e&&e.ucode==l.errorCodes.NO_CURRENT_BLOCK)return{number:0,hash:l.constants.ROOT_BLOCK_HASH,medianTime:n};throw e})).then((function(e){return p.currentBlock=e,p.currentBlock.receivedAt=n,e}))}))}return E.registerEvent("data","ready"),E.registerEvent("data","load"),E.registerEvent("data","reset"),E.registerEvent("data","newBlock"),b(),{ready:function(){return m?n.when(p):c||N()},start:N,stop:v,data:p,get:f,name:T("name"),parameters:T("parameters"),currentUD:T("currentUD"),medianTimeOffset:T("medianTimeOffset"),blockchain:{current:R,lastValid:function(){return r.data.blockValidityWindow<=0?R(!0):R(!0).then((function(e){var t=e.number-r.data.blockValidityWindow;return t>0?l.blockchain.block({block:t}):e}))}},date:{now:function(){return moment().utc().unix()-(p.medianTimeOffset||d.WELL_KNOWN_CURRENCIES.g1.medianTimeOffset)}},api:E,default:function(){return console.warn("[currency] 'csCurrency.default()' has been DEPRECATED - Please use 'csCurrency.get()' instead."),f()}}}var c=new l("default");return c.instance=function(e,t){return new l(e,t)},c}]),angular.module("cesium.bma.services",["ngApi","cesium.http.services","cesium.settings.services"]).factory("BMA",["$q","$window","$rootScope","$timeout","csCrypto","Api","Device","UIUtils","csConfig","csSettings","csHttp",function(e,t,n,i,a,o,r,s,l,c,u){function d(r,d,p,m){var E,b="[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}",g="SIG\\(("+b+")\\)",f="OBJ\\(([0-9]+)\\)",T="( ([a-z_][a-z0-9-_.ğĞ]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))( (.+))?",h={BMA:"BASIC_MERKLED_API",BMAS:"BMAS",WS2P:"WS2P",BMATOR:"BMATOR",WS2PTOR:"WS2PTOR"},v={USER_ID:"[0-9a-zA-Z-_]+",CURRENCY:"[0-9a-zA-Z-_]+",PUBKEY:b,PUBKEY_WITH_CHECKSUM:"("+b+"):([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{3})",COMMENT:"[ a-zA-Z0-9-_:/;*\\[\\]()?!^\\+=@&~#{}|\\\\<>%.]*",INVALID_COMMENT_CHARS:"[^ a-zA-Z0-9-_:/;*\\[\\]()?!^\\+=@&~#{}|\\\\<>%.]*",URI_WITH_AT:"duniter://(?:([A-Za-z0-9_-]+):)?("+b+"@([a-zA-Z0-9-.]+.[ a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+)",URI_WITH_PATH:"duniter://([a-zA-Z0-9-.]+.[a-zA-Z0-9-_:.]+)/("+b+")(?:/([A-Za-z0-9_-]+))?",BMA_ENDPOINT:h.BMA+T,BMAS_ENDPOINT:h.BMAS+T,WS2P_ENDPOINT:h.WS2P+" ([a-f0-9]{8})"+T,BMATOR_ENDPOINT:h.BMATOR+" ([a-z0-9-_.]*|[0-9.]+|[0-9a-f:]+.onion)(?: ([0-9]+))?",WS2PTOR_ENDPOINT:h.WS2PTOR+" ([a-f0-9]{8}) ([a-z0-9-_.]*|[0-9.]+|[0-9a-f:]+.onion)(?: ([0-9]+))?(?: (.+))?"},I={PROTOCOL_VERSION:10,ROOT_BLOCK_HASH:"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",LIMIT_REQUEST_COUNT:5,LIMIT_REQUEST_DELAY:1e3,regexp:v,api:h},N=this;function O(e,t,n,i){N.started&&N.stop(),N.alive=!1,N.cache={getByPath:{},postByPath:{},wsByPath:{}},c.data&&c.data.node&&(e=e||c.data.node.host,t=t||c.data.node.port,n=angular.isDefined(n)?n:443==t||c.data.node.useSsl||N.forceUseSsl,i=!angular.isDefined(i)||i),e&&(N.host=e,N.port=t||80,N.useSsl=angular.isDefined(n)?n:443==N.port||N.forceUseSsl,N.useCache=!!angular.isDefined(i)&&i,N.server=u.getServer(e,t),N.url=u.getUrl(e,t,"",n))}function R(e){return new RegExp("^"+e+"$")}function A(e){return new RegExp(e)}function S(){N.cache&&(console.warn("[BMA] Closing all websockets..."),_.keys(N.cache.wsByPath||{}).forEach((function(e){N.cache.wsByPath[e].close()})),N.cache.wsByPath={})}function C(e){u.getUrl(e.node.host,e.node.port,"",e.node.useSsl)!=N.url&&(O(e.node.host,e.node.port,e.node.useSsl,N.useCache),N.restart())}N.api=new o(this,"BMA-"+N.server),N.started=!1,N.init=O,N.forceUseSsl=!!("true"===l.httpsMode||!0===l.httpsMode||"force"===l.httpsMode||t.location&&"https:"===t.location.protocol),N.forceUseSsl&&console.debug("[BMA] Enable SSL (forced by config or detected in URL)"),r&&O(r,d,p,m),N.useCache=m,N.cleanCache=function(){console.debug("[BMA] Cleaning requests cache..."),S(),N.cache={getByPath:{},postByPath:{},wsByPath:{}}},get=function(e,t){t=N.useCache&&t;var n=e+(t?"#"+t:""),a=function(o){if(!N.started)return N._startPromise||console.warn("[BMA] Trying to get [{0}] before start(). Waiting...".format(e)),N.ready().then((function(){return a(o)}));var r=N.cache.getByPath[n];r||(r=t?u.getWithCache(N.host,N.port,e,N.useSsl,t):u.get(N.host,N.port,e,N.useSsl),N.cache.getByPath[n]=r);var l=1;return r(o).catch((function(e){if(e&&e.ucode===L.errorCodes.HTTP_LIMITATION&&l<=L.constants.LIMIT_REQUEST_COUNT)return 1===l&&(console.warn("[BMA] Too many HTTP requests: Will wait then retry..."),s.loading.update({template:"COMMON.LOADING_WAIT"})),i((function(){return l++,r(o)}),L.constants.LIMIT_REQUEST_DELAY);throw e}))};return a},post=function(e){var t=function(n,i){if(!N.started)return N._startPromise||console.error("[BMA] Trying to post [{0}] before start()...".format(e)),N.ready().then((function(){return t(n,i)}));var a=N.cache.postByPath[e];return a||(a=u.post(N.host,N.port,e,N.useSsl),N.cache.postByPath[e]=a),a(n,i)};return t},ws=function(e){return function(){var t=N.cache.wsByPath[e];return t&&!t.isClosed()||((t=u.ws(N.host,N.port,e,N.useSsl)).onclose=function(){delete N.cache.wsByPath[e]},N.cache.wsByPath[e]=t),t}},N.isAlive=function(){return u.get(N.host,N.port,"/node/summary",N.useSsl)().then((function(e){var t=e&&e.duniter&&e.duniter.software,n=!0;return"duniter"===t&&e.duniter.version?n=u.version.isCompatible(c.data.minVersion,e.duniter.version):console.debug("[BMA] Unknown node software [{0} v{1}]: could not check compatibility.".format(t||"?",e.duniter.version||"?")),n||console.error("[BMA] Incompatible node [{0} v{1}]: expected at least v{2}".format(t,e.duniter.version,c.data.minVersion)),n})).catch((function(){return!1}))},N.isStarted=function(){return N.started},N.ready=function(){return N.started?e.when(!0):N._startPromise||N.start()},N.start=function(){if(N._startPromise)return N._startPromise;if(N.started)return e.when(N.alive);if(!N.host)return c.ready().then((function(){return N.init(),N.useCache=!0,N.start()}));N.useSsl?console.debug("[BMA] Starting [{0}] (SSL on)...".format(N.server)):console.debug("[BMA] Starting [{0}]...".format(N.server));var t=Date.now();return N._startPromise=e.all([c.ready,N.isAlive()]).then((function(e){return N.alive=e[1],N.alive?(E&&0!==E.length||function(){E=[c.api.data.on.changed(n,C,this)]}(),console.debug("[BMA] Started in "+(Date.now()-t)+"ms"),N.api.node.raise.start(),N.started=!0,delete N._startPromise,!0):(console.error("[BMA] Could not start [{0}]: node unreachable".format(N.server)),N.started=!0,delete N._startPromise,!1)})),N._startPromise},N.stop=function(){console.debug("[BMA] Stopping..."),_.forEach(E,(function(e){e()})),E=[],u.cache.clear(),N.cleanCache(),N.alive=!1,N.started=!1,delete N._startPromise,N.api.node.raise.stop()},N.restart=function(){return N.stop(),i(N.start,200).then((function(e){return e&&N.api.node.raise.restart(),e}))},N.api.registerEvent("node","start"),N.api.registerEvent("node","stop"),N.api.registerEvent("node","restart");var L={errorCodes:{REVOCATION_ALREADY_REGISTERED:1002,HTTP_LIMITATION:1006,IDENTITY_SANDBOX_FULL:1007,NO_MATCHING_IDENTITY:2001,UID_ALREADY_USED:2003,NO_MATCHING_MEMBER:2004,NO_IDTY_MATCHING_PUB_OR_UID:2021,WRONG_SIGNATURE_MEMBERSHIP:2006,MEMBERSHIP_ALREADY_SEND:2007,NO_CURRENT_BLOCK:2010,BLOCK_NOT_FOUND:2011,SOURCE_ALREADY_CONSUMED:2015,TX_INPUTS_OUTPUTS_NOT_EQUAL:2024,TX_OUTPUT_SUM_NOT_EQUALS_PREV_DELTAS:2025,TX_ALREADY_PROCESSED:2030},constants:I,regexp:{USER_ID:R(v.USER_ID),COMMENT:R(v.COMMENT),PUBKEY:R(v.PUBKEY),PUBKEY_WITH_CHECKSUM:R(v.PUBKEY_WITH_CHECKSUM),CURRENCY:R(v.CURRENCY),URI:R(v.URI),BMA_ENDPOINT:R(v.BMA_ENDPOINT),BMAS_ENDPOINT:R(v.BMAS_ENDPOINT),WS2P_ENDPOINT:R(v.WS2P_ENDPOINT),BMATOR_ENDPOINT:R(v.BMATOR_ENDPOINT),WS2PTOR_ENDPOINT:R(v.WS2PTOR_ENDPOINT),TX_OUTPUT_SIG:R(g),TX_OUTPUT_FUNCTION:A("SIG\\(([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44})\\)|XHX\\(([A-F0-9]{1,64})\\)|CSV\\(([0-9]{1,8})\\)|CLTV\\(([0-9]{1,10})\\)"),TX_OUTPUT_OBJ_OPERATOR_AND:A(f+"([ ]*&&[ ]*("+f+"))+"),TX_OUTPUT_OBJ_OPERATOR_OR:A(f+"([ ]*\\|\\|[ ]*("+f+"))+"),TX_OUTPUT_OBJ:A(f),TX_OUTPUT_OBJ_OPERATOR:A("OBJ\\(([0-9]+)\\)[ ]*(&&)|(\\|\\|)[ ]*OBJ\\(([0-9]+)\\)"),TX_OUTPUT_OBJ_PARENTHESIS:A("\\(("+f+")\\)"),TX_OUTPUT_FUNCTIONS:A("SIG\\(([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44})\\)|XHX\\(([A-F0-9]{1,64})\\)|CSV\\(([0-9]{1,8})\\)|CLTV\\(([0-9]{1,10})\\)([ ]*(&&)|(\\|\\|)[ ]*SIG\\(([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44})\\)|XHX\\(([A-F0-9]{1,64})\\)|CSV\\(([0-9]{1,8})\\)|CLTV\\(([0-9]{1,10})\\))*")},node:{summary:get("/node/summary",u.cache.LONG),same:function(e,t){return e===N.host&&(!N.port&&!t||N.port==t||80)&&N.useSsl==(t&&443===t)},forceUseSsl:N.forceUseSsl},network:{peering:{self:get("/network/peering"),peers:get("/network/peering/peers")},peers:get("/network/peers"),ws2p:{info:get("/network/ws2p/info"),heads:get("/network/ws2p/heads")}},wot:{lookup:get("/wot/lookup/:search",u.cache.MEDIUM),certifiedBy:get("/wot/certified-by/:pubkey"),certifiersOf:get("/wot/certifiers-of/:pubkey"),member:{all:get("/wot/members",u.cache.LONG),pending:get("/wot/pending",u.cache.SHORT)},requirements:function(e,t){return!0!==t?L.raw.wot.requirements(e):L.raw.wot.requirementsWithCache(e)},add:post("/wot/add"),certify:post("/wot/certify"),revoke:post("/wot/revoke")},blockchain:{parameters:get("/blockchain/parameters",u.cache.VERY_LONG),block:get("/blockchain/block/:block",u.cache.SHORT),blocksSlice:get("/blockchain/blocks/:count/:from"),current:get("/blockchain/current",u.cache.SHORT),membership:post("/blockchain/membership"),stats:{
-ud:get("/blockchain/with/ud",u.cache.MEDIUM),tx:get("/blockchain/with/tx"),newcomers:get("/blockchain/with/newcomers",u.cache.MEDIUM),hardship:get("/blockchain/hardship/:pubkey"),difficulties:get("/blockchain/difficulties")}},tx:{sources:get("/tx/sources/:pubkey",u.cache.SHORT),process:post("/tx/process"),history:{all:function(e){return L.raw.tx.history.all(e).then((function(e){return e.history=e.history||{},e.history.sending=[],e.history.pendings=[],e}))},times:function(e,t){return(!0!==t?L.raw.tx.history.times(e):L.raw.tx.history.timesWithCache(e)).then((function(e){return e.history=e.history||{},e.history.sending=[],e.history.pendings=[],e}))},blocks:get("/tx/history/:pubkey/blocks/:from/:to",u.cache.LONG),pending:get("/tx/history/:pubkey/pending")}},ud:{history:get("/ud/history/:pubkey")},uri:{},version:{},raw:{wot:{requirementsWithCache:get("/wot/requirements/:pubkey",u.cache.LONG),requirements:get("/wot/requirements/:pubkey")},tx:{history:{timesWithCache:get("/tx/history/:pubkey/times/:from/:to",u.cache.LONG),times:get("/tx/history/:pubkey/times/:from/:to"),all:get("/tx/history/:pubkey")}}}};L.tx.parseUnlockCondition=function(e){for(var t,n,i,a,o=e,r=[],s={},l=L.regexp.TX_OUTPUT_FUNCTION.exec(o);l;)t={},n="OBJ("+r.length+")",t.type=o.substr(l.index,l[0].indexOf("(")),t.value=l[1]||l[2]||l[3]||l[4],r.push(t),s[t.type]=s[t.type]++||1,o=o.replace(l[0],n),l=L.regexp.TX_OUTPUT_FUNCTION.exec(o);for(var c=!0;c;){for(c=!!(l=L.regexp.TX_OUTPUT_OBJ_OPERATOR_AND.exec(o));l;){for(t={},n="OBJ("+r.length+")",t.type="AND",t.children=[],r.push(t),i=l[0],a=L.regexp.TX_OUTPUT_OBJ.exec(i);a;)t.children.push(r[a[1]]),i=i.replace(a[0],""),a=L.regexp.TX_OUTPUT_OBJ.exec(i);o=o.replace(l[0],n),l=L.regexp.TX_OUTPUT_OBJ_OPERATOR_AND.exec(i)}for(l=L.regexp.TX_OUTPUT_OBJ_OPERATOR_OR.exec(o),c=c||!!l;l;){for(t={},n="OBJ("+r.length+")",t.type="OR",t.children=[],r.push(t),i=l[0],a=L.regexp.TX_OUTPUT_OBJ.exec(i);a;)t.children.push(r[a[1]]),i=i.replace(a[0],""),a=L.regexp.TX_OUTPUT_OBJ.exec(i);o=o.replace(l[0],n),l=L.regexp.TX_OUTPUT_OBJ_OPERATOR_AND.exec(o)}for(l=L.regexp.TX_OUTPUT_OBJ_PARENTHESIS.exec(o),c=c||!!l;l;)o=o.replace(l[0],l[1]),l=L.regexp.TX_OUTPUT_OBJ_PARENTHESIS.exec(o)}if(0!==(s=_.keys(s)).length)return console.debug("[BMA] Unlock conditions successfully parsed:",t),{unlockFunctions:s,unlockTree:t};console.error("[BMA] Unparseable unlock condition: ",output)},L.node.parseEndPoint=function(e,t){var n=L.regexp.BMA_ENDPOINT.exec(e);return n?{dns:n[2]||"",ipv4:n[4]||"",ipv6:n[6]||"",port:n[8]||80,useSsl:n[8]&&443==n[8],path:n[10],useBma:!0}:(n=L.regexp.BMAS_ENDPOINT.exec(e))?{dns:n[2]||"",ipv4:n[4]||"",ipv6:n[6]||"",port:n[8]||80,useSsl:!0,path:n[10],useBma:!0}:(n=L.regexp.BMATOR_ENDPOINT.exec(e))?{dns:n[1]||"",port:n[2]||80,useSsl:!1,useTor:!0,useBma:!0}:(n=L.regexp.WS2P_ENDPOINT.exec(e))?{ws2pid:n[1]||"",dns:n[3]||"",ipv4:n[5]||"",ipv6:n[7]||"",port:n[9]||80,useSsl:n[9]&&443==n[9],path:n[11]||"",useWs2p:!0}:(n=L.regexp.WS2PTOR_ENDPOINT.exec(e))?{ws2pid:n[1]||"",dns:n[2]||"",port:n[3]||80,path:n[4]||"",useSsl:!1,useTor:!0,useWs2p:!0}:t&&(n=R(t+T).exec(e))?{dns:n[2]||"",ipv4:n[4]||"",ipv6:n[6]||"",port:n[8]||80,useSsl:n[8]&&443==n[8],path:n[10],useBma:!1}:void 0},L.copy=function(t){var n=N.started;if(u.getUrl(t.host,t.port,"",t.useSsl)!==N.url)return N.init(t.host,t.port,t.useSsl,N.useCache),n?N.restart():e.when()},L.wot.member.uids=function(){return L.wot.member.all().then((function(e){return e.results.reduce((function(e,t){return e[t.pubkey]=t.uid,e}),{})}))},L.wot.member.get=function(e){return L.wot.member.uids().then((function(t){var n=t[e];return{pubkey:e,uid:n||null}}))},L.wot.member.getByUid=function(e){return L.wot.member.all().then((function(t){return _.findWhere(t.results,{uid:e})}))},L.blockchain.blocks=function(e){return L.raw.getHttpRecursive(L.blockchain.block,"block",e)},L.network.peering.peersByLeaves=function(e){return L.raw.getHttpRecursive(L.network.peering.peers,"leaf",e,0,10)},L.raw.getHttpRecursive=function(t,n,a,o,r){return o=angular.isDefined(o)?o:0,r=r||L.constants.LIMIT_REQUEST_COUNT,e((function(s,l){var c=[],u=[];_.each(a.slice(o,o+r),(function(e){var i={};i[n]=e,u.push(t(i).then((function(e){e&&c.push(e)})))})),e.all(u).then((function(){o<a.length-1?i((function(){L.raw.getHttpRecursive(t,n,a,o+r,r).then((function(e){e&&e.length?s(c.concat(e)):s(c)})).catch((function(e){l(e)}))}),L.constants.LIMIT_REQUEST_DELAY):s(c)})).catch((function(e){e&&e.ucode===L.errorCodes.HTTP_LIMITATION?s(c):l(e)}))}))},L.raw.getHttpWithRetryIfLimitation=function(e){return e().catch((function(t){if(t&&t.ucode==L.errorCodes.HTTP_LIMITATION)return i((function(){return L.raw.getHttpWithRetryIfLimitation(e)}),L.constants.LIMIT_REQUEST_DELAY)}))},L.blockchain.lastUd=function(){return L.blockchain.stats.ud().then((function(e){if(!e.result.blocks||!e.result.blocks.length)return null;var t=e.result.blocks[e.result.blocks.length-1];return L.blockchain.block({block:t}).then((function(e){return e.unitbase>0?e.dividend*Math.pow(10,e.unitbase):e.dividend}))}))},L.uri.parse=function(t){return e((function(e,n){var i;if(R(v.PUBKEY).test(t))e({pubkey:t});else if(R(v.PUBKEY_WITH_CHECKSUM).test(t)){console.debug("[BMA.parse] Detecting a pubkey with checksum: "+t);var o=L.regexp.PUBKEY_WITH_CHECKSUM.exec(t);i=o[1];var r=o[2];console.debug("[BMA.parse] Detecting a pubkey {"+i+"} with checksum {"+r+"}");var s=a.util.pkChecksum(i);console.debug("[BMA.parse] Expecting checksum for pubkey is {"+s+"}"),r!=s?n({message:"ERROR.PUBKEY_INVALID_CHECKSUM"}):e({pubkey:i})}else if(t.startsWith("duniter://")){var l,c=u.uri.parse(t),d=-1===c.host.indexOf(".")?c.host:null,p=-1!==c.host.indexOf(".")?c.host:null;if(c.username&&(c.password?(l=c.username,i=c.password):i=c.username),c.pathname){var m=c.pathname.split("/"),E=m?m.length:0,b=0;if(!d&&E>b&&(d=m[b++]),!i&&E>b&&(i=m[b++]),!l&&E>b&&(l=m[b++]),E>b)return void n({message:"Bad Duniter URI format. Invalid path (incomplete or redundant): "+c.pathname})}if(d)return p||e({uid:l,pubkey:i,currency:d}),u.get(p+"/blockchain/parameters")().then((function(t){t.currency===d?e({uid:l,pubkey:i,host:p,currency:d}):n({message:"Node's currency ["+t.currency+"] does not matched URI's currency ["+d+"]."})})).catch((function(e){console.error(e),n({message:"Could not get node parameter. Currency could not be retrieve"})}));if(!p)return void n({message:"Bad Duniter URI format. Missing currency name (or node address)."});u.get(p+"/blockchain/parameters")().then((function(t){e({uid:l,pubkey:i,host:p,currency:t.currency})})).catch((function(e){console.error(e),n({message:"Could not get node parameter. Currency could not be retrieve"})}))}else console.debug("[BMA.parse] Could not parse URI: "+t),n({message:"ERROR.UNKNOWN_URI_FORMAT"})})).then((function(e){if(e){if(e.pubkey&&!R(v.PUBKEY).test(e.pubkey))throw{message:"Invalid pubkey format ["+e.pubkey+"]"};if(e.uid&&!R(v.USER_ID).test(e.uid))throw{message:"Invalid uid format ["+e.uid+"]"};if(e.currency&&!R(v.CURRENCY).test(e.currency))throw{message:"Invalid currency format ["+e.currency+"]"};return e}}))};var D=c.data.duniterLatestReleaseUrl&&u.uri.parse(c.data.duniterLatestReleaseUrl);L.raw.getLatestRelease=D?u.getWithCache(D.host,D.port,"/"+D.pathname,443==+D.port||"https:"===D.protocol||N.forceUseSsl,u.cache.LONG):function(){return e.when()},L.version.latest=function(){return L.raw.getLatestRelease().then((function(e){if(e)return e.name&&e.html_url?{version:e.name,url:e.html_url}:e.tag_name&&e.html_url?{version:e.tag_name.substring(1),url:e.html_url}:void 0})).catch((function(e){console.error("[BMA] Failed to get Duniter latest version",e)}))},L.websocket={block:ws("/ws/block"),peer:ws("/ws/peer"),close:S},angular.merge(N,L)}var p=new d(void 0,void 0,void 0,!0);return p.instance=function(e,t,n,i){return new d(e,t,n,i)},p.lightInstance=function(e,t,n,i){return{host:e,port:t=t||80,useSsl:n=angular.isDefined(n)?n:443==t,url:u.getUrl(e,t,"",n),node:{summary:u.getWithCache(e,t,"/node/summary",n,u.cache.LONG,!1,i)},network:{peering:{self:u.get(e,t,"/network/peering",n,i)},peers:u.get(e,t,"/network/peers",n,i)},blockchain:{current:u.get(e,t,"/blockchain/current",n,i),stats:{hardship:u.get(e,t,"/blockchain/hardship/:pubkey",n,i)}}}},p}]),angular.module("cesium.wot.services",["ngApi","cesium.bma.services","cesium.crypto.services","cesium.utils.services","cesium.settings.services"]).factory("csWot",["$rootScope","$q","$timeout","BMA","Api","CacheFactory","csConfig","csCurrency","csSettings","csCache",function(e,t,n,i,a,o,r,s,l,c){function u(o){var r=new a(this,"csWot-"+o),u=c.get("csWot-idty-",c.constants.MEDIUM),d=c.get("csWot-requirements-",c.constants.MEDIUM),p=function(e){var t={};return e.reduce((function(e,n){return n.id=n.id||n.uid+"-"+n.pubkey,t[n.id]?e:(t[n.id]=!0,e.concat(n))}),[])},m=function(e,t,n){return t=t||0,e=p(e),e=_.sortBy(e,(function(e){var t=1;return t+=1e6*e.block,-(t+=10*(900-e.uid.toLowerCase().charCodeAt(0)))})),angular.isDefined(n)&&e.length>n&&(e=e.slice(t,t+n)),e},E=function(e){e.requirements={loaded:!1,meta:{},hasSelf:!1,needSelf:!0,needMembership:!0,canMembershipOut:!1,needRenew:!1,pendingMembership:!1,isMember:!1,wasMember:!1,certificationCount:0,needCertifications:!1,needCertificationCount:0,willNeedCertificationCount:0,alternatives:void 0},e.blockUid=null,e.isMember=!1,e.sigDate=null,e.hasSelf=!1},b=function(e,t){if(e.hasSelf=!!e.meta.timestamp,e.needSelf=!e.hasSelf||e.meta.invalid,e.wasMember=!!angular.isDefined(e.wasMember)&&e.wasMember,e.needMembership=!e.revoked&&e.membershipExpiresIn<=0&&e.membershipPendingExpiresIn<=0&&!e.wasMember,e.needRenew=!e.needMembership&&!e.revoked&&e.membershipExpiresIn<=l.data.timeWarningExpireMembership&&e.membershipPendingExpiresIn<=0||e.wasMember&&!e.revoked&&0===e.membershipExpiresIn&&0===e.membershipPendingExpiresIn,e.canMembershipOut=!e.revoked&&e.membershipExpiresIn>0,e.pendingMembership=!e.revoked&&e.membershipExpiresIn<=0&&e.membershipPendingExpiresIn>0,e.isMember=!e.revoked&&e.membershipExpiresIn>0,e.blockUid=e.meta.timestamp,e.certificationCount=(e.isMember||e.wasMember&&!e.expired)&&e.certifications?e.certifications.length:0,e.willExpireCertificationCount=e.certifications?e.certifications.reduce((function(e,t){return e+(t.expiresIn<=l.data.timeWarningExpire?1:0)}),0):0,e.willExpire=e.willExpireCertificationCount>0,e.pendingRevocation=!e.revoked&&!!e.revocation_sig,e.isMember||e.wasMember)e.pendingCertificationCount=angular.isDefined(e.pendingCerts)?e.pendingCerts.length:0;else{var n=_.union(_.pluck(e.pendingCerts||[],"from"),_.pluck(e.certifications||[],"from"));e.pendingCertificationCount=_.size(n)}return e.needCertificationCount=!e.needSelf&&e.certificationCount<t.sigQty?t.sigQty-e.certificationCount:0,e.willNeedCertificationCount=!e.needMembership&&!e.needCertificationCount&&e.certificationCount-e.willExpireCertificationCount<t.sigQty?t.sigQty-e.certificationCount+e.willExpireCertificationCount:0,e.loaded=!0,e},g=function(e){if(!e)return t.when(e);var n=[];return _.forEach(e,(function(e){var t=e.meta.timestamp.split("-",2);e.meta.number=parseInt(t[0]),e.meta.hash=t[1],e.meta.sig=e.meta.sig||e.sig,delete e.sig,n.push(e.meta.number)})),i.blockchain.blocks(_.uniq(n)).then((function(t){return _.forEach(e,(function(e){var n=_.findWhere(t,{number:e.meta.number});e.meta.time=n&&n.medianTime,n&&0!==e.meta.number&&e.meta.hash!==n.hash&&(e.meta.invalid=!0)})),e})).catch((function(t){if(t&&t.ucode==i.errorCodes.BLOCK_NOT_FOUND)return _.forEach(e,(function(e){0===e.number&&(e.meta.time=moment().utc().unix())})),e;throw t}))},f=function(e,n){if(!e||!e.pubkey&&!e.uid)return t.when(e);var a=e.pubkey||e.uid,o=!1!==n?d.get(a):null;if(o)return console.debug("[wot] Requirements "+a+" found in cache"),angular.merge(e,o),t.when(o);o={pubkey:e.pubkey,uid:e.uid};var r=Date.now();return t.all([s.get(),i.wot.requirements({pubkey:o.pubkey||o.uid},!1).then((function(e){return g(e&&e.identities)}))]).then((function(t){var n=t[0],i=t[1];if(i&&i.length)return i.length>1&&(i=_.sortBy(i,(function(e){var t=0;t+=1e12*(o.uid&&e.uid===o.uid?1:0),t+=1e11*(e.meta.invalid?0:1),t+=1e10*(o.blockUid&&e.meta.timestamp&&e.meta.timestamp===o.blockUid?1:0),t+=1e9*(e.membershipExpiresIn>0?1:0),t+=1e8*(e.membershipPendingExpiresIn>0?1:0),t+=1e7*(e.expired?0:1),t+=1e6*(e.outdistanced?0:1),t+=1e5*(e.wasMember?1:0);var n=!e.expired&&e.certifications?e.certifications.length:0;return t+=1*(n||0),-(t+=1*(!n&&e.membershipPendingExpiresIn>0?e.membershipPendingExpiresIn/1e3:0))})),console.debug("[wot] Found {0} identities (in requirements). Will selected the best one".format(i.length))),o.requirements=b(i[0],n.parameters),o.pubkey=o.requirements.pubkey,o.uid=o.requirements.uid,o.isMember=o.requirements.isMember,o.blockUid=o.requirements.meta&&o.requirements.meta.timestamp,o.hasSelf=o.requirements.hasSelf,o.sigDate=o.requirements.meta&&o.requirements.meta.time,!o.requirements.isMember&&!o.requirements.wasMember&&i.length>1&&(o.requirements.alternatives=i.splice(1),_.forEach(o.requirements.alternatives,(function(e){b(e,n.parameters)}))),d.put(a,o),angular.merge(e,o),console.debug("[wot] Requirements for '{0}' loaded in {1}ms".format(o.pubkey&&o.pubkey.substring(0,8)||o.uid,Date.now()-r)),e})).catch((function(t){if(E(e),t&&(t.ucode==i.errorCodes.NO_MATCHING_MEMBER||t.ucode==i.errorCodes.NO_IDTY_MATCHING_PUB_OR_UID))return e.requirements.loaded=!0,e;throw t}))},T=function(e,t){var n={pubkey:e,uid:t,hasSelf:!1};return i.wot.lookup({search:e||t}).then((function(e){var t=e.results.reduce((function(e,t){return e.concat(t.uids.reduce((function(e,n){var i=n.meta.timestamp.split("-",2),a=parseInt(i[0]);return e.concat({uid:n.uid,pubkey:t.pubkey,meta:{timestamp:n.meta.timestamp,number:a,hash:i[1],sig:n.self},revoked:n.revoked,revoked_on:n.revoked_on})}),[]))}),[]);return g(t).then((function(t){return{identities:t,results:e.results}}))})).then((function(e){var t=e.identities;t.length>1&&(e.identities=_.sortBy(t,(function(e){var t=0;return t+=1e11*(n.uid&&e.uid===n.uid?1:0),t+=1e10*(e.meta.invalid?0:1),t+=1e9*(n.blockUid&&e.meta.timestamp&&e.meta.timestamp===n.blockUid?1:0),t+=1e8*(e.revoked?0:1),-(t+=1*(e.meta.number?e.meta.number:0)/1e3)})),console.debug("[wot] Found {0} identities (in lookup). Will selected the best one".format(t.length))),_.forEach(t,(function(e){e.hasSelf=!!(e.uid&&e.meta.timestamp&&e.meta.sig)})),n.requirements=t[0],n.pubkey=n.requirements.pubkey,n.uid=n.requirements.uid,n.blockUid=n.requirements.meta&&n.requirements.meta.timestamp,n.hasSelf=n.requirements.hasSelf,n.sigDate=n.requirements.meta&&n.requirements.meta.time,t.length>1&&(n.requirements.alternatives=t.splice(1)),n.lookup={};var i={};return n.lookup.certifications=(e.results||[]).reduce((function(e,t){return t.uids.reduce((function(e,t){var n=t.uid+"-"+(t.meta?t.meta.timestamp:"");return e[n]=(t.others||[]).reduce((function(e,t){var a=n+"-"+t.pubkey,o={pubkey:t.pubkey,uid:t.uids[0],cert_time:{block:t.meta&&t.meta.block_number?t.meta.block_number:0,block_hash:t.meta&&t.meta.block_hash?t.meta.block_hash:null},isMember:t.isMember,wasMember:t.wasMember};return i[a]?o.cert_time.block>i[a].cert_time.block?(i[a]=o,e.splice(_.findIndex(e,{pubkey:t.pubkey}),1,o),e):e:(i[a]=o,e.concat(o))}),[]),e}),e)}),{}),i={},n.lookup.givenCertifications=(e.results||[]).reduce((function(e,t){return(t.signed||[]).reduce((function(e,t){var n={pubkey:t.pubkey,uid:t.uid,cert_time:{block:t.cert_time&&t.cert_time.block?t.cert_time.block:0,block_hash:t.cert_time&&t.cert_time.block_hash?t.cert_time.block_hash:null},sigDate:t.meta?t.meta.timestamp:null,isMember:t.isMember,wasMember:t.wasMember};if(i[t.pubkey]){if(!(n.block>i[t.pubkey].block))return e;i[t.pubkey]=n}else i[t.pubkey]=n;return e.concat(n)}),e)}),[]),n})).catch((function(e){if(e&&e.ucode==i.errorCodes.NO_MATCHING_IDENTITY)return E(n),n;throw e}))},h=function(e,t,n,a,o,r){function c(e,t){return e+"-"+t}var u=!0,d=n?n.reduce((function(e,t){var n=c(t.pubkey,t.cert_time?t.cert_time.block:t.sigDate);return t.cert_time||(u=!1),e[n]=t,e}),{}):{};return e({pubkey:t}).then((function(e){return(e&&e.certifications||[]).reduce((function(e,t){var n=!t.written,i=t.cert_time?t.cert_time.medianTime:null,r=i?n?i+a.sigWindow-o:i+a.sigValidity-o:0;r=r<0?0:r;var s=c(t.pubkey,u&&t.cert_time?t.cert_time.block:t.sigDate);return delete d[s],e.concat({pubkey:t.pubkey,uid:t.uid,time:i,isMember:t.isMember,wasMember:t.wasMember,expiresIn:r,willExpire:r&&r<=l.data.timeWarningExpire,pending:n,block:null!==t.written?t.written.number:t.cert_time?t.cert_time.block:null,valid:r>0})}),[])})).catch((function(e){if(e&&e.ucode==i.errorCodes.NO_MATCHING_MEMBER)return[];if(e&&1002==e.ucode)return console.warn("[wallet-service] Detecting Duniter issue #1309 ! Applying workaround... "),[];throw e})).then((function(e){var t=_.values(d);if(!t.length)return e;if(s.data.initPhase)return t.reduce((function(e,t){return e.concat({pubkey:t.pubkey,uid:t.uid,isMember:t.isMember,wasMember:t.wasMember,time:null,expiresIn:a.sigWindow,willExpire:!1,pending:!0,block:0,valid:!0})}),e);var n=t.reduce((function(e,t){var n=u&&t.cert_time?t.cert_time.block:t.sigDate?t.sigDate.split("-")[0]:null;return angular.isDefined(n)&&(e[n]?e[n].push(t):e[n]=[t]),e}),{});return i.blockchain.blocks(_.keys(n)).then((function(t){return e=t.reduce((function(e,t){return e.concat(n[t.number].reduce((function(e,n){var i=t.medianTime,s=Math.max(0,i+a.sigWindow-o),c=!n.cert_time||!n.cert_time.block_hash||n.cert_time.block_hash==t.hash;c||console.debug("[wot] Invalid cert {0}: block hash changed".format(n.pubkey.substring(0,8)));var d=s>0&&(!r||n.isMember)&&c;return e.concat({pubkey:n.pubkey,uid:n.uid,isMember:n.isMember,wasMember:n.wasMember,time:i,expiresIn:s,willExpire:s&&s<=l.data.timeWarningExpire,pending:!0,block:u&&n.cert_time?n.cert_time.block:n.sigDate?n.sigDate.split("-")[0]:null,valid:d})}),[]))}),e)}))})).then((function(e){var t=e.reduce((function(e,t){return!t.pending&&t.valid&&t.expiresIn>=a.sigWindow&&(e[t.pubkey]=!0),e}),{});e=function(e){return _.sortBy(e,(function(e){var t=1;return t+=1e12*(e.expiresIn?e.expiresIn:0),t+=1e7*(e.isMember?1:0),-(t+=10*(e.block?e.block:0))}))}(e);var n=[],i=[];return{valid:e.reduce((function(e,a){return a.pending?(a.valid&&!t[a.pubkey]?n.push(a):a.valid||t[a.pubkey]||i.push(a),e):e.concat(a)}),[]),pending:n,error:i}}))},v=function(e,n,a){var o;if(a=a||{},!e&&n&&!a.force)return i.wot.member.getByUid(n).then((function(t){if(t)return v(t.pubkey,t.uid,i);var i=angular.copy(i||{});return i.force=!0,v(e,n,i)}));if(e){if((o=!1!==a.cache?u.get(e):null)&&(!n||o.uid===n)&&(!a.blockUid||o.blockUid===a.blockUid))return console.debug("[wot] Identity "+e.substring(0,8)+" found in cache"),t.when(o);console.debug("[wot] Loading identity "+e.substring(0,8)+"..."),o={pubkey:e,uid:n}}else console.debug("[wot] Loading identity from uid "+n),o={uid:n};a.blockUid&&(o.blockUid=a.blockUid);var l,c,d=Date.now();return t.all([s.parameters().then((function(e){l=e})),s.blockchain.current().then((function(e){c=e.medianTime})).catch((function(e){if(!e||e.ucode!=i.errorCodes.NO_CURRENT_BLOCK)throw e;c=moment.utc().unix()})),f(o,!1!==a.cache),T(e,n)]).then((function(e){var n=e[3];if(!o.requirements.uid)return console.debug("[wot] No requirements found: using data from lookup"),angular.merge(o,n),void delete o.lookup;var a=o.requirements.uid+"-"+o.requirements.meta.timestamp;return t.all([h(i.wot.certifiersOf,o.pubkey,n.lookup?n.lookup.certifications[a]:null,l,c,!0).then((function(e){o.received_cert=e.valid,o.received_cert_pending=e.pending,o.received_cert_error=e.error})),h(i.wot.certifiedBy,o.pubkey,n.lookup?n.lookup.givenCertifications:null,l,c,!1).then((function(e){o.given_cert=e.valid,o.given_cert_pending=e.pending,o.given_cert_error=e.error}))])})).then((function(){return o.requirements.pendingCertificationCount=o.received_cert_pending?o.received_cert_pending.length:o.requirements.pendingCertificationCount,o.requirements.revoked=angular.isDefined(o.requirements.revoked)?o.requirements.revoked:o.revoked,function(e){e.requirements.revoked?(delete e.requirements.meta.invalid,e.requirements.revoked_on?(A(e,{type:"error",message:"ERROR.IDENTITY_REVOKED_WITH_TIME",messageParams:{revocationTime:e.requirements.revoked_on}}),console.debug("[wot] Identity [{0}] has been revoked on {1}".format(e.uid,e.requirements.revoked_on))):(A(e,{type:"error",message:"ERROR.IDENTITY_REVOKED"}),console.debug("[wot] Identity [{0}] has been revoked".format(e.uid)))):e.requirements.pendingRevocation?(delete e.requirements.meta.invalid,A(e,{type:"error",message:"ERROR.IDENTITY_PENDING_REVOCATION"}),console.debug("[wot] Identity [{0}] has pending revocation".format(e.uid))):e.requirements.meta&&e.requirements.meta.invalid?e.isMember||(A(e,{type:"error",message:"ERROR.IDENTITY_INVALID_BLOCK_HASH"}),console.debug("[wot] Invalid membership for uid {0}: block hash changed".format(e.uid))):e.requirements.expired?(A(e,{type:"error",message:"ERROR.IDENTITY_EXPIRED"}),console.debug("[wot] Identity {0} expired (in sandbox)".format(e.uid))):e.requirements.willNeedCertificationCount>0?(A(e,{type:"error",message:"INFO.IDENTITY_WILL_MISSING_CERTIFICATIONS",messageParams:e.requirements}),console.debug("[wot] Identity {0} will need {1} certification(s)".format(e.uid,e.requirements.willNeedCertificationCount))):!e.requirements.needSelf&&e.requirements.needMembership&&(A(e,{type:"error",message:"INFO.IDENTITY_NEED_MEMBERSHIP"}),console.debug("[wot] Identity {0} has a self but no membership".format(e.uid))),!e.isMember&&e.requirements.alternatives&&A(e,{type:"info",message:"INFO.HAS_ALTERNATIVE_IDENTITIES"})}(o),r.data.raisePromise.load(o).catch((function(e){console.debug("Error while loading identity data, on extension point."),console.error(e)}))})).then((function(){if(o.pubkey)return u.put(o.pubkey,o),console.debug("[wot] Identity "+o.pubkey.substring(0,8)+" loaded in "+(Date.now()-d)+"ms"),o}))},I=function(e,n){if(!e||e.trim()!==e)return t.when(void 0);var a=e.replace(/(^|\s)#\w+/g,"");return a=(a=a.replace(/[^a-zA-Z0-9_-\s]+/g,"")).replace(/\s+/g," ").trim(),(n=n||{}).addUniqueId=!angular.isDefined(n.addUniqueId)||n.addUniqueId,n.allowExtension=!angular.isDefined(n.allowExtension)||n.allowExtension,n.excludeRevoked=!!angular.isDefined(n.excludeRevoked)&&n.excludeRevoked,(a?t.all(a.split(" ").reduce((function(e,t){return console.debug("[wot] Will search on: '"+t+"'"),e.concat(i.wot.lookup({search:t}))}),[])).then((function(e){return e.reduce((function(e,t){return e.concat(t.results.reduce((function(e,t){return e.concat(t.uids.reduce((function(e,i){var a=i.meta.timestamp.split("-",2),o=!i.revoked&&i.revocation_sig;return n.excludeRevoked&&o?e:e.concat({uid:i.uid,pubkey:t.pubkey,number:a[0],hash:a[1],revoked:o})}),[]))}),[]))}),[])})).catch((function(e){if(e&&e.ucode==i.errorCodes.NO_MATCHING_IDENTITY)return[];throw e})):t.when([])).then((function(t){if(!n.allowExtension)return n.addUniqueId?p(t):t;var a=t.length;return r.data.raisePromise.search(e,t,"pubkey").then((function(){if(t.length>a&&_.filter(t,(function(e){return!e.uid&&e.pubkey})).length)return i.wot.member.uids().then((function(e){_.forEach(t,(function(t){!t.uid&&t.pubkey&&(t.uid=e[t.pubkey])}))}))})).then((function(){return n.addUniqueId?p(t):t}))}))},N=function(e,a,o,r){return t((function(s,l){var c=[],u=[];_.each(e.slice(a,a+o),(function(e){u.push(i.blockchain.block({block:e}).then((function(e){e&&e.joiners&&_.each(e.joiners,(function(t){var n=t.split(":"),i=n[n.length-1]+"-"+n[0];c.push({id:i,uid:n[n.length-1],pubkey:n[0],memberDate:e.medianTime,block:e.number})}))})))})),t.all(u).then((function(){c.length<r&&a<e.length-1?n((function(){N(e,a+o,o,r-c.length).then((function(e){s(c.concat(e))})).catch((function(e){l(e)}))}),1e3):s(c)})).catch((function(e){e&&e.ucode===i.errorCodes.HTTP_LIMITATION?s(c):l(e)}))}))},O=function(e,a,o){return t((function(r,s){var l=[],c={},u=[];_.each(e.slice(a,a+o),(function(e){u.push(I(e,{addUniqueId:!1,allowExtension:!1}).then((function(e){e&&e.length&&(l=e.reduce((function(e,t){return c[t.pubkey]?e:(c[t.pubkey]=!0,e.concat(t))}),l))})))})),t.all(u).then((function(){a<e.length-1?n((function(){O(e,a+o,o).then((function(e){e&&e.length?r(e.reduce((function(e,t){return c[t.pubkey]?e:(c[t.pubkey]=!0,e.concat(t))}),l)):r(l)})).catch((function(e){s(e)}))}),i.constants.LIMIT_REQUEST_DELAY):r(l)})).catch((function(e){e&&e.ucode===i.errorCodes.HTTP_LIMITATION?r(l):s(e)}))}))},R=function(e,n,a){n=n||"pubkey";var o=[];return a||o.push(i.wot.member.uids()),o.push(r.data.raisePromise.search(null,e,n).catch((function(e){console.debug("Error while search identities, on extension point."),console.error(e)}))),t.all(o).then((function(t){if(!a){var i=t[0];_.forEach(e,(function(e){!e.uid&&e[n]&&(e.uid=i[e[n]],e.uid&&e.uid==e.name&&delete e.name)}))}return e}))},A=function(e,t){(t=t||{}).type=t.type||"info",t.message=t.message||"",t.messageParams=t.messageParams||{},e.events=e.events||[],e.events.push(t)};return r.registerEvent("data","load"),r.registerEvent("data","search"),i.api.node.on.stop(e,(function(){console.debug("[wot] Cleaning cache..."),c.clear("csWot-")}),this),{id:o,load:v,loadRequirements:f,search:I,newcomers:function(e,n){var a;return e=e||0,n=n||20,t.all([s.blockchain.current(!0).then((function(e){a=e.membersCount||0})),i.blockchain.stats.newcomers()]).then((function(t){if(!((t=t[1])&&t.result&&t.result.blocks&&t.result.blocks.length))return null;var i=_.sortBy(t.result.blocks,(function(e){return-e}));return N(i,0,5,e+n)})).then((function(t){return t&&t.length?(t=m(t,e,n),R(t,"pubkey",!0)):null})).then((function(e){return{hits:e,total:a}}))},pending:function(e,n){e=e||0,n=n||20;var a=Date.now();return t.all([i.wot.member.uids(),i.wot.member.pending().then((function(e){return e.memberships&&e.memberships.length?e.memberships:void 0}))]).then((function(o){var r=o[0],s=o[1];if(s){var l={},c={};_.forEach(s,(function(e){if("IN"==e.membership&&!r[e.pubkey]){var t={uid:e.uid,pubkey:e.pubkey,block:e.blockNumber,blockHash:e.blockHash},n=c[e.pubkey];if(n&&t.block>n.block)return;c[t.pubkey]=t,l[t.block]?l[t.block].push(t):l[t.block]=[t],n&&(l[n.block]=l[n.block].reduce((function(e,t){return t.pubkey==n.pubkey?e:(e||[]).concat(t)}),null),null===l[n.block]&&delete l[n.block])}}));var u=_.values(c),d=u.length,p=(u=m(u,e,n)).reduce((function(e,t){return e.concat(t.block)}),[]);return t.all([i.blockchain.blocks(_.uniq(p)).then((function(e){_.forEach(e,(function(e){_.forEach(l[e.number],(function(t){t.sigDate=e.medianTime,0!==e.number&&t.blockHash!==e.hash&&(A(t,{type:"error",message:"ERROR.WOT_PENDING_INVALID_BLOCK_HASH"}),console.debug("Invalid membership for uid={0}: block hash changed".format(t.uid)))}))}))})),R(u,"pubkey",!0)]).then((function(){return console.debug("[ES] [wot] Loaded {0}/{1} pending identities in {2} ms".format(u&&u.length||0,d,Date.now()-a)),{hits:u,total:d}}))}}))},all:function(){return O(["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","u","v","w","x","y","z"],0,i.constants.LIMIT_REQUEST_COUNT).then((function(e){return R(e,"pubkey",!0)})).then(p).then((function(){return{hits:idties,total:idties.length}}))},extend:function(e,t,n){return R([e],t,n).then((function(e){return e[0]}))},extendAll:R,api:r}}var d=u("default");return d.instance=u,d}]),angular.module("cesium.tx.services",["ngApi","cesium.bma.services","cesium.settings.services","cesium.wot.services"]).factory("csTx",["$q","$timeout","$filter","$translate","FileSaver","UIUtils","BMA","Api","csConfig","csSettings","csWot","csCurrency",function(e,t,n,i,a,o,r,s,l,c,u,d){const p=r;function m(t,r){r=r||p;var l=new s(this,"csTx-"+t);function m(e,t,n,i,a){t&&t.length&&_.forEach(t,(function(t){if(null!==t.block_number||a){var o,s,l=!1,c=t.issuers.reduce((function(t,n){return l=l||n===e,n!==e?t.concat(n):t}),[]),u=[],d=[],p=t.outputs.reduce((function(n,i,a){var p="string"==typeof i?i.split(":",3):[i.amount,i.base,i.conditions];o=parseInt(p[1]);var m=b(parseInt(p[0]),o),E=p[2],g=r.regexp.TX_OUTPUT_SIG.exec(E);if(g){var f=g[1];if(f===e){if(!l)return n+m;null===t.block_number&&d.push({amount:parseInt(p[0]),base:o,type:"T",identifier:t.hash,noffset:a,consumed:!1,conditions:E})}else if(""===f||_.contains(c,f)||u.push(f),l)return n-m}else if(-1!==E.indexOf("SIG("+e+")")){var T=r.tx.parseUnlockCondition(E);if(T)return d.push(angular.merge({amount:parseInt(p[0]),base:o,type:"T",identifier:t.hash,noffset:a,conditions:E,consumed:!1},T)),T.amount=m,(s=s||[]).push(T),console.debug("[tx] has locked output:",T),n+m}return n}),0),m=p>0?c:u,E=t.time||t.blockstampTime,g=p+":"+t.hash+":"+E;if(!i[g]){i[g]=!0;var f={time:E,amount:p,pubkey:1===m.length?m[0]:void 0,pubkeys:m.length>1?m:void 0,comment:t.comment,isUD:!1,hash:t.hash,locktime:t.locktime,block_number:t.block_number};l&&null===t.block_number&&(f.inputs=t.inputs,f.sources=d),s&&(f.lockedOutputs=s),n.push(f)}}}))}function E(t,n){return e((function(i,a){var o=moment().utc().unix();n=n||o-c.data.walletHistoryTimeSecond;var s={pendings:[],validating:[],history:[],errors:[]},u={},p=[d.blockchain.current(!0),r.tx.history.pending({pubkey:t}).then((function(e){m(t,e.history.sending,s.pendings,u,!0),m(t,e.history.pending,s.pendings,u,!0)}))];if("pending"!==n){var E=function(e){m(t,e.history.sent,s.history,u,!1),m(t,e.history.received,s.history,u,!1)};if(n>0){for(var b=c.data.walletHistorySliceSecond,g=n-=n%b;g-b<o;g+=b)p.push(r.tx.history.times({pubkey:t,from:g,to:g+b-1},!0).then(E));p.push(r.tx.history.times({pubkey:t,from:o-o%b,to:o+999999999},!1).then(E))}else p.push(r.tx.history.all({pubkey:t}).then(E));c.data.showUDHistory&&n>0&&p.push(l.data.raisePromise.loadUDs({pubkey:t,fromTime:n}).then((function(e){e&&e.length&&_.forEach(e,(function(e){s.history.push(e)}))})).catch((function(e){console.debug("Error while loading UDs history, on extension point."),console.error(e)})))}e.all(p).then((function(e){var t=e[0];s.history.sort((function(e,t){return t.time-e.time}));var a=s.history.findIndex((function(e){return e.block_number<=t.number-c.data.blockValidityWindow}));s.validating=a>0?s.history.splice(0,a):[],s.fromTime="pending"!==n&&n||void 0,s.toTime=s.history.length?s.history[0].time:s.fromTime,i(s)})).catch(a)}))}function b(e,t){return t<=0?e:e*Math.pow(10,t)}function g(e,t){_(t).forEach((function(t){!function(e,t,n){var i=e.type+":"+e.identifier+":"+e.noffset;angular.isUndefined(n[i])&&(t.push(e),n[i]=t.length-1)}(t,e.sources,e.sourcesIndexByKey)}))}function f(e){return r.tx.sources({pubkey:e}).then((function(e){var t={sources:[],sourcesIndexByKey:[],balance:0};return e.sources&&e.sources.length&&(_.forEach(e.sources,(function(e){e.consumed=!1,t.balance+=b(e.amount,e.base)})),g(t,e.sources)),t})).catch((function(e){throw console.warn("[tx] Error while getting sources...",e),e}))}function T(t,n){var i=Date.now();return e.all([f(t),E(t,n)]).then((function(e){var t=e[0];t.tx=e[1];var n=[],a=[],o=t.balance,r=t.balance;function s(e){var i=[],o=!0;e.amount>0?o=!1:(_.find(e.inputs,(function(e){var n=e.split(":").slice(2).join(":"),a=t.sourcesIndexByKey[n];if(!angular.isDefined(a))return o=!1,!0;i.push(t.sources[a])})),e.sources&&g(t,e.sources),delete e.sources,delete e.inputs),o?(r+=e.amount,n.push(e),_.forEach(i,(function(e){e.consumed=!0}))):a.push(e)}for(var l=t.tx.pendings,c=!0;l&&l.length;)_.forEach(l,s),a.length>0&&n.length>0&&c?(l=a,a=[],c=!1):l=null;t.tx=t.tx||{},t.tx.pendings=n.sort((function(e,t){return t.time-e.time})),t.tx.errors=a.sort((function(e,t){return t.time-e.time})),t.balance=r<0?o:r;var d=(t.tx.history||[]).concat(t.tx.validating||[],t.tx.pendings||[],t.tx.errors||[]);return u.extendAll(d,"pubkey").then((function(){return console.debug("[tx] TX and sources loaded in "+(Date.now()-i)+"ms"),t}))})).catch((function(e){throw console.warn("[tx] Error while getting sources and tx...",e),e}))}return l.registerEvent("data","loadUDs"),{id:t,load:T,loadSources:function(e){return console.debug("[tx] Loading sources for "+e.substring(0,8)),T(e,"pending")},downloadHistoryFile:function(t,r){return(r=r||{}).fromTime=r.fromTime||-1,console.debug("[tx] Exporting TX history for pubkey [{0}]".format(t.substr(0,8))),e.all([i(["ACCOUNT.HEADERS.TIME","COMMON.UID","COMMON.PUBKEY","COMMON.UNIVERSAL_DIVIDEND","ACCOUNT.HEADERS.AMOUNT","ACCOUNT.HEADERS.COMMENT"]),d.blockchain.current(!0),T(t,r.fromTime)]).then((function(e){var r=e[0],s=e[1],l=s&&s.medianTime||moment().utc().unix(),c=s&&s.currency,u=e[2];return u&&u.tx&&u.tx.history?i("ACCOUNT.FILE_NAME",{currency:c,pubkey:t,currentTime:l}).then((function(e){var t=n("formatDecimal"),i=n("medianDate"),o=n("currencySymbolNoHtml"),s=[r["ACCOUNT.HEADERS.TIME"],r["COMMON.UID"],r["COMMON.PUBKEY"],r["ACCOUNT.HEADERS.AMOUNT"]+" ("+o(c)+")",r["ACCOUNT.HEADERS.COMMENT"]],l=u.tx.history.concat(u.tx.validating).reduce((function(e,n){return e.concat([i(n.time),n.uid,n.pubkey,t(n.amount/100),'"'+(n.isUD?r["COMMON.UNIVERSAL_DIVIDEND"]:n.comment)+'"'].join(";")+"\n")}),[s.join(";")+"\n"]),d=new Blob(l,{type:"text/plain; charset=utf-8"});a.saveAs(d,e)})):o.toast.show("INFO.EMPTY_TX_HISTORY")}))},api:l}}var E=new m("default");return E.instance=function(e,t){return new m(e,t)},E}]),angular.module("cesium.wallet.services",["ngApi","ngFileSaver","cesium.bma.services","cesium.crypto.services","cesium.utils.services","cesium.settings.services"]).factory("csWallet",["$q","$rootScope","$timeout","$translate","$filter","$ionicHistory","UIUtils","Api","Idle","localStorage","sessionStorage","Modals","CryptoUtils","csCrypto","BMA","csConfig","csSettings","FileSaver","Blob","csWot","csTx","csCurrency",function(e,t,n,a,o,r,s,l,c,u,d,p,m,E,b,g,f,T,h,v,I,N){var O,R=b;function A(b,A){var S,C,L,D,y,P,k=(A=A||R).constants.PROTOCOL_VERSION,M=A.constants.PROTOCOL_VERSION,w=A.constants.PROTOCOL_VERSION,U=A.constants.PROTOCOL_VERSION,B=A.constants.PROTOCOL_VERSION,x={},F=!1,H=new l(this,"csWallet-"+b),W=function(e){x.loaded=!1,x.pubkey=null,x.uid=null,x.localName=null,x.isNew=null,x.sourcesIndexByKey=null,x.medianTime=null,x.requirements={},x.blockUid=null,x.sigDate=null,x.sigStock=null,x.isMember=!1,x.events=[],x.children=[],x.encryptedData=null,V(),G(),D=!1,y=void 0,e?H.data.raise.init(x):(Y()&&C&&!C.useLocalStorage&&f.reset(),H.data.raise.reset(x))},V=function(){x.keypair={signSk:null,signPk:null}},G=function(){x.sources=void 0,x.sourcesIndexByKey=void 0,x.balance=0,x.tx=x.tx||{},x.tx.history=[],x.tx.pendings=[],x.tx.validating=[],x.tx.errors=[],delete x.tx.fromTime,delete x.tx.toTime},Y=function(){return"default"===b},j=function(){return x.encryptedData&&x.encryptedData.nonce&&x.encryptedData.content},K=function(e){x.sources=x.sources||[],x.sourcesIndexByKey=x.sourcesIndexByKey||{},_(e).forEach((function(e){!function(e,t,n){var i=e.type+":"+e.identifier+":"+e.noffset;angular.isUndefined(n[i])&&(e.conditions||console.warn("Trying to add a source without output condition !",e),t.push(e),n[i]=t.length-1)}(e,x.sources,x.sourcesIndexByKey)}))},$=function(t){if(!D)return(y||Ve()).then((function(){return $(t)}));var i=!q(),a=t&&(t.auth&&!J()||t.forceAuth);if(!i&&!a)return ee(t)?e.when(x):me(t);var o,r=f.data.keepAuthIdle>0;return(t&&t.authData&&e.when(t.authData)||p.showLogin(t)).then((function(e){if(!e||!e.pubkey||!i&&e.pubkey!==x.pubkey||a&&(!e.keypair||!e.keypair.signPk||!e.keypair.signSk))throw"CANCELLED";if(o=e,x.pubkey=o.pubkey,x.uid=o.uid||x.uid,x.isNew=t&&angular.isDefined(t.isNew)?t.isNew:x.isNew,r&&(x.keypair=o.keypair||{signSk:null,signPk:null}),i)return H.data.raisePromise.loginCheck(x).catch((function(e){throw W(),e})).then((function(){if(i)return H.data.raisePromise.login(x).catch((function(e){console.warn("Error during extension call [wallet.api.data.on.login]",e)}))}))})).then((function(){return i?se():a?we():void 0})).then((function(){if(i&&ie(),a||J())return Ue(!0),H.data.raisePromise.auth(r?x:o)})).then((function(){var e=!i&&t&&t.minData?{minData:!0}:void 0;if(!ee(e))return me(e)})).then((function(){return t&&t.silent&&s.loading.hide(),r?x:angular.merge({},x,o)})).catch((function(e){if(!("RETRY"!=e||t&&t.authData))return n((function(){return $(t)}),300);throw e}))},z=function(){var t=J();return e((function(e,n){var i=x.pubkey;W(),ae(i),H.data.raise.logout(),t&&H.data.raise.unauth(),Ue(!1),r.clearCache(),e()}))},q=function(){return!!x.pubkey},X=function(t){return D?!J()||t&&t.forceAuth?((t=t||{}).expectedPubkey=q()&&x.pubkey,t.auth=!0,$(t)):e.when(x):(y||Ve()).then((function(){return X(t)}))},Q=function(){return e((function(e,t){V(),ie(),H.data.raise.unauth(),Ue(!1),r.clearCache(),e()}))},J=function(){return x.pubkey&&x.keypair&&x.keypair.signSk&&!0},Z=function(t){return D?J()?e.when(x.keypair):((t=t||{}).silent=!angular.isDefined(t.silent)||t.silent,X(t).then((function(){return x.keypair}))):(y||Ve()).then((function(){return Z(t)}))},ee=function(e){if(e){if(e.minData&&!e.sources)return x.loaded&&!0;if(e.requirements&&!x.requirements.loaded)return!1;if(e.tx&&e.tx.enable&&(!x.tx.fromTime||"pending"===x.tx.fromTime))return!1;if(e.sigStock&&!x.sigStock)return!1}return x.loaded&&x.sources&&!0},te=function(){if(x.loaded)return!x.pubkey||!(x.isMember||x.requirements.pendingMembership||x.requirements.revoked||!x.requirements.needSelf||x.requirements.wasMember||x.sources&&x.sources.length>0||x.tx.history.length>0||x.tx.validating.length>0||x.tx.pendings.length>0||x.localName||x.name||x.avatar)},ne=function(){return!!x.isNew},ie=function(t){if(t=t&&"string"==typeof t?t:x.pubkey,C.useLocalStorage){if(q()&&C.rememberMe){var n=Date.now();console.debug("[wallet] Storing...");var i=[];return C.keepAuthIdle==f.constants.KEEP_AUTH_IDLE_SESSION&&J()?i.push(d.put("seckey",m.util.encode_base58(x.keypair.signSk))):i.push(d.put("seckey",null)),i.push(u.put("pubkey",x.pubkey)),x.uid?i.push(u.put("uid",x.uid)):i.push(u.put("uid",null)),e.all(i).then((function(){console.debug("[wallet] Stored in "+(Date.now()-n)+"ms")}))}return e.all([d.put("seckey",null),u.put("pubkey",null),u.put("uid",null),t?d.put("data-"+t,null):e.when()])}return e.all([d.put("seckey",null),u.put("pubkey",null),u.put("uid",null),t?d.put("data-"+t,null):e.when(),t?u.put("data-"+t,null):e.when()])},ae=function(t){return console.debug("[wallet] Resetting stored pubkey (and uid) in local storage..."),d.put("seckey",null),u.put("pubkey",null),u.put("uid",null),C.useLocalStorage?t?d.put("data-"+t,null):e.when():(console.debug("[wallet] Resetting stored data in local storage..."),e.all([t?d.put("data-"+t,null):e.when(),t?u.put("data-"+t,null):e.when()]))},oe=function(){if(!q())throw{message:"ERROR.NEED_LOGIN_FIRST"};var t,n,i=C.useLocalStorageEncryption,a="data-"+x.pubkey;x.notifications&&x.notifications.time&&((t=t||{}).notifications={time:x.notifications.time}),x.invitations&&x.invitations.time&&((t=t||{}).invitations={time:x.invitations.time}),x.children&&x.children.length&&((t=t||{}).childrenCount=x.children.length,(n=n||{}).children=_.map(x.children,(function(e){return{pubkey:e.data.pubkey,uid:e.data.uid,localName:e.data.localName}})));var o=(t||n)&&JSON.stringify(angular.merge({},t||{},n||{}));return i&&n?J()?e.all([m.util.random_nonce(),m.box.keypair.fromSignKeypair(x.keypair),d.put(a,o||null)]).then((function(e){var i=e[0],o=e[1];return m.box.pack(JSON.stringify(n),i,o.boxPk,o.boxSk).then((function(e){return t=angular.merge(t||{},{encryptedData:{nonce:m.util.encode_base58(i),content:e}}),u.put(a,JSON.stringify(t))}))})):d.put(a,o||null):e.all([d.put(a,null),u.put(a,o||null)])},re=function(){return e.all([d.get("seckey"),u.get("pubkey"),u.get("uid")]).then((function(e){var t=e[0],n=e[1],i=e[2];if(n&&"null"!=n){var a;if(console.debug("[wallet] Restore {"+n.substring(0,8)+"} from local storage"),t&&t.length&&"null"!=t)try{a={signPk:m.util.decode_base58(n),signSk:m.util.decode_base58(t)}}catch(e){console.warn("[wallet] Secret key restoration failed: ",e),a=void 0}return x.pubkey=n,x.uid=i&&"null"!=i?i:void 0,x.keypair=a||{signPk:void 0,signSk:void 0},se()}})).then((function(){return J()?e.all([H.data.raisePromise.login(x),Ue(!0),H.data.raisePromise.auth(x)]).catch((function(e){console.warn("Error during extension call [wallet.api.data.on.auth]",e)})):q()?H.data.raisePromise.login(x).catch((function(e){console.warn("Error during extension call [wallet.api.data.on.login]",e)})):void 0})).then((function(){return x}))},se=function(){if(!q())throw{message:"ERROR.NEED_LOGIN_FIRST"};return ne()?e.when(x):e.all([d.getObject("data-"+x.pubkey),u.getObject("data-"+x.pubkey)]).then((function(e){var t=e[0],n=e[1];return t&&t.children&&t.children.length===n.childrenCount?le(t).catch((function(e){return console.error("[wallet] Failed to restore from the session storage ! Retrying from the local storage...",e),le(n)})):le(n)}))},le=function(t){if(!t)return e.when();if(t.children){var n=x.childrenCount,i=De({stop:!1,store:!1});try{var a={};_.forEach(t.children,(function(e){if(!a[e.pubkey]){a[e.pubkey]=!0;var t=ke();t.data.pubkey=e.pubkey,t.data.localName=e.localName,t.data.uid=e.uid,Le(t,{store:!1})}})),delete t.children,delete x.childrenCount}catch(t){return console.error("[wallet] Failed to restore children wallet.",t),x.childrenCount=n,x.children=i,e.reject({message:"ERROR.RESTORE_WALLET_LIST_FAILED"})}_.forEach(i||[],(function(e){e.stop()}))}return delete t.pubkey,delete t.uid,angular.merge(x,t),j()&&J()?we({store:!1}).then((function(){return x})):e.when(x)},ce=function(e){return Ce("requirements"),v.loadRequirements(x,e)},ue=function(e){return I.load(x.pubkey,e).then((function(e){G(),angular.merge(x,e)})).catch((function(e){throw G(),e}))},de=function(){x.requirements.revoked?(delete x.requirements.meta.invalid,Re({type:"info",message:"ERROR.WALLET_REVOKED",context:"requirements"})):x.requirements.pendingRevocation?(delete x.requirements.meta.invalid,Re({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"})):(!x.isMember&&x.requirements.meta&&x.requirements.meta.invalid?(Re({type:"error",message:"ERROR.WALLET_INVALID_BLOCK_HASH",context:"requirements"}),console.debug("Invalid membership for uid={0}: block hash changed".format(x.uid))):!x.isMember&&x.requirements.expired?(Re({type:"error",message:"ERROR.WALLET_IDENTITY_EXPIRED",context:"requirements"}),console.debug("Identity expired for uid={0}.".format(x.uid))):x.requirements.pendingMembership?(Re({type:"pending",message:"ACCOUNT.WAITING_MEMBERSHIP",context:"requirements"}),!x.requirements.needCertificationCount&&x.requirements.outdistanced&&Re({type:"warn",message:"ACCOUNT.OUT_DISTANCED",context:"requirements"})):!x.requirements.needSelf&&x.requirements.needMembership&&Re({type:"warn",message:"ACCOUNT.NO_WAITING_MEMBERSHIP",context:"requirements"}),x.requirements.needRenew?x.isMember&&x.requirements.membershipExpiresIn>0?Re({type:"warn",message:"ACCOUNT.WILL_NEED_RENEW_MEMBERSHIP",messageParams:x.requirements,context:"requirements"}):!x.isMember&&x.requirements.membershipExpiresIn>0&&x.requirements.needCertificationCount>0?Re({type:"warn",message:"ACCOUNT.NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED",messageParams:x.requirements,context:"requirements"}):Re({type:"warn",message:"ACCOUNT.NEED_RENEW_MEMBERSHIP",messageParams:x.requirements,context:"requirements"}):(x.requirements.needCertificationCount>0&&(Re({type:"info",message:"ACCOUNT.WAITING_CERTIFICATIONS",messageParams:x.requirements,context:"requirements"}),x.requirements.wasMember||Re({type:"help",message:"ACCOUNT.WAITING_CERTIFICATIONS_HELP",messageParams:x.requirements,context:"requirements"})),x.requirements.willNeedCertificationCount>0&&Re({type:"warn",message:"ACCOUNT.WILL_MISSING_CERTIFICATIONS",messageParams:x.requirements,context:"requirements"}),x.requirements.wasMember&&x.requirements.needMembership&&Re({type:"warn",message:"ACCOUNT.NEED_RENEW_MEMBERSHIP",messageParams:x.requirements,context:"requirements"}),x.requirements.needCertificationCount||x.requirements.willNeedCertificationCount||!x.requirements.outdistanced||Re({type:"warn",message:"ACCOUNT.OUT_DISTANCED",context:"requirements"})))},pe=function(){return A.wot.certifiedBy({pubkey:x.pubkey}).then((function(e){x.sigStock=e.certifications?e.certifications.reduce((function(e,t){return null===t.written?e:e+1}),0):0})).catch((function(e){if(e&&e.ucode==A.errorCodes.NO_MATCHING_MEMBER)x.sigStock=0;else{if(!e||1002!=e.ucode)throw e;console.warn("[wallet-service] Detecting Duniter issue #1309 ! Applying workaround... "),x.sigStock=0}}))},me=function(e){var t=!N.data.initPhase&&(!f.data.wallet||f.data.wallet.alertIfUnusedWallet)&&!x.loaded&&(!e||!e.minData||!e.silent);return P?P.then((function(){return ee(e)?x:ge(e)})):(P=e&&e.minData?be(e):e||x.loaded?ge(e):Ee()).then((function(){var e=te();return!(t&&!ne()&&!0===e)||s.loading.hide().then((function(){return s.alert.confirm("CONFIRM.LOGIN_UNUSED_WALLET","CONFIRM.LOGIN_UNUSED_WALLET_TITLE",{cancelText:"COMMON.BTN_CONTINUE",okText:"COMMON.BTN_RETRY"})})).then((function(e){return e?z().then((function(){throw"RETRY"})):(f.data.wallet.alertIfUnusedWallet&&(f.data.wallet.alertIfUnusedWallet=!1,f.store()),!0)}))})).then((function(e){if(P=null,e)return x;throw"CANCELLED"}))},Ee=function(t){return x.loaded=!1,e.all([ce(!0).then((function(e){if(e.requirements&&(e.requirements.isMember||e.requirements.wasMember))return pe();e.sigStock=0})),ue(t||"pending")]).then((function(){return de(),H.data.raisePromise.load(x).catch((function(e){console.error("[wallet] Error during load API extension point. Try to continue",e)}))})).then((function(){return x.loaded=!0,x})).catch((function(e){throw x.loaded=!1,e}))},be=function(t){return(t=t||{}).requirements=angular.isDefined(t.requirements)?t.requirements:!x.requirements.loaded||angular.isUndefined(x.requirements.needSelf),t.requirements?ge(t).then((function(e){return e.loaded=!0,e})):e.when(x)},ge=function(t){(t=t||{requirements:!0,sources:!0,tx:{enable:!0,fromTime:x.tx&&"pending"!==x.tx.fromTime?x.tx.fromTime:void 0},sigStock:!0,api:!0}).requirements=angular.isDefined(t.requirements)?t.requirements:!x.requirements.loaded,angular.isUndefined(t.sources)&&t.tx&&t.tx.enable&&(t.sources=!0);var n=[];return t.requirements&&(Ce("requirements"),n.push(ce(!0).then(de))),!t.sources||t.tx&&!t.tx.enable?t.sources&&t.tx&&!t.tx.enable&&n.push(ue("pending")):n.push(ue(t.tx?t.tx.fromTime:void 0)),t.sigStock&&n.push(pe()),(n.length?e.all(n):e.when()).then((function(){return angular.isDefined(t.api)&&!t.api?x:H.data.raisePromise.load(x).then((function(){return x.loaded||(x.loaded=x.requirements.loaded&&x.sources),x}))}))},fe=function(t,n){return x.uid!=t||n&&x.blockUid!=n?x.loaded?(x.uid=t,x.blockUid=n,ge({requirements:!0,sigStock:!0}).then((function(){return ie({skipData:!0})}))):P?P.then((function(){return fe(t,n)})):e.when():e.when()},_e=function(e,t){var n=Math.pow(10,t);return e<n?0:Math.trunc(e/n)*n},Te=function(e,t){return t<=0?e:e*Math.pow(10,t)},he=function(e,t,n){angular.isUndefined(n)&&(n=t);var i=0,a=[],o=n,r=n;if(_.find(x.sources||[],(function(t){return!t.consumed&&t.base===n&&A.regexp.TX_OUTPUT_SIG.exec(t.conditions)&&(i+=Te(t.amount,t.base),a.push(t)),i>=e})),i<e&&n>0){var s=he(e-i,t,n-=1);s.amount>0&&(o=s.minBase,i+=s.amount,[].push.apply(a,s.sources))}return{minBase:o,maxBase:r,amount:i,sources:a}},ve=function(t,i,r,l,c,u){return e.all([Z(),N.get(),u&&e.when(u)||N.blockchain.current()]).then((function(e){var d=e[0],p=e[1];if(u=e[2],!A.regexp.PUBKEY.test(t))throw{message:"ERROR.INVALID_PUBKEY"};if(!A.regexp.COMMENT.test(r))throw{message:"ERROR.INVALID_COMMENT"};if(!q())throw{message:"ERROR.NEED_LOGIN_FIRST"};if(t===x.pubkey)throw{message:"ERROR.SAME_TX_RECIPIENT"};if(!i)throw{message:"ERROR.AMOUNT_REQUIRED"};if(i<=0)throw{message:"ERROR.AMOUNT_NEGATIVE"};i=Math.floor(i);var m={amount:0,minBase:u.unitbase,maxBase:u.unitbase+1,sources:[]},E=[];E.push("[wallet] amount="+i);for(var b=0;m.amount<i&&b<=u.unitbase;)(m=he(i,u.unitbase)).amount<i&&++b<=u.unitbase&&(i=_e(i,b),E.push("[wallet] inputs not found. Retrying with amount ="+i+" be compatible with amountBase="+b));if(m.amount<i){if(x.balance<i)throw{message:"ERROR.NOT_ENOUGH_CREDIT"};if(0===m.amount)throw{message:"ERROR.ALL_SOURCES_USED"};return a("COMMON.UD").then((function(e){var t;return t=l?{amount:o("formatDecimal")(m.amount/p.currentUD),unit:e,subUnit:o("abbreviate")(p.name)}:{amount:o("formatDecimal")(m.amount/100),unit:o("abbreviate")(p.name),subUnit:""},a("ERROR.NOT_ENOUGH_SOURCES",t).then((function(e){throw{message:e}}))}))}return b<m.minBase&&!function(e,t){if(!t)return!0;if(e<Math.pow(10,t))return!1;var n="00000000"+e;return 0===parseInt(n.substring(n.length-t))}(i,m.minBase)?(i=function(e,t){var n=Math.pow(10,t);return e<n?n:Math.trunc(e/n)*n}(i,m.minBase),console.debug("[wallet] Amount has been truncate to "+i),E.push("[wallet] Amount has been truncate to "+i)):b>0&&(console.debug("[wallet] Amount has been truncate to "+i),E.push("[wallet] Will use amount truncated to "+i+" (amountBase="+b+")")),Ie(p,u,d,t,i,m,r,c||x.pubkey,E).then((function(e){x.balance-=e.amount,x.balance<0&&(x.balance=0),_.forEach(m.sources,(function(e){e.consumed=!0})),e&&e.sources.length&&(console.debug("[wallet-service] New sources to be add after the TX: ",e.sources),K(e.sources));var n={time:N.date.now(),amount:-i,pubkey:t,comment:r,isUD:!1,hash:e.hash,locktime:0,block_number:null};return v.extendAll([n],"pubkey").then((function(){return x.tx.pendings.unshift(n),H.data.raise.balanceChanged(x),H.data.raise.newTx(x),{hash:e.hash}}))})).catch((function(e){if(e&&e.ucode===A.errorCodes.SOURCE_ALREADY_CONSUMED)return console.debug("[wallet] TX rejected by node with error [{0}]. Reloading sources then retry...".format(e.message||"Source already consumed")),n(ue,500).then((function(){return ve(t,i,r,l,c,u)}));if(e&&e.ucode===A.errorCodes.TX_INPUTS_OUTPUTS_NOT_EQUAL&&f.data.plugins&&f.data.plugins.es&&f.data.plugins.es.enable)return s.loading.hide(),s.alert.confirm("CONFIRM.ISSUE_524_SEND_LOG","ERROR.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_OK",cancelText:"COMMON.BTN_NO"}).then((function(e){if(e)return H.error.raise.send({title:"Issue #524 logs",content:"App version: "+g.version+"\nApp build: "+g.build+"\nLogs:\n\n"+E.join("\n")}),n((function(){throw{message:"ERROR.ISSUE_524_TX_FAILED"}}),1500);throw{message:"ERROR.SEND_TX_FAILED"}}));throw e}))}))},Ie=function(e,t,n,a,o,r,s,l,c){if(r.sources.length>40){console.debug("[Wallet] TX has to many sources. Will chain TX...");var u={minBase:t.unitbase,maxBase:0,amount:0,sources:r.sources.slice(0,40)};return _.forEach(u.sources,(function(e){e.base<u.minBase&&(u.minBase=e.base),e.base>u.maxBase&&(u.maxBase=e.base),u.amount+=Te(e.amount,e.base)})),Ie(e,t,n,x.pubkey,u.amount,u,void 0,x.pubkey,c).then((function(i){_.forEach(u.sources,(function(e){e.consumed=!0})),K(i.sources);var d={minBase:t.unitbase,maxBase:0,amount:0,sources:r.sources.slice(40).concat(i.sources)};return _.forEach(d.sources,(function(e){e.base<d.minBase&&(d.minBase=e.base),e.base>d.maxBase&&(d.maxBase=e.base),d.amount+=Te(e.amount,e.base)})),Ie(e,t,n,a,o,d,s,l,c)}))}var d="Version: "+k+"\nType: Transaction\nCurrency: "+e.name+"\nBlockstamp: "+t.number+"-"+t.hash+"\nLocktime: 0\nIssuers:\n"+x.pubkey+"\nInputs:\n";for(_.forEach(r.sources,(function(e){d+=[e.amount,e.base,e.type,e.identifier,e.noffset].join(":")+"\n"})),d+="Unlocks:\n",i=0;i<r.sources.length;i++)d+=i+":SIG(0)\n";d+="Outputs:\n";var p,E=o,b=r.maxBase,g=0,f=[];if(a!==x.pubkey){for(;E>0;)E-=p=_e(E,b),p>0&&(p=0===b?p:p/Math.pow(10,b),d+=p+":"+b+":SIG("+a+")\n",g++),b--;E=r.amount-o,b=r.maxBase}for(;E>0;)E-=p=_e(E,b),p>0&&(p=0===b?p:p/Math.pow(10,b),d+=p+":"+b+":SIG("+l+")\n",x.pubkey===l&&f.push({type:"T",noffset:g,amount:p,base:b,conditions:"SIG("+l+")",consumed:!1}),g++),b--;return d+="Comment: "+(s||"")+"\n",c&&(a==x.pubkey?c.push("[wallet] Creating new TX, using inputs:\n - minBase: "+r.minBase+"\n - maxBase: "+r.maxBase):c.push("[wallet] Creating new TX, using inputs:\n - minBase: "+r.minBase+"\n - maxBase: "+r.maxBase+"\n - sources (=TX inputs):"),_.forEach(r.sources,(function(e){c.push([e.amount,e.base,e.type,e.identifier,e.noffset].join(":"))})),c.push("\n[wallet] generated TX document (without signature) :\n------ START ------\n"+d+"------ END ------\n")),m.sign(d,n).then((function(e){var t=d+e+"\n";return A.tx.process({transaction:t}).catch((function(e){if(!e||e.ucode!==A.errorCodes.TX_ALREADY_PROCESSED)throw e})).then((function(){return m.util.hash(t)})).then((function(e){return _.forEach(f,(function(t){t.identifier=e,t.consumed=!1,t.pending=!0})),{amount:x.pubkey===a?0:x.pubkey===l?o:r.amount,tx:t,hash:e,sources:f}}))}))},Ne=function(e,t,n,i){if(n=n||x.uid,i=i||x.blockUid,!n||!i)throw{message:"ERROR.WALLET_HAS_NO_SELF"};if(x.requirements.expired)throw{message:"ERROR.WALLET_IDENTITY_EXPIRED"};var a="Version: "+M+"\nType: Identity\nCurrency: "+e.name+"\nIssuer: "+x.pubkey+"\nUniqueID: "+n+"\nTimestamp: "+i+"\n";return m.sign(a,t).then((function(e){return a+=e+"\n",console.debug("Has generate an identity document:\n----\n"+a+"----"),a}))},Oe=function(t){return function(){var i;return e.all([Z(),N.blockchain.lastValid()]).then((function(e){var n=e[0],a=e[1];return i="Version: "+w+"\nType: Membership\nCurrency: "+a.currency+"\nIssuer: "+x.pubkey+"\nBlock: "+a.number+"-"+a.hash+"\nMembership: "+(t?"IN":"OUT")+"\nUserID: "+x.uid+"\nCertTS: "+x.blockUid+"\n",m.sign(i,n)})).then((function(e){var t=i+e+"\n";return A.blockchain.membership({membership:t})})).then((function(){return n((function(){return ce(!1)}),1e3)})).then(de)}},Re=function(e,t){(e=e||{}).type=e.type||"info",e.message=e.message||"",e.messageParams=e.messageParams||{},e.context=e.context||"undefined",e.message.trim().length?t?x.events.splice(0,0,e):x.events.push(e):console.debug("Event without message. Skipping this event")},Ae=function(e){var t=Math.round(e.answer.length/2),n=e.answer.substr(0,t),i=e.answer.substr(t);return m.scryptKeypair(n,i).then((function(t){return e.pubkey=m.util.encode_base58(t.signPk),e.keypair=t,e}))},Se=function(){return e.all([Z(),N.get()]).then((function(e){var t=e[0],n=e[1];return Ne(n,t).then((function(e){var i=e.trim().split("\n"),a=i[i.length-1],o="Version: "+B+"\nType: Revocation\nCurrency: "+n.name+"\nIssuer: "+x.pubkey+"\nIdtyUniqueID: "+x.uid+"\nIdtyTimestamp: "+x.blockUid+"\nIdtySignature: "+a+"\n";return m.sign(o,t).then((function(e){return o+=e+"\n",console.debug("Has generate an revocation document:\n----\n"+o+"----"),o}))}))}))},Ce=function(e){x.events=x.events.reduce((function(t,n){return n.context&&n.context==e?t:t.concat(n)}),[])},Le=function(t,n){return t.children.setParent(S),x.children=x.children||[],x.children.push(t),!n||angular.isUndefined(n.store)||n.store?oe():e.when()},De=function(e){e&&!e.stop||_.forEach(x.children||[],(function(e){e.stop()}));var t=x.children.splice(0,x.children.length);return!e||angular.isUndefined(e.store)||e.store?oe():t},ye=function(e){return _.find(x.children||[],(function(t){return t.isUserPubkey(e)}))},Pe=function(){return angular.isDefined(x.childrenCount)?x.childrenCount:x.children&&x.children.length||0},ke=function(){var e=(x.children&&x.children.reduce((function(e,t){return Math.max(e,t.id)}),0)||x.childrenCount||0)+1;return O.instance(e,A)},Me=function(){return we().then((function(){return x.children}))},we=function(t){return j()?J()?m.box.keypair.fromSignKeypair(x.keypair).then((function(e){var t=m.util.decode_base58(x.encryptedData.nonce);return m.box.open(x.encryptedData.content,t,e.boxPk,e.boxSk)})).then((function(e){x.encryptedData=null;var n=le(JSON.parse(e));return(!t||angular.isUndefined(t.store)||t.store)&&n.then((function(){return oe()})),n})):X().then(we):e.when()},Ue=function(e){var t=(e=angular.isDefined(e)?e:J())&&C.keepAuthIdle>0&&C.keepAuthIdle!=f.constants.KEEP_AUTH_IDLE_SESSION,n=F!=t;n?(t?(console.debug("[wallet] Start idle (delay: {0}s)".format(C.keepAuthIdle)),c.setIdle(C.keepAuthIdle),c.watch()):F&&(console.debug("[wallet] Stop idle"),c.unwatch()),F=t):t&&c.getIdle()!==C.keepAuthIdle&&(console.debug("[idle] Updating auth idle (delay: {0}s)".format(C.keepAuthIdle)),c.setIdle(C.keepAuthIdle)),e&&C.keepAuthIdle==f.constants.KEEP_AUTH_IDLE_SESSION?d.put("seckey",m.util.encode_base58(x.keypair.signSk)):n&&d.put("seckey",null)};function Be(e){return{useLocalStorage:e.useLocalStorage,useLocalStorageEncryption:e.useLocalStorageEncryption,rememberMe:e.rememberMe,keepAuthIdle:e.keepAuthIdle}}function xe(e){var t=Be(e);if(!angular.equals(C,t)){var n=!angular.equals(C.useLocalStorageEncryption,t.useLocalStorageEncryption),i=!angular.equals(C.useLocalStorage,t.useLocalStorage)||n,a=!angular.equals(C.keepAuthIdle,t.keepAuthIdle);if(C=t,a&&Ue(),i){if(C.useLocalStorage)return ie().then((function(){if(x.childrenCount>0&&n&&C.useLocalStorageEncryption)return X({minData:!0,silent:!0}).catch((function(e){if("CANCELLED"===e)return f.apply({useLocalStorageEncryption:!1}),f.store();throw e}))})).then(oe);ae(x.pubkey)}}}function Fe(){_.forEach(L,(function(e){e()})),L=[]}function He(){console.debug("[wallet] Stopping..."),Fe(),W()}function We(){return He(),n(Ve,200)}function Ve(n){(n=n||{}).restore=angular.isDefined(n.restore)?n.restore:"default"===b,console.debug("[wallet] Starting...");var i=Date.now();return y=e.all([f.ready().then((function(){C=Be(f.data)})),N.ready(),A.ready()]),n.restore&&(y=y.then(re)),y.then((function(){!function(){L=[f.api.data.on.changed(t,xe,this),A.api.node.on.restart(t,We,this)],t.$on("IdleStart",Q)}(),console.debug("[wallet] Started in "+(Date.now()-i)+"ms"),D=!0,y=null})).then((function(){return x})),y}return H.registerEvent("data","init"),H.registerEvent("data","loginCheck"),H.registerEvent("data","login"),H.registerEvent("data","auth"),H.registerEvent("data","unauth"),H.registerEvent("data","load"),H.registerEvent("data","logout"),H.registerEvent("data","reset"),H.registerEvent("data","store"),H.registerEvent("error","send"),H.registerEvent("data","balanceChanged"),H.registerEvent("data","newTx"),H.registerEvent("action","certify"),W(!0),"default"!==b&&(ie=e.when,re=e.when,se=e.when),S={id:b,data:x,ready:function(){return D?e.when():y||Ve()},start:Ve,stop:He,login:$,logout:z,auth:X,unauth:Q,isLogin:q,isAuth:J,getKeypair:Z,hasSelf:function(){return!!x.pubkey&&!x.requirements.needSelf},setSelf:fe,isMember:function(){return x.isMember},isDataLoaded:ee,isDefault:Y,isNeverUsed:te,isNew:ne,isUserPubkey:function(e){return q()&&x.pubkey===e},getData:function(){return x},loadData:me,refreshData:ge,internal:{addListener:function(e){(L=L||[]).push(e)},removeListeners:Fe},store:ie,storeData:oe,transfer:ve,transferAll:function(t,n,i,a,o){return q()?o&&t!=o?N.blockchain.lastValid().then((function(e){return console.debug("[wallet] Using last valid block as TX reference (to avoid network fork): ",e),ve(t,n,i,a,o,e).then((function(){if(x.balance>0&&o)return console.debug("[wallet] Wallet has some more money: transfering fund to [{0}]".format(o.substring(0,8))),ve(o,x.balance,void 0,!1,o,e)}))})):e.reject({message:"Could not have same pubkey for 'destPub' and 'restPub'"}):e.reject({message:"ERROR.NEED_LOGIN_FIRST"})},self:function(t,n){return A.regexp.USER_ID.test(t)?e.all([Z(),N.get(),N.blockchain.lastValid()]).then((function(e){var n=e[0],a=e[1];return i=e[2],Ne(a,n,t,i.number+"-"+i.hash)})).then((function(e){return A.wot.add({identity:e})})).then((function(){if(n)return ce(!1).then(de);x.uid=t,x.blockUid=i.number+"-"+i.hash})).catch((function(e){if(e&&e.ucode===A.errorCodes.IDENTITY_SANDBOX_FULL)throw{ucode:A.errorCodes.IDENTITY_SANDBOX_FULL,message:"ERROR.IDENTITY_SANDBOX_FULL"};throw e})):e.reject({message:"ERROR.INVALID_USER_ID"});var i},revoke:function(){return Ce("revocation"),Se().then((function(e){return A.wot.revoke({revocation:e})})).then((function(){return n((function(){return ce(!1)}),1e3)})).then(de).catch((function(e){if(!e||e.ucode!=A.errorCodes.REVOCATION_ALREADY_REGISTERED)throw e;Re({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"},!0)}))},revokeWithFile:function(t){return e.all([A.wot.revoke({revocation:t})]).then((function(e){if(q())return n((function(){return ce(!1)}),1e3).then(de).catch((function(e){if(!e||e.ucode!=A.errorCodes.REVOCATION_ALREADY_REGISTERED)throw e;Re({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"},!0)}));Re({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"},!0)}))},certify:function(t,n,i,a,o,r){return e.all([Z(),N.get(),N.blockchain.current()]).then((function(e){var s=e[0],l=e[1],c=e[2],u="Version: "+U+"\nType: Certification\nCurrency: "+l.name+"\nIssuer: "+x.pubkey+"\nIdtyIssuer: "+n+"\nIdtyUniqueID: "+t+"\nIdtyTimestamp: "+i+"\nIdtySignature: "+a+"\nCertTimestamp: "+c.number+"-"+c.hash+"\n";return m.sign(u,s).then((function(e){var t=u+e+"\n";return A.wot.certify({cert:t})})).then((function(){var e={pubkey:n,uid:t,time:c.medianTime,isMember:o,wasMember:r,expiresIn:l.parameters.sigWindow,pending:!0,block:c.number,valid:!0};return H.action.raise.certify(e),e}))}))},downloadSaveId:function(e){return function(e){var t="Version: 10 \nType: SaveID\nQuestions: \n"+e.questions+"Issuer: "+x.pubkey+"\nCrypted-Nonce: "+e.nonce+"\nCrypted-Pubkey: "+e.pubkey+"\nCrypted-Salt: "+e.salt+"\nCrypted-Pwd: "+e.pwd+"\n";return m.sign(t,x.keypair).then((function(e){return t+=e+"\n",console.debug("Has generate an SaveID document:\n----\n"+t+"----"),t}))}(e).then((function(e){var t=new h([e],{type:"text/plain; charset=utf-8"});T.saveAs(t,"{0}-recover_ID.txt".format(x.pubkey.substring(0,8)))}))},getCryptedId:function(t){return Ae(t).then(m.util.random_nonce).then((function(n){return t.nonce=m.util.encode_base58(n),e.all([m.box.pack(t.salt,n,t.keypair.boxPk,t.keypair.boxSk),m.box.pack(t.pwd,n,t.keypair.boxPk,t.keypair.boxSk)])})).then((function(e){return t.salt=e[0],t.pwd=e[1],t}))},recoverId:function(e){var t=m.util.decode_base58(e.cypherNonce);return Ae(e).then((function(e){return m.box.open(e.cypherSalt,t,e.keypair.boxPk,e.keypair.boxSk)})).then((function(n){return e.salt=n,m.box.open(e.cypherPwd,t,e.keypair.boxPk,e.keypair.boxSk)})).then((function(t){return e.pwd=t,e})).catch((function(e){console.warn("Incorrect answers - Unable to recover passwords")}))},downloadRevocation:function(){return e.all([N.get(),Se()]).then((function(e){var t=e[0],n=e[1],i=new h([n],{type:"text/plain; charset=utf-8"});return a("ACCOUNT.SECURITY.REVOCATION_FILENAME",{uid:x.uid,currency:t.name,pubkey:x.pubkey}).then((function(e){T.saveAs(i,e)}))}))},downloadKeyFile:function(t){return J()?e.all([N.get(),E.keyfile.generateContent(x.keypair,{type:t,password:function(){return s.loading.hide(),p.showPassword({title:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.TITLE",subTitle:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.HELP"}).then((function(e){return s.loading.show(10).then((function(){return e}))}))}})]).then((function(e){var n=e[0],i=e[1];return a("ACCOUNT.SECURITY.KEYFILE_FILENAME",{currency:n.name,pubkey:x.pubkey,format:t}).then((function(e){var t=new h([i],{type:"text/plain; charset=utf-8"});T.saveAs(t,e)}))})):e.reject("user not authenticated")},membership:{inside:Oe(!0),out:Oe(!1)},events:{add:Re,cleanByContext:Ce},children:{create:function(e){var t=Pe()+1,n=O.instance(t);return Le(n,e),n},add:Le,remove:function(e,t){x.children=x.children||[];var n=_.findIndex(x.children,(function(t){return t.id==e}));if(-1!==n)return x.children.splice(n,1)[0].stop(),!t||angular.isUndefined(t.store)||t.store?oe():void 0;console.warn("[wallet] Unable to remove child wallet {"+e+"} (not found)")},get:function(e){return"default"!==e&&_.find(x.children||[],(function(t){return t.id==e}))||void 0},getByPubkey:ye,all:Me,setParent:function(n){var i;L=L||[],_.forEach(["load","reset"],(function(a){i=H.data.on[a](t,(function(t,i){return i=i||e.defer(),n.api.data.raisePromise[a](t).then(i.resolve).catch(i.reject),i.promise}),this),L.push(i)})),i=n.api.data.on.unauth(t,(function(){J()&&Q()}),this),L.push(i)},count:Pe,hasPubkey:function(e){return!!ye(e)},instance:ke,downloadFile:function(){return e.all([Me(),N.get()]).then((function(e){var t=e[0],n=e[1],i=(t||[]).reduce((function(e,t){return e+[t.data.pubkey,t.data.uid,t.data.localName||t.data.name].join("\t")+"\n"}),""),o=new h([i],{type:"text/plain; charset=utf-8"});return a("ACCOUNT.WALLET_LIST.EXPORT_FILENAME",{pubkey:x.pubkey,currency:n.name}).then((function(e){T.saveAs(o,e)}))}))}},api:H}}return(O=A("default",b)).instance=A,O}]),angular.module("cesium.help.services",[]).constant("csHelpConstants",{wallet:{stepCount:4}}).factory("csHelp",["$rootScope","csSettings","UIUtils","csHelpConstants","$controller",function(e,t,n,i,a){function o(o,r){if(o=angular.isDefined(o)?o:t.data.helptip.wallet,r=!!angular.isDefined(r)&&r,!(o<0||o>=i.wallet.stepCount)){var s=function(i,o){if(i||!e.tour&&t.data.helptip.enable&&!n.screen.isSmall()){var r=e.$new();return a("HelpTipCtrl",{$scope:r}),r}}(r);if(s)return s.tour=r,s.startWalletTour(o,!1).then((function(e){s.$destroy(),r||(t.data.helptip.wallet=e,t.store())}))}}return{wallet:{tour:function(){return o(0,!0)},helptip:o}}}]),angular.module("cesium.plugin.services",[]).provider("PluginService",(function(){var e=[],t={};this.registerEagerLoadingService=function(t){return e.push(t),this},this.extendState=function(e,n){return angular.isDefined(e)&&angular.isDefined(n)&&(t[e]||(t[e]=[]),t[e].push(n)),this},this.extendStates=function(e,t){var n=this;return e.forEach((function(e){n.extendState(e,t)})),this},this.$get=["$injector","$state",function(n,i){var a;return{start:function(){e.length>0&&_.forEach(e,(function(e){n.get(e)}))},extensions:{points:{getActivesByName:function(e){return _.keys(t).reduce((function(e,n){return i.includes(n)?e.concat(t[n]):e}),[]).reduce((function(t,n){return n.points&&n.points[e]?t.concat(n.points[e]):t}),[])},current:{get:function(){return a},set:function(e){a=e}}}}}}]})),angular.module("cesium.services",["cesium.settings.services","cesium.http.services","cesium.network.services","cesium.bma.services","cesium.crypto.services","cesium.utils.services","cesium.modal.services","cesium.storage.services","cesium.device.services","cesium.currency.services","cesium.wot.services","cesium.tx.services","cesium.wallet.services","cesium.help.services","cesium.plugin.services"]),e.prototype.regexp={BMA:/^BASIC_MERKLED_API[ ]?/,BMAS:/^BMAS[ ]?/,WS2P:/^WS2P[ ]?/,BMA_REGEXP:/^BASIC_MERKLED_API([ ]+([a-z_][a-z0-9-_.ÄŸÄž]*))?([ ]+([0-9.]+))?([ ]+([0-9a-f:]+))?([ ]+([0-9]+))$/,BMAS_REGEXP:/^BMAS([ ]+([a-z_][a-z0-9-_.ÄŸÄž]*))?([ ]+([0-9.]+))?([ ]+([0-9a-f:]+))?([ ]+([0-9]+))$/,WS2P_REGEXP:/^WS2P[ ]+([a-z0-9]+)([ ]+([a-z_][a-z0-9-_.ÄŸÄž]*))?([ ]+([0-9.]+))?([ ]+([0-9a-f:]+))?([ ]+([0-9]+))([ ]+([a-z0-9/.&#!]+))?$/,LOCAL_IP_ADDRESS:/^127[.]0[.]0.|192[.]168[.]|10[.]0[.]0[.]|172[.]16[.]/},e.prototype.regex=e.prototype.regexp,e.prototype.keyID=function(){var e=this.bma||this.getBMA();return e.useBma?[this.pubkey||"Unknown",e.dns,e.ipv4,e.ipv6,e.port,e.useSsl,e.path].join("-"):[this.pubkey||"Unknown",e.ws2pid,e.path].join("-")},e.prototype.copyValues=function(e){var t=this;["version","currency","pub","endpoints","hash","status","block","signature"].forEach((function(n){e[n]=t[n]}))},e.prototype.copyValuesFrom=function(e){var t=this;["version","currency","pub","endpoints","block","signature"].forEach((function(n){t[n]=e[n]}))},e.prototype.json=function(){var e=this,t={};return["version","currency","endpoints","status","block","signature"].forEach((function(n){t[n]=e[n]})),t.raw=this.raw&&this.getRaw(),t.pubkey=this.pubkey,t},e.prototype.getBMA=function(){if(this.bma)return this.bma;var e=null,t=this.regexp.BMA_REGEXP,n=this.regexp.BMAS_REGEXP;return this.endpoints.forEach((function(i){var a=!e&&t.exec(i);a&&(e={dns:a[2]||"",ipv4:a[4]||"",ipv6:a[6]||"",port:a[8]||80,useSsl:443==a[8],useBma:!0}),(a=!e&&n.exec(i))&&(e={dns:a[2]||"",ipv4:a[4]||"",ipv6:a[6]||"",port:a[8]||80,useSsl:!0,useBma:!0})})),e||{}},e.prototype.getEndpoints=function(e){return e?this.endpoints.reduce((function(t,n){return n.match(e)?t.concat(n):t}),[]):this.endpoints},e.prototype.hasEndpoint=function(e){var t=this.regexp[e]||new RegExp("^"+e);return!!this.getEndpoints(t).length},e.prototype.getDns=function(){var e=this.bma||this.getBMA();return e.dns?e.dns:null},e.prototype.getIPv4=function(){var e=this.bma||this.getBMA();return e.ipv4?e.ipv4:null},e.prototype.getIPv6=function(){var e=this.bma||this.getBMA();return e.ipv6?e.ipv6:null},e.prototype.getPort=function(){var e=this.bma||this.getBMA();return e.port?e.port:null},e.prototype.getHost=function(e){return bma=e||this.bma||this.getBMA(),(443==bma.port||bma.useSsl)&&bma.dns?bma.dns:this.hasValid4(bma)?bma.ipv4:bma.dns?bma.dns:bma.ipv6?"["+bma.ipv6+"]":""},e.prototype.getURL=function(e){e=e||this.bma||this.getBMA();var t=this.getHost(e);return(443==e.port||e.useSsl?"https":"http")+"://"+t+(e.port?":"+e.port:"")},e.prototype.getServer=function(e){e=e||this.bma||this.getBMA();var t=this.getHost(e);return t+(t&&e.port?":"+e.port:"")},e.prototype.hasValid4=function(e){return!(!e.ipv4||e.ipv4.match(this.regexp.LOCAL_IP_ADDRESS))},e.prototype.isReachable=function(){return!!this.getServer()},e.prototype.isSsl=function(){return(this.bma||this.getBMA()).useSsl},e.prototype.isTor=function(){return(this.bma||this.getBMA()).useTor},e.prototype.isWs2p=function(){return(this.bma||this.getBMA()).useWs2p},e.prototype.isBma=function(){var e=this.bma||this.getBMA();return!e.useWs2p&&!e.useTor},e.prototype.hasBma=function(){return this.hasEndpoint("(BASIC_MERKLE_API|BMAS|BMATOR)")},t.prototype.isEmpty=function(){"use strict";return!(this.transactionsCount||this.certificationsCount||this.joinersCount||this.dividend||this.activesCount||this.identitiesCount||this.leaversCount||this.excludedCount||this.revokedCount)},t.prototype.parseData=function(){this.identities=this.parseArrayValues(this.identities,["pubkey","signature","buid","uid"]),this.joiners=this.parseArrayValues(this.joiners,["pubkey","signature","mBuid","iBuid","uid"]),this.actives=this.parseArrayValues(this.actives,["pubkey","signature","mBuid","iBuid","uid"]),this.leavers=this.parseArrayValues(this.leavers,["pubkey","signature","mBuid","iBuid","uid"]),this.revoked=this.parseArrayValues(this.revoked,["pubkey","signature"]),this.excluded=this.parseArrayValues(this.excluded,["pubkey"]),this.certifications=this.parseArrayValues(this.certifications,["from","to","block","signature"]),this.transactions=this.parseTransactions(this.transactions),delete this.raw},t.prototype.cleanData=function(){delete this.identities,delete this.joiners,delete this.actives,delete this.leavers,delete this.revoked,delete this.excluded,delete this.certifications,delete this.transactions,delete this.raw},t.prototype.parseArrayValues=function(e,t){return e&&e.length?e.reduce((function(e,n){var i=n.split(":");if(i.length!=t.length)return console.debug("[block] Bad format for '{0}': [{1}]. Expected {1} parts. Skipping".format(arrayProperty,n,t.length)),e;for(var a={},o=0;o<t.length;o++)a[t[o]]=i[o];return e.concat(a)}),[]):[]},t.prototype.regexp={TX_OUTPUT_SIG:("SIG\\(([0-9a-zA-Z]{43,44})\\)",new RegExp("^SIG\\(([0-9a-zA-Z]{43,44})\\)$"))},t.prototype.parseTransactions=function(e){return e&&e.length?e.reduce((function(e,n){var i={issuers:n.issuers,time:n.time};return i.outputs=n.outputs.reduce((function(e,i){var a=i.split(":");if(3!=a.length)return console.debug("[block] Bad format a 'transactions': [{0}]. Expected 3 parts. Skipping".format(i)),e;var o=a[0],r=a[1],s=a[2],l=t.prototype.regexp.TX_OUTPUT_SIG.exec(a[2]);if(l){var c=l[1];return n.issuers&&-1==n.issuers.indexOf(c)?e.concat({amount:r<=0?o:o*Math.pow(10,r),unitbase:r,pubkey:c}):e}return e.concat({amount:r<=0?o:o*Math.pow(10,r),unitbase:r,unlockCondition:s})}),[]),i.error||i.outputs.length||(i.toHimself=!0),e.concat(i)}),[]):[]},n.prototype.regexp={WS2P_PREFIX:/^WS2P(?:O([CT][SAM]))?(?:I([CT]))?$/},o.$inject=["$scope","$rootScope","$state","$ionicSideMenuDelegate","$q","$timeout","$ionicHistory","$controller","$window","csPlatform","CryptoUtils","csCrypto","UIUtils","BMA","csWallet","Device","Modals","csConfig","csHttp"],r.$inject=["$scope","$state","$timeout","$ionicHistory","$translate","UIUtils","csPlatform","csCurrency","csSettings"],a.$inject=["$scope","PluginService"],angular.module("cesium.app.controllers",["cesium.platform","cesium.services"]).config(["$stateProvider","$urlRouterProvider",function(e,t){e.state("app",{url:"/app",abstract:!0,templateUrl:"templates/menu.html",controller:"AppCtrl",data:{large:!1}}).state("app.home",{url:"/home?error",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"HomeCtrl"}}}).state("app.lock",{cache:!1,url:"/lock",views:{menuContent:{templateUrl:"templates/common/view_passcode.html",controller:"PassCodeCtrl"}}}),t.otherwise("/app/home")}]).controller("AppCtrl",o).controller("HomeCtrl",r).controller("PluginExtensionPointCtrl",a),s.$inject=["$scope","$timeout","$controller","Modals","csWallet"],l.$inject=["$scope","$state","Modals","UIUtils","csCurrency"],c.$inject=["$scope","$state","$interval","$q","$timeout","Device","UIUtils","CryptoUtils","csSettings","Modals","csWallet","BMA","parameters"],angular.module("cesium.join.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.join",{url:"/join",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"JoinCtrl"}}})}]).controller("JoinCtrl",s).controller("JoinChooseAccountTypeModalCtrl",l).controller("JoinModalCtrl",c),u.$inject=["$scope","$timeout","$controller","csWallet"],d.$inject=["$scope","$timeout","$q","$ionicPopover","CryptoUtils","csCrypto","ionicReady","UIUtils","BMA","Modals","csSettings","Device","parameters"],p.$inject=["$scope","$controller"],angular.module("cesium.login.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.login",{url:"/login",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"LoginCtrl"}}})}]).controller("LoginCtrl",u).controller("LoginModalCtrl",d).controller("AuthCtrl",p),m.$inject=["$scope","$state","$timeout","$anchorScroll","csSettings"],E.$inject=["$scope","$timeout","$anchorScroll","csSettings","parameters"],b.$inject=["$scope","$state","$window","$ionicSideMenuDelegate","$timeout","$q","$anchorScroll","UIUtils","csConfig","csSettings","csCurrency","csHelpConstants","Device","csWallet"],g.$inject=["$scope"],angular.module("cesium.help.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.help_tour",{url:"/tour",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"HelpTourCtrl"}}}).state("app.help",{url:"/help?anchor",views:{menuContent:{templateUrl:"templates/help/view_help.html",controller:"HelpCtrl"}}}).state("app.help_anchor",{url:"/help/:anchor",views:{menuContent:{templateUrl:"templates/help/view_help.html",controller:"HelpCtrl"}}})}]).controller("HelpCtrl",m).controller("HelpModalCtrl",E).controller("HelpTipCtrl",b).controller("HelpTourCtrl",g),f.$inject=["$scope","$rootScope","$q","$ionicPopup","$timeout","$state","$translate","$ionicPopover","$location","UIUtils","ModalUtils","Modals","csPopovers","BMA","csConfig","csSettings","csWallet","csHelp"],T.$inject=["$scope","$ionicPopover","$state","$timeout","$location","UIUtils","Modals","csPopovers","BMA","csHttp","csSettings","csCurrency","csWallet","csTx"],h.$inject=["$scope","UIUtils","csSettings","csWallet"],v.$inject=["$scope","UIUtils","csWallet","$translate","parameters"],angular.module("cesium.wallet.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){e.state("app.view_wallet",{url:"/account?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet.html",controller:"WalletCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx",{url:"/history/account?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx.html",controller:"WalletTxCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx_errors",{url:"/history/account/errors",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx_error.html",controller:"WalletTxErrorCtrl"}},data:{login:!0}})}]).controller("WalletCtrl",f).controller("WalletTxCtrl",T).controller("WalletTxErrorCtrl",h).controller("WalletSecurityModalCtrl",v),I.$inject=["$scope","$q","$timeout","UIUtils","filterTranslations","csSettings","csCurrency","csWallet"],O.$inject=["$scope","$controller","$state","$timeout","$q","$translate","$ionicPopover","$ionicPopup","ModalUtils","UIUtils","Modals","csCurrency","csSettings","csWallet"],N.$inject=["$scope","$controller","parameters"],A.$inject=["$scope","$timeout","BMA","csWallet"],R.$inject=["$scope","$controller","UIUtils","parameters"],angular.module("cesium.wallets.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){e.state("app.view_wallets",{url:"/wallets",views:{menuContent:{templateUrl:"templates/wallet/list/view_wallets.html",controller:"WalletListViewCtrl"}},data:{login:!0}}).state("app.view_wallet_by_id",{url:"/wallets/:id?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet.html",controller:"WalletCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx_by_id",{url:"/history/wallets/:id?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx.html",controller:"WalletTxCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx_errors_by_id",{url:"/history/wallets/:id/errors",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx_error.html",controller:"WalletTxErrorCtrl"}},data:{login:!0}})}]).controller("WalletListAbstractCtrl",I).controller("WalletListViewCtrl",O).controller("WalletSelectModalCtrl",N).controller("WalletListImportModalCtrl",A).controller("WalletSelectPopoverCtrl",R),S.$inject=["$scope","$state","$q","$timeout","$focus","$location","$ionicPopover","$ionicHistory","UIUtils","csConfig","csCurrency","csSettings","Device","BMA","csWallet","csWot"],C.$inject=["$scope","$controller","$focus","csWallet","parameters"],D.$inject=["$scope","$rootScope","$state","$translate","$ionicHistory","$q","UIUtils","Modals","csConfig","csSettings","csCurrency","csWot","csWallet"],y.$inject=["$scope","$rootScope","$controller","$timeout","$state","UIUtils","Modals","csWallet"],P.$inject=["$scope","$timeout","$q","BMA","csSettings","csWot","csTx","UIUtils"],k.$inject=["$scope","$rootScope","$controller","csSettings","csWallet","UIUtils"],M.$inject=["$scope","$q","csWot","parameters"],angular.module("cesium.wot.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.wot_lookup",{url:"/wot",abstract:!0,enableBack:!1,views:{menuContent:{templateUrl:"templates/wot/lookup.html"}}}).state("app.wot_lookup.tab_search",{url:"/search?q&type&hash",views:{tab:{templateUrl:"templates/wot/tabs/tab_lookup.html",controller:"WotLookupCtrl"}},data:{silentLocationChange:!0,large:"app.wot_lookup_lg"}}).state("app.wot_lookup_lg",{url:"/wot/lg?q&type&hash",views:{menuContent:{templateUrl:"templates/wot/lookup_lg.html",controller:"WotLookupCtrl"}},data:{silentLocationChange:!0}}).state("app.wot_identity",{url:"/wot/:pubkey/:uid?action&block",views:{menuContent:{templateUrl:"templates/wot/view_identity.html",controller:"WotIdentityViewCtrl"}}}).state("app.wot_identity_uid",{url:"/lookup/:uid?action",views:{menuContent:{templateUrl:"templates/wot/view_identity.html",controller:"WotIdentityViewCtrl"}}}).state("app.wot_identity_tx_uid",{url:"/wot/tx/:pubkey/:uid?action",views:{menuContent:{templateUrl:"templates/wot/view_identity_tx.html",controller:"WotIdentityTxViewCtrl"}}}).state("app.wot_cert",{url:"/wot/:pubkey/:uid/:type?block",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}},data:{large:"app.wot_cert_lg"}}).state("app.wot_cert_lg",{url:"/wot/cert/lg/:pubkey/:uid?block",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}}}).state("app.wallet_cert",{url:"/account/cert/:type",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}},data:{large:"app.wallet_cert_lg"}}).state("app.wallet_cert_lg",{url:"/account/cert/lg",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}}}).state("app.wallet_cert_by_id",{url:"/wallets/:id/cert/:type",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}},data:{large:"app.wallet_cert_lg_by_id"}}).state("app.wallet_cert_lg_by_id",{url:"/wallets/:id/cert/lg",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}}})}]).controller("WotLookupCtrl",S).controller("WotLookupModalCtrl",C).controller("WotIdentityAbstractCtrl",D).controller("WotIdentityViewCtrl",y).controller("WotIdentityTxViewCtrl",P).controller("WotCertificationsViewCtrl",k).controller("WotSelectPubkeyIdentityModalCtrl",M),w.$inject=["$scope","$state","$location","$ionicPopover","$window","$translate","BMA","UIUtils","csConfig","csSettings","csCurrency","csNetwork","csWot"],F.$inject=["$scope","$q","$window","$state","UIUtils","csWot","BMA"],U.$inject=["$scope","$controller","parameters"],B.$inject=["$scope","$controller"],x.$inject=["$scope","$q","csSettings","csCurrency","csHttp","BMA"],angular.module("cesium.network.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.network",{url:"/network?type&expert",cache:!1,views:{menuContent:{templateUrl:"templates/network/view_network.html",controller:"NetworkLookupCtrl"}},data:{silentLocationChange:!0}}).state("app.view_peer",{url:"/network/peer/:server?ssl&tor",cache:!1,views:{menuContent:{templateUrl:"templates/network/view_peer.html",controller:"PeerViewCtrl"}},data:{preferHttp:!0}})}]).controller("NetworkLookupCtrl",w).controller("PeerViewCtrl",F).controller("NetworkLookupModalCtrl",U).controller("NetworkLookupPopoverCtrl",B).controller("PeerInfoPopoverCtrl",x),H.$inject=["$scope","$q","$timeout","$ionicPopover","Modals","BMA","UIUtils","csSettings","csCurrency","csNetwork","ModalUtils"],W.$inject=["$scope","$http","UIUtils","csSettings","FileSaver"],angular.module("cesium.currency.controllers",["ngFileSaver","cesium.services"]).config(["$stateProvider",function(e){e.state("app.currency",{url:"/currency",views:{menuContent:{templateUrl:"templates/currency/view_currency.html",controller:"CurrencyViewCtrl"}},data:{large:"app.currency_lg"}}).state("app.currency.tab_parameters",{url:"/parameters",views:{"tab-parameters":{templateUrl:"templates/currency/tabs/tab_parameters.html"}}}).state("app.currency.tab_wot",{url:"/community",views:{"tab-wot":{templateUrl:"templates/currency/tabs/tab_wot.html"}}}).state("app.currency.tab_network",{url:"/network",views:{"tab-network":{templateUrl:"templates/currency/tabs/tab_network.html",controller:"NetworkLookupCtrl"}}}).state("app.currency.tab_blocks",{url:"/blocks",views:{"tab-blocks":{templateUrl:"templates/currency/tabs/tab_blocks.html",controller:"BlockLookupCtrl"}}}).state("app.currency_lg",{url:"/currency/lg",cache:!1,views:{menuContent:{templateUrl:"templates/currency/view_currency_lg.html",controller:"CurrencyViewCtrl"}}})}]).controller("CurrencyViewCtrl",H).controller("CurrencyLicenseModalCtrl",W),V.$inject=["$scope","$controller","UIUtils"],G.$inject=["$scope","$q","$translate","$timeout","$filter","$focus","Device","BMA","UIUtils","Modals","csWallet","csWot","csCurrency","csSettings","parameters"],angular.module("cesium.transfer.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){e.state("app.new_transfer",{cache:!1,url:"/transfer?amount&udAmount&comment&restPub&all&wallet",views:{menuContent:{templateUrl:"templates/wallet/new_transfer.html",controller:"TransferCtrl"}}}).state("app.new_transfer_pubkey_uid",{cache:!1,url:"/transfer/:pubkey/:uid?amount&udAmount&comment&restPub&all&wallet",views:{menuContent:{templateUrl:"templates/wallet/new_transfer.html",controller:"TransferCtrl"}}}).state("app.new_transfer_pubkey",{cache:!1,url:"/transfer/:pubkey?amount&udAmount&comment&restPub&all&wallet",views:{menuContent:{templateUrl:"templates/wallet/new_transfer.html",controller:"TransferCtrl"}}})}]).controller("TransferCtrl",V).controller("TransferModalCtrl",G),Y.$inject=["$scope","$q","$window","$ionicHistory","$ionicPopup","$timeout","$translate","$ionicPopover","UIUtils","Modals","BMA","csHttp","csConfig","csCurrency","csSettings","csPlatform"],angular.module("cesium.settings.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){e.state("app.settings",{url:"/settings",views:{menuContent:{templateUrl:"templates/settings/settings.html",controller:"SettingsCtrl"}}})}]).controller("SettingsCtrl",Y),j.$inject=["$scope","$timeout","$focus","$filter","$state","$anchorScroll","UIUtils","BMA","csCurrency","csWot","csSettings"],K.$inject=["$scope","$ionicPopover","$state","UIUtils","BMA","csCurrency","csWot"],angular.module("cesium.blockchain.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.blockchain",{url:"/blockchain",views:{menuContent:{templateUrl:"templates/blockchain/lookup.html",controller:"BlockLookupCtrl"}},data:{large:"app.blockchain_lg"}}).state("app.blockchain_lg",{url:"/blockchain/lg",views:{menuContent:{templateUrl:"templates/blockchain/lookup_lg.html",controller:"BlockLookupCtrl"}}}).state("app.server_blockchain",{url:"/network/peer/:server/blockchain?ssl&tor",views:{menuContent:{templateUrl:"templates/blockchain/lookup.html",controller:"BlockLookupCtrl"}},data:{large:"app.server_blockchain_lg"}}).state("app.server_blockchain_lg",{url:"/network/peer/:server/blockchain/lg?ssl&tor",views:{menuContent:{templateUrl:"templates/blockchain/lookup_lg.html",controller:"BlockLookupCtrl"}}}).state("app.view_block",{url:"/block/:number",views:{menuContent:{templateUrl:"templates/blockchain/view_block.html",controller:"BlockViewCtrl"}}}).state("app.view_block_hash",{url:"/block/:number/:hash",views:{menuContent:{templateUrl:"templates/blockchain/view_block.html",controller:"BlockViewCtrl"}}}).state("app.view_server_block_hash",{url:"/network/peer/:server/block/:number/:hash?ssl&tor",views:{menuContent:{templateUrl:"templates/blockchain/view_block.html",controller:"BlockViewCtrl"}}})}]).controller("BlockLookupCtrl",j).controller("BlockViewCtrl",K),angular.module("cesium.controllers",["cesium.app.controllers","cesium.join.controllers","cesium.login.controllers","cesium.help.controllers","cesium.wallet.controllers","cesium.wallets.controllers","cesium.currency.controllers","cesium.wot.controllers","cesium.transfer.controllers","cesium.settings.controllers","cesium.network.controllers","cesium.blockchain.controllers"]),angular.module("cesium.templates",[]).run(["$templateCache",function(e){e.put("templates/menu.html",'<ion-side-menus enable-menu-with-back-views="true" bind-notifier="{locale:$root.settings.locale.id}"><ion-side-menu-content><ion-nav-bar class="bar-dark" title-align="left"><ion-nav-back-button class="no-text"></ion-nav-back-button><ion-nav-buttons side="left"><button class="button button-icon button-clear icon ion-navicon visible-nomenu" menu-toggle="left"></button></ion-nav-buttons><ion-nav-buttons side="right"><cs-extension-point name="nav-buttons-right"></cs-extension-point></ion-nav-buttons></ion-nav-bar><ion-nav-view name="menuContent"></ion-nav-view></ion-side-menu-content><ion-side-menu id="menu" side="left" expose-aside-when="large" enable-menu-with-back-views="false" width="225"><ion-header-bar class="bar-title"><div class="visible-sm visible-xs hero"><div class="content"><i class="avatar avatar-member hero-icon" ng-if="!walletData.avatar" ng-class="{\'royal-bg\': login, \'stable-bg\': !login}" ng-click="!login ? showHome() : loginAndGo()" menu-close=""></i> <a class="avatar hero-icon" ng-if="walletData.avatar" style="background-image: url(\'{{walletData.avatar.src}}\')" ui-sref="app.view_wallet" menu-close=""></a><h4 ng-if="login"><a class="light" ui-sref="app.view_wallet" menu-close="">{{walletData.name||walletData.uid}} <span ng-if="!walletData.name && !walletData.uid"><i class="icon ion-key"></i>&nbsp;{{walletData.pubkey|formatPubkey}}</span></a></h4><h4 ng-if="!login"><a class="light" ui-sref="app.login" menu-close="">{{\'COMMON.BTN_LOGIN\'|translate}} <i class="ion-arrow-right-b"></i></a></h4><cs-extension-point name="menu-profile-user"></cs-extension-point></div><a ng-if="login" class="button-icon" ng-click="logout({askConfirm: true})" style="position: absolute; top: 5px; left: 5px; z-index: 999"><i class="icon light ion-android-exit"></i></a></div></ion-header-bar><ion-content scroll="false" class="scroll-content ionic-scroll" ng-class="{\'overflow-scroll\': smallscreen, \'scroll-content-false\': !smallscreen}"><ion-list class="list" ng-class="{\'scroll\': smallscreen}"><ion-item menu-close="" class="item-icon-left hidden-xs" ui-sref="app.home" active-link="active"><i class="icon ion-home"></i> {{:locale:\'MENU.HOME\'|translate}}</ion-item><ion-item menu-close="" ng-if="!login" class="item-icon-left visible-xs" ui-sref="app.home" active-link="active"><i class="icon ion-home"></i> {{:locale:\'MENU.HOME\'|translate}}</ion-item><div class="item item-divider"></div><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/account" ui-sref="app.view_wallet" ng-class="{\'item-menu-disable\': !login}"><i class="icon ion-person"></i> {{:locale:\'MENU.ACCOUNT\'|translate}} </a><a id="helptip-menu-btn-account"></a> <a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/history" ui-sref="app.view_wallet_tx" ng-class="{\'item-menu-disable\': !login}"><i class="icon ion-card"></i> {{:locale:\'MENU.TRANSACTIONS\'|translate}} </a><a id="helptip-menu-btn-tx"></a> <a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/wallets" ui-sref="app.view_wallets" ng-class="{\'item-menu-disable\': !login}"><i class="icon ion-card" style="top: -5px; left: 22px; font-size: 18px"></i> <i class="icon-secondary ion-card" style="top: 22px; left: 19px; font-size: 20px; background-color: white; width:17px; height: 14px"></i> {{:locale:\'MENU.WALLETS\'|translate}}</a><div class="item item-divider"></div><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/wot" ui-sref="app.wot_lookup.tab_search"><i class="icon ion-person-stalker"></i> {{:locale:\'MENU.WOT\'|translate}} </a><a id="helptip-menu-btn-wot"></a><cs-extension-point name="menu-main"></cs-extension-point><div class="item item-divider"></div><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/currency" ui-sref="app.currency"><i class="icon ion-ios-world-outline"></i> {{:locale:\'MENU.CURRENCY\'|translate}} </a><a id="helptip-menu-btn-currency"></a> <a id="helptip-menu-btn-network"></a><cs-extension-point name="menu-discover"></cs-extension-point><div class="item item-divider visible-xs visible-sm"></div><cs-extension-point name="menu-user"></cs-extension-point><a menu-close="" class="item item-icon-left visible-xs visible-sm" active-link="active" active-link-path-prefix="#/app/settings" ui-sref="app.settings"><i class="icon ion-android-settings"></i> {{:locale:\'MENU.SETTINGS\'|translate}} </a><a id="helptip-menu-btn-settings"></a><div class="item item-divider" ng-if="login"></div><ion-item menu-close="" class="item item-button-right" ng-if="login" ng-class="::{\'item-button-left\': $root.device.barcode.enable}"><button class="button button-positive ink-dark" ng-click="showTransferModal()"><i class="icon ion-paper-airplane"></i></button> <button class="button button-stable ink" ng-if="$root.device.barcode.enable" ng-click="scanQrCodeAndGo()"><i class="icon ion-qr-scanner"></i></button></ion-item><cs-extension-point name="menu-actions"></cs-extension-point></ion-list></ion-content></ion-side-menu></ion-side-menus>'),e.put("templates/modal_about.html",'<ion-modal-view class="about"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CLOSE</button><h1 class="title" translate>ABOUT.TITLE</h1></ion-header-bar><ion-content class="text-center" scroll="true"><div class="list item-wrap-text"><ion-item class="item-icon-left item-text-wrap"><span>{{\'COMMON.APP_NAME\'|translate}}&nbsp;<b>{{\'COMMON.APP_VERSION\'|translate:$root.config}}</b> - <a ng-click="openLink($event, \'http://cesium.app\')">www.cesium.app</a></span> <i ng-if="$root.newRelease" class="assertive ion-alert-circled"></i><h3 ng-if="$root.config.build" class="gray">{{\'COMMON.APP_BUILD\'|translate:$root.config}}</h3><span translate>ABOUT.LICENSE</span></ion-item><ion-item class="item-icon-left" ng-if="$root.newRelease"><i class="item-image icon ion-alert-circled assertive"></i> <span ng-if="!$root.device.isWeb()" ng-bind-html="\'ABOUT.PLEASE_UPDATE\' | translate:$root.newRelease "></span> <span ng-if="$root.device.isWeb()" ng-bind-html="\'ABOUT.LATEST_RELEASE\' | translate:$root.newRelease "></span><h3 ng-if="!$root.device.enable"><a ng-click="openLink($event, $root.newRelease.url)" translate>{{::$root.newRelease.url}}</a></h3></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="item-image icon ion-android-laptop"></i> <span translate>ABOUT.OFFICIAL_WEB_SITE</span><h3><a ng-click="openLink($event, \'https://www.cesium.app\')">https://www.cesium.app</a></h3></ion-item><ion-item class="item-icon-left"><i class="item-image icon ion-chatbubbles"></i> {{\'ABOUT.FORUM\' | translate}}<h3><a ng-click="openLink($event, $root.settings.userForumUrl)">{{::$root.settings.userForumUrl}}</a></h3></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="item-image icon ion-bug"></i> <span translate>ABOUT.PLEASE_REPORT_ISSUE</span><h3><a ng-click="openLink($event, $root.settings.newIssueUrl)" translate>ABOUT.REPORT_ISSUE</a></h3></ion-item><ion-item class="item-icon-left"><i class="item-image icon ion-network"></i> {{\'ABOUT.CODE\' | translate}}<h3><a ng-click="openLink($event, \'https://git.duniter.org/clients/cesium-grp/cesium\')">https://git.duniter.org/clients/cesium-grp/cesium</a></h3></ion-item><ion-item class="item-icon-left"><i class="item-image icon ion-person-stalker"></i> {{\'ABOUT.DEVELOPERS\' | translate}}<h3><a href="https://github.com/blavenie" target="_system">Benoit Lavenier</a>, <a href="https://github.com/bpresles" target="_system">bpresles</a>, <a href="https://github.com/c-geek" target="_system">cgeek</a>, <a href="https://github.com/devingfx" target="_system">DiG</a>, <a href="https://git.duniter.org/ji_emme" target="_system">Ji_emme</a></h3></ion-item><div class="padding hidden-xs text-center"><button class="button button-stable icon-left ink" type="submit" ng-click="closeModal()" ui-sref="app.help"><i class="icon ion-ios-help-outline"></i> {{\'HOME.BTN_HELP\' | translate}}</button> <button class="button button-positive ink" type="submit" ng-click="closeModal()">{{\'COMMON.BTN_CLOSE\' | translate}}</button></div></div></ion-content></ion-modal-view>'),e.put("templates/api/doc.html",'<h2 class="padding" translate="">API.DOC.TRANSFER.TITLE</h2><div class="list padding no-padding-xs no-padding-top"><div class="item item-divider no-border"><p translate="">API.DOC.DESCRIPTION_DIVIDER</p></div><div class="item item-text-wrap"><p translate="">API.DOC.TRANSFER.DESCRIPTION</p></div><div class="item item-divider no-border"><p translate="">API.DOC.URL_DIVIDER</p></div><div class="item item-text-wrap"><p class="gray text-right">{{$root.rootPath}}#/v1/payment/:pubkey?amount=<span class="text-italic" translate="">API.DOC.TRANSFER.PARAM_AMOUNT</span></p></div><div class="item item-divider no-border"><p translate="">API.DOC.PARAMETERS_DIVIDER</p></div><div class="item item-text-wrap"><p translate="">API.DOC.AVAILABLE_PARAMETERS</p><div class="row"><div class="col col-20 text-italic">pubkey</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_PUBKEY_HELP</div></div><div class="row stable-bg"><div class="col col-20 text-italic dark">amount</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_AMOUNT_HELP</div></div><div class="row"><div class="col col-20 text-italic">comment</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_COMMENT_HELP</div></div><div class="row stable-bg"><div class="col col-20 text-italic dark">name</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_NAME_HELP</div></div><div class="row"><div class="col col-20 text-italic">preferred_node</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_PREFERRED_NODE_HELP</div></div><div class="row stable-bg"><div class="col col-20 text-italic dark">redirect_url</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_REDIRECT_URL_HELP</div></div><div class="row"><div class="col col-20 text-italic">cancel_url</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_CANCEL_URL_HELP</div></div></div><div class="item item-divider no-border"><p translate="">API.DOC.DEMO_DIVIDER</p></div><div class="item item-button-right item-text-wrap padding-bottom"><p class="item-icon-right-padding" translate="">API.DOC.DEMO_HELP</p><span class="badge" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></span><a ng-if="!loading" href="{{transferDemoUrl}}" class="button button-raised button-positive icon ion-play"></a></div><div class="item item-text-wrap" ng-if="result.type === \'payment\' && !result.cancelled"><h2 class="text-right balanced" translate="">API.DOC.DEMO_SUCCEED</h2><h4 class="gray" translate="">API.DOC.DEMO_RESULT</h4><p class="balanced-100-bg padding dark text-keep-lines">{{result.content}}</p><h4 class="gray"><span translate="">API.DOC.DEMO_RESULT_PEER</span> <b>{{result.node}}</b></h4></div><div class="item item-text-wrap" ng-if="result.type === \'payment\' && result.cancelled"><h2 class="text-right assertive" translate="">API.DOC.DEMO_CANCELLED</h2></div><div class="item item-divider no-border"><p translate="">API.DOC.INTEGRATE_DIVIDER</p></div><div class="item item-text-wrap"><p translate="">API.DOC.TRANSFER.EXAMPLES_HELP</p><div class="row responsive-sm"><div class="col col-20 text-italic"><span translate="">API.DOC.TRANSFER.EXAMPLE_BUTTON</span></div><div class="col gray no-border"><p><i class="icon ion-code"></i> <span translate="">API.DOC.INTEGRATE_CODE</span></p><div class="item item-input"><textarea class="gray" select-on-click="" rows="5" ng-model="transferButton.html" ng-model-options="{ debounce: 650 }"></textarea></div><p class="padding-top"><i class="icon ion-eye"></i> <span translate="">API.DOC.INTEGRATE_RESULT</span></p><div class="padding-left" bind-notifier="{ notifierKey:watchedExpression }"><ng-bind-html ng-bind-html="transferButton.html|trustAsHtml"></ng-bind-html></div></div></div><div class="row responsive-sm"><div class="col gray no-border"><p class="padding-top"><a class="positive" ng-click="transferButton.showParameters=!transferButton.showParameters"><i class="icon ion-wrench"></i> <span translate="">API.DOC.INTEGRATE_PARAMETERS</span> <i class="icon" ng-class="{\'ion-arrow-down-b\': !transferButton.showParameters, \'ion-arrow-up-b\': transferButton.showParameters}"></i></a></p><div ng-if="transferButton.showParameters" class="padding-left"><form id="transferForm" class="stable-bg padding"><p class="padding-top"><i class="icon ion-key"></i> {{\'API.DOC.TRANSFER.PARAM_PUBKEY\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.pubkey" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_PUBKEY_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-pricetag"></i> {{\'API.DOC.TRANSFER.PARAM_AMOUNT\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.amount" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_AMOUNT_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-flag"></i> {{\'API.DOC.TRANSFER.PARAM_COMMENT\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.comment" placeholder="{{\'API.DOC.TRANSFER.PARAM_COMMENT\'|translate}}"></label><p class="padding-top"><i class="icon ion-ios-world-outline"></i> {{\'API.DOC.TRANSFER.PARAM_NAME\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.name" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_NAME\'|translate}}"></label><p class="padding-top"><i class="icon ion-key"></i> {{\'API.DOC.TRANSFER.PARAM_PREFERRED_NODE\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.preferred_node" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_PREFERRED_NODE_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-arrow-return-left"></i> {{\'API.DOC.TRANSFER.PARAM_REDIRECT_URL\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.redirect_url" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_REDIRECT_URL\'|translate}}"></label><p class="padding-top"><i class="icon ion-backspace"></i> {{\'API.DOC.TRANSFER.PARAM_CANCEL_URL\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.cancel_url" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_CANCEL_URL\'|translate}}"></label><p class="padding-top"><a class="positive" ng-click="transferButton.style.enable=!transferButton.style.enable"><i class="icon" ng-class="{\'ion-android-checkbox-outline\': transferButton.style.enable, \'ion-android-checkbox-outline-blank\': !transferButton.style.enable}"></i> <span translate="">API.DOC.TRANSFER.EXAMPLE_BUTTON_DEFAULT_STYLE</span></a></p><div ng-if="transferButton.style.enable"><p class="padding-top"><i class="icon ion-image"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_ICON\' | translate}} :</p><label class="item item-input item-select"><select class="stable-bg dark" ng-model="transferButton.style.icon" style="width: 100%; max-width: 100%" ng-options="l as (l.label | translate) for l in transferButton.icons track by l.filename"></select></label><p class="padding-top"><i class="icon ion-quote"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_HELP\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.text" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-paintbucket"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_BG_COLOR\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.bgColor" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_BG_COLOR_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-paintbrush"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_FONT_COLOR\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.fontColor" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_FONT_COLOR_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-ios-crop-strong"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_WIDTH\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.width" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_WIDTH_HELP\'|translate}}"></label></div></form></div></div></div></div></div>'),e.put("templates/api/home.html",'<ion-view class="circle-bg-dark"><ion-nav-title><span class="title visible-xs visible-sm" translate="">API.HOME.TITLE</span></ion-nav-title><ion-nav-buttons side="right"></ion-nav-buttons><ion-content class="has-header no-padding-xs no-padding-sm positive-900-bg"><br class="hidden-xs"><div class="light text-center"><h4 class="hidden-xs" translate="">API.HOME.MESSAGE</h4><h4 class="visible-xs padding" translate="">API.HOME.MESSAGE_SHORT</h4></div><br class="hidden-xs"><div class="row no-padding-xs"><div class="col"><div class="light-bg no-padding"><ng-include src="\'templates/api/doc.html\'"></ng-include></div></div></div><p class="visible-xs visible-sm light padding-top text-center">{{\'COMMON.APP_NAME\'|translate}} API - <a href="#" ng-click="showAboutModal($event)">v{{$root.config.version}}</a></p></ion-content></ion-view>'),e.put("templates/api/locales_popover.html",'<ion-popover-view class="fit popover-locales" style="height: {{locales.length*48}}px"><ion-content scroll="false"><div class="list item-text-wrap block"><a ng-repeat="l in locales track by l.id" class="item item-icon-left ink" ng-click="changeLanguage(l.id)"><i class="item-image avatar" style="border-radius: 0; background-image: url(https://www.countryflags.io/{{l.country}}/shiny/64.png)"></i> {{l.label | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/api/menu.html",'<ion-nav-bar class="bar-dark" title-align="left"><ion-nav-back-button class="no-text"></ion-nav-back-button><ion-nav-buttons side="left"></ion-nav-buttons><ion-nav-buttons side="right"></ion-nav-buttons></ion-nav-bar><ion-nav-view name="menuContent"></ion-nav-view>'),e.put("templates/api/transfer.html",'<ion-view class="circle-bg-dark"><ion-nav-buttons side="left"><button class="button button-clear visible-xs" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button></ion-nav-buttons><ion-nav-title><span class="title visible-xs" translate="">API.TRANSFER.TITLE_SHORT</span></ion-nav-title><ion-nav-buttons side="right"><button class="button button-positive button-icon button-clear icon ion-android-send visible-xs" ng-click="doLogin()"></button></ion-nav-buttons><ion-content class="has-header no-padding-xs positive-900-bg"><br class="hidden-xs"><div class="row no-padding-xs"><div class="col no-padding-xs"><div class="light-bg"><h2 class="padding-top text-center hidden-xs" translate="">API.TRANSFER.TITLE</h2><div class="no-padding energized-100-bg" ng-if="demo"><div class="item item-icon-left item-text-wrap no-border"><i class="icon ion-information-circled positive"></i><p translate="">API.TRANSFER.DEMO.HELP</p></div></div><ng-include src="\'templates/login/form_login.html\'"></ng-include></div><br class="hidden-xs"><br class="hidden-xs"><div class="list padding no-padding-xs light-bg"><div class="item"><p translate="">API.TRANSFER.SUMMARY</p></div><div class="item item-icon-left-padding item-tx no-border" ng-if="!transferData.amounts" style="min-height: 56px"><h2 translate="">API.TRANSFER.AMOUNT</h2><ion-spinner class="badge item-note" icon="android" ng-show="loading"></ion-spinner><div class="badge badge-calm ng-hide" ng-show="!loading" ng-bind-html="transferData.amount|formatAmount:{useRelative: false, currency: currency.name}"></div><div class="badge badge-secondary ng-hide" ng-show="!loading" ng-bind-html="transferData.amount|formatAmount:{useRelative: true, currency: currency.name, currentUD: currency.currentUD}"></div></div><label ng-if="transferData.amounts" style="min-height: 58px" class="item item-icon-left-padding item-input item-select item-tx no-border" ng-class="{ \'item-input-error\': form.$submitted && !transferData.amount}"><div class="input-label"><span translate="">API.TRANSFER.AMOUNT</span></div><select ng-model="transferData.amount" required="true" ng-options="(amount |formatAmount:{useRelative: false, currency: currency.name}) for amount in transferData.amounts"></select><span class="badge badge-secondary ng-hide" ng-show="transferData.amount" ng-bind-html="transferData.amount|formatAmount:{useRelative: true, currency: currency.name, currentUD: currency.currentUD}"></span></label><div class="form-errors" ng-if="form.$submitted && !transferData.amount"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-icon-left-padding"><h2 translate="">API.TRANSFER.NAME</h2><div class="badge item-note">{{transferData.name}}</div></div><div class="item item-icon-left-padding item-text-wrap"><h2 translate="">API.TRANSFER.PUBKEY</h2><div class="badge"><span class="hidden-xs"><br class="visible-sm visible-md"><i class="icon ion-key"></i>{{transferData.pubkey}}</span> <span class="visible-xs" copy-on-click="{{transferData.pubkey}}"><br class="visible-xs"><i class="icon ion-key"></i> {{transferData.pubkey|formatPubkey}}</span></div></div><div class="item item-icon-left-padding"><h2 translate="">API.TRANSFER.COMMENT</h2><div class="badge item-note"><span class="hidden-xs"><br class="visible-sm visible-md">{{::transferData.comment}}</span> <span class="visible-xs" copy-on-click="{{transferData.comment}}"><br>{{::transferData.comment}}</span></div></div><div class="item item-icon-left-padding" ng-hide="error"><h2 translate="">API.TRANSFER.NODE</h2><div class="badge item-note" ng-if="!loading"><br class="visible-sm visible-md"><i class="icon ion-locked" ng-if="node.useSsl"></i>&nbsp;{{node.server}}</div></div><div class="center padding animate-fade-in animate-show-hide ng-hide" ng-show="!loading && error"><div class="card card-item padding"><p class="item-content item-text-wrap"><i class="icon ion-android-alert assertive"></i> <span class="dark" trust-as-html="\'API.COMMON.CONNECTION_ERROR\'|translate:node"></span></p><button type="button" class="button button-positive icon icon-left ion-refresh ink" ng-click="start()">{{\'COMMON.BTN_REFRESH\'|translate}}</button></div></div><div class="padding-bottom visible-xs">&nbsp;</div></div></div></div><p class="visible-xs visible-sm light padding-top text-center">{{\'COMMON.APP_NAME\'|translate}} - <a href="#" ng-click="showAboutModal($event)">v{{$root.config.version}}</a></p></ion-content></ion-view>'),e.put("templates/common/badge_certification_count.html",'<span ng-attr-id="{{$ctrl.csId}}" class="badge badge-balanced" ng-class="{\'badge-energized\': $ctrl.requirements.willNeedCertificationCount || ($ctrl.requirements.needCertificationCount + $ctrl.requirements.pendingCertificationCount >= $ctrl.parameters.sigQty),\n               \'badge-assertive\': ($ctrl.requirements.needCertificationCount + $ctrl.requirements.pendingCertificationCount < $ctrl.parameters.sigQty)}"><span ng-if="$ctrl.requirements.certificationCount || !$ctrl.requirements.pendingCertificationCount"><i ng-if="!$ctrl.requirements.needCertificationCount" class="ion-android-done"></i> {{$ctrl.requirements.certificationCount}} <i ng-if="$ctrl.requirements.willNeedCertificationCount" class="ion-android-warning"></i> </span><span ng-if="$ctrl.requirements.pendingCertificationCount"><ng-if ng-if="$ctrl.requirements.certificationCount">+</ng-if><i class="ion-clock"></i> {{$ctrl.requirements.pendingCertificationCount}}</span></span>'),e.put("templates/common/badge_given_certification_count.html",'<div ng-attr-id="{{$ctrl.csId}}" class="badge badge-calm" ng-class="{\'badge-assertive\': $ctrl.identity.given_cert.length >= $ctrl.parameters.sigStock}"><span><i ng-if="$ctrl.identity.given_cert.length" class="ion-android-done"></i> {{$ctrl.identity.given_cert.length}} </span><span ng-if="$ctrl.identity.given_cert_pending.length">(<ng-if ng-if="$ctrl.identity.given_cert.length">+</ng-if><i class="ion-clock"></i> {{$ctrl.identity.given_cert_pending.length}}) </span><small>/ {{$ctrl.parameters.sigStock}}</small></div>'),e.put("templates/common/form_error_messages.html",'<div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.FIELD_ACCENT"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div>'),e.put("templates/common/popover_copy.html",'<ion-popover-view class="popover-copy" style="height: {{(!rows || rows &lt;= 1) ? 50 : rows*22}}px"><ion-content scroll="false"><div class="list"><div class="item item-input"><input type="text" ng-if="!rows || rows &lt;= 1" ng-model="value"><textarea ng-if="rows && rows > 1" ng-model="value" rows="{{rows}}" cols="10">\n      </textarea></div></div></ion-content></ion-popover-view>'),e.put("templates/common/popover_helptip.html",'<ion-popover-view class="popover-helptip"><ion-content scroll="false" class="list"><p><i ng-if="icon.position && !icon.position.startsWith(\'bottom-\')" class="{{icon.class}} icon-{{icon.position}} hidden-xs" style="{{icon.style}}"></i><a ng-click="closePopover()" class="pull-right button-close" ng-class="{\'pull-left\': icon.position === \'right\', \'pull-right\': icon.position !== \'right\'}"><i class="ion-close"></i> </a><span>&nbsp;</span></p><p class="padding light"><ng-bind-html ng-bind-html="content | translate:contentParams"></ng-bind-html><ng-bind-html ng-bind-html="trustContent"></ng-bind-html></p><div class="text-center" ng-if="!tour"><button class="button button-small button-stable" ng-if="!hasNext" ng-click="closePopover(true)" translate>COMMON.BTN_UNDERSTOOD</button> <button class="button button-small button-stable" id="helptip-btn-ok" ng-if="hasNext" ng-click="closePopover(false)" translate>COMMON.BTN_UNDERSTOOD</button> <button id="helptip-btn-ok" class="button button-small button-positive icon-right ink" ng-if="hasNext" ng-click="closePopover(true)"><i class="icon ion-chevron-right"></i></button></div><div class="text-center" ng-if="tour"><button class="button button-small button-positive" id="helptip-btn-ok" ng-if="!hasNext" ng-click="closePopover(false)" translate>COMMON.BTN_CLOSE</button> <button id="helptip-btn-ok" class="button button-small button-positive icon-right ink" ng-if="hasNext" ng-click="closePopover(true)">{{\'COMMON.BTN_CONTINUE\'|translate}} <i class="icon ion-chevron-right"></i></button></div><p><i ng-if="icon.position && icon.position.startsWith(\'bottom-\')" class="{{icon.class}} icon-{{icon.position}} hidden-xs"></i></p></ion-content></ion-popover-view>'),e.put("templates/common/popover_profile.html",""),e.put("templates/common/popover_share.html",'<ion-popover-view class="popover-share"><ion-content scroll="false"><div class="bar bar-header"><h1 class="title">{{titleKey|translate:titleValues}}</h1><span class="gray pull-right">{{time|formatDate}}</span></div><div class="list no-margin no-padding has-header has-footer block"><div class="item item-input"><input type="text" ng-model="value"></div></div><div class="bar bar-footer"><div class="button-bar"><a class="button button-icon positive icon ion-social-facebook" href="https://www.facebook.com/sharer/sharer.php?u={{postUrl|formatEncodeURI}}&amp;title={{postMessage|formatEncodeURI}}" onclick="window.open(this.href, \'facebook-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_FACEBOOK\'|translate}}"></a> <a class="button button-icon positive icon ion-social-twitter" href="https://twitter.com/intent/tweet?url={{postUrl|formatEncodeURI}}&amp;text={{postMessage|formatEncodeURI}}" onclick="window.open(this.href, \'twitter-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_TWITTER\'|translate}}"></a> <a class="button button-icon positive icon ion-social-googleplus" href="https://plus.google.com/share?url={{postUrl|formatEncodeURI}}" onclick="window.open(this.href, \'google-plus-share\', \'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=296,width=580\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_GOOGLEPLUS\'|translate}}"></a> <a class="button button-icon positive icon ion-social-diaspora" href="https://sharetodiaspora.github.io/?title={{postMessage|formatEncodeURI}}&amp;url={{postUrl|formatEncodeURI}}" onclick="window.open(this.href, \'diaspora-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_DIASPORA\'|translate}}"></a> <a class="button-close" title="{{\'COMMON.BTN_CLOSE\'|translate}}" ng-click="closePopover()"><i class="icon ion-close"></i></a></div></div></ion-content></ion-popover-view>'),e.put("templates/common/popup_password.html",'<form name="pwdForm" ng-submit="submit($event)"><div class="list" ng-init="setForm(pwdForm)"><label class="item item-input" ng-class="{\'item-input-error\': pwdForm.$submitted && pwdForm.password.$invalid}"><input name="password" type="password" placeholder="{{\'ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.PASSWORD_HELP\' | translate}}" ng-model="formData.password" ng-minlength="1" required></label><div class="form-errors" ng-if="pwdForm.$submitted && pwdForm.pseudo.$error" ng-messages="pwdForm.password.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="form-errors" ng-if="error"><div class="form-error">{{error|translate}}</div></div></div></form>'),e.put("templates/common/view_passcode.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm" translate>COMMON.PASSCODE.TITLE</span></ion-nav-title><ion-content scroll="false"></ion-content></ion-view>'),e.put("templates/blockchain/item_block.html",'<a name="block-{{:rebind:block.number}}"></a><ion-item id="block-{{:rebind:block.number}}" class="item item-icon-left item-block {{::ionItemClass}}" ng-class="{\'ink\': !block.empty||!block.compacted, \'item-block-empty\': block.empty, \'compacted\': block.compacted && compactMode}" ng-click="selectBlock(block)"><i class="icon ion-cube stable" ng-if=":rebind:(!block.empty && !block.avatar)"></i> <i class="avatar" ng-if=":rebind:!block.empty && block.avatar" style="background-image: url(\'{{:rebind:block.avatar.src}}\')"></i><div class="row no-padding" ng-if=":rebind:!block.compacted || !compactMode"><div class="col" style="min-width: 110px; max-width: 130px"><h4 ng-class="{\'gray\': block.compacted, \'dark\': !block.compacted}"><i class="ion-clock"></i> {{:rebind:block.medianTime|medianDate}}</h4><h4 ng-if="!block.empty"><ng-if ng-if=":rebind:block.joinersCount||(block.excludedCount-block.revokedCount)"><i class="dark ion-person"></i> <span class="dark" ng-if=":rebind:block.joinersCount">+{{:rebind:block.joinersCount}}</span> <span class="dark" ng-if=":rebind:block.excludedCount">-{{:rebind:block.excludedCount-block.revokedCount}}</span></ng-if><span class="dark" ng-if=":rebind:block.revokedCount" class="assertive"><i class="ion-minus-circled"></i> {{:rebind:block.revokedCount}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.activesCount" class="gray"><i class="gray ion-refresh"></i> {{:rebind:block.activesCount}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.certificationsCount"><i class="ion-ribbon-a"></i> {{:rebind:block.certificationsCount}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.dividend" class="gray"><i class="gray ion-arrow-up-c"></i> {{\'COMMON.UD\'|translate}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.transactionsCount"><i class="ion-card">{{:rebind:block.transactionsCount}}</i></span></h4></div><div class="col positive hidden-md"><h4><i class="ion-person"></i> {{:rebind:block.name||block.uid}}</h4></div><div class="col col-20"><span class="badge" ng-class="{\'badge-balanced\': !$index , \'badge-calm\': $index && !block.compacted && !block.empty}">{{:rebind:block.number|formatInteger}}</span></div></div></ion-item>'),
-e.put("templates/blockchain/item_block_empty_lg.html",'<a name="block-{{::block.number}}"></a><div id="block-{{::block.number}}" class="item item-block item-icon-left item-block-empty" ng-class="{\'compacted\': block.compacted && compactMode}" ng-click="selectBlock(block)"><div class="row no-padding" ng-if=":rebind:!block.compacted || !compactMode"><div class="col"><h3 class="gray"><i class="ion-clock"></i> {{:rebind:block.medianTime|medianDate}}</h3></div><div class="col"><h3><span class="gray" ng-if=":rebind:expertMode"><i class="ion-key"></i> {{:rebind:block.issuer|formatPubkey}} </span><span class="positive"><i class="ion-person"></i> {{:rebind:block.name||block.uid}}</span></h3></div><div class="col col-20"></div><div class="col col-20"><span class="badge" ng-class="{\'badge-balanced\': !$index && search.type==\'last\'}">{{block.number|formatInteger}}</span></div></div></div>'),e.put("templates/blockchain/item_block_lg.html",'<ion-item id="block-{{::block.number}}" class="item item-block item-icon-left ink {{::ionItemClass}}" ng-class="{{::ionItemClass}}" ng-click="selectBlock(block)"><i class="icon ion-cube stable" ng-if=":rebind:!block.avatar"></i> <i class="avatar" ng-if=":rebind:!block.empty && block.avatar" style="background-image: url(\'{{:rebind:block.avatar.src}}\')"></i><div class="row no-padding"><div class="col"><h3 class="dark"><i class="ion-clock"></i> {{:rebind:block.medianTime|medianDate}}</h3><h4 class="gray">{{:rebind:\'BLOCKCHAIN.HASH\'|translate}} {{:rebind:block.hash|formatHash}}</h4></div><div class="col"><h3><span class="gray" ng-if=":rebind:expertMode"><i class="ion-key"></i> {{:rebind:block.issuer|formatPubkey}} </span><span class="positive"><i class="ion-person"></i> {{:rebind:block.name||block.uid}}</span></h3></div><div class="col col-20"><small><ng-if ng-if=":rebind:block.joinersCount||(block.excludedCount-block.revokedCount)"><i class="ion-person"></i> <span ng-if=":rebind:block.joinersCount">+{{:rebind:block.joinersCount}}</span> <span ng-if=":rebind:block.excludedCount">-{{:rebind:block.excludedCount-block.revokedCount}}</span> &nbsp;&nbsp;</ng-if><span ng-if=":rebind:block.revokedCount" class="assertive"><i class="ion-minus-circled"></i> -{{:rebind:block.revokedCount}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.activesCount"><i class="ion-refresh"></i> {{:rebind:block.activesCount}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.certificationsCount"><i class="ion-ribbon-a"></i> {{:rebind:block.certificationsCount}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.dividend"><i class="gray ion-arrow-up-c"></i> {{:rebind:\'COMMON.UD\'|translate}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.transactionsCount"><i class="ion-card">{{:rebind:block.transactionsCount}}</i>&nbsp;&nbsp;</span></small></div><div class="col col-20"><span class="badge" ng-class="{\'badge-balanced\': !$index && search.type==\'last\', \'badge-calm\': ($index  || search.type!=\'last\')&& !block.compacted && !block.empty}">{{:rebind:block.number}}</span></div></div></ion-item>'),e.put("templates/blockchain/items_blocks.html",'<div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ion-list class="animate-ripple padding padding-xs"><div class="padding gray" ng-if="!search.loading && !search.results.length" translate>BLOCKCHAIN.LOOKUP.NO_BLOCK</div><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="\'templates/blockchain/item_block.html\'"></ng-repeat></ion-list><ion-infinite-scroll ng-if="search.hasMore" icon="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("templates/blockchain/link_identity.html",'<a ui-sref="app.wot_identity({pubkey: identity.pubkey, uid: identity.uid})"><span class="positive" ng-if="identity.uid"><i class="icon ion-person"></i> {{::identity.uid}}&nbsp;</span> <span class="gray" ng-class="{\'hidden-xs hidden-sm\': identity.uid}"><i class="icon ion-key"></i>&nbsp;{{::identity.pubkey|formatPubkey}}</span></a>'),e.put("templates/blockchain/list_blocks.html",'<div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ion-list class="padding padding-xs list-blocks {{::motion.ionListClass}}"><div class="padding gray" ng-if="!search.loading && !search.results.length" translate>BLOCKCHAIN.LOOKUP.NO_BLOCK</div><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="\'templates/blockchain/item_block.html\'"></ng-repeat></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("templates/blockchain/list_blocks_lg.html",'<div class="padding padding-xs" style="display: block; height: 100px"><h4 translate>BLOCKCHAIN.LOOKUP.LAST_BLOCKS</h4><div class="pull-right"><a class="button button-text button-small ink" ng-class="{\'button-text-positive\': compactMode, \'button-text-stable\': !compactMode}" ng-click="toggleCompactMode()"><i class="icon ion-navicon"></i> <b class="ion-arrow-down-b" style="position: absolute; top: -2px; left: 4px; font-size: 8px"></b> <b class="ion-arrow-up-b" style="position: absolute; top: 10px; left: 4px; font-size: 8px"></b> <span>{{\'BLOCKCHAIN.LOOKUP.BTN_COMPACT\'|translate}}</span></a></div></div><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ion-list class="padding padding-xs list-blocks {{::motion.ionListClass}}"><div class="padding gray" ng-if="!search.loading && !search.results.length" translate>BLOCKCHAIN.LOOKUP.NO_BLOCK</div><ng-repeat ng-repeat="block in search.results" ng-include="!block.empty ? \'templates/blockchain/item_block_lg.html\' : \'templates/blockchain/item_block_empty_lg.html\'"></ng-repeat></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("templates/blockchain/lookup.html",'<ion-view><ion-nav-title><span translate>BLOCKCHAIN.LOOKUP.TITLE</span></ion-nav-title><ion-content class="padding no-padding-xs" scroll="true"><ng-include src="\'templates/blockchain/list_blocks.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/blockchain/lookup_lg.html",'<ion-view><ion-nav-title><span translate>BLOCKCHAIN.LOOKUP.TITLE</span></ion-nav-title><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'templates/blockchain/list_blocks_lg.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/blockchain/unlock_condition_popover.html",'<ion-popover-view class="fit"><ion-header-bar><h1 class="title" translate>BLOCKCHAIN.VIEW.TX_OUTPUT_UNLOCK_CONDITIONS</h1></ion-header-bar><ion-content scroll="true"><div class="row" ng-repeat="condition in popoverData.unlockConditions track by $index" ng-style="::condition.style"><span class="gray" ng-if="::condition.operator">{{::\'BLOCKCHAIN.VIEW.TX_OUTPUT_OPERATOR.\'+condition.operator|translate}}&nbsp;</span><div ng-if="::condition.type==\'SIG\'"><i class="icon ion-key dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.SIG\' | translate"></span> <a ng-click="goState(\'app.wot_identity\', {pubkey:condition.value})" style="text-decoration: none" class="positive">{{condition.value|formatPubkey}}</a></div><div ng-if="::condition.type==\'XHX\'"><i class="icon ion-lock-combination dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.XHX\' | translate"></span> <a copy-on-click="{{::condition.value}}" class="positive">{{::condition.value|formatPubkey}}...</a></div><div ng-if="condition.type==\'CSV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CSV\' | translate"></span> {{::condition.value|formatDuration}}</div><div ng-if="condition.type==\'CLTV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CLTV\' | translate"></span> {{::condition.value|medianDate}}</div></div></ion-content></ion-popover-view>'),e.put("templates/blockchain/view_block.html",'<ion-view><ion-nav-title><span class="title visible-xs visible-sm" ng-if="number==\'current\'">{{\'BLOCKCHAIN.VIEW.TITLE_CURRENT\'|translate}}</span> <span class="title visible-xs visible-sm" ng-if="number!=\'current\'">{{\'BLOCKCHAIN.VIEW.TITLE\'|translate:formData}}</span></ion-nav-title><ion-content class="no-padding-xs no-padding-sm" scroll="true"><div class="row no-padding"><div class="col no-padding"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list item-text-wrap no-padding-xs" ng-if="!loading"><div class="item item-text-wrap"><h3><span class="dark"><i class="icon ion-clock"></i> {{formData.medianTime | medianFromNowAndDate}}</span></h3><h3><span class="dark"><i class="icon ion-lock-combination"></i> {{\'BLOCKCHAIN.VIEW.COMPUTED_BY\'|translate}} </span><a class="positive" ui-sref="app.wot_identity({pubkey:issuer.pubkey, uid: issuer.uid})"><i class="icon ion-person positive"></i> {{issuer.name||issuer.uid}} <span class="gray" ng-if="issuer.name">({{issuer.uid}})</span></a></h3><h3><a ng-click="openRawBlock($event)"><i class="icon ion-share"></i> {{\'BLOCKCHAIN.VIEW.SHOW_RAW\'|translate}}</a></h3></div><span class="item item-divider">{{\'BLOCKCHAIN.VIEW.TECHNICAL_DIVIDER\' | translate}}</span><ion-item class="item-icon-left item-text-wrap" ng-if="!compactMode || $root.settings.expertMode"><i class="icon ion-gear-b"></i> {{\'BLOCKCHAIN.VIEW.VERSION\'|translate}} <span class="badge badge-stable">{{::formData.version}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="!compactMode || $root.settings.expertMode" copy-on-click="{{::formData.powMin}}"><i class="icon ion-lock-combination"></i> {{\'BLOCKCHAIN.VIEW.POW_MIN\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.POW_MIN_HELP\'|translate}}</h4><span class="badge badge-stable">{{::formData.powMin}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" copy-on-click="{{::formData.hash}}"><i class="icon ion-pound"></i> {{\'BLOCKCHAIN.VIEW.HASH\'|translate}}<h5 class="visible-xs visible-sm dark">{{::formData.hash}}</h5></ion-item><span class="item item-divider">{{\'BLOCKCHAIN.VIEW.DATA_DIVIDER\' | translate}}</span><ion-item ng-if="compactMode && formData.empty" class="item-icon-left item-text-wrap">{{\'BLOCKCHAIN.VIEW.EMPTY\'|translate}}</ion-item><ion-item ng-if="!compactMode || formData.dividend" class="item-icon-left item-text-wrap" copy-on-click="{{::formData.dividend/100}}"><i class="icon ion-arrow-up-c"></i><div class="col col-60">{{\'COMMON.UNIVERSAL_DIVIDEND\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.UNIVERSAL_DIVIDEND_HELP\'|translate: {membersCount: formData.membersCount} }}</h4></div><span class="badge badge-balanced" ng-if="formData.dividend">+1 <span ng-bind-html="formData.currency|currencySymbol: {useRelative: true} "></span> / {{\'COMMON.MEMBER\'|translate|lowercase}} </span><span class="badge badge-stable" ng-if="!formData.dividend">0</span> <span class="badge badge-secondary" ng-if="formData.dividend">+ {{formData.dividend| formatAmount: {currency: formData.currency, useRelative: false} }} / {{\'COMMON.MEMBER\'|translate|lowercase}}</span></ion-item><ng-if ng-if="!compactMode || formData.identitiesCount"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-clock" style="position: absolute; top: 16px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.IDENTITIES_COUNT\'|translate}} <span class="badge badge-balanced" ng-if="formData.identitiesCount">+{{::formData.identitiesCount}}</span> <span class="badge badge-stable" ng-if="!formData.identitiesCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.identitiesCount"><ion-item ng-repeat="identity in ::formData.identities" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.joinersCount"><ion-item class="item-icon-left"><i class="icon ion-person-add"></i> {{\'BLOCKCHAIN.VIEW.JOINERS_COUNT\'|translate}} <span class="badge badge-balanced" ng-if="formData.joinersCount">+{{::formData.joinersCount}}</span> <span class="badge badge-stable" ng-if="!formData.joinersCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.joinersCount"><ion-item ng-repeat="identity in ::formData.joiners" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.activesCount"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-refresh" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.ACTIVES_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.ACTIVES_COUNT_HELP\'|translate}}</h4><span class="badge badge-balanced" ng-if="formData.activesCount">{{::formData.activesCount}}</span> <span class="badge badge-stable" ng-if="!formData.activesCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.activesCount"><ion-item ng-repeat="identity in ::formData.actives" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || (formData.excludedCount-formData.revokedCount)"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-close dark" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.EXCLUDED_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.EXCLUDED_COUNT_HELP\'|translate}}</h4><span class="badge badge-assertive" ng-if="formData.excludedCount-formData.revokedCount">-{{::formData.excludedCount-formData.revokedCount}}</span> <span class="badge badge-stable" ng-if="!(formData.excludedCount-formData.revokedCount)">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.excludedCount"><ion-item ng-repeat="identity in ::formData.excluded" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.leaversCount"><ion-item class="item-icon-left" ng-if="!compactMode || formData.leaversCount"><i class="icon ion-person"></i> <b class="ion-minus" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.LEAVERS_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.LEAVERS_COUNT_HELP\'|translate}}</h4><span class="badge badge-assertive" ng-if="formData.leaversCount">-{{::formData.leaversCount}}</span> <span class="badge badge-stable" ng-if="!formData.leaversCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.leaversCount"><ion-item ng-repeat="identity in ::formData.leavers" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.revokedCount"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-minus-circled assertive" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.REVOKED_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.REVOKED_COUNT_HELP\'|translate}}</h4><span class="badge badge-balanced" ng-if="formData.revokedCount">-{{::formData.revokedCount}}</span> <span class="badge badge-stable" ng-if="!formData.revokedCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.revokedCount"><ion-item ng-repeat="identity in ::formData.revoked" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.certificationsCount"><ion-item class="item-icon-left"><i class="icon ion-ribbon-a"></i> {{\'BLOCKCHAIN.VIEW.CERT_COUNT\'|translate}} <span class="badge badge-stable" ng-class="{\'badge-positive\':formData.certificationsCount}">{{::formData.certificationsCount}}</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding no-padding-xs" ng-if="formData.certificationsCount"><div ng-repeat="(key, certs) in formData.certifications" class="item item-border-large item-small-height"><div class="row no-padding"><div class="col col-center no-padding"><ng-repeat ng-repeat="cert in certs"><ng-include src="\'templates/blockchain/link_identity.html\'" onload="identity=cert.from"></ng-include><br></ng-repeat></div><div class="col col-10 col-center gray text-center no-padding"><h2><i class="icon ion-arrow-right-a"></i></h2></div><div class="col col-40 col-center no-padding" ng-include="\'templates/blockchain/link_identity.html\'" onload="identity=certs[0].to"></div></div></div></div></ng-if><ng-if ng-if="!compactMode || formData.transactionsCount"><ion-item class="item-icon-left"><i class="icon ion-card"></i> {{\'BLOCKCHAIN.VIEW.TX_COUNT\'|translate}} <span class="badge badge-stable" ng-class="{\'badge-positive\':formData.transactionsCount}">{{::formData.transactionsCount}}</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding no-padding-xs" ng-if="formData.transactionsCount"><div ng-repeat="tx in ::formData.transactions" class="item item-small-height item-border-large"><div class="row no-padding" style="padding-top: 3px"><div class="col col-40 col-center no-padding list no-margin"><div ng-repeat="identity in ::tx.issuers" class="item no-padding item-small-height"><ng-include src="\'templates/blockchain/link_identity.html\'"></ng-include></div></div><div class="col col-10 col-center gray text-center no-padding"><h2><i class="icon ion-arrow-right-a"></i></h2></div><div class="col no-padding padding-right no-padding-xs col-text-wrap list no-margin"><span class="gray" ng-if="tx.toHimself" translate="">BLOCKCHAIN.VIEW.TX_TO_HIMSELF</span><div ng-repeat="output in ::tx.outputs" class="item no-padding item-small-height"><ng-include ng-if="::output.pubkey" src="\'templates/blockchain/link_identity.html\'" onload="identity=output"></ng-include><span ng-if="::!output.pubkey && output.unlockFunctions"><i class="icon ion-locked"></i> (<a ng-click="showUnlockConditionPopover(output, $event)"> <i ng-repeat="unlockFunction in ::output.unlockFunctions" ng-class="::{\'ion-key\': (unlockFunction==\'SIG\'), \'ion-clock\': (unlockFunction==\'CSV\' || unlockFunction==\'CLTV\'), \'ion-lock-combination\': (unlockFunction==\'XHX\') }" class="icon"></i> </a>) </span><span class="badge badge-balanced" ng-bind-html="::output.amount | formatAmount:{currency: formData.currency, useRelative: false} "></span></div></div></div></div></div></ng-if></div></div></div></ion-content></ion-view>'),e.put("templates/currency/items_network.html",'<ion-item id="helptip-network-blockchain" class="item-icon-left item-text-wrap"><i class="icon ion-clock"></i> <span class="col col-60" translate="">CURRENCY.VIEW.MEDIAN_TIME</span> <span class="badge badge-stable">{{formData.medianTime | medianDate}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-lock-combination"></i> <span class="col col-75" translate="">CURRENCY.VIEW.POW_MIN</span> <span class="badge badge-stable">{{formData.difficulty | formatInteger}}</span></ion-item><cs-extension-point name="network-actual"></cs-extension-point><div class="item item-divider"><span translate="">CURRENCY.VIEW.NETWORK_RULES_DIVIDER</span></div><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-clock" style="position: absolute; font-size: 20px; left: 16px; margin-top: 11px"></i> <b class="icon-secondary ion-lock-combination" style="left: 14px; margin-top: -4px"></b> <b class="icon-secondary ion-arrow-right-c" style="font-size: 12px; left: 28px; margin-top: -4px"></b> <b class="icon-secondary ion-lock-combination" style="left: 38px; margin-top: -4px"></b> <span class="col col-75" translate="">CURRENCY.VIEW.AVG_GEN_TIME</span> <span class="badge badge-stable">{{formData.avgGenTime | formatDuration}}</span></ion-item><div id="helptip-network-peers" class="item item-divider"><div class="pull-left"><span ng-if="search.type==\'member\'" translate="">PEER.MEMBERS</span> <span ng-if="search.type==\'mirror\'" translate="">PEER.MIRRORS</span> <span ng-if="search.type==\'offline\'" translate="">PEER.OFFLINE</span> <span ng-if="!search.type" translate="">PEER.PEERS</span> <span ng-if="!search.loading">({{search.results.length}})</span></div><div class="buttons pull-right"><ion-spinner class="icon" icon="android" ng-if="search.loading"></ion-spinner></div></div><ng-include src="\'templates/network/items_peers.html\'"></ng-include>'),e.put("templates/currency/items_parameters.html",'<div bind-notifier="{ rebind:formData.useRelative }"><ion-item class="item-icon-left item-text-wrap visible-xs visible-sm"><i class="icon ion-android-bookmark"></i> <span translate>CURRENCY.VIEW.CURRENCY_NAME</span><div class="item-note dark" ng-if="!loading">{{formData.currency}} (<span ng-bind-html=":rebind:formData.currency | currencySymbol:formData.useRelative"></span>)</div></ion-item><ion-item id="helptip-currency-mass-member" class="item-icon-left item-text-wrap"><i class="icon ion-pie-graph"></i><div class="col col-60"><span translate>CURRENCY.VIEW.SHARE</span> <span class="gray">(M<sub>t</sub>/N<sub>t</sub>)</span></div><span id="helptip-currency-mass-member-unit" ng-if="!loading" class="badge badge-calm" ng-bind-html=":rebind:formData.MoverN | formatAmount:{currency: formData.currency, useRelative: formData.useRelative, currentUD: formData.currentUD}"></span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-record"></i><div class="col col-60"><span translate>CURRENCY.VIEW.MASS</span> <span class="gray">(M<sub>t</sub>)</span></div><span class="badge badge-energized" ng-if="!loading" ng-bind-html=":rebind:formData.M | formatAmount:{currency: formData.currency, useRelative: formData.useRelative, currentUD: formData.currentUD}"></span></ion-item><cs-extension-point name="parameters-actual"></cs-extension-point><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-arrow-graph-up-right"></i><div class="col col-60"><span translate>CURRENCY.VIEW.C_ACTUAL</span> <span class="gray">(c<sub>{{\'CURRENCY.VIEW.CURRENT\'|translate}}</sub>)</span></div><span class="badge badge-stable">{{formData.cactual | formatNumeral: \'0,0.00\'}} %&nbsp;/&nbsp;{{formData.dt | formatPeriod}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-load-c"></i><div class="col col-60"><span translate>CURRENCY.VIEW.UD</span> <span class="gray">({{\'COMMON.UD\'|translate}}<sub>t</sub>)</span></div><div class="badge badge-royal" ng-if="!loading"><span ng-if="formData.useRelative">1<ng-bind-html ng-bind-html=":rebind:formData.currency| currencySymbol:true"></ng-bind-html></span><span ng-if="!formData.useRelative" ng-bind-html=":rebind:formData.currentUD | formatAmount:{currency: formData.currency, useRelative: formData.useRelative, currentUD: formData.currentUD}"></span> &nbsp;/&nbsp;{{formData.dt | formatPeriod}}</div></ion-item><div class="item item-toggle dark"><div class="item-label text-right gray" translate>COMMON.BTN_RELATIVE_UNIT</div><label class="toggle toggle-royal" id="helptip-currency-change-unit"><input type="checkbox" ng-model="formData.useRelative"><div class="track"><div class="handle"></div></div></label></div><a name="helptip-currency-rules-anchor"></a><div class="item item-divider" id="helptip-currency-rules"><span translate>CURRENCY.VIEW.MONEY_RULES_DIVIDER</span></div><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-arrow-graph-up-right"></i><div class="col col-60"><span translate>CURRENCY.VIEW.C_RULE</span> <span class="gray">(c)</span></div><span class="item-note dark" ng-if="!loading && !formData.udReevalTime0">{{formData.c*100 | formatNumeral: \'0,0.00\'}} %&nbsp;/&nbsp;{{formData.dt | formatPeriod}}</span><span class="badge badge-stable" ng-if="!loading && formData.udReevalTime0">{{formData.c*100 | formatNumeral: \'0,0.00\'}} %&nbsp;/&nbsp;{{formData.dtReeval | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.udReevalTime0 && formData.allRules"><i class="icon ion-load-c"></i> <b class="ion-clock icon-secondary" style="font-size: 18px; left: 36px; top: -12px"></b><div class="col col-60"><span translate>CURRENCY.VIEW.DT_REEVAL</span> <span class="gray">(dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)</span></div><span class="item-note dark" ng-if="!loading" translate="CURRENCY.VIEW.DT_REEVAL_VALUE" translate-values="formData"></span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.udReevalTime0 && formData.allRules"><i class="icon ion-load-c"></i> <b class="ion-calendar icon-secondary" style="font-size: 18px; left: 36px; top: -12px"></b><div class="col col-60"><span translate>CURRENCY.VIEW.UD_REEVAL_TIME0</span> <span class="gray">(t0<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)</span></div><span class="item-note dark" ng-if="!loading">{{formData.udReevalTime0|medianDate}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allRules"><i class="icon ion-load-c"></i> <b class="ion-calculator icon-secondary" style="font-size: 18px; left: 36px; top: -12px"></b><div class="col col-60"><span translate>CURRENCY.VIEW.UD_RULE</span> <span class="gray" ng-if="formData.udReevalTime0">- {{\'COMMON.UD\'|translate}}<sub>{{formData.dt|formatPeriod}}</sub>(t<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)</span></div><span class="item-note dark" ng-if="!loading && !formData.udReevalTime0">{{\'COMMON.UD\'|translate}}<sub>t-1</sub> + c<sup>2</sup> * M<sub>t-1</sub>/N<sub>t-1</sub></span><span class="item-note dark" ng-if="!loading && formData.udReevalTime0">{{\'COMMON.UD\'|translate}}<sub>{{formData.dt|formatPeriod}}</sub>(t<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub> - dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)+ c<sup>2</sup> * (M/N)(t<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub> - dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>) / dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub></span></ion-item><div class="item item-toggle dark"><div class="item-label text-right gray" translate>CURRENCY.VIEW.DISPLAY_ALL_RULES</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.allRules"><div class="track"><div class="handle"></div></div></label></div></div>'),e.put("templates/currency/items_wot.html",'<div bind-notifier="{ rebind:formData.useRelative }"><a name="helptip-currency-newcomers-anchor"></a><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-person-stalker"></i><div class="col col-60"><span translate>CURRENCY.VIEW.MEMBERS</span> <span class="gray">(N<sub>{{\'CURRENCY.VIEW.CURRENT\'|translate}}</sub>)</span></div><span class="badge badge-calm" ng-if="!loading">{{formData.N | formatInteger}}</span></ion-item><ion-item id="helptip-currency-newcomers" class="item-icon-left item-text-wrap"><i class="icon ion-arrow-graph-up-right"></i><div class="col col-75"><span translate="CURRENCY.VIEW.MEMBERS_VARIATION" translate-values="{duration: formData.durationFromLastUD}"></span> <span class="gray">(&#916;N)</span></div><div class="badge" ng-if="!loading" ng-class="{\'badge-balanced\': (formData.N>formData.Nprev), \'badge-stable\': (formData.N==formData.Nprev) ,\'badge-assertive\': (formData.Nprev>formData.N)}">{{formData.N > formData.Nprev ? \'+\' : \'\'}}{{formData.N - formData.Nprev}}</div></ion-item><cs-extension-point name="wot-actual"></cs-extension-point><div class="item item-divider"><span translate>CURRENCY.VIEW.WOT_RULES_DIVIDER</span></div><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-ribbon-b"></i> <span class="col col-75" translate>CURRENCY.VIEW.SIG_QTY_RULE</span> <span class="badge badge-balanced" ng-if="!loading">{{formData.sigQty}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-person"></i> <b class="ion-clock icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.MS_WINDOW</span> <span class="badge badge-assertive" ng-if="!loading">{{formData.msWindow | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-person"></i> <b class="ion-calendar icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.MS_VALIDITY</span> <span class="badge badge-balanced" ng-if="!loading">{{formData.msValidity | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-clock icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.SIG_WINDOW</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sigWindow | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-calendar icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.SIG_VALIDITY</span> <span class="badge badge-balanced" ng-if="!loading">{{formData.sigValidity | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-a"></i> <span class="col col-75" translate>CURRENCY.VIEW.SIG_STOCK</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sigStock}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-clock" style="position: absolute; font-size: 20px; left: 16px"></i> <b class="ion-ribbon-a icon-secondary" style="left: 16px; top: -15px"></b> <b class="ion-arrow-right-c icon-secondary" style="left: 28px; top: -15px"></b> <b class="ion-ribbon-a icon-secondary" style="left: 40px; top: -15px"></b> <span class="col col-75" translate>CURRENCY.VIEW.SIG_PERIOD</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sigPeriod | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-steam"></i> <b class="ion-person icon-secondary" style="left: 38px; top: -17px"></b><div class="col col-75"><span ng-bind-html="\'CURRENCY.VIEW.STEP_MAX\'|translate"></span> <span class="gray">(stepMax)</span></div><span class="badge badge-assertive" ng-if="!loading">{{formData.stepMax}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span class="col col-75" translate>CURRENCY.VIEW.SENTRIES</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sentries}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span class="col col-75" translate>CURRENCY.VIEW.SENTRIES_FORMULA</span> <span class="item-note dark" ng-if="!loading">{{\'CURRENCY.VIEW.MATH_CEILING\'| translate}}( N<sub>t</sub><sup>^ (1 / stepMax)</sup>)</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-pull-request"></i> <span class="col col-75" translate>CURRENCY.VIEW.XPERCENT</span> <span class="badge badge-stable" ng-if="!loading">{{formData.xpercent*100| formatNumeral: \'0,0\'}} %</span></ion-item><div class="item item-toggle dark"><div class="item-label text-right gray" translate>CURRENCY.VIEW.DISPLAY_ALL_RULES</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.allWotRules"><div class="track"><div class="handle"></div></div></label></div></div>'),e.put("templates/currency/lookup.html",'<ion-view view-title="{{\'CURRENCY.SELECT.TITLE\' | translate}}"><ion-content class="padding no-padding-xs no-padding-sm"><h4 class="content double-padding-x" translate>CURRENCY.SELECT.CURRENCIES</h4><ng-include src="\'templates/currency/lookup_form.html\'"></ion-content></ion-view>'),e.put("templates/currency/lookup_form.html",'<ion-list><div class="item center" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div ng-repeat="currency in search.results" ng-class="{ selected: selectedCurrency == currency }"><a class="item card card-item stable-bg padding ink" ng-click="selectCurrency(currency)" ng-class="{ selected: selectedCurrency && selectedCurrency.name == currency.name }"><h2>{{currency.name}}</h2><h4 class="gray">{{currency.peer.server}}</h4><span class="badge badge-royal">{{\'CURRENCY.SELECT.MEMBERS_COUNT\'|translate:currency}}</span></a></div></ion-list>'),e.put("templates/currency/modal_license.html",'<ion-modal-view class="modal-full-height modal-license"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>CURRENCY.LICENSE.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doTransfer()"></button></ion-header-bar><ion-content scroll="false" style="bottom: 0px"><p ng-if="!licenseUrl && !loading">translate>CURRENCY.LICENSE.NO_LICENSE_FILE</p><iframe ng-if="licenseUrl && !loading" class="padding-left padding-right no-padding-xs iframe-license" id="iframe-license" ng-src="{{licenseUrlHtml||licenseUrl}}"></iframe><div class="padding hidden-xs text-center"><button class="button button-stable ink" ng-click="downloadFile()">{{\'CURRENCY.LICENSE.BTN_DOWNLOAD\' | translate}}</button> <button class="button button-positive ink" type="submit" ng-click="closeModal()">{{\'COMMON.BTN_CLOSE\' | translate}}</button></div></ion-content></ion-modal-view>'),e.put("templates/currency/popover_actions.html",'<ion-popover-view class="fit has-header popover-wallet-actions"><ion-header-bar><h1 class="title" translate="">COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"></div></ion-content></ion-popover-view>'),e.put("templates/currency/view_currency.html",'<ion-view left-buttons="leftButtons" cache-view="false"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'CURRENCY.VIEW.TAB_CURRENCY\'|translate}}" icon="ion-stats-bars" ui-sref="app.currency.tab_parameters"><ion-nav-view name="tab-parameters"></ion-nav-view></ion-tab><ion-tab title="{{\'CURRENCY.VIEW.TAB_WOT\'|translate}}" icon="ion-person-stalker" ui-sref="app.currency.tab_wot"><ion-nav-view name="tab-wot"></ion-nav-view></ion-tab><ion-tab id="helptip-currency-tab-peers" title="{{\'CURRENCY.VIEW.TAB_NETWORK\'|translate}}" icon="ion-cloud" ui-sref="app.currency.tab_network"><ion-nav-view name="tab-network"></ion-nav-view></ion-tab><ion-tab title="{{\'CURRENCY.VIEW.TAB_BLOCKS\'|translate}}" icon="ion-lock-combination" ui-sref="app.currency.tab_blocks"><ion-nav-view name="tab-blocks"></ion-nav-view></ion-tab></ion-tabs></ion-view>'),e.put("templates/currency/view_currency_lg.html",'<ion-view left-buttons="leftButtons" cache-view="false"><ion-nav-title bind-notifier="{ rebind:formData.useRelative }"><span ng-if="!loading">{{\'CURRENCY.VIEW.TITLE\' | translate}} {{formData.currency|abbreviate}}</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="refreshPeers()"></button><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content><div class="item item-text-wrap no-border no-padding pull-left"><div class="item-icon-left card padding stable-900-bg"><ion-spinner class="icon" icon="android" ng-if="loading"></ion-spinner><i class="icon ion-help-circled calm" ng-if="!loading"></i><div class="item-icon-left-padding" style="min-height: 26px"><span ng-if="!loading" trust-as-html="\'CURRENCY.VIEW.CURRENCY_SHORT_DESCRIPTION\'|translate:formData"></span></div></div></div><div class="row responsive-sm"><div class="col list"><div class="item item-divider"><span translate="">CURRENCY.VIEW.MONEY_DIVIDER</span></div><ng-include src="\'templates/currency/items_parameters.html\'"></ng-include></div><div class="col list"><div class="item item-divider"><span translate="">CURRENCY.VIEW.WOT_DIVIDER</span></div><ng-include src="\'templates/currency/items_wot.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("templates/help/help.html",'<a name="join"></a><h2 translate>HELP.JOIN.SECTION</h2><a name="join-salt"></a><div class="row responsive-sm" ng-class="itemsClass[\'join-salt\']"><div class="col col-20" translate>LOGIN.SALT</div><div class="col" translate>HELP.JOIN.SALT</div></div><a name="join-password"></a><div class="row responsive-sm" ng-class="itemsClass[\'join-password\']"><div class="col col-20" translate>LOGIN.PASSWORD</div><div class="col" translate>HELP.JOIN.PASSWORD</div></div><a name="join-pseudo"></a><div class="row responsive-sm" ng-class="itemsClass[\'join-pseudo\']"><div class="col col-20" translate>ACCOUNT.NEW.PSEUDO</div><div class="col" translate>HELP.JOIN.PSEUDO</div></div><a name="login"></a><h2 translate>HELP.LOGIN.SECTION</h2><a name="login-pubkey"></a><div class="row responsive-sm" ng-class="itemsClass[\'login-pubkey\']"><div class="col col-20" translate>HELP.LOGIN.PUBKEY</div><div class="col" translate>HELP.LOGIN.PUBKEY_DEF</div></div><a name="login-method"></a><div class="row responsive-sm" ng-class="itemsClass[\'login-method\']"><div class="col col-20" translate>HELP.LOGIN.METHOD</div><div class="col" translate>HELP.LOGIN.METHOD_DEF</div></div><a name="glossary"></a><h2 translate>HELP.GLOSSARY.SECTION</h2><a name="pubkey"></a><div class="row responsive-sm" ng-class="itemsClass.pubkey"><div class="col col-20" translate>COMMON.PUBKEY</div><div class="col" translate>HELP.GLOSSARY.PUBKEY_DEF</div></div><a name="blockchain"></a><div class="row responsive-sm" ng-class="itemsClass.blockchain"><div class="col col-20" translate>HELP.GLOSSARY.BLOCKCHAIN</div><div class="col" translate>HELP.GLOSSARY.BLOCKCHAIN_DEF</div></div><a name="universal_dividend"></a> <a name="ud"></a><div class="row responsive-sm" ng-class="itemsClass.ud"><div class="col col-20" translate>COMMON.UNIVERSAL_DIVIDEND</div><div class="col" translate>HELP.GLOSSARY.UNIVERSAL_DIVIDEND_DEF</div></div><a name="member"></a><div class="row responsive-sm" ng-class="itemsClass.member"><div class="col col-20" translate>HELP.GLOSSARY.MEMBER</div><div class="col" translate>HELP.GLOSSARY.MEMBER_DEF</div></div><a name="wot"></a><div class="row responsive-sm" ng-class="itemsClass.wot"><div class="col col-20" translate>HELP.GLOSSARY.WOT</div><div class="col" translate>HELP.GLOSSARY.WOT_DEF</div></div><a name="currency_rules"></a><div class="row responsive-sm" ng-class="itemsClass.currency_rules"><div class="col col-20" translate>HELP.GLOSSARY.CURRENCY_RULES</div><div class="col" translate>HELP.GLOSSARY.CURRENCY_RULES_DEF</div></div><a name="distance_rule"></a><div class="row responsive-sm" ng-class="itemsClass.distance_rule"><div class="col col-20" translate>HELP.GLOSSARY.DISTANCE_RULE</div><div class="col" translate>HELP.GLOSSARY.DISTANCE_RULE_DEF</div></div>'),e.put("templates/help/modal_help.html",'<ion-modal-view class="modal-full-height modal-help"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CLOSE</button><h1 class="title" translate>HELP.TITLE</h1></ion-header-bar><ion-content scroll="true" class="padding no-padding-xs"><div ng-class="listClass"><ng-include src="\'templates/help/help.html\'"></ng-include></div><div class="padding hidden-xs text-center"><button class="button button-positive ink" type="submit" ng-click="closeModal()">{{\'COMMON.BTN_CLOSE\' | translate}}</button></div></ion-content></ion-modal-view>'),e.put("templates/help/view_help.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm" translate="">HELP.TITLE</span></ion-nav-title><ion-content scroll="true" class="padding"><ng-include src="\'templates/help/help.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/home/home.html",'<ion-view id="home" class=""><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"></ion-nav-buttons><ion-content class="has-header text-center no-padding-xs positive-900-bg circle-bg-dark"><div id="helptip-home-logo" class="logo"></div><h4><span class="hidden-xs" translate="">HOME.WELCOME</span> <b ng-show="!loading" translate-values=":currency:{currency: $root.currency.name}" translate="">HOME.MESSAGE</b></h4><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding animate-fade-in animate-show-hide ng-hide" ng-show="!loading && error"><div class="card card-item padding"><p class="item-content item-text-wrap"><span class="dark" trust-as-html="\'HOME.CONNECTION_ERROR\'|translate:node"></span></p><button type="button" class="button button-positive icon icon-left ion-refresh ink" ng-click="reload()">{{\'COMMON.BTN_REFRESH\'|translate}}</button></div></div><div class="center animate-fade-in animate-show-hide ng-hide" ng-show="!loading && !error"><button type="button" class="button button-block button-stable button-raised icon-left icon ion-easel ink-dark hidden-xs" ng-show="login" ng-click="startHelpTour()">{{\'COMMON.BTN_HELP_TOUR\'|translate}}</button> <button type="button" class="button button-block button-positive button-raised ink-dark" ng-click="showJoinModal()" ng-if="!login" translate="">LOGIN.CREATE_FREE_ACCOUNT</button> <button type="button" class="item button button-block button-positive button-raised icon icon-left ion-person ink-dark" ui-sref="app.view_wallet" ng-show="login" translate="">MENU.ACCOUNT</button> <button type="button" class="item button button-block button-positive button-raised icon icon-left ion-card ink-dark visible-xs" ui-sref="app.view_wallet_tx" ng-if="login" translate="">MENU.TRANSACTIONS</button><br class="visible-xs visible-sm"><div class="text-center no-padding" ng-show="!login"><br class="visible-xs visible-sm">{{\'LOGIN.HAVE_ACCOUNT_QUESTION\'|translate}} <b></b></div><div class="text-center no-padding" ng-show="login"><br class="visible-xs visible-sm"><span ng-bind-html="\'HOME.NOT_YOUR_ACCOUNT_QUESTION\'|translate:{pubkey: walletData.pubkey}"></span><br><b></b></div><button type="button" class="button button-block button-stable button-raised ink visible-xs visible-sm" ui-sref="app.view_wallet" ng-if="!login" translate="">COMMON.BTN_LOGIN</button> <button type="button" class="button button-block button-assertive button-raised icon icon-left ion-log-out ink-dark visible-xs visible-sm" ng-click="logout()" ng-if="login" translate="">COMMON.BTN_LOGOUT</button><div class="text-center no-padding visible-xs stable"><br>{{\'COMMON.APP_VERSION\'|translate:{version: config.version} }} | <a href="#" ng-click="showAboutModal()" translate="">HOME.BTN_ABOUT</a></div></div></ion-content></ion-view>'),e.put("templates/join/modal_choose_account_type.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="slidePrev()" ng-if="slides.slider.activeIndex"></button><h1 class="title" translate="">ACCOUNT.NEW.TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="slides.slider.activeIndex === 0" ng-click="slideNext()"><span translate="">COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page><ion-content class="has-header padding"><div class="center padding" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><div ng-if="!loading"><p ng-bind-html="\'ACCOUNT.NEW.INTRO_WARNING_TIME\'|translate:currency"></p><div class="row responsive-sm"><div class="col"><div class="item card item-icon-left padding item-text-wrap stable-bg"><i class="icon ion-android-warning assertive"></i><p class="item-content item-icon-left-padding"><span class="dark" translate="">ACCOUNT.NEW.INTRO_WARNING_SECURITY</span><br><small translate="">ACCOUNT.NEW.INTRO_WARNING_SECURITY_HELP</small></p></div></div><div class="col"><div class="item card item-icon-left padding item-text-wrap stable-bg"><i class="icon ion-information-circled positive"></i><p class="item-content item-icon-left-padding"><span class="dark" trust-as-html="\'ACCOUNT.NEW.REGISTRATION_NODE\'|translate:currency.node"></span><br><small trust-as-html="\'ACCOUNT.NEW.REGISTRATION_NODE_HELP\'|translate:currency.node"></small></p></div></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate="">COMMON.BTN_CANCEL</button> <button class="button button-positive icon-right ion-chevron-right ink" ng-click="slideNext()" ng-disabled="loading" type="button" translate="">COMMON.BTN_START</button></div></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header padding"><p translate="">ACCOUNT.NEW.SELECT_ACCOUNT_TYPE</p><div class="list"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectAccountTypeAndClose(\'member\')"><div class="item-content item-text-wrap"><i class="item-image icon dark ion-person"></i><h2 translate="">ACCOUNT.NEW.MEMBER_ACCOUNT</h2><h4 class="gray" ng-bind-html="\'ACCOUNT.NEW.MEMBER_ACCOUNT_HELP\'|translate:currency"></h4><i class="icon dark ion-ios-arrow-right"></i></div></div><cs-extension-point name="select-account-type"></cs-extension-point><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectAccountTypeAndClose(\'wallet\')"><div class="item-content item-text-wrap"><i class="item-image icon dark ion-card"></i><h2 translate="">ACCOUNT.NEW.WALLET_ACCOUNT</h2><h4 class="gray" translate="">ACCOUNT.NEW.WALLET_ACCOUNT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate="">COMMON.BTN_CANCEL</button></div></ion-content></ion-slide-page></ion-slides></ion-modal-view>'),e.put("templates/join/modal_join_member.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="doPrev()" ng-if="slides.slider.activeIndex && slideBehavior.hasPreviousButton"></button> <button class="button button-icon button-clear icon ion-ios-help-outline visible-xs" ng-if="slideBehavior.helpAnchor" ng-click="showHelpModal(slideBehavior.helpAnchor)"></button><h1 class="title" translate>ACCOUNT.NEW.MEMBER_ACCOUNT_TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasNextButton" ng-click="doNext()"><span translate>COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-class="{\'button-text-stable\': !isLicenseRead}" ng-if="slideBehavior.hasAcceptButton" ng-click="isLicenseRead ? doNext() : undefined"><span translate>ACCOUNT.NEW.BTN_ACCEPT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasSendButton" ng-click="doNewAccount()"><i class="icon ion-android-send"></i></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page ng-if="licenseFileUrl"><ion-content class="has-header" scroll="false"><div class="padding" translate>ACCOUNT.NEW.INFO_LICENSE</div><div class="center padding" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><iframe ng-if="!loading" class="padding-left padding-right no-padding-xs iframe-license" id="iframe-license" ng-src="{{licenseFileUrl}}"></iframe><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="doNext(\'licenceForm\')" ng-disabled="!isLicenseRead" type="button" translate>ACCOUNT.NEW.BTN_ACCEPT_LICENSE</button></div></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="true"><form name="pseudoForm" novalidate="" ng-submit="doNext(\'pseudoForm\')"><div class="item item-text-wrap text-center padding"><a class="pull-right icon-help hidden-xs" ng-click="showHelpModal(\'join-pseudo\')"></a> <span translate>ACCOUNT.NEW.PSEUDO_WARNING</span></div><div class="list" ng-init="setForm(pseudoForm, \'pseudoForm\')"><div class="item item-input" ng-class="{\'item-input-error\': (pseudoForm.$submitted && pseudoForm.pseudo.$invalid) || (uiAlreadyUsed && formData.pseudo)}"><span class="input-label" translate>ACCOUNT.NEW.PSEUDO</span> <input id="pseudo" name="pseudo" type="text" placeholder="{{\'ACCOUNT.NEW.PSEUDO_HELP\' | translate}}" ng-model="formData.pseudo" autocomplete="off" ng-minlength="3" ng-maxlength="100" ng-pattern="userIdPattern" ng-model-options="{ debounce: 250 }" required></div><div class="form-errors" ng-show="pseudoForm.$submitted && pseudoForm.pseudo.$error" ng-messages="pseudoForm.pseudo.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 3}"></span></div><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG_WITH_LENGTH" translate-values="{maxLength: 100}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.INVALID_USER_ID"></span></div></div><div class="text-right" style="min-height: 18px"><div class="form-error gray" ng-if="formData.computing && formData.pseudo"><ion-spinner class="icon ion-spinner-small" icon="android" ng-if="formData.computing && formData.pseudo"></ion-spinner><span translate>ACCOUNT.NEW.CHECKING_PSEUDO</span></div><ng-if ng-if="!formData.computing && formData.pseudo"><div class="form-error balanced" ng-if="!uiAlreadyUsed "><i class="icon ion-checkmark balanced"></i> <span translate>ACCOUNT.NEW.PSEUDO_AVAILABLE</span></div><div class="form-error" ng-if="uiAlreadyUsed"><i class="icon ion-close-circled assertive"></i> <span translate>ACCOUNT.NEW.PSEUDO_NOT_AVAILABLE</span></div></ng-if></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" ng-disabled="uiAlreadyUsed" translate>COMMON.BTN_NEXT</button></div></div></form></ion-content></ion-slide-page><ion-slide-page ng-if="!formData.pubkey"><ion-content class="has-header" scroll="true"><form name="saltForm" novalidate="" ng-submit="doNext(\'saltForm\')"><div class="list" ng-init="setForm(saltForm, \'saltForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-salt\')"></a> <span translate>ACCOUNT.NEW.SALT_WARNING</span></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.username.$invalid}"><span class="input-label" translate>LOGIN.SALT</span> <input ng-if="!showUsername" name="username" type="password" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" autocomplete="off" ng-minlength="8" different-to="formData.pseudo" required> <input ng-if="showUsername" name="username" type="text" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" autocomplete="off" ng-minlength="8" different-to="formData.pseudo" required></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.username.$error" ng-messages="saltForm.username.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="differentTo"><span translate="ERROR.EQUALS_TO_PSEUDO"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.confirmSalt.$invalid}"><span class="input-label pull-right" translate>ACCOUNT.NEW.SALT_CONFIRM</span> <input ng-if="!showUsername" name="confirmUsername" type="password" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" autocomplete="off" compare-to="formData.username"> <input ng-if="showUsername" name="confirmUsername" type="text" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" autocomplete="off" compare-to="formData.username"></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.confirmUsername.$error" ng-messages="saltForm.confirmUsername.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.SALT_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showUsername"><div class="track"><div class="handle"></div></div></label></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></div></form></ion-content></ion-slide-page><ion-slide-page ng-if="!formData.pubkey"><ion-content class="has-header" scroll="true"><form name="passwordForm" novalidate="" ng-submit="doNext(\'passwordForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-password\')"></a> <span translate>ACCOUNT.NEW.PASSWORD_WARNING</span></div><div class="list" ng-init="setForm(passwordForm, \'passwordForm\')"><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.password.$invalid}"><span class="input-label" translate>LOGIN.PASSWORD</span> <input ng-if="!showPassword" name="password" type="password" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" autocomplete="off" ng-change="formDataChanged()" ng-minlength="8" different-to="formData.username" required> <input ng-if="showPassword" name="text" type="text" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" autocomplete="off" ng-change="formDataChanged()" ng-minlength="8" different-to="formData.username" required></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.password.$error" ng-messages="passwordForm.password.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="differentTo"><span translate="ERROR.EQUALS_TO_SALT"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.confirmPassword.$invalid}"><span class="input-label" translate>ACCOUNT.NEW.PASSWORD_CONFIRM</span> <input ng-if="!showPassword" name="confirmPassword" type="password" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" autocomplete="off" compare-to="formData.password"> <input ng-if="showPassword" name="confirmPassword" type="text" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" autocomplete="off" compare-to="formData.password"></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.confirmPassword.$error" ng-messages="passwordForm.confirmPassword.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.PASSWORD_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showPassword"><div class="track"><div class="handle"></div></div></label></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" ng-click="getRevocationDocument()" translate>COMMON.BTN_NEXT</button></div><div class="padding hidden-xs"></div></form></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="true"><div class="center padding" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><ng-if ng-if="!formData.computing"><div class="animate-fade-in animate-show-hide ng-hide" ng-show="accountAvailable"><div class="padding text-center" translate>ACCOUNT.NEW.LAST_SLIDE_CONGRATULATION</div><div class="list"><ion-item class="item text-center item-text-wrap"><h3 class="gray" translate>LOGIN.ASSOCIATED_PUBKEY</h3><h3 class="dark bold">{{formData.pubkey}}</h3></ion-item></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-click="doNewAccount()" translate>COMMON.BTN_SEND <i class="icon ion-android-send"></i></button></div></div><div class="animate-fade-in animate-show-hide ng-hide" ng-show="!accountAvailable"><ion-item class="item-icon-left item-text-wrap text-center"><i class="icon ion-minus-circled assertive"></i> <span id="modal-license" trust-as-html="\'ERROR.EXISTING_ACCOUNT\'|translate"></span></ion-item><div class="list"><ion-item class="item item-text-wrap item-border"><div class="padding text-center"><span class="gray text-no-wrap">{{formData.pubkey}}</span></div></ion-item><div class="padding text-center"><span translate>ERROR.EXISTING_ACCOUNT_REQUEST</span></div></div><div class="padding hidden-xs text-left"><button class="button button-assertive icon-left ion-chevron-left ink" ng-click="identifierRecovery()" translate>COMMON.BTN_MODIFY</button></div></div></ng-if></ion-content></ion-slide-page></ion-slides></ion-modal-view>'),e.put("templates/join/modal_join_wallet.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="slidePrev()" ng-if="slideBehavior.hasPreviousButton"></button> <button class="button button-icon button-clear icon ion-ios-help-outline visible-xs" ng-if="slideBehavior.helpAnchor" ng-click="showHelpModal(slideBehavior.helpAnchor)"></button><h1 class="title" translate>ACCOUNT.NEW.WALLET_ACCOUNT_TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasNextButton" ng-click="doNext()"><span translate>COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasSendButton" ng-click="doNewAccount()"><i class="icon ion-android-send"></i></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page><ion-content class="has-header" scroll="false"><form name="saltForm" novalidate="" ng-submit="doNext(\'saltForm\')"><div class="list" ng-init="setForm(saltForm, \'saltForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-salt\')"></a> <span translate>ACCOUNT.NEW.SALT_WARNING</span></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.username.$invalid}"><span class="input-label" translate>LOGIN.SALT</span> <input ng-if="!showUsername" name="username" type="password" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" ng-minlength="8" required> <input ng-if="showUsername" name="username" type="text" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" ng-minlength="8" required></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.username.$error" ng-messages="saltForm.username.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.confirmSalt.$invalid}"><span class="input-label pull-right" translate>ACCOUNT.NEW.SALT_CONFIRM</span> <input ng-if="!showUsername" name="confirmUsername" type="password" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" compare-to="formData.username"> <input ng-if="showUsername" name="confirmUsername" type="text" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" compare-to="formData.username"></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.confirmUsername.$error" ng-messages="saltForm.confirmUsername.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.SALT_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showUsername"><div class="track"><div class="handle"></div></div></label></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></div></form></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="false"><form name="passwordForm" novalidate="" ng-submit="doNext(\'passwordForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-password\')"></a> <span translate>ACCOUNT.NEW.PASSWORD_WARNING</span></div><div class="list" ng-init="setForm(passwordForm, \'passwordForm\')"><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.password.$invalid}"><span class="input-label" translate>LOGIN.PASSWORD</span> <input ng-if="!showPassword" name="password" type="password" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" ng-change="formDataChanged()" ng-minlength="8" required> <input ng-if="showPassword" name="text" type="text" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" ng-change="formDataChanged()" ng-minlength="8" required></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.password.$error" ng-messages="passwordForm.password.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.confirmPassword.$invalid}"><span class="input-label" translate>ACCOUNT.NEW.PASSWORD_CONFIRM</span> <input ng-if="!showPassword" name="confirmPassword" type="password" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" compare-to="formData.password"> <input ng-if="showPassword" name="confirmPassword" type="text" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" compare-to="formData.password"></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.confirmPassword.$error" ng-messages="passwordForm.confirmPassword.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.PASSWORD_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showPassword"><div class="track"><div class="handle"></div></div></label></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT</button></div><div class="padding hidden-xs"></div></form></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="false"><div class="padding center" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><div ng-if="accountAvailable && !formData.computing"><div class="padding text-center" translate>ACCOUNT.NEW.LAST_SLIDE_CONGRATULATION</div><div class="list"><ion-item class="item item-text-wrap item-border"><div class="dark pull-right padding-right" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><span class="input-label" translate>COMMON.PUBKEY</span> <span class="gray text-no-wrap" ng-if="formData.computing" translate>ACCOUNT.NEW.COMPUTING_PUBKEY </span><span class="gray text-no-wrap" ng-if="formData.pubkey">{{formData.pubkey}}</span></ion-item></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-click="doNewAccount()" translate>COMMON.BTN_CREATE</button></div></div><div ng-if="!accountAvailable && !formData.computing"><ion-item class="item-icon-left item-text-wrap text-center"><i class="icon ion-android-close active"></i> <span id="modal-license" translate>ERROR.EXISTING_ACCOUNT</span></ion-item><div class="list"><ion-item class="item item-text-wrap item-border"><div class="dark pull-right padding-right" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><span class="gray text-no-wrap" ng-if="formData.computing" translate>ACCOUNT.NEW.COMPUTING_PUBKEY</span><div class="padding text-center"><span class="gray text-no-wrap" ng-if="formData.pubkey">{{formData.pubkey}}</span></div></ion-item><div class="padding text-center"><span translate>ERROR.EXISTING_ACCOUNT_REQUEST</span></div></div><div class="padding hidden-xs text-left"><button class="button button-assertive icon-left ion-chevron-left ink" ng-click="identifierRecovery()" translate>COMMON.BTN_MODIFY</button></div></div></ion-content></ion-slide-page></ion-slides></ion-modal-view>'),e.put("templates/login/form_file_import.html",'<div class="item"><p class="item-text-wrap" translate>LOGIN.FILE_FORM_HELP</p></div><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i> <span class="positive" translate>LOGIN.FILE.HELP</span></div><div dropzone="onKeyFileDrop(file)"><div ng-if="!formData.file" onclick="angular.element(document.querySelector(\'#loginImportFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="loginImportFile" accept=".dunikey,.yml" style="visibility:hidden; position:absolute" onchange="angular.element(this).scope().fileChanged(event)"></div><div class="item item-icon-left item-icon-right stable-bg" ng-if="formData.file"><i class="icon ion-document-text dark"></i><div class="item-content row"><div class="col"><h2>{{formData.file.name}}</h2><h4 class="dark" ng-if="formData.file.lastModified"><span class="gray" translate>COMMON.FILE.DATE</span> {{formData.file.lastModified/1000|formatDate}}</h4><h5 class="dark"><span class="gray" translate>COMMON.FILE.SIZE</span> {{formData.file.size|formatInteger}} Ko</h5></div><div class="col"><h3><span class="gray" translate>COMMON.PUBKEY</span></h3><h3 ng-if="validatingFile" translate>COMMON.FILE.VALIDATING</h3><h3 ng-if="!validatingFile"><span class="dark animate-show-hide ng-hide" ng-show="formData.file.pubkey">{{formData.file.pubkey}}</span> <span class="assertive animate-show-hide ng-hide" ng-show="!formData.file.valid"><br><i class="ion-close-circled assertive"></i> {{formData.file.pubkey ? \'ERROR.AUTH_INVALID_PUBKEY\' : \'ERROR.AUTH_INVALID_FILE\' |translate}}</span></h3></div></div><a class="ion-close-round gray pull-right" style="font-size: 10px; position: absolute; top: 6px; right: 6px" ng-click="removeKeyFile()"></a></div></div><ion-checkbox ng-model="formData.keepAuth" class="item ink item-text-wrap"><div class="item-content dark" translate>LOGIN.MEMORIZE_AUTH_FILE</div></ion-checkbox>'),e.put("templates/login/form_login.html",'<form name="loginForm" novalidate="" ng-submit="doLogin()" autocomplete="off"><div class="list padding no-padding-xs" ng-init="setForm(loginForm)" ng-switch on="formData.method"><div class="item hidden-xs no-padding" ng-if="showMethods"><div class="pull-right"><a class="button button-text button-small-padding icon-right ink" ng-click="showMethodsPopover($event)"><i class="icon ion-wrench"></i> {{\'LOGIN.BTN_METHODS\'| translate}} </a>&nbsp; <a class="button button-icon positive button-small-padding icon ion-ios-help-outline" style="right: 8px" ng-click="showHelpModal(\'login-method\')"></a></div></div><div class="item item-text-wrap" ng-if="::isAuth"><p ng-if="::expectedPubkey" ng-bind-html="::expectedUid ? \'AUTH.EXPECTED_UID_HELP\' : \'AUTH.EXPECTED_PUBKEY_HELP\' |translate: {uid: expectedUid, pubkey: expectedPubkey}"></p><p ng-if="::!expectedPubkey" ng-bind-html="::\'AUTH.GENERAL_HELP\'|translate"></p></div><div ng-switch-when="SCRYPT_DEFAULT"><ng-include src="\'templates/login/form_scrypt.html\'"></ng-include></div><div ng-switch-when="SCRYPT_ADVANCED"><ng-include src="\'templates/login/form_scrypt_advanced.html\'"></ng-include></div><div ng-switch-when="PUBKEY"><ng-include src="\'templates/login/form_pubkey.html\'"></ng-include></div><div ng-switch-when="FILE"><ng-include src="\'templates/login/form_file_import.html\'"></ng-include></div><div ng-switch-when="SCAN"><ng-include src="\'templates/login/form_scan.html\'"></ng-include></div><div ng-switch-default><ng-include src="\'templates/login/form_scrypt.html\'"></ng-include></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-class="{\'button-assertive\': isAuth, \'button-positive\': !isAuth}" type="submit">{{okText || (isAuth ? \'AUTH.BTN_AUTH\' : \'COMMON.BTN_LOGIN\') | translate}}</button></div><div class="text-center no-padding visible-xs"><button type="button" class="button button-small icon-right ink" ng-click="showMethodsPopover($event)"><i class="icon ion-loop"></i> <span translate>LOGIN.BTN_METHODS_DOTS</span></button><br><br></div><ng-if ng-if="!isAuth && showNewAccountLink"><div class="text-center no-padding">{{\'LOGIN.NO_ACCOUNT_QUESTION\'|translate}}<br class="visible-xs"><a ng-click="showJoinModal()" translate>LOGIN.CREATE_ACCOUNT</a></div><br class="visible-xs"><div class="text-center no-padding"><a ng-click="showAccountSecurityModal()" translate>LOGIN.FORGOTTEN_ID</a></div></ng-if></form>'),e.put("templates/login/form_pubkey.html",'<div class="item"><p class="item-text-wrap" translate>LOGIN.PUBKEY_FORM_HELP</p></div><div class="item item-input item-button-right" ng-class="{ \'item-input-error\': form.$submitted && form.pubkey.$invalid}"><span class="input-label hidden-xs" translate>COMMON.PUBKEY</span> <input name="pubkey" type="text" placeholder="{{\'LOGIN.PUBKEY_HELP\' | translate}}" autocomplete="off" ng-model="formData.pubkey" ng-model-options="{ debounce: 650 }" required> <a class="button button-stable icon ion-android-search ink" ng-click="showWotLookupModal(form.pubkey.$viewValue)"></a></div><div class="form-errors" ng-show="form.$submitted && form.pubkey.$error" ng-messages="form.pubkey.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="checksum"><span translate="ERROR.INVALID_PUBKEY_CHECKSUM"></span></div></div>'),e.put("templates/login/form_scan.html",'<div class="item"><p class="item-text-wrap" ng-bind-html="::isAuth ? \'AUTH.SCAN_FORM_HELP\' : \'LOGIN.SCAN_FORM_HELP\' |translate"></p></div><div class="item item-icon-right item-text-wrap item-input" ng-class="{ \'item-input-error\': pubkeyError}"><span class="input-label" translate>COMMON.PUBKEY</span><div class="item-content text-wrap"><span class="gray animate-show-hide" ng-show="!computing && formData.pubkey">{{formData.pubkey}}</span><ion-spinner class="ion-spinner-small" icon="android" ng-if="computing"></ion-spinner><input type="hidden" ng-model="formData.pubkey" required></div><a class="button button-icon positive button-small-padding icon ion-qr-scanner animate-show-hide" ng-show="!computing && (!expectedPubkey || pubkeyError)" ng-click="doScan()"></a> <span class="button button-icon balanced button-small-padding icon ion-checkmark animate-show-hide" ng-if="expectedPubkey" ng-show="!computing && !pubkeyError"></span></div><div class="form-errors" ng-if="expectedPubkey"><div class="form-error" ng-show="pubkeyError"><span trust-as-html="::\'ERROR.AUTH_INVALID_PUBKEY\'|translate:{pubkey: expectedPubkey}"></span></div></div>'),e.put("templates/login/form_scrypt.html",'<div class="item item-text-wrap" ng-if="!isAuth"><p ng-bind-html="\'LOGIN.SCRYPT_FORM_HELP\'|translate"></p></div><input type="password" name="fake-password" autocomplete="off" style="visibility:hidden; position:absolute"><label class="item item-input" ng-class="{ \'item-input-error\': form.$submitted && form.username.$invalid}"><span class="input-label hidden-xs" translate>LOGIN.SALT</span> <input name="username" type="password" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" autocomplete="off" ng-model="formData.username" ng-model-options="{ debounce: 650 }" class="highlight-light" required></label><div class="form-errors" ng-show="form.$submitted && form.username.$error" ng-messages="form.username.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><label class="item item-input" ng-class="{ \'item-input-error\': form.$submitted && form.password.$invalid}"><span class="input-label hidden-xs" translate>LOGIN.PASSWORD</span> <input name="password" type="password" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" autocomplete="off" ng-model="formData.password" ng-model-options="{ debounce: 650 }" select-on-click required></label><div class="form-errors" ng-show="form.$submitted && form.password.$error" ng-messages="form.password.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-icon-right item-text-wrap" ng-class="{ \'item-input-error\': pubkeyError, \'item-input\': showPubkey}"><span class="input-label hidden-xs animate-show-hide ng-hide" ng-show="showPubkey" translate>COMMON.PUBKEY</span><div class="item-content text-wrap"><a class="positive ink animate-show-hide ng-hide" ng-show="showComputePubkeyButton && !pubkey" ng-click="computePubkey()"><i class="ion-eye"></i> {{\'COMMON.BTN_SHOW_PUBKEY\' | translate}} </a><span class="gray animate-show-hide" ng-show="!computing && pubkey">{{pubkey}}</span><ion-spinner class="ion-spinner-small" icon="android" ng-if="computing"></ion-spinner></div><a class="button button-icon positive button-small-padding icon ion-ios-help-outline animate-show-hide" ng-click="showHelpModal(\'login-pubkey\')" ng-if="!expectedPubkey" ng-show="showPubkey"></a> <span class="button button-icon balanced button-small-padding icon ion-checkmark animate-show-hide" ng-if="expectedPubkey" ng-show="showPubkey && !showComputePubkeyButton && !computing && !pubkeyError"></span></div><div class="form-errors" ng-if="expectedPubkey"><div class="form-error" ng-show="pubkeyError"><span trust-as-html="::\'ERROR.AUTH_INVALID_PUBKEY\'|translate:{pubkey: expectedPubkey}"></span></div></div>'),e.put("templates/login/form_scrypt_advanced.html",'<div class="row responsive-md responsive-sm padding-left"><div class="col col-33 no-padding"><label class="item item-input item-select"><select ng-model="formData.scrypt" style="max-width: 100%" ng-change="changeScrypt(formData.scrypt)" ng-options="l as (l.label | translate) for l in scryptParamsValues track by l.id"></select></label></div><div class="col no-padding"><label class="item item-input"><span class="input-label" translate>LOGIN.SCRYPT.N</span> <input class="no-padding-right" type="number" placeholder="N" autocomplete="off" ng-model="formData.scrypt.params.N" ng-model-options="{ debounce: 650 }" ng-change="onScryptFormChanged()" required></label></div><div class="col no-padding"><label class="item item-input"><span class="input-label" translate>LOGIN.SCRYPT.r</span> <input class="no-padding-right" type="number" placeholder="r" ng-model="formData.scrypt.params.r" autocomplete="off" ng-model-options="{ debounce: 650 }" ng-change="onScryptFormChanged()" required></label></div><div class="col no-padding"><label class="item item-input"><span class="input-label" translate>LOGIN.SCRYPT.p</span> <input class="no-padding-right" type="number" placeholder="p" autocomplete="off" ng-model="formData.scrypt.params.p" ng-model-options="{ debounce: 650 }" ng-change="onScryptFormChanged()" required></label></div></div><p class="energized-100-bg padding dark"><i class="icon ion-android-warning"></i> <span translate>INFO.FEATURES_NOT_IMPLEMENTED</span></p><ng-include src="\'templates/login/form_scrypt.html\'"></ng-include>'),e.put("templates/login/item_remember_me.html",'<ion-checkbox ng-model="formData.rememberMe" ng-if="!isAuth" class="item ink item-text-wrap"><div class="item-content dark" translate>SETTINGS.REMEMBER_ME</div></ion-checkbox>'),e.put("templates/login/modal_login.html",'<ion-modal-view class="modal-full-height modal-login"><ion-header-bar class="" ng-class="{\'bar-positive\': !isAuth, \'bar-assertive\': isAuth}"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" ng-bind-html="title | translate"></h1><div class="buttons buttons-right"><div class="secondary-buttons"><button class="button button-icon button-clear icon ion-android-done visible-xs" ng-class="{\'button-positive\': !isAuth}" style="color: #fff" ng-click="doLogin()"></button></div></div></ion-header-bar><ion-content scroll="true"><ng-include src="\'templates/login/form_login.html\'"></ng-include></ion-content></ion-modal-view>'),e.put("templates/login/popover_methods.html",'<ion-popover-view class="fit has-header popover-login-methods" ng-class="{\'auth\': isAuth}"><ion-header-bar><h1 class="title" translate="">LOGIN.METHOD_POPOVER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="changeMethod(\'SCRYPT_DEFAULT\')"><i class="icon ion-shuffle" style="font-size: 22px"></i> {{\'LOGIN.METHOD.SCRYPT_DEFAULT\' | translate}} </a><a class="item item-icon-left ink" ng-click="changeMethod(\'SCRYPT_ADVANCED\')"><i class="icon ion-shuffle" style="font-size: 22px"></i> <i class="icon-secondary ion-plus" style="font-size: 13px; left: 40px; margin-top: -4px"></i> {{\'LOGIN.METHOD.SCRYPT_ADVANCED\' | translate}} </a><a class="item item-icon-left ink hidden-xs" ng-click="changeMethod(\'FILE\')"><i class="icon ion-document-text"></i> {{\'LOGIN.METHOD.FILE\' | translate}} </a><a class="item item-icon-left ink" ng-if="$root.device.barcode.enable" ng-click="changeMethod(\'SCAN\')"><i class="icon ion-qr-scanner"></i> {{\'LOGIN.METHOD.SCAN\' | translate}} </a><a class="item item-icon-left ink" ng-if="!isAuth" ng-click="changeMethod(\'PUBKEY\')"><i class="icon ion-key"></i> {{\'LOGIN.METHOD.PUBKEY\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/network/item_content_peer.html",'<i class="icon ion-android-desktop" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" ng-if=":rebind:!peer.avatar"></i> <b class="icon-secondary ion-person" ng-if=":rebind:!peer.avatar" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" style="left: 26px; top: -3px"></b> <i class="avatar" ng-if=":rebind:peer.avatar" style="background-image: url(\'{{:rebind:peer.avatar.src}}\')"></i> <b class="icon-secondary assertive ion-close-circled" ng-if=":rebind:!peer.online" style="left: 37px; top: -10px"></b><div class="row no-padding"><div class="col no-padding"><h3 class="dark" ng-if=":rebind:!peer.bma.private">{{:rebind:peer.dns || peer.server}}</h3><h4 class="gray" ng-if=":rebind:peer.bma.private"><i class="ion-flash"></i> {{\'NETWORK.VIEW.PRIVATE_ACCESS\'|translate}}</h4><h4><span class="gray" ng-if=":rebind:!peer.uid"><i class="ion-key"></i> {{:rebind:peer.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:peer.uid"><i class="ion-person"></i> {{:rebind:peer.name || peer.uid}} </span><span class="gray" ng-if=":rebind:!compactMode">{{:rebind:peer.dns && (\' | \' + peer.server) + (peer.bma.path||\'\') }}</span></h4></div><div class="col col-20 no-padding text-center" ng-if="::expertMode && search.type != \'offline\'"></div><div class="col col-20 no-padding text-center"><span id="{{$index === 0 ? helptipPrefix + \'-peer-0-block\' : \'\'}}" class="badge" ng-class=":rebind:{\'badge-balanced\': peer.hasMainConsensusBlock, \'badge-energized\': peer.hasConsensusBlock, \'ng-hide\': !peer.currentNumber && !peer.blockNumber }">{{::!expertMode ? (\'COMMON.BLOCK\'|translate) : \'\' }} {{:rebind:(peer.currentNumber || peer.blockNumber) | formatInteger}}</span> <span class="badge badge-secondary" ng-if=":rebind:peer.consensusBlockDelta && expertMode"><i class="ion-clock"></i>&nbsp; {{:rebind:peer.consensusBlockDelta|formatDurationTime}}</span></div></div>'),e.put("templates/network/items_peers.html",'<div class="no-padding {{::motion.ionListClass}}"><div class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-if="::isHttps && expertMode"><small><i class="icon ion-alert-circled"></i> {{\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></div><div ng-repeat="peer in :rebind:search.results track by peer.id" class="item item-peer item-icon-left ink {{::ionItemClass}}" ng-class=":rebind:{\'compacted\': peer.compacted && compactMode}" id="{{::helptipPrefix}}-peer-{{::$index}}" ng-click="selectPeer(peer)" ng-include="::\'templates/network/item_content_peer.html\'"></div></div>'),e.put("templates/network/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>PEER.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'member\')"><i class="icon ion-person"></i> {{\'PEER.MEMBERS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'member\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'mirror\')"><i class="icon ion-radio-waves"></i> {{\'PEER.MIRRORS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'mirror\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'offline\')"><i class="icon ion-eye-disabled"></i> {{\'PEER.OFFLINE\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'offline\'"></i></a></div></ion-content></ion-popover-view>'),e.put("templates/network/modal_network.html",'<ion-modal-view id="nodes" class="modal-full-height" cache-view="false"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button><h1 class="title" translate="">PEER.PEER_LIST</h1><div class="buttons buttons-right header-item"><span class="secondary"><button class="button button-clear icon ion-loop button-clear" ng-click="refresh()"></button> <button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></span></div></ion-header-bar><ion-content><div class="list"><div class="padding padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4><span ng-if="enableFilter && search.type==\'member\'" translate="">PEER.MEMBER_PEERS</span> <span ng-if="enableFilter && search.type==\'mirror\'" translate="">PEER.MIRROR_PEERS</span> <span ng-if="!enableFilter || !search.type" translate="">PEER.ALL_PEERS</span> <span ng-if="!search.loading">({{search.results.length}})</span></h4></div><div class="pull-right"><ion-spinner class="icon" icon="android" ng-if="search.loading"></ion-spinner>&nbsp;<div class="pull-right">&nbsp;</div></div></div><ng-include src="\'templates/network/items_peers.html\'"></ng-include></div></ion-content></ion-modal-view>'),e.put("templates/network/popover_endpoints.html",'<ion-popover-view class="popover-endpoints popover-light" style="height: {{(titleKey?30:0)+((!items || items.length &lt;= 1) ? 55 : 3+items.length*52)}}px"><ion-header-bar class="bar bar-header stable-bg" ng-if="titleKey"><div class="title">{{titleKey | translate:titleValues }}</div></ion-header-bar><ion-content scroll="false"><div class="list" ng-class="{\'has-header\': titleKey}"><div class="item item-text-wrap" ng-repeat="item in items"><div class="item-label" ng-if="item.label">{{item.label | translate}}</div><div id="endpoint_{{$index}}" class="badge item-note dark">{{item.value}}</div></div></div></ion-content></ion-popover-view>'),e.put("templates/network/popover_network.html",""),e.put("templates/network/popover_peer_info.html",""),e.put("templates/network/view_network.html",'<ion-view><ion-nav-title><span translate="">MENU.NETWORK</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="refresh()"></button></ion-nav-buttons><ion-content scroll="true" ng-init="enableFilter=true; ionItemClass=\'item-border-large\';"><div class="row responsive-sm responsive-md responsive-lg"><div class="col list col-border-right"><div class="padding padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4><span ng-if="enableFilter && search.type==\'member\'" translate="">PEER.MEMBER_PEERS</span> <span ng-if="enableFilter && search.type==\'mirror\'" translate="">PEER.MIRROR_PEERS</span> <span ng-if="enableFilter && search.type==\'offline\'" translate="">PEER.OFFLINE_PEERS</span> <span ng-if="!enableFilter || !search.type" translate="">PEER.ALL_PEERS</span> <span ng-if="search.results.length">({{search.results.length}})</span><ion-spinner ng-if="search.loading" class="icon ion-spinner-small" icon="android"></ion-spinner></h4></div><div class="pull-right"><div class="pull-right" ng-if="enableFilter">&nbsp;<cs-extension-point name="network-buttons"></cs-extension-point></div></div></div><div id="helptip-network-blockchain" style="display: block"></div><div id="helptip-network-peers" style="display: block"></div><ng-include src="\'templates/network/items_peers.html\'"></ng-include></div><div class="col col-33" ng-controller="BlockLookupCtrl"><div class="padding padding-xs" style="display: block; height: 100px"><h4 translate="">BLOCKCHAIN.LOOKUP.LAST_BLOCKS</h4></div><ng-include src="\'templates/blockchain/list_blocks.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("templates/network/view_peer.html",'<ion-view><ion-nav-title><span translate="">PEER.VIEW.TITLE</span></ion-nav-title><ion-content class="has-header" scroll="true"><div class="row no-padding"><div class="col list"><ion-item><h1><span translate="">PEER.VIEW.TITLE</span> <span class="gray">{{node.host}}</span></h1><h2 class="gray"><i class="gray icon ion-android-globe"></i> {{node.bma.dns || node.server}} <span class="gray" ng-if="!loading && node.useSsl"><i class="gray ion-locked"></i> <small>SSL</small> </span><span class="gray" ng-if="!loading && node.useTor"><i class="gray ion-bma-tor-api"></i> </span><span class="assertive" ng-if="!loading && !node.uid">({{\'PEER.MIRROR\'|translate}})</span></h2><h3><span class="dark"><i class="icon ion-android-desktop"></i> {{\'PEER.VIEW.OWNER\'|translate}} </span><a class="positive" ng-if="node.uid" ui-sref="app.wot_identity({pubkey: node.pubkey, uid: node.uid})"><i class="ion-person"></i> {{node.name || node.uid}} <span class="gray" ng-if="node.name">({{node.uid}}) </span></a><span ng-if="!loading && !node.uid"><a class="gray" ui-sref="app.wot_identity({pubkey: node.pubkey})"><i class="ion-key"></i> {{node.pubkey|formatPubkey}} <span class="gray" ng-if="node.name">({{node.name}})</span></a></span></h3><h3><a ng-click="openRawPeering($event)"><i class="icon ion-share"></i> {{\'PEER.VIEW.SHOW_RAW_PEERING\'|translate}} </a><span class="gray" ng-if="!isReachable">| </span><a ng-if="!isReachable" ng-click="openRawCurrentBlock($event)"><i class="icon ion-share"></i> <span translate="">PEER.VIEW.SHOW_RAW_CURRENT_BLOCK</span></a></h3></ion-item><div class="item item-divider" translate="">PEER.VIEW.GENERAL_DIVIDER</div><ion-item class="item-icon-left item-text-wrap ink" copy-on-click="{{node.pubkey}}"><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><h4 class="dark text-left">{{node.pubkey}}</h4></ion-item><a class="item item-icon-left item-icon-right item-text-wrap ink" ng-if="isReachable" ui-sref="app.view_server_block_hash({server: node.server, ssl: node.useSsl, tor: node.useTor, number: current.number, hash: current.hash})"><i class="icon ion-cube"></i> <span translate="">BLOCKCHAIN.VIEW.TITLE_CURRENT</span><div class="badge badge-calm" ng-if="!loading">{{current.number|formatInteger}}</div><i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-icon-right item-text-wrap ink" ng-if="isReachable" ui-sref="app.server_blockchain({server: node.server, ssl: node.useSsl, tor: node.useTor})"><i class="icon ion-cube" style="font-size: 25px"></i> <i class="icon-secondary ion-clock" style="font-size: 18px; left: 33px; top: -12px"></i> <span translate="">PEER.VIEW.LAST_BLOCKS</span> <i class="gray icon ion-ios-arrow-right"></i></a><cs-extension-point name="general"></cs-extension-point><div class="item item-divider" ng-hide="loading || !isReachable" translate="">PEER.VIEW.KNOWN_PEERS</div><ion-item class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-show="!loading && !isReachable"><small><i class="icon ion-alert-circled"></i> {{\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></ion-item><div class="item center" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><div class="list no-padding {{::motion.ionListClass}}" ng-if="isReachable"><div ng-repeat="peer in :rebind:peers track by peer.id" class="item item-peer item-icon-left ink {{::ionItemClass}}" ng-click="selectPeer(peer)" ng-include="\'templates/network/item_content_peer.html\'"></div></div></div></div></ion-content></ion-view>'),e.put("templates/settings/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink visible-xs visible-sm" ng-click="reset()"><i class="icon ion-refresh"></i> {{\'SETTINGS.BTN_RESET\' | translate}} </a><a class="item item-icon-left ink" ng-click="startSettingsTour()"><i class="icon ion-easel"></i> {{\'COMMON.BTN_HELP_TOUR_SCREEN\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/settings/popup_node.html",'<form name="popupForm" ng-submit=""><div class="list no-padding" ng-init="setPopupForm(popupForm)"><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': popupForm.$submitted && popupForm.newNode.$invalid}"><span class="input-label" ng-bind-html="\'SETTINGS.POPUP_PEER.HOST\'|translate"></span> <input name="newNode" type="text" placeholder="{{\'SETTINGS.POPUP_PEER.HOST_HELP\' | translate}}" ng-model="popupData.newNode" ng-minlength="3" required></div><div class="form-errors" ng-if="popupForm.$submitted && popupForm.newNode.$error" ng-messages="popupForm.newNode.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="item item-toggle"><span class="input-label">{{\'SETTINGS.POPUP_PEER.USE_SSL\' | translate}}</span><h4><small class="gray" ng-bind-html="\'SETTINGS.POPUP_PEER.USE_SSL_HELP\' | translate"></small></h4><label class="toggle toggle-royal no-padding-right"><input type="checkbox" ng-model="popupData.useSsl"><div class="track"><div class="handle"></div></div></label></div><a class="button button-positive button-clear positive button-outline button-full button-small-padding icon-left ink no-padding" ng-click="showNodeList()"><i class="icon ion-search"></i> {{\'SETTINGS.POPUP_PEER.BTN_SHOW_LIST\' | translate}}</a></div><button type="submit" class="hide"></button></form>'),e.put("templates/settings/settings.html",'<ion-view left-buttons="leftButtons" cache-view="false" class="settings"><ion-nav-title translate="">SETTINGS.TITLE</ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><div class="row no-padding responsive-sm responsive-md responsive-lg"><div class="col col-50 list item-border-large padding-left padding-right no-padding-xs no-padding-sm" style="margin-bottom: 2px"><span class="item item-divider" translate="">SETTINGS.DISPLAY_DIVIDER</span><label class="item item-input item-select"><div class="input-label" translate="">COMMON.LANGUAGE</div><select ng-model="formData.locale" ng-change="changeLanguage(formData.locale.id)" ng-options="l as l.label for l in locales track by l.id"></select></label><div class="item item-toggle dark"><div class="input-label">{{\'COMMON.BTN_RELATIVE_UNIT\' | translate}}</div><label class="toggle toggle-royal" id="helptip-settings-btn-unit-relative"><input type="checkbox" ng-model="formData.useRelative"><div class="track"><div class="handle"></div></div></label></div><div class="item item-toggle dark item-text-wrap"><div class="input-label" ng-bind-html="\'SETTINGS.ENABLE_HELPTIP\' | translate"></div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.helptip.enable"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.STORAGE_DIVIDER</span><div class="item item-text-wrap item-toggle dark"><div class="input-label">{{\'SETTINGS.USE_LOCAL_STORAGE\' | translate}}</div><h4 class="gray" ng-bind-html="\'SETTINGS.USE_LOCAL_STORAGE_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useLocalStorage"><div class="track"><div class="handle"></div></div></label></div><cs-extension-point name="common"></cs-extension-point><span class="item item-divider">{{\'SETTINGS.AUTHENTICATION_SETTINGS\' | translate}}</span><div class="item item-toggle item-text-wrap"><div class="input-label" ng-class="{\'gray\': !formData.useLocalStorage}">{{\'SETTINGS.REMEMBER_ME\' | translate}}</div><h4 class="gray text-wrap" ng-bind-html="\'SETTINGS.REMEMBER_ME_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.rememberMe" ng-disabled="!formData.useLocalStorage"><div class="track"><div class="handle"></div></div></label></div><label class="item item-input item-select item-text-wrap"><div class="input-label hidden-xs"><span class="hidden-xs" translate="">SETTINGS.KEEP_AUTH</span><h4 class="gray text-wrap hidden-xs" ng-bind-html="\'SETTINGS.KEEP_AUTH_HELP\' | translate"></h4></div><span class="visible-xs" translate="">SETTINGS.KEEP_AUTH_SHORT</span><select ng-model="formData.keepAuthIdle" ng-options="i as (keepAuthIdleLabels[i].labelKey | translate:keepAuthIdleLabels[i].labelParams ) for i in keepAuthIdles track by i"></select></label></div><div class="col col-50 list item-border-large padding-left padding-right no-padding-xs no-padding-sm no-margin-xs no-margin-sm"><span class="item item-divider">{{\'SETTINGS.WALLETS_SETTINGS\' | translate}}</span><div class="item item-toggle item-text-wrap dark"><span class="input-label" ng-class="{\'gray\': !formData.useLocalStorage}" translate="">SETTINGS.USE_WALLETS_ENCRYPTION</span><h4 class="gray text-wrap" ng-bind-html="\'SETTINGS.USE_WALLETS_ENCRYPTION_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useLocalStorageEncryption" ng-disabled="!formData.useLocalStorage"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.HISTORY_SETTINGS</span><div class="item item-toggle item-text-wrap dark"><div class="input-label" translate="">SETTINGS.DISPLAY_UD_HISTORY</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.showUDHistory"><div class="track"><div class="handle"></div></div></label></div><cs-extension-point name="history"></cs-extension-point><span class="item item-divider" translate="">SETTINGS.NETWORK_SETTINGS</span><ion-item class="ink item-icon-right visible-xs visible-sm" ng-click="changeNode()"><div class="input-label hidden-xs" translate="">SETTINGS.PEER</div><div class="input-label visible-xs" translate="">SETTINGS.PEER_SHORT</div><ng-if ng-if="formData.node.temporary"><h4 class="gray text-wrap assertive"><b class="ion-alert-circled"></b> <span ng-bind-html="\'SETTINGS.PEER_CHANGED_TEMPORARY\' | translate "></span></h4><div class="badge badge-assertive">{{bma.server}}</div></ng-if><div class="badge badge-balanced" ng-if="!formData.node.temporary">{{bma.server}}</div><i class="icon ion-ios-arrow-right"></i></ion-item><label class="item item-input item-select item-text-wrap"><div class="input-label hidden-xs"><span translate="">SETTINGS.BLOCK_VALIDITY_WINDOW</span><h4 class="gray text-wrap hidden-xs" ng-bind-html="\'SETTINGS.BLOCK_VALIDITY_WINDOW_HELP\' | translate"></h4></div><div class="input-label visible-xs" translate="">SETTINGS.BLOCK_VALIDITY_WINDOW_SHORT</div><select ng-model="formData.blockValidityWindow" ng-options="i as (blockValidityWindowLabels[i].labelKey | translate:blockValidityWindowLabels[i].labelParams ) for i in blockValidityWindows track by i"></select></label><cs-extension-point name="network"></cs-extension-point><span class="item item-divider" ng-if="$root.config.plugins" translate="">SETTINGS.PLUGINS_SETTINGS</span><cs-extension-point name="plugins"></cs-extension-point></div></div></ion-content></ion-view>'),e.put("templates/wallet/item_tx.html",'<i class="icon item-image" ng-if="::!tx.avatar" ng-class="::{\'ion-person dark\': tx.uid, \'ion-card dark\': !tx.uid}"></i> <i class="avatar" ng-if="::tx.avatar" style="background-image: url({{::tx.avatar.src}})"></i><div class="row no-padding"><div class="col col-pubkey no-padding"><a class="" ui-sref="app.wot_identity({pubkey:tx.pubkey, uid:tx.uid})" ng-if="::tx.uid">{{::tx.name||tx.uid}} </a><a class="gray" ui-sref="app.wot_identity({pubkey:tx.pubkey, uid:tx.uid})" ng-if="::!tx.uid && tx.pubkey"><i class="ion-key gray"></i> {{::tx.pubkey | formatPubkey}} <span ng-if="::tx.name">- {{::tx.name | truncText:40}}</span></a><p ng-if="::tx.pubkeys" class="pubkeys"><a class="gray" ng-repeat="pubkey in ::tx.pubkeys.slice(0, 4)" ui-sref="app.wot_identity({pubkey:pubkey})"><i class="ion-key gray"></i>&nbsp;{{::pubkey | formatPubkey}} </a><span ng-if="::tx.pubkeys.length &gt; 4">...</span></p><p class="dark visible-xs comment text-italic" ng-if="::tx.comment" title="{{::tx.comment}}"><i class="ion-ios-chatbubble-outline"></i> {{::tx.comment}}<br></p><h4><a ng-if="::!pending" class="gray underline" ui-sref="app.view_block({number: tx.block_number})">{{::tx.time | medianFromNowAndDate: false}} </a><span ng-if="::pending" class="gray">{{::tx.time | medianFromNowAndDate: false}}</span></h4></div><div class="col col-50 col-comment no-padding padding-left hidden-xs" ng-if="::tx.comment"><p class="vertical-center gray text-italic" data-toggle="tooltip" title="{{::tx.comment}}">{{::tx.comment}}</p></div><div class="col col-10 no-padding"><span ng-if="::!tx.lockedOutputs" class="badge item-note" ng-class="{\'badge-calm\': tx.amount > 0, \'badge-white\': tx.amount <= 0}"><span ng-bind-html=":rebind:tx.amount| formatAmount:{currency:$root.currency.name}"></span> </span><a ng-if=":rebind:tx.lockedOutputs" class="badge item-note" ng-class="{\'badge-calm\': tx.amount > 0}" ng-click="showLockedOutputsPopover(tx, $event)"><b class="ion-locked"></b> <span ng-bind-html=":rebind:tx.amount| formatAmount:{currency:$root.currency.name}"></span></a><div class="badge badge-secondary" ng-if="$root.settings.expertMode">(<span ng-bind-html=":rebind:tx.amount| formatAmount:{useRelative: !$root.settings.useRelative, currency:$root.currency.name}"></span>)</div></div></div>'),e.put("templates/wallet/item_ud.html",'<i class="icon item-image ion-arrow-up-c energized"></i><div class="row no-padding"><div class="col no-padding"><span class="energized" translate>COMMON.UNIVERSAL_DIVIDEND</span><h4><a class="gray underline" ui-sref="app.view_block({number: tx.block_number})">{{::tx.time | medianFromNowAndDate}}</a></h4></div><div class="col col-10 no-padding"><span class="badge item-note badge-energized"><span ng-bind-html=":rebind:tx.amount| formatAmount:{currency:$root.currency.name}"></span></span><div class="badge badge-secondary" ng-if="$root.settings.expertMode">(<span ng-bind-html=":rebind:tx.amount| formatAmount:{useRelative: !$root.settings.useRelative, currency:$root.currency.name}"></span>)</div></div></div>'),e.put("templates/wallet/modal_security.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="slidePrev()" ng-if="slides.slider.activeIndex"></button><h1 class="title hidden-xs" translate="">ACCOUNT.SECURITY.TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="!isLastSlide && slides.slider.activeIndex > 0" ng-click="doNext()"><span translate="">COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-positive button-icon button-clear icon ion-android-done visible-xs" ng-click="doNext()" ng-if="isLastSlide && option === \'saveID\'"></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page><ion-content class="has-header padding"><div class="list"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectOption(\'recoverID\')" ng-if="!login"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-person"></i> <b class="ion-ios-undo icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.RECOVER_ID</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.RECOVER_ID_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectOption(\'revocation\')" ng-if="!login"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-person"></i> <b class="ion-close icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.REVOCATION_WITH_FILE</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.REVOCATION_WITH_FILE_DESCRIPTION</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink hidden-xs" ng-click="selectOption(\'saveID\')" ng-if="login && !$root.device.enable"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-person"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b> <b class="ion-locked icon-secondary dark" style="top: 0px; left: 40px; font-size: 8px"></b><h2 translate="">ACCOUNT.SECURITY.SAVE_ID</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.SAVE_ID_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink hidden-xs" ng-click="selectOption(\'generateKeyfile\')" ng-if="login && !$root.device.enable"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-key icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.GENERATE_KEYFILE</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.GENERATE_KEYFILE_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="self()" ng-if="needSelf"><div class="item-content item-text-wrap"><i class="item-image icon ion-person dark"></i> <b class="ion-flag icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.SEND_IDENTITY</h2><h4 class="gray" ng-bind-html="::\'ACCOUNT.SECURITY.SEND_IDENTITY_HELP\' | translate"></h4></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="membershipIn()" ng-if="needMembership"><div class="item-content item-text-wrap"><i class="item-image icon ion-person dark"></i> <b class="ion-plus icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.MEMBERSHIP_IN</h2><h4 class="gray" ng-bind-html="::\'ACCOUNT.SECURITY.MEMBERSHIP_IN_HELP\' | translate"></h4></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="revokeWalletIdentity()" ng-if="canRevoke"><div class="item-content item-text-wrap"><i class="item-image icon ion-person assertive-900"></i> <b class="ion-close icon-secondary assertive-900" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.REVOCATION_WALLET</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.REVOCATION_WALLET_HELP</h4></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate="">COMMON.BTN_CANCEL</button></div></ion-content></ion-slide-page><ion-slide-page ng-if="option == \'revocation\'"><ng-include src="\'templates/wallet/slides/slides_revocation_file.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="login && option == \'saveID\'"><ng-include src="\'templates/wallet/slides/slides_saveID_1.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="login && option == \'saveID\'"><ng-include src="\'templates/wallet/slides/slides_saveID_2.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="option == \'recoverID\'"><ng-include src="\'templates/wallet/slides/slides_recoverID_1.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="option == \'recoverID\'"><ng-include src="\'templates/wallet/slides/slides_recoverID_2.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="option == \'recoverID\'"><ng-include src="\'templates/wallet/slides/slides_recoverID_3.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="login && option == \'generateKeyfile\'"><ng-include src="\'templates/wallet/slides/slides_generate_keyfile.html\'"></ng-include></ion-slide-page></ion-slides></ion-modal-view>'),e.put("templates/wallet/modal_transfer.html",'<ion-modal-view id="transfer" class="modal-full-height modal-transfer"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>TRANSFER.MODAL.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doTransfer()"></button></ion-header-bar><ion-content><ng-include src="\'templates/wallet/transfer_form.html\'"></ng-include></ion-content><ion-digit-keyboard settings="digitKeyboardSettings" ng-if="digitKeyboardVisible"></ion-digit-keyboard></ion-modal-view>'),e.put("templates/wallet/new_transfer.html",'<ion-view left-buttons="leftButtons" id="transfer"><ion-nav-title><span class="visible-xs visible-sm" translate="">TRANSFER.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doTransfer()"></button></ion-nav-buttons><ion-content scroll="true"><div class="row no-padding-xs"><div class="col no-padding-xs"><ng-include src="\'templates/wallet/transfer_form.html\'"></ng-include></div></div></ion-content><ion-digit-keyboard settings="digitKeyboardSettings" ng-if="digitKeyboardVisible"></ion-digit-keyboard></ion-view>'),e.put("templates/wallet/popover_actions.html",'<ion-popover-view class="fit has-header popover-wallet-actions"><ion-header-bar><h1 class="title" translate="">COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink visible-xs visible-sm" ng-click="showSharePopover($event)"><i class="icon ion-android-share-alt"></i> {{\'COMMON.BTN_SHARE\' | translate}} </a><a class="item item-icon-left ink" ng-if="walletData.requirements.alternatives" ng-click="showSelectIdentitiesModal()"><i class="icon ion-person"></i> <b class="icon-secondary ion-loop" style="margin-top: 4px; left: 15px"></b> {{\'ACCOUNT.BTN_SELECT_ALTERNATIVES_IDENTITIES\' | translate}} </a><a class="item item-icon-left ink visible-xs visible-sm" ng-if="!walletData.requirements.needSelf && walletData.requirements.needRenew" ng-click="renewMembership()"><i class="icon ion-loop"></i> {{\'ACCOUNT.BTN_MEMBERSHIP_RENEW_DOTS\' | translate}} </a><a class="item item-icon-left assertive ink" ng-if="walletData.requirements.canMembershipOut" ng-click="membershipOut()"><i class="icon ion-log-out"></i> {{\'ACCOUNT.BTN_MEMBERSHIP_OUT_DOTS\' | translate}} </a><a class="item item-icon-left ink" ng-click="showSecurityModal()"><i class="icon ion-locked"></i> <span ng-bind-html="\'ACCOUNT.BTN_SECURITY_DOTS\' | translate"></span></a></div></ion-content></ion-popover-view>'),e.put("templates/wallet/popover_unit.html",'<ion-popover-view class="popover-unit"><ion-content scroll="false"><div class="list"><a class="item item-icon-left" ng-class="{ \'selected\': !formData.useRelative}" ng-click="closePopover(false)"><i class="icon" ng-class="{ \'ion-ios-checkmark-empty\': !formData.useRelative}"></i> <i ng-bind-html="$root.currency.name | currencySymbol:false"></i> </a><a class="item item-icon-left" ng-class="{ \'selected\': formData.useRelative}" ng-click="closePopover(true)"><i class="icon" ng-class="{ \'ion-ios-checkmark-empty\': formData.useRelative}"></i> <i ng-bind-html="$root.currency.name | currencySymbol:true"></i></a></div></ion-content></ion-popover-view>'),e.put("templates/wallet/popup_register.html",'<form name="registerForm" ng-submit=""><div class="list" ng-init="setRegisterForm(registerForm)"><label class="item item-input" ng-class="{\'item-input-error\': registerForm.$submitted && registerForm.pseudo.$invalid}"><input name="pseudo" type="text" placeholder="{{\'ACCOUNT.NEW.PSEUDO_HELP\' | translate}}" ng-model="formData.newUid" ng-minlength="3" required></label><div class="form-errors" ng-if="registerForm.$submitted && registerForm.pseudo.$error" ng-messages="registerForm.pseudo.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div></div></form>'),
-e.put("templates/wallet/transfer_form.html",'<form name="transferForm" novalidate="" ng-submit="doTransfer()"><div class="list no-padding-xs" ng-init="setForm(transferForm)"><ion-item class="item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.destPub}" tabindex="1" ng-click="showWotLookupModal()"><span class="gray" translate="">TRANSFER.TO</span> <span class="badge badge-royal animate-fade-in animate-show-hide ng-hide" ng-show="destUid"><i class="ion-person"></i> {{destUid}} </span>&nbsp; <span class="badge badge-royal" ng-show="!destUid && formData.destPub"><i class="ion-key"></i> {{formData.destPub | formatPubkey}} </span><i class="gray icon ion-ios-arrow-right"></i></ion-item><div class="form-errors" ng-if="form.$submitted && !formData.destPub"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><ion-item class="item-text-wrap ink" ng-class="{\'item-icon-right\': enableSelectWallet}" tabindex="2" ng-click="showSelectWalletModal()"><span class="gray" translate="">TRANSFER.FROM</span> <span class="badge animate-fade-in animate-show-hide ng-hide" ng-show="!loading" ng-class="{\'badge-assertive\': (convertedBalance <= 0 || form.amount.$error.max), \'badge-balanced\': (convertedBalance > 0 && (!form.amount.$error.max)) }"><ion-spinner icon="android" ng-show="!walletData.pubkey"></ion-spinner><span ng-if="walletData.pubkey && !walletData.isMember"><i class="ion-key"></i> {{walletData.pubkey| formatPubkey}}&nbsp;&nbsp; </span><span ng-if="walletData.isMember"><i class="ion-person"></i> {{walletData.name||walletData.uid}}&nbsp;&nbsp; </span><span ng-bind-html="walletData.balance|formatAmount:{useRelative: formData.useRelative, currency:currency}"></span> </span><i class="gray icon ion-ios-arrow-right" ng-if="enableSelectWallet"></i></ion-item><ion-item class="item-input item-floating-label item-button-right" ng-class="{\'item-input-error\': form.$submitted && form.amount.$invalid}"><div class="input-label"><span translate="">TRANSFER.AMOUNT</span> (<span ng-bind-html="$root.currency.name | currencySymbol:formData.useRelative"></span>)</div><input type="text" tabindex="-1" autocomplete="off" class="hidden-no-device" name="amount" placeholder="{{::\'TRANSFER.AMOUNT_HELP\' | translate}}" ng-model="formData.amount" required number-float=""><div class="block hidden-no-device" style="position:absolute; opacity:0; z-index:100; top: 0; left: 0; height: 100%; width: 100%" tabindex="4" ng-click="showDigitKeyboard()"></div><a class="button button-clear button-stable dark ink" tabindex="-1" style="z-index:110; padding: 0px 16px" ng-click="showUnitPopover($event)"><span ng-bind-html="$root.currency.name | currencySymbol:formData.useRelative"></span> &nbsp;<b class="ion-arrow-down-b" style="font-size: 12pt"></b></a></ion-item><div class="form-errors" ng-show="form.$submitted && form.amount.$error" ng-messages="form.amount.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="numberFloat"><span translate="ERROR.FIELD_NOT_NUMBER"></span></div><div class="form-error" ng-message="numberInt"><span translate="ERROR.FIELD_NOT_INT"></span></div><div class="form-error" ng-message="min"><span translate="ERROR.FIELD_MIN" translate-values="{min: minAmount}"></span></div><div class="form-error" ng-message="max"><span translate="ERROR.NOT_ENOUGH_CREDIT"></span></div></div><a class="item item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.destPub}" ng-click="showWotLookupModal(\'restPub\')" tabindex="5" ng-if="formData.all && formData.restAmount"><span class="gray"><i translate="">TRANSFER.REST</i><ng-if ng-if="formData.restAmount">(<i ng-bind-html="formData.restAmount|formatAmount:{useRelative: formData.useRelative, currency:currency}"></i>)</ng-if><i translate="">TRANSFER.REST_TO</i> </span><span class="badge badge-royal animate-fade-in animate-show-hide ng-hide" ng-show="restUid"><i class="ion-person"></i> {{restUid}} </span>&nbsp; <span class="badge badge-royal" ng-show="!restUid && formData.restPub"><i class="ion-key"></i> {{formData.restPub | formatPubkey}} </span><i class="gray icon ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && formData.all && !formData.restPub && formData.restAmount &gt; 0"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="pull-right visible-xs visible-sm" ng-if="!formData.useComment"><a class="button button-text button-small ink" tabindex="-1" ng-click="addComment()"><i class="icon ion-plus"></i> <span translate="">TRANSFER.BTN_ADD_COMMENT</span></a></div><label class="item item-input item-floating-label visible-xs visible-sm" ng-if="formData.useComment" ng-class="{\'item-input-error\': form.$submitted && form.comment.$invalid}"><span class="input-label">{{\'TRANSFER.COMMENT\' | translate}}</span> <input type="text" placeholder="{{\'TRANSFER.COMMENT_HELP\' | translate}}" id="{{commentInputId}}" tabindex="7" name="comment" autocomplete="off" ng-model="formData.comment" ng-model-options="{ debounce: 650 }" ng-maxlength="255" ng-pattern="commentPattern" ng-focus="hideDigitKeyboard()"></label><div class="form-errors" ng-show="form.comment.$error" ng-messages="form.comment.$error"><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.FIELD_ACCENT"></span></div></div><div class="item item-icon-left item-text-wrap item-no-border visible-xs visible-sm" ng-if="formData.useComment"><i class="icon ion-android-alert positive"></i><h4 class="positive" translate="">TRANSFER.WARN_COMMENT_IS_PUBLIC</h4></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" tabindex="-1" ng-click="cancel()" type="button" translate="">COMMON.BTN_CANCEL</button> <button class="button ink" tabindex="8" ng-class="{\'button-assertive\': formData.all, \'button-positive\': !formData.all}" type="submit" translate="">TRANSFER.BTN_SEND</button></div></form>'),e.put("templates/wallet/tx_locked_outputs_popover.html",'<ion-popover-view class="fit popover-locked-outputs"><ion-header-bar><h1 class="title" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.TITLE</h1></ion-header-bar><ion-content scroll="true"><div ng-if="popoverData.lockedOuputs.length == 1" class="item item-text-wrap no-border"><h4 class="positive" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.DESCRIPTION</h4></div><div ng-if="popoverData.lockedOuputs.length > 1" class="item item-text-wrap no-border"><h4 class="positive" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.DESCRIPTION_MANY</h4></div><div ng-repeat="output in popoverData.lockedOuputs track by $index" class="item"><h2 class="gray" ng-if="popoverData.lockedOuputs.length > 1" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.LOCKED_AMOUNT</h2><div ng-if="popoverData.lockedOuputs.length > 1" class="badge item-note" ng-class="{\'badge-balanced\': output.amount > 0}"><i class="icon ion-locked"></i> <span ng-bind-html="::output.amount| formatAmount"></span> <span ng-bind-html="::unit"></span></div><div ng-repeat="condition in output.unlockConditions track by $index" class="row" ng-class="::{\'padding-top\': !$index && popoverData.lockedOuputs.length > 1}" ng-style="::condition.style"><span class="gray" ng-if="::condition.operator">{{::\'BLOCKCHAIN.VIEW.TX_OUTPUT_OPERATOR.\'+condition.operator|translate}}&nbsp;</span><div ng-if="::condition.type==\'SIG\'"><i class="icon ion-key dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.SIG\' | translate"></span> <a ng-click="goState(\'app.wot_identity\', {pubkey:condition.value})" style="text-decoration: none" class="positive">{{condition.value|formatPubkey}}</a></div><div ng-if="::condition.type==\'XHX\'"><i class="icon ion-lock-combination dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.XHX\' | translate"></span> <a copy-on-click="{{::condition.value}}" class="positive">{{::condition.value|formatPubkey}}...</a></div><div ng-if="condition.type==\'CSV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CSV\' | translate"></span> {{::condition.value|formatDuration}}</div><div ng-if="condition.type==\'CLTV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CLTV\' | translate"></span> {{::condition.value|medianDate}}</div></div></div></ion-content></ion-popover-view>'),e.put("templates/wallet/view_wallet.html",'<ion-view left-buttons="leftButtons" class="view-wallet" id="wallet"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" id="helptip-wallet-options-xs" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true" class="refresher-positive-900-bg" bind-notifier="{ rebind:settings.useRelative, locale:$root.settings.locale.id}"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="positive-900-bg hero" style="max-width: 100%; display: block" ng-class="{\'hero-qrcode-active\': toggleQRCode}"><div class="content" ng-if="!loading" style="max-width: 100%"><i class="avatar" ng-if=":rebind:!formData.avatar" ng-class=":rebind:{\'avatar-wallet\': !formData.isMember, \'avatar-member\': formData.isMember}"></i> <i class="avatar" ng-if=":rebind:formData.avatar" style="background-image: url({{:rebind:formData.avatar.src}})"></i><h3 class="light" ng-if=":rebind:!enableSelectWallet"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span></h3><h3 class="light" ng-if=":rebind:enableSelectWallet"><a class="visible-xs visible-sm" style="color: lightgray" title="{{:locale:\'ACCOUNT.SELECT_WALLET_MODAL.TITLE\'|translate}}" ng-click="showSelectWalletModal($event)"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span> <small><i class="ion-arrow-down-b"></i></small></a></h3><h4 class="assertive"><span ng-if=":rebind:(formData.name || formData.uid) && !formData.isMember" translate="">WOT.NOT_MEMBER_PARENTHESIS</span></h4></div><h4 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><a ng-attr-id="{{ qrcodeId }}" class="qrcode spin pull-right" ng-class="{\'active\': toggleQRCode}" ng-click="toggleQRCode = !toggleQRCode"></a><a id="wallet-share-anchor"></a><div class="visible-xs visible-sm padding text-center" ng-if="!loading"><button class="button button-assertive button-small-padding ink" ng-if="isDefaultWallet" ng-click="logout({askConfirm: true})"><i class="icon ion-log-out"></i> {{\'COMMON.BTN_LOGOUT\' | translate}}</button><div ng-if="formData.requirements.needRenew"><br><button class="button button-raised icon-left button-stable button-small-padding ink" ng-click="renewMembership()"><i class="icon ion-loop assertive"></i> <span class="assertive">{{:locale:\'ACCOUNT.BTN_MEMBERSHIP_RENEW\' | translate}}</span></button></div></div><div class="row no-padding"><div class="col"><div class="list {{::motion.ionListClass}}" ng-hide="loading"><span class="item item-divider" translate="">WOT.GENERAL_DIVIDER</span><div id="helptip-wallet-pubkey" class="item item-icon-left item-text-wrap ink" on-hold="copy(formData.pubkey)" copy-on-click="{{:rebind:formData.pubkey}}"><i class="icon ion-key"></i> <span>{{:locale:\'COMMON.PUBKEY\'|translate}}</span><h4 id="pubkey" class="dark">{{:rebind:formData.pubkey}}</h4></div><ion-item class="item-icon-left" ng-if=":rebind:formData.sigDate||formData.uid"><i class="icon ion-calendar"></i> <span translate="">COMMON.UID</span><h5 class="dark" ng-if=":rebind:formData.sigDate"><span translate="">WOT.REGISTERED_SINCE</span> {{:rebind:formData.sigDate | medianDate}}</h5><span class="badge badge-stable">{{:rebind:formData.uid}}</span></ion-item><a id="helptip-wallet-certifications" class="item item-icon-left item-icon-right item-text-wrap ink" ng-if="formData.isMember||formData.requirements.pendingMembership||!formData.requirements.needSelf" ng-click="showCertifications()"><i class="icon ion-ribbon-b"></i> <b ng-if="formData.requirements.isSentry" class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> {{:locale:\'ACCOUNT.CERTIFICATION_COUNT\'|translate}}<cs-badge-certification requirements="formData.requirements" parameters="::currency.parameters"></cs-badge-certification><i class="gray icon ion-ios-arrow-right"></i> </a><a id="helptip-wallet-given-certifications" class="item item-icon-left item-text-wrap item-icon-right ink visible-xs visible-sm" ng-if="formData.isMember" ng-click="showGivenCertifications()"><i class="icon ion-ribbon-a"></i> <span translate="">WOT.GIVEN_CERTIFICATIONS.SENT</span> <i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="showTxHistory()"><i class="icon ion-card"></i> <span translate="">WOT.ACCOUNT_OPERATIONS</span> <i class="gray icon ion-ios-arrow-right"></i> </a><span class="item item-divider" ng-if="formData.events.length">{{:locale:\'ACCOUNT.EVENTS\' | translate}}</span><div class="item item-text-wrap item-icon-left item-wallet-event" ng-repeat="event in formData.events"><i class="icon" ng-class="{\'ion-information-circled royal\': event.type==\'info\',\'ion-alert-circled assertive\': event.type==\'warn\'||event.type==\'error\',\'assertive\': event.type==\'error\',\'ion-clock\': event.type==\'pending\'}"></i> <span trust-as-html="event.message | translate:event.messageParams"></span></div><cs-extension-point name="general"></cs-extension-point><cs-extension-point name="after-general"></cs-extension-point></div></div></div></ion-content></ion-view>'),e.put("templates/wallet/view_wallet_tx.html",'<ion-view left-buttons="leftButtons" class="view-wallet-tx"><ion-nav-title><span class="visible-xs visible-sm" translate="">MENU.TRANSACTIONS</span></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content scroll="true" class="refresher-positive-900-bg" bind-notifier="{ rebind:settings.useRelative, locale:settings.locale.id}"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="positive-900-bg hero"><div class="content" ng-if="!loading"><h1 class="light"><span ng-bind-html=":balance:rebind:formData.balance | formatAmount:{currency: $root.currency.name}"></span></h1><h4><ng-if ng-if="!loading && $root.settings.expertMode" style="font-style: italic">(<span ng-bind-html=":balance:rebind:formData.balance | formatAmount:{useRelative:!$root.settings.useRelative, currency: $root.currency.name}"></span>)</ng-if><ng-if ng-if=":rebind:!enableSelectWallet" style="color: lightgray"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span></ng-if><ng-if ng-if=":rebind:enableSelectWallet"><a class="visible-xs visible-sm" style="color: lightgray" title="{{:locale:\'ACCOUNT.SELECT_WALLET_MODAL.TITLE\'|translate}}" ng-click="showSelectWalletModal($event)"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span> <small><i class="ion-arrow-down-b"></i></small></a></ng-if></h4><div class="helptip-anchor-center"><a id="helptip-wallet-balance">&nbsp;</a></div></div><h2 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h2></div><div class="row no-padding"><div class="col"><div class="list {{::motion.ionListClass}}"><a class="item item-icon-left item-icon-right ink" ng-if="formData.tx.errors && formData.tx.errors.length" ng-click="showTxErrors()"><i class="icon ion-alert-circled"></i> {{:locale:\'ACCOUNT.ERROR_TX\'|translate}}<div class="badge badge-assertive">{{formData.tx.errors.length}}</div><i class="gray icon ion-ios-arrow-right"></i></a><ng-if ng-if="formData.tx.pendings.length"><span class="item item-pending item-divider"><b class="ion-clock"></b> {{:locale:\'ACCOUNT.PENDING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.pendings" ng-init="pending=true;" ng-include="\'templates/wallet/item_tx.html\'"></div></ng-if><ng-if ng-if="formData.tx.validating.length"><span class="item item-pending item-divider"><b class="icon ion-checkmark" style="font-size: 12px"></b> <b class="icon-secondary ion-help" style="font-size: 12px; top: 2px; left: 11px"></b> {{:locale:\'ACCOUNT.VALIDATING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.validating" ng-init="validating=true;" ng-include="::\'templates/wallet/item_tx.html\'"></div></ng-if><span class="item item-divider" ng-if="!loading"><b class="icon ion-checkmark"></b> {{:locale:\'ACCOUNT.LAST_TX\'|translate}} <a id="helptip-wallet-tx" style="position: relative; bottom: 0; right: 0px">&nbsp;</a> </span><span class="item padding" ng-if="!loading && !formData.tx.history.length"><span class="gray">{{:locale:\'ACCOUNT.NO_TX\'|translate}}</span></span><div ng-repeat="tx in formData.tx.history" class="item item-tx item-icon-left" ng-include="::!tx.isUD ? \'templates/wallet/item_tx.html\' : \'templates/wallet/item_ud.html\'"></div><div class="item item-text-wrap text-center" ng-if="formData.tx.fromTime > 0"><p><a ng-click="showMoreTx()">{{:locale:\'ACCOUNT.SHOW_MORE_TX\'|translate}}</a> <span class="gray" translate="ACCOUNT.TX_FROM_DATE" translate-values="{fromTime: formData.tx.fromTime}"></span> <span class="gray">|</span> <a ng-click="showMoreTx(-1)" translate="">ACCOUNT.SHOW_ALL_TX</a></p></div></div></div></div></ion-content><button id="fab-transfer" ng-show="!loading" class="button button-fab button-fab-bottom-right button-energized-900 hidden-md hidden-lg drop ng-hide" ng-click="showTransferModal()"><i class="icon ion-android-send"></i></button></ion-view>'),e.put("templates/wallet/view_wallet_tx_error.html",'<ion-view left-buttons="leftButtons" class="view-wallet-tx-error"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content scroll="true" class="refresher-top-bg" bind-notifier="{ rebind:settings.useRelative, locale:settings.locale.id}"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="row no-padding"><div class="col list {{::motion.ionListClass}}"><div class="item item-divider"><span><b class="ion-clock"></b> {{:locale:\'ACCOUNT.PENDING_TX_RECEIVED\'|translate}}</span><div class="badge item-note"><span ng-if="!$root.settings.useRelative">({{$root.currency.name | abbreviate}})</span> <span ng-if="$root.settings.useRelative">({{\'COMMON.UD\' | translate}}<sub>{{$root.currency.name | abbreviate}}</sub>)</span></div></div><span class="item padding" ng-if="!loading && !hasReceivedTx()"><span class="gray">{{:locale:\'ACCOUNT.NO_TX\'|translate}}</span></span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.errors | filter: filterReceivedTx" ng-init="pending=true;" ng-include="\'templates/wallet/item_tx.html\'"></div><div class="item item-divider"><span><b class="ion-close-circled"></b> {{:locale:\'ACCOUNT.ERROR_TX_SENT\'|translate}}</span><div class="badge item-note"><span ng-if="!$root.settings.useRelative">({{$root.currency.name | abbreviate}})</span> <span ng-if="$root.settings.useRelative">({{\'COMMON.UD\' | translate}}<sub>{{$root.currency.name | abbreviate}}</sub>)</span></div></div><span class="item padding" ng-if="!loading && !hasSentTx()"><span class="gray">{{:locale:\'ACCOUNT.NO_TX\'|translate}}</span></span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.errors | filter: filterSentTx" ng-init="error=true;" ng-include="\'templates/wallet/item_tx.html\'"></div></div></div></ion-content></ion-view>'),e.put("templates/wot/item_certification.html",'<i class="item-image" ng-if="!cert.avatar" ng-class="{\'ion-card\': !cert.isMember, \'ion-person\': cert.isMember}"></i> <i class="item-image avatar" ng-if="cert.avatar" style="background-image: url({{::cert.avatar.src}})"></i> <span ng-if="cert.isMember"><h3><i class="icon ion-clock" ng-if="cert.pending"></i> <span class="positive">{{::cert.name||cert.uid}}</span></h3><h4 class="gray"><i class="ion-key"></i> {{::cert.pubkey | formatPubkey}} <span class="gray">| {{::cert.time|medianDate}}</span> <span class="gray" ng-if="$root.settings.expertMode">| {{::cert.pending ? \'WOT.SIGNED_ON_BLOCK\' : \'WOT.WRITTEN_ON_BLOCK\' | translate:cert}}</span></h4></span><span ng-if="!cert.isMember"><h3><i class="icon ion-clock" ng-if="cert.pending"></i> <span ng-if="cert.uid" class="dark">{{::cert.name||cert.uid}} </span><span ng-if="!cert.uid" class="gray"><i class="ion-key"></i> {{::cert.pubkey | formatPubkey}}</span></h3><h5 class="assertive">{{::\'WOT.NOT_MEMBER_PARENTHESIS\'|translate}}</h5><h4 class="gray"><span ng-if="cert.uid"><i class="ion-key"></i> {{::cert.pubkey | formatPubkey}} </span><span class="gray">| {{::cert.time|medianDate}}</span> <span class="gray" ng-if="$root.settings.expertMode">| {{::cert.pending ? \'WOT.SIGNED_ON_BLOCK\' : \'WOT.WRITTEN_ON_BLOCK\' | translate:cert}}</span></h4></span><div class="badge badge-stable" ng-class="{\'badge-energized\': cert.willExpire}" ng-if="cert.expiresIn">{{::cert.expiresIn | formatDurationTo}}</div><div class="badge badge-assertive" ng-if="!cert.expiresIn">{{::\'WOT.EXPIRED\' | translate}}</div>'),e.put("templates/wot/item_content_identity.html",'<i ng-if="::!item.avatar" class="item-image icon ion-person"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2><ng-if ng-if="::item.name||item.uid" ng-bind-html="::item.name||item.uid"></ng-if><ng-if ng-if="::!item.name && !item.uid">{{::item.pubkey|formatPubkey}}</ng-if></h2><h4 class="gray" ng-class="{\'pull-right\': !smallscreen}" ng-if="::item.sigDate"><i class="ion-clock"></i> {{::\'WOT.LOOKUP.REGISTERED\' | translate:item }}</h4><h4 class="gray" ng-class="{\'pull-right\': !smallscreen}" ng-if="item.memberDate"><i class="ion-clock"></i> {{::\'WOT.LOOKUP.MEMBER_FROM\' | translate:item}}</h4><h4 class="gray"><span class="positive" ng-if="::item.name && item.uid"><i class="ion-person"></i> {{::item.uid}}&nbsp; </span><b class="ion-key"></b> {{::item.pubkey | formatPubkey}} <span ng-if="::(!item.uid && !item.revoked)" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span> <span ng-if="::item.revoked" class="assertive" translate>WOT.IDENTITY_REVOKED_PARENTHESIS</span></h4><h4 ng-if="::item.events||item.tags"><span ng-repeat="event in ::item.events" class="assertive"><i class="ion-alert-circled" ng-if="::!item.valid"></i> <span ng-bind-html="::event.message|translate:event.messageParams"></span> </span><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4>'),e.put("templates/wot/items_given_certifications.html",'<div class="list given-certifications" ng-class="::motions.givenCertifications.ionListClass"><span class="item item-divider hidden-xs"><span translate>WOT.GIVEN_CERTIFICATIONS.SUMMARY</span></span><div id="helptip-certs-stock" class="item item-icon-left item-text-wrap ink"><i class="icon ion-ribbon-a"></i> <span translate>WOT.GIVEN_CERTIFICATIONS.SENT</span><cs-badge-given-certification identity="formData" parameters="$root.currency.parameters"></cs-badge-given-certification></div><div class="item item-icon-left item-text-wrap ink" ng-if="formData.given_cert_error.length"><i class="icon ion-alert-circled"></i> <span translate>WOT.GIVEN_CERTIFICATIONS.ERROR</span> <span class="badge badge-assertive">{{formData.given_cert_error.length}}</span></div><span class="item item-divider" ng-if="formData.given_cert_pending.length"><span translate>WOT.GIVEN_CERTIFICATIONS.PENDING_LIST</span><div class="badge item-note" style="text-align: right !important" translate>WOT.NOT_WRITTEN_EXPIRE_IN</div></span><a class="item item-avatar ink" ng-repeat="cert in formData.given_cert_pending" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a><span class="item item-divider"><span translate>WOT.GIVEN_CERTIFICATIONS.LIST</span><div class="badge item-note" translate>WOT.EXPIRE_IN</div></span><span class="item gray" ng-if="!formData.given_cert.length" translate>WOT.NO_GIVEN_CERTIFICATION </span><a class="item item-avatar ink" ng-repeat="cert in formData.given_cert" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a></div>'),e.put("templates/wot/items_received_certifications.html",'<div class="list certifications" ng-class="::motions.receivedCertifications.ionListClass"><span class="item item-divider hidden-xs"><span translate>WOT.CERTIFICATIONS.SUMMARY</span></span><div id="helptip-received-certs" class="item item-icon-left item-text-wrap ink"><i class="icon ion-ribbon-b"></i> <b ng-if="formData.requirements.isSentry" class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span translate>WOT.CERTIFICATIONS.RECEIVED</span><h4 class="gray" ng-if="formData.requirements.isSentry" translate>WOT.CERTIFICATIONS.SENTRY_MEMBER</h4><cs-badge-certification cs-id="helptip-wot-view-certifications-count" requirements="formData.requirements" parameters="$root.currency.parameters"></cs-badge-certification></div><div class="item item-icon-left item-text-wrap ink" ng-if="formData.received_cert_error.length"><i class="icon ion-alert-circled"></i> <span translate>WOT.CERTIFICATIONS.ERROR</span> <span class="badge badge-assertive">{{formData.received_cert_error.length}}</span></div><span class="item item-divider" ng-if="formData.received_cert_pending.length"><span translate>WOT.CERTIFICATIONS.PENDING_LIST</span><div class="badge item-note" style="text-align: right !important" translate>WOT.NOT_WRITTEN_EXPIRE_IN</div></span><a class="item item-avatar ink" ng-repeat="cert in formData.received_cert_pending" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a><span class="item item-divider"><span translate>WOT.CERTIFICATIONS.LIST</span><div class="badge item-note" translate>WOT.EXPIRE_IN</div></span><span class="item gray" ng-if="!formData.received_cert.length" translate>WOT.NO_CERTIFICATION</span> <a class="item item-avatar ink" ng-repeat="cert in formData.received_cert" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a></div>'),e.put("templates/wot/lookup.html",'<ion-view left-buttons="leftButtons"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'WOT.LOOKUP.TITLE\'|translate}}" icon="ion-person-stalker" ui-sref="app.wot_lookup.tab_search"><ion-nav-view name="tab"></ion-nav-view></ion-tab><cs-extension-point name="tabs"></cs-extension-point></ion-tabs></ion-view>'),e.put("templates/wot/lookup_form.html",'<div class="lookupForm"><div class="item no-padding"><div class="double-padding-x padding-top-xs item-text-wrap" ng-if="::allowMultiple" style="height: 36px"><div class="gray padding-top" ng-if="!selection.length && parameters.help">{{::parameters.help|translate}}</div><div ng-repeat="identity in selection track by identity.id" class="button button-small button-text button-stable button-icon-event ink" ng-class="{\'button-text-positive\': identity.selected}"><span ng-bind-html="identity.name||identity.uid||(identity.pubkey|formatPubkey)"></span> <i class="icon ion-close" ng-click="removeSelection(identity, $event)">&nbsp;&nbsp;</i></div></div><div class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'WOT.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()" on-return="doSearchText()" select-on-click=""><div class="helptip-anchor-center"><a id="helptip-wot-search-text"></a></div></div></div><div class="padding-top padding-xs padding-sm" style="display: block; height: 60px" ng-class="::{\'hidden-xs hidden-sm\': !showResultLabel}"><div class="pull-left" ng-if="!search.loading && showResultLabel"><ng-if ng-if="search.type==\'newcomers\'"><h4 translate="">WOT.LOOKUP.NEWCOMERS</h4><small class="gray no-padding" ng-if="search.total">{{\'WOT.LOOKUP.NEWCOMERS_COUNT\'|translate:{count: search.total} }}</small></ng-if><ng-if ng-if="search.type==\'pending\'"><h4 translate="">WOT.LOOKUP.PENDING</h4><small class="gray no-padding" ng-if="search.total">{{\'WOT.LOOKUP.PENDING_COUNT\'|translate:{count: search.total} }}</small></ng-if><h4 ng-if="search.type==\'text\'"><span translate="">COMMON.RESULTS_LIST</span> <small class="gray" ng-if="search.total">({{search.total}})</small></h4></div></div><div class="text-center padding-top" ng-if="search.loading"><p class="gray" ng-if="::$root.currency.initPhase" translate="">WOT.SEARCH_INIT_PHASE_WARNING</p><ion-spinner icon="android"></ion-spinner></div><ng-if ng-if="!search.loading"><div class="assertive padding" ng-if="!search.results.length"><span ng-if="search.type==\'text\'" translate="">COMMON.SEARCH_NO_RESULT</span> <span ng-if="search.type==\'pending\'" translate="">WOT.LOOKUP.NO_PENDING</span> <span ng-if="search.type==\'newcomers\'" translate="">WOT.LOOKUP.NO_NEWCOMERS</span></div><ion-list ng-if="::!allowMultiple && $root.device.enable" class="{{::motion.ionListClass}}" can-swipe="true"><ng-repeat ng-repeat="item in search.results track by item.id"><div ng-if="::item.divider" class="item item-divider" id="helptip-wot-search-result-{{$index}}">{{::(\'WOT.SEARCH.DIVIDER_\' + item.index)|upper|translate}}</div><ion-item ng-if="::!item.divider" id="helptip-wot-search-result-{{$index}}" class="item item-border-large item-avatar item-icon-right ink" ng-click="::select(item)"><ng-include src="item.templateUrl || \'templates/wot/item_content_identity.html\'"></ng-include><i class="icon ion-ios-arrow-right"></i><ion-option-button class="button-positive" ng-click="showTransferModal({pubkey: item.pubkey, uid: item.name ||item.uid})" translate="">COMMON.BTN_SEND_MONEY_SHORT</ion-option-button></ion-item></ng-repeat></ion-list><div ng-if="::allowMultiple" class="list {{::motion.ionListClass}}"><ion-checkbox ng-repeat="item in search.results track by item.id" ng-model="item.checked" class="item item-border-large item-avatar ink" ng-click="toggleCheck($index, $event)"><ng-include src="\'templates/wot/item_content_identity.html\'"></ng-include></ion-checkbox></div><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="20%"></ion-infinite-scroll></ng-if></div>'),e.put("templates/wot/lookup_lg.html",'<ion-view><ion-nav-title>{{\'MENU.WOT\' | translate}}</ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-qr-scanner hidden-no-device" ng-if="$root.device.barcode.enable" ng-click="scanQrCode()"></button> <button class="button button-icon button-clear visible-xs visible-sm" ng-click="showActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></ion-nav-buttons><ion-content class="padding no-padding-x no-padding-sm" scroll="true"><cs-extension-point name="top"></cs-extension-point><ng-include src="\'templates/wot/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/wot/lookup_popover_actions.html",'<ion-popover-view class="fit has-header visible-sm visible-xs"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-if="enableWallets" ng-click="doGetWallets()"><i class="icon ion-card"></i> {{\'MENU.WALLETS\' | translate}} </a><a class="item item-icon-left ink" ng-click="doGetNewcomers()"><i class="icon ion-person"></i> {{\'WOT.LOOKUP.BTN_NEWCOMERS\' | translate}} </a><a class="item item-icon-left ink" ng-click="doGetPending()"><i class="icon ion-clock"></i> {{\'WOT.LOOKUP.BTN_PENDING\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/wot/modal_lookup.html",'<ion-modal-view id="wotLookup" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title hidden-xs">{{::parameters.title?parameters.title:\'WOT.MODAL.TITLE\'|translate}}</h1><button class="button button-clear icon-right visible-xs ink" ng-if="allowMultiple && selection.length" ng-click="closeModal(selection)">{{::parameters.okText||\'COMMON.BTN_NEXT\' | translate}} <i ng-if="::!parameters.okText||parameters.okIcon" class="icon {{::parameters.okIcon||\'ion-ios-arrow-right\'}}"></i></button></ion-header-bar><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><div class="visible-xs visible-sm text-right stable-bg stable"><button class="button button-icon button-small-padding dark hidden-no-device ink" ng-if="$root.device.barcode.enable" ng-click="scanQrCode()"><i class="icon ion-qr-scanner"></i></button> <button class="button button-icon button-small-padding dark ink" ng-click="showActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></div><ng-include src="\'templates/wot/lookup_form.html\'"></ng-include></ion-content></ion-modal-view>'),e.put("templates/wot/modal_select_pubkey_identity.html",'<ion-modal-view id="transfer" class="modal-full-height modal-transfer"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>ACCOUNT.SELECT_IDENTITY_MODAL.TITLE</h1></ion-header-bar><ion-content scroll="true"><div class="padding"><p trust-as-html="\'ACCOUNT.SELECT_IDENTITY_MODAL.HELP\'|translate:{pubkey: pubkey}"></p></div><ion-list><ion-item class="item-avatar item-icon-right" ng-repeat="item in identities" ng-click="closeModal(item)"><i class="item-image icon ion-person"></i><h2>{{item.uid}}</h2><h4 class="gray"><b class="ion-key"></b> {{::item.pubkey | formatPubkey}} <span ng-if="::!item.revoked && !item.pendingRevocation && !item.isMember" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span> <span ng-if="::item.revoked || item.pendingRevocation" class="assertive bold" translate>WOT.IDENTITY_REVOKED_PARENTHESIS</span> <span ng-if="::item.meta.invalid" class="assertive" translate>ERROR.WOT_PENDING_INVALID_BLOCK_HASH</span></h4><h4 class="dark" ng-if="::item.meta.time"><i class="ion-calendar"></i> <span translate>WOT.REGISTERED_SINCE</span> {{::item.meta.time|medianDate}}</h4><ng-if ng-if="::!item.revoked && !item.pendingRevocation && (item.certificationCount || item.pendingCertificationCount)"><cs-badge-certification requirements="item" parameters="$root.currency.parameters"></cs-badge-certification><div class="gray badge badge-secondary hidden-xs"><span translate>ACCOUNT.CERTIFICATION_COUNT</span></div></ng-if><i class="icon ion-ios-arrow-right"></i></ion-item></ion-list></ion-content></ion-modal-view>'),e.put("templates/wot/view_certifications.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm">{{::formData.name||formData.uid}}</span></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content class="certifications certifications-lg"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate()"></ion-refresher><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="row responsive-sm responsive-md responsive-lg"><div class="col no-padding" ng-if="motions.receivedCertifications.enable"><ng-include src="\'templates/wot/items_received_certifications.html\'"></ng-include></div><div class="col no-padding" ng-if="motions.givenCertifications.enable"><ng-include src="\'templates/wot/items_given_certifications.html\'"></ng-include></div></div></ion-content><div class="visible-xs visible-sm"><button id="fab-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-if="canCertify && !alreadyCertified" ng-click="certify()"><i class="icon ion-ribbon-b"></i></button> <button id="fab-select-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-if="canSelectAndCertify" ng-click="selectAndCertify()"><i class="icon ion-plus"></i></button></div></ion-view>'),e.put("templates/wot/view_identity.html",'<ion-view left-buttons="leftButtons" class="view-identity"><ion-nav-title></ion-nav-title><ion-content scroll="true" class="refresher-light" ng-class="{\'member refresher-positive-900-bg\': !loading && formData.isMember, \'refresher-dark-100-bg\': loading || !formData.isMember}"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="hero" ng-class="{\'hero-qrcode-active\': toggleQRCode}"><div class="content" ng-if="!loading"><i class="avatar" ng-if=":rebind:!formData.avatar" ng-class="{\'avatar-wallet\': !formData.isMember, \'avatar-member\': formData.isMember}"></i> <i class="avatar" ng-if=":rebind:formData.avatar" style="background-image: url({{::formData.avatar.src}})"></i><ng-if ng-if=":rebind:formData.name"><h3 class="light">{{::formData.name}}</h3></ng-if><ng-if ng-if=":rebind:!formData.name"><h3 class="light" ng-if=":rebind:formData.uid">{{:rebind:formData.uid}}</h3><h3 class="light" ng-if=":rebind:!formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</h3></ng-if><h4 class="assertive"><ng-if ng-if=":rebind:(formData.name || formData.uid) && !formData.isMember && revoked" translate="">WOT.IDENTITY_REVOKED_PARENTHESIS</ng-if><ng-if ng-if=":rebind:(formData.name || formData.uid) && formData.isMember && revoked" translate="">WOT.MEMBER_PENDING_REVOCATION_PARENTHESIS</ng-if></h4></div><h4 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><div ng-attr-id="{{ qrcodeId }}" class="qrcode spin" ng-class="{\'active\': toggleQRCode}" ng-click="toggleQRCode = !toggleQRCode"></div><a id="wot-share-anchor-{{::formData.pubkey}}"></a><div class="visible-xs visible-sm"><button id="fab-certify-{{:rebind:formData.uid}}" class="button button-fab button-fab-top-left button-fab-hero button-calm spin" ng-if=":rebind:(canCertify && !alreadyCertified)" ng-click="certify()"><i class="icon ion-ribbon-b"></i></button><cs-extension-point name="buttons-top-fab"></cs-extension-point></div><div class="row no-padding"><div class="col list {{::motion.ionListClass}}" bind-notifier="{ rebind:loading}"><span class="item item-divider" translate="">WOT.GENERAL_DIVIDER</span><ion-item class="item-icon-left item-text-wrap ink" copy-on-click="{{:rebind:formData.pubkey}}"><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><h4 id="pubkey" class="dark text-left">{{:rebind:formData.pubkey}}</h4></ion-item><div class="item item-icon-left item-text-wrap" ng-if=":rebind:!formData.hasSelf"><i class="icon ion-ios-help-outline positive"></i> <span translate="">WOT.NOT_MEMBER_ACCOUNT</span><h4 class="gray" translate="">WOT.NOT_MEMBER_ACCOUNT_HELP</h4></div><ion-item class="item-icon-left" ng-if=":rebind:formData.sigDate||formData.uid"><i class="icon ion-calendar"></i> <span translate="">COMMON.UID</span><h5 class="dark" ng-if=":rebind:formData.sigDate "><span translate="">WOT.REGISTERED_SINCE</span> {{:rebind:formData.sigDate|medianDate}}</h5><span class="badge badge-energized">{{:rebind:formData.uid}}</span></ion-item><a id="helptip-wot-view-certifications" class="item item-icon-left item-text-wrap item-icon-right ink" ng-if=":rebind:formData.hasSelf" ng-click="showCertifications()"><i class="icon ion-ribbon-b"></i> <b ng-if=":rebind:formData.requirements.isSentry" class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span translate="">ACCOUNT.CERTIFICATION_COUNT</span><cs-badge-certification cs-id="helptip-wot-view-certifications-count" requirements="formData.requirements" parameters="{sigQty: formData.sigQty}"></cs-badge-certification><i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-text-wrap item-icon-right ink visible-xs visible-sm" ng-if=":rebind:formData.hasSelf && formData.isMember" ng-click="showGivenCertifications()"><i class="icon ion-ribbon-a"></i> <span translate="">WOT.GIVEN_CERTIFICATIONS.SENT</span><cs-badge-given-certification identity="formData" parameters="$root.currency.parameters"></cs-badge-given-certification><i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-icon-right ink" ng-if="!loading" ui-sref="app.wot_identity_tx_uid({uid:formData.uid,pubkey:formData.pubkey})"><i class="icon ion-card"></i> <span translate="">WOT.ACCOUNT_OPERATIONS</span> <i class="gray icon ion-ios-arrow-right"></i></a><div class="item item-text-wrap item-icon-left item-wallet-event" ng-class="{\'assertive\': event.type==\'error\'}" ng-repeat="event in :rebind:formData.events"><i class="icon" ng-class="{\'ion-information-circled royal\': event.type==\'info\',\'ion-alert-circled\': event.type==\'warn\'||event.type==\'error\',\'assertive\': event.type==\'error\',\'ion-clock\': event.type==\'pending\'}"></i> <span trust-as-html="event.message | translate:event.messageParams"></span></div><cs-extension-point name="general"></cs-extension-point><cs-extension-point name="after-general"></cs-extension-point></div></div></ion-content><div class="visible-xs visible-sm" ng-hide="loading"><button id="fab-transfer" class="button button-fab button-fab-bottom-right button-assertive drop" ng-click="showTransferModal({pubkey:formData.pubkey, uid: formData.uid})"><i class="icon ion-android-send"></i></button></div></ion-view>'),e.put("templates/wot/view_identity_tx.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm" ng-if="!loading"><span ng-if="formData.name || formData.uid">{{formData.name || formData.uid}} </span><span ng-if="!formData.name && !formData.uid"><i class="ion-key"></i> {{formData.pubkey|formatPubkey}}</span></span></ion-nav-title><ion-content scroll="true"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list {{motion.ionListClass}}" ng-if="!loading"><div class="row"><div class="col"><div class="item item-tx item-divider">{{:locale:\'ACCOUNT.BALANCE_ACCOUNT\'|translate}}<div class="badge item-note" ng-class=":balance:{\'badge-assertive\': formData.balance <= 0, \'badge-balanced\': formData.balance > 0 }" ng-bind-html=":balance:formData.balance|formatAmount:{currency: $root.currency.name}"></div><div class="badge badge-secondary" ng-if="$root.settings.expertMode">(<span ng-bind-html=":balance:formData.balance| formatAmount: {useRelative: !$root.settings.useRelative, currency: $root.currency.name} "></span>)</div></div><div class="item item-icon-left" ng-if="formData.tx.errors.length"><i class="icon ion-alert-circled"></i> {{:locale:\'ACCOUNT.ERROR_TX\'|translate}}<div class="badge badge-assertive">{{formData.tx.errors.length}}</div></div><ng-if ng-if="formData.tx.pendings.length"><span class="item item-pending item-divider"><i class="ion-clock"></i> {{:locale:\'ACCOUNT.PENDING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.pendings" ng-init="pending=true;" ng-include="::\'templates/wallet/item_tx.html\'"></div></ng-if><ng-if ng-if="formData.tx.validating.length"><span class="item item-pending item-divider">{{:locale:\'ACCOUNT.VALIDATING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.validating" ng-init="validating=true;" ng-include="::\'templates/wallet/item_tx.html\'"></div></ng-if><span class="item item-divider" ng-if="!loading">{{:locale:\'ACCOUNT.LAST_TX\'|translate}} <a id="helptip-wallet-tx" style="position: relative; bottom: 0; right: 0px">&nbsp;</a></span><div ng-repeat="tx in formData.tx.history" class="item item-tx item-icon-left" ng-include="::!tx.isUD ? \'templates/wallet/item_tx.html\' : \'templates/wallet/item_ud.html\'"></div><div class="item item-text-wrap text-center" ng-if="formData.tx.fromTime > 0"><p><a ng-click="showMoreTx()">{{:locale:\'ACCOUNT.SHOW_MORE_TX\'|translate}}</a> <span class="gray" translate="ACCOUNT.TX_FROM_DATE" translate-values="{fromTime: formData.tx.fromTime}"></span> <span class="gray">|</span> <a ng-click="showMoreTx(-1)" translate="">ACCOUNT.SHOW_ALL_TX</a></p></div></div></div></div></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_blocks.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-navicon visible-xs visible-sm" ng-click="toggleCompactMode()"><b class="icon-secondary" ng-class="{\'ion-arrow-down-b\': !compactMode, \'ion-arrow-up-b\': compactMode}" style="top: -12px; left: 11px; font-size: 10px"></b> <b class="icon-secondary" ng-class="{\'ion-arrow-up-b\': !compactMode,\'ion-arrow-down-b\': compactMode}" style="top: 12px; left: 11px; font-size: 10px"></b></button><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content><div class="item item-divider"><span translate>BLOCKCHAIN.LOOKUP.LAST_BLOCKS</span></div><cs-extension-point name="buttons"></cs-extension-point><ng-include src="\'templates/blockchain/list_blocks.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_network.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear" ng-click="showExtendActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refreshPeers()"></ion-refresher><div class="list"><ng-include src="\'templates/currency/items_network.html\'"></ng-include></div></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_parameters.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh()"></ion-refresher><div class="list"><ng-include src="\'templates/currency/items_parameters.html\'"></ng-include></div></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_wot.html",'<ion-view><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh()"></ion-refresher><div class="list"><ng-include src="\'templates/currency/items_wot.html\'"></ng-include></div></ion-content></ion-view>'),e.put("templates/wallet/list/item_wallet.html",'<div class="item item-avatar item-icon-right item-border-large item-wallet ink" id="wallet-{{::wallet.id}}" ng-click="select($event, wallet)" ng-init="walletData=wallet.data;"><i ng-if=":rebind:!walletData.avatar" class="item-image icon" ng-class=":rebind:{\'ion-card\': !walletData.isMember, \'ion-person\': walletData.isMember}"></i> <i ng-if=":rebind:walletData.avatar" class="item-image avatar" style="background-image: url({{::walletData.avatar.src}})"></i><div class="badge badge-button badge-avatar badge-assertive ion-locked" ng-hide=":rebind:wallet.isAuth()"></div><h2><span class="text-editable" ng-click="editWallet($event, wallet)" title="{{\'ACCOUNT.WALLET_LIST.BTN_RENAME\'|translate}}"><ng-if ng-if=":rebind:walletData.localName||walletData.name||walletData.uid" ng-bind-html="::walletData.localName||walletData.name||walletData.uid"></ng-if><ng-if ng-if=":rebind:!walletData.localName && !walletData.name && !walletData.uid">{{::walletData.pubkey|formatPubkey}}</ng-if></span></h2><h4 class="gray"><span class="positive" ng-if="::walletData.name && walletData.uid"><i class="ion-person"></i> {{::walletData.uid}}&nbsp; </span><b class="ion-key"></b> {{::walletData.pubkey | formatPubkey}} <span ng-if="::!walletData.uid" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span></h4><cs-extension-point name="item-wallet"></cs-extension-point><span class="badge" ng-if=":rebind:formData.showBalance && walletData.sources" ng-class=":rebind:{\'badge-calm\': (walletData.balance > 0) }"><ion-spinner class="ion-spinner-small" ng-if="formData.updatingWalletId==wallet.id" icon="android"></ion-spinner><span ng-bind-html=":rebind:walletData.balance|formatAmount:{useRelative: formData.useRelative, currency: currency}"></span> </span><i class="icon ion-ios-arrow-right"></i></div>'),e.put("templates/wallet/list/item_wallet_light.html",'<div class="item item-avatar item-icon-right item-border item-wallet" ng-click="select($event, wallet)" ng-init="walletData=wallet.data;"><i ng-if="::!walletData.avatar" class="item-image icon" ng-class="::{\'ion-card\': !walletData.isMember, \'ion-person\': walletData.isMember}"></i> <i ng-if="::walletData.avatar" class="item-image avatar" style="background-image: url({{::walletData.avatar.src}})"></i><div class="badge badge-button badge-avatar badge-assertive ion-locked" ng-hide="::wallet.isAuth()"></div><h2><ng-if ng-if="::walletData.localName||walletData.name||walletData.uid">{{::walletData.localName||walletData.name||walletData.uid}}</ng-if><ng-if ng-if="::!walletData.localName && !walletData.name && !walletData.uid">{{::walletData.pubkey|formatPubkey}}</ng-if></h2><h4 class="gray"><span class="positive" ng-if="::walletData.name && walletData.uid"><i class="ion-person"></i> {{::walletData.uid}}&nbsp; </span><b class="ion-key"></b> {{::walletData.pubkey | formatPubkey}} <span ng-if="::!walletData.uid" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span></h4><div class="badge" ng-if="formData.showBalance" ng-class="{\'badge-calm\': (walletData.balance > 0) }"><span ng-bind-html="walletData.balance|formatAmount:{useRelative: formData.useRelative, currency: currency}"></span></div><i class="icon ion-ios-arrow-right"></i></div>'),e.put("templates/wallet/list/modal_import_file.html",'<ion-modal-view id="transfer" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>ACCOUNT.WALLET_LIST.IMPORT_MODAL.TITLE</h1></ion-header-bar><ion-content scroll="true" class="padding"><p translate>ACCOUNT.WALLET_LIST.IMPORT_MODAL.HELP</p><div dropzone="importFromFile(file)"><div ng-if="!hasContent" onclick="angular.element(document.querySelector(\'#walletsImportFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="walletsImportFile" accept=".csv,.txt" style="visibility:hidden; position:absolute" on-read-file="importFromFile(file)"></div><div ng-if="hasContent" class="item item-icon-left item-icon-right stable-bg"><i class="icon ion-document-text gray"></i><div class="item-content row"><div class="col"><h2>{{fileData.name}}</h2><h4 ng-if="fileData.lastModified"><span class="gray" translate>COMMON.FILE.DATE</span> {{fileData.lastModified/1000|formatDate}}</h4><h5><span class="gray" translate>COMMON.FILE.SIZE</span> {{fileData.size|formatInteger}} Ko</h5></div><div class="col padding-left"><h3 ng-if="validatingFile" translate>COMMON.FILE.VALIDATING</h3><h3 ng-if="!validatingFile"><span class="dark animate-show-hide ng-hide" ng-show="isValidFile && content.length" ng-bind-html="\'ACCOUNT.WALLET_LIST.IMPORT_MODAL.WALLET_COUNT\'|translate:{count: content.length}"></span> <span class="assertive animate-show-hide ng-hide" ng-show="isValidFile && !content.length"><br><i class="ion-close-circled assertive"></i> {{\'ACCOUNT.WALLET_LIST.IMPORT_MODAL.NO_NEW_WALLET\' |translate}} </span><span class="assertive animate-show-hide ng-hide" ng-show="!isValidFile"><br><i class="ion-close-circled assertive"></i> {{\'ERROR.INVALID_FILE_FORMAT\' |translate}}</span></h3></div></div><a class="ion-close-round gray pull-right" style="font-size: 10px; position: absolute; top: 6px; right: 6px" ng-click="removeFile()"></a></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-disabled="loading || !content.length" ng-click="closeModal(content)" translate>COMMON.BTN_IMPORT</button></div></ion-content></ion-modal-view>'),e.put("templates/wallet/list/modal_wallets.html",'<ion-modal-view id="transfer" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>ACCOUNT.SELECT_WALLET_MODAL.TITLE</h1></ion-header-bar><ion-content scroll="true"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!loading && !wallets.length && !defaultWallet">{{:locale:\'ACCOUNT.WALLET_LIST.NO_WALLET\'|translate}}</div><ion-list ng-if="!loading" class="{{::motion.ionListClass}}"><ng-include ng-if="defaultWallet" ng-init="wallet = defaultWallet" src="\'templates/wallet/list/item_wallet.html\'"></ng-include><ng-repeat ng-repeat="wallet in wallets track by wallet.id" ng-include="\'templates/wallet/list/item_wallet_light.html\'"></ng-repeat></ion-list></ion-content></ion-modal-view>'),e.put("templates/wallet/list/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate="">COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><button class="item item-icon-left ink" ng-class="{\'gray\': loading || !wallets.length, \'assertive\': !loading && wallets.length}" ng-disabled="loading || !wallets.length" ng-click="selectAndRemoveWallet()"><i class="icon ion-trash-a"></i> {{\'ACCOUNT.WALLET_LIST.BTN_DELETE\' | translate}}</button></div></ion-content></ion-popover-view>'),e.put("templates/wallet/list/popover_wallets.html",'<ion-popover-view class="fit popover-wallets popover-light"><ion-header-bar class="stable-bg block"><div class="title" translate>ACCOUNT.SELECT_WALLET_MODAL.TITLE</div><div class="pull-right"><a class="positive" ng-click="showNewWalletModal()" translate>ACCOUNT.WALLET_LIST.BTN_NEW</a></div></ion-header-bar><ion-content scroll="true"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!loading && !wallets.length && !defaultWallet">{{:locale:\'ACCOUNT.WALLET_LIST.NO_WALLET\'|translate}}</div><ion-list ng-if="!loading"><ng-include ng-if="defaultWallet" ng-init="wallet = defaultWallet" src="\'templates/wallet/list/item_wallet_light.html\'"></ng-include><ng-repeat ng-repeat="wallet in :rebind:wallets | filter:filterFn(formData) track by wallet.id" ng-include="\'templates/wallet/list/item_wallet_light.html\'"></ng-repeat></ion-list></ion-content><ion-footer-bar class="stable-bg block"><div class="pull-right"><a class="positive" ui-sref="app.view_wallets" ng-click="closePopover()" translate>COMMON.NOTIFICATIONS.SHOW_ALL</a></div></ion-footer-bar></ion-popover-view>'),e.put("templates/wallet/list/popup_edit_name.html",'<form name="editForm" ng-submit=""><div class="list" ng-init="setEditForm(editForm)"><label class="item item-input" ng-class="{\'item-input-error\': editForm.$submitted && editForm.name.$invalid}"><input name="name" type="text" placeholder="{{\'ACCOUNT.WALLET_LIST.EDIT_POPOVER.NAME_HELP\' | translate}}" ng-model="formData.name" ng-minlength="3" required></label><div class="form-errors" ng-if="editForm.$submitted && editForm.name.$error" ng-messages="editForm.name.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div></div></form>'),e.put("templates/wallet/list/view_wallets.html",'<ion-view left-buttons="leftButtons" class="view-wallet-list"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true" class="padding no-padding-xs no-padding-sm" bind-notifier="{ rebind:formData.useRelative, locale:settings.locale.id}"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true, $event)"></ion-refresher><div class="center padding gray" ng-if="!loading && wallets && !wallets.length && !defaultWallet">{{:locale:\'ACCOUNT.WALLET_LIST.NO_WALLET\'|translate}}</div><ion-list class="{{::motion.ionListClass}}"><ng-include ng-if="defaultWallet" ng-init="wallet = defaultWallet" src="\'templates/wallet/list/item_wallet.html\'"></ng-include><ng-include ng-repeat="wallet in wallets track by wallet.id" src="\'templates/wallet/list/item_wallet.html\'"></ng-include></ion-list><div class="center padding visible-xs visible-sm" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div></ion-content><button id="fab-add-wallet" class="button button-fab button-fab-bottom-right button-assertive hidden-md hidden-lg drop ng-hide" ng-show="!loading" ng-click="showNewWalletModal()"><i class="icon ion-plus"></i></button></ion-view>'),e.put("templates/wallet/slides/slides_generate_keyfile.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.GENERATE_KEYFILE</h3><div class="list"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="downloadKeyFile(\'PubSec\')"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b><h2 translate>ACCOUNT.SECURITY.KEYFILE.PUBSEC_FORMAT</h2><h4 class="gray" translate>ACCOUNT.SECURITY.KEYFILE.PUBSEC_FORMAT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="downloadKeyFile(\'WIF\')"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b><h2 translate>ACCOUNT.SECURITY.KEYFILE.WIF_FORMAT</h2><h4 class="gray" translate>ACCOUNT.SECURITY.KEYFILE.WIF_FORMAT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="downloadKeyFile(\'EWIF\')"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b> <b class="ion-locked icon-secondary dark" style="top: 0px; left: 43px; font-size: 8px"></b><h2 translate>ACCOUNT.SECURITY.KEYFILE.EWIF_FORMAT</h2><h4 class="gray" translate>ACCOUNT.SECURITY.KEYFILE.EWIF_FORMAT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div></div></ion-content>'),e.put("templates/wallet/slides/slides_recoverID_1.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.RECOVER_ID</h3><div dropzone="recoverContent(file)"><div ng-if="!hasContent" onclick="angular.element(document.querySelector(\'#saveIdFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="saveIdFile" accept=".txt" style="visibility:hidden; position:absolute" on-read-file="recoverContent(file)"></div><div ng-if="hasContent" class="item row item-icon-left no-padding"><i class="icon ion-document-text gray"></i><div class="col"><span>{{fileData.name}}</span><br><small>{{fileData.size}} Ko</small></div><div class="col-10"><b ng-class="{\'ion-android-done balanced\': isValidFile,\'ion-close-circled assertive\': !isValidFile}" style="font-size: 28px; position: relative; top: 6px"></b> <button class="button-icon ion-close-round gray pull-right" style="font-size:10px" ng-click="restore()"></button></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="doNext()" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></ion-content>'),e.put("templates/wallet/slides/slides_recoverID_2.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.RECOVER_ID</h3><form name="recoverForm" novalidate ng-submit="recoverId()"><div class="list" ng-init="setForm(recoverForm, \'recoverForm\')"><ng-repeat ng-repeat="question in recover.questions "><label class="item item-input {{smallscreen ? \'item-stacked-label\' : \'item-floating-label\'}}" ng-class="{\'item-input-error\': recoverForm.$submitted && recoverForm[\'question{{$index}}\'].$invalid}"><span class="input-label" style="{{smallscreen ? \'white-space: normal\' : \'\'}}">{{question.value }}</span> <input type="text" name="question{{$index}}" placeholder="{{smallscreen ? \'\' : question.value }}" ng-model="question.answer" required></label><div class="form-errors" ng-show="recoverForm.$submitted && recoverForm[\'question{{$index}}\'].$error" ng-messages="recoverForm[\'question{{$index}}\'].$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div></ng-repeat><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-clear button-dark" ng-click="restore()" type="button" translate>ACCOUNT.SECURITY.BTN_CLEAN</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></div></form></ion-content>'),e.put("templates/wallet/slides/slides_recoverID_3.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.RECOVER_ID</h3><div class="item item-input"><span class="input-label">{{\'LOGIN.SALT\' | translate}} :</span> <span>{{recover.salt}}</span></div><div class="item item-input"><span class="input-label">{{\'LOGIN.PASSWORD\' | translate}} :</span> <span>{{recover.pwd}}</span></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CLOSE</button></div></ion-content>'),e.put("templates/wallet/slides/slides_revocation_file.html",'<ion-content class="has-header padding"><p translate>ACCOUNT.SECURITY.REVOCATION_WITH_FILE_HELP</p><div dropzone="recoverContent(file)"><div ng-if="!hasContent" onclick="angular.element(document.querySelector(\'#revocationFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="revocationFile" accept=".txt" style="visibility:hidden; position:absolute" on-read-file="recoverContent(file)"></div><div ng-if="hasContent" class="item row item-icon-left no-padding"><i class="icon ion-document-text gray"></i><div class="col"><span>{{fileData.name}}</span><br><small>{{fileData.size}} Ko</small></div><div class="col-10"><b ng-class="{\'ion-android-done balanced\': isValidFile,\'ion-close-circled assertive\': !isValidFile}" style="font-size: 28px; position: relative; top: 6px"></b> <button class="button-icon ion-close-round gray pull-right" style="font-size:10px" ng-click="restore()"></button></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="revokeWithFile()" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></ion-content>'),e.put("templates/wallet/slides/slides_saveID_1.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.SAVE_ID</h3><label class="item item-input item-select"><div class="input-label" translate>ACCOUNT.SECURITY.LEVEL</div><select ng-model="formData.level"><option value="2" ng-bind-html="\'ACCOUNT.SECURITY.LOW_LEVEL\' | translate"></option><option value="4" translate>ACCOUNT.SECURITY.MEDIUM_LEVEL</option><option value="6" translate>ACCOUNT.SECURITY.STRONG_LEVEL</option></select></label><div class="padding-top" translate="ACCOUNT.SECURITY.HELP_LEVEL" translate-values="{nb: {{formData.level}}}"></div><form name="questionsForm" novalidate ng-submit="doNext(\'questionsForm\')"><div class="list" ng-init="setForm(questionsForm, \'questionsForm\')"><ion-checkbox ng-repeat="question in formData.questions" ng-model="question.checked" ng-required="isRequired()"><span style="white-space: normal">{{question.value | translate}}</span></ion-checkbox><div class="item item-icon-right no-padding-top"><a class="dark"><i class="icon ion-android-add" ng-click="addQuestion()"></i></a><div class="list list-inset"><label class="item item-input"><input type="text" placeholder="{{\'ACCOUNT.SECURITY.ADD_QUESTION\' | translate}}" ng-model="formData.addQuestion"></label></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-clear button-dark" ng-click="restore()" type="button" translate>ACCOUNT.SECURITY.BTN_RESET</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-disabled="questionsForm.$invalid" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></form></ion-content>'),e.put("templates/wallet/slides/slides_saveID_2.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.SAVE_ID</h3><form name="answersForm" novalidate ng-submit="doNext(\'answersForm\')"><div class="list" ng-init="setForm(answersForm, \'answersForm\')"><ng-repeat ng-repeat="question in formData.questions |filter:true:checked"><label class="item item-input item-text-wrap {{smallscreen ? \'item-stacked-label\' : \'item-floating-label\'}}" ng-class="{\'item-input-error\': answersForm.$submitted && answersForm[\'question{{$index}}\'].$invalid}"><span class="input-label" style="width: 100%; max-width: inherit">{{question.value | translate}}</span> <input type="text" name="question{{$index}}" placeholder="{{smallscreen ? \'\' : question.value | translate}}" ng-model="question.answer" required></label><div class="form-errors" ng-show="answersForm.$submitted && answersForm[\'question{{$index}}\'].$error" ng-messages="answersForm[\'question{{$index}}\'].$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div></ng-repeat><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-clear button-dark" ng-click="restore()" type="button" translate>ACCOUNT.SECURITY.BTN_CLEAN</button> <button class="button button-positive ink" type="submit" translate>COMMON.BTN_CONTINUE <i class="icon ion-android-archive"></i></button></div></div></form></ion-content>'),e.put("templates/wot/tabs/tab_given_certifications.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop" ng-click="doUpdate()"></button></ion-nav-buttons><ion-content ng-init="motions.receivedCertifications=false; motions.avatar=false"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><ng-include src="\'templates/wot/items_given_certifications.html\'"></ng-include></ion-content><div class="visible-xs visible-sm"><button id="fab-select-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-if="canSelectAndCertify || $root.tour" ng-click="selectAndCertify()"><i class="icon ion-plus"></i></button></div></ion-view>'),e.put("templates/wot/tabs/tab_lookup.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear" ng-click="showActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doSearch()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="\'templates/wot/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/wot/tabs/tab_received_certifications.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop" ng-click="doUpdate()"></button></ion-nav-buttons><ion-content ng-init="motions.givenCertifications=false; motions.avatar=false;" class="has-header"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><ng-include src="\'templates/wot/items_received_certifications.html\'"></ng-include></ion-content><div class="visible-xs visible-sm"><button id="fab-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-click="certify()" ng-if="(formData.hasSelf && canCertify && !alreadyCertified) || $root.tour"><i class="icon ion-ribbon-b"></i></button></div></ion-view>')}]),angular.module("cesium.translations",[]).config(["$translateProvider",function(e){e.translations("en-GB",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",PUBKEY:"Public key",MEMBER:"Member",BLOCK:"Block",BTN_OK:"OK",BTN_YES:"Yes",BTN_NO:"No",BTN_SEND:"Send",BTN_SEND_MONEY:"Transfer money",BTN_SEND_MONEY_SHORT:"Transfer",BTN_SAVE:"Save",BTN_YES_SAVE:"Yes, Save",BTN_YES_CONTINUE:"Yes, Continue",BTN_SHOW:"Show",BTN_SHOW_PUBKEY:"Show key",BTN_RELATIVE_UNIT:"Display amounts in UD?",BTN_BACK:"Back",BTN_NEXT:"Next",BTN_IMPORT:"Import",BTN_CANCEL:"Cancel",BTN_CLOSE:"Close",BTN_LATER:"Later",BTN_LOGIN:"Sign In",BTN_LOGOUT:"Logout",BTN_ADD_ACCOUNT:"New Account",BTN_SHARE:"Share",BTN_EDIT:"Edit",BTN_DELETE:"Delete",BTN_ADD:"Add",BTN_SEARCH:"Search",BTN_REFRESH:"Refresh",BTN_RETRY:"Retry",BTN_START:"Start",BTN_CONTINUE:"Continue",BTN_CREATE:"Create",BTN_UNDERSTOOD:"I understand",BTN_OPTIONS:"Options",BTN_HELP_TOUR:"Features tour",BTN_HELP_TOUR_SCREEN:"Discover this screen",BTN_DOWNLOAD:"Download",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Download account statement",BTN_MODIFY:"Modify",CHOOSE_FILE:"Drag your file<br/>or click to select",DAYS:"days",NO_ACCOUNT_QUESTION:"Not a member yet? Register now!",SEARCH_NO_RESULT:"No result found",LOADING:"Loading...",LOADING_WAIT:"Loading...<br/><small>(Waiting for node availability)</small>",SEARCHING:"Searching...",FROM:"From",TO:"To",COPY:"Copy",LANGUAGE:"Language",UNIVERSAL_DIVIDEND:"Universal dividend",UD:"UD",DATE_PATTERN:"DD/MM/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(empty)",UID:"Pseudonym",ENABLE:"Enabled",DISABLE:"Disabled",RESULTS_LIST:"Results:",RESULTS_COUNT:"{{count}} results",EXECUTION_TIME:"executed in {{duration|formatDurationMs}}",SHOW_VALUES:"Display values openly?",POPOVER_ACTIONS_TITLE:"Options",POPOVER_FILTER_TITLE:"Filters",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit at {{limit}})",POPOVER_SHARE:{TITLE:"Share",SHARE_ON_TWITTER:"Share on Twitter",SHARE_ON_FACEBOOK:"Share on Facebook",SHARE_ON_DIASPORA:"Share on Diaspora*",SHARE_ON_GOOGLEPLUS:"Share on Google+"},FILE:{DATE:"Date:",TYPE:"Type:",SIZE:"Size:",VALIDATING:"Validating..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Choose source:",BTN_PICTURE_GALLERY:"Gallery",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Home",WOT:"Registry",CURRENCY:"Currency",ACCOUNT:"My Account",WALLETS:"My wallets",TRANSFER:"Transfer",SCAN:"Scan",SETTINGS:"Settings",NETWORK:"Network",TRANSACTIONS:"My transactions"},ABOUT:{TITLE:"About",LICENSE:"<b>Free/libre software</b> (License GNU AGPLv3).",LATEST_RELEASE:"There is a <b>newer version</ b> of {{'COMMON.APP_NAME' | translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Please update {{'COMMON.APP_NAME' | translate}} (latest version: <b>v{{version}}</b>)",CODE:"Source code:",OFFICIAL_WEB_SITE:"Official web site:",DEVELOPERS:"Developers:",FORUM:"Forum:",PLEASE_REPORT_ISSUE:"Please report any issue to us!",REPORT_ISSUE:"Report an issue",BTN_OPEN_DEV_WINDOW:"Open the debug window"},HOME:{TITLE:"Cesium",WELCOME:"Welcome to the Cesium Application!",MESSAGE:"Follow your {{currency|abbreviate}} wallets easily",BTN_CURRENCY:"Explore currency",BTN_ABOUT:"about",BTN_HELP:"Help",REPORT_ISSUE:"Report an issue",NOT_YOUR_ACCOUNT_QUESTION:'You do not own the account <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Disconnect this account",CONNECTION_ERROR:'Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or change node <a class="positive" ng-click="doQuickFix(\'settings\')">in the settings</a>.'},SETTINGS:{TITLE:"Settings",DISPLAY_DIVIDER:"Display",STORAGE_DIVIDER:"Storage",NETWORK_SETTINGS:"Network",PEER:"Duniter peer address",PEER_SHORT:"Peer address",PEER_CHANGED_TEMPORARY:"Address used temporarily",USE_LOCAL_STORAGE:"Enable local storage",USE_LOCAL_STORAGE_HELP:"Allows you to save your settings",WALLETS_SETTINGS:"My wallets",USE_WALLETS_ENCRYPTION:"Secure the list",USE_WALLETS_ENCRYPTION_HELP:"Enables you to encrypt the list of your wallets. Authentication required to access it.",ENABLE_HELPTIP:"Enable contextual help tips",ENABLE_UI_EFFECTS:"Enable visual effects",HISTORY_SETTINGS:"Account operations",DISPLAY_UD_HISTORY:"Display produced dividends?",TX_HISTORY_AUTO_REFRESH:"Enable automatic refresh?",TX_HISTORY_AUTO_REFRESH_HELP:"Updates the list of operations to each new block.",AUTHENTICATION_SETTINGS:"Authentication",KEEP_AUTH:"Expiration of authentication",KEEP_AUTH_SHORT:"Expiration",KEEP_AUTH_HELP:"Define when authentication is cleared from memory.",KEEP_AUTH_OPTION:{NEVER:"After each operation",SECONDS:"After {{value}}s of inactivity",MINUTE:"After {{value}}min of inactivity",MINUTES:"After {{value}}min of inactivity",HOUR:"After {{value}}h of inactivity",ALWAYS:"At the end of the session"},KEYRING_FILE:"Keyring file",KEYRING_FILE_HELP:'Allow auto-connect at startup, or to authenticate (only if "Expiration of authentication" is "at the end of the session"',REMEMBER_ME:"Remember me ?",REMEMBER_ME_HELP:"Allows to remain identified from one session to another, keeping the public key locally.",PLUGINS_SETTINGS:"Extensions",BTN_RESET:"Restore default values",EXPERT_MODE:"Enable expert mode",EXPERT_MODE_HELP:"Allow to see more details",BLOCK_VALIDITY_WINDOW:"Block uncertainty time",BLOCK_VALIDITY_WINDOW_SHORT:"Time of uncertainty",BLOCK_VALIDITY_WINDOW_HELP:"Time to wait before considering an information is validated",BLOCK_VALIDITY_OPTION:{NONE:"No delay",N:"{{time | formatDuration}} ({{count}} blocks)"},POPUP_PEER:{TITLE:"Duniter peer",HOST:"Address",HOST_HELP:"Address: server:port",USE_SSL:"Secured?",USE_SSL_HELP:"(SSL Encryption)",BTN_SHOW_LIST:"Peer's list"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Block #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Current block",TITLE:"Block #{{number|formatInteger}}",COMPUTED_BY:"Computed by",SHOW_RAW:"Show raw data",TECHNICAL_DIVIDER:"Technical informations",VERSION:"Format version",HASH:"Computed hash",UNIVERSAL_DIVIDEND_HELP:"Money co-produced by each of the {{membersCount}} members",EMPTY:"Aucune donnée dans ce bloc",POW_MIN:"Minimal difficulty",POW_MIN_HELP:"Difficulty imposed in calculating hash",DATA_DIVIDER:"Data",IDENTITIES_COUNT:"New identities",JOINERS_COUNT:"Joiners",ACTIVES_COUNT:"Renewals",ACTIVES_COUNT_HELP:"Members having renewed their membership",LEAVERS_COUNT:"Leavers",LEAVERS_COUNT_HELP:"Members that now refused certification",EXCLUDED_COUNT:"Excluded members",EXCLUDED_COUNT_HELP:"Old members, excluded because missing membreship renewal or certifications",REVOKED_COUNT:"Revoked identities",REVOKED_COUNT_HELP:"These accounts may no longer be member",TX_COUNT:"Transactions",CERT_COUNT:"Certifications",TX_TO_HIMSELF:"Change",TX_OUTPUT_UNLOCK_CONDITIONS:"Unlock conditions",TX_OUTPUT_OPERATOR:{AND:"and",OR:"or"},TX_OUTPUT_FUNCTION:{SIG:"<b>Sign</b> of the public key",XHX:"<b>Password</b>, including SHA256 =",CSV:"Blocked during",CLTV:"Bloqué until"}},LOOKUP:{TITLE:"Blocks",NO_BLOCK:"No bloc",LAST_BLOCKS:"Last blocks:",BTN_COMPACT:"Compact"}},CURRENCY:{VIEW:{TITLE:"Currency",TAB_CURRENCY:"Currency",TAB_WOT:"Web of trust",TAB_NETWORK:"Network",TAB_BLOCKS:"Blocks",CURRENCY_SHORT_DESCRIPTION:"{{currency|capitalize}} is a <b>libre money</b>, started {{firstBlockTime | formatFromNow}}. It currently counts <b>{{N}} members </b>, who produce and collect a <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a> (DU), each {{dt | formatPeriod}}.",NETWORK_RULES_DIVIDER:"Network rules",CURRENCY_NAME:"Currency name",MEMBERS:"Members count",MEMBERS_VARIATION:"Variation since {{duration|formatDuration}} (since last UD)",MONEY_DIVIDER:"Money",MASS:"Monetary mass",SHARE:"Money share",UD:"Universal Dividend",C_ACTUAL:"Current growth",MEDIAN_TIME:"Current blockchain time",POW_MIN:"Common difficulty",MONEY_RULES_DIVIDER:"Rules of currency",C_RULE:"Theoretical growth target",UD_RULE:"Universal dividend (formula)",DT_REEVAL:"Period between two re-evaluation of the UD",REEVAL_SYMBOL:"reeval",DT_REEVAL_VALUE:"Every <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Date of first reevaluation of the UD",SIG_QTY_RULE:"Required number of certifications to become a member",SIG_STOCK:"Maximum number of certifications sent by a member",SIG_PERIOD:"Minimum delay between 2 certifications sent by one and the same issuer.",SIG_WINDOW:"Maximum delay before a certification will be treated",SIG_VALIDITY:"Lifetime of a certification that has been treated",MS_WINDOW:"Maximum delay before a pending membership will be treated",MS_VALIDITY:"Lifetime of a membership that has been treated",STEP_MAX:"Maximum distance between a newcomer and each referring members.",WOT_RULES_DIVIDER:"Rules for web of trust",SENTRIES:"Required number of certifications (given <b>and</b> received) to become a referring member",SENTRIES_FORMULA:"Required number of certifications to become a referring member (formula)",XPERCENT:"Minimum percent of referring member to reach to match the distance rule",AVG_GEN_TIME:"The average time between 2 blocks",CURRENT:"current",MATH_CEILING:"CEILING",DISPLAY_ALL_RULES:"Display all rules?",BTN_SHOW_LICENSE:"Show license",WOT_DIVIDER:"Web of trust"},LICENSE:{TITLE:"Currency license",BTN_DOWNLOAD:"Download file",NO_LICENSE_FILE:"License file not found."}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain time",LOADING_PEERS:"Loading peers...",NODE_ADDRESS:"Address:",SOFTWARE:"Software:",WARN_PRE_RELEASE:"Pre-release (latest stable: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Version <b>{{version}}</b> available",WS2PID:"Identifier:",PRIVATE_ACCESS:"Private access",POW_PREFIX:"Proof of work prefix:",ENDPOINTS:{BMAS:"Secure endpoint (SSL)",BMATOR:"TOR endpoint",WS2P:"WS2P endpoint",ES_USER_API:"Cesium+ data node"}},INFO:{ONLY_SSL_PEERS:"Non-SSL nodes have a degraded display because Cesium works in HTTPS mode."}},PEER:{PEERS:"Peers",SIGNED_ON_BLOCK:"Signed on block",MIRROR:"mirror",MIRRORS:"Mirrors",MIRROR_PEERS:"Mirror peers",PEER_LIST:"Peer's list",MEMBERS:"Members",MEMBER_PEERS:"Member peers",ALL_PEERS:"All peers",DIFFICULTY:"Difficulty",API:"API",CURRENT_BLOCK:"Block #",POPOVER_FILTER_TITLE:"Filter",OFFLINE:"Offline",OFFLINE_PEERS:"Offline peers",BTN_SHOW_PEER:"Show peer",VIEW:{TITLE:"Peer",OWNER:"Owned by ",SHOW_RAW_PEERING:"See peering document",SHOW_RAW_CURRENT_BLOCK:"See current block (raw format)",LAST_BLOCKS:"Last blocks",KNOWN_PEERS:"Known peers :",GENERAL_DIVIDER:"General information",ERROR:{LOADING_TOR_NODE_ERROR:"Could not get peer data, using the TOR network.",LOADING_NODE_ERROR:"Could not get peer data"}}},WOT:{SEARCH_HELP:"Search (member or public key)",SEARCH_INIT_PHASE_WARNING:"During the pre-registration phase, the search for pending registrations <b>may be long</b>. Please wait ...",REGISTERED_SINCE:"Registered on",REGISTERED_SINCE_BLOCK:"Registered since block #",NO_CERTIFICATION:"No validated certification",NO_GIVEN_CERTIFICATION:"No given certification",NOT_MEMBER_PARENTHESIS:"(non-member)",IDENTITY_REVOKED_PARENTHESIS:"(identity revoked)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(being revoked)",EXPIRE_IN:"Expires",NOT_WRITTEN_EXPIRE_IN:"Deadline<br/>treatment",EXPIRED:"Expired",PSEUDO:"Pseudonym",SIGNED_ON_BLOCK:"Emitted on block #{{block}}",WRITTEN_ON_BLOCK:"Written on block #{{block}}",GENERAL_DIVIDER:"General information",NOT_MEMBER_ACCOUNT:"Non-member account",NOT_MEMBER_ACCOUNT_HELP:"This is a simple wallet, with no pending membership application.",TECHNICAL_DIVIDER:"Technical data",BTN_CERTIFY:"Certify",BTN_YES_CERTIFY:"Yes, certify",BTN_SELECT_AND_CERTIFY:"New certification",ACCOUNT_OPERATIONS:"Account operations",VIEW:{POPOVER_SHARE_TITLE:"Identity {{title}}"},LOOKUP:{TITLE:"Registry",NEWCOMERS:"New members:",NEWCOMERS_COUNT:"{{count}} members",PENDING:"Pending registrations:",PENDING_COUNT:"{{count}} pending registrations",REGISTERED:"Registered {{sigDate | formatFromNow}}",MEMBER_FROM:"Member since {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Latest members",BTN_PENDING:"Pending registrations",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit to {{limit}})",NO_PENDING:"No pending registrations.",NO_NEWCOMERS:"No members."},CONTACTS:{TITLE:"Contacts"},MODAL:{TITLE:"Search"},CERTIFICATIONS:{TITLE:"{{uid}} - Certifications",SUMMARY:"Received certifications",LIST:"Details of received certifications",PENDING_LIST:"Pending certifications",RECEIVED:"Received certifications",RECEIVED_BY:"Certifications received by {{uid}}",ERROR:"Received certifications in error",SENTRY_MEMBER:"Referring member"},OPERATIONS:{TITLE:"{{uid}} - Operations"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certifications sent",SUMMARY:"Sent certifications",LIST:"Details of sent certifications",PENDING_LIST:"Pending certifications",SENT:"Sent certifications",SENT_BY:"Certifications sent by {{uid}}",ERROR:"Sent certifications with error"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Login',SCRYPT_FORM_HELP:"Please enter your credentials. <br> Remember to check the public key for your account.",PUBKEY_FORM_HELP:"Please enter a public account key:",FILE_FORM_HELP:"Choose the keychain file to use:",SCAN_FORM_HELP:"Scan the QR code of a wallet.",SALT:"Secret identifier",SALT_HELP:"Secret identifier",SHOW_SALT:"Display secret identifier?",PASSWORD:"Password",PASSWORD_HELP:"Password",PUBKEY_HELP:"Public key or pseudonym",NO_ACCOUNT_QUESTION:"Don't have an account yet?",HAVE_ACCOUNT_QUESTION:"Already have an account ?",CREATE_ACCOUNT:"Create an account",CREATE_FREE_ACCOUNT:"Create a free account",FORGOTTEN_ID:"Forgot password?",ASSOCIATED_PUBKEY:"Public key :",BTN_METHODS:"Other methods",BTN_METHODS_DOTS:"Change method...",METHOD_POPOVER_TITLE:"Methods",MEMORIZE_AUTH_FILE:"Memorize this keychain during the navigation session",SCRYPT_PARAMETERS:"Paramètres (Scrypt) :",AUTO_LOGOUT:{TITLE:"Information",MESSAGE:'<i class="ion-android-time"></i> You were <b>logout</ b> automatically, due to prolonged inactivity.',BTN_RELOGIN:"Sign In",IDLE_WARNING:"You will be logout... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Secret identifier and password",SCRYPT_ADVANCED:"Advanced salt",FILE:"Keychain file",PUBKEY:"Public key or pseudonym",SCAN:"Scan a QR code"},SCRYPT:{SIMPLE:"Light salt",DEFAULT:"Standard salt",SECURE:"Secure salt",HARDEST:"Hardest salt",EXTREME:"Extreme salt",USER:"Personal value",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Expected file format: <b>.dunikey</b> (type PubSec). Other formats are under development (EWIF, WIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Authentication',BTN_AUTH:"Authenticate",GENERAL_HELP:"Please authenticate yourself:",EXPECTED_UID_HELP:'Please authenticate to the account <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Please authenticate to the wallet <i class="ion-key"></i> {{pubkey|formatPubkey}}:',SCAN_FORM_HELP:"Scan the QR code of the <b>private key</b> of the wallet."},ACCOUNT:{TITLE:"My Account",BALANCE:"Balance",LAST_TX:"Latest validated transactions",BALANCE_ACCOUNT:"Account balance",NO_TX:"No transaction",SHOW_MORE_TX:"Show more",SHOW_ALL_TX:"Show all",TX_FROM_DATE:"(current limit to {{fromTime|medianFromNowShort}})",PENDING_TX:"Pending transactions",VALIDATING_TX:"Transactions being validated",ERROR_TX:"Transaction not executed",ERROR_TX_SENT:"Sent transactions",PENDING_TX_RECEIVED:"Transactions awaiting receipt",EVENTS:"Events",OUT_DISTANCED:"Your current certifications come from a group too isolated from the <a ng-click=\"showHelpModal('wot')\"> Web of Trust</a> (WoT): the <a ng-click=\"showHelpModal('distance_rule')\">maximum distance rule</a> is violated.<br/>You must obtain certifications from another area of the Web of Trust, or wait for it to tighten.",WAITING_MEMBERSHIP:"Membership application sent. Waiting validation.",WAITING_CERTIFICATIONS:"You need {{needCertificationCount}} certification(s) to become a member and produce the <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a>. Your account is however already operational, to receive and send payments.",WAITING_CERTIFICATIONS_HELP:'To get your certifications, only request members <b>who know you enough</b>, as required by <a ng-click="showLicenseModal()">the currency license</a> that you have accepted.<br/>If you do not know enough members, let them know on <a ng-click="openLink($event, $root.settings.userForumUrl)">the user forum</a>.',WILL_MISSING_CERTIFICATIONS:"You will <b>lack certifications</b> soon (at least {{willNeedCertificationCount}} more are needed)",WILL_NEED_RENEW_MEMBERSHIP:"Your membership <b>will expire {{membershipExpiresIn|formatDurationTo}}</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a> before then.",NEED_RENEW_MEMBERSHIP:"You are no longer a member because your membership <b>has expired</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"You are no longer a member because your membership <b>has been cancelled</b> for lack of certifications. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NO_WAITING_MEMBERSHIP:"No membership application pending. If you'd like to <b>become a member</ b>, please <a ng-click=\"doQuickFix('membership')\">send the membership application</a>.",CERTIFICATION_COUNT:"Received certifications",CERTIFICATION_COUNT_SHORT:"Certifications",SIG_STOCK:"Stock of certifications to give",BTN_RECEIVE_MONEY:"Receive",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Switch to another identity...",BTN_FIX_MEMBERSHIP:"Resubmit membership request...",BTN_MEMBERSHIP_RENEW:"Renew membership",BTN_MEMBERSHIP_RENEW_DOTS:"Renew membership...",BTN_MEMBERSHIP_OUT_DOTS:"Revoke membership...",BTN_SECURITY_DOTS:"Sign-in and security...",BTN_SHOW_DETAILS:"Display technical data",LOCKED_OUTPUTS_POPOVER:{TITLE:"Locked amount",DESCRIPTION:"Here are the conditions for unlocking this amount:",DESCRIPTION_MANY:"This transaction consists of several parts, of which the unlock conditions are:",LOCKED_AMOUNT:"Conditions for the amount:"},NEW:{TITLE:"Registration",INTRO_WARNING_TIME:"Creating an account on {{name|capitalize}} is very simple. Please take sufficient time to do this correctly (not to forget the usernames, passwords, etc.).",INTRO_WARNING_SECURITY:"Check that the hardware you are currently using (computer, tablet, phone) <b>is secure and trustworthy </b>.",INTRO_WARNING_SECURITY_HELP:"Up-to-date anti-virus, firewall enabled, session protected by password or pin code...",INTRO_HELP:"Click <b> {{'COMMON.BTN_START'|translate}}</b> to begin creating an account. You will be guided step by step.",REGISTRATION_NODE:"Your registration will be registered via the Duniter peer <b>{{server}}</b> node, which will then be distributed to the rest of the currency network.",REGISTRATION_NODE_HELP:"If you do not trust this peer, please change <a ng-click=\"doQuickFix('settings')\">in the settings</a> of Cesium.",SELECT_ACCOUNT_TYPE:"Choose the type of account to create:",MEMBER_ACCOUNT:"Member account",MEMBER_ACCOUNT_TITLE:"Create a member account",MEMBER_ACCOUNT_HELP:"If you are not yet registered as an individual (one account possible per individual).",WALLET_ACCOUNT:"Simple wallet",WALLET_ACCOUNT_TITLE:"Create a wallet",WALLET_ACCOUNT_HELP:"If you represent a company, association, etc. or simply need an additional wallet. No universal dividend will be created by this account.",SALT_WARNING:"Choose a secret identifier.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this identifier</b>.<br/>If lost, there are no means to retrieve it!",PASSWORD_WARNING:"Choose a password.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this password</b>.<br/>If lost, there are no means to retrieve it!",PSEUDO_WARNING:"Choose a pseudonym.<br/>It may be used by other people to find you more easily.<br/><br/>.Use of <b>commas, spaces and accents</b> is not allowed.<br/><div class='hidden-xs'><br/>Example: <span class='gray'>JohnDalton, JackieChan, etc.</span>",PSEUDO:"Pseudonym",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Confirm",SALT_CONFIRM_HELP:"Confirm the secret identifier",PASSWORD_CONFIRM:"Confirm",PASSWORD_CONFIRM_HELP:"Confirm the password",SLIDE_6_TITLE:"Confirmation:",COMPUTING_PUBKEY:"Computing...",LAST_SLIDE_CONGRATULATION:"You completed all required fields.<br/><b>You can send the account creation request</b>.<br/><br/>For information, the public key below identifies your future account.<br/>It can be communicated to third parties to receive their payment.<br/>Once your account has been approved, you can find this key under <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Warning:</b> your secret identifier, password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to send this account creation request?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Warning:</b> your password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to continue?',CHECKING_PSEUDO:"Checking...",PSEUDO_AVAILABLE:"This pseudonym is available",PSEUDO_NOT_AVAILABLE:"This pseudonym is not available",INFO_LICENSE:"To be able to adhere to the currency, we ask you to kindly read and accept this license.",BTN_ACCEPT:"I accept",BTN_ACCEPT_LICENSE:"I accept the license"},POPUP_REGISTER:{TITLE:"Enter a pseudonym",HELP:"A pseudonym is needed to let other members find you."},SELECT_IDENTITY_MODAL:{TITLE:"Identity selection",HELP:'Several <b>different identities</b> have been sent, for the public key <span class="gray"> <i class="ion-key"></i> {{pubkey | formatPubkey}}</span>.<br/>Please select the identity to use:'},SELECT_WALLET_MODAL:{TITLE:"Wallet selection"},WALLET_LIST:{TITLE:"My wallets",BTN_NEW:"Add a wallet",BTN_DOWNLOAD:"Download the list",BTN_IMPORT_FILE_DOTS:"Import from a file...",NO_WALLET:"No secondary wallet",BTN_DELETE:"Remove a secondary wallet...",BTN_RENAME:"Rename the wallet",EXPORT_FILENAME:"my_wallets-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Total: ",EDIT_POPOVER:{TITLE:"Rename the wallet",HELP:"Fill in the new name",NAME_HELP:"Wallet name"},IMPORT_MODAL:{TITLE:"Import secondary wallets",HELP:"To <b>import secodnary wallets</b>, please drag the file in the box below, or click in the box to search for a file.",WALLET_COUNT:"<b>{{count}}</b> new wallet{{count > 1 ? 's' : ''}}",NO_NEW_WALLET:"No new wallet"}},SECURITY:{ADD_QUESTION:"Add custom question",BTN_CLEAN:"Clean",BTN_RESET:"Reset",DOWNLOAD_REVOKE:"Save a revocation file",DOWNLOAD_REVOKE_HELP:"Having a revocation file is important, for example in case of loss of identifiers. It allows you to <b>get this account out of the Web Of Trust</b>, thus becoming a simple wallet.",GENERATE_KEYFILE:"Generate my keychain file ...",GENERATE_KEYFILE_HELP:"Generate a file allowing you to authenticate without entering your identifiers.<br/><b>Warning:</b> this file will contain your secret key; It is therefore very important to put it in a safe place!",KEYFILE_FILENAME:"keychain-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Register as member...",MEMBERSHIP_IN_HELP:"Allows you to <b>transform </b> a simple wallet account <b>into a member account</b>, by sending a membership request. Useful only if you do not already have another member account.",SEND_IDENTITY:"Publish identity...",SEND_IDENTITY_HELP:"Allows you to associate a pseudonym to this account, but <b>without applying for membership</b> to become a member. This is not very useful because the validity of this pseudonym association is limited in time.",HELP_LEVEL:"Choose <strong> at least {{nb}} questions </strong> :",LEVEL:"Security level",LOW_LEVEL:'Low <span class="hidden-xs">(2 questions minimum)</span>',MEDIUM_LEVEL:'Medium <span class="hidden-xs">(4 questions minimum)</span>',QUESTION_1:"What was your best friend's name when you were a teen ?",QUESTION_2:"What was the name of your first pet ?",QUESTION_3:"What is the first meal you have learned to cook ?",QUESTION_4:"What is the first movie you saw in the cinema?",QUESTION_5:"Where did you go the first time you flew ?",QUESTION_6:"What was your favorite elementary school teacher's name  ?",QUESTION_7:"What would you consider the ideal job ?",QUESTION_8:"Which children's book do you prefer?",QUESTION_9:"What was the model of your first vehicle?",QUESTION_10:"What was your nickname when you were a child ?",QUESTION_11:"What was your favorite movie character or actor when you were a student ?",QUESTION_12:"What was your favorite singer or band when you were a student ?",QUESTION_13:"In which city did your parents meet ?",QUESTION_14:"What was the name of your first boss ?",QUESTION_15:"What is the name of the street where you grew up ?",QUESTION_16:"What is the name of the first beach where you go swim ?",QUESTION_17:"QWhat is the first album you bought ?",QUESTION_18:"What is the name of your favorite sport team ?",QUESTION_19:"What was your grand-father's job ?",RECOVER_ID:"Recover my password...",RECOVER_ID_HELP:"If you have a <b>backup file of your identifiers</b>, you can find them by answering your personal questions correctly.",REVOCATION_WITH_FILE:"Rekoke my member account...",REVOCATION_WITH_FILE_DESCRIPTION:"If you have <b>permanently lost your member account credentials (or if account security is compromised), you can use <b>the revocation file</b> of the account <b>to quit the Web Of Trust</b>.",REVOCATION_WITH_FILE_HELP:"To <b>permanently revoke</ b> a member account, please drag the revocation file in the box below, or click in the box to search for a file.",REVOCATION_WALLET:"Revoke this account immediately",REVOCATION_WALLET_HELP:"Requesting revocation of your identity causes <b>will revoke your membership</ b> (definitely for the associated pseudonym and public key). The account will no longer be able to produce a Universal Dividend.<br/>However, you can still use it as a simple wallet.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Save my credentials...",SAVE_ID_HELP:"Creating a backup file, to <b>retrieve your password</b> (and the secret identifier) <b> in case of forgetting</b>. The file is <b>secured</ b> (encrypted) using personal questions.",STRONG_LEVEL:'Strong <span class="hidden-xs ">(6 questions minimum)</span>',TITLE:"Account and security",KEYFILE:{PUBSEC_FORMAT:"PubSec format.",PUBSEC_FORMAT_HELP:"This file format is compatible in particular with Cesium and Gannonce. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",WIF_FORMAT:"Wallet Import Format (WIF)",WIF_FORMAT_HELP:"This format is used in particular by paper wallets. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",EWIF_FORMAT:"Encrypted Wallet Import Format (WIF)",EWIF_FORMAT_HELP:"This format is used in particular by paper wallets. However, <b>the keychain is encrypted</b> from a passphrase of your choice.",PASSWORD_POPUP:{TITLE:"Keychain file encrypted",HELP:"Please enter the passphrase:",PASSWORD_HELP:"Passphrase"},ERROR:{BAD_PASSWORD:"Bad passphrase",BAD_CHECKSUM:"Bad checksum"}}},FILE_NAME:"{{currency}} - Account statement {{pubkey|formatPubkey}} to {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Amount",COMMENT:"Comment"}},TRANSFER:{TITLE:"Transfer",SUB_TITLE:"Transfer money",SUB_TITLE_ALL:"Empty the account",FROM:"From",TO:"To",AMOUNT:"Amount",AMOUNT_HELP:"Amount",COMMENT:"Comment",COMMENT_HELP:"Comment (optional)",BTN_SEND:"Send",BTN_ADD_COMMENT:"Add a comment",REST:"Rest of account",REST_TO:"to",WARN_COMMENT_IS_PUBLIC:"Please note that <b>comments are public</b> (not encrypted).",MODAL:{TITLE:"Transfer"}},ERROR:{UNKNOWN_URI_FORMAT:"Unknown URI format",PUBKEY_INVALID_CHECKSUM:"Invalid public key (bad checksum).",POPUP_TITLE:"Error",UNKNOWN_ERROR:"Unknown error",CRYPTO_UNKNOWN_ERROR:"Your browser is not compatible with cryptographic features.",DOWNLOAD_KEYFILE_FAILED:"Failed to generate the keychain file.",EQUALS_TO_PSEUDO:"Must be different from pseudonym",EQUALS_TO_SALT:"Must be different from secret identifier",FIELD_REQUIRED:"This field is required.",FIELD_TOO_SHORT:"This field value is too short.",FIELD_TOO_SHORT_WITH_LENGTH:"Value is too short (min {{minLength]] characters).",FIELD_TOO_LONG:"Value is exceeding max length.",FIELD_TOO_LONG_WITH_LENGTH:"Value is too long (max {{maxLength}} characters).",FIELD_MIN:"Minimum value: {{min}}",FIELD_MAX:"Maximal value: {{max}}",FIELD_ACCENT:"Commas and accent characters not allowed",FIELD_NOT_NUMBER:"Value is not a number",FIELD_NOT_INT:"Value is not an integer",FIELD_NOT_EMAIL:"Email adress not valid",PASSWORD_NOT_CONFIRMED:"Must match previous password.",SALT_NOT_CONFIRMED:"Must match previous identifier.",SEND_IDENTITY_FAILED:"Error while trying to register.",SEND_CERTIFICATION_FAILED:"Could not certify identity.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"You could not send certification, because your account is <b>not a member account</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"You could not send certification now, because your are <b>not a member</b> yet.<br/><br/>You still need certification to become a member.",NOT_MEMBER_FOR_CERTIFICATION:"Your account is not a member account yet.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"This account could not be certified. No registration found, or need to renew.",LOGIN_FAILED:"Error while sign in.",LOAD_IDENTITY_FAILED:"Could not load identity.",LOAD_REQUIREMENTS_FAILED:"Could not load identity requirements.",SEND_MEMBERSHIP_IN_FAILED:"Error while sending registration as member.",SEND_MEMBERSHIP_OUT_FAILED:"Error while sending membership revocation.",REFRESH_WALLET_DATA:"Could not refresh wallet.",GET_CURRENCY_PARAMETER:"Could not get currency parameters.",GET_CURRENCY_FAILED:"Could not load currency. Please retry later.",SEND_TX_FAILED:"Could not send transaction.",ALL_SOURCES_USED:"Please wait the next block computation (All transaction sources has been used).",NOT_ENOUGH_SOURCES:"Not enough changes to send this amount in one time.<br/>Maximum amount: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error while creating your member account.",RESTORE_WALLET_DATA_ERROR:"Error while reloading settings from local storage",LOAD_WALLET_DATA_ERROR:"Error while loading wallet data.",COPY_CLIPBOARD_FAILED:"Could not copy to clipboard",TAKE_PICTURE_FAILED:"Could not get picture.",SCAN_FAILED:"Could not scan QR code.",SCAN_UNKNOWN_FORMAT:"Code not recognized.",WOT_LOOKUP_FAILED:"Search failed.",LOAD_PEER_DATA_FAILED:"Duniter peer not accessible. Please retry later.",NEED_LOGIN_FIRST:"Please sign in first.",AMOUNT_REQUIRED:"Amount is required.",AMOUNT_NEGATIVE:"Negative amount not allowed.",NOT_ENOUGH_CREDIT:"Not enough credit.",INVALID_NODE_SUMMARY:"Unreachable peer or invalid address",INVALID_USER_ID:"Field 'pseudonym' must not contains spaces or special characters.",INVALID_COMMENT:"Field 'reference' has a bad format.",INVALID_PUBKEY:"Public key has a bad format.",INVALID_PUBKEY_CHECKSUM:"Invalid checksum.",IDENTITY_REVOKED:"This identity <b>has been revoked</b>. It can no longer become a member.",IDENTITY_REVOKED_WITH_TIME:"This identity <b>has been revoked {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). It can no longer become a member.",IDENTITY_PENDING_REVOCATION:"The <b>revocation of this identity</b> has been requested and is awaiting processing. Certification is therefore disabled.",IDENTITY_INVALID_BLOCK_HASH:"This membership application is no longer valid (because it references a block that network peers are cancelled): the person must renew its application for membership <b>before</b> being certified.",IDENTITY_EXPIRED:"This identity has expired: this person must re-apply <b>before</b> being certified.",IDENTITY_SANDBOX_FULL:"Could not register, because peer's sandbox is full.<br/><br/>Please retry later or choose another Duniter peer (in <b>Settings</b>).",IDENTITY_NOT_FOUND:"Identity not found",IDENTITY_TX_FAILED:"Error while getting identity's transactions",WOT_PENDING_INVALID_BLOCK_HASH:"Membership not valid.",WALLET_INVALID_BLOCK_HASH:"Your membership application is no longer valid (because it references a block that network peers are cancelled).<br/>You must <a ng-click=\"doQuickFix('renew')\">renew your application for membership</a> to fix this issue.",WALLET_IDENTITY_EXPIRED:"The publication of your identity <b>has expired</b>.<br/>You must <a ng-click=\"doQuickFix('fixIdentity')\">re-issue your identity</a> to resolve this issue.",WALLET_REVOKED:"Your identity has been <b>revoked</b>: neither your pseudonym nor your public key will be used in the future for a member account.",WALLET_HAS_NO_SELF:"Your identity must first have been published, and not expired.",AUTH_REQUIRED:"Authentication required.",AUTH_INVALID_PUBKEY:"The public key does not match the connected account.",AUTH_INVALID_SCRYPT:"Invalid username or password.",AUTH_INVALID_FILE:"Invalid keychain file.",AUTH_FILE_ERROR:"Failed to open keychain file",IDENTITY_ALREADY_CERTIFY:"You have <b>already certified</b> that identity.<br/><br/>Your certificate is still valid (expires {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"You have <b>already certified</b> that identity.<br/><br/>Your certification is still pending (Deadline for treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Unable to certify",LOAD_NEWCOMERS_FAILED:"Unable to load new members.",LOAD_PENDING_FAILED:"Unable to load pending registrations.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member</b> in order to perform this action.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member (or old member)</b> in order to perform this action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"You must have <b>published your identity</b> in order to perform this action.",GET_BLOCK_FAILED:"Error while getting block",INVALID_BLOCK_HASH:"Block not found (incorrect hash)",DOWNLOAD_REVOCATION_FAILED:"Error while downloading revocation file.",REVOCATION_FAILED:"Error while trying to revoke the identity.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Wrong secret identifier or password ",RECOVER_ID_FAILED:"Could not recover password",LOAD_FILE_FAILED:"Unable to load file",NOT_VALID_REVOCATION_FILE:"Invalid revocation file (wrong file format)",NOT_VALID_SAVE_ID_FILE:"Invalid credentials backup file (wrong file format)",NOT_VALID_KEY_FILE:"Invalid keychain file (unrecognized format)",EXISTING_ACCOUNT:"Your identifiers correspond to an already existing account, whose <a ng-click=\"showHelpModal('pubkey')\">public key</a> is:",EXISTING_ACCOUNT_REQUEST:"Please modify your credentials so that they correspond to an unused account.",GET_LICENSE_FILE_FAILED:"Unable to get license file",CHECK_NETWORK_CONNECTION:"No peer appears to be accessible.<br/><br/>Please <b>check your Internet connection</b>.",ISSUE_524_TX_FAILED:"Failed to transfer.<br/><br/>A message has been sent to developers to help solve the problem.<b>Thank you for your help</b>.",ADD_SECONDARY_WALLET_FAILED:"Unable to add secondary wallet.",UPDATE_WALLET_LIST_FAILED:"Unable to refresh the list of wallets.",LOAD_WALLET_LIST_FAILED:"Unable to load the list of wallets.",SAVE_WALLET_LIST_FAILED:"Unable to save the list of wallets.",COULD_NOT_ADD_MAIN_WALLET:"This wallet <b>is the main account</b> with which you are connected. Unable to add it as a secondary wallet.",COULD_NOT_ADD_EXISTING_WALLET:"Wallet already existing in the list.",UNKNOWN_WALLET_ID:"Unknown secondary wallet.",RESTORE_WALLET_LIST_FAILED:"Unable to restore the list of wallets.",INVALID_FILE_FORMAT:"Invalid file format.",SAME_TX_RECIPIENT:"The recipient must be different from the issuer."},INFO:{POPUP_TITLE:"Information",CERTIFICATION_DONE:"Identity successfully signed",NOT_ENOUGH_CREDIT:"Not enough credit",TRANSFER_SENT:"Transfer request successfully sent",COPY_TO_CLIPBOARD_DONE:"Copy succeeded",MEMBERSHIP_OUT_SENT:"Membership revocation sent",NOT_NEED_MEMBERSHIP:"Already a member.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"This identity will soon lack certification (at least {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"This identity did not send a membership request. She will have to if she wishes to become a member.",HAS_ALTERNATIVE_IDENTITIES:"There are <b>multiple identities</b> attached to this public key. <b>Before any certification</b>, please <a ng-click=\"doQuickFix('showSelectIdentities')\">check other identities</a> to choose the correct one, or contact the wallet owner.",REVOCATION_SENT:"Revocation sent successfully",REVOCATION_SENT_WAITING_PROCESS:"Revocation <b>has been sent successfully</b>. It is awaiting processing.",FEATURES_NOT_IMPLEMENTED:"This features is not implemented yet.<br/><br/>Why not to contribute to get it faster? ;)",EMPTY_TX_HISTORY:"No operations to export"},CONFIRM:{POPUP_TITLE:"<b>Confirmation</b>",POPUP_WARNING_TITLE:"<b>Warning</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Security warning</b>',CERTIFY_RULES_TITLE_UID:"Certify {{uid}}",CERTIFY_RULES:'<b class="assertive">Don\'t certify an account</b> if you believe that: <ul><li>1.) the issuers identity might be faked.<li>2.) the issuer already has another certified account.<li>3.) the issuer purposely or carelessly violates rule 1 or 2 (he certifies faked or double accounts).</ul></small><br/>Are you sure you want to certify this identity?',FULLSCREEN:"View the application in full screen?",EXIT_APP:"Close the application ?",TRANSFER:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",TRANSFER_ALL:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li><br/><li> - Rest : <b>{{restAmount}} {{unit}}</b> to <b>{{restTo}}</b></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",MEMBERSHIP_OUT:"This operation is <b>irreversible</b>.<br/></br/><b>Are you sure you want to terminate your membership?</b>",MEMBERSHIP_OUT_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>terminate your membership</b>?",LOGIN_UNUSED_WALLET_TITLE:"Typing error?",LOGIN_UNUSED_WALLET:"The account seems to be <b>inactive</b>.<br/><br/>It's probably a <b>typing error</b> when sign in. Please try again, checking that <b>public key is yours<b/>.",FIX_IDENTITY:"The pseudonym <b>{{uid}}</b> will be published again, replacing the old publication that has expired.<br/></br/><b>Are you sure</b> you want to continue?",FIX_MEMBERSHIP:"Your application for membership will be sent.<br/></br/><b>Are you sure?</b>",MEMBERSHIP:"Your membership request will be sent. <br/></br/><b>Are you sure?</b>",RENEW_MEMBERSHIP:"Your membership will be renewed.<br/></br/><b>Are you sure?</b>",REVOKE_IDENTITY:"You will <b>definitely revoke this identity</b>.<br/><br/>The public key and the associated pseudonym <b>will never be used again</b> (for a member account).<br/></br/><b>Are you sure</b> you want to revoke this identity?",REVOKE_IDENTITY_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>revoke this identity</b>?",NOT_NEED_RENEW_MEMBERSHIP:"Your membership does not need to be renewed (it will only expire in {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Are you sure you</b> want to renew your membership?",SAVE_BEFORE_LEAVE:"Do you want to <b>save your changes</b> before leaving the page?",SAVE_BEFORE_LEAVE_TITLE:"Changes not saved",LOGOUT:"Are you sure you want to logout?",USE_FALLBACK_NODE:"Peer <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the <b>{{new}}</b> node?",ISSUE_524_SEND_LOG:"The transaction was rejected because of a known problem (issue #524) but not reproduced.<br/><br/>To help developers correct this error, do you accept <b>the transmission of your logs</b> per message?<br/><small>(No confidential data is sent)</small>"},DOWNLOAD:{POPUP_TITLE:"<b>Revocation file</b>",POPUP_REVOKE_MESSAGE:"To safeguard your account, please download the <b>account revocation document</b>. It will allow you to cancel your account (in case of account theft, ID, an incorrectly created account, etc.).<br/><br/><b>Please store it in a safe place.</b>"},HELP:{TITLE:"Online help",JOIN:{SECTION:"Join",SALT:'The secret identifier is very important. It is used to hash you password, which in turn is used to calculate your <span class="text-italic">public account key</span> (its number) and the private key to access it.<br/><b>Please remeber this identifier well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good secret identifier must be sufficiently long (8 characters at the very least) and as original as possible.',PASSWORD:"The password is very important. Together with the secret identifier, it is use to calculate your account number (pblic key) and the private key to access it.<br/><b>Please remember it well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good password is made (ideally) of at least 8 characters, with at least one capital and one number.",PSEUDO:'A pseudonym is used only when joining as <span class="text-italic">member</span>. It is always associated with a wallet (by its <span class="text-italic">public key</span>).<br/>It is published on the network so that other users may identify it, certify or send money to the account.<br/>A pseudonym must be unique among all members (current and past).'},LOGIN:{SECTION:"Log in",PUBKEY:"Account public key",PUBKEY_DEF:'The public key of the keychain is generated from the entered identifiers (any), but does not correspond to an account already used.<br/><b>Make sure your public key is the same as your account</b>. Otherwise, you will be logged into an account that is probably never used, as the risk of collision with an existing account is very small.<br/><a href="https://en.wikipedia.org/wiki/Elliptic_curve_cryptography" target="_ system">Learn more about cryptography</a> by public key.',METHOD:"Connection methods",METHOD_DEF:"Several options are available to connect to a portfolios: <br/> - The connection <b>with salt (simple or advanced)</b> mixes your password with the secret identifier, to limit the attempts of piracy<br/> - The connection <b>using public key</b> prevents you from entering your credentials, which you will be asked only when an operation need it.<br/> - The connection <b>using keychain file</b> will read the public and private keys of the account from a file without the need to enter credentials. Several file formats are possible."},GLOSSARY:{SECTION:"Glossary",PUBKEY_DEF:"A public key always identifies a wallet. It may identify a member. In Cesium it is calculated using the secret identifier and the password.",MEMBER:"Member",MEMBER_DEF:'A member is a real and living human, wishing to participate freely to the monitary community. The member will receive universal dividend, according to the period and amount as defined in the <span class="text-italic">currency parameters</span>.',CURRENCY_RULES:"Currency rules",CURRENCY_RULES_DEF:'The currency rules are defined only once, and for all. They set the parameters under which the currency will perform: universal dividend calculation, the amount of certifications needed to become a member, the maximum amount of certifications a member can send, etc.<br/><br/>The parameters cannot be modified because of the use of a <span class="text-italic">Blockchain</span> which carries and executes these rules, and constantly verifies their correct application. <a href="#/app/currency">See current parameters</a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'The Blockchain is a decentralised system which, in case of Duniter, serves to carry and execute the <span class="text-italic">currency rules</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Read more about Duniter</a> and the working of its blockchain.',UNIVERSAL_DIVIDEND_DEF:'The Universal Dividend (UD) is the quantity of money co-created by each member, according to the period and the calculation defined in the <span class="text-italic">currency rules</span>.<br/>Every term, the members receive an equal amount of new money on their account.<br/><br/>The UD undergoes a steady growth, to remain fair under its members (current and future), calculated by an average life expectancy, as demonstrated in the Relative Theory of Money (RTM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Read more about RTM</a> and open money.',WOT:"Web of Trust (WoT)",WOT_DEF:"The Web of Trust is made up of all the members of the currency, and the links of certification which connect them.",DISTANCE_RULE:"Distance rule",DISTANCE_RULE_DEF:"The rule of distance defines <b>a maximum distance to meet</b> between an applicant and a minimum number of referring member. This distance is calculated using the certification links."},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> allows discovery of <b>currency parameters</b> and its state.",CURRENCY_WOT:"The <b>member count</b> shows the <b>community's weight and evolution</b>.",CURRENCY_MASS:"Shown here is the <b>total amount</b> currently in circulation and its <b>average distribution</b> per member.<br/><br/>This allows to estimate the <b>worth of any amount</b>, in respect to what <b>others own</b> on their account (on average).",CURRENCY_UNIT_RELATIVE:"The unit used here (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amounts in {{currency|capitalize}} have been devided by the <b>Universal Dividend</b> (UD).<br/><br/><small>This relative unit is <b>relevant</b> because it is stable in contrast to the permanently growing monitary mass.</small>",CURRENCY_CHANGE_UNIT:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in <b>{{currency|capitalize}}</b>, undevided by the Universal Dividend (instead of in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, which is relative to the Universal Dividend (the amount co-produced by each member).",CURRENCY_RULES:"The <b>rules</b> of the currency determine its <b>exact and predictible</b> performance.<br/><br/>As a true DNA of the currency these rules make the monetary code <b>transparent and understandable</b>.",MENU_BTN_NETWORK:"Menu <b>{{'MENU.NETWORK'|translate}}</b> allows discovery of <b>network's state<b>.",NETWORK_BLOCKCHAIN:"All monetary transactions are recoded in a <b>public and tamper proof</b> ledger, generally referred to as the <b>blockchain</b>.",NETWORK_PEERS:"The <b>peers</b> shown here correspond to <b>computers that update and check</b> the blockchain.<br/><br/>The more active peers there are, the more <b>decentralised</b> and therefore trustworhty the currency becomes.",NETWORK_PEERS_BLOCK_NUMBER:"This <b>number</b> (in green) indicates the peer's <b>latest validated block</b> (last page written in the ledger).<br/><br/>Green indicates that the block was equally validated by the <b>majority of other peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Each member</b>, equiped with a computer with Internet, <b>can participate, adding a peer</b> simply by <b>installing the Duniter software</b> (free/libre). <a target="_new" href="{{installDocUrl}}" target="_system">Read the installation manual &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> allows access to your account balance and transaction history.",MENU_BTN_ACCOUNT_MEMBER:"Here you can consult your account status, transaction history and your certifications.",WALLET_CERTIFICATIONS:"Click here to reveiw the details of your certifications (given and received).",WALLET_RECEIVED_CERTIFICATIONS:"Click here to review the details of your <b>received certifications</b>.",WALLET_GIVEN_CERTIFICATIONS:"Click here to review the details of your <b>given certifications</b>.",WALLET_BALANCE:"Your account <b>balance</b> is shown here.",
-WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>The used unit (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amount in {{currency|capitalize}} has been divided by the <b>Universal Dividend</b> (UD) co-created by each member.<br/>At this moment, 1 UD equals {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"You can <b>change the unit</b> in which amounts are shown in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>For example, to display amounts <b>directly in {{currency|capitalize}}</b> instead of relative amounts.",WALLET_PUBKEY:"This is your account public key. You can communicate it to a third party so that it more easily identifies your account.",WALLET_SEND:"Issue a payment in just a few clicks.",WALLET_SEND_NO_MONEY:"Issue a payment in just a few clicks.<br/>(Your balance does not allow this yet)",WALLET_OPTIONS:"Please note that this button allows access to <b>other, less used actions</b>.<br/><br/>Don't forget to take a quick look, when you have a moment!",WALLET_RECEIVED_CERTS:"This shows the list of persons that certified you.",WALLET_CERTIFY:"The button <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> allows selecting an identity and certifying it.<br/><br/>Only users that are <b>already member</b> may certify others.",WALLET_CERT_STOCK:"Your supply of certifications (to send) is limited to <b>{{sigStock}} certifications</b>.<br/><br/>This supply will replete itself over time, as and when earlier certifications expire.",MENU_BTN_TX_MEMBER:"<b>{{'MENU.TRANSACTIONS'|translate}}</b> allow access to transactions history, and send new payments.",MENU_BTN_TX:"View the history of <b>your transactions</b> here and send new payments.",MENU_BTN_WOT:"The menu <b>{{'MENU.WOT'|translate}}</b> allows searching <b>users</b> of the currency (member or not).",WOT_SEARCH_TEXT_XS:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>The search will start automatically.",WOT_SEARCH_TEXT:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>Then hit <b>Enter</b> to start the search.",WOT_SEARCH_RESULT:"Simply click a user row to view the details sheet.",WOT_VIEW_CERTIFICATIONS:"The row <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> shows how many members members validated this identity.<br/><br/>These certifications testify that the account belongs to <b>a living human</b> and this person has <b>no other member account</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"There are at least <b>{{sigQty}} certifications</b> needed to become a member and receive the <b>Universal Dividend</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Click here to open <b>a list of all certifications</b> given to and by this identity.",WOT_VIEW_CERTIFY:"The button <b>{{'WOT.BTN_CERTIFY'|translate}}</b> allows to add your certification to this identity.",CERTIFY_RULES:"<b>Attention:</b> Only certify <b>real and living persons</b> that do not own any other certified account.<br/><br/>The trust carried by the currency depends on each member's vigilance!",MENU_BTN_SETTINGS:"The <b>{{'MENU.SETTINGS'|translate}}</b> allow you to configure the Cesium application.<br/><br/>For example, you can <b>change the unit</b> in which the currency will be shown.",HEADER_BAR_BTN_PROFILE:"Click here to access your <b>user profile</b>",SETTINGS_CHANGE_UNIT:"You can <b>change the display unit</b> of amounts by clicking here.<br/><br/>- Deactivate the option to show amounts in {{currency|capitalize}}.<br/>- Activate the option for relative amounts in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divided</b> by the current Universal Dividend).",END_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>Welcome to the <b>free economy</b>!",END_NOT_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>If you wish to join the currency {{currency|capitalize}}, simply click <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> below."}},API:{COMMON:{LINK_DOC:"API documentation",LINK_DOC_HELP:"API documentation for developers",LINK_STANDARD_APP:"Standard version",LINK_STANDARD_APP_HELP:"Open standard version of {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or contact the web site administrator."},HOME:{TITLE:"{{'COMMON.APP_NAME'|translate}} API Documentation",MESSAGE:'Welcome to the {{\'COMMON.APP_NAME\'|translate}} <b>API documentation </b>.<br/>Connect your web site to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',MESSAGE_SHORT:'Connect your websites to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',DOC_HEADER:"Available services:"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Online payment",TITLE_SHORT:"Online payment",SUMMARY:"Order summary:",AMOUNT:"Amount:",AMOUNTS_HELP:"Please select the amount:",NAME:"Name:",PUBKEY:"Public key of the recipient:",COMMENT:"Order reference:",NODE:"Peer address:",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Demonstration mode</b>: No payment will actually be sent during this simulation.<br/>Please use credentials: <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Invalid credentials.<br/>In demonstration mode, credentials should be: {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Payment sent.<br/>Redirect to <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Payment sent.<br/>Redirect to the seller's website...",CANCEL_REDIRECTING_WITH_NAME:"Payment cancelled.<br/>Redirect to <b>{{name}}</b>...",CANCEL_REDIRECTING:"Payment cancelled.<br/>Redirect to the seller's website..."},ERROR:{TRANSFER_FAILED:"Payment failed"}},DOC:{DESCRIPTION_DIVIDER:"Description",URL_DIVIDER:"Calling address",PARAMETERS_DIVIDER:"Parameters",AVAILABLE_PARAMETERS:"Here is the list of al available parameters:",DEMO_DIVIDER:"Try it !",DEMO_HELP:"To test this service, click on this button. The result content will be display below.",DEMO_RESULT:"Result returned by call:",DEMO_RESULT_PEER:"Peer address used:",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Success!',DEMO_CANCELLED:'<i class="icon ion-close"></i> Canceled by user',INTEGRATE_DIVIDER:"Website integration",INTEGRATE_CODE:"Code:",INTEGRATE_RESULT:"Result preview:",INTEGRATE_PARAMETERS:"Parameters",TRANSFER:{TITLE:"Payments",DESCRIPTION:"From a site (eg online marketplace) you can delegate payment in free currency to Cesium API. To do this, simply open a page at the following address:",PARAM_PUBKEY:"Recipient's public key",PARAM_PUBKEY_HELP:"Recipient's public key (required)",PARAM_AMOUNT:"Amount",PARAM_AMOUNT_HELP:"Transaction amount (required)",PARAM_COMMENT:"Reference (or comment)",PARAM_COMMENT_HELP:"Reference or comment. You will allow for example to identify the payment in the BlockChain.",PARAM_NAME:"Name (of recipient or website)",PARAM_NAME_HELP:'The name of your website. This can be a readable name (eg "My online site"), or a web address (eg "www.MySite.com").',PARAM_REDIRECT_URL:"URL redirection",PARAM_REDIRECT_URL_HELP:'URL redirection after sending payment, after the payment has been sent. Can contain the following strings, which will be replaced by the values of the transaction: "{tx}", "{hash}", "{comment}", "{amount}" and "{pubkey}".',PARAM_CANCEL_URL:"URL if cancelled",PARAM_CANCEL_URL_HELP:'URL in case of cancellation.  Can contain the following strings, which will be replaced: "{comment}", "{amount}" and "{pubkey}".',PARAM_PREFERRED_NODE:"Preferred Duniter peer",PARAM_PREFERRED_NODE_HELP:'Peer address (URL) to use preferably ("g1.domain.com:443" or "https://g1.domain.com")',EXAMPLES_HELP:"Examples of integration:",EXAMPLE_BUTTON:"HTML Button",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pay in {{currency|abbreviate}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Custom style",EXAMPLE_BUTTON_TEXT_HELP:"Button text",EXAMPLE_BUTTON_BG_COLOR:"Background color",EXAMPLE_BUTTON_BG_COLOR_HELP:"eg: #fbc14c, yellow, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Font color",EXAMPLE_BUTTON_FONT_COLOR_HELP:"eg: black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icon",EXAMPLE_BUTTON_TEXT_WIDTH:"Width",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"eg: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"No icon",EXAMPLE_BUTTON_ICON_DUNITER:"Duniter logo",EXAMPLE_BUTTON_ICON_CESIUM:"Cesium logo",EXAMPLE_BUTTON_ICON_G1_COLOR:"Ğ1 logo",EXAMPLE_BUTTON_ICON_G1_BLACK:"Ğ1 logo (outline)"}}}}),e.translations("en",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",PUBKEY:"Public key",MEMBER:"Member",BLOCK:"Block",BTN_OK:"OK",BTN_YES:"Yes",BTN_NO:"No",BTN_SEND:"Send",BTN_SEND_MONEY:"Transfer money",BTN_SEND_MONEY_SHORT:"Transfer",BTN_SAVE:"Save",BTN_YES_SAVE:"Yes, Save",BTN_YES_CONTINUE:"Yes, Continue",BTN_SHOW:"Show",BTN_SHOW_PUBKEY:"Show key",BTN_RELATIVE_UNIT:"Display amounts in UD?",BTN_BACK:"Back",BTN_NEXT:"Next",BTN_IMPORT:"Import",BTN_CANCEL:"Cancel",BTN_CLOSE:"Close",BTN_LATER:"Later",BTN_LOGIN:"Sign In",BTN_LOGOUT:"Logout",BTN_ADD_ACCOUNT:"New Account",BTN_SHARE:"Share",BTN_EDIT:"Edit",BTN_DELETE:"Delete",BTN_ADD:"Add",BTN_SEARCH:"Search",BTN_REFRESH:"Refresh",BTN_RETRY:"Retry",BTN_START:"Start",BTN_CONTINUE:"Continue",BTN_CREATE:"Create",BTN_UNDERSTOOD:"I understand",BTN_OPTIONS:"Options",BTN_HELP_TOUR:"Features tour",BTN_HELP_TOUR_SCREEN:"Discover this screen",BTN_DOWNLOAD:"Download",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Download account statement",BTN_MODIFY:"Modify",CHOOSE_FILE:"Drag your file<br/>or click to select",DAYS:"days",NO_ACCOUNT_QUESTION:"Not a member yet? Register now!",SEARCH_NO_RESULT:"No result found",LOADING:"Loading...",LOADING_WAIT:"Loading...<br/><small>(Waiting for node availability)</small>",SEARCHING:"Searching...",FROM:"From",TO:"To",COPY:"Copy",LANGUAGE:"Language",UNIVERSAL_DIVIDEND:"Universal dividend",UD:"UD",DATE_PATTERN:"MM/DD/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"MM/DD/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(empty)",UID:"Pseudonym",ENABLE:"Enabled",DISABLE:"Disabled",RESULTS_LIST:"Results:",RESULTS_COUNT:"{{count}} results",EXECUTION_TIME:"executed in {{duration|formatDurationMs}}",SHOW_VALUES:"Display values openly?",POPOVER_ACTIONS_TITLE:"Options",POPOVER_FILTER_TITLE:"Filters",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit at {{limit}})",POPOVER_SHARE:{TITLE:"Share",SHARE_ON_TWITTER:"Share on Twitter",SHARE_ON_FACEBOOK:"Share on Facebook",SHARE_ON_DIASPORA:"Share on Diaspora*",SHARE_ON_GOOGLEPLUS:"Share on Google+"},FILE:{DATE:"Date:",TYPE:"Type:",SIZE:"Size:",VALIDATING:"Validating..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Choose source:",BTN_PICTURE_GALLERY:"Gallery",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Home",WOT:"Registry",CURRENCY:"Currency",ACCOUNT:"My Account",WALLETS:"My wallets",TRANSFER:"Transfer",SCAN:"Scan",SETTINGS:"Settings",NETWORK:"Network",TRANSACTIONS:"My transactions"},ABOUT:{TITLE:"About",LICENSE:"<b>Free/libre software</b> (License GNU AGPLv3).",LATEST_RELEASE:"There is a <b>newer version</ b> of {{'COMMON.APP_NAME' | translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Please update {{'COMMON.APP_NAME' | translate}} (latest version: <b>v{{version}}</b>)",CODE:"Source code:",OFFICIAL_WEB_SITE:"Official web site:",DEVELOPERS:"Developers:",FORUM:"Forum:",PLEASE_REPORT_ISSUE:"Please report any issue to us!",REPORT_ISSUE:"Report an issue",BTN_OPEN_DEV_WINDOW:"Open the debug window"},HOME:{TITLE:"Cesium",WELCOME:"Welcome to the Cesium Application!",MESSAGE:"Follow your {{currency|abbreviate}} wallets easily",BTN_CURRENCY:"Explore currency",BTN_ABOUT:"about",BTN_HELP:"Help",REPORT_ISSUE:"Report an issue",NOT_YOUR_ACCOUNT_QUESTION:'You do not own the account <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Disconnect this account",CONNECTION_ERROR:'Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or change node <a class="positive" ng-click="doQuickFix(\'settings\')">in the settings</a>.'},SETTINGS:{TITLE:"Settings",DISPLAY_DIVIDER:"Display",STORAGE_DIVIDER:"Storage",NETWORK_SETTINGS:"Network",PEER:"Duniter peer address",PEER_SHORT:"Peer address",PEER_CHANGED_TEMPORARY:"Address used temporarily",USE_LOCAL_STORAGE:"Enable local storage",USE_LOCAL_STORAGE_HELP:"Allows you to save your settings",WALLETS_SETTINGS:"My wallets",USE_WALLETS_ENCRYPTION:"Secure the list",USE_WALLETS_ENCRYPTION_HELP:"Enables you to encrypt the list of your wallets. Authentication required to access it.",ENABLE_HELPTIP:"Enable contextual help tips",ENABLE_UI_EFFECTS:"Enable visual effects",HISTORY_SETTINGS:"Account operations",DISPLAY_UD_HISTORY:"Display produced dividends?",TX_HISTORY_AUTO_REFRESH:"Enable automatic refresh?",TX_HISTORY_AUTO_REFRESH_HELP:"Updates the list of operations to each new block.",AUTHENTICATION_SETTINGS:"Authentication",KEEP_AUTH:"Expiration of authentication",KEEP_AUTH_SHORT:"Expiration",KEEP_AUTH_HELP:"Define when authentication is cleared from memory.",KEEP_AUTH_OPTION:{NEVER:"After each operation",SECONDS:"After {{value}}s of inactivity",MINUTE:"After {{value}}min of inactivity",MINUTES:"After {{value}}min of inactivity",HOUR:"After {{value}}h of inactivity",ALWAYS:"At the end of the session"},KEYRING_FILE:"Keyring file",KEYRING_FILE_HELP:'Allow auto-connect at startup, or to authenticate (only if "Expiration of authentication" is "at the end of the session"',REMEMBER_ME:"Remember me ?",REMEMBER_ME_HELP:"Allows to remain identified from one session to another, keeping the public key locally.",PLUGINS_SETTINGS:"Extensions",BTN_RESET:"Restore default values",EXPERT_MODE:"Enable expert mode",EXPERT_MODE_HELP:"Allow to see more details",BLOCK_VALIDITY_WINDOW:"Block uncertainty time",BLOCK_VALIDITY_WINDOW_SHORT:"Time of uncertainty",BLOCK_VALIDITY_WINDOW_HELP:"Time to wait before considering an information is validated",BLOCK_VALIDITY_OPTION:{NONE:"No delay",N:"{{time | formatDuration}} ({{count}} blocks)"},POPUP_PEER:{TITLE:"Duniter peer",HOST:"Address",HOST_HELP:"Address: server:port",USE_SSL:"Secured?",USE_SSL_HELP:"(SSL Encryption)",BTN_SHOW_LIST:"Peer's list"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Block #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Current block",TITLE:"Block #{{number|formatInteger}}",COMPUTED_BY:"Computed by",SHOW_RAW:"Show raw data",TECHNICAL_DIVIDER:"Technical informations",VERSION:"Format version",HASH:"Computed hash",UNIVERSAL_DIVIDEND_HELP:"Money co-produced by each of the {{membersCount}} members",EMPTY:"Aucune donnée dans ce bloc",POW_MIN:"Minimal difficulty",POW_MIN_HELP:"Difficulty imposed in calculating hash",DATA_DIVIDER:"Data",IDENTITIES_COUNT:"New identities",JOINERS_COUNT:"Joiners",ACTIVES_COUNT:"Renewals",ACTIVES_COUNT_HELP:"Members having renewed their membership",LEAVERS_COUNT:"Leavers",LEAVERS_COUNT_HELP:"Members that now refused certification",EXCLUDED_COUNT:"Excluded members",EXCLUDED_COUNT_HELP:"Old members, excluded because missing membreship renewal or certifications",REVOKED_COUNT:"Revoked identities",REVOKED_COUNT_HELP:"These accounts may no longer be member",TX_COUNT:"Transactions",CERT_COUNT:"Certifications",TX_TO_HIMSELF:"Change",TX_OUTPUT_UNLOCK_CONDITIONS:"Unlock conditions",TX_OUTPUT_OPERATOR:{AND:"and",OR:"or"},TX_OUTPUT_FUNCTION:{SIG:"<b>Sign</b> of the public key",XHX:"<b>Password</b>, including SHA256 =",CSV:"Blocked during",CLTV:"Bloqué until"}},LOOKUP:{TITLE:"Blocks",NO_BLOCK:"No bloc",LAST_BLOCKS:"Last blocks:",BTN_COMPACT:"Compact"}},CURRENCY:{VIEW:{TITLE:"Currency",TAB_CURRENCY:"Currency",TAB_WOT:"Web of trust",TAB_NETWORK:"Network",TAB_BLOCKS:"Blocks",CURRENCY_SHORT_DESCRIPTION:"{{currency|capitalize}} is a <b>libre money</b>, started {{firstBlockTime | formatFromNow}}. It currently counts <b>{{N}} members </b>, who produce and collect a <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a> (DU), each {{dt | formatPeriod}}.",NETWORK_RULES_DIVIDER:"Network rules",CURRENCY_NAME:"Currency name",MEMBERS:"Members count",MEMBERS_VARIATION:"Variation since {{duration|formatDuration}} (since last UD)",MONEY_DIVIDER:"Money",MASS:"Monetary mass",SHARE:"Money share",UD:"Universal Dividend",C_ACTUAL:"Current growth",MEDIAN_TIME:"Current blockchain time",POW_MIN:"Common difficulty",MONEY_RULES_DIVIDER:"Rules of currency",C_RULE:"Theoretical growth target",UD_RULE:"Universal dividend (formula)",DT_REEVAL:"Period between two re-evaluation of the UD",REEVAL_SYMBOL:"reeval",DT_REEVAL_VALUE:"Every <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Date of first reevaluation of the UD",SIG_QTY_RULE:"Required number of certifications to become a member",SIG_STOCK:"Maximum number of certifications sent by a member",SIG_PERIOD:"Minimum delay between 2 certifications sent by one and the same issuer.",SIG_WINDOW:"Maximum delay before a certification will be treated",SIG_VALIDITY:"Lifetime of a certification that has been treated",MS_WINDOW:"Maximum delay before a pending membership will be treated",MS_VALIDITY:"Lifetime of a membership that has been treated",STEP_MAX:"Maximum distance between a newcomer and each referring members.",WOT_RULES_DIVIDER:"Rules for web of trust",SENTRIES:"Required number of certifications (given <b>and</b> received) to become a referring member",SENTRIES_FORMULA:"Required number of certifications to become a referring member (formula)",XPERCENT:"Minimum percent of referring member to reach to match the distance rule",AVG_GEN_TIME:"The average time between 2 blocks",CURRENT:"current",MATH_CEILING:"CEILING",DISPLAY_ALL_RULES:"Display all rules?",BTN_SHOW_LICENSE:"Show license",WOT_DIVIDER:"Web of trust"},LICENSE:{TITLE:"Currency license",BTN_DOWNLOAD:"Download file",NO_LICENSE_FILE:"License file not found."}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain time",LOADING_PEERS:"Loading peers...",NODE_ADDRESS:"Address:",SOFTWARE:"Software:",WARN_PRE_RELEASE:"Pre-release (latest stable: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Version <b>{{version}}</b> available",WS2PID:"Identifier:",PRIVATE_ACCESS:"Private access",POW_PREFIX:"Proof of work prefix:",ENDPOINTS:{BMAS:"Secure endpoint (SSL)",BMATOR:"TOR endpoint",WS2P:"WS2P endpoint",ES_USER_API:"Cesium+ data node"}},INFO:{ONLY_SSL_PEERS:"Non-SSL nodes have a degraded display because Cesium works in HTTPS mode."}},PEER:{PEERS:"Peers",SIGNED_ON_BLOCK:"Signed on block",MIRROR:"mirror",MIRRORS:"Mirrors",MIRROR_PEERS:"Mirror peers",PEER_LIST:"Peer's list",MEMBERS:"Members",MEMBER_PEERS:"Member peers",ALL_PEERS:"All peers",DIFFICULTY:"Difficulty",API:"API",CURRENT_BLOCK:"Block #",POPOVER_FILTER_TITLE:"Filter",OFFLINE:"Offline",OFFLINE_PEERS:"Offline peers",BTN_SHOW_PEER:"Show peer",VIEW:{TITLE:"Peer",OWNER:"Owned by ",SHOW_RAW_PEERING:"See peering document",SHOW_RAW_CURRENT_BLOCK:"See current block (raw format)",LAST_BLOCKS:"Last blocks",KNOWN_PEERS:"Known peers :",GENERAL_DIVIDER:"General information",ERROR:{LOADING_TOR_NODE_ERROR:"Could not get peer data, using the TOR network.",LOADING_NODE_ERROR:"Could not get peer data"}}},WOT:{SEARCH_HELP:"Search (member or public key)",SEARCH_INIT_PHASE_WARNING:"During the pre-registration phase, the search for pending registrations <b>may be long</b>. Please wait ...",REGISTERED_SINCE:"Registered on",REGISTERED_SINCE_BLOCK:"Registered since block #",NO_CERTIFICATION:"No validated certification",NO_GIVEN_CERTIFICATION:"No given certification",NOT_MEMBER_PARENTHESIS:"(non-member)",IDENTITY_REVOKED_PARENTHESIS:"(identity revoked)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(being revoked)",EXPIRE_IN:"Expires",NOT_WRITTEN_EXPIRE_IN:"Deadline<br/>treatment",EXPIRED:"Expired",PSEUDO:"Pseudonym",SIGNED_ON_BLOCK:"Emitted on block #{{block}}",WRITTEN_ON_BLOCK:"Written on block #{{block}}",GENERAL_DIVIDER:"General information",NOT_MEMBER_ACCOUNT:"Non-member account",NOT_MEMBER_ACCOUNT_HELP:"This is a simple wallet, with no pending membership application.",TECHNICAL_DIVIDER:"Technical data",BTN_CERTIFY:"Certify",BTN_YES_CERTIFY:"Yes, certify",BTN_SELECT_AND_CERTIFY:"New certification",ACCOUNT_OPERATIONS:"Account operations",VIEW:{POPOVER_SHARE_TITLE:"Identity {{title}}"},LOOKUP:{TITLE:"Registry",NEWCOMERS:"New members:",NEWCOMERS_COUNT:"{{count}} members",PENDING:"Pending registrations:",PENDING_COUNT:"{{count}} pending registrations",REGISTERED:"Registered {{sigDate | formatFromNow}}",MEMBER_FROM:"Member since {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Latest members",BTN_PENDING:"Pending registrations",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit to {{limit}})",NO_PENDING:"No pending registrations.",NO_NEWCOMERS:"No members."},CONTACTS:{TITLE:"Contacts"},MODAL:{TITLE:"Search"},CERTIFICATIONS:{TITLE:"{{uid}} - Certifications",SUMMARY:"Received certifications",LIST:"Details of received certifications",PENDING_LIST:"Pending certifications",RECEIVED:"Received certifications",RECEIVED_BY:"Certifications received by {{uid}}",ERROR:"Received certifications in error",SENTRY_MEMBER:"Referring member"},OPERATIONS:{TITLE:"{{uid}} - Operations"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certifications sent",SUMMARY:"Sent certifications",LIST:"Details of sent certifications",PENDING_LIST:"Pending certifications",SENT:"Sent certifications",SENT_BY:"Certifications sent by {{uid}}",ERROR:"Sent certifications with error"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Login',SCRYPT_FORM_HELP:"Please enter your credentials. <br> Remember to check the public key for your account.",PUBKEY_FORM_HELP:"Please enter a public account key:",FILE_FORM_HELP:"Choose the keychain file to use:",SCAN_FORM_HELP:"Scan the QR code of a wallet.",SALT:"Secret identifier",SALT_HELP:"Secret identifier",SHOW_SALT:"Display secret identifier?",PASSWORD:"Password",PASSWORD_HELP:"Password",PUBKEY_HELP:"Public key or pseudonym",NO_ACCOUNT_QUESTION:"Don't have an account yet?",HAVE_ACCOUNT_QUESTION:"Already have an account ?",CREATE_ACCOUNT:"Create an account",CREATE_FREE_ACCOUNT:"Create a free account",FORGOTTEN_ID:"Forgot password?",ASSOCIATED_PUBKEY:"Public key :",BTN_METHODS:"Other methods",BTN_METHODS_DOTS:"Change method...",METHOD_POPOVER_TITLE:"Methods",MEMORIZE_AUTH_FILE:"Memorize this keychain during the navigation session",SCRYPT_PARAMETERS:"Paramètres (Scrypt) :",AUTO_LOGOUT:{TITLE:"Information",MESSAGE:'<i class="ion-android-time"></i> You were <b>logout</ b> automatically, due to prolonged inactivity.',BTN_RELOGIN:"Sign In",IDLE_WARNING:"You will be logout... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Secret identifier and password",SCRYPT_ADVANCED:"Advanced salt",FILE:"Keychain file",PUBKEY:"Public key or pseudonym",SCAN:"Scan a QR code"},SCRYPT:{SIMPLE:"Light salt",DEFAULT:"Standard salt",SECURE:"Secure salt",HARDEST:"Hardest salt",EXTREME:"Extreme salt",USER:"Personal value",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Expected file format: <b>.dunikey</b> (type PubSec). Other formats are under development (EWIF, WIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Authentication',BTN_AUTH:"Authenticate",GENERAL_HELP:"Please authenticate yourself:",EXPECTED_UID_HELP:'Please authenticate to the account <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Please authenticate to the wallet <i class="ion-key"></i> {{pubkey|formatPubkey}}:',SCAN_FORM_HELP:"Scan the QR code of the <b>private key</b> of the wallet."},ACCOUNT:{TITLE:"My Account",BALANCE:"Balance",LAST_TX:"Latest validated transactions",BALANCE_ACCOUNT:"Account balance",NO_TX:"No transaction",SHOW_MORE_TX:"Show more",SHOW_ALL_TX:"Show all",TX_FROM_DATE:"(current limit to {{fromTime|medianFromNowShort}})",PENDING_TX:"Pending transactions",VALIDATING_TX:"Transactions being validated",ERROR_TX:"Transaction not executed",ERROR_TX_SENT:"Sent transactions",PENDING_TX_RECEIVED:"Transactions awaiting receipt",EVENTS:"Events",OUT_DISTANCED:"Your current certifications come from a group too isolated from the <a ng-click=\"showHelpModal('wot')\"> Web of Trust</a> (WoT): the <a ng-click=\"showHelpModal('distance_rule')\">maximum distance rule</a> is violated.<br/>You must obtain certifications from another area of the Web of Trust, or wait for it to tighten.",WAITING_MEMBERSHIP:"Membership application sent. Waiting validation.",WAITING_CERTIFICATIONS:"You need {{needCertificationCount}} certification(s) to become a member and produce the <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a>. Your account is however already operational, to receive and send payments.",WAITING_CERTIFICATIONS_HELP:'To get your certifications, only request members <b>who know you enough</b>, as required by <a ng-click="showLicenseModal()">the currency license</a> that you have accepted.<br/>If you do not know enough members, let them know on <a ng-click="openLink($event, $root.settings.userForumUrl)">the user forum</a>.',WILL_MISSING_CERTIFICATIONS:"You will <b>lack certifications</b> soon (at least {{willNeedCertificationCount}} more are needed)",WILL_NEED_RENEW_MEMBERSHIP:"Your membership <b>will expire {{membershipExpiresIn|formatDurationTo}}</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a> before then.",NEED_RENEW_MEMBERSHIP:"You are no longer a member because your membership <b>has expired</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"You are no longer a member because your membership <b>has been canceled</b> for lack of certifications. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NO_WAITING_MEMBERSHIP:"No membership application pending. If you'd like to <b>become a member</ b>, please <a ng-click=\"doQuickFix('membership')\">send the membership application</a>.",CERTIFICATION_COUNT:"Received certifications",CERTIFICATION_COUNT_SHORT:"Certifications",SIG_STOCK:"Stock of certifications to give",BTN_RECEIVE_MONEY:"Receive",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Switch to another identity...",BTN_FIX_MEMBERSHIP:"Resubmit membership request...",BTN_MEMBERSHIP_RENEW:"Renew membership",BTN_MEMBERSHIP_RENEW_DOTS:"Renew membership...",BTN_MEMBERSHIP_OUT_DOTS:"Revoke membership...",BTN_SECURITY_DOTS:"Sign-in and security...",BTN_SHOW_DETAILS:"Display technical data",LOCKED_OUTPUTS_POPOVER:{TITLE:"Locked amount",DESCRIPTION:"Here are the conditions for unlocking this amount:",DESCRIPTION_MANY:"This transaction consists of several parts, of which the unlock conditions are:",LOCKED_AMOUNT:"Conditions for the amount:"},NEW:{TITLE:"Registration",INTRO_WARNING_TIME:"Creating an account on {{name|capitalize}} is very simple. Please take sufficient time to do this correctly (not to forget the usernames, passwords, etc.).",INTRO_WARNING_SECURITY:"Check that the hardware you are currently using (computer, tablet, phone) <b>is secure and trustworthy </b>.",INTRO_WARNING_SECURITY_HELP:"Up-to-date anti-virus, firewall enabled, session protected by password or pin code...",INTRO_HELP:"Click <b> {{'COMMON.BTN_START'|translate}}</b> to begin creating an account. You will be guided step by step.",REGISTRATION_NODE:"Your registration will be registered via the Duniter peer <b>{{server}}</b> node, which will then be distributed to the rest of the currency network.",REGISTRATION_NODE_HELP:"If you do not trust this peer, please change <a ng-click=\"doQuickFix('settings')\">in the settings</a> of Cesium.",SELECT_ACCOUNT_TYPE:"Choose the type of account to create:",MEMBER_ACCOUNT:"Member account",MEMBER_ACCOUNT_TITLE:"Create a member account",MEMBER_ACCOUNT_HELP:"If you are not yet registered as an individual (one account possible per individual).",WALLET_ACCOUNT:"Simple wallet",WALLET_ACCOUNT_TITLE:"Create a wallet",WALLET_ACCOUNT_HELP:"If you represent a company, association, etc. or simply need an additional wallet. No universal dividend will be created by this account.",SALT_WARNING:"Choose a secret identifier.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this identifier</b>.<br/>If lost, there are no means to retrieve it!",PASSWORD_WARNING:"Choose a password.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this password</b>.<br/>If lost, there are no means to retrieve it!",PSEUDO_WARNING:"Choose a pseudonym.<br/>It may be used by other people to find you more easily.<br/><br/>.Use of <b>commas, spaces and accents</b> is not allowed.<br/><div class='hidden-xs'><br/>Example: <span class='gray'>JohnDalton, JackieChan, etc.</span>",PSEUDO:"Pseudonym",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Confirm",SALT_CONFIRM_HELP:"Confirm the secret identifier",PASSWORD_CONFIRM:"Confirm",PASSWORD_CONFIRM_HELP:"Confirm the password",SLIDE_6_TITLE:"Confirmation:",COMPUTING_PUBKEY:"Computing...",LAST_SLIDE_CONGRATULATION:"You completed all required fields.<br/><b>You can send the account creation request</b>.<br/><br/>For information, the public key below identifies your future account.<br/>It can be communicated to third parties to receive their payment.<br/>Once your account has been approved, you can find this key under <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Warning:</b> your secret identifier, password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to send this account creation request?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Warning:</b> your password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to continue?',CHECKING_PSEUDO:"Checking...",PSEUDO_AVAILABLE:"This pseudonym is available",PSEUDO_NOT_AVAILABLE:"This pseudonym is not available",INFO_LICENSE:"To be able to adhere to the currency, we ask you to kindly read and accept this license.",BTN_ACCEPT:"I accept",BTN_ACCEPT_LICENSE:"I accept the license"},POPUP_REGISTER:{TITLE:"Enter a pseudonym",HELP:"A pseudonym is needed to let other members find you."},SELECT_IDENTITY_MODAL:{TITLE:"Identity selection",HELP:'Several <b>different identities</b> have been sent, for the public key <span class="gray"> <i class="ion-key"></i> {{pubkey | formatPubkey}}</span>.<br/>Please select the identity to use:'},SELECT_WALLET_MODAL:{TITLE:"Wallet selection"},WALLET_LIST:{TITLE:"My wallets",BTN_NEW:"Add a wallet",BTN_DOWNLOAD:"Download the list",BTN_IMPORT_FILE_DOTS:"Import from a file...",NO_WALLET:"No secondary wallet",BTN_DELETE:"Remove a secondary wallet...",BTN_RENAME:"Rename the wallet",EXPORT_FILENAME:"my_wallets-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Total: ",EDIT_POPOVER:{TITLE:"Rename the wallet",HELP:"Fill in the new name",NAME_HELP:"Wallet name"},IMPORT_MODAL:{TITLE:"Import secondary wallets",HELP:"To <b>import secodnary wallets</b>, please drag the file in the box below, or click in the box to search for a file.",WALLET_COUNT:"<b>{{count}}</b> new wallet{{count > 1 ? 's' : ''}}",NO_NEW_WALLET:"No new wallet"}},SECURITY:{ADD_QUESTION:"Add custom question",BTN_CLEAN:"Clean",BTN_RESET:"Reset",DOWNLOAD_REVOKE:"Save a revocation file",DOWNLOAD_REVOKE_HELP:"Having a revocation file is important, for example in case of loss of identifiers. It allows you to <b>get this account out of the Web Of Trust</b>, thus becoming a simple wallet.",GENERATE_KEYFILE:"Generate my keychain file ...",GENERATE_KEYFILE_HELP:"Generate a file allowing you to authenticate without entering your identifiers.<br/><b>Warning:</b> this file will contain your secret key; It is therefore very important to put it in a safe place!",KEYFILE_FILENAME:"keychain-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Register as member...",MEMBERSHIP_IN_HELP:"Allows you to <b>transform </b> a simple wallet account <b>into a member account</b>, by sending a membership request. Useful only if you do not already have another member account.",SEND_IDENTITY:"Publish identity...",SEND_IDENTITY_HELP:"Allows you to associate a pseudonym to this account, but <b>without applying for membership</b> to become a member. This is not very useful because the validity of this pseudonym association is limited in time.",HELP_LEVEL:"Choose <strong> at least {{nb}} questions </strong> :",LEVEL:"Security level",LOW_LEVEL:'Low <span class="hidden-xs">(2 questions minimum)</span>',MEDIUM_LEVEL:'Medium <span class="hidden-xs">(4 questions minimum)</span>',QUESTION_1:"What was your best friend's name when you were a teen ?",QUESTION_2:"What was the name of your first pet ?",QUESTION_3:"What is the first meal you have learned to cook ?",QUESTION_4:"What is the first movie you saw in the cinema?",QUESTION_5:"Where did you go the first time you flew ?",QUESTION_6:"What was your favorite elementary school teacher's name  ?",QUESTION_7:"What would you consider the ideal job ?",QUESTION_8:"Which children's book do you prefer?",QUESTION_9:"What was the model of your first vehicle?",QUESTION_10:"What was your nickname when you were a child ?",QUESTION_11:"What was your favorite movie character or actor when you were a student ?",QUESTION_12:"What was your favorite singer or band when you were a student ?",QUESTION_13:"In which city did your parents meet ?",QUESTION_14:"What was the name of your first boss ?",QUESTION_15:"What is the name of the street where you grew up ?",QUESTION_16:"What is the name of the first beach where you go swim ?",QUESTION_17:"QWhat is the first album you bought ?",QUESTION_18:"What is the name of your favorite sport team ?",QUESTION_19:"What was your grand-father's job ?",RECOVER_ID:"Recover my password...",RECOVER_ID_HELP:"If you have a <b>backup file of your identifiers</b>, you can find them by answering your personal questions correctly.",REVOCATION_WITH_FILE:"Rekoke my member account...",REVOCATION_WITH_FILE_DESCRIPTION:"If you have <b>permanently lost your member account credentials (or if account security is compromised), you can use <b>the revocation file</b> of the account <b>to quit the Web Of Trust</b>.",REVOCATION_WITH_FILE_HELP:"To <b>permanently revoke</ b> a member account, please drag the revocation file in the box below, or click in the box to search for a file.",REVOCATION_WALLET:"Revoke this account immediately",REVOCATION_WALLET_HELP:"Requesting revocation of your identity causes <b>will revoke your membership</ b> (definitely for the associated pseudonym and public key). The account will no longer be able to produce a Universal Dividend.<br/>However, you can still use it as a simple wallet.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Save my credentials...",SAVE_ID_HELP:"Creating a backup file, to <b>retrieve your password</b> (and the secret identifier) <b> in case of forgetting</b>. The file is <b>secured</ b> (encrypted) using personal questions.",STRONG_LEVEL:'Strong <span class="hidden-xs ">(6 questions minimum)</span>',TITLE:"Account and security",KEYFILE:{PUBSEC_FORMAT:"PubSec format.",PUBSEC_FORMAT_HELP:"This file format is compatible in particular with Cesium and Gannonce. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",WIF_FORMAT:"Wallet Import Format (WIF)",WIF_FORMAT_HELP:"This format is used in particular by paper wallets. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",EWIF_FORMAT:"Encrypted Wallet Import Format (WIF)",EWIF_FORMAT_HELP:"This format is used in particular by paper wallets. However, <b>the keychain is encrypted</b> from a passphrase of your choice.",PASSWORD_POPUP:{TITLE:"Keychain file encrypted",HELP:"Please enter the passphrase:",PASSWORD_HELP:"Passphrase"},ERROR:{BAD_PASSWORD:"Bad passphrase",BAD_CHECKSUM:"Bad checksum"}}},FILE_NAME:"{{currency}} - Account statement {{pubkey|formatPubkey}} to {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Amount",COMMENT:"Comment"}},TRANSFER:{TITLE:"Transfer",SUB_TITLE:"Transfer money",SUB_TITLE_ALL:"Empty the account",FROM:"From",TO:"To",AMOUNT:"Amount",AMOUNT_HELP:"Amount",COMMENT:"Comment",COMMENT_HELP:"Comment (optional)",BTN_SEND:"Send",BTN_ADD_COMMENT:"Add a comment",REST:"Rest of account",REST_TO:"to",WARN_COMMENT_IS_PUBLIC:"Please note that <b>comments are public</b> (not encrypted).",MODAL:{TITLE:"Transfer"}},ERROR:{UNKNOWN_URI_FORMAT:"Unknown URI format",PUBKEY_INVALID_CHECKSUM:"Invalid public key (bad checksum).",POPUP_TITLE:"Error",UNKNOWN_ERROR:"Unknown error",CRYPTO_UNKNOWN_ERROR:"Your browser is not compatible with cryptographic features.",DOWNLOAD_KEYFILE_FAILED:"Failed to generate the keychain file.",EQUALS_TO_PSEUDO:"Must be different from pseudonym",EQUALS_TO_SALT:"Must be different from secret identifier",FIELD_REQUIRED:"This field is required.",FIELD_TOO_SHORT:"This field value is too short.",FIELD_TOO_SHORT_WITH_LENGTH:"Value is too short (min {{minLength]] characters).",FIELD_TOO_LONG:"Value is exceeding max length.",FIELD_TOO_LONG_WITH_LENGTH:"Value is too long (max {{maxLength}} characters).",FIELD_MIN:"Minimum value: {{min}}",FIELD_MAX:"Maximal value: {{max}}",FIELD_ACCENT:"Commas and accent characters not allowed",FIELD_NOT_NUMBER:"Value is not a number",FIELD_NOT_INT:"Value is not an integer",FIELD_NOT_EMAIL:"Email adress not valid",PASSWORD_NOT_CONFIRMED:"Must match previous password.",SALT_NOT_CONFIRMED:"Must match previous identifier.",SEND_IDENTITY_FAILED:"Error while trying to register.",SEND_CERTIFICATION_FAILED:"Could not certify identity.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"You could not send certification, because your account is <b>not a member account</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"You could not send certification now, because your are <b>not a member</b> yet.<br/><br/>You still need certification to become a member.",NOT_MEMBER_FOR_CERTIFICATION:"Your account is not a member account yet.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"This account could not be certified. No registration found, or need to renew.",LOGIN_FAILED:"Error while sign in.",LOAD_IDENTITY_FAILED:"Could not load identity.",LOAD_REQUIREMENTS_FAILED:"Could not load identity requirements.",SEND_MEMBERSHIP_IN_FAILED:"Error while sending registration as member.",SEND_MEMBERSHIP_OUT_FAILED:"Error while sending membership revocation.",REFRESH_WALLET_DATA:"Could not refresh wallet.",GET_CURRENCY_PARAMETER:"Could not get currency parameters.",GET_CURRENCY_FAILED:"Could not load currency. Please retry later.",SEND_TX_FAILED:"Could not send transaction.",ALL_SOURCES_USED:"Please wait the next block computation (All transaction sources has been used).",NOT_ENOUGH_SOURCES:"Not enough changes to send this amount in one time.<br/>Maximum amount: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error while creating your member account.",RESTORE_WALLET_DATA_ERROR:"Error while reloading settings from local storage",LOAD_WALLET_DATA_ERROR:"Error while loading wallet data.",COPY_CLIPBOARD_FAILED:"Could not copy to clipboard",TAKE_PICTURE_FAILED:"Could not get picture.",SCAN_FAILED:"Could not scan QR code.",SCAN_UNKNOWN_FORMAT:"Code not recognized.",WOT_LOOKUP_FAILED:"Search failed.",LOAD_PEER_DATA_FAILED:"Duniter peer not accessible. Please retry later.",NEED_LOGIN_FIRST:"Please sign in first.",AMOUNT_REQUIRED:"Amount is required.",AMOUNT_NEGATIVE:"Negative amount not allowed.",NOT_ENOUGH_CREDIT:"Not enough credit.",INVALID_NODE_SUMMARY:"Unreachable peer or invalid address",INVALID_USER_ID:"Field 'pseudonym' must not contains spaces or special characters.",INVALID_COMMENT:"Field 'reference' has a bad format.",INVALID_PUBKEY:"Public key has a bad format.",INVALID_PUBKEY_CHECKSUM:"Invalid checksum.",IDENTITY_REVOKED:"This identity <b>has been revoked</b>. It can no longer become a member.",IDENTITY_REVOKED_WITH_TIME:"This identity <b>has been revoked {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). It can no longer become a member.",IDENTITY_PENDING_REVOCATION:"The <b>revocation of this identity</b> has been requested and is awaiting processing. Certification is therefore disabled.",IDENTITY_INVALID_BLOCK_HASH:"This membership application is no longer valid (because it references a block that network peers are cancelled): the person must renew its application for membership <b>before</b> being certified.",IDENTITY_EXPIRED:"This identity has expired: this person must re-apply <b>before</b> being certified.",IDENTITY_SANDBOX_FULL:"Could not register, because peer's sandbox is full.<br/><br/>Please retry later or choose another Duniter peer (in <b>Settings</b>).",IDENTITY_NOT_FOUND:"Identity not found",IDENTITY_TX_FAILED:"Error while getting identity's transactions",WOT_PENDING_INVALID_BLOCK_HASH:"Membership not valid.",WALLET_INVALID_BLOCK_HASH:"Your membership application is no longer valid (because it references a block that network peers are cancelled).<br/>You must <a ng-click=\"doQuickFix('renew')\">renew your application for membership</a> to fix this issue.",WALLET_IDENTITY_EXPIRED:"The publication of your identity <b>has expired</b>.<br/>You must <a ng-click=\"doQuickFix('fixIdentity')\">re-issue your identity</a> to resolve this issue.",WALLET_REVOKED:"Your identity has been <b>revoked</b>: neither your pseudonym nor your public key will be used in the future for a member account.",WALLET_HAS_NO_SELF:"Your identity must first have been published, and not expired.",AUTH_REQUIRED:"Authentication required.",AUTH_INVALID_PUBKEY:"The public key does not match the connected account.",AUTH_INVALID_SCRYPT:"Invalid username or password.",AUTH_INVALID_FILE:"Invalid keychain file.",AUTH_FILE_ERROR:"Failed to open keychain file",IDENTITY_ALREADY_CERTIFY:"You have <b>already certified</b> that identity.<br/><br/>Your certificate is still valid (expires {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"You have <b>already certified</b> that identity.<br/><br/>Your certification is still pending (Deadline for treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Unable to certify",LOAD_NEWCOMERS_FAILED:"Unable to load new members.",LOAD_PENDING_FAILED:"Unable to load pending registrations.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member</b> in order to perform this action.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member (or old member)</b> in order to perform this action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"You must have <b>published your identity</b> in order to perform this action.",GET_BLOCK_FAILED:"Error while getting block",INVALID_BLOCK_HASH:"Block not found (incorrect hash)",DOWNLOAD_REVOCATION_FAILED:"Error while downloading revocation file.",REVOCATION_FAILED:"Error while trying to revoke the identity.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Wrong secret identifier or password ",RECOVER_ID_FAILED:"Could not recover password",LOAD_FILE_FAILED:"Unable to load file",NOT_VALID_REVOCATION_FILE:"Invalid revocation file (wrong file format)",NOT_VALID_SAVE_ID_FILE:"Invalid credentials backup file (wrong file format)",NOT_VALID_KEY_FILE:"Invalid keychain file (unrecognized format)",EXISTING_ACCOUNT:"Your identifiers correspond to an already existing account, whose <a ng-click=\"showHelpModal('pubkey')\">public key</a> is:",EXISTING_ACCOUNT_REQUEST:"Please modify your credentials so that they correspond to an unused account.",GET_LICENSE_FILE_FAILED:"Unable to get license file",CHECK_NETWORK_CONNECTION:"No peer appears to be accessible.<br/><br/>Please <b>check your Internet connection</b>.",ISSUE_524_TX_FAILED:"Failed to transfer.<br/><br/>A message has been sent to developers to help solve the problem.<b>Thank you for your help</b>.",ADD_SECONDARY_WALLET_FAILED:"Unable to add secondary wallet.",UPDATE_WALLET_LIST_FAILED:"Unable to refresh the list of wallets.",LOAD_WALLET_LIST_FAILED:"Unable to load the list of wallets.",SAVE_WALLET_LIST_FAILED:"Unable to save the list of wallets.",COULD_NOT_ADD_MAIN_WALLET:"This wallet <b>is the main account</b> with which you are connected. Unable to add it as a secondary wallet.",COULD_NOT_ADD_EXISTING_WALLET:"Wallet already existing in the list.",UNKNOWN_WALLET_ID:"Unknown secondary wallet.",RESTORE_WALLET_LIST_FAILED:"Unable to restore the list of wallets.",INVALID_FILE_FORMAT:"Invalid file format.",SAME_TX_RECIPIENT:"The recipient must be different from the issuer."},INFO:{POPUP_TITLE:"Information",CERTIFICATION_DONE:"Identity successfully signed",NOT_ENOUGH_CREDIT:"Not enough credit",TRANSFER_SENT:"Transfer request successfully sent",COPY_TO_CLIPBOARD_DONE:"Copy succeeded",MEMBERSHIP_OUT_SENT:"Membership revocation sent",NOT_NEED_MEMBERSHIP:"Already a member.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"This identity will soon lack certification (at least {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"This identity did not send a membership request. She will have to if she wishes to become a member.",HAS_ALTERNATIVE_IDENTITIES:"There are <b>multiple identities</b> attached to this public key. <b>Before any certification</b>, please <a ng-click=\"doQuickFix('showSelectIdentities')\">check other identities</a> to choose the correct one, or contact the wallet owner.",REVOCATION_SENT:"Revocation sent successfully",REVOCATION_SENT_WAITING_PROCESS:"Revocation <b>has been sent successfully</b>. It is awaiting processing.",FEATURES_NOT_IMPLEMENTED:"This features is not implemented yet.<br/><br/>Why not to contribute to get it faster? ;)",EMPTY_TX_HISTORY:"No operations to export"},CONFIRM:{POPUP_TITLE:"<b>Confirmation</b>",POPUP_WARNING_TITLE:"<b>Warning</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Security warning</b>',CERTIFY_RULES_TITLE_UID:"Certify {{uid}}",CERTIFY_RULES:'<b class="assertive">Don\'t certify an account</b> if you believe that: <ul><li>1.) the issuers identity might be faked.<li>2.) the issuer already has another certified account.<li>3.) the issuer purposely or carelessly violates rule 1 or 2 (he certifies faked or double accounts).</ul></small><br/>Are you sure you want to certify this identity?',FULLSCREEN:"View the application in full screen?",EXIT_APP:"Close the application ?",TRANSFER:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",TRANSFER_ALL:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li><br/><li> - Rest : <b>{{restAmount}} {{unit}}</b> to <b>{{restTo}}</b></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",MEMBERSHIP_OUT:"This operation is <b>irreversible</b>.<br/></br/><b>Are you sure you want to terminate your membership?</b>",MEMBERSHIP_OUT_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>terminate your membership</b>?",LOGIN_UNUSED_WALLET_TITLE:"Typing error?",LOGIN_UNUSED_WALLET:"The account seems to be <b>inactive</b>.<br/><br/>It's probably a <b>typing error</b> when sign in. Please try again, checking that <b>public key is yours<b/>.",FIX_IDENTITY:"The pseudonym <b>{{uid}}</b> will be published again, replacing the old publication that has expired.<br/></br/><b>Are you sure</b> you want to continue?",FIX_MEMBERSHIP:"Your application for membership will be sent.<br/></br/><b>Are you sure?</b>",MEMBERSHIP:"Your membership request will be sent. <br/></br/><b>Are you sure?</b>",RENEW_MEMBERSHIP:"Your membership will be renewed.<br/></br/><b>Are you sure?</b>",REVOKE_IDENTITY:"You will <b>definitely revoke this identity</b>.<br/><br/>The public key and the associated pseudonym <b>will never be used again</b> (for a member account).<br/></br/><b>Are you sure</b> you want to revoke this identity?",REVOKE_IDENTITY_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>revoke this identity</b>?",NOT_NEED_RENEW_MEMBERSHIP:"Your membership does not need to be renewed (it will only expire in {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Are you sure you</b> want to renew your membership?",SAVE_BEFORE_LEAVE:"Do you want to <b>save your changes</b> before leaving the page?",SAVE_BEFORE_LEAVE_TITLE:"Changes not saved",LOGOUT:"Are you sure you want to logout?",USE_FALLBACK_NODE:"Peer <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the <b>{{new}}</b> node?",ISSUE_524_SEND_LOG:"The transaction was rejected because of a known problem (issue #524) but not reproduced.<br/><br/>To help developers correct this error, do you accept <b>the transmission of your logs</b> per message?<br/><small>(No confidential data is sent)</small>"},DOWNLOAD:{POPUP_TITLE:"<b>Revocation file</b>",POPUP_REVOKE_MESSAGE:"To safeguard your account, please download the <b>account revocation document</b>. It will allow you to cancel your account (in case of account theft, ID, an incorrectly created account, etc.).<br/><br/><b>Please store it in a safe place.</b>"},HELP:{TITLE:"Online help",JOIN:{SECTION:"Join",SALT:'The secret identifier is very important. It is used to hash you password, which in turn is used to calculate your <span class="text-italic">public account key</span> (its number) and the private key to access it.<br/><b>Please remeber this identifier well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good secret identifier must be sufficiently long (8 characters at the very least) and as original as possible.',PASSWORD:"The password is very important. Together with the secret identifier, it is use to calculate your account number (pblic key) and the private key to access it.<br/><b>Please remember it well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good password is made (ideally) of at least 8 characters, with at least one capital and one number.",PSEUDO:'A pseudonym is used only when joining as <span class="text-italic">member</span>. It is always associated with a wallet (by its <span class="text-italic">public key</span>).<br/>It is published on the network so that other users may identify it, certify or send money to the account.<br/>A pseudonym must be unique among all members (current and past).'},LOGIN:{SECTION:"Log in",PUBKEY:"Account public key",PUBKEY_DEF:'The public key of the keychain is generated from the entered identifiers (any), but does not correspond to an account already used.<br/><b>Make sure your public key is the same as your account</b>. Otherwise, you will be logged into an account that is probably never used, as the risk of collision with an existing account is very small.<br/><a href="https://en.wikipedia.org/wiki/Elliptic_curve_cryptography" target="_ system">Learn more about cryptography</a> by public key.',METHOD:"Connection methods",METHOD_DEF:"Several options are available to connect to a portfolios: <br/> - The connection <b>with salt (simple or advanced)</b> mixes your password with the secret identifier, to limit the attempts of piracy<br/> - The connection <b>using public key</b> prevents you from entering your credentials, which you will be asked only when an operation need it.<br/> - The connection <b>using keychain file</b> will read the public and private keys of the account from a file without the need to enter credentials. Several file formats are possible."},GLOSSARY:{SECTION:"Glossary",PUBKEY_DEF:"A public key always identifies a wallet. It may identify a member. In Cesium it is calculated using the secret identifier and the password.",MEMBER:"Member",MEMBER_DEF:'A member is a real and living human, wishing to participate freely to the monitary community. The member will receive universal dividend, according to the period and amount as defined in the <span class="text-italic">currency parameters</span>.',CURRENCY_RULES:"Currency rules",CURRENCY_RULES_DEF:'The currency rules are defined only once, and for all. They set the parameters under which the currency will perform: universal dividend calculation, the amount of certifications needed to become a member, the maximum amount of certifications a member can send, etc.<br/><br/>The parameters cannot be modified because of the use of a <span class="text-italic">Blockchain</span> which carries and executes these rules, and constantly verifies their correct application. <a href="#/app/currency">See current parameters</a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'The Blockchain is a decentralised system which, in case of Duniter, serves to carry and execute the <span class="text-italic">currency rules</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Read more about Duniter</a> and the working of its blockchain.',UNIVERSAL_DIVIDEND_DEF:'The Universal Dividend (UD) is the quantity of money co-created by each member, according to the period and the calculation defined in the <span class="text-italic">currency rules</span>.<br/>Every term, the members receive an equal amount of new money on their account.<br/><br/>The UD undergoes a steady growth, to remain fair under its members (current and future), calculated by an average life expectancy, as demonstrated in the Relative Theory of Money (RTM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Read more about RTM</a> and open money.',WOT:"Web of Trust (WoT)",WOT_DEF:"The Web of Trust is made up of all the members of the currency, and the links of certification which connect them.",DISTANCE_RULE:"Distance rule",DISTANCE_RULE_DEF:"The rule of distance defines <b>a maximum distance to meet</b> between an applicant and a minimum number of referring member. This distance is calculated using the certification links."},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> allows discovery of <b>currency parameters</b> and its state.",CURRENCY_WOT:"The <b>member count</b> shows the <b>community's weight and evolution</b>.",CURRENCY_MASS:"Shown here is the <b>total amount</b> currently in circulation and its <b>average distribution</b> per member.<br/><br/>This allows to estimate the <b>worth of any amount</b>, in respect to what <b>others own</b> on their account (on average).",CURRENCY_UNIT_RELATIVE:"The unit used here (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amounts in {{currency|capitalize}} have been devided by the <b>Universal Dividend</b> (UD).<br/><br/><small>This relative unit is <b>relevant</b> because it is stable in contrast to the permanently growing monitary mass.</small>",CURRENCY_CHANGE_UNIT:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in <b>{{currency|capitalize}}</b>, undevided by the Universal Dividend (instead of in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, which is relative to the Universal Dividend (the amount co-produced by each member).",CURRENCY_RULES:"The <b>rules</b> of the currency determine its <b>exact and predictible</b> performance.<br/><br/>As a true DNA of the currency these rules make the monetary code <b>transparent and understandable</b>.",MENU_BTN_NETWORK:"Menu <b>{{'MENU.NETWORK'|translate}}</b> allows discovery of <b>network's state<b>.",NETWORK_BLOCKCHAIN:"All monetary transactions are recoded in a <b>public and tamper proof</b> ledger, generally referred to as the <b>blockchain</b>.",NETWORK_PEERS:"The <b>peers</b> shown here correspond to <b>computers that update and check</b> the blockchain.<br/><br/>The more active peers there are, the more <b>decentralised</b> and therefore trustworhty the currency becomes.",NETWORK_PEERS_BLOCK_NUMBER:"This <b>number</b> (in green) indicates the peer's <b>latest validated block</b> (last page written in the ledger).<br/><br/>Green indicates that the block was equally validated by the <b>majority of other peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Each member</b>, equiped with a computer with Internet, <b>can participate, adding a peer</b> simply by <b>installing the Duniter software</b> (free/libre). <a target="_new" href="{{installDocUrl}}" target="_system">Read the installation manual &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> allows access to your account balance and transaction history.",MENU_BTN_ACCOUNT_MEMBER:"Here you can consult your account status, transaction history and your certifications.",WALLET_CERTIFICATIONS:"Click here to reveiw the details of your certifications (given and received).",WALLET_RECEIVED_CERTIFICATIONS:"Click here to review the details of your <b>received certifications</b>.",WALLET_GIVEN_CERTIFICATIONS:"Click here to review the details of your <b>given certifications</b>.",WALLET_BALANCE:"Your account <b>balance</b> is shown here.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>The used unit (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amount in {{currency|capitalize}} has been divided by the <b>Universal Dividend</b> (UD) co-created by each member.<br/>At this moment, 1 UD equals {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"You can <b>change the unit</b> in which amounts are shown in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>For example, to display amounts <b>directly in {{currency|capitalize}}</b> instead of relative amounts.",WALLET_PUBKEY:"This is your account public key. You can communicate it to a third party so that it more easily identifies your account.",WALLET_SEND:"Issue a payment in just a few clicks.",WALLET_SEND_NO_MONEY:"Issue a payment in just a few clicks.<br/>(Your balance does not allow this yet)",WALLET_OPTIONS:"Please note that this button allows access to <b>other, less used actions</b>.<br/><br/>Don't forget to take a quick look, when you have a moment!",WALLET_RECEIVED_CERTS:"This shows the list of persons that certified you.",WALLET_CERTIFY:"The button <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> allows selecting an identity and certifying it.<br/><br/>Only users that are <b>already member</b> may certify others.",WALLET_CERT_STOCK:"Your supply of certifications (to send) is limited to <b>{{sigStock}} certifications</b>.<br/><br/>This supply will replete itself over time, as and when earlier certifications expire.",MENU_BTN_TX_MEMBER:"<b>{{'MENU.TRANSACTIONS'|translate}}</b> allow access to transactions history, and send new payments.",MENU_BTN_TX:"View the history of <b>your transactions</b> here and send new payments.",MENU_BTN_WOT:"The menu <b>{{'MENU.WOT'|translate}}</b> allows searching <b>users</b> of the currency (member or not).",WOT_SEARCH_TEXT_XS:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>The search will start automatically.",WOT_SEARCH_TEXT:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>Then hit <b>Enter</b> to start the search.",WOT_SEARCH_RESULT:"Simply click a user row to view the details sheet.",WOT_VIEW_CERTIFICATIONS:"The row <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> shows how many members members validated this identity.<br/><br/>These certifications testify that the account belongs to <b>a living human</b> and this person has <b>no other member account</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"There are at least <b>{{sigQty}} certifications</b> needed to become a member and receive the <b>Universal Dividend</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Click here to open <b>a list of all certifications</b> given to and by this identity.",WOT_VIEW_CERTIFY:"The button <b>{{'WOT.BTN_CERTIFY'|translate}}</b> allows to add your certification to this identity.",CERTIFY_RULES:"<b>Attention:</b> Only certify <b>real and living persons</b> that do not own any other certified account.<br/><br/>The trust carried by the currency depends on each member's vigilance!",MENU_BTN_SETTINGS:"The <b>{{'MENU.SETTINGS'|translate}}</b> allow you to configure the Cesium application.<br/><br/>For example, you can <b>change the unit</b> in which the currency will be shown.",HEADER_BAR_BTN_PROFILE:"Click here to access your <b>user profile</b>",SETTINGS_CHANGE_UNIT:"You can <b>change the display unit</b> of amounts by clicking here.<br/><br/>- Deactivate the option to show amounts in {{currency|capitalize}}.<br/>- Activate the option for relative amounts in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divided</b> by the current Universal Dividend).",END_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>Welcome to the <b>free economy</b>!",END_NOT_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>If you wish to join the currency {{currency|capitalize}}, simply click <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> below."}},API:{COMMON:{LINK_DOC:"API documentation",LINK_DOC_HELP:"API documentation for developers",LINK_STANDARD_APP:"Standard version",LINK_STANDARD_APP_HELP:"Open standard version of {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or contact the web site administrator."},HOME:{TITLE:"{{'COMMON.APP_NAME'|translate}} API Documentation",MESSAGE:'Welcome to the {{\'COMMON.APP_NAME\'|translate}} <b>API documentation </b>.<br/>Connect your web site to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',MESSAGE_SHORT:'Connect your websites to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',DOC_HEADER:"Available services:"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Online payment",TITLE_SHORT:"Online payment",SUMMARY:"Order summary:",AMOUNT:"Amount:",AMOUNTS_HELP:"Please select the amount:",NAME:"Name:",PUBKEY:"Public key of the recipient:",COMMENT:"Order reference:",NODE:"Peer address:",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Demonstration mode</b>: No payment will actually be sent during this simulation.<br/>Please use credentials: <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Invalid credentials.<br/>In demonstration mode, credentials should be: {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Payment sent.<br/>Redirect to <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Payment sent.<br/>Redirect to the seller's website...",CANCEL_REDIRECTING_WITH_NAME:"Payment cancelled.<br/>Redirect to <b>{{name}}</b>...",CANCEL_REDIRECTING:"Payment cancelled.<br/>Redirect to the seller's website..."},ERROR:{TRANSFER_FAILED:"Payment failed"}},DOC:{DESCRIPTION_DIVIDER:"Description",URL_DIVIDER:"Calling address",PARAMETERS_DIVIDER:"Parameters",AVAILABLE_PARAMETERS:"Here is the list of al available parameters:",DEMO_DIVIDER:"Try it !",DEMO_HELP:"To test this service, click on this button. The result content will be display below.",DEMO_RESULT:"Result returned by call:",DEMO_RESULT_PEER:"Peer address used:",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Success!',DEMO_CANCELLED:'<i class="icon ion-close"></i> Canceled by user',INTEGRATE_DIVIDER:"Website integration",INTEGRATE_CODE:"Code:",INTEGRATE_RESULT:"Result preview:",INTEGRATE_PARAMETERS:"Parameters",TRANSFER:{TITLE:"Payments",DESCRIPTION:"From a site (eg online marketplace) you can delegate payment in free currency to Cesium API. To do this, simply open a page at the following address:",PARAM_PUBKEY:"Recipient's public key",PARAM_PUBKEY_HELP:"Recipient's public key (required)",PARAM_AMOUNT:"Amount",PARAM_AMOUNT_HELP:"Transaction amount (required)",PARAM_COMMENT:"Reference (or comment)",PARAM_COMMENT_HELP:"Reference or comment. You will allow for example to identify the payment in the BlockChain.",PARAM_NAME:"Name (of recipient or website)",PARAM_NAME_HELP:'The name of your website. This can be a readable name (eg "My online site"), or a web address (eg "www.MySite.com").',PARAM_REDIRECT_URL:"URL redirection",PARAM_REDIRECT_URL_HELP:'URL redirection after sending payment, after the payment has been sent. Can contain the following strings, which will be replaced by the values of the transaction: "{tx}", "{hash}", "{comment}", "{amount}" and "{pubkey}".',PARAM_CANCEL_URL:"URL if cancelled",PARAM_CANCEL_URL_HELP:'URL in case of cancellation.  Can contain the following strings, which will be replaced: "{comment}", "{amount}" and "{pubkey}".',PARAM_PREFERRED_NODE:"Preferred Duniter peer",PARAM_PREFERRED_NODE_HELP:'Peer address (URL) to use preferably ("g1.domain.com:443" or "https://g1.domain.com")',EXAMPLES_HELP:"Examples of integration:",EXAMPLE_BUTTON:"HTML Button",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pay in {{currency|abbreviate}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Custom style",EXAMPLE_BUTTON_TEXT_HELP:"Button text",EXAMPLE_BUTTON_BG_COLOR:"Background color",EXAMPLE_BUTTON_BG_COLOR_HELP:"eg: #fbc14c, yellow, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Font color",EXAMPLE_BUTTON_FONT_COLOR_HELP:"eg: black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icon",EXAMPLE_BUTTON_TEXT_WIDTH:"Width",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"eg: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"No icon",EXAMPLE_BUTTON_ICON_DUNITER:"Duniter logo",EXAMPLE_BUTTON_ICON_CESIUM:"Cesium logo",EXAMPLE_BUTTON_ICON_G1_COLOR:"Ğ1 logo",EXAMPLE_BUTTON_ICON_G1_BLACK:"Ğ1 logo (outline)"}}}}),e.translations("eo-EO",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"date : {{build}}",PUBKEY:"Publika ŝlosilo",MEMBER:"Membro",BLOCK:"Bloko",BTN_OK:"OK",BTN_YES:"Jes",BTN_NO:"Ne",BTN_SEND:"Sendi",BTN_SEND_MONEY:"Fari elspezon",BTN_SEND_MONEY_SHORT:"Elspezo",BTN_SAVE:"Konservi",BTN_YES_SAVE:"Jes, Konservi",BTN_YES_CONTINUE:"Jes, Daŭrigi",BTN_SHOW:"Vidi",BTN_SHOW_PUBKEY:"Afiŝi la publikan ŝlosilon",BTN_RELATIVE_UNIT:"Afiŝi la sumojn en UD?",BTN_BACK:"Reiro",BTN_NEXT:"Sekva",BTN_IMPORT:"Enporti",BTN_CANCEL:"Nuligi",BTN_CLOSE:"Fermi",BTN_LATER:"Poste",BTN_LOGIN:"Konektiĝi",BTN_LOGOUT:"Malkonektiĝo",BTN_ADD_ACCOUNT:"Nova konto",BTN_SHARE:"Diskonigi",BTN_EDIT:"Modifi",BTN_DELETE:"Forigi",BTN_ADD:"Aldoni",BTN_SEARCH:"Serĉi",BTN_REFRESH:"Aktualigi",BTN_RETRY:"Rekomenci",BTN_START:"Komenci",BTN_CONTINUE:"Daŭrigi",BTN_CREATE:"Krei",BTN_UNDERSTOOD:"Mi komprenis",BTN_OPTIONS:"Kromeblecoj",BTN_HELP_TOUR:"Gvidata vizito",BTN_HELP_TOUR_SCREEN:"Malkovri tiun ĉi paĝon",BTN_DOWNLOAD:"Elŝuti",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Elŝuti la konto-tabelon",BTN_MODIFY:"Modifi",CHOOSE_FILE:"Almetu vian dosieron <br/>aŭ klaku por elekti ĝin",DAYS:"tagoj",NO_ACCOUNT_QUESTION:"Ankoraŭ sen konto? Kreu ĝin senpage!",SEARCH_NO_RESULT:"Neniu rezulto trovita",LOADING:"Bonvolu pacienci...",LOADING_WAIT:"Bonvolu pacienci...<br/><small>(Atendado pri disponebleco de la nodo)</small>",SEARCHING:"Serĉanta...",FROM:"De",TO:"Al",COPY:"Kopii",LANGUAGE:"Lingvo",UNIVERSAL_DIVIDEND:"Universala dividendo",UD:"UD",DATE_PATTERN:"DD/MM/YY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(malplena)",UID:"Pseŭdonimo",ENABLE:"Aktiva",DISABLE:"Malaktiva",RESULTS_LIST:"Rezultoj",RESULTS_COUNT:"{{count}} rezultoj",EXECUTION_TIME:"Plenumita en {{duration|formatDurationMs}}",SHOW_VALUES:"Afiŝi la signojn klare?",POPOVER_ACTIONS_TITLE:"Kromeblecoj",POPOVER_FILTER_TITLE:"Filtriloj",SHOW_MORE:"Afiŝi pli",SHOW_MORE_COUNT:"(nuna limo je {{limit}})",POPOVER_SHARE:{TITLE:"Diskonigi",SHARE_ON_TWITTER:"Diskonigi ĉe Twitter",SHARE_ON_FACEBOOK:"Diskonigi ĉe Facebook",SHARE_ON_DIASPORA:"Diskonigi ĉe Diaspora*",SHARE_ON_GOOGLEPLUS:"Diskonigi ĉe Google+"},FILE:{DATE:"Dato:",TYPE:"Tipo:",SIZE:"Pezo:",VALIDATING:"Validiĝanta..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Elekti la fonton:",BTN_PICTURE_GALLERY:"Bildaro",BTN_PICTURE_CAMERA:"<b>Kamerao</b>"},MENU:{HOME:"Hejmpaĝo",WOT:"Kontaro",CURRENCY:"Mono",ACCOUNT:"Mia konto",WALLETS:"Miaj monujoj",TRANSFER:"Elspezo",SCAN:"Skani",SETTINGS:"Parametroj",NETWORK:"Reto",TRANSACTIONS:"Miaj spezoj"},ABOUT:{TITLE:"Prie",LICENSE:"Programo <b>libera</b> (Licenco GNU AGPLv3).",LATEST_RELEASE:"Ekzistas <b>pli freŝdata versio</b> de {{'COMMON.APP_NAME'|translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Bonvolu ĝisdatigi {{'COMMON.APP_NAME'|translate}} (lasta versio: <b>v{{version}}</b>)",CODE:"Fonto-kodo:",OFFICIAL_WEB_SITE:"Oficiala retejo:",DEVELOPERS:"Programita de:",FORUM:"Forumo:",PLEASE_REPORT_ISSUE:"Ne hezitu sciigi al ni la renkontitajn fuŝaĵojn",REPORT_ISSUE:"Sciigi problemon",BTN_OPEN_DEV_WINDOW:"Malfermi la fenestron pri malfuŝigado"},HOME:{TITLE:"Cesium",WELCOME:"Bonvenon ĉe la programo Cesium!",MESSAGE:"Ricevu kaj sendu liberan monon {{currency|abbreviate}}",BTN_CURRENCY:"Esploru la monon {{name|abbreviate}}",BTN_ABOUT:"prie",BTN_HELP:"Reta helpo",REPORT_ISSUE:"fuŝaĵo",NOT_YOUR_ACCOUNT_QUESTION:'Vi ne posedas la konton <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b> ?',BTN_CHANGE_ACCOUNT:"Malkonektu tiun ĉi konton",CONNECTION_ERROR:'Nodo <b>{{server}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Kontrolu vian retkonekton, aŭ elektu alian nodon <a class="positive" ng-click="doQuickFix(\'settings\')">ĉe la parametroj</a>.'},SETTINGS:{TITLE:"Parametroj",DISPLAY_DIVIDER:"Afiŝado",STORAGE_DIVIDER:"Stokado",NETWORK_SETTINGS:"Reto",PEER:"Adreso de la nodo Duniter",PEER_SHORT:"Adreso de la nodo",PEER_CHANGED_TEMPORARY:"Adreso provizore uzata",USE_LOCAL_STORAGE:"Aktivigi lokan stokadon",USE_LOCAL_STORAGE_HELP:"Ebligas konservi viajn parametrojn",WALLETS_SETTINGS:"Miaj monujoj",USE_WALLETS_ENCRYPTION:"Sekurigi la liston?",USE_WALLETS_ENCRYPTION_HELP:"Ebligas sekurigi la liston de viaj monujoj (per ĉifrado), postulante aŭtentigado por aliri ilin.",ENABLE_HELPTIP:"Aktivigi la rilatigajn help-vezikojn",ENABLE_UI_EFFECTS:"Aktivigi la vid-efikojn",HISTORY_SETTINGS:"Miaj spezoj",DISPLAY_UD_HISTORY:"Afiŝi la produktitajn dividendojn?",TX_HISTORY_AUTO_REFRESH:"Aktualigi aŭtomate",TX_HISTORY_AUTO_REFRESH_HELP:"Aktualigas la saldon kaj la spezojn aŭtomate, por ĉiu nova bloko de la reto.",AUTHENTICATION_SETTINGS:"Aŭtentigado",KEEP_AUTH:"Aŭtomata malaŭtentigado",KEEP_AUTH_SHORT:"Malaŭtentigado",KEEP_AUTH_HELP:"Difinas la momenton, kiam la aŭtentigado estas forviŝita de la memoro.",KEEP_AUTH_OPTION:{NEVER:"Post ĉiu ago",SECONDS:"Post {{value}}s de neatktiveco",MINUTE:"Post {{value}}min de neatktiveco",MINUTES:"Post {{value}}min de neatktiveco",HOUR:"Post {{value}}h de neatktiveco",ALWAYS:"Fine de la sesio"},KEYRING_FILE:"Dosiero pri ŝlosilaro",KEYRING_FILE_HELP:'Ebligas <b>konektiĝi</b> aŭtomate por ĉiu ekuzo<br/>kaj eĉ <b>aŭtentiĝi</b> (nur se "Finiĝo de la aŭtentiĝo" estas agordita kiel "fine de la sesio").',REMEMBER_ME:"Memori min?",REMEMBER_ME_HELP:"Ebligas resti identigita de sesio al alia, loke konservante la publikan ŝlosilon.",PLUGINS_SETTINGS:"Krom-programoj",BTN_RESET:"Restarigi la originajn valorojn",EXPERT_MODE:"Aktivigi la spertan moduson",EXPERT_MODE_HELP:"Ebligas pli detalan afiŝadon.",BLOCK_VALIDITY_WINDOW:"Limtempo pri necerteco de la blokoj",BLOCK_VALIDITY_WINDOW_SHORT:"Limtempo pri necerteco",BLOCK_VALIDITY_WINDOW_HELP:"Limtempo antaŭ ol taksi, ke iu informo estas validigita",BLOCK_VALIDITY_OPTION:{NONE:"Neniu limtempo",N:"{{time | formatDuration}} ({{count}} blokoj)"},POPUP_PEER:{TITLE:"Nodo Duniter",HOST:"Adreso",HOST_HELP:"Adreso: servilo: konektujo",USE_SSL:"Sekurigita?",USE_SSL_HELP:"(SSL-ĉifrado)",BTN_SHOW_LIST:"Listo de la nodoj"}},BLOCKCHAIN:{HASH:"Haketo: {{hash}}",VIEW:{HEADER_TITLE:"Bloko #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Nuna bloko",TITLE:"Bloko #{{number|formatInteger}}",COMPUTED_BY:"Kalkulita de la nodo de",SHOW_RAW:"Vidi la kompletan dosieron",TECHNICAL_DIVIDER:"Teknikaj informoj",VERSION:"Versio de la daten-strukturo",HASH:"Kalkulita haketo",UNIVERSAL_DIVIDEND_HELP:"Mono kunproduktita de ĉiu el la {{membersCount}} membroj",EMPTY:"Neniu dateno en tiu ĉi bloko",POW_MIN:"Minimuma malfacileco",POW_MIN_HELP:"Malfacileco trudita por la haket-kalkulo",DATA_DIVIDER:"Datenoj",IDENTITIES_COUNT:"Novaj identecoj",JOINERS_COUNT:"Novaj membroj",ACTIVES_COUNT:"Revalidigoj",ACTIVES_COUNT_HELP:"Membroj revalidigintaj sian membrecon",LEAVERS_COUNT:"Membroj elirintaj",LEAVERS_COUNT_HELP:"Membroj ne plu dezirantaj atestaĵon",EXCLUDED_COUNT:"Membroj eksigitaj",EXCLUDED_COUNT_HELP:"Malnovaj membroj eksigitaj pro nerevalidiĝo aŭ manko de atestaĵoj",REVOKED_COUNT:"Nuligitaj identecoj",REVOKED_COUNT_HELP:"Tiuj kontoj ne plu povos esti membroj",TX_COUNT:"Spezoj",CERT_COUNT:"Atestaĵoj",TX_TO_HIMSELF:"Operacio pri monŝanĝo",TX_OUTPUT_UNLOCK_CONDITIONS:"Kondiĉoj por malblokado",TX_OUTPUT_OPERATOR:{AND:"kaj",OR:"aŭ"},TX_OUTPUT_FUNCTION:{SIG:"<b>Subskribo</b> de ",XHX:"<b>Pasvorto</b>, el kiu SHA256 =",CSV:"Blokita dum",CLTV:"Blokita ĝis"}},LOOKUP:{TITLE:"Blokoj",NO_BLOCK:"Neniu bloko",LAST_BLOCKS:"Lastaj blokoj:",BTN_COMPACT:"Densigi"}},CURRENCY:{VIEW:{TITLE:"Mono",TAB_CURRENCY:"Mono",TAB_WOT:"Reto de fido",TAB_NETWORK:"Reto",TAB_BLOCKS:"Blokoj",CURRENCY_SHORT_DESCRIPTION:"{{currency|abbreviate}} estas <b>libera mono</b>, kiu ekis {{firstBlockTime|formatFromNow}}. Ĝi nombras nun <b>{{N}} membrojn</b>, kiuj produktas kaj ricevas <a ng-click=\"showHelpModal('ud')\">Universalan Dividendon</a> (UD), ĉiun {{dt|formatPeriod}}n.",NETWORK_RULES_DIVIDER:"Reguloj de la reto",CURRENCY_NAME:"Nomo de la mono",MEMBERS:"Nombro de membroj",MEMBERS_VARIATION:"Variado depost la lasta UD",MONEY_DIVIDER:"Mono",MASS:"Mona maso",SHARE:"Maso por membro",UD:"Universala Dividendo",C_ACTUAL:"Nuna kreskado",MEDIAN_TIME:"Horo de la blokĉeno",POW_MIN:"Minimuma nivelo pri malfacileco de kalkulo",MONEY_RULES_DIVIDER:"Reguloj de la mono",C_RULE:"Teoria kreskado celata",UD_RULE:"Kalkulo de la universala dividendo",DT_REEVAL:"Periodo de revalorigo de la UD",REEVAL_SYMBOL:"reval",DT_REEVAL_VALUE:"Ĉiuj <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Dato de la unua revalorigo",SIG_QTY_RULE:"Nombro de necesaj atestaĵoj por fariĝi membro",SIG_STOCK:"Maksimuma nombro da senditaj atestaĵoj por membro",SIG_PERIOD:"Minimuma daŭro de atendado inter 2 sinsekvaj atestaĵoj senditaj de sama persono",SIG_WINDOW:"Limdaŭro por akcepti atestaĵon",SIG_VALIDITY:"Vivdaŭro de atestaĵo, kiu estis akceptita",MS_WINDOW:"Limdaŭro por akcepti aliĝ-peton kiel membron",MS_VALIDITY:"Vivdaŭro de aliĝo, kiu estis akceptita",STEP_MAX:"Maksimuma distanco, per la atestaĵoj, inter nova eniranto kaj la referencaj membroj",WOT_RULES_DIVIDER:"Reguloj de la reto de fido",SENTRIES:"Nombro de atestaĵoj (senditaj <b>kaj</b> ricevitaj) por fariĝi referenca membro",SENTRIES_FORMULA:"Nombro de atestaĵoj (senditaj <b>kaj</b> ricevitaj) por fariĝi referenca membro (formulo)",XPERCENT:"Minimuma procento da referencaj membroj atingenda por konformiĝi al la regulo pri distanco",AVG_GEN_TIME:"Meza daŭro inter du blokoj",CURRENT:"nuna",MATH_CEILING:"PLAFONO",DISPLAY_ALL_RULES:"Afiŝi ĉiujn regulojn?",BTN_SHOW_LICENSE:"Vidi la licencon",WOT_DIVIDER:"Reto de fido"},LICENSE:{TITLE:"Licenco de la mono",BTN_DOWNLOAD:"Elŝuti la dosieron",NO_LICENSE_FILE:"Dosiero pri licenco ne trovita."}},NETWORK:{VIEW:{MEDIAN_TIME:"Horo de la blokĉeno",LOADING_PEERS:"Nodoj ŝarĝiĝantaj...",NODE_ADDRESS:"Adreso:",SOFTWARE:"Programo",WARN_PRE_RELEASE:"Antaŭ-versio (lasta stabila versio: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Versio <b>{{version}}</b> disponebla",WS2PID:"Identigilo:",PRIVATE_ACCESS:"Privata aliro",POW_PREFIX:"Prefikso pri labor-pruvo:",ENDPOINTS:{BMAS:"Sekurigita interfaco (SSL)",BMATOR:"Reta interfaco TOR",WS2P:"Interfaco WS2P",ES_USER_API:"Nodo de datenoj Cesium+"}},INFO:{ONLY_SSL_PEERS:"La nodoj ne-SSL estas mis-afiŝitaj, ĉar Cesium funkcias laŭ moduso HTTPS."}},PEER:{PEERS:"Nodoj",SIGNED_ON_BLOCK:"Skribita en la bloko",MIRROR:"spegulo",MIRRORS:"Speguloj",MIRROR_PEERS:"Spegul-nodoj",PEER_LIST:"Listo de la nodoj",MEMBERS:"Membroj",MEMBER_PEERS:"Membro-nodoj",ALL_PEERS:"Ĉiuj nodoj",DIFFICULTY:"Malfacileco",API:"API",CURRENT_BLOCK:"Bloko #",POPOVER_FILTER_TITLE:"Filtrilo",OFFLINE:"Nekonektita",OFFLINE_PEERS:"Nekonektitaj nodoj",BTN_SHOW_PEER:"Vidi la nodon",VIEW:{TITLE:"Nodo",OWNER:"Apartenas al",SHOW_RAW_PEERING:"Vidi la samrangan dokumenton",SHOW_RAW_CURRENT_BLOCK:"Vidi la lastan blokon (kompleta strukturo)",LAST_BLOCKS:"Lastaj blokoj konataj",KNOWN_PEERS:"Konataj nodoj:",GENERAL_DIVIDER:"Ĝeneralaj informoj",ERROR:{LOADING_TOR_NODE_ERROR:"Neeblas ricevi la informojn de la nodo. La limdaŭro de atendado estas transpasita.",LOADING_NODE_ERROR:"Neeblas ricevi la informojn de la nodo"}}},WOT:{SEARCH_HELP:"Traserĉado (pseŭdo aŭ publika ŝlosilo)",SEARCH_INIT_PHASE_WARNING:"Dum la periodo de antaŭ-aliĝo, la traserĉado de la atendantaj aliĝoj <b>povas esti longa</b>. Bonvolu pacienci...",REGISTERED_SINCE:"Enskribita la",REGISTERED_SINCE_BLOCK:"Enskribita en la bloko #",NO_CERTIFICATION:"Neniu atestaĵo validigita",NO_GIVEN_CERTIFICATION:"Neniu atestaĵo sendita",NOT_MEMBER_PARENTHESIS:"(ne membro)",IDENTITY_REVOKED_PARENTHESIS:"(identeco nuligita)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(nuliĝanta)",EXPIRE_IN:"Finiĝo",NOT_WRITTEN_EXPIRE_IN:"Limdato<br/>de traktado",EXPIRED:"Finiĝinta",PSEUDO:"Pseŭdonimo",SIGNED_ON_BLOCK:"Sendita en la bloko #{{block}}",WRITTEN_ON_BLOCK:"Enskribita en la bloko #{{block}}",GENERAL_DIVIDER:"Ĝeneralaj informoj",NOT_MEMBER_ACCOUNT:"Simpla konto (ne membro)",NOT_MEMBER_ACCOUNT_HELP:"Temas pri simpla monujo, sen aliĝ-peto atendanta.",TECHNICAL_DIVIDER:"Teknikaj informoj",BTN_CERTIFY:"Atesti",BTN_YES_CERTIFY:"Jes, atesti",BTN_SELECT_AND_CERTIFY:"Nova atestaĵo",ACCOUNT_OPERATIONS:"Spezoj en la konto",VIEW:{POPOVER_SHARE_TITLE:"Identeco {{title}}"},LOOKUP:{TITLE:"Reto de fido",NEWCOMERS:"Novaj membroj",NEWCOMERS_COUNT:"{{count}} membroj",PENDING:"Atendantaj enskribiĝoj",PENDING_COUNT:"{{count}} atendantaj enskribiĝoj",REGISTERED:"Enskribita {{sigDate | formatFromNow}}",MEMBER_FROM:"Membro depost {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Novaj membroj",BTN_PENDING:"Atendantaj enskribiĝoj",SHOW_MORE:"Afiŝi pli",SHOW_MORE_COUNT:"(nuna limo je {{limit}})",NO_PENDING:"Neniu enskribiĝo atendanta.",NO_NEWCOMERS:"Neniu membro."},CONTACTS:{TITLE:"Kontaktoj"},MODAL:{TITLE:"Traserĉado"},CERTIFICATIONS:{TITLE:"{{uid}} - Atestaĵoj",SUMMARY:"Ricevitaj atestaĵoj",LIST:"Detalo pri la ricevitaj atestaĵoj",PENDING_LIST:"Atestaĵoj atendantaj traktadon",RECEIVED:"Ricevitaj atestaĵoj",RECEIVED_BY:"Atestaĵoj ricevitaj de {{uid}}",ERROR:"Atestaĵoj erare ricevitaj",SENTRY_MEMBER:"Referenca membro"},OPERATIONS:{TITLE:"{{uid}} - Spezoj"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Senditaj atestaĵoj",SUMMARY:"Senditaj atestaĵoj",LIST:"Detalo pri la senditaj atestaĵoj",PENDING_LIST:"Atestaĵoj atendantaj traktadon",SENT:"Senditaj atestaĵoj",SENT_BY:"Atestaĵoj senditaj de {{uid}}",ERROR:"Atestaĵoj erare senditaj"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Konektiĝo',SCRYPT_FORM_HELP:"Bonvolu tajpi viajn identigilojn.<br>Pensu kontroli, ke la publika ŝlosilo estas tiu de via konto.",PUBKEY_FORM_HELP:"Bonvolu tajpi publikan ŝlosilon de konto:",FILE_FORM_HELP:"Elektu la ŝlosilaro-dosieron uzotan:",SCAN_FORM_HELP:"Skani la QR-kodon de monujo.",SALT:"Sekreta identigilo",SALT_HELP:"Sekreta identigilo",SHOW_SALT:"Afiŝi la sekretan identigilon?",PASSWORD:"Pasvorto",PASSWORD_HELP:"Pasvorto",PUBKEY_HELP:"Publika ŝlosilo aŭ pseŭdonimo",NO_ACCOUNT_QUESTION:"Vi ankoraŭ ne havas konton?",HAVE_ACCOUNT_QUESTION:"Vi jam havas konton?",CREATE_ACCOUNT:"Krei konton...",CREATE_FREE_ACCOUNT:"Krei konton senpage",FORGOTTEN_ID:"Pasvorto forgesita?",ASSOCIATED_PUBKEY:"Publika ŝlosilo de la ŝlosilaro:",BTN_METHODS:"Aliaj metodoj",BTN_METHODS_DOTS:"Ŝanĝi metodon...",METHOD_POPOVER_TITLE:"Metodoj",MEMORIZE_AUTH_FILE:"Memorigi tiun ŝlosilaron por la daŭro de la sesio de retumado",SCRYPT_PARAMETERS:"Parametroj (Skripto):",AUTO_LOGOUT:{TITLE:"Informo",MESSAGE:'<i class="ion-android-time"></i> Vi estis <b>malkonektita</b> aŭtomate, pro tro longa senaktiveco.',BTN_RELOGIN:"Rekonektiĝi",IDLE_WARNING:"Vi estos malkonektita... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Sekreta identigilo kaj pasvorto",SCRYPT_ADVANCED:"Sperta salumado",FILE:"Dosiero pri ŝlosilaro",PUBKEY:"Publika ŝlosilo aŭ pseŭdonimo",SCAN:"Skani QR-kodon"},SCRYPT:{SIMPLE:"Malpeza salumado",DEFAULT:"Kutima salumado",SECURE:"Sekura salumado",HARDEST:"Plej sekura salumado",EXTREME:"Ekstrema salumado",USER:"Personigita salumado",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Atendita strukturo de dosiero: <b>.yml</b> aŭ <b>.dunikey</b> (tipo PubSec, WIF aŭ EWIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Aŭtentigado',BTN_AUTH:"Aŭtentiĝi",GENERAL_HELP:"Bonvolu aŭtentiĝi:",EXPECTED_UID_HELP:'Bonvolu aŭtentiĝi ĉe la konto <i class="ion-person"></i> {{uid}} :',EXPECTED_PUBKEY_HELP:'Bonvolu aŭtentiĝi ĉe la monujo <br class="visible-xs"/><i class="ion-key"></i> {{pubkey|formatPubkey}} :',SCAN_FORM_HELP:"Skani la QR-kodon de la <b>privata ŝlosilo</b> de la monujo."},ACCOUNT:{TITLE:"Mia konto",BALANCE:"Saldo",LAST_TX:"Lastaj spezoj validigitaj",BALANCE_ACCOUNT:"Konto-saldo",NO_TX:"Neniu spezo",SHOW_MORE_TX:"Afiŝi pli",SHOW_ALL_TX:"Afiŝi ĉion",TX_FROM_DATE:"(nuna limo je {{fromTime|medianFromNowShort}})",PENDING_TX:"Spezoj atendantaj traktadon",VALIDATING_TX:"Spezoj traktitaj, ne validigitaj",ERROR_TX:"Spezoj ne realigitaj",ERROR_TX_SENT:"Spezoj malsukcesintaj",PENDING_TX_RECEIVED:"Spezoj atendantaj ricevon",EVENTS:"Okazaĵoj",OUT_DISTANCED:"Viaj nunaj atestaĵoj venas de tro izolita grupo de la <a ng-click=\"showHelpModal('wot')\">Reto de Fido</a> (RdF): al la <a ng-click=\"showHelpModal('distance_rule')\">regulo de maksimuma distanco</a> vi ne konformiĝas.<br/>Vi devas akiri atestaĵojn venantajn de aliaj lokoj de la RdF, aŭ atendi ke tiu ĉi densiĝos.",WAITING_MEMBERSHIP:"Aliĝo-peto sendita. Atendanta akcepton.",WAITING_CERTIFICATIONS:"Vi devas <b>akiri {{needCertificationCount}} atestaĵo(j)n</b> por fariĝi membro kaj produkti la <a ng-click=\"showHelpModal('ud')\">Universalan Dividendon</a>. Via konto tamen estas jam funkcianta, por ricevi kaj efektivigi pagojn.",WAITING_CERTIFICATIONS_HELP:'Por akiri viajn atestaĵojn, petu nur membrojn <b>kiuj sufiĉe konas vin</b>, kiel postulas <a ng-click="showLicenseModal()">la licenco de la mono</a>, kiun vi akceptis.<br/>Se vi ne konas sufiĉe da membroj, sciigu tion ĉe <a ng-click="openLink($event, $root.settings.userForumUrl)">la forumo por uzantoj</a>.',WILL_MISSING_CERTIFICATIONS:"Baldaŭ <b>mankos al vi atestaĵoj</b> (almenaŭ {{willNeedCertificationCount}} estas necesaj)",WILL_NEED_RENEW_MEMBERSHIP:"Via aliĝo kiel membro <b>estas finiĝonta {{membershipExpiresIn|formatDurationTo}}</b>. Pensu <a ng-click=\"doQuickFix('renew')\">revalidigi vian aliĝon</a> ĝis tiam.",NEED_RENEW_MEMBERSHIP:"Vi ne plu estas membro de la mono, ĉar <b>via aliĝo finiĝis</b>. Pensu <a ng-click=\"doQuickFix('renew')\">revalidigi vian aliĝon</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"Vi ne plu estas membro de la mono, <b>pro manko da atestaĵoj</b>. Pensu <a ng-click=\"doQuickFix('renew')\">revalidigi vian aliĝon</a>.",NO_WAITING_MEMBERSHIP:"Neniu aliĝo-peto atendanta. Se vi deziras <b>fariĝi membro</b>, pensu <a ng-click=\"doQuickFix('membership')\">sendi la aliĝo-peton</a>.",CERTIFICATION_COUNT:"Ricevitaj atestaĵoj",CERTIFICATION_COUNT_SHORT:"Atestaĵoj",SIG_STOCK:"Senditaj atestaĵoj",BTN_RECEIVE_MONEY:"Enkasigi",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Aliri alian identecon...",BTN_FIX_MEMBERSHIP:"Resendi la aliĝo-peton...",BTN_MEMBERSHIP_RENEW:"Revalidigi la aliĝon",BTN_MEMBERSHIP_RENEW_DOTS:"Revalidigi la aliĝon...",BTN_MEMBERSHIP_OUT_DOTS:"Ĉesigi la aliĝon...",BTN_SECURITY_DOTS:"Konto kaj sekureco...",BTN_SHOW_DETAILS:"Afiŝi la teknikajn informojn",LOCKED_OUTPUTS_POPOVER:{TITLE:"Sumo blokita",DESCRIPTION:"Jen la kondiĉoj de malblokado de tiu sumo:",DESCRIPTION_MANY:"Tiu spezo entenas plurajn partojn, pri kiuj la kondiĉoj de malblokado estas:",LOCKED_AMOUNT:"Kondiĉoj por la sumo:"},NEW:{TITLE:"Kreado de konto",INTRO_WARNING_TIME:"La kreado de konto ĉe {{name|capitalize}} estas tre simpla. Bonvolu tamen dediĉi sufiĉe da tempo por ĝuste efektivigi tiun proceduron (por ne forgesi la identigilojn, pasvortojn, ktp.).",INTRO_WARNING_SECURITY:"Kontrolu ke la aparatoj, kiujn vi nun uzas (komputilo, tabuleto, telefono), <b>estas sekurigitaj kaj fidindaj</b>.",INTRO_WARNING_SECURITY_HELP:"Senvirusigilo ĝisdata, fajroŝirmilo aktivigita, sesio protektita per pasvorto aŭ PIN-kodo, ktp.",INTRO_HELP:"Alklaku <b>{{'COMMON.BTN_START'|translate}}</b> por ekigi la kreadon de konto. Vi estos gvidata paŝon post paŝo.",REGISTRATION_NODE:"Via aliĝo estos registrita tra la nodo Duniter <b>{{server}}</b>, kiu dissendos ĝin poste al la cetero de la mon-reto.",REGISTRATION_NODE_HELP:"Se vi ne fidas tiun nodon, bonvolu ŝanĝi ĝin <a ng-click=\"doQuickFix('settings')\">en la parametroj</a> de Cesium.",SELECT_ACCOUNT_TYPE:"Elektu la tipon de konto kreota:",MEMBER_ACCOUNT:"Membro-konto",MEMBER_ACCOUNT_TITLE:"Kreado de membro-konto",MEMBER_ACCOUNT_HELP:"Se vi ankoraŭ ne enskribiĝis kiel individuo (nur unu konto eblas por unu individuo). Tia konto ebligas kunprodukti la monon, ricevante <b> universalan dividendon</b> ĉiun {{parameters.dt|formatPeriod}}n.",WALLET_ACCOUNT:"Simpla monujo",WALLET_ACCOUNT_TITLE:"Kreado de monujo",WALLET_ACCOUNT_HELP:"Por ĉiuj aliaj kazoj, ekzemple se vi bezonas plian konton.<br/>Neniu universala dividendo estos kreita per tia konto.",SALT_WARNING:"Elektu vian sekretan identigilon.<br/>Oni petos ĝin de vi ĉiufoje, kiam vi konektiĝos al tiu konto.<br/><br/><b>Bone memorigu ĝin</b>: kaze de perdo, neniu alia povos aliri vian konton!",PASSWORD_WARNING:"Elektu pasvorton.<br/>Oni petos ĝin de vi ĉiufoje, kiam vi konektiĝos al tiu konto.<br/><br/><b>Bone memorigu tiun pasvorton</b: kaze de perdo, neniu alia povos aliri vian konton!",PSEUDO_WARNING:"Elektu pseŭdonimon.<br/>Ĝi utilas al la aliaj membroj, por identigi vin pli facile.<div class='hidden-xs'><br/>Ĝi <b>ne povos esti modifita</b>, sen rekrei konton.</div><br/><br/>Ĝi entenu <b>nek spacon, nek diakritan literon (kun supersigno, ktp.)</b>.<div class='hidden-xs'><br/>Ekzemple: <span class='gray'>NataljaBelulino, JohanoStelaro, ktp.</span>",PSEUDO:"Pseŭdonimo",PSEUDO_HELP:"Pseŭdonimo",SALT_CONFIRM:"Konfirmo",SALT_CONFIRM_HELP:"Konfirmo de la sekreta identigilo",PASSWORD_CONFIRM:"Konfirmo",PASSWORD_CONFIRM_HELP:"Konfirmo de la pasvorto",SLIDE_6_TITLE:"Konfirmo:",COMPUTING_PUBKEY:"Kalkulanta...",LAST_SLIDE_CONGRATULATION:"Vi tajpis ĉiujn necesajn informojn: Gratulon!<br/>Vi nun povas <b>sendi la peton por kreado</b> de la konto.</b><br/><br/>Por informo, la publika ŝlosilo ĉi-sube identigos vian estontan konton.<br/>Ĝi povos estis sciigita al aliuloj por ricevi iliajn pagojn.<br/><b>Ne estas devige</b> noti ĝin nun, vi ankaŭ povos fari tion poste.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Averto:</b> la sekreta identigilo, la pasvorto kaj la pseŭdonimo ne plu povos esti modifitaj.<br/><br/><b>Certiĝu, ke vi ĉiam rememorigos ĝin!</b><br/><br/><b>Ĉu vi certas</b>, ke vi deziras sendi tiun ĉi aliĝo-peton?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Averto:</b> la sekreta identigilo kaj la pasvorto ne plu povos esti modifitaj.<br/><br/><b>Certiĝu, ke vi ĉiam rememorigos ĝin!</b><br/><br/><b>Ĉu vi certas</b>, ke vi deziras daŭrigi per tiuj ĉi identigiloj?',CHECKING_PSEUDO:"Kontrolo...",PSEUDO_AVAILABLE:"Pseŭdonimo disponebla",PSEUDO_NOT_AVAILABLE:"Pseŭdonimo ne disponebla",INFO_LICENSE:"Antaŭ ol krei membro-konton, <b>bonvolu legi kaj akcepti la licencon</b> pri uzado de la mono:",BTN_ACCEPT:"Mi akceptas",BTN_ACCEPT_LICENSE:"Mi akceptas la licencon"},POPUP_REGISTER:{TITLE:"Elektu pseŭdonimon",HELP:"Pseŭdonimo estas deviga por fariĝi membro."},SELECT_IDENTITY_MODAL:{TITLE:"Elekto de la identeco",HELP:'Pluraj <b>malsamaj identecoj</b> estis senditaj, por la publika ŝlosilo <span class="gray"><i class="ion-key"></i> {{pubkey|formatPubkey}}</span>.<br/>Bonvolu elekti la dosierujon uzotan:'},SELECT_WALLET_MODAL:{TITLE:"Elekto de la monujo"},WALLET_LIST:{TITLE:"Miaj monujoj",BTN_NEW:"Aldoni monujon",BTN_DOWNLOAD:"Elŝuti la liston",BTN_IMPORT_FILE_DOTS:"Enporti el dosiero...",NO_WALLET:"Neniu kroma monujo",BTN_DELETE:"Forigi kroman monujon...",BTN_RENAME:"Renomi la monujon",EXPORT_FILENAME:"miaj_monujoj-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Sumo: ",EDIT_POPOVER:{TITLE:"Renomi la monujon",HELP:"Sciigu la novan nomon",NAME_HELP:"Nomo de la monujo"},IMPORT_MODAL:{TITLE:"Enporti monujojn",HELP:"Por <b>enporti monujojn</b>, bonvolu glitigi en la ĉi-suban zonon la dosieron pri la listo de monujoj, aŭ alklaki la zonon por serĉadi dosieron.",WALLET_COUNT:"<b>{{count}}</b> nova{{count > 1 ? 'j' : ''}} monujo{{count > 1 ? 'j' : ''}}",NO_NEW_WALLET:"Neniu nova monujo"}},SECURITY:{ADD_QUESTION:"Aldoni personigitan demandon",BTN_CLEAN:"Malplenigi",BTN_RESET:"Restartigi",DOWNLOAD_REVOKE:"Konservi mian dosieron pri nuligo",DOWNLOAD_REVOKE_HELP:"Disponi dosieron pri nuligo estas grave, ekzemple kaze de perdo de viaj identigiloj. Ĝi ebligas al vi <b>elirigi tiun konton el la reto de fido</b>, tiel ke ĝi refariĝu simpla monujo.",GENERATE_KEYFILE:"Krei mian dosieron pri ŝlosilaro...",GENERATE_KEYFILE_HELP:"Kreas dosieron, kiu ebligas al vi aŭtentiĝi sen tajpi viajn identigilojn.<br/><b>Atenton:</b> tiu dosiero entenos vian konto-ŝlosilaron (publikan kaj sekretan ŝlosilojn); do tre gravas meti ĝin en sekuran lokon!",KEYFILE_FILENAME:"ŝlosilaro-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Transformi en membro-konton...",MEMBERSHIP_IN_HELP:"Ebligas <b>transformi</b> simplan monujo-konton <b>en membro-konton</b>, sendante aliĝo-peton. Utilas nur se vi ne havas jam alian membro-konton.",SEND_IDENTITY:"Publikigi sian identecon...",SEND_IDENTITY_HELP:"Ebligas kunligi pseŭdonimon kun tiu ĉi konto, sed <b>sen fari aliĝo-peton</b> por iĝi membro. Tiu kunligo kutime ne utilas, ĉar la valideco de tiu kunligo de pseŭdonimo estas limigita en la tempo.",HELP_LEVEL:"Por krei konserv-dosieron pri viaj identigiloj, elektu <strong> almenaŭ {{nb}} demandojn:</strong>",LEVEL:"Nivelo de sekureco",LOW_LEVEL:'Malforta <span class="hidden-xs">(2 demandoj minimume)</span>',MEDIUM_LEVEL:'Meza <span class="hidden-xs">(4 demandoj minimume)</span>',QUESTION_1:"Kiel nomiĝis via plej bona amik.in.o, kiam vi estis adoleskant.in.o?",QUESTION_2:"Kiel nomiĝis via unua hejm-besto?",QUESTION_3:"Kiun pladon vi unue lernis kuiradi?",QUESTION_4:"Kiun filmon vi unue spektis en kinejo?",QUESTION_5:"Kien vi iris la unuan fojon, kiam vi vojaĝis per aviadilo?",QUESTION_6:"Kiel nomiĝis via preferata instruist.i.no en bazlernejo?",QUESTION_7:"Kio estus laŭ vi la ideala profesio?",QUESTION_8:"Kiun libron por infanoj vi preferas?",QUESTION_9:"Kio estis la marko de via unua veturilo?",QUESTION_10:"Kio estis via kromnomo, kiam vi estis infano?",QUESTION_11:"Kiun rolant.in.on aŭ aktor.in.on vi preferis en kino, kiam vi estis student.in.o?",QUESTION_12:"Kiun kanzonist.ino.n aŭ muzikgrupon vi preferis, kiam vi estis student.in.o?",QUESTION_13:"En kiu urbo renkontiĝis viaj gepatroj?",QUESTION_14:"Kiel nomiĝis via unua ĉefo?",QUESTION_15:"Kiel nomiĝas la strato, kie vi kreskis?",QUESTION_16:"Kiel nomiĝas la marbordo, kie vi unuafoje baniĝis?",QUESTION_17:"Kiun muzik-albumon vi unuafoje aĉetis?",QUESTION_18:"Kiel nomiĝas via preferata sporto-teamo?",QUESTION_19:"Kio estis la profesio de via avo?",RECOVER_ID:"Retrovi mian pasvorton...",RECOVER_ID_HELP:"Se vi disponas <b>konserv-dosieron pri viaj identigiloj</b>, vi povas retrovi ilin respondante ĝuste viajn personajn demandojn.",REVOCATION_WITH_FILE:"Nuligi mian membro-konton...",REVOCATION_WITH_FILE_DESCRIPTION:"Se vi <b>definitive perdis viajn identigilojn</b> pri via membro-konto (aŭ ke la sekureco de la konto estas endanĝerigita), vi povas uzi <b>la dosieron pri nuligo</b> de la konto por <b>trudi ties definitivan eliradon el la reto de fido</b>.",REVOCATION_WITH_FILE_HELP:"Por <b>definitive nuligi</b> membro-konton, bonvolu glitigi en la ĉi-suban zonon vian dosieron pri nuligo, aŭ alklaki la zonon por serĉadi dosieron.",REVOCATION_WALLET:"Nuligi tiun ĉi konton tuj",REVOCATION_WALLET_HELP:"Peti la nuligon de via identeco estigas la <b>eliradon el la reto de fido</b> (definitivan por la pseŭdonimo kaj la publika ŝlosilo kunligitaj). La konto ne plu povos produkti Universalan Dividendon.<br/>Vi tamen daŭre povos konektiĝi al ĝi, kiel al simpla monujo.",REVOCATION_FILENAME:"nuligo-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Konservi miajn identigilojn...",SAVE_ID_HELP:"Kreado de konserv-dosiero, por <b>retrovi vian pasvorton</b> (kaj la sekretan identigilon) <b>kaze de forgeso</b>. La dosiero estas <b>sekurigita</b> (ĉifrita) dank'al personaj demandoj.",STRONG_LEVEL:'Forta <span class="hidden-xs ">(6 demandoj minimume)</span>',TITLE:"Konto kaj sekureco",KEYFILE:{PUBSEC_FORMAT:"Strukturo PubSec.",PUBSEC_FORMAT_HELP:"Tiu strukturo stokas vian ŝlosilaron laŭ tre simpla maniero. Ĝi kongruas aparte kun Cesium, ğannonce kaj Duniter.<br/><b>Atenton:</b>La dosiero <b>ne estas ĉifrita</b> (la sekreta ŝlosilo klare aperas en ĝi); bonvolu do stoki ĝin en sekura loko!",WIF_FORMAT:"Strukturo WIF (Wallet Import Format) - v1",WIF_FORMAT_HELP:"Tiu strukturo stokas vian ŝlosilaron inkluzivante en ĝin kontrol-sumon por kontroli la sendifektecon de la dosiero. Ĝi kongruas aparte kun la paper-monujoj (Duniter paper wallet).<br/><b>Atenton:</b>La dosiero <b>ne estas ĉifrita</b> (la sekreta ŝlosilo klare aperas en ĝi); bonvolu do stoki ĝin en sekura loko!",EWIF_FORMAT:"Strukturo EWIF (Encrypted Wallet Import Format) - v1",EWIF_FORMAT_HELP:"Tiu strukturo stokas vian ŝlosilaron <b>laŭ ĉifrita maniero</b> dank'al sekreta frazo elektita de vi. Ĝi ankaŭ inkluzivas kontrol-sumon por kontroli la sendifektecon de la dosiero.<br/><b>Atenton:</b> Zorgu, ke vi ĉiam rememoru vian sekretan frazon!",PASSWORD_POPUP:{TITLE:"Ĉifrita dosiero pri ŝlosilaro",HELP:"Bonvolu indiki la la sekretan frazon:",PASSWORD_HELP:"Sekreta frazo"},ERROR:{BAD_PASSWORD:"Sekreta frazo malĝusta",BAD_CHECKSUM:"Kontrol-sumo malĝusta"}}},FILE_NAME:"{{currency}} - Konto-tabelo {{pubkey|formatPubkey}} je {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Dato",AMOUNT:"Sumo",COMMENT:"Komento"}},TRANSFER:{TITLE:"Elspezo",SUB_TITLE:"Fari elspezon",SUB_TITLE_ALL:"Malplenigi la konton",FROM:"De",TO:"Al",AMOUNT:"Sumo",AMOUNT_HELP:"Sumo",COMMENT:"Komento",COMMENT_HELP:"Komento",BTN_SEND:"Sendi",BTN_ADD_COMMENT:"Aldoni komenton",REST:"Resto de la konto",REST_TO:"al",WARN_COMMENT_IS_PUBLIC:"Bonvolu noti, ke <b>la komentoj estas publikaj</b> (ne ĉifritaj).",MODAL:{TITLE:"Elspezo"}},ERROR:{UNKNOWN_URI_FORMAT:"URI-strukturo nekonata",PUBKEY_INVALID_CHECKSUM:"Publika ŝlosilo nevalida (bad checksum).",POPUP_TITLE:"Eraro",UNKNOWN_ERROR:"Eraro nekonata",CRYPTO_UNKNOWN_ERROR:"Via retumilo ŝajnas ne kongrua kun la kriptografiaj funkcioj.",DOWNLOAD_KEYFILE_FAILED:"Malsukceso por la kreado de la dosiero pri ŝlosilaro.",EQUALS_TO_PSEUDO:"Devas esti malsama ol la pseŭdonimo",EQUALS_TO_SALT:"Devas esti malsama ol la sekreta identigilo",FIELD_REQUIRED:"Deviga kampo",FIELD_TOO_SHORT:"Signaro tro mallonga",FIELD_TOO_SHORT_WITH_LENGTH:"Signaro tro mallonga ({{minLength}} signoj minimume)",FIELD_TOO_LONG:"Signaro tro longa",FIELD_TOO_LONG_WITH_LENGTH:"Signaro tro longa ({{maxLength}} signoj maksimume)",FIELD_MIN:"Minimuma longeco: {{min}}",FIELD_MAX:"Maksimuma longeco: {{max}}",FIELD_ACCENT:"Diakritaj literoj kaj komoj ne permesataj",FIELD_NOT_NUMBER:"Nombra valoro atendata",FIELD_NOT_INT:"Entjera nombro atendata",FIELD_NOT_EMAIL:"Retadreso nevalida",PASSWORD_NOT_CONFIRMED:"Ne kongruas kun la pasvorto",SALT_NOT_CONFIRMED:"Ne kongruas kun la sekreta identigilo",SEND_IDENTITY_FAILED:"Aliĝo malsukcesa",SEND_CERTIFICATION_FAILED:"Atestado malsukcesa",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"Vi ne povas efektivigi atestadon, ĉar via konto <b>ne estas membro</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"Vi ne povas efektivigi atestadon, ĉar via konto ankoraŭ ne estas membro.<br/><br/>Ankoraŭ mankas al vi atestaĵoj, aŭ tiuj ĉi ankoraŭ ne estis validigitaj.",NOT_MEMBER_FOR_CERTIFICATION:"Via konto ankoraŭ ne estas membro.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Konto ne atestebla. Neniu aliĝo-peto estis farita, aŭ la aliĝo ne estis revalidigita.",LOGIN_FAILED:"Eraro dum konektiĝo.",LOAD_IDENTITY_FAILED:"Eraro por ŝarĝi la identecon.",LOAD_REQUIREMENTS_FAILED:"Eraro por ŝarĝi la antaŭ-necesaĵoj de la identeco.",SEND_MEMBERSHIP_IN_FAILED:"Malsukceso pri la provado eniri la komunumon.",SEND_MEMBERSHIP_OUT_FAILED:"Malsukceso pri la ĉesigo de la aliĝo.",REFRESH_WALLET_DATA:"Malsukceso pri la ĝisdatigo de la monujo.",GET_CURRENCY_PARAMETER:"Malsukceso por ricevi la regulojn de la mono.",GET_CURRENCY_FAILED:"Ne eblis ŝarĝi la monon. Bonvolu reprovi pli poste.",SEND_TX_FAILED:"Elspezado malsukcesa.",ALL_SOURCES_USED:"Bonvolu atendi la kalkulon de la venonta bloko (ĉiuj viaj monfontoj estis uzitaj).",NOT_ENOUGH_SOURCES:"Ne sufiĉe da mono por sendi tiun ĉi sumon per ununura spezo.<br/>Maksimuma sumo: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Malsukceso por krei la membro-konton.",RESTORE_WALLET_DATA_ERROR:"Malsukceso por reŝarĝi la parametrojn de la loka stokaĵo",LOAD_WALLET_DATA_ERROR:"Malsukceso por ŝarĝi la datenojn de la monujo.",COPY_CLIPBOARD_FAILED:"Ne eblis kopii la valoron.",TAKE_PICTURE_FAILED:"Malsukceso por ricevi la foton.",SCAN_FAILED:"Malsukceso por skani la QR-kodon.",SCAN_UNKNOWN_FORMAT:"Kodo nerekonata.",WOT_LOOKUP_FAILED:"Serĉado malsukcesa.",LOAD_PEER_DATA_FAILED:"Ne eblis legi la nodon Duniter. Bonvolu reprovi poste.",NEED_LOGIN_FIRST:"Bonvolu unue konektiĝi.",AMOUNT_REQUIRED:"La monsumo estas deviga.",AMOUNT_NEGATIVE:"Negativa sumo nepermesata.",NOT_ENOUGH_CREDIT:"Saldo nesufiĉa.",INVALID_NODE_SUMMARY:"Nodo neatingebla aŭ adreso nevalida.",INVALID_USER_ID:"La pseŭdonimo devas enteni nek spacon nek signon specialan aŭ kun supersigno.",INVALID_COMMENT:"La kampo 'referenco' ne devas enteni literojn kun supersigno.",INVALID_PUBKEY:"La publika ŝlosilo ne havas la atenditan strukturon.",INVALID_PUBKEY_CHECKSUM:"Kontrol-sumo nevalida.",IDENTITY_REVOKED:"Tiu ĉi identeco <b>estis nuligita</b>. Ĝi ne plu povas fariĝi membro.",IDENTITY_REVOKED_WITH_TIME:"Tiu ĉi identeco <b>estis nuligita {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). Ĝi ne plu povas fariĝi membro.",IDENTITY_PENDING_REVOCATION:"La <b>nuligo de tiu ĉi identeco</b> estis petita kaj atendas traktadon. La atestado estas do malaktivigita.",IDENTITY_INVALID_BLOCK_HASH:"Tiu ĉi aliĝo-peto ne plu validas (ĉar ĝi rilatas al bloko, kiun nuligis la nodoj de la reto): tiu persono devas refari sian aliĝo-peton <b>antaŭ ol</b> esti atestita.",IDENTITY_EXPIRED:"La publikigo de tiu ĉi identeco finiĝis: tiu persono devas fari novan aliĝo-peton <b>antaŭ ol</b> esti atestita.",IDENTITY_SANDBOX_FULL:"La nodo Duniter uzata de Cesium ne plu povas ricevi novajn identecojn, ĉar ĝia atendo-vico estas plena.<br/><br/>Bonvolu reprovi poste aŭ ŝanĝi la nodon (per la menuo <b>Parametroj</b>).",IDENTITY_NOT_FOUND:"Identeco ne trovita.",IDENTITY_TX_FAILED:"Malsukceso por ŝarĝi la spezojn.",WOT_PENDING_INVALID_BLOCK_HASH:"Aliĝo ne valida.",WALLET_INVALID_BLOCK_HASH:"Via aliĝo-peto ne plu validas (ĉar ĝi rilatas al bloko, kiun nuligis la nodoj de la reto).<br/>Vi devas <a ng-click=\"doQuickFix('fixMembership')\">sendi novan peton</a> por solvi tiun ĉi problemon.",WALLET_IDENTITY_EXPIRED:"La publikigo de <b>via identeco finiĝis</b>.<br/>Vi devas <a ng-click=\"doQuickFix('fixIdentity')\">publikigi denove vian identecon</a> por solvi tiun ĉi problemon.",WALLET_REVOKED:"Via identeco estis <b>nuligita</b>: nek via pseŭdonimo nek via publika ŝlosilo povos esti uzata en la estonteco por membro-konto.",WALLET_HAS_NO_SELF:"Via identeco devas unue esti publikigita, kaj ne esti finiĝinta.",AUTH_REQUIRED:"Aŭtentigado necesa.",AUTH_INVALID_PUBKEY:'La atendata ŝlosilo estas <i class="ion-key"></i> {{pubkey|formatPubkey}}...',AUTH_INVALID_SCRYPT:"Identigilo aŭ pasvorto nevalida.",AUTH_INVALID_FILE:"Dosiero pri ŝlosilaro nevalida.",AUTH_FILE_ERROR:"Malsukceso por malfermi la dosieron pri ŝlosilaro.",IDENTITY_ALREADY_CERTIFY:"Vi <b>jam atestis</b> tiun identecon.<br/><br/>Tiu atestado daŭre validas (finiĝo {{expiresIn|formatDurationTo}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Vi <b>jam atestis</b> tiun identecon.<br/><br/>Tiu atestado atendas traktadon (limdato de traktado {{expiresIn|formatDurationTo}}).",UNABLE_TO_CERTIFY_TITLE:"Atestado neebla",LOAD_NEWCOMERS_FAILED:"Malsukceso por ŝarĝi la novajn membrojn.",LOAD_PENDING_FAILED:"Malsukceso por ŝarĝi la atendantajn aliĝojn.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vi devas <b>esti membro</b> por rajti efektivigi tiun ĉi agon.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vi devas <b>esti membro (aŭ eksa membro)</b> por rajti efektivigi tiun ĉi agon.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Via identeco devas <b>jam esti publikigita</b>, por ke vi rajtu efektivigi tiun ĉi agon.",GET_BLOCK_FAILED:"Malsukceso por ricevi la blokon.",INVALID_BLOCK_HASH:"Bloko ne trovita (haketo malsama)",DOWNLOAD_REVOCATION_FAILED:"Malsukceso por elŝuti la dosieron pri nuligo.",REVOCATION_FAILED:"Malsukceso pri nuligo.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Sekreta identigilo aŭ pasvorto malĝusta.",RECOVER_ID_FAILED:"Malsukceso por ricevi la identigilojn",LOAD_FILE_FAILED:"Malsukceso por ŝarĝi la dosieron",NOT_VALID_REVOCATION_FILE:"Dosiero pri nuligo ne valida (malĝusta strukturo de dosiero)",NOT_VALID_SAVE_ID_FILE:"Dosiero pri konservado ne valida (malĝusta strukturo de dosiero)",NOT_VALID_KEY_FILE:"Dosiero pri ŝlosilaro ne valida (strukturo ne rekonata)",EXISTING_ACCOUNT:"Viaj identigiloj rilatas al jam ekzistanta konto, kies <a ng-click=\"showHelpModal('pubkey')\">publika ŝlosilo</a> estas:",EXISTING_ACCOUNT_REQUEST:"Bonvolu modifi viajn identigilojn, por ke ili rilatu al ne uzata konto.",GET_LICENSE_FILE_FAILED:"La ricevo de la dosiero pri licenco ne eblis.",CHECK_NETWORK_CONNECTION:"Neniu nodo ŝajnas atingebla.<br/><br/>Bonvolu <b>kontroli vian retkonekton</b>.",ISSUE_524_TX_FAILED:"Malsukcesa elspezo.<br/><br/>Mesaĝo estis sendita al la programistoj por faciligi la solvadon de la problemo. <b>Dankon pro via helpo</b>.",ADD_SECONDARY_WALLET_FAILED:"Malsukceso por aldoni kroman monujon.",UPDATE_WALLET_LIST_FAILED:"Malsukceso por ĝisdatigi la kromajn monujojn.",LOAD_WALLET_LIST_FAILED:"Malsukceso por ŝarĝi la kromajn monujojn.",SAVE_WALLET_LIST_FAILED:"Malsukceso por konservi la kromajn monujojn.",COULD_NOT_ADD_MAIN_WALLET:"Tiu ĉi monujo <b>rilatas al la ĉefa konto</b>, kun kiu vi estas konektita.<br/>Ne eblas aldoni ĝin kiel kroman monujon.",COULD_NOT_ADD_EXISTING_WALLET:"Monujo jam ekzistanta en la listo.",UNKNOWN_WALLET_ID:"Kroma monujo nekonata.",RESTORE_WALLET_LIST_FAILED:"Malsukceso por restarigi la kromajn monujojn.",INVALID_FILE_FORMAT:"Strukturo de dosiero nevalida."},INFO:{POPUP_TITLE:"Informo",CERTIFICATION_DONE:"Atestaĵo sendita",NOT_ENOUGH_CREDIT:"Saldo nesufiĉa",TRANSFER_SENT:"Elspezo sendita",COPY_TO_CLIPBOARD_DONE:"Kopiita en la memoreto",MEMBERSHIP_OUT_SENT:"Eksiĝo sendita",NOT_NEED_MEMBERSHIP:"Vi jam estas membro.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Al tiu ĉi identeco baldaŭ mankos atestaĵoj (almenaŭ {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"Tiu ĉi identeco ne sendis aliĝo-peton. Tion ĝi devos fari, se ĝi deziras fariĝi membro.",HAS_ALTERNATIVE_IDENTITIES:"Ekzistas <b>pluraj identecoj</b> ligitaj kun tiu ĉi publika ŝlosilo. <b>Antaŭ ĉia atestado</b>, pensu <a ng-click=\"doQuickFix('showSelectIdentities')\">trarigardi la aliajn identecojn</a> por elekti la ĝustan, aŭ kontaktu la posedanton de la konto.",REVOCATION_SENT:"Nuligo sendita",REVOCATION_SENT_WAITING_PROCESS:"La <b>nuligo de tiu ĉi identeco</b> estis petita kaj atendas traktadon.",FEATURES_NOT_IMPLEMENTED:"Tiu ĉi funkciaro ankoraŭ estas programiĝanta.<br/>Kial ne <b>kontribui al Cesium</b>, por ekhavi ĝin pli rapide? ;)",EMPTY_TX_HISTORY:"Neniu spezo elportota"},CONFIRM:{POPUP_TITLE:"<b>Konfirmo</b>",POPUP_WARNING_TITLE:"<b>Averto</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Averto pri sekureco</b>',CERTIFY_RULES_TITLE_UID:"Atesti {{uid}}",CERTIFY_RULES:'<b class="assertive">NE atestu</b> konton, se vi pensas ke:<br/><br/><ul><li>1.) ĝi ne rilatas al persono <b>fizika kaj vivanta</b>.<li>2.) ĝia posedanto <b>havas alian konton</b> jam atestitan.<li>3.) ĝia posedanto malobservas (vole aŭ ne) la regulon 1 aŭ 2 (ekzemple atestante falsajn kontojn aŭ duoblajn).</ul><br/><b>Ĉu vi certas,</b> ke vi tamen volas atesti tiun ĉi identecon?',FULLSCREEN:"Afiŝi la programon plen-ekrane?",EXIT_APP:"Fermi la programon?",TRANSFER:"<b>Resumo de la elspezo</b> :<br/><br/><ul><li> - De: {{from}}</li><li> - Al: <b>{{to}}</b></li><li> - Sumo: <b>{{amount}} {{unit}}</b></li><li> - Komento: <i>{{comment}}</i></li></ul><br/><b>Ĉu vi certas, ke vi volas efektivigi tiun ĉi elspezon?</b>",TRANSFER_ALL:"<b>Resumo de la elspezo</b>:<br/><br/><ul><li> - De : {{from}}</li><li> - Al : <b>{{to}}</b></li><li> - Sumo: <b>{{amount}} {{unit}}</b></li><li> - Komento: <i>{{comment}}</i></li><br/><li> - Resto: <b>{{restAmount}} {{unit}}</b> al <b>{{restTo}}</b></li></ul><br/><b>Ĉu vi certas, ke vi volas efektivigi tiun ĉi elspezon?</b>",MEMBERSHIP_OUT:"Tiu ĉi ago estas <b>neinversigebla</b>.<br/></br/>Ĉu vi certas, ke vi volas <b>nuligi vian membro-konton</b>?",MEMBERSHIP_OUT_2:"Tiu ĉi ago estas <b>neinversigebla</b> !<br/><br/>Ĉu vi vere certas, ke vi volas <b>nuligi vian aliĝon</b> kiel membron?",LOGIN_UNUSED_WALLET_TITLE:"Tajperaro?",LOGIN_UNUSED_WALLET:"La konektita konto ŝajnas <b>neaktiva</b>.<br/><br/>Temas probable pri <b>tajperaro</b> en viaj konekto-identigiloj. Bonvolu rekomenci, kontrolante ke <b>la publika ŝlosilo estas tiu de via konto</b>.",FIX_IDENTITY:"La pseŭdonimo <b>{{uid}}</b> estos denove publikigita, anstataŭigante la malnovan publikigon, kiu finiĝis.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",FIX_MEMBERSHIP:"Via aliĝo-peto kiel membro tuj estos resendita.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",MEMBERSHIP:"Via aliĝo-peto kiel membro tuj estos sendita.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",RENEW_MEMBERSHIP:"Via aliĝo kiel membro tuj estos revalidigita.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",REVOKE_IDENTITY:"Vi estas <b>nuligonta definitive tiun ĉi identecon</b>.<br/><br/>La publika ŝlosilo kaj la ligita pseŭdonimo <b>neniam plu povos esti uzataj</b> (por membro-konto). <br/></br/><b>Ĉu vi certas</b>, ke vi volas definitive nuligi tiun ĉi konton?",REVOKE_IDENTITY_2:"Tiu ĉi ago estas <b>neinversigebla</b>!<br/><br/>Ĉu vi vere certas, ke vi volas <b>definitive nuligi</b> tiun ĉi konton?",NOT_NEED_RENEW_MEMBERSHIP:"Via aliĝo ne bezonas esti revalidigita (ĝi finiĝos nur post {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Ĉu vi certas</b>, ke vi volas revalidigi vian aliĝon?",SAVE_BEFORE_LEAVE:"Ĉu vi volas <b>konservi viajn modifojn</b> antaŭ ol eliri el la paĝo?",SAVE_BEFORE_LEAVE_TITLE:"Modifoj ne registritaj",LOGOUT:"Ĉu vi certas, ke vi volas malkonektiĝi?",USE_FALLBACK_NODE:"Nodo <b>{{old}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Ĉu vi volas provizore uzi la nodon <b>{{new}}</b> ?",ISSUE_524_SEND_LOG:"La spezo estis forĵetita, pro konata anomalio (petslipo #524) sed <b>ne ripetita</b>.<br/><br/>Por helpi la programistojn korekti tiun eraron, <b>ĉu vi akceptas la sendadon de viaj protokolaj dosieroj</b> per mesaĝo?<br/><small>(neniu konfidenca dateno estas sendita)</small>."},DOWNLOAD:{POPUP_TITLE:"<b>Dosiero pri nuligo</b>",POPUP_REVOKE_MESSAGE:"Por sekurigi vian konton, bonvolu elŝuti la <b>dokumenton pri konto-nuligo</b>. Ĝi ebligos al vi eventuale nuligi vian konton (kaze de konto-ŝtelo, ŝanĝo de identigilo, konto erare kreita, ktp.).<br/><br/><b>Bonvolu stoki ĝin en sekura loko.</b>"},HELP:{TITLE:"Ret-helpo",JOIN:{SECTION:"Enskribiĝo",SALT:'La sekreta identigilo estas tre grava. Ĝi utilas por miksi la pasvorton, antaŭ ol ĝi servos por kalkuli la <span class="text-italic">publikan ŝlosilon</span> de via konto (ties numeron) kaj la sekretan ŝlosilon por aliri ĝin.<br/><b>Zorgu pri ĝia bona memorigado</b>, ĉar neniu rimedo estas nuntempe planita por retrovi ĝin kaze de perdo.<br/>Krom tio, ĝi ne povas esti modifita sen devige krei novan konton.<br/><br/>Bona sekreta identigilo devas esti sufiĉe longa (kun almenaŭ 8 signoj) kaj kiel eble plej originala.',PASSWORD:"La pasvorto estas tre grava. Kun la sekreta identigilo, ĝi servas por kalkuli la numeron (la publikan ŝlosilon) de via konto, kaj la sekretan ŝlosilon por aliri ĝin.<br/><b>Zorgu pri ĝia bona memorigado</b>, ĉar neniu rimedo estas planita por retrovi ĝin kaze de perdo (krom se oni generas konserv-dosieron).<br/>Krom tio, ĝi ne povas esti modifita sen devige krei novan konton.<br/><br/>Bona pasvorto entenas (ideale) almenaŭ 8 signojn, inter kiuj estas almenaŭ unu majusklo kaj unu cifero.",PSEUDO:'La pseŭdonimo estas utila nur kaze de enskribiĝo kiel <span class="text-italic">membro</span>. Ĝi ĉiam estas ligita kun monujo (tra ĝia <span class="text-italic">publika ŝlosilo</span>).<br/>Ĝi estas publikigita en la reto, tiel ke la aliaj uzantoj povu identigi ĝin, atesti ĝin aŭ sendi monon al ĝia konto.<br/>Pseŭdonimo devas esti unika ene de la membroj (<u>nunaj</u> kaj eksaj).'},LOGIN:{SECTION:"Konekto",PUBKEY:"Publika ŝlosilo de la ŝlosilaro",PUBKEY_DEF:'La publika ŝlosilo de la ŝlosilaro estas kreita per la tajpitaj identigiloj (iuj ajn), sen ke ili necese rilatu al konto jam uzata.<br/><b>Atente kontrolu, ke la publika ŝlosilo estas tiu de via konto</b>. Alikaze, vi estos konektita al konto probable neniam uzita, la risko de kolizio kun ekzistanta konto estante tre eta.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">Scii pli pri kriptografio</a> per publika ŝlosilo.',METHOD:"Konekto-metodoj",METHOD_DEF:'Pluraj eblecoj disponeblas por konekti vin al monujo:<br/> - La konekto <b>per salumado (simpla aŭ sperta)</b> miksas vian pasvorton dank\'al la sekreta identigilo, por limigi la provojn de <a href="https://fr.wikipedia.org/wiki/Attaque_par_force_brute" target="_system">kodrompado per kruda forto</a> (ekzemple per konataj vortoj.<br/> - La konekto <b>per publika ŝlosilo</b> evitigas tajpi viajn identigilojn, kiuj estos petataj de vi, nur kiam venos la momento dum operacio ĉe la konto.<br/> - La konekto <b>per dosiero pri ŝlosilaro</b> legas la ŝlosilojn (publikan kaj privatan) de la konto, per dosiero, sen la bezono tajpi identigilojn. Pluraj strukturoj de dosiero eblas.'},GLOSSARY:{SECTION:"Glosaro",PUBKEY_DEF:'Publika ŝlosilo identigas monujon, kiu povas identigi membron aŭ rilati al anonima monujo. Ĉe Cesium la publika ŝlosilo estas kalkulita (implicite) dank\'al la sekreta identigilo kaj la pasvorto.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">Scii pli pri kriptografio</a> per publika ŝlosilo.',MEMBER:"Membro",MEMBER_DEF:'Membro estas homa persono fizika kaj vivanta, kiu deziras libere partopreni en la mona komunumo. Li/ŝi kunproduktas universalan dividendon, laŭ periodo kaj sumo tiel difinitaj kiel en la <span class="text-italic">reguloj de la mono</span>',CURRENCY_RULES:"Reguloj de la mono",CURRENCY_RULES_DEF:'La reguloj de la mono estas difinitaj definitive. Ili fiksas la funkciadon de la mono: la kalkulon de la universala dividendo, la nombron de necesaj atestaĵoj por esti membro, la maksimuman nombron da atestaĵoj, kiujn povas doni unu membro, ktp. <a href="#/app/currency">Vidi la nuntempajn regulojn</a>.<br/>La nemodifo de la reguloj tra la tempo eblas per uzado de <span class="text-italic">Blokĉeno</span>, kiu entenas kaj plenumas tiujn regulojn, kaj konstante kontrolas ties ĝustan aplikadon.',BLOCKCHAIN:'Ĉeno de blokoj (<span class="text-italic">Blokchain/Blokĉeno</span>)',BLOCKCHAIN_DEF:'La Blokĉeno estas malcentrigita sistemo, kiu, kaze de Duniter, servas por enteni kaj plenumi la <span class="text-italic">regulojn de la mono</span>.<br/><a href="https://duniter.org/fr/comprendre/" target="_system">Scii pli pri Duniter</a> kaj la funkciado de ties blokĉeno.',UNIVERSAL_DIVIDEND_DEF:'La Universala Dividendo (UD) estas la kvanto de mono kunkreita de ĉiu membro, laŭ la periodo kaj kalkulo difinitaj en la <span class="text-italic">reguloj de la mono</span>.<br/>Por ĉiu perioda dato, la membroj ricevas en sian konton la saman kvanton da nova mono.<br/><br/>La UD spertas regulan kreskon, por resti justa inter la membroj (nunaj kaj venontaj), kalkulitan depende de la meza vivespero, kiel estas demonstrite en la Teorio Relativa pri la Mono (TRM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Scii pli pri la TRM</a> kaj la liberaj monoj.',WOT:"Reto de Fido (RdF)",WOT_DEF:"La Reto de Fido konsistas el la tuto de la membroj de la mono, kaj el la atesto-ligoj, kiuj kunligas ilin.",DISTANCE_RULE:"Regulo pri distanco",DISTANCE_RULE_DEF:"La regulo pri distanco de la Reto de Fido difinas <b>maksimuman distancon nepran</b> inter petanto kaj minimuma nombro da referencaj membroj (aŭ centraj membroj). Tiu distanco estas kalkulita uzante la ligojn inter atestaĵoj."},TIP:{MENU_BTN_CURRENCY:"La menuo <b>{{'MENU.CURRENCY'|translate}}</b> ebligas konsulti la <b>regulojn de la mono</b> kaj ties staton.",CURRENCY_WOT:"La <b>nombro de membroj</b> montras la gravecon de la komunumo kaj ebligas <b>sekvi ties evoluon</b>.",CURRENCY_MASS:"Sekvu ĉi tie la <b>ĉioman kvanton da mono</b> ekzistanta kaj ties <b>mezan distribuon</b> por membro.<br/><br/>Tio ĉi ebligas taksi la <b>gravecon de iu sumo</b>, kompare kun tio, kion <b>posedas la aliuloj</b> en sia konto (mezume).",CURRENCY_UNIT_RELATIVE:"La unuo uzata (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifas, ke la sumoj en {{currency|capitalize}} estis dividitaj per la <b> Universala Dividendo</b> (UD).<br/><br/><small>Tiu relativa unuo estas <b>trafa</b>, ĉar stabila malgraŭ la kvanto de mono, kiu kreskas seninterrompe.</small>",CURRENCY_CHANGE_UNIT:"La kromaĵo <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> ebligas <b>ŝanĝi la unuon</b>, por vidigi la sumojn <b>rekte en {{currency|capitalize}}</b> (prefere ol en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"La kromaĵo <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> ebligas <b>ŝanĝi la unuon</b>, por vidigi la sumojn en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, tio estas rilate al la Universala Dividendo (la sumo kunproduktita de ĉiu membro).",CURRENCY_RULES:"La <b>reguloj</b> de la mono fiksas ties funkciadon <b>ĝustan kaj antaŭvideblan</b>.<br/><br/>Vera DNA de la mono, ili igas sian monan kodon <b>legebla kaj travidebla</b>.",MENU_BTN_NETWORK:"La menuo <b>{{'MENU.NETWORK'|translate}}</b> ebligas konsulti la staton de la reto.",NETWORK_BLOCKCHAIN:"Ĉiuj operacioj pri la mono estas registritaj en granda konto-libro <b>publika kaj nefalsigebla</b>, ankaŭ nomata <b>blokĉeno</b> (<em>BlockChain</em> en la angla).",NETWORK_PEERS:"La <b>nodoj</b> videblaj ĉi tie rilatas al la <b>komputiloj, kiuj ĝisdatigas kaj kontrolas</b> la blokĉenon.<br/><br/>Ju pli estas nodoj, des pli la mono havas administradon <b>malcentrigitan</b> kaj fidindan.",NETWORK_PEERS_BLOCK_NUMBER:"Tiu ĉi <b>numero</b> (verda) indikas la <b>lastan blokon validigitan</b> por tiu ĉi nodo (lasta paĝo skribita en la granda konto-libro).<br/><br/>La verda koloro indikas, ke tiu ĉi bloko estas validigita ankaŭ de <b>la plej multaj el la aliaj nodoj</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Ĉiu membro</b>, ekipita per komputilo kun interreto, <b>povas partopreni aldonante nodon</b>. Sufiĉas <b>instali la programon Duniter</b> (libera kaj senpaga). <a href="{{installDocUrl}}" target="_system">Vidi la gvidilon pri instalado &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"La menuo <b>{{'ACCOUNT.TITLE'|translate}}</b> ebligas aliri la administradon de via konto.",MENU_BTN_ACCOUNT_MEMBER:"Konsultu ĉi tie la staton de via konto kaj la informojn pri viaj atestaĵoj.",WALLET_CERTIFICATIONS:"Alklaku ĉi tien por konsulti la detalon pri viaj atestaĵoj (ricevitaj kaj senditaj).",WALLET_RECEIVED_CERTIFICATIONS:"Alklaku ĉi tien por konsulti la detalon pri viaj <b>ricevitaj atestaĵoj</b>.",WALLET_GIVEN_CERTIFICATIONS:"Alklaku ĉi tien por konsulti la detalon pri viaj <b>senditaj atestaĵoj</b>.",WALLET_BALANCE:"La <b>saldo</b> de via konto afiŝiĝas tie ĉi.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>La uzata unuo (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifas, ke la sumo en {{currency|capitalize}} estis dividita per la <b>Universala Dividendo</b> (UD) kunkreita de ĉiu membro.<br/><br/>Nuntempe 1 UD valoras {{currentUD|formatInteger}} {{currency|capitalize}}j.",WALLET_BALANCE_CHANGE_UNIT:"Vi povos <b>ŝanĝi la unuon</b> afiŝitan por la sumoj en la <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Ekzemple por vidigi la sumojn <b>rekte en {{currency|capitalize}}</b>, prefere ol en relativa unuo.",WALLET_PUBKEY:"Jen la publika ŝlosilo de via konto. Vi povas sciigi ĝin al aliulo, por ke li identigu pli simple vian konton.",WALLET_SEND:"Efektivigi pagon per kelkaj klakoj.",WALLET_SEND_NO_MONEY:"Efektivigi pagon per kelkaj klakoj.<br/>(Via saldo ankoraŭ ne permesas tion)",WALLET_OPTIONS:"Tiu ĉi butono ebligas aliri la <b>agojn pri aliĝo</b> kaj sekureco.<br/><br/>Ne forgesu okulumi al ĝi!",WALLET_RECEIVED_CERTS:"Afiŝiĝos ĉi tie la listo de la personoj, kiuj atestis vin.",WALLET_CERTIFY:"La butono <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> ebligas elekti identecon kaj atesti ĝin.<br/><br/>Nur uzantoj <b>jam membroj</b> povas atesti aliajn.",WALLET_CERT_STOCK:"Via stoko da atestaĵoj (senditaj) estas limigita je <b>{{sigStock}} atestaĵoj</b>.<br/><br/>Tiu stoko plu evoluas laŭ la tempo, samtempe kiam la atestaĵoj malvalidiĝas.",MENU_BTN_TX_MEMBER:"La menuo <b>{{'MENU.TRANSACTIONS'|translate}}</b> ebligas konsulti vian konton, la liston de viaj spezoj, kaj sendi pagon.",MENU_BTN_TX:"Konsultu ĉi tie <b>la liston de viaj spezoj</b> kaj efektivigu novajn operaciojn.",MENU_BTN_WOT:"La menuo <b>{{'MENU.WOT'|translate}}</b> ebligas traserĉi inter la <b>uzantoj</b> de la mono (membroj aŭ ne).",WOT_SEARCH_TEXT_XS:"Por traserĉi en la kontaro, tajpu la <b>unuajn literojn de pseŭdonimo</b> (aŭ de publika ŝlosilo).<br/><br/>La serĉado ekos aŭtomate.",WOT_SEARCH_TEXT:"Por traserĉi en la kontaro, tajpu la <b>unuajn literojn de de pseŭdonimo</b> (aŭ de publika ŝlosilo). <br/><br/>Premu poste sur la klavon <b>Enigi</b> por ekigi la serĉadon.",WOT_SEARCH_RESULT:"Vidigu la detalan slipon simple <b>alklakante</b> linion.",WOT_VIEW_CERTIFICATIONS:"La linio <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> montras kiom da membroj validigis tiun ĉi identecon.<br/><br/>Tiuj atestaĵoj pruvas, ke la konto apartenas al <b>persono homa kaj vivanta</b>, havanta <b>neniun alian membro-konton</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Necesas almenaŭ <b>{{sigQty}} atestaĵoj</b> por fariĝi membro kaj ricevi la <b>Universalan Dividendon</b>.",
-WOT_VIEW_CERTIFICATIONS_CLICK:"Alklaki ĉi tien ebligas malfermi <b>la liston de ĉiuj atestaĵoj</b> de la identeco (ricevitaj kaj senditaj).",WOT_VIEW_CERTIFY:"La butono <b>{{'WOT.BTN_CERTIFY'|translate}}</b> ebligas aldoni vian atestaĵon al tiu identeco.",CERTIFY_RULES:"<b>Atenton:</b> Atestu nur <b>personojn fizikajn vivantajn</b>, posedantajn neniun alian membro-konton.<br/><br/>La sekureco de la mono dependas de ĉies atentego!",MENU_BTN_SETTINGS:"La <b>{{'MENU.SETTINGS'|translate}}</b> ebligos al vi agordi la programon.",HEADER_BAR_BTN_PROFILE:"Alklaku ĉi tien por aliri vian <b>uzanto-profilon.</b>",SETTINGS_CHANGE_UNIT:"Vi povos <b>ŝanĝi la afiŝ-unuon</b> de la sumoj alklakante ĉi-supren.<br/><br/>- Malaktivigu la kromaĵon por afiŝi sumojn en {{currency|capitalize}}.<br/>- Aktivigu la kromaĵon por relativa afiŝado en {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (ĉiuj sumoj estos <b>dividitaj</b> per la Universala Dividendo aktuala).",END_LOGIN:"Tiu ĉi gvidata vizito <b>finiĝis</b>!<br/><br/>Bonan daŭrigon al vi, en la nova mondo de la<b>libera ekonomio</b>!",END_NOT_LOGIN:"Tiu ĉi gvidata vizito <b>finiĝis</b>!<br/><br/>Se vi deziras partopreni en la mono {{currency|capitalize}}, sufiĉos al vi alklaki <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> ĉi-sube."}},API:{COMMON:{LINK_DOC:"Dokumentaro API",LINK_DOC_HELP:"Dokumentaro por la programistoj",LINK_STANDARD_APP:"Klasika versio",LINK_STANDARD_APP_HELP:"Malfermi la klasikan version de {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Nodo <b>{{server}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Kontrolu vian interretan konekton, aŭ kontaktu la administranton de la retejo</a>."},HOME:{TITLE:"Dokumentaro API {{'COMMON.APP_NAME'|translate}}",MESSAGE:'Bonvenon en la <b>dokumentaro de la API</b> {{\'COMMON.APP_NAME\'|translate}}.<br/>Konektu viajn retejojn al <a href="http://duniter.org" target="_system">Duniter</a> tre simple!',MESSAGE_SHORT:'Konektu viajn retejojn al <a href="http://duniter.org" target="_system">Duniter</a> tre simple!',DOC_HEADER:"Servoj disponeblaj:"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Reta pago",TITLE_SHORT:"Reta pago",SUMMARY:"Resumo de la pago:",AMOUNT:"Sumo:",AMOUNTS_HELP:"Bonvolu elekti la sumon:",NAME:"Nomo:",PUBKEY:"Publika ŝlosilo de la ricevonto:",COMMENT:"Referenco de la spezo:",NODE:"Adreso de la nodo:",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Demonstra moduso</b>: Neniu pago reale estos sendita dum tiu simulado.<br/>Bonvolu uzi la identigilojn: <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Kontrolu vian tajpaĵon.<br/>En demonstra moduso, la identigiloj estas: {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Pago sendita.<br/>Redirektiĝo al <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Pago sendita.<br/>Redirektiĝo al la retejo de la vendanto...",CANCEL_REDIRECTING_WITH_NAME:"Pago nuligita.<br/>Redirektiĝo al <b>{{name}}</b>...",CANCEL_REDIRECTING:"Pago nuligita.<br/>Redirektiĝo al la retejo de la vendanto..."},ERROR:{TRANSFER_FAILED:"Pago malsukcesa"}},DOC:{DESCRIPTION_DIVIDER:"Priskribo",URL_DIVIDER:"Adreso alvokita",PARAMETERS_DIVIDER:"Parametroj",AVAILABLE_PARAMETERS:"Jen la listo de la eblaj parametroj:",DEMO_DIVIDER:"Testi",DEMO_HELP:"Por testi tiun servon, alklaku la butonon ĉi-apude. La rezulto afiŝiĝos sube.",DEMO_RESULT:"Rezulto sendita de la alvoko:",DEMO_RESULT_PEER:"Adreso de la uzata nodo:",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Sukceso!',DEMO_CANCELLED:'<i class="icon ion-close"></i> Nuligita de la uzanto',INTEGRATE_DIVIDER:"Integri",INTEGRATE_CODE:"Kodo:",INTEGRATE_RESULT:"Antaŭvidigo de la rezulto:",INTEGRATE_PARAMETERS:"Parametroj",TRANSFER:{TITLE:"Pagoj",DESCRIPTION:"De retejo (ekz.: ret-vendado) vi povas komisii la pagon en libera mono al Cesium API. Por tio, sufiĉas al vi ekigi la malfermon de paĝo ĉe la sekvanta adreso:",PARAM_PUBKEY:"Publika ŝlosilo de la ricevonto",PARAM_PUBKEY_HELP:"Publika ŝlosilo de la ricevonto (devige)",PARAM_AMOUNT:"Sumo",PARAM_AMOUNT_HELP:"Sumo de la spezo (devige). Pluraj valoroj permesataj, uzante apartigilon (punkto-komo, vertikala streko aŭ spaco).",PARAM_COMMENT:"Referenco (aŭ komento)",PARAM_COMMENT_HELP:"Referenco aŭ komento. Tio ekzemple ebligos al vi identigi la pagon en la blokĉeno.",PARAM_NAME:"Nomo (de la ricevonto aŭ de la retejo)",PARAM_NAME_HELP:'La nomo de la ricevonto, aŭ de la retejo alvokanta. Tio povas estis legebla nomo ("Mia retejo"), aŭ alie pseŭdo-retadreso ("MiaRetejo.com").',PARAM_REDIRECT_URL:"Retadreso por redirektiĝo",PARAM_REDIRECT_URL_HELP:'Retadreso (URL) por redirektiĝo, alvokita kiam la pago estis sendita. Ĝi povas enteni la sekvantajn signojn, kiuj estos anstataŭigitaj per la valoroj de la spezo: "{tx}", "{hash}", "{comment}", "{amount}", "{pubkey}" kaj "{node}".',PARAM_CANCEL_URL:"Retadreso por nuligo",PARAM_CANCEL_URL_HELP:'Retadreso (URL) kaze de nuligo de la pago, fare de la uzanto. Ĝi povas enteni la sekvantajn signojn, kiuj estos anstataŭigitaj lastmomente: "{comment}", "{amount}" kaj {pubkey}.',PARAM_PREFERRED_NODE:"Adreso de la preferata nodo",PARAM_PREFERRED_NODE_HELP:'Adreso (URL) de la nodo Duniter preferinde uzota ("g1.domaine.com:443" aŭ "https://g1.domaine.com").',EXAMPLES_HELP:"Jen ekzemploj pri integrado:",EXAMPLE_BUTTON:"Butono HTML",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pagi en {{currency|currencySymbol}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Personigita stilo",EXAMPLE_BUTTON_TEXT_HELP:"Buton-teksto",EXAMPLE_BUTTON_BG_COLOR:"Fon-koloro",EXAMPLE_BUTTON_BG_COLOR_HELP:"Ekzemplo: #fbc14c, nigra, helgriza, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Teksto-koloro",EXAMPLE_BUTTON_FONT_COLOR_HELP:"Ekzemplo: nigra, oranĝa, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Ikono",EXAMPLE_BUTTON_TEXT_WIDTH:"Larĝeco",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"Ekzemplo: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"Neniu",EXAMPLE_BUTTON_ICON_DUNITER:"Insigno Duniter",EXAMPLE_BUTTON_ICON_CESIUM:"Insigno Cesium",EXAMPLE_BUTTON_ICON_G1_COLOR:"Insigno Ğ1",EXAMPLE_BUTTON_ICON_G1_BLACK:"Insigno Ğ1 (nigra)"}}}}),e.translations("es-ES",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"fecha: {{build}}",PUBKEY:"Llave pública",MEMBER:"Miembro",BLOCK:"Bloque",BTN_OK:"OK",BTN_YES:"Sí",BTN_NO:"No",BTN_SEND:"Enviar",BTN_SEND_MONEY:"Hacer una transferencia",BTN_SEND_MONEY_SHORT:"Transferencia",BTN_SAVE:"Guardar",BTN_YES_SAVE:"Sí, guardar",BTN_YES_CONTINUE:"Sí, continuar",BTN_SHOW:"Ver",BTN_SHOW_PUBKEY:"Ver la llave",BTN_RELATIVE_UNIT:"¿Mostrar las importes en DU?",BTN_BACK:"Anterior",BTN_NEXT:"Siguiente",BTN_IMPORT:"Importar",BTN_CANCEL:"Cancelar",BTN_CLOSE:"Cerrar",BTN_LATER:"Más tarde",BTN_LOGIN:"Connectarse",BTN_LOGOUT:"Desconexión",BTN_ADD_ACCOUNT:"Nueva cuenta",BTN_SHARE:"Compartir",BTN_EDIT:"Modificar",BTN_DELETE:"Suprimir",BTN_ADD:"Añadir",BTN_SEARCH:"Buscar",BTN_REFRESH:"Actualizar",BTN_RETRY:"Empezar de nuevo",BTN_START:"Empezar",BTN_CONTINUE:"Continuar",BTN_CREATE:"Crear",BTN_UNDERSTOOD:"Entendido",BTN_OPTIONS:"Opciones",BTN_HELP_TOUR:"Visita guiada",BTN_HELP_TOUR_SCREEN:"Descubrir esta pantalla",BTN_DOWNLOAD:"Descargar",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Descargar el estado de cuenta",BTN_MODIFY:"Modificar",CHOOSE_FILE:"Deposite archivo<br/>o clique para seleccionarlo",DAYS:"Días",NO_ACCOUNT_QUESTION:"¿Todavía no es miembro? ¡Crear una cuenta!",SEARCH_NO_RESULT:"Ningún resultado encontrado",LOADING:"Espere por favor...",LOADING_WAIT:"Espere por favor...<br/><small>(Esperando disponibilidad de nodo)</small>",SEARCHING:"Búsqueda en proceso...",FROM:"De",TO:"A",COPY:"Copiar",LANGUAGE:"Idioma",UNIVERSAL_DIVIDEND:"Dividendo universal",UD:"DU",DATE_PATTERN:"DD/MM/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(vacío)",UID:"Seudónimo",ENABLE:"Activado",DISABLE:"Desactivado",RESULTS_LIST:"Resultados:",RESULTS_COUNT:"{{count}} resultados",EXECUTION_TIME:"ejecutado en {{duration|formatDurationMs}}",SHOW_VALUES:"¿Publicar los valores no codificados?",POPOVER_ACTIONS_TITLE:"Opciones",POPOVER_FILTER_TITLE:"Filtros",SHOW_MORE:"Mostrar más",SHOW_MORE_COUNT:"(límite actual {{limit}})",POPOVER_SHARE:{TITLE:"Compartir",SHARE_ON_TWITTER:"Compartir en Twitter",SHARE_ON_FACEBOOK:"Compartir en Facebook",SHARE_ON_DIASPORA:"Compartir en Diaspora*",SHARE_ON_GOOGLEPLUS:"Compartir en Google+"},FILE:{DATE:"Fecha:",TYPE:"Tipo:",SIZE:"Tamaño:",VALIDATING:"Validación en progreso..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Elegir la fuente:",BTN_PICTURE_GALLERY:"Galería",BTN_PICTURE_CAMERA:"<b>Cámara</b>"},MENU:{HOME:"Recepción",WOT:"Directorio",CURRENCY:"Moneda",ACCOUNT:"Mi cuenta",WALLETS:"Mis monederos",TRANSFER:"Transferencia",SCAN:"Escáner",SETTINGS:"Configuraciones",NETWORK:"Red",TRANSACTIONS:"Mis operaciones"},ABOUT:{TITLE:"A propósito ",LICENSE:"Aplicación <b>libre</b> (licencia GNU AGPLv3).",LATEST_RELEASE:"Hay una <b>versión más nueva</b> de {{'COMMON.APP_NAME' | translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Por favor actualice {{'COMMON.APP_NAME' | translate}} (última versión: <b>v{{version}}</b>)",CODE:"Código fuente:",DEVELOPERS:"Desarrollado por:",FORUM:"Foro:",PLEASE_REPORT_ISSUE:"No dude en informarnos de las anomalías encontradas",REPORT_ISSUE:"Reportar un problema"},HOME:{TITLE:"Cesium",WELCOME:"Bienvenido(a) a la aplicación Cesium !",MESSAGE:"Seguir las cuentas de {{currency|abbreviate}} fácilmente",BTN_CURRENCY:"Explorar la moneda",BTN_ABOUT:"Acerca de:",BTN_HELP:"Ayuda en línea",REPORT_ISSUE:"anomalía",NOT_YOUR_ACCOUNT_QUESTION:'¿Usted no es dueño de la cuenta <<b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Desconectar esta cuenta",CONNECTION_ERROR:'Nodo <b>{{servidor}}</b> inalcanzable o dirección inválida.<br/><br/>Compruebe su conexión a Internet, o nodo de conmutación <a class="positive" ng-click="doQuickFix(\'settings\')">en la configuración</a>.'},SETTINGS:{TITLE:"Configuración",DISPLAY_DIVIDER:"Visualización",STORAGE_DIVIDER:"Almacenamiento",NETWORK_SETTINGS:"Red",PEER:"Dirección del nodo Duniter",PEER_CHANGED_TEMPORARY:"Dirección utilizada temporalmente",USE_LOCAL_STORAGE:"Activar el almacenamiento local",USE_LOCAL_STORAGE_HELP:"Permitir el ahorro de almacenamiento local",WALLETS_SETTINGS:"Mis monederos",USE_WALLETS_ENCRYPTION:"¿Asegurar la lista?",ENABLE_HELPTIP:"Activar las ayudas contextuales",ENABLE_UI_EFFECTS:"Activar los efectos visuales",HISTORY_SETTINGS:"Operaciones de cuentas",DISPLAY_UD_HISTORY:"¿Publicar los dividendos producidos?",TX_HISTORY_AUTO_REFRESH:"Activar actualización automática?",TX_HISTORY_AUTO_REFRESH_HELP:"Actualice el saldo y las operaciones automáticamente, en cada nuevo bloque.",AUTHENTICATION_SETTINGS:"Autenticación",KEEP_AUTH:"Caducidad de la autenticación",KEEP_AUTH_SHORT:"Caducidad",KEEP_AUTH_HELP:"Definir cuándo limpiar la memoria de autenticación.",KEEP_AUTH_OPTION:{NEVER:"Después de cada operación",SECONDS:"Después de {{value}} segundos de inactividad",MINUTE:"Después de {{value}}min de inactividad",MINUTES:"Después de {{value}}mins de inactividad",HOUR:"Después de {{value}}h de inactividad",ALWAYS:"Al finalizar la sesión"},KEYRING_FILE:"Archivo de llavero",REMEMBER_ME:"Recordarme",REMEMBER_ME_HELP:"Permite mantenerse siempre conectado (no recomendado), conservando localmente la llave pública.",PLUGINS_SETTINGS:"Extensiones",BTN_RESET:"Restaurar los valores por defecto",EXPERT_MODE:"Activar el modo experto",EXPERT_MODE_HELP:"Permite una visualización más detallada",POPUP_PEER:{TITLE:"Nodo Duniter",HOST:"Dirección",HOST_HELP:"Dirección: servidor:puerto",USE_SSL:"¿Segura?",USE_SSL_HELP:"(Cifrado SSL)",BTN_SHOW_LIST:"Lista de nodos"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Bloque #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Bloque corriente",TITLE:"Bloque #{{number|formatInteger}}",COMPUTED_BY:"Calculado por el nodo de",SHOW_RAW:"Ver el fichero en bruto",TECHNICAL_DIVIDER:"Informaciones técnicas",VERSION:"Versión del formato",HASH:"Hash calculado",UNIVERSAL_DIVIDEND_HELP:"Moneda co-producida por cada uno de los {{membersCount}} miembros",EMPTY:"Ningún dato en este bloque",POW_MIN:"Dificultad mínima",POW_MIN_HELP:"Dificultad impuesta por el cálculo del hash",DATA_DIVIDER:"Datos",IDENTITIES_COUNT:"Nuevas identidades",JOINERS_COUNT:"Nuevos miembros",ACTIVES_COUNT:"Renovaciones",ACTIVES_COUNT_HELP:"Miembros que han renovado sus adhesiones",LEAVERS_COUNT:"Miembros salientes",LEAVERS_COUNT_HELP:"Miembros salientes que ya no quieren estar certificados",EXCLUDED_COUNT:"Miembros excluidos",EXCLUDED_COUNT_HELP:"Antiguos miembros excluidos por no renovación o falta de certificaciones",REVOKED_COUNT:"Identidades revocadas",REVOKED_COUNT_HELP:"Estas cuentas no podrán ser miembros",TX_COUNT:"Transacciones",CERT_COUNT:"Certificaciones",TX_TO_HIMSELF:"Operación de cambio",TX_OUTPUT_UNLOCK_CONDITIONS:"Condiciones de desbloqueo",TX_OUTPUT_OPERATOR:{AND:"y",OR:"o"},TX_OUTPUT_FUNCTION:{SIG:"<b>Firma</b> de ",XHX:"<b>Contraseña</b>, cuyo SHA256 =",CSV:"Bloqueado durante",CLTV:"Bloqueado hasta"}},LOOKUP:{TITLE:"Bloques",NO_BLOCK:"Ningún bloque",LAST_BLOCKS:"últimos bloques:",BTN_COMPACT:"Compactar"}},CURRENCY:{VIEW:{TITLE:"Moneda",TAB_CURRENCY:"Moneda",TAB_WOT:"Red de confianza",TAB_NETWORK:"Red",TAB_BLOCKS:"Bloques",CURRENCY_SHORT_DESCRIPTION:"{{currency|abbreviate}} es una <b>moneda libre</b>, originada el {{firstBlockTime|formatFromNow}}. Ella cuenta actualmente <b>{{N}} miembros</b>, que producen y recibir un <a ng-click=\"showHelpModal('ud')\">Dividendo universal</a> (DU), cada {{dt|formatPeriod}}.",NETWORK_RULES_DIVIDER:"Reglas de la red",CURRENCY_NAME:"Nombre de la moneda",MEMBERS:"Cantidad de miembros",MEMBERS_VARIATION:"variaciones del último DU",MONEY_DIVIDER:"Moneda",MASS:"Masa monetaria",SHARE:"Masa por miembro",UD:"Dividendo universal",C_ACTUAL:"Crecimiento actual",MEDIAN_TIME:"Hora de la blockchain",POW_MIN:"Nivel mínimo de dificultad de cálculo",MONEY_RULES_DIVIDER:"Reglas de la moneda",C_RULE:"Crecimiento teórico objetivo",UD_RULE:"Cálculo del dividendo universal",DT_REEVAL:"Periodo de revalorización del DU",REEVAL_SYMBOL:"reval",DT_REEVAL_VALUE:"Todos los <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Fecha de la primera revalorización",SIG_QTY_RULE:"Número de certificaciones requeridas para ser miembro",SIG_STOCK:"Número máximo de certificaciones emitidas por miembros",SIG_PERIOD:"Plazo mínimo de espera entre 2 certificaciones sucesivas emitidas por la misma persona",SIG_WINDOW:"Plazo límite para tomar en cuenta una certificación",SIG_VALIDITY:"Duración de una certificación que se ha tenido en cuenta.",MS_WINDOW:"Duración límite para toma en cuenta de una adhesión",MS_VALIDITY:"Duración de una certificación",STEP_MAX:"Distancia máxima entre un nuevo entrante y los miembros referentes",WOT_RULES_DIVIDER:"Reglas de la red de confianza",SENTRIES:"Cantidad de certificaciones necesarias para ser miembro referente",SENTRIES_FORMULA:"Cantidad de certificaciones necesarias para ser miembro referente (fórmula)",XPERCENT:"Porcentaje mínimo de miembros referentes necesario para respetar la regla de distancia",AVG_GEN_TIME:"Tiempo medio entre dos bloques",CURRENT:"actual",MATH_CEILING:"TECHO",DISPLAY_ALL_RULES:"¿Ver todas las reglas?",BTN_SHOW_LICENSE:"Ver la licencia",WOT_DIVIDER:"Red de confianza"},LICENSE:{TITLE:"Licencia de la moneda",BTN_DOWNLOAD:"Descagar el fichero",NO_LICENSE_FILE:"Fichero de licencia no encontrado."}},NETWORK:{VIEW:{MEDIAN_TIME:"Hora de la blockchain",LOADING_PEERS:"Cargando los nodos...",NODE_ADDRESS:"Dirección:",SOFTWARE:"Software:",WARN_PRE_RELEASE:"prelanzamiento (última versión estable: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Versión <b>{{version}}</b> disponible",WS2PID:"ID:",PRIVATE_ACCESS:"Acceso privado",POW_PREFIX:"Prefijo de la prueba de trabajo:",ENDPOINTS:{BMAS:"Interfaz segura (SSL)",BMATOR:"Interfaz red TOR",WS2P:"Interfaz WS2P",ES_USER_API:"Nodo de datos Cesium+"}},INFO:{ONLY_SSL_PEERS:"La visualización de los nodos sin SSL está deteriorada porque Cesium funciona en modo HTTPS."}},PEER:{PEERS:"Nodos",SIGNED_ON_BLOCK:"Firmado sobre el bloque",MIRROR:"espejo",MIRRORS:"Espejo",MIRROR_PEERS:"Nodos espejo",PEER_LIST:"Lista de nodos",MEMBERS:"Miembro",MEMBER_PEERS:"Nodos miembro",ALL_PEERS:"Todos los nodos",DIFFICULTY:"Dificultad",API:"API",CURRENT_BLOCK:"Bloque #",POPOVER_FILTER_TITLE:"Filtro",OFFLINE:"Fuera de línea",OFFLINE_PEERS:"Nodos fuera de línea",BTN_SHOW_PEER:"Ver nodo",VIEW:{TITLE:"Nodo",OWNER:"Propiedad de",SHOW_RAW_PEERING:"Ver la mapa de red",SHOW_RAW_CURRENT_BLOCK:"Ver el último bloque (formato bruto)",LAST_BLOCKS:"Bloques recientes",KNOWN_PEERS:"Nodos conocidos:",GENERAL_DIVIDER:"Información general",ERROR:{LOADING_TOR_NODE_ERROR:"No se pudo obtener la información del nodo usando la red TOR.",LOADING_NODE_ERROR:"No se pudo obtener la información del nodo"}}},WOT:{SEARCH_HELP:"Buscar (seudónimo o llave pública)",SEARCH_INIT_PHASE_WARNING:"Durante la etapa de preinscripción, el tiempo de búsqueda de las inscripciones en espera <b>puede ser largo</b>. Gracias por su paciencia...",REGISTERED_SINCE:"Registrado en",REGISTERED_SINCE_BLOCK:"Registrado en el bloque #",NO_CERTIFICATION:"Ninguna certificación validada",NO_GIVEN_CERTIFICATION:"Ninguna certificación emitida",NOT_MEMBER_PARENTHESIS:"(no miembro)",IDENTITY_REVOKED_PARENTHESIS:"(identidad revocada)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(revocación en proceso)",EXPIRE_IN:"Expira el",NOT_WRITTEN_EXPIRE_IN:"Fecha límite<br/>de procesamiento",EXPIRED:"Expirado",PSEUDO:"Seudónimo",SIGNED_ON_BLOCK:"Emitida en el bloque #{{block}}",WRITTEN_ON_BLOCK:"Escrita en el bloque #{{block}}",GENERAL_DIVIDER:"Informaciones generales",NOT_MEMBER_ACCOUNT:"Cuenta no miembro",NOT_MEMBER_ACCOUNT_HELP:"Se trata de un simple monedero, sin solicitud de adhesión en espera.",TECHNICAL_DIVIDER:"Informaciones técnicas",BTN_CERTIFY:"Certificar",BTN_YES_CERTIFY:"Sí, certificar",BTN_SELECT_AND_CERTIFY:"Nueva certificación",ACCOUNT_OPERATIONS:"Operaciones de cuenta",VIEW:{POPOVER_SHARE_TITLE:"Identidad {{title}}"},LOOKUP:{TITLE:"Directorio",NEWCOMERS:"Nuevos miembros:",NEWCOMERS_COUNT:"{{count}} miembros",PENDING:"Inscripciones en espera:",PENDING_COUNT:"{{count}} inscripciones en espera",REGISTERED:"Inscrito {{sigDate | formatFromNow}}",MEMBER_FROM:"Miembro desde {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Nuevos miembros",BTN_PENDING:"Inscripciones en espera",SHOW_MORE:"Mostrar más",SHOW_MORE_COUNT:"(límite actual a {{limit}})",NO_PENDING:"Ninguna inscripción en espera.",NO_NEWCOMERS:"Ningun miembro."},CONTACTS:{TITLE:"Contactos"},MODAL:{TITLE:"Buscar"},CERTIFICATIONS:{TITLE:"{{uid}} - Certificaciones",SUMMARY:"Certificaciones recibidas",LIST:"Detalle de las certificaciones recibidas",PENDING_LIST:"Certificaciones en espera de tratamiento",RECEIVED:"Certificaciones recibidas",RECEIVED_BY:"Certificaciones recibidas por {{uid}}",ERROR:"Certificaciones recibidas por error",SENTRY_MEMBER:"Miembro referente"},OPERATIONS:{TITLE:"{{uid}} - Operaciones"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certificaciones emitidas",SUMMARY:"Certificaciones emitidas",LIST:"Detalle de las certificaciones emitidas",PENDING_LIST:"Certificaciones en espera a ser procesadas",SENT:"Certificaciones emitidas",SENT_BY:"Certificaciones emitidas por {{uid}}",ERROR:"Certificaciones emitidas por error"}},LOGIN:{TITLE:'<i class="icon ion-locked"></i> Conexión',SCRYPT_FORM_HELP:"Ingrese sus credenciales.<br>Recuerde verificar que la clave pública es su cuenta.",PUBKEY_FORM_HELP:"Por favor ingrese una clave de cuenta pública:",FILE_FORM_HELP:"Elija el archivo de llavero para usar:",SCAN_FORM_HELP:"Escanee el código QR de la monedero.",SALT:"Identificador secreto",SALT_HELP:"Identificador secreto",SHOW_SALT:"¿Visualizar el identificador secreto?",PASSWORD:"Frase secreta",PASSWORD_HELP:"Frase secreta",PUBKEY_HELP:"llave pública",NO_ACCOUNT_QUESTION:"¿Aún no tiene cuenta?",HAVE_ACCOUNT_QUESTION:"¿Ya tienes una cuenta?",CREATE_ACCOUNT:"Crear una cuenta",CREATE_FREE_ACCOUNT:"Crear una cuenta gratis",FORGOTTEN_ID:"¿Olvidó su frase secreta?",ASSOCIATED_PUBKEY:"Clave pública del llavero:",BTN_METHODS:"Otros métodos",BTN_METHODS_DOTS:"Método de cambio...",METHOD_POPOVER_TITLE:"Métodos",MEMORIZE_AUTH_FILE:"Recuerda este llavero al momento de la sesión de navegación",SCRYPT_PARAMETERS:"Configuraciones (Scrypt) :",AUTO_LOGOUT:{TITLE:"Información",MESSAGE:'<i class="ion-android-time"></i> Se ha <b>desconectado</b> de forma automática, después de un periodo de inactividad prolongada.',BTN_RELOGIN:"Volver a conectarme",IDLE_WARNING:"Se desconectará en... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Identificación predeterminada",SCRYPT_ADVANCED:"Sallaje avanzado",FILE:"Archivo llavero",PUBKEY:"Solo clave pública",SCAN:"Escanear un código QR"},SCRYPT:{SIMPLE:"Ligero",DEFAULT:"Predeterminado",SECURE:"Seguro",HARDEST:"El más seguro",EXTREME:"Extremo",USER:"Personalizado",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Formato de archivo esperado: <b>.yml</b> o <b>.dunikey</b> (tipo PubSec, WIF o EWIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> AAutenticación',BTN_AUTH:"Autenticar",GENERAL_HELP:"Por favor, autentíquese:",EXPECTED_UID_HELP:'Por favor inicie sesión en la cuenta de <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Por favor, autentifíquese en la monedero <i class="ion-key"></i> {{pubkey|formatPubkey}} :',SCAN_FORM_HELP:"Escanee el código QR de la <b>clave privada</b> de la monedero."},ACCOUNT:{TITLE:"Mi cuenta",BALANCE:"Saldo",LAST_TX:"última validadas transacción",BALANCE_ACCOUNT:"Saldo de la cuenta",NO_TX:"Ninguna transacción",SHOW_MORE_TX:"Mostrar más",SHOW_ALL_TX:"Mostrar todo",TX_FROM_DATE:"(límite actual a {{fromTime|medianFromNowShort}})",PENDING_TX:"Transacciones en proceso de se procesadas",VALIDATING_TX:"Transacciones validadas",ERROR_TX:"Transacciones no ejecutadas",ERROR_TX_SENT:"Transacciones ejecutadas fallidas",PENDING_TX_RECEIVED:"Tansacciones en espera de recepción",EVENTS:"Eventos",WAITING_MEMBERSHIP:"Solicitud de adhesión emitida. En espera de aceptación.",WAITING_CERTIFICATIONS:"Debe obtener {{needCertificationCount}} certificación(es) para ser miembro.",WILL_MISSING_CERTIFICATIONS:"Pronto le van a <b>faltar certificaciones</b> (al menos {{willNeedCertificationCount}} son necesarias)",WILL_NEED_RENEW_MEMBERSHIP:"Su adhesión como miembro <b>va a expirar {{membershipExpiresIn|formatDurationTo}}</b>. Piense en <a ng-click=\"doQuickFix('renew')\">renovar su adhesión</a> mientras tanto.",NEED_RENEW_MEMBERSHIP:"No es miembro porque su adhesión <b>ha expirado</b>. Piense en <a ng-click=\"doQuickFix('renew')\">renovar su adhesión</a>.",NO_WAITING_MEMBERSHIP:"No hay adhesión miembro en espera. Si desea <b>convertirse en miembro</b>, por favor <a ng-click=\"doQuickFix('membership')\">envíe su adhesión como miembro</a>.",CERTIFICATION_COUNT:"Certificaciones recibidas",CERTIFICATION_COUNT_SHORT:"Certificaciones",SIG_STOCK:"Certificaciones emitidas",BTN_RECEIVE_MONEY:"Recibir",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Cambiar a otra identidad...",BTN_FIX_MEMBERSHIP:"Volver a enviar la adhesión...",BTN_MEMBERSHIP_RENEW:"Renovar la adhesión",BTN_MEMBERSHIP_RENEW_DOTS:"Renovar la adhesión...",BTN_MEMBERSHIP_OUT_DOTS:"Cancelar la adhesión...",BTN_SECURITY_DOTS:"Cuenta y securidad...",BTN_SHOW_DETAILS:"Publicar la información técnica",LOCKED_OUTPUTS_POPOVER:{TITLE:"Importe bloqueado",DESCRIPTION:"Aquí están las condiciones para desbloquear este importe:",DESCRIPTION_MANY:"Esta transacción esta compuesta de varias partes, cuyas condiciones de desbloqueo son:",LOCKED_AMOUNT:"Condiciones del importe:"},NEW:{TITLE:"Inscripción",INTRO_WARNING_TIME:"Crear una cuenta en {{name|capitalize}} es muy simple. Sin embargo, por favor tome el tiempo suficiente para dar correctamente este paso (no olvidar los identificadores, frase secreta, etc.).",INTRO_WARNING_SECURITY:"Asegúrece de que el equipo que utiliza actualmente (ordenador, tableta, teléfono) <b>es seguro y digno de confianza</b>.",INTRO_WARNING_SECURITY_HELP:"Actualizaciones de antivirus, firewall activado, sesión protegidos por contraseña o código PIN, etc.",INTRO_HELP:"Haga clic en <b>{{'COMMON.BTN_START'|translate}}</b> para iniciar la creación de la cuenta. Se le guiará paso a paso.",REGISTRATION_NODE:"Su registro será grabado a través del nodo Duniter <b>{{server}}</b>, que luego se transmitirá al resto del sistema de la moneda.",REGISTRATION_NODE_HELP:"Si usted no confía en este nodo, <a ng-click=\"doQuickFix('settings')\">cambie la configuración</a> de Cesium.",SELECT_ACCOUNT_TYPE:"Elegir el tipo de cuenta a crear:",MEMBER_ACCOUNT:"Cuenta miembro",MEMBER_ACCOUNT_TITLE:"Crear una cuenta miembro",MEMBER_ACCOUNT_HELP:"Si aún no está inscrito como un individuo (Solamente una cuenta posible por individuo).",WALLET_ACCOUNT:"Simple monedero",WALLET_ACCOUNT_TITLE:"Crear una cuenta simple",WALLET_ACCOUNT_HELP:"Monedero simple para todos los otros casos, por ejemplo si necesita una cuenta suplementaria.<br/>El Dividendo Universal no será producido para esta cuenta.",SALT_WARNING:"Elija su identificador secreto.<br/>Se solicitará cada vez que se conectará con esta cuenta.<br/><br/><b>Retenga bien este identificador secreto</b>.<br/>¡En caso de pérdida, nadie podrá acceder a su cuenta!",PASSWORD_WARNING:"Elija su frase secreta.<br/>Se solicitará cada vez que se conectará con esta cuenta.<br/><br/><b>Retenga bien esta frase secreta</b>.<br/>¡En caso de pérdida, nadie podrá acceder su cuenta!",PSEUDO_WARNING:"Elija un seudónimo.<br/>Sirve para que los otros miembros puedan encontrarlo más fácilmente.<br/><br/>No debe contener <b>ni espacios ni caracteres acentuados</b>.<div class='hidden-xs'><br/>Ejemplo: <span class='gray'>SophieDupond, MarcelChemin, etc.</span>",PSEUDO:"Seudónimo",PSEUDO_HELP:"Seudónimo",SALT_CONFIRM:"Confirmación",SALT_CONFIRM_HELP:"Confirmación del identificador secreto",PASSWORD_CONFIRM:"Confirmación",PASSWORD_CONFIRM_HELP:"Confirmación de la frase secreta",SLIDE_6_TITLE:"Confirmación:",COMPUTING_PUBKEY:"Cálculo en proceso...",LAST_SLIDE_CONGRATULATION:"<b>¡Bien!</b> Ha introducido todas los datos necesarias.<br/><b>Puede solicitar</b> la creación de su cuenta.</b><br/><br/>Para su información, la llave pública que se muestra más abajo identificará su futura cuenta.<br/>Esta podrá ser comunicada a terceros para recibir sus pagos.<br/>Sin embargo, <b>no es útil</b> anotarla aquí.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Advertencia:</b> el identificador secreto, la frase secreta y el seudónimo no podrán estar modificados.<br/><b>¡Asegúrese siempre de recordarlos!</b><br/><br/><b>¿Está usted seguro</b> de querer solicitar la inscripción?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Advertencia:</b> el identificador secreto y la frase secreta no podrán estar modificados.<br/><b>¡Asegúrese de recordarlos siempre!</b><br/><br/><b>¿Está usted seguro</b> de querer continuar con estos identificadores?',CHECKING_PSEUDO:"Comprobar de disponibilidad...",PSEUDO_AVAILABLE:"Este nombre está disponible",PSEUDO_NOT_AVAILABLE:"Este nombre de usuario no está disponible",INFO_LICENSE:"Para unirse a la moneda, le pedimos leer y aceptar esta licencia.",BTN_ACCEPT:"Acepto",BTN_ACCEPT_LICENSE:"Acepto la licencia"},POPUP_REGISTER:{TITLE:"Elija un seudónimo",HELP:"Un seudónimo es obligatorio para ser miembro."},SELECT_IDENTITY_MODAL:{TITLE:"Selección de identidad",HELP:'Se han enviado varias <b>identidades diferentes</b> para la clave pública <span class="gray"><i class="ion-key"></i>{{pubkey | formatPubkey}}</span>.<br/>Por favor, selecciona la carpeta para usar:'},SELECT_WALLET_MODAL:{TITLE:"Selección de monedero"},WALLET_LIST:{TITLE:"Mis monederos",BTN_NEW:"Añadir un monedero",BTN_DOWNLOAD:"Descargue la lista",BTN_IMPORT_FILE_DOTS:"Importar desde un archivo...",NO_WALLET:"Sin monedero secundaria",BTN_DELETE:"Eliminar una monedero secundaria...",BTN_RENAME:"Renombrar el monedero",EXPORT_FILENAME:"monederos-{{pubkey|formatPubkey}}-{{currency}}.csv",EDIT_POPOVER:{TITLE:"Renombrar el monedero",HELP:"Completa el nuevo nombre",NAME_HELP:"Nombre de la monedero"}},SECURITY:{ADD_QUESTION:"Añadir una pregunta personalizada",BTN_CLEAN:"Limpiar",BTN_RESET:"Reinicializar",DOWNLOAD_REVOKE:"Grabar un fichero de revocación",HELP_LEVEL:"Para generar un fichero de respaldo de sus identificadores, elija <strong> al menos {{nb}} preguntas:</strong>",LEVEL:"Nivel de seguridad",LOW_LEVEL:'Bajo <span class="hidden-xs">(mínimo dos preguntas)</span>',MEDIUM_LEVEL:'Medio <span class="hidden-xs">(mínimo cuatro preguntas)</span>',QUESTION_1:"¿Cómo se llamaba su mejor amigo de la adolescencia?",QUESTION_2:"¿Cómo se llamaba su primer animal de compañía?",QUESTION_3:"¿Cuál es el primer plato que aprendió a cocinar?",QUESTION_4:"¿Cuál es la primera película que vió en un cine?",QUESTION_5:"¿Cuál era el destino del primer avión que cogió?",QUESTION_6:"¿Cómo se llamaba su maestro favorito en la escuela primaria?",QUESTION_7:"¿Cuál sería para usted el mejor oficio?",QUESTION_8:"¿Cuál es su libro para niños preferido?",QUESTION_9:"¿Cuál fue el modelo de su primer vehículo?",QUESTION_10:"¿Cuál fue su sobrenombre cuando era niña(o)?",QUESTION_11:"¿Cuál fue su personaje o actor/actriz preferido/a cuando era estudiante?",QUESTION_12:"¿Cuál fue su cantante o grupo preferido/a cuando era estudiante?",QUESTION_13:"¿En qué ciudad sus padres se encontraron?",QUESTION_14:"¿Cómo se llamaba su primer jefe?",QUESTION_15:"¿Cómo se llama la calle donde creció?",QUESTION_16:"¿Cómo se llama la primera playa donde se bañó?",QUESTION_17:"¿Cuál es el primer álbum que compró?",QUESTION_18:"¿Cuál es el nombre de su equipo deportivo preferido?",QUESTION_19:"¿Cuál fue el oficio de su abuelo?",RECOVER_ID:"Recuperar sus identificadores",REVOCATION_WITH_FILE:"Revocar una identidad a partir de un fichero",REVOCATION_WITH_FILE_DESCRIPTION:"Si ha perdido las credenciales de su cuenta de miembro de forma permanente (o la seguridad de la cuenta se ve comprometida), puede usar <b>el archivo de revocación de la cuenta</b> para forzar publicación final de la web de confianza.",REVOCATION_WITH_FILE_HELP:"Para <b>revocar permanentemente</b> una cuenta de miembro, arrastre el archivo de revocación en el cuadro siguiente o haga clic en el cuadro para buscar un archivo.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",REVOCATION_WALLET:"Revocar esta identidad",SAVE_ID:"Grabar sus identificadores",STRONG_LEVEL:'Alto <span class="hidden-xs ">(6 preguntas mínimo)</span>',TITLE:"Cuenta y seguridad"},FILE_NAME:"{{currency}} - Estado de cuenta {{pubkey|formatPubkey}} a {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Fecha",AMOUNT:"Cantidad",COMMENT:"Comentario"}},TRANSFER:{TITLE:"Transferencia",SUB_TITLE:"Hacer una transferencia",FROM:"De",TO:"A",AMOUNT:"Importe",AMOUNT_HELP:"Importe",COMMENT:"Comentario",COMMENT_HELP:"Comentario",BTN_SEND:"Enviar",BTN_ADD_COMMENT:"Añadir un comentario",REST:"Resto de cuenta",REST_TO:"a",WARN_COMMENT_IS_PUBLIC:"Tenga en cuenta que los <b>comentarios son públicos</b> (sin encriptar).",MODAL:{TITLE:"Transferencia"}},ERROR:{UNKNOWN_URI_FORMAT:"Formato URI desconocido",PUBKEY_INVALID_CHECKSUM:"Clave pública no válida (suma de comprobación incorrecta).",POPUP_TITLE:"Error",UNKNOWN_ERROR:"Error desconocido",CRYPTO_UNKNOWN_ERROR:"Su navegador parece incompatible con las funcionalidades de cryptografía.",DOWNLOAD_KEYFILE_FAILED:"Error al generar el archivo de llavero.",EQUALS_TO_PSEUDO:"Debe ser diferente del seudónimo.",EQUALS_TO_SALT:"Debe ser diferente del identificador secreto.",FIELD_REQUIRED:"Campo obligatorio.",FIELD_TOO_SHORT:"Valor demasiado corta.",FIELD_TOO_SHORT_WITH_LENGTH:"Valor demasiado corta ({{minLength}} carácteres mín)",FIELD_TOO_LONG:"Valor demasiado largo",FIELD_TOO_LONG_WITH_LENGTH:"Valor demasiado largo, ({{maxLength}} carácteres máx)",FIELD_MIN:"Valor mínimo: {{min}}",FIELD_MAX:"Valor máximo: {{max}}",FIELD_ACCENT:"Caracteres acentuados y comas no autorizados",FIELD_NOT_NUMBER:"Valor numérico esperado",FIELD_NOT_INT:"Valor entero esperado",FIELD_NOT_EMAIL:"Email no válido",PASSWORD_NOT_CONFIRMED:"No corresponde a la frase secreta.",SALT_NOT_CONFIRMED:"No corresponde al identificador secreto.",SEND_IDENTITY_FAILED:"Error de la inscripción.",SEND_CERTIFICATION_FAILED:"Error de la certificación.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"No se puede certificar, porque su cuenta no <b>es miembro</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"No se puede certificar, porque su cuenta ya no es miembro.<br/><br/>Todavía faltan certificaciones, o ahora no son validas.",NOT_MEMBER_FOR_CERTIFICATION:"Su cuenta todavía no es miembro.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Cuenta no certificable. No se ha solicitado la adhesión, o no fue renovada.",LOGIN_FAILED:"Error durante la autentificación.",LOAD_IDENTITY_FAILED:"Error de carga de la identidad.",LOAD_REQUIREMENTS_FAILED:"Error de carga de las condiciones de la identidad.",SEND_MEMBERSHIP_IN_FAILED:"Error en el intento de entrada en la comunidad.",SEND_MEMBERSHIP_OUT_FAILED:"Error en la interrupción de adhesión.",REFRESH_WALLET_DATA:"Error en la actualización del monedero.",GET_CURRENCY_PARAMETER:"Error en la recuperación de las reglas de moneda.",GET_CURRENCY_FAILED:"Carga de la moneda imposible. Por favor, intente más tarde.",SEND_TX_FAILED:"Error en la transferencia.",ALL_SOURCES_USED:"Por favor, espera el cálculo del bloque siguiente (Todas sus fuentes de moneda fueron utilizada).",NOT_ENOUGH_SOURCES:"No lo bastante cambio para mandar este importe en una sola transacción.<br/>Importe máximo: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error en la creación de la cuenta miembro.",RESTORE_WALLET_DATA_ERROR:"Error en la recarga de las configuración desde el almacenamiento local",LOAD_WALLET_DATA_ERROR:"Error en la carga de los datos del monedero.",COPY_CLIPBOARD_FAILED:"Copia de la valor imposible.",TAKE_PICTURE_FAILED:"Error en la recuperación de la foto.",SCAN_FAILED:"Error en el escán del Codigo QR",SCAN_UNKNOWN_FORMAT:"Codigo no reconocido.",WOT_LOOKUP_FAILED:"Error en la búsqueda",LOAD_PEER_DATA_FAILED:"Lectura del nodo Duniter imposible. Por favor, intente más tarde.",NEED_LOGIN_FIRST:"Por favor, conéctese en primer lugar.",AMOUNT_REQUIRED:"El importe es obligatorio.",AMOUNT_NEGATIVE:"Importe negativo no autorizado.",NOT_ENOUGH_CREDIT:"Crédito insuficiente.",INVALID_NODE_SUMMARY:"Nodo ilocalizable o dirección inválida.",INVALID_USER_ID:"El seudónimo no debe contener ni espacios ni caracteres especiales o acentuado.",INVALID_COMMENT:"El campo 'referencia’ no debe contener carácteres acentuados.",INVALID_PUBKEY:"La clave pública no tiene el formato esperado.",INVALID_PUBKEY_CHECKSUM:"Suma de comprobación inválida.",IDENTITY_REVOKED:"Esta identidad <b>fue revocada</b>. No puede estar miembro.",IDENTITY_REVOKED_WITH_TIME:"Esta identidad <b>fue revocada {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). No puede estar miembro.",IDENTITY_PENDING_REVOCATION:"La <b>revocación de esta identidad</b> fue solicitado y esta en espera de tratamiento. Por lo que, la certificación es desactivada.",IDENTITY_INVALID_BLOCK_HASH:"Esta solicitud de adhesión no es valida (porque denomina un bloque los nodos de la red han anulado): esta persona debe renovelar su solicitud de adhesión <b>antes que</b> estar certificada.",IDENTITY_EXPIRED:"La publicación de esta identidad ha caducada: esta persona debe realizar una nueva solicitud de adhesión <b>antes que</b> estar certificada.",IDENTITY_SANDBOX_FULL:"EL nodo Duniter utilizado por Cesium ya no puede recibir más nuevas identidades, porque la fila de espera es llena.<br/><br/>Por favor, intenta ulteriormente o cambia de nodo (vía el menú <b>Paramètres</b>).",IDENTITY_NOT_FOUND:"Identidad no encontrada",IDENTITY_TX_FAILED:"Las operaciones de carga fallidos",WOT_PENDING_INVALID_BLOCK_HASH:"Adhesión no validada.",WALLET_INVALID_BLOCK_HASH:"Su solicitud de adhesión ya no está validada (porque denomina un bloque los nodos de la red han anulado).<br/>Debe <a ng-click=\"doQuickFix('fixMembership')\">mandar una nueva solicitud</a> para resolver este problema.",WALLET_IDENTITY_EXPIRED:"La publicación de <b>su identidad ha caducada</b>.<br/>Debe <a ng-click=\"doQuickFix('fixIdentity')\">publicar une outra vez su identidad</a> para resolver este problema.",WALLET_REVOKED:"Su identidad fue <b>revocada</b>: ni su seudónimo ni su llave pública podrán estar utilizados en el futuro por una cuenta miembro.",WALLET_HAS_NO_SELF:"Su identidad debe en primer lugar haber estado publicado, y no estar caducada.",AUTH_REQUIRED:"Autenticación requerida.",AUTH_INVALID_PUBKEY:"La llave pública no se corresponde con la cuenta conectada",AUTH_INVALID_SCRYPT:"De usuario o contraseña no válidos.",AUTH_INVALID_FILE:"archivo de llave no válido.",AUTH_FILE_ERROR:"No se pudo abrir el archivo de llave",IDENTITY_ALREADY_CERTIFY:"Ha <b>ya certificado</b> esta identidad.<br/><br/>Esta certificación todavía es valida (expiration {{expiresIn|formatDurationTo}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Ha <b>ya certificado</b> esta identidad.<br/><br/>Esta certificación está en espera de tratamiento (fecha límite de tratamiento {{expiresIn|formatDurationTo}}).",UNABLE_TO_CERTIFY_TITLE:"Certificación imposible",LOAD_NEWCOMERS_FAILED:"Error el la carga de los miembros nuevos.",LOAD_PENDING_FAILED:"Error el la carga de las inscripciones en espera.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Debe <b>estar miembro</b> para poder realizar esta acción.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Debe haber <b>publicado su identidad</b> para poder realizar esta acción.",GET_BLOCK_FAILED:"Error en la recuperación del bloque",INVALID_BLOCK_HASH:"Bloque no encontrado (hash diferente)",DOWNLOAD_REVOCATION_FAILED:"Debe seleccionar un fichero de texto",REVOCATION_FAILED:"Error en la revocación.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Identificador secreto o contraseña incorrectos",RECOVER_ID_FAILED:"Error en la recuperación de los identificadores",LOAD_FILE_FAILED:"Error en la carga del fichero",NOT_VALID_REVOCATION_FILE:"Archivo de revocación no válido (formato de archivo erróneo)",NOT_VALID_SAVE_ID_FILE:"Archivo no válido (formato de archivo erróneo)",NOT_VALID_KEY_FILE:"Archivo no válido (formato de archivo erróneo)",EXISTING_ACCOUNT:"Su frase secreta corresponde a una cuenta existente, la <a ng-click=\"showHelpModal('pubkey')\">clave pública</a> es:",EXISTING_ACCOUNT_REQUEST:"Por favor, cambie su frase secreta para que coincida con una cuenta sin usar.",GET_LICENSE_FILE_FAILED:"Error al obtener el archivo de licencia",CHECK_NETWORK_CONNECTION:"Ningún nodo parece alcanzable.<br/><br/><b>Compruebe la conexión a Internet</b>.",INVALID_FILE_FORMAT:"Formato de archivo inválido.",SAME_TX_RECIPIENT:"El destinatario debe ser diferente del emisor."},INFO:{POPUP_TITLE:"Información",CERTIFICATION_DONE:"Certificación enviada",NOT_ENOUGH_CREDIT:"Crédito insuficiente",TRANSFER_SENT:"Transferencia enviada",COPY_TO_CLIPBOARD_DONE:"Copia realizada",MEMBERSHIP_OUT_SENT:"Anulación enviada",NOT_NEED_MEMBERSHIP:"Ya es miembro.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Esta identidad pronto va a necesitar certificaciones (al menos {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"Esta identidad no envió una solicitud de membresía. Ella tendrá que hacerlo si desea hacerse miembro.",HAS_ALTERNATIVE_IDENTITIES:"Hay <b>identidades múltiples</b> adjuntas a esta clave pública. <b>Antes de cualquier certificación</b>, <a ng-click=\"doQuickFix('showSelectIdentities')\">verifique otras identidades</a> para elegir la correcta o comuníquese con el propietario de la cuenta.",REVOCATION_SENT:"Revocación enviada",REVOCATION_SENT_WAITING_PROCESS:"La <b>revocación de esta identidad</b> fue solicitada y está en espera de ser procesada.",FEATURES_NOT_IMPLEMENTED:"Esta funcionalidad todavía está en proceso de desarrollo.<br/><br/>¿Por qué no <b>contribuir a Cesium</b>, para obtenerla más rápido? ;)",EMPTY_TX_HISTORY:"Ninguna operación a exportar"},CONFIRM:{POPUP_TITLE:"<b>Confirmación</b>",POPUP_WARNING_TITLE:"<b>Advertencia</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Advertencia de seguridad</b>',CERTIFY_RULES_TITLE_UID:"Certificar {{uid}}",CERTIFY_RULES:'<b class="assertive">NO CERTIFICAR</b> una cuenta si piense que :<br/><br/><ul><li>1.) no corresponde a una persona <b>física y viviente</b>.<li>2.) su propietario <b>posee una otra cuenta</b> ya certificada.<li>3.) su propietario viola (voluntariamente o no) la regla 1 o 2 (por ejemplo certificando cuentas falsas o duplicadas).</ul><br/><b>¿Está usted seguro</b> sin embargo querer certificar esta identidad?',TRANSFER:"<b>Recapitulativo de la transferencia</b>:<br/><br/><ul><li> - De: {{from}}</li><li> - A: <b>{{to}}</b></li><li> - Importe: <b>{{amount}} {{unit}}</b></li><li> - Comentario: <i>{{comment}}</i></li></ul><br/><b>¿Está usted seguro de querer realizar esta transferencia?</b>",TRANSFER_ALL:"<b>Recapitulativo de la transferencia</b>:<br/><br/><ul><li> - De: {{from}}</li><li> - A: <b>{{to}}</b></li><li> - Importe: <b>{{amount}} {{unit}}</b></li><li> - Comentario: <i>{{comment}}</i></li><br/><li> - Resto: <b>{{restAmount}} {{unit}}</b> para <b>{{restTo}}</b></li></ul><br/><b>¿Está usted seguro de querer realizar esta transferencia?</b>",MEMBERSHIP_OUT:"Esta operación es <b>irreversible</b>.<br/></br/>¿Está usted seguro querer <b>anular su cuenta miembro</b>?",MEMBERSHIP_OUT_2:"¡Esta operación es <b>irreversible</b>!<br/><br/>¿Está usted seguro querer <b>anular su adhesión</b> como miembro?",LOGIN_UNUSED_WALLET_TITLE:"¿Error de introducción de datos?",LOGIN_UNUSED_WALLET:"Está usted conectado a une cuenta que parece <b>inactiva</b>.<br/><br/>Si esta cuenta no corresponde a la suya, se trata probablemente de un <b>error al introducir los datos</b> de sus identificadores de conexión.<br/></br/><b>¿Quiere usted sin embargo continuar con esta cuenta?</b>",FIX_IDENTITY:"El seudónimo <b>{{uid}}</b> va a ser publicado de nuevo, en reemplazo del antiguo que caducó.<br/></br/><b>¿Está usted seguro</b> de querer continuar?",FIX_MEMBERSHIP:"Su solicitud de adhesión como miembro va a ser enviada de nuevo.<br/></br/><b>¿Está usted seguro</b>de querer continuar?",MEMBERSHIP:"Se enviará su solicitud de membresía como miembro.<br/></br/><b>¿Está usted seguro</b>de querer continuar?",RENEW_MEMBERSHIP:"Su adhesión como miembro va a estar renovada.<br/></br/><b>¿Está usted seguro</b>de querer continuar?",REVOKE_IDENTITY:"Va a <b>revocar definitivamente esta identidad</b>.<br/><br/>La llave pública y el seudónimo asociados <b>jamás podrán ser utilizados</b> (para una cuenta miembro). <br/></br/><b>¿Está usted seguro</b> de querer revocar definitivamente esta cuenta?",REVOKE_IDENTITY_2:"¡Esta operación es <b>irreversible</b>!<br/><br/>¿Está usted seguro de querer <b>revocar definitivamente</b> esta cuenta?",NOT_NEED_RENEW_MEMBERSHIP:"Su adhesión no necesita ser renovada (solo va a caducar en {{membershipExpiresIn|formatDuration}}).<br/></br/><b>¿Está usted segura(o)</b> de querer renovar su adhesión?",SAVE_BEFORE_LEAVE:"¿Quiere usted <b>guardar sus cambios</b> antes dejar la página?",SAVE_BEFORE_LEAVE_TITLE:"Cambios no registrados",LOGOUT:"¿Está usted segura(o) de querer desconectarse?",USE_FALLBACK_NODE:"Nodo <b>{{edad}}</ b> inalcanzable o no válido.<br/><br/>¿Desea utilizar temporalmente el nodo <b>{{nuevo}}</b>?"},DOWNLOAD:{POPUP_TITLE:"<b>Revocación del archivo</b>",POPUP_REVOKE_MESSAGE:"Para proteger su cuenta, descargar el <b>documento de revocación de cuenta</b>. Si se necesita cancelar su cuenta (en caso de robo, cambio de identificador, una cuenta falsa creada, etc.).<br/><br/><b>Por favor, almacénelo en un lugar seguro.</b>"},HELP:{TITLE:"Ayuda en línea",JOIN:{SECTION:"Inscripción",SALT:'El identificador secreto es muy importante. Sirve para mezclar la frase secreta, antes de calcular la <span class="text-italic">llave pública</span> de su cuenta (su número) y la llave secreta para acceder a esta.<br/><b>Por favor, memorícelo muy bien</b> porque actualmente no existe ninguna manera para encontrarlo en caso de pérdida.<br/>Por otra parte, no puede ser modificado sin tener que crear una nueva cuenta.<br/><br/>Un buen identificador secreto debe ser suficientemente largo (al menos 8 carácteres) y lo más original posible.',PASSWORD:"La frase secreta es muy importante. Junto al identificador secreto, sirve a calcular el número (la llave pública) de su cuenta, y la llave secreta para acceder a ella.<br/><b>Por favor, memorícela muy bien</b> porque actualmente no existe ninguna manera para encontrarla en caso de pérdida (excepto el generar un fichero de respaldo).<br/>Por otra parte, no puede ser modificado sin deber creer una nueva cuenta.<br/><br/>Una buena frase secreta contiene (idealmente) al menos 8 carácteres, del que al menos una mayúscula y un número.",PSEUDO:'El seudónimo es solamente utilizado en caso de inscripción como <span class="text-italic">miembro</span>. Siempre es asociado a un monedero (vía su <span class="text-italic">llave pública</span>).<br/>El seudónimo se publica en la red para que los otros usuarios puedan identificarlo, certificarlo o enviar dinero a la cuenta.<br/>Un seudónimo debe ser único dentro de los miembros (<u>actuales</u> y antiguos).'},GLOSSARY:{SECTION:"Glosario",PUBKEY_DEF:"Una llave pública identifica un monedero. Puede identificar un miembro. En Cesium se calcula con el identificador y la frase secreta.",MEMBER:"Miembro",MEMBER_DEF:'Un miembro es una persona humana física y viviente, deseosa de participar libremente a la comunidad monetaria. Percibe un dividendo universal, dependiendo de un período y un importe definido en las <span class="text-italic">reglas de la moneda</span>',CURRENCY_RULES:"Reglas de la moneda",CURRENCY_RULES_DEF:'Las reglas de la moneda son definidas una sola vez por todas. Establecen el funcionamiento de la moneda: el cálculo del dividendo universal, la cantidad de certificaciones necesarias para ser miembro, la cantidad máxima de certificaciones que un miembro puede emitir, etc. <a href="#/app/currency">Ver las reglas actuales</a>.<br/> Una <span class="text-italic">BlockChain</span> que soporta y ejecuta estas reglas, y verifica continuamente su buena aplicación, hace posible que ellas no se modifiquen en el tiempo.',BLOCKCHAIN:'Cadena de bloques (<span class="text-italic">Blockchain</span>)',BLOCKCHAIN_DEF:'La BlockChain es un sistema descentralizado, que, para el caso de Duniter, sirve a mantener y ejecutar las <span class="text-italic">reglas de la moneda</span>.<br/><a href="http://duniter.org" target="_system">Saber más a proposito de Duniter</a> y el funcionamiento de su blockchain.',UNIVERSAL_DIVIDEND_DEF:'El Dividendo Universal (DU) es la cantidad de moneda co-creada por cada miembro, dependiendo del periodo y del cálculo definidos en las <span class="text-italic">reglas de la moneda</span>.<br/>En cada periodo, los miembros reciben en sus cuentas la misma cantidad de dinero.<br/><br/>El DU crece regularmente, para ser justo entre los miembros (actuales y futuros), calculado en función de la esperanza de vida media, como demostrado en la Théorie Relative de la Monnaie (TRM) = Teoría Relativa de la Moneda, aún no está traducida en español, contáctenos para contribuir a su traducción.<br/><a href="http://trm.creationmonetaire.info">Saber más a propósito de la TRM</a> y las monedas libres.'},TIP:{MENU_BTN_CURRENCY:"El menú <b>{{'MENU.CURRENCY'|translate}}</b> permite consultar las <b>reglas de la moneda</b> y su estado.",CURRENCY_WOT:"El <b>número de miembros</b> demuestra la importancia de la comunidad y permite <b>seguir su evolución</b>.",CURRENCY_MASS:"Siga aquí la <b>cantidad total de moneda</b> existente y su <b>distribución media</b> por miembro.<br/><br/>Esto permite juzgar la <b>importancia de un importe</b>, en relación con lo que <b>poseen los otros</b> en sus cuentas (como media).",CURRENCY_UNIT_RELATIVE:"La unidad utilizada (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa que los importes en {{currency|capitalize}} han sido divididos entre el valor del <b>Dividendo Universal</b> (DU).<br/><br/><small> Esta unidad relativa es <b>pertinente</b>, porque permanece estable, independiente de la cantidad de moneda que aumenta constantemente.</small>",CURRENCY_CHANGE_UNIT:"Este botón permite <b>cambiar la unidad</b>, para visualizar los importes <b>directamente en {{currency|capitalize}}</b> (en lugar de &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"Este botón permite <b>cambiar la unidad</b>, para visualizar los importes en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, es decir, relativo al Dividendo Universal (el monto co-producido por cada miembro).",CURRENCY_RULES:"Las <b>reglas</b> de la moneda fijan su funcionamiento <b>exacto y previsible</b>.<br/><br/>Es el propio ADN de la moneda, que hace que su código monetario sea <b>legible y transparente</b>.",MENU_BTN_NETWORK:"El menú <b>{{'MENU.NETWORK'|translate}}</b> permite consultar el estado de la red.",NETWORK_BLOCKCHAIN:"Todas las operaciones de la moneda están registradas dentro de un grand libro de cuenta <b>público e infalsificable</b>, también llamado <b>cadena de bloques</b> (<em>BlockChain</em> en inglés).",NETWORK_PEERS:"Los <b>nodos</b> visibles aquí corresponden a los <b>ordenadores que actualizan y controlan</b> la cadena de bloques.<br/><br/>Entre más nodos estén conectados, la moneda tendrá una gestión más <b>descentralizada</b> y digna de confianza.",NETWORK_PEERS_BLOCK_NUMBER:"Este <b>número</b> (en verde) indica el <b>último bloque validado</b> por este nodo (última pagina escrita dentro del grand libro de cuentas).<br/><br/>El color verde indica que este bloque ha sido también validado por <b>la mayoría de los otros nodos</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Cada miembro</b>, equipado de un ordenador conectador a Internet, <b>puede participar añadiendo un nodo</b>.  Necesita <b>instalar el programa Duniter</b> (libre y gratis). <a href="{{installDocUrl}}" target="_system">Ver el manual de uso &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"El menú <b>{{'ACCOUNT.TITLE'|translate}}</b> permite acceder a la gestión de su cuenta.",MENU_BTN_ACCOUNT_MEMBER:"Consulte aquí el estado de su cuenta y la información sobre sus certificaciones.",WALLET_CERTIFICATIONS:"Haga clic aquí para consultar el detalle de sus certificaciones (recibidas y emitidas).",WALLET_RECEIVED_CERTIFICATIONS:"Haga clic aquí para consultar el detalle de sus <b>certificaciones recibidas</b>.",WALLET_GIVEN_CERTIFICATIONS:"Haga clic aquí para consultar el detalle de sus <b>certificaciones emitidas</b>.",WALLET_BALANCE:"El <b>saldo</b> de su cuenta se visualiza aquí.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>La unidad utilizada (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa que el importe en {{currency|capitalize}} fue dividido entre el <b>Dividendo Universal</b> (DU) co-producido por cada miembro.<br/><br/>Actualmente un DU vale {{currentUD|formatInteger}} {{currency|capitalize}}s.",WALLET_BALANCE_CHANGE_UNIT:"Podrá <b>cambiar la unidad</b> de visualización de los importes en los <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Por ejemplo, para visualizar los importes <b>directamente en {{currency|capitalize}}</b>, en lugar de unidad relativa.",WALLET_PUBKEY:"Esta es la llave pública de su cuenta. Puede comunicarla a un tercero para que pueda identificar su cuenta de forma simple.",WALLET_SEND:"Realizar un pago en algunos clics",WALLET_SEND_NO_MONEY:"Realizar un pago en algunos clics.<br/>(Su saldo ya no lo permite)",WALLET_OPTIONS:"Este botón permite acceder a las <b>acciones de adhesión</b> y de seguridad.<br/><br/>¡No olvide echar un vistazo!",WALLET_RECEIVED_CERTS:"Se exhibirá aquí la lista de las personas que le han certificado.",WALLET_CERTIFY:"El botón <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> permite seleccionar una identidad y certificarla.<br/><br/>Sólo usuarios <b>miembros</b> pueden certificar a otros.",WALLET_CERT_STOCK:"Su stock de certificaciones (emitidas) es limitado a <b>{{sigStock}} certificaciones</b>.<br/><br/>Este stock se renueva con el tiempo, a medida que las certificaciones caducan.",MENU_BTN_TX_MEMBER:"El menú <b>{{'MENU.TRANSACTIONS'|translate}}</b> permite consultar su saldo, el historial de sus transacciones y mandar un pago.",MENU_BTN_TX:"Consulte aquí <b>el historial de sus transacciones</b> y efectúe nuevas operaciones.",MENU_BTN_WOT:"El menú <b>{{'MENU.WOT'|translate}}</b> permite buscar <b>usuarios</b> de la moneda (miembro o no).",WOT_SEARCH_TEXT_XS:"Para buscar en el directorio, escribe las <b>primeras letras de un seudónimo</b> (o de una llave pública).<br/><br/>La búsqueda se iniciará automáticamente.",WOT_SEARCH_TEXT:"Para buscar en el directorio, escribe las <b>primeras letras de un seudónimo</b> (o de una llave pública). <br/><br/>Luego, pulsa en la tecla <b>Entrada</b> para iniciar la búsqueda.",WOT_SEARCH_RESULT:"Visualiza la ficha detallada simplemente <b>haciendo un clic</b> sobre una línea.",WOT_VIEW_CERTIFICATIONS:"La línea <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> muestra cuántos miembros han validado esta identidad.<br/><br/>Estas certificaciones atestiguan que la cuenta pertenece a <b>una persona humana viviente</b> y que no tenga <b>ninguna otra cuenta miembro</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Necesita al menos <b>{{sigQty}} certificaciones</b> para ser miembro y recibir el <b>Dividendo Universal</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Un clic aquí permite abrir <b>la lista de todas las certificaciones</b> de la identidad (recibidas y emitidas).",WOT_VIEW_CERTIFY:"El botón <b>{{'WOT.BTN_CERTIFY'|translate}}</b> permite añadir su certificación a esta identidad.",CERTIFY_RULES:"<b>Atención:</b> Certificar solamente <b>personas físicas vivas</b>, que no posean ninguna otra cuenta miembro.<br/><br/>¡La seguridad de la moneda depende de la vigilancia de cada uno!",MENU_BTN_SETTINGS:"Los <b>{{'MENU.SETTINGS'|translate}}</b> le permitirán configurar la aplicación.",HEADER_BAR_BTN_PROFILE:"Haga un clic aquí para acceder a su <b>perfil de usuario</b>",SETTINGS_CHANGE_UNIT:"Podrá <b>cambiar la unidad de visualización</b> de los importes haciendo un clic más arriba.<br/><br/>- Desactive la opción para visualizar los importes en {{currency|capitalize}}.<br/>- Active la opción para visualizar los importes relativos al {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (todos los importes serán <b>dividido</b> entre el Dividendo Universal actual).",END_LOGIN:"¡La visita guiada ha <b>terminado</b>!<br/><br/>¡Buena suerte en este nuevo mundo de la <b>economía libre</b> !",END_NOT_LOGIN:"¡La visita guiada ha <b>terminado</b>!<br/><br/>Si quiere utilizar la moneda {{currency|capitalize}}, tiene que hacer un clic en <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> más abajo."}}}),e.translations("fr-FR",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"date : {{build}}",PUBKEY:"Clé publique",MEMBER:"Membre",BLOCK:"Bloc",BTN_OK:"OK",BTN_YES:"Oui",BTN_NO:"Non",BTN_SEND:"Envoyer",BTN_SEND_MONEY:"Faire un virement",BTN_SEND_MONEY_SHORT:"Virement",BTN_SAVE:"Enregistrer",BTN_YES_SAVE:"Oui, Enregistrer",BTN_YES_CONTINUE:"Oui, Continuer",BTN_SHOW:"Voir",BTN_SHOW_PUBKEY:"Afficher la clé publique",BTN_RELATIVE_UNIT:"Afficher les montants en DU ?",BTN_BACK:"Retour",BTN_NEXT:"Suivant",BTN_IMPORT:"Importer",BTN_CANCEL:"Annuler",BTN_CLOSE:"Fermer",BTN_LATER:"Plus tard",BTN_LOGIN:"Se connecter",BTN_LOGOUT:"Déconnexion",BTN_ADD_ACCOUNT:"Nouveau compte",BTN_SHARE:"Partager",BTN_EDIT:"Modifier",BTN_DELETE:"Supprimer",BTN_ADD:"Ajouter",BTN_SEARCH:"Rechercher",BTN_REFRESH:"Actualiser",BTN_RETRY:"Recommencer",BTN_START:"Commencer",BTN_CONTINUE:"Continuer",BTN_CREATE:"Créer",BTN_UNDERSTOOD:"J'ai compris",BTN_OPTIONS:"Options",BTN_HELP_TOUR:"Visite guidée",BTN_HELP_TOUR_SCREEN:"Découvrir cet écran",BTN_DOWNLOAD:"Télécharger",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Télécharger le relevé du compte",BTN_MODIFY:"Modifier",CHOOSE_FILE:"Déposez votre fichier <br/>ou cliquez pour le sélectionner",DAYS:"jours",NO_ACCOUNT_QUESTION:"Pas encore de compte ? Créez-en un gratuitement !",SEARCH_NO_RESULT:"Aucun résultat trouvé",LOADING:"Veuillez patienter...",LOADING_WAIT:"Veuillez patienter...<br/><small>(Attente de disponibilité du noeud)</small>",SEARCHING:"Recherche en cours...",FROM:"De",TO:"À",COPY:"Copier",LANGUAGE:"Langue",UNIVERSAL_DIVIDEND:"Dividende universel",UD:"DU",DATE_PATTERN:"DD/MM/YY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(vide)",UID:"Pseudonyme",ENABLE:"Activé",DISABLE:"Désactivé",RESULTS_LIST:"Résultats",RESULTS_COUNT:"{{count}} résultats",EXECUTION_TIME:"exécuté en {{duration|formatDurationMs}}",SHOW_VALUES:"Afficher les valeurs en clair ?",POPOVER_ACTIONS_TITLE:"Options",POPOVER_FILTER_TITLE:"Filtres",SHOW_MORE:"Afficher plus",SHOW_MORE_COUNT:"(limite actuelle à {{limit}})",POPOVER_SHARE:{TITLE:"Partager",SHARE_ON_TWITTER:"Partager sur Twitter",SHARE_ON_FACEBOOK:"Partager sur Facebook",SHARE_ON_DIASPORA:"Partager sur Diaspora*",SHARE_ON_GOOGLEPLUS:"Partager sur Google+"},FILE:{DATE:"Date :",TYPE:"Type :",SIZE:"Taille :",VALIDATING:"Validation en cours..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Choisir la source :",BTN_PICTURE_GALLERY:"Galerie",BTN_PICTURE_CAMERA:"<b>Caméra</b>"},MENU:{HOME:"Accueil",WOT:"Annuaire",CURRENCY:"Monnaie",ACCOUNT:"Mon compte",WALLETS:"Mes portefeuilles",TRANSFER:"Virement",SCAN:"Scanner",SETTINGS:"Paramètres",NETWORK:"Réseau",TRANSACTIONS:"Mes opérations"},ABOUT:{TITLE:"À propos",LICENSE:"Application <b>libre</b> (Licence GNU AGPLv3).",LATEST_RELEASE:"Il existe une <b>version plus récente</b> de {{'COMMON.APP_NAME'|translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Veuillez mettre à jour {{'COMMON.APP_NAME'|translate}} (dernière version : <b>v{{version}}</b>)",CODE:"Code source :",OFFICIAL_WEB_SITE:"Site web officiel :",DEVELOPERS:"Développé par :",FORUM:"Forum :",PLEASE_REPORT_ISSUE:"N'hésitez pas à nous remonter les anomalies rencontrées",REPORT_ISSUE:"Remonter un problème",BTN_OPEN_DEV_WINDOW:"Ouvrir la fenêtre de debuggage"},HOME:{TITLE:"Cesium",WELCOME:"Bienvenue dans l'application Cesium !",MESSAGE:"Recevez et envoyez de la monnaie libre {{currency|abbreviate}}",BTN_CURRENCY:"Explorer la monnaie {{name|abbreviate}}",BTN_ABOUT:"à propos",BTN_HELP:"Aide en ligne",REPORT_ISSUE:"anomalie",NOT_YOUR_ACCOUNT_QUESTION:'Vous n\'êtes pas propriétaire du compte <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b> ?',BTN_CHANGE_ACCOUNT:"Déconnecter ce compte",CONNECTION_ERROR:'Nœud <b>{{server}}</b> injoignable ou adresse invalide.<br/><br/>Vérifiez votre connexion Internet, ou changer de nœud <a class="positive" ng-click="doQuickFix(\'settings\')">dans les paramètres</a>.'},SETTINGS:{TITLE:"Paramètres",DISPLAY_DIVIDER:"Affichage",STORAGE_DIVIDER:"Stockage",NETWORK_SETTINGS:"Réseau",PEER:"Adresse du nœud Duniter",PEER_SHORT:"Adresse du nœud",PEER_CHANGED_TEMPORARY:"Adresse utilisée temporairement",USE_LOCAL_STORAGE:"Activer le stockage local",USE_LOCAL_STORAGE_HELP:"Permet de sauvegarder vos paramètres",WALLETS_SETTINGS:"Mes portefeuilles",USE_WALLETS_ENCRYPTION:"Sécuriser la liste ?",USE_WALLETS_ENCRYPTION_HELP:"Permet de sécuriser la liste de vos portefeuilles (par chiffrement), en exigeant une authentification pour y accéder.",ENABLE_HELPTIP:"Activer les bulles d'aide contextuelles",ENABLE_UI_EFFECTS:"Activer les effets visuels",HISTORY_SETTINGS:"Mes opérations",DISPLAY_UD_HISTORY:"Afficher les dividendes produits ?",TX_HISTORY_AUTO_REFRESH:"Rafraîchir automatiquement",TX_HISTORY_AUTO_REFRESH_HELP:"Rafraîchit le solde et les opérations automatiquement, à chaque nouveau bloc du réseau.",AUTHENTICATION_SETTINGS:"Authentification",KEEP_AUTH:"Désauthentification automatique",KEEP_AUTH_SHORT:"Désauthentification",KEEP_AUTH_HELP:"Définit le moment où l'authentification est nettoyée de la mémoire.",KEEP_AUTH_OPTION:{NEVER:"Après chaque opération",SECONDS:"Après {{value}}s d'inactivité",MINUTE:"Après {{value}}min d'inactivité",MINUTES:"Après {{value}}min d'inactivité",HOUR:"Après {{value}}h d'inactivité",ALWAYS:"A la fin de la session"},KEYRING_FILE:"Fichier de trousseau",KEYRING_FILE_HELP:'Permet de vous <b>connecter</b> automatiquement à chaque lancement<br/>et même de vous <b>authentifier</b> (seulement si "Expiration de l\'authentification" est configurée "à la fin de la session").',REMEMBER_ME:"Se souvenir de moi ?",REMEMBER_ME_HELP:"Permet de rester identifié d'une session à l'autre, en conservant localement la clé publique.",PLUGINS_SETTINGS:"Extensions",BTN_RESET:"Restaurer les valeurs par défaut",EXPERT_MODE:"Activer le mode expert",EXPERT_MODE_HELP:"Permet un affichage plus détaillé.",BLOCK_VALIDITY_WINDOW:"Délai d'incertitude des blocs",BLOCK_VALIDITY_WINDOW_SHORT:"Délai d'incertitude",BLOCK_VALIDITY_WINDOW_HELP:"Délai avant de considérer qu'une information est validée",BLOCK_VALIDITY_OPTION:{NONE:"Aucun délai",N:"{{time | formatDuration}} ({{count}} blocs)"},POPUP_PEER:{TITLE:"Nœud Duniter",HOST:"Adresse",HOST_HELP:"Adresse : serveur:port",USE_SSL:"Sécurisé ?",USE_SSL_HELP:"(Chiffrement SSL)",BTN_SHOW_LIST:"Liste des noeuds"}},BLOCKCHAIN:{HASH:"Hash : {{hash}}",VIEW:{HEADER_TITLE:"Bloc #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Bloc courant",TITLE:"Bloc #{{number|formatInteger}}",COMPUTED_BY:"Calculé par le noeud de",SHOW_RAW:"Voir le fichier brut",TECHNICAL_DIVIDER:"Informations techniques",VERSION:"Version du format",HASH:"Hash calculé",UNIVERSAL_DIVIDEND_HELP:"Monnaie co-produite par chacun des {{membersCount}} membres",EMPTY:"Aucune donnée dans ce bloc",POW_MIN:"Difficulté minimale",POW_MIN_HELP:"Difficulté imposée pour le calcul du hash",DATA_DIVIDER:"Données",IDENTITIES_COUNT:"Nouvelles identités",JOINERS_COUNT:"Nouveaux membres",ACTIVES_COUNT:"Renouvellements",ACTIVES_COUNT_HELP:"Membres ayant renouvelé leur adhésion",LEAVERS_COUNT:"Membres sortants",LEAVERS_COUNT_HELP:"Membres ne souhaitant plus de certification",EXCLUDED_COUNT:"Membres exclus",EXCLUDED_COUNT_HELP:"Anciens membres exclus par non renouvellement ou manque de certifications",REVOKED_COUNT:"Identités révoquées",REVOKED_COUNT_HELP:"Ces comptes ne pourront plus être membres",TX_COUNT:"Transactions",CERT_COUNT:"Certifications",TX_TO_HIMSELF:"Opération de change",TX_OUTPUT_UNLOCK_CONDITIONS:"Conditions de déblocage",TX_OUTPUT_OPERATOR:{AND:"et",OR:"ou"},TX_OUTPUT_FUNCTION:{SIG:"<b>Signature</b> de ",XHX:"<b>Mot de passe</b>, dont SHA256 =",CSV:"Bloqué pendant",CLTV:"Bloqué jusqu'à"}},LOOKUP:{TITLE:"Blocs",NO_BLOCK:"Aucun bloc",LAST_BLOCKS:"Derniers blocs :",BTN_COMPACT:"Compacter"}},CURRENCY:{VIEW:{TITLE:"Monnaie",TAB_CURRENCY:"Monnaie",TAB_WOT:"Toile de confiance",TAB_NETWORK:"Réseau",TAB_BLOCKS:"Blocs",CURRENCY_SHORT_DESCRIPTION:"{{currency|abbreviate}} est une <b>monnaie libre</b>, démarrée {{firstBlockTime|formatFromNow}}. Elle compte actuellement <b>{{N}} membres</b>, qui produisent et perçoivent un <a ng-click=\"showHelpModal('ud')\">Dividende Universel</a> (DU), chaque {{dt|formatPeriod}}.",NETWORK_RULES_DIVIDER:"Règles du réseau",CURRENCY_NAME:"Nom de la monnaie",MEMBERS:"Nombre de membres",MEMBERS_VARIATION:"Variation depuis le dernier DU",MONEY_DIVIDER:"Monnaie",MASS:"Masse monétaire",SHARE:"Masse par membre",UD:"Dividende universel",C_ACTUAL:"Croissance actuelle",MEDIAN_TIME:"Heure de la blockchain",POW_MIN:"Niveau minimal de difficulté de calcul",MONEY_RULES_DIVIDER:"Règles de la monnaie",C_RULE:"Croissance théorique cible",UD_RULE:"Calcul du dividende universel",DT_REEVAL:"Période de revalorisation du DU",REEVAL_SYMBOL:"reval",DT_REEVAL_VALUE:"Tous les <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Date de la 1ère revalorisation",SIG_QTY_RULE:"Nombre de certifications requises pour devenir membre",SIG_STOCK:"Nombre maximal de certifications émises par membre",SIG_PERIOD:"Délai minimal d'attente entre 2 certifications successives émises par une même personne",SIG_WINDOW:"Délai limite de prise en compte d'une certification",SIG_VALIDITY:"Durée de vie d'une certification qui a été prise en compte",MS_WINDOW:"Délai limite de prise en compte d'une demande d'adhésion comme membre",MS_VALIDITY:"Durée de vie d'une adhésion qui a été prise en compte",STEP_MAX:"Distance maximale, par les certifications, entre un nouvel entrant et les membres référents",WOT_RULES_DIVIDER:"Règles de la toile de confiance",SENTRIES:"Nombre de certifications (émises <b>et</b> reçues) pour devenir membre référent",SENTRIES_FORMULA:"Nombre de certifications (émises <b>et</b> reçues) pour devenir membre référent (formule)",XPERCENT:"Pourcentage minimum de membres référents à atteindre pour respecter la règle de distance",AVG_GEN_TIME:"Temps moyen entre deux blocs",CURRENT:"actuel",MATH_CEILING:"PLAFOND",DISPLAY_ALL_RULES:"Afficher toutes les règles ?",BTN_SHOW_LICENSE:"Voir la licence",WOT_DIVIDER:"Toile de confiance"},LICENSE:{TITLE:"Licence de la monnaie",BTN_DOWNLOAD:"Télécharger le fichier",NO_LICENSE_FILE:"Fichier de licence non trouvé."}},NETWORK:{VIEW:{MEDIAN_TIME:"Heure de la blockchain",LOADING_PEERS:"Chargement des noeuds...",NODE_ADDRESS:"Adresse :",SOFTWARE:"Logiciel",WARN_PRE_RELEASE:"Pré-version (dernière version stable : <b>{{version}}</b>)",WARN_NEW_RELEASE:"Version <b>{{version}}</b> disponible",WS2PID:"Identifiant :",PRIVATE_ACCESS:"Accès privé",POW_PREFIX:"Préfixe de preuve de travail :",ENDPOINTS:{BMAS:"Interface sécurisée (SSL)",BMATOR:"Interface réseau TOR",WS2P:"Interface WS2P",ES_USER_API:"Noeud de données Cesium+"}},INFO:{ONLY_SSL_PEERS:"Les noeuds non SSL ont un affichage dégradé, car Cesium fonctionne en mode HTTPS."}},PEER:{PEERS:"Nœuds",SIGNED_ON_BLOCK:"Signé sur le bloc",MIRROR:"miroir",MIRRORS:"Miroirs",MIRROR_PEERS:"Nœuds miroirs",PEER_LIST:"Liste des nœuds",MEMBERS:"Membres",MEMBER_PEERS:"Nœuds membres",ALL_PEERS:"Tous les nœuds",DIFFICULTY:"Difficulté",API:"API",CURRENT_BLOCK:"Bloc #",POPOVER_FILTER_TITLE:"Filtre",OFFLINE:"Hors ligne",OFFLINE_PEERS:"Nœuds hors ligne",BTN_SHOW_PEER:"Voir le nœud",VIEW:{TITLE:"Nœud",OWNER:"Appartient à",SHOW_RAW_PEERING:"Voir la fiche de pair",SHOW_RAW_CURRENT_BLOCK:"Voir le dernier bloc (format brut)",LAST_BLOCKS:"Derniers blocs connus",KNOWN_PEERS:"Nœuds connus :",GENERAL_DIVIDER:"Informations générales",ERROR:{LOADING_TOR_NODE_ERROR:"Récupération des informations du noeud impossible. Le délai d'attente est dépassé.",LOADING_NODE_ERROR:"Récupération des informations du noeud impossible"}}},WOT:{SEARCH_HELP:"Recherche (pseudo ou clé publique)",SEARCH_INIT_PHASE_WARNING:"Durant la phase de pré-inscription, la recherche des inscriptions en attente <b>peut être longue</b>. Merci de patienter...",REGISTERED_SINCE:"Inscrit le",REGISTERED_SINCE_BLOCK:"Inscrit au bloc #",NO_CERTIFICATION:"Aucune certification validée",NO_GIVEN_CERTIFICATION:"Aucune certification émise",NOT_MEMBER_PARENTHESIS:"(non membre)",IDENTITY_REVOKED_PARENTHESIS:"(identité révoquée)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(en cours de révocation)",EXPIRE_IN:"Expiration",NOT_WRITTEN_EXPIRE_IN:"Date limite<br/>de traitement",EXPIRED:"Expiré",PSEUDO:"Pseudonyme",SIGNED_ON_BLOCK:"Emise au bloc #{{block}}",WRITTEN_ON_BLOCK:"Ecrite au bloc #{{block}}",GENERAL_DIVIDER:"Informations générales",NOT_MEMBER_ACCOUNT:"Compte simple (non membre)",NOT_MEMBER_ACCOUNT_HELP:"Il s'agit d'un simple portefeuille, sans demande d'adhésion en attente.",TECHNICAL_DIVIDER:"Informations techniques",BTN_CERTIFY:"Certifier",BTN_YES_CERTIFY:"Oui, certifier",BTN_SELECT_AND_CERTIFY:"Nouvelle certification",ACCOUNT_OPERATIONS:"Opérations sur le compte",VIEW:{POPOVER_SHARE_TITLE:"Identité {{title}}"},LOOKUP:{TITLE:"Toile de confiance",NEWCOMERS:"Nouveaux membres",NEWCOMERS_COUNT:"{{count}} membres",PENDING:"Inscriptions en attente",PENDING_COUNT:"{{count}} inscriptions en attente",REGISTERED:"Inscrit {{sigDate | formatFromNow}}",MEMBER_FROM:"Membre depuis {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Nouveaux membres",BTN_PENDING:"Inscriptions en attente",SHOW_MORE:"Afficher plus",SHOW_MORE_COUNT:"(limite actuelle à {{limit}})",NO_PENDING:"Aucune inscription en attente.",NO_NEWCOMERS:"Aucun membre."},CONTACTS:{TITLE:"Contacts"},MODAL:{TITLE:"Recherche"},CERTIFICATIONS:{TITLE:"{{uid}} - Certifications",SUMMARY:"Certifications reçues",LIST:"Détail des certifications reçues",PENDING_LIST:"Certifications en attente de traitement",RECEIVED:"Certifications reçues",RECEIVED_BY:"Certifications reçues par {{uid}}",ERROR:"Certifications reçues en erreur",SENTRY_MEMBER:"Membre référent"},OPERATIONS:{TITLE:"{{uid}} - Opérations"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certifications émises",SUMMARY:"Certifications émises",LIST:"Détail des certifications émises",PENDING_LIST:"Certifications en attente de traitement",SENT:"Certifications émises",SENT_BY:"Certifications émises par {{uid}}",ERROR:"Certifications émises en erreur"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Connexion',SCRYPT_FORM_HELP:"Veuillez saisir vos identifiants.<br>Pensez à vérifier que la clé publique est celle de votre compte.",PUBKEY_FORM_HELP:"Veuillez saisir une clé publique de compte :",FILE_FORM_HELP:"Choisissez le fichier de trousseau à utiliser :",SCAN_FORM_HELP:"Scanner le QR code d'un portefeuille.",SALT:"Identifiant secret",SALT_HELP:"Identifiant secret",SHOW_SALT:"Afficher l'identifiant secret ?",PASSWORD:"Mot de passe",PASSWORD_HELP:"Mot de passe",PUBKEY_HELP:"Clé publique ou pseudonyme",NO_ACCOUNT_QUESTION:"Vous n'avez pas encore de compte ?",HAVE_ACCOUNT_QUESTION:"Vous avez déjà un compte ?",CREATE_ACCOUNT:"Créer un compte...",CREATE_FREE_ACCOUNT:"Créer un compte gratuitement",FORGOTTEN_ID:"Mot de passe oublié ?",ASSOCIATED_PUBKEY:"Clé publique du trousseau :",BTN_METHODS:"Autres méthodes",BTN_METHODS_DOTS:"Changer de méthode...",METHOD_POPOVER_TITLE:"Méthodes",MEMORIZE_AUTH_FILE:"Mémoriser ce trousseau le temps de la session de navigation",SCRYPT_PARAMETERS:"Paramètres (Scrypt) :",AUTO_LOGOUT:{TITLE:"Information",MESSAGE:'<i class="ion-android-time"></i> Vous avez été <b>déconnecté</b> automatiquement, suite à une inactivité prolongée.',BTN_RELOGIN:"Me reconnecter",IDLE_WARNING:"Vous allez être déconnecté... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Identifiant secret et mot de passe",SCRYPT_ADVANCED:"Salage avancé",FILE:"Fichier de trousseau",PUBKEY:"Clé publique ou pseudonyme",SCAN:"Scanner un QR code"},SCRYPT:{SIMPLE:"Salage léger",DEFAULT:"Salage standard",SECURE:"Salage sûr",HARDEST:"Salage le plus sûr",EXTREME:"Salage extrême",USER:"Salage personnalisé",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Format de fichier attendu : <b>.yml</b> ou <b>.dunikey</b> (type PubSec, WIF ou EWIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Authentification',BTN_AUTH:"S'authentifier",GENERAL_HELP:"Veuillez vous authentifier :",EXPECTED_UID_HELP:'Veuillez vous authentifier sur le compte <i class="ion-person"></i> {{uid}} :',EXPECTED_PUBKEY_HELP:'Veuillez vous authentifier sur le portefeuille <br class="visible-xs"/><i class="ion-key"></i> {{pubkey|formatPubkey}} :',SCAN_FORM_HELP:"Scanner le QR code de la <b>clef privée</b> du portefeuille."},ACCOUNT:{TITLE:"Mon compte",BALANCE:"Solde",LAST_TX:"Dernières transactions validées",BALANCE_ACCOUNT:"Solde du compte",NO_TX:"Aucune transaction",SHOW_MORE_TX:"Afficher plus",SHOW_ALL_TX:"Afficher tout",TX_FROM_DATE:"(limite actuelle à {{fromTime|medianFromNowShort}})",PENDING_TX:"Transactions en attente de traitement",VALIDATING_TX:"Transactions traitées, non validées",ERROR_TX:"Transactions non executées",ERROR_TX_SENT:"Transactions envoyées en échec",PENDING_TX_RECEIVED:"Transactions en attente de réception",EVENTS:"Evénements",OUT_DISTANCED:"Vos certifications actuelles proviennent d'un groupe trop isolé de la <a ng-click=\"showHelpModal('wot')\">Toile de Confiance</a> (TdC) : la <a ng-click=\"showHelpModal('distance_rule')\">règle de distance maximale</a> n'est pas respectée.<br/>Vous devez obtenir des certifications provenant d'autres secteurs de la TdC, ou bien attendre que celle-ci se resserre.",WAITING_MEMBERSHIP:"Demande d'adhésion envoyée. En attente d'acceptation.",WAITING_CERTIFICATIONS:"Vous devez <b>obtenir {{needCertificationCount}} certification(s)</b> pour devenir membre et produire le <a ng-click=\"showHelpModal('ud')\">Dividende Universel</a>. Votre compte est cependant déjà opérationnel, pour recevoir et effectuer des paiements.",WAITING_CERTIFICATIONS_HELP:'Pour obtenir vos certifications, sollicitez uniquement des membres <b>qui vous connaissent suffisamment</b>, comme l\'exige <a ng-click="showLicenseModal()">la licence de la monnaie</a> que vous avez acceptée.<br/>Si vous ne connaissez pas suffisamment de membres, faites-le savoir sur <a ng-click="openLink($event, $root.settings.userForumUrl)">le forum utilisateur</a>.',WILL_MISSING_CERTIFICATIONS:"Vous allez bientôt <b>manquer de certifications</b> (au moins {{willNeedCertificationCount}} sont requises)",WILL_NEED_RENEW_MEMBERSHIP:"Votre adhésion comme membre <b>va expirer {{membershipExpiresIn|formatDurationTo}}</b>. Pensez à <a ng-click=\"doQuickFix('renew')\">renouveler votre adhésion</a> d'ici là.",NEED_RENEW_MEMBERSHIP:"Vous n'êtes plus membre de la monnaie, car <b>votre adhésion a expiré</b>. Pensez à <a ng-click=\"doQuickFix('renew')\">renouveler votre adhésion</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"Vous n'êtes plus membre de la monnaie, <b>pour manque de certifications</b>. Pensez à <a ng-click=\"doQuickFix('renew')\">renouveler votre adhésion</a>.",NO_WAITING_MEMBERSHIP:"Aucune demande d'adhésion en attente. Si vous souhaitez <b>devenir membre</b>, pensez à <a ng-click=\"doQuickFix('membership')\">envoyer la demande d'adhésion</a>.",CERTIFICATION_COUNT:"Certifications reçues",CERTIFICATION_COUNT_SHORT:"Certifications",SIG_STOCK:"Certifications envoyées",BTN_RECEIVE_MONEY:"Encaisser",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Basculer vers une autre identité...",BTN_FIX_MEMBERSHIP:"Renvoyer la demande d'adhésion...",BTN_MEMBERSHIP_RENEW:"Renouveler l'adhésion",BTN_MEMBERSHIP_RENEW_DOTS:"Renouveler l'adhésion...",BTN_MEMBERSHIP_OUT_DOTS:"Arrêter l'adhésion...",BTN_SECURITY_DOTS:"Compte et sécurité...",BTN_SHOW_DETAILS:"Afficher les infos techniques",LOCKED_OUTPUTS_POPOVER:{TITLE:"Montant verrouillé",DESCRIPTION:"Voici les conditions de déverrouillage de ce montant :",DESCRIPTION_MANY:"Cette transaction est composé de plusieurs parties, dont voici les conditions de déverrouillage :",LOCKED_AMOUNT:"Conditions pour le montant :"},NEW:{TITLE:"Création de compte",INTRO_WARNING_TIME:"La création d'un compte sur {{name|capitalize}} est très simple. Veuillez néanmoins prendre suffisament de temps pour faire correctement cette formalité (pour ne pas oublier les identifiants, mots de passe, etc.).",INTRO_WARNING_SECURITY:"Vérifiez que le matériel que vous utilisez actuellement (ordinateur, tablette, téléphone) <b>est sécurisé et digne de confiance</b>.",INTRO_WARNING_SECURITY_HELP:"Anti-virus à jour, pare-feu activé, session protégée par mot de passe ou code pin, etc.",INTRO_HELP:"Cliquez sur <b>{{'COMMON.BTN_START'|translate}}</b> pour débuter la création de compte. Vous serez guidé étape par étape.",REGISTRATION_NODE:"Votre inscription sera enregistrée via le noeud Duniter <b>{{server}}</b>, qui le diffusera ensuite au reste du réseau de la monnaie.",REGISTRATION_NODE_HELP:"Si vous ne faites pas confiance en ce noeud, veuillez en changer <a ng-click=\"doQuickFix('settings')\">dans les paramètres</a> de Cesium.",SELECT_ACCOUNT_TYPE:"Choisissez le type de compte à créer :",MEMBER_ACCOUNT:"Compte membre",MEMBER_ACCOUNT_TITLE:"Création d'un compte membre",MEMBER_ACCOUNT_HELP:"Si vous n'êtes pas encore inscrit en tant qu'individu (un seul compte possible par individu). Ce compte permet de co-produire la monnaie, en recevant un <b>dividende universel</b> chaque {{parameters.dt|formatPeriod}}.",WALLET_ACCOUNT:"Simple portefeuille",WALLET_ACCOUNT_TITLE:"Création d'un portefeuille",WALLET_ACCOUNT_HELP:"Pour tous les autres cas, par exemple si vous avez besoin d'un compte supplémentaire.<br/>Aucun dividende universel ne sera créé par ce compte.",SALT_WARNING:"Choisissez votre identifiant secret.<br/>Il vous sera demandé à chaque connexion sur ce compte.<br/><br/><b>Retenez le bien</b> : en cas de perte, plus personne ne pourra accéder à votre compte !",PASSWORD_WARNING:"Choisissez un mot de passe.<br/>Il vous sera demandé à chaque connexion sur ce compte.<br/><br/><b>Retenez bien ce mot de passe</b : en cas de perte, plus personne ne pourra accéder à votre compte !",PSEUDO_WARNING:"Choisissez un pseudonyme.<br/>Il sert aux autres membres, pour vous identifier plus facilement.<div class='hidden-xs'><br/>Il <b>ne pourra pas être modifié</b>, sans refaire un compte.</div><br/><br/>Il ne doit contenir <b>ni espace, ni de caractère accentué</b>.<div class='hidden-xs'><br/>Exemple : <span class='gray'>SophieDupond, MarcelChemin, etc.</span>",PSEUDO:"Pseudonyme",PSEUDO_HELP:"Pseudonyme",SALT_CONFIRM:"Confirmation",SALT_CONFIRM_HELP:"Confirmation de l'identifiant secret",PASSWORD_CONFIRM:"Confirmation",PASSWORD_CONFIRM_HELP:"Confirmation du mot de passe",SLIDE_6_TITLE:"Confirmation :",COMPUTING_PUBKEY:"Calcul en cours...",LAST_SLIDE_CONGRATULATION:"Vous avez saisi toutes les informations nécessaires : Bravo !<br/>Vous pouvez maintenant <b>envoyer la demande de création</b> de compte.</b><br/><br/>Pour information, la clé publique ci-dessous identifiera votre futur compte.<br/>Elle pourra être communiquée à des tiers pour recevoir leurs paiements.<br/><b>Il n'est pas obligatoire</b> de la noter ici, vous pourrez également le faire plus tard.",CONFIRMATION_MEMBER_ACCOUNT:"<b class=\"assertive\">Avertissement :</b> l'identifiant secret, le mot de passe et le pseudonyme ne pourront plus être modifiés.<br/><br/><b>Assurez-vous de toujours vous en rappeler !</b><br/><br/><b>Êtes-vous sûr</b> de vouloir envoyer cette demande d'inscription ?",CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Avertissement :</b> l\'identifiant secret et le mot de passe ne pourront plus être modifiés.<br/><br/><b>Assurez-vous de toujours vous en rappeler !</b><br/><br/><b>Êtes-vous sûr</b> de vouloir continuer avec ces identifiants ?',CHECKING_PSEUDO:"Vérification...",PSEUDO_AVAILABLE:"Pseudonyme disponible",PSEUDO_NOT_AVAILABLE:"Pseudonyme non disponible",INFO_LICENSE:"Avant de créer un compte membre, <b>veuillez lire et accepter la licence</b> d'usage de la monnaie :",BTN_ACCEPT:"J'accepte",BTN_ACCEPT_LICENSE:"J'accepte la licence"},POPUP_REGISTER:{TITLE:"Choisissez un pseudonyme",HELP:"Un pseudonyme est obligatoire pour devenir membre."},SELECT_IDENTITY_MODAL:{TITLE:"Sélection de l'identité",HELP:'Plusieurs <b>identités différentes</b> ont été envoyées, pour la clé publique <span class="gray"><i class="ion-key"></i> {{pubkey|formatPubkey}}</span>.<br/>Veuillez sélectionner le dossier à utiliser :'},SELECT_WALLET_MODAL:{TITLE:"Sélection du portefeuille"},WALLET_LIST:{TITLE:"Mes portefeuilles",BTN_NEW:"Ajouter un portefeuille",BTN_DOWNLOAD:"Télécharger la liste",BTN_IMPORT_FILE_DOTS:"Importer depuis un fichier...",NO_WALLET:"Aucun portefeuille secondaire",BTN_DELETE:"Retirer un portefeuille secondaire...",BTN_RENAME:"Renommer le portefeuille",EXPORT_FILENAME:"mes_portefeuilles-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Total : ",EDIT_POPOVER:{TITLE:"Renommer le portefeuille",HELP:"Renseignez le nouveau nom",NAME_HELP:"Nom du portefeuille"},IMPORT_MODAL:{TITLE:"Importer des portefeuilles",HELP:"Pour <b>importer des porftefeuilles</b>, veuillez glisser dans la zone ci-dessous le fichier de la liste des portefeuilles, ou bien cliquer dans la zone pour rechercher un fichier.",WALLET_COUNT:"<b>{{count}}</b> nouveau{{count > 1 ? 'x' : ''}} portefeuille{{count > 1 ? 's' : ''}}",NO_NEW_WALLET:"Aucun nouveau portefeuille"}},SECURITY:{ADD_QUESTION:"Ajouter une question personnalisée",BTN_CLEAN:"Vider",BTN_RESET:"Réinitialiser",DOWNLOAD_REVOKE:"Sauvegarder mon fichier de révocation",DOWNLOAD_REVOKE_HELP:"Disposer d'un fichier de révocation est important, par exemple en cas de perte de vos identifiants. Il vous permet de <b>sortir ce compte de la toile de confiance</b>, en redevenant ainsi un simple portefeuille.",GENERATE_KEYFILE:"Générer mon fichier de trousseau...",GENERATE_KEYFILE_HELP:"Génère un fichier permettant de vous authentifier sans saisir vos identifiants.<br/><b>Attention :</b> ce fichier contiendra votre trousseau de compte (clefs publique et secrète) ; il est donc très important de le mettre en lieu sûr !",KEYFILE_FILENAME:"trousseau-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Transformer en compte membre...",MEMBERSHIP_IN_HELP:"Permet de <b>transformer</b> un compte simple portefeuille <b>en compte membre</b>, en envoyant une demande d'adhésion. Utile uniquement si vous n'avez pas déjà un autre compte membre.",SEND_IDENTITY:"Publier son identité...",SEND_IDENTITY_HELP:"Permet d'associer un pseudonyme à ce compte, mais <b>sans faire de demande d'adhésion</b> pour devenir membre. Cette association n'est généralement pas utile, car la validité de cette association de pseudonyme est limitée dans le temps.",HELP_LEVEL:"Pour générer un fichier de sauvegarde de vos identifiants, choisissez <strong> au moins {{nb}} questions :</strong>",LEVEL:"Niveau de sécurité",LOW_LEVEL:'Faible <span class="hidden-xs">(2 questions minimum)</span>',MEDIUM_LEVEL:'Moyen <span class="hidden-xs">(4 questions minimum)</span>',QUESTION_1:"Comment s'appelait votre meilleur ami lorsque vous étiez adolescent ?",QUESTION_2:"Comment s'appelait votre premier animal de compagnie ?",QUESTION_3:"Quel est le premier plat que vous avez appris à cuisiner ?",QUESTION_4:"Quel est le premier film que vous avez vu au cinéma ?",QUESTION_5:"Où êtes-vous allé la première fois que vous avez pris l'avion ?",QUESTION_6:"Comment s'appelait votre instituteur préféré à l'école primaire ?",QUESTION_7:"Quel serait selon vous le métier idéal ?",QUESTION_8:"Quel est le livre pour enfants que vous préférez ?",QUESTION_9:"Quel était le modèle de votre premier véhicule ?",QUESTION_10:"Quel était votre surnom lorsque vous étiez enfant ?",QUESTION_11:"Quel était votre personnage ou acteur de cinéma préféré lorsque vous étiez étudiant ?",QUESTION_12:"Quel était votre chanteur ou groupe préféré lorsque vous étiez étudiant ?",QUESTION_13:"Dans quelle ville vos parents se sont-ils rencontrés ?",QUESTION_14:"Comment s'appelait votre premier patron ?",QUESTION_15:"Quel est le nom de la rue où vous avez grandi ?",QUESTION_16:"Quel est le nom de la première plage où vous vous êtes baigné ?",QUESTION_17:"Quel est le premier album que vous avez acheté ?",QUESTION_18:"Quel est le nom de votre équipe de sport préférée ?",QUESTION_19:"Quel était le métier de votre grand-père ?",RECOVER_ID:"Retrouver mon mot de passe...",RECOVER_ID_HELP:"Si vous disposez d'un <b>fichier de sauvegarde de vos identifiants</b>, vous pouvez les retrouver en répondant correctement à vos questions personnelles.",REVOCATION_WITH_FILE:"Révoquer mon compte membre...",REVOCATION_WITH_FILE_DESCRIPTION:"Si vous avez <b>définitivement perdus vos identifiants</b> de compte membre (ou que la sécurité du compte est compromise), vous pouvez utiliser <b>le fichier de révocation</b> du compte pour <b>forcer sa sortie définitive de la toile de confiance</b>.",REVOCATION_WITH_FILE_HELP:"Pour <b>révoquer définitivement</b> un compte membre, veuillez glisser dans la zone ci-dessous votre fichier de révocation, ou bien cliquer dans la zone pour rechercher un fichier.",REVOCATION_WALLET:"Révoquer immédiatement ce compte",REVOCATION_WALLET_HELP:"Demander la révocation de votre identité entraîne la <b>sortie de la toile de confiance</b> (définitive pour le pseudonyme et la clé publique associés). Le compte ne pourra plus produire de Dividende Universel.<br/>Vous pourrez toutefois encore vous y connecter, comme à un simple portefeuille.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Sauvegarder mes identifiants...",SAVE_ID_HELP:"Création d'un fichier de sauvegarde, pour <b>retrouver votre mot de passe</b> (et l'identifiant secret) <b>en cas de d'oubli</b>. Le fichier est <b>sécurisé</b> (chiffré) à l'aide de questions personnelles.",STRONG_LEVEL:'Fort <span class="hidden-xs ">(6 questions minimum)</span>',TITLE:"Compte et sécurité",KEYFILE:{PUBSEC_FORMAT:"Format PubSec.",PUBSEC_FORMAT_HELP:"Ce format stocke votre trousseau de manière très simple. Il est compatible notamment avec Cesium, ğannonce et Duniter.<br/><b>Attention :</b>Le fichier <b>n'est pas chiffré</b> (la clef secrète y apparaît en clair) ; veuillez donc le stocker en lieu sûr !",WIF_FORMAT:"Format WIF (Wallet Import Format) - v1",WIF_FORMAT_HELP:"Ce format stocke votre trousseau en y intégrant une somme de contrôle pour vérifier l'intégrité du fichier. Il est compatible notamment avec les portefeuilles papier (Duniter paper wallet).<br/><b>Attention :</b>Le fichier <b>n'est pas chiffré</b> (la clef secrète y apparaît en clair) ; veuillez donc le stocker en lieu sûr !",EWIF_FORMAT:"Format EWIF (Encrypted Wallet Import Format) - v1",EWIF_FORMAT_HELP:"Ce format stocke votre trousseau <b>de manière chiffrée</b> à partir d'une phrase secrète de votre choix. Il intègre aussi une somme de contrôle pour vérifier l'intégrité du fichier.<br/><b>Attention :</b> Veillez à toujours vous souvenir de votre phrase secrète !",PASSWORD_POPUP:{TITLE:"Fichier de trousseau chiffré",HELP:"Veuillez indiquer la phrase secrète :",PASSWORD_HELP:"Phrase secrète"},ERROR:{BAD_PASSWORD:"Phrase secrète incorrecte",BAD_CHECKSUM:"Somme de contrôle incorrecte"}}},FILE_NAME:"{{currency}} - Relevé du compte {{pubkey|formatPubkey}} au {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Montant",COMMENT:"Commentaire"}},TRANSFER:{TITLE:"Virement",SUB_TITLE:"Faire un virement",SUB_TITLE_ALL:"Vider le compte",FROM:"De",TO:"À",AMOUNT:"Montant",AMOUNT_HELP:"Montant",COMMENT:"Commentaire",COMMENT_HELP:"Commentaire",BTN_SEND:"Envoyer",BTN_ADD_COMMENT:"Ajouter un commentaire",REST:"Reste du compte",REST_TO:"à",WARN_COMMENT_IS_PUBLIC:"Veuillez noter que <b>les commentaires sont publics</b> (non chiffrés).",MODAL:{TITLE:"Virement"}},ERROR:{UNKNOWN_URI_FORMAT:"Format d'URI inconnu",PUBKEY_INVALID_CHECKSUM:"Clé publique invalide (bad checksum).",POPUP_TITLE:"Erreur",UNKNOWN_ERROR:"Erreur inconnue",CRYPTO_UNKNOWN_ERROR:"Votre navigateur ne semble pas compatible avec les fonctionnalités de cryptographie.",DOWNLOAD_KEYFILE_FAILED:"Échec de la génération du fichier de trousseau.",EQUALS_TO_PSEUDO:"Doit être différent du pseudonyme",EQUALS_TO_SALT:"Doit être différent de l'identifiant secret",FIELD_REQUIRED:"Champ obligatoire",FIELD_TOO_SHORT:"Valeur trop courte",FIELD_TOO_SHORT_WITH_LENGTH:"Valeur trop courte ({{minLength}} caractères min)",FIELD_TOO_LONG:"Valeur trop longue",FIELD_TOO_LONG_WITH_LENGTH:"Valeur trop longue ({{maxLength}} caractères max)",FIELD_MIN:"Valeur minimale : {{min}}",FIELD_MAX:"Valeur maximale : {{max}}",FIELD_ACCENT:"Caractères accentués et virgules non autorisés",FIELD_NOT_NUMBER:"Valeur numérique attendue",FIELD_NOT_INT:"Valeur entière attendue",FIELD_NOT_EMAIL:"Adresse email non valide",PASSWORD_NOT_CONFIRMED:"Ne correspond pas au mot de passe",SALT_NOT_CONFIRMED:"Ne correspond pas à l'identifiant secret",SEND_IDENTITY_FAILED:"Échec de l'inscription",SEND_CERTIFICATION_FAILED:"Échec de la certification",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"Vous ne pouvez pas effectuer de certification, car votre compte n'est <b>pas membre</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"Vous ne pouvez pas effectuer de certification, car votre compte n'est pas encore membre.<br/><br/>Il vous manque encore des certifications, ou bien celles-ci n'ont pas encore été validées.",NOT_MEMBER_FOR_CERTIFICATION:"Votre compte n'est pas encore membre.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Compte non certifiable. Aucune demande d'adhésion n'a été faite, ou bien elle n'a pas été renouvelée.",LOGIN_FAILED:"Erreur lors de la connexion.",LOAD_IDENTITY_FAILED:"Erreur de chargement de l'identité.",LOAD_REQUIREMENTS_FAILED:"Erreur de chargement des prérequis de l'identité.",SEND_MEMBERSHIP_IN_FAILED:"Échec de la tentative d'entrée dans la communauté.",SEND_MEMBERSHIP_OUT_FAILED:"Échec de l'arrêt de l'adhésion.",REFRESH_WALLET_DATA:"Échec du rafraîchissement du portefeuille.",GET_CURRENCY_PARAMETER:"Échec de la récupération des règles de la monnaie.",GET_CURRENCY_FAILED:"Chargement de la monnaie impossible. Veuillez réessayer plus tard.",SEND_TX_FAILED:"Échec du virement.",ALL_SOURCES_USED:"Veuillez attendre le calcul du prochain bloc (toutes vos sources de monnaie ont été utilisées).",NOT_ENOUGH_SOURCES:"Pas assez de change pour envoyer ce montant en une seule transaction.<br/>Montant maximum : {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Échec de la création du compte membre.",RESTORE_WALLET_DATA_ERROR:"Échec du rechargement des paramètres depuis le stockage local",LOAD_WALLET_DATA_ERROR:"Échec du chargement des données du portefeuille.",COPY_CLIPBOARD_FAILED:"Copie de la valeur impossible.",TAKE_PICTURE_FAILED:"Échec de la récupération de la photo.",SCAN_FAILED:"Échec du scan de QR-code.",SCAN_UNKNOWN_FORMAT:"Code non reconnu.",WOT_LOOKUP_FAILED:"Échec de la recherche.",LOAD_PEER_DATA_FAILED:"Lecture du nœud Duniter impossible. Veuillez réessayer ultérieurement.",NEED_LOGIN_FIRST:"Veuillez d'abord vous connecter.",AMOUNT_REQUIRED:"Le montant est obligatoire.",AMOUNT_NEGATIVE:"Montant négatif non autorisé.",NOT_ENOUGH_CREDIT:"Crédit insuffisant.",INVALID_NODE_SUMMARY:"Nœud injoignable ou adresse invalide.",INVALID_USER_ID:"Le pseudonyme ne doit contenir ni espace ni caractère spécial ou accentué.",INVALID_COMMENT:"Le champ 'référence' ne doit pas contenir de caractères accentués.",INVALID_PUBKEY:"La clé publique n'a pas le format attendu.",INVALID_PUBKEY_CHECKSUM:"Somme de contrôle invalide.",IDENTITY_REVOKED:"Cette identité <b>a été révoquée</b>. Elle ne peut plus devenir membre.",IDENTITY_REVOKED_WITH_TIME:"Cette identité <b>a été révoquée {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). Elle ne peut plus devenir membre.",IDENTITY_PENDING_REVOCATION:"La <b>révocation de cette identité</b> a été demandée et est en attente de traitement. La certification est donc désactivée.",IDENTITY_INVALID_BLOCK_HASH:"Cette demande d'adhésion n'est plus valide (car elle référence un bloc que les nœuds du réseau ont annulé) : cette personne doit renouveler sa demande d'adhésion <b>avant</b> d'être certifiée.",IDENTITY_EXPIRED:"La publication de cette identité a expiré : cette personne doit effectuer une nouvelle demande d'adhésion <b>avant</b> d'être certifiée.",IDENTITY_SANDBOX_FULL:"Le nœud Duniter utilisé par Cesium ne peut plus recevoir de nouvelles identités, car sa file d'attente est pleine.<br/><br/>Veuillez réessayer ultérieurement ou changer de nœud (via le menu <b>Paramètres</b>).",IDENTITY_NOT_FOUND:"Identité non trouvée.",IDENTITY_TX_FAILED:"Échec du chargement des opérations.",WOT_PENDING_INVALID_BLOCK_HASH:"Adhésion non valide.",WALLET_INVALID_BLOCK_HASH:"Votre demande d'adhésion n'est plus valide (car elle référence un bloc que les nœuds du réseau ont annulé).<br/>Vous devez <a ng-click=\"doQuickFix('fixMembership')\">envoyer une nouvelle demande</a> pour résoudre ce problème.",WALLET_IDENTITY_EXPIRED:"La publication de <b>votre identité a expirée</b>.<br/>Vous devez <a ng-click=\"doQuickFix('fixIdentity')\">publier à nouveau votre identité</a> pour résoudre ce problème.",WALLET_REVOKED:"Votre identité a été <b>révoquée</b> : ni votre pseudonyme ni votre clef publique ne pourra être utilisé à l'avenir pour un compte membre.",WALLET_HAS_NO_SELF:"Votre identité doit d'abord avoir été publiée, et ne pas être expirée.",AUTH_REQUIRED:"Authentification requise.",AUTH_INVALID_PUBKEY:'La clef attendue est <i class="ion-key"></i> {{pubkey|formatPubkey}}...',AUTH_INVALID_SCRYPT:"Identifiant ou mot de passe invalide.",AUTH_INVALID_FILE:"Fichier de trousseau invalide.",AUTH_FILE_ERROR:"Échec de l'ouverture du fichier de trousseau.",IDENTITY_ALREADY_CERTIFY:"Vous avez <b>déjà certifié</b> cette identité.<br/><br/>Cette certification est encore valide (expiration {{expiresIn|formatDurationTo}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Vous avez <b>déjà certifié</b> cette identité.<br/><br/>Cette certification est en attente de traitement (date limite de traitement {{expiresIn|formatDurationTo}}).",UNABLE_TO_CERTIFY_TITLE:"Certification impossible",LOAD_NEWCOMERS_FAILED:"Échec du chargement des nouveaux membres.",LOAD_PENDING_FAILED:"Échec du chargement des inscriptions en attente.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vous devez <b>être membre</b> pour pouvoir effectuer cette action.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vous devez <b>être membre (ou ancien membre)</b> pour pouvoir effectuer cette action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Vous devez avoir <b>publié votre identité</b> pour pouvoir effectuer cette action.",GET_BLOCK_FAILED:"Échec de la récupération du bloc.",INVALID_BLOCK_HASH:"Bloc non trouvé (hash différent).",DOWNLOAD_REVOCATION_FAILED:"Échec du téléchargement du fichier de révocation.",REVOCATION_FAILED:"Échec de la révocation.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Identifiant secret ou mot de passe incorrect.",RECOVER_ID_FAILED:"Échec de la récupération des identifiants",LOAD_FILE_FAILED:"Échec du chargement du fichier",NOT_VALID_REVOCATION_FILE:"Fichier de révocation non valide (mauvais format de fichier)",NOT_VALID_SAVE_ID_FILE:"Fichier de récupération non valide (mauvais format de fichier)",NOT_VALID_KEY_FILE:"Fichier de trousseau non valide (format non reconnu)",EXISTING_ACCOUNT:"Vos identifiants correspondent à un compte déjà existant, dont la <a ng-click=\"showHelpModal('pubkey')\">clef publique</a> est :",EXISTING_ACCOUNT_REQUEST:"Veuillez modifier vos identifiants afin qu'ils correspondent à un compte non utilisé.",GET_LICENSE_FILE_FAILED:"Récupération du fichier de licence impossible.",CHECK_NETWORK_CONNECTION:"Aucun nœud ne semble accessible.<br/><br/>Veuillez <b>vérifier votre connexion Internet</b>.",ISSUE_524_TX_FAILED:"Échec du virement.<br/><br/>Un message a été envoyé aux développeurs pour faciliter la résolution du problème. <b>Merci de votre aide</b>.",ADD_SECONDARY_WALLET_FAILED:"Échec de l'ajout du portefeuille secondaire.",UPDATE_WALLET_LIST_FAILED:"Échec du rafraîchissement des portefeuilles secondaires.",LOAD_WALLET_LIST_FAILED:"Échec du chargement des portefeuilles secondaires.",SAVE_WALLET_LIST_FAILED:"Échec de la sauvegarde des portefeuilles secondaires.",COULD_NOT_ADD_MAIN_WALLET:"Ce portefeuille <b>correspond au compte principal</b> avec lequel vous êtes connecté.<br/>Impossible de l'ajouter comme portefeuille secondaire.",COULD_NOT_ADD_EXISTING_WALLET:"Portefeuille déjà existant dans la liste.",UNKNOWN_WALLET_ID:"Portefeuille secondaire inconnu.",RESTORE_WALLET_LIST_FAILED:"Échec de la restauration des portefeuilles secondaires.",INVALID_FILE_FORMAT:"Format de fichier invalide.",SAME_TX_RECIPIENT:"Le destinataire doit être différent de l'émetteur."},INFO:{POPUP_TITLE:"Information",CERTIFICATION_DONE:"Certification envoyée",NOT_ENOUGH_CREDIT:"Crédit insuffisant",TRANSFER_SENT:"Virement envoyé",COPY_TO_CLIPBOARD_DONE:"Copié dans le presse-papier",MEMBERSHIP_OUT_SENT:"Résiliation envoyée",NOT_NEED_MEMBERSHIP:"Vous êtes déjà membre.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Cette identité va bientôt manquer de certifications (au moins {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"Cette identité n'a pas envoyée de demande d'adhésion. Elle le devra si elle souhaite devenir membre.",HAS_ALTERNATIVE_IDENTITIES:"Il existe <b>plusieurs identités</b> rattachées à cette clé publique. <b>Avant toute certification</b>, pensez à <a ng-click=\"doQuickFix('showSelectIdentities')\">consulter les autres identités</a> pour choisir la bonne, ou bien contacter le propriétaire du compte.",REVOCATION_SENT:"Révocation envoyée",REVOCATION_SENT_WAITING_PROCESS:"La <b>révocation de cette identité</b> a été demandée et est en attente de traitement.",FEATURES_NOT_IMPLEMENTED:"Cette fonctionnalité est encore en cours de développement.<br/>Pourquoi ne pas <b>contribuer à Cesium</b>, pour l'obtenir plus rapidement ? ;)",EMPTY_TX_HISTORY:"Aucune opération à exporter"},CONFIRM:{POPUP_TITLE:"<b>Confirmation</b>",POPUP_WARNING_TITLE:"<b>Avertissement</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Avertissement de sécurité</b>',CERTIFY_RULES_TITLE_UID:"Certifier {{uid}}",CERTIFY_RULES:'<b class="assertive">Ne PAS certifier</b> un compte si vous pensez que :<br/><br/><ul><li>1.) il ne correspond pas à une personne <b>physique et vivante</b>.<li>2.) son propriétaire <b>possède un autre compte</b> déjà certifié.<li>3.) son propriétaire viole (volontairement ou non) la règle 1 ou 2 (par exemple en certifiant des comptes factices ou en double).</ul><br/><b>Êtes-vous sûr</b> de vouloir néanmoins certifier cette identité ?',FULLSCREEN:"Afficher l'application en plein écran ?",EXIT_APP:"Fermer l'application ?",TRANSFER:"<b>Récapitulatif du virement</b> :<br/><br/><ul><li> - De : {{from}}</li><li> - A : <b>{{to}}</b></li><li> - Montant : <b>{{amount}} {{unit}}</b></li><li> - Commentaire : <i>{{comment}}</i></li></ul><br/><b>Êtes-vous sûr de vouloir effectuer ce virement ?</b>",TRANSFER_ALL:"<b>Récapitulatif du virement</b> :<br/><br/><ul><li> - De : {{from}}</li><li> - A : <b>{{to}}</b></li><li> - Montant : <b>{{amount}} {{unit}}</b></li><li> - Commentaire : <i>{{comment}}</i></li><br/><li> - Reste : <b>{{restAmount}} {{unit}}</b> à <b>{{restTo}}</b></li></ul><br/><b>Êtes-vous sûr de vouloir effectuer ce virement ?</b>",MEMBERSHIP_OUT:"Cette opération est <b>irréversible</b>.<br/></br/>Êtes-vous sûr de vouloir <b>résilier votre compte membre</b> ?",MEMBERSHIP_OUT_2:"Cette opération est <b>irreversible</b> !<br/><br/>Êtes-vous vraiment sûr de vouloir <b>résilier votre adhésion</b> comme membre ?",LOGIN_UNUSED_WALLET_TITLE:"Erreur de saisie ?",LOGIN_UNUSED_WALLET:"Le compte connecté semble <b>inactif</b>.<br/><br/>Il s'agit probablement d'une <b>erreur de saisie</b> dans vos identifiants de connexion. Veuillez recommencer, en vérifiant que <b>la clé publique est celle de votre compte</b>.",FIX_IDENTITY:"Le pseudonyme <b>{{uid}}</b> va être publiée à nouveau, en remplacement de l'ancienne publication qui a expirée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",FIX_MEMBERSHIP:"Votre demande d'adhésion comme membre va être renvoyée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",MEMBERSHIP:"Votre demande d'adhésion comme membre va être envoyée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",RENEW_MEMBERSHIP:"Votre adhésion comme membre va être renouvelée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",REVOKE_IDENTITY:"Vous allez <b>revoquer définitivement cette identité</b>.<br/><br/>La clé publique et le pseudonyme associés <b>ne pourront plus jamais être utilisés</b> (pour un compte membre). <br/></br/><b>Êtes-vous sûr</b> de vouloir révoquer définitivement ce compte ?",REVOKE_IDENTITY_2:"Cette opération est <b>irreversible</b> !<br/><br/>Êtes-vous vraiment sûr de vouloir <b>révoquer définitivement</b> ce compte ?",NOT_NEED_RENEW_MEMBERSHIP:"Votre adhésion n'a pas besoin d'être renouvelée (elle n'expirera que dans {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Êtes-vous sûr</b> de vouloir renouveler votre adhésion ?",SAVE_BEFORE_LEAVE:"Voulez-vous <b>sauvegarder vos modifications</b> avant de quitter la page ?",SAVE_BEFORE_LEAVE_TITLE:"Modifications non enregistrées",LOGOUT:"Êtes-vous sûr de vouloir vous déconnecter ?",USE_FALLBACK_NODE:"Nœud <b>{{old}}</b> injoignable ou adresse invalide.<br/><br/>Voulez-vous temporairement utiliser le nœud <b>{{new}}</b> ?",ISSUE_524_SEND_LOG:"La transaction a été rejetée, à cause d'une anomalie connue (ticket #524) mais <b>non reproduite</b>.<br/><br/>Pour aider les développeurs à corriger cette erreur, <b>acceptez-vous la transmission de vos logs</b> par message ?<br/><small>(aucune donnée confidentielle n'est envoyée)</small>."},DOWNLOAD:{POPUP_TITLE:"<b>Fichier de révocation</b>",POPUP_REVOKE_MESSAGE:"Pour sécuriser votre compte, veuillez télécharger le <b>document de révocation de compte</b>. Il vous permettra le cas échéant d'annuler votre compte (en cas d'un vol de compte, d'un changement d'identifiant, d'un compte créé à tort, etc.).<br/><br/><b>Veuillez le stocker en lieu sûr.</b>"},HELP:{TITLE:"Aide en ligne",JOIN:{SECTION:"Inscription",SALT:"L'identifiant secret est très important. Il sert à mélanger le mot de passe, avant qu'il ne serve à calculer la <span class=\"text-italic\">clé publique</span> de votre compte (son numéro) et la clé secrète pour y accéder.<br/><b>Veillez à bien la mémoriser</b>, car aucun moyen n'est actuellement prévu pour la retrouver en cas de perte.<br/>Par ailleurs, il ne peut pas être modifié sans devoir créer un nouveau compte.<br/><br/>Un bon identifiant secret doit être suffisamment long (au moins 8 caractères) et le plus original possible.",PASSWORD:"Le mot de passe est très important. Avec l'identifiant secret, il sert à calculer le numéro (la clé publique) de votre compte, et la clé secrète pour y accéder.<br/><b>Veillez à bien le mémoriser</b>, car aucun moyen n'est prévu de le retrouver en cas de perte (sauf à générer un fichier de sauvegarde).<br/>Par ailleurs, il ne peut pas être modifié sans devoir créer un nouveau compte.<br/><br/>Un bon mot de passe contient (idéalement) au moins 8 caractères, dont au moins une majuscule et un chiffre.",PSEUDO:'Le pseudonyme est utilisé uniquement dans le cas d\'inscription comme <span class="text-italic">membre</span>. Il est toujours associé à un portefeuille (via sa <span class="text-italic">clé publique</span>).<br/>Il est publié sur le réseau, afin que les autres utilisateurs puisse l\'identifier, le certifier ou envoyer de la monnaie sur le compte.<br/>Un pseudonyme doit être unique au sein des membres (<u>actuels</u> et anciens).'},LOGIN:{SECTION:"Connexion",PUBKEY:"Clé publique du trousseau",PUBKEY_DEF:'La clef publique du trousseau est générée à partir des identifiants saisis (n\'importe lesquels), sans pour autant qu\'ils correspondent à un compte déjà utilisé.<br/><b>Vérifiez attentivement que la clé publique est celle de votre compte</b>. Dans le cas contraire, vous serez connecté à un compte probablement jamais utilisé, le risque de collision avec un compte existant étant infime.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">En savoir plus sur la cryptographie</a> par clé publique.',METHOD:"Méthodes de connexion",METHOD_DEF:'Plusieurs options sont disponibles pour vous connecter à un portefeuille :<br/> - La connexion <b>par salage (simple ou avancé)</b> mélange votre mot de passe grâce à l\'identifiant secret, pour limiter les tentatives de <a href="https://fr.wikipedia.org/wiki/Attaque_par_force_brute" target="_system">piratage par force brute</a> (par exemple à partir de mots connus).<br/> - La connexion <b>par clé publique</b> évite de saisir vos identifiants, qui vous seront demandé seulement le moment venu lors d\'une opération sur le compte.<br/> - La connexion <b>par fichier de trousseau</b> va lire les clés (publique et privée) du compte, depuis un fichier, sans besoin de saisir d\'identifiants. Plusieurs formats de fichier sont possibles.'},GLOSSARY:{SECTION:"Glossaire",PUBKEY_DEF:'Une clé publique identifie un portefeuille de monnaie, qui peut identifier un membre ou correspondre à un portefeuille anonyme. Dans Cesium la clé publique est calculée (par défaut) grâce à l\'identifiant secret et au mot de passe.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">En savoir plus sur la cryptographie</a> par clé publique.',MEMBER:"Membre",MEMBER_DEF:'Un membre est une personne humaine physique et vivante, désireuse de participer librement à la communauté monétaire. Elle co-produit un dividende universel, suivant une période et un montant tels que définis dans les <span class="text-italic">règles de la monnaie</span>',CURRENCY_RULES:"Règles de la monnaie",CURRENCY_RULES_DEF:'Les règles de la monnaie sont définies une fois pour toutes. Elle fixe le fonctionnement de la monnaie : le calcul du dividende universel, le nombre de certifications nécessaire pour être membre, le nombre de certification maximum qu\'un membre peut donner, etc. <a href="#/app/currency">Voir les règles actuelles</a>.<br/>La non modification des règles dans le temps est possible par l\'utilisation d\'une <span class="text-italic">BlockChain</span> qui porte et exécute ces règles, et en vérifie constamment la bonne application.',BLOCKCHAIN:'Chaîne de blocs (<span class="text-italic">Blockchain</span>)',BLOCKCHAIN_DEF:'La BlockChain est un système décentralisé, qui, dans le cas de Duniter, sert à porter et exécuter les <span class="text-italic">règles de la monnaie</span>.<br/><a href="https://duniter.org/fr/comprendre/" target="_system">En savoir plus sur Duniter</a> et le fonctionnement de sa blockchain.',UNIVERSAL_DIVIDEND_DEF:'Le Dividende Universel (DU) est la quantité de monnaie co-créée par chaque membre, suivant la période et le calcul définis dans les <span class="text-italic">règles de la monnaie</span>.<br/>A chaque échéance, les membres recoivent sur leur compte la meme quantité de nouvelle monnaie.<br/><br/>Le DU subit une croissance régulière, pour rester juste entre les membres (actuels et à venir), calculée en fonction de l\'espérance de vie moyenne, telle que démontré dans la Thérorie Relative de la Monnaie (TRM).<br/><a href="http://trm.creationmonetaire.info" target="_system">En savoir plus sur la TRM</a> et les monnaies libres.',WOT:"Toile de Confiance (TdC)",WOT_DEF:"La Toile de Confiance est constituée de l'ensemble des membres de la monnaie, et des liens de certification qui les relient.",DISTANCE_RULE:"Règle de distance",DISTANCE_RULE_DEF:"La règle de distance de la Toile de Confiance définie <b>une distance maximale à respecter</b> entre un postulant et un nombre minimum de membres référents (ou membres centraux). Cette distance est calculée en utilisant les liens de certification."},TIP:{MENU_BTN_CURRENCY:"Le menu <b>{{'MENU.CURRENCY'|translate}}</b> permet la consultation des <b>règles de la monnaie</b> et de son état.",CURRENCY_WOT:"Le <b>nombre de membres</b> montre l'importance de la communauté et permet de <b>suivre son évolution</b>.",CURRENCY_MASS:"Suivez ici la <b>quantité totale de monnaie</b> existante et sa <b>répartition moyenne</b> par membre.<br/><br/>Ceci permet de juger de l'<b>importance d'un montant</b>, vis à vis de ce que <b>possède les autres</b> sur leur compte (en moyenne).",CURRENCY_UNIT_RELATIVE:"L'unité utilisée (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifie que les montants en {{currency|capitalize}} ont été divisés par le <b>Dividende Universel</b> (DU).<br/><br/><small>Cette unité relative est <b>pertinente</b>, car stable malgré la quantitié de monnaie qui augmente en permanence.</small>",CURRENCY_CHANGE_UNIT:"L'option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permet de <b>changer d'unité</b>, pour visualiser les montants <b>directement en {{currency|capitalize}}</b> (plutôt qu'en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"L'option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permet de <b>changer d'unité</b>, pour visualiser les montants en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, c'est-à-dire relativement au Dividende Universel (le montant co-produit par chaque membre).",CURRENCY_RULES:"Les <b>règles</b> de la monnaie fixent son fonctionnement <b>exact et prévisible</b>.<br/><br/>Véritable ADN de la monnaie, elles rendent son code monétaire <b>lisible et transparent</b>.",MENU_BTN_NETWORK:"Le menu <b>{{'MENU.NETWORK'|translate}}</b> permet la consultation de l'état du réseau.",NETWORK_BLOCKCHAIN:"Toutes les opérations de la monnaie sont enregistrées dans un grand livre de compte <b>public et infalsifiable</b>, appelé aussi <b>chaine de blocs</b> (<em>BlockChain</em> en anglais).",NETWORK_PEERS:"Les <b>nœuds</b> visibles ici correspondent aux <b>ordinateurs qui actualisent et contrôlent</b> la chaine de blocs.<br/><br/>Plus il y a de nœuds, plus la monnaie a une gestion <b>décentralisée</b> et digne de confiance.",NETWORK_PEERS_BLOCK_NUMBER:"Ce <b>numéro</b> (en vert) indique le <b>dernier bloc validé</b> pour ce nœud (dernière page écrite dans le grand livre de comptes).<br/><br/>La couleur verte indique que ce bloc est également validé par <b>la plupart des autres nœuds</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Chaque membre</b>, équipé d\'un ordinateur avec Internet, <b>peut participer en ajoutant un nœud</b>. Il suffit d\'<b>installer le logiciel Duniter</b> (libre et gratuit). <a href="{{installDocUrl}}" target="_system">Voir le manuel d\'installation &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"Le menu <b>{{'ACCOUNT.TITLE'|translate}}</b> permet d'accéder à la gestion de votre compte.",MENU_BTN_ACCOUNT_MEMBER:"Consultez ici l'état de votre compte et les informations sur vos certifications.",WALLET_CERTIFICATIONS:"Cliquez ici pour consulter le détail de vos certifications (reçues et émises).",WALLET_RECEIVED_CERTIFICATIONS:"Cliquez ici pour consulter le détail de vos <b>certifications reçues</b>.",WALLET_GIVEN_CERTIFICATIONS:"Cliquez ici pour consulter le détail de vos <b>certifications émises</b>.",WALLET_BALANCE:"Le <b>solde</b> de votre compte s'affiche ici.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>L'unité utilisée (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifie que le montant en {{currency|capitalize}} a été divisé par le <b>Dividende Universel</b> (DU) co-créé par chaque membre.<br/><br/>Actuellement 1 DU vaut {{currentUD|formatInteger}} {{currency|capitalize}}s.",WALLET_BALANCE_CHANGE_UNIT:"Vous pourrez <b>changer l'unité</b> d'affichage des montants dans les <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Par exemple pour visualiser les montants <b>directement en {{currency|capitalize}}</b>, plutôt qu'en unité relative.",WALLET_PUBKEY:"Voici la clé publique de votre compte. Vous pouvez la communiquer à un tiers afin qu'il identifie plus simplement votre compte.",WALLET_SEND:"Effectuer un paiement en quelques clics.",WALLET_SEND_NO_MONEY:"Effectuer un paiement en quelques clics.<br/>(Votre solde ne le permet pas encore)",WALLET_OPTIONS:"Ce bouton permet l'accès aux <b>actions d'adhésion</b> et de sécurité.<br/><br/>N'oubliez pas d'y jeter un oeil !",WALLET_RECEIVED_CERTS:"S'affichera ici la liste des personnes qui vous ont certifié.",WALLET_CERTIFY:"Le bouton <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> permet de sélectionner une identité et de la certifier.<br/><br/>Seuls des utilisateurs <b>déjà membres</b> peuvent en certifier d'autres.",WALLET_CERT_STOCK:"Votre stock de certifications (émises) est limité à <b>{{sigStock}} certifications</b>.<br/><br/>Ce stock se renouvelle avec le temps, au fur et à mesure que les certifications s'invalident.",MENU_BTN_TX_MEMBER:"Le menu <b>{{'MENU.TRANSACTIONS'|translate}}</b> permet de consulter votre solde, l'historique vos transactions et d'envoyer un paiement.",MENU_BTN_TX:"Consultez ici <b>l'historique de vos transactions</b> et effectuez de nouvelles opérations.",MENU_BTN_WOT:"Le menu <b>{{'MENU.WOT'|translate}}</b> permet de rechercher parmi les <b>utilisateurs</b> de la monnaie (membres ou non).",WOT_SEARCH_TEXT_XS:"Pour rechercher dans l'annuaire, tapez les <b>premières lettres d'un pseudonyme</b> (ou d'une clé publique).<br/><br/>La recherche se lancera automatiquement.",WOT_SEARCH_TEXT:"Pour rechercher dans l'annuaire, tapez les <b>premières lettres d'un pseudonyme</b> (ou d'une clé publique). <br/><br/>Appuyer ensuite sur <b>Entrée</b> pour lancer la recherche.",WOT_SEARCH_RESULT:"Visualisez la fiche détaillée simplement en <b>cliquant</b> sur une ligne.",WOT_VIEW_CERTIFICATIONS:"La ligne <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> montre combien de membres ont validé cette identité.<br/><br/>Ces certifications attestent que le compte appartient à <b>une personne humaine vivante</b> n'ayant <b>aucun autre compte membre</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Il faut au moins <b>{{sigQty}} certifications</b> pour devenir membre et recevoir le <b>Dividende Universel</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Un clic ici permet d'ouvrir <b>la liste de toutes les certifications</b> de l'identité (reçues et émises).",WOT_VIEW_CERTIFY:"Le bouton <b>{{'WOT.BTN_CERTIFY'|translate}}</b> permet d'ajouter votre certification à cette identité.",CERTIFY_RULES:"<b>Attention :</b> Ne certifiez que des <b>personnes physiques vivantes</b>, ne possédant aucun autre compte membre.<br/><br/>La sécurité de la monnaie dépend de la vigilance de chacun !",MENU_BTN_SETTINGS:"Les <b>{{'MENU.SETTINGS'|translate}}</b> vous permettront de configurer l'application.",HEADER_BAR_BTN_PROFILE:"Cliquez ici pour accéder à votre <b>profil utilisateur.</b>",SETTINGS_CHANGE_UNIT:"Vous pourrez <b>changer d'unité d'affichage</b> des montants en cliquant ci-dessus.<br/><br/>- Désactivez l'option pour un affichage des montants en {{currency|capitalize}}.<br/>- Activez l'option pour un affichage relatif en {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (tous les montants seront <b>divisés</b> par le Dividende Universel courant).",END_LOGIN:"Cette visite guidée est <b>terminée</b> !<br/><br/>Bonne continuation à vous, dans le nouveau monde de l'<b>économie libre</b> !",END_NOT_LOGIN:"Cette visite guidée est <b>terminée</b> !<br/><br/>Si vous souhaitez rejoindre la monnaie {{currency|capitalize}}, il vous suffira de cliquer sur <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> ci-dessous."}},API:{COMMON:{LINK_DOC:"Documentation API",LINK_DOC_HELP:"Documentation pour les développeurs",LINK_STANDARD_APP:"Version classique",LINK_STANDARD_APP_HELP:"Ouvrir la version classique de {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Nœud <b>{{server}}</b> injoignable ou adresse invalide.<br/><br/>Vérifiez votre connexion Internet, ou contactez l'administrateur du site</a>."},HOME:{TITLE:"Documentation API {{'COMMON.APP_NAME'|translate}}",MESSAGE:'Bienvenue dans la <b>documentation de l\'API</b> {{\'COMMON.APP_NAME\'|translate}}.<br/>Connectez vos sites web à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',MESSAGE_SHORT:'Connectez vos sites à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',DOC_HEADER:"Services disponibles :"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Paiement en ligne",TITLE_SHORT:"Paiement en ligne",SUMMARY:"Récapitulatif du paiement :",AMOUNT:"Montant :",AMOUNTS_HELP:"Veuillez choisir le montant :",NAME:"Nom :",PUBKEY:"Clé publique du destinataire :",COMMENT:"Référence de l'opération :",NODE:"Adresse du nœud :",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Mode démonstration</b> : Aucun paiement ne sera réellement envoyé pendant cette simulation.<br/>Veuillez utiliser les identifiants : <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Vérifiez votre saisie.<br/>En mode démonstration, les identifiants sont : {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Paiement envoyé.<br/>Redirection vers <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Paiement envoyé.<br/>Redirection vers le site du vendeur...",CANCEL_REDIRECTING_WITH_NAME:"Paiement annulé.<br/>Redirection vers <b>{{name}}</b>...",CANCEL_REDIRECTING:"Paiement annulé.<br/>Redirection vers le site du vendeur..."},ERROR:{TRANSFER_FAILED:"Échec du paiement"}},DOC:{DESCRIPTION_DIVIDER:"Description",URL_DIVIDER:"Adresse d'appel",PARAMETERS_DIVIDER:"Paramètres",AVAILABLE_PARAMETERS:"Voici la liste des paramètres possibles :",DEMO_DIVIDER:"Tester",DEMO_HELP:"Pour tester ce service, cliquez sur le bouton ci-contre. Le résultat s'affichera en dessous.",DEMO_RESULT:"Résultat retourné par l'appel :",DEMO_RESULT_PEER:"Adresse du nœud utilisé :",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Succès !',DEMO_CANCELLED:'<i class="icon ion-close"></i> Annulé par l\'utilisateur',INTEGRATE_DIVIDER:"Intégrer",INTEGRATE_CODE:"Code :",INTEGRATE_RESULT:"Prévisualisation du résultat :",INTEGRATE_PARAMETERS:"Paramètres",TRANSFER:{TITLE:"Paiements",DESCRIPTION:"Depuis un site (ex: vente en ligne) vous pouvez déléguer le paiement en monnaie libre à Cesium API. Pour cela, il vous suffit de déclencher l'ouverture d'une page sur l'adresse suivante :",PARAM_PUBKEY:"Clé publique du destinataire",PARAM_PUBKEY_HELP:"Clé publique du destinataire (obligatoire)",PARAM_AMOUNT:"Montant",PARAM_AMOUNT_HELP:"Montant de la transaction (obligatoire). Valeurs multiples autorisées, en utilisant un séparateur (point-virgule, barre verticale ou espace).",PARAM_COMMENT:"Référence (ou commentaire)",PARAM_COMMENT_HELP:"Référence ou commentaire. Vous permettra par exemple d'identifier le paiement dans la BlockChain.",PARAM_NAME:"Nom (du destinataire ou du site web)",PARAM_NAME_HELP:'Le nom du destinataire, ou du site web appelant. Cela peut être un nom lisible ("Mon site en ligne"), ou encore une pseudo-adresse web ("MonSite.com").',PARAM_REDIRECT_URL:"Adresse web de redirection",PARAM_REDIRECT_URL_HELP:'Adresse web (URL) de redirection, appelé quand le paiement a été envoyé. Peut contenir les chaînes suivantes, qui seront remplacées par les valeurs de la transaction : "{tx}", "{hash}", "{comment}", "{amount}", "{pubkey}" et "{node}".',PARAM_CANCEL_URL:"Adresse web d'annulation",PARAM_CANCEL_URL_HELP:'Adresse web (URL) en cas d\'annulation du paiement, par l\'utilisateur. Peut contenir les chaînes suivantes, qui seront remplacées dynamiquement : "{comment}", "{amount}" et {pubkey}.',PARAM_PREFERRED_NODE:"Adresse du nœud préféré",PARAM_PREFERRED_NODE_HELP:'Adresse (URL) du nœud Duniter à utiliser de préférence ("g1.domaine.com:443" ou "https://g1.domaine.com").',EXAMPLES_HELP:"Voici des exemples d'intégration :",EXAMPLE_BUTTON:"Bouton HTML",EXAMPLE_BUTTON_DEFAULT_TEXT:"Payer en {{currency|currencySymbol}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Style personnalisé",EXAMPLE_BUTTON_TEXT_HELP:"Texte du bouton",EXAMPLE_BUTTON_BG_COLOR:"Couleur du fond",EXAMPLE_BUTTON_BG_COLOR_HELP:"Exemple : #fbc14c, black, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Couleur du texte",EXAMPLE_BUTTON_FONT_COLOR_HELP:"Exemple : black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icône",EXAMPLE_BUTTON_TEXT_WIDTH:"Largeur",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"Exemple : 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"Aucune",EXAMPLE_BUTTON_ICON_DUNITER:"Logo Duniter",EXAMPLE_BUTTON_ICON_CESIUM:"Logo Cesium",EXAMPLE_BUTTON_ICON_G1_COLOR:"Logo Ğ1",EXAMPLE_BUTTON_ICON_G1_BLACK:"Logo Ğ1 (noir)"}}}}),e.translations("it-IT",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",
-PUBKEY:"Chiave privata",MEMBER:"Membro",BLOCK:"Blocco",BTN_OK:"OK",BTN_YES:"Si",BTN_NO:"No",BTN_SEND:"Inviare",BTN_SEND_MONEY:"Trasferire soldi",BTN_SEND_MONEY_SHORT:"Trasferire",BTN_SAVE:"Salvare",BTN_YES_SAVE:"Si, salvare",BTN_YES_CONTINUE:"Si, continuare",BTN_SHOW:"Mostrare",BTN_SHOW_PUBKEY:"Mostrare chiave pubblica",BTN_RELATIVE_UNIT:"Mostra importi in DU?",BTN_BACK:"Indietro",BTN_NEXT:"Avanti",BTN_CANCEL:"Cancellare",BTN_CLOSE:"Chiudere",BTN_LATER:"Più tardi",BTN_LOGIN:"Accedi",BTN_LOGOUT:"Log out",BTN_ADD_ACCOUNT:"Nuovo conto",BTN_SHARE:"Condividere",BTN_EDIT:"Modificare",BTN_DELETE:"Eliminare",BTN_ADD:"Aggiungere",BTN_SEARCH:"Cercare",BTN_REFRESH:"Aggiornare",BTN_RETRY:"Riprovare",BTN_START:"Iniziare",BTN_CONTINUE:"Continuare",BTN_CREATE:"Creare",BTN_UNDERSTOOD:"Ho capito",BTN_OPTIONS:"Opzioni",BTN_HELP_TOUR:"Mostrami le funzionalità",BTN_HELP_TOUR_SCREEN:"Scoprire questo schermo",BTN_DOWNLOAD:"Scaricare",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Scaricare estratto conto",BTN_MODIFY:"Modificare",CHOOSE_FILE:"Trascini un file <br/>o cliccare per selezionare",DAYS:"giorni",NO_ACCOUNT_QUESTION:"Non sei ancora membro? Registrati subito!",SEARCH_NO_RESULT:"Nessun risultato trovato",LOADING:"Caricando...",SEARCHING:"Cercando...",FROM:"Da",TO:"A",COPY:"Copiare",LANGUAGE:"Lingua",UNIVERSAL_DIVIDEND:"Dividendo universale",UD:"UD",DATE_PATTERN:"DD/MM/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(empty)",UID:"Pseudonimo",ENABLE:"Attivato",DISABLE:"Disattivato",RESULTS_LIST:"Risultati:",RESULTS_COUNT:"{{count}} risultati",EXECUTION_TIME:"eeseguit in {{duration|formatDurationMs}}",SHOW_VALUES:"Mostrare valori in modo trasparente?",POPOVER_ACTIONS_TITLE:"Opzioni",POPOVER_FILTER_TITLE:"Filtri",SHOW_MORE:"Mostrare di più",SHOW_MORE_COUNT:"(limite attuale di {{limit}})",POPOVER_SHARE:{TITLE:"Condividere",SHARE_ON_TWITTER:"Condividere su Twitter",SHARE_ON_FACEBOOK:"Condividere su Facebook",SHARE_ON_DIASPORA:"Condividere su Diaspora*",SHARE_ON_GOOGLEPLUS:"Condividere su Google+"},FILE:{DATE:"Data:",TYPE:"Tipo:",SIZE:"Dimensioni del file:",VALIDATING:"Validazione in corso..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Scegliere un file:",BTN_PICTURE_GALLERY:"Galleria",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Home",WOT:"Annuario",CURRENCY:"Moneta",ACCOUNT:"Mio conto",WALLETS:"I miei portafogli",TRANSFER:"Trasferire",SCAN:"Scansionare",SETTINGS:"Impostazioni",NETWORK:"Rete",TRANSACTIONS:"Miei pagamenti"},ABOUT:{TITLE:"A proposito",LICENSE:"<b>Free/libre software</b> (License GNU AGPLv3).",CODE:"Codice sorgente:",DEVELOPERS:"Sviluppatori:",FORUM:"Forum:",DEV_WARNING:"Attenzione!",DEV_WARNING_MESSAGE:"Questa app è ancora in sviluppo attivo.<br/>Facci sapere se trovi dei bugs!",DEV_WARNING_MESSAGE_SHORT:"Questa app è tutt'ora instabile (in sviluppo)",REPORT_ISSUE:"Segnalare un bug"},HOME:{TITLE:"Cesium",WELCOME:"Benvenuti nell'{{'COMMON.APP_NAME'|translate}} App!",MESSAGE:"Scambiate in moneta libera. {{currency|abbreviate}}!",BTN_CURRENCY:"Esplorare la moneta",BTN_ABOUT:"a proposito",BTN_HELP:"Aiuto",REPORT_ISSUE:"Segnalare un bug",NOT_YOUR_ACCOUNT_QUESTION:'Non sei proprietario del conto <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Disconettere questo conto",CONNECTION_ERROR:'Peer <b>{{server}}</b> irraggiungibile o indirizzo invalido. <br/><br/> Verifica tua connessione or cambia nodo. <a class="positive" ng-click="doQuickFix(\'settings\')">nell impostazioni. </a>.'},SETTINGS:{TITLE:"Impostazioni",NETWORK_SETTINGS:"Rete",PEER:"Indirizzo peer Duniter",PEER_CHANGED_TEMPORARY:"Indirizzo usato per un tempo determinato",USE_LOCAL_STORAGE:"Abilitare local storage",USE_LOCAL_STORAGE_HELP:"Permette di salvare tue impostazioni",ENABLE_HELPTIP:"Abilitare consigli dinamici",ENABLE_UI_EFFECTS:"Abilitare effetti visivi",HISTORY_SETTINGS:"Mio conto",DISPLAY_UD_HISTORY:"Mostrare dividendi prodotti?",AUTHENTICATION_SETTINGS:"Autenticazione",KEEP_AUTH:"Scadenza dell'autenticazione",KEEP_AUTH_SHORT:"Scadenza",KEEP_AUTH_HELP:"Definire quando l'autenticazione verrà eliminata dalla memoria.",KEEP_AUTH_OPTION:{NEVER:"Dopo ogni operazione",SECONDS:"Dopo {{value}}s d'inattività",MINUTE:"Dopo{{value}}min d'inattività",MINUTES:"Dopo {{value}}min d'inattività",HOUR:"Dopo {{value}}h d'inattività",ALWAYS:"Alla fine della sessione"},REMEMBER_ME:"Ricordarsi di me?",REMEMBER_ME_HELP:"Rimanere identificato/a da una sessione all'altra, conservando la chiave localmente.",PLUGINS_SETTINGS:"Estensioni",BTN_RESET:"Ripristini valori predefiniti",EXPERT_MODE:"Abilitare modlità eseperto",EXPERT_MODE_HELP:"Permette di vedere più dettagli",POPUP_PEER:{TITLE:"Peer Duniter",HOST:"Indirizzo",HOST_HELP:"Indirizzo: server:port",USE_SSL:"Securizzato?",USE_SSL_HELP:"(SSL Encryption)",BTN_SHOW_LIST:"Lista dei peers"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Blocco #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Blocco attuale",TITLE:"Blocco #{{number|formatInteger}}",COMPUTED_BY:"Calcolato da",SHOW_RAW:"Mostrare dati grezzi",TECHNICAL_DIVIDER:"Informazioni tecniche",VERSION:"Versione di formatto",HASH:"Hash calcolato",UNIVERSAL_DIVIDEND_HELP:"Moneta co-prodotta da ciasciun dei {{membersCount}} membri",EMPTY:"Nessun dati in questo blocco",POW_MIN:"Difficoltà minimale",POW_MIN_HELP:"Difficoltà imposta nel calcolo del hash",DATA_DIVIDER:"Dati",IDENTITIES_COUNT:"Nuove identità",JOINERS_COUNT:"Nuovi membri",ACTIVES_COUNT:"Rinnovi",ACTIVES_COUNT_HELP:"Membri che hanno rinnovato la loro presenza nella rete",LEAVERS_COUNT:"",LEAVERS_COUNT_HELP:"Membri che si sono fatti escludere dalla rete",EXCLUDED_COUNT:"Membri esclusi",EXCLUDED_COUNT_HELP:"Vecchi membri, esclusi per certificazione non rinnovata o soglia di certificazioni non raggiunta.",REVOKED_COUNT:"Identità revocate",REVOKED_COUNT_HELP:"Può essere che questi conti non siano più attivi",TX_COUNT:"Transazioni",CERT_COUNT:"Certificazioni",TX_TO_HIMSELF:"Cambio",TX_OUTPUT_UNLOCK_CONDITIONS:"Sbloccare condizioni",TX_OUTPUT_OPERATOR:{AND:"e",OR:"o"},TX_OUTPUT_FUNCTION:{SIG:"<b>Firma</b> della chive pubblica",XHX:"<b>Password</b>, incluso SHA256 =",CSV:"Bloccato per",CLTV:"Bloccato fino a"}},LOOKUP:{TITLE:"Blocchi",NO_BLOCK:"Nessun blocco",LAST_BLOCKS:"Ultimi blocchi:",BTN_COMPACT:"Compact"}},CURRENCY:{VIEW:{TITLE:"Moneta",TAB_CURRENCY:"Moneta",TAB_WOT:"Web of trust",TAB_NETWORK:"Rete",TAB_BLOCKS:"Blocchi",CURRENCY_SHORT_DESCRIPTION:"{{currency|capitalize}} è <b>una moneta libera</b>, {{firstBlockTime | formatFromNow}}. La rete comprende <b>{{N}} membri </b>, che produccono e ricevono un <a ng-click=\"showHelpModal('ud')\">Dividendo Universale</a> (DU), ogni {{dt | formatPeriod}}.",NETWORK_RULES_DIVIDER:"Regole della rete",CURRENCY_NAME:"Nome della moneta",MEMBERS:"Numero di membri",MEMBERS_VARIATION:"Variazione da {{duration|formatDuration}} (dall' ultimo UD)",MONEY_DIVIDER:"Moneta",MASS:"Massa monetaria",SHARE:"Quantità a testa",UD:"Dividendo universale",C_ACTUAL:"Crescita attuale",MEDIAN_TIME:"Current blockchain time",POW_MIN:"Difficoltà commune",MONEY_RULES_DIVIDER:"Regole della moneta",C_RULE:"Obbietivo teorico di crescità",UD_RULE:"Dividendo universale (formula)",DT_REEVAL:"Periodo tra due re-evaluazioni del UD",REEVAL_SYMBOL:"reeval",DT_REEVAL_VALUE:"Ogni <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Data della prima re-evaluzione del UD",SIG_QTY_RULE:"Numero di certificazioni requisiti per diventare membro",SIG_STOCK:"Numero massimo di certificazioni inviate da un membro",SIG_PERIOD:"Tempo minimo tra 2 certificazioni inviate da un unico membro.",SIG_WINDOW:"Periodo massimo prima che una certificazione venga studiata",SIG_VALIDITY:"Durata di vita di una certificazione che è state presa in conto",MS_WINDOW:"Periodo massimo prima che una certificazione pendente sia validata",MS_VALIDITY:"Durata di vita di un'adesione che è state presa in conto",STEP_MAX:"Distanza massima tra un nuovo membro e ogni membro referente.",WOT_RULES_DIVIDER:"Regole della Web of Trust",SENTRIES:"Numero di certificazioni (date <b>e</b> ricevute) per diventare membro referente ",SENTRIES_FORMULA:"Numero di certificazioni necessarie per diventare membro (formula)",XPERCENT:"Percentaggio minimino di membri referenti per rispettare la regola di distanza tra i membri",AVG_GEN_TIME:"Tempo medio tra due blocchi",CURRENT:"attuale",MATH_CEILING:"CEILING",DISPLAY_ALL_RULES:"Mostrare tutte le regole?",BTN_SHOW_LICENSE:"Mostrare licenza",WOT_DIVIDER:"Web of trust"},LICENSE:{TITLE:"Licensa attuale",BTN_DOWNLOAD:"Scaricare il file",NO_LICENSE_FILE:"File di licenza non trovato ."}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain time",LOADING_PEERS:"Caricando peers...",NODE_ADDRESS:"Indirizzo del peer",SOFTWARE:"Software",WARN_PRE_RELEASE:"Pre-versione (ultima versione stabile: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Versione <b>{{version}}</b> disponibile",WS2PID:"Identificativo :",PRIVATE_ACCESS:"Accesso privato",POW_PREFIX:"Prefisso Prova di Lavoro :",ENDPOINTS:{BMAS:"Endpoint sicuro (SSL)",BMATOR:"Interfaccia rete TOR",WS2P:"Interfaccia WS2P",ES_USER_API:"Cesium+ data node"}},INFO:{ONLY_SSL_PEERS:"I nodi non-SSL hanno un display semplificato perche Cesium funziona in modalità HTTPS."}},PEER:{PEERS:"Peers-Nodi",SIGNED_ON_BLOCK:"Firmato nel blocco",MIRROR:"Specchio",MIRRORS:"Specchio",MIRROR_PEERS:"Peers specchio",PEER_LIST:"Lista dei peers",MEMBERS:"Membri",MEMBER_PEERS:"Peers membri",ALL_PEERS:"Tutti i peers",DIFFICULTY:"Difficoltà",API:"API",CURRENT_BLOCK:"Blocco #",POPOVER_FILTER_TITLE:"Filtro",OFFLINE:"Sconessi",OFFLINE_PEERS:"Peers sconessi",BTN_SHOW_PEER:"Mostrare peer",VIEW:{TITLE:"Peer",OWNER:"Proprietà di ",SHOW_RAW_PEERING:"Vedere il documento di peering",SHOW_RAW_CURRENT_BLOCK:"Vedere l'utimo blocco (formatto grezzo)",LAST_BLOCKS:"Ultimi blocchi",KNOWN_PEERS:"Peers conosciuti :",GENERAL_DIVIDER:"Informazioni generali",ERROR:{LOADING_TOR_NODE_ERROR:"Impossibile ottenere i dati del peer, periodo di attesa scaduto.",LOADING_NODE_ERROR:"Impossibile ottenere i dati del peer"}}},WOT:{SEARCH_HELP:"Cercare (membro o chiave pubblica)",SEARCH_INIT_PHASE_WARNING:"La ricerca per le certificazioni pendenti <b>può essere lunga</b> durante la fase di pre-certificazione. La preghiamo di attendere...",REGISTERED_SINCE:"Certificato/a dal",REGISTERED_SINCE_BLOCK:"Certificato/a dal blocco #",NO_CERTIFICATION:"Nessuna certificazione valida",NO_GIVEN_CERTIFICATION:"Nessuna certificazione data",NOT_MEMBER_PARENTHESIS:"(non-membro)",IDENTITY_REVOKED_PARENTHESIS:"(identità revocata)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(Cancellazione dell'identità pendente)",EXPIRE_IN:"Scade",NOT_WRITTEN_EXPIRE_IN:"Scadenza <br/> ",EXPIRED:"Scaduto",PSEUDO:"Pseudonimo",SIGNED_ON_BLOCK:"Emessa nel blocco #{{block}}",WRITTEN_ON_BLOCK:"Scritta nel blocco #{{block}}",GENERAL_DIVIDER:"Informazioni generali",NOT_MEMBER_ACCOUNT:"Conto non-membro",NOT_MEMBER_ACCOUNT_HELP:"Questo è un semplice portafoglio osservatore, senza richiesta di certificazione emessa.",TECHNICAL_DIVIDER:"Dati tecnici",BTN_CERTIFY:"Certificare",BTN_YES_CERTIFY:"Si, certificare",BTN_SELECT_AND_CERTIFY:"Nuova certificazione",ACCOUNT_OPERATIONS:"Operazioni sul conto",VIEW:{POPOVER_SHARE_TITLE:"Identità {{title}}"},LOOKUP:{TITLE:"Annuario",NEWCOMERS:"Nuovi membri:",NEWCOMERS_COUNT:"{{count}} membri",PENDING:"Registrazioni pendenti",PENDING_COUNT:"{{count}} inscrizioni pendenti",REGISTERED:"Registrato {{sigDate | formatFromNow}}",MEMBER_FROM:"Membro dal {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Ultimi membri",BTN_PENDING:"Registrazioni pendenti",SHOW_MORE:"Vedere di più",SHOW_MORE_COUNT:"(limite attuale di {{limit}})",NO_PENDING:"Nessuna certificazione pendente.",NO_NEWCOMERS:"Nessun membro."},CONTACTS:{TITLE:"Contatti"},MODAL:{TITLE:"Ricerca"},CERTIFICATIONS:{TITLE:"{{uid}} - Certificazioni",SUMMARY:"Certificazioni ricevute",LIST:"Dettagli delle certificazioni ricevute",PENDING_LIST:"Certificazioni pendenti",RECEIVED:"Certificazioni ricevute",RECEIVED_BY:"Certifications ricevute da {{uid}}",ERROR:"Certificazioni ricevute per errore",SENTRY_MEMBER:"Membro referente"},OPERATIONS:{TITLE:"{{uid}} - Operazioni"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certificazioni inviate",SUMMARY:"Certificazioni inviate",LIST:"Dettagli delle certificazioni inviate",PENDING_LIST:"Certificazioni ",SENT:"Certificazioni inviate",SENT_BY:"Certificazioni inviate da {{uid}}",ERROR:"Certificazioni inviate per errore"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Accedi',SCRYPT_FORM_HELP:"Accedi con tuoi dati <br> Ricordati di verificare che stai utilizzando la chiave del tuo conto.",PUBKEY_FORM_HELP:"Scrivi qui la tua chiave privata:",FILE_FORM_HELP:"Scegliere un portachiavi da utilizzare:",SCAN_FORM_HELP:"Scansiona il codice QR di un portafoglio.",SALT:"Identificativo segreto",SALT_HELP:"Identificativo segreto",SHOW_SALT:"Mostrare identificativo segreto?",PASSWORD:"Passsord",PASSWORD_HELP:"Password",PUBKEY_HELP:"Chiave pubblica, pseudonimo",NO_ACCOUNT_QUESTION:"Ancora non hai un conto?",HAVE_ACCOUNT_QUESTION:"Hai già un account?",CREATE_ACCOUNT:"Creare un conto",CREATE_FREE_ACCOUNT:"Crea un conto gratuito",FORGOTTEN_ID:"Non ricordi la password?",ASSOCIATED_PUBKEY:"Chiave pubblica:",BTN_METHODS:"Altri metodi",BTN_METHODS_DOTS:"Cambiare metodo...",METHOD_POPOVER_TITLE:"Metodi",MEMORIZE_AUTH_FILE:"Memorizzare questo portachiavi per la durata di questa sessione",SCRYPT_PARAMETERS:"Parametri (Scrypt) :",AUTO_LOGOUT:{TITLE:"Informazioni",MESSAGE:'<i class="ion-android-time"></i> Sei stato <b>sconesso/ b> automaticamente, per un periodo di inattività prolongata',BTN_RELOGIN:"Accedi",IDLE_WARNING:"Sarai disconesso in... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Salatura standard (imp. predefinita)",SCRYPT_ADVANCED:"Salatura avanzata",FILE:"File del portachiavi",PUBKEY:"Chiave pubblica soltanto",SCAN:"Scansiona un codice QR"},SCRYPT:{SIMPLE:"Salatura leggera",DEFAULT:"Salatura standard",SECURE:"Salatura sicura",HARDEST:"Salatura più sicura",EXTREME:"Salatura estrema",USER:"Salatura personalizzata",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Format del file atteso: <b>.dunikey</b> (type PubSec). Altri formati in sviluppo (EWIF, WIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Autenticazione',BTN_AUTH:"Autenticarsi",GENERAL_HELP:"Autenticati :",EXPECTED_UID_HELP:'Effettua il login nell\'account <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Si prega di autenticarsi sul portafoglio <i class="ion-key"></i> {{pubkey|formatPubkey}}:',SCAN_FORM_HELP:"Scansiona il codice QR della <b>chiave privata</b> del portafoglio."},ACCOUNT:{TITLE:"Mio conto",BALANCE:"Saldo",LAST_TX:"Ultime transazioni",BALANCE_ACCOUNT:"Saldo del conto",NO_TX:"Nessuna transazione",SHOW_MORE_TX:"Mostrare di più",SHOW_ALL_TX:"Mostrare tutte",TX_FROM_DATE:"(limite attuale del {{fromTime|medianFromNowShort}})",PENDING_TX:"Transazioni pendenti",VALIDATING_TX:"Transazioni in corso di convalida",ERROR_TX:"Transaction non eseguite",ERROR_TX_SENT:"Transazioni inviate",PENDING_TX_RECEIVED:"Transazioni in attesa di recezione",EVENTS:"Eventi",WAITING_MEMBERSHIP:"Richiesta di certificazione inviata. In attesa di validazione.",WAITING_CERTIFICATIONS:"Hai bisogno di {{needCertificationCount}} certificazione(i) per diventare membro.",WILL_MISSING_CERTIFICATIONS:"Mancherai a breve <b>di certificazioni</b> (occorrono almeno {{willNeedCertificationCount}} altre certificazioni)",WILL_NEED_RENEW_MEMBERSHIP:"Tua certificazione <b>scaderà{{membershipExpiresIn|formatDurationTo}}</b>. Ricordati di <a ng-click=\"doQuickFix('renew')\">rinnovarla</a> prima.",NEED_RENEW_MEMBERSHIP:"You are no longer a member because your membership <b>has expired</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NO_WAITING_MEMBERSHIP:"Nessuna domanda di adesione pendente. Se desideri <b>diventare membro</b>, ricordati di <a ng-click=\"doQuickFix('membership')\">inviare tua domanda di adesione</a>.",CERTIFICATION_COUNT:"Certificazioni ricevute",CERTIFICATION_COUNT_SHORT:"Certificazioni",SIG_STOCK:"Stock di certificazioni da inviare",BTN_RECEIVE_MONEY:"Ricevere",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Usare un'altra identità..",BTN_FIX_MEMBERSHIP:"Invia nuovamente di adesione...",BTN_MEMBERSHIP_RENEW:"Rinnovare adesione",BTN_MEMBERSHIP_RENEW_DOTS:"Rinnovare adesione ...",BTN_MEMBERSHIP_OUT_DOTS:"Revocare adesione...",BTN_SECURITY_DOTS:"Login e securità...",BTN_SHOW_DETAILS:"Visualizzare dati tecnici",LOCKED_OUTPUTS_POPOVER:{TITLE:"Importo bloccata",DESCRIPTION:"Ecco le condizioni per sbloccare questo importo:",DESCRIPTION_MANY:"Questa transazione è fatta da diverse parti, di cui queste sono le condizioni di sblocco:",LOCKED_AMOUNT:"Condizioni per l'importo:"},NEW:{TITLE:"Registrazione",INTRO_WARNING_TIME:"Crearsi un conto su {{name|capitalize}} è molto semplice. E consigliato prendere il giusto tempo per farlo correttamente (per evitare di dimenticare passwords, pseudonimi etc.).",INTRO_WARNING_SECURITY:"Occorre verificare che il hardware che stai utilizzando (computer, tablet, cellulare) <b>è sicuro e affidabile</b>.",INTRO_WARNING_SECURITY_HELP:"Anti-virus aggiornato, firewall abilitato, session protteta da un password o codice PIN...",INTRO_HELP:"Cliccare <b> {{'COMMON.BTN_START'|translate}}</b> per avviare la creazione del conto. Ti accompagniamo passo alla volta.",REGISTRATION_NODE:"Tua iscrizione verrà salvata dal nodo peer Duniter <b>{{server}}</b>, è verrà poi condivisa nella rete della moneta.",REGISTRATION_NODE_HELP:"Se non ti fidi di questo peer, per favore cambialo <a ng-click=\"doQuickFix('settings')\">nelle impostazioni/a> di Cesium.",SELECT_ACCOUNT_TYPE:"Scegliere un tipo di conto:",MEMBER_ACCOUNT:"Conto membro",MEMBER_ACCOUNT_TITLE:"Creare un conto membro",MEMBER_ACCOUNT_HELP:"Se non sei ancora registrato come individuo (un conto a persona soltanto).",WALLET_ACCOUNT:"Semplice portafoglio",WALLET_ACCOUNT_TITLE:"Creare un portafoglio",WALLET_ACCOUNT_HELP:"Se rappresenti un'azienda, associazione, altra ente o hai necessita di un altro portafoglio. Nessun Dividendo Universale sarà prodotto da questo conto.",SALT_WARNING:"Scegliere un identificativo segreto.<br/>E necessario per ogni connessione a questo conto.<br/><br/><b>Accertati di ricordarlo!</b>.<br/>Se lo dimentichi non ti potrà aiutare nessuno!",PASSWORD_WARNING:"Scegliere una password.<br/>E necessario per ogni connessione a questo conto.<br/><br/><b>Accertati di ricordarla!</b>.<br/>Se la dimentichi non ti potrà aiutare nessuno!",PSEUDO_WARNING:"Segliere uno pseudonimo.<br/>Puo essere utile per chi ti cerca nella rete.<br/><br/>.L'utilizzo delle<b>virgole, spazi e accenti</b> è vietato.<br/><div class='hidden-xs'><br/>Esempio: <span class='gray'>JohnDalton, JackieChan, etc.</span>",PSEUDO:"Pseudonimo",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Confermare",SALT_CONFIRM_HELP:"Confermare l'identificativo segreto",PASSWORD_CONFIRM:"Confermare",PASSWORD_CONFIRM_HELP:"Confermare la password",SLIDE_6_TITLE:"Conferma:",COMPUTING_PUBKEY:"Calcolando...",LAST_SLIDE_CONGRATULATION:"Hai riempito tutti i campi richiesti.<br/><b>Puoi inviare la richiesta di creazione del conto</b>.<br/><br/>Per tua informazione, la chiave pubblica qui sotto identifica il tuo futuro conto.<br/>Puo essere communicata a chi ti deve pagare per esempio.<br/>Quando tuo conto verrà approvato potrai trovare la chiave qui <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Warning:</b> tuo identificare segreto, tua password e tuo pseudonimo non si possono cambiare.<br/><b>Ricordali per sempre!</b><br/><b>Sei sicuro/a</b>di voler inviare questa richiesta di creazione di conto?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Warning:</b> tuo identificare segreto, tua password e tuo pseudonimo non si possono cambiare..<br/><b>Ricordali per sempre!</b><br/><b>Sei sicuro/a</b> di voler continuare?',CHECKING_PSEUDO:"Verificazione in corso...",PSEUDO_AVAILABLE:"Pseudonimo disponibile",PSEUDO_NOT_AVAILABLE:"Pseudonimo indisponibile",INFO_LICENSE:"TPer aderire alla moneta, ti chiediamo di leggere e accetare le condizioni della licenza.",BTN_ACCEPT:"Accetto",BTN_ACCEPT_LICENSE:"Accetto la licenza"},POPUP_REGISTER:{TITLE:"Pseudonimo",HELP:"Un pseudonimo è necessario per che gli altri ti possino trovare."},SELECT_IDENTITY_MODAL:{TITLE:"Selezionare una identità",HELP:'Più <b>identità diverse</b> sono state inviate per la chiave pubblica <span class="gray"><i class="ion-key"></i> {{pubkey|formatPubkey}}</span>.<br/>Seleziona un dossier da usare :'},SELECT_WALLET_MODAL:{TITLE:"Selezione del portafoglio"},WALLET_LIST:{TITLE:"Portafoglio secondario",BTN_NEW:"Aggiungi un portfolio",NO_WALLET:"Nessun portafoglio secondario",BTN_DELETE:"Rimuovi un portafoglio secondario ...",BTN_RENAME:"Rinominare il portafoglio",EDIT_POPOVER:{TITLE:"Rinominare il portafoglio",HELP:"Compila il nuovo nome",NAME_HELP:"Nome del portafoglio"}},SECURITY:{ADD_QUESTION:"Aggiungere domanda personalizzata",BTN_CLEAN:"Svuotare",BTN_RESET:"Reset",DOWNLOAD_REVOKE:"Salvare un file di revoca",DOWNLOAD_REVOKE_HELP:"Avere une file di revoca è necessario in caso di smarrimento dei tuoi credenziali. Ti permette <b> di rimuovere tuo conto dalla Web Of Trust</b>, per farlo tornare ad essere un semplice portafoglio.",HELP_LEVEL:"Scegliere <strong> almeno{{nb}} domande </strong> :",LEVEL:"Livello di sicurezza",LOW_LEVEL:'Basso <span class="hidden-xs">(minimo di 2 domande)</span>',MEDIUM_LEVEL:'Medio <span class="hidden-xs">(minimo di 4 domande)</span>',QUESTION_1:"Qual'era il nome del tuo miglior amico quando eri adolescente ?",QUESTION_2:"Qual'era il nome del tuo primo animale domestico?",QUESTION_3:"Qual'è il primo piatto che imparasti a cucinare?",QUESTION_4:"Qual'è il primo film che hai visto al cinema?",QUESTION_5:"Qual'era la destinazione del tuo primo volo?",QUESTION_6:"Qual'era il nome del tuo professore preferito in scuola ?",QUESTION_7:"Quale sarebbe il tuo lavoro preferito?",QUESTION_8:"Qual'è il tuo libro per bimbi preferito?",QUESTION_9:"Qual'era il marchio della tua prima macchina?",QUESTION_10:"Qual'era il tuo nomignolo da ragazzino/a ?",QUESTION_11:"Qual'era il tuo personaggio di film o attore preferito quand eri studente?",QUESTION_12:"Qual'era il tuo musicista/cantante/grupo preferito quand eri studente ?",QUESTION_13:"In che città si sono conosciuti tuoi genitori ?",QUESTION_14:"Qual'era il nome del tuo primo capo ?",QUESTION_15:"Qual'è il nome della strada dove sei cresciuto/a ?",QUESTION_16:"Qual'è il nome della tua spiaggia preferita ?",QUESTION_17:"Qual'è il primo album che ti sei comprato ?",QUESTION_18:"Qual'è il nome della squadra di sport preferita ?",QUESTION_19:"Cosa faceva tuo nonno ?",RECOVER_ID:"Ricuperare mia password...",RECOVER_ID_HELP:"Se hai un<b<file di backup dei tuoi credenziali</b>, li puoi trovare rispondendo correttamente alle tue domande personalizzate.",REVOCATION_WITH_FILE:"Revocare il mio conto membro...",REVOCATION_WITH_FILE_DESCRIPTION:"Se pensi di aver perso <b>definitivamente tuoi credenziali</b> di conto membro (o che la sicurezza del tuo conto è compromessa), puoi usare <b>il file di revoca</b> del conto <b>per forzare la sua uscita permanente dalla Tela di Fiducia</b>.",REVOCATION_WITH_FILE_HELP:"Se hai <b>definitivamente perso tuoi credenziali (o se la sicurezza del tuo conto è compromessa), puoi usare <b>il file di revoca</b> del conto <b>per uscire dalla Web Of Trust</b>.",REVOCATION_WALLET:"Revocare questo conto subito",REVOCATION_WALLET_HELP:"Richiedere la cancellazione dell'identità <b>revocherà la tua adesione alla tua rete</ b> (con certezza per il pseudonimo e la chiave pubblica associata). Il conto non potrà più produrre il Dividendo Universale.<br/>Nonostante ciò, puoi ancora usare il conto come semplice portafoglio.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Salvare miei credenziali...",SAVE_ID_HELP:"Creare un file di backup, per <b>ricuperare vostra password</b> (e l'identificativo segreto) <b> in caso di smarrimento</b>. Il file è <b>sicuro</ b> (cryptato) utilizzando le domande personalizzate.",STRONG_LEVEL:'Alto <span class="hidden-xs ">(minimo di 6 domande)</span>',TITLE:"Conto e sicurezza"},FILE_NAME:"{{currency}} - Account statement {{pubkey|formatPubkey}} to {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Amount",COMMENT:"Comment"}},TRANSFER:{TITLE:"Bonifico",SUB_TITLE:"Fare un bonifico",FROM:"Da",TO:"A",AMOUNT:"Importo",AMOUNT_HELP:"Importo",COMMENT:"Commenti",COMMENT_HELP:"Commenti",BTN_SEND:"Inviare",BTN_ADD_COMMENT:"Scrivere un comento ?",WARN_COMMENT_IS_PUBLIC:"Ti avvertiamo <b>che i commenti sono pubblici</b> (non cifrati).",MODAL:{TITLE:"Bonifico"}},ERROR:{POPUP_TITLE:"Errore",UNKNOWN_ERROR:"Errore",CRYPTO_UNKNOWN_ERROR:"Suo navigatore non sembra compatibile con le funzionalità di cryptografia.",EQUALS_TO_PSEUDO:"Deve essere diverso dal pseudonimo",EQUALS_TO_SALT:"Deve essere diverso dal identificativo segreto",FIELD_REQUIRED:"Campo obbligatorio.",FIELD_TOO_SHORT:"Valore troppo corto.",FIELD_TOO_SHORT_WITH_LENGTH:"Valore troppo corto ({{minLength}} caratteri min)",FIELD_TOO_LONG:"Valore troppo lungo",FIELD_TOO_LONG_WITH_LENGTH:"Valore troppo lungo ({{maxLength}} caractteri max)",FIELD_MIN:"Valore minimo : {{min}}",FIELD_MAX:"Valore massimo : {{max}}",FIELD_ACCENT:"Virgole e caratteri accentati vietati",FIELD_NOT_NUMBER:"Valore numerico atteso",FIELD_NOT_INT:"Valore intero atteso",FIELD_NOT_EMAIL:"Indirizzo mail non valido",PASSWORD_NOT_CONFIRMED:"Non corrisponde alla password.",SALT_NOT_CONFIRMED:"Non corrisponde al identificativo segreto.",SEND_IDENTITY_FAILED:"Iscrizione fallita.",SEND_CERTIFICATION_FAILED:"Certificazione fallita.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"Non puoi inviare certificazioni perche tuo conto <b>non è ancora un conto membro</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"Non puoi inviare certificazioni adesso perche <b>non sei ancora membro</b>.<br/><br/>Devi ancora entrare nella WOT.",NOT_MEMBER_FOR_CERTIFICATION:"Tuo conto non è ancora un conto membro.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Impossibile certificare questo conto. Nessuna richiesta di certificazione trovata o bisogna rinnovarla.",LOGIN_FAILED:"Errore di login.",LOAD_IDENTITY_FAILED:"Impossibile caricare la tua identità.",LOAD_REQUIREMENTS_FAILED:"Impossibile caricare i prerequisiti dell'identità.",SEND_MEMBERSHIP_IN_FAILED:"Ingresso nella WOT fallito.",SEND_MEMBERSHIP_OUT_FAILED:"Errore nel invio della revocazione.",REFRESH_WALLET_DATA:"Impossibile aggiornare il portafoglio.",GET_CURRENCY_PARAMETER:"Impossibile ricuperare i parametri della moneta.",GET_CURRENCY_FAILED:"Impossibile caricare la moneta. Riprovare più tardi.",SEND_TX_FAILED:"Impossibile eseguire la transazione.",ALL_SOURCES_USED:"Per favore aspetta il calcolo del prossimo blocco (Tutte le tue fonti di moneta sono state utilizzate).",NOT_ENOUGH_SOURCES:"Non hai abbastanza cambio per inviare questo importo in una sola transazione.<br/>Importo massimo: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Errore nella creazione del tuo conto membro.",RESTORE_WALLET_DATA_ERROR:"Errore nel aggiornamento delle impostazioni definite in local storage.",LOAD_WALLET_DATA_ERROR:"Errore nel caricamento dei dati del portafoglio.",COPY_CLIPBOARD_FAILED:"Impossibile copiare al clipboard",TAKE_PICTURE_FAILED:"Impossibile ricuperare foto.",SCAN_FAILED:"Impossibile scansionare il codice QR.",SCAN_UNKNOWN_FORMAT:"Codice non riconosciuto.",WOT_LOOKUP_FAILED:"Ricerca fallita.",LOAD_PEER_DATA_FAILED:"Peer Duniter non accessibile. Riprovare più tardi.",NEED_LOGIN_FIRST:"Accedi al tuo conto prima.",AMOUNT_REQUIRED:"Importo necessario.",AMOUNT_NEGATIVE:"Importo negativo non consentito.",NOT_ENOUGH_CREDIT:"Saldo insufficiente",INVALID_NODE_SUMMARY:"Impossibile comunicare col peer o indirizzo non valido",INVALID_USER_ID:"Il campo del 'pseudonimo' non deve avere spazi vuoti o caratteri speciali.",INVALID_COMMENT:"Il formato del campo 'reference' è errato.",INVALID_PUBKEY:"If formato della chiave pubblica è errato.",IDENTITY_REVOKED:"Questa identità <b>è stata revocata</b>. Non puo più diventare membro.",IDENTITY_REVOKED_WITH_TIME:"Questa identità <b>è stata revocata {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). Non puo più diventare membro.",IDENTITY_PENDING_REVOCATION:"L'<b>annulamento di questa identità</b> è stata richiesta ed è in corso di evaluazione. Capacità ad inviare certificazioni disabilitata",IDENTITY_INVALID_BLOCK_HASH:"Questa richiesta di certificazione non è più valida (perche si riferisce ad un blocco che è stato eliminato dai peers): la persona deve rinnovare la sua domanda di certificazione <b>prima</b> di essere certificata.",IDENTITY_EXPIRED:"Questa identità è scaduta: la persona deve fare una nuova domanda di certificazione <b>prima di</b> essere certificata.",IDENTITY_SANDBOX_FULL:"Il nodo Duniter utilizzato da Cesium non puo ricevere altre domande di certificazione per ora, la lista d'attesa è piena.<br/><br/>Riprova più tardi o scegli un'altro peer Duniter (nelle <b>Impostazioni</b>).",IDENTITY_NOT_FOUND:"Identità non trovata",IDENTITY_TX_FAILED:"Impossibile caricare le operazioni",WOT_PENDING_INVALID_BLOCK_HASH:"Adesione non valida.",WALLET_INVALID_BLOCK_HASH:"Tua domanda di certificazione non è più valida (perche si riferisce ad un blocco che è stato eliminato dai peers).<br/>Devi <a ng-click=\"doQuickFix('renew')\">rinnvoare la tua richiesta di adesione alla WOT</a> per risolvere il problema.",WALLET_IDENTITY_EXPIRED:"La pubblicazione della tua identità <b>è scaduta</b>.<br/>Devi <a ng-click=\"doQuickFix('fixIdentity')\">ripubblicare la tua identità</a> per risolvere il problema.",WALLET_REVOKED:"La tua identità è stata <b>revocata</b>: ne tuo pseudonimo ne tua chiave pubblica sarano utilizzati in futuro.",WALLET_HAS_NO_SELF:"La tua identità deve prima essere stata pubblicata e non essere ancora scaduta.",AUTH_REQUIRED:"Autenticazione necessaria.",AUTH_INVALID_PUBKEY:"La chiave pubblica non corrisponde al conto conesso.",AUTH_INVALID_SCRYPT:"Password o nome di utente non valido.",AUTH_INVALID_FILE:"File di portachiavi non valido.",AUTH_FILE_ERROR:"Impossibile aprire il file di portachiavi",IDENTITY_ALREADY_CERTIFY:"Hai <b>già certificato</b> questa identità.<br/><br/>Tuo certificato è ancora valido (scade {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Hai <b>già certificato</b> questa identità.<br/><br/>Tua certificazione è ancora pendente (Scadenza del periodo di  treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Impossibile certificare",LOAD_NEWCOMERS_FAILED:"Impossibile caricare i nuovi membri.",LOAD_PENDING_FAILED:"Impossibile caricare le certificazioni pendenti.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Devi <b>essere membro</b> per poter fare questo.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Devi aver <b>publiccato tua identità</b> per poter fare questo.",GET_BLOCK_FAILED:"Impossibile caricare il blocco",INVALID_BLOCK_HASH:"Blocco non trovato (hash errato)",DOWNLOAD_REVOCATION_FAILED:"Errore avvenuto nel download del file di cancellazione d'identità.",REVOCATION_FAILED:"Errore avvenuto durante la richiesta di cancellazione dell'identità.",SALT_OR_PASSWORD_NOT_CONFIRMED:"identificativo segreto o password sbagliati",RECOVER_ID_FAILED:"Impossibile ricuperare la password",LOAD_FILE_FAILED:"Impossibile caricare il file",NOT_VALID_REVOCATION_FILE:"File di cancellazione dell'identità errato (formato di file incorreto)",NOT_VALID_SAVE_ID_FILE:"File di backup dei credenziali errato (formato di file incorreto)",NOT_VALID_KEY_FILE:"File di portachiavi non valido (formato non riconosciuto)",EXISTING_ACCOUNT:"Tuoi credenziali corrispondono a quelli di un conto già esistente,di cui <a ng-click=\"showHelpModal('pubkey')\">la chiave pubblica</a> è:",EXISTING_ACCOUNT_REQUEST:"Per favore cambi tuoi credenziali in modo che corrispondino ad un conto non utilizzato.",GET_LICENSE_FILE_FAILED:"Impossibile caricare il file della licenza",CHECK_NETWORK_CONNECTION:"Nessun peer sembra disponibile.<br/><br/>Per favore <b>verifica la tua connessione Internet</b>.",ISSUE_524_TX_FAILED:"Bonifico .<br/><br/>Un message a été envoyé aux développeurs pour faciliter la résolution du problème. <b>Merci de votre aide</b>."},INFO:{POPUP_TITLE:"Informazioni",CERTIFICATION_DONE:"Identità firmata con successo",NOT_ENOUGH_CREDIT:"Saldo insufficiente",TRANSFER_SENT:"Transazione inviata con successo",COPY_TO_CLIPBOARD_DONE:"Copiato con successo",MEMBERSHIP_OUT_SENT:"Revoca dell'identità inviata",NOT_NEED_MEMBERSHIP:"Già un membro.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Questa identità mancherà a breve di certificazioni (almeno {{willNeedCertificationCount}}).",REVOCATION_SENT:"Revoca dell'identità inviata",REVOCATION_SENT_WAITING_PROCESS:"Cancellazione dell'identità <b>inviata con successo</b>. In attesa di validazione.",FEATURES_NOT_IMPLEMENTED:"Questa funzionalità non è ancora disponibile.<br/><br/>Vuoi contribuire per velocizzarne la disponibilità? ;)",EMPTY_TX_HISTORY:"Nessuna operazione da esportare"},CONFIRM:{POPUP_TITLE:"<b>Conferma</b>",POPUP_WARNING_TITLE:"<b>Avviso</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Avvertimento di sicurezza</b>',CERTIFY_RULES_TITLE_UID:"Certificare {{uid}}",CERTIFY_RULES:'<b class="assertive">Non certificare un conto</b> se credi che: <ul><li>1.) l\'identità della persona potrebbe essere finta.<li>2.) la oersona ha già un conto certicato.<li>3.) la persona trasgredisce la regola 1 o 2 o entrambe. (Certifica conti finti o gemelli).</ul></small><br/>Sei sicuro/a di voler certificare questa identità?',TRANSFER:"<b>Resoconto del bonifico:</b><br/><br/><ul><li> - Inviato da: <b>{{from}}</b></li><li> - A: <b>{{to}}</b></li><li> - Importo: <b>{{amount}} {{unit}}</b></li><li> - Comento: <i>{{comment}}</i></li></ul><br/><b>Sei sicuro di voler procedere con questo bonifico?</b>",MEMBERSHIP_OUT:"Questa operazione è <b>irreversibile</b>.<br/></br/><b>Sei sicuro/a di voler cancellare la tua presenza nella WOT?</b>",MEMBERSHIP_OUT_2:"Questa operazione è <b>irreversibile</b>!<br/><br/>Sei sicuro/a <b>di voler revocare la tua identità</b>?",LOGIN_UNUSED_WALLET_TITLE:"Errore di battitura?",LOGIN_UNUSED_WALLET:"Il conto sembra <b>inattivo</b>.<br/><br/>Probabilmente è un<b>errore di battitura</b> mientre digitavi i tuoi credenziali. Per favore riprova, verificando che la <b>chiave pubblica sia tua<b/>.",FIX_IDENTITY:"Lo pseudonimo <b>{{uid}}</b> verrà pubblicato nuovamente. Si sostituirà alla precedente pubblicazione che è scaduta.<br/></br/><b>Sei sicuro/a</b> di voler procedere?",FIX_MEMBERSHIP:"Tua domanda di certificazione sarà inviata alla rete.<br/></br/><b>Sei sicuro/a?</b>",MEMBERSHIP:"Tua domanda per diventare membro sta per essere inviata alla rete.<br/></br/><b>Sei sicuro/a/b> di voler continuare ?",RENEW_MEMBERSHIP:"Tua adesione verrà rinnovata.<br/></br/><b>Sei sicuro/a?</b>",REVOKE_IDENTITY:"Stai per <b>revocare definitivamente questa identità</b>.<br/><br/>La chiave pubblica e lo pseudonimo associato <b>non saranno mai più utilizzati</b> (per un conto membro).<br/></br/><b>Sei sicuro/a</b> di voler revocare questa identità?",REVOKE_IDENTITY_2:"Questa operazione è <b>irreversibile</b>!<br/><br/>Sei sicuro/a di volern<b>revocare questa identità</b>?",NOT_NEED_RENEW_MEMBERSHIP:"Tua presenza nella rete non deve ancora essere rinnovata (scaderà tra {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Sei sicuro/a</b> di voler rinnovare la tua presenza?",SAVE_BEFORE_LEAVE:"Vuoi <b>salvare tue modifiche</b> prima di uscira dalla pagina?",SAVE_BEFORE_LEAVE_TITLE:"Modifiche non salvate",LOGOUT:"Sei sicuro/a di voler chiudere la sessione?",USE_FALLBACK_NODE:"Peer <b>{{old}}</b> indisponibile o indirizzo errato.<br/><br/>Vuoi utilizzare temporanemante il <b>{{new}}</b> nodo?",INVALID_FILE_FORMAT:"Formato file non valido.",SAME_TX_RECIPIENT:"Il destinatario deve essere diverso dall'emittente."},DOWNLOAD:{POPUP_TITLE:"<b>File di cancellazione dell'identità/b>",POPUP_REVOKE_MESSAGE:"Per migliorare la sicurezza del tuo conto, scarica <b>il documento di revoca del conto</b>. Ti consentirà di revocare tuo conto (nel caso di violazione del conto, della tua identità, conto creato con errori, etc.).<br/><br/><b>Tiene questo document al sicuro.</b>"},HELP:{TITLE:"Aiuto online",JOIN:{SECTION:"Entrare nella rete",SALT:"Il tuo identificativo segreto è molto importante. E utilizzato per cryptare tua password che permette poi di calcolare tua <span class=\"text-italic\">chiave pubblica</span> (suo numero) è la chiave privata che ne consenta l'accesso.<br/><b>Ricordati bene di questo identificativo</b>, perche non ti potrà aiutare nessuno se lo perdi.<br/>Tra l'altro, non puo essere cambiato senza dover creare un conto nuovo.<br/><br/>Raccomandiamo che sia abbastanza lungo (8 caratteri almeno) è il più originale possibile. (buona entropia)",PASSWORD:"La password è molto importante, è utilizzata per calcolare tuo numero di conto (tua chiave pubblica) e la chiave privata che ne consento l'accesso.<br/><b>Ricordatila bene</b>, perche non ti potrà aiutare nessuno se lo perdi.<br/>Tra l'altro, non puo essere cambiata senza dover creare un conto nuovo.<br/><br/>Una buona password (preferibilmente) è composta da almeno 8 caratteri, con almeno una maiuscola e un numero.",PSEUDO:'Un pseudonimo è utilizzato quando ti iscrivi come <span class="text-italic">membro</span>. E sempre associato ad un portafoglio (con sua <span class="text-italic">chiave pubblica</span>).<br/>E pubblicato sulla rete perche gli altri membri possino identificarla, certificarla o invarle soldi. <br/> Lo pseudonimo deve essere unico nella rete (tra quelli utilizzati adesso e in passato).'},LOGIN:{SECTION:"Accedi",PUBKEY:"Chiave pubblica del conto",PUBKEY_DEF:'La chiave pubblica del portachiavi è generata dai credenziali, ma non corrispode ad un conto già utilizzato.<br/><b>Accertati che tua chiave pubblica corrisponda al tuo conto</b>. Nel caso contrario, sarai conesso/a ad un conto probabilmente mai usato, datto che il rischio di collisione con un conto esistente è molto ridotto.<br/><a href="https://en.wikipedia.org/wiki/Elliptic_curve_cryptography" target="_ system">Saperne di più sulla cryptografia </a> con chiave pubblica.',METHOD:"Metodi di connessione",METHOD_DEF:"Hai diverse opzioni per accedere ad un portafoglio:<br/> - Accedendo con <b>salatura (leggera o sicura)</b> tua password sarà cryptata dal tuo identificativo segreto per scoraggiare tentativi di attachi di 'brute force' (per esempio con passwords conosciute).<br/> - Accedendo con la <b>chiave pubblica</b> ti evita di dover digitare tuoi credenziali che ti saranno chiesti solo quando vorrai fare una operazione col conto.<br/> - Accedendo <b>con un portachiavi</b> che leggerà tue chiave pubbliche e private da un file esterno, senza che tu li debba entrare."},GLOSSARY:{SECTION:"Glossario",PUBKEY_DEF:"Una chiave pubblica permette di identificare un portafoglio. Puo anche identificare un membro. In Cesium  è calcolata con la password e lo pseudonimo.",MEMBER:"Membro",MEMBER_DEF:'Un membro è una persona reale e viva, che desidera participare liberamente alla communità monetaria. Questo membro riceverà un Dividendo Universale, a secondo delle regole definite <span class="text-italic">nei parametri della moneta</span>.',CURRENCY_RULES:"Regole della moneta",CURRENCY_RULES_DEF:'I parametri delle moneta sono state definite per sempre e per tutti. I parametri con i quali la moneta si comporta: il calcolo del Dividendo Universale, il numero di certificazioni necessarie per diventare membro, il numero massimo di certificazioni che un membro puo inviare, etc.<br/><br/>I parametri non possono essere modificati perche c\'è una<span class="text-italic">Blockchain</span> che implementa e esegue queste regole e verifica costantemente la loro applicazione. <a href="#/app/currency">Vedere i parametri </a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'La Blockchain è un sistema decentralizzato che, nel caso di Duniter, permette di rispettare e implementare <span class="text-italic">le regole della moneta</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Saperne di più su Duniter</a> e il funzionamento della blockchain.',UNIVERSAL_DIVIDEND_DEF:'Il Dividendo Universale (UD) è la quantità di moneta co-creata da ogni membro, seguendo le formule mathematiche definite nelle <span class="text-italic">regole della moneta</span>.<br/>Al inizio di ogni periodo, il conto di ogni membro riceve una quantità uguale della nuova moneta creata. <br/><br/>Il DU conosce una crescita costante per rimanere equo nei confronti dei membri (attuali e passati). Viene calcolato tenendo in conto la speranza di vità media, cosi come dimostrato nella Teoria Relativa della Moneta (TRM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Saperne di più sulla TRM</a> e la moneta libera.'},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> permette la scoperta dei <b>parametri della moneta</b> e la sua condizione presente.",CURRENCY_WOT:"Il <b>numero di membri</b> mostra <b>le dimensioni della WoT e la sua evoluzione </b>.",CURRENCY_MASS:"In evidenza qui è <b>l'importo totale</b> attualmente in circolazione e la sua <b> ripartizione media </b> a testa.<br/><br/>Questa cifra permette di avere un'idea <b>del valore di qualsiasi importo</b>, in base a quello <b>hanno gli altri</b> sul loro conto (in media).",CURRENCY_UNIT_RELATIVE:"L'unità usata qui (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa che gli importi in {{currency|capitalize}} sono stati divisi dal <b>Dividendo Universale</b> (DU).<br/><br/><small>Questa unità relativa <b>ha senso</b> perche è stabile in contrasto con la massa monetaria che cresce costantemente.</small>",CURRENCY_CHANGE_UNIT:"Questa opzione <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permette di <b>permutare unità</b> per vedere gli importi in <b>{{currency|capitalize}}</b>, non divisi dal Dividendo Universale (piuttosto che in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"Questa opzione <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permette <b>di permutare unità</b> per vedere gli importi in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, che è relativo al Dividendo Universale (l'importo co-prodotto da ogni membro).",CURRENCY_RULES:"Le<b>regole</b> della moneta determinano il suo <b>esatto e previdibile</b> comportamento.<br/><br/> Considerate come il proprio DNA della moneta, queste regole rendono il codice monetario <b>trasparente e comprensibile</b>.",MENU_BTN_NETWORK:"Menu <b>{{'MENU.NETWORK'|translate}}</b> permette la scopertà dello <b>stato della rete<b>.",NETWORK_BLOCKCHAIN:"Tutte le transazioni monetarie sono registrate in <b>registro sicuro e a prova di manomissione</b>, spesso chiamato <b>blockchain</b>.",NETWORK_PEERS:"I<b>peers</b> mostrati qui corrispondono a <b>dei computers che aggiornano e monitorano</b> la blockchain.<br/><br/>Più peers ci sono, più <b>decentralizzata</b> e più affidabile diventa la moneta.",NETWORK_PEERS_BLOCK_NUMBER:"Questo <b>numero</b> (in verda) indica <b>l'ultimo blocco validato</b> dal peer (ultima pagina scritta nel regitro).<br/><br/>Il verda indica che il blocco è stato validato anche dalla <b>maggioranza degli altri peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Ogni membro</b>, che dispone di un computer connesso a Internet <b>puo partecipare, aggiungendosi come peer installando il software Duniter</b> (free/libre). <a target="_new" href="{{installDocUrl}}" target="_system">Leggi il manuale d\'installazione &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> permette l'accesso al saldo del conto e la cronologia delle transazioni.",MENU_BTN_ACCOUNT_MEMBER:"Qui puoi consultare lo stato del tuo conto, la cronologia delle transazioni e le tue certificazioni.",WALLET_CERTIFICATIONS:"Clicca qui per vedere i dettagli delle tue certificazioni (date o ricevute).",WALLET_RECEIVED_CERTIFICATIONS:"Clicca qui per vedere i dettagli delle <b>certificazioni che hai ricevuto</b>.",WALLET_GIVEN_CERTIFICATIONS:"Clicca qui per vedere i dettagli delle <b>certificazioni che hai date</b>.",WALLET_BALANCE:"Il <b>soldo</b> del tuo conto è visibile qui.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>L'unità utilizzata (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa che questo importo in {{currency|capitalize}} è stato diviso dal <b>Dividendo Universale</b> (DU) co-creato da ogni membro.<br/>Ad oggi, 1 DU equivale a {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"Puoi <b>cambiare l'unità</b> in cui sono mostrati gli importi in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Per esempio, per mostrare gli importi <b>direttamente in {{currency|capitalize}}</b> piuttosto che in unità relativa.",WALLET_PUBKEY:"Questa è la chiave pubblica del tuo conto. La puoi dare ad un terzo perche possa identificare tuo conto.",WALLET_SEND:"Paghi in pochi clics.",WALLET_SEND_NO_MONEY:"Paghi in pochi clics.<br/>(Tuo saldo ancora non lo permette)",WALLET_OPTIONS:"Questo bottone permette di fare <b>altre, meno frequenti azioni</b>.<br/><br/> Non dimenticarti di fare il tour guidato di Cesium quando hai un attimo!",WALLET_RECEIVED_CERTS:"Questo mostra l'elenco delle persone che ti hanno fatto entrare nella WoT.",WALLET_CERTIFY:"Questo bottone <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> permette di selezionare e certificare una identità.<br/><br/>Solo gli utenti <b>che sono già membri</b> possono certificare gli altri.",WALLET_CERT_STOCK:"Tuo stock di certificazioni da dare è limitato a <b>{{sigStock}} certificazioni</b>.<br/><br/>Questo stock si rifornisce col tempo, man mano che le certificazioni inviate scadono.",MENU_BTN_TX_MEMBER:"<b>{{'MENU.TRANSACTIONS'|translate}}</b> permette l'accesso alla cronologia delle transazioni, e permette di fare nuovi bonifici.",MENU_BTN_TX:"Visualizza la cronologia <b>delle tue transazioni</b> qui e fai nuovi bonifici.",MENU_BTN_WOT:"Il menu<b>{{'MENU.WOT'|translate}}</b> permette di cercare <b>utenti</b> della moneta (membri o non).",WOT_SEARCH_TEXT_XS:"Per fare una ricerca nel annuario, digita <b>le prime lettere dello pseudonimo o della chiave pubblica di un utente</b>.<br/><br/>La ricerca inizierà automaticamente.",WOT_SEARCH_TEXT:"Per cercare nel annuario, digita <b>le prime lettere dello pseudonimo o della chiave pubblica di un utente</b>.<br/><br/>Dopodichè calca <b>Enter</b> per avviare la ricerca.",WOT_SEARCH_RESULT:"Visualizza la scheda dettagliata di un utente con un semplice click sulla linea.",WOT_VIEW_CERTIFICATIONS:"La linea <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> mostra quanti membri hanno certificato questa identità.<br/><br/>Queste certificazioni dimostrano che il conto appartiene ad <b>una persona viva</b> e che questa persona non ha <b>nessun altro conto membro</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Ci vogliono almeno <b>{{sigQty}} certificazioni</b> per diventare membro e co-produrre il <b>Dividendo Universale</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Clicca qui per aprire <b>una lista di tutte le certificazioni</b> ricevute e date da questa identità.",WOT_VIEW_CERTIFY:"Il bottone <b>{{'WOT.BTN_CERTIFY'|translate}}</b> permette di aggiungere tua certificazione a questa identità.",CERTIFY_RULES:"<b>Attenzione:</b> Certifichi <b> solo persone reali e vive</b> che non hanno nessun altro conto membro.<br/><br/>L'affidabilità della moneta dipende della vigilanza di ciascuno.",MENU_BTN_SETTINGS:"Les <b>{{'MENU.SETTINGS'|translate}}</b> ti permettono di configurare Cesium.<br/><br/>Per esempio, puoi <b>cambiare l'unità</b> in cui visualizzi la moneta.",HEADER_BAR_BTN_PROFILE:"Clicca qui per entrare nel <b>tuo profilo utente</b>",SETTINGS_CHANGE_UNIT:"Puoi cambiare <b>l'unità</b> della moneta cliccando qui.<br/><br/>- Disabilita questa opzione per vedere gli importi in {{currency|capitalize}}.<br/>- Abilita l'opzione per importi relativi in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divisi</b> dal attuale Dividendo Universale).",END_LOGIN:"Il tour guidato <b>è finito</b>.<br/><br/>Benvenuto nel <b>economia libera</b>!",END_NOT_LOGIN:"Il tour guidato <b>è finito</b>.<br/><br/>Se desideri entrare nella Web of Trust {{currency|capitalize}}, basta cliccare <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> qui sotto."}},API:{COMMON:{LINK_DOC:"documentazione API",LINK_DOC_HELP:"Documentazione dello sviluppatore",LINK_STANDARD_APP:"versione classica",LINK_STANDARD_APP_HELP:"Apri la versione classica di {{'COMMON.APP_NAME'|translate}}"},HOME:{TITLE:"Documentazione API {{'COMMON.APP_NAME'|translate}}",MESSAGE:'Bienvenue dans la <b>documentation de l\'API</b> {{\'COMMON.APP_NAME\'|translate}}.<br/>Connecter vos sites web à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',MESSAGE_SHORT:'Connecter vos sites à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',DOC_HEADER:"Services disponibles :"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Paiement en ligne",TITLE_SHORT:"Pagamento online",SUMMARY:"Récapitulatif de la commande :",AMOUNT:"Montant :",NAME:"Nom :",PUBKEY:"Clé publique du destinaire :",COMMENT:"Référence de la commande :",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Mode démonstration</b> : Aucun paiement ne sera réellement envoyé pendant cette simulation.<br/>Veuillez utiliser les identifiants : <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Vérifiez votre saisie.<br/>En mode démonstration, les identifiants sont : {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Paiement envoyé.<br/>Redirection vers <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Paiement envoyé.<br/>Redirection vers le site du vendeur...",CANCEL_REDIRECTING_WITH_NAME:"Paiement annulé.<br/>Redirection vers <b>{{name}}</b>...",CANCEL_REDIRECTING:"Paiement annulé.<br/>Redirection vers le site du vendeur..."},ERROR:{TRANSFER_FAILED:"Mancato pagamento"}},DOC:{DESCRIPTION_DIVIDER:"Descrizione",URL_DIVIDER:"Indirizzo chiamata",PARAMETERS_DIVIDER:"Impostazioni",AVAILABLE_PARAMETERS:"Ecco l'elenco dei parametri disponibili :",DEMO_DIVIDER:"Provare",DEMO_HELP:"Per provare questo servizio, clicca sul bottone qui a fianco. Il risultato apparirà qui sotto .",DEMO_RESULT:"Risultato della chiamata :",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Successo !',DEMO_CANCELLED:'<i class="icon ion-close"></i> Annulato dal utente',INTEGRATE_DIVIDER:"Integrare",INTEGRATE_CODE:"Codice :",INTEGRATE_RESULT:"Previsualizzare il risultato :",INTEGRATE_PARAMETERS:"Parametri",TRANSFER:{TITLE:"Pagamenti",DESCRIPTION:"Da un sito (per es. : un sito e-commerce) si può delegare il pagamento in moneta libera a Cesium API. Per invocare l'API, basta innescare l'apertura di una pagina con questo indirizzo:",PARAM_PUBKEY:"Chiave pubblica del destinatario",PARAM_PUBKEY_HELP:"Chiave pubblica del destinatario (obliggatoria)",PARAM_AMOUNT:"Importo",PARAM_AMOUNT_HELP:"Importo della transazione (obligatorio)",PARAM_COMMENT:"Riferimento (o commento)",PARAM_COMMENT_HELP:"Riferimento o commento. Ti può aiutare per esempio a trovare tuo pagamento nella blockchain.",PARAM_NAME:"Nome (de destinatario o del sito web)",PARAM_NAME_HELP:'Nom del sito web o del destinatario chiamando l\'API. Può essere un nome leggibile ("Mio sito"), oppure l\'indirizzo http del sito ("MioSito.com").',PARAM_REDIRECT_URL:"Indirizzo web di redirezione",PARAM_REDIRECT_URL_HELP:'Indirizzo web (URL) di redirezione, chiamato dopo aver inviato il pagamento. Può includere le seguenti stringe, che saranno sostituite con i valori della transazione : "{tx}", "{hash}", "{comment}", "{amount}" e {pubkey}.',PARAM_CANCEL_URL:"Indirizzo web della cancellazione",PARAM_CANCEL_URL_HELP:'Indirizzo web (URL) in caso dell\'annullamento del pagamento dall\'utente. Può includere le seguenti stringe, che saranno sostituite dinamicamente : "{comment}", "{amount}" e {pubkey}.',EXAMPLES_HELP:"Ecco esempi di integrazione :",EXAMPLE_BUTTON:"Bottone HTML",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pagare in {{currency|currencySymbol}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Stile personnalizzato",EXAMPLE_BUTTON_TEXT_HELP:"Testo del bottone",EXAMPLE_BUTTON_BG_COLOR:"Colore del fondo",EXAMPLE_BUTTON_BG_COLOR_HELP:"Per esempio: #fbc14c, black, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Colore del testo",EXAMPLE_BUTTON_FONT_COLOR_HELP:"Esempio: black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icona",EXAMPLE_BUTTON_TEXT_WIDTH:"Larghezza",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"Esempio: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"Nessuna",EXAMPLE_BUTTON_ICON_DUNITER:"Logo Duniter",EXAMPLE_BUTTON_ICON_CESIUM:"Logo Cesium",EXAMPLE_BUTTON_ICON_G1_COLOR:"Logo Ğ1",EXAMPLE_BUTTON_ICON_G1_BLACK:"Logo Ğ1 (nero)"}}}}),e.translations("nl-NL",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",PUBKEY:"Publieke sleutel",MEMBER:"Lid",BLOCK:"Blok",BTN_OK:"OK",BTN_YES:"Ja",BTN_NO:"Nee",BTN_SEND:"Verzenden",BTN_SEND_MONEY:"Verstuur geld",BTN_SEND_MONEY_SHORT:"Versturen",BTN_SAVE:"Opslaan",BTN_YES_SAVE:"Ja, opslaan",BTN_YES_CONTINUE:"Ja, doorgaan",BTN_SHOW:"Tonen",BTN_SHOW_PUBKEY:"Toon sleutel",BTN_RELATIVE_UNIT:"Gebruik relatieve eenheid",BTN_BACK:"Terug",BTN_NEXT:"Volgende",BTN_CANCEL:"Annuleer",BTN_CLOSE:"Sluit",BTN_LATER:"Later",BTN_LOGIN:"Aanmelden",BTN_LOGOUT:"Uitloggen",BTN_ADD_ACCOUNT:"Nieuwe Rekening",BTN_SHARE:"Delen",BTN_EDIT:"Bewerken",BTN_DELETE:"Wissen",BTN_ADD:"Toevoegen",BTN_SEARCH:"Zoeken",BTN_REFRESH:"Verwezenlijken",BTN_START:"Beginnen",BTN_CONTINUE:"Doorgaan",BTN_UNDERSTOOD:"Ik heb het begrepen",BTN_OPTIONS:"Opties",BTN_HELP_TOUR:"Rondleiding",BTN_HELP_TOUR_SCREEN:"Ontdek dit scherm",BTN_DOWNLOAD:"Downloaden",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Downloaden het rekeningoverzicht",BTN_MODIFY:"Bewerken",DAYS:"dagen",NO_ACCOUNT_QUESTION:"Nog geen lid? Registreer nu!",SEARCH_NO_RESULT:"Geen resultaten",LOADING:"Even geduld...",SEARCHING:"Zoeken...",FROM:"Van",TO:"Aan",COPY:"Kopieren",LANGUAGE:"Taal",UNIVERSAL_DIVIDEND:"Universeel dividend",UD:"UD",DATE_PATTERN:"DD-MM-YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD-MM-YY",DATE_MONTH_YEAR_PATTERN:"MM-YYYY",EMPTY_PARENTHESIS:"(leeg)",UID:"Pseudoniem",ENABLE:"Geactiveerd",DISABLE:"Gedeactiveerd",RESULTS_LIST:"Resultaten:",RESULTS_COUNT:"{{count}} uitslagen",EXECUTION_TIME:"uitgevoerd in {{duration|formatDurationMs}}",SHOW_VALUES:"Toon waarden openlijk?",POPOVER_ACTIONS_TITLE:"Opties",POPOVER_FILTER_TITLE:"Filters",SHOW_MORE:"Toon meer",SHOW_MORE_COUNT:"(huidig limiet op {{limit}})",POPOVER_SHARE:{TITLE:"Delen",SHARE_ON_TWITTER:"Deel op Twitter",SHARE_ON_FACEBOOK:"Deel op Facebook",SHARE_ON_DIASPORA:"Deel op Diaspora*",SHARE_ON_GOOGLEPLUS:"Deel op Google+"}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Selecteer bron:",BTN_PICTURE_GALLERY:"Gallerij",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Welkom",WOT:"Register",CURRENCY:"Valuta",CURRENCIES:"Valuta's",ACCOUNT:"Mijn rekening",TRANSFER:"Overmaken",SCAN:"Scannen",SETTINGS:"Instellingen",NETWORK:"Netwerk",TRANSACTIONS:"Mijn transacties"},ABOUT:{TITLE:"Over",LICENSE:"<b>Vrije</b> software (GNU AGPLv3 licentie).",CODE:"Broncode:",DEVELOPERS:"Ontwikkelaars:",FORUM:"Forum:",DEV_WARNING:"Waarschuwing",DEV_WARNING_MESSAGE:"Deze applicatie is nog in actieve onwikkeling.<br/>Meld ons elk pobleem!",DEV_WARNING_MESSAGE_SHORT:"Deze App is nog instabiel (in ontwikkeling).",REPORT_ISSUE:"Meld een probleem"},HOME:{TITLE:"Cesium",WELCOME:"Welkom bij de Cesium Applicatie!",MESSAGE:"Bekijk je {{currency|abbreviate}} portefeilles in real time.",BTN_REGISTRY:"Register",BTN_CURRENCY:"Verken valuta",BTN_ABOUT:"over",BTN_HELP:"Help",REPORT_ISSUE:"Meld een probleem",NOT_YOUR_ACCOUNT_QUESTION:'Is rekening <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b> niet van jou?',BTN_CHANGE_ACCOUNT:"Dze rekening ontkoppelen",CONNECTION_ERROR:'Node <b>{{server}}</b> onbereikbaar of ongeldig adres.<br/><br/>Controleer de internetverbinding, of schakel knooppunt <a class="positive" ng-click="doQuickFix(\'settings\')">in parameters</a>.'},SETTINGS:{TITLE:"Instellingen",NETWORK_SETTINGS:"Netwerk",PEER:"Duniter knooppunt adres",PEER_CHANGED_TEMPORARY:"Adres tijdelijk worden gebruikt",USE_LOCAL_STORAGE:"Lokale opslag inschakelen",USE_LOCAL_STORAGE_HELP:"Laat je instellingen opslaan",ENABLE_HELPTIP:"Contextgebonden hulp inschakelen",ENABLE_UI_EFFECTS:"Schakel visuele effecten",HISTORY_SETTINGS:"Mijn rekening",DISPLAY_UD_HISTORY:"Toon geproduceerde dividenden?",AUTHENTICATION_SETTINGS:"Authentificatie",REMEMBER_ME:"Onthoud mij",REMEMBER_ME_HELP:"Hiermee kunt u blijven altijd aangesloten (niet aanbevolen).",PLUGINS_SETTINGS:"Uitbreidingen",BTN_RESET:"Herstel standaardinstellingen",EXPERT_MODE:"Geavanceerde modus inschakelen",EXPERT_MODE_HELP:"Toon meer details",POPUP_PEER:{TITLE:"Duniter Knooppunt",HOST:"Adres",HOST_HELP:"Aadres: server:poort",USE_SSL:"Secure?",USE_SSL_HELP:"(SSL-encryptie)",BTN_SHOW_LIST:"Lijst van knooppunten"}},BLOCKCHAIN:{HASH:"Hachee : {{hash}}",VIEW:{HEADER_TITLE:"Blok #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Huidige blok",TITLE:"Blok #{{number|formatInteger}}",COMPUTED_BY:"Berekend door het knooppunt",SHOW_RAW:"Bekijk RAW-bestand",TECHNICAL_DIVIDER:"Technische informatie",VERSION:"Format versie",HASH:"Hash berekend",UNIVERSAL_DIVIDEND_HELP:"Munt gecoproduceerd door elk van de {{membersCount}} ledental",EMPTY:"Er zijn geen gegevens in dit blok",POW_MIN:"Mminimum moeilijkheid",POW_MIN_HELP:"Moeilijkheid opgelegd hash te berekenen",DATA_DIVIDER:"Gegevens",IDENTITIES_COUNT:"Nieuwe identiteiten",JOINERS_COUNT:"Nieuwe leden",ACTIVES_COUNT:"Verlengingen",ACTIVES_COUNT_HELP:"Leden die hun lidmaatschap te vernieuwen",LEAVERS_COUNT:"Verlaters",LEAVERS_COUNT_HELP:"Leden die niet langer wenst certificering",EXCLUDED_COUNT:"Uitgesloten leden",EXCLUDED_COUNT_HELP:"Oud-leden uitgesloten door niet-verlenging of gebrek aan certificeringen",REVOKED_COUNT:"Identiteiten ingetrokken",REVOKED_COUNT_HELP:"Deze rekeningen zullen niet langer leden",TX_COUNT:"Transacties",CERT_COUNT:"Certificeringen",TX_TO_HIMSELF:"Ruil deal",TX_OUTPUT_UNLOCK_CONDITIONS:"Omstandigheden van de introductie",TX_OUTPUT_OPERATOR:{AND:"en",OR:"of"},TX_OUTPUT_FUNCTION:{SIG:"<b>handtekening</b> ",XHX:"<b>Wachtwoord</b>, wiens SHA256 =",CSV:"Geblokkeerd",CLTV:"Opgesloten"}},LOOKUP:{TITLE:"Blokken",NO_BLOCK:"Geen blok",LAST_BLOCKS:"Recente blokken :",BTN_COMPACT:"Compact"}},CURRENCY:{SELECT:{TITLE:"Valuta's",CURRENCIES:"Bekende valuta's",MEMBERS_COUNT:"{{membersCount}} leden"},VIEW:{TITLE:"Valuta",TAB_CURRENCY:"Valuta",TAB_WOT:"Gemeenschap",TAB_NETWORK:"Netwerk",CURRENCY_NAME:"Valuta naam",MEMBERS:"Ledental",MEMBERS_VARIATION:"Variatie since {{duration | formatDuration}}",MONEY_DIVIDER:"Geld",MASS:"Monetaire massa",SHARE:"Aandeel per lid",UD:"Universeel Dividend",C_ACTUAL:"Huidige toename",MEDIAN_TIME:"Blockchain tijd",POW_MIN:"Algemene moeilijkheidsgraad",MONEY_RULES_DIVIDER:"Monetaire regels",C_RULE:"Toename",UD_RULE:"Universeel dividend (formule)",SIG_QTY_RULE:"Benodigd aantal certificaties om lid te worden",SIG_STOCK:"Maximum aantal certificaties te versturen per lid",SIG_PERIOD:"Minimum vertraging tussen 2 certificaties verzonden door één en dezelfde persoon.",SIG_WINDOW:"Maximum vertraging voor een certificatie in behandeling wordt genomen",STEP_MAX:"Maximum afstand tussen elk WoT lid en een nieuw lid.",WOT_RULES_DIVIDER:"Lidmaatschapseisen",XPERCENT:"Minimum percentage schildwachten te bereiken om de afstandsregel te respecteren"}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain tijd",LOADING_PEERS:"Even geduld...",NODE_ADDRESS:"Adres :",ENDPOINTS:{BMAS:"Endpoint (SSL)",BMATOR:"Endpoint TOR",ES_USER_API:"Knoop Cesium+"}},INFO:{ONLY_SSL_PEERS:"Les noeuds non SSL ont un affichage dégradé, car Cesium fonctionne en mode HTTPS."}},PEER:{PEERS:"Knopen",SIGNED_ON_BLOCK:"Getekend op blok",MIRROR:"spiegel",CURRENT_BLOCK:"Blok #",VIEW:{TITLE:"Knoop",OWNER:"Maakt deel uit van",SHOW_RAW_PEERING:"Zie netwerkdocument",KNOWN_PEERS:"Bekende knopen :",GENERAL_DIVIDER:"Algemene informatie",ERROR:{LOADING_TOR_NODE_ERROR:"Kan knooppunt niet worden opgehaald. De wachttijd wordt overschreden.",LOADING_NODE_ERROR:"Kan knooppunt niet worden opgehaald"}}},WOT:{SEARCH_HELP:"Zoeken (lid of publieke sleutel)",SEARCH_INIT_PHASE_WARNING:"Tijdens de pre-registratiefase, het zoeken van lopende registraties <b>kan lang</b> zijn. Dank je wel geduld...",REGISTERED_SINCE:"Registratie",REGISTERED_SINCE_BLOCK:"Geregistreerd op blok #",NO_CERTIFICATION:"Geen gevalideerde certificaties",NO_GIVEN_CERTIFICATION:"Geen uitgegeven certificaties",NOT_MEMBER_PARENTHESIS:"(niet-lid)",IDENTITY_REVOKED_PARENTHESIS:"(ingetrokken identiteit)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(intrekking in behandeling)",EXPIRE_IN:"Verloopt",NOT_WRITTEN_EXPIRE_IN:"Uiterlijke<br/>behandeling",EXPIRED:"Verlopen",PSEUDO:"Pseudoniem",SIGNED_ON_BLOCK:"Uitgegeven op block #{{block}}",WRITTEN_ON_BLOCK:"Geschreven op block #{{block}}",GENERAL_DIVIDER:"Algemene informatie",NOT_MEMBER_ACCOUNT:"Simpele rekening (geen lid)",NOT_MEMBER_ACCOUNT_HELP:"Dit is een eenvoudige rekening, zonder dat er een aanvraag voor lidmaatschap in de wacht wordt gezet.",TECHNICAL_DIVIDER:"Technische informatie",BTN_CERTIFY:"Certificeren",BTN_YES_CERTIFY:"Ja, Certificeren",BTN_SELECT_AND_CERTIFY:"Nieuwe certificatie",ACCOUNT_OPERATIONS:"Operaties op de rekening",VIEW:{POPOVER_SHARE_TITLE:"Identiteit {{title}}"},LOOKUP:{TITLE:"Register",NEWCOMERS:"Nieuwe leden:",PENDING:"Aspirant leden:",REGISTERED:"Geregistreerd {{sigDate | formatFromNow}}",MEMBER_FROM:"Lid sinds {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Nieuwste leden",BTN_PENDING:"Registraties in afwachting",SHOW_MORE:"Toon meer",SHOW_MORE_COUNT:"(huidige limiet op {{limit}})",NO_PENDING:"Er zijn geen registraties in afwachting gevonden.",NO_NEWCOMERS:"Er zijn geen nieuwe leden gevonden."},MODAL:{TITLE:"Zoeken"},CERTIFICATIONS:{TITLE:"{{uid}} - Certificaties",SUMMARY:"Ontvangen certificaties",LIST:"Details van ontvangen certificaties",PENDING_LIST:"Certificaties in afwachting",RECEIVED:"Ontvangen certificaties",RECEIVED_BY:"Certificaties ontvanged door {{uid}}",ERROR:"Ontvangen vertificaties met fout",SENTRY_MEMBER:"Referent lid"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Verzonden certificaties",SUMMARY:"Verzonden certificaties",LIST:"Details van verzonden certificaties",PENDING_LIST:"Certificaties in afwachting",SENT:"Verzonden certificaties",SENT_BY:"Certificaties verzonden door {{uid}}",ERROR:"Verzonden certificaties met fout"}},LOGIN:{TITLE:'<i class="icon ion-locked"></i> Inloggen',SALT:"Beveiligingszin",SALT_HELP:"Zin ter beveiliging van je rekening",SHOW_SALT:"Toon de beveiligingszin",PASSWORD:"Wachtwoord",PASSWORD_HELP:"Wachtwoord ter beveiliging van je rekening",NO_ACCOUNT_QUESTION:"Nog geen rekening?",CREATE_ACCOUNT:"Open een rekening",FORGOTTEN_ID:"Wachtwoord vergeten?"},ACCOUNT:{TITLE:"Mijn rekening",BALANCE:"Saldo",LAST_TX:"Recente transacties",BALANCE_ACCOUNT:"Rekeningsaldo",NO_TX:"Geen transacties",SHOW_MORE_TX:"Show more",SHOW_ALL_TX:"Show all",TX_FROM_DATE:"(huidige limiet op {{fromTime|medianFromNowShort}})",PENDING_TX:"Transacties in afwachting",ERROR_TX:"Niet uitgevoerde transacties",ERROR_TX_SENT:"Verzonden transacties",ERROR_TX_RECEIVED:"Ontvangen transacties",EVENTS:"Gebeurtenissen",WAITING_MEMBERSHIP:"Lidmaatschapsverzoek verzonden. In afwachting van validatie.",WAITING_CERTIFICATIONS:"Je hebt {{needCertificationCount}} certificatie(s) nodig om lid te worden",WILL_MISSING_CERTIFICATIONS:"Je heeft binnenkort <b>onvoldoende certificaties</b> (ten minste {{willNeedCertificationCount}} benodigd)",WILL_NEED_RENEW_MEMBERSHIP:"Je lidmaatschap <b>gaat verlopen op {{membershipExpiresIn|formatDurationTo}}</b>. Vergeet niet <a ng-click=\"doQuickFix('renew')\">je lidmaatschap te vernieuwen</a> voor die tijd.",CERTIFICATION_COUNT:"Aantal certificaties",CERTIFICATION_COUNT_SHORT:"Certificaties",SIG_STOCK:"Voorraad uit te geven certificaties",BTN_RECEIVE_MONEY:"Ontvangen",BTN_MEMBERSHIP_IN_DOTS:"Lidmaatschap aanvragen...",BTN_MEMBERSHIP_RENEW:"Lidmaatschap verlengen",BTN_MEMBERSHIP_RENEW_DOTS:"Lidmaatschap verlengen...",BTN_MEMBERSHIP_OUT_DOTS:"Lidmaatschap opzeggen...",BTN_SEND_IDENTITY_DOTS:"Identiteit publiceren...",BTN_SECURITY_DOTS:"Rekening en veiligheid...",BTN_SHOW_DETAILS:"Tonen technische informatie",BTN_REVOKE:"Deze identiteit<span class='hidden-xs hidden-sm'> definitief</span> opzeggen...",NEW:{TITLE:"Registratie",SLIDE_1_TITLE:"Selecteer een valuta:",SLIDE_2_TITLE:"Soort rekening:",MEMBER_ACCOUNT:"Persoonlijke rekening (lidmaatschap)",MEMBER_ACCOUNT_HELP:"Als je nog niet als individu geregistreerd bent (één rekening per individu mogelijk).",WALLET_ACCOUNT:"Eenvoudige portefeille",WALLET_ACCOUNT_HELP:"Als je een onderneming, stichting etc. vertegenwoordigd of eenvoudigweg een additionele portefeille nodig hebt. Geen individueel universeel dividend zal door deze rekening gecréeerd worden.",SALT_WARNING:"Kies een beveiligingszin.<br/>Deze heb je nodig voor ieder verbinding met je rekening.<br/><br/><b>Zorg dat je deze zin goed onthoud</b>.<br/>Eenmaal verloren, is er geen mogelijkheid om hem te achterhalen!",PASSWORD_WARNING:"Kies een wachtwoord.<br/>Deze heb je nodig voor ieder verbinding met je rekening.<br/><br/><b>Zorg dat je dit woord goed onthoud</b>.<br/>Eenmaal verloren, is er geen mogelijkheid om hem te achterhalen!",PSEUDO_WARNING:"Kies een pseudoniem.<br/>Het dient om makkelijker gevonden te worden door anderen.<br/><br/>.Gebruik van spaties, komma's en accenten is niet toegestaan.<br/><div class='hidden-xs'><br/>Voorbeeld: <span class='gray'>JulesDeelder, JohanVermeer, etc.</span>",PSEUDO:"Pseudoniem",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Bevestig",SALT_CONFIRM_HELP:"Bevestig de beveiligingszin",PASSWORD_CONFIRM:"Bevestig",PASSWORD_CONFIRM_HELP:"Bevestig het wachtwoord",SLIDE_6_TITLE:"Bevestiging:",COMPUTING_PUBKEY:"Berekening...",LAST_SLIDE_CONGRATULATION:"Bravo! Je hebt alle verplichte velden ingevuld.<br/>Je kunt je <b>rekeningaanvraag verzenden</b>.<br/><br/>Ter informatie, de publieke sleutel hieronder identificeert je toekomstige rekening.<br/>Je kunt deze aan derde partijen communiceren om geld te ontvangen. Zodra je rekening geopend is, kun je de sleutel terugvinden onder <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Waarschuwing:</b> je beveiligingszin, wachtwoord en pseudoniem kunnen hierna niet gewijzigd worden.<br/><b>Zorg dat ze goed onthoudt!</b><br/><b>Weet je zeker</b> dat je je persoonlijke rekeningaanvraag wil verzenden?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Waarschuwing:</b> je wachtwoord en pseudoniem kunnen hierna niet gewijzigd worden.<br/><b>Zorg dat ze goed onthoudt!</b><br/><b>Weet je zeker</b> dat je deze portefeilleaanvraag wil verzenden?',PSEUDO_AVAILABLE:"Deze naam is beschikbaar",PSEUDO_NOT_AVAILABLE:"Deze gebruikersnaam is niet beschikbaar",INFO_LICENSE:"Om de valuta te sluiten, vragen wij u om te lezen en deze licentie te accepteren.",BTN_ACCEPT:"Ik accepteer",BTN_ACCEPT_LICENSE:"Ik ga akkoord met de licentie"},POPUP_REGISTER:{TITLE:"Voer een pseudoniem in",HELP:"Een pseudoniem is nodig voor anderen om je te kunnen vinden."},FILE_NAME:"{{currency}} - Rekeningafschrift {{pubkey|formatPubkey}} {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Datum",AMOUNT:"Bedrag",COMMENT:"Commentaar"}},TRANSFER:{TITLE:"Overboeken",SUB_TITLE:"Geld overboeken",FROM:"Van",TO:"Aan",AMOUNT:"Bedrag",AMOUNT_HELP:"Bedrag",COMMENT:"Opmerking",COMMENT_HELP:"Opmerking (optioneel)",BTN_SEND:"Verzenden",BTN_ADD_COMMENT:"Opmerking toevoegen",WARN_COMMENT_IS_PUBLIC:"Houd er rekening mee dat <b>reacties openbaar zijn </b> (niet-versleuteld).",MODAL:{TITLE:"Overboeking"}},ERROR:{POPUP_TITLE:"Error",UNKNOWN_ERROR:"Unknown error",CRYPTO_UNKNOWN_ERROR:"Your browser is not compatible with cryptographic features.",FIELD_REQUIRED:"This field is required.",FIELD_TOO_SHORT:"Value is too short (min {{minLength]] characters).",FIELD_TOO_SHORT_WITH_LENGTH:"This field value is too short.",FIELD_TOO_LONG:"Value is exceeding max length.",FIELD_TOO_LONG_WITH_LENGTH:"Value is too long (max {{maxLength}} characters).",FIELD_ACCENT:"Commas and accent characters not allowed",FIELD_NOT_NUMBER:"Value is not a number",FIELD_NOT_INT:"Value is not an integer",PASSWORD_NOT_CONFIRMED:"Must match previous password.",SALT_NOT_CONFIRMED:"Must match previous phrase.",SEND_IDENTITY_FAILED:"Error while trying to register.",SEND_CERTIFICATION_FAILED:"Could not certify identity.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"You could not send certification, because your account is <b>not a member account</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"You could not send certification now, because your are <b>not a member</b> yet.<br/><br/>You still need certification to become a member.",NOT_MEMBER_FOR_CERTIFICATION:"Your account is not a member account yet.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"This account could not be certified. No registration found, or need to renew.",LOGIN_FAILED:"Error while sign in.",LOAD_IDENTITY_FAILED:"Could not load identity.",LOAD_REQUIREMENTS_FAILED:"Could not load identity requirements.",SEND_MEMBERSHIP_IN_FAILED:"Error while sending registration as member.",SEND_MEMBERSHIP_OUT_FAILED:"Error while sending membership revocation.",REFRESH_WALLET_DATA:"Could not refresh wallet.",GET_CURRENCY_PARAMETER:"Could not get currency parameters.",GET_CURRENCY_FAILED:"Could not load currency.",SEND_TX_FAILED:"Could not send transaction.",ALL_SOURCES_USED:"Please wait the next block computation (All transaction sources has been used).",NOT_ENOUGH_SOURCES:"Not enough changes to send this amount in one time.<br/>Maximum amount: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error while creating your member account.",RESTORE_WALLET_DATA_ERROR:"Error while reloading settings from local storage",LOAD_WALLET_DATA_ERROR:"Error while loading wallet data.",COPY_CLIPBOARD_FAILED:"Could not copy to clipboard",TAKE_PICTURE_FAILED:"Could not get picture.",SCAN_FAILED:"Could not scan QR code.",SCAN_UNKNOWN_FORMAT:"Code not recognized.",WOT_LOOKUP_FAILED:"Search failed.",LOAD_PEER_DATA_FAILED:"Duniter peer not accessible. Please retry later.",NEED_LOGIN_FIRST:"Please sign in first.",AMOUNT_REQUIRED:"Amount is required.",AMOUNT_NEGATIVE:"Negative amount not allowed.",NOT_ENOUGH_CREDIT:"Not enough credit.",INVALID_NODE_SUMMARY:"Unreachable peer or invalid address",INVALID_USER_ID:"Field 'pseudonym' must not contains spaces or special characters.",INVALID_COMMENT:"Field 'reference' has a bad format.",INVALID_PUBKEY:"Public key has a bad format.",IDENTITY_INVALID_BLOCK_HASH:"This membership application is no longer valid (because it references a block that network peers are cancelled): the person must renew its application for membership <b>before</b> being certified.",IDENTITY_EXPIRED:"This identity has expired: this person must re-apply <b>before</b> being certified.",IDENTITY_SANDBOX_FULL:"Could not register, because peer's sandbox is full.<br/><br/>Please retry later or choose another Duniter peer (in <b>Settings</b>).",WOT_PENDING_INVALID_BLOCK_HASH:"Membership not valid.",WALLET_INVALID_BLOCK_HASH:"Your membership application is no longer valid (because it references a block that network peers are cancelled).<br/>You must <a ng-click=\"doQuickFix('renew')\">renew your application for membership</a> to fix this issue.",WALLET_IDENTITY_EXPIRED:"The publication of your identity <b>has expired</b>.<br/>You must <a ng-click=\"doQuickFix('fixIdentity')\">re-issue your identity</a> to resolve this issue.",WALLET_HAS_NO_SELF:"Your identity must first have been published, and not expired.",IDENTITY_ALREADY_CERTIFY:"You have <b>already certified</b> that identity.<br/><br/>Your certificate is still valid (expires {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"You have <b>already certified</b> that identity.<br/><br/>Your certification is still pending (Deadline for treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Unable to certify",LOAD_NEWCOMERS_FAILED:"Unable to load new members.",LOAD_PENDING_FAILED:"Unable to load pending registrations.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member</b> in order to perform this action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"You must have <b>published your identity</b> in order to perform this action.",EXISTING_ACCOUNT:"Je gegevens komen overeen met een bestaande rekening, met de <a ng-click=\"showHelpModal('pubkey')\">publieke sleutel</a>:",EXISTING_ACCOUNT_REQUEST:"Gelieve je gegevens te wijzigen zodat ze met een niet gebruikte rekening overeenkomen."},INFO:{POPUP_TITLE:"Informatie",CERTIFICATION_DONE:"Identiteit succesvol getekend",NOT_ENOUGH_CREDIT:"Niet genoeg krediet",TRANSFER_SENT:"Verzoek tot overboeken succesvol verzonden",COPY_TO_CLIPBOARD_DONE:"Kopie geslaagd",MEMBERSHIP_OUT_SENT:"Opzegging lidmaatschap succesvol verzonden",NOT_NEED_MEMBERSHIP:"Je bent al lid.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Deze identiteit heeft binnenkort onvoldoende certificaties (ten minste {{willNeedCertificationCount}} nodig)."},CONFIRM:{POPUP_TITLE:"<b>Bevestiging</b>",POPUP_WARNING_TITLE:"<b>Waarschuwing</b>",CERTIFY_RULES_TITLE_UID:"Certificeer {{uid}}",CERTIFY_RULES:'<b>Beveiligingswaarschuwing:</b><br/><br/><b class="assertive">Certificeer een rekening niet</b> als je gelooft dat: <ul><li>1.) de aanvrager niet echt is.<li>2.) de aanvrager al een andere gecertificeerde rekening heeft.<li>3.) de aanvrager opzettelijk of door onzorgvuldigheid regel 1 of 2 overtreedt bij het verzenden van certificaten.</ul></small><br/>Weet je zeker dat je deze identieit wilt certificeren?',TRANSFER:"<b>Samenvatting van de overboeking:</b><br/><br/><ul><li> - Van: <b>{{from}}</b></li><li> - Aan: <b>{{to}}</b></li><li> - Bedrag: <b>{{amount}} {{unit}}</b></li><li> - Opmerking: <i>{{comment}}</i></li></ul><br/><b>Weet je zeker dat je deze overboeking wil doen?</b>",MEMBERSHIP_OUT:"<b>Waarschuwing</b>:<br/>Je staat op het punt je lidmaatschap te beëindigen. Dit kan <b>niet ongedaan</b> worden gemaakt.<br/></br/><b>Weet je zeker dat je door wil gaan?</b>",LOGIN_UNUSED_WALLET_TITLE:"Typefout?",LOGIN_UNUSED_WALLET:"Je bent ingelogged op een rekening die <b>inactief</b> lijkt te zijn.<br/><br/>Als deze rekening niet met de jouwe overeenkomt, komt dat waarschijnlijk door een <b>typefout</b> bij het inloggen.<br/><br/><b>Wilt u toch doorgaan met deze rekening?</b>",FIX_IDENTITY:"De pseudoniem <b>{{uid}}</b> zal opnieuw gepubliceerd worden, waarmee de oude verlopen publicatie wordt vervangen.<br/></br/><bWeet je zeker</b> dat je door wil gaan?",FIX_MEMBERSHIP:"Je verzoek to lidmaatschap zal verstuurd worden.<br/></br/><b>Weet je het zeker?</b>",RENEW_MEMBERSHIP:"Je lidmaatschap zal verlengd worden.<br/></br/><b>Weet je het zeker?</b>",REVOKE_IDENTITY:"<b>Beveiligingswaarschuwing:</b><br/>You will <b>definitely revoke this identity</b>.<br/><br/>The public key and the associated nickname <b>will never be used again</b> (for a member account).<br/></br/><b>Are you sure</b> you want to continue?",REVOKE_IDENTITY_2:"Deze handeling is <b>niet terug te draaien</b>!<br/><br/><b>Weet je zeker</b> dat je door wil gaan?",NOT_NEED_RENEW_MEMBERSHIP:"Je lidmaatschap hoeft niet verlengd te worden (het zal pas verlopen na {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Weet je zeker</b> dat je een verlengingsaanvraag wil versturen?",SAVE_BEFORE_LEAVE:"Wil je <b>je wijzigingen opslaan</b> voor je de pagina verlaat?",SAVE_BEFORE_LEAVE_TITLE:"Wijzigingen niet opgeslagen",LICENCE:"Ik heb gelezen en geaccepteerd de voorwaarden van de vergunning G1"},DOWNLOAD:{POPUP_TITLE:"<b>Intrekkingsdocument</b>",POPUP_REVOKE_MESSAGE:"Om je rekening te beveiligen, download het <b>rekening intrekkingsdocument</b>. Dit heb je nodig om je rekening op te heffen (in het geval van diefstal, een verandering van ID, een ten onrechte gemaakte rekening, etc.).<br/><br/><b>Bewaar deze op een veilige plaats.</b>"},HELP:{TITLE:"Online help",JOIN:{SECTION:"Join",SALT:'The protection phrase is very important. It is used to hash you password, which in turn is used to calculate your <span class="text-italic">public account key</span> (its number) and the private key to access it. <b>Please remeber this phrase well</b>, because there is no way to recover it when lost. What\'s more, it cannot be changed without having to create a new account.<br/><br/>A good protection phrase must be sufficiently long (8 characters at the very least) and as original as possible.',PASSWORD:"The password is very important. Together with the protection phrase, it is use to calculate your account number (public key) and the private key to access it. <b>Please remember it well</b>, because there is no way to recover it when lost. What's more, it cannot be changed without having to create a new account.<br/><br/>A good password is made (ideally) of at least 8 characters, with at least one capital and one number.",PSEUDO:'A pseudonym is used only when joining as <span class="text-italic">member</span>. It is always associated with a wallet (by its <span class="text-italic">public key</span>). It is published on the network so that other users may identify it, certify or send money to the account. A pseudonym must be unique among all members (current and past).'},GLOSSARY:{SECTION:"Glossary",PUBKEY_DEF:"Een publieke sleutel identificeert altijd een portemonnee. Het kan een lid identificeren. In Cesium wordt berekend met de geheime ID en wachtwoord.",MEMBER:"Member",MEMBER_DEF:'A member is a real and living human, wishing to participate freely to the monitary community. The member will receive universal dividend, according to the period and amount as defined in the <span class="text-italic">currency parameters</span>.',CURRENCY_RULES:"Currency rules",CURRENCY_RULES_DEF:'The currency rules are defined only once, and for all. They set the parameters under which the currency will perform: universal dividend calculation, the amount of certifications needed to become a member, the maximum amount of certifications a member can send, etc.<br/><br/>The parameters cannot be modified because of the use of a <span class="text-italic">Blockchain</span> which carries and executes these rules, and constantly verifies their correct application. <a href="#/app/currency">See current parameters</a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'The Blockchain is a decentralised system which, in case of Duniter, serves to carry and execute the <span class="text-italic">currency rules</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Read more about Duniter</a> and the working of its blockchain.',UNIVERSAL_DIVIDEND_DEF:'The Universal Dividend (UD) is the quantity of money co-created by each member, according to the period and the calculation defined in the <span class="text-italic">currency rules</span>.<br/>Every term, the members receive an equal amount of new money on their account.<br/><br/>The UD undergoes a steady growth, to remain fair under its members (current and future), calculated by an average life expectancy, as demonstrated in the Relative Theory of Money (RTM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Read more about RTM</a> and open money.'},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> allows discovery of <b>currency parameters</b> and its state.",CURRENCY_WOT:"The <b>member count</b> shows the <b>community's weight and evolution</b>.",CURRENCY_MASS:"Shown here is the <b>total amount</b> currently in circulation and its <b>average distribution</b> per member.<br/><br/>This allows to estimate the <b>worth of any amount</b>, in respect to what <b>others own</b> on their account (on average).",CURRENCY_UNIT_RELATIVE:"The unit used here (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amounts in {{currency|capitalize}} have been devided by the <b>Universal Dividend</b> (UD).<br/><br/><small>This relative unit is <b>relevant</b> because it is stable in contrast to the permanently growing monitary mass.</small>",CURRENCY_CHANGE_UNIT:"This button allows to <b>switch the unit</b> to show amounts in <b>{{currency|capitalize}}</b>, undevided by the Universal Dividend (instead of in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"This button allows to <b>switch the unit</b> to show amounts in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, which is relative to the Universal Dividend (the amount co-produced by each member).",CURRENCY_RULES:"The <b>rules</b> of the currency determine its <b>exact and predictible</b> performance.<br/><br/>As a true DNA of the currency these rules make the monetary code <b>transparent and understandable</b>.",NETWORK_BLOCKCHAIN:"All monetary transactions are recoded in a <b>public and tamper proof</b> ledger, generally referred to as the <b>blockchain</b>.",NETWORK_PEERS:"The <b>peers</b> shown here correspond to <b>computers that update and check</b> the blockchain.<br/><br/>The more active peers there are, the more <b>decentralised</b> and therefore trustworhty the currency becomes.",NETWORK_PEERS_BLOCK_NUMBER:"This <b>number</b> indicates the peer's <b>latest validated block</b> (last page written in the ledger).<br/><br/>Green indicates that the block was equally validated by the <b>majority of other peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Each member</b>, equiped with a computer with Internet, <b>can participate, adding a peer</b> simply by <b>installing the Duniter software</b> (free/libre and open source). <a href="{{installDocUrl}}" target="_system">Read the installation manual &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> allows access to your account balance and transaction history.",MENU_BTN_ACCOUNT_MEMBER:"Here you can consult your account status, transaction history and your certifications.",WALLET_CERTIFICATIONS:"Click here to reveiw the details of your certifications (given and received).",WALLET_BALANCE:"Your account <b>balance</b> is shown here.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>The used unit (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amount in {{currency|capitalize}} has been divided by the <b>Universal Dividend</b> (UD) co-created by each member.<br/>At this moment, 1 UD equals {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"You can <b>change the unit</b> in which amounts are shown in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>For example, to display amounts <b>directly in {{currency|capitalize}}</b> instead of relative amounts.",WALLET_SEND:"Issue a payment in just a few clicks.",WALLET_SEND_NO_MONEY:"Issue a payment in just a few clicks.<br/>(Your balance does not allow this yet)",WALLET_OPTIONS:"Please note that this button allows access to <b>other, less used actions</b>.<br/><br/>Don't forget to take a quick look, when you have a moment!",WALLET_RECEIVED_CERTS:"This shows the list of persons that certified you.",WALLET_CERTIFY:"The button <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> allows selecting an identity and certifying it.<br/><br/>Only users that are <b>already member</b> may certify others.",WALLET_CERT_STOCK:"Your supply of certifications (to send) is limited to <b>{{sigStock}} certifications</b>.<br/><br/>This supply will replete itself over time, as and when earlier certifications expire.",MENU_BTN_WOT:"The menu <b>{{'MENU.WOT'|translate}}</b> allows searching <b>users</b> of the currency (member or not).",WOT_SEARCH_TEXT_XS:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>The search will start automatically.",WOT_SEARCH_TEXT:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>Then hit <b>Enter</b> to start the search.",WOT_SEARCH_RESULT:"Simply click a user row to view the details sheet.",WOT_VIEW_CERTIFICATIONS:"The row <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> shows how many members members validated this identity.<br/><br/>These certifications testify that the account belongs to <b>a living human</b> and this person has <b>no other member account</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"There are at least <b>{{sigQty}} certifications</b> needed to become a member and receive the <b>Universal Dividend</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Click here to open <b>a list of all certifications</b> given to and by this identity.",WOT_VIEW_CERTIFY:"The button <b>{{'WOT.BTN_CERTIFY'|translate}}</b> allows to add your certification to this identity.",CERTIFY_RULES:"<b>Attention:</b> Only certify <b>real and living persons</b> that do not own any other certified account.<br/><br/>The trust carried by the currency depends on each member's vigilance!",MENU_BTN_SETTINGS:"The <b>{{'MENU.SETTINGS'|translate}}</b> allow you to configure the Cesium application.<br/><br/>For example, you can <b>change the unit</b> in which the currency will be shown.",HEADER_BAR_BTN_PROFILE:"Click here to access your <b>user profile</b>",SETTINGS_CHANGE_UNIT:"You can <b>change the display unit</b> of amounts by clicking here.<br/><br/>- Deactivate the option to show amounts in {{currency|capitalize}}.<br/>- Activate the option for relative amounts in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divided</b> by the current Universal Dividend).",END_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>Welcome to the <b>free economy</b>!",END_NOT_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>If you wish to join the currency {{currency|capitalize}}, simply click <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> below."}}})}]),angular.module("cesium.plugins",["cesium.plugins.translations","cesium.plugins.templates","cesium.graph.plugin","cesium.es.plugin","cesium.map.plugin"]),angular.module("cesium.plugins.translations",[]).config(["$translateProvider",function(e){e.translations("en-GB",{COMMON:{CATEGORY:"Category",CATEGORIES:"Categories",CATEGORY_SEARCH_HELP:"Search",LAST_MODIFICATION_DATE:"Updated on ",SUBMIT_BY:"Submitted by",BTN_PUBLISH:"Publish",BTN_PICTURE_DELETE:"Delete",BTN_PICTURE_FAVORISE:"Default",BTN_PICTURE_ROTATE:"Rotate",BTN_ADD_PICTURE:"Add picture",NOTIFICATION:{TITLE:"New notification | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"You have {{count}} unread notification{{count>0?'s':''}}"},NOTIFICATIONS:{TITLE:"Notifications",MARK_ALL_AS_READ:"Mark all as read",NO_RESULT:"No notification",SHOW_ALL:"Show all",LOAD_NOTIFICATIONS_FAILED:"Could not load notifications"}},MENU:{REGISTRY:"Pages",USER_PROFILE:"My Profile",MESSAGES:"Messages",NOTIFICATIONS:"Notifications",INVITATIONS:"Invitations"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Account for an organization",ORGANIZATION_ACCOUNT_HELP:"If you represent a company, association, etc.<br/>No universal dividend will be created by this account."},EVENT:{MEMBER_WITHOUT_PROFILE:'You can <a ui-sref="app.edit_profile">fill your Cesium+ profile</a> (optional) to provide better visibility of your account. This profile will be stored in <b>a directory independent</b> of the currency, but decentralized.'},ERROR:{WS_CONNECTION_FAILED:"Cesium can not receive notifications because of a technical error (connection to the Cesium + data node).<br/><br/>If the problem persists, please <b>choose another data node</b> in Cesium+ settings."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggest identities to certify...",BTN_ASK_CERTIFICATIONS_DOTS:"Ask members to certify me...",BTN_ASK_CERTIFICATION:"Ask a certification",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggest certifications",HELP:"Select your suggestions"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Ask certifications",HELP:"Select recipients"},SEARCH:{DIVIDER_PROFILE:"Accounts",DIVIDER_PAGE:"Pages",DIVIDER_GROUP:"Groups"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Are you sure you want <b>to send these certification suggestions</b>?",ASK_CERTIFICATION:"Are you sure you want to <b>send a certification request</b>?",ASK_CERTIFICATIONS:"Are you sure you want to <b>send a certification request</b> to these people?"}},INVITATION:{TITLE:"Invitations",NO_RESULT:"No invitation received",BTN_DELETE_ALL:"Delete all invitations",BTN_DELETE:"Delete invitation",BTN_NEW_INVITATION:"New invitation",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> asks for your certification',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> is suggested for certification',SUGGESTED_BY:'Suggestion sent by <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitations"},LIST:{TITLE:"Invitations"},NEW:{TITLE:"New invitation",RECIPIENTS:"A",RECIPIENTS_HELP:"Recipients of the invitation",RECIPIENTS_MODAL_TITLE:"Recipients",RECIPIENTS_MODAL_HELP:"Please choose recipients:",SUGGESTION_IDENTITIES:"Suggestions for certification",SUGGESTION_IDENTITIES_HELP:"Certifications to suggest",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggestions",SUGGESTION_IDENTITIES_MODAL_HELP:"Please choose your suggestions:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"Removing invitations is <b>an irreversible operation</b>.<br/><br/><b>Are you sure</b> you want to continue",SEND_INVITATIONS_TO_CERTIFY:"<b>Are you sure</b> you want <b>to sent this invitation to certify</b> ?"},INFO:{INVITATION_SENT:"Invitation sent"},ERROR:{LOAD_INVITATIONS_FAILED:"Error while loading invitations",REMOVE_INVITATION_FAILED:"Error while deleting the invitation",REMOVE_ALL_INVITATIONS_FAILED:"Error while deleting invitations",SEND_INVITATION_FAILED:"Error while sending invitation",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitation unreadable (format unknown)</span> - sent by <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Comments",SHOW_MORE_COMMENTS:"Show previous comments",COMMENT_HELP:"Your comment, question...",COMMENT_HELP_REPLY_TO:"Your answer...",BTN_SEND:"Send",POPOVER_SHARE_TITLE:"Message #{{number}}",REPLY:"Reply",REPLY_TO:"Respond to:",REPLY_TO_LINK:"In response to ",REPLY_TO_DELETED_COMMENT:"In response to a deleted comment",REPLY_COUNT:"{{replyCount}} responses",DELETED_COMMENT:"Comment deleted",ERROR:{FAILED_SAVE_COMMENT:"Saving comment failed",FAILED_REMOVE_COMMENT:"Deleting comment failed"}},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Reply",BTN_COMPOSE:"New message",BTN_WRITE:"Write",NO_MESSAGE_INBOX:"No message received",NO_MESSAGE_OUTBOX:"No message sent",NOTIFICATIONS:{TITLE:"Messages",MESSAGE_RECEIVED:"You <b>received a message</b><br/>from"},LIST:{INBOX:"Inbox",OUTBOX:"Outbox",LAST_INBOX:"New messages",LAST_OUTBOX:"Sent messages",BTN_LAST_MESSAGES:"Recent messages",TITLE:"Private messages",SEARCH_HELP:"Search in messages",POPOVER_ACTIONS:{TITLE:"Options",DELETE_ALL:"Delete all messages"}},COMPOSE:{TITLE:"New message",TITLE_REPLY:"Reply",SUB_TITLE:"New message",TO:"To",OBJECT:"Object",OBJECT_HELP:"Object",ENCRYPTED_HELP:"Please note this message will be encrypted before sending so that only the recipient can read it and be sure you are the author.",MESSAGE:"Message",MESSAGE_HELP:"Message content",CONTENT_CONFIRMATION:"No message content.<br/><br/>Are your sure you want to send this message?"},VIEW:{TITLE:"Message",SENDER:"Sent by",RECIPIENT:"Sent to",NO_CONTENT:"Empty message",DELETE:"Delete the message"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this message</b>?<br/><br/> This operation is irreversible.",REMOVE_ALL:"Are you sure you want to <b>delete all messages</b>?<br/><br/> This operation is irreversible.",MARK_ALL_AS_READ:"Are you sure you want to <b>mark all message as read</b>?",USER_HAS_NO_PROFILE:"This identity has no Cesium + profile. It may not use the Cesium + extension, so it <b>will not read your message</b>.<br/><br/>Are you sure you want <b>to continue</b>?"},INFO:{MESSAGE_REMOVED:"Message successfully deleted",All_MESSAGE_REMOVED:"Messages successfully deleted",MESSAGE_SENT:"Message sent"},ERROR:{SEND_MSG_FAILED:"Error while sending message.",LOAD_MESSAGES_FAILED:"Error while loading messages.",LOAD_MESSAGE_FAILED:"Error while loading message.",MESSAGE_NOT_READABLE:"Unable to read message.",USER_NOT_RECIPIENT:"You are not the recipient of this message: unable to read it.",NOT_AUTHENTICATED_MESSAGE:"The authenticity of the message is not certain or its content is corrupted.",REMOVE_MESSAGE_FAILED:"Error while deleting message",MESSAGE_CONTENT_TOO_LONG:"Value too long ({{maxLength}} characters max).",MARK_AS_READ_FAILED:"Unable to mark the message as 'read'.",LOAD_NOTIFICATIONS_FAILED:"Error while loading messages notifications.",REMOVE_All_MESSAGES_FAILED:"Error while removing all messages.",MARK_ALL_AS_READ_FAILED:"Error while marking messages as read.",RECIPIENT_IS_MANDATORY:"Recipient is mandatory."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Block number, hash...",POPOVER_FILTER_TITLE:"Filter",HEADER_MEDIAN_TIME:"Date / Time",HEADER_BLOCK:"Block #",HEADER_ISSUER:"Peer owner",BTN_LAST:"Last blocks",DISPLAY_QUERY:"View query",HIDE_QUERY:"Hide query",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Members input/output',EXISTING_TRANSACTION:'<b class="ion-card"></b> Having transactions',PERIOD:'<b class="ion-clock"></b> Between <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) and <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Computed by {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transactions concerning <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Error while searching blocks."}},REGISTRY:{CATEGORY:"Main activity",GENERAL_DIVIDER:"Basic information",LOCATION_DIVIDER:"Address",SOCIAL_NETWORKS_DIVIDER:"Social networks, web sites",TECHNICAL_DIVIDER:"Technical data",BTN_SHOW_WOT:"People",BTN_SHOW_WOT_HELP:"Search for people",BTN_SHOW_PAGES:"Pages",BTN_SHOW_PAGES_HELP:"Search for pages",BTN_NEW:"New page",MY_PAGES:"My pages",NO_PAGE:"No page",SEARCH:{TITLE:"Pages",SEARCH_HELP:"What, Who: hairdresser, Lili's restaurant, ...",BTN_ADD:"New",BTN_LAST_RECORDS:"Recent pages",BTN_ADVANCED_SEARCH:"Advanced search",BTN_OPTIONS:"Advanced search",TYPE:"Kind of organization",LOCATION_HELP:"Where: City, Country",RESULTS:"Results",RESULT_COUNT_LOCATION:"{{count}} result{{count>0?'s':''}}, near {{location}}",RESULT_COUNT:"{{count}} result{{count>0?'s':''}}",LAST_RECORDS:"Recent pages",LAST_RECORD_COUNT_LOCATION:"{{count}} recent page{{count>0?'s':''}}, near {{location}}",LAST_RECORD_COUNT:"{{count}} recent page{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Advanced options?"}},VIEW:{TITLE:"Registry",CATEGORY:"Main activity:",LOCATION:"Address:",MENU_TITLE:"Options",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Are you sure you want to delete this reference?<br/><br/>This is irreversible."},TYPE:{TITLE:"New page",SELECT_TYPE:"Kind of organization:",ENUM:{SHOP:"Local shops",COMPANY:"Company",ASSOCIATION:"Association",INSTITUTION:"Institution"}},EDIT:{TITLE:"Edit",TITLE_NEW:"New page",RECORD_TYPE:"Kind of organization",RECORD_TITLE:"Name",RECORD_TITLE_HELP:"Name",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Describe activity",RECORD_ADDRESS:"Street",RECORD_ADDRESS_HELP:"Street, building...",RECORD_CITY:"City",RECORD_CITY_HELP:"City, Country",RECORD_SOCIAL_NETWORKS:"Social networks and web site",RECORD_PUBKEY:"Public key",RECORD_PUBKEY_HELP:"Public key to receive payments"},WALLET:{REGISTRY_DIVIDER:"Pages",REGISTRY_HELP:"Pages refer to activities accepting money or promoting it: local shops, companies, associations, institutions."},ERROR:{LOAD_CATEGORY_FAILED:"Loading main activities failed",LOAD_RECORD_FAILED:"Loading failed",LOOKUP_RECORDS_FAILED:"Error while loading records.",REMOVE_RECORD_FAILED:"Deleting failed",SAVE_RECORD_FAILED:"Saving failed",RECORD_NOT_EXISTS:"Record not found",GEO_LOCATION_NOT_FOUND:"City or zip code not found"},INFO:{RECORD_REMOVED:"Page successfully deleted",RECORD_SAVED:"Page successfully saved"}},PROFILE:{PROFILE_DIVIDER:"Cesium+ profile",PROFILE_DIVIDER_HELP:"These are ancillary data, stored outside the currency network.",NO_PROFILE_DEFINED:"No Cesium+ profile",BTN_ADD:"Create my profile",BTN_EDIT:"Edit my profile",BTN_DELETE:"Delete my profile",BTN_REORDER:"Reorder",UID:"Pseudonym",TITLE:"Lastname, FirstName",TITLE_HELP:"Name",DESCRIPTION:"About me",DESCRIPTION_HELP:"About me...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"General data",SOCIAL_NETWORKS_DIVIDER:"Social networks and web site",TECHNICAL_DIVIDER:"Technical data",MODAL_AVATAR:{TITLE:"Avatar",SELECT_FILE_HELP:"<b>Choose an image file</b>, by clicking on the button below:",BTN_SELECT_FILE:"Choose an image",RESIZE_HELP:"<b>Re-crop the image</b> if necessary. A click on the image allows to move it. Click on the area at the bottom left to zoom in.",RESULT_HELP:"<b>Here is the result</b> as seen on your profile:"},CONFIRM:{DELETE:"Are you sure you want to <b>delete your Cesium+ profile ?</b><br/><br/>This operation is irreversible."},ERROR:{REMOVE_PROFILE_FAILED:"Deleting profile failed",LOAD_PROFILE_FAILED:"Could not load user profile.",SAVE_PROFILE_FAILED:"Saving profile failed",INVALID_SOCIAL_NETWORK_FORMAT:"Invalid format: please fill a valid Internet address.<br/><br/>Examples :<ul><li>- A Facebook page (https://www.facebook.com/user)</li><li>- A web page (http://www.domain.com)</li><li>- An email address (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Error while resizing picture"},INFO:{PROFILE_REMOVED:"Profile deleted",PROFILE_SAVED:"Profile saved"},HELP:{WARNING_PUBLIC_DATA:"Please note that the information published here <b>is public</b>: visible including by <b>not logged in people</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Find my address on the map",USE_GEO_POINT:"Appear on {{'COMMON.APP_NAME'|translate}} maps?",LOADING_LOCATION:"Searching address...",LOCATION_DIVIDER:"Localisation",ADDRESS:"Address",ADDRESS_HELP:"Address (optional)",CITY:"City",CITY_HELP:"City, Country",DISTANCE:"Maximum distance around the city",DISTANCE_UNIT:"mi",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"City, Country",PROFILE_POSITION:"Profile position",MODAL:{TITLE:"Search address",SEARCH_HELP:"City, Country",ALTERNATIVE_RESULT_DIVIDER:"Alternative results for <b>{{address}}</b>:",POSITION:"lat/lon : {{lat}} / {{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Required if a street has been filled",REQUIRED_FOR_LOCATION:"Required field to appear on the map",INVALID_FOR_LOCATION:"Unknown address",GEO_LOCATION_FAILED:"Unable to retrieve your current position. Please use the search button.",ADDRESS_LOCATION_FAILED:"Unable to retrieve the address position"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Online services",SUBSCRIPTION_DIVIDER_HELP:"Online services offer optional additional services, delegated to a third party.",BTN_ADD:"Add a service",BTN_EDIT:"Manage my services",NO_SUBSCRIPTION:"No service defined",SUBSCRIPTION_COUNT:"Services / Subscription",EDIT:{TITLE:"Online services",HELP_TEXT:"Manage your subscriptions and other online services here",PROVIDER:"Provider:"},TYPE:{ENUM:{EMAIL:"Receive email notifications"}},CONFIRM:{DELETE_SUBSCRIPTION:"Are you sur you want to <b>delete this subscription</b>?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Error while loading online services",ADD_SUBSCRIPTION_FAILED:"Error while adding subscription",UPDATE_SUBSCRIPTION_FAILED:"Error during subscription update",DELETE_SUBSCRIPTION_FAILED:"Error while deleting subscription"},MODAL_EMAIL:{TITLE:"Notification by email",HELP:"Fill out this form to <b>be notified by email</ b> of your account's events. <br/>Your email address will be encrypted only to be visible to the service provider.",EMAIL_LABEL:"Your email:",EMAIL_HELP:"john@domain.com",FREQUENCY_LABEL:"Frequency of notifications:",FREQUENCY_DAILY:"Daily",FREQUENCY_WEEKLY:"Weekly",PROVIDER:"Service Provider:"}},DOCUMENT:{HASH:"Hash: ",LOOKUP:{TITLE:"Document search",BTN_ACTIONS:"Actions",SEARCH_HELP:"issuer:AAA*, time:1508406169",LAST_DOCUMENTS_DOTS:"Last documents:",LAST_DOCUMENTS:"Last documents",SHOW_QUERY:"Show query",HIDE_QUERY:"Hide query",HEADER_TIME:"Time/Hour",HEADER_ISSUER:"Issuer",HEADER_RECIPIENT:"Recipient",READ:"Read",BTN_REMOVE:"Delete this document",BTN_COMPACT:"Compact",HAS_CREATE_OR_UPDATE_PROFILE:"create or edit his profile",POPOVER_ACTIONS:{TITLE:"Actions",REMOVE_ALL:"Delete these documents..."}},INFO:{REMOVED:"Deleted document"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this document</b>?",REMOVE_ALL:"Are you sure you want to <b>delete these documents</b>?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Error searching documents",REMOVE_FAILED:"Error deleting the document",REMOVE_ALL_FAILED:"Error deleting documents"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"User profiles, notifications, private messages",ENABLE_TOGGLE:"Enable extension?",ENABLE_REMOTE_STORAGE:"Enable remote storage for settings?",ENABLE_REMOTE_STORAGE_HELP:"Enables (encrypted) storage of your settings on Cesium + nodes",ENABLE_MESSAGE_TOGGLE:"Enable private messages?",PEER:"Data peer address",POPUP_PEER:{TITLE:"Data peer",HELP:"Set the address of the peer to use:",PEER_HELP:"server.domain.com:port"},NOTIFICATIONS:{DIVIDER:"Notifications",HELP_TEXT:"Enable the types of notifications you want to receive:",ENABLE_TX_SENT:"Notify the validation of <b>sent payments</b>?",ENABLE_TX_RECEIVED:"Notify the validation of <b>received payments</b>?",ENABLE_CERT_SENT:"Notify the validation of <b>sent certifications</b>?",ENABLE_CERT_RECEIVED:"Notify the validation of <b>received certifications</b>?",ENABLE_HTML5_NOTIFICATION:"Warn with each new notification?",ENABLE_HTML5_NOTIFICATION_HELP:"Opens a small popup window with each new notification."},CONFIRM:{ASK_ENABLE_TITLE:"Optional features",ASK_ENABLE:'Cesium+ extension is <b>disabled</b> in your settings, making some features inactive: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> user profiles</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Private messages</b>.</ul><br/><br/><b>Do you want to enable</b> the extension?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"A recipient is required for encryption."},ES_PEER:{NAME:"Name",DOCUMENTS:"Documents",SOFTWARE:"Software",DOCUMENT_COUNT:"Number of documents",EMAIL_SUBSCRIPTION_COUNT:"{{emailSubscription}} subscribers to email notification"}},EVENT:{NODE_STARTED:"Your node ES API <b>{{params[0]}}</b> is UP",NODE_BMA_DOWN:"Node <b>{{params[0]}}:{{params[1]}}</b> (used by your ES API) is <b>unreachable</b>.",NODE_BMA_UP:"Node <b>{{params[0]}}:{{params[1]}}</b> is reachable again.",MEMBER_JOIN:"You are now a <b>member</b> of currency <b>{{params[0]}}</b>!",MEMBER_LEAVE:"You are <b>not a member anymore</b> of currency <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"You are <b>not more member</b> of the currency <b>{{params[0]}}</b>, for lack of renewal or lack of certifications.",MEMBER_REVOKE:"Your account has been revoked. It will no longer be a member of the currency <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Your membership to <b>{{params[0]}}</b> has been <b>renewed successfully</b>.",TX_SENT:"Your payment to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",TX_SENT_MULTI:"Your payment to <b>{{params[1]}}</b> was executed.",TX_RECEIVED:"You received a payment from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"You received a payment from <b>{{params[1]}}</b>.",CERT_SENT:"Your <b>certification</b> to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",CERT_RECEIVED:"You  have <b>received a certification</b> from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has commented on your referencing: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his comment on your referencing: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has replied to your comment on the referencing: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his answer to your comment, on the referencing: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Data node <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the data node <b>{{new}}</b>?"},ERROR:{ES_CONNECTION_ERROR:'Data node <b>{{server}}</b> unreachable or invalid address.<br/><br/>Cesium will continue to work, <b>without the Cesium+</b> extension (user profiles, private messages, maps and graphics).<br/><br/>Check your Internet connection, or change data node in <a class="positive" ng-click="doQuickFix(\'settings\')">extension settings</a>.',ES_MAX_UPLOAD_BODY_SIZE:"The volume of data to be sent exceeds the limit set by the server.<br/><br/>Please try again after, for example, deleting photos."}}),e.translations("en",{COMMON:{CATEGORY:"Category",CATEGORIES:"Categories",CATEGORY_SEARCH_HELP:"Search",LAST_MODIFICATION_DATE:"Updated on ",SUBMIT_BY:"Submitted by",BTN_PUBLISH:"Publish",BTN_PICTURE_DELETE:"Delete",BTN_PICTURE_FAVORISE:"Default",BTN_PICTURE_ROTATE:"Rotate",BTN_ADD_PICTURE:"Add picture",NOTIFICATION:{TITLE:"New notification | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"You have {{count}} unread notification{{count>0?'s':''}}"},NOTIFICATIONS:{TITLE:"Notifications",MARK_ALL_AS_READ:"Mark all as read",NO_RESULT:"No notification",SHOW_ALL:"Show all",LOAD_NOTIFICATIONS_FAILED:"Could not load notifications"}},MENU:{REGISTRY:"Pages",USER_PROFILE:"My Profile",MESSAGES:"Messages",NOTIFICATIONS:"Notifications",INVITATIONS:"Invitations"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Account for an organization",ORGANIZATION_ACCOUNT_HELP:"If you represent a company, association, etc.<br/>No universal dividend will be created by this account."},EVENT:{MEMBER_WITHOUT_PROFILE:'You can <a ui-sref="app.edit_profile">fill your Cesium+ profile</a> (optional) to provide better visibility of your account. This profile will be stored in <b>a directory independent</b> of the currency, but decentralized.'},ERROR:{WS_CONNECTION_FAILED:"Cesium can not receive notifications because of a technical error (connection to the Cesium + data node).<br/><br/>If the problem persists, please <b>choose another data node</b> in Cesium+ settings."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggest identities to certify...",BTN_ASK_CERTIFICATIONS_DOTS:"Ask members to certify me...",BTN_ASK_CERTIFICATION:"Ask a certification",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggest certifications",HELP:"Select your suggestions"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Ask certifications",HELP:"Select recipients"},SEARCH:{DIVIDER_PROFILE:"Accounts",DIVIDER_PAGE:"Pages",DIVIDER_GROUP:"Groups"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Are you sure you want <b>to send these certification suggestions</b>?",ASK_CERTIFICATION:"Are you sure you want to <b>send a certification request</b>?",ASK_CERTIFICATIONS:"Are you sure you want to <b>send a certification request</b> to these people?"}},INVITATION:{TITLE:"Invitations",NO_RESULT:"No invitation received",BTN_DELETE_ALL:"Delete all invitations",BTN_DELETE:"Delete invitation",BTN_NEW_INVITATION:"New invitation",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> asks for your certification',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> is suggested for certification',SUGGESTED_BY:'Suggestion sent by <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitations"},LIST:{TITLE:"Invitations"},NEW:{TITLE:"New invitation",RECIPIENTS:"A",RECIPIENTS_HELP:"Recipients of the invitation",RECIPIENTS_MODAL_TITLE:"Recipients",RECIPIENTS_MODAL_HELP:"Please choose recipients:",SUGGESTION_IDENTITIES:"Suggestions for certification",SUGGESTION_IDENTITIES_HELP:"Certifications to suggest",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggestions",SUGGESTION_IDENTITIES_MODAL_HELP:"Please choose your suggestions:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"Removing invitations is <b>an irreversible operation</b>.<br/><br/><b>Are you sure</b> you want to continue",SEND_INVITATIONS_TO_CERTIFY:"<b>Are you sure</b> you want <b>to sent this invitation to certify</b> ?"},INFO:{INVITATION_SENT:"Invitation sent"},ERROR:{LOAD_INVITATIONS_FAILED:"Error while loading invitations",REMOVE_INVITATION_FAILED:"Error while deleting the invitation",REMOVE_ALL_INVITATIONS_FAILED:"Error while deleting invitations",SEND_INVITATION_FAILED:"Error while sending invitation",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitation unreadable (format unknown)</span> - sent by <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Comments",SHOW_MORE_COMMENTS:"Show previous comments",COMMENT_HELP:"Your comment, question...",COMMENT_HELP_REPLY_TO:"Your answer...",BTN_SEND:"Send",POPOVER_SHARE_TITLE:"Message #{{number}}",REPLY:"Reply",REPLY_TO:"Respond to:",REPLY_TO_LINK:"In response to ",REPLY_TO_DELETED_COMMENT:"In response to a deleted comment",REPLY_COUNT:"{{replyCount}} responses",DELETED_COMMENT:"Comment deleted",ERROR:{FAILED_SAVE_COMMENT:"Saving comment failed",FAILED_REMOVE_COMMENT:"Deleting comment failed"}},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Reply",BTN_COMPOSE:"New message",BTN_WRITE:"Write",NO_MESSAGE_INBOX:"No message received",NO_MESSAGE_OUTBOX:"No message sent",NOTIFICATIONS:{TITLE:"Messages",MESSAGE_RECEIVED:"You <b>received a message</b><br/>from"},LIST:{INBOX:"Inbox",OUTBOX:"Outbox",LAST_INBOX:"New messages",LAST_OUTBOX:"Sent messages",BTN_LAST_MESSAGES:"Recent messages",TITLE:"Private messages",SEARCH_HELP:"Search in messages",POPOVER_ACTIONS:{TITLE:"Options",DELETE_ALL:"Delete all messages"}},COMPOSE:{TITLE:"New message",TITLE_REPLY:"Reply",SUB_TITLE:"New message",TO:"To",OBJECT:"Object",OBJECT_HELP:"Object",ENCRYPTED_HELP:"Please note this message will be encrypted before sending so that only the recipient can read it and be sure you are the author.",MESSAGE:"Message",MESSAGE_HELP:"Message content",CONTENT_CONFIRMATION:"No message content.<br/><br/>Are your sure you want to send this message?"},VIEW:{TITLE:"Message",SENDER:"Sent by",RECIPIENT:"Sent to",NO_CONTENT:"Empty message",DELETE:"Delete the message"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this message</b>?<br/><br/> This operation is irreversible.",REMOVE_ALL:"Are you sure you want to <b>delete all messages</b>?<br/><br/> This operation is irreversible.",MARK_ALL_AS_READ:"Are you sure you want to <b>mark all message as read</b>?",USER_HAS_NO_PROFILE:"This identity has no Cesium + profile. It may not use the Cesium + extension, so it <b>will not read your message</b>.<br/><br/>Are you sure you want <b>to continue</b>?"},INFO:{MESSAGE_REMOVED:"Message successfully deleted",All_MESSAGE_REMOVED:"Messages successfully deleted",MESSAGE_SENT:"Message sent"},ERROR:{SEND_MSG_FAILED:"Error while sending message.",LOAD_MESSAGES_FAILED:"Error while loading messages.",LOAD_MESSAGE_FAILED:"Error while loading message.",MESSAGE_NOT_READABLE:"Unable to read message.",USER_NOT_RECIPIENT:"You are not the recipient of this message: unable to read it.",NOT_AUTHENTICATED_MESSAGE:"The authenticity of the message is not certain or its content is corrupted.",REMOVE_MESSAGE_FAILED:"Error while deleting message",MESSAGE_CONTENT_TOO_LONG:"Value too long ({{maxLength}} characters max).",MARK_AS_READ_FAILED:"Unable to mark the message as 'read'.",LOAD_NOTIFICATIONS_FAILED:"Error while loading messages notifications.",REMOVE_All_MESSAGES_FAILED:"Error while removing all messages.",MARK_ALL_AS_READ_FAILED:"Error while marking messages as read.",RECIPIENT_IS_MANDATORY:"Recipient is mandatory."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Block number, hash...",POPOVER_FILTER_TITLE:"Filter",HEADER_MEDIAN_TIME:"Date / Time",HEADER_BLOCK:"Block #",HEADER_ISSUER:"Peer owner",BTN_LAST:"Last blocks",DISPLAY_QUERY:"View query",HIDE_QUERY:"Hide query",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Members input/output',EXISTING_TRANSACTION:'<b class="ion-card"></b> Having transactions',PERIOD:'<b class="ion-clock"></b> Between <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) and <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Computed by {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transactions concerning <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Error while searching blocks."}},REGISTRY:{CATEGORY:"Main activity",GENERAL_DIVIDER:"Basic information",LOCATION_DIVIDER:"Address",SOCIAL_NETWORKS_DIVIDER:"Social networks, web sites",TECHNICAL_DIVIDER:"Technical data",BTN_SHOW_WOT:"People",BTN_SHOW_WOT_HELP:"Search for people",BTN_SHOW_PAGES:"Pages",BTN_SHOW_PAGES_HELP:"Search for pages",BTN_NEW:"New page",MY_PAGES:"My pages",NO_PAGE:"No page",SEARCH:{TITLE:"Pages",SEARCH_HELP:"What, Who: hairdresser, Lili's restaurant, ...",BTN_ADD:"New",BTN_LAST_RECORDS:"Recent pages",BTN_ADVANCED_SEARCH:"Advanced search",BTN_OPTIONS:"Advanced search",TYPE:"Kind of organization",LOCATION_HELP:"Where: City, Country",RESULTS:"Results",RESULT_COUNT_LOCATION:"{{count}} result{{count>0?'s':''}}, near {{location}}",RESULT_COUNT:"{{count}} result{{count>0?'s':''}}",LAST_RECORDS:"Recent pages",LAST_RECORD_COUNT_LOCATION:"{{count}} recent page{{count>0?'s':''}}, near {{location}}",LAST_RECORD_COUNT:"{{count}} recent page{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Advanced options?"}},VIEW:{TITLE:"Registry",CATEGORY:"Main activity:",LOCATION:"Address:",MENU_TITLE:"Options",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Are you sure you want to delete this reference?<br/><br/>This is irreversible."},TYPE:{TITLE:"New page",SELECT_TYPE:"Kind of organization:",ENUM:{SHOP:"Local shops",COMPANY:"Company",ASSOCIATION:"Association",INSTITUTION:"Institution"}},EDIT:{TITLE:"Edit",TITLE_NEW:"New page",RECORD_TYPE:"Kind of organization",RECORD_TITLE:"Name",RECORD_TITLE_HELP:"Name",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Describe activity",RECORD_ADDRESS:"Street",RECORD_ADDRESS_HELP:"Street, building...",RECORD_CITY:"City",RECORD_CITY_HELP:"City, Country",RECORD_SOCIAL_NETWORKS:"Social networks and web site",RECORD_PUBKEY:"Public key",RECORD_PUBKEY_HELP:"Public key to receive payments"},WALLET:{REGISTRY_DIVIDER:"Pages",REGISTRY_HELP:"Pages refer to activities accepting money or promoting it: local shops, companies, associations, institutions."},ERROR:{LOAD_CATEGORY_FAILED:"Loading main activities failed",LOAD_RECORD_FAILED:"Loading failed",LOOKUP_RECORDS_FAILED:"Error while loading records.",REMOVE_RECORD_FAILED:"Deleting failed",SAVE_RECORD_FAILED:"Saving failed",RECORD_NOT_EXISTS:"Record not found",GEO_LOCATION_NOT_FOUND:"City or zip code not found"},INFO:{RECORD_REMOVED:"Page successfully deleted",RECORD_SAVED:"Page successfully saved"}},PROFILE:{PROFILE_DIVIDER:"Cesium+ profile",PROFILE_DIVIDER_HELP:"These are ancillary data, stored outside the currency network.",NO_PROFILE_DEFINED:"No Cesium+ profile",BTN_ADD:"Create my profile",BTN_EDIT:"Edit my profile",BTN_DELETE:"Delete my profile",BTN_REORDER:"Reorder",UID:"Pseudonym",TITLE:"Lastname, FirstName",TITLE_HELP:"Name",DESCRIPTION:"About me",DESCRIPTION_HELP:"About me...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"General data",SOCIAL_NETWORKS_DIVIDER:"Social networks and web site",TECHNICAL_DIVIDER:"Technical data",MODAL_AVATAR:{TITLE:"Avatar",SELECT_FILE_HELP:"<b>Choose an image file</b>, by clicking on the button below:",BTN_SELECT_FILE:"Choose an image",RESIZE_HELP:"<b>Re-crop the image</b> if necessary. A click on the image allows to move it. Click on the area at the bottom left to zoom in.",RESULT_HELP:"<b>Here is the result</b> as seen on your profile:"},CONFIRM:{DELETE:"Are you sure you want to <b>delete your Cesium+ profile ?</b><br/><br/>This operation is irreversible."},ERROR:{REMOVE_PROFILE_FAILED:"Deleting profile failed",LOAD_PROFILE_FAILED:"Could not load user profile.",SAVE_PROFILE_FAILED:"Saving profile failed",INVALID_SOCIAL_NETWORK_FORMAT:"Invalid format: please fill a valid Internet address.<br/><br/>Examples :<ul><li>- A Facebook page (https://www.facebook.com/user)</li><li>- A web page (http://www.domain.com)</li><li>- An email address (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Error while resizing picture"},INFO:{PROFILE_REMOVED:"Profile deleted",PROFILE_SAVED:"Profile saved"},HELP:{WARNING_PUBLIC_DATA:"Please note that the information published here <b>is public</b>: visible including by <b>not logged in people</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Find my address on the map",USE_GEO_POINT:"Appear on {{'COMMON.APP_NAME'|translate}} maps?",LOADING_LOCATION:"Searching address...",LOCATION_DIVIDER:"Localisation",ADDRESS:"Address",ADDRESS_HELP:"Address (optional)",CITY:"City",CITY_HELP:"City, Country",DISTANCE:"Maximum distance around the city",DISTANCE_UNIT:"mi",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"City, Country",PROFILE_POSITION:"Profile position",MODAL:{TITLE:"Search address",SEARCH_HELP:"City, Country",ALTERNATIVE_RESULT_DIVIDER:"Alternative results for <b>{{address}}</b>:",POSITION:"lat/lon : {{lat}} / {{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Required if a street has been filled",
-REQUIRED_FOR_LOCATION:"Required field to appear on the map",INVALID_FOR_LOCATION:"Unknown address",GEO_LOCATION_FAILED:"Unable to retrieve your current position. Please use the search button.",ADDRESS_LOCATION_FAILED:"Unable to retrieve the address position"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Online services",SUBSCRIPTION_DIVIDER_HELP:"Online services offer optional additional services, delegated to a third party.",BTN_ADD:"Add a service",BTN_EDIT:"Manage my services",NO_SUBSCRIPTION:"No service defined",SUBSCRIPTION_COUNT:"Services / Subscription",EDIT:{TITLE:"Online services",HELP_TEXT:"Manage your subscriptions and other online services here",PROVIDER:"Provider:"},TYPE:{ENUM:{EMAIL:"Receive email notifications"}},CONFIRM:{DELETE_SUBSCRIPTION:"Are you sur you want to <b>delete this subscription</b>?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Error while loading online services",ADD_SUBSCRIPTION_FAILED:"Error while adding subscription",UPDATE_SUBSCRIPTION_FAILED:"Error during subscription update",DELETE_SUBSCRIPTION_FAILED:"Error while deleting subscription"},MODAL_EMAIL:{TITLE:"Notification by email",HELP:"Fill out this form to <b>be notified by email</ b> of your account's events. <br/>Your email address will be encrypted only to be visible to the service provider.",EMAIL_LABEL:"Your email:",EMAIL_HELP:"john@domain.com",FREQUENCY_LABEL:"Frequency of notifications:",FREQUENCY_DAILY:"Daily",FREQUENCY_WEEKLY:"Weekly",PROVIDER:"Service Provider:"}},DOCUMENT:{HASH:"Hash: ",LOOKUP:{TITLE:"Document search",BTN_ACTIONS:"Actions",SEARCH_HELP:"issuer:AAA*, time:1508406169",LAST_DOCUMENTS_DOTS:"Last documents:",LAST_DOCUMENTS:"Last documents",SHOW_QUERY:"Show query",HIDE_QUERY:"Hide query",HEADER_TIME:"Time/Hour",HEADER_ISSUER:"Issuer",HEADER_RECIPIENT:"Recipient",READ:"Read",BTN_REMOVE:"Delete this document",BTN_COMPACT:"Compact",HAS_CREATE_OR_UPDATE_PROFILE:"create or edit his profile",POPOVER_ACTIONS:{TITLE:"Actions",REMOVE_ALL:"Delete these documents..."}},INFO:{REMOVED:"Deleted document"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this document</b>?",REMOVE_ALL:"Are you sure you want to <b>delete these documents</b>?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Error searching documents",REMOVE_FAILED:"Error deleting the document",REMOVE_ALL_FAILED:"Error deleting documents"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"User profiles, notifications, private messages",ENABLE_TOGGLE:"Enable extension?",ENABLE_REMOTE_STORAGE:"Enable remote storage for settings?",ENABLE_REMOTE_STORAGE_HELP:"Enables (encrypted) storage of your settings on Cesium + nodes",ENABLE_MESSAGE_TOGGLE:"Enable private messages?",PEER:"Data peer address",POPUP_PEER:{TITLE:"Data peer",HELP:"Set the address of the peer to use:",PEER_HELP:"server.domain.com:port"},NOTIFICATIONS:{DIVIDER:"Notifications",HELP_TEXT:"Enable the types of notifications you want to receive:",ENABLE_TX_SENT:"Notify the validation of <b>sent payments</b>?",ENABLE_TX_RECEIVED:"Notify the validation of <b>received payments</b>?",ENABLE_CERT_SENT:"Notify the validation of <b>sent certifications</b>?",ENABLE_CERT_RECEIVED:"Notify the validation of <b>received certifications</b>?",ENABLE_HTML5_NOTIFICATION:"Warn with each new notification?",ENABLE_HTML5_NOTIFICATION_HELP:"Opens a small popup window with each new notification."},CONFIRM:{ASK_ENABLE_TITLE:"Optional features",ASK_ENABLE:'Cesium+ extension is <b>disabled</b> in your settings, making some features inactive: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> user profiles</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Private messages</b>.</ul><br/><br/><b>Do you want to enable</b> the extension?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"A recipient is required for encryption."},ES_PEER:{NAME:"Name",DOCUMENTS:"Documents",SOFTWARE:"Software",DOCUMENT_COUNT:"Number of documents",EMAIL_SUBSCRIPTION_COUNT:"{{emailSubscription}} subscribers to email notification"}},EVENT:{NODE_STARTED:"Your node ES API <b>{{params[0]}}</b> is UP",NODE_BMA_DOWN:"Node <b>{{params[0]}}:{{params[1]}}</b> (used by your ES API) is <b>unreachable</b>.",NODE_BMA_UP:"Node <b>{{params[0]}}:{{params[1]}}</b> is reachable again.",MEMBER_JOIN:"You are now a <b>member</b> of currency <b>{{params[0]}}</b>!",MEMBER_LEAVE:"You are <b>not a member anymore</b> of currency <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"You are <b>not more member</b> of the currency <b>{{params[0]}}</b>, for lack of renewal or lack of certifications.",MEMBER_REVOKE:"Your account has been revoked. It will no longer be a member of the currency <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Your membership to <b>{{params[0]}}</b> has been <b>renewed successfully</b>.",TX_SENT:"Your payment to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",TX_SENT_MULTI:"Your payment to <b>{{params[1]}}</b> was executed.",TX_RECEIVED:"You received a payment from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"You received a payment from <b>{{params[1]}}</b>.",CERT_SENT:"Your <b>certification</b> to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",CERT_RECEIVED:"You  have <b>received a certification</b> from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has commented on your referencing: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his comment on your referencing: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has replied to your comment on the referencing: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his answer to your comment, on the referencing: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Data node <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the data node <b>{{new}}</b>?"},ERROR:{ES_CONNECTION_ERROR:'Data node <b>{{server}}</b> unreachable or invalid address.<br/><br/>Cesium will continue to work, <b>without the Cesium+</b> extension (user profiles, private messages, maps and graphics).<br/><br/>Check your Internet connection, or change data node in <a class="positive" ng-click="doQuickFix(\'settings\')">extension settings</a>.',ES_MAX_UPLOAD_BODY_SIZE:"The volume of data to be sent exceeds the limit set by the server.<br/><br/>Please try again after, for example, deleting photos."}}),e.translations("eo-EO",{COMMON:{CATEGORY:"Kategorio",CATEGORIES:"Kategorioj",CATEGORY_SEARCH_HELP:"Serĉado",LAST_MODIFICATION_DATE:"Ĝisdatigita la",SUBMIT_BY:"Submetita de",BTN_PUBLISH:"Publikigi",BTN_PICTURE_DELETE:"Forigi",BTN_PICTURE_FAVORISE:"Precipa",BTN_PICTURE_ROTATE:"Turni",BTN_ADD_PICTURE:"Aldoni foton",NOTIFICATION:{TITLE:"Nova avizo | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"Vi havas {{count}} avizo{{count>0?'j':''}}n ne legita{{count>0?'j':''}}n"},NOTIFICATIONS:{TITLE:"Avizoj",MARK_ALL_AS_READ:"Ĉion marki legita",NO_RESULT:"Neniu avizo",SHOW_ALL:"Vidi ĉion",LOAD_NOTIFICATIONS_FAILED:"Malsukceso por ŝarĝi la avizojn"}},MENU:{REGISTRY:"Paĝoj",USER_PROFILE:"Mia profilo",MESSAGES:"Mesaĝoj",NOTIFICATIONS:"Avizoj",INVITATIONS:"Invitoj"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Konto por organizaĵo",ORGANIZATION_ACCOUNT_HELP:"Se vi reprezentas entreprenon, asocion, ktp.<br/>Neniu universala dividendo estos kreita per tiu ĉi konto."},EVENT:{MEMBER_WITHOUT_PROFILE:'Vi povas <a ui-sref="app.edit_profile">tajpi vian profilon Cesium+</a> (kromebleco) por disponi pli bonan videblecon por via konto.'},ERROR:{WS_CONNECTION_FAILED:"Cesium ne povas ricevi la avizojn pro teknika eraro (konekto al la daten-nodo Cesium+).<br/><br/>Se la problemo daŭradas, bonvolu <b>elekti alian daten-nodon</b> ĉe la parametroj Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Sugesti identecojn atestotajn...",BTN_ASK_CERTIFICATIONS_DOTS:"Peti membrojn atesti min...",BTN_ASK_CERTIFICATION:"Peti atestaĵon",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Sugesti atestadojn",HELP:"Elekti viajn sugestojn"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Peti atestaĵojn",HELP:"Elekti la ricevontojn"},SEARCH:{DIVIDER_PROFILE:"Kontoj",DIVIDER_PAGE:"Paĝoj",DIVIDER_GROUP:"Grupoj"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Ĉu vi certas, ke vi volas <b>sendi tiujn sugestojn por atestado</b>?",ASK_CERTIFICATION:"Ĉu vi certas, ke vi volas <b>sendi atesto-peton</b>?",ASK_CERTIFICATIONS:"Ĉu vi certas, ke vi volas <b>sendi atesto-peton</b> al tiuj personoj?"}},INVITATION:{TITLE:"Invitoj",NO_RESULT:"Neniu invito atendanta",BTN_DELETE_ALL:"Forigi ĉiujn invitojn",BTN_DELETE:"Forigi la inviton",BTN_NEW_INVITATION:"Nova invito",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> petas vian atestadon',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> estas sugestita al vi por atestado',SUGGESTED_BY:'Sugesto sendita de <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitoj"},LIST:{TITLE:"Invitoj"},NEW:{TITLE:"Nova invito",RECIPIENTS:"Al",RECIPIENTS_HELP:"Ricevontoj de la invito",RECIPIENTS_MODAL_TITLE:"Ricevontoj",RECIPIENTS_MODAL_HELP:"Bonvolu elekti la ricevontojn:",SUGGESTION_IDENTITIES:"Sugestoj por atestado",SUGGESTION_IDENTITIES_HELP:"Atestadoj sugestotaj",SUGGESTION_IDENTITIES_MODAL_TITLE:"Sugestoj",SUGGESTION_IDENTITIES_MODAL_HELP:"Bonvolu elekti viajn sugestojn:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"La forigo de la invitoj estas <b>neinversigebla ago</b>.<br/><br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",SEND_INVITATIONS_TO_CERTIFY:"Ĉu vi certas, ke vi volas <b>sendi tiun inviton atestotan</b>?"},INFO:{INVITATION_SENT:"Invito sendita"},ERROR:{LOAD_INVITATIONS_FAILED:"Malsukceso por ŝarĝi la invitojn",REMOVE_INVITATION_FAILED:"Eraro dum la forigo de la invito",REMOVE_ALL_INVITATIONS_FAILED:"Eraro dum la forigo de la invitoj",SEND_INVITATION_FAILED:"Eraro dum la sendo de la invito",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invito nelegebla (strukturo nekonata)</span> - sendita de <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Komentoj",SHOW_MORE_COMMENTS:"Afiŝi la antaŭajn komentojn",COMMENT_HELP:"Via komento, demando, ktp.",COMMENT_HELP_REPLY_TO:"Via respondo...",BTN_SEND:"Sendi",POPOVER_SHARE_TITLE:"Mesaĝo #{{number}}",REPLY:"Respondi",REPLY_TO:"Respondo al:",REPLY_TO_LINK:"Responde al ",REPLY_TO_DELETED_COMMENT:"Responde al forigita komento",REPLY_COUNT:"{{replyCount}} respondoj",DELETED_COMMENT:"Komento forigita",ERROR:{FAILED_SAVE_COMMENT:"Eraro dum la konservo de la komento",FAILED_REMOVE_COMMENT:"Eraro dum la forigo de la komento"}},MESSAGE:{REPLY_TITLE_PREFIX:"Resp: ",FORWARD_TITLE_PREFIX:"Tr: ",BTN_REPLY:"Respondi",BTN_COMPOSE:"Nova mesaĝo",BTN_WRITE:"Skribi",NO_MESSAGE_INBOX:"Neniu mesaĝo ricevita",NO_MESSAGE_OUTBOX:"Neniu mesaĝo sendita",NOTIFICATIONS:{TITLE:"Mesaĝoj",MESSAGE_RECEIVED:"Vi <b>ricevis mesaĝon</b><br/>de"},LIST:{INBOX:"Ricevujo",OUTBOX:"Senditaj mesaĝoj",LAST_INBOX:"Novaj mesaĝoj",LAST_OUTBOX:"Senditaj mesaĝoj",BTN_LAST_MESSAGES:"Freŝdataj mesaĝoj",TITLE:"Mesaĝoj",SEARCH_HELP:"Serĉado en la mesaĝoj",POPOVER_ACTIONS:{TITLE:"Kromaĵoj",DELETE_ALL:"Forigi ĉiujn mesaĝojn"}},COMPOSE:{TITLE:"Nova mesaĝo",TITLE_REPLY:"Respondi",SUB_TITLE:"Nova mesaĝo",TO:"Al",OBJECT:"Temo",OBJECT_HELP:"Temo",ENCRYPTED_HELP:"Bonvolu noti, ke tiu ĉi mesaĝo estos ĉifrita antaŭ sendo, tiel ke nur la adresato povos legi ĝin, kaj ke li estos certa, ke vi ja estas ties aŭtoro.",MESSAGE:"Mesaĝo",MESSAGE_HELP:"Enhavo de la mesaĝo",CONTENT_CONFIRMATION:"La enhavo de la mesaĝo estas malplena.<br/><br/>Ĉu vi volas tamen sendi la mesaĝon?"},VIEW:{TITLE:"Mesaĝo",SENDER:"Sendita de",RECIPIENT:"Sendita al",NO_CONTENT:"Mesaĝo malplena",DELETE:"Forigi la mesaĝon"},CONFIRM:{REMOVE:"Ĉu vi certas, ke vi volas <b>forigi tiun ĉi mesaĝon</b>?<br/><br/>Tiu ago estas neinversigebla.",REMOVE_ALL:"Ĉu vi certas, ke vi volas <b>forigi ĉiujn mesaĝojn</b>?<br/><br/>Tiu ago estas neinversigebla.",MARK_ALL_AS_READ:"Ĉu vi certas, ke vi volas <b>marki ĉiujn mesaĝojn legitaj</b>?",USER_HAS_NO_PROFILE:"Tiu identeco havas neniun profilon Cesium+. Eblas ke ĝi ne uzas la krom-programon Cesium+, kaj <b>do ne legos vian mesaĝon</b>.<br/><br/>Ĉu vi certas, ke vi volas tamen <b>daŭrigi</b>?"},INFO:{MESSAGE_REMOVED:"Mesaĝo forigita",All_MESSAGE_REMOVED:"Ĉiuj mesaĝoj estis forigitaj",MESSAGE_SENT:"Mesaĝo sendita"},ERROR:{SEND_MSG_FAILED:"Eraro dum la sendo de la mesaĝo.",LOAD_MESSAGES_FAILED:"Eraro dum la ricevo de la mesaĝoj.",LOAD_MESSAGE_FAILED:"Eraro dum la ricevo de la mesaĝo.",MESSAGE_NOT_READABLE:"Legado de la mesaĝo neebla.",USER_NOT_RECIPIENT:"Vi ne estas la adresato de tiu ĉi mesaĝo: malĉifrado neebla.",NOT_AUTHENTICATED_MESSAGE:"La aŭtenteco de la mesaĝo estas dubinda aŭ ties enhavo estas difektita.",REMOVE_MESSAGE_FAILED:"Malsukceso por forigi la mesaĝon",MESSAGE_CONTENT_TOO_LONG:"Signaro tro longa ({{maxLength}} signoj maksimume).",MARK_AS_READ_FAILED:"Neeblas marki la mesaĝon 'legita'.",LOAD_NOTIFICATIONS_FAILED:"Eraro dum la ricevo de la mesaĝo-avizoj.",REMOVE_All_MESSAGES_FAILED:"Eraro dum la forigo de ĉiuj mesaĝoj.",MARK_ALL_AS_READ_FAILED:"Eraro por marki la mesaĝojn legitaj.",RECIPIENT_IS_MANDATORY:"La adresato estas deviga."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Numero de bloko, haketo, publika ŝlosilo, ktp.",POPOVER_FILTER_TITLE:"Filtriloj",HEADER_MEDIAN_TIME:"Dato / Horo",HEADER_BLOCK:"Bloko #",HEADER_ISSUER:"Nodo elsendinta",BTN_LAST:"Lastaj blokoj",DISPLAY_QUERY:"Afiŝi la informpeton",HIDE_QUERY:"Kaŝi la informpeton",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Eniroj/eliroj de membroj',EXISTING_TRANSACTION:'<b class="ion-card"></b> Kun spezoj',PERIOD:'<b class="ion-clock"></b> Inter <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) kaj <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Kalkulita de <b class="ion-key"></b> {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Spezoj koncernantaj <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Eraro dum la serĉado de la blokoj."}},GROUP:{GENERAL_DIVIDER:"Ĝeneralaj informoj",LOCATION_DIVIDER:"Adreso",SOCIAL_NETWORKS_DIVIDER:"Sociaj retoj kaj retejo",TECHNICAL_DIVIDER:"Teknikaj informoj",CREATED_TIME:"Kreita {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Invitoj"},LOOKUP:{TITLE:"Grupoj",SEARCH_HELP:"Nomo de grupo, vortoj, loko, ktp.",LAST_RESULTS_LIST:"Novaj grupoj:",OPEN_RESULTS_LIST:"Malfermitaj grupoj:",MANAGED_RESULTS_LIST:"Fermitaj grupoj:",BTN_LAST:"Novaj grupoj",BTN_NEW:"Mi aldonas grupon"},TYPE:{TITLE:"Nova grupo",SELECT_TYPE:"Tipo de grupo:",OPEN_GROUP:"Malfermita grupo",OPEN_GROUP_HELP:"Malfermita grupo estas alirebla de iu ajn membro de la mono.",MANAGED_GROUP:"Administrita grupo",MANAGED_GROUP_HELP:"Administrita grupo estas mastrumata de administrantoj kaj moderigantoj, kiuj povas akcepti, rifuzi aŭ eksigi membron.",ENUM:{OPEN:"Malfermita grupo",MANAGED:"Administrita grupo"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Kromaĵoj",REMOVE_CONFIRMATION:"Ĉu vi certas, ke vi volas forigi tiun ĉi grupon?<br/><br/>Tiu ago estas neinversigebla."},EDIT:{TITLE:"Grupo",TITLE_NEW:"Nova grupo",RECORD_TITLE:"Titolo",RECORD_TITLE_HELP:"Titolo",RECORD_DESCRIPTION:"Priskribo",RECORD_DESCRIPTION_HELP:"Priskribo"},ERROR:{SEARCH_GROUPS_FAILED:"Malsukceso por traserĉi grupojn",REMOVE_RECORD_FAILED:"Malsukceso por forigi la grupon"},INFO:{RECORD_REMOVED:"Grupo forigita"}},REGISTRY:{CATEGORY:"Ĉefa agado",GENERAL_DIVIDER:"Ĝeneralaj informoj",LOCATION_DIVIDER:"Adreso",SOCIAL_NETWORKS_DIVIDER:"Sociaj retoj kaj retejo",TECHNICAL_DIVIDER:"Teknikaj informoj",BTN_SHOW_WOT:"Personoj",BTN_SHOW_WOT_HELP:"Traserĉi personojn",BTN_SHOW_PAGES:"Paĝoj",BTN_SHOW_PAGES_HELP:"Traserĉi paĝojn",BTN_NEW:"Krei paĝon",MY_PAGES:"Miaj paĝoj",NO_PAGE:"Neniu paĝo",SEARCH:{TITLE:"Paĝoj",SEARCH_HELP:"Kio, Kiu: restoracio, Ĉe Marcelo, ...",BTN_ADD:"Nova",BTN_LAST_RECORDS:"Freŝdataj paĝoj",BTN_ADVANCED_SEARCH:"Sperta serĉado",BTN_OPTIONS:"Sperta serĉado",TYPE:"Tipo de paĝo",LOCATION_HELP:"Kie: Poŝto-kodo, Urbo",RESULTS:"Rezultoj",RESULT_COUNT_LOCATION:"{{count}} rezulto{{count>0?'j':''}}, proksime de {{location}}",RESULT_COUNT:"{{count}} rezulto{{count>0?'j':''}}",LAST_RECORDS:"Freŝdataj paĝoj",LAST_RECORD_COUNT_LOCATION:"{{count}} paĝo{{count>0?'j':''}} freŝdata{{count>0?'j':''}}, proksime de {{location}}",LAST_RECORD_COUNT:"{{count}} paĝo{{count>0?'j':''}} freŝdata{{count>0?'j':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Spertaj kromaĵoj?"}},VIEW:{TITLE:"Adresaro",CATEGORY:"Ĉefa agado:",LOCATION:"Adreso:",MENU_TITLE:"Kromaĵoj",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Ĉu vi certas, ke vi volas forigi tiun ĉi paĝon?<br/><br/>Tiu ago estas neinversigebla."},TYPE:{TITLE:"Tipoj",SELECT_TYPE:"Tipo de paĝo:",ENUM:{SHOP:"Loka komerco",COMPANY:"Entrepreno",ASSOCIATION:"Asocio",INSTITUTION:"Institucio"}},EDIT:{TITLE:"Redaktado",TITLE_NEW:"Nova paĝo",RECORD_TYPE:"Tipo de paĝo",RECORD_TITLE:"Nomo",RECORD_TITLE_HELP:"Nomo",RECORD_DESCRIPTION:"Priskribo",RECORD_DESCRIPTION_HELP:"Priskribo de la agado",RECORD_ADDRESS:"Strato",RECORD_ADDRESS_HELP:"Strato, konstruaĵo...",RECORD_CITY:"Urbo",RECORD_CITY_HELP:"Urbo",RECORD_SOCIAL_NETWORKS:"Sociaj retoj kaj retejo",RECORD_PUBKEY:"Publika ŝlosilo",RECORD_PUBKEY_HELP:"Publika ŝlosilo por ricevi la pagojn"},WALLET:{REGISTRY_DIVIDER:"Paĝoj",REGISTRY_HELP:"La paĝoj listigas agadojn, kiuj akceptas la liberan monon aŭ helpas ĝin: komercoj, entreprenoj, asocioj, institucioj."},ERROR:{LOAD_CATEGORY_FAILED:"Malsukceso por ŝarĝi la liston de la agadoj",LOAD_RECORD_FAILED:"Eraro dum la ŝarĝado de la paĝo",LOOKUP_RECORDS_FAILED:"Eraro dum la serĉado",REMOVE_RECORD_FAILED:"Malsukceso por forigi la paĝon",SAVE_RECORD_FAILED:"Eraro dum la konservado",RECORD_NOT_EXISTS:"Paĝo neekzistanta",GEO_LOCATION_NOT_FOUND:"Urbo aŭ poŝto-kodo ne trovita"},INFO:{RECORD_REMOVED:"Paĝo forigita",RECORD_SAVED:"Paĝo konservita"}},PROFILE:{PROFILE_DIVIDER:"Profilo Cesium+",PROFILE_DIVIDER_HELP:"Temas pri kromaj datenoj, stokitaj ekster la mon-reto.",NO_PROFILE_DEFINED:"Neniu profilo tajpita",BTN_ADD:"Tajpi mian profilon",BTN_EDIT:"Redakti mian profilon",BTN_DELETE:"Forigi mian profilon",BTN_REORDER:"Reordigi",UID:"Pseŭdonimo",TITLE:"Familia nomo, Persona nomo",TITLE_HELP:"Familia nomo, Persona nomo",DESCRIPTION:"Pri mi",DESCRIPTION_HELP:"Pri mi...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Ĝeneralaj informoj",SOCIAL_NETWORKS_DIVIDER:"Sociaj retoj, retejoj",TECHNICAL_DIVIDER:"Teknikaj informoj",MODAL_AVATAR:{TITLE:"Profil-foto",SELECT_FILE_HELP:"Bonvolu <b>elekti bildo-dosieron</b>, alklakante la ĉi-suban butonon:",BTN_SELECT_FILE:"Elekti foton",RESIZE_HELP:"<b>Rekadri la bildon</b>, laŭbezone. Pluigi klakon sur la bildo ebligas movi ĝin. Alklaku la zonon malsupre maldekstre por zomi.",RESULT_HELP:"<b>Jen la rezulto</b> tiel videbla ĉe via profilo:"},CONFIRM:{DELETE:"Ĉu vi certas, ke vi volas <b>forigi vian profilon Cesium+ ?</b><br/><br/>Tiu ago estas neinversigebla."},ERROR:{REMOVE_PROFILE_FAILED:"Malsukceso por forigi la profilon",LOAD_PROFILE_FAILED:"Malsukceso por ŝarĝi la profilon de la uzanto.",SAVE_PROFILE_FAILED:"Eraro dum la konservado",INVALID_SOCIAL_NETWORK_FORMAT:"Strukturo ne rekonata: bonvolu tajpi validan adreson.<br/><br/>Ezemploj:<ul><li>- Facebook-paĝo (https://www.facebook.com/uzanto)</li><li>- Retpaĝo (http://www.miaretejo.net)</li><li>- Retadreso (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Eraro dum la reformatigo de la bildo"},INFO:{PROFILE_REMOVED:"Profilo forigita",PROFILE_SAVED:"Profilo konservita"},HELP:{WARNING_PUBLIC_DATA:"La informoj afiŝitaj en via profilo <b>estas publikaj</b>: videblaj inkluzive de la personoj <b>ne konektitaj</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Trovi mian adreson surmape",USE_GEO_POINT:"Aperi sur la mapoj {{'COMMON.APP_NAME'|translate}}?",LOADING_LOCATION:"Serĉado de la adreso...",LOCATION_DIVIDER:"Adreso",ADDRESS:"Strato",ADDRESS_HELP:"Strato, adres-aldonaĵo...",CITY:"Urbo",CITY_HELP:"Poŝto-kodo, Urbo, Lando",DISTANCE:"Maksimuma distanco ĉirkaŭ la urbo",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Poŝto-kodo, Urbo",PROFILE_POSITION:"Loko de la profilo",MODAL:{TITLE:"Serĉado de la adreso",SEARCH_HELP:"Urbo, Poŝto-kodo, Lando",ALTERNATIVE_RESULT_DIVIDER:"Alternativaj rezultoj por <b>{{address}}</b>:",POSITION:"Lat/Lon: {{lat}}/{{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Deviga kampo (ĉar strato estas tajpita)",REQUIRED_FOR_LOCATION:"Deviga kampo por aperi sur la mapo",INVALID_FOR_LOCATION:"Adreso nekonata",GEO_LOCATION_FAILED:"Neeblas ricevi vian lokiĝon. Bonvolu uzi la serĉo-butonon.",ADDRESS_LOCATION_FAILED:"Neeblas ricevi la lokon per la adreso"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Retaj servoj",SUBSCRIPTION_DIVIDER_HELP:"La retaj servoj proponas pliajn nedevigajn servojn, delegitajn al aliulo.",BTN_ADD:"Aldoni servon",BTN_EDIT:"Mastrumi miajn servojn",NO_SUBSCRIPTION:"Neniu servo uzata",SUBSCRIPTION_COUNT:"Servoj / Abonoj",EDIT:{TITLE:"Retaj servoj",HELP_TEXT:"Mastrumu ĉi tie viajn abonojn kaj aliajn retajn servojn",PROVIDER:"Provizanto:"},TYPE:{ENUM:{EMAIL:"Ricevi la avizojn per retmesaĝo"}},CONFIRM:{DELETE_SUBSCRIPTION:"Ĉu vi certas, ke vi volas <b>forigi tiun abonon</b>?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Eraro dum la ŝarĝo de la retaj servoj",ADD_SUBSCRIPTION_FAILED:"Malsukceso por sendi la abonon",UPDATE_SUBSCRIPTION_FAILED:"Malsukceso por ĝisdatigi la abonon",DELETE_SUBSCRIPTION_FAILED:"Eraro dum la forigo de la abono"},MODAL_EMAIL:{TITLE:"Avizo per retmesaĝo",HELP:"Plenigu tiun ĉi formularon por <b>esti avizita per retmesaĝo</b> pri la okazaĵoj ĉe via konto.<br/>Via retadreso estos ĉifrita por esti videbla nur de la servo-provizanto.",EMAIL_LABEL:"Via retadreso:",EMAIL_HELP:"johano.stelaro@esperanto.org",FREQUENCY_LABEL:"Periodo de la avizoj:",FREQUENCY_DAILY:"Ĉiutaga",FREQUENCY_WEEKLY:"Ĉiusemajna",PROVIDER:"Servo-provizanto:"}},DOCUMENT:{HASH:"Haketo: ",LOOKUP:{TITLE:"Serĉado de dokumentoj",BTN_ACTIONS:"Agoj",SEARCH_HELP:"Sendanto:AAA*, tempo:1508406169",LAST_DOCUMENTS:"Lastaj dokumentoj",SHOW_QUERY:"Vidi la informpeton",HIDE_QUERY:"Kaŝi la informpeton",HEADER_TIME:"Dato/Horo",HEADER_ISSUER:"Sendanto",HEADER_RECIPIENT:"Ricevonto",READ:"Legita",BTN_REMOVE:"Forigi tiun ĉi dokumenton",POPOVER_ACTIONS:{TITLE:"Agoj",REMOVE_ALL:"Forigi tiujn ĉi dokumentojn..."}},INFO:{REMOVED:"Dokumento forigita"},CONFIRM:{REMOVE:"Ĉu vi certas, ke vi volas <b>forigi tiun ĉi dokumenton</b>?",REMOVE_ALL:"Ĉu vi certas, ke vi volas <b>forigi tiujn ĉi dokumentojn</b>?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Eraro dum la serĉado de dokumentoj",REMOVE_FAILED:"Eraro dum la forigo de la dokumento",REMOVE_ALL_FAILED:"Eraro dum la forigo de la dokumentoj"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Profiloj, avizoj, privataj mesaĝoj",ENABLE_TOGGLE:"Aktivigi la krom-programon?",ENABLE_REMOTE_STORAGE:"Aktivigi la foran stokadon?",ENABLE_REMOTE_STORAGE_HELP:"Ebligas stoki (ĉifrite) viajn parametrojn ĉe la nodoj Cesium+",ENABLE_MESSAGE_TOGGLE:"Aktivigi la privatajn mesaĝojn?",PEER:"Adreso de la daten-nodo",POPUP_PEER:{TITLE:"Daten-nodo",HELP:"Tajpu la adreson de la nodo, kiun vi volas uzi:",PEER_HELP:"servo.domajno.com:port"},NOTIFICATIONS:{DIVIDER:"Avizoj",HELP_TEXT:"Aktivigu la avizo-tipojn, kiujn vi deziras ricevi:",ENABLE_TX_SENT:"Avizi pri la <b>senditaj pagoj</b>?",ENABLE_TX_RECEIVED:"Avizi pri la <b>ricevitaj pagoj</b>?",ENABLE_CERT_SENT:"Avizi pri la <b>senditaj atestaĵoj</b>?",ENABLE_CERT_RECEIVED:"Avizi pri <b>la ricevitaj atestaĵoj</b>?",ENABLE_HTML5_NOTIFICATION:"Anonci ĉiun novan avizon?",ENABLE_HTML5_NOTIFICATION_HELP:"Malfermas fenestreton por ĉiu nova avizo."},CONFIRM:{ASK_ENABLE_TITLE:"Kromaj funkcioj",ASK_ENABLE:'La krom-programo Cesium+ estas <b>malaktivigita</b> ĉe viaj parametroj, kio senaktivigas la funkciojn: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Profiloj Cesium+</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Avizoj</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Privataj mesaĝoj</b>.<li>&nbsp;&nbsp;<b><i class="icon ion-location"></i> Mapoj, ktp.</b>.</ul><br/><b>Ĉu vi deziras reaktivigi</b> la krom-programon?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Adresito estas deviga por la ĉifrado."}},EVENT:{NODE_STARTED:"Via nodo ES API <b>{{params[0]}}</b> ekis",NODE_BMA_DOWN:"La nodo <b>{{params[0]}}:{{params[1]}}</b> (uzata de via nodo ES API) estas <b>neatingebla</b>.",NODE_BMA_UP:"La nodo <b>{{params[0]}}:{{params[1]}}</b> estas denove alirebla.",MEMBER_JOIN:"Vi estas nun <b>membro</b> de la mono <b>{{params[0]}}</b>!",MEMBER_LEAVE:"Vi <b>ne plu estas membro</b> de la mono <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"Vi <b>ne plu estas membro</b> de la mono <b>{{params[0]}}</b>, pro ne revalidiĝo aŭ pro manko da atestaĵoj.",MEMBER_REVOKE:"La nuligo de via konto efektiviĝis. Ĝi ne plu povos esti membro-konto de la mono <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"La revalidiĝo de via aliĝo al la mono <b>{{params[0]}}</b> estis <b>ricevita</b>.",TX_SENT:"Via <b>pago</b> al <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> efektiviĝis.",TX_SENT_MULTI:"Via <b>pago</b> al <b>{{params[1]}}</b> efektiviĝis.",TX_RECEIVED:"Vi <b>ricevis pagon</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Vi <b>ricevis pagon</b> de <b>{{params[1]}}</b>.",CERT_SENT:"Via <b>atestado</b> al <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> efektiviĝis.",CERT_RECEIVED:"Vi <b>ricevis atestaĵon</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> komentis vian anoncon: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> modifis sian komenton pri via anonco: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> respondis al via komento pri la anonco: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> modifis sian respondon al via komento pri la anonco: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Daten-nodo <b>{{old}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Ĉu vi volas provizore uzi la daten-nodon <b>{{new}}</b> ?"},ERROR:{ES_CONNECTION_ERROR:'Daten-nodo <b>{{server}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Cesium daŭrigos funkcii, <b>sen la krom-programo Cesium+</b> (uzanto-profiloj, privataj mesaĝoj, mapoj kaj grafikoj)<br/><br/>Kontrolu vian ret-konekton, aŭ ŝanĝu daten-nodon ĉe la <a class="positive" ng-click="doQuickFix(\'settings\')">parametroj de la krom-programo</a>.',ES_MAX_UPLOAD_BODY_SIZE:"La kvanto de datenoj sendotaj superas la limon fiksitan de la servilo.<br/>Bonvolu reprovi post, ekzemple, forigo de fotoj."}}),e.translations("es-ES",{COMMON:{CATEGORY:"Categoría",CATEGORIES:"Categorías",CATEGORY_SEARCH_HELP:"Búsqueda",LAST_MODIFICATION_DATE:"Actualización el",SUBMIT_BY:"Sometido por",BTN_PUBLISH:"Publicar",BTN_PICTURE_DELETE:"Suprimir",BTN_PICTURE_FAVORISE:"Principal",BTN_PICTURE_ROTATE:"Girar",BTN_ADD_PICTURE:"Añadir una foto",NOTIFICATIONS:{TITLE:"Notificaciónes",MARK_ALL_AS_READ:"Marcar todo como leído",NO_RESULT:"Ningúna notificación",SHOW_ALL:"Ver todo",LOAD_NOTIFICATIONS_FAILED:"Fracaso en la carga de las notificaciónes"}},MENU:{REGISTRY:"Profesionales",USER_PROFILE:"Mi perfil",MESSAGES:"Mensajes",NOTIFICATIONS:"Notificaciónes",INVITATIONS:"Invitaciónes"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Cuenta para una organización",ORGANIZATION_ACCOUNT_HELP:"Si representa una empresa, una asociación, etc.<br/>Ningún dividendo universal será creído por esta cuenta."},EVENT:{MEMBER_WITHOUT_PROFILE:'Para obtener sus certificaciónes más rapidamente, completa <a ui-sref="app.edit_profile">su perfil usuario</a>. Los miembros concederán más fácilmente su confianza a una identidad verificable.'},ERROR:{WS_CONNECTION_FAILED:"Cesium no puede recibir las notificaciónes, a causa de un error técnico (conexión al nodo de datos Cesium+).<br/><br/>Si el problema persiste, por favor <b>elige un otro nodo de datos</b> en las configuraciónes Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Sugerir identidad a certificar...",BTN_ASK_CERTIFICATIONS_DOTS:"Solicitar otros miembros a certificarme…",BTN_ASK_CERTIFICATION:"Solicitar una certificación",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Sugerir certificaciónes",HELP:"Selectionar sus sugerencias"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Solicitar certificaciónes",HELP:"Selectionar los destinatarios"},SEARCH:{DIVIDER_PROFILE:"Cuentas",DIVIDER_PAGE:"Páginas",DIVIDER_GROUP:"Grupos"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Está usted segura/o querer <b>mandar estas sugerencia de certificatión</b> ?",ASK_CERTIFICATION:"Está usted segura/o querer <b>mandar una solicitud de certificación</b> ?",ASK_CERTIFICATIONS:"Está usted segura/o querer <b>mandar una solicitud de certificación</b> a estas personas ?"}},INVITATION:{TITLE:"Invitaciónes",NO_RESULT:"Ningúna invitación en espera",BTN_DELETE_ALL:"Suprimir todas las invitaciónes",BTN_DELETE:"Suprimir la invitación",BTN_NEW_INVITATION:"Nueva invitación",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> solicita su certificación',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> él es sugerido por certificación',SUGGESTED_BY:'Sugerencia mandada por <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitaciónes"},LIST:{TITLE:"Invitaciónes"},NEW:{TITLE:"Nueva invitación",RECIPIENTS:"A",RECIPIENTS_HELP:"Destinatarios de la invitación",RECIPIENTS_MODAL_TITLE:"Destinatarios",RECIPIENTS_MODAL_HELP:"Por favor, elige los destinatarios :",SUGGESTION_IDENTITIES:"Sugerencia de certificación",SUGGESTION_IDENTITIES_HELP:"Certificaciónes a sugerir",SUGGESTION_IDENTITIES_MODAL_TITLE:"Sugerencias",SUGGESTION_IDENTITIES_MODAL_HELP:"Por favor, elige sus sugerencias :"},CONFIRM:{DELETE_ALL_CONFIRMATION:"La supresión de las invitaciónes es una <b>operación ireversible</b>.<br/><br/><b>Está usted segura/o </b> querer continuar ?",SEND_INVITATIONS_TO_CERTIFY:"Está usted segura/o querer <b>mandar esta invitación a certificar</b> ?"},INFO:{INVITATION_SENT:"Invitación mandada"},ERROR:{LOAD_INVITATIONS_FAILED:"Fracaso en la carga de las invitaciónes",REMOVE_INVITATION_FAILED:"Fracaso durante la supresión de la invitación",REMOVE_ALL_INVITATIONS_FAILED:"Fracaso durante la supresión de las invitaciónes",SEND_INVITATION_FAILED:"Fracaso durante el envío de la invitación",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitación ilegible (formato desconocido)</span> - mandada por <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Comentarios",SHOW_MORE_COMMENTS:"Visualizar los comentarios anteriores",COMMENT_HELP:"Su comentario, preguntas, etc.",COMMENT_HELP_REPLY_TO:"Su repuesta…",BTN_SEND:"Mandar",POPOVER_SHARE_TITLE:"Mensaje #{{number}}",REPLY:"Responder",REPLY_TO:"Repuesta a :",REPLY_TO_LINK:"En repuesta a ",REPLY_TO_DELETED_COMMENT:"En repuesta a un comentario suprimido",REPLY_COUNT:"{{replyCount}} repuestas",DELETED_COMMENT:"Comentario suprimido",ERROR:{FAILED_SAVE_COMMENT:"Fracaso durante el respaldo del comentario",FAILED_REMOVE_COMMENT:"Fracaso durante la supresión del comentario"}},MESSAGE:{REPLY_TITLE_PREFIX:"Rep: ",FORWARD_TITLE_PREFIX:"Tr: ",BTN_REPLY:"Responder",BTN_COMPOSE:"Nuevo mensaje",BTN_WRITE:"Escribir",NO_MESSAGE_INBOX:"Ningun mensaje recibido",NO_MESSAGE_OUTBOX:"Ningun mensaje mandado",NOTIFICATIONS:{TITLE:"Mensajes",MESSAGE_RECEIVED:"Ha <b>recibido un mensaje</b><br/>de"},LIST:{INBOX:"Bandeja de entrada",OUTBOX:"Mensajes mandados",LAST_INBOX:"Nuevos mensajes",LAST_OUTBOX:"Mensajes enviados",BTN_LAST_MESSAGES:"Mensajes recientes",TITLE:"Mensajes",SEARCH_HELP:"Buscar en mensajes",POPOVER_ACTIONS:{TITLE:"Opciónes",DELETE_ALL:"Suprimir todos los mensajes"}},COMPOSE:{TITLE:"Nuevo mensaje",TITLE_REPLY:"Responder",SUB_TITLE:"Nuevo mensaje",TO:"A",OBJECT:"Objeto",OBJECT_HELP:"Objeto",ENCRYPTED_HELP:"Por favor, nota que este mensaje será cifrado antes envío, a fin que solo el destinatario pueda leerlo, y que esté asegurado que usted esté bien su autor.",MESSAGE:"Mensaje",MESSAGE_HELP:"Contenido del mensaje",CONTENT_CONFIRMATION:"El contenido del mensaje es vacío.<br/><br/>Sin embargo, quiere mandar el mensaje ?"},VIEW:{TITLE:"Mensaje",SENDER:"Mandado por",RECIPIENT:"Mandado a",NO_CONTENT:"Mensaje vacío",DELETE:"Eliminar el mensaje"},CONFIRM:{REMOVE:"Está usted segura/o querer <b>suprimir este mensaje</b> ?<br/><br/>Esta operación es ireversible.",REMOVE_ALL:"Está usted segura/o querer <b>suprimir todos los mensajes</b> ?<br/><br/>Esta operación es ireversible.",MARK_ALL_AS_READ:"Está usted segura/o querer <b>marcar todos los mensajes como leído</b> ?",USER_HAS_NO_PROFILE:"Esta identidad no tiene ningún perfil Cesium+. Se puede que no utilice la extensión Cesium+, y <b>así no consultará su mensaje</b>.<br/><br/>Está usted segura/o querer <b>continuar</b> a pesar de todo ?"},INFO:{MESSAGE_REMOVED:"Mensaje suprimido",All_MESSAGE_REMOVED:"Todos los mensajes fueron suprimido",MESSAGE_SENT:"Mensaje mandado"},ERROR:{SEND_MSG_FAILED:"Fracaso durante el envío del mensaje.",LOAD_MESSAGES_FAILED:"Fracaso durante la recuperación de los mensajes.",LOAD_MESSAGE_FAILED:"Fracaso durante la recuperación del mensaje.",MESSAGE_NOT_READABLE:"Lectura del mensaje imposible.",USER_NOT_RECIPIENT:"No esta el destinatario de este mensaje : deciframiento imposible.",NOT_AUTHENTICATED_MESSAGE:"La autenticidad del mensaje es dudosa o su contenido es corrupto.",REMOVE_MESSAGE_FAILED:"Fracaso en la supresión del mensaje",MESSAGE_CONTENT_TOO_LONG:"Valor demasiado largo ({{maxLength}} carácteres max).",MARK_AS_READ_FAILED:"Imposible marcar el mensaje como 'leído'.",LOAD_NOTIFICATIONS_FAILED:"Fracaso durante la recuperación de las notificaciónes de mensajes.",REMOVE_All_MESSAGES_FAILED:"Fracaso durante la supresión de todos los mensajes.",MARK_ALL_AS_READ_FAILED:"Fracaso durante el marcaje de los mensajes como leído.",RECIPIENT_IS_MANDATORY:"El destinatario es obligatorio."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Número de bloque, hash, llave pública, etc.",POPOVER_FILTER_TITLE:"Filtros",HEADER_MEDIAN_TIME:"Fecha / Hora",HEADER_BLOCK:"Bloque #",HEADER_ISSUER:"Nodo emisor",BTN_LAST:"últimos bloques",DISPLAY_QUERY:"Mostrar la consulta",HIDE_QUERY:"Ocultar la consulta",TX_SEARCH_FILTER:{MEMBER_FLOWS:"Entradas/salidas de miembros",EXISTING_TRANSACTION:"Con transacciones",PERIOD:'<b class="ion-clock"></b> Entre el <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) y el <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Calculado por <b class="ion-key"></b> {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transacciones que implican <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Fracaso en la búsqueda de los bloques."}},GROUP:{GENERAL_DIVIDER:"Informaciónes generales",LOCATION_DIVIDER:"Dirección",SOCIAL_NETWORKS_DIVIDER:"Redes sociales y sitio web",TECHNICAL_DIVIDER:"Informaciónes técnicas",CREATED_TIME:"Creada {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Invitaciónes"},LOOKUP:{TITLE:"Grupos",SEARCH_HELP:"Nombre de grupo, palabras , lugar, etc.",LAST_RESULTS_LIST:"Nuevos grupos :",OPEN_RESULTS_LIST:"Grupos abiertos :",MANAGED_RESULTS_LIST:"Grupos cerrados :",BTN_LAST:"Nuevos grupos",BTN_NEW:"Añado un grupo"},TYPE:{TITLE:"Nuevo grupo",SELECT_TYPE:"Tipo de grupo :",OPEN_GROUP:"Grupo abierto",OPEN_GROUP_HELP:"Un grupo abierto es accesible por cualquier miembro de la moneda.",MANAGED_GROUP:"Grupo administrado",MANAGED_GROUP_HELP:"un grupo administrado es gestionado por administradores y moderadores, que pueden aceptar, rechazar o excluir un miembro en su seno.",ENUM:{OPEN:"Grupo abierto",MANAGED:"Grupo administrado"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Opciones",REMOVE_CONFIRMATION:"Seguro que quieres eliminar este grupo?<br/><br/>Esta operación es irreversible."},EDIT:{TITLE:"Grupo",TITLE_NEW:"Nuevo grupo",RECORD_TITLE:"Título",RECORD_TITLE_HELP:"Título",RECORD_DESCRIPTION:"Descripción",RECORD_DESCRIPTION_HELP:"Descripción"},ERROR:{SEARCH_GROUPS_FAILED:"Fracaso en la búsqueda de grupos",REMOVE_RECORD_FAILED:"Error al eliminar el grupo"},INFO:{RECORD_REMOVED:"Grupo eliminado"}},REGISTRY:{CATEGORY:"Actividad principal",GENERAL_DIVIDER:"Informaciónes generales",LOCATION_DIVIDER:"Dirección",SOCIAL_NETWORKS_DIVIDER:"Redes sociales y sitio web",TECHNICAL_DIVIDER:"Informaciónes técnicas",BTN_SHOW_WOT:"Personas",BTN_SHOW_WOT_HELP:"Buscar personas",BTN_SHOW_PAGES:"Páginas",BTN_SHOW_PAGES_HELP:"Búsqueda de páginas",BTN_NEW:"Creer una página",MY_PAGES:"Mis páginas",NO_PAGE:"Sin página",SEARCH:{TITLE:"Páginas",SEARCH_HELP:"Qué, Quién : restaurante, Con Marcel, ...",BTN_ADD:"Nuevo",BTN_LAST_RECORDS:"Páginas recientes",BTN_ADVANCED_SEARCH:"búsqueda avanzada",BTN_OPTIONS:"Búsqueda avanzada",TYPE:"Tipo de página",LOCATION_HELP:"Ciudad",RESULTS:"Resultados",RESULT_COUNT_LOCATION:"{{count}} Resultado{{count>0?'s':''}}, cerca de {{location}}",RESULT_COUNT:"{{count}} resultado{{count>0?'s':''}}",LAST_RECORDS:"Páginas recientes",LAST_RECORD_COUNT_LOCATION:"{{count}} página{{count>0?'s':''}} reciente{{count>0?'s':''}}, cerca de {{location}}",LAST_RECORD_COUNT:"{{count}} página{{count>0?'s':''}} reciente{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Opciones avanzadas?"}},VIEW:{TITLE:"Anuario",CATEGORY:"Actividad principal :",LOCATION:"Dirección :",MENU_TITLE:"Opciónes",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Está usted segura/o querer suprimir esta página ?<br/><br/>Esta operación es ireversible."},TYPE:{TITLE:"Nueva página",SELECT_TYPE:"Tipo de página :",ENUM:{SHOP:"Comercio local",COMPANY:"Empresa",ASSOCIATION:"Asociación",INSTITUTION:"Institución"}},EDIT:{TITLE:"Edición",TITLE_NEW:"Nueva página",RECORD_TYPE:"Tipo de página",RECORD_TITLE:"Nombre",RECORD_TITLE_HELP:"Nombre",RECORD_DESCRIPTION:"Descripción",RECORD_DESCRIPTION_HELP:"Descripción de la actividad",RECORD_ADDRESS:"Calle",RECORD_ADDRESS_HELP:"Calle, edificio...",RECORD_CITY:"Ciudad",RECORD_CITY_HELP:"Ciudad",RECORD_SOCIAL_NETWORKS:"Redes sociales y sitio web",RECORD_PUBKEY:"Llave pública",RECORD_PUBKEY_HELP:"Llave pública de recepción de los pagos"},WALLET:{REGISTRY_DIVIDER:"Páginas",REGISTRY_HELP:"Las páginas se refieren a actividades que aceptan dinero o lo favorecen: empresas, negocios, asociaciones, instituciones."},ERROR:{LOAD_CATEGORY_FAILED:"Fracaso en la carga de la lista de actividades",LOAD_RECORD_FAILED:"Fracaso durante la carga de la página",LOOKUP_RECORDS_FAILED:"Fracaso durante la ejecución de la búsqueda.",REMOVE_RECORD_FAILED:"Fracaso en la supresión de la página",SAVE_RECORD_FAILED:"Fracaso durante el respaldo",RECORD_NOT_EXISTS:"Página inexistente",GEO_LOCATION_NOT_FOUND:"Ciudad o código postal no encontrado"},INFO:{RECORD_REMOVED:"Página suprimida",RECORD_SAVED:"Página guardada"}},PROFILE:{PROFILE_DIVIDER:"Perfil Cesium+",PROFILE_DIVIDER_HELP:"Estos son datos auxiliares, almacenados fuera de la red monetaria.",NO_PROFILE_DEFINED:"Ningún perfil Cesium+",BTN_ADD:"Ingresar mi perfil",BTN_EDIT:"Editar mi perfil",BTN_DELETE:"Eliminar mi perfil",BTN_REORDER:"Reordenar",UID:"Seudónimo",TITLE:"Nombre, Apellido",TITLE_HELP:"Nombre, Apellido",DESCRIPTION:"A propósito de yo",DESCRIPTION_HELP:"A propósito de yo...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Informaciónes generales",SOCIAL_NETWORKS_DIVIDER:"Redes sociales, sitios web",TECHNICAL_DIVIDER:"Informaciónes técnicas",MODAL_AVATAR:{TITLE:"Foto de perfil",SELECT_FILE_HELP:"Por favor, <b>elige un fichero imagen</b>, haciendo un clic sobre el botón por debajo :",BTN_SELECT_FILE:"Eligir una foto",RESIZE_HELP:"<b>Encuadra la imagen</b>, si es necesario. Un clic mantenido sobre la imagen permite desplazarla. Hace un clic sobre la zona abajo a la izquierda para hacer zoom.",RESULT_HELP:"<b>Aquí está el resultado</b> tal como está visible sobre su perfil :"},CONFIRM:{DELETE:"¿Estás seguro de que quieres <b>eliminar tu perfil Cesium+?</b><br/><br/>Esta operación es irreversible."},ERROR:{REMOVE_PROFILE_FAILED:"Error de eliminación de perfil",LOAD_PROFILE_FAILED:"Fracaso en la carga del perfil usuario.",SAVE_PROFILE_FAILED:"Fracaso durante el respaldo",INVALID_SOCIAL_NETWORK_FORMAT:"Formato no tomado en cuenta : por favor, indica una dirección válida.<br/><br/>Ejemplos :<ul><li>- Una página Facebook (https://www.facebook.com/user)</li><li>- Una página web (http://www.misitio.es)</li><li>- Una dirección email (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Fracaso durante el redimensionamiento de la imagen"},INFO:{PROFILE_REMOVED:"Perfil eliminado",PROFILE_SAVED:"Perfil respaldado"},HELP:{WARNING_PUBLIC_DATA:"Las informaciónes informadas en su perfil <b>están públicas</b> : visibles también por personas <b>no conectadas</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Actualizar desde la dirección",USE_GEO_POINT:"Aparecer en la tarjeta {{'COMMON.APP_NAME'|translate}} ?",LOADING_LOCATION:"Encontrar la dirección ...",LOCATION_DIVIDER:"Dirección",ADDRESS:"Calle",ADDRESS_HELP:"Calle, complemento de dirección...",CITY:"Ciudad",CITY_HELP:"Ciudad, País",DISTANCE:"Distancia máxima alrededor de la ciudad",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Ciudad, País",PROFILE_POSITION:"Posición del perfil",MODAL:{TITLE:"Búsqueda de dirección",SEARCH_HELP:"Ciudad, País",ALTERNATIVE_RESULT_DIVIDER:"Resultados alternativos para <b>{{address}}</b> :",POSITION:"Latitud/Longitud : {{lat}} / {{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Requerido si una calle ha sido llenada",REQUIRED_FOR_LOCATION:"Campo obligatorio para aparecer en el mapa",INVALID_FOR_LOCATION:"Dirección desconocida",GEO_LOCATION_FAILED:"No se puede recuperar su ubicación Por favor usa el botón de búsqueda.",ADDRESS_LOCATION_FAILED:"No se puede recuperar la posición de la dirección."}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Servicios en línea",SUBSCRIPTION_DIVIDER_HELP:"Los servicios en línea ofrecen servicios adicionales opcionales, delegados a un tercero.",BTN_ADD:"Agregar un servicio",BTN_EDIT:"Administrar mis servicios",NO_SUBSCRIPTION:"Ningún servicio definido",SUBSCRIPTION_COUNT:"Servicios / Suscripción",EDIT:{TITLE:"Servicios en línea",HELP_TEXT:"Gestione sus suscripciones y otros servicios en línea aquí",PROVIDER:"Proveedor:"},TYPE:{ENUM:{EMAIL:"Recibir notificaciones por correo electrónico"}},CONFIRM:{DELETE_SUBSCRIPTION:"Deseas <b>eliminar</b> esta suscripción ?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Error al cargar servicios en línea",ADD_SUBSCRIPTION_FAILED:"Error al agregar suscripción",UPDATE_SUBSCRIPTION_FAILED:"Error durante la actualización de la suscripción",DELETE_SUBSCRIPTION_FAILED:"Error al eliminar la suscripción"},MODAL_EMAIL:{TITLE:"Notificación por correo electrónico",HELP:"Rellene este formulario para <b>ser notificado por correo electrónico</b> de los eventos de su cuenta. <br/> Su dirección de correo electrónico se cifrará únicamente para que sea visible para el proveedor de servicios.",EMAIL_LABEL:"Tu correo electrónico :",EMAIL_HELP:"carlos@dominio.com",FREQUENCY_LABEL:"Frecuencia de las notificaciones :",FREQUENCY_DAILY:"Diariamente",FREQUENCY_WEEKLY:"Semanal",PROVIDER:"Proveedor de servicio :"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Perfiles, notificaciónes, mensajes privados",ENABLE_TOGGLE:"Activar la extensión ?",ENABLE_MESSAGE_TOGGLE:"Activar los mensajes privados ?",ENABLE_SETTINGS_TOGGLE:"Activar el almacenamiento a distancia de las configuraciónes ?",PEER:"Dirección del nodo de datos",POPUP_PEER:{TITLE:"Nodo de datos",HELP:"Ingresa la dirección del nodo que quiere utilizar :",PEER_HELP:"servidor.dominio.com:puerto"},NOTIFICATIONS:{DIVIDER:"Notificaciónes",HELP_TEXT:"Activa los tipos de notificaciónes que usted desea recibir :",ENABLE_TX_SENT:"Notificar la validación de los <b>pagos emitidos</b> ?",ENABLE_TX_RECEIVED:"Notificar la validación de los <b>pagos recibidos</b> ?",ENABLE_CERT_SENT:"Notificar la validación de las <b>certificaciónes emitidas</b> ?",ENABLE_CERT_RECEIVED:"Notificar la validación de las <b>certificaciónes recibidas</b> ?"},CONFIRM:{ASK_ENABLE_TITLE:"Nuevas funcionalidades",ASK_ENABLE:'Nuevas funcionalidades son disponibles : <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Perfiles Cesium+</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notificaciónes</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Mensajes privados</b>.</ul><br/>Fueron <b>desactivadas</b> en sus configuraciones.<br/><br/><b>Quiere usted activarlas</b> ?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Un destinatario es obligatorio para el cifrado."}},EVENT:{NODE_STARTED:"Su nodo ES API <b>{{params[0]}}</b> es comenzado",NODE_BMA_DOWN:"El nodo <b>{{params[0]}}:{{params[1]}}</b> (utilizado por su nodo ES API) <b>no es localizable</b>.",NODE_BMA_UP:"El nodo <b>{{params[0]}}:{{params[1]}}</b> es de nuevo accesible.",MEMBER_JOIN:"Ahora usted está <b>miembro</b> de la moneda <b>{{params[0]}}</b> !",MEMBER_LEAVE:"No está <b>miembro</b> de la moneda <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"Usted ya no es un miembro de la moneda <b>{{params[0]}}</b>, la falta de no renovación o la falta de certificaciones.",MEMBER_REVOKE:"La revocación de su cuenta se ha hecho. Puede que no sea un miembro de la cuenta en moneda <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Su renovación de adhesión a la moneda <b>{{params[0]}}</b> fue <b>tomado en cuenta</b>.",TX_SENT:"Su <b>pago</b> a <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> fue efectuado.",TX_SENT_MULTI:"Su <b>pago</b> a <b>{{params[1]}}</b> fue efectuado.",TX_RECEIVED:"Ha <b>recibido un pago</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Ha <b>recibido un pago</b> de <b>{{params[1]}}</b>.",CERT_SENT:"Su <b>certificación</b> a <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> fue efectuada.",CERT_RECEIVED:"Ha <b>recibido una certificación</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha comentado su referencia : <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificado su comentario sobre su referencia : <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha contestado a su comentario sobre el referencia : <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificado la repuesta a su comentario sobre el referencia : <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Nodo de datos <b> {{old}} </ b> dirección inalcanzable o no válida.<br/><br/>¿Desea utilizar temporalmente el nodo de datos <b>{{new}}</b>?"},ERROR:{ES_CONNECTION_ERROR:'Nodo de datos <b>{{server}}</b> dirección inalcanzable o no válida.<br/><br/>Cesium continuará funcionando, <b>sin la extensión Cesium+</b> (perfiles de usuario, mensajes privados), mapas y gráficos).<br/><br/>Verifique su conexión a Internet, o cambie el nodo de datos en <a class="positive" ng-click="doQuickFix(\'settings\')"> configuración de extensión </a>.',ES_MAX_UPLOAD_BODY_SIZE:"El volumen de datos a enviar excede el límite establecido por el servidor.<br/><br/>Por favor, inténtelo de nuevo después, por ejemplo, borrando fotos."}}),e.translations("fr-FR",{COMMON:{CATEGORY:"Catégorie",CATEGORIES:"Catégories",CATEGORY_SEARCH_HELP:"Recherche",LAST_MODIFICATION_DATE:"Mise à jour le",SUBMIT_BY:"Soumis par",BTN_PUBLISH:"Publier",BTN_PICTURE_DELETE:"Supprimer",BTN_PICTURE_FAVORISE:"Principale",BTN_PICTURE_ROTATE:"Tourner",BTN_ADD_PICTURE:"Ajouter une photo",NOTIFICATION:{TITLE:"Nouvelle notification | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"Vous avez {{count}} notification{{count>0?'s':''}} non lue{{count>0?'s':''}}"},NOTIFICATIONS:{TITLE:"Notifications",MARK_ALL_AS_READ:"Tout marquer comme lu",NO_RESULT:"Aucune notification",SHOW_ALL:"Voir tout",LOAD_NOTIFICATIONS_FAILED:"Erreur de chargement des notifications"}},MENU:{REGISTRY:"Pages",USER_PROFILE:"Mon profil",MESSAGES:"Messages",NOTIFICATIONS:"Notifications",INVITATIONS:"Invitations"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Compte pour une organisation",ORGANIZATION_ACCOUNT_HELP:"Si vous représentez une entreprise, une association, etc.<br/>Aucun dividende universel ne sera créé par ce compte."},EVENT:{MEMBER_WITHOUT_PROFILE:'Vous pouvez <a ui-sref="app.edit_profile">saisir votre profil Cesium+</a> (optionnel) pour offrir une meilleure visibilité de votre compte. Ce profil sera stocké dans <b>un annuaire indépendant</b> de la monnaie, mais décentralisé.'},ERROR:{WS_CONNECTION_FAILED:"Cesium ne peut pas recevoir les notifications, à cause d'une erreur technique (connexion au noeud de données Cesium+).<br/><br/>Si le problème persiste, veuillez <b>choisir un autre noeud de données</b> dans les paramètres Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggérer des identités à certifier...",BTN_ASK_CERTIFICATIONS_DOTS:"Demander à des membres de me certifier...",BTN_ASK_CERTIFICATION:"Demander une certification",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggérer des certifications",HELP:"Sélectionner vos suggestions"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Demander des certifications",HELP:"Sélectionner les destinataires"},SEARCH:{DIVIDER_PROFILE:"Comptes",DIVIDER_PAGE:"Pages",DIVIDER_GROUP:"Groupes"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Êtes-vous sûr de vouloir <b>envoyer ces suggestions de certification</b> ?",ASK_CERTIFICATION:"Êtes-vous sûr de vouloir <b>envoyer une demande de certification</b> ?",ASK_CERTIFICATIONS:"Êtes-vous sûr de vouloir <b>envoyer une demande de certification</b> à ces personnes ?"}},INVITATION:{TITLE:"Invitations",NO_RESULT:"Aucune invitation en attente",BTN_DELETE_ALL:"Supprimer toutes les invitations",BTN_DELETE:"Supprimer l'invitation",BTN_NEW_INVITATION:"Nouvelle invitation",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> demande votre certification',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> vous est suggéré pour certification',SUGGESTED_BY:'Suggestion envoyée par <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitations"},LIST:{TITLE:"Invitations"},NEW:{TITLE:"Nouvelle invitation",RECIPIENTS:"A",RECIPIENTS_HELP:"Destinataires de l'invitation",RECIPIENTS_MODAL_TITLE:"Destinataires",RECIPIENTS_MODAL_HELP:"Veuillez choisir les destinataires :",SUGGESTION_IDENTITIES:"Suggestions de certification",SUGGESTION_IDENTITIES_HELP:"Certifications à suggérer",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggestions",SUGGESTION_IDENTITIES_MODAL_HELP:"Veuillez choisir vos suggestions :"},CONFIRM:{DELETE_ALL_CONFIRMATION:"La suppression des invitations est une <b>opération irréversible</b>.<br/><br/><b>Êtes-vous sûr</b> de vouloir continuer ?",SEND_INVITATIONS_TO_CERTIFY:"Êtes-vous sûr de vouloir <b>envoyer cette invitation à certifier</b> ?"},INFO:{INVITATION_SENT:"Invitation envoyée"},ERROR:{LOAD_INVITATIONS_FAILED:"Échec du chargement des invitations",REMOVE_INVITATION_FAILED:"Erreur lors de la suppression de l'invitation",REMOVE_ALL_INVITATIONS_FAILED:"Erreur lors de la suppression des invitations",SEND_INVITATION_FAILED:"Erreur lors de l'envoi de l'invitation",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitation illisible (format inconnu)</span> - envoyée par <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Commentaires",SHOW_MORE_COMMENTS:"Afficher les commentaires précédents",COMMENT_HELP:"Votre commentaire, question, etc.",COMMENT_HELP_REPLY_TO:"Votre réponse...",BTN_SEND:"Envoyer",POPOVER_SHARE_TITLE:"Message #{{number}}",REPLY:"Répondre",REPLY_TO:"Réponse à :",REPLY_TO_LINK:"En réponse à ",REPLY_TO_DELETED_COMMENT:"En réponse à un commentaire supprimé",REPLY_COUNT:"{{replyCount}} réponses",DELETED_COMMENT:"Commentaire supprimé",ERROR:{FAILED_SAVE_COMMENT:"Erreur lors de la sauvegarde du commentaire",FAILED_REMOVE_COMMENT:"Erreur lors de la suppression du commentaire"}},MESSAGE:{REPLY_TITLE_PREFIX:"Rep: ",FORWARD_TITLE_PREFIX:"Tr: ",BTN_REPLY:"Répondre",BTN_COMPOSE:"Nouveau message",BTN_WRITE:"Ecrire",NO_MESSAGE_INBOX:"Aucun message reçu",NO_MESSAGE_OUTBOX:"Aucun message envoyé",NOTIFICATIONS:{TITLE:"Messages",MESSAGE_RECEIVED:"Vous avez <b>reçu un message</b><br/>de"},LIST:{INBOX:"Boite de réception",OUTBOX:"Messages envoyés",LAST_INBOX:"Nouveaux messages",LAST_OUTBOX:"Messages envoyés",BTN_LAST_MESSAGES:"Messages récents",TITLE:"Messages",SEARCH_HELP:"Recherche dans les messages",POPOVER_ACTIONS:{TITLE:"Options",DELETE_ALL:"Supprimer tous les messages"}},COMPOSE:{TITLE:"Nouveau message",TITLE_REPLY:"Répondre",SUB_TITLE:"Nouveau message",TO:"A",OBJECT:"Objet",OBJECT_HELP:"Objet",ENCRYPTED_HELP:"Veuillez noter que ce message sera chiffré avant envoi, afin que seul le destinataire puisse le lire, et qu'il soit assuré que vous soyez bien son auteur.",MESSAGE:"Message",MESSAGE_HELP:"Contenu du message",CONTENT_CONFIRMATION:"Le contenu du message est vide.<br/><br/>Voulez-vous néanmoins envoyer le message ?"},VIEW:{TITLE:"Message",SENDER:"Envoyé par",RECIPIENT:"Envoyé à",NO_CONTENT:"Message vide",DELETE:"Supprimer le message"},CONFIRM:{REMOVE:"Êtes-vous sûr de vouloir <b>supprimer ce message</b> ?<br/><br/>Cette opération est irréversible.",REMOVE_ALL:"Êtes-vous sûr de vouloir <b>supprimer tous les messages</b> ?<br/><br/>Cette opération est irréversible.",MARK_ALL_AS_READ:"Êtes-vous sûr de vouloir <b>marquer tous les messages comme lus</b> ?",USER_HAS_NO_PROFILE:"Cette identité n'a aucun profil Cesium+. Il se peut qu'elle n'utilise pas l'extension Cesium+, et <b>ne consultera donc pas votre message</b>.<br/><br/>Êtes-vous sûr de vouloir <b>continuer</b> malgré tout ?"},INFO:{MESSAGE_REMOVED:"Message supprimé",All_MESSAGE_REMOVED:"Tous les messages ont été supprimés",MESSAGE_SENT:"Message envoyé"},ERROR:{SEND_MSG_FAILED:"Erreur lors de l'envoi du message.",LOAD_MESSAGES_FAILED:"Erreur lors de la récupération des messages.",LOAD_MESSAGE_FAILED:"Erreur lors de la récupération du message.",MESSAGE_NOT_READABLE:"Lecture du message impossible.",USER_NOT_RECIPIENT:"Vous n'êtes pas le destinataire de ce message : déchiffrement impossible.",NOT_AUTHENTICATED_MESSAGE:"L'authenticité du message est douteuse ou son contenu est corrompu.",REMOVE_MESSAGE_FAILED:"Erreur de suppression du message",MESSAGE_CONTENT_TOO_LONG:"Valeur trop longue ({{maxLength}} caractères max).",MARK_AS_READ_FAILED:"Impossible de marquer le message comme 'lu'.",LOAD_NOTIFICATIONS_FAILED:"Erreur lors de la récupération des notifications de messages.",REMOVE_All_MESSAGES_FAILED:"Erreur lors de la suppression de tous les messages.",MARK_ALL_AS_READ_FAILED:"Erreur lors du marquage des messages comme lus.",RECIPIENT_IS_MANDATORY:"Le destinataire est obligatoire."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Numéro de bloc, hash, clé publique, etc.",POPOVER_FILTER_TITLE:"Filtres",HEADER_MEDIAN_TIME:"Date / Heure",HEADER_BLOCK:"Bloc #",HEADER_ISSUER:"Noeud émetteur",BTN_LAST:"Derniers blocs",DISPLAY_QUERY:"Afficher la requête",HIDE_QUERY:"Masquer la requête",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Entrées/sorties de membres',EXISTING_TRANSACTION:'<b class="ion-card"></b> Avec transactions',PERIOD:'<b class="ion-clock"></b> Entre <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) et <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Calculé par <b class="ion-key"></b> {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transactions concernant <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Erreur de la recherche des blocs."}},GROUP:{GENERAL_DIVIDER:"Informations générales",LOCATION_DIVIDER:"Adresse",SOCIAL_NETWORKS_DIVIDER:"Réseaux sociaux et site web",TECHNICAL_DIVIDER:"Informations techniques",CREATED_TIME:"Créé {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Invitations"},LOOKUP:{TITLE:"Groupes",SEARCH_HELP:"Nom de groupe, mots, lieu, etc.",LAST_RESULTS_LIST:"Nouveaux groupes :",OPEN_RESULTS_LIST:"Groupes ouverts :",MANAGED_RESULTS_LIST:"Groupes fermés :",BTN_LAST:"Nouveaux groupes",BTN_NEW:"J'ajoute un groupe"},TYPE:{TITLE:"Nouveau groupe",SELECT_TYPE:"Type de groupe :",OPEN_GROUP:"Groupe ouvert",OPEN_GROUP_HELP:"Un groupe ouvert est accessible par n'importe quel membre de la monnaie.",MANAGED_GROUP:"Groupe administré",MANAGED_GROUP_HELP:"un groupe administré est géré par des administrateurs et des modérateurs, qui peuvent accepter, refuser ou exclure un membre en son sein.",ENUM:{OPEN:"Groupe ouvert",MANAGED:"Groupe administré"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Options",REMOVE_CONFIRMATION:"Êtes-vous sûr de vouloir supprimer ce groupe ?<br/><br/>Cette opération est irréversible."},EDIT:{TITLE:"Groupe",TITLE_NEW:"Nouveau groupe",RECORD_TITLE:"Titre",RECORD_TITLE_HELP:"Titre",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Description"},ERROR:{SEARCH_GROUPS_FAILED:"Échec de la recherche de groupes",REMOVE_RECORD_FAILED:"Erreur de la suppression du groupe"},INFO:{RECORD_REMOVED:"Groupe supprimé"}},REGISTRY:{CATEGORY:"Activité principale",GENERAL_DIVIDER:"Informations générales",LOCATION_DIVIDER:"Adresse",SOCIAL_NETWORKS_DIVIDER:"Réseaux sociaux et site web",TECHNICAL_DIVIDER:"Informations techniques",BTN_SHOW_WOT:"Personnes",BTN_SHOW_WOT_HELP:"Rechercher des personnes",BTN_SHOW_PAGES:"Pages",BTN_SHOW_PAGES_HELP:"Rechercher des pages",BTN_NEW:"Créer une page",MY_PAGES:"Mes pages",NO_PAGE:"Aucune page",SEARCH:{TITLE:"Pages",SEARCH_HELP:"Quoi, Qui : restaurant, Chez Marcel, ...",BTN_ADD:"Nouveau",BTN_LAST_RECORDS:"Pages récentes",BTN_ADVANCED_SEARCH:"Recherche avancée",BTN_OPTIONS:"Recherche avancée",TYPE:"Type de page",LOCATION_HELP:"Où : Code postal, Ville",RESULTS:"Résultats",RESULT_COUNT_LOCATION:"{{count}} résultat{{count>0?'s':''}}, près de {{location}}",RESULT_COUNT:"{{count}} résultat{{count>0?'s':''}}",LAST_RECORDS:"Pages récentes",LAST_RECORD_COUNT_LOCATION:"{{count}} page{{count>0?'s':''}} récente{{count>0?'s':''}}, près de {{location}}",LAST_RECORD_COUNT:"{{count}} page{{count>0?'s':''}} récente{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Options avancées ?"}},VIEW:{TITLE:"Annuaire",CATEGORY:"Activité principale :",LOCATION:"Adresse :",MENU_TITLE:"Options",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Êtes-vous sûr de vouloir supprimer cette page ?<br/><br/>Cette opération est irréversible."},TYPE:{TITLE:"Types",SELECT_TYPE:"Type de page :",ENUM:{SHOP:"Commerce local",COMPANY:"Entreprise",ASSOCIATION:"Association",INSTITUTION:"Institution"}},EDIT:{TITLE:"Edition",TITLE_NEW:"Nouvelle page",RECORD_TYPE:"Type de page",RECORD_TITLE:"Nom",RECORD_TITLE_HELP:"Nom",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Description de l'activité",RECORD_ADDRESS:"Rue",RECORD_ADDRESS_HELP:"Rue, bâtiment...",RECORD_CITY:"Ville",RECORD_CITY_HELP:"Ville",RECORD_SOCIAL_NETWORKS:"Réseaux sociaux et site web",RECORD_PUBKEY:"Clé publique",RECORD_PUBKEY_HELP:"Clé publique de réception des paiements"},WALLET:{REGISTRY_DIVIDER:"Pages",REGISTRY_HELP:"Les pages référencent des activités acceptant la monnaie ou la favorisant : commerces, entreprises, associations, institutions."},ERROR:{LOAD_CATEGORY_FAILED:"Erreur de chargement de la liste des activités",LOAD_RECORD_FAILED:"Erreur lors du chargement de la page",LOOKUP_RECORDS_FAILED:"Erreur lors de l'exécution de la recherche",REMOVE_RECORD_FAILED:"Erreur de la suppression de la page",SAVE_RECORD_FAILED:"Erreur lors de la sauvegarde",RECORD_NOT_EXISTS:"Page inexistante",GEO_LOCATION_NOT_FOUND:"Ville ou code postal non trouvé"},INFO:{RECORD_REMOVED:"Page supprimée",RECORD_SAVED:"Page sauvegardée"}},PROFILE:{PROFILE_DIVIDER:"Profil Cesium+",PROFILE_DIVIDER_HELP:"Il s'agit de données annexes, stockées en dehors du réseau de la monnaie.",NO_PROFILE_DEFINED:"Aucun profil saisi",BTN_ADD:"Saisir mon profil",BTN_EDIT:"Editer mon profil",BTN_DELETE:"Supprimer mon profil",BTN_REORDER:"Réordonner",UID:"Pseudonyme",TITLE:"Nom, Prénom",TITLE_HELP:"Nom, Prénom",DESCRIPTION:"A propos de moi",DESCRIPTION_HELP:"A propos de moi...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Informations générales",SOCIAL_NETWORKS_DIVIDER:"Réseaux sociaux, sites web",TECHNICAL_DIVIDER:"Informations techniques",MODAL_AVATAR:{TITLE:"Photo de profil",SELECT_FILE_HELP:"Veuillez <b>choisir un fichier image</b>, en cliquant sur le bouton ci-dessous :",BTN_SELECT_FILE:"Choisir une photo",RESIZE_HELP:"<b>Recadrez l'image</b>, si besoin. Un clic maintenu sur l'image permet de la déplacer. Cliquez sur la zone en bas à gauche pour zoomer.",RESULT_HELP:"<b>Voici le résultat</b> tel que visible sur votre profil :"},CONFIRM:{DELETE:"Êtes-vous sûr de vouloir <b>supprimer votre profil Cesium+ ?</b><br/><br/>Cette opération est irréversible."},ERROR:{REMOVE_PROFILE_FAILED:"Erreur de suppression du profil",LOAD_PROFILE_FAILED:"Erreur de chargement du profil utilisateur",SAVE_PROFILE_FAILED:"Erreur lors de la sauvegarde",INVALID_SOCIAL_NETWORK_FORMAT:"Format non pris en compte : veuillez indiquer une adresse valide.<br/><br/>Exemples :<ul><li>- Une page Facebook (https://www.facebook.com/user)</li><li>- Une page web (http://www.monsite.fr)</li><li>- Une adresse email (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Erreur lors du redimensionnement de l'image"},INFO:{PROFILE_REMOVED:"Profil supprimé",PROFILE_SAVED:"Profil sauvegardé"},HELP:{WARNING_PUBLIC_DATA:"Les informations renseignées dans votre profil <b>sont publiques</b> : visibles y compris par des personnes <b>non connectées</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Trouver mon adresse sur la carte",USE_GEO_POINT:"Apparaître sur les cartes {{'COMMON.APP_NAME'|translate}} ?",LOADING_LOCATION:"Recherche de l'adresse...",LOCATION_DIVIDER:"Adresse",ADDRESS:"Rue",ADDRESS_HELP:"Rue, complément d'adresse...",CITY:"Ville",CITY_HELP:"Code postal, Ville, Pays",DISTANCE:"Distance maximale autour de la ville",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Code postal, Ville",PROFILE_POSITION:"Position du profil",MODAL:{TITLE:"Recherche de l'adresse",SEARCH_HELP:"Ville, Code postal, Pays",ALTERNATIVE_RESULT_DIVIDER:"Résultats alternatifs pour <b>{{address}}</b> :",POSITION:"Lat/Lon : {{lat}}/{{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Champ obligatoire (car une rue est saisie)",REQUIRED_FOR_LOCATION:"Champ obligatoire pour apparaître sur la carte",INVALID_FOR_LOCATION:"Adresse inconnue",GEO_LOCATION_FAILED:"Impossible de récupérer votre position. Veuillez utiliser le bouton de recherche.",ADDRESS_LOCATION_FAILED:"Impossible de récupérer la position à partir de l'adresse"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Services en ligne",SUBSCRIPTION_DIVIDER_HELP:"Les services en ligne offrent des services supplémentaires optionnels, délégués à un tiers.",BTN_ADD:"Ajouter un service",BTN_EDIT:"Gérer mes services",NO_SUBSCRIPTION:"Aucun service utilisé",SUBSCRIPTION_COUNT:"Services / Abonnements",EDIT:{TITLE:"Services en ligne",HELP_TEXT:"Gérez ici vos abonnements et autres services en ligne",PROVIDER:"Prestataire :"},TYPE:{ENUM:{EMAIL:"Recevoir les notifications par email"}},CONFIRM:{DELETE_SUBSCRIPTION:"Êtes-vous sûr de vouloir <b>supprimer cet abonnement</b> ?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Erreur lors du chargement des services en ligne",ADD_SUBSCRIPTION_FAILED:"Erreur de l'envoi de l'abonnement",UPDATE_SUBSCRIPTION_FAILED:"Erreur de la mise à jour de l'abonnement",DELETE_SUBSCRIPTION_FAILED:"Erreur lors de la suppression de l'abonnement"},MODAL_EMAIL:{TITLE:"Notification par email",HELP:"Remplissez ce formulaire pour <b>être notifié par email</b> des événements de votre compte.<br/>Votre adresse email sera chiffrée pour n'être visible que par le prestataire de service.",EMAIL_LABEL:"Votre email :",EMAIL_HELP:"jean.dupond@domaine.com",FREQUENCY_LABEL:"Fréquence des notifications :",FREQUENCY_DAILY:"Journalier",FREQUENCY_WEEKLY:"Hebdomadaire",PROVIDER:"Prestataire du service :"}},DOCUMENT:{HASH:"Hash : ",LOOKUP:{TITLE:"Recherche de documents",BTN_ACTIONS:"Actions",SEARCH_HELP:"issuer:AAA*, time:1508406169",LAST_DOCUMENTS_DOTS:"Derniers documents :",LAST_DOCUMENTS:"Derniers documents",SHOW_QUERY:"Voir la requête",HIDE_QUERY:"Masquer la requête",HEADER_TIME:"Date/Heure",HEADER_ISSUER:"Emetteur",HEADER_RECIPIENT:"Destinataire",READ:"Lu",BTN_REMOVE:"Supprimer ce document",BTN_COMPACT:"Compacter",HAS_CREATE_OR_UPDATE_PROFILE:"a créé ou modifié son profil",POPOVER_ACTIONS:{TITLE:"Actions",REMOVE_ALL:"Supprimer ces documents..."}},INFO:{REMOVED:"Document supprimé"},CONFIRM:{REMOVE:"Êtes-vous sûr de vouloir <b>supprimer ce document</b> ?",REMOVE_ALL:"Êtes-vous sûr de vouloir <b>supprimer ces documents</b> ?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Erreur lors de la recherche de documents",REMOVE_FAILED:"Erreur lors de la suppression du document",REMOVE_ALL_FAILED:"Erreur lors de la suppression des documents"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Profils, notifications, messages privés",ENABLE_TOGGLE:"Activer l'extension ?",ENABLE_REMOTE_STORAGE:"Activer le stockage distant ?",ENABLE_REMOTE_STORAGE_HELP:"Permet de stockage (chiffré) de vos paramètres sur les noeuds Cesium+",ENABLE_MESSAGE_TOGGLE:"Activer les messages privés ?",PEER:"Adresse du nœud de données",POPUP_PEER:{TITLE:"Nœud de données",HELP:"Saisissez l'adresse du nœud que vous voulez utiliser :",PEER_HELP:"serveur.domaine.com:port"},NOTIFICATIONS:{DIVIDER:"Notifications",HELP_TEXT:"Activez les types de notifications que vous souhaitez recevoir :",ENABLE_TX_SENT:"Notifier les <b>paiements émis</b> ?",ENABLE_TX_RECEIVED:"Notifier les <b>paiements reçus</b> ?",ENABLE_CERT_SENT:"Notifier les <b>certifications émises</b> ?",ENABLE_CERT_RECEIVED:"Notifier les <b>certifications reçues</b> ?",ENABLE_HTML5_NOTIFICATION:"Avertir à chaque nouvelle notification ?",ENABLE_HTML5_NOTIFICATION_HELP:"Ouvre une petite fenêtre à chaque nouvelle notification."},CONFIRM:{ASK_ENABLE_TITLE:"Fonctionnalités optionnelles",ASK_ENABLE:'L\'extension Cesium+ est <b>désactivée</b> dans vos paramètres, rendant inactives les fonctionnalités : <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Profils Cesium+</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Messages privés</b>.<li>&nbsp;&nbsp;<b><i class="icon ion-location"></i> Cartes, etc.</b>.</ul><br/><b>Souhaitez-vous ré-activer</b> l\'extension ?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Un destinataire est obligatoire pour le chiffrement."}},ES_PEER:{NAME:"Nom",DOCUMENTS:"Documents",SOFTWARE:"Logiciel",DOCUMENT_COUNT:"Nombre de documents",EMAIL_SUBSCRIPTION_COUNT:"{{emailSubscription}} abonnés aux notifications par email"},EVENT:{NODE_STARTED:"Votre noeud ES API <b>{{params[0]}}</b> est démarré",NODE_BMA_DOWN:"Le noeud <b>{{params[0]}}:{{params[1]}}</b> (utilisé par votre noeud ES API) est <b>injoignable</b>.",NODE_BMA_UP:"Le noeud <b>{{params[0]}}:{{params[1]}}</b> est à nouveau accessible.",MEMBER_JOIN:"Vous êtes maintenant <b>membre</b> de la monnaie <b>{{params[0]}}</b> !",MEMBER_LEAVE:"Vous n'êtes <b>plus membre</b> de la monnaie <b>{{params[0]}}</b> !",MEMBER_EXCLUDE:"Vous n'êtes <b>plus membre</b> de la monnaie <b>{{params[0]}}</b>, faute de non renouvellement ou par manque de certifications.",MEMBER_REVOKE:"La révocation de votre compte a été effectuée. Il ne pourra plus être un compte membre de la monnaie <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Votre renouvellement d'adhésion à la monnaie <b>{{params[0]}}</b> a été <b>pris en compte</b>.",TX_SENT:"Votre <b>paiement</b> à <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a été effectué.",TX_SENT_MULTI:"Votre <b>paiement</b> à <b>{{params[1]}}</b> a été effectué.",TX_RECEIVED:"Vous avez <b>reçu un paiement</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Vous avez <b>reçu un paiement</b> de <b>{{params[1]}}</b>.",CERT_SENT:"Votre <b>certification</b> à <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a été effectuée.",CERT_RECEIVED:"Vous avez <b>reçu une certification</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a commenté votre référencement : <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a modifié son commentaire sur votre référencement : <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a répondu à votre commentaire sur le référencement : <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a modifié sa réponse à votre commentaire sur le référencement : <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Nœud de données <b>{{old}}</b> injoignable ou adresse invalide.<br/><br/>Voulez-vous temporairement utiliser le nœud de données <b>{{new}}</b> ?"},ERROR:{ES_CONNECTION_ERROR:"Nœud de données <b>{{server}}</b> injoignable ou adresse invalide.<br/><br/>Cesium va continuer à fonctionner, <b>sans l'extension Cesium+</b> (profils utilisateur, messages privés, cartes et graphiques)<br/><br/>Vérifiez votre connexion Internet, ou changez de nœud de données dans les <a class=\"positive\" ng-click=\"doQuickFix('settings')\">paramètres de l'extension</a>.",ES_MAX_UPLOAD_BODY_SIZE:"Le volume des données à envoyer dépasse la limite fixée par le serveur.<br/>Veuillez ré-essayer après avoir, par exemple, supprimer des photos."}}),e.translations("it-IT",{COMMON:{CATEGORY:"Categoria",CATEGORIES:"Categorie",CATEGORY_SEARCH_HELP:"Ricerca",LAST_MODIFICATION_DATE:"Aggiornato il ",SUBMIT_BY:"Inviato da",BTN_PUBLISH:"Pubblicare",BTN_PICTURE_DELETE:"Eliminare",BTN_PICTURE_FAVORISE:"Predefinito",BTN_PICTURE_ROTATE:"Girare",BTN_ADD_PICTURE:"Aggiungere foto",NOTIFICATIONS:{TITLE:"Notifiche",MARK_ALL_AS_READ:"Segna tutte come lette",NO_RESULT:"Nessuna notifica",SHOW_ALL:"Mostrare tutte",LOAD_NOTIFICATIONS_FAILED:"Impossibile caricare le notifiche"}},MENU:{REGISTRY:"Pagine",USER_PROFILE:"Mio profilo",MESSAGES:"Messaggi",NOTIFICATIONS:"Notifiche",INVITATIONS:"Inviti"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Conto per enti",ORGANIZATION_ACCOUNT_HELP:"Se rappresenta un'azienda, un'associazione, etc.<br/>Questo conto non potrà creare il Dividendo Universale."},EVENT:{MEMBER_WITHOUT_PROFILE:'Per ottenere sue certificazioni più velocemente, riempire le informazioni<a ui-sref="app.edit_profile">del suo profilo</a>. I membri della rete si fidano più volontieri di profili verificabili.'},ERROR:{WS_CONNECTION_FAILED:"Cesium non può ricevere notifiche a causa di un problema tecnico (di conessione al data node Cesium+).<br/><br/>Se il problema persiste, le chiediamo di <b>scegliere un'altro data node</b> nelle impostazioni di Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggerire delle identità da certificare..",BTN_ASK_CERTIFICATIONS_DOTS:"Chiedere una certificazione ai membri...",BTN_ASK_CERTIFICATION:"Chiedere una certificazione",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggerire delle certificazioni",HELP:"Scegliere i suoi suggerimenti, aiuti"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Chiedere delle certificazioni",HELP:"Selezionare un ricevente"},SEARCH:{DIVIDER_PROFILE:"Conti",DIVIDER_PAGE:"Pagine",DIVIDER_GROUP:"Gruppi"},CONFIRM:{SUGGEST_CERTIFICATIONS:"E’ sicuro(a) di voler <b>suggerire queste certificazioni</b> ?",ASK_CERTIFICATION:" E’ sicuro(a) di voler  <b>chiedere una certificazione</b> ?",ASK_CERTIFICATIONS:" E’ sicuro(a) di voler <b>chiedere una certificazione</b> a questi membri ?"}},INVITATION:{TITLE:"Invitazioni",NO_RESULT:"Nessun invito ricevuto",BTN_DELETE_ALL:"Cancellare tutti gli inviti",BTN_DELETE:"Cancellare l'invito",BTN_NEW_INVITATION:"Nuovo invito",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> ti ha chiesto una certificazione',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> è proposto per ricevere una certificazione',SUGGESTED_BY:'Suggerimento inviato da by <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Inviti"},LIST:{TITLE:"Inviti"},NEW:{TITLE:"Nuovo invito",RECIPIENTS:"A",RECIPIENTS_HELP:"Riceventi dell'invito",RECIPIENTS_MODAL_TITLE:"Riceventi",RECIPIENTS_MODAL_HELP:"Scegliere riceventi:",SUGGESTION_IDENTITIES:"Suggerimenti di identità da certificare",SUGGESTION_IDENTITIES_HELP:"Suggerimenti di certificazioni",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggerimenti",SUGGESTION_IDENTITIES_MODAL_HELP:"Scegli tuoi sugerimenti:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"Cancellare degli inviti è <b>una operazione irreversibile</b>.<br/><br/><b>Sei sicuro/a</b> di voler proseguire",SEND_INVITATIONS_TO_CERTIFY:"<b>Sei sicuro/a</b> di voler <b>inviare questo suggerimento di certificazione</b> ?"},INFO:{INVITATION_SENT:"Invito inviato"},ERROR:{LOAD_INVITATIONS_FAILED:"Errore nel caricare gli inviti",REMOVE_INVITATION_FAILED:"Errore nel cancellare gli inviti",REMOVE_ALL_INVITATIONS_FAILED:"Errore nel cancellare inviti",SEND_INVITATION_FAILED:"Errore nel invio degli inviti",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invito illegibile (formatto sconosciuto)</span> - inviato da <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Commenti",SHOW_MORE_COMMENTS:"Mostrare commenti precedenti",COMMENT_HELP:"Suo commento o domanda...",COMMENT_HELP_REPLY_TO:"Sua risposta...",BTN_SEND:"Inviare",POPOVER_SHARE_TITLE:"Messaggio #{{number}}",REPLY:"Rispondere",REPLY_TO:"Rispondere a:",REPLY_TO_LINK:"In risposta a",REPLY_TO_DELETED_COMMENT:"In risposta ad un commento cancellato",REPLY_COUNT:"{{replyCount}} risposte",DELETED_COMMENT:"Commento cancellato",ERROR:{FAILED_SAVE_COMMENT:"Salvare il commento cancellato",FAILED_REMOVE_COMMENT:"Cancellazione del commento fallita"}},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Rispondere",BTN_COMPOSE:"Nuovo messaggio",BTN_WRITE:"Scrivere",NO_MESSAGE_INBOX:"Nessun messaggio ricevuto",NO_MESSAGE_OUTBOX:"Nessun messaggio inviato",NOTIFICATIONS:{TITLE:"Messaggi",MESSAGE_RECEIVED:"Hai <b>ricevuto un messaggio/b><br/>da"},LIST:{INBOX:"In entrata",OUTBOX:"In uscita",TITLE:"Messaggi privati",POPOVER_ACTIONS:{TITLE:"Opzioni",DELETE_ALL:"Eliminare tutti i messaggi"}},COMPOSE:{TITLE:"Nuovo messaggio",TITLE_REPLY:"Rispondere",SUB_TITLE:"Nuovo messaggio",TO:"A",OBJECT:"Oggetto",OBJECT_HELP:"Oggetto",ENCRYPTED_HELP:"La informiamo che questo messaggio verrà criptato prima della sua spedizione in modo che solo il destinatario lo possa leggere e essere sicuro che ne sia Lei l'autore.",MESSAGE:"Messaggio",MESSAGE_HELP:"Contenuto del messaggio",CONTENT_CONFIRMATION:"Nessun contenuto. <br/><br/>E’ sicura di voler inviare questo messaggio?"},VIEW:{TITLE:"Messaggio",SENDER:"Inviato da",RECIPIENT:"Inviato a",NO_CONTENT:"Messaggio vuoto",DELETE:"Cancellare il messaggio"},CONFIRM:{REMOVE:"E’ sicuro/a di voler <b>eliminare il messaggio</b>?<br/><br/> Questa operazione è irreversibile.",REMOVE_ALL:"E’ sicuro/a di voler <b>eliminare tutti i messaggi</b>?<br/><br/> Questa operazione è irreversibile.",MARK_ALL_AS_READ:"E’ sicuro/a di voler <b>segnare tutti i messaggi come letti/b>?",USER_HAS_NO_PROFILE:"Questa identità non ha un profilo Cesium+. Pertanto non può <b>leggere il suo messaggio</b>.<br/><br/>E’ sicuro/a di voler <b>continuare</b>?"},INFO:{MESSAGE_REMOVED:"Messaggio eliminato correttamente",All_MESSAGE_REMOVED:"Messaggi eliminati correttamente",MESSAGE_SENT:"Messaggio inviato"},ERROR:{SEND_MSG_FAILED:"Errore nella spedizione del messaggio.",LOAD_MESSAGES_FAILED:"Errore durante il caricamento dei messaggi.",LOAD_MESSAGE_FAILED:"Errore durante il caricamento del messaggio.",MESSAGE_NOT_READABLE:"Impossibile leggere il messaggio.",USER_NOT_RECIPIENT:"Lei non è il destinatario del messaggio: impossibile leggerlo.",NOT_AUTHENTICATED_MESSAGE:"Impossibile verificare l'autenticità del messaggio o contenuto corrotto.",REMOVE_MESSAGE_FAILED:"Errore avvenuto durante l'eliminazione del messaggio",MESSAGE_CONTENT_TOO_LONG:"Il contenuto supera il limite ({{maxLength}} caratteri ammessi).",MARK_AS_READ_FAILED:"Impossibile segnare il messaggio come 'letto'.",LOAD_NOTIFICATIONS_FAILED:"Errore nel caricare le notifiche.",REMOVE_All_MESSAGES_FAILED:"Errore avvenuto durante l'eliminazione dei messaggi.",MARK_ALL_AS_READ_FAILED:"Errore avvenuto nel segnare i messaggi come 'letti",RECIPIENT_IS_MANDATORY:"Destinatario obbligatorio"}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Numero di blocco, hash...",POPOVER_FILTER_TITLE:"Filtro",HEADER_MEDIAN_TIME:"Data / Ora",HEADER_BLOCK:"Blocco #",HEADER_ISSUER:"Peer proprietario",BTN_LAST:"Ultimi blocchi",DISPLAY_QUERY:"Visualizzare query",HIDE_QUERY:"Nascondere query",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Input/output Membri',EXISTING_TRANSACTION:'<b class="ion-card"></b> hanno transazioni',PERIOD:'<b class="ion-clock"></b> Tra <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) e <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Calcolato da {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transazioni legate a  <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Errore durante la ricerca dei blocchi."}},GROUP:{GENERAL_DIVIDER:"Informazioni generali",LOCATION_DIVIDER:"Indirizzo",SOCIAL_NETWORKS_DIVIDER:"Presenza sui social e/o sito web",TECHNICAL_DIVIDER:"Dati tecnici",CREATED_TIME:"Creato {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Inviti"},LOOKUP:{TITLE:"Gruppi",SEARCH_HELP:"Nome del grupo, parole chiavi, luogo, etc.",LAST_RESULTS_LIST:"Nuovi gruppi :",OPEN_RESULTS_LIST:"Gruppi aperti :",MANAGED_RESULTS_LIST:"Gruppi chiusi :",BTN_LAST:"Nuovi gruppi",BTN_NEW:"Aggiungo un grupo!"},TYPE:{TITLE:"Nuovo gruppo",SELECT_TYPE:"Tipo di gruppo :",OPEN_GROUP:"Gruppo aperto",OPEN_GROUP_HELP:"Un gruppo aperto è accessibile da qualsiasi membro della moneta.",MANAGED_GROUP:"Gruppo amministrato",MANAGED_GROUP_HELP:"un gruppo amministrato è gestito da amministratori e moderatori, che possono accetare, rifiutare o escludere membri del gruppo.",ENUM:{OPEN:"Gruppo aperto",MANAGED:"Gruppo amministrato"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Opzioni",REMOVE_CONFIRMATION:"Sei sicuro/a di voler chiudere questo gruppo ?<br/><br/>Questa operazione è irreversibile."},EDIT:{TITLE:"Gruppo",TITLE_NEW:"Nuovo gruppo",RECORD_TITLE:"Titolo",RECORD_TITLE_HELP:"Titolo",RECORD_DESCRIPTION:"Descrizione",RECORD_DESCRIPTION_HELP:"Descrizione"},ERROR:{SEARCH_GROUPS_FAILED:"Errore nella ricerca di gruppi",REMOVE_RECORD_FAILED:"Errore nel chiudere il gruppo"},INFO:{RECORD_REMOVED:"Gruppo eliminato"}},REGISTRY:{CATEGORY:"Attività principale",GENERAL_DIVIDER:"Informazioni di base",LOCATION_DIVIDER:"Indirizzo",SOCIAL_NETWORKS_DIVIDER:"Presenza sui social, sito web",TECHNICAL_DIVIDER:"Dati tecnici",BTN_SHOW_WOT:"Persone",BTN_SHOW_WOT_HELP:"Cercare persone",BTN_SHOW_PAGES:"Pagine",BTN_SHOW_PAGES_HELP:"Cercare pagine",BTN_NEW:"Aggiungere",MY_PAGES:"Mie pagine",NO_PAGE:"Nessuna pagina",SEARCH:{TITLE:"Pagine",SEARCH_HELP:"Che, chi: parrucchiere, Pizza Efisio, ...",BTN_ADD:"Nuovo",BTN_LAST_RECORDS:"Pagine recenti",BTN_ADVANCED_SEARCH:"Ricerca avanzata",BTN_OPTIONS:"Ricerca avanzata",TYPE:"Tipo di ente",LOCATION_HELP:"Città",RESULTS:"Risultati",RESULT_COUNT_LOCATION:"{{count}} risultato{{count>0?'i':''}}, vicino a {{location}}",RESULT_COUNT:"{{count}} risultato{{count>0?'i':''}}",LAST_RECORDS:"Pagine recenti:",LAST_RECORD_COUNT_LOCATION:"{{count}} pagina{{count>0?'e':''}} recente{{count>0?'i':''}}, vicino a{{location}}",LAST_RECORD_COUNT:"{{count}} pagina{{count>0?'e':''}} recente{{count>0?'i':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Opzioni avanzate ?"}},VIEW:{TITLE:"Annuario",CATEGORY:"Attività principale:",LOCATION:"Indirizzo:",MENU_TITLE:"Impostazioni",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"E’ sicuro/a di voler eliminare questo riferimento?<br/><br/>Questa operazione è irreversibile."},TYPE:{TITLE:"Nuovo riferimento",SELECT_TYPE:"Tipo di ente/organismo:",ENUM:{SHOP:"Negozi locali",COMPANY:"Azienda",ASSOCIATION:"Associazione",INSTITUTION:"Istituto"}},EDIT:{TITLE:"Modificare",TITLE_NEW:"Nuovo riferimento",RECORD_TYPE:"Tipo di ente",RECORD_TITLE:"Nome",RECORD_TITLE_HELP:"Nome",RECORD_DESCRIPTION:"Descrizione",RECORD_DESCRIPTION_HELP:"Descrivere l'attività",RECORD_ADDRESS:"Indirizzo",RECORD_ADDRESS_HELP:"Indirizzo: Strada, numero civico...",RECORD_CITY:"Città",RECORD_CITY_HELP:"Città, Paese",RECORD_SOCIAL_NETWORKS:"Presenza sui social e/o sito web",RECORD_PUBKEY:"Chiave pubblica",RECORD_PUBKEY_HELP:"Chiave pubblica per ricevere pagamenti"},WALLET:{REGISTRY_DIVIDER:"Pagine",REGISTRY_HELP:"Le pagine sono un elenco dei profesionisti che accettano o favoriscono: negozi, aziende, associazioni, istituti..."},ERROR:{LOAD_CATEGORY_FAILED:"Errore nel caricamento delle attività principali",LOAD_RECORD_FAILED:"Caricamento fallito",LOOKUP_RECORDS_FAILED:"Errore nel caricare i dati",REMOVE_RECORD_FAILED:"Errore nella cancellazione",SAVE_RECORD_FAILED:"Impossibile salvare",RECORD_NOT_EXISTS:"Inesistente",GEO_LOCATION_NOT_FOUND:"Città o CAP inesistente"},INFO:{RECORD_REMOVED:"Pagina eliminata con successo.",RECORD_SAVED:"Pagina salvata"}},PROFILE:{PROFILE_DIVIDER:"Profilo Cesium+",PROFILE_DIVIDER_HELP:"Si tratta qui di data esterni, salvati fuori della rete della moneta.",NO_PROFILE_DEFINED:"Nessun profilo Cesium+",BTN_ADD:"Creare mio profilo",BTN_EDIT:"Modificare mio profilo",UID:"Pseudonimo",TITLE:"Cognome, Nome",TITLE_HELP:"Nome",DESCRIPTION:"A proposito di me",DESCRIPTION_HELP:"A proposito di me...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Informazioni generali",SOCIAL_NETWORKS_DIVIDER:"Presenza sui social e sito/i web",TECHNICAL_DIVIDER:"Dati tecnici",MODAL_AVATAR:{TITLE:"Avatar",SELECT_FILE_HELP:"<b>Scegliere un'immagine</b>, cliccando sul bottone qui sotto:",BTN_SELECT_FILE:"Scegliere un'immagine",RESIZE_HELP:"<b>Ritagliare l'immagine</b> se necessario. Cliccare sull'immagine permette di spostarla. Cliccando nella zona a basso sinistra permette di fare uno zoom-in.",RESULT_HELP:"<b>Questo è il risultato</b> come visibile sul suo profilo:"},ERROR:{LOAD_PROFILE_FAILED:"Impossibile caricare il profilo dell’utente.",SAVE_PROFILE_FAILED:"Impossibile salvare il profilo",INVALID_SOCIAL_NETWORK_FORMAT:"Formatto scorretto: URL sbagliato.<br/><br/>Esempi: :<ul><li>- Una pagina Facebook (https://www.facebook.com/user)</li><li>- Un sito: (http://www.domain.com)</li><li>- Un indirizzo mail: (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Errore nel ritagliare l'immagine"},INFO:{PROFILE_SAVED:"Profilo salvato"},HELP:{WARNING_PUBLIC_DATA:"La informiamo che le informazioni qui pubblicate <b>sono pubbliche</b>: sono anche visibili <b>da gente non registrata/b>."}},LOCATION:{BTN_GEOLOC_ADDRESS:"Trovare mio indirizzo sulla mappa",USE_GEO_POINT:"Geo-localizzare (raccomandato)?",LOADING_LOCATION:"Cercando indirizzo...",LOCATION_DIVIDER:"Posizione",ADDRESS:"Indirizzo",ADDRESS_HELP:"Indirizzo (opzionale)",CITY:"Città",CITY_HELP:"Città, Paese",DISTANCE:"Distanza massimale intorno alla città",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Città, CAP",MODAL:{TITLE:"Cercare indirizzo",SEARCH_HELP:"Città, Paese",ALTERNATIVE_RESULT_DIVIDER:"Risultati alternativi <b>{{address}}</b>:",POSITION:"lat/lon : {{lat}} {{lon}}"},ERROR:{REQUIRED_FOR_LOCATION:"Campo obbligatorio per apparire sulla mappa",INVALID_FOR_LOCATION:"Indirizzo sconosciuto",GEO_LOCATION_FAILED:"Impossibile trovare sua posizione. Utilizzi il bottone di ricerca.",ADDRESS_LOCATION_FAILED:"Indirizzo non trovato"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Servizi online",SUBSCRIPTION_DIVIDER_HELP:"I servizi online offrono servizi addizionali opzionali, delegati ad terzi.",BTN_ADD:"Aggiungere un servizio",BTN_EDIT:"Gestire miei servizi",NO_SUBSCRIPTION:"Nessun servizio utilizzato",SUBSCRIPTION_COUNT:"Servizi/ Abbonamenti",EDIT:{TITLE:"Servizi online",HELP_TEXT:"Qui si possono gestire gli abbonamenti e/o altri servizi online",PROVIDER:"Prestatore :"},TYPE:{ENUM:{EMAIL:"Ricevere notifiche per posta elettronica"}},CONFIRM:{DELETE_SUBSCRIPTION:"Sei sicuro/a di voler <b>cancellare questo abbonamento</b> ?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Errore nel caricamento dei servizi online",ADD_SUBSCRIPTION_FAILED:"Errore nel invio dell' abbonamento",UPDATE_SUBSCRIPTION_FAILED:"Errore nel aggiornamento dell' abbonamento",DELETE_SUBSCRIPTION_FAILED:"Errore nella cancellazine dell' abbonamento"},MODAL_EMAIL:{TITLE:"Notifiche per posta elettronica",HELP:"Riempi questo formulario per <b>essere notificato/a per e-mail</b> degli eventi che avvengono sul tuo conto.<br/>Tuo indizzo mail sarà cifrato e solo il prestatore del servizio lo potrà vedere.",EMAIL_LABEL:"Tuo indirizzo mail :",EMAIL_HELP:"cristiana.leonardi@dominio.com",FREQUENCY_LABEL:"Frequenza delle notifiche :",FREQUENCY_DAILY:"Quotidiano",FREQUENCY_WEEKLY:"Settimanale",PROVIDER:"Prestatore del servizio :"}},DOCUMENT:{HASH:"Hash: ",LOOKUP:{TITLE:"Ricerca di documenti",BTN_ACTIONS:"Azioni",SEARCH_HELP:"issuer:AAA*, time:1508406169",LAST_DOCUMENTS:"Ultimi documenti",SHOW_QUERY:"Visualizzare la richiesta",HIDE_QUERY:"Nacondere la richiesta",HEADER_TIME:"Data/Ora",HEADER_ISSUER:"Emittente",HEADER_RECIPIENT:"Destinatario",READ:"Letto",BTN_REMOVE:"Eliminare questo documento",POPOVER_ACTIONS:{TITLE:"Azioni",REMOVE_ALL:"Eliminare questi documenti..."}},INFO:{REMOVED:"Documento eliminato"},CONFIRM:{REMOVE:"Sei sicuro/a di voler <b>eliminare questo documento</b> ?",REMOVE_ALL:"Si sicuro/a di voler <b>eliminare questi documenti</b> ?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Errore nella ricerca dei documenti",REMOVE_FAILED:"Errore nell'eliminazione del documento",REMOVE_ALL_FAILED:"Errore nell'eliminazione dei documenti"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Profili di utenti, notifiche, messaggi privati",ENABLE_TOGGLE:"Abilitare l'estensione ?",ENABLE_MESSAGE_TOGGLE:"Abilitare i messaggi? privati",ENABLE_SETTINGS_TOGGLE:"Abilitare stoccaggio su dispositivi esterni per le impostazioni?",PEER:"Indirizzo di data peers",POPUP_PEER:{TITLE:"Data peer",HELP:"Definire l'indirizzo da usare per il peer:",PEER_HELP:"server.domain.com:port"},NOTIFICATIONS:{DIVIDER:"Notifiche",HELP_TEXT:"Scegliere le notifiche che accetta ricevere:",ENABLE_TX_SENT:"Notificarmi di <b>pagamenti inviati</b> con successo?",ENABLE_TX_RECEIVED:"Notificarmi di <b>pagamenti in entrata</b>?",ENABLE_CERT_SENT:"Notificarmi delle <b>certificazioni inviate</b>?",ENABLE_CERT_RECEIVED:"Notificarmi di <b>certificazioni ricevute</b>?"},CONFIRM:{ASK_ENABLE_TITLE:"Nuove funzionalità",ASK_ENABLE:'Sono disponibili nuove funzionalità: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i>Profili di utenti</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Messaggi privati/b>.</ul><br/>Sono state <b>disabilitate</b> nelle sue impostazioni.<br/><br/><b>Desidera abilitare</b> queste funzionalità?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Un destinatario è necessario per il criptaggio."}},EVENT:{NODE_STARTED:"Suo nodo ES API <b>{{params[0]}}</b> è UP",NODE_BMA_DOWN:"Nodo<b>{{params[0]}}:{{params[1]}}</b> (utilizzato dal suo ES API) è <b>indisponibile</b>.",NODE_BMA_UP:"Nodo <b>{{params[0]}}:{{params[1]}}</b> è di nuovo attivo.",MEMBER_JOIN:"E diventato <b>membro/a</b> della WoT della moneta <b>{{params[0]}}</b>!",MEMBER_LEAVE:"Non <b>è più membro/a</b> della WoT della moneta <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"Non è <b>più membro/a</b> della WoT della moneta<b>{{params[0]}}</b>, a causa di certificazioni non rinnovate o soglia di certificazioni non raggiunta.",MEMBER_REVOKE:"Il suo conto è stato revocato. Da ora in poi non farà più parte della WoT. <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"La sua presenza nella WoT <b>{{params[0]}}</b> è stata <b>rinnovata correttamente</b>.",TX_SENT:"Il suo pagamento <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> è stato eseguito.",TX_SENT_MULTI:"Il suo pagamento <b>{{params[1]}}</b> è stato eseguito.",TX_RECEIVED:"Ha ricevuto un pagamento da <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Ha ricevuto un pagamento da <b>{{params[1]}}</b>.",CERT_SENT:"Sua <b>certificazione</b> a favore di <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> è stata eseguita.",CERT_RECEIVED:"Ha ricevuto <b>una certificazione</b> da parte di <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha scritto un commento sul suo riferimento: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificato il suo commento sul suo riferimento: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha risposto al suo commento sul riferimento: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificato sua risposta sul suo commento a proposito del riferimento: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Nodo<b>{{old}}</b> irraggiungibile o indirizzo sbagliato.<br/><br/>Vuoi utilizzare temporaneamente il nodo di dati <b>{{new}}</b> ?"},ERROR:{ES_CONNECTION_ERROR:"Nodo di dati<b>{{server}}</b>  irraggiungibile o indirizzo sbagliato.<br/><br/>Cesium continuerà a funzionare <b>senza l'estensione Cesium+</b> (profili utenti, messaggi privati, mappe e grafici)<br/><br/>Verifica tua connessione o cambia nodo <a class=\"positive\" ng-click=\"doQuickFix('settings')\">impostazioni dell'estensione</a>.",ES_MAX_UPLOAD_BODY_SIZE:"Il volume di data da inviare supera il limite imposto dal server.<br/><br/>Suggeriamo di riprovare dopo aver eliminato delle foto, per esempio."}}),e.translations("nl-NL",{COMMON:{CATEGORY:"Categorie",CATEGORIES:"Categorieën",CATEGORY_SEARCH_HELP:"Zoeken",LAST_MODIFICATION_DATE:"Vernieuwd op ",SUBMIT_BY:"Ingediend door",BTN_PUBLISH:"Publiceren",BTN_PICTURE_DELETE:"Wissen",BTN_PICTURE_FAVORISE:"Default",BTN_ADD_PICTURE:"Afbeelding toevoegen",NOTIFICATIONS:{TITLE:"Notificaties",MARK_ALL_AS_READ:"Markeer alles als gelezen",NO_RESULT:"Geen berichten",SHOW_ALL:"Toon alles",LOAD_NOTIFICATIONS_FAILED:"Kan berichten niet laden"}},MENU:{REGISTRY:"Pagina's",USER_PROFILE:"Mijn profiel",MESSAGES:"Berichten"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Ondernemingsrekening",ORGANIZATION_ACCOUNT_HELP:"Als je een onderneming, vereniging etc. vertegenwoordigt.<br/>Deze rekening zal geen dividend créeren."},EVENT:{MEMBER_WITHOUT_PROFILE:'Vul <a ui-sref="app.edit_profile"je gebruikersprofiel</a> in om sneller een certificering te verkrijgen. Leden zullen een verfifieerbare identiteit eerder vertrouwen.'}},COMMENTS:{DIVIDER:"Commentaren",SHOW_MORE_COMMENTS:"Toon eerdere commentaren",COMMENT_HELP:"Jouw commentaar, vraag...",COMMENT_HELP_REPLY_TO:"Jouw antwoord...",BTN_SEND:"Verzenden",POPOVER_SHARE_TITLE:"Bericht #{{number}}",REPLY:"Antwoord",REPLY_TO:"Antwoorden op:",REPLY_TO_LINK:"In antwoord op ",REPLY_TO_DELETED_COMMENT:"In antwoord op een gewist bericht",REPLY_COUNT:"{{replyCount}} antwoorden",DELETED_COMMENT:"Bericht gewist"},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Antwoord",BTN_COMPOSE:"Nieuw bericht",BTN_WRITE:"Schrijven",NO_MESSAGE_INBOX:"Geen bericht ontvangen",NO_MESSAGE_OUTBOX:"Geen bericht verzonden",NOTIFICATIONS:{TITLE:"Berichten",MESSAGE_RECEIVED:"Je hebt een <b>bericht ontvangen</b><br/>van"},LIST:{INBOX:"Inbox",OUTBOX:"Verzonden",TITLE:"Privé",POPOVER_ACTIONS:{TITLE:"Opties",DELETE_ALL:"Alle berichten wissen"}},COMPOSE:{TITLE:"Nieuw bericht",TITLE_REPLY:"Antwoord",SUB_TITLE:"Nieuw bericht",TO:"Aan",OBJECT:"Onderwerp",OBJECT_HELP:"Onderwerp",ENCRYPTED_HELP:"Please note this message will by encrypt before sending zodat alleen de ontvanger het kan lezen en zeker kan zijn dat jij de auteur bent.",MESSAGE:"Bericht",MESSAGE_HELP:"Berichtinhoud",CONTENT_CONFIRMATION:"Geen berichtinhoud.<br/><br/>Weet je zeker dat je dit bericht wil verzenden?"},VIEW:{TITLE:"Bericht",SENDER:"Verzonden door",RECIPIENT:"Verzonden aan",NO_CONTENT:"Leeg bericht"},CONFIRM:{REMOVE:"Weet je zeker dat je <b>dit bericht wil wissen</b>?<br/><br/>Dit kan niet ongedaan gemaakt worden.",REMOVE_ALL:"Weet je zeker dat je <b>alle berichten wil wissen</b>?<br/><br/>Dit kan niet ongedaan gemaakt worden.",MARK_ALL_AS_READ:"Weet je zeker dat je <b>alle berichten als gelezen wil markeren</b>?"},INFO:{MESSAGE_REMOVED:"Bericht succesvol gewist",All_MESSAGE_REMOVED:"Berichten succesvol gewist",MESSAGE_SENT:"Bericht verzonden"},ERROR:{SEND_MSG_FAILED:"Fout tijdens verzending.",LOAD_MESSAGES_FAILED:"Kan berichten niet laden.",LOAD_MESSAGE_FAILED:"Kan bericht niet laden.",MESSAGE_NOT_READABLE:"Kan bericht niet lezen.",USER_NOT_RECIPIENT:"Je bent niet de geadresseerde van dit bericht: het kan niet gelezen worden.",NOT_AUTHENTICATED_MESSAGE:"De authenticiteit van het bericht is onduidelijk of de inhoud is gecorrumpeerd.",REMOVE_MESSAGE_FAILED:"Kan bericht niet wissen.",MESSAGE_CONTENT_TOO_LONG:"Waarde te lang (max {{maxLength}} characters).",MARK_AS_READ_FAILED:"Kan bericht niet als gelezen markeren.",LOAD_NOTIFICATIONS_FAILED:"Kan niet alle berichtnotificaties laden.",REMOVE_All_MESSAGES_FAILED:"Kan niet alle berichten wissen.",MARK_ALL_AS_READ_FAILED:"Kan berichten niet als gelezen markeren."}},REGISTRY:{CATEGORY:"Hoofdactiviteit",GENERAL_DIVIDER:"Basisinformatie",LOCATION_DIVIDER:"Adres",SOCIAL_NETWORKS_DIVIDER:"Sociale media en website",TECHNICAL_DIVIDER:"Technische informatie",BTN_NEW:"Toevoegen",SEARCH:{TITLE:"Bedrijfsregister",TITLE_SMALL_DEVICE:"Bedrijfsregister",SEARCH_HELP:"Wie, Wat: kapper, Lili's restaurant, ...",BTN_ADD:"Nieuw",BTN_OPTIONS:"Geavanceerd zoeken",TYPE:"Soort organisatie",LOCATION:"Locatie",LOCATION_HELP:"Plaats",LAST_RECORDS:"Nieuwste referenties:",RESULTS:"Resultaten:"},VIEW:{TITLE:"Register",CATEGORY:"Hoofdactiviteit:",LOCATION:"Adres:",MENU_TITLE:"Opties",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Weet je zeker dat je deze referentie wil verwijderen?<br/><br/>Dit kan niet ongedaan worden gemaakt."},TYPE:{TITLE:"Nieuwe referentie",SELECT_TYPE:"Soort organizatie:",ENUM:{SHOP:"Locale winkel",COMPANY:"Onderneming",ASSOCIATION:"Stichting",INSTITUTION:"Instituut"}},EDIT:{TITLE:"Bewerk",TITLE_NEW:"Nieuwe referentie",RECORD_TYPE:"Soort organizatie",RECORD_TITLE:"Naam",RECORD_TITLE_HELP:"Naam",RECORD_DESCRIPTION:"Beschrijving",RECORD_DESCRIPTION_HELP:"Omschrijf activiteit",RECORD_ADDRESS:"Straat",RECORD_ADDRESS_HELP:"Straat, gebouw...",RECORD_CITY:"Plaats",RECORD_CITY_HELP:"Plaats",RECORD_SOCIAL_NETWORKS:"Sociale media en website",RECORD_PUBKEY:"Publieke sleutel",RECORD_PUBKEY_HELP:"Publieke sleutel om betalingen te ontvangen"},ERROR:{LOAD_CATEGORY_FAILED:"Laden hoofdactiveiten mislukt",LOAD_RECORD_FAILED:"Laden datasheet mislukt",LOOKUP_RECORDS_FAILED:"Opzoeken datasheets is mislukt.",REMOVE_RECORD_FAILED:"Verwijderen datasheet mislukt",SAVE_RECORD_FAILED:"Opslaan datasheet mislukt",RECORD_NOT_EXISTS:"Datasheet niet gevonden"},INFO:{RECORD_REMOVED:"Datasheet succesvol verwijderd"}},PROFILE:{UID:"Pseudoniem",TITLE:"Naam",TITLE_HELP:"Naam",DESCRIPTION:"Over mij",DESCRIPTION_HELP:"Over mij...",ADDRESS:"Adres",ADDRESS_HELP:"Adres (optioneel)",CITY:"Plaats",CITY_HELP:"Plaats (optioneel)",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Algemene informatie",LOCATION_DIVIDER:"Localisatie",SOCIAL_NETWORKS_DIVIDER:"Sociale media en website",TECHNICAL_DIVIDER:"Technische informatie",ERROR:{LOAD_PROFILE_FAILED:"Kon gebruikersprofiel niet laden.",SAVE_PROFILE_FAILED:"Opslaan profiel mislukt",INVALID_SOCIAL_NETWORK_FORMAT:"Ongeldig formaat: vul een geldig internetadres in.<br/><br/>Voorbeelden:<ul><li>- Een Facebookpagina (https://www.facebook.com/user)</li><li>- Een webpagina (http://www.domain.com)</li><li>- Een emailadres (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Fout tijdens afbeelding schalen"},INFO:{PROFILE_SAVED:"Profiel opgeslagen"},HELP:{WARNING_PUBLIC_DATA:"Let op, de informatie die hier is vastgelegd <b>is publiek</b>: zichtbaar ook voor <b>niet ingelogde gebruikers</b>."}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",ENABLE_TOGGLE:"Uitbreiding inschakelen?",ENABLE_MESSAGE_TOGGLE:"Berichten inschakelen?",ENABLE_SETTINGS_TOGGLE:"Globale opslag voor instellingen inschakelen?",PEER:"Adres dataknooppunt",POPUP_PEER:{TITLE:"Dataknoop",HELP:"Stel het te gebruiken adres in:",PEER_HELP:"server.domein.com:poort"},NOTIFICATIONS:{DIVIDER:"Notificaties",HELP_TEXT:"Schakel het type notificatie dat je wil ontvangen in:",ENABLE_TX_SENT:"Bericht bij validatie van <b>verzonden betalingen</b>?",ENABLE_TX_RECEIVED:"Bericht bij validatie van <b>ontvangen betalingen</b>?",ENABLE_CERT_SENT:"Bericht bij validatie van <b>verzonden certificaties</b>?",ENABLE_CERT_RECEIVED:"Bericht bij validatie van <b>ontvangen certificaties</b>?"},CONFIRM:{ASK_ENABLE_TITLE:"Optionele functies",ASK_ENABLE:'Cesium+ is <b>uitgeschakeld</b> waardoor deze functies niet beschikbaar zijn: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Gebruikersprofielen</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifcaitions"></i> Notificaties</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Privéberichten</b>.</ul><br/><br/>Wil je deze functies <b>inschakelen</b>?'}},EVENT:{NODE_STARTED:"Je knoop ES API <b>{{params[0]}}</b> is UP",NODE_BMA_DOWN:"Knooppunt <b>{{params[0]}}:{{params[1]}}</b> (gebruikt door je ES API) is <b>onbereikbaar</b>.",NODE_BMA_UP:"Knooppunt <b>{{p0}}:{{params[1]}}</b> is weer bereikbaar.",MEMBER_JOIN:"Je bent nu <b>lid</b> van valuta <b>{{params[0]}}</b>!",MEMBER_LEAVE:"Je bent <b>geen lid meer</b> van valuta <b>{{params[0]}}</b>!",MEMBER_ACTIVE:"Je lidmaatschap bij <b>{{params[0]}}</b> is met <b>succes verlengd</b>.",TX_SENT:"Je <b>betaling</b> aan <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> is uitgevoerd.",TX_SENT_MULTI:"Je <b>betaling</b> aan <b>{{params[1]}}</b> is uitgevoerd.",TX_RECEIVED:"Je hebt een <b>betaling ontvangen</b> van <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Je hebt een <b>betaling ontvangen</b> van <b>{{params[1]}}</b>.",CERT_SENT:"Je <b>certificatie</b> van <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> is uitgevoerd.",CERT_RECEIVED:"Je hebt een <b>certificatie ontvangen</b> van <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> heeft gereageerd op jouw referentie: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> heeft zijn/aar reactie op jouw referentie bewerkt: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> hheeft gereageerd op jouw commentaar op referentie: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> heeft zijn/haar reactie op jouw commentaar bewerkt, op referentie: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Knooppunt <b>{{old}}</b> onbereikbaar of ongeldig adres.<br/><br/>Tijdelijk knooppunt <b>{{new}}</b> gebruiken?"},ERROR:{ES_CONNECTION_ERROR:'Knooppunt <b>{{server}}</b> onbereikbaar of ongeldig adres.<br/><br/>Cesium zal verder weken, <b>zonder de Cesium+ uitbreiding</b> (gebruikersprofielens, privéberichten, kaarten en grafieken).<br/><br/>Controleer je internetverbinding, of verander je knooppunt in <a class="positive" ng-click="doQuickFix(\'settings\')">instellingen</a>.',ES_MAX_UPLOAD_BODY_SIZE:"De hoveelheid te verzenden gegevens is overschrijdt de serverlimiet.<br/><br/>Probeer het nogmaals na, bijvoorbeeld, het wissen foto's."}}),e.translations("en-GB",{NETWORK:{VIEW:{BTN_GRAPH:"Statistics"}},GRAPH:{COMMON:{LINEAR_SCALE:"Linear scale",LOGARITHMIC_SCALE:"Logarithmic scale",BTN_SHOW_STATS:"See statistics",BTN_SHOW_DETAILED_STATS:"Detailed statistics",RANGE_DURATION_DIVIDER:"Step unit:",RANGE_DURATION:{HOUR:"Group by <b>hour</b>",DAY:"Group by <b>day</b>",MONTH:"Group by <b>month</b>"}},ACCOUNT:{TITLE:"Statistics",BTN_SHOW_STATS:"View account Statistics",BALANCE_DIVIDER:"Account status",BALANCE_TITLE:"Evolution of the account {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Receipts",TX_SENT_LABEL:"Spending",UD_LABEL:"UD",BALANCE_LABEL:"Balance",INPUT_CHART_TITLE:"Sum of incoming flows, per transmitter:",OUTPUT_CHART_TITLE:"Sum of outgoing flows, per recipient:"},BLOCKCHAIN:{TITLE:"Statistics",BLOCKS_ISSUERS_DIVIDER:"Written blocks by members",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} members</b> calculated <b>{{blockCount|formatInteger}} blocks</b>",BLOCKS_ISSUERS_TITLE:"Number of blocks calculated per member",BLOCKS_ISSUERS_LABEL:"Number of blocks",TX_DIVIDER:"Analysis of transactions",TX_AMOUNT_TITLE:"Transaction volume",TX_AMOUNT_PUBKEY_TITLE:"Volume of transactions calculated by {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Exchange volume",TX_COUNT_TITLE:"Number of written transactions",TX_COUNT_LABEL:"Number of transactions",TX_AVG_BY_BLOCK:"Average per block"},CURRENCY:{MONETARY_MASS_TITLE:"Evolution of the monetary mass",MONETARY_MASS_LABEL:"Monetary mass",MONETARY_MASS_SHARE_LABEL:"Average per member",UD_TITLE:"Evolution of the universal dividend",MEMBERS_COUNT_TITLE:"Evolution of the number of members",MEMBERS_COUNT_LABEL:"Number of members"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Computed blocks count",BLOCK_COUNT:"{{count}} blocks",NO_BLOCK:"No block"}},DOC_STATS:{TITLE:"Data storage statistics (Cesium+)",USER:{TITLE:"Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},USER_DELTA:{TITLE:"Delta / Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},MESSAGE:{TITLE:"Number of documents related to the communication",MESSAGE_INBOX:"Messages in inbox",MESSAGE_OUTBOX:"Messages in outbox",INVITATION_CERTIFICATION:"Invitations to certify"},SOCIAL:{TITLE:"Number of page or group",PAGE_COMMENT:"Comments",PAGE_RECORD:"Pages",GROUP_RECORD:"Groups"},OTHER:{TITLE:"Other documents",HISTORY_DELETE:"Deletion of documents"}}}}),e.translations("en",{NETWORK:{VIEW:{BTN_GRAPH:"Statistics"}},GRAPH:{COMMON:{LINEAR_SCALE:"Linear scale",LOGARITHMIC_SCALE:"Logarithmic scale",BTN_SHOW_STATS:"See statistics",BTN_SHOW_DETAILED_STATS:"Detailed statistics",RANGE_DURATION_DIVIDER:"Step unit:",RANGE_DURATION:{HOUR:"Group by <b>hour</b>",DAY:"Group by <b>day</b>",MONTH:"Group by <b>month</b>"}},ACCOUNT:{TITLE:"Statistics",BTN_SHOW_STATS:"View account Statistics",BALANCE_DIVIDER:"Account status",BALANCE_TITLE:"Evolution of the account {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Receipts",TX_SENT_LABEL:"Spending",UD_LABEL:"UD",BALANCE_LABEL:"Balance",INPUT_CHART_TITLE:"Sum of incoming flows, per transmitter:",OUTPUT_CHART_TITLE:"Sum of outgoing flows, per recipient:"},BLOCKCHAIN:{TITLE:"Statistics",BLOCKS_ISSUERS_DIVIDER:"Written blocks by members",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} members</b> calculated <b>{{blockCount|formatInteger}} blocks</b>",BLOCKS_ISSUERS_TITLE:"Number of blocks calculated per member",BLOCKS_ISSUERS_LABEL:"Number of blocks",TX_DIVIDER:"Analysis of transactions",TX_AMOUNT_TITLE:"Transaction volume",TX_AMOUNT_PUBKEY_TITLE:"Volume of transactions calculated by {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Exchange volume",TX_COUNT_TITLE:"Number of written transactions",TX_COUNT_LABEL:"Number of transactions",TX_AVG_BY_BLOCK:"Average per block"},CURRENCY:{MONETARY_MASS_TITLE:"Evolution of the monetary mass",MONETARY_MASS_LABEL:"Monetary mass",MONETARY_MASS_SHARE_LABEL:"Average per member",UD_TITLE:"Evolution of the universal dividend",MEMBERS_COUNT_TITLE:"Evolution of the number of members",MEMBERS_COUNT_LABEL:"Number of members"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Computed blocks count",BLOCK_COUNT:"{{count}} blocks",NO_BLOCK:"No block"}},DOC_STATS:{TITLE:"Data storage statistics (Cesium+)",USER:{TITLE:"Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},USER_DELTA:{TITLE:"Delta / Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},MESSAGE:{TITLE:"Number of documents related to the communication",MESSAGE_INBOX:"Messages in inbox",MESSAGE_OUTBOX:"Messages in outbox",INVITATION_CERTIFICATION:"Invitations to certify"},SOCIAL:{TITLE:"Number of page or group",PAGE_COMMENT:"Comments",PAGE_RECORD:"Pages",GROUP_RECORD:"Groups"},OTHER:{TITLE:"Other documents",HISTORY_DELETE:"Deletion of documents"}}}}),e.translations("eo-EO",{NETWORK:{VIEW:{BTN_GRAPH:"Statistikoj"}},GRAPH:{COMMON:{LINEAR_SCALE:"Lineara skalo",LOGARITHMIC_SCALE:"Logaritma skalo",BTN_SHOW_STATS:"Vidi la statistikojn",BTN_SHOW_DETAILED_STATS:"Detalaj statistikoj",RANGE_DURATION_DIVIDER:"Tempo-unuo:",RANGE_DURATION:{HOUR:"Horo",DAY:"Tago",MONTH:"Monato"}},ACCOUNT:{TITLE:"Statistikoj",BTN_SHOW_STATS:"Vidi la statistikojn de la konto",BALANCE_DIVIDER:"Stato de la konto",BALANCE_TITLE:"Evoluo de la konto {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Enspezoj",TX_SENT_LABEL:"Elspezoj",TX_ACCUMULATION_LABEL:"Bilanco de la spezoj",UD_LABEL:"UD",UD_ACCUMULATION_LABEL:"Bilanco de la UD",BALANCE_LABEL:"Saldo",WOT_DIVIDER:"Reto de fido",CERTIFICATION_TITLE:"Nombro de atestaĵoj - {{pubkey|formatPubkey}}",RECEIVED_CERT_LABEL:"Tuto pri la ricevitaj",RECEIVED_CERT_DELTA_LABEL:"Vario pri la ricevitaj",GIVEN_CERT_LABEL:"Tuto pri la senditaj",GIVEN_CERT_DELTA_LABEL:"Vario pri la senditaj",INPUT_CHART_TITLE:"Sumo de la enirantaj fluoj, por ĉiu sendinto:",OUTPUT_CHART_TITLE:"Sumo de la elirantaj fluoj, por ĉiu ricevinto:"},BLOCKCHAIN:{TITLE:"Statistikoj",BLOCKS_ISSUERS_DIVIDER:"Analizo de la kalkul-distribuo",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} membroj</b> kalkulis <b>{{blockCount|formatInteger}} blokojn</b>",BLOCKS_ISSUERS_TITLE:"Nombro de blokoj kalkulitaj por membro",BLOCKS_ISSUERS_LABEL:"Nombro de blokoj",TX_DIVIDER:"Analizo de la spezoj",TX_AMOUNT_TITLE:"Kvanto de la spezoj",TX_AMOUNT_PUBKEY_TITLE:"Kvanto de spezoj kalkulitaj de {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Kvanto interŝanĝita",TX_COUNT_TITLE:"Nombro de spezoj skribitaj",TX_COUNT_LABEL:"Nombro de spezoj",TX_AVG_BY_BLOCK:"Meza nombro de spezoj / bloko"},CURRENCY:{MONETARY_MASS_TITLE:"Evoluo de la mona maso",MONETARY_MASS_LABEL:"Mona maso",MONETARY_MASS_SHARE_LABEL:"Mezumo por membro",UD_TITLE:"Evoluo de la universala dividendo",MEMBERS_COUNT_TITLE:"Evoluo de la nombro de membroj",MEMBERS_COUNT_LABEL:"Nombro de membroj"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Nombro de blokoj kalkulitaj",BLOCK_COUNT:"{{count}} blokoj",NO_BLOCK:"Neniu bloko"}},DOC_STATS:{TITLE:"Statistikoj pri stokado",USER:{TITLE:"Nombro de dokumentoj ligitaj al konto",USER_PROFILE:"Uzanto-profiloj",USER_SETTINGS:"Parametroj konservitaj"},MESSAGE:{TITLE:"Nombro de dokumentoj ligitaj al komunikado",MESSAGE_INBOX:"Mesaĝoj en ricevujo",MESSAGE_OUTBOX:"Senditaj mesaĝoj konservitaj",INVITATION_CERTIFICATION:"Invitoj atestotaj"},SOCIAL:{TITLE:"Nombro de paĝoj aŭ grupoj",PAGE_COMMENT:"Komentoj",PAGE_RECORD:"Paĝoj",GROUP_RECORD:"Grupoj"},OTHER:{TITLE:"Aliaj dokumentoj",HISTORY_DELETE:"Forigoj de dokumentoj"}},SYNCHRO:{TITLE:"Statistikoj pri sinkronigoj",COUNT:{TITLE:"Kvanto sinkronigita",INSERTS:"Enmetoj",UPDATES:"Ĝisdatigoj",DELETES:"Forigoj"},PEER:{TITLE:"Nodoj informpetitaj",ES_USER_API:"Nodoj pri datenoj de uzantoj",ES_SUBSCRIPTION_API:"Nodoj pri retaj servoj"},PERFORMANCE:{TITLE:"Efikecoj pri efektiviĝo",DURATION:"Tempo por efektiviĝo (ms)"}}}}),e.translations("es-ES",{NETWORK:{VIEW:{BTN_GRAPH:"Estadística"}},GRAPH:{COMMON:{LINEAR_SCALE:"Escala lineal",LOGARITHMIC_SCALE:"Escala logarítmica",BTN_SHOW_STATS:"Ver estadísticas",BTN_SHOW_DETAILED_STATS:"Estadísticas detalladas",RANGE_DURATION_DIVIDER:"Unidad de paso:",RANGE_DURATION:{HOUR:"Grupo por <b>hora</b>",DAY:"Grupo por <b>día</b>",MONTH:"Grupo por <b>mes</b>"}},ACCOUNT:{INPUT_CHART_TITLE:"Suma del flujo entrante, por el transmisor:",OUTPUT_CHART_TITLE:"Suma de las salidas por destino:"},BLOCKCHAIN:{TITLE:"Estadística",BLOCKS_ISSUERS_DIVIDER:"Bloques escritos por los miembros",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} members</b> has computed <b>{{blockCount|formatInteger}} blocks</b>",BLOCKS_ISSUERS_TITLE:"Número de bloques miembro calculado",BLOCKS_ISSUERS_LABEL:"Número de bloques",TX_DIVIDER:"Análisis de transacciones",TX_AMOUNT_TITLE:"El volumen de operaciones",TX_AMOUNT_PUBKEY_TITLE:"El volumen de operaciones calculado por {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Volumen negociado",TX_COUNT_TITLE:"Número de transacciones escritas",TX_COUNT_LABEL:"Número de transacciones",TX_AVG_BY_BLOCK:"Promedio por bloque"},CURRENCY:{MONETARY_MASS_TITLE:"Evolución de la masa monetaria",MONETARY_MASS_LABEL:"Masa monetaria",MONETARY_MASS_SHARE_LABEL:"Promedio miembro",UD_TITLE:"Evolución del dividendo universales",MEMBERS_COUNT_TITLE:"Evolución del número de miembros",MEMBERS_COUNT_LABEL:"Número de miembros"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Número de bloques calculados",BLOCK_COUNT:"{{count}} bloques",NO_BLOCK:"Ningún bloque"}}}}),e.translations("fr-FR",{NETWORK:{VIEW:{BTN_GRAPH:"Statistiques"}},GRAPH:{COMMON:{LINEAR_SCALE:"Echelle linéaire",LOGARITHMIC_SCALE:"Echelle logarithmique",BTN_SHOW_STATS:"Voir les statistiques",BTN_SHOW_DETAILED_STATS:"Statistiques détaillées",RANGE_DURATION_DIVIDER:"Unité de temps :",RANGE_DURATION:{HOUR:"Heure",DAY:"Jour",MONTH:"Mois"}},ACCOUNT:{TITLE:"Statistiques",BTN_SHOW_STATS:"Voir les statistiques du compte",BALANCE_DIVIDER:"Situation du compte",BALANCE_TITLE:"Evolution du compte {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Recettes",TX_SENT_LABEL:"Dépenses",TX_ACCUMULATION_LABEL:"Bilan des transactions",UD_LABEL:"DU",UD_ACCUMULATION_LABEL:"Bilan des DU",BALANCE_LABEL:"Solde",WOT_DIVIDER:"Toile de confiance",CERTIFICATION_TITLE:"Nombre de certifications - {{pubkey|formatPubkey}}",RECEIVED_CERT_LABEL:"Total reçues",RECEIVED_CERT_DELTA_LABEL:"Variation reçues",GIVEN_CERT_LABEL:"Total envoyées",GIVEN_CERT_DELTA_LABEL:"Variation envoyées",INPUT_CHART_TITLE:"Somme des flux entrants, par émetteur :",OUTPUT_CHART_TITLE:"Somme des flux sortants, par destinaire :"},BLOCKCHAIN:{TITLE:"Statistiques",BLOCKS_ISSUERS_DIVIDER:"Analyse de la répartition du calcul",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} membres</b> ont calculé <b>{{blockCount|formatInteger}} blocs</b>",BLOCKS_ISSUERS_TITLE:"Nombre de blocs calculés par membre",BLOCKS_ISSUERS_LABEL:"Nombre de blocs",TX_DIVIDER:"Analyse des transactions",TX_AMOUNT_TITLE:"Volume des transactions",TX_AMOUNT_PUBKEY_TITLE:"Volume des transactions calculées par {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Volume échangé",TX_COUNT_TITLE:"Nombre de transactions écrites",TX_COUNT_LABEL:"Nombre de transactions",TX_AVG_BY_BLOCK:"Nombre moyen de transactions / bloc"},CURRENCY:{MONETARY_MASS_TITLE:"Evolution de la masse monétaire",MONETARY_MASS_LABEL:"Masse monétaire",
-MONETARY_MASS_SHARE_LABEL:"Moyenne par membre",UD_TITLE:"Evolution du dividende universel",MEMBERS_COUNT_TITLE:"Evolution du nombre de membres",MEMBERS_COUNT_LABEL:"Nombre de membres"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Nombre de blocs calculés",BLOCK_COUNT:"{{count}} blocs",NO_BLOCK:"Aucun bloc"}},DOC_STATS:{TITLE:"Statistiques de stockage",USER:{TITLE:"Nombre de documents liés à un compte",USER_PROFILE:"Profils utilisateur",USER_SETTINGS:"Paramètres sauvegardés"},USER_DELTA:{TITLE:"Variation du nombre de documents liés à un compte",USER_PROFILE:"Profils utilisateur",USER_SETTINGS:"Paramètres sauvegardés"},MESSAGE:{TITLE:"Nombre de documents liés à la communication",MESSAGE_INBOX:"Messages en boîte de réception",MESSAGE_OUTBOX:"Messages envoyés sauvegardés",INVITATION_CERTIFICATION:"Invitations à certifier"},SOCIAL:{TITLE:"Nombre de pages ou groupes",PAGE_COMMENT:"Commentaires",PAGE_RECORD:"Pages",GROUP_RECORD:"Groupes"},OTHER:{TITLE:"Autres documents",HISTORY_DELETE:"Suppressions de documents"}},SYNCHRO:{TITLE:"Statistiques de synchronisations",COUNT:{TITLE:"Volume synchronisé",INSERTS:"Insertions",UPDATES:"Mises à jour",DELETES:"Suppressions"},PEER:{TITLE:"Noeuds requêtés",ES_USER_API:"Noeuds données utilisateurs",ES_SUBSCRIPTION_API:"Noeuds services en ligne"},PERFORMANCE:{TITLE:"Performances d'exécution",DURATION:"Temps d'exécution (ms)"}}}}),e.translations("it-IT",{NETWORK:{VIEW:{BTN_GRAPH:"Statistiche"}},GRAPH:{COMMON:{LINEAR_SCALE:"Scala lineare",LOGARITHMIC_SCALE:"Scala logaritmica",BTN_SHOW_STATS:"Vedere le statistiche",BTN_SHOW_DETAILED_STATS:"Statistiche dettagliate",RANGE_DURATION_DIVIDER:"Unità di tempo :",RANGE_DURATION:{HOUR:"Ora",DAY:"Giorno",MONTH:"Mese"}},ACCOUNT:{TITLE:"Statistiche",BTN_SHOW_STATS:"Visualizzare le statistiche del conto",BALANCE_DIVIDER:"Situazione del conto",BALANCE_TITLE:"Evoluzione del conto {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Incassi",TX_SENT_LABEL:"Spese",TX_ACCUMULATION_LABEL:"Bilancio delle transazioni",UD_LABEL:"DU",UD_ACCUMULATION_LABEL:"Bilancio dei DU",BALANCE_LABEL:"Saldo",WOT_DIVIDER:"Tela di fiducia",CERTIFICATION_TITLE:"Numero di certificazioni - {{pubkey|formatPubkey}}",RECEIVED_CERT_LABEL:"Totale ricevute",RECEIVED_CERT_DELTA_LABEL:"Variazione ricevute",GIVEN_CERT_LABEL:"Totale inviate",GIVEN_CERT_DELTA_LABEL:"Variazione inviate",INPUT_CHART_TITLE:"Somma dei flussi in entrata, par emittente :",OUTPUT_CHART_TITLE:"Somma dei flussi in uscita, per destinatario :"},BLOCKCHAIN:{TITLE:"Statistiche",BLOCKS_ISSUERS_DIVIDER:"Analisi della ripartizione del calcolo",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} membri</b> hanno calcolato <b>{{blockCount|formatInteger}} blocchi</b>",BLOCKS_ISSUERS_TITLE:"Numero di blocchi calcolati a membro",BLOCKS_ISSUERS_LABEL:"Numero di blocchi",TX_DIVIDER:"Analisi delle transazioni",TX_AMOUNT_TITLE:"Volume delle transazioni",TX_AMOUNT_PUBKEY_TITLE:"Volume delle transazioni calcolato da {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Volume scambiato",TX_COUNT_TITLE:"Numero di transazioni scritte",TX_COUNT_LABEL:"Numero di transazioni",TX_AVG_BY_BLOCK:"Numero medio di transazioni / blocco"},CURRENCY:{MONETARY_MASS_TITLE:"Evoluzione della massa monetaria",MONETARY_MASS_LABEL:"Massa monetaria",MONETARY_MASS_SHARE_LABEL:"Media a membro",UD_TITLE:"Evoluzione del Dividendo Universale",MEMBERS_COUNT_TITLE:"Evoluzione del numero di membri",MEMBERS_COUNT_LABEL:"Numero di membri"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Numero di blocchi calcolati",BLOCK_COUNT:"{{count}} blocchi",NO_BLOCK:"Nessun blocco"}},DOC_STATS:{TITLE:"Statistiche di stoccaggio",USER:{TITLE:"Numero di documenti legati ad un conto",USER_PROFILE:"Profili dell'utente",USER_SETTINGS:"Impostazioni salvate"},MESSAGE:{TITLE:"Numero di documenti legati alla conversazione",MESSAGE_INBOX:"Messaggi in arrivo",MESSAGE_OUTBOX:"Messaggi inviati salvati",INVITATION_CERTIFICATION:"Invitazioni da certificare"},SOCIAL:{TITLE:"Numero di pagine o gruppi",PAGE_COMMENT:"Commenti",PAGE_RECORD:"Pagine",GROUP_RECORD:"Gruppi"},OTHER:{TITLE:"Altri documenti",HISTORY_DELETE:"Cronologia eliminazione documenti"}},SYNCHRO:{TITLE:"Statistiche di sincronizzazioni",COUNT:{TITLE:"Volume sincronizzato",INSERTS:"Inserimenti",UPDATES:"Aggiornamenti",DELETES:"Eliminazioni"},PEER:{TITLE:"Nodi interrogati",ES_USER_API:"Nodi dati utenti",ES_SUBSCRIPTION_API:"Noeuds servizi online"},PERFORMANCE:{TITLE:"Prestazioni (performance) di esecuzione",DURATION:"Tempo di esecuzione (ms)"}}}}),e.translations("nl-NL",{NETWORK:{VIEW:{BTN_GRAPH:"Statistieken"}},GRAPH:{COMMON:{LINEAR_SCALE:"Lineaire schaal",LOGARITHMIC_SCALE:"Logaritmische schaal",BTN_SHOW_STATS:"Zie statistieken",BTN_SHOW_DETAILED_STATS:"Gedetailleerde statistieken",RANGE_DURATION_DIVIDER:"Stap eenheid:",RANGE_DURATION:{HOUR:"Groep per <b>uur</b>",DAY:"Groep per <b>dag</b>",MONTH:"Groep per <b>maand</b>"}},ACCOUNT:{INPUT_CHART_TITLE:"Som van de binnenkomende stroom, door de zender:",OUTPUT_CHART_TITLE:"Som van de uitstroom per bestemming:"},BLOCKCHAIN:{TITLE:"Statistieken",BLOCKS_ISSUERS_DIVIDER:"Schriftelijke blokken door leden",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} leden</b> berekend <b>{{blockCount|formatInteger}} blokken</b>",BLOCKS_ISSUERS_TITLE:"Aantal blokken berekend per lid",BLOCKS_ISSUERS_LABEL:"Aantal blokken",TX_DIVIDER:"Analyse van transacties",TX_AMOUNT_TITLE:"Trading volume",TX_AMOUNT_PUBKEY_TITLE:"Trading volume dat wordt berekend door {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Verhandeld volume",TX_COUNT_TITLE:"Aantal schriftelijke transacties",TX_COUNT_LABEL:"Aantal transacties",TX_AVG_BY_BLOCK:"Gemiddeld aantal transacties / blok"},CURRENCY:{MONETARY_MASS_TITLE:"Evolutie van de monetaire massa",MONETARY_MASS_LABEL:"Monetaire massa",MONETARY_MASS_SHARE_LABEL:"Gemiddelde leden",UD_TITLE:"Ontwikkeling van de universele dividend",MEMBERS_COUNT_TITLE:"Evolutie van het aantal leden",MEMBERS_COUNT_LABEL:"Aantal leden"}}}),e.translations("en-GB",{MAP:{COMMON:{SEARCH_DOTS:"Search...",BTN_LOCALIZE_ME:"Localize me"},NETWORK:{LOOKUP:{BTN_MAP:"Peers map",BTN_MAP_HELP:"Open peers map"},VIEW:{TITLE:"Peers map",LAYER:{MEMBER:"Member peers",MIRROR:"Mirror peers",OFFLINE:"Offline peers"}}},WOT:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open members map"},VIEW:{TITLE:"Members map",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Members',PENDING:'<i class="icon ion-clock energized"></i> Pending registrations',WALLET:'<i class="icon ion-card gray"></i> Simple wallets'}},ERROR:{LOAD_POSITION_FAILED:"Can not retrieve the positions to display."}},REGISTRY:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open the map of the pages"},VIEW:{TITLE:"Map of pages",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Local shops',COMPANY:'<i class="icon ion-page-company positive"></i> Companies',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associations',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institutions'}}},PROFILE:{MARKER_HELP:"<b>Drag and drop</b> this marker to <b>update<br/>your position</b>, or use the buttons<br/>on top of the map."},ERROR:{LOCALIZE_ME_FAILED:"Unable to retrieve your current position"},SETTINGS:{MAP_DIVIDER:"Maps",ENABLE_GOOGLE_API:"Enable Google API services?",ENABLE_GOOGLE_API_HELP:"In the <b>members map</b>, allows you to display accounts with an address but without geolocation.",GOOGLE_API_KEY:"Google API key",BTN_GOOGLE_API:"Getting a key",BTN_GOOGLE_API_WARNING:"requires a Google account",GOOGLE_API_KEY_PLACEHOLDER:"eg: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"This map displays <b>profiles with a position</b>, whether they are member accounts or not.<br/><br/>Only profiles with the option &quot;appear on the map&quot; has been activated.",WOT_BTN_LAYERS:"<b>Filter the displayed data</b>: members, pending registrations, simple portfolios, etc.",WOT_BTN_SEARCH:"You can <b>search</b> by name, public key, or member pseudonym."}}}}),e.translations("en",{MAP:{COMMON:{SEARCH_DOTS:"Search...",BTN_LOCALIZE_ME:"Localize me"},NETWORK:{LOOKUP:{BTN_MAP:"Peers map",BTN_MAP_HELP:"Open peers map"},VIEW:{TITLE:"Peers map",LAYER:{MEMBER:"Member peers",MIRROR:"Mirror peers",OFFLINE:"Offline peers"}}},WOT:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open members map"},VIEW:{TITLE:"Members map",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Members',PENDING:'<i class="icon ion-clock energized"></i> Pending registrations',WALLET:'<i class="icon ion-card gray"></i> Simple wallets'}},ERROR:{LOAD_POSITION_FAILED:"Can not retrieve the positions to display."}},REGISTRY:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open the map of the pages"},VIEW:{TITLE:"Map of pages",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Local shops',COMPANY:'<i class="icon ion-page-company positive"></i> Companies',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associations',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institutions'}}},PROFILE:{MARKER_HELP:"<b>Drag and drop</b> this marker to <b>update<br/>your position</b>, or use the buttons<br/>on top of the map."},ERROR:{LOCALIZE_ME_FAILED:"Unable to retrieve your current position"},SETTINGS:{MAP_DIVIDER:"Maps",ENABLE_GOOGLE_API:"Enable Google API services?",ENABLE_GOOGLE_API_HELP:"In the <b>members map</b>, allows you to display accounts with an address but without geolocation.",GOOGLE_API_KEY:"Google API key",BTN_GOOGLE_API:"Getting a key",BTN_GOOGLE_API_WARNING:"requires a Google account",GOOGLE_API_KEY_PLACEHOLDER:"eg: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"This map displays <b>profiles with a position</b>, whether they are member accounts or not.<br/><br/>Only profiles with the option &quot;appear on the map&quot; has been activated.",WOT_BTN_LAYERS:"<b>Filter the displayed data</b>: members, pending registrations, simple portfolios, etc.",WOT_BTN_SEARCH:"You can <b>search</b> by name, public key, or member pseudonym."}}}}),e.translations("eo-EO",{MAP:{COMMON:{SEARCH_DOTS:"Traserĉi...",BTN_LOCALIZE_ME:"Lokalizi min"},NETWORK:{LOOKUP:{BTN_MAP:"Mapo",BTN_MAP_HELP:"Malfermi la mapon pri nodoj"},VIEW:{TITLE:"Mapo pri nodoj",LAYER:{MEMBER:"Membro-nodoj",MIRROR:"Spegul-nodoj",OFFLINE:"Nekonektitaj nodoj"}}},WOT:{LOOKUP:{BTN_MAP:"Mapo",BTN_MAP_HELP:"Malfermi la mapon pri membroj"},VIEW:{TITLE:"Mapo pri membroj",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Membroj',PENDING:'<i class="icon ion-clock energized"></i> Aliĝoj atendantaj',WALLET:'<i class="icon ion-card gray"></i> Simplaj monujoj'}},ERROR:{LOAD_POSITION_FAILED:"Neeblas ricevi la lokojn afiŝotajn."}},REGISTRY:{LOOKUP:{BTN_MAP:"Mapo",BTN_MAP_HELP:"Malfermi la mapon pri paĝoj"},VIEW:{TITLE:"Mapo pri paĝoj",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Lokaj komercoj',COMPANY:'<i class="icon ion-page-company positive"></i> Entreprenoj',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Asocioj',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institucioj'}}},PROFILE:{MARKER_HELP:"<b>Ŝovu-demetu</b> tiun ĉi markilon por <b>aktualigi<br/> vian lokon</b> sur la mapo, aŭ uzu la serĉo-butonon<br/>super la mapo."},ERROR:{LOCALIZE_ME_FAILED:"Neeblas ricevi vian nunan lokon"},SETTINGS:{MAP_DIVIDER:"Mapoj",ENABLE_GOOGLE_API:"Aktivigi la Google-API-servojn?",ENABLE_GOOGLE_API_HELP:"Ebligas afiŝi sur la <b>mapo pri membroj</b> kontojn kun adreso sed sen iu GPS-lokalizo.",GOOGLE_API_KEY:"Google-API-ŝlosilo",BTN_GOOGLE_API:"Ekhavi ŝlosilon",BTN_GOOGLE_API_WARNING:"Necesigas havi Google-konton",GOOGLE_API_KEY_PLACEHOLDER:"Ekzemple: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"Tiu ĉi mapo afiŝas <b>la profilojn kun loko</b>, ĉu ili rilatas al membro-kontoj aŭ ne.<br/><br/>Nur videblas la profiloj, kies kromaĵo &quot;aperi sur la mapo&quot; estis aktivigita.",WOT_BTN_LAYERS:"<b>Filtru ĉi tie la afiŝitajn datenojn</b>: membroj, aliĝoj atendantaj, simplaj monujoj, ktp.",WOT_BTN_SEARCH:"Vi povas <b>efektivigi serĉadon</b> laŭ nomo, publika ŝlosilo aŭ membro-pseŭdonimo."}}}}),e.translations("fr-FR",{MAP:{COMMON:{SEARCH_DOTS:"Rechercher...",BTN_LOCALIZE_ME:"Me localiser"},NETWORK:{LOOKUP:{BTN_MAP:"Carte",BTN_MAP_HELP:"Ouvrir la carte des noeuds"},VIEW:{TITLE:"Carte des noeuds",LAYER:{MEMBER:"Nœuds membre",MIRROR:"Nœuds miroir",OFFLINE:"Nœuds hors ligne"}}},WOT:{LOOKUP:{BTN_MAP:"Carte",BTN_MAP_HELP:"Ouvrir la carte des membres"},VIEW:{TITLE:"Carte des membres",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Membres',PENDING:'<i class="icon ion-clock energized"></i> Inscriptions en attente',WALLET:'<i class="icon ion-card gray"></i> Simples portefeuilles'}},ERROR:{LOAD_POSITION_FAILED:"Impossible de récupérer les positions à afficher."}},REGISTRY:{LOOKUP:{BTN_MAP:"Carte",BTN_MAP_HELP:"Ouvrir la carte des pages"},VIEW:{TITLE:"Carte des pages",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Commerces locaux',COMPANY:'<i class="icon ion-page-company positive"></i> Entreprises',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associations',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institutions'}}},PROFILE:{MARKER_HELP:"<b>Glissez-déposez</b> ce marqueur pour <b>mettre<br/>à jour votre position</b> sur la carte, ou utilisez le bouton<br/>de recherche au-dessus de la carte."},ERROR:{LOCALIZE_ME_FAILED:"Impossible de récupérer votre position actuelle"},SETTINGS:{MAP_DIVIDER:"Cartes",ENABLE_GOOGLE_API:"Activer les services Google API ?",ENABLE_GOOGLE_API_HELP:"Permet l'affichage dans la <b>carte des membres</b> des comptes ayant une adresse mais aucun positionnement GPS.",GOOGLE_API_KEY:"Clé d'API Google",BTN_GOOGLE_API:"Obtenir une clé",BTN_GOOGLE_API_WARNING:"Nécessite d'avoir un compte Google",GOOGLE_API_KEY_PLACEHOLDER:"Exemple : AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"Cette carte affiche <b>les profils ayant une position</b>, qu'ils correspondent à des comptes membre ou non.<br/><br/>Seuls sont visibles les profils dont l'option &quot;apparaître sur la carte&quot; a été activée.",WOT_BTN_LAYERS:"<b>Filtrez ici les données affichées</b> : membres, inscriptions en attente, simples portefeuilles, etc.",WOT_BTN_SEARCH:"Vous pouvez <b>effectuer une recherche</b> par nom, clef publique ou pseudonyme de membre."}}}}),e.translations("it-IT",{MAP:{COMMON:{SEARCH_DOTS:"Ricerca...",BTN_LOCALIZE_ME:"Trovami"},NETWORK:{LOOKUP:{BTN_MAP:"Mappa dei peers",BTN_MAP_HELP:"Aprire mappa dei peers"},VIEW:{TITLE:"Mappa dei peers",LAYER:{MEMBER:"Peers membri",MIRROR:"Peers specchi",OFFLINE:"Peers offline"}}},WOT:{LOOKUP:{BTN_MAP:"Mappa dei membri",BTN_MAP_HELP:"Aprire mappa dei membri"},VIEW:{TITLE:"Mappa membri",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Membri',PENDING:'<i class="icon ion-clock energized"></i> Registrazione pendenti',WALLET:'<i class="icon ion-card gray"></i> Portafogli osservatori'}},ERROR:{LOAD_POSITION_FAILED:"Errore nel caricamento delle posizioni."}},REGISTRY:{LOOKUP:{BTN_MAP:"Mappa",BTN_MAP_HELP:"Aprire la mappa delle pagine pro"},VIEW:{TITLE:"Mappa delle pagine pro",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Negozi locali',COMPANY:'<i class="icon ion-page-company positive"></i> Aziende',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associazioni',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Instituti'}}},PROFILE:{MARKER_HELP:"<b>Drag and drop</b> questo indicatore per <b>aggiornare<br/>tua posizione</b>, o usa i bottoni <br/>sopra la mappa."},ERROR:{LOCALIZE_ME_FAILED:"Impossible trovare tua posizione attuale"},SETTINGS:{MAP_DIVIDER:"Mappe",ENABLE_GOOGLE_API:"Abilitare i servizi Google API ?",ENABLE_GOOGLE_API_HELP:"Sulla <b>mappa dei membri</b>, ti permette di visualizzare i conti con un indirizzo ma senza geolocalizzazione.",GOOGLE_API_KEY:"Chiave Google API",BTN_GOOGLE_API:"Ottenere una chiave",BTN_GOOGLE_API_WARNING:"necessita un conto Google",GOOGLE_API_KEY_PLACEHOLDER:"per es. : AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"Questa mappa mostra <b>profili che hanno fornito una posizione</b>, che siano conti membri o no.<br/><br/>Solo i profili che hanno attivato l'opzione &quot;apparire sulla mappa&quot; sono stati attivati.",WOT_BTN_LAYERS:"<b>Filtrare i dati visibili</b>: membri, registrazioni pendenti, portafogli osservatori, etc.",WOT_BTN_SEARCH:"Puoi <b>cercare</b> per nome, chiave pubblica, o pseudonimo del membro."}}}}),e.translations("fr-FR",{RML9:{BTN_EXPORT:"Télécharger",BTN_OPEN:"Ouvrir la page RML9",BTN_SWOW_TX:"Voir les transactions",FILE_NAME:"relevé du compte {{pubkey|formatPubkey}} au {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Montant",COMMENT:"Commentaire"},VIEW:{TITLE:"RML9",DIVIDER:"Dernières transactions :",BALANCE:"Solde du compte"},CHART:{INPUT_CHART_TITLE:"Somme des flux entrants, par émetteur :",OUTPUT_CHART_TITLE:"Somme des flux sortants, par destinaire :"},SETTINGS:{ENABLE_TOGGLE:"Activer le plugin RML9 ?"}}})}]),angular.module("cesium.plugins.templates",[]).run(["$templateCache",function(e){e.put("plugins/es/templates/menu_extend.html",'<div ng-if=":state:enable && extensionPoint === \'menu-user\'" class="visible-xs visible-sm"><a menu-close="" class="item item-icon-left" active-link="active" ng-if="login && walletData.isMember" active-link-path-prefix="#/app/invitations" ui-sref="app.view_invitations"><i class="icon ion-person-stalker"></i> <span translate="">MENU.INVITATIONS</span> <span class="badge badge-positive" ng-if="walletData.invitations.unreadCount">{{walletData.invitations.unreadCount}}</span> </a><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/user/message" ng-class="{\'item-menu-disable\': !login}" ui-sref="app.user_message.tab_inbox"><i class="icon ion-email"></i> <span translate="">MENU.MESSAGES</span> <span class="badge badge-positive" ng-if="walletData.messages.unreadCount">{{walletData.messages.unreadCount}}</span> </a><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/notifications" ng-class="{\'item-menu-disable\': !login}" ui-sref="app.view_notifications"><i class="icon ion-android-notifications"></i> <span translate="">MENU.NOTIFICATIONS</span> <span class="badge badge-positive" ng-if="walletData.notifications.unreadCount">{{walletData.notifications.unreadCount}}</span></a></div>'),e.put("plugins/rml9/templates/01-button.html",'\x3c!-- Button that call a function of the controller --\x3e\n<button class="button button-balanced button-small-padding icon ion-android-archive"\n        ng-click="onButtonClick()"\n        title="{{\'RML9.BTN_OPEN\' | translate}}">\n</button>\n\n\x3c!-- Button: Open a view, using `ui-sref` attribute\n<button class="button button-balanced button-small-padding icon ion-plus-circled"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_OPEN\' | translate}}">\n</button> --\x3e\n\n'),e.put("plugins/rml9/templates/02-view.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n      \x3c!-- iterate on each TX --\x3e\n      <div class="item" ng-repeat="item in items">\n        <h3>{{item.time|formatDate}}</h3>\n        <h4>{{item.pubkey|formatPubkey}}</h4>\n        <div class="badge">{{item.amount|formatAmount}}</div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/rml9/templates/03-button.html",'\x3c!-- Button: Open a view, using `ui-sref` attribute --\x3e\n<button class="button button-balanced button-small-padding icon ion-android-archive"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n</button>\n\n'),e.put("plugins/rml9/templates/03-view_with_button.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- buttons bar --\x3e\n      <div class="center padding">\n        <div class="buttons">\n          <button class="button button-balanced icon-left icon ion-archive"\n                  ng-click="onExportButtonClick()">{{\'RML9.BTN_EXPORT\' | translate}}\n          </button>\n        </div>\n      </div>\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- the balance --\x3e\n      <div class="item">\n        {{\'RML9.VIEW.BALANCE\'|translate}}\n        <div class="badge badge-calm">\n          {{balance|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n      \x3c!-- iterate on each TX --\x3e\n      <div class="item item-text-wrap" ng-repeat="item in items">\n\n        <h3>\n          {{item.time|formatDate}}\n          <span ng-if="item.comment" class="gray"> | {{item.comment}}</span>\n        </h3>\n\n        <h4 ng-if="item.uid" class="positive"><i class="icon ion-person"></i> {{item.name||item.uid}}</h4>\n        <h4 ng-if="!item.uid" class="gray"><i class="icon ion-key"></i> {{item.pubkey|formatPubkey}}</h4>\n\n        <div class="badge"\n             ng-class="{\'badge-balanced\': item.amount > 0}">\n          {{item.amount|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/rml9/templates/04-view_chart.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- buttons bar --\x3e\n      <div class="center padding">\n        <div class="buttons">\n          <button class="button button-balanced icon-left icon ion-archive"\n                  ng-click="onExportButtonClick()">{{\'RML9.BTN_EXPORT\' | translate}}\n          </button>\n        </div>\n      </div>\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- the balance --\x3e\n      <div class="item">\n        {{\'RML9.VIEW.BALANCE\'|translate}}\n        <div class="badge badge-calm">\n          {{balance|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n\n      <div class="row">\n        <div class="col col-75">\n          \x3c!-- iterate on each TX --\x3e\n          <div class="item item-text-wrap" ng-repeat="item in items">\n\n            <h3>\n              {{item.time|formatDate}}\n              <span ng-if="item.comment" class="gray"> | {{item.comment}}</span>\n            </h3>\n\n            <h4 ng-if="item.uid" class="positive"><i class="icon ion-person"></i> {{item.name||item.uid}}</h4>\n            <h4 ng-if="!item.uid" class="gray"><i class="icon ion-key"></i> {{item.pubkey|formatPubkey}}</h4>\n\n            <div class="badge"\n                 ng-class="{\'badge-balanced\': item.amount > 0}">\n              {{item.amount|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n            </div>\n          </div>\n        </div>\n\n        <div class="col col-25">\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.INPUT_CHART_TITLE</p>\n          <canvas id="chart-received-pie" class="chart-pie"\n                  chart-data="inputChart.data"\n                  chart-labels="inputChart.labels"\n                  chart-colors="inputChart.colors">\n          </canvas>\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.OUTPUT_CHART_TITLE</p>\n          <canvas id="chart-sent-pie" class="chart-pie"\n                  chart-data="outputChart.data"\n                  chart-labels="outputChart.labels"\n                  chart-colors="outputChart.colors">\n          </canvas>\n        </div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/rml9/templates/06-button.html",'\x3c!-- [NEW] Display only if plugin is enable --\x3e\n\n  \x3c!-- Button: call a method from the state controller --\x3e\n  <button ng-if="enable" class="button button-balanced button-small-padding icon ion-android-archive"\n          ng-click="onButtonClick()"\n          title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n  </button>\n\n\n'),e.put("plugins/rml9/templates/06-settings_item.html",'\n<div class="item item-toggle dark">\n  <div class="input-label" translate>RML9.SETTINGS.ENABLE_TOGGLE</div>\n  <label class="toggle toggle-royal">\n    <input type="checkbox" ng-model="formData.plugins.rml9.enable" >\n    <div class="track">\n      <div class="handle"></div>\n    </div>\n  </label>\n</div>\n'),e.put("plugins/rml9/templates/07-button.html",'\x3c!-- Button: Open a view, using `ui-sref` attribute --\x3e\n<button class="button button-balanced button-small-padding icon ion-android-archive"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n</button>\n\n'),e.put("plugins/rml9/templates/07-view.html",'<leaflet id="map-geojson" center="map.center" geojson="map.geojson"></leaflet>\n'),e.put("plugins/rml9/templates/final-button.html",'\x3c!-- Button: Open a view, using `ui-sref` attribute --\x3e\n<button ng-if class="button button-balanced button-small-padding icon ion-android-archive"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n</button>\n\n'),e.put("plugins/rml9/templates/final-view.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- buttons bar --\x3e\n      <div class="center padding">\n        <div class="buttons">\n          <button class="button button-balanced icon-left icon ion-archive"\n                  ng-click="onExportButtonClick()">{{\'RML9.BTN_EXPORT\' | translate}}\n          </button>\n        </div>\n      </div>\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- the balance --\x3e\n      <div class="item">\n        {{\'RML9.VIEW.BALANCE\'|translate}}\n        <div class="badge badge-calm">\n          {{balance|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n      \x3c!-- iterate on each TX --\x3e\n      <div class="row">\n        <div class="col col-75">\n          <div class="item item-text-wrap" ng-repeat="item in items">\n\n            <h3>\n              {{item.time|formatDate}}\n              <span ng-if="item.comment" class="gray"> | {{item.comment}}</span>\n            </h3>\n\n            <h4 ng-if="item.uid" class="positive"><i class="icon ion-person"></i> {{item.name||item.uid}}</h4>\n            <h4 ng-if="!item.uid" class="gray"><i class="icon ion-key"></i> {{item.pubkey|formatPubkey}}</h4>\n\n            <div class="badge"\n                 ng-class="{\'badge-balanced\': item.amount > 0}">\n              {{item.amount|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n            </div>\n          </div>\n\n        </div>\n\n        <div class="col col-25">\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.INPUT_CHART_TITLE</p>\n          <canvas id="chart-received-pie" class="chart-pie"\n                  chart-data="inputChart.data"\n                  chart-labels="inputChart.labels">\n          </canvas>\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.OUTPUT_CHART_TITLE</p>\n          <canvas id="chart-sent-pie" class="chart-pie"\n                  chart-data="outputChart.data"\n                  chart-labels="outputChart.labels">\n          </canvas>\n        </div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/graph/templates/blockchain/graph_block_issuers.html",'\n    <div class="row responsive-lg">\n\n      \x3c!-- bar --\x3e\n      <div class="col col-75">\n        <canvas id="bar" class="chart-bar"\n                height="{{height}}" width="{{width}}"\n                chart-data="data"\n                chart-labels="labels"\n                chart-colors="colors"\n                chart-options="barOptions"\n                chart-click="onChartClick">\n        </canvas>\n      </div>\n\n      \x3c!-- pie --\x3e\n      <div class="col col-25 padding-top">\n        <canvas id="blocksByIssuer-pie" class="chart-pie"\n                chart-data="data"\n                chart-labels="labels"\n                chart-colors="colors"\n                chart-click="onChartClick">\n        </canvas>\n\n        <div class="gray padding-top text-center">\n          <small ng-bind-html="\'GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_HELP\'| translate:{issuerCount: data.length, blockCount: blockCount }"></small>\n        </div>\n      </div>\n    </div>\n'),e.put("plugins/graph/templates/blockchain/graph_tx_count.html",'\n    \x3c!-- button bar --\x3e\n    <div class="button-bar-inline "\n         style="top: 33px; margin-top:-33px; position: relative;">\n      <button\n        class="button button-stable button-clear no-padding-xs pull-right"\n        ng-click="showActionsPopover($event)">\n        <i class="icon ion-navicon-round"></i>\n      </button>\n    </div>\n\n    <div class="padding-left padding-right">\n      <canvas id="tx-line" class="chart-bar"\n              height="{{height}}" width="{{width}}"\n              chart-data="data"\n              chart-dataset-override="datasetOverride"\n              chart-colors="colors"\n              chart-options="options"\n              chart-labels="labels"\n              chart-click="onChartClick">\n      </canvas>\n    </div>\n\n    <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/blockchain/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}{{id}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="no-padding">\n\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <div class="list" ng-if="!loading">\n\n\n      \x3c!-- TX count --\x3e\n      <ng-controller ng-controller="GpBlockchainTxCountCtrl">\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        <div class="item item-divider" ng-if="!loading" >\n          {{\'GRAPH.BLOCKCHAIN.TX_DIVIDER\'|translate}}\n          <ion-spinner ng-if="loadingRange" class="ion-spinner-small" icon="android"></ion-spinner>\n        </div>\n\n        <div class="item no-padding-xs no-padding-sm"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n             ng-init="setSize(350, 1000)">\n        </div>\n      </ng-controller>\n\n\n      \x3c!-- Blocks issuer --\x3e\n      <ng-controller ng-controller="GpBlockchainIssuersCtrl">\n\n        <div class="item item-divider" ng-if="!loading" translate>GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_DIVIDER</div>\n\n        <div class="item no-padding-xs no-padding-sm"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n             ng-init="setSize(300, 750)">\n        </div>\n\n      </ng-controller>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/common/graph_range_bar.html",'\n  <div class="range range-positive no-padding-left no-padding-right">\n    <a\n      class="button button-stable button-clear no-padding pull-left"\n      ng-click="goPreviousRange($event)">\n      <i class="icon ion-chevron-left"></i>\n    </a>\n    <input type="range"\n           ng-model="formData.timePct"\n           name="timePct"\n           min="0" max="100"\n           value="{{formData.timePct}}"\n           ng-change="onRangeChanged();"\n           ng-model-options="{ debounce: 250 }">\n    <a\n      class="button button-stable button-clear no-padding pull-right"\n      ng-click="goNextRange($event)">\n      <i class="icon ion-chevron-right"></i>\n    </a>\n  </div>\n'),e.put("plugins/graph/templates/common/popover_range_actions.html",'<ion-popover-view class="has-header popover-graph-currency">\n  <ion-header-bar>\n    <h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1>\n  </ion-header-bar>\n  <ion-content scroll="false">\n    <div class="list item-text-wrap">\n\n      \x3c!-- scale --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="toggleScale()">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.scale==\'logarithmic\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.LOGARITHMIC_SCALE\' | translate"></span>\n      </a>\n\n      \x3c!-- duration divider --\x3e\n      <div class="item item-divider">\n        {{\'GRAPH.COMMON.RANGE_DURATION_DIVIDER\'|translate}}\n      </div>\n\n      \x3c!-- duration: hour --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="setRangeDuration(\'hour\')">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'hour\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.HOUR\' | translate"></span>\n      </a>\n\n      \x3c!-- duration: day --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="setRangeDuration(\'day\')">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'day\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.DAY\' | translate"></span>\n      </a>\n\n      \x3c!-- duration: month --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="setRangeDuration(\'month\')">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'month\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.MONTH\' | translate"></span>\n      </a>\n\n    </div>\n  </ion-content>\n</ion-popover-view>\n'),e.put("plugins/graph/templates/account/graph_balance.html",'\n    \x3c!-- button bar --\x3e\n    <div class="button-bar-inline "\n         style="top: 33px; margin-top:-33px; position: relative;">\n      <button\n        class="button button-stable button-clear no-padding-xs pull-right"\n        ng-click="showActionsPopover($event)">\n        <i class="icon ion-navicon-round"></i>\n      </button>\n    </div>\n\n    <div class="padding-left padding-right">\n      <canvas id="account-balance" class="chart-bar"\n              height="{{height}}" width="{{width}}"\n              chart-data="data"\n              chart-dataset-override="datasetOverride"\n              chart-colors="colors"\n              chart-options="options"\n              chart-labels="labels"\n              chart-click="onChartClick">\n      </canvas>\n    </div>\n\n    <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/account/graph_certifications.html",'\n    <div class="padding-left padding-right">\n      <canvas id="account-certifications" class="chart-bar"\n              height="{{height}}" width="{{width}}"\n              chart-data="data"\n              chart-dataset-override="datasetOverride"\n              chart-colors="colors"\n              chart-options="options"\n              chart-labels="labels"\n              chart-click="onChartClick">\n      </canvas>\n    </div>\n'),e.put("plugins/graph/templates/account/graph_sum_tx.html",'<div class="row responsive-sm" ng-if="!loading">\n\n  <div class="col col-10 hidden-xs hidden-sm">&nbsp;</div>\n\n  <div class="col text-center">\n\n    \x3c!-- TX input chart --\x3e\n    <p class="gray padding text-wrap"\n       ng-if="inputChart.data.length"\n       translate>GRAPH.ACCOUNT.INPUT_CHART_TITLE</p>\n    <canvas id="chart-received-pie" class="chart-pie"\n            chart-data="inputChart.data"\n            chart-labels="inputChart.labels"\n            chart-colors="inputChart.colors"\n            chart-click="onInputChartClick">\n    </canvas>\n\n  </div>\n\n  <div class="col col-10 hidden-xs hidden-sm">&nbsp;</div>\n\n  <div class="col text-center">\n\n    \x3c!-- TX output chart --\x3e\n    <p class="gray padding text-wrap"\n       ng-if="outputChart.data.length"\n       translate>GRAPH.ACCOUNT.OUTPUT_CHART_TITLE</p>\n    <canvas id="chart-sent-pie" class="chart-pie"\n            chart-data="outputChart.data"\n            chart-labels="outputChart.labels"\n            chart-colors="outputChart.colors"\n            chart-click="onOutputChartClick">\n    </canvas>\n\n  </div>\n\n  <div class="col col-10 hidden-xs hidden-sm">&nbsp;</div>\n\n</div>\n'),e.put("plugins/graph/templates/account/view_identity_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if="extensionPoint === \'buttons\'">\n\n  <button class="button button-stable button-small-padding icon ion-stats-bars"\n          ng-click="showIdentityStats()"\n          title="{{\'GRAPH.ACCOUNT.BTN_SHOW_STATS\' | translate}}">\n  </button>\n\n</ng-if>\n'),e.put("plugins/graph/templates/account/view_identity_tx_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if="extensionPoint === \'buttons\'">\n\n  <button class="button button-stable button-small-padding icon ion-stats-bars"\n          ng-click="showIdentityStats()"\n          title="{{\'GRAPH.ACCOUNT.BTN_SHOW_STATS\' | translate}}">\n  </button>\n\n</ng-if>\n'),e.put("plugins/graph/templates/account/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.ACCOUNT.TITLE\' | translate}}{{id}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="no-padding">\n\n\n\n    <div class="list" >\n\n      \x3c!--  - - - - Balance - - - - --\x3e\n      <ng-controller ng-controller="GpAccountBalanceCtrl">\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        <div class="item item-divider" ng-if="!loading" >\n          {{\'GRAPH.ACCOUNT.BALANCE_DIVIDER\'|translate}}\n          <ion-spinner ng-if="loadingRange" class="ion-spinner-small" icon="android"></ion-spinner>\n        </div>\n\n        <div class="item no-padding-xs"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/account/graph_balance.html\'"\n             ng-init="setSize(350, 1000)">\n        </div>\n      </ng-controller>\n\n    </div>\n\n    <div class="item no-padding-xs"\n         ng-include="\'plugins/graph/templates/account/graph_sum_tx.html\'"\n         ng-controller="GpAccountSumTxCtrl">\n    </div>\n\n    \x3c!--  - - - - WOT - - - -\n    <div class="item item-divider" translate>\n      GRAPH.ACCOUNT.WOT_DIVIDER\n    </div>\n\n    <div class="item no-padding-xs"\n         ng-include="\'plugins/graph/templates/account/graph_certifications.html\'"\n         ng-controller="GpAccountCertificationCtrl"\n         ng-init="setSize(350, 1000)">\n    </div>--\x3e\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/account/view_wallet_tx_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if="extensionPoint === \'buttons\'">\n\n  <button class="button button-stable button-small-padding icon ion-stats-bars"\n          ng-click="showWalletStats()"\n          title="{{\'GRAPH.ACCOUNT.BTN_SHOW_STATS\' | translate}}">\n  </button>\n\n</ng-if>\n'),e.put("plugins/graph/templates/docstats/graph.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs no-padding-sm pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="{{::chartIdPrefix}}{{chart.id}}"\n          class="chart-line"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="chart.data"\n          chart-labels="labels"\n          chart-dataset-override="chart.datasetOverride"\n          chart-options="chart.options"\n          chart-click="onChartClick">\n  </canvas>\n\n  <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/docstats/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.DOC_STATS.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="padding" >\n\n    <div class="list" >\n\n      \x3c!-- Doc stat --\x3e\n      <div class="center padding" ng-if="loading">\n        <ion-spinner icon="android"></ion-spinner>\n      </div>\n\n      <div class="item no-padding-xs no-padding-sm" ng-if="!loading"\n           ng-repeat="chart in charts"\n           ng-include="\'plugins/graph/templates/docstats/graph.html\'"\n           ng-init="setSize(250, 1000)">\n      </div>\n\n    </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/currency/graph_du.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs no-padding-sm pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="monetaryMass-bar" class="chart-bar"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="data"\n          chart-labels="labels"\n          chart-colors="colors"\n          chart-dataset-override="datasetOverride"\n          chart-options="options"\n          chart-click="showBlock">\n  </canvas>\n'),e.put("plugins/graph/templates/currency/graph_members_count.html",'  <canvas id="membersCount-bar" class="chart-line"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="data"\n          chart-labels="labels"\n          chart-colors="colors"\n          chart-options="options"\n          chart-dataset-override="datasetOverride"\n          chart-click="onChartClick">\n  </canvas>\n'),e.put("plugins/graph/templates/currency/graph_monetary_mass.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="monetaryMass-bar"\n          class="chart-bar"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="data"\n          chart-labels="labels"\n          chart-colors="colors"\n          chart-dataset-override="datasetOverride"\n          chart-options="options"\n          chart-click="onChartClick">\n  </canvas>\n'),e.put("plugins/graph/templates/currency/popover_monetary_mass_actions.html",'<ion-popover-view class="fit has-header">\n  <ion-header-bar>\n    <h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1>\n  </ion-header-bar>\n  <ion-content scroll="false">\n    <div class="list item-text-wrap">\n\n      <a class="item item-icon-left ink"\n         ng-click="toggleScale()">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.scale==\'logarithmic\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.LOGARITHMIC_SCALE\' | translate"></span>\n      </a>\n\n    </div>\n  </ion-content>\n</ion-popover-view>\n'),e.put("plugins/graph/templates/currency/tab_blocks_extend.html",'\x3c!-- buttons --\x3e\n<ng-if ng-if="enable && extensionPoint === \'buttons\'">\n  <div class="item item-divider">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_blocks_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n'),e.put("plugins/graph/templates/currency/view_currency_extend.html",'\n\x3c!-- section actual parameters --\x3e\n<ng-if ng-if="enable && extensionPoint === \'parameters-actual\'" >\n\n  <ng-if ng-if="!smallscreen">\n    <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n         ng-include="\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n         ng-controller="GpCurrencyMonetaryMassCtrl"\n         ng-init="displayShareAxis=false;">\n    </div>\n    <div class="item buttons no-padding-top ">\n      <a class="pull-right button button-text button-small button-small-padding ink" ui-sref="app.currency_stats_lg">\n        <i class="icon ion-stats-bars"></i>\n        <span translate>GRAPH.COMMON.BTN_SHOW_DETAILED_STATS</span>\n      </a>\n    </div>\n  </ng-if>\n\n  <div class="item item-divider"\n       ng-if="smallscreen">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_parameters_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n\n\x3c!-- section Wot --\x3e\n<ng-if ng-if="enable && extensionPoint === \'wot-actual\'" >\n\n  <ng-if ng-if="!smallscreen">\n    <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n         ng-include="\'plugins/graph/templates/currency/graph_members_count.html\'"\n         ng-controller="GpCurrencyMembersCountCtrl">\n    </div>\n    <div class="item buttons no-padding-top ">\n      <a class="pull-right button button-text button-small button-small-padding ink" ui-sref="app.currency_stats_lg">\n        <i class="icon ion-stats-bars"></i>\n        <span translate>GRAPH.COMMON.BTN_SHOW_DETAILED_STATS</span>\n      </a>\n    </div>\n  </ng-if>\n\n  <div class="item item-divider"\n       ng-if="smallscreen">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_wot_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n\n\x3c!-- section Wot --\x3e\n<ng-if ng-if="enable && extensionPoint === \'network-actual\'" >\n\n  <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n       ng-if="!smallscreen"\n       ng-include="\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n       ng-controller="GpBlockchainIssuersCtrl">\n  </div>\n\n  <div class="item item-divider"\n       ng-if="smallscreen">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_network_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n\n'),e.put("plugins/graph/templates/currency/view_stats_lg.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="padding" >\n\n\n\n    <div class="list" >\n\n      \x3c!-- Monetary mass --\x3e\n      <ng-controller ng-controller="GpCurrencyMonetaryMassCtrl" >\n\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        <div class="item no-padding-xs" ng-if="!loading"\n             ng-include="\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n             ng-init="setSize(250, 1000)">\n        </div>\n\n        <div ng-if="!loading"\n             class="item item-toggle dark no-border text-right">\n          <span class="" translate>COMMON.BTN_RELATIVE_UNIT</span>\n          <label class="toggle toggle-royal" id="helptip-currency-change-unit">\n            <input type="checkbox" ng-model="formData.useRelative">\n            <div class="track">\n              <div class="handle"></div>\n            </div>\n          </label>\n        </div>\n      </ng-controller>\n\n      \x3c!-- DU --\x3e\n      <ng-controller ng-controller="GpCurrencyDUCtrl" >\n        <div class="item no-padding-xs"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/currency/graph_du.html\'"\n             ng-init="setSize(250, 1000)">\n        </div>\n      </ng-controller>\n\n      \x3c!-- Member count  --\x3e\n      <ng-controller ng-controller="GpCurrencyMembersCountCtrl" >\n      <div class="item no-padding-xs"\n           ng-if="!loading"\n           ng-include="\'plugins/graph/templates/currency/graph_members_count.html\'"\n           ng-init="setSize(250, 1000)">\n      </div>\n\n\n    </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/currency/view_wot_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n\n  <ion-content scroll="true" >\n\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <ng-include\n      ng-if="!loading"\n      src="\'plugins/graph/templates/currency/graph_members_count.html\'" ></ng-include>\n  </ion-content>\n  </ion-view>\n'),e.put("plugins/graph/templates/network/view_es_network_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if=":state:enable && extensionPoint === \'documents-buttons\'">\n  <a class="button button-text button-small ink"\n     ui-sref="app.doc_stats_lg" >\n    <i class="icon ion-stats-bars"></i>\n    <span>{{\'NETWORK.VIEW.BTN_GRAPH\'|translate}}</span>\n  </a>\n</ng-if>\n'),e.put("plugins/graph/templates/network/view_es_peer_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if="enable && extensionPoint === \'general\'">\n\n  <a class="item item-icon-left item-icon-right item-text-wrap ink"\n     ng-if="isReachable"\n     ui-sref="app.doc_stats_lg(node)">\n    <i class="icon ion-stats-bars"></i>\n    <span translate>GRAPH.DOC_STATS.TITLE</span>\n    <i class="gray icon ion-ios-arrow-right"></i>\n  </a>\n\n  <a class="item item-icon-left item-icon-right item-text-wrap ink"\n     ng-if="isReachable"\n     ui-sref="app.doc_synchro_lg(node)">\n    <i class="icon ion-stats-bars"></i>\n    <span translate>GRAPH.SYNCHRO.TITLE</span>\n    <i class="gray icon ion-ios-arrow-right"></i>\n  </a>\n</ng-if>\n\n'),e.put("plugins/graph/templates/network/view_network_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if=":state:enable && extensionPoint === \'blockchain-buttons\'">\n  <a class="button button-text button-small ink"\n     ui-sref="app.blockchain_stats" >\n    <i class="icon ion-stats-bars"></i>\n    <span>{{\'NETWORK.VIEW.BTN_GRAPH\'|translate}}</span>\n  </a>\n</ng-if>\n'),e.put("plugins/graph/templates/network/view_peer_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if="enable && extensionPoint === \'general\'">\n\n  <a class="item item-icon-left item-icon-right item-text-wrap ink"\n    ui-sref="app.view_peer_stats({pubkey: node.pubkey})">\n    <i class="icon ion-stats-bars"></i>\n    <span translate>GRAPH.PEER.VIEW.BLOCK_COUNT_LABEL</span>\n    <span class="badge"\n          ng-if="!loading"\n          ng-class="{\'badge-stable\': blockCount > 0, \'badge-assertive\': !blockCount}">\n      {{!blockCount ? \'GRAPH.PEER.VIEW.NO_BLOCK\' : \'GRAPH.PEER.VIEW.BLOCK_COUNT\' | translate:{count: blockCount} }}\n    </span>\n    <ion-spinner class="badge" icon="android" ng-if="loading"></ion-spinner>\n    <i class="gray icon ion-ios-arrow-right"></i>\n  </a>\n</ng-if>\n\n'),e.put("plugins/graph/templates/network/view_peer_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}{{id}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="no-padding">\n\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <div class="list" ng-if="!loading">\n\n      \x3c!--  - - - - TX divider - - - - --\x3e\n      <div class="item item-divider hidden-xs hidden-sm" translate>\n        GRAPH.BLOCKCHAIN.TX_DIVIDER\n      </div>\n\n      <div class="item no-padding-xs"\n           ng-include="\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n           ng-init="setSize(350, 1000)">\n      </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/synchro/graph.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="synchro-chart-{{chart.id}}"\n          class="chart-bar"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="chart.data"\n          chart-labels="labels"\n          chart-dataset-override="chart.datasetOverride"\n          chart-options="chart.options">\n  </canvas>\n\n  <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/synchro/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.SYNCHRO.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="padding" >\n\n    <div class="list" >\n\n      <div class="center padding" ng-if="loading">\n        <ion-spinner icon="android"></ion-spinner>\n      </div>\n\n      <div class="item no-padding-xs" ng-if="!loading"\n           ng-repeat="chart in charts"\n           ng-include="\'plugins/graph/templates/synchro/graph.html\'"\n           ng-init="setSize(250, 1000)">\n      </div>\n\n    </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/es/templates/blockchain/items_blocks.html",'<div class="padding gray" ng-if=":rebind:!search.loading && !search.results.length" translate="">COMMON.SEARCH_NO_RESULT</div><ng-if ng-if=":rebind:!smallscreen"><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="!block.empty ? \'templates/blockchain/item_block_lg.html\' : \'templates/blockchain/item_block_empty_lg.html\'"></ng-repeat></ng-if><ng-if ng-if=":rebind:smallscreen"><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="\'templates/blockchain/item_block.html\'"></ng-repeat></ng-if>'),e.put("plugins/es/templates/blockchain/lookup.html",'<ion-view><ion-nav-title><span translate>BLOCKCHAIN.LOOKUP.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-navicon visible-xs visible-sm" ng-click="toggleCompactMode()"><b class="icon-secondary" ng-class="{\'ion-arrow-down-b\': !compactMode, \'ion-arrow-up-b\': compactMode}" style="top: -12px; left: 11px; font-size: 10px"></b> <b class="icon-secondary" ng-class="{\'ion-arrow-up-b\': !compactMode,\'ion-arrow-down-b\': compactMode}" style="top: 12px; left: 11px; font-size: 10px"></b></button> <button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'plugins/es/templates/blockchain/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("plugins/es/templates/blockchain/lookup_form.html",'<div class="lookupForm"><div class="item no-padding"><div class="button button-small button-text button-stable button-icon-event padding no-padding-right ink" ng-repeat="filter in search.filters" ng-if="filter"><span ng-bind-html="\'BLOCKCHAIN.LOOKUP.TX_SEARCH_FILTER.\'+filter.type|translate:filter"></span> <i class="icon ion-close" ng-click="itemRemove($index)"></i></div><label class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'BLOCKCHAIN.LOOKUP.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearchText()"><div class="helptip-anchor-center"><a id="helptip-blockchain-search-text"></a></div></label></div><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="search.type==\'last\'" translate="">BLOCKCHAIN.LOOKUP.LAST_BLOCKS</h4><h4 ng-if="search.type==\'text\'">{{\'COMMON.RESULTS_LIST\'|translate}}</h4><h5 class="dark" ng-if="!search.loading && search.total"><span translate="COMMON.RESULTS_COUNT" translate-values="{count: search.total}"></span> <small class="gray" ng-if=":rebind:search.took && expertMode">- {{:rebind:\'COMMON.EXECUTION_TIME\'|translate: {duration: search.took} }} </small><small class="gray" ng-if=":rebind:expertMode && search.filters && search.filters.length">- <a ng-click="toggleShowQuery()" ng-if="!showQuery">{{\'DOCUMENT.LOOKUP.SHOW_QUERY\'|translate }} <i class="icon ion-arrow-down-b gray"></i> </a><a ng-click="toggleShowQuery()" ng-if="showQuery">{{\'DOCUMENT.LOOKUP.HIDE_QUERY\'|translate }} <i class="icon ion-arrow-up-b gray"></i></a></small></h5><h5 class="gray" ng-if="search.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner><span translate="">COMMON.SEARCHING</span><br></h5></div></div><div class="item no-border no-padding" ng-if=":rebind:search.filters && search.filters.length && expertMode"><small class="no-padding no-margin" ng-if="showQuery"><span class="gray text-wrap dark">{{:rebind:search.query}}</span></small></div><ion-list class="list list-blocks" ng-class="::motion.ionListClass"><ng-include src="\'plugins/es/templates/blockchain/items_blocks.html\'"></ng-include></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll></div>'),e.put("plugins/es/templates/blockchain/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>BLOCKCHAIN.LOOKUP.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a ng-if="enableFilter" class="item item-icon-left item-icon-right ink" ng-click="doSearchLast()"><i class="icon ion-clock"></i> {{\'BLOCKCHAIN.LOOKUP.BTN_LAST\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'last\'"></i></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/currency/tab_blocks_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'nav-buttons\'"><button class="button button-icon button-clear icon ion-android-search visible-xs visible-sm" ui-sref="app.blockchain_search"></button></ng-if>'),e.put("plugins/es/templates/common/edit_pictures.html",'<div class="gallery" ng-controller="ESPicturesEditCtrl as ctrl"><div ng-repeat="picture in pictures" class="item card card-gallery stable-bg" ng-class="{\'in done\': picture.isnew}"><div><h2 ng-if="picture.title">{{picture.title}}</h2><img ng-src="{{picture.src}}"></div><div class="item done in tabs tabs-secondary tabs-icon-left"><a class="tab-item stable-bg assertive" ng-click="removePicture($index)" title="{{\'COMMON.BTN_PICTURE_DELETE\' | translate}}"><i class="icon ion-trash-a"></i>{{\'COMMON.BTN_PICTURE_DELETE\'|translate}}</a> <a class="tab-item stable-bg dark" ng-click="rotatePicture($index)" title="{{\'COMMON.BTN_PICTURE_ROTATE\' | translate}}"><i class="icon ion-forward"></i>{{\'COMMON.BTN_PICTURE_ROTATE\'|translate}}</a> <a class="tab-item stable-bg" ng-click="favoritePicture($index)" ng-class="{\'gray\': $index !== 0, \'positive\': $index === 0}" title="{{\'COMMON.BTN_PICTURE_FAVORISE\' | translate}}"><i class="icon ion-star"></i>{{\'COMMON.BTN_PICTURE_FAVORISE\'|translate}}</a></div></div><div class="item card card-gallery card-gallery-new text-center padding ink" ng-click="selectNewPicture(\'#pictureFile\')"><i class="ion-image stable" style="font-size:150px"></i> <b class="ion-plus gray" style="font-size:80px; position:absolute; top:25px; right: 5px"></b><p translate>COMMON.BTN_ADD_PICTURE</p></div><input type="file" id="pictureFile" accept="image/*" onchange="angular.element(this).scope().fileChanged(event)" style="visibility:hidden; position:absolute"></div>'),e.put("plugins/es/templates/common/edit_position.html",'<div class="item item-divider" translate>LOCATION.LOCATION_DIVIDER</div><ion-item class="item-input item-floating-label item-button-right"><span class="input-label">{{\'LOCATION.ADDRESS\' | translate}}</span><textarea placeholder="{{\'LOCATION.ADDRESS_HELP\' | translate}}" ng-model="formData.address" ng-model-options="{ debounce: 350 }" rows="4" cols="10">\n              </textarea></ion-item><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.geoPoint.$invalid}"><span class="input-label" translate>LOCATION.CITY</span> <input type="text" placeholder="{{\'LOCATION.CITY_HELP\'|translate}}" ng-model="formData.city" ng-model-options="{ updateOn: \'blur\' }" required-if="formData.address" ng-change="onCityChanged()"></div><input type="hidden" name="geoPoint" ng-model="formData.geoPoint" required-if="formPosition.enable" geo-point><div class="form-errors" ng-show="form.$submitted && form.city.$error" ng-messages="form.city.$error"><div class="form-error" ng-message="required"><span translate="LOCATION.ERROR.CITY_REQUIRED_IF_STREET"></span></div></div><div class="form-errors" ng-show="form.$submitted && form.geoPoint.$error" ng-messages="form.geoPoint.$error"><div class="form-error" ng-message="required"><span translate="LOCATION.ERROR.REQUIRED_FOR_LOCATION" ng-if="!formData.city"></span> <span translate="LOCATION.ERROR.INVALID_FOR_LOCATION" ng-if="formData.city"></span></div><div class="form-error" ng-message="geoPoint"><span translate="LOCATION.ERROR.REQUIRED_FOR_LOCATION" ng-if="!formData.city"></span> <span translate="LOCATION.ERROR.INVALID_FOR_LOCATION" ng-if="formData.city"></span></div></div><div class="item row item-text-wrap no-padding"><div class="col no-padding"><ion-checkbox ng-model="formPosition.enable" ng-change="onUseGeopointChanged()" class="item item-border-large done in"><div class="item-content"><span translate>LOCATION.USE_GEO_POINT</span><h4 class="gray" ng-if="formPosition.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner>{{\'LOCATION.LOADING_LOCATION\'|translate}}</h4></div></ion-checkbox></div><div class="col col-10 no-padding" style="min-width: 60px"><div class="row text-center"><a class="button button-stable button-small-padding" title="{{\'LOCATION.BTN_GEOLOC_ADDRESS\'|translate}}" ng-disabled="!formPosition.enable" ng-click="openSearchLocationModal()"><i class="icon ion-home" style="left: 15px"></i> <b class="icon-secondary ion-search" style="top: -9px; left:32px; font-size: 18px"></b></a></div></div></div><cs-extension-point name="after-position"></cs-extension-point>'),e.put("plugins/es/templates/common/edit_socials.html",'<ion-list class="no-padding"><div class="item item-divider"><span>{{\'PROFILE.SOCIAL_NETWORKS_DIVIDER\' | translate}} </span><a class="badge button button-text button-small button-small-padding" ng-class="{\'button-text-positive\': socialData.reorder}" ng-if="formData.socials && formData.socials.length &gt; 1" ng-click="socialData.reorder=!socialData.reorder"><span translate="">PROFILE.BTN_REORDER</span></a></div></ion-list><ion-list show-reorder="socialData.reorder"><ion-item class="item-remove-animate item-icon-left" type="no-padding item-text-wrap" ng-if="formData.socials && formData.socials.length" ng-repeat="social in formData.socials | filter:filterFn track by social.url" id="social-{{social.url|formatSlug}}"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\', \'ion-iphone\': social.type == \'phone\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}} <i class="ion-locked" ng-if="social.recipient"></i></p><h2><a href="{{social.url}}" ng-if="social.type != \'email\' && social.type != \'phone\'" target="_blank">{{social.url}}</a> <a href="mailto:{{social.url}}" ng-if="social.type == \'email\'">{{social.url}}</a> <a href="tel:{{social.url}}" ng-if="social.type == \'phone\'">{{social.url}}</a></h2><ion-option-button class="button-assertive" ng-if="!social.recipient" ng-click="formData.socials.splice($index, 1); dirty = true;">{{\'COMMON.BTN_DELETE\'|translate}}</ion-option-button><ion-option-button class="button-info" ng-if="!social.recipient" ng-click="editSocialNetwork($index)">{{\'COMMON.BTN_EDIT\'|translate}}</ion-option-button><ion-reorder-button class="ion-drag" on-reorder="reorderSocialNetwork(social, $fromIndex, $toIndex)"></ion-reorder-button></ion-item></ion-list><ion-list class="no-padding"><div class="item item-complex item-input-inset"><label class="item-input-wrapper"><input type="text" style="width:100%" placeholder="{{\'PROFILE.SOCIAL_HELP\'|translate}}" id="socialUrl" on-return="addSocialNetwork($event);" ng-model="socialData.url"></label><button class="button button-small hidden-xs" type="button" ng-click="addSocialNetwork($event)">{{\'COMMON.BTN_ADD\'|translate}}</button> <button class="button button-small button-icon icon ion-android-add visible-xs" type="button" ng-click="addSocialNetwork($event)"></button></div></ion-list>'),e.put("plugins/es/templates/common/item_comment.html",'<ng-init ng-init="level = level + 1"><a name="{{::comment.id|formatHash}}"></a><ion-item id="comment-{{::comment.id|formatHash}}" class="card card-comment card-avatar stable-900-bg item-text-wrap no-padding" ng-class="::{\'in done\': comment.isnew}"><div class="card-header padding-left" ng-if="comment.parent && !hideParent"><h5 class="gray underline"><ng-if ng-if="!comment.parent.issuer">{{\'COMMENTS.REPLY_TO_DELETED_COMMENT\'|translate}}</ng-if><ng-if ng-if="comment.parent.issuer"><a ng-click="toggleExpandedParent(comment, $index)">{{\'COMMENTS.REPLY_TO_LINK\'|translate}}<ng-if ng-if="::comment.parent.uid">{{::comment.parent.name||comment.parent.uid}}</ng-if><ng-if ng-if="::!comment.parent.uid"><i class="ion-key"></i> {{::comment.parent.name|| (comment.parent.issuer|formatPubkey) }}</ng-if></a><i ng-class="{\'ion-arrow-down-b\': !comment.expandedParent[$index], \'ion-arrow-up-b\': comment.expandedParent[$index]}"></i></ng-if></h5><div class="padding-left" ng-if="comment.expandedParent[$index]"><div class="card card-avatar card-avatar-small stable-bg item-text-wrap no-padding in done"><ng-include ng-init="comment = comment.parent" src="\'plugins/es/templates/common/item_comment_content.html\'"></ng-include></div></div></div><ng-include src="\'plugins/es/templates/common/item_comment_content.html\'"></ng-include><div class="card-footer gray"><small class="underline"><a ng-click="share($event, comment, $index)">{{comment.creationTime | formatFromNow}}</a><ng-if ng-if="comment.replyCount">| <a class="dark" ng-click="toggleExpandedReplies(comment, $index)">{{\'COMMENTS.REPLY_COUNT\'|translate:comment}}</a> <i ng-class="{\'ion-arrow-down-b\': !comment.showReplies, \'ion-arrow-up-b\': comment.showReplies}"></i></ng-if></small><div class="pull-right"><a class="ion-android-share-alt" ng-click="share($event, comment)"></a> <a class="ion-edit" ng-if="isUserPubkey(comment.issuer)" ng-click="edit(comment)"></a> <a class="ion-trash-a" ng-if="isUserPubkey(comment.issuer)" ng-click="remove(comment, $index)"></a> <a class="ion-reply" ng-click="reply(comment)">{{::\'COMMENTS.REPLY\'|translate}}</a></div></div></ion-item><div ng-if="comment.expandedReplies[$index]" class="padding-left card-avatar-small expanded" ng-init="hideParent=true"><ng-include ng-repeat="comment in comment.replies track by comment.id" src="\'plugins/es/templates/common/item_comment.html\'"></ng-include></div></ng-init>'),e.put("plugins/es/templates/common/item_comment_content.html",'<div class="item item-avatar done in"><span class="avatar" ng-if="::!comment.avatar" ng-class="::{\'avatar-member\': comment.uid, \'avatar-wallet\': !comment.uid}"></span> <span class="avatar" ng-if="::comment.avatar" style="background-image: url({{::comment.avatar.src}})"></span> <a class="pull-left" ui-sref="app.wot_identity({pubkey:comment.issuer, uid: comment.uid})"><span class="positive" ng-if="::comment.uid">{{::comment.name||comment.uid}} </span><span ng-if="::!comment.uid" class="gray"><i class="icon ion-key gray"></i> {{::comment.name || (comment.issuer|formatPubkey)}} </span></a>&nbsp; <span trust-as-html="comment.html"></span></div>'),e.put("plugins/es/templates/common/item_location_search.html",'<div class="item no-padding"><div class="item-input"><i class="icon ion-location placeholder-icon"></i> <input type="text" placeholder="{{(options.location.help||\'LOCATION.SEARCH_HELP\')|translate}}" ng-model-options="{ debounce: 350 }" ng-model="search.location" ng-keydown="onKeydown($event)" ng-change="onLocationChanged()" ng-blur="hideDropdown()"></div></div><ul class="item no-padding list dropdown-list" ng-if="locations" scroll="true"><div ng-if="!locations.length" class="item padding assertive"><span translate>COMMON.SEARCH_NO_RESULT</span></div><a ng-repeat="res in locations" class="item item-border-large item-text-wrap ink done in {{res.selected && \'active\' || \'\'}}" ng-class="::{\'item-divider\': !res.address, \'item-icon-left\': res.address}" ng-click="::res.address ? selectLocation(res) : false"><h4 class="text-italic" ng-if="::!res.address" ng-bind-html="res.name"></h4><ng-if ng-if="::res.address"><i class="icon ion-location"></i><h3 ng-if="res.address.road">{{::res.address.road}}</h3><h3><span ng-if="res.address.postcode">{{::res.address.postcode}}</span> {{::res.address.city||res.address.village}} <span class="gray">| {{::res.address.country}}</span></h3><h5 class="gray">{{\'LOCATION.MODAL.POSITION\'|translate:res }}</h5></ng-if></a></ul>'),e.put("plugins/es/templates/common/modal_category.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title">{{ (ctrl.title || \'COMMON.CATEGORIES\') | translate}}</h1></ion-header-bar><ion-content class="categoryModal"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list"><label class="item item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" placeholder="{{\'COMMON.CATEGORY_SEARCH_HELP\'|translate}}" ng-model="ctrl.searchText" ng-model-options="{ debounce: 350 }" ng-change="ctrl.doSearch()"></label><div ng-repeat="cat in categories" class="item item-category item-text-wrap" ng-class="{\'item-divider\': !cat.parent}" ng-click="cat.parent ? closeModal(cat) : false"><h2 ng-bind-html="cat.name"></h2></div></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/common/modal_edit_avatar.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs visible-sm" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>PROFILE.MODAL_AVATAR.TITLE</h1><button class="button button-clear icon-right visible-xs" ng-click="doCrop()" ng-disabled="formData.imageCropStep == 1" ng-if="formData.imageCropStep <= 2"><span translate>COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-click="closeModal(formData.result)" ng-if="formData.imageCropStep == 3"><i class="icon ion-android-done"></i></button></ion-header-bar><ion-content class="modal-avatar padding"><div ng-show="formData.imageCropStep == 1"><p translate>PROFILE.MODAL_AVATAR.SELECT_FILE_HELP</p><div class="item card text-center padding ink" ng-click="openFileSelector()"><i class="ion-image stable" style="font-size:150px"></i> <b class="ion-plus gray" style="position:relative; font-size:80px; top:-51px; right: 19px"></b><p translate>PROFILE.MODAL_AVATAR.BTN_SELECT_FILE</p></div><input type="file" name="fileInput" accept="image/*" id="fileInput" onchange="angular.element(this).scope().fileChanged(event)" style="visibility:hidden; position:absolute"></div><div ng-show="formData.imageCropStep == 2"><p translate>PROFILE.MODAL_AVATAR.RESIZE_HELP</p><div class="item card text-center padding ink"><image-crop data-height="200" data-width="200" data-shape="circle" data-step="formData.imageCropStep" src="formData.imgSrc" data-result="formData.result" data-result-blob="formData.resultBlob" crop="formData.initCrop" padding="150" max-size="1024"></image-crop></div></div><div ng-show="formData.imageCropStep == 3"><p translate>PROFILE.MODAL_AVATAR.RESULT_HELP</p><div class="item card padding hero" style="height: 110px"><div class="content"><img class="avatar" ng-src="{{formData.result}}" style="height: 88px; width: 88px"></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="doCrop()" translate ng-disabled="formData.imageCropStep == 1" ng-if="formData.imageCropStep <= 2">COMMON.BTN_NEXT</button> <button class="button button-positive ink" ng-click="closeModal(formData.result)" translate ng-if="formData.imageCropStep == 3">COMMON.BTN_CONTINUE</button></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/common/modal_location.html",'<ion-modal-view class="modal-full-height modal-search-location"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button><h1 class="title" translate="">LOCATION.MODAL.TITLE</h1></ion-header-bar><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><div class="item item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'LOCATION.MODAL.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()"></div><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left" ng-if="!search.loading && search.results"><h4 translate="">COMMON.RESULTS_LIST</h4></div></div><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div ng-if="!search.loading && search.results && (!search.results.length || !search.results[0].address)" class="assertive padding"><span translate="">COMMON.SEARCH_NO_RESULT</span></div><ion-list ng-if="!search.loading" class="padding-top {{::motion.ionListClass}}"><div ng-repeat="res in search.results" class="item item-border-large item-text-wrap ink" ng-class="::{\'item-divider\': !res.address, \'item-icon-left item-icon-right\': res.address}" ng-click="res.address ? closeModal(res) : false"><h4 class="text-italic" ng-if="::!res.address" ng-bind-html="res.name"></h4><ng-if ng-if="::res.address"><i class="icon ion-location"></i><h2 ng-if="res.address.road">{{::res.address.road}}</h2><h3><span ng-if="res.address.postcode">{{::res.address.postcode}}</span> {{::res.address.city||res.address.village}} <span class="gray">| {{::res.address.country}}</span></h3><h5 class="gray">{{\'LOCATION.MODAL.POSITION\'|translate:res }}</h5><i class="icon ion-ios-arrow-right"></i></ng-if></div></ion-list></ion-content><ion-footer-bar class="stable-bg padding-left padding-right block" ng-if="license"><div class="pull-right copyright"><span class="dark">© </span><a class="positive" href="{{license.url}}" target="_blank">{{license.name}}</a></div></ion-footer-bar></ion-modal-view>'),e.put("plugins/es/templates/common/popover_profile_extend.html",'<button ng-if=":state:enable && auth" class="button button-positive button-small ink" ng-click="showEditUserProfile()">{{\'PROFILE.BTN_EDIT\' | translate}}</button>'),e.put("plugins/es/templates/common/view_comments.html",'<form class="comments" ng-controller="ESCommentsCtrl" ng-submit="save()"><div class="item item-divider"><i class="icon ion-chatboxes"></i> <span translate="">COMMENTS.DIVIDER</span> <span class="gray" ng-if="comments.total">({{comments.total}})</span></div><span class="item item-more-comments" ng-if="comments.hasMore"><small><a ng-click="showMore()" translate="">COMMENTS.SHOW_MORE_COMMENTS</a></small></span><div class="padding-right"><ng-repeat ng-repeat="comment in comments.result track by comment.id" ng-include="\'plugins/es/templates/common/item_comment.html\'"></ng-repeat></div><div class="visible-xs visible-sm" style="margin-bottom"><div class="block"><div class="item item-input-inset done in" ng-if="formData.parent"><div class="padding text-right pull-left" translate="">COMMENTS.REPLY_TO</div><br><div class="padding-left expanded"><div class="card card-comment stable-900-bg item-text-wrap no-padding in done"><ng-include ng-if="::formData.parent.message" ng-init="comment = formData.parent" src="\'plugins/es/templates/common/item_comment_content.html\'"></ng-include><span ng-if="::!formData.parent.message" translate="">COMMENTS.DELETED_COMMENT</span><div class="card-footer text-right gray"><div class="pull-right"><a class="ion-close" ng-click="removeParentLink()">{{::\'COMMON.BTN_CANCEL\'|translate}}</a></div></div></div></div></div><div class="item item-input-inset"><div class="item-input-wrapper"><input type="text" id="comment-form-input" style="width: 100%" placeholder="{{\'COMMENTS.COMMENT_HELP\'|translate}}" on-return="save();" ng-model="formData.message"> <button type="submit" class="button button-small button-small-padding button-icon button-dark button-icon gray"><i class="icon ion-android-send"></i></button></div></div></div></div></form>'),e.put("plugins/es/templates/common/view_pictures.html",'<div class="item gallery done in" ng-if="pictures && pictures.length>0"><div ng-repeat="picture in pictures" class="item card card-gallery"><div class="ink"><h2 ng-if="picture.title">{{::picture.title}}</h2><img ng-src="{{picture.src}}"></div></div></div>'),e.put("plugins/es/templates/document/item_document.html",'<ion-item id="doc-{{::doc.id}}" class="item item-document item-icon-left ink {{::ionItemClass}} no-padding-top no-padding-bottom" ng-click="selectDocument($event, doc)"><i class="icon ion-document stable" ng-if=":rebind:!doc.avatar"></i> <i class="avatar" ng-if=":rebind:doc.avatar" style="background-image: url(\'{{:rebind:doc.avatar.src}}\')"></i><div class="row no-padding"><div class="col"><h3 class="dark"><i class="ion-locked" ng-if=":rebind:doc.nonce"></i> {{:rebind:doc.time|formatDate}}</h3><h4 class="gray">{{:rebind:\'DOCUMENT.HASH\'|translate}} {{:rebind:doc.hash|formatHash}}</h4></div><div class="col"><h3><a ui-sref="app.wot_identity({pubkey: doc.pubkey, uid: doc.uid})"><span class="gray"><i class="ion-key"></i> {{:rebind:doc.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:doc.uid"><i class="ion-person"></i> {{:rebind:doc.name||doc.uid}}</span></a></h3></div><div class="col"><a ng-if=":rebind:login && doc.pubkey==walletData.pubkey" ng-click="remove($index)" class="gray pull-right" title="{{\'DOCUMENT.LOOKUP.BTN_REMOVE\'|translate}}"><i class="ion-trash-a"></i></a><h3 ng-if=":rebind:doc.recipient"><a ui-sref="app.wot_identity({pubkey: doc.recipient.pubkey, uid: doc.recipient.uid})"><span class="gray"><i class="ion-key"></i> {{:rebind:doc.recipient.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:doc.recipient.uid"><i class="ion-person"></i> {{:rebind:doc.recipient.name||doc.recipient.uid}}</span></a></h3><h4 class="gray" ng-if=":rebind:doc.read_signature"><i class="ion-checkmark"></i> <span translate>DOCUMENT.LOOKUP.READ</span></h4></div></div></ion-item>'),e.put("plugins/es/templates/document/item_document_comment.html",'<ion-item id="doc-{{::doc.id}}" class="item item-document item-document-comment item-icon-left ink {{::ionItemClass}} no-padding-top no-padding-bottom" ng-class="{\'compacted\': compactMode}" ng-click="selectDocument($event, doc)"><i ng-show=":rebind:!compactMode" ng-if=":rebind:!doc.avatar" class="icon ion-ios-chatbubble-outline stable"></i> <i ng-show=":rebind:!compactMode" ng-if=":rebind:doc.avatar" class="avatar" style="background-image: url(\'{{:rebind:doc.avatar.src}}\')"></i><div class="row no-padding"><div class="col"><h4><i class="ion-ios-chatbubble-outline dark"></i> <span class="gray" ng-if=":rebind:doc.name"><i class="ion-person" ng-show=":rebind:!compactMode"></i> {{:rebind:doc.name}}: </span><span class="dark"><i class="ion-quote" ng-if=":rebind:!compactMode"></i> {{:rebind:doc.message|truncText:50}}</span></h4><h4 class="gray"><i class="ion-clock"></i> {{:rebind:doc.time|formatDate}}</h4></div><div class="col"><h3><a ui-sref="app.wot_identity({pubkey: doc.pubkey, uid: doc.name})"></a></h3></div><div class="col" ng-if=":rebind:!compactMode"></div></div></ion-item>'),e.put("plugins/es/templates/document/item_document_page.html",'<ion-item id="doc-{{::doc.id}}" class="item item-document item-icon-left ink {{::ionItemClass}} no-padding-top no-padding-bottom" ng-class="{\'positive-100-bg\': doc.updated}" ng-click="selectDocument($event, doc)"><i ng-if=":rebind:doc.thumbnail" class="avatar" style="background-image: url({{:rebind:doc.thumbnail.src}})"></i> <i ng-if=":rebind:!doc.thumbnail" class="avatar icon dark cion-registry-{{doc.docType}}"></i><div class="row no-padding"><div class="col"><h3 ng-if="doc.title">{{:rebind:doc.title}}</h3><h4><span class="dark" ng-if=":rebind:doc.picturesCount > 1"><i class="ion-camera"></i> {{:rebind:doc.picturesCount}} </span><span class="dark" ng-if=":rebind:doc.city"><i class="ion-location"></i> {{:rebind:doc.city}} </span><span class="gray" ng-if=":rebind:doc.name"><i class="ion-person"></i> {{:rebind:doc.name}}</span></h4></div><div class="col col-33"><small class="gray pull-right"><i class="ion-clock"></i> {{:rebind:doc.time|formatDate}}</small></div></div></ion-item>'),e.put("plugins/es/templates/document/item_document_profile.html",'<ion-item id="doc-{{::doc.id}}" class="item item-document item-icon-left ink {{::ionItemClass}} no-padding-top no-padding-bottom" ng-class="{\'compacted\': compactMode}" ng-click="selectDocument($event, doc)"><i ng-show=":rebind:!compactMode" ng-if=":rebind:doc.avatar" class="avatar" style="background-image: url({{:rebind:doc.avatar.src}})"></i> <i ng-show=":rebind:!compactMode" ng-if=":rebind:!doc.avatar" class="icon ion-person stable"></i><div class="row no-padding"><div class="col"><h4 ng-if=":rebind:doc.title"><i class="ion-person gray"></i> <span class="dark">{{:rebind:doc.title}} </span><span class="gray">{{:rebind:\'DOCUMENT.LOOKUP.HAS_CREATE_OR_UPDATE_PROFILE\' |translate}}</span></h4><h4><span class="dark" ng-if=":rebind:doc.city"><i class="ion-location"></i> {{:rebind:doc.city}} </span><span class="gray"><i class="ion-clock"></i> {{:rebind:doc.time|formatDate}}</span></h4></div><div class="col" ng-if=":rebind:!compactMode"><a ng-if=":rebind:login && doc.pubkey==walletData.pubkey" ng-click="remove($event, $index)" class="gray pull-right" title="{{\'DOCUMENT.LOOKUP.BTN_REMOVE\'|translate}}"><i class="ion-trash-a"></i></a></div></div></ion-item>'),e.put("plugins/es/templates/document/items_documents.html",'<div class="padding gray" ng-if=":rebind:!search.loading && !search.results.length" translate="">COMMON.SEARCH_NO_RESULT</div><ng-repeat ng-repeat="doc in :rebind:search.results track by doc.id" ng-switch="" on="doc.type"><div ng-switch-when="comment"><ng-include src="::\'plugins/es/templates/document/item_document_comment.html\'"></ng-include></div><div ng-switch-when="profile"><ng-include src="::\'plugins/es/templates/document/item_document_profile.html\'"></ng-include></div><div ng-switch-when="record"><ng-include ng-if="doc.index === \'page\'" src="::\'plugins/es/templates/document/item_document_page.html\'"></ng-include><ng-include ng-if="doc.index !== \'page\'" src="::\'plugins/es/templates/document/item_document.html\'"></ng-include></div><div ng-switch-default=""><ng-include src="::\'plugins/es/templates/document/item_document.html\'"></ng-include></div></ng-repeat>'),e.put("plugins/es/templates/document/list_documents.html",'<ion-list class="list" ng-class="::motion.ionListClass"><ng-include src="\'plugins/es/templates/document/items_documents.html\'"></ng-include></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("plugins/es/templates/document/lookup.html",'<ion-view><ion-nav-title><span translate>DOCUMENT.LOOKUP.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'plugins/es/templates/document/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("plugins/es/templates/document/lookup_form.html",'<div class="lookupForm"><div class="item no-padding"><label class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'DOCUMENT.LOOKUP.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearchText()"><div class="helptip-anchor-center"><a id="{{helptipPrefix}}-search-text"></a></div></label></div><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="search.last" translate="">DOCUMENT.LOOKUP.LAST_DOCUMENTS</h4><h4 ng-if="!search.last">{{\'COMMON.RESULTS_LIST\'|translate}}</h4><h5 class="dark" ng-if="!search.loading && search.total"><span translate="COMMON.RESULTS_COUNT" translate-values="{count: search.total}"></span> <small class="gray" ng-if=":rebind:search.took && expertMode">- {{:rebind:\'COMMON.EXECUTION_TIME\'|translate: {duration: search.took} }} </small><small class="gray" ng-if=":rebind:expertMode && search.filters && search.filters.length">- <a ng-click="toggleShowQuery()" ng-if="!showQuery"><span translate="">DOCUMENT.LOOKUP.SHOW_QUERY</span> <i class="icon ion-arrow-down-b gray"></i> </a><a ng-click="toggleShowQuery()" ng-if="showQuery"><span translate="">DOCUMENT.LOOKUP.HIDE_QUERY</span> <i class="icon ion-arrow-up-b gray"></i></a></small></h5><h5 class="gray" ng-if="search.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner><span translate="">COMMON.SEARCHING</span><br></h5></div></div><div class="item no-border no-padding" ng-if=":rebind:search.filters && search.filters.length && expertMode"><small class="no-padding no-margin" ng-if="showQuery"><span class="gray text-wrap dark">{{:rebind:search.query}}</span></small></div><ion-list class="list" ng-class="::motion.ionListClass"><ng-include src="\'plugins/es/templates/document/items_documents.html\'"></ng-include></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll></div>'),e.put("plugins/es/templates/document/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>DOCUMENT.LOOKUP.POPOVER_ACTIONS.TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left assertive ink" ng-class="{\'gray\': !search.total}" ng-click="removeAll()"><i class="icon ion-trash-a"></i> {{\'DOCUMENT.LOOKUP.POPOVER_ACTIONS.REMOVE_ALL\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/group/edit_group.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs" ng-if="id" ng-bind-html="formData.title"></span> <span class="visible-xs" ng-if="!loading && !id" translate="">GROUP.EDIT.TITLE_NEW</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear visible-xs visible-sm" ng-class="{\'ion-android-send\':!id, \'ion-android-done\': id}" ng-click="save()"></button></ion-nav-buttons><ion-content scroll="true"><div class="row no-padding"><div class="col"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><form name="recordForm" novalidate="" ng-submit="save()"><div class="list" ng-class="motion.ionListClass" ng-init="setForm(recordForm)"><div class="item hidden-xs"><h1 ng-if="id" ng-bind-html="formData.title"></h1><h1 ng-if="!id" translate="">GROUP.EDIT.TITLE_NEW</h1><h2 class="balanced" ng-if="!id"><i class="icon ion-android-people"></i> <i class="icon ion-android-lock" ng-if="formData.type==\'managed\'"></i> {{\'GROUP.TYPE.ENUM.\'+formData.type|upper|translate}}</h2></div><div class="item" ng-if="id"><h4 class="gray"><i class="icon ion-calendar"></i> {{\'COMMON.LAST_MODIFICATION_DATE\'|translate}}&nbsp;{{formData.time | formatDate}}</h4><div class="badge badge-balanced badge-editable" ng-click="showRecordTypeModal()">{{\'GROUP.TYPE.ENUM.\'+formData.type|upper|translate}}</div></div><ng-include src="\'plugins/es/templates/common/edit_pictures.html\'"></ng-include><div class="item item-divider" translate="">GROUP.GENERAL_DIVIDER</div><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><span class="input-label" translate="">GROUP.EDIT.RECORD_TITLE</span> <input type="text" placeholder="{{\'GROUP.EDIT.RECORD_TITLE_HELP\'|translate}}" name="title" id="group-record-title" ng-model="formData.title" ng-minlength="3" ng-required="true"></div><div class="form-errors" ng-if="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="item item-input item-floating-label"><span class="input-label" translate="">GROUP.EDIT.RECORD_DESCRIPTION</span><textarea placeholder="{{\'GROUP.EDIT.RECORD_DESCRIPTION_HELP\'|translate}}" ng-model="formData.description" rows="8" cols="10">\n                </textarea></div><ng-include src="\'plugins/es/templates/common/edit_socials.html\'" ng-controller="ESSocialsEditCtrl"></ng-include></div></form></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/group/item_group.html",'<a name="group-{{:rebind:group.hash}}"></a><div id="group-{{:rebind:group.hash}}" class="item item-icon-right item-avatar {{::ionItemClass}} ink" ng-click="select(group)"><i class="item-image avatar" style="background-image: url({{::group.avatar.src}})" ng-if="group.avatar"></i> <i class="item-image icon ion-android-people" ng-if="!group.avatar"></i> <i class="item-image icon-secondary ion-android-lock" ng-if="!group.avatar" style="left: 20px; top: 17px; font-size: 19px; color: #d9d9d9"></i><h2 ng-bind-html=":rebind:group.title"></h2><h4 class="gray pull-right"><i class="ion-clock"></i> {{:rebind:\'GROUP.CREATED_TIME\'|translate: group }}</h4><h4 class="dark pull-left" ng-if=":rebind:group.membersCount"><i class="dark ion-person"></i> <span class="dark">+{{:rebind:group.membersCount}}</span></h4><i class="icon ion-ios-arrow-right"></i></div>'),e.put("plugins/es/templates/group/items_groups.html",'<div class="padding gray" ng-if=":rebind:!search.loading && !search.results.length" translate="">COMMON.SEARCH_NO_RESULT</div><ng-repeat ng-repeat="group in :rebind:search.results" ng-include="\'plugins/es/templates/group/item_group.html\'"></ng-repeat>'),e.put("plugins/es/templates/group/list.html",'<ion-list class="{{::motion.ionListClass}}"><ion-item ng-repeat="notification in search.results" class="item-border-large item-text-wrap ink item-avatar" ng-class="{\'unread\': !notification.read}" ng-click="select(notification)"><i ng-if="!notification.avatar" class="item-image icon {{::notification.avatarIcon}}"></i> <i ng-if="notification.avatar" class="item-image avatar" style="background-image: url({{::notification.avatar.src}})"></i><h3 trust-as-html="notification.message | translate:notification"></h3><h4><i class="icon {{notification.icon}}"></i>&thinsp;<span class="dark">{{notification.time|formatFromNow}}</span> <span class="gray">| {{notification.time|formatDate}}</span></h4></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("plugins/es/templates/group/lookup.html",'<ion-view class="view-group"><ion-nav-title><span translate>GROUP.LOOKUP.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'plugins/es/templates/group/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("plugins/es/templates/group/lookup_form.html",'<div class="lookupForm"><label class="item item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'GROUP.LOOKUP.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearchText()"><div class="helptip-anchor-center"><a id="helptip-group-search-text"></a></div></label><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="search.type==\'open\'" translate="">GROUP.LOOKUP.OPEN_RESULTS_LIST</h4><h4 ng-if="search.type==\'last\'" translate="">GROUP.LOOKUP.LAST_RESULTS_LIST</h4><h4 ng-if="search.type==\'managed\'" translate="">GROUP.LOOKUP.MANAGED_RESULTS_LIST</h4><h4 ng-if="search.type==\'text\'">{{\'COMMON.RESULTS_LIST\'|translate}}</h4><h5 class="dark" ng-if="!search.loading && search.total"><span translate="COMMON.RESULTS_COUNT" translate-values="{count: search.total}"></span> <small class="gray" ng-if=":rebind:search.took && expertMode">- {{:rebind:\'COMMON.EXECUTION_TIME\'|translate: {duration: search.took} }}</small></h5><h5 class="gray" ng-if="search.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner><span translate="">COMMON.SEARCHING</span><br></h5></div></div><div class="list {{::motion.ionListClass}}" ng-if="!$scope.search.loading"><ng-include src="\'plugins/es/templates/group/items_groups.html\'"></ng-include></div><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll></div>'),e.put("plugins/es/templates/group/lookup_item.html",'<i class="item-image avatar" style="background-image: url({{::item.avatar.src}})" ng-if="item.avatar"></i> <i class="item-image icon ion-android-people" ng-if="!item.avatar"></i> <i class="item-image icon-secondary ion-android-lock" ng-if="!item.avatar" style="left: 20px; top: 17px; font-size: 19px; color: #d9d9d9"></i><h2 ng-bind-html=":rebind:item.title"></h2><h4 class="gray pull-right"><i class="ion-clock"></i> {{:rebind:\'GROUP.CREATED_TIME\'|translate: item }}</h4><h4 class="dark pull-left" ng-if=":rebind:item.membersCount"><i class="dark ion-person"></i> <span class="dark">+{{:rebind:item.membersCount}}</span></h4>'),e.put("plugins/es/templates/group/modal_record_type.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>GROUP.TYPE.TITLE</h1></ion-header-bar><ion-content class="lookupForm padding"><h3 translate>GROUP.TYPE.SELECT_TYPE</h3><div class="list"><div class="item item-complex card stable-bg item-icon-left ink" ng-click="closeModal(\'open\')"><div class="item-content item-text-wrap"><i class="item-image icon ion-android-people dark"></i><h2 translate>GROUP.TYPE.OPEN_GROUP</h2><h4 class="gray" translate>GROUP.TYPE.OPEN_GROUP_HELP</h4></div></div><div class="item item-complex card stable-bg item-icon-left ink" ng-click="closeModal(\'managed\')"><div class="item-content item-text-wrap"><i class="item-image icon ion-android-people dark"></i> <i class="icon-secondary ion-android-lock dark" style="left: 10px; top: -8px"></i><h2 translate>GROUP.TYPE.MANAGED_GROUP</h2><h4 class="gray" translate>GROUP.TYPE.MANAGED_GROUP_HELP</h4></div></div></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/group/view_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>GROUP.VIEW.MENU_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="showSharePopover($event)"><i class="icon ion-android-share-alt"></i> {{\'COMMON.BTN_SHARE\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/group/view_record.html",'<ion-view left-buttons="leftButtons"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-bar button-icon button-clear visible-xs visible-sm" ng-click="edit()" ng-if="canEdit"><i class="icon ion-android-create"></i></button> <button class="button button-bar button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true"><div class="positive-900-bg hero"><div class="content" ng-if="!loading"><i class="avatar cion-registry-{{formData.type}}" ng-if="!formData.avatar"></i> <i class="avatar" style="background-image: url({{::formData.avatar.src}})" ng-if="formData.avatar"></i><h3 ng-bind-html="formData.title"></h3><h4>&nbsp;</h4></div><h4 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><div class="row no-padding-xs no-padding-sm"><div class="col list item-text-wrap no-padding-xs no-padding-sm" ng-class="::motion.ionListClass"><div class="item"><h2 class="gray"><a ng-if="formData.city" ui-sref="app.groups({location:formData.city})"><i class="icon ion-location"></i> <span ng-bind-html="formData.city"></span> </a><span ng-if="formData.city && formData.type">&nbsp;|&nbsp;</span> <a ng-if="formData.type" ui-sref="app.groups({type:formData.type})"><i class="icon ion-flag"></i> {{\'GROUP.TYPE.ENUM.\'+formData.type|upper|translate}}</a></h2><h4><i class="icon ion-clock" ng-if="formData.time"></i> <span translate="">COMMON.SUBMIT_BY</span> <a ng-class="{\'positive\': issuer.uid, \'gray\': !issuer.uid}" ui-sref="app.wot_identity({pubkey:issuer.pubkey, uid: issuer.name||issuer.uid})"><ng-if ng-if="issuer.uid"><i class="icon ion-person"></i> {{::issuer.name||issuer.uid}}</ng-if><span ng-if="!issuer.uid"><i class="icon ion-key"></i> {{issuer.pubkey|formatPubkey}} </span></a><span>{{formData.time|formatFromNow}}<h4 class="gray hidden-xs">| {{formData.time | formatDate}}</h4></span></h4></div><a id="group-share-anchor-{{id}}"></a><ion-item><h2><span trust-as-html="formData.description"></span></h2></ion-item><ion-item><h4 ng-if="formData.address"><span class="gray" translate="">REGISTRY.VIEW.LOCATION</span> <a class="positive" target="_blank" href="https://www.google.fr/maps/?q={{formData.address}},%20{{formData.city}}"><span ng-bind-html="formData.address"></span> <span ng-if="formData.city">- </span><span ng-bind-html="formData.city"></span></a></h4></ion-item><ng-if ng-if="formData.socials && formData.socials.length>0"><ion-item class="item-icon-left" type="no-padding item-text-wrap" ng-repeat="social in formData.socials track by social.url" id="social-{{social.url|formatSlug}}"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}}</p><h2><a href="{{social.url}}" ng-if="social.type != \'email\'" target="_blank">{{social.url}}</a> <a href="mailto:{{social.url}}" ng-if="social.type == \'email\'">{{social.url}}</a></h2></ion-item></ng-if><div class="lazy-load"><ng-include src="\'plugins/es/templates/common/view_pictures.html\'"></ng-include><span class="item item-divider" ng-if="formData.pubkey"><span translate="">REGISTRY.TECHNICAL_DIVIDER</span></span><div class="item item-icon-left item-text-wrap ink" ng-if="formData.pubkey" copy-on-click="{{::formData.pubkey}}"><i class="icon ion-key"></i> <span translate="">REGISTRY.EDIT.RECORD_PUBKEY</span><h4 class="dark">{{::formData.pubkey}}</h4></div><ng-include src="\'plugins/es/templates/common/view_comments.html\'"></ng-include></div></div></div></ion-content><button class="button button-fab button-fab-bottom-right button-assertive icon ion-android-send visible-xs visible-sm" ng-if="formData.pubkey && !isUserPubkey(formData.pubkey)" ng-click="showTransferModal({pubkey: formData.pubkey, uid: formData.title})"></button></ion-view>'),e.put("plugins/es/templates/invitation/list_invitation.html",'<ion-list class="{{::motion.ionListClass}}"><ion-item ng-repeat="invitation in search.results" class="item-border-large item-text-wrap item-avatar"><i ng-if="::!invitation.avatar" class="item-image icon {{::invitation.avatarIcon}}"></i> <i ng-if="::invitation.avatar" class="item-image avatar" style="background-image: url({{::invitation.avatar.src}})"></i><h3 trust-as-html="invitation.message | translate:invitation"></h3><h3 class="dark text-italic" ng-if="invitation.comment"><i class="icon ion-quote"></i> <span ng-bind-html="invitation.comment"></span></h3><h4><i class="icon {{::invitation.icon}}"></i> <span class="dark" ng-if="::invitation.issuer" trust-as-html="\'INVITATION.SUGGESTED_BY\' | translate:invitation"></span> <span class="dark">{{::invitation.time|formatFromNow}}</span> <span class="gray">| {{::invitation.time|formatDate}}</span></h4><div class="block text-right"><button class="button button-positive button-small button-small-padding" ng-click="accept(invitation)" ng-if="::invitation.state" translate>{{::(invitation.okText||\'COMMON.BTN_SHOW\') |translate}}</button> <button class="button button-stable button-small button-small-padding" ng-click="delete($index)" translate>INVITATION.BTN_DELETE</button></div></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("plugins/es/templates/invitation/modal_new_invitation.html",'<ion-modal-view id="transfer" class="modal-invitation modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>INVITATION.NEW.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSend()"></button></ion-header-bar><ion-content scroll="true"><ng-include src="\'plugins/es/templates/invitation/new_invitation_form.html\'"></ng-include></ion-content></ion-modal-view>'),e.put("plugins/es/templates/invitation/new_invitation_form.html",'<form name="invitationForm" novalidate="" ng-submit="doSend()"><div class="list" ng-init="setForm(invitationForm)"><a class="item item-icon-right gray ink" ng-class="{\'disable-pointer-events\': recipients.length, \'item-input-error\': form.$submitted && !recipients.length}" ng-click="showSelectRecipientModal($event)"><span class="gray" translate="">INVITATION.NEW.RECIPIENTS</span> <span class="item-note"><span class="hidden-xs" ng-if="!recipients.length" translate="">INVITATION.NEW.RECIPIENTS_HELP</span><ng-repeat ng-repeat="identity in recipients track by identity.id" class="button button-small button-text button-stable button-icon-event ink" ng-class="{\'button-text-positive\': identity.selected}"><ng-bind-html ng-bind-html="identity.name||identity.uid||(identity.pubkey|formatPubkey)"></ng-bind-html><b class="enable-pointer-events ion-close" ng-click="removeRecipient($index, $event)">&nbsp;&nbsp;</b></ng-repeat></span><i class="gray icon enable-pointer-events ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !recipients.length"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><a class="item item-icon-right gray ink" ng-class="{\'disable-pointer-events\': suggestions.length, \'item-input-error\': form.$submitted && !suggestions.length}" ng-click="showSelectSuggestionModal($event)"><span class="gray enable-pointer-events" translate="">INVITATION.NEW.SUGGESTION_IDENTITIES</span> <span class="item-note"><span class="hidden-xs" ng-if="!suggestions.length" translate="">INVITATION.NEW.SUGGESTION_IDENTITIES_HELP</span><ng-repeat ng-repeat="identity in suggestions track by identity.id" class="button button-small button-text button-stable button-icon-event ink" ng-class="{\'button-text-positive\': identity.selected}"><ng-bind-html ng-bind-html="identity.name||identity.uid||(identity.pubkey|formatPubkey)"></ng-bind-html><b class="enable-pointer-events ion-close" ng-click="removeSuggestion($index, $event)">&nbsp;&nbsp;</b></ng-repeat></span><i class="gray icon enable-pointer-events ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !suggestions.length"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-content item-toggle dark visible-xs visible-sm"><span class="input-label gray">{{\'TRANSFER.BTN_ADD_COMMENT\' | translate}}</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useComment"><div class="track"><div class="handle"></div></div></label></div><label class="item item-input item-floating-label visible-xs visible-sm" ng-if="formData.useComment" ng-class="{\'item-input-error\': form.$submitted && form.comment.$invalid}"><span class="input-label">{{\'TRANSFER.COMMENT\' | translate}}</span><textarea placeholder="{{\'TRANSFER.COMMENT_HELP\' | translate}}" name="comment" ng-model="formData.comment" ng-maxlength="255">\n        </textarea></label><div class="form-errors" ng-show="form.$submitted && form.comment.$error" ng-messages="form.comment.$error"><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.FIELD_ACCENT"></span></div></div></div><div class="padding hidden-xs text-right"><button class="button button-small button-clear button-dark ink" ng-click="cancel()" type="button" translate="">COMMON.BTN_CANCEL</button> <button class="button button-small button-positive ink" type="submit">{{\'COMMON.BTN_SEND\' | translate}}</button></div></form>'),e.put("plugins/es/templates/invitation/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-class="{\'gray\': !search.results.length, \'assertive\': search.results.length}" ng-click="deleteAll()"><i class="icon ion-trash-a"></i> <span translate>INVITATION.BTN_DELETE_ALL</span></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/invitation/popover_invitation.html",""),e.put("plugins/es/templates/invitation/view_invitations.html",'<ion-view left-buttons="leftButtons" class="view-invitation"><ion-nav-title>{{\'INVITATION.LIST.TITLE\' | translate}}</ion-nav-title><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding gray" ng-if="!search.loading && !search.results.length" translate="">INVITATION.NO_RESULT</div><ng-include src="\'plugins/es/templates/invitation/list_invitation.html\'"></ng-include></div></div></ion-content><button id="fab-new-invitation" class="button button-fab button-fab-bottom-right button-assertive icon ion-android-send visible-xs visible-sm spin" ng-click="showNewInvitationModal()"></button></ion-view>'),e.put("plugins/es/templates/join/modal_join_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'select-account-type\'"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-class="{ activated: accountTypeMember != null && !accountTypeMember }" ng-click="selectAccountType(\'organization\')"><div class="item-content item-text-wrap"><i class="item-image icon dark cion-registry-association"></i><h2 translate>ACCOUNT.NEW.ORGANIZATION_ACCOUNT</h2><h4 class="gray" translate>ACCOUNT.NEW.ORGANIZATION_ACCOUNT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'last-slide\'"><ion-slide-page><ion-content class="has-header" scroll="false"><p>TOTO</p></ion-content></ion-slide-page></ng-if>'),e.put("plugins/es/templates/message/compose.html",'<ion-view left-buttons="leftButtons" id="composeMessage"><ion-nav-title><span class="visible-xs visible-sm" nf-if="!isReply" translate="">MESSAGE.COMPOSE.TITLE</span> <span class="visible-xs visible-sm" nf-if="isReply" translate="">MESSAGE.COMPOSE.TITLE_REPLY</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSend()"></button></ion-nav-buttons><ion-content scroll="true"><div class="row"><div class="col"><ng-include src="\'plugins/es/templates/message/compose_form.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/message/compose_form.html",'<form name="messageForm" novalidate="" ng-submit="doSend()"><div class="list no-margin" ng-init="setForm(messageForm)"><a class="item item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.destPub}" ng-click="showWotLookupModal()"><span class="gray" translate>MESSAGE.COMPOSE.TO</span> <span class="badge badge-royal" ng-if="destUid"><i class="ion-person"></i> {{destName||destUid}}</span>&nbsp; <span class="badge badge-stable" ng-if="!destUid && destPub">{{destName}} <span ng-if="!destName"><i class="ion-key"></i>{{destPub | formatPubkey}}</span> </span>&nbsp; <i class="gray icon ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !formData.destPub"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><ion-item class="item-text-wrap ink" ng-class="{\'item-icon-right\': enableSelectWallet}" ng-click="showSelectWalletModal()"><span class="gray" translate>TRANSFER.FROM</span> <span class="badge badge-balanced animate-fade-in animate-show-hide" ng-show="!loading"><ion-spinner icon="android" ng-if="!walletData.pubkey"></ion-spinner><span ng-if="walletData.pubkey && !walletData.isMember"><i class="ion-key"></i> {{walletData.pubkey| formatPubkey}}&nbsp;&nbsp; </span><span ng-if="walletData.isMember"><i class="ion-person"></i> {{walletData.name||walletData.uid}} </span></span><i class="gray icon ion-ios-arrow-right" ng-if="enableSelectWallet"></i></ion-item><div class="item item-input" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><input type="text" autocomplete="off" placeholder="{{\'MESSAGE.COMPOSE.OBJECT_HELP\' | translate}}" name="title" ng-model="formData.title" ng-maxlength="256" required> <span class="badge item-note" ng-if="isReply">({{\'MESSAGE.COMPOSE.OBJECT\' | translate}})</span></div><div class="form-errors" ng-show="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="maxlength"><span translate="MESSAGE.ERROR.MESSAGE_CONTENT_TOO_LONG" translate-values="{maxLength: 256}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.content.$invalid}"><span class="input-label">{{\'MESSAGE.COMPOSE.MESSAGE\' | translate}}</span><textarea placeholder="{{\'MESSAGE.COMPOSE.MESSAGE_HELP\' | translate}}" autocomplete="off" name="content" ng-model="formData.content" rows="8" ng-maxlength="5000">\n        </textarea></div><div class="form-errors" ng-show="form.$submitted && form.content.$error" ng-messages="form.content.$error"><div class="form-error" ng-message="maxlength"><span translate="MESSAGE.ERROR.MESSAGE_CONTENT_TOO_LONG" translate-values="{maxLength: 5000}"></span></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="cancel()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" type="submit" ng-disabled="sending" translate>TRANSFER.BTN_SEND</button></div><div class="list no-margin"><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i><h4 class="positive" translate>MESSAGE.COMPOSE.ENCRYPTED_HELP</h4></div></div></form>'),e.put("plugins/es/templates/message/list.html",'<div class="padding gray" ng-if="!search.loading && !search.results.length"><span ng-if="search.type==\'last\'">{{ (\'MESSAGE.NO_MESSAGE_\' + type) | upper | translate }}</span> <span ng-if="search.type==\'text\'" translate="">COMMON.SEARCH_NO_RESULT</span></div><ion-list class="{{::motion.ionListClass}}" can-swipe="$root.device.enable"><ion-item class="item item-border-large item-avatar item-icon-right ink" ng-repeat="msg in :rebind:search.results track by msg.id" ng-click="select(msg, $event)"><i ng-if="::!msg.avatar" class="item-image icon" ng-class="{\'ion-person\': msg.uid, \'ion-email\': !msg.uid}"></i> <i ng-if="::msg.avatar" class="item-image avatar" style="background-image: url({{::msg.avatar.src}})"></i><h4 class="pull-right visible-xs visible-sm dark"><i class="ion-clock"></i> {{::msg.time|formatFromNow}}</h4><h3><a class="positive" ng-if="::msg.name||msg.uid" ui-sref="app.wot_identity({pubkey:msg.issuer, uid:msg.name||msg.uid})"><i class="ion-person"></i> {{::msg.name||msg.uid}} </a><a class="gray" ng-if="::!msg.name && !msg.uid" ui-sref="app.wot_identity({pubkey:msg.issuer})"><i class="ion-key"></i> {{::msg.issuer|formatPubkey}}</a></h3><h2 ng-class="{\'unread\': !msg.read}" ng-bind-html="::msg.title"></h2><p ng-bind-html="::msg.summary||msg.content"></p><i class="icon ion-ios-arrow-right"></i><ion-option-button class="button-stable" ng-click="showReplyModal($index)" translate="">MESSAGE.BTN_REPLY</ion-option-button><ion-option-button class="button-assertive" ng-click="delete($index)" translate="">COMMON.BTN_DELETE</ion-option-button></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" icon="ion-loading-c" on-infinite="showMore()" distance="10%"></ion-infinite-scroll>'),e.put("plugins/es/templates/message/lookup.html",'<ion-view left-buttons="leftButtons" class="view-messages"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'MESSAGE.LIST.INBOX\'|translate}}" icon="ion-archive" ui-sref="app.user_message.tab_inbox"><ion-nav-view name="tab_inbox"></ion-nav-view></ion-tab><ion-tab title="{{\'MESSAGE.LIST.OUTBOX\'|translate}}" icon="ion-paper-airplane" ui-sref="app.user_message.tab_outbox"><ion-nav-view name="tab_outbox"></ion-nav-view></ion-tab></ion-tabs></ion-view>'),e.put("plugins/es/templates/message/lookup_by_id.html",'<ion-view left-buttons="leftButtons" class="view-messages"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'MESSAGE.LIST.INBOX\'|translate}}" icon="ion-archive" ui-sref="app.user_messages_by_id.tab_inbox"><ion-nav-view name="tab_inbox"></ion-nav-view></ion-tab><ion-tab title="{{\'MESSAGE.LIST.OUTBOX\'|translate}}" icon="ion-paper-airplane" ui-sref="app.user_messages_by_id.tab_outbox"><ion-nav-view name="tab_outbox"></ion-nav-view></ion-tab></ion-tabs></ion-view>'),e.put("plugins/es/templates/message/lookup_lg.html",'<ion-view left-buttons="leftButtons" class="view-messages"><ion-nav-title><span translate="">MESSAGE.LIST.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear visible-xs visible-sm" ng-click="showActionsPopover($event)"><i class="icon ion-android-more-vertical"></i></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh(true, $event)"></ion-refresher><div class="item no-padding"><div class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'MESSAGE.LIST.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()" on-return="doSearch()" select-on-click=""><div class="helptip-anchor-center"><a id="helptip-message-search-text"></a></div></div></div><div class="padding-top hidden-xs" style="display: block; height: 60px"><div class="pull-left" ng-if="!search.loading"><ng-if ng-if="search.type==\'last\'"><h4>{{ (\'MESSAGE.LIST.LAST_\' + type) | upper | translate}}</h4></ng-if><ng-if ng-if="search.type==\'text\'"><h4 translate="">COMMON.RESULTS_LIST</h4></ng-if></div></div><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ng-include src="\'plugins/es/templates/message/list.html\'"></ng-include></ion-content><button id="fab-add-message-record" class="button button-fab button-fab-bottom-right button-assertive icon ion-compose visible-xs visible-sm spin" ng-click="showNewMessageModal()"></button></ion-view>'),e.put("plugins/es/templates/message/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>MESSAGE.LIST.POPOVER_ACTIONS.TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-class="{\'gray\': (type != \'inbox\' && !messages.length)}" ng-click="markAllAsRead()"><i class="icon ion-android-checkmark-circle"></i> {{\'COMMON.NOTIFICATIONS.MARK_ALL_AS_READ\' | translate}} </a><a class="item item-icon-left assertive ink" ng-class="{\'gray\': !messages.length}" ng-click="deleteAll()"><i class="icon ion-trash-a"></i> {{\'MESSAGE.LIST.POPOVER_ACTIONS.DELETE_ALL\' | translate}}</a></div></ion-content></ion-popover-view>'),
-e.put("plugins/es/templates/message/modal_compose.html",'<ion-modal-view id="composeMessage" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" ng-if="!isReply" translate>MESSAGE.COMPOSE.TITLE</h1><h1 class="title" ng-if="isReply" translate>MESSAGE.COMPOSE.TITLE_REPLY</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSend()"></button></ion-header-bar><ion-content scroll="true"><ng-include src="\'plugins/es/templates/message/compose_form.html\'"></ng-include></ion-content></ion-modal-view>'),e.put("plugins/es/templates/message/popover_message.html",""),e.put("plugins/es/templates/message/view_message.html",'<ion-view left-buttons="leftButtons" class="view-message"><ion-nav-title><span translate="">MESSAGE.VIEW.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true"><div class="row no-padding"><div class="col no-padding"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list animate-fade-slide-in item-text-wrap"><div class="item item-avatar" ng-class="{\'item-avatar\': formData.avatar}"><i ng-if="!formData.avatar" class="item-image" ng-class="{\'ion-person\': formData.uid, \'ion-email\': !formData.uid}"></i> <i ng-if="formData.avatar" class="item-image avatar" style="background-image: url({{::formData.avatar.src}})"></i><h4>{{type == \'inbox\' ? \'MESSAGE.VIEW.SENDER\': \'MESSAGE.VIEW.RECIPIENT\'|translate}} <a class="positive" ui-sref="app.wot_identity({pubkey: (type == \'inbox\') ? formData.issuer : formData.recipient, uid: formData.name||formData.uid})"><span ng-if="formData.uid"><i class="ion-person"></i> {{formData.name||formData.uid}} </span><span ng-if="!formData.uid" class="gray"><i class="ion-key gray"></i> {{formData.name||(formData.issuer|formatPubkey)}}</span></a></h4><h5 class="gray visible-xs visible-sm"><i class="ion-clock"></i> {{formData.time | formatDate}}</h5></div><ion-item class="visible-xs visible-sm"><h1 class="title" ng-bind-html="formData.title"></h1></ion-item><ion-item><p ng-bind-html="formData.html"></p><div class="padding gray" ng-if="!formData.content" translate="">MESSAGE.VIEW.NO_CONTENT</div></ion-item></div></div></div></ion-content><button id="fab-view-message-reply" class="button button-fab button-fab-bottom-right button-calm icon ion-reply visible-xs visible-sm spin" ng-click="showReplyModal()"></button></ion-view>'),e.put("plugins/es/templates/message/view_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left assertive ink" ng-click="delete()"><i class="icon ion-trash-a"></i> {{\'MESSAGE.VIEW.DELETE\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/network/item_content_peer.html",'<i class="icon ion-android-desktop" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" ng-if=":rebind:!peer.avatar"></i> <b class="icon-secondary ion-person" ng-if=":rebind:!peer.avatar" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" style="left: 26px; top: -3px"></b> <i class="avatar" ng-if=":rebind:peer.avatar" style="background-image: url(\'{{:rebind:peer.avatar.src}}\')"></i> <b class="icon-secondary assertive ion-close-circled" ng-if=":rebind:!peer.online" style="left: 37px; top: -10px"></b><div class="row no-padding"><div class="col no-padding"><h3 class="dark">{{:rebind:peer.dns || peer.server}}</h3><h4><span class="gray" ng-if=":rebind:!peer.name"><i class="ion-key"></i> {{:rebind:peer.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:peer.name"><i class="ion-person"></i> {{:rebind:peer.name}} </span><span class="gray">{{:rebind:peer.dns && (\' | \' + peer.server) + (peer.ep.path||\'\') }}</span></h4></div><div class="col col-20 no-padding text-center" ng-if="::!expertMode && search.type != \'offline\'"><div style="min-width: 50px; padding-top: 5px" ng-if=":rebind:peer.docCount.emailSubscription!==undefined"><span ng-if=":rebind:peer.hasEndpoint(\'ES_SUBSCRIPTION_API\')" title="{{\'ES_PEER.EMAIL_SUBSCRIPTION_COUNT\'|translate: peer.docCount }}"><i class="ion-email"></i> {{:rebind:peer.docCount.emailSubscription || \'?\'}}</span></div></div><div class="col col-20 no-padding text-center" ng-if="::expertMode && search.type != \'offline\'"></div><div class="col col-20 no-padding text-center" id="{{$index === 0 ? helptipPrefix + \'-peer-0-block\' : \'\'}}"><span class="badge badge-stable">{{:rebind:peer.docCount.record !== undefined ? (peer.docCount.record|formatInteger) : \'?\'}} <span ng-if=":rebind:!expertMode && peer.docCount.record!==undefined">{{::\'ES_PEER.DOCUMENTS\'|translate|lowercase }} </span></span><span class="badge badge-secondary" ng-class=":rebind:{\'balanced\': peer.hasMainConsensusBlock, \'energized\': peer.hasConsensusBlock, \'ng-hide\': !peer.currentNumber }" ng-if="::expertMode">{{:rebind:\'BLOCKCHAIN.VIEW.TITLE\'|translate: {number:peer.currentNumber} }}</span></div></div>'),e.put("plugins/es/templates/network/items_peers.html",'<div ng-class="::motion.ionListClass" class="no-padding"><div class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-if="::isHttps && expertMode"><small><i class="icon ion-alert-circled"></i> {{::\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></div><div ng-repeat="peer in :rebind:search.results track by peer.id" class="item item-peer item-icon-left ink" ng-class="::ionItemClass" id="{{helptipPrefix}}-peer-{{$index}}" ng-click="selectPeer(peer)" ng-include="\'plugins/es/templates/network/item_content_peer.html\'"></div></div>'),e.put("plugins/es/templates/network/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>PEER.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'member\')"><i class="icon ion-person"></i> {{\'PEER.MEMBERS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'member\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'mirror\')"><i class="icon ion-radio-waves"></i> {{\'PEER.MIRRORS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'mirror\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'offline\')"><i class="icon ion-eye-disabled"></i> {{\'PEER.OFFLINE\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'offline\'"></i></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/network/modal_network.html",'<ion-modal-view id="nodes" class="modal-full-height" cache-view="false"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>PEER.PEER_LIST</h1><div class="buttons buttons-right header-item"><span class="secondary"><button class="button button-clear icon ion-loop button-clear" ng-click="refresh()"></button> <button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></span></div></ion-header-bar><ion-content><div class="list"><div class="padding padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="!enableFilter || !search.type">{{\'PEER.ALL_PEERS\' | translate}} <span ng-if="!search.loading">({{search.results.length}})</span></h4></div><div class="pull-right"><ion-spinner class="icon" icon="android" ng-if="search.loading"></ion-spinner>&nbsp;</div></div><ng-include src="\'plugins/es/templates/network/items_peers.html\'"></ng-include></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/network/popover_endpoints.html",'<ion-popover-view class="popover-endpoints popover-light" style="height: {{(titleKey?30:0)+((!items || items.length &lt;= 1) ? 55 : 3+items.length*52)}}px"><ion-header-bar class="bar bar-header stable-bg" ng-if="titleKey"><div class="title">{{titleKey | translate:titleValues }}</div></ion-header-bar><ion-content scroll="false"><div class="list" ng-class="{\'has-header\': titleKey}"><div class="item item-text-wrap" ng-repeat="item in items"><div class="item-label" ng-if="item.label">{{item.label | translate}}</div><div id="endpoint_{{$index}}" class="badge item-note dark">{{item.value}}</div></div></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/network/popover_network.html",""),e.put("plugins/es/templates/network/popover_peer_info.html",""),e.put("plugins/es/templates/network/view_es_network.html",'<ion-view><ion-nav-title><span translate="">MENU.NETWORK</span>&nbsp; <span translate="">ES_SETTINGS.PLUGIN_NAME</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="refresh()"></button></ion-nav-buttons><ion-content scroll="true" ng-init="enableFilter=true; ionItemClass=\'item-border-large\';"><div class="row responsive-sm responsive-md responsive-lg"><div class="col list col-border-right"><div class="padding padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4><span ng-if="enableFilter && !search.online" translate="">PEER.OFFLINE_PEERS</span> <span ng-if="!enableFilter || search.online" translate="">PEER.ALL_PEERS</span> <span ng-if="search.results.length">({{search.results.length}})</span><ion-spinner ng-if="search.loading" class="icon ion-spinner-small" icon="android"></ion-spinner></h4></div><div class="pull-right"><div class="pull-right" ng-if="enableFilter"><cs-extension-point name="filter-buttons"></cs-extension-point></div></div></div><div id="helptip-network-peers" style="display: block"></div><ng-include src="\'plugins/es/templates/network/items_peers.html\'"></ng-include></div><div class="col col-33" ng-controller="ESLastDocumentsCtrl"><div class="padding padding-xs" style="display: block"><h4 translate="">DOCUMENT.LOOKUP.LAST_DOCUMENTS_DOTS</h4></div><ng-include src="\'plugins/es/templates/document/list_documents.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/network/view_es_peer.html",'<ion-view><ion-nav-title><span translate="">PEER.VIEW.TITLE</span>&nbsp; <span translate="">ES_SETTINGS.PLUGIN_NAME</span></ion-nav-title><ion-content class="has-header" scroll="true"><div class="row no-padding"><div class="col list"><ion-item><h1><span translate="">PEER.VIEW.TITLE</span> <span class="gray">{{node.host}}</span></h1><h2 class="gray"><i class="gray icon ion-android-globe"></i> {{node.ep.dns || node.server}} <span class="gray" ng-if="!loading && node.useSsl"><i class="gray ion-locked"></i> <small>SSL</small> </span><span class="gray" ng-if="!loading && node.useTor"><i class="gray ion-bma-tor-api"></i></span></h2><h3><span class="dark"><i class="icon ion-android-desktop"></i> {{\'PEER.VIEW.OWNER\'|translate}} </span><a class="positive" ng-if="node.name" ui-sref="app.wot_identity({pubkey: node.pubkey, uid: node.name})"><i class="ion-person"></i> {{node.name}} </a><span ng-if="!loading && !node.name"><a class="gray" ui-sref="app.wot_identity({pubkey: node.pubkey})"><i class="ion-key"></i> {{node.pubkey|formatPubkey}}</a></span></h3><h3><a ng-click="openRawPeering($event)"><i class="icon ion-share"></i> {{\'PEER.VIEW.SHOW_RAW_PEERING\'|translate}} </a><span class="gray" ng-if="!isReachable">| </span><a ng-if="!isReachable" ng-click="openRawCurrentBlock($event)"><i class="icon ion-share"></i> <span translate="">PEER.VIEW.SHOW_RAW_CURRENT_BLOCK</span></a></h3></ion-item><div class="item item-divider" translate="">PEER.VIEW.GENERAL_DIVIDER</div><ion-item class="item-icon-left item-text-wrap ink" copy-on-click="{{node.pubkey}}"><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><h4 class="dark text-left">{{node.pubkey}}</h4></ion-item><ion-item class="item item-icon-left item-text-wrap ink" ng-if="isReachable"><i class="icon ion-cube"></i> <span translate="">BLOCKCHAIN.VIEW.TITLE_CURRENT</span><div class="badge badge-calm" ng-if="!loading">{{current.number|formatInteger}}</div></ion-item><ion-item class="item item-icon-left item-text-wrap" ng-if="isReachable"><i class="icon ion-document"></i> <span translate="">ES_PEER.DOCUMENT_COUNT</span><div class="badge badge-stable" ng-if="!loading">{{node.docCount|formatInteger}}</div></ion-item><a class="item item-icon-left item-icon-right item-text-wrap ink" ng-if="isReachable" ui-sref="app.document_search(options.document)"><i class="icon ion-document" style="font-size: 25px"></i> <i class="icon-secondary ion-clock" style="font-size: 18px; left: 33px; top: -12px"></i> <span translate="">DOCUMENT.LOOKUP.LAST_DOCUMENTS</span> <i class="gray icon ion-ios-arrow-right"></i></a><cs-extension-point name="general"></cs-extension-point><div class="item item-divider" ng-hide="loading || !isReachable" translate="">PEER.VIEW.KNOWN_PEERS</div><ion-item class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-show="!loading && !isReachable"><small><i class="icon ion-alert-circled"></i> {{\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></ion-item><div class="item center" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><div class="list no-padding {{::motion.ionListClass}}" ng-if="isReachable"><div ng-repeat="peer in :rebind:peers track by peer.id" class="item item-peer item-icon-left ink" ng-class="::ionItemClass" ng-click="selectPeer(peer)" ng-include="\'plugins/es/templates/network/item_content_peer.html\'"></div></div></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/network/view_network_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'network-buttons\'"></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'blockchain-buttons\'"><a class="button button-text button-small ink" ui-sref="app.blockchain_search"><i class="icon ion-android-search"></i> <span>{{\'COMMON.BTN_SEARCH\'|translate}}</span></a></ng-if>'),e.put("plugins/es/templates/notification/list_notification.html",'<ion-list class="{{::motion.ionListClass}}"><ion-item ng-repeat="notification in search.results track by notification.id" class="item-border-large item-text-wrap ink item-avatar" ng-class="{\'unread\': !notification.read}" ng-click="select($event, notification)"><i ng-if="!notification.avatar" class="item-image icon {{::notification.avatarIcon}}"></i> <i ng-if="notification.avatar" class="item-image avatar" style="background-image: url({{::notification.avatar.src}})"></i><h3 trust-as-html="notification.message | translate:(notification.messageParams||notification)"></h3><h4 ng-if="!notification.medianTime"><i class="icon {{notification.icon}}"></i>&thinsp;<span class="dark">{{notification.time|formatFromNow}}</span> <span class="gray">| {{notification.time|formatDate}}</span></h4><h4 ng-if="notification.medianTime"><i class="icon {{notification.icon}}"></i>&thinsp;<span class="dark">{{notification.medianTime|medianFromNow}}</span> <span class="gray">| {{notification.medianTime|medianDate}}</span></h4></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("plugins/es/templates/notification/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-disabled="!search.results.length" ng-click="markAllAsRead()"><i class="icon ion-android-checkmark-circle"></i> {{\'COMMON.NOTIFICATIONS.MARK_ALL_AS_READ\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/notification/popover_notification.html",""),e.put("plugins/es/templates/notification/view_notifications.html",'<ion-view left-buttons="leftButtons" class="view-notification"><ion-nav-title>{{\'COMMON.NOTIFICATIONS.TITLE\' | translate}}</ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh(true)"></ion-refresher><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding gray" ng-if="!search.loading && !search.results.length" translate="">COMMON.NOTIFICATIONS.NO_RESULT</div><ng-include src="\'plugins/es/templates/notification/list_notification.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/registry/edit_record.html",'<ion-view left-buttons="leftButtons" class="view-page"><ion-nav-title><span class="visible-xs" ng-if="id" ng-bind-html="formData.title"></span> <span class="visible-xs" ng-if="!loading && !id" translate="">REGISTRY.EDIT.TITLE_NEW</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear visible-xs visible-sm" ng-class="{\'ion-android-send\':!id, \'ion-android-done\': id}" ng-click="save()"></button></ion-nav-buttons><ion-content scroll="true"><div class="hero"><div class="content"><i class="avatar" ng-class="avatarClass" ng-style="avatarStyle"><button class="button button-positive button-large button-clear flat icon ion-camera visible-xs visible-sm" style="display: inline-block" ng-click="showAvatarModal()"></button> <button ng-if="avatar.src" class="button button-positive button-large button-clear flat visible-xs visible-sm" style="display: inline-block; left: 85px; bottom:15px" ng-click="rotateAvatar()"><i class="icon-secondary ion-image" style="left: 24px; top: 3px; font-size: 24px"></i> <i class="icon-secondary ion-forward" style="left: 26px; top: -13px"></i></button></i><h3 class="dark"><span ng-if="!loading && formData.title">{{formData.title}}</span> <span ng-if="!loading && !id && !formData.title" translate="">REGISTRY.EDIT.TITLE_NEW</span></h3><h4 class="dark"><ion-spinner ng-if="loading" icon="android"></ion-spinner></h4></div></div><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><form name="recordForm" novalidate="" ng-submit="save()"><div class="list {{::motion.ionListClass}}" ng-init="setForm(recordForm)"><div class="item" ng-if="id"><h4 class="gray"><i class="icon ion-calendar"></i> {{\'COMMON.LAST_MODIFICATION_DATE\'|translate}}&nbsp;{{formData.time | formatDate}}</h4><div class="badge badge-balanced badge-editable" ng-click="showRecordTypeModal()">{{\'REGISTRY.TYPE.ENUM.\'+formData.type|upper|translate}}</div></div><ng-include src="\'plugins/es/templates/common/edit_pictures.html\'"></ng-include><div class="item item-divider" translate="">REGISTRY.GENERAL_DIVIDER</div><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><span class="input-label" translate="">REGISTRY.EDIT.RECORD_TITLE</span> <input type="text" placeholder="{{\'REGISTRY.EDIT.RECORD_TITLE_HELP\'|translate}}" name="title" id="registry-record-title" ng-model="formData.title" ng-minlength="3" ng-required="true"></div><div class="form-errors" ng-if="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="item item-input item-floating-label"><span class="input-label" translate="">REGISTRY.EDIT.RECORD_DESCRIPTION</span><textarea placeholder="{{\'REGISTRY.EDIT.RECORD_DESCRIPTION_HELP\'|translate}}" ng-model="formData.description" rows="8" cols="10">\n                </textarea></div><div class="item item-icon-right ink" ng-if="loading || formData.type===\'company\' || formData.type===\'shop\'" ng-class="{\'item-input-error\': form.$submitted && !formData.category.id, \'done in\': !loading}" ng-click="showCategoryModal()"><span translate="">REGISTRY.CATEGORY</span> <span class="badge badge-royal">{{formData.category.name | formatCategory}}</span>&nbsp; <i class="gray icon ion-ios-arrow-right"></i></div><input type="hidden" name="category" ng-model="formData.category.id" required-if="formData.type==\'company\' || formData.type==\'shop\'"><div class="form-errors" ng-if="form.$submitted && form.category.$error" ng-messages="form.category.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><ng-include src="\'plugins/es/templates/common/edit_position.html\'"></ng-include><ng-include src="\'plugins/es/templates/common/edit_socials.html\'" ng-controller="ESSocialsEditCtrl"></ng-include><div class="item item-divider" translate="">REGISTRY.TECHNICAL_DIVIDER</div><div class="item item-input item-floating-label"><span class="input-label" translate="">REGISTRY.EDIT.RECORD_PUBKEY</span> <input type="text" placeholder="{{\'REGISTRY.EDIT.RECORD_PUBKEY_HELP\'|translate}}" ng-model="formData.pubkey"></div></div></form></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/registry/lookup_form.html",'<form ng-submit="doSearch()"><div class="item no-padding"><div class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'REGISTRY.SEARCH.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()" on-return="doSearchText()" select-on-click=""></div></div><ng-include src="::\'plugins/es/templates/common/item_location_search.html\'" ng-if="entered && options.location.show && (!search.geoPoint || smallscreen)" ng-controller="ESSearchPositionItemCtrl"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_form_options.html\'"></ng-include></form><div class="padding-top padding-xs padding-sm" style="display: block; height: 60px"><div class="pull-left ng-hide" ng-show="!search.loading && search.results"><ng-if ng-if="search.lastRecords"><h4 translate="">REGISTRY.SEARCH.LAST_RECORDS</h4><small class="gray no-padding" ng-if="search.total"><span ng-if="search.geoPoint && search.total">{{\'REGISTRY.SEARCH.LAST_RECORD_COUNT_LOCATION\'|translate:{count: search.total, location: search.location} }}</span> <span ng-if="!search.geoPoint && search.total">{{\'REGISTRY.SEARCH.LAST_RECORD_COUNT\'|translate:{count: search.total} }}</span></small></ng-if><ng-if ng-if="!search.lastRecords"><h4 translate="">COMMON.RESULTS_LIST</h4><small class="gray no-padding" ng-if="search.total"><span ng-if="search.geoPoint && search.total">{{\'REGISTRY.SEARCH.RESULT_COUNT_LOCATION\'|translate:{count: search.total, location: search.location} }}</span> <span ng-if="!search.geoPoint && search.total">{{\'REGISTRY.SEARCH.RESULT_COUNT\'|translate:{count: search.total} }}</span></small></ng-if></div></div><div class="center" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding assertive" ng-if="!search.loading && search.results.length===0" translate="">COMMON.SEARCH_NO_RESULT</div>'),e.put("plugins/es/templates/registry/lookup_form_options.html",'<div class="item item-icon-left item-input item-select stable-bg" ng-if="search.advanced && options.location.show"><i class="icon ion-arrow-resize gray"></i> <span class="input-label item-icon-left-padding" translate="">LOCATION.DISTANCE</span><label><select ng-model="search.geoDistance" class="col-border-left" ng-options="i as (geoDistanceLabels[i].labelKey | translate:geoDistanceLabels[i].labelParams ) for i in geoDistances track by i"></select></label></div>'),e.put("plugins/es/templates/registry/lookup_lg.html",'<ion-view left-buttons="leftButtons"><ion-nav-title>{{\'REGISTRY.SEARCH.TITLE\' | translate}}</ion-nav-title><ion-content class="lookupForm padding no-padding-xs no-padding-sm"><ng-include src="::\'plugins/es/templates/wot/lookup_lg_extend.html\'" ng-init="enable= true; showNewPageButton=true;"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_form.html\'"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_list_lg.html\'"></ng-include></ion-content><button id="fab-add-registry-record" class="button button-fab button-fab-bottom-right button-assertive icon ion-plus hidden-md hidden-lg spin" ng-click="showNewPageModal()"></button></ion-view>'),e.put("plugins/es/templates/registry/lookup_list.html",'<ion-list class="{{::motion.ionListClass}}" ng-if="!search.loading && search.results"><div class="item item-avatar item-icon-right item-border-large ink" ng-repeat="item in search.results" ui-sref="app.view_page({id: item.id, title: item.urlTitle})"><i ng-if="::!item.avatar" class="item-image icon cion-page-{{::item.type}}"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2 ng-bind-html="::item.title"></h2><h4><span class="dark" ng-if="::item.city"><b class="ion-location"></b> <span ng-bind-html="::item.city"></span> </span><span class="gray" ng-if="::item.distance">({{::item.distance|formatDecimal}} {{::geoUnit}})</span></h4><h4 class="gray" ng-if="::item.time && search.lastRecords"><i class="ion-clock"></i> {{::item.time | formatFromNow}}</h4><h4 class="gray" ng-if="!search.lastRecords"><i class="cion-page-{{::item.type}}"></i> <span ng-if="item.category">{{::item.category.name}}</span> <span ng-if="!item.category">{{::\'REGISTRY.TYPE.ENUM.\'+item.type|uppercase|translate}}</span></h4><i class="icon ion-ios-arrow-right"></i></div></ion-list>'),e.put("plugins/es/templates/registry/lookup_list_lg.html",'<div class="list {{::motion.ionListClass}}" ng-if="!search.loading && search.results && search.results.length > 0"><a ng-repeat="item in search.results" class="item item-record item-border-large ink padding-xs" ui-sref="app.view_page({id: item.id, title: item.urlTitle})"><div class="row row-record"><div class="col item-text-wrap item-avatar-left-padding" ng-class="::{\'item-avatar\': item.avatar || item.type}"><i class="item-image icon cion-page-{{::item.type}}" ng-if="::!item.avatar"></i> <i class="item-image avatar" style="background-image: url({{::item.avatar.src}})" ng-if="::item.avatar"></i><h2 ng-bind-html="::item.title"></h2><h4><span class="dark" ng-if="::item.city"><b class="ion-location"></b> <span ng-bind-html="::item.city"></span> </span><span class="gray" ng-if="::item.distance">({{::item.distance|formatDecimal}} {{::geoUnit}})</span></h4><h4><span class="gray" ng-if="::item.time && search.lastRecords"><b class="ion-clock"></b> {{::item.time | formatFromNow}} </span><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4><span ng-if="::item.picturesCount > 1" class="badge badge-balanced badge-picture-count">{{::item.picturesCount}}&nbsp;<i class="icon ion-camera"></i></span></div><div class="col hidden-xs"><h4 class="text-wrap"><span class="visible-sm"><b class="ion-flag"></b><ng-if ng-if="::item.category">{{::item.category.name|truncText:50}}</ng-if><ng-if ng-if="::!item.category">{{::\'REGISTRY.TYPE.ENUM.\'+item.type|uppercase|translate}}</ng-if></span><span class="gray text-italic" ng-if="::item.description"><b class="ion-quote"></b> <span ng-bind-html="::item.description|truncText:500" ng-if="::item.description"></span></span></h4></div></div></a></div><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="10%"></ion-infinite-scroll>'),e.put("plugins/es/templates/registry/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="showNewPageModal();"><i class="icon ion-plus"></i> <span translate>REGISTRY.BTN_NEW</span></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/registry/lookup_popover_filters.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="doGetLastRecords()"><i class="icon ion-clock"></i> {{\'REGISTRY.SEARCH.BTN_LAST_RECORDS\' | translate}} </a><a class="item item-icon-left ink" ng-click="toggleAdvanced();"><i class="icon ion-android-checkbox-outline-blank" ng-show="!search.advanced"></i> <i class="icon ion-android-checkbox-outline" ng-show="search.advanced"></i> <span translate>REGISTRY.SEARCH.POPOVER_FILTERS.BTN_ADVANCED_SEARCH</span></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/registry/modal_record_type.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>{{getParameters().title||\'REGISTRY.TYPE.TITLE\'|translate}}</h1></ion-header-bar><ion-content class="lookupForm"><div class="list padding"><h3 translate>REGISTRY.TYPE.SELECT_TYPE</h3><button class="button button-block button-stable icon-left cion-page-shop" ng-click="closeModal(\'shop\')" translate>REGISTRY.TYPE.ENUM.SHOP</button> <button class="button button-block button-stable icon-left cion-page-association" ng-click="closeModal(\'association\')" translate>REGISTRY.TYPE.ENUM.ASSOCIATION</button> <button class="button button-block button-stable icon-left cion-page-company" ng-click="closeModal(\'company\')" translate>REGISTRY.TYPE.ENUM.COMPANY</button> <button class="button button-block button-stable icon-left cion-page-institution" ng-click="closeModal(\'institution\')" translate>REGISTRY.TYPE.ENUM.INSTITUTION</button></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/registry/view_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>REGISTRY.VIEW.MENU_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="showSharePopover($event)"><i class="icon ion-android-share-alt"></i> {{\'COMMON.BTN_SHARE\' | translate}} </a><a class="item item-icon-left assertive ink" ng-if="canEdit" ng-click="delete()"><i class="icon ion-trash-a"></i> {{\'COMMON.BTN_DELETE\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/registry/view_record.html",'<ion-view left-buttons="leftButtons" class="view-page"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-bar button-icon button-clear visible-xs visible-sm" ng-click="edit()" ng-if="canEdit"><i class="icon ion-android-create"></i></button> <button class="button button-bar button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true" class="refresher-top-bg"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="load()"></ion-refresher><div class="hero"><div class="content" ng-if="!loading"><i class="avatar cion-page-{{formData.type}}" ng-if="!formData.avatar"></i> <i class="avatar" ng-style="{{avatarStyle}}" ng-if="formData.avatar"></i><h3><span class="dark" ng-bind-html="formData.title"></span></h3><h4>&nbsp;</h4></div><h4 class="content dark" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><div class="row no-padding-xs no-padding-sm"><div class="col list animate-fade-slide-in item-text-wrap no-padding-xs no-padding-sm"><div class="item"><h2 class="gray"><a ng-if="formData.city" ui-sref="app.wot_lookup.tab_registry({location:formData.city})"><i class="icon ion-location"></i> <span ng-bind-html="formData.city"></span> </a><span ng-if="formData.city && formData.type">&nbsp;|&nbsp;</span> <a ng-if="formData.type" ui-sref="app.wot_lookup.tab_registry({type:formData.type})"><i class="cion-page-{{formData.type}}"></i> {{\'REGISTRY.TYPE.ENUM.\'+formData.type|upper|translate}}</a></h2><h4><i class="icon ion-clock" ng-if="formData.time"></i> <span translate="">COMMON.SUBMIT_BY</span> <a ng-class="{\'positive\': issuer.uid, \'gray\': !issuer.uid}" ui-sref="app.wot_identity({pubkey:issuer.pubkey, uid: issuer.name||issuer.uid})"><ng-if ng-if="issuer.uid"><i class="icon ion-person"></i> {{::issuer.name||issuer.uid}}</ng-if><span ng-if="!issuer.uid"><i class="icon ion-key"></i> {{issuer.pubkey|formatPubkey}} </span></a><span>{{formData.time|formatFromNow}}<h4 class="gray hidden-xs">| {{formData.time | formatDate}}</h4></span></h4></div><a id="registry-share-anchor-{{id}}"></a><div class="item"><h2 trust-as-html="formData.description"></h2></div><div class="item" ng-if="formData.category || formData.address"><h4 ng-if="formData.category"><span class="gray" translate="">REGISTRY.VIEW.CATEGORY</span> <a class="positive" ng-if="formData.category" ui-sref="app.wot_lookup.tab_registry({category:formData.category.id})"><span ng-bind-html="formData.category.name"></span></a></h4><h4 ng-if="formData.address"><span class="gray" translate="">REGISTRY.VIEW.LOCATION</span> <a class="positive" target="_system" href="https://www.openstreetmap.org/search?query={{formData.address}},%20{{formData.city}}"><span ng-bind-html="formData.address"></span> <span ng-if="formData.city">- </span><span ng-bind-html="formData.city"></span></a></h4></div><ng-if ng-if="formData.socials && formData.socials.length>0"><div class="item item-icon-left" type="no-padding item-text-wrap" ng-repeat="social in formData.socials track by social.url" id="social-{{social.url|formatSlug}}"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}}</p><h2><a ng-click="openLink($event, social.url, social.type)">{{social.url}}</a></h2></div></ng-if><div class="item item-icon-left item-text-wrap ink" ng-if="formData.pubkey" copy-on-click="{{::formData.pubkey}}"><i class="icon ion-key"></i> <span translate="">REGISTRY.EDIT.RECORD_PUBKEY</span><h4 class="dark">{{::formData.pubkey}}</h4></div><div class="lazy-load"><ng-include src="\'plugins/es/templates/common/view_pictures.html\'"></ng-include><ng-include src="\'plugins/es/templates/common/view_comments.html\'"></ng-include></div></div></div></ion-content><button class="button button-fab button-fab-bottom-right button-assertive icon ion-android-send visible-xs visible-sm" ng-if="formData.pubkey && !isUserPubkey(formData.pubkey)" ng-click="showTransferModal({pubkey: formData.pubkey, uid: formData.title})"></button></ion-view>'),e.put("plugins/es/templates/registry/view_wallet_pages.html",'<ion-view left-buttons="leftButtons" class="view-notification"><ion-nav-title>{{\'REGISTRY.MY_PAGES\' | translate}}</ion-nav-title><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate()"></ion-refresher><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!search.loading && !search.results.length" translate="">REGISTRY.NO_PAGE</div><ng-include src="\'plugins/es/templates/registry/lookup_list.html\'"></ng-include></ion-content><button id="fab-wallet-add-registry-record" class="button button-fab button-fab-bottom-right button-assertive hidden-md hidden-lg spin" ng-click="showNewPageModal()"><i class="icon ion-plus"></i></button></ion-view>'),e.put("plugins/es/templates/subscription/edit_subscriptions.html",'<ion-view left-buttons="leftButtons" class="view-notification"><ion-nav-title>{{\'SUBSCRIPTION.EDIT.TITLE\' | translate}}</ion-nav-title><ion-nav-buttons side="secondary"></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="load()"></ion-refresher><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!search.loading && !search.results.length" translate="">SUBSCRIPTION.NO_SUBSCRIPTION</div><div class="row no-padding"><div class="col list {{::motion.ionListClass}} item-border-large"><ng-repeat ng-repeat="subscriptions in search.results | filter: { type: \'email\' }" ng-include="\'plugins/es/templates/subscription/item_\' + subscriptions.type.toLowerCase() + \'_subscription.html\'">></ng-repeat></div></div></ion-content><button id="fab-add-subscription-record" class="button button-fab button-fab-bottom-right button-assertive icon ion-plus hidden-md hidden-lg spin" ng-click="addSubscription()"></button></ion-view>'),e.put("plugins/es/templates/subscription/item_email_subscription.html",'<div class="item item-avatar"><i class="item-image icon ion-email"></i><h3>{{\'SUBSCRIPTION.TYPE.ENUM.\' + subscriptions.type.toUpperCase() | translate}}</h3><h4 class="gray">{{\'SUBSCRIPTION.EDIT.PROVIDER\'|translate}} <a ui-sref="app.wot_identity({pubkey: subscriptions.recipient, uid: subscriptions.uid})"><span ng-class="{\'positive\': subscriptions.uid, \'dark\': !subscriptions.uid}" ng-if="subscriptions.name||subscriptions.uid"><i class="ion-person" ng-if="subscriptions.uid"></i> {{subscriptions.name||subscriptions.uid}} </span><span class="gray" ng-if="!subscriptions.uid"><i class="ion-key"></i> {{subscriptions.recipient | formatPubkey}}</span></a></h4><div class="item-note text-right"><span ng-repeat="item in subscriptions.items">{{item.content.email}} <a class="ion-trash-a gray padding-left" ng-click="deleteSubscription(item)"></a> <a class="ion-edit gray padding-left" ng-click="editSubscription(item)"></a><br></span></div></div>'),e.put("plugins/es/templates/subscription/modal_email.html",'<ion-modal-view id="composeMessage" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>SUBSCRIPTION.MODAL_EMAIL.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSubmit()"></button></ion-header-bar><ion-content scroll="true"><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i><h4 class="positive" translate>SUBSCRIPTION.MODAL_EMAIL.HELP</h4></div><form name="subscriptionForm" novalidate="" ng-submit="doSubmit()"><div class="list" ng-init="setForm(subscriptionForm)"><label class="item item-input" ng-class="{\'item-input-error\': form.$submitted && (form.email.$invalid || form.email.$error)}"><span class="input-label" translate>SUBSCRIPTION.MODAL_EMAIL.EMAIL_LABEL</span> <input name="email" type="text" placeholder="{{\'SUBSCRIPTION.MODAL_EMAIL.EMAIL_HELP\' | translate}}" ng-model="formData.content.email" ng-minlength="3" required email></label><div class="form-errors" ng-if="form.$submitted && (form.email.$invalid || form.email.$error)" ng-messages="form.email.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div><div class="form-error" ng-message="email"><span translate="ERROR.FIELD_NOT_EMAIL"></span></div></div><label class="item item-input item-select" ng-class="{\'item-input-error\': form.$submitted && !formData.content.frequency}"><span class="input-label" translate>SUBSCRIPTION.MODAL_EMAIL.FREQUENCY_LABEL</span><select name="frequency" ng-model="formData.content.frequency" style="height: 46px;margin-top: 1px"><option value="weekly" translate>SUBSCRIPTION.MODAL_EMAIL.FREQUENCY_WEEKLY</option><option value="daily" translate>SUBSCRIPTION.MODAL_EMAIL.FREQUENCY_DAILY</option></select></label><div class="form-errors" ng-if="form.$submitted && !formData.content.frequency"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><a class="item item-input item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.recipient}" ng-click="showNetworkLookup()" style="height: 67px"><span class="input-label" translate>SUBSCRIPTION.MODAL_EMAIL.PROVIDER</span> <span class="badge animate-fade-in animate-show-hide ng-hide" ng-class="{\'badge-royal\': recipient.uid, \'badge-stable\': !recipient.uid}" ng-show="recipient && (recipient.name||recipient.uid)"><i class="ion-person" ng-if="recipient.uid"></i> {{recipient.name||recipient.uid}} </span><span class="badge badge-secondary animate-fade-in animate-show-hide ng-hide" ng-show="formData.recipient"><i class="ion-key"></i> {{formData.recipient | formatPubkey}} </span><i class="gray icon ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !formData.recipient"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="cancel()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" type="submit">{{\'COMMON.BTN_ADD\' | translate}}</button></div></form></ion-content></ion-modal-view>'),e.put("plugins/es/templates/settings/plugin_settings.html",'<ion-view left-buttons="leftButtons" class="settings"><ion-nav-title translate="">ES_SETTINGS.PLUGIN_NAME</ion-nav-title><ion-content scroll="true"><div class="item item-toggle dark"><div class="input-label" translate="">ES_SETTINGS.ENABLE_TOGGLE</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.enable"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.STORAGE_DIVIDER</span><div class="item item-toggle item-text-wrap dark"><div class="input-label" ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.ENABLE_REMOTE_STORAGE</div><h4 class="gray text-wrap" ng-bind-html="\'ES_SETTINGS.ENABLE_REMOTE_STORAGE_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useRemoteStorage" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.NETWORK_SETTINGS</span><ion-item class="ink item-icon-right item-text-wrap visible-xs visible-sm" ng-click="formData.enable && changeEsNode()" ng-disabled="!formData.enable"><div class="input-label" ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.PEER</div><ng-if ng-if="isFallbackNode"><h4 class="gray text-wrap assertive"><b class="ion-alert-circled"></b> <span ng-bind-html="\'SETTINGS.PEER_CHANGED_TEMPORARY\' | translate "></span></h4><div class="badge badge-assertive">{{server}}</div></ng-if><div class="badge" ng-class="{\'badge-balanced\': formData.enable, \'badge-stable\': !formData.enable}" ng-if="!isFallbackNode">{{server}}</div><i class="icon ion-ios-arrow-right"></i></ion-item><span class="item item-divider" translate="">ES_SETTINGS.NOTIFICATIONS.DIVIDER</span><span class="item gray item-text-wrap" translate="">ES_SETTINGS.NOTIFICATIONS.HELP_TEXT</span><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_TX_SENT</span><div class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.txSent" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></div></label><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_TX_RECEIVED</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.txReceived" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></label></label><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_CERT_SENT</span><div class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.certSent" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></div></label><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_CERT_RECEIVED</span><div class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.certReceived" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></div></label><cs-extension-point name="common"></cs-extension-point></ion-content></ion-view>'),e.put("plugins/es/templates/settings/settings_extend.html",'<div class="item item-text-wrap item-icon-right ink" ui-sref="app.es_settings"><div class="input-label ng-binding" translate>ES_SETTINGS.PLUGIN_NAME</div><h4 class="gray" translate>ES_SETTINGS.PLUGIN_NAME_HELP</h4><i class="icon ion-ios-arrow-right"></i></div>'),e.put("plugins/es/templates/user/edit_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left assertive ink" ng-click="removeProfile()"><i class="icon ion-trash-a"></i> {{\'PROFILE.BTN_DELETE\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/user/edit_profile.html",'<ion-view left-buttons="leftButtons"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear button-assertive ion-trash-a visible-xs visible-sm" ng-click="removeProfile()" ng-if="existing"></button> <button class="button button-icon button-clear ion-android-done visible-xs visible-sm" ng-click="submitAndSaveAndClose()"></button></ion-nav-buttons><ion-content scroll="true"><div class="positive-900-bg hero"><div class="content"><i class="avatar" ng-style="avatarStyle" ng-class="{\'avatar-wallet\': !loading && !avatar && walletData && !walletData.isMember, \'avatar-member\': !loading && !avatar && walletData.isMember}"><button class="button button-positive button-large button-clear flat icon ion-camera visible-xs visible-sm" style="display: inline-block" ng-click="showAvatarModal()"></button> <button ng-if="avatar.src" class="button button-positive button-large button-clear flat visible-xs visible-sm" style="display: inline-block; left: 85px; bottom:15px" ng-click="rotateAvatar()"><i class="icon-secondary ion-image" style="left: 24px; top: 3px; font-size: 24px"></i> <i class="icon-secondary ion-forward" style="left: 26px; top: -13px"></i></button></i><h3 class="light"><ng-if ng-if="!loading && !formData.title && walletData && walletData.isMember">{{walletData.uid}}</ng-if><ng-if ng-if="!loading && !formData.title && walletData && !walletData.isMember">{{::walletData.pubkey | formatPubkey}}</ng-if><ng-if ng-if="!loading && formData.title">{{formData.title}}</ng-if></h3><h4 class="light"><ion-spinner ng-if="loading" icon="android"></ion-spinner></h4></div></div><div class="row no-padding"><div class="col"><form name="profileForm" novalidate="" ng-submit="saveAndClose()"><div class="list item-text-wrap {{::motion.ionListClass}}" ng-init="setForm(profileForm)"><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i><h4 class="positive" translate="">PROFILE.HELP.WARNING_PUBLIC_DATA</h4></div><div class="item item-divider">{{\'PROFILE.GENERAL_DIVIDER\' | translate}}</div><ion-item class="item-input item-floating-label item-button-right" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><span class="input-label">{{\'PROFILE.TITLE\' | translate}}</span> <input type="text" name="title" placeholder="{{\'PROFILE.TITLE_HELP\' | translate}}" id="profile-name" ng-model="formData.title" ng-model-options="{ debounce: 350 }" ng-maxlength="50" required></ion-item><div class="form-errors" ng-show="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG_WITH_LENGTH" translate-values="{maxLength: 50}"></span></div></div><ion-item class="item-input item-floating-label item-button-right"><span class="input-label" style="width: 100%">{{\'PROFILE.DESCRIPTION\' | translate}}</span><textarea placeholder="{{\'PROFILE.DESCRIPTION_HELP\' | translate}}" ng-model="formData.description" ng-model-options="{ debounce: 350 }" rows="4" cols="10">\n              </textarea></ion-item><ng-include src="\'plugins/es/templates/common/edit_position.html\'" ng-controller="ESPositionEditCtrl as ctrl"></ng-include></div><ng-include src="\'plugins/es/templates/common/edit_socials.html\'" ng-controller="ESSocialsEditCtrl"></ng-include><div class="list item-text-wrap {{::motion.ionListClass}}"><div class="item item-divider">{{\'PROFILE.TECHNICAL_DIVIDER\' | translate}}</div><ion-item class="item-icon-left" ng-if="walletData && walletData.uid"><span translate="">COMMON.UID</span> <span class="badge badge-stable">{{::walletData.uid}}</span></ion-item><ion-item class="item-icon-left item-icon-right item-text-wrap ink" on-hold="copy(formData.pubkey)" copy-on-click=""><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><p class="gray">{{walletData.pubkey}}</p></ion-item></div></form></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/user/items_profile.html",'<div ng-if="!formData.profile" class="item gray" translate>PROFILE.NO_PROFILE_DEFINED</div><div class="item" ng-if="formData.profile && formData.name && showName"><span class="gray" translate>PROFILE.TITLE</span><h3>{{formData.name}}</h3></div><div class="item item-text-wrap" ng-if="formData.profile.description"><span class="gray" translate>PROFILE.DESCRIPTION</span><h3 trust-as-html="formData.profile.description"></h3></div><div class="item" ng-if="formData.profile.address || formData.profile.city" copy-on-click="{{formData.profile.address ? formData.profile.address + \'&#10;\' : \'\'}}{{formData.profile.city}}"><span class="gray" translate>LOCATION.LOCATION_DIVIDER</span><h3><span class="text-keep-lines" ng-if="formData.profile.address">{{formData.profile.address}}<br></span>{{formData.profile.city}}</h3></div><div class="item" ng-if="formData.profile.socials && formData.profile.socials.length" ng-controller="ESSocialsViewCtrl"><span class="gray" translate>PROFILE.SOCIAL_NETWORKS_DIVIDER</span><div class="list no-padding"><ion-item ng-repeat="social in formData.profile.socials | filter:filterFn track by social.url " id="social-{{::social.url|formatSlug}}" class="item-icon-left item-text-wrap no-padding-bottom ink" on-tap="openSocial($event, social)"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\', \'ion-iphone\': social.type == \'phone\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}} <i class="ion-locked" ng-if="social.recipient"></i></p><h4><a on-tap="openSocial($event, social)" href="{{::social.url}}" target="_blank">{{::social.url}}</a></h4></ion-item></div></div>'),e.put("plugins/es/templates/wallet/item_wallet_extend.html",'<h4 class="dark" ng-if=":state:enable && wallet.id!=\'default\'"><a ng-if="walletData.invitations.unreadCount"><i class="dark ion-person-stalker"></i> {{walletData.invitations.unreadCount}} </a><a ng-if="walletData.messages.unreadCount" ui-sref="app.user_messages_by_id.tab_inbox({id: wallet.id})"><i class="dark ion-email"></i> {{walletData.messages.unreadCount}} </a><a ng-if="walletData.notifications.unreadCount" ui-sref="app.view_notifications_by_id({id: wallet.id})"><i class="dark ion-android-notifications"></i> {{walletData.notifications.unreadCount}}</a></h4>'),e.put("plugins/es/templates/wallet/view_wallet_extend.html",'<ng-if ng-if=":state:enable"><div class="item item-divider item-divider-top-border"><span>{{\'PROFILE.PROFILE_DIVIDER\' | translate}} <i style="font-size: 12pt; cursor: pointer" ng-click="showProfileHelp=!showProfileHelp" class="icon positive ion-ios-help-outline" title="{{\'PROFILE.PROFILE_DIVIDER_HELP\' | translate}}"></i> </span><a class="badge button button-text button-small button-small-padding" ng-if="isDefaultWallet" ui-sref="app.edit_profile"><i class="icon ion-edit"></i> <span ng-if="!formData.profile" translate>PROFILE.BTN_ADD</span> <span ng-if="formData.profile" translate>PROFILE.BTN_EDIT</span> </a><a class="badge button button-text button-small button-small-padding" ng-if="!isDefaultWallet" ui-sref="app.edit_profile_by_id({id: walletId})"><i class="icon ion-edit"></i> <span ng-if="!formData.profile" translate>PROFILE.BTN_ADD</span> <span ng-if="formData.profile" translate>PROFILE.BTN_EDIT</span></a></div><div class="item item-text-wrap positive item-small-height" ng-show="showProfileHelp"><small translate>PROFILE.PROFILE_DIVIDER_HELP</small></div><ng-include src="\'plugins/es/templates/user/items_profile.html\'" ng-init="showName=true"></ng-include><div class="item item-divider item-divider-top-border"><span>{{\'SUBSCRIPTION.SUBSCRIPTION_DIVIDER\' | translate}} <i style="font-size: 12pt; cursor: pointer" ng-click="showSubscriptionHelp=!showSubscriptionHelp" class="icon positive ion-ios-help-outline" title="{{\'SUBSCRIPTION.SUBSCRIPTION_DIVIDER_HELP\' | translate}}"></i> <span><a class="badge button button-text button-small button-small-padding" ng-if="!formData.subscriptions.count && isDefaultWallet" ui-sref="app.edit_subscriptions"><i class="icon ion-edit"></i> <span translate>SUBSCRIPTION.BTN_ADD</span> </a><a class="badge button button-text button-small button-small-padding" ng-if="!formData.subscriptions.count && !isDefaultWallet" ui-sref="app.edit_subscriptions_by_id({id: walletId})"><i class="icon ion-edit"></i> <span translate>SUBSCRIPTION.BTN_ADD</span></a></span></span></div><div class="item item-text-wrap positive item-small-height" ng-show="showSubscriptionHelp"><small translate>SUBSCRIPTION.SUBSCRIPTION_DIVIDER_HELP</small></div><div ng-if="!formData.subscriptions.count" class="item gray" translate>SUBSCRIPTION.NO_SUBSCRIPTION</div><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.subscriptions.count && isDefaultWallet" ui-sref="app.edit_subscriptions"><i class="icon ion-gear-a"></i> <span translate>SUBSCRIPTION.SUBSCRIPTION_COUNT</span> <span class="badge badge-calm">{{formData.subscriptions.count}}</span> <i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.subscriptions.count && !isDefaultWallet" ui-sref="app.edit_subscriptions_by_id({id: walletId})"><i class="icon ion-gear-a"></i> <span translate>SUBSCRIPTION.SUBSCRIPTION_COUNT</span> <span class="badge badge-calm">{{formData.subscriptions.count}}</span> <i class="gray icon ion-ios-arrow-right"></i></a><div class="item item-divider item-divider-top-border"><span>{{\'REGISTRY.WALLET.REGISTRY_DIVIDER\' | translate}} <i style="font-size: 12pt; cursor: pointer" ng-click="showPagesHelp=!showPagesHelp" class="icon positive ion-ios-help-outline" title="{{\'REGISTRY.WALLET.REGISTRY_HELP\' | translate}}"></i> <span><a class="badge button button-text button-small button-small-padding" ng-if="!formData.pages.count" ng-click="showNewPageModal()"><i class="icon ion-edit"></i> <span translate>REGISTRY.BTN_NEW</span></a></span></span></div><div class="item item-text-wrap positive item-small-height" ng-show="showPagesHelp"><small translate>REGISTRY.WALLET.REGISTRY_HELP</small></div><div ng-if="!formData.pages.count" class="item gray" translate>REGISTRY.NO_PAGE</div><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.pages.count && isDefaultWallet" ui-sref="app.wallet_pages"><i class="icon ion-social-buffer"></i> <span translate>REGISTRY.MY_PAGES</span> <span class="badge badge-calm">{{formData.pages.count}}</span> <i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.pages.count && !isDefaultWallet" ui-sref="app.wallet_pages_by_id({id: walletId})"><i class="icon ion-social-buffer"></i> <span translate>REGISTRY.MY_PAGES</span> <span class="badge badge-calm">{{formData.pages.count}}</span> <i class="gray icon ion-ios-arrow-right"></i></a></ng-if>'),e.put("plugins/es/templates/wot/lookup_extend.html",'<ion-tab ng-if=":state:enable" title="{{\'MENU.REGISTRY\'|translate}}" icon="ion-social-buffer" ui-sref="app.wot_lookup.tab_registry"><ion-nav-view name="tab_registry"></ion-nav-view></ion-tab>'),e.put("plugins/es/templates/wot/lookup_item_group.html",'<i ng-if="::!item.avatar" class="item-image icon ion-android-people"></i> <i ng-if="::!item.avatar" class="item-image icon-secondary ion-android-lock" style="left: 20px; top: 17px; font-size: 19px; color: #d9d9d9"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2 ng-bind-html=":rebind:item.name"></h2><h4 class="gray"><i class="ion-clock"></i> {{:rebind:\'GROUP.CREATED_TIME\'|translate: item }}</h4><h4 class="dark pull-left" ng-if=":rebind:item.membersCount"><i class="dark ion-person"></i> <span class="dark">+{{:rebind:item.membersCount}}</span></h4><h4 class="dark"><span class="dark" ng-if="::item.description"><i class="ion-quote"></i> {{::item.description|truncText}}</span></h4><h4 ng-if="::item.tags"><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4>'),e.put("plugins/es/templates/wot/lookup_item_page.html",'<i ng-if="::!item.avatar" class="item-image icon cion-page-{{item.type}}"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2 ng-bind-html=":rebind:item.name"></h2><h4 class="gray"><span class="gray" ng-if="::item.city"><i class="ion-location"></i> {{::item.city|truncText}} </span><span ng-if="::item.city && item.type">|</span> <span ng-if="item.type"><i class="cion-page-{{item.type}}"></i> {{::\'REGISTRY.TYPE.ENUM.\'+item.type|uppercase|translate}}</span></h4><h4 class="dark"><span class="dark" ng-if="::item.description"><i class="ion-quote"></i> {{::item.description|truncText}}</span></h4><h4 ng-if="::item.tags"><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4>'),e.put("plugins/es/templates/wot/lookup_lg_extend.html",'<div class="buttons-tabs" ng-if=":state:enable"><div class="pull-right"><div class="button button-tab dark" title="{{\'REGISTRY.BTN_SHOW_WOT_HELP\' | translate}}" nav-transition="none" active-link="active" active-link-path-prefix="#/app/wot/lg" ui-sref="app.wot_lookup_lg"><i class="icon ion-person-stalker"></i> {{\'REGISTRY.BTN_SHOW_WOT\' | translate}}</div><a class="button button-tab ink dark" title="{{\'REGISTRY.BTN_SHOW_PAGES_HELP\' | translate}}" nav-transition="none" active-link="active" active-link-path-prefix="#/app/wot/page" ui-sref="app.registry_lookup_lg"><i class="icon ion-social-buffer"></i> {{\'REGISTRY.BTN_SHOW_PAGES\' | translate}}</a></div><div class="pull-right" ng-if="showNewPageButton">&nbsp;</div></div>'),e.put("plugins/es/templates/wot/popover_certification_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-if="canCertify" ng-click="certify()"><i class="icon ion-ribbon-b"></i> {{\'WOT.BTN_CERTIFY\' | translate}} </a><a class="item item-icon-left ink" ng-if="!isUserPubkey(formData.pubkey) && formData.isMember" ng-click="askCertification()"><i class="icon-secondary ion-ribbon-b" style="left: 16px; top: 0px; font-size: 25px"></i> <b class="icon-secondary ion-help" style="left: 35px; top: 0px"></b> {{\'WOT.BTN_ASK_CERTIFICATION\' | translate}} </a><a class="item item-icon-left ink" ng-if="isUserPubkey(formData.pubkey)" ng-click="showAskCertificationModal()"><i class="icon-secondary ion-ribbon-b" style="left: 16px; top: 0px; font-size: 25px"></i> <b class="icon-secondary ion-help" style="left: 35px; top: 0px"></b> {{\'WOT.BTN_ASK_CERTIFICATIONS_DOTS\' | translate}} </a><a class="item item-icon-left ink" ng-if="!isUserPubkey(formData.pubkey)" ng-click="showSuggestCertificationModal()"><i class="icon-secondary ion-person-stalker" style="left: 16px; top: 0px; font-size: 25px"></i> <b class="icon-secondary ion-help" style="left: 37px; top: -4px"></b> {{\'WOT.BTN_SUGGEST_CERTIFICATIONS_DOTS\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/wot/view_certifications_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'nav-buttons\'"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showCertificationActionsPopover($event)"></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'buttons\'"><button class="button button-stable button-small-padding icon ion-android-more-vertical" ng-click="showCertificationActionsPopover($event)" title="{{\'COMMON.POPOVER_ACTIONS_TITLE\' | translate}}"></button></ng-if>'),e.put("plugins/es/templates/wot/view_identity_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'buttons\'"><button class="button button-stable button-small-padding icon ion-compose" ng-click="showNewMessageModal()" title="{{\'MESSAGE.BTN_WRITE\' | translate}}"></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'buttons-top-fab\'"><button id="fab-compose-{{:rebind:formData.pubkey}}" class="button button-fab button-fab-top-left button-fab-hero mini button-stable spin" style="left: 88px" ng-click="showNewMessageModal()"><i class="icon ion-compose"></i></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'after-general\'"><span class="item item-divider item-divider-top-border"><span>{{\'PROFILE.PROFILE_DIVIDER\' | translate}} <a style="font-size: 12pt; cursor: pointer" ng-click="showProfileHelp=!showProfileHelp" class="icon positive ion-ios-help-outline ink" title="{{\'PROFILE.PROFILE_DIVIDER_HELP\' | translate}}"></a></span></span><div class="item item-text-wrap positive item-small-height" ng-show="showProfileHelp"><small translate>PROFILE.PROFILE_DIVIDER_HELP</small></div><ng-include src="\'plugins/es/templates/user/items_profile.html\'" ng-init="showName=false;"></ng-include></ng-if>'),e.put("plugins/map/templates/network/item_search_tooltip.html","<a href=\"#\">\n  {{peer.dns || peer.server}}\n  <span class=\"{{peer.uid ? 'positive' : 'gray'}}\">\n    <i class=\"icon {{peer.uid ? 'ion-person' : 'ion-key'}}\"></i>\n    {{peer.uid ? (peer.name||peer.uid) : (peer.pubkey|formatPubkey) }}\n  </span>\n  <span class=\"gray\">{{peer.ipv4 ? (peer.ipv4 + ':' + peer.port) : ''}}</span>\n  <span class=\"{{peer.bma.useSsl  ? '' : 'ng-hide'}}\"><i class=\"ion-locked\"></i> <small>SSL</small></span>\n</a>\n"),e.put("plugins/map/templates/network/lookup_extend.html",'\x3c!-- FIXME issue #755 - https://git.duniter.org/clients/cesium-grp/cesium/issues/755\n<a ng-if="enable"\n   class="button button-text button-small ink hidden-sm hidden-xs"\n   title="{{\'MAP.NETWORK.LOOKUP.BTN_MAP_HELP\' | translate}}"\n        ui-sref="app.view_network_map">\n  <i class="icon ion-ios-location"></i>\n  {{\'MAP.NETWORK.LOOKUP.BTN_MAP\' | translate}}\n</a>\n --\x3e\n'),e.put("plugins/map/templates/network/view_map.html",'<ion-view left-buttons="leftButtons" class="view-map-network">\n  <ion-nav-title>\n    <span class="hidden-xs" translate>MAP.NETWORK.VIEW.TITLE</span>\n  </ion-nav-title>\n\n  <ion-nav-buttons side="secondary">\n  </ion-nav-buttons>\n\n  <ion-content data-tap-disabled="true">\n    <leaflet id="{{::mapId}}"\n             height="100%"\n             center="map.center"\n             markers="map.markers"\n             layers="map.layers">\n    </leaflet>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/map/templates/registry/item_search_tooltip.html","<a href=\"#\" class=\"{{type}}\">\n  <i class=\"{{'cion-page-' + type}}\"></i>\n  {{name != uid ? name +' ' : ''}}\n  <span class=\"gray\">\n    {{pubkey ? (pubkey|formatPubkey) : ''}}\n  </span>\n</a>\n"),e.put("plugins/map/templates/registry/lookup_lg_extend.html",'<a class="button button-text button-small ink hidden-sm hidden-xs"\n   title="{{\'MAP.REGISTRY.LOOKUP.BTN_MAP_HELP\' | translate}}"\n   ui-sref="app.view_registry_map">\n  <i class="icon ion-ios-location"></i>\n  {{\'MAP.REGISTRY.LOOKUP.BTN_MAP\' | translate}}\n</a>\n'),e.put("plugins/map/templates/registry/popup_marker.html",'<div class="item no-border no-padding item-avatar "\n     ng-if="loadingMarker">\n\n  <i class="item-image icon ion-person"></i>\n\n  <div class="item-content item-avatar-left-padding padding-top" >\n    <h2 class="stable-bg">\n      &nbsp;\n    </h2>\n    <h4 class="stable-bg col-75">\n      &nbsp;\n    </h4>\n    <h4 class="stable-bg col-50">\n      &nbsp;\n    </h4>\n  </div>\n</div>\n\n<a class="item no-border no-padding item-avatar ink animate-fade-in animate-show-hide ng-hide"\n     ng-show="!loadingMarker"\n     ui-sref="app.view_page({id: formData.id, title: formData.name})">\n  <i ng-if="formData.avatar" class="item-image avatar" style="background-image: url({{::formData.avatar.src}}"></i>\n  <i ng-if="!formData.avatar" class="item-image icon cion-page-{{::formData.type}}"></i>\n  <div class="item-content item-avatar-left-padding padding-top">\n    <h2 class="dark">\n      {{::formData.name}}\n    </h2>\n    <h4 ng-if="::formData.category" class="gray" title="{{::formData.category.name}}">\n      <b class="ion-flag"></b> {{::formData.category.name}}\n    </h4>\n    <h4 ng-if="::formData.city" class="gray" title="{{::formData.city}}">\n      <b class="ion-location"></b> {{::formData.city}}\n    </h4>\n  </div>\n</a>\n\x3c!-- buttons --\x3e\n<div class="item no-border no-padding">\n  <div class="pull-left gray">\n    \x3c!-- show description --\x3e\n    <a class="animate-fade-in animate-show-hide gray ng-hide"\n       ng-class="{\'ion-arrow-down-b\': !showDescription, \'ion-arrow-up-b\': showDescription}"\n       ng-click="showDescription=!showDescription;"\n       title="{{\'PROFILE.DESCRIPTION\'|translate}}"\n       ng-show="!loadingMarker && formData.description">\n      &nbsp;\n    </a>\n  </div>\n</div>\n<div class="item no-border no-padding item-text-wrap hidden-xs ng-hide" ng-show="showDescription">\n  <small trust-as-html="::formData.description|truncText:500"></small>\n</div>\n'),e.put("plugins/map/templates/registry/view_map.html",'<ion-view left-buttons="leftButtons" class="view-map-registry">\n  <ion-nav-title>\n    <span class="hidden-xs" translate>MAP.REGISTRY.VIEW.TITLE</span>\n  </ion-nav-title>\n\n  <ion-nav-buttons side="secondary">\n    <button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="load()">\n    </button>\n  </ion-nav-buttons>\n\n  <ion-content data-tap-disabled="true">\n    <a id="helptip-map-registry" style="left: 150px; top: 50px; position: relative;"></a>\n    <leaflet id="{{::mapId}}"\n             height="100%"\n             layers="map.layers"\n             markers="map.markers"\n             lf-center="map.center"\n             bounds="map.bounds">\n    </leaflet>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/map/templates/settings/es_settings_extend.html",'\n\x3c!--<span class="item item-divider" translate>MAP.SETTINGS.MAP_DIVIDER</span>\n\n<label class="item item-toggle dark item-text-wrap">\n  <span translate>MAP.SETTINGS.ENABLE_GOOGLE_API</span>\n  <h4 class="gray" translate>MAP.SETTINGS.ENABLE_GOOGLE_API_HELP</h4>\n  <div class="toggle toggle-royal">\n    <input type="checkbox" ng-model="formData.enableGoogleApi">\n    <div class="track">\n      <div class="handle"></div>\n    </div>\n  </div>\n</label>\n\n<ion-item class="item-input"\n          ng-if="!$root.config.plugins.es.googleApiKey"\n          ng-class="{\'item-input-error\': formData.enableGoogleApi && !formData.googleApiKey}">\n  <div class="input-label col-33">\n    <span class="" ng-class="{\'gray\': !formData.enableGoogleApi}"translate>MAP.SETTINGS.GOOGLE_API_KEY</span>\n    <h4>\n      <a ng-click="openLink($event, \'https://console.developers.google.com/apis/credentials/key\')" translate>MAP.SETTINGS.BTN_GOOGLE_API</a>\n      <span class="gray"> ({{\'MAP.SETTINGS.BTN_GOOGLE_API_WARNING\'|translate}})</span>\n    </h4>\n  </div>\n  <input type="text"\n         placeholder="{{\'MAP.SETTINGS.GOOGLE_API_KEY_PLACEHOLDER\' | translate}}"\n         ng-model="formData.googleApiKey"\n         ng-if="formData.enableGoogleApi">\n</ion-item>\n<div class="form-errors"\n     ng-show="formData.enableGoogleApi && !formData.googleApiKey">\n  <div class="form-error">\n    <span translate="ERROR.FIELD_REQUIRED"></span>\n  </div>\n</div>--\x3e\n'),e.put("plugins/map/templates/user/edit_profile_extend.html",'<div class="item no-padding hidden-xs hidden-sm {{ionItemClass}}" ng-if="formData.geoPoint && formData.geoPoint.lat && formData.geoPoint.lon">\n  <leaflet id="{{::mapId}}"\n           height="250px"\n           center="map.center"\n           markers="map.markers"\n           defaults="map.defaults">\n  </leaflet>\n</div>\n'),e.put("plugins/map/templates/wot/item_search_tooltip.html","<a href=\"#\" class=\"{{type}}\">\n  <i class=\"{{pending ? 'ion-clock': (type ? 'cion-page-' + type : '')}}\"></i>\n  {{name != uid ? name +' ' : ''}}\n  <span class=\"{{uid ? 'positive' : 'gray'}}\">\n    <i class=\"{{uid ? 'ion-person' : 'ion-key'}}\"></i>\n    {{uid ? uid : (pubkey|formatPubkey) }}\n  </span>\n</a>\n"),e.put("plugins/map/templates/wot/lookup_lg_extend.html",'<a ng-if="enable"\n   class="button button-text button-small ink hidden-sm hidden-xs"\n   title="{{\'MAP.WOT.LOOKUP.BTN_MAP_HELP\' | translate}}"\n   ui-sref="app.view_wot_map">\n  <i class="icon ion-ios-location"></i>\n  {{\'MAP.WOT.LOOKUP.BTN_MAP\' | translate}}\n</a>\n'),e.put("plugins/map/templates/wot/popup_marker.html",'\n<div class="item no-border no-padding item-avatar "\n     ng-if="loadingMarker">\n\n  <i class="item-image icon ion-person"></i>\n\n  <div class="item-content item-avatar-left-padding padding-top" >\n    <h2 class="stable-bg">\n      &nbsp;\n    </h2>\n    <h4 class="stable-bg col-75">\n      &nbsp;\n    </h4>\n    <h4 class="stable-bg col-50">\n      &nbsp;\n    </h4>\n  </div>\n</div>\n\n<a class="item no-border no-padding item-avatar ink animate-fade-in animate-show-hide ng-hide"\n   ng-show="!loadingMarker"\n   ui-sref="app.wot_identity({pubkey: formData.pubkey, uid: formData.uid})">\n\n  <i ng-if="formData.avatar" class="item-image avatar" style="background-image: url({{::formData.avatar.src}})"></i>\n  <i ng-if="!formData.avatar && formData.uid" class="item-image icon ion-person"></i>\n  <i ng-if="!formData.avatar && !formData.uid" class="item-image icon ion-card"></i>\n\n  <div class="item-content item-avatar-left-padding padding-top">\n    <h2 class="dark">\n      {{formData.name}}\n    </h2>\n    <h4>\n      <span ng-if="formData.uid" class="positive">\n        <b class="ion-person"></b>\n        {{formData.uid}}\n      </span>\n      <span class="gray" title="{{formData.pubkey}}"><b class="ion-key"></b> {{formData.pubkey|formatPubkey}}</span>\n      <span class="assertive" ng-if="!formData.isMember">\n        {{::\'WOT.NOT_MEMBER_PARENTHESIS\'|translate}}\n      </span>\n    </h4>\n    <h4 ng-if="formData.profile.city" class="gray" title="{{formData.profile.city}}">\n      <b class="ion-location"></b> {{formData.profile.city}}\n    </h4>\n  </div>\n</a>\n\x3c!-- buttons --\x3e\n<div class="item no-border no-padding">\n  <div class="pull-left gray">\n    \x3c!-- show description --\x3e\n    <a class="animate-fade-in animate-show-hide gray ng-hide"\n       ng-class="{\'ion-arrow-down-b\': !showDescription, \'ion-arrow-up-b\': showDescription}"\n       ng-click="showDescription=!showDescription;"\n       title="{{\'PROFILE.DESCRIPTION\'|translate}}"\n       ng-show="!loadingMarker && formData.profile.description">\n      &nbsp;\n    </a>\n  </div>\n  <div style="font-size: 18px;" class="pull-right gray">\n    \x3c!-- share --\x3e\n    <a class="icon ion-android-share-alt "\n       ng-click="showSharePopover($event)"\n       title="{{\'COMMON.BTN_SHARE\' | translate}}">&nbsp;</a>\n    \x3c!-- certify --\x3e\n    <a class="icon ion-ribbon-b"\n       ng-click="certify()"\n       title="{{\'WOT.BTN_CERTIFY\' | translate}}"\n       ng-hide="!canCertify">&nbsp;</a>\n    \x3c!-- compose message --\x3e\n    <a class="icon ion-compose"\n       ng-click="showNewMessageModal()"\n       title="{{\'MESSAGE.BTN_WRITE\' | translate}}">&nbsp;</a>\n    \x3c!-- transfer --\x3e\n    <a class="icon ion-card"\n       ng-click="showTransferModal({pubkey:formData.pubkey, uid: formData.name||formData.uid})"\n       title="{{\'COMMON.BTN_SEND_MONEY\' | translate}}">&nbsp;</a>\n\n  </div>\n</div>\n<div class="item no-border no-padding item-text-wrap hidden-xs ng-hide" ng-show="showDescription">\n  <small trust-as-html="formData.profile.description|truncText:500"></small>\n</div>\n'),e.put("plugins/map/templates/wot/view_map.html",'<ion-view left-buttons="leftButtons" class="view-map-wot">\n  <ion-nav-title>\n    <span class="hidden-xs" translate>MAP.WOT.VIEW.TITLE</span>\n  </ion-nav-title>\n\n  <ion-nav-buttons side="secondary">\n    <button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="load()">\n    </button>\n  </ion-nav-buttons>\n\n  <ion-content data-tap-disabled="true">\n    <a id="helptip-map-wot" style="left: 150px; top: 50px; position: relative;"></a>\n    <leaflet id="{{::mapId}}"\n             height="100%"\n             layers="map.layers"\n             markers="map.markers"\n             lf-center="map.center"\n             bounds="map.bounds">\n    </leaflet>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/graph/templates/currency/tabs/tab_blocks_stats.html",'<ion-view>\n  <ion-content>\n    <div\n       ng-include="\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n       ng-controller="GpBlockchainTxCountCtrl"\n       ng-init="setSize(500,700,false)">\n      </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/graph/templates/currency/tabs/tab_network_stats.html",'<ion-view>\n  <ion-content>\n\n    <div class="list">\n      <div class="item"\n         ng-include="\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n         ng-controller="GpBlockchainIssuersCtrl"\n           ng-init="setSize(500,700,true)">\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/graph/templates/currency/tabs/tab_parameters_stats.html",'<ion-view>\n  <ion-content>\n    <div class="list no-padding-xs no-padding-sm">\n\n      <ng-container ng-controller="GpCurrencyMonetaryMassCtrl">\n\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        \x3c!-- Monetary mass --\x3e\n        <div class="item"\n             ng-include="\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n             ng-init="setSize(500,700,true)">\n        </div>\n      </ng-container>\n\n      \x3c!-- DU --\x3e\n      <ng-container ng-controller="GpCurrencyDUCtrl">\n        <div class="item"\n             ng-include="\'plugins/graph/templates/currency/graph_du.html\'"\n             ng-init="setSize(500,700,true)">\n        </div>\n      </ng-container>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/graph/templates/currency/tabs/tab_wot_stats.html",'<ion-view>\n  <ion-content>\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <div class="list no-padding">\n      <div class="item no-padding-top"\n           ng-include="\'plugins/graph/templates/currency/graph_members_count.html\'"\n           ng-init="setSize(600,700,false)">\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/es/templates/message/tabs/tab_list.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear icon ion-android-more-vertical" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="\'plugins/es/templates/message/list.html\'"></ng-include></ion-content><div class="visible-xs visible-sm"><button ng-if="fabButtonNewMessageId" id="{{::fabButtonNewMessageId}}" class="button button-fab button-fab-bottom-right button-assertive spin has-footer" ng-click="showNewMessageModal()"><i class="icon ion-compose"></i></button></div></ion-view>'),e.put("plugins/es/templates/registry/tabs/tab_registry.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear" ng-click="showFiltersPopover($event)"><i class="icon ion-android-funnel"></i></button> <button class="button button-icon button-clear icon ion-android-more-vertical" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doSearch()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="::\'plugins/es/templates/registry/lookup_form.html\'"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_list.html\'"></ng-include></ion-content></ion-view>')}]),angular.module("cesium.es.plugin",["cesium.es.services","cesium.es.app.controllers","cesium.es.common.controllers","cesium.es.settings.controllers","cesium.es.currency.controllers","cesium.es.wot.controllers","cesium.es.wallet.controllers","cesium.es.profile.controllers","cesium.es.message.controllers","cesium.es.notification.controllers","cesium.es.blockchain.controllers","cesium.es.network.controllers","cesium.es.registry.controllers","cesium.es.group.controllers","cesium.es.invitation.controllers","cesium.es.subscription.controllers","cesium.es.document.controllers"]),X.prototype.regexp={API_REGEXP:/^([A-Z_]+)(?:[ ]+([a-z_][a-z0-9-_.ğĞ]*))?(?:[ ]+([0-9.]+))?(?:[ ]+([0-9a-f:]+))?(?:[ ]+([0-9]+))(?:\/[^\/]+)?$/,LOCAL_IP_ADDRESS:/^127[.]0[.]0.|192[.]168[.]|10[.]0[.]0[.]|172[.]16[.]/},X.prototype.keyID=function(){var e=this.ep||this.getEP();return e.useBma?[this.pubkey||"Unknown",e.dns,e.ipv4,e.ipv6,e.port,e.useSsl,e.path].join("-"):[this.pubkey||"Unknown",e.ws2pid,e.path].join("-")},X.prototype.copyValues=function(e){var t=this;["version","currency","pub","endpoints","hash","status","block","signature"].forEach((function(n){e[n]=t[n]}))},X.prototype.copyValuesFrom=function(e){var t=this;["version","currency","pub","endpoints","block","signature"].forEach((function(n){t[n]=e[n]}))},X.prototype.json=function(){var e=this,t={};return["version","currency","endpoints","status","block","signature"].forEach((function(n){t[n]=e[n]})),t.raw=this.raw&&this.getRaw(),t.pubkey=this.pubkey,t},X.prototype.getEP=function(){if(this.ep)return this.ep;var e=null,t=this.regexp.API_REGEXP;return this.endpoints.forEach((function(n){var i=!e&&t.exec(n);i&&(e={api:i[1]||"",dns:i[2]||"",ipv4:i[3]||"",ipv6:i[4]||"",port:i[5]||80,path:i[6]||"",useSsl:443==i[5]})})),e||{}},X.prototype.getEndpoints=function(e){return e?("string"==typeof e&&(e=new RegExp("^"+e)),this.endpoints.reduce((function(t,n){return n.match(e)?t.concat(n):t}),[])):this.endpoints},X.prototype.hasEndpoint=function(e){var t=this.regexp[e]||new RegExp("^"+e),n=this.getEndpoints(t);return n&&n.length>0},X.prototype.hasEsEndpoint=function(){var e=this.getEsEndpoints();return e&&e.length>0},X.prototype.getEsEndpoints=function(){return this.getEndpoints(/^(ES_CORE_API|ES_USER_API|ES_SUBSCRIPTION_API|GCHANGE_API)/)},X.prototype.getDns=function(){var e=this.ep||this.getEP();return e.dns?e.dns:null},X.prototype.getIPv4=function(){var e=this.ep||this.getEP();return e.ipv4?e.ipv4:null},X.prototype.getIPv6=function(){var e=this.ep||this.getEP();return e.ipv6?e.ipv6:null},X.prototype.getPort=function(){var e=this.ep||this.getEP();return e.port?e.port:null},X.prototype.getHost=function(){var e=this.ep||this.getEP();return(443==e.port||e.useSsl)&&e.dns?e.dns:this.hasValid4(e)?e.ipv4:e.dns?e.dns:e.ipv6?"["+e.ipv6+"]":""},X.prototype.getURL=function(){var e=this.ep||this.getEP(),t=this.getHost();return(443==e.port||e.useSsl?"https":"http")+"://"+t+(e.port?":"+e.port:"")},X.prototype.getServer=function(){var e=this.ep||this.getEP(),t=this.getHost();return t+(t&&e.port?":"+e.port:"")},X.prototype.hasValid4=function(e){return!(!e.ipv4||e.ipv4.match(this.regexp.LOCAL_IP_ADDRESS))},X.prototype.isReachable=function(){return!!this.getServer()},X.prototype.isSsl=function(){return(this.ep||this.getEP()).useSsl},X.prototype.isTor=function(){return(this.ep||this.getEP()).useTor},X.prototype.isHttp=function(){return this.ep||this.getEP(),!bma.useTor},angular.module("cesium.es.services",["cesium.es.http.services","cesium.es.comment.services","cesium.es.social.services","cesium.es.settings.services","cesium.es.crypto.services","cesium.es.profile.services","cesium.es.notification.services","cesium.es.message.services","cesium.es.modal.services","cesium.es.blockchain.services","cesium.es.registry.services","cesium.es.group.services","cesium.es.wallet.services","cesium.es.invitation.services","cesium.es.subscription.services","cesium.es.wot.services","cesium.es.tx.services","cesium.es.geo.services","cesium.es.document.services","cesium.es.network.services"]),angular.module("cesium.es.comment.services",["ngResource","cesium.services","cesium.es.http.services","cesium.es.profile.services"]).factory("esComment",["$rootScope","$q","UIUtils","BMA","esHttp","csWallet","csWot",function(e,t,n,i,a,o,r){return{instance:function(n){var i={commons:["issuer","creationTime","time","message","reply_to"]},s={index:n,fields:{commons:i.commons},raw:{search:a.post("/"+n+"/comment/_search"),remove:a.record.remove(n,"comment"),wsChanges:a.ws("/ws/_changes"),add:new a.record.post("/"+n+"/comment",{creationTime:!0}),update:new a.record.post("/"+n+"/comment/:id/_update",{creationTime:!0})}};return s.raw.refreshTreeLinks=function(e){return s.raw.addTreeLinks(e,!0)},s.raw.addTreeLinks=function(e,n){(e=e||{}).result=e.result||[],e.mapById=e.mapById||{};var o={};if(_.forEach(_.values(e.mapById),(function(t){if(t.reply_to&&!t.parent){var i=e.mapById[t.reply_to];i||(i=new z(t.reply_to),o[i.id]=t.id,e.mapById[i.id]=i),n&&i.containsReply(t)||i.addReply(t)}})),!_.size(o)){var r=t.defer();return r.resolve(e),r.promise}var l={query:{terms:{_id:_.keys(o)}},sort:[{creationTime:{order:"desc"}},{time:{order:"desc"}}],from:0,size:1e3,_source:i.commons};return console.debug("[ES] [comment] Getting missing comments in tree"),s.raw.search(l).then((function(t){return t.hits.total?(_.forEach(t.hits.hits,(function(t){var n=e.mapById[t._id];n.copyFromJson(t._source),n.html=a.util.parseAsHtml(n.message),delete o[n.id]})),_.size(o)&&console.error("Comments has invalid [reply_to]: "+_.values(o).join(",")),s.raw.addTreeLinks(e)):(console.error("[ES] [comment] Comments has invalid [reply_to]: "+_.values(o).join(",")),e)}))},s.raw.loadDataByRecordId=function(e,t){(t=t||{}).from=t.from||0,t.size=t.size||20,t.loadAvatar=!angular.isDefined(t.loadAvatar)||t.loadAvatar,t.loadAvatarAllParent=!!angular.isDefined(t.loadAvatarAllParent)&&t.loadAvatar&&t.loadAvatarAllParent,t.size<0&&(t.size=1e3);var n={query:{term:{record:e}},sort:[{creationTime:{order:"desc"}},{time:{order:"desc"}}],from:t.from,size:t.size,_source:i.commons},o={total:0,mapById:{},result:[],pendings:{}};return s.raw.search(n).then((function(e){return e.hits.total?(o.total=e.hits.total,o.result=e.hits.hits.reduce((function(e,t){var n=new z(t._id,t._source);return n.html=a.util.parseAsHtml(n.message),o.mapById[n.id]=n,e.concat(n)}),o.result),s.raw.addTreeLinks(o)):o})).then((function(){if(t.loadAvatar)return t.loadAvatarAllParent?r.extendAll(_.values(o.mapById),"issuer"):r.extendAll(o.result,"issuer")})).then((function(){return o.result=o.result.sort((function(e,t){return e.creationTime-t.creationTime})),o}))},s.raw.createOnDeleteListener=function(e){return function(n){var i=_.findIndex(e.result,{id:n.id});if(-1!==i)return e.result.splice(i,1),delete e.mapById[n.id],(o.isUserPubkey(n.issuer)?o:o.children.getByPubkey(n.issuer))?s.raw.remove(n.id).catch((function(e){throw console.error(e),new Error("COMMENTS.ERROR.FAILED_REMOVE_COMMENT")})):t.reject("No wallet found corresponding to the comment issuer")}},s.raw.startListenChanges=function(t,i,l){(i=i||{}).result=i.result||[],i.mapById=i.mapById||{},i.pendings=i.pendings||{},l=l||e;var c=s.raw.createOnDeleteListener(i);_.forEach(i.result,(function(e){e.addOnRemoveListener(c)}));var u=Date.now();console.info("[ES] [comment] Starting websocket to listen comments on [{0}/record/{1}]".format(n,t.substr(0,8)));var d=a.websocket.changes(n+"/comment");return d.open().then((function(){console.debug("[ES] [comment] Websocket opened in {0} ms".format(Date.now()-u)),d.on((function(e){e&&l.$applyAsync((function(){var n=i.mapById[e._id];"DELETE"===e._operation?n&&n.remove():e._source&&e._source.record===t&&(n?(n.copyFromJson(e._source),n.html=a.util.parseAsHtml(n.message),s.raw.refreshTreeLinks(i)):i.pendings&&i.pendings[e._source.creationTime]||e._source.issuer==o.data.pubkey?console.debug("Skip comment received by WS (already in pending)"):((n=new z(e._id,e._source)).addOnRemoveListener(c),n.isnew=!0,n.html=a.util.parseAsHtml(n.message),i.mapById[e._id]=n,s.raw.refreshTreeLinks(i).then((function(){return r.extend(n,"issuer")})).then((function(){i.result.push(n)}))))}))}))}))},s.raw.save=function(e,t,n){(t=t||{}).result=t.result||[],t.mapById=t.mapById||{},t.pendings=t.pendings||{};var i,r=n.id,l={creationTime:r?n.creationTime||n.time:moment().utc().unix(),message:n.message,record:e,issuer:o.data.pubkey};return n.reply_to||n.parent?l.reply_to=n.reply_to||n.parent.id:l.reply_to=null,r?(i=t.mapById[r]).copy(n):((i=new z(null,l)).addOnRemoveListener(s.raw.createOnDeleteListener(t)),i.uid=o.data.uid,i.name=o.data.name,i.avatar=o.data.avatar,i.isnew=!0,n.parent&&n.parent.addReply(i),t.result.push(i)),i.html=a.util.parseAsHtml(i.message),r?s.raw.update(l,{id:r}).then((function(){return i})):(t.pendings=t.pendings||{},t.pendings[l.creationTime]=l,s.raw.add(l).then((function(e){return i.id=e,t.mapById[e]=i,delete t.pendings[l.creationTime],i})))},s.raw.stopListenChanges=function(e){console.debug("[ES] [comment] Stopping websocket on comments"),_.forEach(e.result,(function(e){e.cleanAllListeners()})),s.raw.wsChanges().close()},s.load=s.raw.loadDataByRecordId,s.save=s.raw.save,s.changes={start:s.raw.startListenChanges,stop:s.raw.stopListenChanges},s}}}]),angular.module("cesium.es.http.services",["ngResource","ngApi","cesium.services","cesium.config"]).factory("esHttp",["$q","$timeout","$rootScope","$state","$sce","$translate","$window","$filter","CryptoUtils","UIUtils","csHttp","csConfig","csSettings","csCache","BMA","csWallet","csPlatform","Api",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,f){var T=!!("true"===d.httpsMode||!0===d.httpsMode||"force"===d.httpsMode||r.location&&"https:"===r.location.protocol);function h(i,a,r,h){var v,I,N=this,O={ES_USER_API:"ES_USER_API",ES_SUBSCRIPTION_API:"ES_SUBSCRIPTION_API",ES_USER_API_ENDPOINT:"ES_USER_API( ([a-z_][a-z0-9-_.]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))",ANY_API_ENDPOINT:"([A-Z_]+)(?:[ ]+([a-z_][a-z0-9-_.ğĞ]*))?(?:[ ]+([0-9.]+))?(?:[ ]+([0-9a-f:]+))?(?:[ ]+([0-9]+))(?:\\/[^\\/]+)?",MAX_UPLOAD_BODY_SIZE:d.plugins&&d.plugins.es&&d.plugins.es.maxUploadBodySize||2097152},R={IMAGE_SRC:P("data:([A-Za-z//]+);base64,(.+)"),URL:k("(www\\.|https?://(www\\.)?)[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)"),HASH_TAG:k("(?:^|[\t\n\rs ])#([0-9_-\\wḡĞǦğàáâãäåçèéêëìíîïðòóôõöùúûüýÿ]+)"),USER_TAG:k("(?:^|[\t\n\rs ])@("+E.constants.regexp.USER_ID+")"),ES_USER_API_ENDPOINT:P(O.ES_USER_API_ENDPOINT),API_ENDPOINT:P(O.ANY_API_ENDPOINT)},A=0,S=s("truncUrl");function C(e,t,n,i){!e&&p.data&&(e=e||(p.data.plugins&&p.data.plugins.es?p.data.plugins.es.host:null),t=t||(e?p.data.plugins.es.port:null),n=angular.isDefined(n)?n:443==t||p.data.plugins.es.useSsl||T),N.alive=!1,N.host=e,N.port=t||(n||T?443:80),N.useSsl=angular.isDefined(n)?n:443==N.port||T,N.server=u.getServer(e,t)}function L(e){if(!(e=e||p.data).plugins||!e.plugins.es)return!1;var t=e.plugins.es.host,n=443==e.plugins.es.port||e.plugins.es.useSsl||T;return D(t,e.plugins.es.port||(n?443:80),n)}function D(e,t,n){return N.host===e&&N.port===t&&(angular.isUndefined(n)||n==N.useSsl)}function y(e){N.data.isFallback=e}function P(e){return new RegExp("^"+e+"$")}function k(e){return new RegExp(e)}function M(t,n){return n=n||e.defer(),N.data.isFallback&&N.started&&N.stop(),N.data.isFallback=!1,I=null,n.resolve(t),n.promise}function w(e,t){for(var n="@"===(t=t||"#")?R.USER_TAG:R.HASH_TAG,i=e&&n.exec(e),a=i&&[];i;){var o=i[1];_.contains(a,o)||a.push(o),i=(e=e.substr(i.index+i[1].length+1)).length>0&&n.exec(e)}return a}N.data={isFallback:!1},N.cache={getByPath:{},postByPath:{},wsByPath:{}},N.api=new f(this,"esHttp"),N.started=!1,N.init=C,C(i,a,r),N.useCache=!!angular.isDefined(h)&&h,N.cleanCache=function(){console.debug("[ES] [http] Cleaning requests cache..."),_.keys(N.cache.wsByPath).forEach((function(e){N.cache.wsByPath[e].close()})),N.cache={getByPath:{},postByPath:{},wsByPath:{}},m.clear("esHttp-")},N.copy=function(e){return N.started&&N.stop(),N.init(e.host,e.port,e.useSsl||443==e.port),N.data.isTemporary=!1,N.start(!0)},N.date={now:u.date.now},N.byteCount=function(e){return e="string"==typeof e?e:JSON.stringify(e),encodeURI(e).split(/%(?:u[0-9A-F]{2})?[0-9A-F]{2}|./).length-1},N.getUrl=function(e){return u.getUrl(N.host,N.port,e,N.useSsl)},N.get=function(t,n){n=N.useCache&&n;var i=t+(n?"#"+n:""),a=function(o){if(!N.started)return N._startPromise||console.warn("[ES] [http] Trying to get [{0}] before start(). Waiting...".format(t)),N.ready().then((function(t){return t?a(o):e.reject("ERROR.ES_CONNECTION_ERROR")}));var r=N.cache.getByPath[i];return r||(r=n?u.getWithCache(N.host,N.port,t,N.useSsl,n,null,null,"esHttp-"):u.get(N.host,N.port,t,N.useSsl),N.cache.getByPath[i]=r),r(o)};return a},N.post=function(t){var n=function(i,a){if(!N.started)return N._startPromise||console.error("[ES] [http] Trying to post [{0}] before start()...".format(t)),N.ready().then((function(t){return t?n(i,a):e.reject("ERROR.ES_CONNECTION_ERROR")}));var o=N.cache.postByPath[t];return o||(o=u.post(N.host,N.port,t,N.useSsl),N.cache.postByPath[t]=o),o(i,a)};return n},N.ws=function(e){return function(){var t=N.cache.wsByPath[e];return t||(t=u.ws(N.host,N.port,e,N.useSsl),N.cache.wsByPath[e]=t),t}},N.wsChanges=function(e){var t=N.ws("/ws/_changes")();if(!e)return t;var n=t.open;return t.open=function(){return n.call(t).then((function(t){t?t.send(e):console.warn("Trying to access ws changes, but no sock anymore... already open ?")}))},t},N.isAlive=function(){return u.get(N.host,N.port,"/node/summary",N.useSsl)().then((function(e){var t=e&&e.duniter&&e.duniter.software||"unknown";return"cesium-plus-pod"===t||"duniter4j-elasticsearch"===t||(console.error("[ES] [http] Not a Cesium+ Pod, but a {0} node. Please check '/node/summary'".format(t)),!1)})).catch((function(){return!1}))},N.checkNodeAlive=function(e){if(e)return y(!L()),!0;if(angular.isUndefined(e))return N.isAlive().then(N.checkNodeAlive);var t=p.data.plugins&&p.data.plugins.es||{};I=I||{host:t.host,port:t.port};var n=t.fallbackNodes&&A<t.fallbackNodes.length&&t.fallbackNodes[A++];if(!n)return o("ERROR.ES_CONNECTION_ERROR",{server:N.server}).then(c.alert.info),!1;var i=u.getServer(n.host,n.port);return c.loading.hide(),o("CONFIRM.ES_USE_FALLBACK_NODE",{old:N.server,new:i}).then(c.alert.confirm).then((function(e){return!!e&&(N.cleanCache(),N.init(n.host,n.port,n.useSsl||443==n.port),N.isAlive().then(N.checkNodeAlive))}))},N.isStarted=function(){return N.started},N.ready=function(){return N.started?e.when(!0):N._startPromise||N.start()},N.start=function(t){return N._startPromise?N._startPromise:N.started?e.when(N.alive):(N._startPromise=g.ready().then((function(){t||N.init()})).then((function(){console.debug("[ES] [http] Starting on [{0}]{1}...".format(N.server,N.useSsl?" (SSL on)":""));var e=Date.now();return N.checkNodeAlive().then((function(t){return N.alive=t,t?(v=[p.api.data.on.reset(n,M,N)],console.debug("[ES] [http] Started in "+(Date.now()-e)+"ms"),N.api.node.raise.start(),N.started=!0,delete N._startPromise,A=0,!0):(console.error("[ES] [http] Could not start [{0}]: node unreachable".format(N.server)),N.started=!0,delete N._startPromise,A=0,!1)}))})),N._startPromise)},N.stop=function(){return console.debug("[ES] [http] Stopping..."),_.forEach(v,(function(e){e()})),v=[],y(!1),delete N._startPromise,N.alive?(N.cleanCache(),N.alive=!1,N.started=!1,N.api.node.raise.stop()):N.started=!1,e.when()},N.restart=function(){return N.stop(),t(N.start,200)},N.image={},N.image.fromHit=function(e,t){if(e&&e._source){var n=e._source[t];if(n&&n._content_type&&n._content_type.startsWith("image/")){var i={};if(n._content)i.src="data:"+n._content_type+";base64,"+n._content;else{var a=n._content_type.substr(6),o=[e._index,e._type,e._id,"_image",t].join("/");o="/"+o+"."+a,i.src=N.getUrl(o)}return n._title&&(i.title=n._title),n._name&&(i.name=n._name),i}}},N.api.registerEvent("node","start"),N.api.registerEvent("node","stop");var U={getServer:u.getServer,node:{summary:N.get("/node/summary"),parseEndPoint:function(e){var t=R.API_ENDPOINT.exec(e);if(t)return{api:t[1]||"",dns:t[2]||"",ipv4:t[3]||"",ipv6:t[4]||"",port:t[5]||80,path:t[6]||"",useSsl:443==t[5]}},same:D,sameAsSettings:L,isFallback:function(){return N.data.isFallback}},websocket:{changes:N.wsChanges,block:N.ws("/ws/block"),peer:N.ws("/ws/peer")},wot:{member:{uids:N.get("/wot/members")}},network:{peering:{self:N.get("/network/peering")},peers:N.get("/network/peers")},record:{post:function(t,n){n=n||{};var i=N.post(t);return function(t,n){var a=(n=n||{}).wallet||n.walletId&&b.children.get(n.walletId)||(!n.pubkey||b.isUserPubkey(n.pubkey))&&b||n.pubkey&&b.children.getByPubkey(n.pubkey),o=n.keypair||a&&a.data&&a.data.keypair;if(!o&&!a)throw new Error("Missing wallet or keypair, to sign record");delete n.wallet,delete n.walletId,delete n.keypair;var r=angular.copy(n);return r.pubkey=r.pubkey||a.data.pubkey,(a.isAuth()?e.when(a.data):a.auth({silent:!0,minData:!0})).then((function(){n.creationTime&&!t.creationTime&&(t.creationTime=moment().utc().unix());var e=moment().utc().unix();t.time=!t.time||t.time<e?e:t.time+1;var a=angular.copy(t);delete a.signature,delete a.hash,a.issuer=r.pubkey,a.version||(a.version=2),n.tagFields&&function(e,t){t=t||["title","description"],e.tags=t.reduce((function(t,n){var i=e[n],a=i&&w(i);return a?t.concat(a):t}),[])}(a,n.tagFields);var s=JSON.stringify(a);return l.util.hash(s).then((function(e){return l.sign(e,o).then((function(t){return s='{"hash":"{0}","signature":"{1}",'.format(e,t)+s.substring(1),i(s,r).then((function(e){return m.clear("esHttp-"),e})).catch((function(e){var t=N.byteCount(a);if(t>O.MAX_UPLOAD_BODY_SIZE)throw{message:"ERROR.ES_MAX_UPLOAD_BODY_SIZE",length:t};throw e}))}))}))}))}},remove:function(t,n){return function(i,a){var o=(a=a||{}).wallet||a.walletId&&b.children.get(a.walletId)||b;return(o.isAuth()?e.when(o.data):o.auth({silent:!0,minData:!0})).then((function(e){var a={version:2,index:t,type:n,id:i,issuer:e.pubkey,time:moment().utc().unix()},o=JSON.stringify(a);return l.util.hash(o).then((function(t){return l.sign(t,e.keypair).then((function(e){return o='{"hash":"{0}","signature":"{1}",'.format(t,e)+o.substring(1),N.post("/history/delete")(o).then((function(e){return e}))}))}))}))}},count:function(e,t){return N.get("/{0}/{1}/_search?size=0".format(e,t)).then((function(e){return e&&e.hits&&e.hits.total}))}},image:{fromAttachment:function(e){if(!e||!e._content_type||!e._content||0===e._content.length)return null;var t={src:"data:"+e._content_type+";base64,"+e._content};return e._title&&(t.title=e._title),e._name&&(t.name=e._name),t},toAttachment:function(e){if(!e||!e.src)return null;var t=R.IMAGE_SRC.exec(e.src);if(!t)return null;var n={_content_type:t[1],_content:t[2]};return e.title&&(n._title=e.title),e.name&&(n._name=e.name),n}},hit:{empty:function(){return{_id:null,_index:null,_type:null,_version:null,_source:{}}}},util:{parseTags:w,parseAsHtml:function(e,t){var n=e?function(e){return e?e.replace(/</g,"&lt;").replace(/>/g,"&gt;"):e}(e.trim()):void 0;if(n){(t=t||{}).tagState=t.tagState||"app.wot_lookup.tab_search",t.uidState=t.uidState||"app.wot_identity_uid",!t.newLine&&angular.isDefined(t.newLine)||(n=n.replace(/\n/g,"<br>\n"));var i=function(e){for(var t=e&&R.URL.exec(e),n=t&&[];t;){var i=t[0];_.contains(n,i)||n.push(i),t=(e=e.substr(t.index+t[0].length+1))&&R.URL.exec(e)}return n}(n);_.forEach(i,(function(e){var t=e.startsWith("http://")||e.startsWith("https://")?e:"http://"+e,i='<a on-tap="openLink($event, \'{0}\')" href="{1}" target="_blank">{2}</a>'.format(t,t,S(e));n=n.replace(e,i)}));var a=w(n);_.forEach(a,(function(e){var i="<a ui-sref=\"{0}({hash: '{1}'})\">#{2}</a>".format(t.tagState,e,e);n=n.replace("#"+e,i)}));var o=w(n,"@");_.forEach(o,(function(e){var i="<a ui-sref=\"{0}({uid: '{1}'})\">@{2}</a>".format(t.uidState,e,e);n=n.replace("@"+e,i)}));var r=function(e,t,n){for(var i=k("(?:^|[\\r\\s])("+(t=t||"##")+"([^#></]+)<br>)"),a=e&&i.exec(e),o=a&&[],r=a&&[];a;){var s=a[1];_.contains(o,s)||(o.push(s),r.push({line:s,title:a[2]})),a=(e=e.substr(a.index+a[1].length+1)).length>0&&i.exec(e)}return r}(n,"#+[ ]*");_.forEach(r,(function(e){var t=e.line.lastIndexOf("#",5)+1;n=n.replace(e.line,"<h{0}>{1}</h{2}>".format(t,e.title,t))}))}return n},findObjectInTree:function e(t,n){if(t)return t[n]?t[n]:Array.isArray(t)?t.reduce((function(t,i){return t||e(i,n)}),!1):"object"==typeof t?_.reduce(_.keys(t),(function(i,a){return i||e(t[a],n)}),!1):void 0}},cache:u.cache,constants:O};U.constants.regexp=R,angular.merge(N,U)}T&&console.debug("[ES] [https] Enable SSL (forced by config or detected in URL)");var v=new h(void 0,void 0,void 0,!0);return v.instance=function(e,t,n,i){return new h(e,t,n,i)},v.lightInstance=function(e,t,n,i){function a(n,i){return u.get(e,t,n)(i).then((function(e){return e&&e.hits&&e.hits.total}))}return t=t||80,n=angular.isDefined(n)?n:443==t,{host:e,port:t,useSsl:n,node:{summary:u.getWithCache(e,t,"/node/summary",n,u.cache.LONG,!1,i)},network:{peering:{self:u.get(e,t,"/network/peering",n,i)},peers:u.get(e,t,"/network/peers",n,i)},blockchain:{current:u.get(e,t,"/blockchain/current?_source=number,hash,medianTime",n,i)},record:{count:function(e,t){return a("/{0}/{1}/_search?size=0".format(e,t))}},subscription:{count:function(e){return a("/subscription/record/_search?size=0&q="+_.keys(e||{}).reduce((function(t,n){return(t&&t+" AND "||"")+n+":"+e[n]}),""))}}}},v}]),angular.module("cesium.es.settings.services",["cesium.services","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esSettings")}]).factory("esSettings",["$rootScope","$q","$timeout","Api","esHttp","csConfig","csSettings","CryptoUtils","Device","UIUtils","csWallet",function(e,t,n,i,a,o,r,s,l,c,u){var d,p,m={includes:["locale","showUDHistory","useRelative","useLocalStorage","useLocalStorageEncryption","expertMode","logoutIdle","blockValidityWindow"],excludes:["timeout","cacheTimeMs","version","build","minVersion","fallbackLanguage"],plugins:{es:{excludes:["enable","host","port","useSsl","fallbackNodes","enableGoogleApi","googleApiKey","document","maxUploadBodySize","defaultCountry"],notifications:{}}},wallet:{includes:["alertIfUnusedWallet"],excludes:["notificationReadTime"]},helptip:{excludes:["installDocUrl"]},notifications:{excludes:["time","warnCount","unreadCount"]}},E=angular.merge({plugins:{es:{askEnable:!1,useRemoteStorage:!0,notifications:{txSent:!0,txReceived:!0,certSent:!0,certReceived:!0,emitHtml5:!1},invitations:{readTime:!0},defaultCountry:void 0,enableGoogleApi:!1,googleApiKey:void 0,wot:{enableMixedSearch:!0},document:{index:"user,page,group",type:"profile,record,comment"},registry:{defaultSearch:{location:null,geoPoint:null}},geoDistance:"20km"}}},{plugins:{es:o.plugins&&o.plugins.es||{}}}),b=this,g=new i("esSettings"),f=!1,T=!1;function h(e,n){return n=n||t.defer(),angular.merge(e,E),T=!1,n.resolve(e),n.promise}function v(e,n){return n=n||t.defer(),e&&e.pubkey&&e.keypair&&e.keypair.signSk&&e.keypair.boxSk?(console.debug("[ES] [settings] Loading user settings..."),function(e,t){var n=Date.now();return b.get({id:e}).catch((function(e){if(e&&e.ucode&&404==e.ucode)return null;throw e})).then((function(e){if(e&&e._source){var i=e._source;if(i.time!==r.data.time){var a=s.util.decode_base58(i.nonce);return s.box.open(i.content,a,t.boxPk,t.boxSk).then((function(e){var t=JSON.parse(e||"{}");return t.time=i.time,console.debug("[ES] [settings] Loaded and decrypted in "+(Date.now()-n)+"ms"),t})).catch((function(e){return console.error("[ES] [settings] Could not load remote settings: "+(e&&e.message||"decryption error")),delete r.data.time,null}))}console.debug("[ES] [settings] Loaded in "+(Date.now()-n)+"ms, but already up to date")}}))}(e.pubkey,e.keypair).then((function(e){if(e)return angular.merge(r.data,e),d=e,console.debug("[ES] [settings] Applied"),N()})).then((function(){n.resolve(e)})).catch((function(e){n.reject(e)})),n.promise):(n.resolve(),n.promise)}function I(e){if(!f){var n=p&&p.length>0;!a.isStarted()||a.node.isFallback()||a.node.sameAsSettings(e)||(O(),a.stop()),R(),b.isEnable()&&u.isAuth()&&(n?function(e){var n=function e(t,n){var i={};return n.includes&&_.forEach(_.keys(n),(function(e){"includes"!=e&&"excludes"!=e&&n.includes.push(e)})),_.forEach(_.keys(t),(function(a){n.includes&&!_.contains(n.includes,a)||n.excludes&&_.contains(n.excludes,a)||(t[a]&&"object"==typeof t[a]&&n[a]&&"object"==typeof n[a]?i[a]=e(t[a],n[a]):i[a]=t[a])})),i}(e,m);if(d&&angular.equals(n,d))return t.when();if(!r.data.plugins.es.useRemoteStorage)return N();var i=moment().utc().unix();console.debug("[ES] [settings] Saving user settings remotely..."),t.all([u.getKeypair(),s.util.random_nonce()]).then((function(t){var a=t[0],o=t[1];if(a.boxPk&&a.boxSk){var r={issuer:u.data.pubkey,nonce:s.util.encode_base58(o),time:i},l=JSON.stringify(n);return s.box.pack(l,o,a.boxPk,a.boxSk).then((function(t){return r.content=t,angular.isUndefined(e.time)?b.add(r):b.update(r,{id:r.issuer}).catch((function(e){if(e&&404==e.ucode)return b.add(r);throw e}))})).then((function(){return!0}))}})).then((function(t){if(t)return e.time=i,d=n,console.debug("[ES] [settings] Saved user settings remotely in "+(moment().utc().unix()-i)+"ms"),N()})).catch((function(e){throw console.error(e),e}))}(e):v(u.data))}}function N(){return f?t.when():(f=!0,r.store().then((function(){f=!1})).catch((function(e){throw f=!1,e})))}function O(){_.forEach(p,(function(e){e()})),p=[]}function R(){var t=b.isEnable();return!t&&p&&p.length>0?(console.debug("[ES] [settings] Disable"),O(),a.stop().then((function(){g.state.raise.changed(t)}))):!t||p&&0!==p.length&&a.isStarted()?void 0:a.start().then((function(n){return n?(console.debug("[ES] [settings] Enable"),function(){p=[r.api.data.on.reset(e,h,this),u.api.data.on.auth(e,v,this)]}(),u.isAuth()?v(u.data).then((function(){g.state.raise.changed(t)})):void g.state.raise.changed(t)):(r.data.plugins.es.enable=!1,r.data.plugins.es.askEnable=!0,T=!0,g.state.raise.changed(!1),void console.error("[ES] [settings] Disable, has ES node could not be started"))}))}return b.api=g,b.get=a.get("/user/settings/:id"),b.add=a.record.post("/user/settings"),b.update=a.record.post("/user/settings/:id/_update"),b.isEnable=function(){return r.data.plugins&&r.data.plugins.es&&r.data.plugins.es.enable&&!!r.data.plugins.es.host},b.notifications={},b.notifications.isEmitHtml5Enable=function(){return!!(b.isEnable()&&r.data.plugins.es.notifications&&angular.isDefined(r.data.plugins.es.notifications.emitHtml5))&&r.data.plugins.es.notifications.emitHtml5},b.wot={},b.wot.isMixedSearchEnable=function(){return b.isEnable()&&(!angular.isDefined(r.data.plugins.es.wot&&r.data.plugins.es.wot.enableMixedSearch)||r.data.plugins.es.wot.enableMixedSearch)},g.registerEvent("state","changed"),r.ready().then((function(){return r.api.data.on.changed(e,I,this),a.api.node.on.stop(e,(function(){d=null}),this),R()})).then((function(){if(!T&&o.plugins&&o.plugins.es&&o.plugins.es.askEnable&&!b.isEnable()&&r.data.plugins.es.askEnable)return c.alert.confirm("ES_SETTINGS.CONFIRM.ASK_ENABLE","ES_SETTINGS.CONFIRM.ASK_ENABLE_TITLE",{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES"}).then((function(e){return e&&(r.data.plugins.es.enable=!0),r.data.plugins.es.askEnable=!1,r.store()}))})),b}]),angular.module("cesium.es.registry.services",["ngResource","cesium.services","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esRegistry")}]).factory("esRegistry",["$rootScope","$q","csPlatform","csSettings","csWallet","csWot","esHttp","esComment","esGeo",function(e,t,n,i,a,o,r,s,l){var c,u={commons:["title","description","issuer","time","address","city","creationTime","avatar._content_type","picturesCount","type","category","socials","pubkey","geoPoint"]},d=this;function p(e){e.pages=null}function m(e,n){return n=n||t.defer(),e&&e.pubkey&&e.keypair?(console.debug("[ES] [registry] Loading pages count..."),d.raw.count({pubkey:e.pubkey}).then((function(t){e.pages=e.pages||{},e.pages.count=t&&t.hits&&t.hits.total,console.debug("[ES] [registry] Loaded pages count ("+e.pages.count+")"),n.resolve(e)})).catch((function(t){console.error("[ES] [registry] Error while counting page: "+(t.message?t.message:t)),n.resolve(e)})),n.promise):(n.resolve(),n.promise)}function E(){if(d.raw.categories&&d.raw.categories.length){var e=t.defer();return e.resolve(d.raw.categories),e.promise}return d.raw.category.all().then((function(e){if(0===e.hits.total)d.raw.categories=[];else{var t=e.hits.hits.reduce((function(e,t){var n=t._source;return n.id=t._id,e.concat(n)}),[]);_.forEach(t,(function(e){t[e.id]=e})),d.raw.categories=t}return d.raw.categories}))}function b(e,t){if(e){var n=e._source;return n.category&&n.category.id&&(n.category=t[n.category.id]),e.highlight&&(e.highlight.title&&(n.title=e.highlight.title[0]),e.highlight.description&&(n.description=e.highlight.description[0]),e.highlight.location&&(n.location=e.highlight.location[0]),e.highlight.tags&&(n.tags=e.highlight.tags.reduce((function(e,t){return e.concat(t.replace("<em>","").replace("</em>",""))}),[]))),n.avatar=r.image.fromHit(e,"avatar"),e._source.pictures&&e._source.pictures.reduce&&(n.pictures=e._source.pictures.reduce((function(e,t){return e.concat(r.image.fromAttachment(t.file))}),[])),n}}function g(){var t=r.alive;if(!t&&c&&c.length>0){if(console.debug("[ES] [subscription] Disable"),_.forEach(c,(function(e){e()})),c=[],a.isLogin())return p(a.data)}else if(t&&(!c||0===c.length)&&(console.debug("[ES] [subscription] Enable"),function(){c=[a.api.data.on.load(e,m,this),a.api.data.on.init(e,p,this),a.api.data.on.reset(e,p,this)]}(),a.isLogin()))return m(a.data)}return d.raw={count:r.get("/page/record/_search?size=0&q=issuer::pubkey"),searchText:r.get("/page/record/_search?q=:search"),search:r.post("/page/record/_search"),get:r.get("/page/record/:id"),getCommons:r.get("/page/record/:id?_source="+u.commons.join(",")),category:{get:r.get("/page/category/:id"),all:r.get("/page/category/_search?sort=order&from=0&size=1000&_source=name,parent")}},n.ready().then((function(){return r.api.node.on.start(e,g,this),r.api.node.on.stop(e,g,this),g()})),d.category={all:E,get:function(e){return d.raw.category.get(e).then((function(e){var t=e._source;return t.id=e._id,t}))}},d.record={search:function(e){return(e=e||{}).from=e.from||0,e.size=e.size||20,e._source=e._source||u.commons,e.highlight=e.highlight||{fields:{title:{},description:{}}},t.all([E(),d.raw.search(e)]).then((function(t){var n=t[0];if(!(t=t[1])||!t.hits||!t.hits.total)return{total:0,hits:[]};var i=r.util.findObjectInTree(e.query,"geo_distance"),a=i&&i.geoPoint,o=i&&i.distance&&i.distance.replace(new RegExp("[0-9 ]+","gm"),""),s=t.hits.hits.reduce((function(e,t){var i=b(t,n);return i.id=t._id,a&&i.geoPoint&&o&&(i.distance=l.point.distance(a.lat,a.lon,i.geoPoint.lat,i.geoPoint.lon,o)),e.concat(i)}),[]);return{total:t.hits.total,hits:s}}))},load:function(e,n){return(n=n||{}).raw=!!angular.isDefined(n.raw)&&n.raw,n.fecthPictures=angular.isDefined(n.fetchPictures)?n.fetchPictures:n.raw,t.all([E(),n.fecthPictures?d.raw.get({id:e}):d.raw.getCommons({id:e})]).then((function(e){var t=e[0],i=e[1],a=b(i,t);return n.raw||(a.description=r.util.parseAsHtml(a.description,{tagState:"app.wot_lookup.tab_registry"})),o.extend({pubkey:a.issuer}).then((function(e){return{id:i._id,issuer:e,record:a}}))}))},add:r.record.post("/page/record",{tagFields:["title","description"],creationTime:!0}),update:r.record.post("/page/record/:id/_update",{tagFields:["title","description"]}),remove:r.record.remove("page","record"),fields:{commons:u.commons},picture:{all:r.get("/page/record/:id?_source=pictures")},comment:s.instance("page")},d.currency={all:r.get("/currency/record/_search?_source=currencyName,peers.host,peers.port"),get:r.get("/currency/record/:id/_source")},d}]),angular.module("cesium.es.social.services",["cesium.es.crypto.services"]).factory("SocialUtils",["$filter","$q","CryptoUtils","BMA","csWallet","esCrypto","$timeout",function(e,t,n,i,a,o,r){function s(){var s={URI:"([a-zA−Z0-9]+)://[ a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+",EMAIL:"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$",PHONE:"[+]?[0-9. ]{9,15}",socials:{facebook:"https?://((fb.me)|((www.)?facebook.com))",twitter:"https?://(www.)?twitter.com",googleplus:"https?://plus.google.com(/u)?",youtube:"https?://(www.)?youtube.com",github:"https?://(www.)?github.com",tumblr:"https?://(www.)?tumblr.com",snapchat:"https?://(www.)?snapchat.com",linkedin:"https?://(www.)?linkedin.com",vimeo:"https?://(www.)?vimeo.com",instagram:"https?://(www.)?instagram.com",wordpress:"https?://([a-z]+)?wordpress.com",diaspora:"https?://(www.)?((diaspora[-a-z]+)|(framasphere)).org",duniter:"duniter://[a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+",bitcoin:"bitcoin://[a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+",curve25519:"curve25519://("+i.constants.regexp.PUBKEY+"):([a-zA-Z0-9]+)@([a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+)"}};function l(e){return new RegExp("^"+e+"$")}function c(e){var t;if(s.URI.test(e)){var n=s.URI.exec(e)[1],i=e;if("http"==n||"https"==n){var a=e.indexOf("/",n.length+3);a>0&&(i=e.substring(0,a))}_.keys(s.socials).forEach((function(e){if(s.socials[e].test(i))return t=e,!1})),t||(t="web")}else s.EMAIL.test(e)?t="email":s.PHONE.test(e)&&(t="phone");return t||console.warn("[ES] [social] Unable to detect type of social URL: "+e),t}function u(e){if((e=e?e.trim():e)&&e.length>0)return e.startsWith("www.")&&(e="http://"+e),{type:c(e),url:e}}function d(t){if(!t||!t.length)return[];var n={};return t.forEach((function(t){if("curve25519"==t.type?(delete t.issuer,t.valid&&angular.merge(t,u(t.url))):t=u(t.url),t){var i=e("formatSlug")(t.url);n[i]=t}})),_.values(n)}return s.URI=l(s.URI),s.EMAIL=l(s.EMAIL),s.PHONE=l(s.PHONE),_.keys(s.socials).forEach((function(e){s.socials[e]=l(s.socials[e])})),{get:u,reduce:d,createForEncryption:function(e,t){return{recipient:e,type:"curve25519",url:t}},open:function e(i,l,c){if(c=c||a.data.pubkey,!n.isLoaded())return console.debug("[socials] Waiting crypto lib loading..."),r((function(){return e(i,l,c)}),100);var u=_.filter(i||[],(function(e){var t=e.url&&"curve25519"==e.type&&s.socials.curve25519.exec(e.url);return!!t&&(e.recipient=t[1],e.nonce=t[2],e.url=t[3],e.issuer=l,e.valid=e.recipient===c,e.valid)}));return u.length?o.box.open(u,void 0,"issuer","url").then((function(){return d(i)})):t.when(d(i))},pack:function e(i){if(!n.isLoaded())return console.debug("[socials] Waiting crypto lib loading..."),r((function(){return e(i)}),100);var a=_.filter(i||[],(function(e){return"curve25519"==e.type&&e.url&&e.recipient}));return a.length?n.util.random_nonce().then((function(e){return t.all(a.reduce((function(t,n){return t.concat(o.box.pack(n,void 0,"recipient","url",e))}),[]))})).then((function(e){return e.reduce((function(e,t){return e.concat({type:"curve25519",url:"curve25519://{0}:{1}@{2}".format(t.recipient,t.nonce,t.url)})}),[])})):t.when(i)}}}var l=s();return l.instance=s,l}]),angular.module("cesium.es.crypto.services",["ngResource","cesium.services"]).factory("esCrypto",["$q","$rootScope","CryptoUtils",function(e,t,n){function i(t){if(!t)throw new Error("Missing keypair");return t.boxPk&&t.boxSk?e.when(t):e.all([n.box.keypair.skFromSignSk(t.signSk),n.box.keypair.pkFromSignPk(t.signPk)]).then((function(e){return{boxSk:e[0],boxPk:e[1]}}))}return{box:{getKeypair:i,pack:function(t,a,o,r,s){if(!t[o=o||"recipient"])return e.reject({message:"ES_WALLET.ERROR.RECIPIENT_IS_MANDATORY"});"string"==typeof(r=r||"content")&&(r=[r]),t=angular.copy(t);var l=n.util.decode_base58(t[o]);return e.all([i(a),n.box.keypair.pkFromSignPk(l),s?e.when(s):n.util.random_nonce()]).then((function(i){var a=i[0].boxSk,o=i[1],s=i[2];return e.all(r.reduce((function(e,i){return t[i]?e.concat(n.box.pack(t[i],s,o,a)):e}),[])).then((function(e){var i=0;return _.forEach(r,(function(n){t[n]?t[n]=e[i++]:t[n]=null})),t.nonce=n.util.encode_base58(s),t}))}))},open:function(t,a,o,r){o=o||"issuer","string"==typeof(r=r||"content")&&(r=[r]);var s=Date.now(),l={},c=[i(a)];return e.all(t.reduce((function(e,t){var i=t[o];if(!i)throw"Record has no "+o;return l[i]?res:e.concat(n.box.keypair.pkFromSignPk(n.util.decode_base58(i)).then((function(e){l[i]=e})))}),c)).then((function(i){var a=i[0];return e.all(t.reduce((function(e,t){var i=l[t[o]],s=n.util.decode_base58(t.nonce);return t.valid=!0,e.concat(r.reduce((function(e,o){return t[o]?e.concat(n.box.open(t[o],s,i,a.boxSk).then((function(e){t[o]=e})).catch((function(e){console.error(e),console.warn("[ES] [crypto] a record may have invalid cypher "+o),t.valid=!1}))):e}),[]))}),[]))})).then((function(){return console.debug("[ES] [crypto] All record decrypted in "+(Date.now()-s)+"ms"),t}))}}}}]),angular.module("cesium.es.profile.services",["cesium.services","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esProfile")}]).factory("esProfile",["$rootScope","$q","esHttp","SocialUtils","csWot","csWallet","csPlatform","esSettings",function(e,t,n,i,a,o,r,s){var l,c=this;function u(e,t){return((t=t||{}).raw?c.raw.getAll:c.raw.get)({id:e}).then((function(a){if(a&&a.found&&a._source){var r={name:a._source.title,source:a._source};return r.name&&r.name.length>30&&(r.name=r.name.substr(0,27)+"..."),r.avatar=n.image.fromHit(a,"avatar"),t.raw||(r.description=n.util.parseAsHtml(r.source.description)),r.source.socials&&r.source.socials.length&&(r.source.socials=_.uniq(r.source.socials,!1,(function(e){return e.url}))),o.isLogin()?i.open(r.source.socials,e).then((function(){return r})):(r.source.socials=_.filter(r.source.socials,(function(e){return"curve25519"!=e.type})),r)}})).catch((function(e){if(e&&e.ucode&&404==e.ucode)return null;throw e}))}function d(e,t){return p(null,e,t)}function p(e,i,a,o){if(o=o||t.defer(),!(e||i&&i.length))return o.resolve(i),o.promise;var r;a=a||"pubkey";var l,u=(e=e?e.toLowerCase().trim():e)?n.util.parseTags(e):void 0,d={query:{},highlight:{fields:{title:{},tags:{}}},from:0,size:100,_source:["title","avatar._content_type"]},p=e&&s.wot.isMixedSearchEnable();if(p&&(d._source=d._source.concat(["description","city","creationTime","membersCount","type"]),console.debug("[ES] [profile] Mixed search: enable")),i.length>0){r={},_.forEach(i,(function(e){var t=e[a];if(t){var n=r[t];n?n.push(e):(n=[e],r[t]=n)}}));var m=_.keys(r);d.size=m.length<=d.size?d.size:m.length,e?(d.query.bool={should:[{terms:{"_id^4":m}},{match:{title:{query:e,boost:2}}},{prefix:{title:e}}]},u&&d.query.bool.should.push({terms:{tags:u}})):(delete d.highlight,d.query.constant_score={filter:{terms:{_id:m}}})}else{if(!e)return o.resolve(i),o.promise;d.query.bool={should:[{match:{title:{query:e,boost:2}}},{prefix:{title:e}}]},u&&d.query.bool.should.push({terms:{tags:u}})}return e&&p&&(d.indices_boost={user:100,page:1,group:.01}),(p?c.raw.mixedSearch:c.raw.search)(d).then((function(e){if((l=e.hits).total>0){var t,s={};_.forEach(l.hits,(function(e){var o="avatar";if("user"==e._index){if(!(t=r&&r[e._id])){var l={};l[a]=e._id,t=[l],i.push(l)}}else if("user"!=e._index){s[e._index]||(s[e._index]=!0,i.push({id:"divider-"+e._index,divider:!0,index:e._index}));var c={id:e._index+"-"+e._id,index:e._index,templateUrl:"plugins/es/templates/wot/lookup_item_{0}.html".format(e._index),state:"app.view_{0}".format(e._index),stateParams:{id:e._id,title:e._source.title},creationTime:e._source.creationTime,memberCount:e._source.memberCount,type:e._source.type};t=[c],i.push(c),o="avatar"}var u=n.image.fromHit(e,o);_.forEach(t,(function(t){t.avatar=u,function(e,t,i){e.avatar=e.avatar||n.image.fromHit(t,"avatar"),e.name=t._source.title,e.name&&e.name.length>30&&(e.name=e.name.substr(0,27)+"..."),e.description=t._source.description||e.description,e.city=t._source.city||e.city,t.highlight&&(t.highlight.title&&(e.name=t.highlight.title[0]),t.highlight.tags&&(e.tags=t.highlight.tags.reduce((function(e,t){return e.concat(t.replace("<em>","").replace("</em>",""))}),[])))}(t,e)}))})),_.keys(s).length&&i.splice(0,0,{id:"divider-identities",divider:!0,index:"profile"})}o.resolve(i)})).catch((function(e){e&&e.ucode&&404==e.ucode?o.resolve(i):o.reject(e)})),o.promise}function m(e,n){return n=n||t.defer(),e&&e.pubkey?(t.all([u(e.pubkey).then((function(t){t&&(e.name=t.name,e.avatar=t.avatar,e.profile=t.source,e.profile.description=t.description),n.resolve(e)
-})),d((e.received_cert||[]).concat(e.received_cert_pending||[]).concat(e.given_cert||[]).concat(e.given_cert_pending||[]))]).catch((function(e){n.reject(e)})),n.promise):(n.resolve(),n.promise)}function E(){var t=n.alive;!t&&l&&l.length>0?(console.debug("[ES] [profile] Disable"),_.forEach(l,(function(e){e()})),l=[]):!t||l&&0!==l.length||(console.debug("[ES] [profile] Enable"),function(){l=[a.api.data.on.load(e,m,this),a.api.data.on.search(e,p,this)]}())}return c.raw={getFields:n.get("/user/profile/:id?&_source_exclude=avatar._content&_source=:fields"),get:n.get("/user/profile/:id?&_source_exclude=avatar._content",n.cache.MEDIUM),getAll:n.get("/user/profile/:id",n.cache.MEDIUM),search:n.post("/user/profile/_search",n.cache.MEDIUM),mixedSearch:n.post("/user,page,group/profile,record/_search",n.cache.MEDIUM)},r.ready().then((function(){return n.api.node.on.start(e,E,this),n.api.node.on.stop(e,E,this),E()})),{getAvatarAndName:function(e){return c.raw.getFields({id:e,fields:"title,avatar._content_type"}).then((function(e){var t;return e&&e._source&&((t={name:e._source.title}).avatar=n.image.fromHit(e,"avatar")),t})).catch((function(e){if(e&&e.ucode&&404==e.ucode)return null;throw e}))},get:u,add:n.record.post("/user/profile",{tagFields:["title","description"]}),update:n.record.post("/user/profile/:id/_update",{tagFields:["title","description"]}),avatar:n.get("/user/profile/:id?_source=avatar"),fillAvatars:d,remove:n.record.remove("user","profile")}}]),angular.module("cesium.es.notification.services",["cesium.platform","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esNotification")}]).factory("esNotification",["$rootScope","$q","$timeout","$translate","$state","csHttp","csConfig","csSettings","esHttp","esSettings","csWallet","csWot","UIUtils","filterTranslations","BMA","CryptoUtils","csPlatform","Api",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,f){var T,h,v={MESSAGE_CODES:["MESSAGE_RECEIVED"],INVITATION_CODES:["INVITATION_TO_CERTIFY"],DEFAULT_LOAD_SIZE:20},I={commons:["type","code","params","reference","recipient","time","hash","read_signature"]},N=this,O=new f(this,"esNotification");function R(e,t){(t=t||{}).codes=t.codes||{},t.codes.excludes=t.codes.excludes||v.EXCLUDED_CODES;var n={bool:{must:[{term:{recipient:e}}]}};if(t.codes&&t.codes.includes)n.bool.must.push({terms:{code:t.codes.includes}});else{var i=[];s.getByPath("plugins.es.notifications.txSent",!1)||i.push("TX_SENT"),s.getByPath("plugins.es.notifications.txReceived",!0)||i.push("TX_RECEIVED"),s.getByPath("plugins.es.notifications.certSent",!1)||i.push("CERT_SENT"),s.getByPath("plugins.es.notifications.certReceived",!0)||i.push("CERT_RECEIVED"),t.codes.excludes&&_.forEach(t.codes.excludes,(function(e){i.push(e)})),i.length&&(n.bool.must_not={terms:{code:i}})}return t.readTime&&n.bool.must.push({range:{time:{gt:t.readTime}}}),n}function A(e,n){if(!e)return t.reject("[ES] [notification] Unable to load - missing pubkey");var i={query:R(e,n)};return i.query.bool.must.push({missing:{field:"read_signature"}}),N.raw.postCount(i).then((function(e){return e.count}))}function S(e){var t=(e=e||{}).wallet||u;return new Promise((function(e){if(!t.data||!t.data.events||!t.data.events.length)return e([]);var n=o.date.now()-m.MEDIAN_TIME_OFFSET;e((t.data.events||[]).reduce((function(e,i){if("warn"!=i.type&&"error"!=i.type)return e;var a=new $({},(function(e){e.read||(e.read=!0,t.data.notifications&&t.data.notifications.warnCount>0&&t.data.notifications.warnCount--)}));return a.id=i.code,a.read=!1,a.state="app.view_wallet",a.avatarIcon="ion-alert-circled",a.icon="ion-alert-circled assertive",a.time=n,a.message=i.message,a.messageParams=i.messageParams,e.concat(a)}),[]))}))}function C(t){if(t&&u.isLogin())if(_.contains(v.INVITATION_CODES,t.code))O.event.raise.newInvitation(t);else{if(!_.contains(v.MESSAGE_CODES,t.code)){var n=new $(t,k);return d.extendAll([n]).then((function(){e.$$phase?L(n):e.$applyAsync((function(){L(n)}))})).then((function(){if(c.notifications.isEmitHtml5Enable())return y(n)}))}O.event.raise.newMessage(t)}}function L(e){return u.data.notifications=u.data.notifications||{},u.data.notifications.unreadCount++,O.data.raise.new(e),e}function D(e){return e?String(e).replace(/<[^>]*>/gm,"").replace(/&[^;]+;/gm,""):""}function y(n,o){t.all([i(o||"COMMON.NOTIFICATION.TITLE"),i(n.message,n)]).then((function(t){P(D(t[0]),{body:D(t[1]),icon:n.avatar&&n.avatar.src||"./img/logo.png",lang:i.use(),tag:n.id,onclick:function(){e.$applyAsync((function(){"function"==typeof n.markAsRead&&n.markAsRead(),n.state&&a.go(n.state,n.stateParams)}))}})}))}function P(e,t){if("Notification"in window)if("granted"===Notification.permission){var n=new Notification(e,t);n.onclick=t.onclick||n.onclick}else"denied"!==Notification.permission&&Notification.requestPermission((function(n){"granted"===n&&P(e,t)}))}function k(e){if(!e.read&&e.id)if(e.id){if(u.isAuth())return e.read=!0,u.getKeypair().then((function(t){return b.sign(e.hash,t).then((function(t){return N.raw.postReadById(t,{id:e.id})})).catch((function(e){console.error("[ES] [notification] Error while trying to mark event as read.",e)}))}))}else console.error("[ES] [notification] Could not mark as read: no 'id' found!",e)}function M(e){e.notifications=e.notifications||{},e.notifications.unreadCount=null,e.notifications.warnCount=null,e.notifications.time=null,h&&(console.debug("[ES] [notification] Closing websocket..."),h(),h=null)}function w(e,i){if(i=i||t.defer(),!e||!e.pubkey||!e.keypair)return i.resolve(),i.promise;var a=Date.now(),o=Math.trunc(a/1e3);if(e.notifications&&e.notifications.time&&o-e.notifications.time<30)return e.notifications.warnCount=B(e),console.debug("[ES] [notification] Skipping load (loaded "+(o-e.notifications.time)+"s ago)"),i.resolve(),i.promise;var r=u.isUserPubkey(e.pubkey);return console.debug("[ES] [notification] Loading count..."+e.pubkey.substr(0,8)),A(e.pubkey,{readTime:e.notifications&&e.notifications.time||0,excludeCodes:v.EXCLUDED_CODES}).then((function(t){e.notifications=e.notifications||{},e.notifications.unreadCount=t,e.notifications.warnCount=B(e),t>0&&c.notifications.isEmitHtml5Enable()&&r&&n((function(){y({message:"COMMON.NOTIFICATION.HAS_UNREAD",count:t,state:"app.view_notifications"},e.ui||e.name||e.pubkey&&e.pubkey.substr(0,8))}),500),console.debug("[ES] [notification] Loaded count ("+t+") in "+(Date.now()-a)+"ms"),i.resolve(e)})).catch(i.reject),i.promise}function U(e,t){return w(e,t).then((function(){console.debug("[ES] [notification] Starting listen user event...");var t=N.raw.ws.getUserEvent();t.on(C,{pubkey:e.pubkey,locale:s.data.locale.id}).catch((function(e){console.error("[ES] [notification] Unable to listen user event",e),p.alert.error("ACCOUNT.ERROR.WS_CONNECTION_FAILED")})),h=function(){t.close()}}))}function B(e){return e.events?e.events.reduce((function(e,t){return"warn"==t.type?e+1:e}),0):0}function x(){var t=l.alive;if(!t&&T&&T.length>0)console.debug("[ES] [notification] Disable"),_.forEach(T,(function(e){e()})),T=[],u.isLogin()&&M(u.data);else if(t&&(!T||0===T.length)&&(console.debug("[ES] [notification] Enable"),function(){T=[u.api.data.on.login(e,U,this),u.api.data.on.load(e,w,this),u.api.data.on.init(e,M,this),u.api.data.on.reset(e,M,this)]}(),u.isLogin()))return U(u.data)}return v.EXCLUDED_CODES=v.MESSAGE_CODES.concat(v.INVITATION_CODES),N.raw={postCount:l.post("/user/event/_count"),postSearch:l.post("/user/event/_search"),postReadById:l.post("/user/event/:id/_read"),ws:{getUserEvent:l.ws("/ws/event/user/:pubkey/:locale"),getChanges:l.ws("/ws/_changes")}},O.registerEvent("data","new"),O.registerEvent("event","newInvitation"),O.registerEvent("event","newMessage"),g.ready().then((function(){return l.api.node.on.start(e,x,this),l.api.node.on.stop(e,x,this),x()})),N.load=function(e){if(!(e=e||{}).pubkey)return t.reject("[ES] [notification] Unable to load - missing options.pubkey");e.from=e.from||0,e.size=e.size||v.DEFAULT_LOAD_SIZE;var n={query:R(e.pubkey,e),sort:[{time:{order:"desc"}}],from:e.from,size:e.size,_source:I.commons};return t.all([S(e),N.raw.postSearch(n)]).then((function(e){var t=e[0]||[];if(!(e=e[1]).hits||!e.hits.total)return t;var n=e.hits.hits.reduce((function(e,t){var n=new $(t._source,k);return n.id=t._id,e.concat(n)}),t);return d.extendAll(n)}))},N.unreadCount=A,N.html5={emit:P},N.api=O,N.websocket={event:N.raw.ws.getUserEvent,change:N.raw.ws.getChanges},N.constants=v,N}]),angular.module("cesium.es.message.services",["ngResource","cesium.platform","cesium.es.http.services","cesium.es.wallet.services","cesium.es.notification.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esMessage")}]).factory("esMessage",["$q","$rootScope","$timeout","UIUtils","Api","CryptoUtils","csPlatform","csConfig","csSettings","esHttp","csWallet","esWallet","csWot","esNotification",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m){var E,b=10,g={commons:["issuer","recipient","title","content","time","nonce","read_signature"],notifications:["issuer","time","hash","read_signature"]},f={postSearch:c.post("/message/inbox/_search"),postSearchByType:c.post("/message/:type/_search"),getByTypeAndId:c.get("/message/:type/:id"),postReadById:c.post("/message/inbox/:id/_read")},T=new a(this,"esMessage");function h(e){e.messages=e.messages||{},e.messages.unreadCount=null,e.messages.time=null}function v(e){e.messages&&delete e.messages}function I(t,n){if(n=n||e.defer(),!t||!t.pubkey)return n.resolve(),n.promise;var i=Date.now(),a=Math.trunc(i/1e3);return t.messages&&t.messages.time&&a-t.messages.time<30?(console.debug("[ES] [message] Skipping load (loaded "+(a-t.messages.time)+"s ago)"),n.resolve(),n.promise):(console.debug("[ES] [message] Loading count..."),function(e){var t=(e=e||{}).wallet||e.walletId&&u.children.get(e.walletId)||u,n=e.pubkey||t&&t.data&&t.data.pubkey;if(!n)throw new Error("no pubkey or wallet found in options, and user not connected.");var i={query:{bool:{must:[{term:{recipient:n}},{missing:{field:"read_signature"}}]}}};return c.post("/message/inbox/_count")(i).then((function(e){return e.count}))}({pubkey:t.pubkey}).then((function(e){t.messages=t.messages||{},t.messages.unreadCount=e,t.messages.time=a,console.debug("[ES] [message] Loaded count ("+e+") in "+(Date.now()-i)+"ms"),n.resolve(t)})).catch((function(e){console.error("Error while counting messages: "+(e.message?e.message:e)),n.resolve(t)})),n.promise)}function N(e,t){console.debug("[ES] [message] detected new message (from notification service)");var n=new $(e);if(n.issuer=n.pubkey,delete n.pubkey,n.issuer){if(!(t=t||n.issuer&&u.isUserPubkey(n.issuer)&&u||n.issuer&&u.children.getByPubkey(n.issuer)))throw new Error("No wallet for pubkey: {0}".format(n.issuer.substring(0,6)));p.extend(n,"issuer").then((function(){t.data.messages=t.data.messages||{},t.data.messages.unreadCount++,T.data.raise.new(n)}))}}function O(e,t,n,i){return n=n||"/message/inbox",d.box.record.pack(e,t,i,["title","content"]).then((function(e){return c.record.post(n)(e,{pubkey:e.issuer,keypair:t})}))}function R(e,t){e=e||u.data.pubkey,(t=t||{}).type=t.type||"inbox",t.from=t.from||0,t.size=t.size||1e3,t._source=t._source||g.commons;var n={sort:{time:"desc"},from:t.from,size:t.size,_source:t._source};return"inbox"==t.type?n.query={bool:{filter:{term:{recipient:e}}}}:n.query={bool:{filter:{term:{issuer:e}}}},f.postSearchByType(n,{type:t.type}).then((function(e){if(!e||!e.hits||!e.hits.total)return[];var n=e.hits.hits.reduce((function(e,n){var i=n._source||{};return i.id=n._id,i.read="outbox"==t.type||!!i.read_signature,delete i.read_signature,e.concat(i)}),[]);return console.debug("[ES] [message] Loading {0} {1} messages".format(n.length,t.type)),n}))}function A(t,n,i){var a=Date.now(),r={},s=[d.box.getKeypair(n)];return e.all(t.reduce((function(e,t){return r[t.issuer]?res:e.concat(o.box.keypair.pkFromSignPk(o.util.decode_base58(t.issuer)).then((function(e){r[t.issuer]=e})))}),s)).then((function(n){var a=n[0];return e.all(t.reduce((function(e,t){var n=r[t.issuer],s=o.util.decode_base58(t.nonce);return t.valid=!0,e.concat(o.box.open(t.title,s,n,a.boxSk).then((function(e){t.title=e})).catch((function(e){console.error(e),console.warn("[ES] [message] may have invalid cypher title"),t.valid=!1})),o.box.open(t.content,s,n,a.boxSk).then((function(e){t.content=e,i?function(e){e.content&&(e.summary=e.content.replace(/(^|[\n\r]+)\s*>[^\n\r]*/g,"").trim(),e.summary.length>140&&(e.summary=e.summary.substr(0,137)+"..."))}(t):e&&(t.html=c.util.parseAsHtml(e))})).catch((function(e){console.error(e),console.warn("[ES] [message] may have invalid cypher content"),t.valid=!1})))}),[]))})).then((function(){return console.debug("[ES] [message] All messages decrypted in "+(Date.now()-a)+"ms"),t}))}function S(e){return _.sortBy(e,(function(e){return-1*(1e3*(e.titleMatch||0)+100*(e.contentMatch||0)+e.time/1e10)}))}function C(t){var n=s.developers||[{pubkey:"38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE"}];t&&t.content&&n&&n.length&&(console.info("[ES] [message] Sending logs to developers..."),t.issuer=u.data.pubkey,t.title=t.title||"Sending log",t.time=moment().utc().unix(),u.getKeypair().then((function(i){return e.all(n.reduce((function(e,n){return n.pubkey?e.concat(O(angular.merge({recipient:n.pubkey},t),i)):e}),[]))})).then((function(e){console.info("[ES] [message] Logs sent to {0} developers".format(e.length))})))}function L(){var e=c.alive;!e&&E&&E.length>0?(console.debug("[ES] [message] Disable"),_.forEach(E,(function(e){e()})),E=[],u.isLogin()&&v(u.data)):!e||E&&0!==E.length||(console.debug("[ES] [message] Enable"),function(){E=[u.api.data.on.init(t,h,this),u.api.data.on.login(t,I,this),u.api.data.on.load(t,I,this),u.api.data.on.reset(t,v,this),m.api.event.on.newMessage(t,N,this),u.api.error.on.send(t,C,this)]}(),u.isLogin()&&I(u.data))}return T.registerEvent("data","new"),T.registerEvent("data","delete"),T.registerEvent("data","sent"),r.ready().then((function(){return c.api.node.on.start(t,L,this),c.api.node.on.stop(t,L,this),L()})),{api:T,search:f.postSearch,notifications:{load:function(t){(t=t||{}).from=t.from||0,t.size=t.size||b;var n=t.wallet||t.walletId&&u.children.get(t.walletId)||u;if(delete t.wallet,!n.isLogin())return e.when([]);var i={sort:{time:"desc"},query:{bool:{filter:{term:{recipient:n.data.pubkey}}}},from:t.from,size:t.size,_source:g.notifications};return f.postSearch(i).then((function(e){if(!e||!e.hits||!e.hits.total)return[];var t=e.hits.hits.reduce((function(e,t){var n=t._source;return n.id=t._id,n.read=!!n.read_signature,delete n.read_signature,e.concat(n)}),[]);return p.extendAll(t,"issuer")}))}},load:function e(t){(t=t||{}).type=t.type||"inbox",t._source=g.commons,t.summary=!angular.isDefined(t.summary)||t.summary,t.filter=angular.isDefined(t.filter)?t.filter:void 0,t.from=t.from||0;var n=t.wallet||t.walletId&&u.children.get(t.walletId)||u;delete t.wallet;var i=n.auth().then((function(e){return R(e.pubkey,t).then((function(n){return A(n,e.keypair,t.summary)}))})).then((function(e){var n="inbox"==t.type?"issuer":"recipient";return p.extendAll(e,n)})).then((function(i){if(i.length&&t.filter){var a=function(e,t){return t&&!t.trim().length?e:(e.forEach((function(e){e.content&&(e.summary=e.content.replace(/(^|[\n\r]+)\s*>[^\n\r]*/g,"").trim()||"")})),t.trim().split(" ").forEach((function(t){var n=new RegExp(t,"gi");e.forEach((function(e){var i=n.exec(e.title);if(i)for(e.title=e.title.replace(n,"<b>$&</b>"),e.titleMatch=(e.titleMatch||0)+1;(i=n.exec(e.title.substring(i.index+t.length)))&&!(e.titleMatch>=10);)e.titleMatch=e.titleMatch+1;else if(i=n.exec(e.summary)){for(i.index>140&&(e.summary="..."+e.summary.substring(i.index-20)),e.summary=e.summary.replace(n,"<b>$&</b>"),e.contentMatch=(e.contentMatch||0)+1;(i=n.exec(e.summary.substring(i.index+t.length)))&&!(e.contentMatch>=10);)e.contentMatch++;e.summary.length>140&&(e.summary=e.summary.substr(0,137)+"...")}}))})),e=_.filter(e,(function(e){return e.titleMatch||e.contentMatch})))}(i,t.filter);if(a.length<i.length)return(t=angular.copy(t)).from+=t.size,t.size=i.length-a.length,t.wallet=n,e(t).then((function(e){return a.concat(e)}))}return 0!==t.from||t.filter||(n.data.messages=n.data.messages||{},n.data.messages.count=i.length),i}));return 0===t.from&&t.filter&&i.then(S),i},get:function(e,t,n){return t=t||"inbox",(n=n||{}).summary=!!angular.isDefined(n.summary)&&n.summary,(n.wallet||n.walletId&&u.children.get(n.walletId)||u).auth().then((function(i){return f.getByTypeAndId({id:e,type:t}).then((function(e){if(e.found){var a=e._source;return a.id=e._id,a.read="outbox"==t||!!a.read_signature,delete a.read_signature,A([a],i.keypair,n.summary).then((function(){var e="inbox"==t?"issuer":"recipient";return p.extend(a,e)}))}}))}))},send:function(e,t){var n=(t=t||{}).wallet||t.walletId&&u.children.get(t.walletId)||u;return delete t.wallet,e.issuer=e.issuer||n.data.pubkey,n.getKeypair().then((function(t){return O(e,t).then((function(n){return l.data.plugins.es.message&&angular.isDefined(l.data.plugins.es.message.outbox)&&!l.data.plugins.es.message.outbox?n:O(e,t,"/message/outbox","issuer").catch((function(e){return console.error("Failed to store message to outbox: "+e),n}))})).then((function(e){return T.data.raise.sent(e),e}))}))},remove:function(e,t,n){t=t||"inbox";var i=n.wallet||n.walletId&&u.children.get(n.walletId)||u;return c.record.remove("message",t)(e,{wallet:i}).then((function(n){return"inbox"===t&&(i.data.messages=i.data.messages||{},i.data.messages.count=i.data.messages.count>0?i.data.messages.count-1:0),i.isDefault()&&T.data.raise.delete(e),n}))},removeAll:function(t,n){t=t||"inbox";var i=n&&n.walletId&&u.children.get(n.walletId)||u;return i.auth().then((function(n){return R(n.pubkey,{type:t,from:0,size:1e3,_source:!1}).then((function(n){if(n&&n.length){var a=_.pluck(n,"id");return e.all(n.reduce((function(e,n){return e.concat(c.record.remove("message",t)(n.id,{wallet:i}))}),[])).then((function(){return a}))}})).then((function(e){"inbox"===t&&(i.data.messages=i.data.messages||{},i.data.messages.count=0,i.data.messages.unreadCount=0),i.isDefault()&&_.forEach(e,T.data.raise.delete)}))}))},markAsRead:function(t,n){var i=(n=n||{}).wallet||n.walletId&&u.children.get(n.walletId)||u,a=n&&n.type||(i.isUserPubkey(t.recipient)?"inbox":"outbox");if(t.read){var r=e.defer();return r.resolve(),r.promise}return t.read=!0,i.getKeypair().then((function(e){return o.sign(t.hash,e)})).then((function(e){return f.postReadById(e,{id:t.id})})).then((function(){"inbox"===a&&(i.data.messages=i.data.messages||{},i.data.messages.unreadCount=i.data.messages.unreadCount?i.data.messages.unreadCount-1:0)}))},markAllAsRead:function(t){var n=(t=t||{}).wallet||t.walletId&&u.children.get(t.walletId)||u;return n.auth().then((function(t){return R(t.pubkey,{type:"inbox",from:0,size:1e3,_source:["hash","read_signature"]}).then((function(n){if(n&&n.length)return n=_.filter(n,{read:!1}),e.all(n.reduce((function(e,n){return e.concat(o.sign(n.hash,t.keypair).then((function(e){return f.postReadById(e,{id:n.id})})))}),[]))})).then((function(){n.data.messages=n.data.messages||{},n.data.messages.unreadCount=0}))}))},fields:{commons:g.commons}}}]),angular.module("cesium.es.modal.services",["cesium.modal.services","cesium.es.message.services"]).factory("esModals",["$state","ModalUtils","UIUtils","csWallet",function(e,t,n,i){function a(){if(i.data.notifications.unreadCount=0,i.data.notifications&&i.data.notifications.history.length){var e=i.data.notifications.history[0],t=e?e.time:0;csSettings.data.wallet=csSettings.data.wallet||{},t&&csSettings.data.wallet.notificationReadTime!=t&&(csSettings.data.wallet.notificationReadTime=t,csSettings.store())}}return{showMessageCompose:function(e){return t.show("plugins/es/templates/message/modal_compose.html","ESMessageComposeModalCtrl",e,{focusFirstInput:!0})},showNotifications:function(t,i){return n.popover.show(i,{templateUrl:"plugins/es/templates/common/popover_notification.html",scope:t,autoremove:!1,afterHidden:a}).then((function(t){t&&(t.onRead&&"function"==typeof t.onRead&&t.onRead(),t.state&&e.go(t.state,t.stateParams))}))},showNewInvitation:function(e){return i.auth({minData:!0}).then((function(i){return n.loading.hide(),i.isMember?t.show("plugins/es/templates/invitation/modal_new_invitation.html","ESNewInvitationModalCtrl",e):n.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")}))},showNewPage:function(a){var o=a&&a.wallet||i;return o.auth({minData:!0}).then((function(){return n.loading.hide(),t.show("plugins/es/templates/registry/modal_record_type.html",void 0,{title:"REGISTRY.EDIT.TITLE_NEW"}).then((function(t){t&&e.go("app.registry_add_record",{type:t,wallet:o.id})}))}))},showNetworkLookup:function(e){return t.show("plugins/es/templates/network/modal_network.html","ESNetworkLookupModalCtrl",e,{focusFirstInput:!1})}}}]),angular.module("cesium.es.blockchain.services",["cesium.services","cesium.es.http.services"]).factory("esBlockchain",["$rootScope","$q","$timeout","BMA","esHttp",function(e,n,i,a,o){return r=a.constants.regexp.PUBKEY,40,"ES_CORE_API( ([a-z_][a-z0-9-_.]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))",s={SEARCH_FILTER:{TX_PUBKEY:new RegExp("\\(transactions\\.issuers:("+r+") OR transactions\\.outputs:\\*("+r+")\\)([ ]+AND)?"),ISSUER:new RegExp("issuer:("+r+")([ ]+AND)?"),MEMBER_FLOWS:new RegExp("\\(_exists_:joiners OR _exists_:leavers OR _exists_:revoked OR _exists_:excluded\\)([ ]+AND)?"),EXISTING_TRANSACTION:new RegExp("_exists_:transactions([ ]+AND)?"),PERIOD:new RegExp("medianTime:>=?([0-9]+)[ ]+AND[ ]+medianTime:<=?([0-9]+)([ ]+AND)?")},LAST_AND:/[ ]+AND$/},l={MINIMAL:["number","hash","medianTime","issuer"],COMMONS:["number","hash","medianTime","issuer","currency","version","powMin","dividend","membersCount","identities","joiners","actives","leavers","revoked","excluded","certifications","transactions"]},(c={node:{},block:{},raw:{block:{search:o.post("/:currency/block/_search",o.cache.SHORT),searchText:o.get("/:currency/block/_search?q=:text"),get:o.get("/:currency/block/:number/_source",o.cache.SHORT)}},regexp:{ES_CORE_API_ENDPOINT:new RegExp("^ES_CORE_API( ([a-z_][a-z0-9-_.]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))$")}}).regex=c.regexp,c.node.parseEndPoint=function(e){var t=c.regexp.ES_CORE_API_ENDPOINT.exec(e);if(t)return{dns:t[2]||"",ipv4:t[4]||"",ipv6:t[6]||"",port:t[8]||80}},c.raw.block.processSearchResult=function(e,n){(n=n||{}).excludeCurrent=!angular.isDefined(n.excludeCurrent)||n.excludeCurrent,n.fillAvatar=!angular.isDefined(n.fillAvatar)||n.fillAvatar,n.cleanData=!angular.isDefined(n.cleanData)||n.cleanData;var i=!1;return{hits:(e&&e.hits&&e.hits.hits||[]).reduce((function(e,a){if("current"==a._id&&n.excludeCurrent)return i=!0,e;if(!a._source)return e;var o=new t(a._source);return n.cleanData&&o.cleanData(),e.concat(o)}),[]),took:e.took,total:e&&e.hits&&e.hits.total?i?e.hits.total-1:e.hits.total:0}},c.block.search=function(e,t){var n=t?angular.copy(t):{};return delete n.excludeCurrent,delete n.fillAvatar,delete n.skipData,n.from=n.from||0,n.size=n.size||40,n._source=t._source||l.COMMONS,t._source&&"*"==t._source&&delete n._source,c.raw.block.search(n,{currency:e}).then((function(e){return c.raw.block.processSearchResult(e,t)}))},c.block.searchText=function(e,t,n){n&&angular.isUndefined(n.excludeCurrent)&&(n.excludeCurrent=!0);var i=n?angular.copy(n):{};return delete i.excludeCurrent,delete i.fillAvatar,delete i.skipData,i.from=i.from||0,i.size=i.size||40,i._source=n._source||l.COMMONS.join(","),n._source&&"*"==n._source&&delete i._source,i.currency=e,i.text=t||"",c.raw.block.searchText(i).then((function(e){return c.raw.block.processSearchResult(e,n)}))},c.block.parseSearchText=function(e,t){var n=e;return{filters:t=_.keys(s.SEARCH_FILTER).reduce((function(e,t){var i=s.SEARCH_FILTER[t].exec(n);if(i){var a=i[0];n=n.replace(a,"");var o={type:t,text:a=a.replace(s.LAST_AND,""),params:i};return e.concat(o)}return e}),t||[]),text:n.trim()}},c;var r,s,l,c}]),angular.module("cesium.es.group.services",["cesium.platform","cesium.es.http.services","cesium.es.profile.services","cesium.es.notification.services","cesium.es.comment.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esGroup")}]).factory("esGroup",["$q","$rootScope","csPlatform","BMA","csSettings","esHttp","CryptoUtils","csWot","csWallet","esNotification","esComment",function(e,t,n,i,a,o,r,s,l,c,u){var d,p=50,m={list:["issuer","title","description","type","creationTime","avatar._content_type"],commons:["issuer","title","description","creationTime","time","signature"],notifications:["issuer","time","hash","read_signature"]},E={_internal:{}};function b(e){e.groups=e.groups||{},e.groups.unreadCount=null}function g(e){e.groups&&delete e.groups}function f(t,n){return n=n||e.defer(),t&&t.pubkey?(c.unreadCount(t.pubkey,{codes:{includes:["GROUP_INVITATION"],excludes:[]}}).then((function(e){t.groups=t.groups||{},t.groups.unreadCount=e,console.debug("[ES] [group] Detecting "+e+" unread notifications"),n.resolve(t)})).catch((function(e){console.error("Error while counting group notifications: "+(e.message?e.message:e)),n.resolve(t)})),n.promise):(n.resolve(),n.promise)}function T(e,t){if(e){var n=e._source;return t&&e.highlight&&(e.highlight.title&&(n.title=e.highlight.title[0]),e.highlight.description&&(n.description=e.highlight.description[0]),e.highlight.location&&(n.location=e.highlight.location[0]),e.highlight.tags&&(data.tags=e.highlight.tags.reduce((function(e,t){return e.concat(t.replace("<em>","").replace("</em>",""))}),[]))),t&&(n.description=o.util.parseAsHtml(n.description)),n.avatar=o.image.fromHit(e,"avatar"),e._source.pictures&&e._source.pictures.reduce&&(n.pictures=e._source.pictures.reduce((function(e,t){return e.concat(o.image.fromAttachment(t.file))}),[])),n}}function h(e){return E._internal.search(e).then((function(e){if(!e||!e.hits||!e.hits.total)return[];var t=e.hits.hits.reduce((function(e,t){var n=T(t,!0);return n.id=t._id,n?e.concat(n):e}),[]);return console.debug("[ES] [group] Loading {0} groups".format(t.length)),t}))}function v(e){return h({sort:{time:"desc"},from:(e=e||{}).from||0,size:e.size||p,_source:e._source||m.list})}function I(){var e=o.alive;!e&&d&&d.length>0?(console.debug("[ES] [group] Disable"),_.forEach(d,(function(e){e()})),d=[],l.isLogin()&&g(l.data)):!e||d&&0!==d.length||(console.debug("[ES] [group] Enable"),function(){d=[l.api.data.on.login(t,f,this),l.api.data.on.init(t,b,this),l.api.data.on.reset(t,g,this)]}(),l.isLogin()&&f(l.data))}return E._internal.search=o.post("/group/record/_search"),E._internal.get=o.get("/group/record/:id"),E._internal.getCommons=o.get("/group/record/:id?_source="+m.commons.join(",")),n.ready().then((function(){return o.api.node.on.start(t,I,this),o.api.node.on.stop(t,I,this),I()})),{record:{last:v,search:function(e){var t=(e=e||{}).text&&e.text.trim();if(!t)return v(e);var n={from:e.from||0,size:e.size||p,highlight:{fields:{title:{},tags:{}}},_source:e._source||m.list},a=[],o=[];return i.regexp.PUBKEY.test(t)?(o.push({term:{issuer:t}}),o.push({term:{pubkey:t}})):(t=t.toLowerCase(),a.push({multi_match:{query:t,fields:["title","description"],type:"phrase_prefix"}}),a.push({match:{title:t}}),a.push({match:{description:t}})),n.query={bool:{}},a.length>0&&(n.query.bool.should=a),o.length>0&&(n.query.bool.filter=o),h(n)},load:function(e,t){return(t=t||{}).fecthPictures=!!angular.isDefined(t.fetchPictures)&&t.fetchPictures,t.html=!angular.isDefined(t.html)||t.html,(t.fecthPictures?E._internal.get({id:e}):E._internal.getCommons({id:e})).then((function(e){var n=T(e,t.html);return s.extend({pubkey:n.issuer}).then((function(t){return{id:e._id,issuer:t,record:n}}))}))},add:o.record.post("/group/record",{tagFields:["title","description"]}),update:o.record.post("/group/record/:id/_update",{tagFields:["title","description"]}),remove:o.record.remove("group","record"),fields:{commons:m.commons},picture:{all:o.get("/group/record/:id?_source=pictures")},comment:u.instance("group")}}}]),angular.module("cesium.es.invitation.services",["cesium.platform","cesium.es.http.services","cesium.es.wallet.services","cesium.es.notification.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esInvitation")}]).factory("esInvitation",["$rootScope","$q","CryptoUtils","csPlatform","Api","esHttp","csWallet","esWallet","csWot","esNotification",function(e,t,n,i,a,o,r,s,l,c){var u,d=this,p={DEFAULT_LOAD_SIZE:20},m={commons:["issuer","time","hash","content","nonce","comment"]},E=new a(this,"esInvitation");function b(e){e.invitations=e.invitations||{},e.invitations.unreadCount=null,e.invitations.time=null}function g(e){e.invitations&&delete e.invitations}function f(e,n){if(n=n||t.defer(),!e||!e.pubkey)return n.resolve(),n.promise;var i=Date.now(),a=Math.trunc(i/1e3);return e.invitations&&e.invitations.time&&a-e.invitations.time<30?(console.debug("[ES] [invitation] Skipping load (loaded "+(a-e.invitations.time)+"s ago)"),n.resolve(),n.promise):(console.debug("[ES] [invitation] Loading count..."),function(e){if(!(e=e||(r.isLogin()?r.data.pubkey:e)))throw new Error("User not connected or no pubkey");var t={query:{bool:{must:[{term:{recipient:e}}]}}};return o.post("/invitation/certification/_count")(t).then((function(e){return e.count}))}(e.pubkey).then((function(t){e.invitations=e.invitations||{},e.invitations.unreadCount=t,e.invitations.time=a,console.debug("[ES] [invitation] Loaded count ("+t+") in "+(Date.now()-i)+"ms"),n.resolve(e)})).catch((function(t){console.error("Error while counting invitation: "+(t.message?t.message:t)),n.resolve(e)})),n.promise)}function T(e){if(r.data.invitations&&r.data.invitations.list){var n=_.where(r.data.invitations.list,{type:"certification",pubkey:e.pubkey});if(n&&n.length)return t.all(n.reduce((function(e,t){return e.concat(I(t))}),[]))}}function h(t){console.debug("[ES] [invitation] detected new invitation (from notification service)"),r.isAuth()?v(t.reference.id,t.reference.type).then((function(e){r.data.invitations=r.data.invitations||{},r.data.invitations.unreadCount++,r.data.invitations.list&&r.data.invitations.list.splice(0,0,e),E.data.raise.new(e)})):e.$applyAsync((function(){r.data.invitations=r.data.invitations||{},r.data.invitations.unreadCount++}))}function v(e,n){return n=n||"certification",t.all([s.box.getKeypair(),d.raw[n].get({id:e,fields:m.commons.join(",")})]).then((function(e){var t=e[0],n=e[1],i=n._source;return i.id=n._id,i.type=n._type,s.box.record.open([i],t,"issuer",["content","comment"])})).then((function(e){var t=e[0];if(t&&t.valid){var n=new q(t);return l.extendAll(n.issuer?[n,n.issuer]:[n],"pubkey").then((function(){return n}))}}))}function I(e,t){if(!e||!e.id)throw"Invalid invitation (empty or without id). Could not delete.";var n=e.type||"certification",i=t&&t.walletId&&r.children.get(t.walletId)||r;return d.raw[n].remove(e.id,{wallet:i}).then((function(){i.data.invitations.unreadCount=0,i.data.invitations&&i.data.invitations.list&&i.data.invitations.list.splice(i.data.invitations.list.indexOf(e),1)}))}function N(e,n,i){return e&&e.length?(n=n||"certification",t.all(e.reduce((function(e,t){return e.concat(d.raw[n].remove(t,i))}),[]))):t.when()}function O(){var t=o.alive;!t&&u&&u.length>0?(console.debug("[ES] [invitations] Disable"),_.forEach(u,(function(e){e()})),u=[],r.isLogin()&&g(r.data)):!t||u&&0!==u.length||(console.debug("[ES] [invitations] Enable"),function(){u=[r.api.data.on.init(e,b,this),r.api.data.on.login(e,f,this),r.api.data.on.load(e,f,this),r.api.data.on.reset(e,g,this),r.api.action.on.certify(e,T,this),c.api.event.on.newInvitation(e,h,this)]}(),r.isLogin()&&f(r.data))}return d.raw={certification:{get:o.get("/invitation/certification/:id?_source:fields"),add:o.record.post("/invitation/certification"),postSearch:o.post("/invitation/certification/_search"),remove:o.record.remove("invitation","certification"),getIds:o.get("/invitation/certification/_search?q=recipient::pubkey&_source=false&size=1000")}},E.registerEvent("data","new"),i.ready().then((function(){return o.api.node.on.start(e,O,this),o.api.node.on.stop(e,O,this),O()})),d.api=E,d.load=function(e,n){if(!r.isLogin())return t.when([]);(e=e||{}).from=e.from||0,e.size=e.size||p.DEFAULT_LOAD_SIZE;var i={sort:{time:"desc"},query:{bool:{filter:{term:{recipient:e.issuer||r.data.pubkey}}}},from:e.from,size:e.size,_source:m.commons};return e.readTime&&(query.bool.must=[{range:{time:{gt:e.readTime}}}]),d.raw.certification.postSearch(i).then((function(e){if(!e||!e.hits||!e.hits.total)return[];var t=e.hits.hits.reduce((function(e,t){var n=t._source;return n.id=t._id,n.type=t._type,n.read=!!n.read_signature,delete n.read_signature,e.concat(n)}),[]);return s.box.record.open(t,n,"issuer",["content","comment"])})).then((function(t){var n=[];return t=t.reduce((function(e,t){if(!t||!t.valid)return e;var i=new q(t);return n.push(i),i.issuer&&n.push(i.issuer),e.concat(i)}),[]),l.extendAll(n,"pubkey").then((function(){return r.data.invitations=r.data.invitations||{},r.data.invitations.list?(r.data.invitations.list.length&&r.data.invitations.list.splice(e.from,r.data.invitations.list.length-e.from),_.forEach(t,(function(e){r.data.invitations.list.push(e)}))):r.data.invitations.list=t,r.data.invitations.list}))}))},d.get=v,d.send=function(e,t){(t=t||{}).type=t.type||"certification";var n=t.keypair||t.wallet&&t.wallet.data.keypair;return s.box.record.pack(e,n,"recipient",["content","comment"]).then((function(e){return d.raw[t.type].add(e,t)}))},d.delete=I,d.deleteByIds=N,d.deleteAll=function(e,t){e=e||"certification";var n=Date.now();console.debug("[ES] [invitation] Deleting all {0} invitations...".format(e));var i=t&&t.pubkey&&r.children.getByPubkey(t.pubkey)||t&&t.walletId&&r.children.getByPubkey(t.walletId)||r,a=i.data.invitations&&i.data.invitations.count||0,o=i.data.invitations&&i.data.invitations.unreadCount||0;return d.raw[e].getIds({pubkey:i.data.pubkey}).then((function(t){if(t&&t.hits&&t.hits.total)return N(t.hits.hits.reduce((function(e,t){return e.concat(t._id)}),[]),e,{walletId:i.id}).then((function(){i.data.invitations=i.data.invitations||{},i.data.invitations.count>=a?i.data.invitations.count-=a||0:i.data.invitations.count=0,i.data.invitations.unreadCount>=o?i.data.invitations.unreadCount-=o||0:i.data.invitations.unreadCount=0,console.debug("[ES] [invitation] All {0} invitations deleted in {1}ms".format(e,Date.now()-n))}))}))},d.constants=p,d}]),angular.module("cesium.es.subscription.services",["cesium.platform","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esSubscription")}]).factory("esSubscription",["$rootScope","$q","$timeout","esHttp","$state","$sce","$sanitize","esSettings","CryptoUtils","UIUtils","csWallet","csWot","BMA","csPlatform","esWallet",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){var b,g=this;function f(e){e.subscriptions=null}function T(e,n){return n=n||t.defer(),e&&e.pubkey&&e.keypair?(console.debug("[ES] [subscription] Loading subscriptions count..."),g.raw.count({pubkey:e.pubkey}).then((function(t){e.subscriptions=e.subscriptions||{},e.subscriptions.count=t&&t.hits&&t.hits.total,console.debug("[ES] [subscription] Loaded count ("+e.subscriptions.count+")"),n.resolve(e)})).catch((function(t){console.error("[ES] [subscription] Error while counting subscription: "+(t.message?t.message:t)),n.resolve(e)})),n.promise):(n.resolve(),n.promise)}function h(){var t=i.alive;if(!t&&b&&b.length>0){if(console.debug("[ES] [subscription] Disable"),_.forEach(b,(function(e){e()})),b=[],u.isLogin())return f(u.data)}else if(t&&(!b||0===b.length)&&(console.debug("[ES] [subscription] Enable"),function(){b=[u.api.data.on.load(e,T,this),u.api.data.on.init(e,f,this),u.api.data.on.reset(e,f,this)]}(),u.isLogin()))return T(u.data)}return g.raw={getAll:i.get("/subscription/record/_search?_source_excludes=recipientContent&q=issuer::issuer"),count:i.get("/subscription/record/_search?size=0&q=issuer::pubkey"),add:i.record.post("/subscription/record"),update:i.record.post("/subscription/record/:id/_update"),category:{get:i.get("/subscription/category/:id"),all:i.get("/subscription/category/_search?sort=order&from=0&size=1000&_source=name,parent,key")}},m.ready().then((function(){return i.api.node.on.start(e,h,this),i.api.node.on.stop(e,h,this),h()})),g.record={load:function(e,t){return g.raw.getAll({issuer:e}).then((function(e){var n=e&&e.hits&&e.hits.total&&e.hits.hits.reduce((function(e,t){var n=t._source;return n.id=t._id,e.concat(n)}),[])||[];return E.box.record.open(n,t,"issuer","issuerContent").then((function(e){return _.forEach(e,(function(e){e.content=JSON.parse(e.issuerContent||"{}"),delete e.issuerContent,delete e.recipientContent})),e}))}))},add:function(e,n){if(!(e&&e.type&&e.content&&e.recipient))return t.reject("Missing arguments 'record' or 'record.type' or 'record.content' or 'record.recipient'");var i=n&&n.wallet||n&&n.walletId&&u.children.get(n.walletId)||u,a=i.data.pubkey,o=JSON.stringify(e.content);return l.util.random_nonce().then((function(n){return t.all([E.box.record.pack({issuer:a,issuerContent:o},i.data.keypair,"issuer","issuerContent",n),E.box.record.pack({recipient:e.recipient,recipientContent:o},i.data.keypair,"recipient","recipientContent",n)])})).then((function(t){var n=angular.merge(t[0],t[1]);return n.type=e.type,g.raw.add(n,{wallet:i}).then((function(t){return e.id=t,e}))}))},update:function(e,n){if(!e||!e.content||!e.recipient)return t.reject("Missing arguments 'record' or 'record.content', or 'record.recipient'");var i=n&&n.wallet||n&&n.walletId&&u.children.get(n.walletId)||u,a=i.data.pubkey,o=JSON.stringify(e.content);return l.util.random_nonce().then((function(n){return t.all([E.box.record.pack({issuer:a,issuerContent:o},i.data.keypair,"issuer","issuerContent",n),E.box.record.pack({recipient:e.recipient,recipientContent:o},i.data.keypair,"recipient","recipientContent",n)])})).then((function(t){var n=angular.merge(t[0],t[1]);return n.type=e.type,g.raw.update(n,{id:e.id,wallet:i}).then((function(){return e}))}))},remove:i.record.remove("subscription","record")},g.category={all:function(){if(g.raw.categories&&g.raw.categories.length){var e=t.defer();return e.resolve(g.raw.categories),e.promise}return g.raw.category.all().then((function(e){if(0===e.hits.total)g.raw.categories=[];else{var t=e.hits.hits.reduce((function(e,t){var n=t._source;return n.id=t._id,e.concat(n)}),[]);_.forEach(t,(function(e){t[e.id]=e})),g.raw.categories=t}return g.raw.categories}))},get:function(e){return g.raw.category.get(e).then((function(e){var t=e._source;return t.id=e._id,t}))}},g.constants={},g}]),angular.module("cesium.es.wallet.services",["ngResource","cesium.platform","cesium.es.http.services","cesium.es.crypto.services"]).factory("esWallet",["$q","$rootScope","$timeout","CryptoUtils","csPlatform","csWallet","esCrypto","esProfile","esHttp",function(e,t,n,i,a,o,r,s,l){var c;function u(e){e.avatar=null,e.profile=null,e.name=null,o.events.cleanByContext("esWallet"),e.keypair&&(delete e.keypair.boxSk,delete e.keypair.boxPk)}function d(t,n){return n=n||e.defer(),r.box.getKeypair(t.keypair).then((function(e){t.keypair.boxSk=e.boxSk,t.keypair.boxPk=e.boxPk,console.debug("[ES] [wallet] Box keypair successfully computed"),n.resolve()})),n.promise}function p(e){(e=e||o.data).keypair&&(delete e.keypair.boxSk,delete e.keypair.boxPk)}function m(t,a){if(a=a||e.defer(),!t||!t.pubkey||!t.keypair)return a.resolve(),a.promise;if(!i.isLoaded())return console.debug("[ES] [wallet] Waiting crypto lib loading..."),n((function(){return m(t,a)}),50);console.debug("[ES] [wallet] Loading user avatar+name...");var o=Date.now();return s.getAvatarAndName(t.pubkey).then((function(e){e?(t.name=e.name,t.avatarStyle=e.avatarStyle,t.avatar=e.avatar,console.debug("[ES] [wallet] Loaded user avatar+name in "+(Date.now()-o)+"ms")):console.debug("[ES] [wallet] No user avatar+name found"),a.resolve(t)})).catch((function(e){a.reject(e)})),a.promise}function E(t,n){n=n||e.defer(),o.events.cleanByContext("esWallet"),!t.name&&!t.requirements.revoked&&t.requirements.pendingMembership&&t.requirements.needCertificationCount>0&&o.events.add({type:"info",message:"ACCOUNT.EVENT.MEMBER_WITHOUT_PROFILE",context:"esWallet"}),console.debug("[ES] [wallet] Loading full user profile...");var i=Date.now();return s.get(t.pubkey).then((function(e){e&&(t.name=e.name,t.avatar=e.avatar,t.profile=e.source,t.profile.description=e.description,console.debug("[ES] [wallet] Loaded full user profile in "+(Date.now()-i)+"ms")),n.resolve()})),n.promise}function b(t){if(!t&&!o.isAuth())throw new Error("Unable to get box keypair: user not authenticated !");return(t?e.when(t):o.getKeypair({silent:!0})).then((function(t){return t&&t.boxPk&&t.boxSk?e.when(t):r.box.getKeypair(t).then((function(e){return t.boxSk=e.boxSk,t.boxPk=e.boxPk,console.debug("[ES] [wallet] Box keypair successfully computed"),t}))}))}function g(){var e=l.alive;if(!e&&c&&c.length>0){if(console.debug("[ES] [wallet] Disable"),_.forEach(c,(function(e){e()})),c=[],o.isLogin())return u(o.data)}else if(e&&(!c||0===c.length)&&(console.debug("[ES] [wallet] Enable"),function(){c=[o.api.data.on.login(t,m,this),o.api.data.on.load(t,E,this),o.api.data.on.init(t,u,this),o.api.data.on.reset(t,u,this),o.api.data.on.unauth(t,p,this),o.api.data.on.auth(t,d,this)]}(),o.isLogin()))return m(o.data)}return a.ready().then((function(){return l.api.node.on.start(t,g,this),l.api.node.on.stop(t,g,this),g()})),this.box={getKeypair:b,record:{pack:function(e,t,n,i,a){return b(t).then((function(t){return r.box.pack(e,t,n,i,a)}))},open:function(e,t,n,i){return b(t).then((function(t){return r.box.open(e,t,n,i)}))}}},this}]),angular.module("cesium.es.wot.services",["ngResource","cesium.es.http.services"]).factory("esWot",["$rootScope","$q","esHttp","csCache",function(e,t,n,i){var a=i.get("esWot-memberships-",i.constants.MEDIUM),o={user:{event:n.post("/user/event/_search")}};return n.api.node.on.stop(e,(function(){console.debug("[ES] [wot] Clean cache..."),i.clear("esWot-")}),this),{memberships:function(e,n){var i=!1!==(n=n||{}).cache?a.get(e):null;if(i)return t.when(i);var r={size:1e3,query:{bool:{filter:[{term:{recipient:e}},{terms:{code:["MEMBER_JOIN","MEMBER_ACTIVE","MEMBER_LEAVE","MEMBER_EXCLUDE","MEMBER_REVOKE"]}}]}},sort:[{time:{order:"asc"}}],_source:["code","time"]};return o.user.event(r).then((function(t){if(t.hits&&t.hits.total){var n,i=t.hits.hits.reduce((function(e,t){var i="MEMBER_JOIN"==t._source.code||"MEMBER_ACTIVE"==t._source.code;return i&&!n?n=t._source.time:!i&&n&&(e=e.concat({joinTime:n,leaveTime:t._source.time}),n=0),e}),[]);return n&&i.push({joinTime:n,leaveTime:moment().utc().unix()}),a.put(e,i),i}}))}}}]),angular.module("cesium.es.tx.services",["ngResource","cesium.services","cesium.es.http.services","cesium.es.wot.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esTx")}]).factory("esTx",["$q","$rootScope","csPlatform","csCurrency","csTx","esHttp","esWot",function(e,t,n,i,a,o,r){var s,l={block:{search:o.post("/:currency/block/_search")}};function c(t,n){return n=n||e.defer(),(t=t||{}).pubkey||n.reject("Missing [pubkey] when calling [loadUDs] extension point"),e.all([i.get(),r.memberships(t.pubkey)]).then((function(n){var i=n[0]&&n[0].name,a=n[1];if(i&&a&&a.length)return-1!==t.fromTime&&(a=a.reduce((function(e,n){return n.leaveTime<t.fromTime?e:(n.joinTime=Math.max(n.joinTime,t.fromTime),e.concat(n))}),[])),e.all(a.reduce((function(e,n){var a={query:{filtered:{filter:{bool:{must:[{exists:{field:"dividend"}},{range:{medianTime:{from:n.joinTime+1,to:n.leaveTime}}}]}}}},size:t.size||1e4,from:t.from||0,sort:{medianTime:"desc"},_source:["medianTime","number","dividend","unitbase"]};return e.concat(l.block.search(a,{currency:i}))}),[]))})).then((function(e){if(e&&e.length)return e.reduce((function(e,t){return t.hits.total&&t.hits.hits.length?e.concat(t.hits.hits.reduce((function(e,t){var n,i,a=t._source;return e.concat({time:a.medianTime,amount:(n=a.dividend,i=a.unitbase,i<=0?n:n*Math.pow(10,i)),isUD:!0,block_number:a.number})}),[])):t}),[])})).then((function(e){n.resolve(e)})).catch((function(e){n.reject(e)})),n.promise}function u(){var e=o.alive;!e&&s&&s.length>0?(console.debug("[ES] [tx] Disable"),_.forEach(s,(function(e){e()})),s=[]):!e||s&&0!==s.length||(console.debug("[ES] [tx] Enable"),function(){s=[a.api.data.on.loadUDs(t,c,this)]}())}return n.ready().then((function(){return o.api.node.on.start(t,u,this),o.api.node.on.stop(t,u,this),u()})),{}}]),angular.module("cesium.es.geo.services",["cesium.services","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esGeo")}]).factory("esGeo",["$rootScope","$q","csConfig","csSettings","csHttp",function(e,t,n,i,a){var o=this;function r(e){return o.raw.google.search({address:e,key:o.raw.google.apiKey}).then((function(e){if(e&&e.results&&e.results.length)return e.results.reduce((function(e,t){return e.concat({display_name:t.address_components&&t.address_components.reduce((function(e,t){return t.long_name?e.concat(t.long_name):e}),[]).join(", "),lat:t.geometry&&t.geometry.location&&t.geometry.location.lat,lon:t.geometry&&t.geometry.location&&t.geometry.location.lng})}),[])}))}o.raw={osm:{search:a.get("nominatim.openstreetmap.org",443,"/search.php?format=json"),license:{name:"OpenStreetMap",url:"https://www.openstreetmap.org/copyright"}},google:{apiKey:void 0,search:a.get("maps.google.com",443,"/maps/api/geocode/json")},freegeoip:{search:a.get("freegeoip.net",443,"/json/:ip"),license:{name:"freegeoip",url:"https://freegeoip.net"}}},o.raw.google.apiKey=n.plugins&&n.plugins.es&&n.plugins.es.googleApiKey;var s=!!o.raw.google.apiKey;return i.ready().then((function(){function t(e){s||(o.raw.google.apiKey=e.plugins.es.googleApiKey),o.raw.google.enable=o.raw.google.apiKey&&e.plugins&&e.plugins.es&&e.plugins.es.enableGoogleApi}i.api.data.on.changed(e,t,this),t(i.data)})),{point:{current:function(){var e=t.defer();return navigator.geolocation?navigator.geolocation.getCurrentPosition((function(t){t&&t.coords?e.resolve({lat:t.coords.latitude,lon:t.coords.longitude}):console.error("[ES] [geo] navigator geolocation > Unknown format:",t)}),(function(t){e.reject(t)}),{timeout:5e3}):e.reject(),e.promise},searchByAddress:function(e){"string"==typeof e&&(e={q:e}),e.q&&(e.q=e.q.trim().replace(/\n/g,",").replace(/(?:^|[\t\n\r\s ])([A−Z09-]+)(?:$|[\t\n\r\s ])/g,"").replace(/,[ ,]+/g,", ")),e.addressdetails=1;var t=Date.now();return o.raw.osm.search(e).then((function(e){if(e)return e=e.reduce((function(e,t){return"waterway"!=t.class&&"railway"!=t.class&&t.address?(t.address.city=t.address.city||t.address.village||t.address.town||t.address.postcode,t.address.road=t.address.road||t.address.suburb||t.address.hamlet,t.address.postcode&&t.address.city==t.address.postcode&&delete t.address.postcode,t.address.city?e.concat({id:t.place_id,name:t.display_name,address:t.address,lat:t.lat,lon:t.lon,class:t.class,license:o.raw.osm.license}):e):e}),[]),console.debug("[ES] [geo] Found {0} address position(s)".format(e&&e.length||0,Date.now()-t),e),e.length?e:void 0})).catch((function(t){return n=t,i=e.q?e.q:(e.street?e.street+", ":"")+e.city+(e.country?", "+e.country:""),console.debug("[ES] [geo] Search position failed on [OSM]. Trying [google] service"),r(i).catch((function(e){throw console.debug("[ES] [geo] Search position failed on [google] service"),n||e}));var n,i}))},distance:function(e,t,n,i,a){var o=Math.PI*e/180,r=Math.PI*n/180,s=t-i,l=Math.PI*s/180,c=Math.sin(o)*Math.sin(r)+Math.cos(o)*Math.cos(r)*Math.cos(l);return c=60*(c=180*(c=Math.acos(c))/Math.PI)*1.1515,"km"==a?1.609344*c:"N"==a?.8684*c:c},ip:{search:function(e){return o.raw.freegeoip.search({ip:e}).then((function(e){return e?{lat:e.latitude,lng:e.longitude}:void 0}))},license:o.raw.freegeoip.license}},google:{isEnable:function(){return o.raw.google.enable&&o.raw.google.apiKey},searchByAddress:r}}}]),angular.module("cesium.es.document.services",["ngResource","cesium.platform","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esDocument")}]).factory("esDocument",["$q","$rootScope","$timeout","UIUtils","Api","CryptoUtils","csPlatform","csConfig","csSettings","csWot","csWallet","esHttp",function(e,t,n,i,a,o,r,s,l,c,u,d){var p=40,m={commons:["issuer","pubkey","hash","time","recipient","nonce","read_signature"],peer:["*"],movement:["*"]},E={search:d.post("/:index/:type/_search"),searchText:d.get("/:index/:type/_search?q=:text&_source=:source")};function b(e){if(!e||!e.index||!e.type)throw new Error("Missing mandatory options [index, type]");var t="desc";return"peer"===e.type?(e.sort&&!e.sort.time||(t=e.sort&&e.sort.time||t,e.sort={"stats.medianTime":{nested_path:"stats",order:t}}),e._source=m.peer,e.getTimeFunction=function(e){return e.time=e.stats&&e.stats.medianTime,e.time}):"movement"===e.type&&(e.sort&&!e.sort.time||(t=e.sort&&e.sort.time||t,e.sort={medianTime:t}),e._source=e._source||m.movement,e.getTimeFunction=function(e){return e.time=e.medianTime,e.time}),e}function g(e,t){t.issuerField=t.issuerField||"pubkey";var n=(e&&e.hits&&e.hits.hits||[]).reduce((function(e,n){var i=n._source||{};return i.docType=i.type,i.index=n._index,i.type=n._type,i.id=n._id,i.pubkey=i.issuer||t.issuerField&&i[t.issuerField]||i.pubkey,i.time=t.getTimeFunction&&t.getTimeFunction(i)||i.time,i.thumbnail=d.image.fromHit(n,"avatar")||d.image.fromHit(n,"thumbnail"),e.concat(i)}),[]),i=n.reduce((function(e,t){return t.recipient?(t.recipient={pubkey:t.recipient},e.concat(t.recipient)):e}),[]);return c.extendAll(n.concat(i)).then((function(){return{hits:n,took:e.took,total:e&&e.hits&&e.hits.total||0}}))}return{search:function(e){var t={from:(e=b(e)).from||0,size:e.size||p,sort:e.sort||{time:"desc"},_source:e._source||m.commons};return e.query&&(t.query=e.query),E.search(t,{index:e.index,type:e.type}).then((function(t){return g(t,e)}))},searchText:function(e,t){var n={text:e,index:(t=t||{}).index||"user",type:t.type||"profiles",from:t.from||0,size:t.size||p,sort:t.sort||"time:desc",source:t._source&&t._source.join(",")||m.commons.join(",")};console.debug("[ES] [wallet] [document] [{0}/{1}] Loading documents...".format(t.index,t.type));var i=Date.now();return E.searchText(n).then((function(e){return g(e,t)})).then((function(e){return console.debug("[ES] [document] [{0}/{1}] Loading {2} documents in {3}ms".format(t.index,t.type,e&&e.hits&&e.hits.length||0,Date.now()-i)),e}))},remove:function(t,n){return t&&t.index&&t.type&&t.id?d.record.remove(t.index,t.type)(t.id,n):e.reject("Could not remove document: missing mandatory fields")},removeAll:function(t,n){if(t&&t.length){var i=n&&n.walletId&&u.children.get(n.walletId)||u;return i.auth().then((function(){return e.all(t.reduce((function(e,t){return e.concat(d.record.remove(t.index,t.type)(t.id,{wallet:i}))}),[]))}))}},fields:{commons:m.commons},fromHit:function(e){return g({hits:{hits:[e]}},b({index:e._index,type:e._type})).then((function(e){return e.hits[0]}))}}}]),angular.module("cesium.es.network.services",["ngApi","cesium.es.http.services"]).factory("esNetwork",["$rootScope","$q","$interval","$timeout","$window","csSettings","csConfig","esHttp","Api","BMA",function(e,t,n,i,a,o,r,s,l,c){factory=function(e){var u,d="https:"===a.location.protocol,p=new l(this,"csNetwork-"+e),m={pod:null,listeners:[],loading:!0,peers:[],filter:{endpointFilter:null,online:!0,ssl:void 0,tor:void 0},sort:{type:null,asc:!0},expertMode:!1,knownBlocks:[],mainBlock:null,searchingPeersOnNetwork:!1,timeout:r.timeout},E=function(e){return e&&[e.number,e.hash].join("-")},b=function(){m.peers=[],m.searchingPeersOnNetwork=!0,m.loading=!0,m.pod=m.pod||s;var e=[];return u&&n.cancel(u),u=n((function(){e.length?h(e):m.loading&&!m.searchingPeersOnNetwork&&(m.loading=!1,n.cancel(u),I(!0),console.debug("[network] Finish: {0} peers found.".format(m.peers.length)))}),1e3),t.when().then((function(){return m.filter.online?m.pod.network.peers().then((function(n){var i=[];if(_.forEach(n.peers,(function(t){"UP"==t.status&&i.push(g(t,e))})),i.length)return t.all(i)})).catch((function(e){console.error(e)})):m.pod.network.peers().then((function(n){var i=[];if(_.forEach(n.peers,(function(t){"UP"!==t.status&&i.push(g(t,e))})),i.length)return t.all(i)}))})).then((function(){m.searchingPeersOnNetwork=!1})).catch((function(e){console.error(e),m.searchingPeersOnNetwork=!1}))},g=function(e,n){n=n||m.newPeers;var i=f(e),a=!1,o=i.reduce((function(e,t){var i=_.findWhere(m.peers,{id:t.id}),o=i?i.buid:null,r=!!i&&i.online;return e.concat(T(t).then((function(e){i?!e||e.online!==m.filter.online&&"all"!==m.filter.online?(console.debug("[network] Peer [{0}] removed (cause: {1})".format(t.server,e?e.online?"UP":"DOWN":"filtered")),m.peers.splice(m.peers.indexOf(i),1),a=!0):e.buid!==o?(console.debug("[network] {0} endpoint [{1}] new current block".format(e.ep&&(e.ep.useBma?"BMA":"WS2P")||"null",e.server)),a=!0):r!==e.online?(console.debug("[network] {0} endpoint [{1}] is now {2}".format(e.ep&&(e.ep.useBma?"BMA":"WS2P")||"null",e.server,e.online?"UP":"DOWN")),a=!0):console.debug("[network] {0} endpoint [{1}] unchanged".format(e.ep&&(e.ep.useBma?"BMA":"WS2P")||"null",e.server)):!e||e.online!==m.filter.online&&"all"!==m.filter.online||(console.debug("[network] {0} endpoint [{1}] is {2}".format(e.ep&&e.ep.api||"",e.server,e.online?"UP":"DOWN")),n.push(e),a=!0)})))}),[]);return(1===o.length?o[0]:t.all(o)).then((function(){return a}))},f=function(e,t){if(!e)return[];var n=new X(e);if(!t){var i=n.getEndpoints();if(!i)return[];var a=i.reduce((function(e,t){var n=s.node.parseEndPoint(t);return n?e.concat(n):e}),[]);if(a.length>1)return a.reduce((function(t,n){return t.concat(f(e,n))}),[]);t=a[0]}return n.ep=t,n.server=n.getServer(),n.dns=n.getDns(),n.blockNumber=n.block&&n.block.replace(/-.+$/,""),n.id=n.keyID(),[n]},T=function(e){return function(e){return!(m.filter&&(m.filter.endpointFilter&&(e.ep&&e.ep.api&&e.ep.api!==m.filter.endpointFilter||!e.hasEndpoint(m.filter.endpointFilter))||!m.filter.online&&"UP"==e.status||angular.isDefined(m.filter.ssl)&&e.isSsl()!=m.filter.ssl||angular.isDefined(m.filter.tor)&&e.isTor()!=m.filter.tor))}(e)?!m.filter.online||"all"===m.filter.online&&"DOWN"===e.status||!e.getHost()?(e.online=!1,t.when(e)):d&&!e.isSsl()?(e.online="UP"===e.status,e.buid=-1,delete e.version,t.when(e)):e.ep.useTor?(e.online="UP"==e.status,e.buid=-1,delete e.software,delete e.version,t.when(e)):(e.api=e.api||s.lightInstance(e.getHost(),e.getPort(),e.isSsl(),m.timeout),e.api.blockchain.current().then((function(t){return e.currentNumber=t.number,e.online=!0,e.buid=E(t),e.medianTime=t.medianTime,-1===m.knownBlocks.indexOf(e.buid)&&m.knownBlocks.push(e.buid),e})).catch((function(t){if(t&&t.ucode==c.errorCodes.NO_CURRENT_BLOCK)return e.online=!0,e.buid=E({number:0,hash:c.constants.ROOT_BLOCK_HASH}),e.difficulty=0,e;if(!e.secondTry){var n=e.ep||e.getEP();if(n.dns&&-1==e.server.indexOf(n.dns))return e.secondTry=!0,e.api=s.lightInstance(n.dns,n.port,n.useSsl),T(e)}return e.online=!1,e.currentNumber=null,e.buid=null,e})).then((function(e){return m.filter.online&&e&&e.online?(e.docCount={},t.all([m.expertMode?e.api.node.summary().then((function(t){e.software=t&&t.duniter&&t.duniter.software||void 0,e.version=t&&t.duniter&&t.duniter.version||"?"})).catch((function(){e.software=void 0,e.version="?"})):t.when(),e.api.record.count(m.document.index,m.document.type).then((function(t){e.docCount.record=t})).catch((function(){e.docCount.record=void 0})),e.api.subscription.count({recipient:e.pubkey,type:"email"}).then((function(t){e.docCount.emailSubscription=t})).catch((function(){e.docCount.emailSubscription=void 0}))])):e})).then((function(){return delete e.api,e}))):t.when()},h=function(e,t){if((e=e||m.newPeers).length){var n=_.map(m.peers,(function(e){return e.id})),i=!1,a=0;_.forEach(e.splice(0),(function(e){n[e.id]||(m.peers.push(e),n[e.id]=e,i=!0,a++)})),i&&(console.debug("[network] Flushing {0} new peers...".format(a)),I(t))}},v=function(e,t,n){if(!e)return 0;var i=0;t>(e=e.toLowerCase()).length&&(t=e.length),i+=e.charCodeAt(0);for(var a=1;a<t;a++)i+=Math.pow(.001,a)*e.charCodeAt(a);return n?1e3-i:i},I=function(e){var t={};_.forEach(m.peers,(function(e){if(e.buid){var n=t[e.buid];n&&n.medianTime?!n.medianTime&&e.medianTime&&(n.medianTime=e.medianTime):(n={buid:e.buid,count:0,medianTime:e.medianTime},t[e.buid]=n),-1!=n.buid&&n.count++}})),_.forEach(_.values(t),(function(e){e.pct=100*e.count/m.peers.length}));var n=_.max(t,(function(e){return e.count}));_.forEach(m.peers,(function(e){e.hasMainConsensusBlock=e.buid==n.buid,e.hasConsensusBlock=e.buid&&!e.hasMainConsensusBlock&&t[e.buid].count>1,e.hasConsensusBlock&&(e.consensusBlockDelta=t[e.buid].medianTime-n.medianTime)})),m.peers=_.uniq(m.peers,!1,(function(e){return e.id})),m.peers=_.sortBy(m.peers,(function(e){var n=0;if(m.sort.type){var i=0;i+="name"==m.sort.type?v(e.name,10,m.sort.asc):0,i+="software"==m.sort.type?v(e.software,10,m.sort.asc):0,i+="api"==m.sort.type&&(e.hasEndpoint("ES_SUBSCRIPTION_API")&&(m.sort.asc?1:-1)||0)+(e.hasEndpoint("ES_USER_API")&&(m.sort.asc?.01:-.01)||0)+(e.isSsl()&&(m.sort.asc?.75:-.75)||0)||0,n+=1e10*(i+="doc_count"==m.sort.type&&e.docCount?m.sort.asc?1e9-e.docCount:e.docCount:0)}return n+=1e9*(e.online?1:0),n+=1e8*(e.hasMainConsensusBlock?1:0),n+=1e6*(e.hasConsensusBlock?t[e.buid].pct:0),m.expertMode?(n+=100*(e.difficulty?1e4-e.difficulty:0),n+=1*(e.uid?v(e.uid,2,!0):0)):(n+=100*(e.uid?v(e.uid,2,!0):0),n+=1*(e.uid?0:v(e.pubkey,2,!0))),-n})),!e||!n.buid||m.mainBlock&&m.mainBlock.buid===n.buid||(m.mainBlock=n,p.data.raise.mainBlockChanged(n)),p.data.raise.changed(m)},N=function(e,t){return t=t||{},s.ready().then((function(){O(),m.pod=e||s,m.filter=t.filter?angular.merge(m.filter,t.filter):m.filter,m.sort=t.sort?angular.merge(m.sort,t.sort):m.sort,m.expertMode=angular.isDefined(t.expertMode)?t.expertMode:m.expertMode,m.timeout=angular.isDefined(t.timeout)?t.timeout:r.timeout,console.info("[network] Starting network from [{0}]".format(m.pod.server));var n=Date.now();return m.listeners=[m.pod.websocket.block().onListener((function(e){if(e&&!m.loading){var t=[e.number,e.hash].join("-");-1===m.knownBlocks.indexOf(t)&&(console.debug("[network] Receiving block: "+t.substring(0,20)),m.knownBlocks.push(t),1===m.knownBlocks.length||(m.loading=!0,i((function(){console.debug("[network] new block received by WS: will refresh peers"),b()}),2e3,!1)))}})),m.pod.websocket.peer().onListener((function(e){if(e&&!m.loading){var t=[];g(e,t).then((function(e){e&&(t.length>0?h(t,!0):(console.debug("[network] [ws] Peers updated received"),I(!0)))}))}}))],b().then((function(e){return console.debug("[network] Started in "+(Date.now()-n)+"ms"),e}))}))},O=function(){m.pod&&(console.info("[network-service] Stopping..."),_.forEach(m.listeners,(function(e){e()})),m.listeners=[]),m.pod=null,m.listeners=[],m.peers.splice(0),m.filter={endpointFilter:null,online:!0},m.sort={type:null,asc:!0},m.expertMode=!1,m.knownBlocks=[],m.mainBlock=null,m.loading=!0,m.searchingPeersOnNetwork=!1,m.timeout=r.timeout,m.document={index:o.data.plugins.es&&o.data.plugins.es.document&&o.data.plugins.es.document.index||"user",type:o.data.plugins.es&&o.data.plugins.es.document&&o.data.plugins.es.document.type||"profile"}},R=function(e){return m.pod?N().then((function(){return t(e)})):t(e)};return p.registerEvent("data","changed"),p.registerEvent("data","mainBlockChanged"),p.registerEvent("data","rollback"),{id:e,data:m,start:N,close:O,hasPeers:function(){return m.peers&&m.peers.length>0},getPeers:function(){return m.peers},sort:function(e){e=e||{},m.filter=e.filter?angular.merge(m.filter,e.filter):m.filter,m.sort=e.sort?angular.merge(m.sort,e.sort):m.sort,I(!1)},getTrustedPeers:function(){return R((function(e,t){e(m.peers.reduce((function(e,t){return t.hasMainConsensusBlock&&t.uid?e.concat(t):e}),[]))}))},getKnownBlocks:function(){return m.knownBlocks},getMainBlockUid:function(){return R((function(e,t){e(m.mainBuid)}))},loadPeers:b,isBusy:function(){return m.loading},api:p}};var u=factory("default");return u.instance=factory,u}]),Q.$inject=["$scope","UIUtils","$q","Device"],ee.$inject=["$scope","$focus","$filter","UIUtils","SocialUtils"],te.$inject=["$scope"],Z.$inject=["$scope","$filter","$state","$focus","$timeout","$anchorScroll","UIUtils"],J.$inject=["$scope","UIUtils","$timeout","parameters"],ne.$inject=["$scope"],ie.$inject=["$scope","csConfig","esGeo","ModalUtils"],ae.$inject=["$scope","$q","csConfig","esGeo","ModalUtils"],oe.$inject=["$scope","$timeout","ModalUtils","csConfig","esGeo"],re.$inject=["$scope","$q","$translate","esGeo","parameters"],angular.module("cesium.es.common.controllers",["ngResource","cesium.es.services"]).controller("ESPicturesEditCtrl",Q).controller("ESPicturesEditCtrl",Q).controller("ESSocialsEditCtrl",ee).controller("ESSocialsViewCtrl",te).controller("ESCommentsCtrl",Z).controller("ESCategoryModalCtrl",J).controller("ESAvatarModalCtrl",ne).controller("ESPositionEditCtrl",ie).controller("ESLookupPositionCtrl",ae).controller("ESSearchPositionItemCtrl",oe).controller("ESSearchPositionModalCtrl",re),se.$inject=["$scope","esSettings","PluginService"],le.$inject=["$scope","$state","$controller","UIUtils","csWallet"],ce.$inject=["$scope","$q","$state","esSettings","csWallet"],angular.module("cesium.es.app.controllers",["ngResource","cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&(e.extendState("app",{points:{"nav-buttons-right":{templateUrl:"plugins/es/templates/menu_extend.html",controller:"ESMenuExtendCtrl"},"menu-user":{templateUrl:"plugins/es/templates/menu_extend.html",controller:"ESMenuExtendCtrl"}}}),e.extendState("app",{points:{"profile-popover-user":{templateUrl:"plugins/es/templates/common/popover_profile_extend.html",controller:"ESProfilePopoverExtendCtrl"}}}))}]).controller("ESExtensionCtrl",se).controller("ESMenuExtendCtrl",le).controller("ESProfilePopoverExtendCtrl",ce),ue.$inject=["$scope","$window","$q","$translate","$ionicPopup","UIUtils","Modals","csHttp","csConfig","csSettings","esHttp","esSettings","esModals"],angular.module("cesium.es.settings.controllers",["cesium.es.services"]).config(["PluginServiceProvider","$stateProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(e.extendState("app.settings",{points:{plugins:{templateUrl:"plugins/es/templates/settings/settings_extend.html",controller:"ESExtensionCtrl"}}}),t.state("app.es_settings",{url:"/settings/es",views:{menuContent:{templateUrl:"plugins/es/templates/settings/plugin_settings.html",controller:"ESPluginSettingsCtrl"}}}))}]).controller("ESPluginSettingsCtrl",ue),angular.module("cesium.es.currency.controllers",["ngResource","cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.extendState("app.currency.tab_blocks",{points:{"nav-buttons":{templateUrl:"plugins/es/templates/currency/tab_blocks_extend.html",controller:"ESExtensionCtrl"}}})}]),de.$inject=["$scope","$controller","$state","esModals","csWallet"],angular.module("cesium.es.wallet.controllers",["cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.extendStates(["app.view_wallet","app.view_wallet_by_id"],{points:{"after-general":{templateUrl:"plugins/es/templates/wallet/view_wallet_extend.html",controller:"ESWalletCtrl"}}}).extendState("app.view_wallets",{points:{"item-wallet":{templateUrl:"plugins/es/templates/wallet/item_wallet_extend.html",controller:"ESExtensionCtrl"}}})}]).controller("ESWalletCtrl",de),pe.$inject=["$scope","$controller","$state"],me.$inject=["$scope","$ionicPopover","$q","$controller","UIUtils","Modals","csWallet","esModals","esWallet","esInvitation"],angular.module("cesium.es.wot.controllers",["cesium.es.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&t.extendState("app.wot_lookup",{points:{tabs:{templateUrl:"plugins/es/templates/wot/lookup_extend.html",controller:"ESExtensionCtrl"}}}).extendState("app.wot_lookup_lg",{points:{top:{templateUrl:"plugins/es/templates/wot/lookup_lg_extend.html",controller:"ESWotLookupExtendCtrl"}}}).extendStates(["app.wot_identity","app.wot_identity_uid"],{points:{"after-general":{templateUrl:"plugins/es/templates/wot/view_identity_extend.html",controller:"ESWotIdentityViewCtrl"},buttons:{templateUrl:"plugins/es/templates/wot/view_identity_extend.html",controller:"ESWotIdentityViewCtrl"},"buttons-top-fab":{templateUrl:"plugins/es/templates/wot/view_identity_extend.html",controller:"ESWotIdentityViewCtrl"}}}).extendStates(["app.wot_cert","app.wot_cert_lg","app.wallet_cert","app.wallet_cert_lg"],{points:{"nav-buttons":{templateUrl:"plugins/es/templates/wot/view_certifications_extend.html",controller:"ESWotIdentityViewCtrl"},buttons:{templateUrl:"plugins/es/templates/wot/view_certifications_extend.html",controller:"ESWotIdentityViewCtrl"}}})}]).controller("ESWotLookupExtendCtrl",pe).controller("ESWotIdentityViewCtrl",me),Ee.$inject=["$scope","$focus","$timeout","$filter","$controller","$location","$translate","$ionicPopover","Device","UIUtils","ModalUtils","BMA","csSettings","csWallet","esModals","esRegistry","esHttp"],be.$inject=["$scope","$controller","$timeout","UIUtils","esModals","csWallet"],ge.$inject=["$scope","$rootScope","$state","$q","$timeout","$ionicPopover","$ionicHistory","$translate","$anchorScroll","csConfig","csWallet","esRegistry","UIUtils","esHttp"],fe.$inject=["$scope","$timeout","$state","$q","$ionicHistory","$focus","$translate","$controller","Device","UIUtils","ModalUtils","csWallet","esHttp","esRegistry"],angular.module("cesium.es.registry.controllers",["cesium.es.services","cesium.es.common.controllers"]).config(["$stateProvider",function(e){e.state("app.wot_lookup.tab_registry",{url:"/page?q&type&hash&category&location&issuer&reload&lat&lon&d&last",views:{tab_registry:{templateUrl:"plugins/es/templates/registry/tabs/tab_registry.html",controller:"ESRegistryLookupCtrl"}},data:{large:"app.registry_lookup_lg",silentLocationChange:!0}}).state("app.registry_lookup_lg",{url:"/wot/page/lg?q&type&hash&category&location&issuer&reload&lat&lon&d&last",views:{menuContent:{templateUrl:"plugins/es/templates/registry/lookup_lg.html",controller:"ESRegistryLookupCtrl"}},data:{silentLocationChange:!0}}).state("app.wallet_pages",{url:"/account/pages?refresh",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_wallet_pages.html",controller:"ESWalletPagesCtrl"}},data:{login:!0,minData:!0,silentLocationChange:!0}}).state("app.wallet_pages_by_id",{url:"/wallets/:id/pages?refresh",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_wallet_pages.html",controller:"ESWalletPagesCtrl"}},data:{login:!0,minData:!0,silentLocationChange:!0}}).state("app.view_page",{url:"/page/view/:id/:title?refresh",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_record.html",controller:"ESRegistryRecordViewCtrl"}}}).state("app.view_page_anchor",{url:"/page/view/:id/:title/:anchor",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_record.html",controller:"ESRegistryRecordViewCtrl"}}}).state("app.registry_add_record",{cache:!1,url:"/page/add/:type?wallet",views:{menuContent:{templateUrl:"plugins/es/templates/registry/edit_record.html",controller:"ESRegistryRecordEditCtrl"}},data:{auth:!0,minData:!0}}).state("app.registry_edit_record",{cache:!1,url:"/page/edit/:id/:title?wallet",views:{menuContent:{templateUrl:"plugins/es/templates/registry/edit_record.html",controller:"ESRegistryRecordEditCtrl"}},data:{auth:!0,minData:!0}})}]).controller("ESRegistryLookupCtrl",Ee).controller("ESWalletPagesCtrl",be).controller("ESRegistryRecordViewCtrl",ge).controller("ESRegistryRecordEditCtrl",fe),_e.$inject=["$scope","$q","$timeout","$state","$focus","$translate","$controller","$ionicHistory","$ionicPopover","UIUtils","csWallet","esHttp","esProfile","ModalUtils","Device"],angular.module("cesium.es.profile.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.edit_profile",{url:"/wallet/profile/edit",views:{menuContent:{templateUrl:"plugins/es/templates/user/edit_profile.html",controller:"ESViewEditProfileCtrl"}},cache:!1,data:{auth:!0}}).state("app.edit_profile_by_id",{url:"/wallets/:id/profile/edit",views:{menuContent:{templateUrl:"plugins/es/templates/user/edit_profile.html",controller:"ESViewEditProfileCtrl"}},cache:!1,data:{login:!0}})}]).controller("ESViewEditProfileCtrl",_e),Te.$inject=["$scope","$state","$translate","$ionicHistory","$ionicPopover","$timeout","csWallet","esModals","UIUtils","esMessage"],he.$inject=["$scope","$controller"],ve.$inject=["$scope","$controller"],Ie.$inject=["$scope","$controller"],Ne.$inject=["$scope","Modals","UIUtils","csWallet","esHttp","esMessage","parameters"],Oe.$inject=["$scope","$state","$timeout","$translate","$ionicHistory","$ionicPopover","UIUtils","esModals","esMessage","csWallet"],Re.$inject=["$scope","UIUtils","$state","csWallet","esHttp","esMessage","esModals","$timeout"],angular.module("cesium.es.message.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.user_message",{url:"/user/message",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup.html"}}}).state("app.user_message.tab_inbox",{url:"/inbox",views:{tab_inbox:{controller:"ESMessageInboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{auth:!0,minData:!0,large:"app.user_messages_lg_inbox"}}).state("app.user_message.tab_outbox",{url:"/outbox",views:{tab_outbox:{controller:"ESMessageOutboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{auth:!0,minData:!0,large:"app.user_messages_lg_outbox"}}).state("app.user_messages_lg_inbox",{url:"/user/message/lg/inbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageInboxListCtrl"}},data:{auth:!0,minData:!0}}).state("app.user_messages_by_id",{url:"/wallets/:id/message",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_by_id.html"}}}).state("app.user_messages_by_id.tab_inbox",{url:"/inbox",views:{tab_inbox:{controller:"ESMessageInboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{large:"app.user_messages_lg_inbox_by_id"}}).state("app.user_messages_by_id.tab_outbox",{url:"/outbox",views:{tab_outbox:{controller:"ESMessageOutboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{large:"app.user_messages_lg_outbox_by_id"}}).state("app.user_messages_lg_inbox_by_id",{url:"/wallets/:id/message/lg/inbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageInboxListCtrl"}}}).state("app.user_messages_lg_outbox",{url:"/user/message/lg/outbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageOutboxListCtrl"}},data:{auth:!0,minData:!0}}).state("app.user_messages_lg_outbox_by_id",{url:"/wallets/:id/message/lg/outbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageOutboxListCtrl"}}}).state("app.user_new_message",{cache:!1,url:"/user/message/new?pubkey&uid&title&content&isReply",views:{menuContent:{templateUrl:"plugins/es/templates/message/compose.html",controller:"ESMessageComposeCtrl"}}}).state("app.user_view_message",{cache:!1,url:"/user/message/view/:type/:messageId",views:{menuContent:{templateUrl:"plugins/es/templates/message/view_message.html",controller:"ESMessageViewCtrl"}},data:{auth:!0,minData:!0}}).state("app.user_view_message_by_id",{cache:!1,url:"/wallets/:id/message/view/:type/:messageId",views:{menuContent:{templateUrl:"plugins/es/templates/message/view_message.html",controller:"ESMessageViewCtrl"}}})}]).controller("ESMessageAbstractListCtrl",Te).controller("ESMessageInboxListCtrl",he).controller("ESMessageOutboxListCtrl",ve).controller("ESMessageComposeCtrl",Ie).controller("ESMessageComposeModalCtrl",Ne).controller("ESMessageViewCtrl",Oe).controller("PopoverMessageCtrl",Re),Ae.$inject=["$scope","$ionicPopover","$state","$timeout","UIUtils","esHttp","csWallet","esNotification"],Se.$inject=["$scope","$timeout","$controller","$state","UIUtils","csWallet"],angular.module("cesium.es.notification.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.view_notifications",{url:"/notifications",views:{menuContent:{templateUrl:"plugins/es/templates/notification/view_notifications.html",controller:"NotificationsCtrl"}},data:{login:!0}}).state("app.view_notifications_by_id",{url:"/wallets/:id/notifications",views:{menuContent:{templateUrl:"plugins/es/templates/notification/view_notifications.html",controller:"NotificationsCtrl"}},data:{login:!0}})}]).controller("NotificationsCtrl",Ae).controller("PopoverNotificationsCtrl",Se),Ce.$inject=["$scope","$controller","$ionicPopover","$location","UIUtils","esBlockchain"],angular.module("cesium.es.blockchain.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.lookup_blocks_currency",{url:"/currencies/:currency/blocks?q",views:{menuContent:{templateUrl:"plugins/es/templates/blockchain/lookup.html",controller:"ESBlockLookupCtrl"}}}).state("app.blockchain_search",{url:"/blockchain/search?q&type",views:{menuContent:{templateUrl:"plugins/es/templates/blockchain/lookup.html",controller:"ESBlockLookupCtrl"}},data:{silentLocationChange:!0}})}]).controller("ESBlockLookupCtrl",Ce),Le.$inject=["$scope","$state","$location","$ionicPopover","$window","$translate","esHttp","UIUtils","csConfig","csSettings","csCurrency","esNetwork","csWot"],De.$inject=["$scope","$controller","parameters"],ke.$inject=["$scope","$q","$window","$state","UIUtils","csWot","esHttp","csHttp","csSettings"],ye.$inject=["$scope","$controller"],Pe.$inject=["$scope","$q","csSettings","csCurrency","csHttp","esHttp"],angular.module("cesium.es.network.controllers",["cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.extendState("app.network",{points:{"network-buttons":{templateUrl:"plugins/es/templates/network/view_network_extend.html",controller:"ESExtensionCtrl"},"blockchain-buttons":{templateUrl:"plugins/es/templates/network/view_network_extend.html",controller:"ESExtensionCtrl"}}})}]).config(["$stateProvider",function(e){e.state("app.es_network",{url:"/network/data?online&expert",cache:!1,views:{menuContent:{templateUrl:"plugins/es/templates/network/view_es_network.html",controller:"ESNetworkLookupCtrl"}},data:{silentLocationChange:!0}}).state("app.view_es_peer",{url:"/network/data/peer/:server?ssl&tor",cache:!1,views:{menuContent:{templateUrl:"plugins/es/templates/network/view_es_peer.html",controller:"ESPeerViewCtrl"}},data:{preferHttp:!0}})}]).controller("ESNetworkLookupCtrl",Le).controller("ESNetworkLookupModalCtrl",De).controller("ESPeerViewCtrl",ke).controller("ESNetworkLookupPopoverCtrl",ye).controller("ESPeerInfoPopoverCtrl",Pe),Me.$inject=["$scope","UIUtils","$state","csWallet","esGroup","ModalUtils"],we.$inject=["$scope","$state","$ionicPopover","$ionicHistory","$translate","UIUtils","csConfig","esGroup","csWallet"],Ue.$inject=["$scope","esGroup","UIUtils","$state","$q","Device","$ionicHistory","ModalUtils","$focus","esHttp"],angular.module("cesium.es.group.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.groups",{url:"/group?type&location",views:{menuContent:{templateUrl:"plugins/es/templates/group/lookup.html",controller:"ESGroupListCtrl"}}}).state("app.add_group",{url:"/group/add/:type",views:{menuContent:{templateUrl:"plugins/es/templates/group/edit_group.html",controller:"ESGroupEditCtrl"}}}).state("app.edit_group",{url:"/group/edit/:id",views:{menuContent:{templateUrl:"plugins/es/templates/group/edit_group.html",controller:"ESGroupEditCtrl"}}}).state("app.view_group",{url:"/group/view/:id",views:{menuContent:{templateUrl:"plugins/es/templates/group/view_record.html",controller:"ESGroupViewCtrl"}}})}]).controller("ESGroupListCtrl",Me).controller("ESGroupViewCtrl",we).controller("ESGroupEditCtrl",Ue),Be.$inject=["$scope","$q","$ionicPopover","$state","$timeout","UIUtils","csWallet","esHttp","esModals","esNotification","esInvitation"],xe.$inject=["$scope","$controller","csWallet"],Fe.$inject=["$scope","$q","Modals","UIUtils","csWallet","esHttp","esWallet","esInvitation","parameters"],angular.module("cesium.es.invitation.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.view_invitations",{url:"/invitations?id",views:{menuContent:{templateUrl:"plugins/es/templates/invitation/view_invitations.html",controller:"InvitationsCtrl"}},data:{auth:!0}}).state("app.view_invitations_by_id",{url:"/wallets/:id/invitations",views:{menuContent:{templateUrl:"plugins/es/templates/invitation/view_invitations.html",controller:"InvitationsCtrl"}},data:{login:!0}})}]).controller("InvitationsCtrl",Be).controller("PopoverInvitationCtrl",xe).controller("ESNewInvitationModalCtrl",Fe),He.$inject=["$scope","$q","$ionicHistory","csWot","csWallet","UIUtils","ModalUtils","esSubscription"],We.$inject=["$scope","Modals","csSettings","esHttp","csWot","esModals","parameters"],angular.module("cesium.es.subscription.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.edit_subscriptions",{cache:!1,url:"/wallet/subscriptions",views:{menuContent:{templateUrl:"plugins/es/templates/subscription/edit_subscriptions.html",controller:"ViewSubscriptionsCtrl"}},data:{auth:!0,minData:!0}}).state("app.edit_subscriptions_by_id",{cache:!1,url:"/wallets/:id/subscriptions",views:{menuContent:{templateUrl:"plugins/es/templates/subscription/edit_subscriptions.html",controller:"ViewSubscriptionsCtrl"}},data:{login:!0,minData:!0}})}]).controller("ViewSubscriptionsCtrl",He).controller("ModalEmailSubscriptionsCtrl",We),Ve.$inject=["$scope","$ionicPopover","$location","$timeout","csSettings","csWallet","UIUtils","esHttp","esDocument"],Ge.$inject=["$scope","$controller","$timeout","$state","$filter"],angular.module("cesium.es.document.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.document_search",{url:"/data/search/:index/:type?q",views:{menuContent:{templateUrl:"plugins/es/templates/document/lookup.html",controller:"ESDocumentLookupCtrl"}},data:{silentLocationChange:!0}})}]).controller("ESDocumentLookupCtrl",Ve).controller("ESLastDocumentsCtrl",Ge),angular.module("cesium.graph.plugin",["cesium.graph.services","cesium.graph.common.controllers","cesium.graph.blockchain.controllers","cesium.graph.network.controllers","cesium.graph.currency.controllers","cesium.graph.account.controllers","cesium.graph.docstats.controllers","cesium.graph.synchro.controllers"]),angular.module("cesium.graph.services",["cesium.graph.color.services","cesium.graph.data.services"]),angular.module("cesium.graph.data.services",["cesium.wot.services","cesium.es.http.services","cesium.es.wot.services"]).factory("gpData",["$rootScope","$q","$timeout","csHttp","esHttp","BMA","csWot","csCache","esWot",function(e,t,n,i,a,o,r,s,l){var c=s.get("gpData-currency-",s.constants.SHORT),u={node:{},wot:{},blockchain:{},docstat:{},synchro:{execution:{}},raw:{block:{search:a.post("/:currency/block/_search")},blockstat:{search:a.post("/:currency/blockstat/_search")},movement:{search:a.post("/:currency/movement/_search")},user:{event:a.post("/user/event/_search?pretty")},docstat:{search:a.post("/document/stats/_search")},synchro:{search:a.post("/:currency/synchro/_search")}},regex:{}};function d(e,t){return t<=0?e:e*Math.pow(10,t)}function p(e,t,n,a){return t=t||80,n=angular.isDefined(n)?n:443==t,{docstat:{search:i.post(e,t,"/document/stats/_search",n,a)},synchro:{search:i.post(e,t,"/:currency/synchro/_search",n,a)}}}function m(e){return(e=e||{}).maxRangeSize=e.maxRangeSize||30,e.defaultTotalRangeCount=e.defaultTotalRangeCount||2*e.maxRangeSize,e.rangeDuration=e.rangeDuration||"day",e.endTime=e.endTime||moment().utc().add(1,e.rangeDuration).unix(),e.startTime=e.startTime||moment.unix(e.endTime).utc().subtract(e.defaultTotalRangeCount,e.rangeDuration).unix(),e.firstBlockTime&&e.startTime<e.firstBlockTime&&(e.startTime=e.firstBlockTime),e}return u.blockchain.countByIssuer=function(e){return u.raw.block.search({size:0,aggs:{blocksByIssuer:{terms:{field:"issuer",size:0}}}},{currency:e}).then((function(e){var t=e.aggregations;if(t.blocksByIssuer&&t.blocksByIssuer.buckets&&t.blocksByIssuer.buckets.length){var n={blockCount:e.hits.total};return n.data=(t.blocksByIssuer.buckets||[]).reduce((function(e,t){return e.concat(t.doc_count)}),[]),n.issuers=(t.blocksByIssuer.buckets||[]).reduce((function(e,t){return e.concat({pubkey:t.key})}),[]),r.extendAll(n.issuers).then((function(){return n.labels=n.issuers.reduce((function(e,t){return e.concat(t.name||t.uid||t.pubkey.substr(0,8))}),[]),n}))}}))},u.blockchain.withDividend=function(e,n){n=n||{};var i=!angular.isDefined(n.withCache)||n.withCache,a=[e,JSON.stringify(n)].join("-");if(i){var r=c.get(a);if(r){if(!r.blocks){var s=t.defer();return r.then((function(e){return s.resolve(e),e})),s.promise}return console.debug("[graph] monetaryMass for ["+e+"] found in cache"),t.when(r)}}var l={query:{filtered:{filter:{bool:{must:[{exists:{field:"dividend"}}]}}}},size:n.size||1e4,from:n.from||0,_source:["medianTime","number","dividend","monetaryMass","membersCount","unitbase"],sort:{medianTime:"asc"}},p=t.all([n.withCurrent?o.blockchain.current().catch((function(e){if(!e||e.ucode!=o.errorCodes.NO_CURRENT_BLOCK)throw e})):t.when(),u.raw.block.search(l,{currency:e})]).then((function(e){var t=e[0];if((e=e[1]).hits.total&&e.hits.hits.length){var n={};if(n.blocks=e.hits.hits.reduce((function(e,t){var n=t._source;return n.dividend=d(n.dividend,n.unitbase),delete n.unitbase,e.concat(n)}),[]),t){var i=n.blocks.length&&t.medianTime-n.blocks[n.blocks.length-1].medianTime;i&&i>=3600&&(t.dividend=d(t.dividend,t.unitbase),delete t.unitbase,n.blocks.push(t))}return n.times=n.blocks.reduce((function(e,t){return e.concat(t.medianTime)}),[]),c.put(a,n),n}}));return c.put(a,p),p},u.blockchain.txCount=function(e,n){n=m(n);for(var i=[],a=moment.unix(n.startTime).utc().startOf(n.rangeDuration),o=moment.unix(n.endTime).utc().startOf(n.rangeDuration),r=[];a.isBefore(o);)if(r.push({from:a.unix(),to:a.add(1,n.rangeDuration).unix()}),r.length===n.maxRangeSize||!a.isBefore(o)){var s={size:0,aggs:{tx:{range:{field:"medianTime",ranges:r},aggs:{txCount:{stats:{field:"txCount"}},txAmount:{stats:{field:"txAmount"}}}}}};n.issuer&&(s.query={bool:{filter:{term:{issuer:n.issuer}}}}),r=[],10==i.length?(console.error("Too many parallel jobs!"),a=moment.unix(n.endTime).utc()):i.push(u.raw.blockstat.search(s,{currency:e}).then((function(e){var t=e.aggregations;if(t.tx&&t.tx.buckets&&t.tx.buckets.length)return(t.tx.buckets||[]).reduce((function(e,t){return e.concat({from:t.from,to:t.to,count:t.txCount.sum||0,amount:t.txAmount.sum||0,avgByBlock:Math.round(100*t.txCount.avg)/100,maxByBlock:t.txCount.max})}),[])})))}return t.all(i).then((function(e){return e=e.reduce((function(e,t){return t&&t.length?e.concat(t):e}),[]),e=_.sortBy(e,"from"),{count:_.pluck(e,"count"),avgByBlock:_.pluck(e,"avgByBlock"),maxByBlock:_.pluck(e,"maxByBlock"),amount:e.reduce((function(e,t){return e.concat(t.amount/100)}),[]),times:_.pluck(e,"from")}}))},u.node.blockCount=function(e,t){var n={size:0,query:{bool:{filter:{term:{issuer:t}}}}};return u.raw.block.search(n,{currency:e}).then((function(e){return e.hits.total}))},u.raw.movement.getByRange=function(e,t,n){if(!t)throw new Error("Missing 'pubkey' argument!");var i={size:0,query:{bool:{should:[{term:{recipient:t}},{term:{issuer:t}}]}},aggs:{tx:{range:{field:"medianTime",ranges:n},aggs:{received:{filter:{term:{recipient:t}},aggs:{received_stats:{stats:{field:"amount"}}}},sent:{filter:{term:{issuer:t}},aggs:{sent_stats:{stats:{field:"amount"}}}}}}}};return u.raw.movement.search(i,{currency:e}).then((function(e){var t=e.aggregations;if(t.tx&&t.tx.buckets&&t.tx.buckets.length)return(t.tx.buckets||[]).reduce((function(e,t){var n=t.sent.sent_stats,i=t.received.received_stats;return e.concat({from:t.from,to:t.to,sent:n.sum?-n.sum/100:0,received:i.sum?i.sum/100:0})}),[])}))},u.raw.movement.getUds=function(e,t,n){var i={size:0,query:{bool:{should:[{exists:{field:"dividend"}}]}},aggs:{ud:{range:{field:"medianTime",ranges:t},aggs:{ud_stats:{stats:{field:"dividend"}},unitbase_stats:{stats:{field:"unitbase"}}}}}};return u.raw.block.search(i,{currency:e}).then((function(e){var t=e.aggregations;if(t.ud&&t.ud.buckets&&t.ud.buckets.length)return(t.ud.buckets||[]).reduce((function(e,t){return e[n[t.from]]=d(t.ud_stats.sum,t.unitbase_stats.min)/100,e}),{})}))},u.blockchain.movement=function(e,n){(n=m(n)).withUD=!angular.isDefined(n.withUD)||n.withUD;var i=[];if(n.withUD&&!n.memberships)return l.memberships(n.pubkey).then((function(t){return n.memberships=t||[],u.blockchain.movement(e,n)}));var a=moment.unix(n.startTime).utc().startOf(n.rangeDuration),o=moment.unix(n.endTime).utc().startOf(n.rangeDuration),r=[],s=[],c={},d=angular.copy(n.memberships).reverse(),p=d.pop();function E(e){if(r.push(e),p&&p.joinTime<e.to){var t={from:Math.max(p.joinTime,e.from),to:Math.min(p.leaveTime,e.to)};for(s.push(t),c[t.from]=e.from;p&&p.leaveTime&&p.leaveTime<e.to;)p=d.pop()}}for(E({from:0,to:a.unix()});a.isBefore(o);)E({from:a.unix(),to:a.add(1,n.rangeDuration).unix()}),(!i.length&&r.length==n.maxRangeSize+1||i.length&&r.length==n.maxRangeSize||!a.isBefore(o))&&(s.length?i.push(t.all([u.raw.movement.getUds(e,s,c),u.raw.movement.getByRange(e,n.pubkey,r)]).then((function(e){var t=e[0];return(e=e[1]).forEach((function(e){e.ud=t[e.from]||0})),e}))):i.push(u.raw.movement.getByRange(e,n.pubkey,r).then((function(e){return e.forEach((function(e){e.ud=0})),e}))),r=[]);return t.all(i).then((function(e){if((e=e.reduce((function(e,t){return t&&t.length?e.concat(t):e}),[])).length){var t=(e=_.sortBy(e,"from")).splice(0,1)[0],n=t.received+t.sent+t.ud;return{times:_.pluck(e,"from"),ud:_.pluck(e,"ud"),sent:_.pluck(e,"sent"),received:_.pluck(e,"received"),balance:e.reduce((function(e,t){return n+=t.received+t.sent+t.ud,e.concat(n)}),[])}}}))},u.wot.certifications=function(e){return e=m(e),r.load(e.pubkey).then((function(t){if(t){var n={};_.forEach(t.given_cert||[],(function(t){var i=moment.unix(t.time).utc().startOf(e.rangeDuration).unix();n[i]=n[i]||{time:i,given:0,received:0},n[i].given++})),_.forEach(t.received_cert||[],(function(t){var i=moment.unix(t.time).utc().startOf(e.rangeDuration).unix();n[i]=n[i]||{time:i,given:0,received:0},n[i].received++})),n=_.sortBy(_.values(n),"time");var i={times:_.pluck(n,"time"),deltaGiven:_.pluck(n,"given"),deltaReceived:_.pluck(n,"received")},a=0;return i.given=i.deltaGiven.reduce((function(e,t){return a+=t,e.concat(a)}),[]),a=0,i.received=i.deltaReceived.reduce((function(e,t){return a+=t,e.concat(a)}),[]),i}}))},u.wot.memberships=function(e){var t={size:1e3,query:{bool:{filter:[{term:{recipient:(e=e||{}).pubkey}},{terms:{code:["MEMBER_JOIN","MEMBER_ACTIVE","MEMBER_LEAVE","MEMBER_EXCLUDE","MEMBER_REVOKE"]}}]}},sort:[{time:{order:"asc"}}],_source:["code","time"]};return u.raw.user.event(t).then((function(e){if(e.hits&&e.hits.total){var t,n=e.hits.hits.reduce((function(e,n){var i="MEMBER_JOIN"==n._source.code||"MEMBER_ACTIVE"==n._source.code;return i&&!t?t=n._source.time:!i&&t&&(e=e.concat({joinTime:t,leaveTime:n._source.time}),t=0),e}),[]);return t&&n.push({joinTime:t,leaveTime:moment().utc().unix()}),n}}))},u.docstat.get=function(e){e=m(e);var n=u.raw.docstat.search;if(e.server){var i=e.server.split(":");n=p(i[0],i[1]||80,e.useSsl).docstat.search}for(var a=[],o=moment.unix(e.startTime).utc().startOf(e.rangeDuration),r=moment.unix(e.endTime).utc().startOf(e.rangeDuration),s=[],l=function(e){var t=e.aggregations;return(t.range&&t.range.buckets||[]).reduce((function(e,t){var n={from:t.from,to:t.to};return _.forEach(t.index&&t.index.buckets||[],(function(e){var t=e.key;_.forEach(e.type&&e.type.buckets||[],(function(e){var i=t+"_"+e.key;n[i]=e.max.value,d[i]||(d[i]=!0)}))})),e.concat(n)}),[])};o.isBefore(r);)if(s.push({from:o.unix(),to:o.add(1,e.rangeDuration).unix()}),s.length===e.maxRangeSize||!o.isBefore(r)){var c={size:0,aggs:{range:{range:{field:"time",ranges:s},aggs:{index:{terms:{field:"index",size:0},aggs:{type:{terms:{field:"type",size:0},aggs:{max:{max:{field:"count"}}}}}}}}}};s=[];var d={},E={request_cache:!angular.isDefined(e.cache)||e.cache};10===a.length?(console.error("Too many parallel jobs!"),o=moment.unix(e.endTime).utc()):a.push(n(c,E).then(l))}return t.all(a).then((function(e){return e=e.reduce((function(e,t){return t&&t.length?e.concat(t):e}),[]),e=_.sortBy(e,"from"),_.keys(d).reduce((function(t,n){return t[n]=_.pluck(e,n),t}),{times:_.pluck(e,"from")})}))},u.synchro.execution.get=function(e){e=m(e);var n=u.raw.synchro.search;if(e.server){var i=e.server.split(":");n=p(i[0],i[1]||80,e.useSsl).synchro.search}for(var a=[],o=moment.unix(e.startTime).utc().startOf(e.rangeDuration),r=moment.unix(e.endTime).utc().startOf(e.rangeDuration),s=[],l=function(e){var t=e.aggregations;return(t.range&&t.range.buckets||[]).reduce((function(e,t){var n={from:t.from,to:t.to,inserts:t.result.inserts.value,updates:t.result.inserts.value,deletes:t.result.deletes.value,duration:t.duration.value};return _.forEach(t.api&&t.api.buckets||[],(function(e){n[e.key]=e.peer_count&&e.peer_count.value||0,d[e.key]||(d[e.key]=!0)})),e.concat(n)}),[])};o.isBefore(r);)if(s.push({from:o.unix(),to:o.add(1,e.rangeDuration).unix()}),s.length===e.maxRangeSize||!o.isBefore(r)){var c={size:0,aggs:{range:{range:{field:"time",ranges:s},aggs:{api:{terms:{field:"api",size:0},aggs:{peer_count:{cardinality:{field:"peer"}}}},duration:{sum:{field:"executionTime"}},result:{nested:{path:"result"},aggs:{inserts:{sum:{field:"result.inserts"}},updates:{sum:{field:"result.updates"}},deletes:{sum:{field:"result.deletes"}}}}}}}};s=[];var d={};10===a.length?(console.error("Too many parallel jobs!"),o=moment.unix(e.endTime).utc()):a.push(n(c,{currency:e.currency}).then(l))}return t.all(a).then((function(e){e=e.reduce((function(e,t){return t&&t.length?e.concat(t):e}),[]),e=_.sortBy(e,"from");var t={times:_.pluck(e,"from"),inserts:_.pluck(e,"inserts"),updates:_.pluck(e,"updates"),deletes:_.pluck(e,"deletes"),duration:_.pluck(e,"duration")};return _.keys(d).forEach((function(n){t[n]=_.pluck(e,n)})),t}))},u}]),angular.module("cesium.graph.color.services",[]).factory("gpColor",(function(){var e={css2Rgb:{white:[255,255,255],assertive:[239,71,58],calm:[17,193,243],positive:[56,126,245],balanced:[51,205,95],energized:[255,201,0],royal:[136,106,234],gray:[150,150,150],stable:[248,248,248]}},t={scale:{}};return t.scale.custom=function(e,t,n,i){function a(e){switch(e){case 0:return 0;case 1:return-1;case 2:return 0;case 3:return 1}}t=t>0&&t||.55;for(var o=Math.round(e/2.5),r=n&&3==n.length?angular.copy(n):[255,0,0],s=i&&3==i.length?angular.copy(i):[0,2,3],l=n?[Math.round(255/o),Math.round(255/o),Math.round(255/o)]:[Math.round((r[0]-50)/o),Math.round((255-r[1])/o),Math.round((255-r[2])/o)],c=[a(s[0]),a(s[1]),a(s[2])],u=[0,0,0],d=[],p=0;p<e;p++){for(var m=0;m<3;m++)r[m]+=c[m]*l[m],u[m]++,((r[m]<=0||r[m]>=255)&&0!==c[m]||0===c[m]&&u[m]==o)&&(r[m]<=0?r[m]=0:r[m]>=255&&(r[m]=255),s[m]=(s[m]+1)%4,c[m]=a(s[m]),u[m]=0);d.push("rgba("+r[0]+","+r[1]+","+r[2]+","+t+")")}return d},t.scale.default=function(){return t.scale.custom(25)},t.scale.fix=function(e,n){return Array.apply(null,Array(e||25)).map(String.prototype.valueOf,n||t.rgba.calm(.5))},t.rgba=_.mapObject(e.css2Rgb,(function(e){var t="rgba("+e.join(",")+",";return function(n){return!n||n<0?"rgb("+e.join(",")+")":t+n+")"}})),t.rgba.translucent=function(){return"rgb(0,0,0,0)"},t.constants=e,t})),Ye.$inject=["$scope","$filter","$ionicPopover","$ionicHistory","$state","csSettings","csCurrency","esHttp","UIUtils"],angular.module("cesium.graph.common.controllers",["cesium.services"]).controller("GpCurrencyAbstractCtrl",Ye),je.$inject=["$scope","$controller","$q","$state","$filter","$translate","gpData","gpColor"],Ke.$inject=["$scope","$controller","$q","$state","$translate","gpColor","gpData"],angular.module("cesium.graph.blockchain.controllers",["chart.js","cesium.services","cesium.graph.services"]).config(["$stateProvider",function(e){e.state("app.blockchain_stats",{url:"/blockchain/stats?currency&stepUnit&t&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/blockchain/view_stats.html"}}}).state("app.currency_blockchain_stats",{url:"/:currency/blockchain/stats",views:{menuContent:{templateUrl:"plugins/graph/templates/blockchain/view_stats.html"}}})}]).controller("GpBlockchainTxCountCtrl",je).controller("GpBlockchainIssuersCtrl",Ke),$e.$inject=["$scope","$timeout","PluginService","esSettings","csCurrency","gpData"],angular.module("cesium.graph.network.controllers",["chart.js","cesium.graph.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(t.extendState("app.network",{points:{"blockchain-buttons":{templateUrl:"plugins/graph/templates/network/view_network_extend.html",controller:"ESExtensionCtrl"}}}).extendState("app.view_peer",{points:{general:{templateUrl:"plugins/graph/templates/network/view_peer_extend.html",controller:"GpPeerViewExtendCtrl"}}}).extendState("app.es_network",{points:{"documents-buttons":{templateUrl:"plugins/graph/templates/network/view_es_network_extend.html",controller:"ESExtensionCtrl"}}}).extendState("app.view_es_peer",{points:{general:{templateUrl:"plugins/graph/templates/network/view_es_peer_extend.html",controller:"ESExtensionCtrl"}}}),e.state("app.view_peer_stats",{url:"/network/peer/:pubkey/stats",views:{menuContent:{templateUrl:"plugins/graph/templates/network/view_peer_stats.html",controller:"GpBlockchainTxCountCtrl"}}}))}]).controller("GpPeerViewExtendCtrl",$e),ze.$inject=["$scope","PluginService","UIUtils","esSettings"],qe.$inject=["$scope","$controller","$q","$state","$translate","UIUtils","gpColor","gpData","$filter","csSettings"],Xe.$inject=["$scope","$q","$controller","$translate","gpColor","gpData","$filter","UIUtils"],Qe.$inject=["$scope","$controller","$q","$state","$translate","gpColor","gpData","$filter"],angular.module("cesium.graph.currency.controllers",["chart.js","cesium.graph.services","cesium.graph.common.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){e.state("app.currency.tab_parameters_stats",{url:"/parameters/stats",views:{"tab-parameters":{templateUrl:"plugins/graph/templates/currency/tabs/tab_parameters_stats.html"}}}).state("app.currency.tab_wot_stats",{url:"/community/stats",views:{"tab-wot":{templateUrl:"plugins/graph/templates/currency/tabs/tab_wot_stats.html",controller:"GpCurrencyMembersCountCtrl"}}}).state("app.currency.tab_network_stats",{url:"/network/stats",views:{"tab-network":{templateUrl:"plugins/graph/templates/currency/tabs/tab_network_stats.html"}}}).state("app.currency.tab_blocks_stats",{url:"/blocks/stats",views:{"tab-blocks":{templateUrl:"plugins/graph/templates/currency/tabs/tab_blocks_stats.html"}}}).state("app.currency_stats_lg",{url:"/currency/stats/lg?hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/currency/view_stats_lg.html"}}}),n.plugins&&n.plugins.es&&t.extendStates(["app.currency_name","app.currency","app.currency_name_lg","app.currency_lg"],{points:{"parameters-actual":{templateUrl:"plugins/graph/templates/currency/view_currency_extend.html",controller:"GpCurrencyViewExtendCtrl"},"wot-actual":{templateUrl:"plugins/graph/templates/currency/view_currency_extend.html",controller:"GpCurrencyViewExtendCtrl"},"network-actual":{templateUrl:"plugins/graph/templates/currency/view_currency_extend.html",controller:"GpCurrencyViewExtendCtrl"}}}).extendStates(["app.currency.tab_blocks"],{points:{buttons:{templateUrl:"plugins/graph/templates/currency/tab_blocks_extend.html",controller:"GpCurrencyViewExtendCtrl"}}})}]).controller("GpCurrencyViewExtendCtrl",ze).controller("GpCurrencyMonetaryMassCtrl",qe).controller("GpCurrencyDUCtrl",Xe).controller("GpCurrencyMembersCountCtrl",Qe),Je.$inject=["$scope","PluginService","esSettings","$state","csWallet"],Ze.$inject=["$scope","$controller","$q","$state","$filter","$translate","csWot","gpData","gpColor","csWallet"],et.$inject=["$scope","$controller","$filter","$state","csTx","gpColor"],tt.$inject=["$scope","$controller","$q","$state","$filter","$translate","gpData","gpColor","csWallet"],angular.module("cesium.graph.account.controllers",["chart.js","cesium.graph.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(t.extendState("app.view_wallet_tx",{points:{buttons:{templateUrl:"plugins/graph/templates/account/view_wallet_tx_extend.html",controller:"GpExtendCtrl"}}}).extendState("app.view_wallet_tx_by_id",{points:{buttons:{templateUrl:"plugins/graph/templates/account/view_wallet_tx_extend.html",controller:"GpExtendCtrl"}}}).extendState("app.wot_identity",{points:{buttons:{templateUrl:"plugins/graph/templates/account/view_identity_extend.html",controller:"GpExtendCtrl"}}}).extendStates(["app.wot_identity_tx_uid","app.wot_identity_tx_uid_lg"],{points:{buttons:{templateUrl:"plugins/graph/templates/account/view_identity_tx_extend.html",controller:"GpExtendCtrl"}}}),e.state("app.view_wallet_stats",{url:"/wallet/stats?t&stepUnit&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/account/view_stats.html"}},data:{auth:!0}}).state("app.view_wallet_stats_by_id",{url:"/wallets/:id/stats?t&stepUnit&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/account/view_stats.html"}},data:{auth:!0}}).state("app.wot_identity_stats",{url:"/wot/:pubkey/stats?t&stepUnit&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/account/view_stats.html"}}}))}]).controller("GpExtendCtrl",Je).controller("GpAccountBalanceCtrl",Ze).controller("GpAccountSumTxCtrl",et).controller("GpAccountCertificationCtrl",tt),nt.$inject=["$scope","$state","$controller","$q","$translate","gpColor","gpData","$filter"],angular.module("cesium.graph.docstats.controllers",["chart.js","cesium.graph.services","cesium.graph.common.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){e.state("app.doc_stats_lg",{url:"/network/data/stats/:server?stepUnit&t&hide&scale&useSsl&useTor",views:{menuContent:{templateUrl:"plugins/graph/templates/docstats/view_stats.html",controller:"GpDocStatsCtrl"}}}).state("app.doc_stats_lg_old",{url:"/data/stats?stepUnit&t&hide&scale&useSsl&useTor",views:{menuContent:{templateUrl:"plugins/graph/templates/docstats/view_stats.html",controller:"GpDocStatsCtrl"}}}),n.plugins&&n.plugins.es}]).controller("GpDocStatsCtrl",nt),it.$inject=["$scope","$controller","$q","$translate","gpColor","gpData","$filter"],angular.module("cesium.graph.synchro.controllers",["chart.js","cesium.graph.services","cesium.graph.common.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){e.state("app.doc_synchro_lg",{url:"/network/data/synchro/:server?stepUnit&t&hide&scale&useSsl&useTor",views:{menuContent:{templateUrl:"plugins/graph/templates/synchro/view_stats.html",controller:"GpSynchroCtrl"}}}).state("app.doc_synchro_lg_old",{url:"/data/synchro?stepUnit&t&hide&scale&useSsl&useTor",views:{menuContent:{templateUrl:"plugins/graph/templates/synchro/view_stats.html",controller:"GpSynchroCtrl"}}}),n.plugins&&n.plugins.es}]).controller("GpSynchroCtrl",it),angular.module("cesium.map.plugin",["ui-leaflet","cesium.map.services","cesium.map.wot.controllers","cesium.map.registry.controllers","cesium.map.network.controllers","cesium.map.user.controllers","cesium.map.settings.controllers","cesium.map.help.controllers"]).config((function(){L.AwesomeMarkers.Icon.prototype.options.prefix="ion"})),angular.module("cesium.map.services",["cesium.map.wot.services","cesium.map.registry.services","cesium.map.utils.services"]),angular.module("cesium.map.wot.services",["cesium.services"]).factory("mapWot",["$q","csHttp","esHttp","esSettings","csWot","BMA","esGeo",function(e,t,n,i,a,o,r){var s=this,l=1e3,c={min:["title","geoPoint"],profile:["title","geoPoint","avatar._content_type","address","city"]};function u(e){var t={bool:{}};if((e=e||{}).searchAddress?t.bool.should=[{exists:{field:"geoPoint"}},{exists:{field:"city"}}]:t.bool.must=[{exists:{field:"geoPoint"}}],e.bounds&&e.bounds.northEast&&e.bounds.southWest){var n={geoPoint:{top_left:{lat:Math.max(Math.min(e.bounds.northEast.lat,90),-90),lon:Math.max(Math.min(e.bounds.southWest.lng,180),-180)},bottom_right:{lat:Math.max(Math.min(e.bounds.southWest.lat,90),-90),lon:Math.max(Math.min(e.bounds.northEast.lng,180),-180)}}};console.debug("[map] [wot] Filtering on bounds: ",e.bounds),t.bool.must=t.bool.must||[],t.bool.must.push({geo_bounding_box:n})}return t}function d(t,i,a,o){var s=new RegExp("[,]"),l=[],c=o.hits.hits.reduce((function(e,o){var r=o._id,c=i[r],u=c&&{uid:c}||a[r]||{};if(u.pubkey=r,u.index=o._index,u.city=o._source.city,u.address=o._source.address,u.geoPoint=o._source.geoPoint,u.geoPoint&&u.geoPoint.lat&&u.geoPoint.lon)u.geoPoint.lat&&"string"==typeof u.geoPoint.lat&&(u.geoPoint.lat=parseFloat(u.geoPoint.lat.replace(s,"."))),u.geoPoint.lon&&"string"==typeof u.geoPoint.lon&&(u.geoPoint.lon=parseFloat(u.geoPoint.lon.replace(s,".")));else{if(!t.searchAddress||!u.city)return e;u.searchAddress=u.city&&(o._source.address?o._source.address+", ":"")+u.city,l.push(u)}return u.avatar=n.image.fromHit(o,"avatar"),u.name=o._source.title,u.name&&u.name.length>30&&(u.name=u.name.substr(0,27)+"..."),u.description=o._source.description&&n.util.parseAsHtml(o._source.description),u.geoPoint?e.concat(u):e}),[]);if(l.length){var u=Date.now();console.debug("[map] [wot] Search positions of {0} addresses...".format(l.length));var d=0;return e.all(l.reduce((function(e,t){return t.city?e.concat(r.google.searchByAddress(t.searchAddress).then((function(e){e&&e.length&&(t.geoPoint=e[0],t.city==t.searchAddress&&(t.geoPoint.lon+=Math.random()/1e3,t.geoPoint.lat+=Math.random()/1e3),delete t.searchAddress,c.push(t),d++)})).catch((function(){}))):e}),[])).then((function(){return console.debug("[map] [wot] Resolved {0}/{1} addresses in {2}ms".format(d,l.length,Date.now()-u)),c}))}return e.when(c)}return s.raw={profile:{search:n.post("/user/profile/_search"),mixedSearch:n.post("/user,page,group/profile,record/_search")}},{load:function(t){(t=t||{}).from=t.from||0,t.size=t.size||l,t.searchAddress=r.google.isEnable()&&(!angular.isDefined(t.searchAddress)||t.searchAddress),t.fields=t.fields||{},t.fields.description=!!angular.isDefined(t.fields.description)&&t.fields.description;var n={query:u(t),from:0,size:t.size,_source:t.fields.description?c.profile.concat("description"):c.profile},i=s.raw.profile.search;return e.all([i(n),o.wot.member.uids(),o.wot.member.pending().then((function(e){return e.memberships&&e.memberships.length?e.memberships:[]}))]).then((function(a){var o=a[1],r=a[2];if(!(a=a[0]).hits||!a.hits.total)return[];r=r.reduce((function(e,t){if("IN"==t.membership&&!o[t.pubkey]){var n={uid:t.uid,pubkey:t.pubkey,block:t.blockNumber,blockHash:t.blockHash,pending:!0},i=e[t.pubkey];if(i&&n.block>i.block)return e;e[n.pubkey]=n}return e}),{});var s=[d(t,o,r,a)];for(n.from+=n.size;n.from<a.hits.total;)s.push(i(angular.copy(n)).then((function(e){return e.hits&&e.hits.hits.length?d(t,o,r,e):[]}))),n.from+=n.size;return e.all(s).then((function(e){return e.reduce((function(e,t){return e.concat(t)}),[])}))}))}}}]),angular.module("cesium.map.registry.services",["cesium.services"]).factory("mapRegistry",["$q","csHttp","esHttp","esSettings","csWot","BMA","esGeo",function(e,t,n,i,a,o,r){var s=this,l=1e3,c={record:["title","geoPoint","avatar._content_type","address","city","type","pubkey","issuer","category"]};function u(e){var t={bool:{}};return(e=e||{}).searchAddress?t.bool.should=[{exists:{field:"geoPoint"}},{exists:{field:"city"}}]:t.bool.must=[{exists:{field:"geoPoint"}}],e.bounds&&e.bounds.northEast&&e.bounds.southWest&&(t.bool.should=t.bool.should||{},t.bool.should.geo_bounding_box={geoPoint:{top_left:{lat:Math.max(Math.min(e.bounds.northEast.lat,90),-90),lon:Math.max(Math.min(e.bounds.southWest.lng,180),-180)},bottom_right:{lat:Math.max(Math.min(e.bounds.southWest.lat,90),-90),lon:Math.max(Math.min(e.bounds.northEast.lng,180),-180)}}}),t}function d(t,i){var a=new RegExp("[,]"),o=[],s=i.hits.hits.reduce((function(e,i){var r=i._source.issuer,s={};if(s.issuer=r,s.pubkey=i._source.pubkey||s.issuer,s.id=i._id,s.index=i._index,s.type=i._source.type,s.category=i._source.category,s.category&&delete s.category.parent,s.city=i._source.city,s.address=i._source.address,s.geoPoint=i._source.geoPoint,s.geoPoint&&s.geoPoint.lat&&s.geoPoint.lon)s.geoPoint.lat&&"string"==typeof s.geoPoint.lat&&(s.geoPoint.lat=parseFloat(s.geoPoint.lat.replace(a,"."))),s.geoPoint.lon&&"string"==typeof s.geoPoint.lon&&(s.geoPoint.lon=parseFloat(s.geoPoint.lon.replace(a,".")));else{if(!t.searchAddress||!s.city)return e;s.searchAddress=s.city&&(i._source.address?i._source.address+", ":"")+s.city,o.push(s)}return s.avatar=n.image.fromHit(i,"avatar"),s.name=i._source.title,s.name&&s.name.length>30&&(s.name=s.name.substr(0,27)+"..."),s.description=i._source.description&&n.util.parseAsHtml(i._source.description),s.geoPoint?e.concat(s):e}),[]);if(o.length){var l=Date.now();console.debug("[map] [registry] Search positions of {0} addresses...".format(o.length));var c=0;return e.all(o.reduce((function(e,t){return t.city?e.concat(r.google.searchByAddress(t.searchAddress).then((function(e){e&&e.length&&(t.geoPoint=e[0],t.city==t.searchAddress&&(t.geoPoint.lon+=Math.random()/1e3,t.geoPoint.lat+=Math.random()/1e3),delete t.searchAddress,s.push(t),c++)})).catch((function(){}))):e}),[])).then((function(){return console.debug("[map] [registry] Resolved {0}/{1} addresses in {2}ms".format(c,o.length,Date.now()-l)),s}))}return e.when(s)}return s.raw={profile:{search:n.post("/page/record/_search"),mixedSearch:n.post("/user,page,group/profile,record/_search")}},{load:function(t){(t=t||{}).from=t.from||0,t.size=t.size||l,t.searchAddress=r.google.isEnable()&&(!angular.isDefined(t.searchAddress)||t.searchAddress),t.fields=t.fields||{},t.fields.description=!angular.isDefined(t.fields.description)||t.fields.description;var n={query:u(t),from:0,size:t.size,_source:t.fields.description?c.record.concat("description"):c.record},i=s.raw.profile.search,a=function(n){return n.hits&&n.hits.hits.length?d(t,n):e.when([])};return i(n).then((function(o){if(!o.hits||!o.hits.total)return[];var r=[d(t,o)];for(n.from+=n.size;n.from<o.hits.total;)r.push(i(angular.copy(n)).then(a)),n.from+=n.size;return e.all(r).then((function(e){return e.reduce((function(e,t){return e.concat(t)}),[])}))}))}}}]),angular.module("cesium.map.utils.services",["cesium.services","ui-leaflet"]).factory("MapUtils",["$timeout","$q","$translate","$window","leafletData","csConfig","csSettings","esGeo","UIUtils","leafletHelpers",function(e,t,n,i,a,o,r,s,l,c){var u=o.plugins&&o.plugins.es&&o.plugins.es.googleApiKey,d={locations:{FRANCE:{lat:46.5588603,lng:4.229736328124999,zoom:6}},LOCALIZE_ZOOM:15},p={cache:{}};function m(e,t){return c.isSameCenterOnMap(e,t)}function E(e,t){if(!e||!t)throw"Illegal arguments";if(e._container)e._container.id=t;else{var n=e.onAdd;e.onAdd=function(e){var i=n.call(this,e);return i.id=t,i}}}return d.DEFAULT_CENTER=r.data&&r.data.plugins&&r.data.plugins.map&&r.data.plugins.map.center||d.locations.FRANCE,{map:function(e){var t;return(e=angular.merge({center:angular.copy(d.DEFAULT_CENTER),cache:!1,defaults:{scrollWheelZoom:!0,tileLayerOptions:{attribution:'© <a target="_blank" href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'}},layers:{baselayers:{osm:{name:"OpenStreetMap",type:"xyz",url:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",layerOptions:{subdomains:["a","b","c"],attribution:'&copy; <a target="_blank" href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>',continuousWorld:!0}},google:{name:"Google map",type:"xyz",url:"https://{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}&key="+u,layerOptions:{subdomains:["mt0","mt1","mt2","mt3"],attribution:'&copy; <a target="_blank"  href="https://www.google.com/intl/fr_fr/help/terms_maps.html">Google</a>',continuousWorld:!0}}}},controls:{custom:[]}},e||{})).cache&&p.cache[e.cache]&&(console.debug("[map] Restoring map from cache :",p.cache[e.cache]),e=angular.merge(e,p.cache[e.cache])),e.layers.overlays&&(t=_.keys(e.layers.overlays).reduce((function(t,n){return t.concat(e.layers.overlays[n].name)}),[]),n(t).then((function(t){_.keys(e.layers.overlays||{}).forEach((function(n){e.layers.overlays[n].name=t[e.layers.overlays[n].name]}))}))),e},updateCenter:function(n,i){return m(i,n)?t.when():e((function(){n.invalidateSize(),n._resetView(i,i.zoom,!0)}),300)},center:{get:function(e){var t;if(e&&(e.lat&&((t={}).lat=parseFloat(e.lat)),(e.lng||e.lon)&&((t=t||{}).lng=parseFloat(e.lng||e.lon)),e.zoom&&((t=t||{}).zoom=parseFloat(e.zoom)),t))return c.isValidCenter(t)||(t=angular.merge({},d.DEFAULT_CENTER,t)),t},isSame:m,isDefault:function(e){var t=d.DEFAULT_CENTER;return!(!e.lat||!e.lng||t.lat.toFixed(4)!==e.lat.toFixed(4)||t.lng.toFixed(4)!==e.lng.toFixed(4)||t.zoom!==e.zoom)}},control:{search:function(e){(e=e||{}).initial=!!angular.isDefined(e.initial)&&e.initial,e.marker=!!angular.isDefined(e.marker)&&e.marker,e.propertyName=angular.isDefined(e.propertyName)?e.propertyName:"title",e.position=angular.isDefined(e.position)?e.position:"topleft",e.zoom=angular.isDefined(e.zoom)?e.zoom:d.LOCALIZE_ZOOM,e.markerLocation=!angular.isDefined(e.markerLocation)||e.markerLocation;var t=n(["MAP.COMMON.SEARCH_DOTS","COMMON.SEARCH_NO_RESULT"]);return{addTo:function(n){t.then((function(t){var i=L.control.search(angular.merge(e,{textPlaceholder:t["MAP.COMMON.SEARCH_DOTS"],textErr:t["COMMON.SEARCH_NO_RESULT"]}));e.id&&E(i,e.id),i.addTo(n)}))}}},localizeMe:function(e){return e=e||{},L.easyButton({position:"topleft",type:"replace",leafletClasses:!0,states:[{stateName:"locate-me",onClick:function(e,t){s.point.current().then((function(e){t.setView({lat:e.lat,lng:e.lon},d.LOCALIZE_ZOOM)})).catch((function(e){console.error(e),l.alert.error("MAP.ERROR.LOCALIZE_ME_FAILED")}))},title:e.title,icon:"icon ion-android-locate"}]})},setId:E},cache:{bind:function(e,t,n){if(n=n||{},!t||!n.layers||!e)throw"Illegal arguments";if(n.cache){if(n.layers.overlays){var o=_.keys(n.layers.overlays);p.cache[n.cache]||(p.cache[n.cache]={center:n.center,bounds:n.bounds,layers:angular.copy(n.layers)}),a.getMap(t).then((function(){_(i.document.querySelectorAll("#{0} .leaflet-control-layers-overlays input[type=checkbox]".format(t))).forEach((function(e,t){var i=o[t],a=n.layers.overlays[i].visible;e.addEventListener("change",(function(e){a=!a,p.cache[n.cache].layers.overlays[i].visible=a}))}))}))}e.$on("$ionicView.leave",(function(){p.cache[n.cache].center=n.center,p.cache[n.cache].bounds=n.bounds}))}}},constants:d}}]),at.$inject=["$scope","$filter","$templateCache","$interpolate","$timeout","$location","$translate","$q","$controller","ionicReady","leafletData","UIUtils","csSettings","csWallet","MapUtils","mapWot"],angular.module("cesium.map.wot.controllers",["cesium.services","cesium.map.services","cesium.map.help.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(t.extendState("app.wot_lookup.tab_search",{points:{"nav-buttons":{template:'<button class="button button-icon button-clear" ui-sref="app.view_wot_map"><i class="icon ion-ios-location"></i></button>'}}}).extendState("app.wot_lookup_lg",{points:{"filter-buttons":{templateUrl:"plugins/map/templates/wot/lookup_lg_extend.html",controller:"ESExtensionCtrl"}}}),e.state("app.view_wot_map",{url:"/wot/map?c&center",views:{menuContent:{templateUrl:"plugins/map/templates/wot/view_map.html",controller:"MapWotViewCtrl"}},data:{silentLocationChange:!0}}))}]).controller("MapWotViewCtrl",at),ot.$inject=["$scope","$filter","$templateCache","$interpolate","$timeout","$location","$translate","$q","ionicReady","leafletData","UIUtils","csSettings","csWallet","MapUtils","mapRegistry"],angular.module("cesium.map.registry.controllers",["cesium.services","cesium.map.services","cesium.map.help.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(t.extendState("app.wot_lookup.tab_registry",{points:{"nav-buttons":{template:'<button class="button button-icon button-clear" ui-sref="app.view_registry_map"><i class="icon ion-ios-location"></i></button>'}}}).extendState("app.registry_lookup_lg",{points:{"filter-buttons":{templateUrl:"plugins/map/templates/registry/lookup_lg_extend.html"}}}),e.state("app.view_registry_map",{url:"/wot/pagemap?c&center",views:{menuContent:{templateUrl:"plugins/map/templates/registry/view_map.html",controller:"MapRegistryViewCtrl"}},data:{silentLocationChange:!0}}))}]).controller("MapRegistryViewCtrl",ot),angular.module("cesium.map.network.controllers",["cesium.services","cesium.map.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(t.extendState("app.network",{points:{"filter-buttons":{templateUrl:"plugins/map/templates/network/lookup_extend.html",controller:"ESExtensionCtrl"}}}),e.state("app.view_network_map",{url:"/network/map?c",views:{menuContent:{templateUrl:"plugins/map/templates/network/view_map.html",controller:"MapNetworkViewCtrl"}},data:{silentLocationChange:!0}}))}]).controller("MapNetworkViewCtrl",["$scope","$controller","$q","$interpolate","$translate","$filter","$templateCache","$timeout","$location","esGeo","UIUtils","csNetwork","MapUtils","leafletData",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m){angular.extend(this,t("NetworkLookupCtrl",{$scope:e}));var E,b,g=o("formatPubkey"),f={member:{type:"awesomeMarker",icon:"person",markerColor:"green",iconColor:"white"},mirror:{type:"awesomeMarker",icon:"radio-waves",markerColor:"green",iconColor:"white"},offline:{type:"awesomeMarker",icon:"ion-close-circled",markerColor:"red",iconColor:"white"}},T={},h=0;E='<div class="item item-peer item-icon-left no-border" ng-click="selectPeer(peer)">',E+=r.get("templates/network/item_content_peer.html"),E=(E+="</div>").replace(/[:]rebind[:]|[:][:]/g,""),e.loading=!0,e.mapId="map-network-"+e.$id,e.helptipPrefix="helptip-"+e.mapId,e.map=p.map({cache:"map-network",layers:{overlays:{member:{type:"featureGroup",name:"MAP.NETWORK.VIEW.LAYER.MEMBER",visible:!0},mirror:{type:"featureGroup",name:"MAP.NETWORK.VIEW.LAYER.MIRROR",visible:!0},offline:{type:"featureGroup",name:"MAP.NETWORK.VIEW.LAYER.OFFLINE",visible:!1}}},bounds:{},loading:!0,markers:{}});var v=e.enter;e.enter=function(t,n){if(!e.loading)return e.updateLocationHref(),v(t,n);if(n.stateParams&&n.stateParams.c){var i=n.stateParams.c.split(":");e.map.center.lat=parseFloat(i[0]),e.map.center.lng=parseFloat(i[1]),e.map.center.zoom=parseInt(i[2])}e.$watch("map.center",(function(){if(!e.map.loading)return s((function(){e.updateLocationHref()}),300)}),!0),e.loadMap().then((function(e){return e.fire("dataloading"),v(t,n)}))},e.$on("$ionicView.enter",e.enter);var I=e.computeOptions;e.computeOptions=function(){var e=I();return e.filter.online="all",e},e.loadMap=function(){return m.getMap(e.mapId).then((function(t){if(!e.map.loading)return t;L.Control.loading({position:"topright",separate:!0}).addTo(t),b=L.layerGroup({visible:!1});var n=i(r.get("plugins/map/templates/network/item_search_tooltip.html"));p.control.search({layer:b,propertyName:"title",buildTip:function(e,t){return n(t.layer.options)},moveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e);var i=e.layer&&e.layer.options&&e.layer.options.popupMarkerId;i&&s((function(){var e=_.find(n._layers,(function(e){return e.options&&e.options.id===i}));e&&e.openPopup()}),400)},firstTipSubmit:!0,tooltipLimit:50}).addTo(t);var a=function(e){return e.options&&e.options.icon.options.markerColor},o=L.markerClusterGroup({disableClusteringAtZoom:p.constants.LOCALIZE_ZOOM,maxClusterRadius:65,showCoverageOnHover:!1,iconCreateFunction:function(e){var t=_.countBy(e.getAllChildMarkers(),a),n=t.green?"green":t.lightgreen?"lightgreen":t.lightgray?"lightgray":"red",i=e.getChildCount(),o="marker-cluster "+n+" marker-cluster-";return o+=i<10?"small":i<100?"medium":"large",L.divIcon({html:"<div><span>"+i+"</span></div>",className:o,iconSize:new L.Point(40,40)})}});return t.eachLayer((function(e){e.addLayer&&angular.extend(e,L.featureGroup.subGroup(o))})),c.point.ip.license&&(o.getAttribution=function(){return'<a target="_blank" href="{0}">{1}</a>'.format(c.point.ip.license.url,c.point.ip.license.name)}),o.addTo(t),e.map.loading=!1,t}))},e.updateView=function(t){console.debug("[map] [peers] Updating UI"),e.search.loading=!e.networkStarted||d.isBusy();var n=angular.copy(T);_.forEach(t.peers||[],(function(t){if(!t.isTor()){var i=T[t.id];if(i&&e.map.markers[i])return e.updateMarker(e.map.markers[i],t),void delete n[t.id];var a=t.bma,o=t.hasValid4(a)?a.ipv4:a.dns||a.ipv6;c.point.ip.search(o).then((function(n){i=""+h++;var o=e.updateMarker({position:n,getMessageScope:function(){var n=e.$new();return n.peer=t,n},draggable:!1,focus:!1,message:E,id:i},t);e.map.markers[i]=o,T[t.id]=i;var r,s=(t.dns||t.server)+(t.uid?" | "+(t.name||t.uid):"")+" | "+g(t.pubkey);a.ipv4&&!(t.dns||t.server).startsWith(a.ipv4)&&(r=a.ipv4,s+=" | "+a.ipv4),b.addLayer(new L.Marker({lat:n.lat,lng:n.lng},{opacity:0,icon:L.divIcon({className:"ng-hide",iconSize:L.point(0,0)}),title:s,peer:angular.extend({ipv4:r},t),popupMarkerId:i}))})).catch((function(e){console.debug("No position found for address ["+o+"]",e)}))}})),_.forEach(_.keys(n),(function(e){delete T[e]})),_.forEach(_.values(n),(function(t){delete e.map.markers[t]})),e.search.loading||m.getMap(e.mapId).then((function(t){e.loading=!1,t.fire("dataload")}))},e.updateMarker=function(e,t){return e.layer=t.online?t.uid?"member":"mirror":"offline",e.icon=angular.copy(f[e.layer]),e.opacity=(t.online,1),e.title=t.dns||t.server,t.online&&!t.hasMainConsensusBlock&&(e.icon.markerColor=t.hasConsensusBlock?"lightgreen":"lightgray",e.opacity=t.hasConsensusBlock?.9:.8),e.lng||(e.lng=e.position.lng+Math.random()/1e3,e.lat=e.position.lat+Math.random()/1e3),e},e.updateLocationHref=function(t){(l.search()||{}).c&&p.center.isDefault(e.map.center)||(t=t||"{0}:{1}:{2}".format(e.map.center.lat.toFixed(4),e.map.center.lng.toFixed(4),e.map.center.zoom),l.search({c:t}).replace())},e.$on("centerUrlHash",(function(t,n){if(!e.loading)return s((function(){e.updateLocationHref(n)}),300)})),e.showHelpTip=function(){}}]),angular.module("cesium.map.user.controllers",["cesium.services","cesium.map.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.extendState("app.edit_profile",{points:{"after-position":{templateUrl:"plugins/map/templates/user/edit_profile_extend.html",controller:"MapEditProfileViewCtrl"}}}).extendState("app.edit_profile_by_id",{points:{"after-position":{templateUrl:"plugins/map/templates/user/edit_profile_extend.html",controller:"MapEditProfileViewCtrl"}}})}]).controller("MapEditProfileViewCtrl",["$scope","$timeout","$q","MapUtils","$translate",function(e,t,n,i,a){var o=[];e.mapId="map-user-profile-"+e.$id,e.map=i.map({markers:{},center:{zoom:13}}),e.loading=!0,e.mapId="map-profile-"+e.$id,e.enter=function(n,i){
-return e.formData&&(e.formData.title||e.formData.geoPoint)?(e.loading=!0,e.load()):t(e.enter,500)},e.$on("$csExtension.enter",e.enter),e.$on("$ionicParentView.enter",e.enter),e.load=function(){return e.formData.geoPoint&&e.formData.geoPoint.lat&&e.formData.geoPoint.lon?e.map.markers.geoPoint?(e.map.markers.geoPoint.lat=e.formData.geoPoint.lat,void(e.map.markers.geoPoint.lng=e.formData.geoPoint.lon)):a("MAP.PROFILE.MARKER_HELP").then((function(t){e.map.markers.geoPoint={message:t,lat:parseFloat(e.formData.geoPoint.lat),lng:parseFloat(e.formData.geoPoint.lon),draggable:!0,focus:!0},angular.extend(e.map.center,{lat:e.map.markers.geoPoint.lat,lng:e.map.markers.geoPoint.lng});var n=e.$watch("map.markers.geoPoint",(function(){e.loading||e.map.markers.geoPoint&&e.map.markers.geoPoint.lat&&e.map.markers.geoPoint.lng&&(e.formData.geoPoint=e.formData.geoPoint||{},e.formData.geoPoint.lat=e.map.markers.geoPoint.lat,e.formData.geoPoint.lon=e.map.markers.geoPoint.lng)}),!0);o.push(n),e.ionItemClass||(e.ionItemClass="done in"),e.loading=!1})):(_.forEach(o,(function(e){e()})),o=[],delete e.map.markers.geoPoint,e.loading=!1,n.when())},e.$watch("formData.geoPoint",(function(){e.loading||e.load()}),!0)}]),angular.module("cesium.map.settings.controllers",["cesium.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.extendState("app.es_settings",{points:{common:{templateUrl:"plugins/map/templates/settings/es_settings_extend.html"}}})}]),rt.$inject=["$scope","$controller"],angular.module("cesium.map.help.controllers",["cesium.services"]).controller("MapHelpTipCtrl",rt),angular.module("cesium",["ionic","ionic-material","ngMessages","ngSanitize","pascalprecht.translate","ngApi","angular-cache","angular.screenmatch","angular.bind.notifier","ImageCropper","ion-digit-keyboard","FBAngular","ngCordova","cesium.plugins","cesium.filters","cesium.config","cesium.platform","cesium.controllers","cesium.templates","cesium.translations","cesium.components","cesium.directives"]).config(["$urlRouterProvider",function(e){e.deferIntercept()}]).run(["$rootScope","$translate","$state","$window","$urlRouter","ionicReady","Device","UIUtils","$ionicConfig","PluginService","csPlatform","csWallet",function(e,t,n,i,a,o,r,s,l,c,u,d){u.disableChangeState();var p=!1;e.$on("$stateChangeStart",(function(t,i,a,o){if(!t.defaultPrevented&&i.data&&!e.tour&&!t.currentScope.tour){if(!p){var r,l=a.wallet&&"default"!=a.wallet?d.children.get(a.wallet):d;return a.wallet&&!l&&console.warn("[app] Unable to find the children wallet: "+a.wallet),i.data.auth&&!l.isAuth()?(t.preventDefault(),r=i.data.minData?{minData:!0}:void 0,p=!0,d.auth(r).then((function(){return p=!1,n.go(i.name,a)})).catch((function(e){if(p=!1,"CANCELLED"===e&&!n.current.name)return n.go("app.home")}))):i.data.login&&!d.isLogin()?(t.preventDefault(),r=i.data.minData?{minData:!0}:void 0,p=!0,d.login(r).then((function(){return p=!1,n.go(i.name,a)})).catch((function(e){if(p=!1,"CANCELLED"===e&&!n.current.name)return n.go("app.home")}))):!i.data.login&&!i.data.auth||(r=i.data.minData?{minData:!0}:void 0,l.isDataLoaded(r))?void 0:(t.preventDefault(),r&&r.minData||s.loading.show(),l.loadData(r).then((function(){return p=!1,n.go(i.name,a)})))}t.preventDefault()}})),d.api.data.on.unauth(e,(function(){n.current&&n.current.data&&n.current.data.auth&&n.go("app.home")})),e.$on("$locationChangeSuccess",(function(e,t,i){n.current.data&&!0===n.current.data.silentLocationChange&&i&&i.split("?")[0]===t.split("?")[0]&&e.preventDefault()})),a.listen(),c.start(),o().then((function(){ionic.Platform.isIOS()&&window.StatusBar&&StatusBar.styleLightContent()}))}]),window.ionic.Platform.ready((function(){angular.bootstrap(document,["cesium"])})),angular.module("cesium.components",[]).component("csBadgeCertification",{bindings:{requirements:"=",parameters:"<",csId:"@"},templateUrl:"templates/common/badge_certification_count.html"}).component("csBadgeGivenCertification",{bindings:{identity:"=",parameters:"<",csId:"@"},templateUrl:"templates/common/badge_given_certification_count.html"}).component("csSortIcon",{bindings:{asc:"=",sort:"=",toggle:"<"},template:'<i class="ion-chevron-up" ng-class="{gray: !$ctrl.asc || $ctrl.sort != $ctrl.toggle}" style="position: relative; left: 5px; top:-5px; font-size: 9px;"></i><i class="ion-chevron-down" ng-class="{gray : $ctrl.asc || $ctrl.sort != $ctrl.toggle}" style="position: relative; left: -2.6px; top: 3px; font-size: 9px;"></i>'}),angular.module("cesium.directives",[]).directive("compareTo",(function(){return{require:"?ngModel",link:function(e,t,n,i){i&&n.compareTo&&(i.$validators.compareTo=function(t){return t==e.$eval(n.compareTo)},e.$watch(n.compareTo,(function(){i.$validate()})))}}})).directive("differentTo",(function(){return{require:"?ngModel",link:function(e,t,n,i){i&&n.differentTo&&(i.$validators.differentTo=function(t){return t!=e.$eval(n.differentTo)},e.$watch(n.differentTo,(function(){i.$validate()})))}}})).directive("numberFloat",(function(){var e=new RegExp("^[0-9]+([.,][0-9]+)?$");return{require:"?ngModel",link:function(t,n,i,a){a&&(a.$validators.numberFloat=function(t){return a.$isEmpty(t)||e.test(t)})}}})).directive("numberInt",(function(){var e=new RegExp("^[0-9]+$");return{require:"ngModel",link:function(t,n,i,a){a&&(a.$validators.numberInt=function(t){return a.$isEmpty(t)||e.test(t)})}}})).directive("email",(function(){var e=new RegExp("^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$");return{require:"ngModel",link:function(t,n,i,a){a&&(a.$validators.email=function(t){return a.$isEmpty(t)||e.test(t)})}}})).directive("requiredIf",(function(){return{require:"?ngModel",link:function(e,t,n,i){i&&n.requiredIf&&(i.$validators.required=function(t){return!e.$eval(n.requiredIf)||!i.$isEmpty(t)},e.$watch(n.requiredIf,(function(){i.$validate()})))}}})).directive("geoPoint",(function(){return{require:"?ngModel",link:function(e,t,n,i){i&&(i.$validators.geoPoint=function(e){return i.$isEmpty(e)||angular.isDefined(e.lat)&&angular.isDefined(e.lon)||angular.isUndefined(e.lat)&&angular.isUndefined(e.lon)})}}})).directive("copyOnClick",["$window","Device","UIUtils",function(e,t,n){return{restrict:"A",link:function(e,i,a){var o=function(i){var o=a.copyOnClick;if(o&&t.clipboard.enable)t.clipboard.copy(o).then((function(){n.toast.show("INFO.COPY_TO_CLIPBOARD_DONE")})).catch(n.onError("ERROR.COPY_CLIPBOARD"));else if(o){var r=o&&o.indexOf("\n")>=0?o.split("\n").length:1;n.popover.show(i,{scope:e,templateUrl:"templates/common/popover_copy.html",bindings:{value:a.copyOnClick,rows:r},autoselect:".popover-copy "+(r<=1?"input":"textarea")})}};i.bind("click",o),i.bind("hold",o)}}}]).directive("selectOnClick",["$window",function(e){return{restrict:"A",link:function(t,n,i){n.bind("click",(function(){e.getSelection&&!e.getSelection().toString()&&this.value&&this.setSelectionRange(0,this.value.length)}))}}}]).directive("activeLink",["$location",function(e){return{restrict:"A",link:function(t,n,i,a){var o,r=i.activeLink;i.activeLinkPathPrefix?(o=i.activeLinkPathPrefix.substring(1),t.location=e,t.$watch("location.path()",(function(e){e&&0===e.indexOf(o)?n.addClass(r):n.removeClass(r)}))):i.href&&(o=i.href.substring(1),t.location=e,t.$watch("location.path()",(function(e){e&&e==o?n.addClass(r):n.removeClass(r)})))}}}]).directive("input",["$timeout",function(e){return{restrict:"E",scope:{returnClose:"=",onReturn:"&",onFocus:"&",onBlur:"&"},link:function(t,n,i){n.bind("focus",(function(n){t.onFocus&&e((function(){t.onFocus()}))})),n.bind("blur",(function(n){t.onBlur&&e((function(){t.onBlur()}))})),n.bind("keydown",(function(i){13==i.which&&(t.returnClose&&n[0].blur(),t.onReturn&&e((function(){t.onReturn()})))}))}}}]).directive("trustAsHtml",["$sce","$compile","$parse",function(e,t,n){return{restrict:"A",compile:function(i,a){var o=n(a.trustAsHtml),r=n(a.trustAsHtml,(function(e){return(e||"").toString()}));return t.$$addBindingClass(i),function(n,i,a){t.$$addBindingInfo(i,a.trustAsHtml),n.$watch(r,(function(){i.html(e.getTrustedHtml(e.trustAsHtml(o(n)))||""),t(i.contents())(n)}))}}}}]).directive("modalClose",["$ionicHistory","$timeout",function(e,t){return{restrict:"AC",link:function(n,i){i.bind("click",(function(){n.closeModal&&(e.nextViewOptions({historyRoot:!0,disableAnimate:!0,expire:300}),t((function(){e.nextViewOptions({historyRoot:!1,disableAnimate:!1})}),300),n.closeModal())}))}}}]).directive("csExtensionPoint",["$state","$compile","$controller","$templateCache","PluginService",function(e,t,n,i,a){return{restrict:"E",compile:function(e,t){if(angular.isDefined(t.name)){var n=a.extensions.points.getActivesByName(t.name);n.length>0&&(e.html(""),_.forEach(n,(function(t){e.append(function(e){var t=e.templateUrl?i.get(e.templateUrl):e.template;return t?(e.controller&&(t='<ng-controller ng-controller="'+e.controller+'">'+t+"</div>"),t):(console.error("[plugin] Could not found template for extension :"+(e.templateUrl?e.templateUrl:e.template)),"")}(t))})))}return{pre:function(e,t,n){a.extensions.points.current.set(n.name)},post:function(){a.extensions.points.current.set()}}},scope:{content:"="}}}]).directive("onReadFile",["$parse",function(e){return{restrict:"A",scope:!1,link:function(t,n,i){var a=e(i.onReadFile);n.on("change",(function(e){var n=new FileReader,i={name:this.files[0].name,size:this.files[0].size,type:this.files[0].type};n.onload=function(e){t.$applyAsync((function(){a(t,{file:{fileContent:e.target.result,fileData:i}})}))},n.readAsText((e.srcElement||e.target).files[0])}))}}}]).directive("dropzone",["$parse",function(e){return{restrict:"A",scope:!1,link:function(t,n,i){var a=e(i.dropzone);n.bind("dragover",(function(e){e.stopPropagation(),e.preventDefault()})),n.bind("dragenter",(function(e){e.stopPropagation(),e.preventDefault()})),n.bind("dragleave",(function(e){e.stopPropagation(),e.preventDefault()})),n.bind("drop",(function(e){e.stopPropagation(),e.preventDefault();var n={name:e.dataTransfer.files[0].name,size:e.dataTransfer.files[0].size,type:e.dataTransfer.files[0].type},i=new FileReader;i.onload=function(e){t.$apply((function(){a(t,{file:{fileContent:e.target.result,fileData:n}})}))},i.readAsText(e.dataTransfer.files[0])}))}}}]).directive("windowExitUnauth",["$window","csSettings","csWallet",function(e,t,n){return{restrict:"AE",link:function(i,a){(e.attachEvent||e.addEventListener)(e.attachEvent?"onunload":"unload",(function(e){if(t.data&&t.data.keepAuthIdle!=t.constants.KEEP_AUTH_IDLE_SESSION)return n.unauth()}))}}}]),angular.module("cesium.filters",["cesium.config","cesium.platform","pascalprecht.translate","cesium.translations"]).factory("filterTranslations",["$rootScope","$q","csPlatform","csSettings","csCurrency","$translate","$timeout",function(e,t,n,i,a,o,r){var s,l=!1,c=this;function u(){return console.debug("[filter] Loading translations for locale [{0}]".format(o.use())),o(["COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.UD","COMMON.DAYS"]).then((function(e){c.DATE_PATTERN=e["COMMON.DATE_PATTERN"],"COMMON.DATE_PATTERN"===c.DATE_PATTERN&&(c.DATE_PATTERN="YYYY-MM-DD HH:mm"),c.DATE_SHORT_PATTERN=e["COMMON.DATE_SHORT_PATTERN"],"COMMON.DATE_SHORT_PATTERN"===c.DATE_SHORT_PATTERN&&(c.DATE_SHORT_PATTERN="YYYY-MM-DD"),c.DATE_MONTH_YEAR_PATTERN=e["COMMON.DATE_MONTH_YEAR_PATTERN"],"COMMON.DATE_MONTH_YEAR_PATTERN"===c.DATE_MONTH_YEAR_PATTERN&&(c.DATE_MONTH_YEAR_PATTERN="MMM YY"),c.DAYS=e["COMMON.DAYS"],"COMMON.DAYS"===c.DAYS&&(c.DAYS="days"),c.UD=e["COMMON.UD"],"COMMON.UD"===c.UD&&(c.UD="UD")}))}function d(){console.debug("[filter] Computing constants from currency parameters"),c.MEDIAN_TIME_OFFSET=a.data.medianTimeOffset||c.MEDIAN_TIME_OFFSET}return c.MEDIAN_TIME_OFFSET=3600,c.ready=function(){return l?t.when():s||c.start()},c.start=function(){return s=n.ready().then(u).then((function(){d(),l=!0,i.api.locale.on.changed(e,u,this),a.api.data.on.ready(e,d,this)}))},r((function(){c.start()})),c}]).filter("formatInteger",(function(){return function(e){return e?e<1e7?numeral(e).format("0,0"):numeral(e).format("0,0.000 a"):"0"}})).filter("formatAmount",["csConfig","csSettings","csCurrency","$filter",function(e,t,n,i){var a="0,0.0"+Array(e.decimalCount||4).join("0"),o=i("currencySymbol"),r=a+"0",s=1/Math.pow(10,(e.decimalCount||4)+1);return function(e,i){if(void 0!==e)return(i&&angular.isDefined(i.useRelative)?i.useRelative:t.data.useRelative)?function(e,t){var i=t&&t.currentUD?t.currentUD:n.data.currentUD;if(i){var a=e/i;return a=Math.abs(e)<s&&0!==e?"~ 0":numeral(a).format(r),t&&t.currency?a+" "+o(t.currency,!0):a}console.warn("formatAmount: currentUD not defined")}(e,i):function(e,t){var n=numeral(e/100).format(e<-1e9||e>1e9?"0,0.000 a":a);return t&&t.currency?n+" "+o(t.currency,!1):n}(e,i)}}]).filter("formatAmountNoHtml",["csConfig","csSettings","csCurrency","$filter",function(e,t,n,i){var a=1/Math.pow(10,e.decimalCount||4),o="0,0.0"+Array(e.decimalCount||4).join("0"),r=i("currencySymbolNoHtml");return function(e,i){if(void 0!==e)return(i&&angular.isDefined(i.useRelative)?i.useRelative:t.data.useRelative)?function(e,t){var i=t&&t.currentUD?t.currentUD:n.data.currentUD;if(i){var s=e/i;return s=Math.abs(s)<a&&0!==e?"~ 0":numeral(s).format(o),t&&t.currency?s+" "+r(t.currency,!0):s}console.warn("formatAmount: currentUD not defined")}(e,i):function(e,t){var n=numeral(e/100).format(e>-1e9&&e<1e9?"0,0.00":"0,0.000 a");return t&&t.currency?n+" "+r(t.currency,!1):n}(e,i)}}]).filter("currencySymbol",["filterTranslations","$filter","csSettings",function(e,t,n){return function(i,a){return i?(angular.isDefined(a)?a:n.data.useRelative)?e.UD+"<sub>"+t("abbreviate")(i)+"</sub>":t("abbreviate")(i):""}}]).filter("currencySymbolNoHtml",["filterTranslations","$filter","csSettings",function(e,t,n){return function(i,a){return i?(angular.isDefined(a)?a:n.data.useRelative)?e.UD+" "+t("abbreviate")(i):t("abbreviate")(i):""}}]).filter("formatDecimal",["csConfig","csCurrency",function(e,t){var n=1/Math.pow(10,e.decimalCount||4),i="0,0.0"+Array(e.decimalCount||4).join("0");return function(e){return void 0===e?"0":e===1/0||e===-1/0?(console.warn("formatDecimal: division by zero ? (is currentUD defined ?) = "+t.data.currentUD),"error"):Math.abs(e)<n?"~ 0":numeral(e).format(i)}}]).filter("formatNumeral",(function(){return function(e,t){return void 0===e?"0":Math.abs(e)<1e-4?"~ 0":numeral(e).format(t)}})).filter("formatDate",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm"):""}}]).filter("formatDateShort",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_SHORT_PATTERN||"YYYY-MM-DD"):""}}]).filter("formatDateMonth",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_MONTH_YEAR_PATTERN||"MMM YY"):""}}]).filter("formatDateForFile",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_FILE_PATTERN||"YYYY-MM-DD"):""}}]).filter("formatTime",(function(){return function(e){return e?moment.unix(parseInt(e)).local().format("HH:mm"):""}})).filter("formatFromNow",(function(){return function(e){return e?moment.unix(parseInt(e)).fromNow():""}})).filter("formatFromNowAndDate",["filterTranslations",function(e){return function(t,n){var i=t&&moment.unix(parseInt(t));return i&&i.fromNow()+(n&&n.separator||" | ")+i.local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm")||""}}]).filter("formatDurationTo",(function(){return function(e){return e?moment.unix(moment().utc().unix()+parseInt(e)).fromNow():""}})).filter("formatDuration",(function(){return function(e){return e?moment(0).from(moment.unix(parseInt(e)),!0):""}})).filter("formatDurationTime",["filterTranslations",function(e){return function(t){if(!t)return"";var n=t&&t<0?"-":"+";t=Math.abs(t);var i=Math.trunc(t/3600/24),a=Math.trunc(t/3600-24*i),o=Math.trunc(t/60-24*i*60-60*a);return i>0?n+i+" "+e.DAYS+" "+a+"h "+o+"m":a>0?n+a+"h "+o+"m":n+o+"m"}}]).filter("formatDurationMs",(function(){return function(e){return e?e<1e3?e+"ms":e/1e3+"s":""}})).filter("formatPeriod",(function(){return function(e){return e?moment(0).from(moment.unix(parseInt(e)),!0).split(" ").slice(-1)[0]:null}})).filter("formatFromNowShort",(function(){return function(e){return e?moment.unix(parseInt(e)+offset).fromNow(!0):""}})).filter("medianDate",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm"):""}}]).filter("medianDateShort",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).local().format(e.DATE_SHORT_PATTERN||"YYYY-MM-DD"):""}}]).filter("medianTime",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).local().format("HH:mm"):""}}]).filter("medianFromNow",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).fromNow():""}}]).filter("medianFromNowShort",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).fromNow(!0):""}}]).filter("medianFromNowAndDate",["filterTranslations",function(e){return function(t,n){var i=t&&moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET);return i&&i.fromNow()+(n&&n.separator||" | ")+i.local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm")||""}}]).filter("capitalize",(function(){return function(e){return e?(e=e.toLowerCase()).substring(0,1).toUpperCase()+e.substring(1):""}})).filter("abbreviate",(function(){var e={};return function(t){var n=t||"";if(e[n])return e[n];if(n.length>3){for(var i="",a=["-","_"," "],o=0;o<n.length;o++){var r=n[o];0===o?i="g"===r||"G"===r?"Äž":r:o>0&&-1!=a.indexOf(n[o-1])&&(i+=r)}n=i.toUpperCase()}else"G"===(n=n.toUpperCase()).charAt(0)&&(n="Äž"+(n.length>1?n.substr(1):""));return e[t]=n,n}})).filter("upper",(function(){return function(e){return e?e.toUpperCase():""}})).filter("formatPubkey",(function(){return function(e){return e?e.substr(0,8):""}})).filter("formatHash",(function(){return function(e){return e?e.substr(0,4)+e.substr(e.length-4):""}})).filter("formatCategory",(function(){return function(e){return e&&e.length>28?e.substr(0,25)+"...":e}})).filter("formatSlug",(function(){return function(e){return e?encodeURIComponent(e.toLowerCase().replace(/<[^>]+>/g,"").replace(/[^\w ]+/g,"").replace(/ +/g,"-")):""}})).filter("formatEncodeURI",(function(){return function(e){return e?encodeURIComponent(e):""}})).filter("truncText",(function(){return function(e,t){return t=t||500,!e||e.length<=t?e:e.substr(0,t)+"..."}})).filter("truncUrl",(function(){return function(e,t){t=t||25;var n=e.startsWith("http://")?7:e.startsWith("https://")?8:0;return n=e.startsWith("www.",n)?n+4:n,!e||e.length-n<=t?e.substr(n):e.substr(n,t)+"..."}})).filter("trustAsHtml",["$sce",function(e){return function(t){return e.trustAsHtml(t)}}]),angular.module("cesium.platform",["ngIdle","cesium.config","cesium.services"]).config(["$translateProvider","csConfig",function(e,t){e.uniformLanguageTag("bcp47").determinePreferredLanguage().useSanitizeValueStrategy(null).fallbackLanguage([t.fallbackLanguage?t.fallbackLanguage:"en"]).useLoaderCache(!0)}]).config(["$httpProvider","csConfig",function(e,t){e.defaults.timeout=t.timeout?t.timeout:3e5,e.defaults.useXDomain=!0,delete e.defaults.headers.common["X-Requested-With"],e.useApplyAsync(!0)}]).config(["$compileProvider","csConfig",function(e,t){e.debugInfoEnabled(!!t.debug)}]).config(["$animateProvider",function(e){e.classNameFilter(/\banimate-/)}]).config(["CacheFactoryProvider","csConfig",function(e,t){angular.extend(e.defaults,{maxAge:t.cacheTimeMs||6e4})}]).config(["screenmatchConfigProvider",function(e){e.config.rules="bootstrap"}]).config(["$ionicConfigProvider",function(e){var t=ionic.Platform.isIOS();e.scrolling.jsScrolling(t),e.views.maxCache(5)}]).config(["IdleProvider","csConfig",function(e,t){e.idle(t.logoutIdle||600),e.timeout(t.logoutTimeout||15)}]).factory("$exceptionHandler",["$log",function(e){return function(t,n){n?e.error(t,n):e.error(t)}}]).factory("csPlatform",["ionicReady","$rootScope","$q","$state","$translate","$timeout","UIUtils","BMA","Device","csHttp","csConfig","csSettings","csCurrency","csWallet",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m){var E,b,g,f,T=0,h=!1;function v(){if(!f){var e=t.$on("$stateChangeStart",(function(e,t,n,a){e.defaultPrevented||"app.home"===t.name||"app.settings"===t.name||(e.preventDefault(),b?b.then((function(){i.go(t.name,n)})):r.loading.hide())}));f=e}}function I(){f&&f(),f=null}function N(e){if(e)return!0;E=E||d.data.node;var t=d.data.fallbackNodes&&T<d.data.fallbackNodes.length&&d.data.fallbackNodes[T++];if(!t)throw"ERROR.CHECK_NETWORK_CONNECTION";var n=t.host+(t.port||80==t.port||443==t.port?"":":"+t.port);return s.node.same(t.host,t.port)?(console.debug("[platform] Skipping fallback node [{0}]: same as actual node".format(n)),N()):c.get(t.host,t.port,"/node/summary",443==t.port||s.node.forceUseSsl)().catch((function(e){console.error("[platform] Could not reach fallback node [{0}]: skipping".format(n))})).then((function(e){if(!e)return N();var i={old:s.server,new:n};return i.old===i.new&&(s.port!=t.port?i.new+=":"+t.port:0!=s.useSsl||!t.useSsl&&443!=t.port||(i.new+=" (SSL)")),a("CONFIRM.USE_FALLBACK_NODE",i).then((function(e){return r.alert.confirm(e)})).then((function(e){if(e)return d.data.node=t,d.data.node.temporary=!0,c.cache.clear(),s.copy(t).then(N)}))}))}function O(){return console.debug("[platform] restarting csPlatform"),A().then((function(){return o(R,200)}))}function R(){return v(),b=e().then(n.all([l.ready(),d.ready()])).then((function(){return s.ready().then(N)})).then(p.ready).then(m.ready).then((function(){I(),function(){g=[s.api.node.on.restart(t,O,this)]}(),b=null,h=!0})).catch((function(e){throw b=null,h=!1,i.current.name!==t.errorState&&i.go(t.errorState,{error:"peer"}),e}))}function A(){return h?(_.forEach(g,(function(e){e()})),g=[],m.stop(),p.stop(),s.stop(),o((function(){I(),h=!1,b=null}),500)):n.when()}return{disableChangeState:v,isStarted:function(){return h},ready:function(){return h?n.when():b||R()},restart:O,start:R,stop:A,version:{latest:function(){var e=d.data.latestReleaseUrl&&c.uri.parse(d.data.latestReleaseUrl);return e?c.get(e.host,"https:"==e.protocol?443:e.port,"/"+e.pathname)().then((function(e){if(e&&e.name&&e.tag_name&&e.html_url)return{version:e.name,url:e.html_url,isNewer:c.version.compare(u.version,e.name)<0}})).catch((function(e){console.error("[platform] Failed to get Cesium latest version",e)})):n.when()}}}}]).run(["$rootScope","$state","$window","$urlRouter","ionicReady","$ionicPlatform","$ionicHistory","Device","UIUtils","$ionicConfig","PluginService","csPlatform","csWallet","csSettings","csConfig","csCurrency",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){e.config=E,e.settings=m.data,e.currency=b.data,e.device=s,e.errorState="app.home",e.smallscreen=l.screen.isSmall();var g=n.location.href.indexOf("#");e.rootPath=-1!=g?n.location.href.substr(0,g):n.location.href,console.debug("[app] Root path is ["+e.rootPath+"]"),a().then((function(){return s.keyboard.enable&&(s.keyboard.hideKeyboardAccessoryBar(!0),ionic.Platform.isIOS()&&s.keyboard.disableScroll(!0)),"a"!==ionic.Platform.grade.toLowerCase()&&(console.info("[app] Disabling UI effects, because plateform's grade is ["+ionic.Platform.grade+"]"),l.setEffects(!1)),window.StatusBar&&console.debug("[app] Status bar plugin enable"),d.version.latest().then((function(t){t&&t.isNewer?(console.info("[app] New release detected [{0}]".format(t.version)),e.newRelease=t):console.info("[app] Current version [{0}] is the latest release".format(E.version))})),o.registerBackButtonAction((function(e){return r.backView()?r.goBack():(e.preventDefault(),l.alert.confirm("CONFIRM.EXIT_APP").then((function(e){e&&ionic.Platform.exitApp()})))}),100),d.ready()}))}]),"function"!=typeof String.prototype.startsWith&&(console.debug("Adding String.prototype.startsWith() -> was missing on this platform"),String.prototype.startsWith=function(e,t){return 0===this.indexOf(e,t)}),"function"!=typeof String.prototype.trim){console.debug("Adding String.prototype.trim() -> was missing on this platform");var st=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(st,"")}}Math&&"function"!=typeof Math.trunc&&(console.debug("Adding Math.trunc() -> was missing on this platform"),Math.trunc=function(e){return(e-.5).toFixed()}),"function"!=typeof String.prototype.format&&(console.debug("Adding String.prototype.format() -> was missing on this platform"),String.prototype.format=function(){var e=arguments;return this.replace(/{(\d+)}/g,(function(t,n){return void 0!==e[n]?e[n]:t}))});
\ No newline at end of file
diff --git a/assets/www/dist_js/cesium-494e4f9c23.js b/assets/www/dist_js/cesium-494e4f9c23.js
new file mode 100644
index 0000000000000000000000000000000000000000..4e3288e7dc0824e77005eb619b91af09ce19e241
--- /dev/null
+++ b/assets/www/dist_js/cesium-494e4f9c23.js
@@ -0,0 +1,15 @@
+/* minified */
+function e(e){var t=this;Object.keys(e).forEach((function(n){t[n]=e[n]})),t.endpoints=t.endpoints||[]}function t(e,t){"use strict";var n=this;t&&t.length?_.forEach(t,(function(t){n[t]=e[t]})):["currency","issuer","medianTime","number","version","powMin","dividend","membersCount","hash","identities","joiners","actives","leavers","revoked","excluded","certifications","transactions","unitbase"].forEach((function(t){n[t]=e[t]})),n.identitiesCount=n.identities?n.identities.length:0,n.joinersCount=n.joiners?n.joiners.length:0,n.activesCount=n.actives?n.actives.length:0,n.leaversCount=n.leavers?n.leavers.length:0,n.revokedCount=n.revoked?n.revoked.length:0,n.excludedCount=n.excluded?n.excluded.length:0,n.certificationsCount=n.certifications?n.certifications.length:0,n.transactionsCount=n.transactions?n.transactions.length:0,n.empty=n.isEmpty(),n.id=[n.number,n.hash].join("-")}function n(e){var t=e.split(":");if(t.length<3||!t[0].startsWith("WS2P"))throw Error("Invalid format: "+e);if("HEAD"==t[1]){if(t.length<4)throw Error("Invalid format: "+e);if(4==t.length)this.pubkey=t[2],this.buid=t[3];else if(t[2]>=1){var n=t[0];if(n.length>4){var i=this.regexp.WS2P_PREFIX.exec(n);if(!i)throw Error("Invalid format: "+e);var a=i[1];if(a){this.private={useTor:a.startsWith("T")};var o=a.substring(1);"A"==o?this.private.mode="all":"M"==o?this.private.mode="mixed":"S"==o&&(this.private.mode="strict")}var r=i[2];r&&(this.public={useTor:r.startsWith("T"),mode:"all"})}this.pubkey=t[3],this.buid=t[4],this.ws2pid=t[5],this.software=t[6],this.version=t[7],this.powPrefix=t[8]}}}function a(e,t){e.extensionPoint=t.extensions.points.current.get()}function o(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,f,_){e.walletData=E.data,e.search={},e.login=E.isLogin(),e.auth=E.isAuth(),e.motion=p.motion.default,e.fullscreen=p.screen.fullscreen.isEnabled(),e.showHome=function(){return r.nextViewOptions({historyRoot:!0}),n.go("app.home").then(p.loading.hide)},e.scanQrCodeAndGo=function(){if(b.barcode.enable)return b.barcode.scan().then((function(e){if(e)return m.uri.parse(e).then((function(e){if(!e||!e.pubkey)throw{message:"ERROR.SCAN_UNKNOWN_FORMAT"};return n.go("app.wot_identity",{pubkey:e.pubkey,node:e.host?e.host:null})})).catch((function(t){return console.debug("[app] Scan data is not an URI (get error: "+(t&&t.message||t)+"). Trying to decode as a WIF or EWIF format..."),d.keyfile.parseData(e).then((function(e){if(!e||!e.signPk||!e.signSk)throw t;var i=u.base58.encode(e.signPk);console.debug("[app] Detected WIF/EWIF format. Will login to wallet {"+i.substring(0,8)+"}");var a=E.isLogin()?E.children.create({store:!1}):E;return a.login({silent:!0,forceAuth:!0,minData:!1,authData:{pubkey:i,keypair:e}}).then((function(){return r.nextViewOptions({historyRoot:!0}),n.go("app.new_transfer",{all:!0,wallet:a.isDefault()?void 0:a.id})}))})).catch(p.onError("ERROR.SCAN_UNKNOWN_FORMAT"))}))})).catch(p.onError("ERROR.SCAN_FAILED"))},e.createHelptipScope=function(n,i){if(n||!t.tour&&t.settings.helptip.enable&&!p.screen.isSmall()){var a=e.$new();return s(i||"HelpTipCtrl",{$scope:a}),a}},e.startHelpTour=function(n,i){if(t.tour=!0,!i)return r.clearHistory(),r.clearCache().then((function(){e.startHelpTour(n,!0)}));var a=e.createHelptipScope(!0,n);return a.startHelpTour().then((function(){a.$destroy(),delete t.tour})).catch((function(e){delete t.tour}))},e.isLogin=function(){return e.login},e.loadWalletData=function(e){return console.warn("[app-controller] DEPRECATED  - Please use csWallet.load() instead of $scope.loadWalletData()",new Error),((e=e||{}).wallet||E).loadData(e).then((function(e){if(!e)throw"CANCELLED";return e}))},e.loadWallet=function(t){if(console.warn("[app-controller] DEPRECATED  - Please use csWallet.loginOrLoad() instead of $scope.loadWallet()",new Error),!c.isStarted())return c.ready().then((function(){return e.loadWallet(t)}));var n=(t=t||{}).wallet||E;return t.auth&&!n.isAuth()?n.auth(t).then((function(e){if(e)return e;throw"CANCELLED"})):n.isLogin()?n.isDataLoaded(t)?a.when(n.data):e.loadWalletData(t):n.login(t).then((function(e){if(e)return e;throw"CANCELLED"}))},e.loginAndGo=function(t,i){e.closeProfilePopover();var a=(i=i||{}).wallet||E;if(delete i.wallet,t=t||"app.view_wallet",a.isLogin())return n.go(t,i);if(f.httpsMode&&l.location&&"https:"!==l.location.protocol){var o=l.location.href,r=o.indexOf("#"),s=-1!=r?o.substr(0,r):o;if(o=(s="https"+s.substr(4))+n.href(t),!f.httpsModeDebug)return void(l.location.href=o);console.debug("[httpsMode] --- Should redirect to: "+o)}return a.login(i).then((function(){return n.go(t,i)})).then(p.loading.hide)},e.logout=function(t){var n=(t=t||{}).wallet||E;return!t.force&&e.profilePopover?e.profilePopover.hide().then((function(){return t.force=!0,e.logout(t)})):t.askConfirm?p.alert.confirm("CONFIRM.LOGOUT").then((function(n){if(n)return t.askConfirm=!1,e.logout(t)})):(p.loading.show(),n.logout().then((function(){if(i.isOpenLeft()&&i.toggleLeft(),n.isDefault())return r.clearHistory(),r.clearCache().then((function(){return e.showHome()}));p.loading.hide()})).catch(p.onError()))},e.doAuth=function(e){return(e&&e.wallet||E).auth().then(p.loading.hide)},e.isUserPubkey=function(e){return E.isUserPubkey(e)},E.api.data.on.login(e,(function(t,n){return e.login=!0,n?n.resolve():a.when()})),E.api.data.on.logout(e,(function(){e.login=!1})),E.api.data.on.auth(e,(function(t,n){return e.auth=!0,n?n.resolve():a.when()})),E.api.data.on.unauth(e,(function(){e.auth=!1})),e.showTransferModal=function(e){return g.showTransfer(e)},e.showAboutModal=function(){return g.showAbout()},e.showJoinModal=function(){return e.closeProfilePopover(),g.showJoin()},e.showSettings=function(){return e.closeProfilePopover(),n.go("app.settings")},e.showHelpModal=function(e){return g.showHelp(e)},e.showProfilePopover=function(t){return p.popover.show(t,{templateUrl:"templates/common/popover_profile.html",scope:e,autoremove:!0,afterShow:function(t){e.profilePopover=t,o((function(){p.ink({selector:"#profile-popover .ink, #profile-popover .ink-dark"})}),100)}})},e.closeProfilePopover=function(){e.profilePopover&&e.profilePopover.isShown()&&o((function(){e.profilePopover.hide()}))},e.showPeerInfoPopover=function(t){return p.popover.show(t,{templateUrl:"templates/network/popover_peer_info.html",autoremove:!0,scope:e.$new(!0)})},e.openLink=function(e,t,i){if(e.stopPropagation(),e.preventDefault(),t&&t.startsWith("@")){var a=t.substr(1);if(m.regexp.USER_ID.test(a))return n.go("app.wot_identity_uid",{uid:a}),!1}return(i=i||{}).onError=function(){return p.popover.copy(e,t)},_.uri.open(t,i),!1},e.showFab=function(e,t){p.motion.toggleOn({selector:"#"+e+".button-fab"},t)},e.hideFab=function(e,t){p.motion.toggleOff({selector:"#"+e+".button-fab"},t)},e.doMotion=function(t){return e.motion.show(t)},e.askFullscreen=function(){if(!e.fullscreen&&p.screen.isSmall()&&b.isWeb())return p.alert.confirm("CONFIRM.FULLSCREEN",null,{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES"}).then((function(t){t&&e.toggleFullscreen()}))},e.toggleFullscreen=function(){e.fullscreen=!p.screen.fullscreen.isEnabled(),p.screen.fullscreen.toggleAll()}}function r(e,t,n,i,a,o,r,s,l,c,u){e.loading=!0,e.locales=angular.copy(u.locales),e.smallscreen=r.screen.isSmall(),e.enter=function(n,a){ionic.Platform.isIOS()&&window.StatusBar&&(StatusBar.overlaysWebView(!1),StatusBar.overlaysWebView(!0)),a&&a.stateParams&&a.stateParams.error?(e.error=a.stateParams.error,e.node=c.data.node,e.loading=!1,i.nextViewOptions({disableAnimate:!0,disableBack:!0,historyRoot:!0}),t.go("app.home",{error:void 0},{reload:!1,inherit:!0,notify:!1})):l.ready().then((function(){e.loading=!1,e.loadFeeds()})).catch((function(t){e.node=c.data.node,e.loading=!1,e.error=t}))},e.$on("$ionicView.enter",e.enter),e.reload=function(){e.loading=!0,delete e.error,n(e.enter,200)},e.loadFeeds=function(){var t=u.getFeedUrl();if(t&&"string"==typeof t){var n=s.feed&&s.feed.maxContentLength||650,i=Date.now();console.debug("[home] Loading feeds from {0}...".format(t)),o.get(t,{responseType:"json"}).success((function(t){console.debug("[home] Feeds loaded in {0}ms".format(Date.now()-i)),t&&t.items&&t.items.length&&(t.items=t.items.reduce((function(e,i){if(!i||!i.title&&!i.content_text&&!i.content_html)return e;if(i.date_published&&(i.time=moment.utc(i.date_published).unix()),i.content_html?i.content=i.content_html:i.content=(i.content_text||"").replace(/\n/g,"<br/>"),-1!==n&&i.content&&i.content.length>n){var a=Math.max(i.content.lastIndexOf(" ",n),i.content.lastIndexOf("<",n));i.content=i.content.substr(0,a)+" (...)",i.truncated=!0}return i.author=i.author||t.author,e.concat(i)}),[]),e.feed=t)})).error((function(t,n){console.error("[home] Failed to load feeds."),e.feed=null}))}},e.doQuickFix=function(e){"settings"===e&&(i.nextViewOptions({historyRoot:!0}),t.go("app.settings"))},e.changeLanguage=function(t){a.use(t),e.hideLocalesPopover(),u.data.locale=_.findWhere(e.locales,{id:t}),e.loadFeeds()},e.showLocalesPopover=function(t){r.popover.show(t,{templateUrl:"templates/api/locales_popover.html",scope:e,autoremove:!0,afterShow:function(t){e.localesPopover=t}})},e.hideLocalesPopover=function(){e.localesPopover&&(e.localesPopover.hide(),e.localesPopover=null)}}function s(e,t,n,i,a){angular.extend(this,n("HomeCtrl",{$scope:e})),e.showJoinModal=function(){return e.loading?t(e.showJoinModal,500):a.isLogin()||e.error?void 0:t(i.showJoin,300)},e.$on("$ionicView.enter",e.showJoinModal)}function l(e,t,n,i,a){e.formData={},e.slides={slider:null,options:{loop:!1,effect:"slide",speed:500}},e.loading=!0,e.load=function(){if(e.loading)return a.get().then((function(t){t&&(e.currency=t,e.formData.currency=t.name,e.loading=!1)})).catch(i.onError("ERROR.GET_CURRENCY_FAILED"))},e.$on("modal.shown",e.load),e.$on("$ionicSlides.sliderInitialized",(function(e,t){t.slider.lockSwipes()})),e.slidePrev=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slidePrev(),e.slides.slider.lockSwipes()},e.slideNext=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slideNext(),e.slides.slider.lockSwipes()},e.selectAccountTypeAndClose=function(t){e.formData.accountType=t,e.closeModal(e.formData)},e.doQuickFix=function(n){"settings"==n&&(e.closeModal(),t.go("app.settings"))},e.showHelpModal=function(e){n.showHelp({anchor:e})}}function c(e,t,n,i,a,o,r,s,l,c,u,d,p){var m;e.formData={pseudo:p.uid||"",pubkey:p.pubkey||void 0},e.slides={slider:null,options:{loop:!1,effect:"slide",speed:500,pager:!1,showPager:!1}},e.slideBehavior={},e.loading=!0,e.isLicenseRead=o.isIOS(),e.showUsername=!1,e.showPassword=!1,e.formData.computing=!1,e.smallscreen=r.screen.isSmall(),e.userIdPattern=d.constants.regexp.USER_ID,e.accountAvailable=!!p.pubkey,e.currency=p.currency,e.accountType=p.accountType||"member",e.load=function(){if(e.loading){if(!(m=p.walletId&&u.children.get(p.walletId)||p.pubkey&&u.children.getByPubkey(p.pubkey)||(!p.pubkey||u.isUserPubkey(p.pubkey))&&u))throw new Error("Cannot found the corresponding wallet, from parameters.pubkey or parameters.walletId");console.debug("[join] Starting join modal on wallet {0}".format(m.id)),"member"===e.accountType&&(e.licenseFileUrl=l.getLicenseUrl(),e.licenseFileUrl&&(".txt"!=e.licenseFileUrl.substring(e.licenseFileUrl.length-3)&&(e.licenseFileUrl=e.licenseFileUrl+".html"),e.isLicenseRead||a((function(){e.isLicenseRead||(e.isLicenseRead=!0)}),5e3))),e.slideBehavior=e.computeSlideBehavior(),e.loading=!1}},e.$on("modal.shown",e.load),e.$on("$ionicSlides.sliderInitialized",(function(e,t){t.slider.lockSwipes()})),e.slidePrev=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slidePrev(),e.slides.slider.lockSwipes()},e.slideNext=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slideNext(),e.slides.slider.lockSwipes()},e.showAccountPubkey=function(){if(p.pubkey&&p.pseudo===e.formData.pseudo)return e.formData.pubkey=p.pubkey,void(e.formData.computing=!1);e.formData.computing=!0,s.scryptKeypair(e.formData.username,e.formData.password).then((function(t){return e.formData.pubkey=s.util.encode_base58(t.signPk),e.checkAccountAvailable()})).then((function(){return a((function(){e.formData.computing=!1}),400)})).catch((function(t){e.formData.pubkey=void 0,e.formData.computing=!1,r.onError("ERROR.CRYPTO_UNKNOWN_ERROR")(t)}))},e.formDataChanged=function(){e.formData.computing=!1,e.formData.pubkey=null},e.getCurrentFormName=function(){var t=e.slides.slider.activeIndex;if("member"===e.accountType){if(t+=e.licenseFileUrl?0:1,0===(t+=p.pubkey&&t>=2?2:0))return"licenseForm";if(1===t)return"pseudoForm";if(2===t)return"saltForm";if(3===t)return"passwordForm";if(4===t)return"confirmForm"}else{if(0===t)return"saltForm";if(1===t)return"passwordForm";if(2===t)return"confirmForm"}},e.computeSlideBehavior=function(){var t=e.getCurrentFormName();return"licenseForm"===t?{hasPreviousButton:!1,hasNextButton:!1,hasAcceptButton:!0}:"pseudoForm"===t?{helpAnchor:"join-pseudo",hasPreviousButton:e.licenseFileUrl&&!0,hasNextButton:!0,focus:"pseudo"}:"saltForm"===t?{helpAnchor:"join-salt",hasPreviousButton:"member"===e.accountType,hasNextButton:!0,focus:"salt"}:"passwordForm"===t?{helpAnchor:"join-password",hasPreviousButton:!0,hasNextButton:!0,focus:"password"}:"confirmForm"===t?{hasPreviousButton:!0,hasNextButton:!1,hasSendButton:!0,helpAnchor:"join-pubkey"}:{hasPreviousButton:!1,hasNextButton:!0}},e.doNext=function(){var t=e.getCurrentFormName();if(t&&e[t]){if(e[t].$submitted=!0,!e[t].$valid)return;if("pseudoForm"===t&&e.uiAlreadyUsed)return;"passwordForm"===t&&e.showAccountPubkey()}e.slideNext(),e.slideBehavior=e.computeSlideBehavior()},e.doPrev=function(){e.slidePrev(),e.slideBehavior=e.computeSlideBehavior()},e.doNewAccount=function(n){if(!n){var o="member"===e.accountType?"ACCOUNT.NEW.CONFIRMATION_MEMBER_ACCOUNT":"ACCOUNT.NEW.CONFIRMATION_WALLET_ACCOUNT";return r.alert.confirm(o,void 0,{cssClass:"warning",okText:"member"==e.accountType?"COMMON.BTN_SEND":"COMMON.BTN_CONTINUE",okType:"button-assertive"}).then((function(t){t&&e.doNewAccount(!0)}))}var s=function(e){return function(t){throw parameter.uid?m.unauth().then((function(){r.onError(e)(t)})):m.logout().then((function(){r.onError(e)(t)})),new Error("CANCELLED")}};return r.loading.show(),m.login({auth:!0,isNew:!0,method:"SCRYPT_DEFAULT",expectedPubkey:e.formData.pubkey,showMethods:!1}).then((function(){if("member"===e.accountType){e.closeModal(),l.data.wallet=l.data.wallet||{},l.data.wallet.alertIfUnusedWallet=!1;var n=angular.isUndefined(p.uid)||angular.isUndefined(p.blockUid)||p.uid.toUpperCase()!==e.formData.pseudo.toUpperCase();return n||m.setSelf(p.uid,p.blockUid),(n?m.self(e.formData.pseudo,!1).catch(s("ERROR.SEND_IDENTITY_FAILED")):i.when()).then((function(){return m.membership.inside().catch((function(e){e&&e.ucode!=d.errorCodes.MEMBERSHIP_ALREADY_SEND||s("ERROR.SEND_MEMBERSHIP_IN_FAILED")(e)}))})).then((function(){return e.closeModal(),m.isDefault()?t.go("app.view_wallet"):t.go("app.view_wallet_by_id",{id:m.id})})).then((function(){return a((function(){return m.isDataLoaded({requirements:!0})&&r.loading.hide(),e.downloadRevocationRegistration()}),2e3)}))}e.closeModal(),m.isDefault()?t.go("app.view_wallet"):t.go("app.view_wallet_by_id",{id:m.id})})).catch((function(e){r.loading.hide(),"CANCELLED"!==e&&(e&&e.ucode!=d.errorCodes.MEMBERSHIP_ALREADY_SEND?console.error("[wallet] Node: already membership",e):r.alert.error("ERROR.UNKNOWN_ERROR"))}))},e.downloadRevocationRegistration=function(){return r.alert.confirm("DOWNLOAD.POPUP_REVOKE_MESSAGE","DOWNLOAD.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_DOWNLOAD",okType:"button-assertive",cancelText:"COMMON.BTN_LATER"}).then((function(e){if(e)return m.downloadRevocation()}))},e.showHelpModal=function(e){c.showHelp({anchor:e})},e.startListenLicenseBottom=function(){var t=angular.element(document.querySelector(".modal #iframe-license"));if(!(t=t&&t.length?t[0]:void 0)||!t.contentWindow)return console.debug("[join] Waiting license frame to be load..."),a(e.startListenLicenseBottom,1e3);e.licenseBottomInterval=n((function(){var n=t.contentWindow.document.body.scrollTop;t.contentWindow.document.body.scrollHeight-t.contentWindow.document.body.clientHeight===n&&(e.isLicenseRead=!0,e.stopListenLicenseBottom())}),1e3)},e.stopListenLicenseBottom=function(){e.licenseBottomInterval&&(n.cancel(e.licenseBottomInterval),delete e.licenseBottomInterval)},e.$on("modal.hidden",e.stopListenLicenseBottom),e.checkUid=function(){if(!e.formData.pseudo||e.formData.pseudo.length<3)return e.formData.computing=!1,void delete e.uiAlreadyUsed;var t=e.formData.pseudo.toUpperCase();if(e.formData.computing=!0,p.uid&&t===p.uid.toUpperCase())return e.formData.computing=!1,void(e.uiAlreadyUsed=!1);d.wot.lookup({search:t}).then((function(n){e.uiAlreadyUsed=(n.results||[]).some((function(e){return(e.uids||[]).some((function(e){return e.uid.toUpperCase()===t}))})),e.formData.computing=!1})).catch((function(t){console.error(t),e.formData.computing=!1,e.uiAlreadyUsed=!1}))},e.$watch("formData.pseudo",e.checkUid,!0),e.checkAccountAvailable=function(){if(!p.pubkey)return delete e.accountAvailable,d.tx.sources({pubkey:e.formData.pubkey}).then((function(t){e.accountAvailable=!t||!t.sources.length})).catch((function(t){console.error(t),e.accountAvailable=!1}));e.accountAvailable=!0},e.identifierRecovery=function(){e.slides.slider.unlockSwipes();for(var t=0;t<2;t++)e.slides.slider.slidePrev();e.slides.slider.lockSwipes(),e.slideBehavior=e.computeSlideBehavior()}}function u(e,t,n,i){angular.extend(this,n("HomeCtrl",{$scope:e})),e.showLoginModal=function(){return e.loading?t(e.showLoginModal,500):i.isLogin()||e.error?void 0:t(i.login,300)},e.$on("$ionicView.enter",e.showLoginModal)}function d(e,t,n,i,a,o,r,s,l,c,u,d,p){p=p||{},e.computing=!1,e.pubkey=null,e.formData={},e.showPubkey=!1,e.showComputePubkeyButton=!1,e.autoComputePubkey=!1,e.pubkeyPattern="^(:?{0}|{1})$".format(l.constants.regexp.PUBKEY,l.constants.regexp.PUBKEY_WITH_CHECKSUM),e.isAuth=p.auth,e.okText=p.okText,e.title=p.title||(e.isAuth?"AUTH.TITLE":"LOGIN.TITLE"),e.showMethods=!angular.isDefined(p.showMethods)||p.showMethods,e.showNewAccountLink=!angular.isDefined(p.showNewAccountLink)||p.showNewAccountLink,e.expectedPubkey=p.expectedPubkey,e.expectedUid=p.uid,e.scryptParamsValues=_.keys(a.constants.SCRYPT_PARAMS).reduce((function(e,t){return e.concat({id:t,label:"LOGIN.SCRYPT."+t,params:a.constants.SCRYPT_PARAMS[t]})}),[{id:"USER",label:"LOGIN.SCRYPT.USER",params:{}}]),e.init=function(){r().then((function(){e.autoComputePubkey="a"===ionic.Platform.grade.toLowerCase()&&!s.screen.isSmall()})),e.formData.rememberMe=u.data.rememberMe,e.formData.keepAuthIdle=u.data.keepAuthIdle,e.formData.keepAuth=e.formData.keepAuthIdle==u.constants.KEEP_AUTH_IDLE_SESSION;var t=p.method||u.data.login&&u.data.login.method||"SCRYPT_DEFAULT",n=u.data.login&&u.data.login.params;(e.isAuth&&"PUBKEY"===t||"SCAN"===t||"default"===t)&&(t="SCRYPT_DEFAULT"),e.changeMethod(t,n)},e.enter=function(){s.loading.hide(),s.ink({selector:".modal-login .ink"})},e.$on("modal.shown",e.enter),e.leave=function(){e.formData={},e.computing=!1,e.pubkey=null,e.methods=[]},e.$on("modal.hide",e.leave),e.doLogin=function(n){var i=e.formData.method;if(e.form.$valid||"SCAN"===i){d.keyboard.close();var r,c=e.formData.keepAuthIdle;if("SCRYPT_DEFAULT"===i||"SCRYPT_ADVANCED"===i){if(!e.formData.username||!e.formData.password)return;var m=e.formData.scrypt&&e.formData.scrypt.params;s.loading.show(),r=a.scryptKeypair(e.formData.username,e.formData.password,m).then((function(t){if(!t)return s.loading.hide(10);var n=a.util.encode_base58(t.signPk);return p.expectedPubkey&&p.expectedPubkey!=n?(e.pubkey=n,e.showPubkey=!0,e.pubkeyError=!0,s.loading.hide(10)):(e.pubkeyError=!1,{pubkey:n,keypair:t,params:e.formData.scrypt&&"SCRYPT_DEFAULT"!=e.formData.scrypt.id?m:void 0})})).catch(s.onError("ERROR.CRYPTO_UNKNOWN_ERROR"))}else if("FILE"===i){if(!e.formData.file||!e.formData.file.valid||!e.formData.file.pubkey)return;c=e.formData.keepAuth&&u.constants.KEEP_AUTH_IDLE_SESSION||c,r=s.loading.show().then((function(){return e.readKeyFile(e.formData.file,{withSecret:e.isAuth||e.formData.keepAuth})})).then((function(t){if(!t)return s.loading.hide(10);var n=a.util.encode_base58(t.signPk);return p.expectedPubkey&&p.expectedPubkey!=n?(e.formData.file.valid=!1,s.loading.hide(10)):(e.pubkeyError=!1,{pubkey:n,keypair:t})})).catch(s.onError("ERROR.AUTH_FILE_ERROR"))}else if("PUBKEY"===i){var E=e.formData.pubkey&&e.formData.pubkey.trim(),b=e.formData.uid&&e.formData.uid.trim()||void 0;if(!E)return;var g=l.regexp.PUBKEY.exec(E);if(g)r=s.loading.show().then((function(){return{pubkey:E,uid:b}}));else{if(!(g=l.regexp.PUBKEY_WITH_CHECKSUM.exec(E)))return e.showWotLookupModal(E);E=g[1],g[2]!=o.util.pkChecksum(E)?e.form.pubkey.$error={checksum:!0}:r=s.loading.show().then((function(){return{pubkey:E,uid:b}}))}}else if("SCAN"===i){if(!e.formData.pubkey||e.isAuth&&!e.formData.keypair)return;r=s.loading.show().then((function(){return{pubkey:e.formData.pubkey,keypair:e.formData.keypair}}))}if(r)return r.then((function(n){if(n){var a=!angular.equals(u.data.rememberMe,e.formData.rememberMe),o=!angular.equals(u.data.keepAuthIdle,c),r=!angular.equals(u.data.login&&u.data.login.method,i),l=!angular.equals(u.data.login&&u.data.login.params,n.params);return(a||o||r||l)&&(u.data.rememberMe=e.formData.rememberMe,u.data.keepAuthIdle=c,u.data.useLocalStorage=!!u.data.rememberMe||u.data.useLocalStorage,u.data.login=u.data.login||{},u.data.login.method=i,u.data.login.params=n.params,t(u.store,500)),p.success&&p.success(e.formData),p.silent&&s.loading.hide(),e.closeModal(n)}}));console.warn("[login] unknown method: ",i)}},e.onScryptFormChanged=function(){e.computing||(e.pubkey=null,e.pubkeyError=!1,e.showPubkey=!!e.formData.username&&!!e.formData.password,e.autoComputePubkey&&e.showPubkey?(e.computePubkey(),e.showComputePubkeyButton=!1):e.showComputePubkeyButton=!e.autoComputePubkey&&e.showPubkey)},e.$watch("formData.username + formData.password",e.onScryptFormChanged,!0),e.computePubkey=function(){return e.showComputePubkeyButton=!1,e.computing=!0,e.pubkey=null,t((function(){var t=e.formData.username,n=e.formData.password,i=e.formData.scrypt&&e.formData.scrypt.params;return a.scryptSignPk(t,n,i).then((function(i){if(t!==e.formData.username||n!==e.formData.password)return e.computePubkey();e.pubkey=a.util.encode_base58(i),e.expectedPubkey&&e.expectedPubkey!=e.pubkey&&(e.pubkeyError=!0),e.computing=!1})).catch((function(t){s.onError("ERROR.CRYPTO_UNKNOWN_ERROR")(t),e.computing=!1,e.autoComputePubkey=!1,e.onScryptFormChanged()}))}),100)},e.showJoinModal=function(){e.closeModal(),t((function(){c.showJoin()}),300)},e.showAccountSecurityModal=function(){e.closeModal(),t((function(){c.showAccountSecurity()}),300)},e.showHelpModal=function(e){return c.showHelp(e)},e.doScan=function(){if(!e.computing)return e.computing=!0,e.formData.pubkey=null,e.formData.keypair=null,d.barcode.scan().then((function(t){if(t)return e.isAuth?n.when(t):l.uri.parse(t).then((function(e){if(!e||!e.pubkey)throw{message:"ERROR.SCAN_UNKNOWN_FORMAT"};return e})).catch((function(e){return console.debug("[login] Error while parsing as URI: "+(e&&e.message||e)),t}))})).then((function(e){if(e)return e&&e.pubkey?e:o.keyfile.parseData(e,{silent:!0}).then((function(e){if(!e||!e.signPk||!e.signSk)throw{message:"ERROR.SCAN_UNKNOWN_FORMAT"};return{pubkey:a.base58.encode(e.signPk),keypair:e}})).catch(s.onError("ERROR.SCAN_UNKNOWN_FORMAT"))})).then((function(t){t&&t.pubkey&&(e.pubkeyError=e.expectedPubkey&&e.expectedPubkey!=t.pubkey,e.formData.pubkey=t.pubkey,e.formData.keypair=t.keypair)})).then((function(){e.computing=!1,s.loading.hide(10)})).catch((function(t){e.computing=!1,s.onError("ERROR.SCAN_FAILED")(t)}))},e.changeMethod=function(t,n){if(e.hideMethodsPopover(),t&&t!=e.formData.method)if(console.debug("[login] method is: "+t),e.formData.method=t,e.formData.uid=null,e.form&&delete e.form.$submitted,"SCRYPT_DEFAULT"==t||"SCRYPT_ADVANCED"==t){var i;e.pubkey=null,n?(i=_.find(e.scryptParamsValues,(function(e){return e.params&&angular.equals(e.params,n)})))||((i=_.findWhere(e.scryptParamsValues,{id:"USER"})||{}).params=n):i=_.findWhere(e.scryptParamsValues,{id:"DEFAULT"}),e.changeScrypt(i),e.autoComputePubkey=e.autoComputePubkey&&"SCRYPT_DEFAULT"==t}else{if("SCAN"==t)return e.doScan();e.formData.username=null,e.formData.password=null,e.formData.pubkey=null,e.pubkey=null,e.computing=!1}},e.changeScrypt=function(t){e.formData.scrypt=angular.copy(t||{}),e.onScryptFormChanged()},e.readKeyFile=function(n,i){return(i=i||{}).password=i.password||e.formData.file.password||function(){return e.formData.file.password=void 0,c.showPassword({title:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.TITLE",subTitle:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.HELP",error:i.error,scope:e}).then((function(n){return e.formData.file.password=n,t((function(){return n}),150)}))},o.keyfile.read(e.formData.file,i).catch((function(t){if(e.formData.file.password=void 0,"CANCELLED"===t&&s.loading.hide(10),t&&t.ucode==o.errorCodes.BAD_PASSWORD)return e.readKeyFile(e.formData.file,{withSecret:i.withSecret,error:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_PASSWORD"});throw t}))},e.fileChanged=function(n){e.validatingFile=!0,e.formData.file=n&&n.target&&n.target.files&&n.target.files.length&&n.target.files[0],e.formData.file?t((function(){return console.debug("[login] key file changed: ",e.formData.file),e.validatingFile=!0,e.readKeyFile(e.formData.file,{withSecret:!1,password:e.formData.file.password}).then((function(t){t&&t.signPk?(e.formData.file.pubkey=a.util.encode_base58(t.signPk),e.formData.file.valid=!e.expectedPubkey||e.expectedPubkey==e.formData.file.pubkey,e.validatingFile=!1):(e.formData.file.valid=!1,e.formData.file.pubkey=void 0)})).catch((function(t){t&&"CANCELLED"===t?e.removeKeyFile():(e.validatingFile=!1,e.formData.file.valid=!1,e.formData.file.pubkey=void 0,s.onError("ERROR.AUTH_FILE_ERROR")(t))}))})):e.validatingFile=!1},e.onKeyFileDrop=function(n){n&&n.fileData&&(e.formData.file={name:n.fileData.name,size:n.fileData.size,content:n.fileContent},e.validatingFile=!0,t((function(){return e.readKeyFile(e.formData.file,{withSecret:!1}).then((function(t){t&&t.signPk?(e.formData.file.pubkey=a.util.encode_base58(t.signPk),e.formData.file.valid=!e.expectedPubkey||e.expectedPubkey==e.formData.file.pubkey,e.validatingFile=!1):(e.formData.file.valid=!1,e.formData.file.pubkey=void 0)})).catch((function(t){e.validatingFile=!1,e.formData.file.valid=!1,e.formData.file.pubkey=void 0,s.onError("ERROR.AUTH_FILE_ERROR")(t)}))})))},e.removeKeyFile=function(){e.formData.file=void 0},e.showWotLookupModal=function(n){return c.showWotLookup({q:n}).then((function(n){if(n&&n.pubkey)return e.formData.pubkey=n.pubkey,e.formData.uid=n.uid||void 0,t(e.doLogin,300)}))},e.showMethodsPopover=function(t){t.defaultPrevented||s.popover.show(t,{templateUrl:"templates/login/popover_methods.html",scope:e,autoremove:!0,afterShow:function(t){e.methodsPopover=t,s.ink({selector:".popover-login-methods .item"})}})},e.hideMethodsPopover=function(){e.methodsPopover&&(e.methodsPopover.hide(),e.methodsPopover=null)},e.init()}function p(e,t){angular.extend(this,t("LoginModalCtrl",{$scope:e,parameters:{auth:!0}})),e.setForm=function(t){e.form=t}}function m(e,t,n,i,a){e.$on("$ionicView.enter",(function(o){e.locale=a.data.locale.id,t.stateParams&&t.stateParams.anchor&&(e.anchor=t.stateParams.anchor,n((function(){i(t.stateParams.anchor)}),100))}))}function E(e,t,n,i,a){e.itemsClass={},e.locale=i.data.locale.id,(a=a||{})&&"string"==typeof a&&(a={anchor:a}),a.anchor&&(t((function(){n(a.anchor)}),100),e.itemsClass={},e.itemsClass[a.anchor]="selected",e.listClass="selection")}function b(e,t,n,i,a,o,r,s,l,c,u,d,p,m){e.tour=!1,e.continue=!0,e.executeStep=function(t,n,i){if((i=angular.isDefined(i)?i:0)>=n.length)return o.when(!0);var a=n[i];if("function"!=typeof a)throw new Error("[helptip] Invalid step at index {0} of '{1}' tour: step must be a function".format(i,t));var r=a();return"boolean"==typeof r&&(r=o.when(r)),r.then((function(a){return angular.isUndefined(a)?(e.continue=!1,i):a&&i!==n.length-1?e.executeStep(t,n,i+1):a?-1:i+1})).catch((function(n){return n&&"transition prevented"==n.message?console.error("ERROR: in help tour [{0}], in step [{1}] -> use large if exists, to prevent [transition prevented] error".format(t,i)):console.error("ERROR: in help tour  [{0}], in step [{1}] : {2}".format(t,i,n)),e.continue=!1,i}))},e.showHelpTip=function(t,n){return(n=n||{}).bindings=n.bindings||{},n.bindings.value=n.bindings.value||"",n.bindings.hasNext=!angular.isDefined(n.bindings.hasNext)||n.bindings.hasNext,n.timeout=n.timeout||(p.enable?900:500),n.autoremove=!0,n.bindings.tour=e.tour,n.backdropClickToClose=!e.tour,s.popover.helptip(t,n)},e.showHelpModal=function(e){Modals.showHelp({anchor:e})},e.startHelpTour=function(){return e.tour=!0,e.continue=!0,e.startCurrencyTour(0,!0).then((function(t){return!(!t||e.cancelled)&&(c.data.helptip.currency=t,c.store(),e.continue)})).then((function(t){return!!t&&e.startNetworkTour(0,!0).then((function(t){return!(!t||e.cancelled)&&(c.data.helptip.network=t,c.store(),e.continue)}))})).then((function(t){return!!t&&e.startWotLookupTour(0,!0).then((function(t){return!(!t||e.cancelled)&&(c.data.helptip.wotLookup=t,c.store(),e.continue)}))})).then((function(t){return!!t&&e.startWotTour(0,!0).then((function(t){return!(!t||e.cancelled)&&(c.data.helptip.wot=t,c.store(),e.continue)}))})).then((function(t){return!!t&&e.startWotCertTour(0,!0).then((function(t){return!!t&&(c.data.helptip.wotCerts=t,c.store(),e.continue)}))})).then((function(t){return!!t&&e.startWalletNoLoginTour(0,!0)})).then((function(t){return!!t&&(!m.isLogin()||e.startWalletTour(0,!0).then((function(t){return!!t&&(c.data.helptip.wallet=t,c.store(),e.continue)})))})).then((function(t){return!!t&&(!m.isLogin()||e.startWalletCertTour(0,!0).then((function(t){return!!t&&(c.data.helptip.walletCerts=t,c.store(),e.continue)})))})).then((function(t){return!!t&&(!m.isLogin()||e.startTxTour(0,!0).then((function(t){return!!t&&(c.data.helptip.tx=t,c.store(),e.continue)})))})).then((function(t){return!!t&&e.startHeaderTour(0,!0)})).then((function(t){return!!t&&e.startSettingsTour(0,!0)})).then((function(t){return!!t&&e.finishTour()}))},e.startCurrencyTour=function(n,a){var o,l=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-currency",{bindings:{content:"HELP.TIP.MENU_BTN_CURRENCY",icon:{position:"left"}}})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go(s.screen.isSmall()?"app.currency":"app.currency_lg").then((function(){return e.showHelpTip("helptip-currency-mass-member",{bindings:{content:"HELP.TIP.CURRENCY_MASS",icon:{position:"center"}}})}))},function(){return!c.data.useRelative||e.showHelpTip("helptip-currency-mass-member-unit",{bindings:{content:"HELP.TIP.CURRENCY_UNIT_RELATIVE",contentParams:o,icon:{position:s.screen.isSmall()?"right":"center"}}})},function(){return r("helptip-currency-rules-anchor"),e.showHelpTip("helptip-currency-rules",{bindings:{content:"HELP.TIP.CURRENCY_RULES",icon:{position:"center",glyph:"ion-information-circled"}}})},function(){return t.is("app.currency.tab_parameters")&&t.go("app.currency.tab_wot"),r("helptip-currency-newcomers-anchor"),e.showHelpTip("helptip-currency-newcomers",{bindings:{content:"HELP.TIP.CURRENCY_WOT",icon:{position:"center"},hasNext:a},timeout:1200})}];return u.get().then((function(t){return o=t.parameters,e.executeStep("currency",l,n)}))},e.startNetworkTour=function(o,r){var d=function(){t.is("app.currency")&&a((function(){var e=n.document.querySelectorAll("ion-tabs .tabs a");e&&3==e.length&&angular.element(e[2]).triggerHandler("click")}),100)},p=[function(){return!!s.screen.isSmall()||(i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-network",{bindings:{content:"HELP.TIP.MENU_BTN_NETWORK",icon:{position:"left"}}}))},function(){return i.isOpen()&&i.toggleLeft(!1),t.go(s.screen.isSmall()?"app.currency.tab_network":"app.network").then((function(){return d(),e.showHelpTip("helptip-network-peers",{bindings:{content:"HELP.TIP.NETWORK_BLOCKCHAIN",icon:{position:"center",glyph:"ion-information-circled"}},timeout:1200})}))},function(){return d(),e.showHelpTip("helptip-network-peer-0",{bindings:{content:"HELP.TIP.NETWORK_PEERS",icon:{position:s.screen.isSmall()?void 0:"center"}},timeout:1e3,retry:20})},function(){return d(),e.showHelpTip("helptip-network-peer-0-block",{bindings:{content:"HELP.TIP.NETWORK_PEERS_BLOCK_NUMBER",icon:{position:s.screen.isSmall()?void 0:"center"}}})},function(){d();var t=c.data.locale.id;return e.showHelpTip("helptip-network-peers",{bindings:{content:"HELP.TIP.NETWORK_PEERS_PARTICIPATE",contentParams:{installDocUrl:l.helptip&&l.helptip.installDocUrl?l.helptip.installDocUrl[t]?l.helptip.installDocUrl[t]:l.helptip.installDocUrl:"http://duniter.org"},icon:{position:"center",glyph:"ion-information-circled"},hasNext:r}})}];return u.parameters().then((function(t){return e.executeStep("network",p,o)}))},e.startWotLookupTour=function(o,r){var l=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-wot",{bindings:{content:"HELP.TIP.MENU_BTN_WOT",icon:{position:"left"}},onError:"continue"})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go(s.screen.isSmall()?"app.wot_lookup.tab_search":"app.wot_lookup_lg").then((function(){return e.showHelpTip("helptip-wot-search-text",{bindings:{content:s.screen.isSmall()?"HELP.TIP.WOT_SEARCH_TEXT_XS":"HELP.TIP.WOT_SEARCH_TEXT",icon:{position:"center"}}})}))},function(){return e.showHelpTip("helptip-wot-search-result-0",{bindings:{content:"HELP.TIP.WOT_SEARCH_RESULT",icon:{position:"center"}},timeout:700,retry:15})},function(){var t=n.document.getElementById("helptip-wot-search-result-0");return!t||(a((function(){angular.element(t).triggerHandler("click")})),e.showHelpTip("helptip-wot-view-certifications",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFICATIONS",hasNext:r},timeout:2500}))}];return e.executeStep("wotLookup",l,o)},e.startWotTour=function(t,n){var i,a=[function(){return e.showHelpTip("helptip-wot-view-certifications",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFICATIONS_COUNT",contentParams:i,icon:{position:"center",glyph:"ion-information-circled"}}})},function(){return e.showHelpTip("helptip-wot-view-certifications-count",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFICATIONS_CLICK",icon:{position:"center"},hasNext:n}})}];return u.get().then((function(n){return(i=n.parameters).currentUD=n.currentUD,e.executeStep("wot",a,t)}))},e.startWotCertTour=function(i,o){var r=[function(){if(t.is("app.wot_identity")){var i=n.document.getElementById("helptip-wot-view-certifications");if(!i)return!0;a((function(){angular.element(i).triggerHandler("click")}))}return e.showHelpTip(s.screen.isSmall()?"fab-certify":"helptip-certs-certify",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFY",icon:{position:s.screen.isSmall()?"bottom-right":"center"}},timeout:s.screen.isSmall()?2e3:1e3,retry:10})},function(){return e.showHelpTip(s.screen.isSmall()?"fab-certify":"helptip-certs-certify",{bindings:{content:"HELP.TIP.CERTIFY_RULES",icon:{position:"center",glyph:"ion-alert-circled"},hasNext:o}})}];return e.executeStep("certs",r,i)},e.startWalletNoLoginTour=function(t,n){if(m.isLogin())return o.when(!0);var a=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-account",{bindings:{content:"HELP.TIP.MENU_BTN_ACCOUNT",icon:{position:"left"},hasNext:n}})}];return e.executeStep("wallet-no-login",a,t)},e.startWalletTour=function(n,a){if(!m.isLogin())return o.when(!0);var l=m.data.isMember||m.data.requirements&&m.data.requirements.pendingMembership,c=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-account",{bindings:{content:m.data.isMember?"HELP.TIP.MENU_BTN_ACCOUNT_MEMBER":"HELP.TIP.MENU_BTN_ACCOUNT",icon:{position:"left"}}})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go("app.view_wallet").then((function(){return e.showHelpTip(s.screen.isSmall()?"helptip-wallet-options-xs":"helptip-wallet-options",{bindings:{content:"HELP.TIP.WALLET_OPTIONS",icon:{position:s.screen.isSmall()?"right":"center"}}})}))},function(){return r("helptip-wallet-pubkey"),e.showHelpTip("helptip-wallet-pubkey",{bindings:{content:"HELP.TIP.WALLET_PUBKEY",icon:{position:"center"},hasNext:!l&&a},timeout:s.screen.isSmall()?2e3:500,retry:10})},function(){return l?(r("helptip-wallet-certifications"),e.showHelpTip("helptip-wallet-certifications",{bindings:{content:s.screen.isSmall()?"HELP.TIP.WALLET_RECEIVED_CERTIFICATIONS":"HELP.TIP.WALLET_CERTIFICATIONS",icon:{position:"center"},hasNext:a},timeout:500,onError:"continue"})):a}];return c.length!=d.wallet.stepCount&&console.error("[help] Invalid value of 'csHelpConstants.wallet.stepCount'. Please update to {0}".format(c.length)),u.get().then((function(t){return t.parameters.currentUD=t.currentUD,e.executeStep("wallet",c,n)}))},e.startWalletCertTour=function(i,r){if(!m.isLogin())return o.when(!0);var l=!1,c=[function(){if(t.is("app.view_wallet")){var i=n.document.getElementById("helptip-wallet-certifications");if(!i)return l=!0,!0;a((function(){angular.element(i).triggerHandler("click")}))}return!s.screen.isSmall()||e.showHelpTip("helptip-received-certs",{bindings:{content:"HELP.TIP.WALLET_RECEIVED_CERTS"}})},function(){return!(!l&&s.screen.isSmall())||t.go("app.view_wallet").then((function(){return e.showHelpTip("helptip-wallet-given-certifications",{bindings:{content:"HELP.TIP.WALLET_GIVEN_CERTIFICATIONS",icon:{position:"center"}},timeout:500})}))},function(){if(l)return!0;if(t.is("app.view_wallet")){var i=n.document.getElementById("helptip-wallet-given-certifications");if(!i)return l=!0,!0;a((function(){angular.element(i).triggerHandler("click")}),500)}return e.showHelpTip(s.screen.isSmall()?"fab-select-certify":"helptip-certs-select-certify",{bindings:{content:"HELP.TIP.WALLET_CERTIFY",icon:{position:s.screen.isSmall()?"bottom-right":"center"}},timeout:s.screen.isSmall()?2e3:500,retry:10})},function(){return e.tour||l?r:e.showHelpTip("helptip-certs-stock",{bindings:{content:"HELP.TIP.CERTIFY_RULES",icon:{position:"center",glyph:"ion-alert-circled"},hasNext:r}})}];return u.parameters().then((function(t){return e.executeStep("certs",c,i)}))},e.startTxTour=function(n,a){if(!m.isLogin())return o.when(!0);var r,s=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-tx",{bindings:{content:m.data.isMember?"HELP.TIP.MENU_BTN_TX_MEMBER":"HELP.TIP.MENU_BTN_TX",icon:{position:"left"}}})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go("app.view_wallet_tx").then((function(){return e.showHelpTip("helptip-wallet-balance",{bindings:{content:c.data.useRelative?"HELP.TIP.WALLET_BALANCE_RELATIVE":"HELP.TIP.WALLET_BALANCE",contentParams:r,icon:{position:"center"}},retry:20})}))},function(){return e.showHelpTip("helptip-wallet-balance",{bindings:{content:"HELP.TIP.WALLET_BALANCE_CHANGE_UNIT",contentParams:r,icon:{position:"center",glyph:"ion-information-circled"}}})}];return u.get().then((function(t){return(r=t.parameters).currentUD=t.currentUD,e.executeStep("tx",s,n)}))},e.startHeaderTour=function(t,r){if(s.screen.isSmall())return o.when(!0);function l(){var e=n.document.querySelectorAll("#helptip-header-bar-btn-profile");return e&&e.length?_.find(e,(function(e){return e.offsetWidth>0})):null}var c=[function(){if(s.screen.isSmall())return!0;var t=l();return!t||e.showHelpTip(t,{bindings:{content:"HELP.TIP.HEADER_BAR_BTN_PROFILE",icon:{position:"right"}}})},function(){if(s.screen.isSmall())return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-settings",{bindings:{content:"HELP.TIP.MENU_BTN_SETTINGS",icon:{position:"left"},hasNext:r},timeout:1e3});var t=l();return!t||(a((function(){angular.element(t).triggerHandler("click")})),e.showHelpTip("helptip-popover-profile-btn-settings",{bindings:{content:"HELP.TIP.MENU_BTN_SETTINGS",icon:{position:"center"},hasNext:r},timeout:1e3}).then((function(t){return e.closeProfilePopover(),t})))}];return e.executeStep("header",c,t)},e.startSettingsTour=function(n,a){var o,r=[function(){return!s.screen.isSmall()||(i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-settings",{bindings:{content:"HELP.TIP.MENU_BTN_SETTINGS",icon:{position:"left"}},timeout:1e3}))},function(){return i.isOpen()&&i.toggleLeft(!1),t.go("app.settings").then((function(){return e.showHelpTip("helptip-settings-btn-unit-relative",{bindings:{content:"HELP.TIP.SETTINGS_CHANGE_UNIT",contentParams:o,icon:s.screen.isSmall()?{position:"right",style:"margin-right: 60px"}:{position:"center"},hasNext:a},timeout:1e3})}))}];return u.parameters().then((function(t){return o=t,e.executeStep("settings",r,n)}))},e.finishTour=function(){return i.isOpen()&&i.toggleLeft(!1),m.isLogin()?t.go("app.view_wallet").then((function(){return e.showHelpTip("helptip-wallet-pubkey",{bindings:{content:"HELP.TIP.END_LOGIN",hasNext:!1},timeout:1200})})):o.all([e.showHome(),u.parameters().then((function(e){n=e}))]).then((function(){return e.showHelpTip("helptip-home-logo",{bindings:{content:"HELP.TIP.END_NOT_LOGIN",contentParams:n,hasNext:!1}})}));var n}}function g(e){e.$on("$ionicView.enter",(function(t,n){e.startHelpTour()}))}function f(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,f){var T;e.loading=!0,e.settings=b.data,e.qrcodeId="qrcode-wallet-"+e.$id,e.toggleQRCode=!1,e.likeData={likes:{},abuses:{}},e.enter=function(t,n){if(e.loading=e.loading||n.stateParams&&n.stateParams.refresh,e.enableSelectWallet=g.children.count()>0,e.loading)return(T=n.stateParams&&n.stateParams.id?g.children.get(n.stateParams.id):g)?(e.isDefaultWallet=T.isDefault(),e.walletId=T.id,e.cleanLocationHref(n),e.load()):(c.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome());c.loading.hide(),a(e.updateView,300)},e.$on("$ionicView.enter",e.enter),e.load=function(){if(T)return T.login().then((function(t){e.formData=t,e.loading=!1,e.updateView(),e.showQRCode(),T.isDefault()&&e.showHelpTip(),e.addListeners(),c.loading.hide()})).catch((function(t){"CANCELLED"===t&&e.showHome()}))},e.updateView=function(){e.motion.show({selector:"#wallet .item"}),e.$broadcast("$$rebind::rebind")},e.setRegisterForm=function(t){e.registerForm=t},e.onWalletLogout=function(){e.hideQRCode(),e.removeListeners(),delete e.formData,T=null,e.loading=!0},e.addListeners=function(){e.listeners=[T.api.data.on.logout(e,e.onWalletLogout),e.$watchCollection("formData.events",(function(t,n){!n||e.loading||angular.equals(t,n)||e.updateView()}))]},e.removeListeners=function(){_.forEach(e.listeners,(function(e){e()})),e.listeners=[]},e.showUidPopup=function(){return n((function(t,n){r(["ACCOUNT.NEW.TITLE","ACCOUNT.POPUP_REGISTER.TITLE","ACCOUNT.POPUP_REGISTER.HELP","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then((function(a){e.formData.newUid=e.formData.uid?""+e.formData.uid:"",i.show({templateUrl:"templates/wallet/popup_register.html",title:a["ACCOUNT.POPUP_REGISTER.TITLE"],subTitle:a["ACCOUNT.POPUP_REGISTER.HELP"],scope:e,buttons:[{text:a["COMMON.BTN_CANCEL"]},{text:a["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.registerForm.$submitted=!0,e.registerForm.$valid&&e.formData.newUid)return e.formData.newUid;t.preventDefault()}}]}).then((function(i){if(!i)return delete e.formData.uid,c.loading.hide(),void n("CANCELLED");t(i)}))}))}))},e.self=function(){return e.hideActionsPopover(),e.showUidPopup().then((function(t){if(t)return c.loading.show(),T.self(t).then((function(){e.updateView(),c.loading.hide()})).catch((function(t){c.onError("ERROR.SEND_IDENTITY_FAILED")(t).then((function(){e.self()}))}))}))},e.doMembershipIn=function(t){return T.membership.inside().then((function(){e.updateView(),c.loading.hide()})).catch((function(n){if("CANCELLED"===n)throw n;if(n&&n.ucode!=m.errorCodes.MEMBERSHIP_ALREADY_SEND)return console.error("[wallet] Node: already membership",n),void c.loading.hide();if(!t||t<=2)return a((function(){return e.doMembershipIn((t||0)+1)}),1e3);throw n}))},e.membershipIn=function(t){if(e.hideActionsPopover(),T.isMember())return c.alert.info("INFO.NOT_NEED_MEMBERSHIP");var n=angular.isDefined(e.formData.blockUid)&&e.formData.uid||void 0;return d.showJoinMember({uid:n,blockUid:n&&e.formData.blockUid,pubkey:e.formData.pubkey}).catch((function(e){"CANCELLED"!==e&&(T.data.uid?c.onError("ERROR.SEND_MEMBERSHIP_IN_FAILED")(e):c.onError("ERROR.SEND_IDENTITY_FAILED")(e))}))},e.membershipOut=function(t,n){return e.hideActionsPopover(),t?n?(c.loading.show(),T.membership.out().then((function(){c.loading.hide(),c.toast.show("INFO.MEMBERSHIP_OUT_SENT")})).catch(c.onError("ERROR.SEND_MEMBERSHIP_OUT_FAILED"))):c.alert.confirm("CONFIRM.MEMBERSHIP_OUT_2","CONFIRM.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"}).then((function(t){t&&e.membershipOut(!0,!0)})):c.alert.confirm("CONFIRM.MEMBERSHIP_OUT","CONFIRM.POPUP_WARNING_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"}).then((function(t){t&&e.membershipOut(!0)}))},e.doUpdate=function(t){return console.debug("[wallet] Refreshing data..."),(t?T.refreshData():c.loading.show().then(T.refreshData).then(c.loading.hide)).then(e.updateView).catch(c.onError("ERROR.REFRESH_WALLET_DATA"))},e.renewMembership=function(t){return T.isMember()||e.formData.requirements.wasMember?t||e.formData.requirements.needRenew?T.auth({minData:!0}).then((function(){return c.loading.hide(),c.alert.confirm("CONFIRM.RENEW_MEMBERSHIP")})).then((function(t){if(t)return c.loading.show(),e.doMembershipIn()})).catch((function(e){"CANCELLED"!==e&&(c.loading.hide(),c.alert.error(e))})):r("CONFIRM.NOT_NEED_RENEW_MEMBERSHIP",{membershipExpiresIn:e.formData.requirements.membershipExpiresIn}).then((function(e){return c.alert.confirm(e)})).then((function(t){if(t)return e.renewMembership(!0)})):c.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")},e.fixIdentity=function(){if(e.formData.uid)return n.all([T.auth(),r("CONFIRM.FIX_IDENTITY",{uid:e.formData.uid})]).then((function(e){return c.alert.confirm(e[1])})).then((function(t){if(t)return c.loading.show(),e.formData.blockUid=null,e.formData.sigDate=null,T.self(e.formData.uid)})).then(e.doMembershipIn).catch((function(e){"CANCELLED"!==e&&(c.loading.hide(),c.alert.error(e))}))},e.fixMembership=function(){if(e.formData.uid)return T.isMember()?c.alert.info("INFO.NOT_NEED_MEMBERSHIP"):(e.hideActionsPopover(),T.auth({silent:!0}).then((function(){c.alert.confirm("CONFIRM.FIX_MEMBERSHIP")})).then((function(t){if(t)return c.loading.show(),e.formData.blockUid=null,e.formData.sigDate=null,T.self(e.formData.uid,!1)})).then(e.doMembershipIn).catch((function(e){"CANCELLED"!==e&&(c.loading.hide(),c.alert.error(e))})))},e.doQuickFix=function(t){"renew"===t?e.renewMembership():"membership"===t?e.membershipIn(!0):"fixMembership"===t?e.fixMembership(!1):"fixIdentity"===t&&e.fixIdentity()};var h=e.logout;e.logout=function(t){if(e.isDefaultWallet)return h(t)},e.startWalletTour=function(){return e.hideActionsPopover(),f.wallet.tour()},e.showHelpTip=function(){return f.wallet.helptip()},e.showQRCode=function(t){e.qrcode?(e.qrcode.clear(),e.qrcode.makeCode(e.formData.pubkey),c.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100)):(e.qrcode=new QRCode(e.qrcodeId,{text:e.formData.pubkey,width:180,height:180,correctLevel:QRCode.CorrectLevel.L}),c.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100))},e.hideQRCode=function(){e.qrcode&&(e.qrcode.clear(),c.motion.toggleOff({selector:"#"+e.qrcodeId}))},e.showCertifications=function(){e.isDefaultWallet?o.go(c.screen.isSmall()?"app.wallet_cert":"app.wallet_cert_lg",{type:"received"}):o.go(c.screen.isSmall()?"app.wallet_cert_by_id":"app.wallet_cert_lg_by_id",{id:e.walletId,type:"received"})},e.showGivenCertifications=function(){e.isDefaultWallet?o.go(c.screen.isSmall()?"app.wallet_cert":"app.wallet_cert_lg",{type:"given"}):o.go(c.screen.isSmall()?"app.wallet_cert_by_id":"app.wallet_cert_lg_by_id",{id:e.walletId,type:"given"})},e.showTxHistory=function(){o.go(e.isDefaultWallet?"app.view_wallet_tx":"app.view_wallet_tx_by_id",{id:e.walletId})},e.showLicenseModal=function(){return u.show("templates/currency/modal_license.html","CurrencyLicenseModalCtrl")},e.showTransferModal=function(){if(e.formData.balance&&e.formData.balance>0||g.children.count())return d.showTransfer({wallet:T.id}).then((function(t){t&&(c.toast.show("INFO.TRANSFER_SENT"),e.$broadcast("$$rebind::balance"),e.motion.show({selector:".item-pending"}))}));c.alert.info("INFO.NOT_ENOUGH_CREDIT")},e.showSecurityModal=function(){return e.hideActionsPopover(),d.showAccountSecurity({wallet:T}).then((function(t){if(t)return"self"===t?e.self():"membershipIn"===t?e.membershipIn():void 0}))},e.showSelectIdentitiesModal=function(){return e.hideActionsPopover(),d.showSelectPubkeyIdentity({identities:[e.formData.requirements].concat(e.formData.requirements.alternatives)}).then((function(t){if(t&&t.uid)return e.loading=!0,T.setSelf(t.uid,t.blockUid).then((function(){e.loading=!1,e.updateView(),c.loading.hide()}))}))},e.showSelectWalletModal=function(){if(g.children.count())return d.showSelectWallet({parameters:{showDefault:!0,showBalance:!1,excludedWalletId:e.walletId}}).then((function(t){if(t&&(!T||t.id!==T.id))return e.removeListeners(),e.loading=!0,T=t,console.debug("[transfer] Using wallet {"+T.id+"}"),e.formData={},e.load()}))},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"templates/wallet/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showSharePopover=function(n){e.hideActionsPopover();var i=e.formData.name||e.formData.uid||e.formData.pubkey,a=(E.shareBaseUrl||t.rootPath)+o.href("app.wot_identity",{pubkey:e.formData.pubkey,uid:e.formData.uid});c.screen.isSmall()&&(n=angular.element(document.querySelector("#wallet-share-anchor"))||n),c.popover.share(n,{bindings:{url:a,titleKey:"WOT.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:i},postMessage:i}})},e.showSelectWalletPopover=function(t){return p.showSelectWallet(t,{parameters:{excludedWalletId:e.walletId}}).then((function(t){if(t&&t.id!==e.walletId)return t.isDefault()?o.go("app.view_wallet"):o.go("app.view_wallet_by_id",{id:t.id})}))},e.cleanLocationHref=function(e){e&&e.stateParams&&e.stateParams.refresh&&a((function(){var t=angular.copy(e.stateParams);delete t.refresh,delete t.id,l.search(t).replace()}),300)}}function T(e,t,n,i,a,o,r,s,l,c,u,d,p,m){var E;e.loading=!0,e.settings=u.data,e.listeners=[],e.enter=function(t,n){if(e.loading=e.loading||n.stateParams&&n.stateParams.refresh,e.enableSelectWallet=p.children.count()>0,e.loading)return(E=n.stateParams&&n.stateParams.id?p.children.get(n.stateParams.id):p)?(e.walletId=E.id,e.cleanLocationHref(n),e.load()):(o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome());e.addListeners(),i(e.updateView,300)},e.$on("$ionicView.enter",e.enter),e.leave=function(){e.removeListeners()},e.$on("$ionicView.leave",e.leave),e.load=function(){if(E){var t=E.isDataLoaded({minData:!0}),n={requirements:!t,minData:!t,sources:!0,tx:{enable:!0}};return E.login(n).then((function(t){e.formData=t,e.loading=!1,e.updateView(),e.showFab("fab-transfer"),E.isDefault()&&e.showHelpTip(),e.addListeners(),o.loading.hide()})).catch((function(t){"CANCELLED"===t&&e.showHome()}))}},e.cleanLocationHref=function(e){e&&e.stateParams&&e.stateParams.refresh&&i((function(){var t=angular.copy(e.stateParams);delete t.refresh,delete t.id,a.search(t).replace()}),300)},e.updateView=function(){e.formData&&!e.loading&&(e.$broadcast("$$rebind::balance"),e.$broadcast("$$rebind::rebind"),e.motion.show({selector:".view-wallet-tx .item",ink:!1}))},e.downloadHistoryFile=function(t){(t=t||{}).fromTime=t.fromTime||-1;var n=e.formData.pubkey;m.downloadHistoryFile(n,t)},e.doUpdate=function(t){console.debug("[wallet] TX history reloading...");var n={sources:!0,tx:{enable:!0,fromTime:e.formData&&e.formData.tx&&e.formData.tx.fromTime||void 0},api:!1};return(t?E.refreshData(n):o.loading.show().then((function(){return E.refreshData(n)})).then(o.loading.hide)).then(e.updateView).catch(o.onError("ERROR.REFRESH_WALLET_DATA"))},e.addListeners=function(){e.listeners=[E.api.data.on.balanceChanged(e,e.updateView),e.$watch("settings.useRelative",e.updateView,!0),e.$watch("settings.showUDHistory",(function(t,n){e.formData&&!e.loading&&t!==n&&e.doUpdate()}),!0)],e.settings.walletHistoryAutoRefresh&&e.listeners.push(d.api.data.on.newBlock(e,(function(t){e.loading||(console.debug("[wallet] Received new block. Will reload history."),i((function(){e.doUpdate(!0)}),500))})))},e.removeListeners=function(){_.forEach(e.listeners,(function(e){e()})),e.listeners=[]},e.showTransferModal=function(){if(e.formData.balance&&e.formData.balance>0||p.children.count())return r.showTransfer({wallet:E.id}).then((function(t){t&&(o.toast.show("INFO.TRANSFER_SENT"),e.$broadcast("$$rebind::balance"),e.motion.show({selector:".item-pending"}))}));o.alert.info("INFO.NOT_ENOUGH_CREDIT")},e.showHelpTip=function(e,t){},e.showTxErrors=function(t){return E.isDefault()?e.goState("app.view_wallet_tx_errors"):e.goState("app.view_wallet_tx_errors_by_id",{id:E.id})},e.showMoreTx=function(t){return t=t||e.formData.tx.fromTime-u.data.walletHistoryTimeSecond||c.date.now()-2*u.data.walletHistoryTimeSecond,o.loading.show(),E.refreshData({tx:{enable:!0,fromTime:t}}).then((function(){e.updateView(),o.loading.hide()})).catch((function(n){n.ucode==l.errorCodes.HTTP_LIMITATION?i((function(){return e.showMoreTx(t)}),2e3):o.onError("ERROR.REFRESH_WALLET_DATA")(n)}))},e.showSelectWalletModal=function(){if(p.children.count())return r.showSelectWallet({parameters:{showDefault:!0,showBalance:!1,excludedWalletId:e.walletId}}).then((function(t){if(t&&(!E||t.id!==E.id))return e.removeListeners(),e.loading=!0,E=t,console.debug("[transfer] Using wallet {"+E.id+"}"),e.formData={},e.load()}))},e.toUnlockUIArray=function(t,n,i){return n=n||0,!t.children||"AND"!=t.type&&"OR"!=t.type?{style:{"padding-left":n+"px"},operator:i,type:t.type,value:t.value}:t.children.reduce((function(i,a,o){return a.children&&o>0?(i=i.concat({style:{"padding-left":n+"px","padding-top":"10px","padding-bottom":"10px"},operator:t.type})).concat(e.toUnlockUIArray(a,n+10)):i.concat(e.toUnlockUIArray(a,n+10,o&&t.type))}),[])},e.showLockedOutputsPopover=function(t,n){t.lockedOutputs&&(e.popoverData=e.popoverData||{},e.popoverData.lockedOuputs=t.lockedOutputs.reduce((function(t,n){return t.concat({amount:n.amount,unlockFunctions:n.unlockFunctions,unlockConditions:e.toUnlockUIArray(n.unlockTree)})}),[]),o.popover.show(n,{templateUrl:"templates/wallet/tx_locked_outputs_popover.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}}))},e.hideLockedOutputsPopover=function(){e.lockedOutputsPopover&&(e.lockedOutputsPopover.hide(),e.popoverData&&delete e.popoverData.unlockConditions,e.lockedOutputsPopover=null)},e.showSelectWalletPopover=function(t){return s.showSelectWallet(t,{scope:e}).then((function(t){if(t&&t.id!==E.id)return t.isDefault()?e.goState("app.view_wallet_tx"):e.goState("app.view_wallet_tx_by_id",{id:t.id})}))},e.goState=function(t,i){return e.hideLockedOutputsPopover(),n.go(t,i)}}function h(e,t,n,i){var a;e.settings=n.data,e.loading=!0,e.formData={},e.$on("$ionicView.enter",(function(n,o){return(a=o.stateParams&&o.stateParams.id?i.children.get(o.stateParams.id):i)?e.load():(t.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())})),e.load=function(){if(a)return a.login().then((function(n){e.formData=n,e.loading=!1,e.doMotion(),t.loading.hide()}))},e.doUpdate=function(n){return e.loading=!0,(n?a.refreshData():t.loading.show().then(i.refreshData).then(t.loading.hide)).then((function(){e.doMotion(),e.loading=!1})).catch((function(n){t.onError("ERROR.REFRESH_WALLET_DATA")(n),e.loading=!1}))},e.filterReceivedTx=function(e){return e.amount&&e.amount>0},e.filterSentTx=function(e){return e.amount&&e.amount<0},e.hasReceivedTx=function(){return e.formData.tx&&_(e.formData.tx.errors||[]).find(e.filterReceivedTx)&&!0},e.hasSentTx=function(){return e.formData.tx&&_(e.formData.tx.errors||[]).find(e.filterSentTx)&&!0}}function v(e,t,n,i,a){var o=a&&a.wallet||n;e.slides={slider:null,options:{loop:!1,effect:"slide",speed:500}},e.isLastSlide=!1,e.smallscreen=t.screen.isSmall(),e.recover={},e.isValidFile=!1,e.login=o.isLogin(),e.hasSelf=o.hasSelf(),e.needSelf=e.login&&o.data.requirements.needSelf,e.canRevoke=e.login&&e.hasSelf&&!o.data.requirements.revoked,e.needMembership=e.login&&o.data.requirements.needMembership,e.option=e.login?"saveID":"recoverID",e.formData={addQuestion:"",level:"4",questions:[]};for(var r=[],s=1;s<20;s++)r.push("ACCOUNT.SECURITY.QUESTION_"+s.toString());i(r).then((function(t){_.each(t,(function(t){e.formData.questions.push({value:t,checked:!1})}))})),e.slidePrev=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slidePrev(),e.slides.slider.lockSwipes(),e.isLastSlide=!1},e.slideNext=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slideNext(),e.slides.slider.lockSwipes(),e.isLastSlide=3===e.slides.slider.activeIndex&&("saveID"==e.option||"recoverID"==e.option)||2===e.slides.slider.activeIndex&&"revocation"==e.option},e.doNext=function(n){if(!n)switch(e.slides.slider.activeIndex){case 1:switch(e.option){case"saveID":n="questionsForm";break;case"recoverID":e.isValidFile?(e.slideNext(),e.hasContent=!1,e.fileData=""):t.alert.error("ERROR.NOT_VALID_SAVE_ID_FILE","ERROR.LOAD_FILE_FAILED")}break;case 2:switch(e.option){case"recoverID":n="recoverForm";break;case"saveID":n="answersForm"}}if(n){if(e[n].$submitted=!0,!e[n].$valid)return;switch(n){case"recoverForm":e.recoverId();break;case"answersForm":e.downloadSaveIDFile();break;default:e.slideNext()}}},e.selectOption=function(t){e.option=t,e.slideNext()},e.restore=function(){1===e.slides.slider.activeIndex&&"saveID"===e.option?(e.formData={addQuestion:"",level:"4",questions:[]},i(r).then((function(t){_.each(t,(function(t){e.formData.questions.push({value:t,checked:!1})}))}))):2===e.slides.slider.activeIndex&&"saveID"===e.option?_.each(e.formData.questions,(function(e){e.answer=void 0})):1===e.slides.slider.activeIndex&&"recoverID"===e.option?(e.hasContent=!1,e.recover={},e.fileData="",e.isValidFile=!1):2===e.slides.slider.activeIndex&&"recoverID"===e.option?_.each(e.recover.questions,(function(e){e.answer=void 0})):2===e.slides.slider.activeIndex&&"revocation"===e.option&&(e.isValidFile=!1,e.hasContent=!1,e.revocation=void 0)},e.recoverContent=function(t){if(e.hasContent=angular.isDefined(t)&&""!==t,e.fileData=t.fileData?t.fileData:"",e.isValidFile=""!==e.fileData&&"text/plain"==e.fileData.type,e.isValidFile&&"recoverID"===e.option){e.content=t.fileContent.split("\n");var n=_.indexOf(e.content,"Questions: "),i=-1;_.each(e.content,(function(t,n){/^Issuer:/.test(t)?i=n:/^Crypted-Nonce:/.test(t)?e.recover.cypherNonce=t.split(" ")[1]:/^Crypted-Pubkey:/.test(t)?e.recover.cypherPubkey=t.split(" ")[1]:/^Crypted-Salt:/.test(t)?e.recover.cypherSalt=t.split(" ")[1]:/^Crypted-Pwd:/.test(t)&&(e.recover.cypherPwd=t.split(" ")[1])})),e.recover.questions=[];for(var a=n+1;a<i;a++)e.recover.questions.push({value:e.content[a]})}else e.isValidFile&&"revocation"===e.option&&(e.revocation=t.fileContent)},e.recoverId=function(){if(e.recoverForm.$valid)return e.recover.answer="",_.each(e.recover.questions,(function(t){e.recover.answer+=t.answer})),o.recoverId(e.recover).then((function(n){angular.isDefined(n)?(e.recover=n,e.slideNext()):t.alert.error("ERROR.RECOVER_ID_FAILED")}))},e.addQuestion=function(){""!==e.formData.addQuestion&&(e.formData.questions.push({value:e.formData.addQuestion,checked:!0}),e.formData.addQuestion="")},e.downloadSaveIDFile=function(){var n;return o.auth({forceAuth:!0,expectedPubkey:e.pubkey,silent:!0,success:function(e){n=e}}).catch((function(e){e&&"CANCELLED"===e||t.alert.error("ERROR.SALT_OR_PASSWORD_NOT_CONFIRMED","ERROR.LOGIN_FAILED")})).then((function(t){if(t){var i={file:_.filter(e.formData.questions,(function(e){return e.checked}))},a={salt:n.username,pwd:n.password,questions:"",answer:""};return _.each(i.file,(function(e){a.questions+=e.value+"\n",a.answer+=e.answer})),o.getCryptedId(a).then((function(t){o.downloadSaveId(t),e.closeModal()}))}}))},e.isRequired=function(){return _.filter(e.formData.questions,(function(e){return e.checked})).length<e.formData.level},e.revokeWithFile=function(){e.isValidFile?e.revokeIdentity():t.alert.error("ERROR.NOT_VALID_REVOCATION_FILE","ERROR.LOAD_FILE_FAILED")},e.downloadRevokeFile=function(){return o.auth({forceAuth:!0}).then((function(){return o.downloadRevocation()})).then((function(){t.loading.hide()})).catch((function(e){e&&"CANCELLED"===e||t.onError("ERROR.DOWNLOAD_REVOCATION_FAILED")(e)}))},e.revokeWalletIdentity=function(){return e.hasSelf?o.auth({forceAuth:!0}).then((function(n){if(t.loading.hide(),n)return e.revokeIdentity()})).catch((function(e){"CANCELLED"!==e&&t.onError("ERROR.REVOCATION_FAILED")(e)})):t.alert.error("ERROR.ONLY_SELF_CAN_EXECUTE_THIS_ACTION")},e.revokeIdentity=function(n){return n?t.loading.show().then((function(){return e.revocation?o.revokeWithFile(e.revocation):o.revoke()})).then((function(){return t.toast.show("INFO.REVOCATION_SENT"),e.closeModal(),t.loading.hide()})).catch(t.onError("ERROR.REVOCATION_FAILED")):t.alert.confirm("CONFIRM.REVOKE_IDENTITY","CONFIRM.POPUP_WARNING_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"}).then((function(e){if(e)return t.alert.confirm("CONFIRM.REVOKE_IDENTITY_2","CONFIRM.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"})})).then((function(t){t&&e.revokeIdentity(!0,!0)}))},e.self=function(){return e.closeModal("self")},e.membershipIn=function(){return e.closeModal("membershipIn")},e.downloadKeyFile=function(n){return o.auth({forceAuth:!0}).then((function(){return o.downloadKeyFile(n)})).then((function(){return t.loading.hide(),e.closeModal()})).catch((function(e){e&&"CANCELLED"===e?t.loading.hide():t.onError("ERROR.DOWNLOAD_KEYFILE_FAILED")(e)}))}}function I(e,t,n,i,a,o,r,s){e.loading=!0,e.wallets=null,e.formData={useRelative:o.data.useRelative,showDefault:!0,showBalance:!1,balance:void 0,updatingWalletId:void 0,stopped:!1,minData:!0},e.motion=null,e.setParameters=function(t){t=t||{},e.formData.useRelative=angular.isDefined(t.useRelative)?t.useRelative:e.formData.useRelative,e.formData.showBalance=angular.isDefined(t.showBalance)?t.showBalance:e.formData.showBalance,e.formData.minData=angular.isDefined(t.minData)?t.minData:e.formData.minData,e.formData.excludedWalletId=t.excludedWalletId,e.formData.showDefault=(angular.isDefined(t.showDefault)?t.showDefault:e.formData.showDefault)&&"default"!==e.formData.excludedWalletId},e.load=function(n){n=n||{},e.loading=!1!==n.silent,e.formData.balance=void 0,e.formData.updatingWalletId=void 0,e.formData.stopped=!1;var o=[];o.push(r.name().then((function(t){return e.currency=t,a.ready()}))),e.defaultWallet=e.formData.showDefault?s:void 0,e.wallets||o.push(s.children.all().then((function(t){e.wallets=t,i.loading.hide()})));var l={silent:!0,minData:e.formData.minData,sources:e.formData.showBalance,tx:{enable:!1},api:!0},c=!1,u=0,d=Date.now(),p=0;return(o.length?t.all(o):t.when()).then((function(){var i=e.formData.showDefault?[s].concat(e.wallets):e.wallets;if(i.length)return console.debug("[wallets] Loading {0} wallets...".format(i.length)),i.reduce((function(t,i){return!n.refresh&&i.isDataLoaded(l)?(console.debug("[wallets] Wallet #{0} already loaded. Skipping".format(i.id)),t.then((function(){p+=i.data.balance,e.updateWalletView(i.id)}))):(u++,t.then((function(){if(!e.formData.stopped){var t;if(e.formData.updatingWalletId=i.id,n.refresh&&i.data.loaded){var a=angular.merge({requirements:!i.data.requirements.loaded||i.data.requirements.isMember||i.data.requirements.wasMember||i.data.requirements.pendingMembership},l);t=i.refreshData(a)}else t=i.loadData(l);return t.then((function(t){p+=t.balance,e.updateWalletView(i.id)})).catch((function(e){console.error("[wallets] Error while loading data of wallet #{0}".format(i.id),e),c=!0})),t}})))}),t.when())})).then((function(){if(c)return i.alert.error("ERROR.LOAD_WALLET_LIST_FAILED").then((function(){e.resetData(),e.cancel()}));e.formData.stopped||(u&&console.debug("[wallets] Loaded data of {0} wallet(s) in {1}ms".format(u,Date.now()-d)),e.formData.balance=p,e.formData.updatingWalletId=void 0,e.loading=!1,i.loading.hide(),e.updateView())})).catch((function(t){if(e.resetData(),t&&"CANCELLED"===t)throw e.cancel(),t;return i.onError("ERROR.LOAD_WALLET_LIST_FAILED")(t)}))},e.filterFn=function(e){return function(t){return!e||t.id!==e.excludedWalletId}},e.resetData=function(){console.debug("[wallets] Cleaning wallet list"),e.wallets=null,e.loading=!0,e.entered=!1,e.formData.balance=void 0,e.formData.updatingWalletId=void 0},e.updateView=function(t){if(e.wallets&&e.wallets.length){var n=t&&" #wallet-"+t||"";e.motion?e.motion.show({selector:".list .item.item-wallet"+n,ink:!0}):i.ink({selector:".list .item.item-wallet"+n})}},e.updateWalletView=function(t){e.motion?e.motion.show({selector:".list #wallet-"+t,ink:!0}):i.ink({selector:".list #wallet-"+t})},e.doUpdate=function(i){return e.loading||!e.wallets||!e.wallets.length||e.formData.updatingWalletId?t.when():(e.selectPrevented=!0,n((function(){e.selectPrevented=!1}),1e3),e.load({silent:i,refresh:!0}).then((function(){e.loading=!1,e.selectPrevented=!1,i&&e.$broadcast("$$rebind::rebind"),e.updateView()})))},e.addNewWallet=function(n){return n?o.data.useLocalStorageEncryption&&!s.isAuth()?s.auth({minData:!0}).then((function(){return e.addNewWallet(n)})).catch((function(e){if("CANCELLED"===e)return i.loading.hide();i.onError("ERROR.ADD_SECONDARY_WALLET_FAILED")(e)})):s.api.data.raisePromise.load(n.data).catch(console.error).then((function(){e.addListenersOnWallet(n),s.children.add(n)})):t.reject("Missing 'wallet' argument")},e.showNewWalletModal=function(){var t=s.children.instance();return t.login({showNewAccountLink:!1,title:"ACCOUNT.WALLET_LIST.BTN_NEW",okText:"COMMON.BTN_ADD",minData:!0,sources:!0,api:!1,success:i.loading.show,method:"PUBKEY"}).then((function(n){if(n&&n.pubkey)return s.isUserPubkey(n.pubkey)?(i.loading.hide(),void i.alert.error("ERROR.COULD_NOT_ADD_MAIN_WALLET")):s.children.hasPubkey(n.pubkey)?(i.loading.hide(),void i.alert.error("ERROR.COULD_NOT_ADD_EXISTING_WALLET")):(console.debug("[wallet] Adding secondary wallet {{0}}".format(n.pubkey.substring(0,8))),e.addNewWallet(t).then((function(){i.loading.hide(),e.updateView()})));i.loading.hide(100)})).catch((function(e){"CANCELLED"===e&&i.loading.hide()}))},e.addListenersOnWallet=function(e){},e.cancel=function(){console.warn("cancel() must be implement by subclass")},e.select=function(e,t){console.warn("select() must be implement by subclass")}}function N(e,t,n){angular.extend(this,t("WalletListAbstractCtrl",{$scope:e})),e.$on("modal.shown",(function(){e.setParameters(n),e.load()})),e.cancel=function(){e.closeModal()},e.select=function(t,n){t.isDefaultPrevented()||!n||e.selectPrevented||e.closeModal(n)},n&&e.setParameters(n)}function O(e,t,n,i,a,o,r,s,l,c,u,d,p,m){e.settings=p.data,e.listeners=[],angular.extend(this,t("WalletListAbstractCtrl",{$scope:e,parameters:{}})),e.formData.name=void 0,e.motion=c.motion.default,e.entered=!1,e.enter=function(t,n){if(!e.entered)return e.entered=!0,e.setParameters({showDefault:!0,showBalance:!0,minData:!1}),e.load().then((function(){c.loading.hide(),e.wallets&&(e.addListeners(),e.showFab("fab-add-wallet"))}));e.addListeners(),e.formData.stopped&&(e.loading=!1,e.formData.stopped=!1,e.formData.updatingWalletId=void 0,e.updateView())},e.$on("$ionicView.enter",e.enter),e.leave=function(){e.formData.stopped=!0,e.formData.updatingWalletId=void 0,e.loading=!1,e.removeListeners()},e.$on("$ionicView.leave",e.leave),e.cancel=function(){e.showHome()},e.select=function(t,i){t.isDefaultPrevented()||!i||e.selectPrevented||(i.isDefault()?n.go("app.view_wallet"):n.go("app.view_wallet_by_id",{id:i.id}),t.preventDefault())},e.editWallet=function(t,n){return t.preventDefault(),e.showEditPopup(n).then((function(t){if(t)return(p.data.useLocalStorageEncryption?m.auth({minData:!0}):a.when()).then((function(){n.data.localName=t,m.storeData(),c.loading.hide(),e.updateView()})).catch((function(e){if("CANCELLED"===e)return c.loading.hide();c.onError("ERROR.SAVE_WALLET_LIST_FAILED")(e)}))}))},e.downloadAsFile=function(){if(e.wallets)return m.children.downloadFile()},e.selectAndRemoveWallet=function(){return e.hideActionsPopover(),u.showSelectWallet({wallets:e.wallets,showDefault:!1}).then((function(t){if(t&&t.id)return(p.data.useLocalStorageEncryption?m.auth({minData:!0}):a.when()).then((function(){m.children.remove(t.id),c.loading.hide(),e.updateView()})).catch((function(e){if("CANCELLED"===e)return c.loading.hide();c.onError("ERROR.ADD_SECONDARY_WALLET_FAILED")(e)}))}))},e.showImportFileModal=function(){return e.hideActionsPopover(),l.show("templates/wallet/list/modal_import_file.html","WalletListImportModalCtrl").then((function(t){if(t&&t.length)return c.loading.show(),(p.data.useLocalStorageEncryption?m.auth({minData:!0}):a.when()).then((function(){return t.reduce((function(t,n){return t.then((function(){return function(t){if(!t||!t.pubkey)return a.reject("Invalid authentication data");console.debug("[wallet] Adding secondary wallet {"+t.pubkey.substring(0,8)+"}");var n=m.children.instance();return n.login({authData:t,minData:!0,sources:!0,api:!1,success:c.loading.show}).then((function(i){return i.localName=t.localName,e.addNewWallet(n)}))}(n)}))}),a.when())})).then((function(){c.loading.hide(),e.updateView()})).catch((function(e){if("CANCELLED"===e)return c.loading.hide();c.onError("ERROR.ADD_SECONDARY_WALLET_FAILED")(e)}))}))},e.setEditForm=function(t){e.editForm=t},e.showEditPopup=function(t){return a((function(n,i){o(["ACCOUNT.WALLET_LIST.EDIT_POPOVER.TITLE","ACCOUNT.WALLET_LIST.EDIT_POPOVER.HELP","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then((function(i){e.formData.name=t.data.localName||t.data.name||t.data.uid||t.data.pubkey&&t.data.pubkey.substring(0,8)||"",s.show({templateUrl:"templates/wallet/list/popup_edit_name.html",title:i["ACCOUNT.WALLET_LIST.EDIT_POPOVER.TITLE"],subTitle:i["ACCOUNT.WALLET_LIST.EDIT_POPOVER.HELP"],scope:e,buttons:[{text:i["COMMON.BTN_CANCEL"]},{text:i["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.editForm.$submitted=!0,e.editForm.$valid&&e.formData.name)return e.formData.name;t.preventDefault()}}]}).then((function(t){if(!t)return delete e.formData.name,void c.loading.hide();n(t)}))}))}))},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"templates/wallet/list/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.onWalletLogout=function(){e.resetData(),e.removeListeners()},e.addListeners=function(){e.removeListeners(),e.listeners=[m.api.data.on.logout(e,e.onWalletLogout)],p.data.walletHistoryAutoRefresh&&e.listeners.push(d.api.data.on.newBlock(e,(function(t){e.loading||(console.debug("[wallet-list] Received new block. Will reload list."),i((function(){e.doUpdate(!0)}),300))}))),_.forEach(e.wallets||[],e.addListenersOnWallet)},e.addListenersOnWallet=function(t){t&&(e.listeners.push(t.api.data.on.unauth(e,e.updateView)),e.listeners.push(t.api.data.on.auth(e,(function(t,n){return i(e.updateView),n?n.resolve():a.when()}))))},e.removeListeners=function(){_.forEach(e.listeners,(function(e){e()})),e.listeners=[]};var E=e.updateView;e.updateView=function(){E(),e.$broadcast("$$rebind::rebind")};var b=e.updateWalletView;e.updateWalletView=function(t){b(t),e.$broadcast("$$rebind::rebind")},e.$watch("settings.useRelative",(function(t,n){e.formData&&!e.loading&&t!==n&&(e.formData.useRelative=p.data.useRelative,e.updateView())}),!0)}function R(e,t,n,i){angular.extend(this,t("WalletListAbstractCtrl",{$scope:e})),e.motion=null,e.$on("popover.shown",(function(){e.loading&&(e.setParameters(i),e.load())})),e.updateView=function(){e.wallets&&e.wallets.length&&(n.ink({selector:".popover-wallets .list .item"}),e.$broadcast("$$rebind::rebind"))},e.select=function(t,n){t.isDefaultPrevented()||!n||e.selectPrevented||e.closePopover(n)}}function A(e,t,n,i){e.hasContent=!1,e.content=null,e.fileData="",e.isValidFile=!1,e.validatingFile=!1,e.importFromFile=function(a){e.validatingFile=!0,e.hasContent=angular.isDefined(a)&&""!==a,e.fileData=a.fileData?a.fileData:"";var o=""!==e.fileData&&("text/csv"==e.fileData.type||"text/plain"==e.fileData.type||"application/vnd.ms-excel");if(!o)return console.error("[wallet] Import failed. Invalid file type: "+e.fileData.type),e.isValidFile=!1,void(e.validatingFile=!1);console.debug("[wallet] Parsing file to import...");var r=a.fileContent.split("\n");e.content=r.reduce((function(e,t){if(!t||!t.trim().length)return e;var a=t.split("\t",3)||void 0;if(a&&3!=a.length)return console.debug("[wallet] Import: skip invalid row: "+t),o=!1,e;var r={pubkey:a[0],uid:a[1],localName:a[2]};return n.regexp.PUBKEY.test(r.pubkey)?i.isUserPubkey(r.pubkey)?(console.debug("[wallet] Pubkey equals to main wallet. Skip this row: ",t),e):i.children.hasPubkey(r.pubkey)?(console.debug("[wallet] Pubkey already in wallet list. Skip this row",t),e):e.concat(r):(console.debug("[wallet] Invalid pubkey, found in this row: ",t),o=!1,e)}),[]),e.isValidFile=o,t((function(){e.validatingFile=!1}),250)},e.removeFile=function(){e.hasContent=!1,e.content=null,e.fileData="",e.isValidFile=!1,e.validatingFile=!1}}function S(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){e.search={text:"",loading:!0,type:null,results:[]},e.entered=!1,e.wotSearchTextId="wotSearchText",e.enableFilter=!0,e.enableWallets=!1,e.allowMultiple=!1,e.selection=[],e.showResultLabel=!0,e.parameters={},e.enter=function(t,n){if(e.entered)e.updateLocationHref(),e.search.results&&e.search.results.length&&e.motion.show({selector:".lookupForm .list .item",ink:!0});else{var a=angular.merge({},e.parameters,n&&n.stateParams);a&&a.q?(e.search.text=a.q,i((function(){e.doSearch()}),100)):a&&a.hash?(e.search.text="#"+a.hash,i((function(){e.doSearch()}),100)):i((function(){u.data.initPhase&&!a.type?e.doGetPending(0,void 0,!0):"newcomers"==a.type||!c.initPhase&&!a.type?e.doGetNewcomers(0,void 0,!0):"pending"==a.type?e.doGetPending(0,void 0,!0):"wallets"==a.type&&e.doGetWallets(0,void 0,!0)}),100),e.entered=!0,i(l.ink,100),e.showHelpTip()}},e.$on("$ionicView.enter",e.enter),e.resetWotSearch=function(){e.search={text:null,loading:!1,type:"newcomers",results:[]}},e.updateLocationHref=function(){},e.doSearchText=function(){e.doSearch(),e.updateLocationHref(),p.keyboard.close()},e.doSearch=function(){var t=e.search.text.trim();return l.screen.isSmall()&&t.length<3||!t.length?(e.search.results=void 0,e.search.type="none",e.search.total=void 0,n.when()):(e.search.loading=!0,e.search.type="text",b.search(t).then((function(n){if("text"==e.search.type&&e.search.text.trim()===t){if(!(n&&n.length||!m.regexp.PUBKEY.test(t)&&!m.regexp.PUBKEY_WITH_CHECKSUM.test(t)))return m.uri.parse(t).then((function(t){e.doDisplayResult([t])}));e.doDisplayResult(n);var i=_.countBy(n,(function(e){return e.divider?"divider":"results"}));e.search.total=i&&i.results||0}})).catch(l.onError("ERROR.WOT_LOOKUP_FAILED")))},e.doGetNewcomers=function(t,n,i){return t=t||0,(n=n||10)<10&&(n=10),e.hideActionsPopover(),e.search.loading=0===t,e.search.type="newcomers",t||i||e.updateLocationHref(),b.newcomers(t,n).then((function(i){return"newcomers"===e.search.type&&(e.doDisplayResult(i&&i.hits,t,n,i&&i.total),!0)})).catch((function(n){e.search.loading=!1,e.search.results=t>0?e.search.results:[],e.search.hasMore=!1,e.search.total=void 0,l.onError("ERROR.LOAD_NEWCOMERS_FAILED")(n)}))},e.doGetPending=function(t,n,i){t=t||0,(n=n||10)<10&&(n=10),e.hideActionsPopover(),e.search.loading=0===t,e.search.type="pending";var a=u.data.initPhase?b.all:b.pending;return t||i||e.updateLocationHref(),a(t,n).then((function(i){return"pending"==e.search.type&&(e.doDisplayResult(i&&i.hits,t,n,i&&i.total),e.search.hasMore=!u.data.initPhase&&e.search.hasMore,!0)})).catch((function(n){e.search.loading=!1,e.search.results=t>0?e.search.results:[],e.search.total=void 0,e.search.hasMore=!1,l.onError("ERROR.LOAD_PENDING_FAILED")(n)}))},e.doGetWallets=function(t,n,i){return t=t||0,(n=n||10)<10&&(n=10),e.hideActionsPopover(),e.search.loading=0===t,e.search.type="wallets",t||i||e.updateLocationHref(),E.children.all().then((function(i){if(!i||"wallets"!=e.search.type)return!1;var a=[E].concat(i).reduce((function(e,t,n){var i={id:n,pubkey:t.data.pubkey,uid:t.data.uid,name:t.data.localName||t.data.name,avatar:t.data.avatar};return e.concat(i)}),[]);return e.doDisplayResult(a,t,n,a.length),e.search.hasMore=!1,!0}))},e.showMore=function(){var t=e.search.results?e.search.results.length:0;return e.search.loadingMore=!0,("newcomers"==e.search.type?e.doGetNewcomers:e.doGetPending)(t).then((function(t){t&&(e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete"))})).catch((function(t){console.error(t),e.search.loadingMore=!1,e.search.hasMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.select=function(e){var n=e.state;!n&&e.pubkey&&(n=E.isUserPubkey(e.pubkey)?"app.view_wallet":"app.wot_identity"),n&&(s.nextViewOptions({historyRoot:!1,disableAnimate:!1,expire:300}),t.go(n,e.stateParams||e))},e.next=function(){console.warn("Selected identities (should be override):",e.selection)},e.toggleCheck=function(t,n){var i=e.search.results[t];i.checked?e.addToSelection(i):e.removeSelection(i,n)},e.toggleSelect=function(e){e.selected=!e.selected},e.addToSelection=function(t){var n=angular.copy(t);n.name&&(n.name=n.name.replace("<em>","").replace("</em>","")),e.selection.push(n)},e.removeSelection=function(t,n){var i=_.findWhere(e.selection,{id:t.id});if(i&&e.selection.splice(e.selection.indexOf(i),1),!e.search.loading){var a=_.findWhere(e.search.results,{id:t.id});a&&a.checked&&(a.checked=!1)}},e.scanQrCode=function(){p.barcode.enable&&p.barcode.scan().then((function(t){t&&m.uri.parse(t).then((function(n){n.pubkey?e.search.text=n.pubkey:t.uid?e.search.text=n.uid:e.search.text=t,e.doSearch()}))})).catch(l.onError("ERROR.SCAN_FAILED"))},e.showHelpTip=function(t){if(e.isLogin()&&!((t=angular.isDefined(t)?t:d.data.helptip.wotLookup)<0)){0===t&&(t=1);var n=e.createHelptipScope();if(n)return n.startWotLookupTour(t,!1).then((function(e){n.$destroy(),d.data.helptip.wotLookup=e,d.store()}))}},e.doDisplayResult=function(t,n,i,a){t=t||[],e.allowMultiple&&t.length&&e.selection.length&&_.forEach(e.selection,(function(e){var n=_.findWhere(t,{id:e.id});n&&(n.checked=!0)})),e.search.results=n?e.search.results.concat(t):t||[],e.search.total=angular.isDefined(a)?a:void 0,e.search.loading=!1,e.search.hasMore=e.search.results.length>=n+i,e.smallscreen=l.screen.isSmall(),e.search.results.length&&t.length>0&&e.motion&&e.motion.show({selector:".lookupForm .list .item",ink:!0})},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"templates/wot/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function C(e,t,n,i,a){angular.extend(this,t("WotLookupCtrl",{$scope:e})),a=a||{},e.search.loading=!1,e.enableFilter=!!angular.isDefined(a.enableFilter)&&a.enableFilter,e.enableWallets=!!angular.isDefined(a.enableWallets)&&i.isLogin()&&i.children.count()&&a.enableWallets,e.allowMultiple=!!angular.isDefined(a.allowMultiple)&&a.allowMultiple,e.parameters=a,e.showResultLabel=!1,e.wotSearchTextId="wotSearchTextModal",e.allowMultiple&&a.selection&&(e.selection=a.selection);var o=e.enter;e.enter=function(t){e.parameters&&e.parameters.q&&(e.search.text=e.parameters.q,e.parameters.q.trim().length>2&&o(t))},e.$on("modal.shown",e.enter),e.cancel=function(){e.closeModal()},e.select=function(t){e.closeModal({pubkey:t.pubkey,uid:t.uid,name:t.name&&t.name.replace(/<\/?em>/gi,"")})},e.next=function(){e.closeModal(e.selection)},e.updateLocationHref=function(){},e.showHelpTip=function(){}}function D(e,t,n,i,a,o,r,s,l,c,u,d,p){e.formData={hasSelf:!0},e.disableCertifyButton=!0,e.loading=!0,e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!r.screen.isSmall()||t.enableBack})),e.load=function(t,n,i){return d.load(t,n,i).then((function(n){if(!n)return r.onError("ERROR.IDENTITY_NOT_FOUND")().then(e.showHome);e.formData=n;var i=p.isLogin();e.revoked=n.requirements&&(n.requirements.revoked||n.requirements.pendingRevocation),e.canCertify=n.hasSelf&&!e.revoked&&(!i||!p.isUserPubkey(t)||p.children.count()>0),e.canSelectAndCertify=n.hasSelf&&(p.isUserPubkey(t)||p.children.hasPubkey(t));var a=i&&_.find((n.received_cert||[]).concat(n.received_cert_pending||[]),(function(e){return e.pubkey===p.data.pubkey&&e.valid&&e.expiresIn>c.data.timeWarningExpire}));e.alreadyCertified=!(!e.canCertify||!i||p.children.count()>0||!a),e.disableCertifyButton=e.alreadyCertified||e.revoked,e.loading=!1})).catch((function(t){e.loading=!1,r.onError("ERROR.LOAD_IDENTITY_FAILED")(t)}))},e.doUpdate=function(t){t||(e.loading=!0,r.loading.show());var n={cache:!1,blockUid:e.formData.blockUid||void 0};return e.load(e.formData.pubkey,e.formData.uid,n).then(r.loading.hide)},e.certify=function(){return(p.children.count()?s.showSelectWallet({displayBalance:!1}):o.when(p)).then((function(t){if(t)return t.auth({minData:!0}).then((function(n){if(r.loading.hide(),u.data.initPhase||n.isMember)if(u.data.initPhase||e.formData.hasSelf)if(e.formData.requirements.expired)r.alert.error("ERROR.IDENTITY_EXPIRED");else{var a=_.find(e.formData.received_cert,(function(e){return e.pubkey===t.data.pubkey&&e.valid&&e.expiresIn>c.data.timeWarningExpire}));a?i("ERROR.IDENTITY_ALREADY_CERTIFY",a).then((function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")})):(a=_.findWhere(e.formData.received_cert_pending,{pubkey:t.data.pubkey,valid:!0}))?i("ERROR.IDENTITY_ALREADY_CERTIFY_PENDING",a).then((function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")})):r.alert.confirm("CONFIRM.CERTIFY_RULES","CONFIRM.POPUP_SECURITY_WARNING_TITLE",{cssClass:"warning",okText:"WOT.BTN_YES_CERTIFY",okType:"button-assertive"}).then((function(n){n&&(r.loading.show(),t.certify(e.formData.uid,e.formData.pubkey,e.formData.blockUid||e.formData.requirements&&e.formData.requirements.meta&&e.formData.requirements.meta.timestamp,e.formData.requirements&&e.formData.requirements.meta&&e.formData.requirements.meta.sig,e.formData.isMember,e.formData.wasMember).then((function(n){r.loading.hide(),n&&(e.prepareNewCert(t,n),e.alreadyCertified=!0,r.toast.show("INFO.CERTIFICATION_DONE"),e.formData.received_cert_pending.unshift(n),e.formData.requirements.pendingCertificationCount++,e.doMotion())})).catch(r.onError("ERROR.SEND_CERTIFICATION_FAILED")))}))}else r.alert.error("ERROR.IDENTITY_TO_CERTIFY_HAS_NO_SELF");else r.alert.error(n.requirements.needSelf?"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY":"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF")})).catch((function(e){"CANCELLED"!==e&&r.onError("ERROR.LOGIN_FAILED")(e)}))}))},e.selectAndCertify=function(){return(p.children.count()?s.showSelectWallet({displayBalance:!1}):o.when(p)).then((function(t){return t.auth({minData:!0}).then((function(e){if(u.data.initPhase||e.isMember)return r.loading.hide(),s.showWotLookup();r.alert.error(e.requirements.needSelf||e.requirements.needMembership?"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY":"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF")})).then((function(e){if(e&&e.pubkey){if(e.uid){r.loading.show();var t={cache:!1,blockUid:e.blockUid};return d.load(e.pubkey,e.uid,t)}r.alert.error("ERROR.IDENTITY_TO_CERTIFY_HAS_NO_SELF")}})).then((function(n){if(n)if(r.loading.hide(),n&&n.hasSelf)if(n.requirements.expired)r.alert.error("ERROR.IDENTITY_EXPIRED");else{var a=_.findWhere(n.received_cert,{pubkey:t.data.pubkey,valid:!0});a?i("ERROR.IDENTITY_ALREADY_CERTIFY",a).then((function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")})):(a=_.findWhere(n.received_cert_pending,{pubkey:t.data.pubkey,valid:!0}))?i("ERROR.IDENTITY_ALREADY_CERTIFY_PENDING",a).then((function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")})):i("CONFIRM.CERTIFY_RULES_TITLE_UID",{uid:n.uid}).then((function(e){return r.alert.confirm("CONFIRM.CERTIFY_RULES",e)})).then((function(i){i&&(r.loading.show(),t.certify(n.uid,n.pubkey,n.blockUid||n.requirements&&n.requirements.meta&&n.requirements.meta.timestamp,n.requirements&&n.requirements.meta&&n.requirements.meta.sig,n.isMember,n.wasMember).then((function(t){if(r.loading.hide(),t)return d.extendAll([t],"pubkey").then((function(){r.toast.show("INFO.CERTIFICATION_DONE"),e.formData.given_cert_pending.unshift(t),e.doMotion()}))})).catch(r.onError("ERROR.SEND_CERTIFICATION_FAILED")))}))}else r.alert.error("ERROR.IDENTITY_TO_CERTIFY_HAS_NO_SELF")})).catch((function(e){"CANCELLED"!==e&&r.onError("ERROR.LOAD_IDENTITY_FAILED")(e)}))}))},e.prepareNewCert=function(e,t){t.uid=e.data.uid,t.pubkey=e.data.pubkey,t.isMember=e.data.isMember,t.avatar=e.data.avatar,t.name=e.data.name},e.removeActionParamInLocationHref=function(e){if(e&&e.stateParams&&e.stateParams.action){var t=angular.copy(e.stateParams);t.action=null,a.nextViewOptions({disableAnimate:!0,disableBack:!1,historyRoot:!1}),n.go(e.stateName,t,{reload:!1,inherit:!0,notify:!1})}},e.doAction=function(t,n){if("certify"==t)return e.certify();"transfer"==t&&e.showTransferModal(n)},e.showCertifications=function(){var t=e.formData.requirements&&e.formData.requirements.alternatives&&e.formData.blockUid||void 0;r.screen.isSmall()?n.go("app.wot_cert",{pubkey:e.formData.pubkey,uid:e.formData.uid,type:"received",block:t}):n.go("app.wot_cert_lg",{pubkey:e.formData.pubkey,uid:e.formData.uid,block:t})},e.showGivenCertifications=function(){var t=e.formData.requirements&&e.formData.requirements.alternatives&&e.formData.blockUid||void 0;r.screen.isSmall()?n.go("app.wot_cert",{pubkey:e.formData.pubkey,uid:e.formData.uid,type:"given",block:t}):n.go("app.wot_cert_lg",{pubkey:e.formData.pubkey,uid:e.formData.uid,block:t})},e.showSharePopover=function(i){var a=e.formData.name||e.formData.uid||e.formData.pubkey,o=(l.shareBaseUrl||t.rootPath)+n.href("app.wot_identity",{pubkey:e.formData.pubkey,uid:e.formData.uid});r.screen.isSmall()&&(i=angular.element(document.querySelector("#wot-share-anchor-"+e.formData.pubkey))||i),r.popover.share(i,{bindings:{url:o,titleKey:"WOT.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:a},postMessage:a}})}}function y(e,t,n,i,a,o,r,s){angular.extend(this,n("WotIdentityAbstractCtrl",{$scope:e})),e.motion=o.motion.fadeSlideInRight,e.qrcodeId="qrcode-wot-"+e.$id,e.options=e.options||{},e.options.like={kinds:["LIKE","ABUSE"],index:"user",type:"profile"},e.likeData={likes:{},abuses:{}},e.$on("$ionicView.enter",(function(t,n){var a=function(){e.doMotion(),n.stateParams&&n.stateParams.action&&(i((function(){e.doAction(n.stateParams.action.trim())}),100),e.removeActionParamInLocationHref(n),e.likeData.id=e.formData.pubkey),e.showQRCode()},o={cache:!0,blockUid:n.stateParams&&n.stateParams.block||void 0};if(n.stateParams&&n.stateParams.pubkey&&n.stateParams.pubkey.trim().length>0){if(e.loading)return e.load(n.stateParams.pubkey.trim(),n.stateParams.uid,o).then(a)}else if(n.stateParams&&n.stateParams.uid&&n.stateParams.uid.trim().length>0){if(e.loading)return e.load(null,n.stateParams.uid,o).then(a)}else e.showHome()})),e.doMotion=function(){e.motion.show({selector:".view-identity .list .item"}),e.showFab("fab-transfer"),(e.canCertify&&!e.alreadyCertified||t.tour)&&e.showFab("fab-certify-"+e.formData.uid),e.$broadcast("$csExtension.motion")},e.doQuickFix=function(t){if("showSelectIdentities"===t)return e.showSelectIdentities()},e.showSelectIdentities=function(){if(e.formData.requirements&&e.formData.requirements.alternatives)return r.showSelectPubkeyIdentity({identities:[e.formData.requirements].concat(e.formData.requirements.alternatives)}).then((function(e){if(e&&e.pubkey)return a.go("app.wot_identity",{pubkey:e.pubkey,uid:e.uid,block:e.meta&&e.meta.timestamp||e.blockUid})}))},e.showQRCode=function(t){e.qrcode?(e.qrcode.clear(),e.qrcode.makeCode(e.formData.pubkey),o.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100)):(e.qrcode=new QRCode(e.qrcodeId,{text:e.formData.pubkey,width:180,height:180,correctLevel:QRCode.CorrectLevel.L}),o.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100))},e.hideQRCode=function(){e.qrcode&&(e.qrcode.clear(),o.motion.toggleOff({selector:"#"+e.qrcodeId}))}}function P(e,t,n,i,a,o,r,s){e.formData={},e.loading=!0,e.motion=s.motion.fadeSlideInRight,e.$on("$ionicView.enter",(function(t,n){e.loading?(e.pubkey=n.stateParams.pubkey,e.uid=n.stateParams.uid,e.load()):e.updateView()})),e.load=function(t){return n.all([o.extend({pubkey:e.pubkey}),r.load(e.pubkey,t)]).then((function(t){e.formData=angular.merge(t[0],t[1]),e.loading=!1,e.updateView()}))},e.doUpdate=function(t){return console.debug("[wot] TX history reloading..."),e.formData={},(t?e.load():s.loading.show().then(e.load).then(s.loading.hide)).then(e.updateView).catch(s.onError("ERROR.IDENTITY_TX_FAILED"))},e.updateView=function(){e.$broadcast("$$rebind::balance"),e.$broadcast("$$rebind::rebind"),e.motion.show()},e.downloadHistoryFile=function(t){(t=t||{}).fromTime=t.fromTime||-1,r.downloadHistoryFile(e.pubkey,t)},e.showMoreTx=function(n){return n=n||e.formData.tx.fromTime-a.data.walletHistoryTimeSecond||moment().utc().unix()-2*a.data.walletHistoryTimeSecond,s.loading.show(),r.load(e.pubkey,n).then((function(t){angular.merge(e.formData,t),e.updateView(),s.loading.hide()})).catch((function(a){a.ucode==i.errorCodes.HTTP_LIMITATION?t((function(){return e.showMoreTx(n)}),2e3):s.onError("ERROR.IDENTITY_TX_FAILED")(a)}))}}function k(e,t,n,i,a,o){var r;angular.extend(this,n("WotIdentityAbstractCtrl",{$scope:e})),e.motions={receivedCertifications:angular.copy(o.motion.fadeSlideIn),givenCertifications:angular.copy(o.motion.fadeSlideInRight),avatar:angular.copy(o.motion.fadeIn)},e.motions.receivedCertifications.enable=!0,e.motions.givenCertifications.enable=!0,e.motions.avatar.enable=!0,e.$on("$ionicView.enter",(function(t,n){if(n.stateParams&&n.stateParams.type&&(e.motions.receivedCertifications.enable="given"!=n.stateParams.type,e.motions.givenCertifications.enable="given"==n.stateParams.type,e.motions.avatar.enable=!1),e.loading){var i={cache:!0,blockUid:n.stateParams&&n.stateParams.block||void 0};return n.stateParams&&n.stateParams.pubkey&&n.stateParams.pubkey.trim().length>0?e.load(n.stateParams.pubkey.trim(),n.stateParams.uid,i).then((function(){e.doMotion(),e.showHelpTip()})):(r=n.stateParams&&n.stateParams.id?a.children.get(n.stateParams.id):a)?r.isLogin()?e.load(r.data.pubkey,r.data.uid,i).then((function(){e.doMotion(),e.showHelpTip()})):e.showHome():(o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())}e.doMotion()})),e.$on("$ionicView.leave",(function(){e.loading=!0})),e.doUpdate=function(){var t={cache:!1,blockUid:e.formData.blockUid||void 0};return e.load(e.formData.pubkey,e.formData.uid,t).then((function(){e.doMotion(),e.showHelpTip()}))},e.doMotion=function(t){e.doMotionReceivedCertifications(0,t),e.motions.avatar.enable&&e.motions.avatar.show({selector:".col-avatar ."+e.motions.avatar.ionListClass}),e.doMotionGivenCertifications(e.motions.receivedCertifications.enable?100:10,t)},e.doMotionReceivedCertifications=function(n,i){e.motions.receivedCertifications.enable?(i||e.motions.receivedCertifications.show({selector:".list.certifications .item",timeout:n}),(e.canCertify&&!e.alreadyCertified||t.tour)&&e.showFab("fab-certify",n)):(e.canCertify||t.tour)&&e.hideFab("fab-certify",0)},e.doMotionGivenCertifications=function(n,i){e.motions.givenCertifications.enable?(i||e.motions.givenCertifications.show({selector:".list.given-certifications .item",timeout:n}),(e.canSelectAndCertify||t.tour)&&e.showFab("fab-select-certify")):(e.canSelectAndCertify||t.tour)&&e.hideFab("fab-select-certify",0)},e.showHelpTip=function(){if(e.isLogin()&&i.data.helptip.enable){var t=e.createHelptipScope();if(t){var n=a.isUserPubkey(e.formData.pubkey),o=n?i.data.helptip.walletCerts:i.data.helptip.wotCerts;if(!(o<0))return(n?t.startWalletCertTour(o,!1):t.startWotCertTour(o,!1)).then((function(e){t.$destroy(),n?i.data.helptip.walletCerts=e:i.data.helptip.wotCerts=e,i.store()}))}}}}function M(e,t,n,i){e.loading=!0,e.load=function(){return i&&i.identities?(e.identities=i.identities,e.pubkey=e.identities[0].pubkey,e.loading=!1,t.when()):(e.pubkey=i&&i.pubkey,pubkey?n.loadRequirements({pubkey,uid}).then((function(t){t&&t.requirements&&(e.identities=t.requirements,t.requirements.alternatives?e.identities=[t.requirements].concat(t.requirements.alternatives):e.identities=[t.requirements]),e.loading=!1})):t.reject("Missing parameters: [pubkey] or [identities]"))},e.$on("modal.shown",e.load)}function w(e,t,n,i,a,o,r,s,l,c,u,d,p){e.networkStarted=!1,e.ionItemClass="",e.expertMode=c.data.expertMode&&!s.screen.isSmall(),e.isHttps="https:"===a.location.protocol,e.search={text:"",loading:!0,type:void 0,results:[],endpoint:null,bma:void 0,ssl:void 0,ws2p:void 0,sort:void 0,asc:!0},e.compactMode=!0,e.listeners=[],e.helptipPrefix="helptip-network",e.enableLocationHref=!0,e.removeListeners=function(){e.listeners.length&&(console.debug("[network] Closing listeners"),_.forEach(e.listeners,(function(e){e()})),e.listeners=[])},e.enter=function(t,n){e.networkStarted||(e.networkStarted=!0,e.search.loading=!0,u.get().then((function(t){t&&(e.node=r.node.same(t.node.host,t.node.port)?r:r.instance(t.node.host,t.node.port),n&&n.stateParams&&(n.stateParams.type&&-1!=["mirror","member","offline"].indexOf(n.stateParams.type)&&(e.search.type=n.stateParams.type),n.stateParams.expert&&(e.expertMode="true"==n.stateParams.expert)),e.load())})).catch((function(t){s.onError("ERROR.GET_CURRENCY_FAILED")(t),e.networkStarted=!1})))},e.$on("$ionicParentView.enter",e.enter),e.leave=function(){e.networkStarted&&(e.removeListeners(),d.close(),e.networkStarted=!1,e.search.loading=!0)},e.$on("$ionicView.beforeLeave",e.leave),e.$on("$ionicParentView.beforeLeave",e.leave),e.$on("$destroy",e.leave),e.computeOptions=function(){return{filter:{member:!e.search.type||"member"===e.search.type,mirror:!e.search.type||"mirror"===e.search.type,endpoint:angular.isDefined(e.search.endpoint)?e.search.endpoint:null,bma:e.search.bma,ssl:e.search.ssl,ws2p:e.search.ws2p,online:!(e.search.type&&"offline"===e.search.type)},sort:{type:e.search.sort,asc:e.search.asc},expertMode:e.expertMode,timeout:l.timeout&&(e.expertMode?l.timeout/10:l.timeout/100)}},e.load=function(){e.search.loading&&(d.start(e.node,e.computeOptions()),e.refreshing=!1,e.listeners.push(d.api.data.on.changed(e,(function(t){e.refreshing||(e.refreshing=!0,p.extendAll(t.peers).then((function(){e.networkStarted&&e.updateView(t),e.refreshing=!1})))})))),e.showHelpTip()},e.updateView=function(t){console.debug("[peers] Updating UI"),e.$broadcast("$$rebind::rebind"),e.search.results=t.peers,e.search.memberPeersCount=t.memberPeersCount,e.search.loading=!e.networkStarted||d.isBusy(),e.loading||e.$broadcast("$$rebind::rebind"),e.motion&&e.search.results&&e.search.results.length>0&&e.motion.show({selector:".item-peer"})},e.refresh=function(){e.search.loading=!0,d.loadPeers()},e.sort=function(){e.search.loading=!0,e.refreshing=!0,d.sort(e.computeOptions()),e.updateView(d.data)},e.toggleSearchType=function(t){e.hideActionsPopover(),e.search.type===t||"none"===t?e.search.type=void 0:e.search.type=t,d.close(),e.search.loading=!0,e.load(),e.enableLocationHref&&n.search({type:e.search.type}).replace()},e.toggleSearchEndpoint=function(t){e.hideActionsPopover(),e.search.endpoint===t||null===t?e.search.endpoint=null:e.search.endpoint=t,e.sort()},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.sort()},e.toggleCompactMode=function(){e.compactMode=!e.compactMode,e.$broadcast("$$rebind::rebind")},e.selectPeer=function(n){if(n.compacted&&e.compactMode)e.toggleCompactMode();else if(n.online&&n.hasBma()){var i={server:n.getServer()};n.isSsl()&&(i.ssl=!0),n.isTor()&&(i.tor=!0),t.go("app.view_peer",i)}},e.$on("csView.action.refresh",(function(t,n){"peers"===n&&e.refresh()})),e.$on("csView.action.showActionsPopover",(function(t,n){e.showActionsPopover(n)})),e.showActionsPopover=function(t){s.popover.show(t,{templateUrl:"templates/network/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showEndpointsPopover=function(e,t,n){e.preventDefault(),e.stopPropagation();var i=t.getEndpoints(n);(i=(i||[]).reduce((function(e,i){var a=r.node.parseEndPoint(i)||r.node.parseEndPoint(i,n);return e.concat({label:"NETWORK.VIEW.NODE_ADDRESS",value:t.getServer(a)+(a&&a.path||"")})}),[])).length&&s.popover.show(e,{templateUrl:"templates/network/popover_endpoints.html",bindings:{titleKey:"NETWORK.VIEW.ENDPOINTS."+n,items:i}})},e.showWs2pPopover=function(e,t){return e.stopPropagation(),o("NETWORK.VIEW.PRIVATE_ACCESS").then((function(n){s.popover.show(e,{templateUrl:"templates/network/popover_endpoints.html",bindings:{titleKey:"NETWORK.VIEW.ENDPOINTS.WS2P",valueKey:"NETWORK.VIEW.NODE_ADDRESS",items:[{label:"NETWORK.VIEW.NODE_ADDRESS",value:t.bma.private?n:t.getServer()+(t.bma.path||"")},{label:"NETWORK.VIEW.WS2PID",value:t.bma.ws2pid},{label:"NETWORK.VIEW.POW_PREFIX",value:t.powPrefix}]}})}))},e.showHelpTip=function(t,n){if(t=angular.isDefined(t)?t:c.data.helptip.network,n=!!angular.isDefined(n)&&n,!(t<0)){var i=e.createHelptipScope();if(i)return i.tour=n,i.startNetworkTour(t,!1).then((function(e){i.$destroy(),n||(c.data.helptip.network=e,c.store())}))}}}function U(e,t,n){angular.extend(this,t("NetworkLookupCtrl",{$scope:e})),n=n||{},e.enableFilter=!angular.isDefined(n.enableFilter)||n.enableFilter,e.search.type=angular.isDefined(n.type)?n.type:e.search.type,e.search.endpoint=angular.isDefined(n.endpoint)?n.endpoint:e.search.endpoint,e.search.bma=angular.isDefined(n.bma)?n.bma:e.search.bma,e.search.ssl=angular.isDefined(n.ssl)?n.ssl:e.search.ssl,e.search.ws2p=angular.isDefined(n.ws2p)?n.ws2p:e.search.ws2p,e.expertMode=angular.isDefined(n.expertMode)?n.expertMode:e.expertMode,e.ionItemClass=n.ionItemClass||"item-border-large",e.enableLocationHref=!1,e.helptipPrefix="",e.selectPeer=function(t){e.closeModal(t)},e.$on("modal.hidden",(function(){e.leave()})),e.showHelpTip=function(){},e.enter()}function B(e,t){angular.extend(this,t("NetworkLookupCtrl",{$scope:e}));var n=n||{};e.enableFilter=!angular.isDefined(n.enableFilter)||n.enableFilter,e.search.type=angular.isDefined(n.type)?n.type:e.search.type,e.search.endpoint=angular.isDefined(n.endpoint)?n.endpoint:e.search.endpoint,e.expertMode=angular.isDefined(n.expertMode)?n.expertMode:e.expertMode,e.ionItemClass=n.ionItemClass||"item-border-large",e.helptipPrefix="",e.selectPeer=function(t){e.closePopover(t)},e.$on("popover.hidden",(function(){e.leave()})),e.showHelpTip=function(){},e.enter()}function x(e,t,n,i,a,o){e.loading=!0,e.formData={},e.load=function(){return e.loading=!0,e.formData={},t.all([i.blockchain.current().then((function(t){e.formData.number=t.number,e.formData.medianTime=t.medianTime,e.formData.powMin=t.powMin,e.formData.useSsl=o.useSsl})).catch((function(){delete e.formData.number,delete e.formData.medianTime,delete e.formData.powMin,delete e.formData.useSsl})),o.node.summary().then((function(t){e.formData.version=t&&t.duniter&&t.duniter.version,e.formData.software=t&&t.duniter&&t.duniter.software})).catch((function(){delete e.formData.version,delete e.formData.software})),o.version.latest().then((function(t){e.formData.latestRelease=t})).catch((function(){delete e.formData.latestRelease}))]).then((function(){if(e.formData.latestRelease&&"duniter"==e.formData.software){var t=a.version.compare(e.formData.version,e.formData.latestRelease.version);e.formData.isPreRelease=t>0,e.formData.hasNewRelease=t<0}else e.formData.isPreRelease=!1,e.formData.hasNewRelease=!1;e.loading=!1,e.$broadcast("$$rebind::rebind")}))},i.api.data.on.newBlock(e,(function(t){e.loading||(console.debug("[peer info] Received new block. Reload content"),e.load())})),n.api.data.on.changed(e,(function(t){e.loading||(console.debug("[peer info] Peer settings changed. Reload content"),e.load())})),e.load()}function F(t,n,i,a,o,r,s){t.node={},t.loading=!0,t.isHttps="https:"===i.location.protocol,t.isReachable=!0,t.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!o.screen.isSmall()||t.enableBack})),t.$on("$ionicView.enter",(function(e,n){var i=!n.stateParams||!n.stateParams.server,a=n.stateParams&&n.stateParams.server||s.server,o=n.stateParams&&"true"==n.stateParams.ssl||!!i&&s.useSsl,r="true"==n.stateParams.tor||!!i&&s.useTor;return t.load(a,o,r).then((function(){return t.$broadcast("$csExtension.enter",e,n)})).then((function(){t.loading=!1})).catch((function(){t.loading=!1}))})),t.load=function(i,a,l){var c={server:i,host:i,useSsl:a,useTor:l},u=i.split(":");return 2===u.length&&(c.host=u[0],c.port=u[1]),angular.merge(t.node,l?s.lightInstance(c.host+".to",443,!0,6e4):s.lightInstance(c.host,c.port,c.useSsl),c),t.isReachable=!t.isHttps||a,t.isReachable?n.all([t.node.network.peering.self().then((function(e){t.node.pubkey=e.pubkey,t.node.currency=e.currency})).catch((function(e){console.error(e&&e.message||e)})),t.node.network.peers().then((function(n){var i=(n&&n.peers||[]).map((function(t){var n=new e(t);return n.online="UP"===t.status,n.buid=n.block,n.blockNumber=n.buid&&n.buid.split("-")[0],n.dns=n.getDns(),n.id=n.keyID(),n.server=n.getServer(),n}));return r.extendAll([t.node].concat(i)).then((function(){t.peers=_.sortBy(i,(function(e){var t=1;return t+=1e4*(e.online?1:0),t+=1e3*(e.hasMainConsensusBlock?1:0),-(t+=100*(e.uid?1:0))})),t.motion.show({selector:".item-peer"})}))})),t.node.blockchain.current().then((function(e){t.current=e}))]).catch((function(e){throw console.error(e&&e.message||e),o.onError(l?"PEER.VIEW.ERROR.LOADING_TOR_NODE_ERROR":"PEER.VIEW.ERROR.LOADING_NODE_ERROR")(e),e})):s.network.peers().then((function(n){var i=(n&&n.peers||[]).reduce((function(t,n){var i=new e(n);return(i.getEndpoints("BASIC_MERKLED_API")||[]).reduce((function(e,t){var n=s.node.parseEndPoint(t);return n.dns!==c.host&&n.ipv4!==c.host&&n.ipv6!==c.host||n.port!=c.port?e:(i.bma=n,e.concat(i))}),t)}),[]),a=i.length&&i[0];if(a)return t.node.pubkey=a.pubkey,t.node.currency=a.currency,r.extend(t.node);console.warn("Could not get peer from /network/peers")}))},t.selectPeer=function(e){if(e.online&&!e.isWs2p()){var t={server:e.getServer()};e.isSsl()&&(t.ssl=!0),e.isTor()&&(t.tor=!0),a.go("app.view_peer",t)}},t.openRawPeering=function(e){return t.openLink(e,t.node.url+"/network/peering")},t.openRawCurrentBlock=function(e){return t.openLink(e,t.node.url+"/blockchain/current")}}function H(e,t,n,i,a,o,r,s,l,c,u){e.formData={useRelative:!1,currency:"",M:0,MoverN:0,UD:0,cactual:0,c:0,dt:0,sigQty:0,sigStock:0,msWindow:0,msValidity:0,sigWindow:0,sigValidity:0,sigPeriod:0,medianTime:0,difficulty:0,Nprev:0,stepMax:0,sentries:0,xpercent:0,durationFromLastUD:0,blockUid:null,dtReeval:0,udReevalTime0:0,allRules:angular.isDefined(s.data.currency&&s.data.currency.allRules)?s.data.currency.allRules:s.data.expertMode,allWotRules:angular.isDefined(s.data.currency&&s.data.currency.allWotRules)?s.data.currency.allWotRules:s.data.expertMode,licenseUrl:s.getLicenseUrl()},e.loading=!0,e.screen=r.screen,e.enter=function(t,i){e.loading&&(e.formData.useRelative=s.data.useRelative,l.get().then(e.load).then((function(){e.isLogin()&&e.showHelpTip()})).catch(r.onError("ERROR.GET_CURRENCY_FAILED")),c.api.data.on.mainBlockChanged(e,(function(t){e.loading||e.formData.blockUid!==t.buid&&(console.debug("[currency] Updating parameters UI (new main block detected)"),n(e.load,1e3))}))),e.$broadcast("$csExtension.enter",i)},e.$on("$ionicView.enter",e.enter),e.load=function(){var n,i,a={},s=Date.now();return t.all([o.blockchain.parameters().then((function(e){a.currency=e.currency,a.c=e.c,a.dt=e.dt,a.sigQty=e.sigQty,a.sigStock=e.sigStock,a.msWindow=e.msWindow,a.msValidity=e.msValidity,a.sigWindow=e.sigWindow,a.sigValidity=e.sigValidity,a.sigPeriod=e.sigPeriod,a.stepMax=e.stepMax,a.xpercent=e.xpercent,a.avgGenTime=e.avgGenTime,a.dtReeval=e.dtReeval,a.udTime0=e.udTime0,a.udReevalTime0=e.udReevalTime0,a.dtReeval||(a.dtReeval=a.dt)})),l.blockchain.current().then((function(e){n=e.monetaryMass,a.N=e.membersCount,a.medianTime=e.medianTime,a.difficulty=e.powMin,a.blockUid=[e.number,e.hash].join("-")})).catch((function(e){if(e&&e.ucode==o.errorCodes.NO_CURRENT_BLOCK)return n=0,a.N=0,a.medianTime=moment().utc().unix(),a.difficulty=0,void(a.blockUid=null);throw e})),o.blockchain.stats.ud().then((function(e){if(e.result.blocks.length){var t=e.result.blocks[e.result.blocks.length-1];return o.blockchain.block({block:t}).then((function(e){a.currentUD=e.unitbase>0?e.dividend*Math.pow(10,e.unitbase):e.dividend,i=e.medianTime,a.Nprev=e.membersCount}))}return i=0,a.Nprev=0,o.blockchain.parameters().then((function(e){a.currentUD=e.ud0}))}))]).then((function(){var t=n-a.currentUD*a.Nprev,o=a.Nprev?t/a.Nprev:0;return a.cactual=o?100*a.currentUD/o:0,a.M=n,a.MoverN=a.Nprev?(t||n)/a.Nprev:0,a.UD=a.currentUD,a.durationFromLastUD=i?a.medianTime-i:0,a.sentries=Math.ceil(Math.pow(a.N,1/a.stepMax)),angular.extend(e.formData,a),console.debug("[currency] Parameters loaded in "+(Date.now()-s)+"ms"),e.loading=!1,e.$broadcast("$$rebind::rebind"),r.ink(),r.loading.hide()})).catch((function(t){e.loading=!1,r.onError("ERROR.LOAD_PEER_DATA_FAILED")(t)}))},e.refresh=function(){if(!e.loading)return e.loading=!0,r.loading.show(),e.load().then((function(){e.$broadcast("csView.action.refresh","currency")}))},e.refreshPeers=function(){return e.$broadcast("csView.action.refresh","peers"),t.when()},e.showExtendActionsPopover=function(t){e.$broadcast("csView.action.showActionsPopover",t)},e.onAllRulesChange=function(){s.data.currency=s.data.currency||{},s.data.currency.allRules!==e.formData.allRules&&(s.data.currency.allRules=e.formData.allRules,s.store())},e.$watch("formData.allRules",e.onAllRulesChange),e.onAllWotRulesChange=function(){s.data.currency=s.data.currency||{},s.data.currency.allWotRules!==e.formData.allWotRules&&(s.data.currency.allWotRules=e.formData.allWotRules,s.store())},e.$watch("formData.allWotRules",e.onAllWotRulesChange),e.startCurrencyTour=function(){return e.hideActionsPopover(),e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if(t=angular.isDefined(t)?t:s.data.helptip.currency,n=!!angular.isDefined(n)&&n,!(t<0)){var i=e.createHelptipScope(n);if(i)return i.tour=n,i.startCurrencyTour(t,!1).then((function(e){i.$destroy(),s.data.helptip.currency=e,s.store()}))}},e.showLicenseModal=function(){return u.show("templates/currency/modal_license.html","CurrencyLicenseModalCtrl")},e.showHelpModal=function(e){a.showHelp({anchor:e})},e.showActionsPopover=function(t){r.popover.show(t,{templateUrl:"templates/currency/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function W(e,t,n,i,a){e.loading=!0,e.load=function(){e.loading&&(e.licenseUrl=i.getLicenseUrl(),e.licenseUrl&&".txt"!=e.licenseUrl.substring(e.licenseUrl.length-3)&&(e.licenseUrlHtml=e.licenseUrl+".html",e.licenseUrl=e.licenseUrl+".txt"),e.loading=!1)},e.$on("modal.shown",e.load),e.downloadFile=function(){if(e.licenseUrl)return t.get(e.licenseUrl).success((function(e){var t=new Blob([e],{type:"text/plain; charset=utf-8"});a.saveAs(t,"license.txt")})).error((function(){n.onError("ERROR.GET_LICENSE_FILE_FAILED")()}))}}function V(e,t,n){angular.extend(this,t("TransferModalCtrl",{$scope:e,parameters:{}})),e.enter=function(t,i){return i&&i.stateParams&&e.setParameters(i.stateParams),e.load().then(n.loading.hide)},e.$on("$ionicView.enter",e.enter),e.setForm=function(t){e.form=t},e.closeModal=function(){return e.showHome()}}function G(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){var b;e.convertedBalance=0,e.formData={destPub:null,amount:null,comment:null,useRelative:m.data.useRelative,useComment:!1,all:!1,restPub:null,restAmount:null,walletId:null},e.udAmount=null,e.minAmount=.01,e.commentPattern=s.regexp.COMMENT,e.currency=p.data.name,e.loading=!0,e.commentInputId="transferComment-"+e.$id,e.enableSelectWallet=!0,e.smallscreen=angular.isDefined(e.smallscreen)?e.smallscreen:l.screen.isSmall(),(e.smallscreen||r.enable)&&(e.digitKeyboardSettings=e.digitKeyboardSettings||r.keyboard.digit.settings.bindModel(e,"formData.amount",{decimal:!0,decimalSeparator:".",resizeContent:!1}),e.digitKeyboardVisible=!1),e.setParameters=function(t){t&&(t.pubkey&&(e.formData.destPub=t.pubkey),t.uid?(e.destUid=t.uid,e.destPub=""):(e.destUid="",e.destPub=t.pubkey),t.amount?(e.formData.amount=t.amount,e.formData.useRelative=!1):t.udAmount&&(e.formData.amount=t.udAmount,e.formData.useRelative=!0),t.comment&&(e.formData.useComment=!0,e.formData.comment=t.comment),t.restPub||t.all?(e.restUid="",e.restPub=t.restPub,e.formData.restPub=t.restPub,e.formData.all=!0):e.formData.all=!1,t.wallet&&"default"!==t.wallet?e.formData.walletId=t.wallet:e.formData.walletId=u.id)},e.setParameters(E),e.load=function(){return e.enableSelectWallet=u.children.count()>0,(b=e.enableSelectWallet&&(e.formData.walletId?u.children.get(e.formData.walletId):u)||u).isDefault()||console.debug("[transfer] Using wallet {"+b.id+"}"),b.login({sources:!0,silent:!0}).then((function(t){if(b&&!e.$$destroyed){if(e.walletData=t,e.formData.walletId=b.id,e.onUseRelativeChanged(),e.onAmountChanged(),e.$watch("walletData.balance",e.onAmountChanged,!0),e.$watch("formData.amount",e.onAmountChanged,!0),e.$watch("formData.useRelative",e.onUseRelativeChanged,!0),e.$watch("walletData.balance",e.onUseRelativeChanged,!0),l.ink({selector:".modal-transfer .ink"}),e.destPub&&!e.destUid)return d.extend({pubkey:e.destPub}).then((function(t){e.destUid=t&&(t.name||t.uid),e.destUid&&(e.destPub=""),e.loading=!1}));e.loading=!1}})).catch((function(t){if("CANCELLED"===t)return e.cancel();l.onError("ERROR.LOGIN_FAILED")(t)}))},e.$on("modal.shown",e.load),e.cancel=function(){e.closeModal(),b=null},e.onUseRelativeChanged=function(){e.currency=p.data.name,e.formData.useRelative?(e.convertedBalance=e.walletData.balance/p.data.currentUD,e.minAmount=.01/(p.data.currentUD/100)):(e.convertedBalance=e.walletData.balance/100,e.minAmount=.01),e.form&&!e.loading&&e.form.$setPristine(!0)},e.onAmountChanged=function(){if(!e.sending){var t=e.formData.amount;t&&"string"==typeof t&&(t=parseFloat(t.replace(new RegExp("[.,]"),".")));var n=!0;t&&t<e.minAmount?(n=!1,e.form.amount.$error=e.form.amount.$error||{},e.form.amount.$error.min=!0):e.form.amount&&e.form.amount.$error&&e.form.amount.$error.min&&delete e.form.amount.$error.min,t&&t>e.convertedBalance?(e.form.$valid=!1,e.form.amount.$invalid=!0,e.form.amount.$error=e.form.amount.$error||{},e.form.amount.$error={max:!0}):e.form.amount&&e.form.amount.$error&&e.form.amount.$error.max&&delete e.form.amount.$error.max,e.form.$valid=n,e.form.amount&&(e.form.amount.$invalid=!n),n&&e.formData.all&&t?e.formData.useRelative?(e.formData.restAmount=e.walletData.balance-t*p.data.currentUD,e.formData.restAmount<.01&&(e.formData.restAmount=0)):e.formData.restAmount=e.walletData.balance-100*t:e.formData.restAmount=void 0}},e.doTransfer=function(){if(e.form.$submitted=!0,e.form.$valid&&e.formData.destPub&&e.formData.amount){var n,a=e.formData.amount;if("string"==typeof a&&(a=parseFloat(a.replace(new RegExp("[.,]"),"."))),!e.sending)return e.sending=!0,t.all([b.auth({silent:!0}),p.currentUD().then((function(e){n=e})),e.hideDigitKeyboard(300)]).then(e.askTransferConfirm).then((function(t){if(t)return l.loading.show().then((function(){e.formData.useRelative?a*=n:a=100*a.toFixed(2);var t=e.formData.comment&&e.formData.comment.trim();return t&&!t.length&&(t=null),e.formData.all&&e.formData.restAmount>0?b.transferAll(e.formData.destPub,a,t,e.formData.useRelative,e.formData.restPub):b.transfer(e.formData.destPub,a,t,e.formData.useRelative)})).then((function(){return l.loading.hide(),e.closeModal(!0)})).then((function(t){return i((function(){e.sending=!1,l.toast.show("INFO.TRANSFER_SENT")}),500),t}));e.sending=!1})).catch((function(t){e.sending=!1,"CANCELLED"!==t&&l.onError("ERROR.SEND_TX_FAILED")(t)}))}},e.askTransferConfirm=function(){return n(["COMMON.UD","COMMON.EMPTY_PARENTHESIS"]).then((function(t){var i=e.formData.all&&e.formData.restAmount>0;return n(i?"CONFIRM.TRANSFER_ALL":"CONFIRM.TRANSFER",{from:e.walletData.isMember?e.walletData.uid:a("formatPubkey")(e.walletData.pubkey),to:e.destUid||e.destPub,amount:e.formData.amount,unit:e.formData.useRelative?t["COMMON.UD"]:a("abbreviate")(e.currency),comment:e.formData.comment&&0!==e.formData.comment.trim().length?e.formData.comment:t["COMMON.EMPTY_PARENTHESIS"],restAmount:i&&a("formatAmount")(e.formData.restAmount,{useRelative:e.formData.useRelative}),restTo:i&&(e.restUid||e.restPub)})})).then(l.alert.confirm)},e.addComment=function(){e.formData.useComment=!0},e.showWotLookupModal=function(t){return t=t||"destPub",e.hideDigitKeyboard(0),c.showWotLookup({enableWallets:!0}).then((function(n){n&&("destPub"===t?(e.destUid=n.uid,e.destPub=n.uid?"":n.pubkey,e.formData.destPub=n.pubkey):"restPub"===t&&(e.restUid=n.uid,e.restPub=n.uid?"":n.pubkey,e.formData.restPub=n.pubkey))}))},e.showSelectWalletModal=function(){if(e.enableSelectWallet)return c.showSelectWallet({useRelative:e.formData.useRelative,showDefault:!0,showBalance:!0}).then((function(t){!t||b&&b.id===t.id||(b=t,e.walletData=b.data,console.debug("[transfer] Using wallet {"+b.id+"}"),e.onAmountChanged())}))},e.showUnitPopover=function(t){l.popover.show(t,{templateUrl:"templates/wallet/popover_unit.html",scope:e}).then((function(t){e.formData.useRelative=t}))},e.showDigitKeyboard=function(){if(e.digitKeyboardSettings&&!e.digitKeyboardVisible)return r.enable?(r.keyboard.close(),i((function(){e.digitKeyboardVisible=!0}),200)):(e.digitKeyboardVisible=!0,t.when())},e.hideDigitKeyboard=function(n){return e.digitKeyboardVisible?(e.digitKeyboardVisible=!1,i((function(){}),n||200)):t.when()}}function Y(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){e.formData=angular.copy(E.data),e.popupData={},e.loading=!0,e.nodePopup={},e.bma=u,e.keepAuthIdleLabels={10:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.SECONDS",labelParams:{value:10}},30:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.SECONDS",labelParams:{value:30}},60:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.MINUTE",labelParams:{value:1}},600:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.MINUTES",labelParams:{value:10}},3600:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.HOUR",labelParams:{value:1}},9999:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.ALWAYS"}},e.keepAuthIdles=_.keys(e.keepAuthIdleLabels),e.blockValidityWindowLabels={0:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.NONE"},6:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.N",labelParams:{count:6,time:void 0}},12:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.N",labelParams:{count:12,time:void 0}},24:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.N",labelParams:{count:24,time:void 0}}},e.blockValidityWindows=_.keys(e.blockValidityWindowLabels),e.$on("$ionicView.enter",(function(){t.all([E.ready(),m.parameters().then((function(e){return e&&e.avgGenTime})).catch((function(e){return console.error("[settings] Could not not currency parameters. Using default 'avgGenTime' (300)",e),{avgGenTime:300}})).then((function(t){_.each(e.blockValidityWindows,(function(n){n>0&&(e.blockValidityWindowLabels[n].labelParams.time=t.avgGenTime*n)}))}))]).then(e.load)})),e.setPopupForm=function(t){e.popupForm=t},e.load=function(){return e.loading=!0,e.locales=angular.copy(E.locales),angular.merge(e.formData,E.data),e.formData.locale=E.data.locale&&E.data.locale.id&&_.findWhere(e.locales,{id:E.data.locale.id})||_.findWhere(e.locales,{id:E.defaultSettings.locale.id}),o((function(){e.loading=!1,l.ink({selector:".item"}),e.showHelpTip()}),100)},e.reset=function(){e.actionsPopover&&e.actionsPopover.hide(),e.pendingSaving=!0,E.reset().then(b.restart).then((function(){e.load(),e.pendingSaving=!1}))},e.changeLanguage=function(e){r.use(e)},e.changeNode=function(t){var n=e.formData.node.port&&80!=e.formData.node.port&&443!=e.formData.node.port?e.formData.node.port:void 0;t=t||{host:e.formData.node.host,port:n,useSsl:angular.isDefined(e.formData.node.useSsl)?e.formData.node.useSsl:443==e.formData.node.port},e.showNodePopup(t).then((function(t){if(t.host!==e.formData.node.host||t.port!==e.formData.node.port||t.useSsl!==e.formData.node.useSsl||e.formData.node.temporary){l.loading.show();var n=u.instance(t.host,t.port,t.useSsl,!0);n.isAlive().then((function(a){return a?(l.loading.hide(),angular.merge(e.formData.node,t),delete e.formData.node.temporary,u.copy(n),e.bma=u,b.restart(),i.clearCache()):(l.loading.hide(),l.alert.error("ERROR.INVALID_NODE_SUMMARY").then((function(){e.changeNode(t)})))}))}}))},e.showNodeList=function(){var t=!!("true"===p.httpsMode||!0===p.httpsMode||"force"===p.httpsMode||n.location&&"https:"===n.location.protocol);return a._popupStack[0].responseDeferred.promise.close(),c.showNetworkLookup({enableFilter:!0,bma:!0,ssl:!!t||void 0}).then((function(e){if(e){var t=e.getBMA();return{host:t.dns?t.dns:e.hasValid4(t)?t.ipv4:t.ipv6,port:t.port||80,useSsl:t.useSsl||443==t.port}}})).then((function(t){e.changeNode(t)}))},e.showNodePopup=function(n){return t((function(t,i){e.popupData.newNode=n.port?[n.host,n.port].join(":"):n.host,e.popupData.useSsl=n.useSsl,e.popupForm&&e.popupForm.$setPristine(),r(["SETTINGS.POPUP_PEER.TITLE","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then((function(n){a.show({templateUrl:"templates/settings/popup_node.html",title:n["SETTINGS.POPUP_PEER.TITLE"],scope:e,buttons:[{text:n["COMMON.BTN_CANCEL"]},{text:n["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.popupForm.$submitted=!0,e.popupForm.$valid&&e.popupForm.newNode)return{server:e.popupData.newNode,useSsl:e.popupData.useSsl};t.preventDefault()}}]}).then((function(e){if(e){var n=e.server.split(":");n[1]=n[1]?n[1]:80,t({host:n[0],port:n[1],useSsl:e.useSsl})}else l.loading.hide()}))}))}))},e.save=function(){return e.loading||e.pendingSaving?t.when():e.saving?(e.pendingSaving=!0,o((function(){return e.pendingSaving=!1,e.save()}),500)):(e.saving=!0,o((function(){return e.cleanupHelpTip(),E.apply(e.formData),E.store()}),100).then((function(){e.saving=!1})))},e.onDataChanged=function(n,i,a){return e.loading||e.pendingSaving?t.when():e.saving?(e.pendingSaving=!0,o((function(){return e.pendingSaving=!1,e.onDataChanged(n,i,a)}),500)):void(a!==e||angular.equals(n,i)||e.save())},e.$watch("formData",e.onDataChanged,!0),E.api.data.on.changed(e,(function(t){e.loading||e.saving||e.pendingSaving||!angular.equals(t.useLocalStorageEncryption,e.formData.useLocalStorageEncryption)&&(console.debug("[settings] Settings changed (outside the settings page). Reloading..."),e.load())})),e.getServer=function(){return e.formData.node&&e.formData.node.host?d.getServer(e.formData.node.host,e.formData.node.port):""},e.cleanupHelpTip=function(){if(e.formData.helptip.enable!==E.data.helptip.enable){var t=e.formData.helptip.enable;e.formData.helptip=angular.merge({},E.defaultSettings.helptip),e.formData.helptip.enable=t}},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"templates/settings/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.startSettingsTour=function(){return e.hideActionsPopover(),e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if((e.isLogin()||n)&&!((t=angular.isDefined(t)?t:E.data.helptip.settings)<0)){0===t&&(t=1);var i=e.createHelptipScope(n);if(i)return i.startSettingsTour(t,!1).then((function(e){i.$destroy(),E.data.helptip.settings=e,E.store()}))}}}function j(e,n,i,a,o,r,s,l,c,u,d){e.search={result:[],total:0,loading:!0,loadingMore:!1,hasMore:!1,type:"last"},e.node={},e.currency=!1,e.entered=!1,e.searchTextId=null,
+e.ionItemClass="item-border-large",e.defaultSizeLimit=s.screen.isSmall()?50:100,e.helptipPrefix="helptip-network",e.listeners=[],e.enter=function(t,n){if(e.entered)e.addListeners();else{if(n&&n.stateParams&&n.stateParams.q&&(e.search.text=n.stateParams.q,e.search.text&&e.search.text.trim().length&&(e.search.type="text")),n&&n.stateParams&&n.stateParams.server){var i="true"==n.stateParams.ssl,a="true"==n.stateParams.tor,o={server:n.stateParams.server,host:n.stateParams.server,useSsl:i,useTor:a},r=n.stateParams.server.split(":");if(2===r.length&&(o.host=r[0],o.port=r[1]),!l.node.same(o.host,o.port))return e.node=a?l.instance(o.host+".to",443,!0,6e5):l.instance(o.host,o.port,o.useSsl),e.node.blockchain.parameters().then((function(t){e.currency=t.currency,e.enter()}));e.node=l}if(!e.currency)return c.get().then((function(t){e.currency=t?t.name:null,e.node=t.node?t.node:l,e.currency?e.enter():s.alert.error("ERROR.GET_CURRENCY_FAILED")})).catch(s.onError("ERROR.GET_CURRENCY_FAILED"));e.compactMode=!angular.isDefined(e.compactMode)||e.compactMode,e.expertMode=angular.isDefined(e.expertMode)?e.expertMode:!s.screen.isSmall()&&d.data.expertMode,e.doSearch(),e.addListeners(),e.entered=!0,e.showHelpTip()}},e.$on("$ionicParentView.enter",e.enter),e.leave=function(){e.removeListeners()},e.$on("$ionicParentView.leave",e.leave),e.$on("$destroy",e.leave),e.doSearchLast=function(){return e.search.type="last",e.doSearch()},e.doSearch=function(n){var i;if(n=angular.isDefined(n)?n:0,e.search.loading=0===n,e.search.hasMore=!1,0===n)i=e.node.blockchain.current(!1).then((function(t){var n=t.number<e.defaultSizeLimit?t.number:e.defaultSizeLimit;return e.node.blockchain.blocksSlice({count:n,from:t.number-n}).then((function(e){return e&&e.splice(0,0,t),e}))})).catch((function(e){if(e&&e.ucode==l.errorCodes.NO_CURRENT_BLOCK)return[];throw e}));else{var a=e.search.results[e.search.results.length-1].number,o=a<e.defaultSizeLimit?a:e.defaultSizeLimit;i=e.node.blockchain.blocksSlice({count:o,from:a-o})}return i.then((function(i){if(!i||!i.length)return e.doDisplayResult([],n,0),void(e.search.loading=!1);i=i.reduce((function(e,n){var i=new t(n);return i.cleanData(),e.concat(i)}),[]),i=_.sortBy(i,(function(e){return-1*e.number}));var a=(0===n?i[0].number:e.search.results[0].number)+1;return e.doPrepareResult(i,n).then((function(){e.doDisplayResult(i,n,a),e.search.loading=!1}))})).catch((function(t){s.onError("BLOCKCHAIN.ERROR.SEARCH_BLOCKS_FAILED")(t),e.search.loading=!1}))};var p=a("formatDateShort");e.doPrepareResult=function(t,n){if(n=angular.isDefined(n)?n:0,"last"==e.search.type){var i;if(n>0&&e.search.results.length){var a=e.search.results[e.search.results.length-1];i=a.empty?a.day:void 0}_.forEach(t,(function(e,t){if(e.empty){var a=p(e.medianTime),o=0!==t||0!==n,r=!i||i==a;e.compacted=o&&r,i=a}else i=void 0}))}return u.extendAll(t,"issuer")},e.doDisplayResult=function(t,n,i){e.search.results=n?e.search.results.concat(t):t||[],e.search.hasMore=i&&e.search.results.length<i,e.search.total=i||e.search.total,e.smallscreen=s.screen.isSmall(),e.$broadcast("$$rebind::rebind"),t&&t.length&&e.motion.show({selector:".list-blocks .item-block"})},e.showMore=function(){var t=e.search.results?e.search.results.length:0;return e.search.loadingMore=!0,e.doSearch(t).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})).catch((function(t){console.error(t),e.search.loadingMore=!1,e.search.hasMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.removeListeners=function(){e.listeners.length&&(console.debug("[block] Closing listeners"),_.forEach(e.listeners,(function(e){e()})),e.listeners=[])},e.addListeners=function(){e.listeners.length||(console.debug("[block] Starting listeners"),e.node===l?e.listeners=[c.api.data.on.newBlock(e,e.onBlock)]:e.listeners=[e.node.websocket.block().onListener((function(n){if(n){var i=new t(n);i.cleanData(),e.onBlock(i)}}))])},e.onBlock=function(t){if(!(e.search.loading||"last"!==e.search.type||e.search.sort&&"desc"!==e.search.sort))if(e.search.results=e.search.results||[],e.search.results.length){var n=_.findWhere(e.search.results,{number:t.number});n?n.hash!==t.hash&&(console.debug("[blockchain] block #{0} updated (by websocket)".format(t.number)),angular.copy(t,n),e.doPrepareResult([t,e.search.results[1]]).then((function(){return e.showBlock(n)}))):(console.debug("[blockchain] new block #{0} received (by websocket)".format(t.number)),e.search.total++,e.search.results.splice(0,0,t),e.doPrepareResult([t,e.search.results[1]]).then((function(){return e.showBlock(t)})))}else console.debug("[blockchain] new block #{0} received (by websocket)".format(t.number)),e.search.total++,e.search.results.push(t),e.doPrepareResult([t]).then((function(){return e.showBlock(t)}))},e.showBlock=function(t){e.$broadcast("$$rebind::rebind"),e.motion.show({selector:"#block-"+t.number})},e.selectBlock=function(t){t.compacted&&e.compactMode?(e.toggleCompactMode(),n((function(){r("block-"+t.number)}),900)):l.node.same(e.node.host,e.node.port)?o.go("app.view_block_hash",{number:t.number,hash:t.hash}):o.go("app.view_server_block_hash",{server:e.node.server,ssl:e.node.useSsl,number:t.number,hash:t.hash})},e.toggleCompactMode=function(){if(e.compactMode=!e.compactMode,e.doDisplayResult(e.search.results,0,e.search.total),!e.search.hasMore&&e.search.results.length&&"last"==e.search.type){var t=e.search.results[e.search.results.length-1];t&&t.number>0&&n((function(){e.search.hasMore=!0}),500)}},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.doSearch()},e.showHelpTip=function(){}}function K(e,n,i,a,o,r,s){e.loading=!0,e.formData={},e.compactMode=!0,e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!a.screen.isSmall()||t.enableBack})),e.enter=function(t,n){if(e.loading){if(n&&(e.number=n.stateParams&&angular.isDefined(n.stateParams.number)?n.stateParams.number:"current",e.hash=n.stateParams&&n.stateParams.hash?n.stateParams.hash:void 0,n.stateParams&&n.stateParams.server)){var i="true"==n.stateParams.ssl,s="true"==n.stateParams.tor,l={server:n.stateParams.server,host:n.stateParams.server,useSsl:i,useTor:s},c=n.stateParams.server.split(":");if(2==c.length&&(l.host=c[0],l.port=c[1]),!o.node.same(l.host,l.port))return e.node=s?o.instance(l.host+".to",443,!0,6e5):o.instance(l.host,l.port,l.useSsl),e.node.blockchain.parameters().then((function(t){e.currency=t.currency,e.enter()}));e.node=o}e.currency&&e.node?e.load():r.get().then((function(t){t&&(e.currency=t.name,e.node=t.node,e.load())})).catch(a.onError("ERROR.GET_CURRENCY_FAILED"))}},e.$on("$ionicView.enter",e.enter),e.leave=function(){},e.$on("$ionicParentView.beforeLeave",e.leave),e.load=function(){if(e.number)return("current"==e.number?e.node.blockchain.current():e.node.blockchain.block({block:e.number})).then((function(n){var i=new t(n);if(i.parseData(),!i||!angular.isDefined(i.number)||!i.hash)return e.loading=!1,void a.alert.error("ERROR.GET_BLOCK_FAILED");if(e.hash&&i.hash!=e.hash)return e.loading=!1,void a.alert.error("ERROR.INVALID_BLOCK_HASH");var r=[];i.joiners.length&&(r=r.concat(i.joiners)),i.certifications.length&&(r=i.certifications.reduce((function(e,t){return t.to={pubkey:t.to},t.from={pubkey:t.from},e.concat(t.to,t.from)}),r),i.certifications=_.groupBy(i.certifications,(function(e){return e.to.pubkey}))),i.transactions.length&&(r=i.transactions.reduce((function(e,t){return t.issuers=t.issuers.reduce((function(e,t){return e.concat({pubkey:t})}),[]),_.forEach(t.outputs||[],(function(e){e.unlockCondition&&angular.merge(e,o.tx.parseUnlockCondition(e.unlockCondition))})),e.concat(t.issuers.concat(t.outputs||[]))}),r));var l={pubkey:i.issuer};return r.push(l),s.extendAll(r).then((function(){e.updateView({block:i,issuer:l})}))})).catch((function(t){e.loading=!1,a.onError("ERROR.GET_BLOCK_FAILED")(t)}))},e.updateView=function(t){e.formData=t.block,e.issuer=t.issuer,e.loading=!1},e.toggleCompactMode=function(){e.compactMode=!e.compactMode},e.toUnlockUIArray=function(t,n,i){return n=n||10,!t.children||"AND"!=t.type&&"OR"!=t.type?{style:{"padding-left":n+"px"},operator:i,type:t.type,value:t.value}:t.children.reduce((function(i,a,o){return a.children&&o>0?(i=i.concat({style:{"padding-left":n+"px","padding-top":"10px","padding-bottom":"10px"},operator:t.type})).concat(e.toUnlockUIArray(a,n+10)):i.concat(e.toUnlockUIArray(a,n+10,o&&t.type))}),[])},e.showUnlockConditionPopover=function(t,n){t.unlockTree&&(e.popoverData=e.popoverData||{},e.popoverData.unlockConditions=e.toUnlockUIArray(t.unlockTree),a.popover.show(n,{templateUrl:"templates/blockchain/unlock_condition_popover.html",scope:e,autoremove:!0,afterShow:function(t){e.unlockConditionPopover=t}}))},e.hideUnlockConditionsPopover=function(){e.unlockConditionPopover&&(e.unlockConditionPopover.hide(),e.unlockConditionPopover=null)},e.goState=function(t,n){e.hideUnlockConditionsPopover(),i.go(t,n)},e.openRawBlock=function(t){return e.openLink(t,e.node.url+"/blockchain/block/"+e.formData.number)},e.showHelpTip=function(e){}}function $(e,t){var n,i,a={user:"EVENT.USER.",page:"EVENT.PAGE."},o=this;if(e=e||{},o.type=e.type&&e.type.toLowerCase(),o.time=e.time,o.hash=e.hash,o.read=!!e.read_signature,o.message=e.reference&&a[e.reference.index]?a[e.reference.index]+e.code:"EVENT."+e.code,o.params=e.params,t&&"function"==typeof t&&(o.markAsReadCallback=t),o.markAsRead=function(){o.markAsReadCallback&&o.markAsReadCallback(o)},e.code=e.code||"",e.code.startsWith("MEMBER_"))o.avatarIcon="ion-person",o.icon="ion-information-circled positive",o.state="app.view_wallet",o.medianTime=o.time;else if(e.code.startsWith("TX_"))o.avatarIcon="ion-card",o.icon="TX_SENT"===e.code?"ion-paper-airplane dark":"ion-archive balanced",o.medianTime=o.time,(n=e.params.length>0?e.params[0]:null)&&-1==n.indexOf(",")&&(o.pubkey=n),o.state="app.view_wallet_tx",o.stateParams={refresh:!0};else if(e.code.startsWith("CERT_"))o.avatarIcon="CERT_RECEIVED"===e.code?"ion-ribbon-b":"ion-ribbon-a",o.icon="CERT_RECEIVED"===e.code?"ion-ribbon-b balanced":"ion-ribbon-a gray",o.pubkey=e.params.length>0?e.params[0]:null,o.medianTime=o.time,o.state="app.wallet_cert",o.stateParams={type:"CERT_RECEIVED"===e.code?"received":"given"};else if(e.code.startsWith("MESSAGE_"))o.avatarIcon="ion-email",o.icon="ion-email dark",(n=e.params.length>0?e.params[0]:null)&&-1===n.indexOf(",")&&(o.pubkey=n),o.id=e.reference.id;else if(e.reference&&"user"===e.reference.index&&"profile"===e.reference.type)if(o.pubkey=e.params.length>0?e.params[0]:null,o.state="app.wot_identity",o.stateParams={pubkey:o.pubkey,uid:e.params&&e.params[3]},e.code.startsWith("LIKE_"))o.avatarIcon="ion-person",o.icon="ion-ios-heart positive";else if(e.code.startsWith("STAR_"))o.avatarIcon="ion-person",o.icon="ion-star gray";else if(e.code.startsWith("FOLLOW_"))o.avatarIcon="ion-person",o.icon="ion-ios-people gray";else if(e.code.startsWith("ABUSE_"))o.avatarIcon="ion-person",o.icon="ion-android-warning assertive";else if(e.code.startsWith("MODERATION_")){o.state="app.wot_identity",o.stateParams={pubkey:e.reference.id,uid:e.params&&e.params[3]},o.avatarIcon="ion-alert-circled",o.icon="ion-alert-circled energized";var r=e.params&&e.params[4]||0;"MODERATION_RECEIVED"===e.code&&5==r&&(o.message="EVENT.USER.DELETION_RECEIVED",o.icon="ion-trash-a assertive")}else o.icon="ion-person dark";else e.reference&&"page"===e.reference.index?(o.pubkey=e.params.length>0?e.params[0]:null,o.avatarIcon="ion-social-buffer",e.reference.anchor?(o.icon="ion-ios-chatbubble-outline dark",o.state="app.view_page_anchor",o.stateParams={id:e.reference.id,title:e.params[1],anchor:(i=e.reference.anchor,i?i.substr(0,4)+i.substr(i.length-4):"")}):(o.icon="ion-social-buffer dark",o.state="app.view_page",o.stateParams={id:e.reference.id,title:e.params[1]}),e.code.startsWith("LIKE_")?o.icon="ion-ios-heart positive":e.code.startsWith("FOLLOW_")?o.avatarIcon="ion-person":e.code.startsWith("ABUSE_")?o.icon="ion-alert-circled energized":e.code.startsWith("MODERATION_")&&(o.avatarIcon="ion-alert-circled",o.icon="ion-alert-circled energized","MODERATION_RECEIVED"===e.code&&5==r&&(o.message="EVENT.PAGE.DELETION_RECEIVED",o.icon="ion-trash-a assertive"))):"INFO"===e.type?(o.avatarIcon="ion-information",o.icon="ion-information-circled positive"):"WARN"===e.type?(o.avatarIcon="ion-alert-circled",o.icon="ion-alert-circled energized"):"ERROR"===e.type&&(o.avatarIcon="ion-close",o.icon="ion-close-circled assertive");return o}function z(e,t){var n=this;n.id=e,n.message=null,n.html=null,n.issuer=null,n.time=null,n.creationTime=null,n.reply_to=null,n.replyCount=0,n.parent=null,n.replies=[],n.onRemoveListeners=[],n.copy=function(e){n.message=e.message,n.html=e.html,n.issuer=e.issuer,n.time=e.time,n.creationTime=e.creationTime||n.time,n.id=e.id||n.id,n.reply_to=e.reply_to||n.reply_to,n.uid=e.uid||n.uid,n.name=e.name||n.name,n.avatarStyle=e.avatarStyle||n.avatarStyle,e.parent&&(n.parent=e.parent),e.replies&&n.setReplies(e.replies)},n.copyFromJson=function(e){n.message=e.message,n.issuer=e.issuer,n.time=e.time,n.creationTime=e.creationTime||n.time,n.reply_to=e.reply_to},n.addOnRemoveListener=function(e){e&&"function"==typeof e&&n.onRemoveListeners.push(e)},n.cleanAllListeners=function(){n.onRemoveListeners=[]},n.setReplies=function(e){n.removeAllReplies(),n.addReplies(e)},n.addReplies=function(e){e&&e.length&&(e=e.sort((function(e,t){return e.time-t.time})),_.forEach(e,(function(e){e.parent=n,n.replies.push(e)})),n.replyCount+=e.length)},n.containsReply=function(e){return-1!=n.replies.indexOf(e)},n.addReply=function(e){n.replyCount+=1,n.replies.push(e),n.replies=n.replies.sort((function(e,t){return e.time-t.time})),e.parent=n},n.removeAllReplies=function(){if(n.replyCount){var e=n.replies.splice(0,n.replies.length);n.replyCount=0,_.forEach(e,(function(e){e.remove()}))}},n.removeReply=function(e){var t=_.findIndex(n.replies,{id:e});-1!=t&&(n.replyCount--,delete n.replies.splice(t,1)[0].parent)},n.remove=function(){n.parent&&(n.parent.removeReply(n.id),delete n.parent),n.onRemoveListeners.length&&(_.forEach(n.onRemoveListeners,(function(e){e(n)})),n.issuer=null,n.message=null,n.cleanAllListeners())},t&&"object"==typeof t&&n.copyFromJson(t)}function q(e){if(e=e||{},this.type=e.type&&e.type.toLowerCase(),this.time=e.time,this.id=e.id,"certification"==this.type){if(this.comment=e.comment,this.icon="ion-ribbon-a",this.okText="WOT.BTN_CERTIFY",!e.content||-1==e.content.indexOf("-"))return console.error("[invitation] Empty content for invitation [{0}]".format(this.id)),this.message="INVITATION.ERROR.BAD_INVITATION_FORMAT",void(this.pubkey=e.issuer);var t=e.content.lastIndexOf("-");if(-1==t)return console.error("[invitation] Bad content format for invitation [{0}]: {1}".format(this.id,e.content)),this.message="INVITATION.ERROR.BAD_INVITATION_FORMAT",void(this.pubkey=e.issuer);var n={uid:e.content.substr(0,t),pubkey:e.content.substr(t+1)};this.state="app.wot_identity",this.stateParams={pubkey:n.pubkey,uid:n.uid,action:"certify"},n.pubkey==e.issuer?(this.pubkey=e.issuer,this.uid=n.uid,this.message="INVITATION.ASK_CERTIFICATION"):(this.issuer={pubkey:e.issuer},this.message="INVITATION.SUGGESTION_CERTIFICATION",this.pubkey=n.pubkey,this.uid=n.uid)}}function X(e){var t=this;Object.keys(e).forEach((function(n){t[n]=e[n]})),t.endpoints=t.endpoints||[]}function Q(e,t,n,i){e.selectNewPicture=function(t){if(i.enable)e.openPicturePopup();else{var n=angular.element(document.querySelector(t||"#pictureFile"));n&&n.length>0&&n[0].click()}},e.openPicturePopup=function(){i.camera.getPicture().then((function(t){e.pictures.push({src:"data:image/png;base64,"+t,isnew:!0})})).catch(t.onError("ERROR.TAKE_PICTURE_FAILED"))},e.fileChanged=function(n){if(n.target.files&&n.target.files.length){t.loading.show();var i=n.target.files[0];return t.image.resizeFile(i).then((function(i){e.pictures.push({src:i,isnew:!0}),n.target.value="",t.loading.hide(100)})).catch((function(e){console.error(e),n.target.value="",t.loading.hide()}))}},e.removePicture=function(t){e.pictures.splice(t,1)},e.favoritePicture=function(t){if(t>0){var n=e.pictures[t];e.pictures.splice(t,1),e.pictures.splice(0,0,n)}},e.rotatePicture=function(n){var i=e.pictures[n];t.image.rotateSrc(i.src).then((function(e){i.src=e}))}}function J(e,t,n,i){e.loading=!0,e.allCategories=[],e.categories=[],this.searchText="",this.title=i&&i.title,e.afterLoad=function(i){e.categories=i,e.allCategories=i,e.loading=!1,n((function(){t.ink()}),10)},this.doSearch=function(){var t=this.searchText.toLowerCase().trim();t.length>1?(e.loading=!0,e.categories=e.allCategories.reduce((function(e,n){return n.parent&&-1!=n.name.toLowerCase().search(t)?e.concat(n):e}),[]),e.loading=!1):e.categories=e.allCategories},i&&i.categories?e.afterLoad(i.categories):i&&i.load&&i.load().then((function(t){e.afterLoad(t)}))}function Z(e,t,n,i,a,o,r){e.loading=!0,e.defaultCommentSize=5,e.formData={},e.comments={},e.$on("$recordView.enter",(function(t,n){e.loading?e.anchor=n&&n.stateParams.anchor:!e.loading&&e.id&&e.load(e.id,{animate:!1})})),e.$on("$recordView.load",(function(t,n,i){e.id=n||e.id,e.service=i||e.service,console.debug("[ES] [comment] Will use {"+i.index+"} service"),e.id&&e.load(e.id).then((function(){e.scrollToAnchor()}))})),e.load=function(t,n){return(n=n||{}).from=n.from||0,n.size=n.size||e.anchor&&-1,n.size=n.size||e.defaultCommentSize,n.animate=!angular.isDefined(n.animate)||n.animate,n.loadAvatarAllParent=!angular.isDefined(n.loadAvatarAllParent)||n.loadAvatarAllParent,e.loading=!0,e.service.load(t,n).then((function(i){!n.animate&&i.result.length&&_.forEach(i.result,(function(e){e.isnew=!0})),e.comments=i,e.comments.hasMore=i.total>i.result.length,e.loading=!1,e.service.changes.start(t,i,e),e.motion.show({selector:".comments .item",ink:!1})}))},e.$on("$recordView.beforeLeave",(function(){if(e.comments){if(!e.service)return void console.error("[comment] Comment controller has no service ! Unable to listen changes...");e.service.changes.stop(e.comments)}})),e.scrollToAnchor=function(){if(e.anchor){var t=document.getElementsByName(e.anchor);if(!t||!t.length)return a(e.scrollToAnchor,500);for(var n=0;n<t.length-1;n++)angular.element(t[n]).remove();o(e.anchor),a((function(){e.anchor=null}),1500)}},e.showMore=function(){e.load(e.id,{from:0,size:-1,loadAvatarAllParent:!1}).then((function(){e.motion.show({selector:".card-avatar"})}))},e.onKeypress=function(t){t&&10==t.charCode&&t.ctrlKey&&(e.save(),t.preventDefault())},e.save=function(){e.formData.message&&e.formData.message.length&&e.loadWallet({minData:!0,auth:!0}).then((function(){r.loading.hide();var t=e.formData;return e.formData={},e.focusNewComment(),e.service.save(e.id,e.comments,t)})).then((function(){e.comments.total++})).catch(r.onError("COMMENTS.ERROR.FAILED_SAVE_COMMENT"))},e.share=function(i,a){var o,s=angular.copy(n.params);s.anchor?(s.anchor=t("formatHash")(a.id),o=n.href(n.current.name,s,{absolute:!0})):o=n.href(n.current.name,s,{absolute:!0})+"/"+t("formatHash")(a.id);var l=_.findIndex(e.comments.result,{id:a.id}),c=o+"?u="+(a.uid||t("formatPubkey")(a.issuer));r.popover.show(i,{templateUrl:"templates/common/popover_share.html",scope:e,bindings:{titleKey:"COMMENTS.POPOVER_SHARE_TITLE",titleValues:{number:l?l+1:1},date:a.creationTime,value:c,postUrl:o,postMessage:a.message},autoselect:".popover-share input"})},e.edit=function(t){var n=new z;n.copy(t),e.formData=n},e.remove=function(t){t&&(t.remove(),e.comments.total--)},e.reply=function(t){t&&t.id&&(e.formData={parent:t},e.focusNewComment(!0))},e.cancel=function(){e.formData={},e.focusNewComment()},e.focusNewComment=function(e){r.screen.isSmall()?e&&i("comment-form-input"):i("comment-form-textarea")},e.removeParentLink=function(){delete e.formData.parent,delete e.formData.reply_to,e.focusNewComment()},e.toggleExpandedReplies=function(e,t){e.expandedReplies=e.expandedReplies||{},e.expandedReplies[t]=!e.expandedReplies[t]},e.toggleExpandedParent=function(e,t){e.expandedParent=e.expandedParent||{},e.expandedParent[t]=!e.expandedParent[t]}}function ee(e,t,n,i,a){e.socialData={url:null,reorder:!1},e.addSocialNetwork=function(){if(e.socialData.url&&0!==e.socialData.url.trim().length){e.formData.socials=e.formData.socials||[];var o=e.socialData.url.trim();if(_.findWhere(e.formData.socials,{url:o}))e.socialData.url="";else{var r=a.get(o);if(!r)return i.alert.error("PROFILE.ERROR.INVALID_SOCIAL_NETWORK_FORMAT"),void t("socialUrl");e.formData.socials.push(r),e.socialData.url="",e.motion.show({selector:"#social-"+n("formatSlug")(r.url),startVelocity:1e4})}}},e.editSocialNetwork=function(n){var i=e.formData.socials[n];e.formData.socials.splice(n,1),e.socialData.url=i.url,t("socialUrl")},e.reorderSocialNetwork=function(t,n,i){t&&n!=i&&(e.formData.socials.splice(n,1),e.formData.socials.splice(i,0,t))},e.filterFn=function(e){return!e.recipient||e.valid}}function te(e){e.openSocial=function(t,n){return e.openLink(t,n.url,{type:n.type})},e.filterFn=function(e){return!e.recipient||e.valid}}function ne(e){e.formData={initCrop:!1,imageCropStep:0,imgSrc:void 0,result:void 0,resultBlob:void 0},e.openFileSelector=function(){var e=angular.element(document.querySelector(".modal-avatar #fileInput"));e&&e.length>0&&e[0].click()},e.fileChanged=function(t){var n=t.target.files,i=new FileReader;i.readAsDataURL(n[0]),i.onload=function(t){var n=this.result;e.$applyAsync((function(){e.formData.imgSrc=n}))}},e.doNext=function(){2==e.formData.imageCropStep?e.doCrop():3==e.formData.imageCropStep&&e.closeModal(e.formData.result)},e.doCrop=function(){e.formData.initCrop=!0},e.clear=function(){e.formData={initCrop:!1,imageCropStep:1,imgSrc:void 0,result:void 0,resultBlob:void 0}}}function ie(e,t,n,i){var a=t.plugins&&t.plugins.es&&t.plugins.es.defaultCountry,o=!1;e.formPosition={loading:!1,enable:void 0},e.tryToLocalize=function(){if(!e.formPosition.loading&&!o){var t=e.getAddressToSearch();return t?(e.formPosition.loading=!0,n.point.searchByAddress(t).then((function(n){return n&&1==n.length?e.updateGeoPoint(n[0]):e.openSearchLocationModal({text:t,results:n||[],forceFallback:!n||!n.length})})).then((function(){e.formPosition.loading=!1})).catch((function(t){console.error(t),e.formPosition.loading=!1}))):(o=!0,n.point.current().then(e.updateGeoPoint).then((function(){o=!1})).catch((function(e){console.error(e),o=!1})))}},e.onCityChanged=function(){if(!e.loading)return e.formPosition.enable?(e.formData.geoPoint&&(e.formData.geoPoint.lat=void 0,e.formData.geoPoint.lon=void 0),e.tryToLocalize()):void 0},e.onUseGeopointChanged=function(){e.loading||(e.formPosition.enable?e.tryToLocalize():e.formData.geoPoint&&(e.formData.geoPoint.lat=void 0,e.formData.geoPoint.lon=void 0,e.dirty=!0))},e.onGeopointChanged=function(){e.loading&&(e.formPosition.enable=e.formData.geoPoint&&!!e.formData.geoPoint.lat&&!!e.formData.geoPoint.lon)},e.$watch("formData.geoPoint",e.onGeopointChanged),e.getAddressToSearch=function(){return e.formData.address&&e.formData.city?[e.formData.address.trim(),e.formData.city.trim()].join(", "):e.formData.city||e.formData.address||e.formData.location},e.updateGeoPoint=function(t){if(t&&t.lat&&t.lon&&(e.dirty=!0,e.formData.geoPoint=e.formData.geoPoint||{},e.formData.geoPoint.lat=parseFloat(t.lat),e.formData.geoPoint.lon=parseFloat(t.lon),t.address&&t.address.city)){var n=[t.address.city];t.address.postcode&&n.push(t.address.postcode),t.address.country!=a&&n.push(t.address.country),e.formData.city=n.join(", ")}},e.openSearchLocationModal=function(t){var n={text:(t=t||{}).text||e.getAddressToSearch(),results:t.results,fallbackText:t.fallbackText||e.formData.city,forceFallback:angular.isDefined(t.forceFallback)?t.forceFallback:void 0};return i.show("plugins/es/templates/common/modal_location.html","ESSearchPositionModalCtrl",n,{focusFirstInput:!0}).then(e.updateGeoPoint)}}function ae(e,t,n,i,a){var o=n.plugins&&n.plugins.es&&n.plugins.es.defaultCountry,r=!1;e.geoDistanceLabels=[5,10,20,50,100,250,500].reduce((function(e,t){return e[t]={labelKey:"LOCATION.DISTANCE_OPTION",labelParams:{value:t}},e}),{}),e.geoDistances=_.keys(e.geoDistanceLabels),e.searchPosition=function(n){if(r)return t.when();r=!0;var a=n?i.point.searchByAddress(n).then((function(t){return t&&1==t.length?(t[0].exact=!0,t[0]):e.openSearchLocationModal({text:n,results:t||[],forceFallback:!t||!t.length}).then((function(e){if(e&&e.address&&e.address.city){var t=[e.address.city];e.address.postcode&&t.push(e.address.postcode),e.address.country!=o&&t.push(e.address.country),e.shortName=t.join(", ")}return e}))})):i.point.current();return a.then((function(e){if(r=!1,e&&e.lat&&e.lon)return{lat:parseFloat(e.lat),lon:parseFloat(e.lon),name:e.shortName,exact:e.exact}})).catch((function(e){console.error(e),r=!1})),a},e.openSearchLocationModal=function(t){var n={text:(t=t||{}).text||e.getAddressToSearch(),results:t.results,fallbackText:t.fallbackText||e.search.location,forceFallback:angular.isDefined(t.forceFallback)?t.forceFallback:void 0};return a.show("plugins/es/templates/common/modal_location.html","ESSearchPositionModalCtrl",n,{focusFirstInput:!0})}}function oe(e,t,n,i,a){var o=i.plugins&&i.plugins.es&&i.plugins.es.defaultCountry,r=!1;e.locations=void 0,e.selectLocationIndex=-1,e.onKeydown=function(t){switch(t.keyCode){case 27:e.hideDropdown();break;case 13:e.locations&&e.locations.length&&e.onEnter();break;case 38:e.onArrowUpOrDown(-1),t.preventDefault();break;case 40:e.onArrowUpOrDown(1),t.preventDefault();break;case 8:case 45:case 46:break;case 37:case 39:case 16:case 17:case 35:case 36:break;default:e.showDropdown()}},e.onEnter=function(){e.selectLocationIndex>-1?e.selectLocation(e.locations[e.selectLocationIndex]):e.selectLocation(e.locations[0])},e.onArrowUpOrDown=function(t){e.locations&&(e.selectLocationIndex+=t,e.selectLocationIndex>=e.locations.length&&(e.selectLocationIndex=0),e.selectLocationIndex<0&&(e.selectLocationIndex=e.locations.length-1),_.forEach(e.locations||[],(function(t,n){t.selected=n==e.selectLocationIndex})))},e.onLocationChanged=function(){r||e.search.loading||(e.search.geoPoint=void 0,e.showDropdown())},e.showDropdown=function(){var t=e.search.location&&e.search.location.trim();if(!t||t.length<3)return e.hideDropdown(!0);var n=e.requestId&&e.requestId+1||1;return e.requestId=n,r=!0,a.point.searchByAddress(t).then((function(t){e.requestId==n&&(r=!1,e.locations=t||[],e.license=t&&t.length&&t[0].license)})).catch((function(t){throw e.hideDropdown(),t}))},e.hideDropdown=function(n){return n?(e.locations=void 0,e.selectLocationIndex=-1,e.license=void 0,void(r=!1)):t((function(){r||(e.locations=void 0,e.license=void 0,r=!1)}),500)},e.selectLocation=function(t,n){if(r=!0,t)if(e.search.geoPoint=e.search.geoPoint||{},e.search.geoPoint.lat=parseFloat(t.lat),e.search.geoPoint.lon=parseFloat(t.lon),n)e.search.geoPoint.exact=!0;else if(t&&t.address&&t.address.city){var i=[t.address.city];t.address.postcode&&i.push(t.address.postcode),t.address.country!=o&&i.push(t.address.country),e.search.location=i.join(", ")}e.hideDropdown(!0)},e.openSearchLocationModal=function(t){var i={text:(t=t||{text:e.search.location}).text||e.search.location};return n.show("plugins/es/templates/common/modal_location.html","ESSearchPositionModalCtrl",i,{focusFirstInput:!0}).then(e.selectLocation)}}function re(e,t,n,i,a){e.search={text:a.text||"",fallbackText:a.fallbackText||void 0,forceFallback:!!angular.isDefined(a.forceFallback)&&a.forceFallback,loading:!1,results:a.results||void 0},e.$on("modal.shown",(function(){e.doSearch(!0)})),e.doSearch=function(a){var o=e.search.text&&e.search.text.trim();if(!o)return t.when();e.search.loading=!0;var r=a&&e.search.fallbackText&&e.search.fallbackText.trim();return r=r&&r!=o?r:void 0,(a&&e.search.forceFallback&&e.search.results?t.when(e.search.results):i.point.searchByAddress(o)).then((function(e){return e&&e.length||!r?e:t.all([n("LOCATION.MODAL.ALTERNATIVE_RESULT_DIVIDER",{address:r}),i.point.searchByAddress(r)]).then((function(e){var t=e[0];return(e=e[1])&&e.length?[{name:t}].concat(e):e}))})).then((function(t){e.search.loading=!1,e.search.results=t||[],e.license=t&&t.length&&t[0].license})).catch((function(t){throw e.search.loading=!1,e.search.results=[],e.license=void 0,t}))}}function se(e,t,n){e.extensionPoint=n.extensions.points.current.get(),e.enable=t.isEnable(),t.api.state.on.changed(e,(function(t){e.enable=t,e.$broadcast("$$rebind::state")}))}function le(e,t,n,i,a){angular.extend(this,n("ESExtensionCtrl",{$scope:e})),e.showRegistryLookupView=function(){t.go(i.screen.isSmall()?"app.wot_lookup.tab_registry":"app.registry_lookup_lg")},e.showNotificationsPopover=function(t){return i.popover.show(t,{templateUrl:"plugins/es/templates/notification/popover_notification.html",scope:e,autoremove:!1,afterShow:function(e){var t=a.api.data.on.unauth(e.scope,(function(){e.scope.closePopover(),t()}))}})},e.showMessagesPopover=function(t){return a.isAuth()?i.popover.show(t,{templateUrl:"plugins/es/templates/message/popover_message.html",scope:e,autoremove:!1,afterShow:function(e){var t=a.api.data.on.unauth(e.scope,(function(){e.scope.closePopover(),t()}))}}):a.auth({minData:!0}).then((function(){return i.loading.hide(),e.showMessagesPopover(t)}))},e.showInvitationsPopover=function(t){return a.isAuth()?i.popover.show(t,{templateUrl:"plugins/es/templates/invitation/popover_invitation.html",scope:e,autoremove:!1,afterShow:function(e){var t=a.api.data.on.unauth(e.scope,(function(){e.scope.closePopover(),t()}))}}):a.auth().then((function(){return i.loading.hide(),e.showInvitationsPopover(t)}))}}function ce(e,t,n,i,a){e.updateView=function(){e.enable=a.isLogin()&&i.isEnable()},e.showEditUserProfile=function(){e.closeProfilePopover(),n.go("app.edit_profile")},i.api.state.on.changed(e,e.updateView),a.api.data.on.login(e,(function(n,a){return e.enable=i.isEnable(),a&&a.resolve()||t.when()})),a.api.data.on.logout(e,(function(){e.enable=!1})),e.updateView()}function ue(e,t,n,i,a,o,r,s,l,c,u,d,p){e.hasWindowNotification=!!("Notification"in window),e.formData={},e.popupData={},e.loading=!0,e.enter=function(t,n){e.load()},e.$on("$ionicView.enter",e.enter),e.load=function(t){e.loading=!0;var n=e.formData.enable;e.formData=c.data.plugins&&c.data.plugins.es?angular.copy(c.data.plugins.es):{enable:!1,host:void 0,port:void 0},t&&n&&(e.formData.enable=n),e.isFallbackNode=e.formData.enable&&u.node.isFallback(),e.server=e.getServer(u),e.loading=!1},d.api.state.on.changed(e,(function(t){e.load(!0)})),e.setPopupForm=function(t){e.popupForm=t},e.changeEsNode=function(t){t=t||{host:e.formData.host,port:e.formData.port&&80!=e.formData.port&&443!=e.formData.port?e.formData.port:void 0,useSsl:angular.isDefined(e.formData.useSsl)?e.formData.useSsl:443==e.formData.port},e.showNodePopup(t).then((function(t){if(t.host!==e.formData.host||t.port!=e.formData.port||t.useSsl!=e.formData.useSsl){o.loading.show();var n=u.instance(t.host,t.port,t.useSsl);return n.isAlive().then((function(i){return i?(e.formData.host=n.host,e.formData.port=n.port,e.formData.useSsl=n.useSsl,u.copy(n)):(o.loading.hide(),o.alert.error("ERROR.INVALID_NODE_SUMMARY").then((function(){e.changeEsNode(t)})))})).then((function(){e.server=e.getServer(u),e.isFallbackNode=!1,o.loading.hide()}))}o.loading.hide()}))},e.showNodePopup=function(t){return n((function(n,r){var s=[t.host];t.port&&80!=t.port&&s.push(t.port),e.popupData.newNode=s.join(":"),e.popupData.useSsl=angular.isDefined(t.useSsl)?t.useSsl:443==t.port,e.popupForm&&e.popupForm.$setPristine(),i(["ES_SETTINGS.POPUP_PEER.TITLE","ES_SETTINGS.POPUP_PEER.HELP","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then((function(t){a.show({templateUrl:"templates/settings/popup_node.html",title:t["ES_SETTINGS.POPUP_PEER.TITLE"],subTitle:t["ES_SETTINGS.POPUP_PEER.HELP"],scope:e,buttons:[{text:t["COMMON.BTN_CANCEL"]},{text:t["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.popupForm.$submitted=!0,e.popupForm.$valid&&e.popupForm.newNode)return{server:e.popupData.newNode,useSsl:e.popupData.useSsl};t.preventDefault()}}]}).then((function(e){if(e){var t=e.server.split(":");t[1]=t[1]?t[1]:e.useSsl?443:80,n({host:t[0],port:t[1],useSsl:e.useSsl})}else o.loading.hide()}))}))}))},e.showNodeList=function(){var n=!!("true"===l.httpsMode||!0===l.httpsMode||"force"===l.httpsMode||t.location&&"https:"===t.location.protocol);return a._popupStack[0].responseDeferred.promise.close(),p.showNetworkLookup({enableFilter:!0,endpoint:u.constants.ES_USER_API_ENDPOINT,ssl:!!n||void 0}).then((function(e){if(e){var t=(e.getEsEndpoints()||[]).reduce((function(e,t){var n=u.node.parseEndPoint(t);return n?e.concat(n):e}),[]);if(t.length){var n=t[0];return{host:n.dns?n.dns:e.hasValid4(n)?n.ipv4:n.ipv6,port:n.port||80,useSsl:n.useSsl||443==n.port}}}})).then((function(t){e.changeEsNode(t)}))},e.onFormChanged=function(){e.loading||(e.hasWindowNotification&&e.formData.notifications.emitHtml5!==("granted"===window.Notification.permission)?window.Notification.requestPermission((function(t){e.formData.notifications.emitHtml5="granted"===t,e.onFormChanged()})):(e.loading=!0,c.data.plugins=c.data.plugins||{},c.data.plugins.es=c.data.plugins.es?angular.merge(c.data.plugins.es,e.formData):e.formData,delete c.data.plugins.es.newNode,c.store().then((function(){e.loading=!1}))))},e.$watch("formData",e.onFormChanged,!0),e.getServer=function(t){if((t=t||e.formData).host)return s.getServer(t.host,t.port)}}function de(e,t,n,i,a){angular.extend(this,t("ESExtensionCtrl",{$scope:e})),e.showProfileHelp=!1,e.showNewPageModal=function(e){var t=n.params&&n.params.id?i.children.get(n.params.id):i;if(t)return a.showNewPage({wallet:t});UIUtils.alert.error("ERROR.UNKNOWN_WALLET_ID")}}function pe(e,t,n,i,a){e.options=e.options||{},e.options.like=e.options.like||{index:"user",type:"profile",service:a.like},e.canEdit=!0,angular.extend(this,t("ESLikesCtrl",{$scope:e})),angular.extend(this,t("ESExtensionCtrl",{$scope:e})),e.$watch("formData.pubkey",(function(t){t&&e.loadLikes(t)}))}function me(e,t,n){angular.extend(this,t("ESExtensionCtrl",{$scope:e})),e.openRegistryLookup=function(){var t=e.search.text&&e.search.text.trim()||"",i=e.search.location&&e.search.location.trim()||"",a={q:t.length?t:void 0,location:i.length?i:void 0};n.go("app.wot_lookup.tab_registry",a)}}function Ee(e,t,n,i,a,o,r,s,l,c,u,d,p){e.options=e.options||{},e.options.like=e.options.like||{kinds:l.constants.KINDS,index:"user",type:"profile",service:d.like},e.smallscreen=angular.isDefined(e.smallscreen)?e.smallscreen:a.screen.isSmall(),angular.extend(this,i("ESLikesCtrl",{$scope:e})),angular.extend(this,i("ESExtensionCtrl",{$scope:e})),e.canCertify=!1,e.showNewMessageModal=function(t){return r.login({minData:!0,method:"default"}).then((function(){return a.loading.hide(),!(!t&&!e.formData.profile)||a.alert.confirm("MESSAGE.CONFIRM.USER_HAS_NO_PROFILE").then((function(e){if(e)return!0}))})).then((function(t){return!!t&&c.showMessageCompose({destPub:e.formData.pubkey,destUid:e.formData.name||e.formData.uid}).then((function(e){e&&a.toast.show("MESSAGE.INFO.MESSAGE_SENT")}))}))},e.showSuggestCertificationModal=function(){var t;return e.hideCertificationActionsPopover(),r.auth({minData:!0}).then((function(i){if(a.loading.hide(),i)return i.isMember?o.showWotLookup({allowMultiple:!0,enableFilter:!0,title:"WOT.SUGGEST_CERTIFICATIONS_MODAL.TITLE",help:"WOT.SUGGEST_CERTIFICATIONS_MODAL.HELP",okText:"COMMON.BTN_NEXT",okType:"button-positive"}).then((function(o){if(o&&o.length)return t=o,n.all([u.box.getKeypair(i.keypair),a.alert.confirm("WOT.CONFIRM.SUGGEST_CERTIFICATIONS",void 0,{okText:"COMMON.BTN_SEND"})]).then((function(a){if(a){var o=a[0];if(a[1]){var r=moment().utc().unix();return n.all(t.reduce((function(t,n){return t.concat(p.send({issuer:i.pubkey,recipient:e.formData.pubkey,time:r,content:[n.uid,n.pubkey].join("-")},o,"certification"))}),[]))}}})).then((function(){a.toast.show("INVITATION.INFO.INVITATION_SENT")})).catch(a.onError("INVITATION.ERROR.SEND_INVITATION_FAILED"))})):a.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")}))},e.showAskCertificationModal=function(){var t;return e.hideCertificationActionsPopover(),(r.children.count()?o.showSelectWallet({displayBalance:!1}):n.when(r)).then((function(e){if(!e)throw"CANCELLED";return e.auth({minData:!0})})).then((function(e){if(a.loading.hide(),e)return e.isMember?o.showWotLookup({allowMultiple:!0,enableFilter:!1,title:"WOT.ASK_CERTIFICATIONS_MODAL.TITLE",help:"WOT.ASK_CERTIFICATIONS_MODAL.HELP",okText:"COMMON.BTN_NEXT",okType:"button-positive"}).then((function(i){if(i&&i.length)return t=i,n.all([u.box.getKeypair(e.keypair),a.alert.confirm("WOT.CONFIRM.ASK_CERTIFICATIONS",void 0,{okText:"COMMON.BTN_SEND"})]).then((function(i){var o=i&&i[0],r=i&&i[1];if(o&&r){var s=moment().utc().unix();return n.all(t.reduce((function(t,n){return t.concat(p.send({issuer:e.pubkey,recipient:n.pubkey,time:s,content:[e.uid,e.pubkey].join("-")},o,"certification"))}),[])).then((function(){a.toast.show("INVITATION.INFO.INVITATION_SENT")})).catch(a.onError("INVITATION.ERROR.SEND_INVITATION_FAILED"))}}))})):a.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")}))},e.askCertification=function(){return e.hideCertificationActionsPopover(),(r.children.count()?o.showSelectWallet({displayBalance:!1}):n.when(r)).then((function(e){return e.auth({minData:!0})})).then((function(t){if(a.loading.hide(),t)return t.isMember?a.alert.confirm("WOT.CONFIRM.ASK_CERTIFICATION",void 0,{okText:"COMMON.BTN_SEND"}).then((function(n){if(n)return p.send({issuer:t.pubkey,recipient:e.formData.pubkey,content:[t.uid,t.pubkey].join("-")},{type:"certification",keypair:t.keypair}).then((function(){a.toast.show("INVITATION.INFO.INVITATION_SENT")})).catch(a.onError("INVITATION.ERROR.SEND_INVITATION_FAILED"))})):a.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")}))},e.$watch("formData.pubkey",(function(t){t&&e.loadLikes(t)})),e.showCertificationActionsPopover=function(t){a.popover.show(t,{templateUrl:"plugins/es/templates/wot/popover_certification_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.certificationActionsPopover=t}})},e.hideCertificationActionsPopover=function(){return e.certificationActionsPopover&&(e.certificationActionsPopover.hide(),e.certificationActionsPopover=null),!0},e.showActionsPopover=function(t){a.popover.show(t,{templateUrl:"plugins/es/templates/wot/view_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){return e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null),!0},"buttons-top-fab"===e.extensionPoint&&e.$on("$csExtension.motion",(function(t){e.formData.profile&&e.showFab("fab-compose-"+e.formData.pubkey)}))}function be(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g){angular.extend(this,a("ESLookupPositionCtrl",{$scope:e})),e.search={text:"",results:[],loading:!0,lastRecords:!0,type:null,category:null,location:null,advanced:null,issuer:null,geoDistance:isNaN(p.data.plugins.es.geoDistance)?20:p.data.plugins.es.geoDistance},e.searchTextId="registrySearchText",e.enableFilter=!0,e.smallscreen=angular.isDefined(e.smallscreen)?e.smallscreen:c.screen.isSmall(),e.options=angular.merge(e.options||{},{location:{show:!0,help:"REGISTRY.SEARCH.LOCATION_HELP"}}),e.enter=function(n,i){if(!e.entered||!e.search.results||0===e.search.results.length){if(!e.geoUnit)return r("LOCATION.DISTANCE_UNIT").then((function(t){return e.geoUnit=t,e.enter(n,i)}));var a=function(){e.searchTextId&&t(e.searchTextId),e.entered=!0,e.doSearch()};if(i.stateParams&&i.stateParams.q&&"string"==typeof i.stateParams.q&&(e.search.text=i.stateParams.q),i.stateParams&&i.stateParams.hash&&(e.search.text="#"+i.stateParams.hash),i.stateParams&&i.stateParams.location)e.search.location=i.stateParams.location,i.stateParams.lat&&i.stateParams.lon&&(e.search.geoPoint={lat:parseFloat(i.stateParams.lat),lon:parseFloat(i.stateParams.lon)}),i.stateParams.d&&(e.search.geoDistance=i.stateParams.d);else{var o=p.data.plugins.es.registry&&p.data.plugins.es.registry.defaultSearch;if(o&&(o.location?angular.merge(e.search,p.data.plugins.es.registry.defaultSearch):o=void 0),!o&&m.isLogin()&&m.data.profile){if(!m.isDataLoaded())return c.loading.show(),m.loadData().then((function(){return c.loading.hide(),e.enter(n,i)}));e.search.geoPoint=m.data.profile.geoPoint,e.search.location=m.data.profile.city||(m.data.profile.geoPoint?r.instant("LOCATION.PROFILE_POSITION"):void 0)}}i.stateParams&&(i.stateParams.type||i.stateParams.last)?i.stateParams.last||"last"==i.stateParams.type?(e.search.lastRecords=!0,e.search.type=void 0):e.search.type=i.stateParams.type:e.search.lastRecords=!1,i.stateParams&&i.stateParams.issuer&&(e.search.issuer=i.stateParams.issuer),i.stateParams&&i.stateParams.category?b.category.get({id:i.stateParams.category}).then((function(t){e.search.category=t,a()})).catch(c.onError("REGISTRY.ERROR.LOAD_CATEGORY_FAILED")):a()}e.showFab("fab-add-registry-record")},e.$on("$ionicView.enter",(function(t,n){return e.enter(t,n)})),e.leave=function(){var t=!1;p.data.plugins.es.registry=p.data.plugins.es.registry||{},p.data.plugins.es.registry.defaultSearch=p.data.plugins.es.registry.defaultSearch||{};var i=e.search.location&&e.search.location.trim(),a=p.data.plugins.es.registry.defaultSearch.location;a&&a===i||(p.data.plugins.es.registry.defaultSearch={location:i,geoPoint:i&&e.search.geoPoint?angular.copy(e.search.geoPoint):void 0},t=!0);var o=p.data.plugins.es.geoDistance;o&&o===e.search.geoDistance||(p.data.plugins.es.geoDistance=e.search.geoDistance,t=!0),t&&n((function(){p.store()}))},e.$on("$ionicView.leave",(function(){return e.leave()})),e.onGeoPointChanged=function(){e.search.loading||e.search.geoPoint&&e.search.geoPoint.lat&&e.search.geoPoint.lon&&!e.search.geoPoint.exact&&(e.doSearch(),e.updateLocationHref())},e.$watch("search.geoPoint",e.onGeoPointChanged,!0),e.resolveLocationPosition=function(){if(!e.search.loadingPosition)return e.search.loadingPosition=!0,e.searchPosition(e.search.location).then((function(t){if(!t)throw e.search.loading=!1,e.search.results=void 0,e.search.total=0,e.search.loadingPosition=!1,e.search.geoPoint=void 0,"CANCELLED";e.search.geoPoint=t,t.shortName&&!t.exact&&(e.search.location=t.shortName),e.search.loadingPosition=!1}))},e.doGetLastRecords=function(t){return e.hidePopovers(),e.search.text=void 0,e.doSearch(t)},e.doSearchText=function(){e.doSearch(),l.keyboard.close()},e.doSearch=function(t){if(e.search.loading=!t,e.search.location&&e.search.location.length>=3&&!e.search.geoPoint)return e.resolveLocationPosition().then((function(){return e.doSearch(t)}));var n=e.search.text&&e.search.text.trim()||"";e.search.lastRecords=!n||!n.length;var i=[],a=[];if(n&&n.length)if(d.regexp.PUBKEY.test(n))a.push({term:{pubkey:n}});else{var o=(n=n.toLowerCase())?g.util.parseTags(n):void 0;i.push({multi_match:{query:n,fields:["title","description","city","address"],type:"phrase_prefix"}}),i.push({match:{title:{query:n,boost:2}}}),i.push({prefix:{title:n}}),i.push({match:{description:n}}),i.push({nested:{path:"category",query:{bool:{filter:{match:{"category.name":n}}}}}}),o&&o.length&&a.push({terms:{tags:o}})}else e.search.issuer&&a.push({term:{issuer:e.search.issuer}});e.search.type&&a.push({term:{type:e.search.type}}),e.search.category&&a.push({nested:{path:"category",query:{bool:{filter:{term:{"category.id":e.search.category.id}}}}}});var r=e.search.location&&e.search.location.trim().toLowerCase();if(e.search.geoPoint&&e.search.geoPoint.lat&&e.search.geoPoint.lon)if(r&&r.length){var s=r.split(",")[0];a.push({or:[{and:[{not:{exists:{field:"geoPoint"}}},{match_phrase:{city:s}}]},{geo_distance:{distance:e.search.geoDistance+e.geoUnit,geoPoint:{lat:e.search.geoPoint.lat,lon:e.search.geoPoint.lon}}}]})}else a.push({geo_distance:{distance:e.search.geoDistance+e.geoUnit,geoPoint:{lat:e.search.geoPoint.lat,lon:e.search.geoPoint.lon}}});var l={highlight:{fields:{title:{},description:{},tags:{}}},from:t};return i.length>0&&(l.query=l.query||{bool:{}},l.query.bool.should=i,l.query.bool.minimum_should_match=1),a.length>0&&(l.query=l.query||{bool:{}},l.query.bool.filter=a),e.search.lastRecords&&(l.sort={creationTime:"desc"}),e.updateLocationHref(),e.doRequest(l)},e.doRequest=function(t){(t=t||{}).from=t.from||0,t.size=t.size||10,t.size<10&&(t.size=10),e.search.loading=0===t.from;var n=e.requestId&&e.requestId+1||1;return e.requestId=n,b.record.search(t).then((function(a){if(e.requestId==n){if(!a||!a.hits||!a.hits.length)return e.search.results=t.from>0?e.search.results:[],e.search.total=t.from>0?e.search.total:0,e.search.loading=!1,void(e.search.hasMore=!1);var o=i("formatSlug");_.forEach(a.hits,(function(e){e.urlTitle=o(e.title)})),t.from?e.search.results=e.search.results.concat(a.hits):(e.search.results=a.hits,e.search.total=a.total),e.search.hasMore=e.search.results.length<a.total,e.search.loading=!1,e.motion.show({selector:".list .item",ink:!0})}})).catch((function(n){e.search.loading=!1,e.search.results=t.from>0?e.search.results:[],e.search.total=t.from>0?e.search.total:0,e.search.hasMore=!1,c.onError("REGISTRY.ERROR.LOOKUP_RECORDS_FAILED")(n)}))},e.showMore=function(){var t=e.search.results?e.search.results.length:0;return e.search.loadingMore=!0,(e.search.lastRecords?e.doGetLastRecords:e.doSearch)(t).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})).catch((function(t){console.error(t),e.search.loadingMore=!1,e.search.hasMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.removeType=function(){e.search.type=null,e.doSearch(),e.updateLocationHref()},e.removeCategory=function(){e.search.category=null,e.category=null,e.doSearch(),e.updateLocationHref()},e.removeLocation=function(){e.search.location=null,e.search.geoPoint=null,e.doSearch(),e.updateLocationHref()},e.updateLocationHref=function(t){t||n((function(){var t=e.search.text&&e.search.text.trim(),n=e.search.location&&e.search.location.trim(),i={location:n&&n.length?n:void 0,category:e.search.category?e.search.category.id:void 0,last:!!e.search.lastRecords||void 0,type:e.search.type?e.search.type:void 0,lat:e.search.geoPoint&&e.search.geoPoint.lat||void 0,lon:e.search.geoPoint&&e.search.geoPoint.lon||void 0,d:e.search.geoPoint&&e.search.geoDistance||void 0};t&&t.match(/^#\w+$/)?i.hash=t.substr(1):t&&t.length&&(i.q=t),o.search(i).replace()}))},e.onToggleAdvanced=function(){e.search.entered&&!e.search.lastRecords&&(e.doSearch(),e.updateLocationHref())},e.$watch("search.advanced",e.onToggleAdvanced,!0),e.toggleAdvanced=function(){e.search.advanced=!e.search.advanced,n(e.hidePopovers,200)},e.showRecordTypeModal=function(t){e.hidePopovers(),n((function(){t.isDefaultPrevented()||u.show("plugins/es/templates/registry/modal_record_type.html").then((function(t){t&&(e.search.type=t,e.doSearch(),e.updateLocationHref())}))}),350)},e.showCategoryModal=function(t){n((function(){t.isDefaultPrevented()||b.category.all().then((function(e){return u.show("plugins/es/templates/common/modal_category.html","ESCategoryModalCtrl as ctrl",{categories:e},{focusFirstInput:!0})})).then((function(t){t&&t.parent&&(e.search.category=t,e.doSearch(),e.updateLocationHref())}))}),350)},e.showNewPageModal=function(){return e.hidePopovers(),E.showNewPage()},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"plugins/es/templates/registry/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.filtersPopover=null)},e.showFiltersPopover=function(t){c.popover.show(t,{templateUrl:"plugins/es/templates/registry/lookup_popover_filters.html",scope:e,autoremove:!0,afterShow:function(t){e.filtersPopover=t}})},e.hideFiltersPopover=function(){e.filtersPopover&&(e.filtersPopover.hide(),e.filtersPopover=null)},e.hidePopovers=function(){e.hideActionsPopover(),e.hideFiltersPopover()}}function ge(e,t,n,i,a,o){var r;angular.extend(this,t("ESRegistryLookupCtrl",{$scope:e})),e.searchTextId=void 0,e.enter=function(t,a){return e.entered?a.stateParams&&a.stateParams.refresh?n(e.doSearch,2e3):void 0:(r=a.stateParams&&a.stateParams.id?o.children.get(a.stateParams.id):o)?r.login({minData:!0}).then((function(t){i.loading.hide(),e.search.issuer=t.pubkey,e.search.advanced=!0,n(e.doSearch,100),e.showFab("fab-wallet-add-registry-record")})):(i.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())},e.doUpdate=function(){if(r&&r.isLogin())return e.search.issuer=o.data.pubkey,e.search.advanced=!0,e.doSearch()},e.showNewPageModal=function(){return e.hidePopovers(),a.showNewPage({wallet:r})}}function fe(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){e.formData={},e.id=null,e.category={},e.pictures=[],e.canEdit=!1,e.showTransfer=!1,e.loading=!0,e.motion=m.motion.fadeSlideIn,e.options=e.options||{},e.options.like={kinds:["LIKE","ABUSE"],index:"page",type:"record"},e.likeData={likes:{},abuses:{}},angular.extend(this,l("ESLikesCtrl",{$scope:e})),e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!m.screen.isSmall()||t.enableBack})),e.$on("$ionicView.enter",(function(t,i){i.stateParams&&i.stateParams.id?((e.loading||i.stateParams.refresh)&&e.load(i.stateParams.id,i.stateParams.anchor),e.$broadcast("$recordView.enter",i)):n.go("app.wot_lookup.tab_registry")})),e.$on("$ionicView.beforeLeave",(function(t,n){e.$broadcast("$recordView.beforeLeave",n)})),e.load=function(t,o){return t=t||e.id,e.loading=!0,i.all([p.record.load(t).then((function(t){e.id=t.id,e.formData=t.record,e.canEdit=d.isUserPubkey(e.formData.issuer)||d.children.hasPubkey(e.formData.issuer),e.showTransfer=!e.canEdit&&e.formData.pubkey,e.issuer=t.issuer,e.avatar=e.formData.avatar,e.avatarStyle=e.formData.avatar&&{"background-image":'url("'+e.avatar.src+'")'},m.loading.hide(),e.loading=!1,e.motion.show({selector:".list > .item, .list > ng-if > .item"})})).catch((function(a){e.secondTry?(e.loading=!1,a&&404===a.ucode?(m.toast.show("REGISTRY.ERROR.RECORD_NOT_EXISTS"),n.go("app.wot_lookup.tab_registry")):m.onError("REGISTRY.ERROR.LOAD_RECORD_FAILED")(a)):(e.secondTry=!0,i((function(){e.load(t)}),100))})),p.record.picture.all({id:t}).then((function(t){e.pictures=t._source.pictures&&t._source.pictures.reduce((function(e,t){return e.concat(E.image.fromAttachment(t.file))}),[]),e.pictures.length>0&&e.motion.show({selector:".lazy-load .item.card-gallery",startVelocity:3e3})})).catch((function(){e.pictures=[]})),a((function(){return e.$broadcast("$recordView.load",t,p.record.comment)}))]).then((function(){e.motion.show({selector:".lazy-load .item",startVelocity:3e3}),o&&a((function(){c(o)}),1e3)}))},e.edit=function(){var t=d.isUserPubkey(e.formData.issuer)?d:d.children.getByPubkey(e.formData.issuer);if(t)return m.loading.show(),n.go("app.registry_edit_record",{id:e.id,wallet:t.id})},e.delete=function(){e.hideActionsPopover();var t,i=d.isUserPubkey(e.formData.issuer)?d:d.children.getByPubkey(e.formData.issuer);i&&s(["REGISTRY.VIEW.REMOVE_CONFIRMATION","REGISTRY.INFO.RECORD_REMOVED"]).then((function(e){return t=e,m.alert.confirm(e["REGISTRY.VIEW.REMOVE_CONFIRMATION"])})).then((function(a){a&&p.record.remove(e.id,{wallet:i}).then((function(){i.data.pages&&i.data.pages.count&&i.data.pages.count--,r.nextViewOptions({historyRoot:!0}),i.isDefault()?n.go("app.wallet_pages",{refresh:!0}):n.go("app.wallet_pages_by_id",{refresh:!0,id:i.id}),m.toast.show(t["REGISTRY.INFO.RECORD_REMOVED"])})).catch(m.onError("REGISTRY.ERROR.REMOVE_RECORD_FAILED"))}))},e.showActionsPopover=function(t){m.popover.show(t,{templateUrl:"plugins/es/templates/registry/view_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){return e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null),!0},e.showSharePopover=function(i){e.hideActionsPopover();var a=e.formData.title,o=(u.shareBaseUrl||t.rootPath)+n.href("app.view_page",{title:a,id:e.id});m.screen.isSmall()&&(i=angular.element(document.querySelector("#registry-share-anchor-"+e.id))||i),m.popover.share(i,{bindings:{url:o,titleKey:"REGISTRY.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:a},time:e.formData.time,postMessage:a}})}}function _e(e,t,n,i,a,o,r,s,l,c,u,d,p,m){var E;angular.extend(this,s("ESPositionEditCtrl",{$scope:e})),e.formData={title:null,description:null,socials:[],geoPoint:null},e.loading=!0,e.dirty=!1,e.walletData=null,e.id=null,e.avatar=null,e.pictures=[],e.setForm=function(t){e.form=t},e.$on("$ionicView.enter",(function(t,n){if(e.loading)return(E=n.stateParams&&n.stateParams.wallet&&"default"!=n.stateParams.wallet?d.children.get(n.stateParams.wallet):d)?E.login({minData:!0}).then((function(t){e.walletData=t,n.stateParams&&n.stateParams.id?e.load(n.stateParams.id):n.stateParams&&n.stateParams.type&&e.updateView({record:{type:n.stateParams.type}}),o("registry-record-title")})):(c.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())})),e.$on("$stateChangeStart",(function(t,i,o,r){if(e.dirty&&!e.saving&&(t.preventDefault(),!e.loading))return e.loading=!0,c.alert.confirm("CONFIRM.SAVE_BEFORE_LEAVE","CONFIRM.SAVE_BEFORE_LEAVE_TITLE",{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES_SAVE"}).then((function(t){return e.loading=!1,t?(e.form.$submitted=!0,e.save(!1,!0).then((function(t){return t&&(e.dirty=!1),t}))):(e.dirty=!1,!0)})).then((function(e){e&&(a.nextViewOptions({historyRoot:!0}),n.go(i.name,o))})).catch((function(e){}))})),e.load=function(t){e.loading=!0,m.record.load(t,{raw:!0}).then((function(t){t&&t.record?e.updateView(t):e.updateView({record:{}})})).catch((function(t){c.loading.hide(10),e.loading=!1,c.onError("REGISTRY.ERROR.LOAD_RECORD_FAILED")(t)}))},e.updateView=function(n){e.formData=n.record||{},e.id=n.id,e.avatar=e.formData.avatar,e.avatar?(e.avatarStyle=e.avatar&&{"background-image":'url("'+e.avatar.src+'")'},e.avatarClass={}):(e.avatarStyle=void 0,e.avatarClass={},e.avatarClass["cion-page-"+e.formData.type]=!e.avatar),e.pictures=n.record&&n.record.pictures||[],delete n.record.pictures,e.motion.show({selector:".animate-ripple .item, .card-gallery",startVelocity:3e3}),c.loading.hide(),t((function(){e.loading=!1}),1e3)},e.onFormDataChanged=function(){e.loading||(e.dirty=!0)},e.$watch("formData",e.onFormDataChanged,!0),e.needCategory=function(){return e.formData.type&&("company"==e.formData.type||"shop"==e.formData.type)},e.save=function(o,s){if(e.form.$submitted=!0,e.saving||!e.form.$valid||("shop"===e.formData.type||"company"===e.formData.type)&&(!e.formData.category||!e.formData.category.id))return i.reject();if(!s)return console.debug("[ES] [page] Waiting debounce end, before saving..."),t((function(){return e.save(o,!0)}),650);e.saving=!0,console.debug("[ES] [page] Saving record...");var l=i.when();return o||(l=c.loading.show()),l.then((function(){var t=e.formData;return e.needCategory()||delete t.category,t.time=moment().utc().unix(),t.geoPoint&&t.geoPoint.lat&&t.geoPoint.lon?(t.geoPoint.lat=parseFloat(t.geoPoint.lat),t.geoPoint.lon=parseFloat(t.geoPoint.lon)):t.geoPoint=null,t.socials&&t.socials.length&&(t.socials=_.uniq(t.socials,!1,(function(e){return e.url}))),t.picturesCount=e.pictures.length,t.picturesCount>0?t.pictures=e.pictures.reduce((function(e,t){return e.concat({file:p.image.toAttachment(t)})}),[]):t.pictures=[],e.avatar&&e.avatar.src?c.image.resizeSrc(e.avatar.src,!0).then((function(e){return t.avatar=p.image.toAttachment({src:e}),t})):(t.avatar={_content:"",_content_type:""},t)})).then((function(t){return e.id?m.record.update(t,{id:e.id,wallet:E}):m.record.add(t,{wallet:E})})).then((function(t){return console.info("[ES] [page] Record successfully saved."),!e.id&&E.data.pages&&E.data.pages.count&&d.data.pages.count++,e.id=e.id||t,e.saving=!1,e.dirty=!1,o||(c.loading.hide(),r("REGISTRY.INFO.RECORD_SAVED").then((function(e){c.toast.show(e)}))),a.clearCache(a.currentView().stateId),a.nextViewOptions({historyRoot:!0}),n.go("app.view_page",{id:e.id,refresh:!0})})).catch((function(t){e.saving=!1,c.onError("REGISTRY.ERROR.SAVE_RECORD_FAILED")(t)}))},e.openPicturePopup=function(){l.camera.getPicture().then((function(t){t&&e.pictures.push({src:"data:image/png;base64,"+t})})).catch(c.onError("ERROR.TAKE_PICTURE_FAILED"))},e.rotateAvatar=function(){if(e.avatar&&e.avatar.src&&!e.rotating)return e.rotating=!0,c.image.rotateSrc(e.avatar.src).then((function(t){e.avatar.src=t,e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.rotating=!1})).catch((function(t){console.error(t),e.rotating=!1}))},e.fileChanged=function(t){return c.loading.show(),i((function(n,i){var a=t.target.files[0];c.image.resizeFile(a).then((function(t){e.pictures.push({src:t}),c.loading.hide(),n()}))}))},e.removePicture=function(t){e.pictures.splice(t,1)},e.favoritePicture=function(t){if(t>0){var n=e.pictures[t];e.pictures.splice(t,1),e.pictures.splice(0,0,n)}},e.cancel=function(){a.goBack()},e.showAvatarModal=function(){return l.camera.enable?l.camera.getPicture().then((function(t){t&&(e.avatar={src:"data:image/png;base64,"+t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.avatarClass={})})).catch(c.onError("ERROR.TAKE_PICTURE_FAILED")):u.show("plugins/es/templates/common/modal_edit_avatar.html","ESAvatarModalCtrl",{}).then((function(t){t&&(e.avatar={src:t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.avatarClass={})}))},e.showRecordTypeModal=function(){u.show("plugins/es/templates/registry/modal_record_type.html").then((function(t){t&&(e.formData.type=t,e.avatar||(e.avatarClass["cion-page-"+t]=!0),e.doSearch(),e.updateLocationHref())}))},e.showCategoryModal=function(t){m.category.all().then((function(e){return u.show("plugins/es/templates/common/modal_category.html","ESCategoryModalCtrl as ctrl",{categories:e},{focusFirstInput:!0})})).then((function(t){t&&t.parent&&(e.formData.category=t,e.doSearch(),e.updateLocationHref())}))}}function Te(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){var b;angular.extend(this,r("ESPositionEditCtrl",{$scope:e})),e.formData={title:null,description:null,socials:[],geoPoint:null},e.loading=!0,e.dirty=!1,e.walletData=null,e.avatar=null,e.existing=!1,e.socialData={url:null},e.socialReorder=!0,e.enter=function(t,n){return(b=n.stateParams&&n.stateParams.id?u.children.get(n.stateParams.id):u)?(e.walletId=b.id,b.auth({minData:!0}).then(e.load).catch((function(t){if("CANCELLED"==t)return c.loading.hide(10),void e.cancel();c.onError("PROFILE.ERROR.LOAD_PROFILE_FAILED")(t)}))):(c.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())},e.$on("$ionicView.enter",e.enter),e.$on("$stateChangeStart",(function(t,n,a,o){if(e.dirty&&!e.saving&&(t.preventDefault(),!e.loading))return e.loading=!0,c.alert.confirm("CONFIRM.SAVE_BEFORE_LEAVE","CONFIRM.SAVE_BEFORE_LEAVE_TITLE",{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES_SAVE"}).then((function(t){return e.loading=!1,t?(e.form.$submitted=!0,e.save(!1,!0).then((function(t){return t&&(e.dirty=!1),t}))):(e.dirty=!1,!0)})).then((function(e){e&&(s.nextViewOptions({historyRoot:!0}),i.go(n.name,a))})).catch((function(e){}))})),e.load=function(t){return e.loading=!0,p.get(t.pubkey,{raw:!0}).then((function(i){return i?(e.avatar=d.image.fromAttachment(i.source.avatar),e.existing=!0,e.updateView(t,i.source)):(e.avatar=void 0,e.existing=!1,e.updateView(t,{})),c.loading.hide(),n((function(){e.loading=!1}),1e3)})).then((function(){a("profile-name")})).catch(c.onError("PROFILE.ERROR.LOAD_PROFILE_FAILED"))},e.setForm=function(t){e.form=t},e.updateView=function(t,n){e.walletData=t,e.formData=n,n.avatar&&(e.avatarStyle={"background-image":'url("'+e.avatar.src+'")'}),e.motion.show()},e.onFormDataChanged=function(){e.loading||(e.dirty=!0)},e.$watch("formData",e.onFormDataChanged,!0),e.save=function(i,a){if(e.form.$invalid||!e.walletData||e.saving&&!a)return t.reject();if(!a)return e.saving=!0,n((function(){return e.save(i,!0)}),650);console.debug("[ES] [profile] Saving user profile..."),i||c.loading.show();var r=function(t){return function(n){e.saving=!1,c.onError(t)(n)}},s=function(t){t&&(e.walletData.name=t.title,e.avatar?e.walletData.avatar=e.avatar:delete e.walletData.avatar,e.walletData.profile=angular.copy(t),e.walletData.profile.description=d.util.parseAsHtml(t.description))},l=function(){if(!i)return c.loading.hide(),o("PROFILE.INFO.PROFILE_SAVED").then((function(e){c.toast.show(e)}))},u=function(t){return t.socials&&t.socials.length&&(t.socials=_.uniq(t.socials,!1,(function(e){return e.url}))),t.position&&(t.position=null),t.geoPoint&&t.geoPoint.lat&&t.geoPoint.lon?(t.geoPoint.lat=parseFloat(t.geoPoint.lat),t.geoPoint.lon=parseFloat(t.geoPoint.lon)):t.geoPoint=null,e.existing?p.update(t,{id:e.walletData.pubkey,wallet:b}).then((function(){return console.info("[ES] Profile successfully updated."),e.saving=!1,e.dirty=!1,s(t),l(),!0})).catch(r("PROFILE.ERROR.SAVE_PROFILE_FAILED")):p.add(t,{wallet:b}).then((function(){return console.info("[ES] [profile] Successfully created."),e.existing=!0,e.saving=!1,e.dirty=!1,s(t),l(),!0})).catch(r("PROFILE.ERROR.SAVE_PROFILE_FAILED"))};return e.avatar&&e.avatar.src?c.image.resizeSrc(e.avatar.src,!0).then((function(t){return e.formData.avatar=d.image.toAttachment({src:t}),u(e.formData)})):(delete e.formData.avatar,u(e.formData))},e.saveAndClose=function(){return e.save().then((function(t){t&&e.close()}))},e.submitAndSaveAndClose=function(){e.form.$submitted=!0,e.saveAndClose()},e.cancel=function(){return e.dirty=!1,b.isDefault()?(s.nextViewOptions({historyRoot:!0}),i.go("app.view_wallet")):i.go("app.view_wallet_by_id",{id:b.id})},e.close=function(){return b.isDefault()?(s.nextViewOptions({historyRoot:!0}),i.go("app.view_wallet",{refresh:!0})):i.go("app.view_wallet_by_id",{refresh:!0,id:b.id})},e.showAvatarModal=function(){return E.camera.enable?E.camera.getPicture().then((function(t){t&&(e.avatar={src:"data:image/png;base64,"+t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0)})).catch(c.onError("ERROR.TAKE_PICTURE_FAILED")):m.show("plugins/es/templates/common/modal_edit_avatar.html","ESAvatarModalCtrl",{}).then((function(t){t&&(e.avatar={src:t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0)}))},e.rotateAvatar=function(){if(e.avatar&&e.avatar.src&&!e.rotating)return e.rotating=!0,c.image.rotateSrc(e.avatar.src).then((function(t){e.avatar.src=t,e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.rotating=!1})).catch((function(t){console.error(t),e.rotating=!1}))},e.removeProfile=function(){return e.hideActionsPopover(),e.existing&&b.auth({minData:!0}).then((function(t){c.loading.hide(),c.alert.confirm("PROFILE.CONFIRM.DELETE",void 0,{okText:"COMMON.BTN_DELETE"}).then((function(i){if(i)return console.debug("[ES] [profile] Deleting user profile..."),c.loading.show(),p.remove(t.pubkey,{wallet:b}).then((function(){return b.isDefault()&&(t.name=null),t.profile=null,t.avatar=null,console.debug("[ES] [profile] Successfully deleted"),e.dirty=!1,e.close()})).then((function(){return n((function(){c.toast.show("PROFILE.INFO.PROFILE_REMOVED")}),750)})).catch(c.onError("PROFILE.ERROR.REMOVE_PROFILE_FAILED"))}))}))},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"plugins/es/templates/user/edit_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function he(e,t,n,i,a,o,r,s,l,c){var u,d=!1;e.search={loading:!0,results:[],hasMore:!1,loadingMore:!1,limit:40,type:"last",text:null,options:{}},e.fabButtonNewMessageId=void 0,e.enter=function(t,n){if(e.search.loading){if(!(u=n.stateParams&&n.stateParams.id?r.children.get(n.stateParams.id):r))return l.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();e.isDefaultWallet=u.isDefault(),e.walletId=u.id,u.auth({minData:!0}).then((function(){e.entered||(e.entered=!0,e.type=e.type||n.stateParams&&n.stateParams.type||"inbox",e.load()),e.fabButtonNewMessageId&&e.showFab(e.fabButtonNewMessageId)})).catch((function(t){"CANCELLED"===t&&(i.nextViewOptions({historyRoot:!0}),e.showHome())}))}else e.updateView()},e.$on("$ionicView.enter",e.enter),e.load=function(t,n,i){var a=angular.copy(e.search.options);return a.from=a.from||t||0,a.size=a.size||n||40,a.type=e.type,a.summary=!1,a.filter="text"==e.search.type&&e.search.text&&e.search.text.trim().length>0?e.search.text:void 0,a.wallet=u,e.search.loading=!i,c.load(a).then((function(t){a.from?t&&(e.search.results=e.search.results.concat(t)):e.search.results=t||[],l.loading.hide(),e.search.loading=!1,e.search.hasMore=e.search.results&&e.search.results.length>=e.search.limit,e.updateView()})).catch((function(t){e.search.loading=!1,a.from||(e.search.results=[]),e.search.hasMore=!1,l.onError("MESSAGE.ERROR.LOAD_MESSAGES_FAILED")(t)}))},e.updateView=function(){e.motion&&e.motion.ionListClass&&e.search.results.length&&e.motion.show({selector:".view-messages .list .item"}),e.$broadcast("$$rebind::rebind")},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit+=40,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit,!0).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.markAllAsRead=function(){e.hideActionsPopover(),e.search.results&&e.search.results.length&&l.alert.confirm("MESSAGE.CONFIRM.MARK_ALL_AS_READ").then((function(t){t&&c.markAllAsRead().then((function(){_.forEach(e.search.results,(function(e){e.read=!0}))})).catch(l.onError("MESSAGE.ERROR.MARK_ALL_AS_READ_FAILED"))}))},e.delete=function(t){var n=e.search.results[t];n&&l.alert.confirm("MESSAGE.CONFIRM.REMOVE").then((function(i){i&&c.remove(n.id,e.type,{walletId:e.walletId}).then((function(){e.search.results.splice(t,1),e.updateView(),l.toast.show("MESSAGE.INFO.MESSAGE_REMOVED")})).catch(l.onError("MESSAGE.ERROR.REMOVE_MESSAGE_FAILED"))}))},e.deleteAll=function(){e.hideActionsPopover(),e.search.results&&e.search.results.length&&l.alert.confirm("MESSAGE.CONFIRM.REMOVE_ALL").then((function(t){t&&c.removeAll(e.type,{walletId:e.walletId}).then((function(){e.search.results.splice(0,e.search.results.length),e.updateView(),l.toast.show("MESSAGE.INFO.All_MESSAGE_REMOVED")})).catch(l.onError("MESSAGE.ERROR.REMOVE_All_MESSAGES_FAILED"))}))},e.doSearchLast=function(){return e.search.type="last",e.search.loadingMore=!1,e.search.limit=40,e.load()},e.doSearch=function(){if(e.search.text&&!(e.search.text.length<3))return e.search.type="text",e.search.loadingMore=!1,e.search.results=[],e.search.limit=40,console.debug("[message] [{0}] Searching for: {1}".format(e.type,e.search.text)),e.load()},e.refresh=function(t){return d=!0,e.load(void 0,void 0,t).then((function(){d=!1})).catch((function(){d=!1}))},e.select=function(n,i){if(!(i.isDefaultPrevented()||e.search.loading||d))return o((function(){if(!d&&!i.isDefaultPrevented())return i.preventDefault(),"default"===e.walletId?t.go("app.user_view_message",{type:e.type,messageId:n.id}):t.go("app.user_view_message_by_id",{type:e.type,messageId:n.id,id:e.walletId})}),200)},e.showNewMessageModal=function(t){return u.login({minData:!0}).then((function(){return l.loading.hide(),(t=t||{}).wallet=e.walletId,s.showMessageCompose(t).then((function(e){e&&l.toast.show("MESSAGE.INFO.MESSAGE_SENT")}))}))},e.showReplyModal=function(t){var i=e.search.results[t];i&&n("MESSAGE.REPLY_TITLE_PREFIX").then((function(t){var n=i.content?i.content.replace(/^/g," > "):null;return n=(n=n?n.replace(/\n/g,"\n > "):null)?n+"\n":null,s.showMessageCompose({destPub:i.issuer,destUid:i.name||i.uid,title:t+i.title,content:n,isReply:!0,wallet:e.walletId})})).then((function(e){e&&l.toast.show("MESSAGE.INFO.MESSAGE_SENT")}))},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"plugins/es/templates/message/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.onMessageDelete=function(t){var n=_.findIndex(e.search.results,(function(e){return e.id==t}));n&&e.search.results.splice(n,1),e.updateView()},c.api.data.on.delete(e,e.onMessageDelete),e.onNewOutboxMessage=function(t){if("outbox"===e.type)return e.search.loading=!0,o((function(){return c.get(t,e.type,{summary:!0,wallet:u})}),500).then((function(t){e.search.results.splice(0,0,t),e.search.loading=!1,e.updateView()})).catch((function(){e.loading=!1}))},c.api.data.on.sent(e,e.onNewOutboxMessage),e.onNewInboxMessage=function(t){if("inbox"===e.type&&e.entered&&u.isUserPubkey(t.issuer))return e.search.loading=!0,c.get(t.id,e.type,{summary:!0,wallet:u}).then((function(t){e.search.results.splice(0,0,t),e.search.loading=!1,e.updateView()})).catch((function(){e.search.loading=!1}))},c.api.data.on.new(e,e.onNewInboxMessage),e.onUnauth=function(){e.search.results=void 0,e.search.loading=!1,e.entered=!1},r.api.data.on.unauth(e,e.onUnauth)}function ve(e,t){angular.extend(this,t("ESMessageAbstractListCtrl",{$scope:e})),e.type="inbox",e.fabButtonNewMessageId="fab-add-message-record-inbox"}function Ie(e,t){angular.extend(this,t("ESMessageAbstractListCtrl",{$scope:e})),e.type="outbox",e.fabButtonNewMessageId="fab-add-message-record-outbox"}function Ne(e,t){angular.extend(this,t("ESMessageComposeModalCtrl",{$scope:e,parameters:{}})),e.enter=function(t,n){return n&&n.stateParams&&e.setParameters(n.stateParams),e.load().then(UIUtils.loading.hide)},e.$on("$ionicView.enter",e.enter),e.cancel=function(){e.sending=!1,e.showHome()},e.setForm=function(t){e.form=t},e.closeModal=function(){e.sending=!1,e.showHome()}}function Oe(e,t,n,i,a,o,r){var s;e.formData={title:null,content:null,destPub:null,walletId:null},e.destUid=null,e.destPub=null,e.isReply=!1,e.enableSelectWallet=!0,e.sending=!1,e.setParameters=function(t){t&&((t.pubkey||t.destPub)&&(e.formData.destPub=t.pubkey||t.destPub,t.uid||t.destUid?(e.destUid=t.uid||t.destUid,e.destPub=""):(e.destUid="",e.destPub=e.formData.destPub)),t.title&&(e.formData.title=t.title),t.content&&(e.formData.content=t.content),e.isReply=t.isReply||!1,t.wallet&&(e.formData.walletId=t.wallet))},e.setParameters(r),e.load=function(){return e.enableSelectWallet=i.children.count()>0,(s=e.enableSelectWallet&&(e.formData.walletId?i.children.get(e.formData.walletId):i)||i).isDefault()?console.debug("[message] Using default wallet"):console.debug("[message] Using {"+s.id+"} wallet"),s.login({minData:!0,silent:!0}).then((function(t){e.walletData=t})).catch((function(t){"CANCELLED"===t&&e.cancel()}))},e.$on("modal.shown",e.load),e.doSend=function(t){if(e.form.$submitted=!0,e.form.$valid){if(!(t||e.formData.content&&e.formData.content.trim().length))return n.alert.confirm("MESSAGE.COMPOSE.CONTENT_CONFIRMATION").then((function(t){t&&e.doSend(!0)}));e.sending=!0,n.loading.show();var i={issuer:s.data.pubkey,recipient:e.formData.destPub,title:e.formData.title,content:e.formData.content,time:moment().utc().unix()};o.send(i,{wallet:s}).then((function(t){e.id=t,n.loading.hide(),e.closeModal(t)})).catch((function(t){e.sending=!1,"CANCELLED"!==t?n.onError("MESSAGE.ERROR.SEND_MSG_FAILED")(t):n.loading.hide()}))}},e.cancel=function(){e.closeModal()},e.showWotLookupModal=function(){t.showWotLookup().then((function(t){t&&(t.uid?(e.destUid=t.uid,e.destPub=""):(e.destUid="",e.destPub=t.pubkey),e.destName=t.name||t.uid,e.formData.destPub=t.pubkey)}))},e.showSelectWalletModal=function(){if(e.enableSelectWallet)return t.showSelectWallet({showDefault:!0,showBalance:!1}).then((function(t){!t||s&&s.id===t.id||(s=t,e.walletData=s.data,console.debug("[message] Using {"+s.id+"} wallet"))}))}}function Re(e,t,n,i,a,o,r,s,l,c){var u;e.formData={},e.id=null,e.loading=!0,e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!r.screen.isSmall()||t.enableBack})),e.enter=function(t,i){if(e.loading){if(!(u=i.stateParams&&i.stateParams.id?c.children.get(i.stateParams.id):c))return r.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();e.isDefaultWallet=u.isDefault(),e.walletId=u.id;var a=i.stateParams&&i.stateParams.messageId;if(e.type=i.stateParams.type||"inbox",angular.isUndefined(a))return void e.goBack();u.auth({minData:!0}).then((function(){return e.load(a,e.type)})).then((function(t){r.loading.hide(),t&&(e.updateView(t),e.showFab("fab-view-message-reply"),t.read||n((function(){e.id===t.id&&l.markAsRead(t,{type:e.type,wallet:u}).then((function(){console.debug("[message] marked as read")})).catch(r.onError("MESSAGE.ERROR.MARK_AS_READ_FAILED"))}),2e3))}))}},e.$on("$ionicView.enter",e.enter),e.load=function(t,n){return n=n||"inbox",l.get(t,n,{wallet:u}).catch(r.onError("MESSAGE.ERROR.LOAD_MESSAGE_FAILED")).then((function(t){return t.valid?t:r.alert.error(e.isUserPubkey(t.recipient)?"MESSAGE.ERROR.NOT_AUTHENTICATED_MESSAGE":"MESSAGE.ERROR.USER_NOT_RECIPIENT","MESSAGE.ERROR.MESSAGE_NOT_READABLE").then((function(){e.goBack(!0)}))}))},e.updateView=function(t){e.loading=!1,e.id=t.id,e.formData=t,e.canDelete=!0,e.motion.show({selector:".view-message .list .item"})},e.delete=function(){e.actionsPopover&&e.actionsPopover.hide(),r.alert.confirm("MESSAGE.CONFIRM.REMOVE").then((function(t){if(t)return l.remove(e.id,e.type,{wallet:u}).then((function(){e.goBack(!0),r.toast.show("MESSAGE.INFO.MESSAGE_REMOVED")})).catch(r.onError("MESSAGE.ERROR.REMOVE_MESSAGE_FAILED"))}))},e.goBack=function(n){n&&a.clearCache(a.currentView().stateId),a.nextViewOptions({historyRoot:!0}),e.isDefaultWallet?e.type&&t.go("app.user_message.tab_"+e.type,{type:e.type}):e.type&&t.go("app.user_messages_by_id.tab_"+e.type,{type:e.type,id:e.walletId})},e.showActionsPopover=function(t){r.popover.show(t,{templateUrl:"plugins/es/templates/message/view_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showReplyModal=function(){var t="inbox"===e.type?"issuer":"recipient";i("MESSAGE.REPLY_TITLE_PREFIX").then((function(n){var i=e.formData.content?e.formData.content.replace(/^/g," > "):null;return i=(i=i?i.replace(/\n/g,"\n > "):null)?i+"\n":null,s.showMessageCompose({destPub:e.formData[t],destUid:e.formData.name||e.formData.uid,title:n+e.formData.title,content:i,isReply:!0,walletId:u.id})})).then((function(e){e&&r.toast.show("MESSAGE.INFO.MESSAGE_SENT").then((function(){a.goBack()}))}))}}function Ae(e,t,n,i,a,o,r,s){var l;e.search={loading:!0,results:null,hasMore:!1,loadingMore:!1,limit:40},e.$on("popover.shown",(function(){e.search.loading&&((l=e.walletId&&i.children.get(e.walletId)||i).isDefault()&&(l.api.data.on.logout(e,e.resetData),o.api.data.on.new(e,e.onNewMessageNotification)),e.load())})),e.load=function(n,i){var a={};return a.from=n||0,a.size=i||40,o.notifications.load(a).then((function(t){e.search.results=n?e.search.results.concat(t):t,e.search.loading=!1,e.search.hasMore=e.search.results&&e.search.results.length>=e.search.limit,e.updateView()})).catch((function(i){e.search.loading=!1,n||(e.search.results=[]),e.search.hasMore=!1,t.onError("MESSAGE.ERROR.LOAD_NOTIFICATIONS_FAILED")(i)}))},e.updateView=function(){e.motion&&e.search.results&&e.search.results.length&&e.motion.show({selector:".popover-notification .item"})},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit=2*e.search.limit,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.onNewMessageNotification=function(t){e.search.loading||e.search.loadingMore||l.isUserPubkey(t.issuer)&&(e.search.results.splice(0,0,t),e.updateView())},e.select=function(t){t.read||(t.read=!0),"default"===e.walletId?n.go("app.user_view_message",{messageId:t.id}):n.go("app.user_view_message_by_id",{messageId:t.id,id:e.walletId}),e.closePopover(t)},e.resetData=function(){e.search.loading||(console.debug("[ES] [messages] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},e.showNewMessageModal=function(n){e.closePopover(),s((function(){(n=n||{}).walletId=l.id,r.showMessageCompose(n).then((function(e){e&&t.toast.show("MESSAGE.INFO.MESSAGE_SENT")}))}),500)},a.api.node.on.stop(e,e.resetData),a.api.node.on.start(e,e.load)}function Se(e,t,n,i,a,o,r,s){var l;e.preventSelect=!1,e.search={loading:!0,results:null,hasMore:!1,loadingMore:!1,limit:40,options:{codes:{excludes:s.constants.EXCLUDED_CODES}}},e.listeners=[],e.setWallet=function(e){l=e},e.$on("$ionicView.enter",(function(t,n){if(e.search.loading){if(!(l=n.stateParams&&n.stateParams.id?r.children.get(n.stateParams.id):r))return a.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();l.login({minData:!0}).then((function(){return e.load(),a.loading.hide(),e.addListeners(),i((function(){e.resetUnreadCount()}),1e3)}))}})),e.refresh=function(t){return e.load(void 0,void 0,t)},e.load=function(t,n,i){if((l=l||r).data.pubkey){e.search.preventSelect=!0;var o=angular.copy(e.search.options);return o.from=o.from||t||0,o.size=o.size||n||40,o.pubkey=l.data.pubkey,e.search.loading=!i,s.load(o).then((function(t){o.from?t&&(e.search.results=e.search.results.concat(t)):e.search.results=t||[],e.search.loading=!1,e.search.preventSelect=!1,e.search.hasMore=e.search.results.length>=e.search.limit,e.updateView()})).catch((function(t){e.search.loading=!1,o.from||(e.search.results=[]),e.search.preventSelect=!1,e.search.hasMore=!1,a.onError("COMMON.NOTIFICATIONS.LOAD_NOTIFICATIONS_FAILED")(t)}))}e.search.loading=!0},e.updateView=function(){e.motion&&e.motion.ionListClass&&e.search.results.length&&e.motion.show({selector:".view-notification .item"})},e.markAllAsRead=function(){if(e.hideActionsPopover(),!l.isAuth())return l.auth().then((function(){return a.loading.hide(),e.markAllAsRead()}));e.search.results.length&&a.loading.show().then((function(){l.data.notifications.unreadCount=0;var t=e.search.results[0];return l.data.notifications.time=t?t.time:0,_.forEach(e.search.results,(function(e){e.markAsRead&&"function"==typeof e.markAsRead&&e.markAsRead()})),a.loading.hide()}))},e.resetUnreadCount=function(){if(e.search.loading||!l.data.notifications)return i(e.resetUnreadCount,2e3);if(l.data.notifications.unreadCount&&e.search.results&&e.search.results.length){l.data.notifications.unreadCount=0;var t=e.search.results[0],n=t.time?t.time:0;!n||l.data.notifications.time&&l.data.notifications.time==n||(l.data.notifications.time=n,l.storeData())}},e.select=function(t,a){e.search.loading||t.preventDefault()||e.search.preventSelect||(a.markAsRead&&"function"==typeof a.markAsRead&&i(a.markAsRead),a.state&&n.go(a.state,a.stateParams))},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit+=40,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.onNewNotification=function(t){if(!e.search.loading&&!e.search.loadingMore){var n=_.findIndex(e.search.results,(function(e){return t.time>e.time}));n<0&&(n=0),e.search.results.splice(n,0,t),e.updateView()}},e.resetData=function(){e.search.loading||(console.debug("[ES] [notifications] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},e.showActionsPopover=function(t){a.popover.show(t,{templateUrl:"plugins/es/templates/notification/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.addListeners=function(){if(!l)throw"Controller wallet not set !";e.listeners=[o.api.node.on.stop(e,e.resetData),o.api.node.on.start(e,e.load),l.api.data.on.logout(e,e.resetData)],l.isDefault()&&e.listeners.push(s.api.data.on.new(e,e.onNewNotification))},e.removeListeners=function(){_.forEach(e.listeners,(function(e){e()})),e.listeners=[]}}function Ce(e,t,n,i,a,o){angular.extend(this,n("NotificationsCtrl",{$scope:e})),e.motion=null,e.setWallet(o),e.$on("popover.shown",(function(){e.search.loading&&(e.addListeners(),e.load())})),e.updateView=function(){e.search.results.length&&t((function(){a.ink({selector:".popover-notification .item.ink"})}),100)},e.$on("popover.hidden",e.resetUnreadCount),e.select=function(t,n){!t.preventDefault()&&n&&(n.markAsRead&&"function"==typeof n.markAsRead&&n.markAsRead(),n.state&&i.go(n.state,n.stateParams),e.closePopover(n))}}function Le(e,t,n,i,a,o){angular.extend(this,t("BlockLookupCtrl",{$scope:e})),e.search.text=null,e.search.type="last",e.search.sort=void 0,e.search.asc=!0,e.searchTextId="blockchainSearchText",e.compactMode=!0,e.enableFilter=!0,e.doSearchText=function(){if(!(e.search.text&&e.search.text.trim().length||e.search.filters&&e.search.filters.length))return e.doSearchLast();e.search.type="text",e.doSearch(),i.search({q:e.search.query}).replace()},e.doSearchLast=function(){e.hideActionsPopover(),e.search.type="last",e.search.sort=void 0,e.doSearch(),i.search({q:void 0}).replace()},e.doSearch=function(t){if(!e.search.error){var n;t=angular.isDefined(t)?t:0;var i={};if(e.search.loading=0===t,i.size=e.defaultSizeLimit,"last"==e.search.type)i.from=0===t?0:t+1,e.search.sort?(i.sort={},i.sort[e.search.sort]=e.search.asc?"asc":"desc"):i.sort={number:"desc"},i.excludeCurrent=0===t,n=o.block.search(e.currency,i);else if("text"==e.search.type){var r=o.block.parseSearchText(e.search.text,e.search.filters);e.search.filters=r.filters;var s=e.search.filters.reduce((function(e,t){return e+" AND "+t.text}),"");r.text.length&&(s+=" AND "+r.text),e.search.query=s.substr(5),e.search.text=r.text,i.from=t,e.search.sort?i.sort=e.search.sort+":"+(e.search.asc?"asc":"desc"):i.sort="number:desc",i.excludeCurrent=!0,n=o.block.searchText(e.currency,e.search.query,i)}var l=Date.now();return n.then((function(t){return e.doPrepareResult(t.hits).then((function(){return t}))})).then((function(n){e.showPubkey="issuer"==e.search.sort,e.search.took=0===t?Date.now()-l:e.search.took;var i=0===t?n.total:e.search.total;e.doDisplayResult(n.hits,t,i),e.search.loading=!1})).catch((function(t){e.search.error=!0,e.search.loading=!1,a.onError("BLOCKCHAIN.ERROR.SEARCH_BLOCKS_FAILED")(t).then((function(){e.search.error=!1}))}))}},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.doSearch()},e.showHelpTip=function(){},e.showActionsPopover=function(t){a.popover.show(t,{templateUrl:"plugins/es/templates/blockchain/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.itemRemove=function(t){e.search.filters.splice(t,1),e.doSearchText()},e.toggleShowQuery=function(){e.showQuery=!e.showQuery}}function De(e,t,n,i,a,o,r,s,l,c,u,d,p){e.networkStarted=!1,e.ionItemClass="",e.expertMode=c.data.expertMode&&!s.screen.isSmall(),e.isHttps="https:"===a.location.protocol,e.search={text:"",loading:!0,online:!0,results:[],endpointFilter:r.constants.ES_USER_API,sort:void 0,asc:!0},e.compactMode=!0,e.listeners=[],e.helptipPrefix="helptip-network",e.enableLocationHref=!0,e.removeListeners=function(){e.listeners.length&&(console.debug("[ES] [network] Closing listeners"),_.forEach(e.listeners,(function(e){e()})),e.listeners=[])},e.enter=function(t,n){e.networkStarted||(e.networkStarted=!0,e.search.loading=!0,u.get().then((function(t){t&&(e.node=r.node.same(t.node.host,t.node.port)?r:r.instance(t.node.host,t.node.port),n&&n.stateParams&&("true"===n.stateParams.online&&(e.search.online=!0),n.stateParams.expert&&(e.expertMode="true"==n.stateParams.expert)),e.load())})).catch((function(t){s.onError("ERROR.GET_CURRENCY_FAILED")(t),e.networkStarted=!1})))},e.$on("$ionicParentView.enter",e.enter),e.leave=function(){e.networkStarted&&(e.removeListeners(),d.close(),e.networkStarted=!1,e.search.loading=!0)},e.$on("$ionicView.beforeLeave",e.leave),e.$on("$ionicParentView.beforeLeave",e.leave),e.$on("$destroy",e.leave),e.computeOptions=function(){return{filter:{member:!e.search.type||"member"===e.search.type,mirror:!e.search.type||"mirror"===e.search.type,endpointFilter:angular.isDefined(e.search.endpointFilter)?e.search.endpointFilter:null,online:e.search.online&&!0},sort:{type:e.search.sort,asc:e.search.asc},expertMode:e.expertMode,timeout:l.timeout&&(e.expertMode?l.timeout/10:l.timeout/100)}},e.load=function(){e.search.loading&&(d.start(e.node,e.computeOptions()),e.refreshing=!1,e.listeners.push(d.api.data.on.changed(e,(function(t){e.refreshing||(e.refreshing=!0,p.extendAll(t.peers).then((function(){e.networkStarted&&e.updateView(t),e.refreshing=!1})))}))))},e.updateView=function(t){console.debug("[peers] Updating UI"),e.$broadcast("$$rebind::rebind"),e.search.results=t.peers,e.search.memberPeersCount=t.memberPeersCount,e.search.loading=!e.networkStarted||d.isBusy(),e.loading||e.$broadcast("$$rebind::rebind"),e.motion&&e.search.results&&e.search.results.length>0&&e.motion.show({selector:".item-peer"})},e.refresh=function(){e.search.loading=!0,d.loadPeers()},e.sort=function(){e.search.loading=!0,e.refreshing=!0,d.sort(e.computeOptions()),e.updateView(d.data)},e.toggleOnline=function(t){e.hideActionsPopover(),e.search.online=!1!==t,d.close(),e.search.loading=!0,e.load(),e.enableLocationHref&&n.search(e.search.online?{}:{online:!1}).replace()},e.toggleSearchEndpoint=function(t){e.hideActionsPopover(),e.search.endpointFilter===t||null===t?e.search.endpointFilter=null:e.search.endpointFilter=t,e.sort()},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.sort()},e.selectPeer=function(n){if(n.compacted&&e.compactMode)e.toggleCompactMode();else if(n.online){var i={server:n.getServer()};n.isSsl()&&(i.ssl=!0),n.isTor()&&(i.tor=!0),t.go("app.view_es_peer",i)}},e.$on("csView.action.refresh",(function(t,n){"peers"===n&&e.refresh()})),e.$on("csView.action.showActionsPopover",(function(t,n){e.showActionsPopover(n)})),e.showActionsPopover=function(t){s.popover.show(t,{templateUrl:"plugins/es/templates/network/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showEndpointsPopover=function(e,t,n){e.preventDefault(),e.stopPropagation();var i=t.getEndpoints(n);(i=(i||[]).reduce((function(e,n){var i=r.node.parseEndPoint(n);return e.concat({label:"NETWORK.VIEW.NODE_ADDRESS",value:t.getServer()+(i.path||"")})}),[])).length&&s.popover.show(e,{templateUrl:"templates/network/popover_endpoints.html",bindings:{titleKey:"NETWORK.VIEW.ENDPOINTS."+n,items:i}})},e.showWs2pPopover=function(e,t){return e.stopPropagation(),o("NETWORK.VIEW.PRIVATE_ACCESS").then((function(n){s.popover.show(e,{templateUrl:"templates/network/popover_endpoints.html",bindings:{titleKey:"NETWORK.VIEW.ENDPOINTS.WS2P",valueKey:"NETWORK.VIEW.NODE_ADDRESS",items:[{label:"NETWORK.VIEW.NODE_ADDRESS",value:t.bma.private?n:t.getServer()+(t.bma.path||"")},{label:"NETWORK.VIEW.WS2PID",value:t.bma.ws2pid},{label:"NETWORK.VIEW.POW_PREFIX",value:t.powPrefix}]}})}))}}function ye(e,t,n){angular.extend(this,t("ESNetworkLookupCtrl",{$scope:e})),n=n||{},e.enableFilter=!angular.isDefined(n.enableFilter)||n.enableFilter,e.search.type=angular.isDefined(n.type)?n.type:e.search.type,e.search.endpointFilter=angular.isDefined(n.endpointFilter)?n.endpointFilter:e.search.endpointFilter,e.expertMode=angular.isDefined(n.expertMode)?n.expertMode:e.expertMode,e.ionItemClass=n.ionItemClass||"item-border-large",e.enableLocationHref=!1,e.helptipPrefix="",e.selectPeer=function(t){e.closeModal(t)},e.$on("modal.hidden",(function(){e.leave()})),e.showHelpTip=function(){},e.enter()}function Pe(e,t){angular.extend(this,t("NetworkLookupCtrl",{$scope:e}));var n=n||{};e.enableFilter=!angular.isDefined(n.enableFilter)||n.enableFilter,e.search.type=angular.isDefined(n.type)?n.type:e.search.type,e.search.endpointFilter=angular.isDefined(n.endpointFilter)?n.endpointFilter:e.search.endpointFilter,e.expertMode=angular.isDefined(n.expertMode)?n.expertMode:e.expertMode,e.ionItemClass=n.ionItemClass||"item-border-large",e.helptipPrefix="",e.selectPeer=function(t){e.closePopover(t)},e.$on("popover.hidden",(function(){e.leave()})),e.showHelpTip=function(){},e.enter()}function ke(e,t,n,i,a,o){e.loading=!0,e.formData={},e.load=function(){return e.loading=!0,e.formData={},t.all([i.blockchain.current().then((function(t){e.formData.number=t.number,e.formData.medianTime=t.medianTime,e.formData.powMin=t.powMin,e.formData.useSsl=o.useSsl})).catch((function(){delete e.formData.number,delete e.formData.medianTime,delete e.formData.powMin,delete e.formData.useSsl})),o.node.summary().then((function(t){e.formData.version=t&&t.duniter&&t.duniter.version,e.formData.software=t&&t.duniter&&t.duniter.software})).catch((function(){delete e.formData.version,delete e.formData.software})),o.version.latest().then((function(t){e.formData.latestRelease=t})).catch((function(){delete e.formData.latestRelease}))]).then((function(){if(e.formData.latestRelease&&"cesium-plus-pod"===e.formData.software){var t=a.version.compare(e.formData.version,e.formData.latestRelease.version);e.formData.isPreRelease=t>0,e.formData.hasNewRelease=t<0}else e.formData.isPreRelease=!1,e.formData.hasNewRelease=!1;e.loading=!1,e.$broadcast("$$rebind::rebind")}))},i.api.data.on.newBlock(e,(function(t){e.loading||(console.debug("[peer info] Received new block. Reload content"),e.load())})),n.api.data.on.changed(e,(function(t){e.loading||(console.debug("[peer info] Peer settings changed. Reload content"),e.load())})),e.load()}function Me(e,t,n,i,a,o,r,s,l){e.node={},e.loading=!0,e.isHttps="https:"===n.location.protocol,e.isReachable=!0,e.options={document:{index:l.data.plugins.es&&l.data.plugins.es.document&&l.data.plugins.es.document.index||"user",type:l.data.plugins.es&&l.data.plugins.es.document&&l.data.plugins.es.document.type||"profile"}},e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!a.screen.isSmall()||t.enableBack})),e.$on("$ionicView.enter",(function(t,n){var i=!n.stateParams||!n.stateParams.server,a=n.stateParams&&n.stateParams.server||r.server,o=n.stateParams&&"true"==n.stateParams.ssl||!!i&&r.useSsl,s="true"==n.stateParams.tor||!!i&&r.useTor;return e.load(a,o,s).then((function(){return e.$broadcast("$csExtension.enter",t,n)})).then((function(){e.loading=!1})).catch((function(){e.loading=!1}))})),e.load=function(n,i,l){var c={server:n,host:n,useSsl:i,useTor:l},u=n.split(":");return 2===u.length&&(c.host=u[0],c.port=u[1]),c.url=s.getUrl(c.host,c.port,void 0,c.useSsl),angular.merge(e.node,l?r.lightInstance(c.host+".to",443,443,!0,6e4):r.lightInstance(c.host,c.port,c.useSsl),c),e.isReachable=!e.isHttps||i,e.isReachable?t.all([e.node.network.peering.self().then((function(t){e.node.pubkey=t.pubkey,e.node.currency=t.currency})),e.node.record.count(e.options.document.index,e.options.document.type).then((function(t){e.node.docCount=t})),e.node.network.peers().then((function(t){var n=t.peers.reduce((function(e,t){var n=new X(t);return n.hasEsEndpoint()?(n.online="UP"===t.status,n.blockNumber=n.block.replace(/-.+$/,""),n.ep=r.node.parseEndPoint(n.getEsEndpoints()[0]),n.dns=n.getDns(),n.id=n.keyID(),n.server=n.getServer(),e.concat(n)):e}),[]);return o.extendAll([e.node].concat(n)).then((function(){e.peers=_.sortBy(n,(function(e){var t=1;return t+=1e4*(e.online?1:0),t+=1e3*(e.hasMainConsensusBlock?1:0),-(t+=100*(e.name?1:0))})),e.motion.show({selector:".item-peer"})}))})),e.node.blockchain.current().then((function(t){e.current=t}))]).catch(a.onError(l?"PEER.VIEW.ERROR.LOADING_TOR_NODE_ERROR":"PEER.VIEW.ERROR.LOADING_NODE_ERROR")):r.network.peers().then((function(t){var n=(t&&t.peers||[]).reduce((function(e,t){var n=new X(t);if(!n.hasEsEndpoint())return e;var i=r.node.parseEndPoint(n.getEsEndpoints()[0]);return i.dns!=c.host&&i.ipv4!=c.host&&i.ipv6!=c.host||i.port!=c.port?e:(n.ep=i,e.concat(n))}),[]),i=n.length&&n[0];if(i)return e.node.pubkey=i.pubkey,e.node.currency=i.currency,o.extend(e.node);console.warn("Could not get peer from /network/peers")}))},e.selectPeer=function(e){if(e.online){var t={server:e.getServer()};e.isSsl()&&(t.ssl=!0),e.isTor()&&(t.tor=!0),i.go("app.view_es_peer",t)}},e.openRawPeering=function(t){return e.openLink(t,e.node.url+"/network/peering?pretty")},e.openRawCurrentBlock=function(t){return e.openLink(t,e.node.url+"/network/peering?pretty")}}function we(e,t,n,i,a,o){e.search={loading:!0,results:null,type:"last",hasMore:!1,loadingMore:!1,limit:40},e.enableFilter=!t.screen.isSmall(),e.ionItemClass="item-border-large",e.$on("$ionicView.enter",(function(){e.search.loading&&e.doSearch()})),e.doSearchText=function(){var t=e.search.text&&e.search.text.trim();return t&&t.length?(e.search.type="text",e.doSearch()):e.doSearchLast()},e.doSearchLast=function(){return e.search.type="last",e.doSearch()},e.doSearch=function(n,i){var o={};return o.from=n||0,o.size=i||40,o.text="text"==e.search.type&&e.search.text&&e.search.text.trim(),e.search.loading=!0,a.record.search(o).then((function(t){n?t&&(e.search.results=e.search.results.concat(t)):e.search.results=t||[],e.search.loading=!1,e.search.hasMore=e.search.results.length>=e.search.limit,e.updateView()})).catch((function(i){e.search.loading=!1,n||(e.search.results=[]),e.search.hasMore=!1,t.onError("GROUP.ERROR.SEARCH_GROUPS_FAILED")(i)}))},e.updateView=function(){e.$broadcast("$$rebind::rebind"),e.motion.show({selector:".list.{0} .item".format(e.motion.ionListClass)})},e.select=function(e){e&&e.id&&n.go("app.view_group",{id:e.id})},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit+=40,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.resetData=function(){e.search.loading||(console.debug("[ES] [group] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},i.api.data.on.logout(e,e.resetData),e.showNewRecordModal=function(){e.loadWallet({minData:!0}).then((function(i){t.loading.hide(),e.walletData=i,o.show("plugins/es/templates/group/modal_record_type.html").then((function(e){e&&n.go("app.add_group",{type:e})}))}))}}function Ue(e,t,n,i,a,o,r,s,l){e.formData={},e.id=null,e.pictures=[],e.canEdit=!1,e.loading=!0,e.motion=o.motion.fadeSlideIn,e.$on("$ionicView.enter",(function(n,i){i.stateParams&&i.stateParams.id?((e.loading||i.stateParams.refresh)&&e.load(i.stateParams.id,i.stateParams.anchor),o.loading.hide(),e.$broadcast("$recordView.enter",i)):t.go("app.groups")})),e.load=function(t){s.record.load(t,{fetchPictures:!0}).then((function(n){e.id=n.id,e.formData=n.record,e.issuer=n.issuer,e.canEdit=l.isUserPubkey(e.formData.issuer)||l.children.hasPubkey(e.formData.issuer),e.pictures=n.record.pictures||[],delete n.record.pictures,e.$broadcast("$recordView.load",t,s.record.comment),e.loading=!1,o.loading.hide(),e.updateView()})).catch(o.onError("GROUP.ERROR.LOAD_RECORD_FAILED"))},e.updateView=function(){e.motion.show()},e.edit=function(){o.loading.show(),t.go("app.edit_group",{id:e.id})},e.delete=function(){var n;e.hideActionsPopover(),a(["GROUP.VIEW.REMOVE_CONFIRMATION","GROUP.INFO.RECORD_REMOVED"]).then((function(e){return n=e,o.alert.confirm(e["GROUP.VIEW.REMOVE_CONFIRMATION"])})).then((function(a){a&&s.record.remove(e.id).then((function(){i.nextViewOptions({historyRoot:!0}),t.go("app.groups"),o.toast.show(n["GROUP.INFO.RECORD_REMOVED"])})).catch(o.onError("GROUP.ERROR.REMOVE_RECORD_FAILED"))}))},e.showActionsPopover=function(t){o.popover.show(t,{templateUrl:"plugins/es/templates/group/view_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showSharePopover=function(n){e.hideActionsPopover();var i=e.formData.title,a=(r.shareBaseUrl||$rootScope.rootPath)+t.href("app.view_group",{id:e.id});o.screen.isSmall()&&(n=angular.element(document.querySelector("#group-share-anchor-"+e.id))||n),o.popover.share(n,{bindings:{url:a,titleKey:"GROUP.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:i},time:e.formData.time,postMessage:i}})}}function Be(e,t,n,i,a,o,r,s,l,c){e.walletData={},e.formData={},e.id=null,e.pictures=[],e.loading=!0,e.setForm=function(t){e.form=t},e.$on("$ionicView.enter",(function(t,i){e.loadWallet({minData:!0}).then((function(t){e.walletData=t,i.stateParams&&i.stateParams.id?e.load(i.stateParams.id):(i.stateParams&&i.stateParams.type&&(e.formData.type=i.stateParams.type),e.loading=!1,n.loading.hide(),e.updateView()),l("group-record-title")}))})),e.load=function(i){t.record.load(i,{fetchPictures:!0,html:!1}).then((function(t){e.formData=t.record,e.issuer=t.issuer,e.id=t.id,e.pictures=t.record.pictures||[],delete t.record.pictures,e.loading=!1,n.loading.hide(),e.updateView()})).catch(n.onError("GROUP.ERROR.LOAD_RECORD_FAILED"))},e.updateView=function(){e.motion.show({selector:".list.{0} .item, .card-gallery".format(e.motion.ionListClass)})},e.save=function(){if(e.form.$submitted=!0,!e.saving&&e.form.$valid&&("managed"===e.formData.type||"open"===e.formData.type))return e.saving=!0,n.loading.show().then((function(){var t=e.formData;return t.time=moment().utc().unix(),t.picturesCount=e.pictures.length,t.picturesCount>0?(t.pictures=e.pictures.reduce((function(e,t){return e.concat({file:c.image.toAttachment(t)})}),[]),n.image.resizeSrc(e.pictures[0].src,!0).then((function(e){return t.avatar=c.image.toAttachment({src:e}),t}))):(t.avatar&&(t.avatar={_content:"",_content_type:""}),t.pictures=[],t)})).then((function(n){return e.id?t.record.update(n,{id:e.id}):(n.creationTime=moment().utc().unix(),t.record.add(n))})).then((function(t){return e.id=e.id||t,e.saving=!1,r.clearCache(r.currentView().stateId),r.nextViewOptions({historyRoot:!0}),i.go("app.view_group",{id:e.id,refresh:!0})})).catch((function(t){e.saving=!1,n.onError("GROUP.ERROR.SAVE_RECORD_FAILED")(t)}))},e.openPicturePopup=function(){o.camera.getPicture().then((function(t){e.pictures.push({src:"data:image/png;base64,"+t})})).catch(n.onError("ERROR.TAKE_PICTURE_FAILED"))},e.fileChanged=function(t){return n.loading.show(),a((function(i,a){var o=t.target.files[0];n.image.resizeFile(o).then((function(t){e.pictures.push({src:t}),n.loading.hide(),i()}))}))},e.removePicture=function(t){e.pictures.splice(t,1)},e.favoritePicture=function(t){if(t>0){var n=e.pictures[t];e.pictures.splice(t,1),e.pictures.splice(0,0,n)}},e.cancel=function(){r.goBack()},e.showRecordTypeModal=function(){s.show("plugins/es/templates/group/modal_record_type.html").then((function(t){t&&(e.formData.type=t)}))}}function xe(e,t,n,i,a,o,r,s,l,c,u){var d,p=u.constants.DEFAULT_LOAD_SIZE;e.search={loading:!0,results:null,hasMore:!1,loadingMore:!1,limit:p,options:{codes:{includes:c.constants.INVITATION_CODES}}},e.setWallet=function(e){d=e},e.$on("$ionicView.enter",(function(t,n){if(e.search.loading){if(!(d=n.stateParams&&n.stateParams.id?r.children.get(n.stateParams.id):r))return o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();e.loadWallet({wallet:d,minData:!0}).then((function(){e.addListeners(),s.isAlive()&&(e.load(),e.resetUnreadCount(),e.showFab("fab-new-invitation"))}))}})),e.load=function(t,n){var i=angular.copy(e.search.options);return i.from=i.from||t||0,i.size=i.size||n||p,d=d||r,u.load(i,d.data.keypair).then((function(t){e.search.results=t,e.search.loading=!1,e.search.hasMore=e.search.results&&e.search.results.length>=e.search.limit,e.updateView(),o.loading.hide()})).catch((function(n){if("CANCELLED"==n)return e.cancel();e.search.loading=!1,t||(e.search.results=[]),e.search.hasMore=!1,o.onError("INVITATION.ERROR.LOAD_INVITATIONS_FAILED")(n)}))},e.cancel=function(){},e.updateView=function(){e.motion&&e.search.results&&e.search.results.length&&e.motion.show({selector:".view-invitation .item"})},e.$watchCollection("search.results",e.updateView),e.showMore=function(){e.search.limit=e.search.limit||p,e.search.limit=2*e.search.limit,e.search.limit<p&&(e.search.limit=p),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.onNewInvitation=function(t){e.search.loading||e.search.loadingMore||e.search.results[0]&&e.search.results[0]===t||e.search.results.splice(0,0,t)},e.resetData=function(){e.search.loading||(console.debug("[ES] [invitation] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},e.resetUnreadCount=function(){if(e.search.loading||!d.data.invitations)return a(e.resetUnreadCount,2e3);if(d.data.invitations.unreadCount&&(console.debug("[ES] [invitation] Resetting unread count"),d.data.invitations.unreadCount=0,e.search.results&&e.search.results.length)){var t=e.search.results[0],n=t.time?t.time:0;!n||d.data.invitations.readTime&&d.data.invitations.readTime==n||(d.data.invitations.readTime=n,d.storeData())}},e.deleteAll=function(n){if(e.hideActionsPopover(),e.search.results.length)return n?t.all([o.loading.show(),u.deleteAll(d.data.pubkey)]).then((function(){return e.search.results.splice(0,e.search.results.length),o.loading.hide()})).catch(o.onError("INVITATION.ERROR.REMOVE_ALL_INVITATIONS_FAILED")):o.alert.confirm("INVITATION.CONFIRM.DELETE_ALL_CONFIRMATION").then((function(t){if(t)return e.deleteAll(t)}))},e.delete=function(t){var n=e.search.results[t];if(n)return u.delete(n).then((function(){e.search.results[t]&&e.search.results[t]===n&&e.search.results.splice(t,1)})).catch(o.onError("INVITATION.ERROR.REMOVE_INVITATION_FAILED"))},e.accept=function(t){e.hideActionsPopover(),t.state&&i.go(t.state,t.stateParams||{})},e.showNewInvitationModal=function(){return e.hideActionsPopover(),a((function(){return l.showNewInvitation({})}),500)},e.showActionsPopover=function(t){o.popover.show(t,{templateUrl:"plugins/es/templates/invitation/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.addListeners=function(){if(!d)throw"Controller wallet not set !";e.listeners=[s.api.node.on.stop(e,e.resetData),s.api.node.on.start(e,e.load),d.api.data.on.logout(e,e.resetData)],d.isDefault()&&e.listeners.push(u.api.data.on.new(e,e.onNewInvitation))}}function Fe(e,t,n){angular.extend(this,t("InvitationsCtrl",{$scope:e})),e.motion=null,e.setWallet(n),e.$on("popover.shown",(function(){e.search.loading&&(e.addListeners(),e.load())})),e.updateView=function(){},e.$on("popover.hidden",e.resetUnreadCount),e.hideActionsPopover=function(){e.closePopover()},e.cancel=function(){e.closePopover()}}function He(e,t,n,i,a,o,r,s,l){var c;e.recipients=[],e.suggestions=[],e.formData={useComment:!1,walletId:null},e.enableSelectWallet=!0,e.setParameters=function(t){t&&(t.wallet&&"default"!==t.wallet?e.formData.walletId=t.wallet:e.formData.walletId=a.id)},e.setParameters(l),e.load=function(){return e.enableSelectWallet=a.children.count()>0,c=e.enableSelectWallet&&(e.formData.walletId?a.children.get(e.formData.walletId):a)||a,e.formData.walletId=c.id,c.isDefault()||console.debug("[transfer] Using {"+c.id+"} wallet"),c.login({sources:!0,silent:!0}).then((function(t){if(e.walletData=t,i.ink({selector:".modal-invitation .ink"}),e.destPub&&!e.destUid)return csWot.extend({pubkey:e.destPub}).then((function(t){e.destUid=t&&(t.name||t.uid),e.destUid&&(e.destPub=""),e.loading=!1}));e.loading=!1})).catch((function(t){if("CANCELLED"===t)return e.cancel();i.onError("ERROR.LOGIN_FAILED")(t)}))},e.$on("modal.shown",e.load),e.onUseCommentChanged=function(){e.formData.useComment||(e.formData.comment=null)},e.$watch("formData.useComment",e.onUseCommentChanged,!0),e.removeRecipient=function(t,n){e.recipients.splice(t,1),n.preventDefault()},e.removeSuggestion=function(t,n){e.suggestions.splice(t,1),n.preventDefault()},e.cancel=function(){e.closeModal()},e.doSend=function(){if(e.form.$submitted=!0,e.form.$valid&&e.recipients.length&&e.suggestions.length)return c.isLogin()?c.auth({silent:!0}).then((function(){return t.all([r.box.getKeypair(c.data.keypair),i.alert.confirm("INVITATION.CONFIRM.SEND_INVITATIONS_TO_CERTIFY",void 0,{okText:"COMMON.BTN_SEND"})])})).then((function(n){var a=n&&n[0],o=n&&n[1];if(a&&o){i.loading.show();var r=moment().utc().unix(),l=e.formData.useComment&&e.formData.comment&&e.formData.comment.trim();return t.all(e.recipients.reduce((function(t,n){return t.concat(e.suggestions.reduce((function(e,t){if(!t.uid||!t.pubkey)return console.error("Unable to send suggestion for this identity (no uid or pubkey)",t),e;var i={issuer:c.data.pubkey,recipient:n.pubkey,time:r,content:[t.uid,t.pubkey].join("-"),comment:l};return e.concat(s.send(i,{wallet:c,type:"certification"}))}),[]))}),[])).then((function(){return e.closeModal(),i.loading.hide()})).then((function(){i.toast.show("INVITATION.INFO.INVITATION_SENT")})).catch(i.onError("INVITATION.ERROR.SUGGEST_CERTIFICATIONS_FAILED"))}})):e.closeModal()},e.showSelectRecipientModal=function(t){if(!t.isDefaultPrevented())return n.showWotLookup({allowMultiple:!0,enableFilter:!0,title:"INVITATION.NEW.RECIPIENTS_MODAL_TITLE",help:"INVITATION.NEW.RECIPIENTS_MODAL_HELP",okText:"COMMON.BTN_OK",okType:"button-positive",selection:angular.copy(e.recipients)}).then((function(t){t&&(e.recipients=t)}))},e.showSelectSuggestionModal=function(t){if(!t.isDefaultPrevented())return n.showWotLookup({allowMultiple:!0,enableFilter:!0,title:"INVITATION.NEW.SUGGESTION_IDENTITIES_MODAL_TITLE",help:"INVITATION.NEW.SUGGESTION_IDENTITIES_MODAL_HELP",okText:"COMMON.BTN_OK",okType:"button-positive",selection:angular.copy(e.suggestions)}).then((function(t){t&&(e.suggestions=t)}))},e.showSelectWalletModal=function(){if(e.enableSelectWallet)return n.showSelectWallet().then((function(t){t&&e.formData.walletId!==t.id&&(console.debug("[transfer] Using {"+t.id+"} wallet"),e.wallet=t,e.walletData=t.data,e.formData.walletId=t.id,e.onAmountChanged())}))}}function We(e,t,n,i,a,o,r,s){var l;e.loading=!0,e.popupData={},e.search={results:[],loading:!0},e.emailFrequencies=[{id:"daily",label:"daily"},{id:"weekly",label:"weekly"}],e.enter=function(t,i){if(e.loading){if(!(l=i.stateParams&&i.stateParams.id?a.children.get(i.stateParams.id):a))return o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();l.auth({minData:!0}).then((function(){return o.loading.hide(),e.load()})).then((function(){e.showFab("fab-add-subscription-record")})).catch((function(t){if("CANCELLED"===t)return o.loading.hide(10),e.loading=!0,void n.goBack();o.onError("SUBSCRIPTION.ERROR.LOAD_SUBSCRIPTIONS_FAILED")(t)}))}},e.$on("$ionicView.enter",e.enter),e.load=function(){return e.loading=!0,s.record.load(l.data.pubkey,l.data.keypair).then((function(e){var t=_.groupBy(e||[],(function(e){return[e.type,e.recipient].join("|")}));return _.keys(t).reduce((function(e,n){var i=n.split("|");return e.concat({type:i[0],recipient:i[1],items:t[n]})}),[])})).then((function(e){return i.extendAll(e,"recipient")})).then(e.updateView).catch((function(t){o.loading.hide(10),t&&404==t.ucode?(e.updateView([]),e.existing=!1):o.onError("PROFILE.ERROR.LOAD_PROFILE_FAILED")(t)}))},e.updateView=function(t){t&&(e.search.results=t),e.search.results&&e.search.results.length&&e.motion.show(),e.search.loading=!1},e.addSubscription=function(){e.showCategoryModal().then((function(t){if(t){if("email"===t.id)return e.showEmailModal();o.alert.notImplemented()}})).then((function(t){t&&(o.loading.show(),s.record.add(t,{wallet:l}).then(e.addToUI).then((function(){l.data.subscriptions=l.data.subscriptions||{count:0},l.data.subscriptions.count++,o.loading.hide(),e.updateView()})).catch(o.onError("SUBSCRIPTION.ERROR.ADD_SUBSCRIPTION_FAILED")))}))},e.editSubscription=function(t){var n,i=angular.copy(t);if("email"===t.type&&(n=e.showEmailModal(t)),n)return n.then((function(n){if(n)return o.loading.show(),t.id=i.id,s.record.update(t,l).then((function(){if(i.type!==t.type||i.recipient!==t.recipient)return e.removeFromUI(i),e.addToUI(t)})).then((function(){o.loading.hide(),e.updateView()})).catch(o.onError("SUBSCRIPTION.ERROR.UPDATE_SUBSCRIPTION_FAILED"))}))},e.deleteSubscription=function(t,n){if(t&&t.id){if(!n)return o.alert.confirm("SUBSCRIPTION.CONFIRM.DELETE_SUBSCRIPTION").then((function(n){if(n)return e.deleteSubscription(t,n)}));o.loading.show(),s.record.remove(t.id,{wallet:l}).then((function(){l.data.subscriptions=l.data.subscriptions||{count:1},l.data.subscriptions.count--,e.removeFromUI(t),o.loading.hide()})).catch(o.onError("SUBSCRIPTION.ERROR.DELETE_SUBSCRIPTION_FAILED"))}},e.removeFromUI=function(t){var n=_.findWhere(e.search.results,{type:t.type,recipient:t.recipient}),i=_.findIndex(n.items,t);i>=0&&n.items.splice(i,1),n.items.length||(i=_.findIndex(e.search.results,n),e.search.results.splice(i,1))},e.addToUI=function(n){e.search.results=e.search.results||[];var a=_.findWhere(e.search.results,{type:n.type,recipient:n.recipient});return a?(a.items.push(n),t.when(n)):(a={type:n.type,recipient:n.recipient,items:[]},i.extendAll([a],"recipient").then((function(){return a.items.push(n),e.search.results.push(a),n})))},e.showCategoryModal=function(){return s.category.all().then((function(e){return r.show("plugins/es/templates/common/modal_category.html","ESCategoryModalCtrl as ctrl",{categories:e},{focusFirstInput:!0})})).then((function(e){if(e&&e.parent)return e}))},e.showEmailModal=function(e){return r.show("plugins/es/templates/subscription/modal_email.html","ModalEmailSubscriptionsCtrl",e,{focusFirstInput:!0})}}function Ve(e,t,n,i,a,o,r){e.frequencies=[{id:"daily",label:"daily"},{id:"weekly",label:"weekly"}],e.formData=r||{},e.formData.content=e.formData.content||{},e.formData.content.frequency=e.formData.content.frequency||e.frequencies[0].id,e.recipient={},e.$on("modal.shown",(function(){return e.formData.recipient?(e.recipient={pubkey:e.formData.recipient},a.extendAll([e.recipient])):i.network.peering.self().then((function(t){if(t)return e.formData.recipient=t.pubkey,e.recipient={pubkey:e.formData.recipient},a.extendAll([e.recipient])}))})),e.doSubmit=function(){if(e.form.$submitted=!0,e.form.$valid&&e.formData.content.email&&e.formData.content.frequency){var t={type:"email",recipient:e.formData.recipient,content:{email:e.formData.content.email,locale:n.data.locale.id,frequency:e.formData.content.frequency}};e.closeModal(t)}},e.cancel=function(){e.closeModal()},e.subscriptionForm&&e.subscriptionForm.$setPristine(),e.showNetworkLookup=function(){return o.showNetworkLookup({enableFilter:!0,endpointFilter:i.constants.ES_SUBSCRIPTION_API}).then((function(t){t&&(e.recipient=t,e.formData.recipient=t.pubkey)}))}}function Ge(e,t,n,i,a,o,r,s,l){e.search=e.search||{loading:!0,hasMore:!1,text:void 0,index:"invitation",type:"certification",results:[],sort:"time",asc:!1,loadingMore:!1},e.entered=!1,e.searchTextId="documentSearchText",e.ionItemClass="item-border-large",e.defaultSizeLimit=e.defaultSizeLimit||(r.screen.isSmall()?50:100),e.helptipPrefix="helptip-document",e.compactMode=!angular.isDefined(e.compactMode)||e.compactMode,e._source=e._source||["issuer","hash","time","creationTime","title","message"],e.showHeaders=!angular.isDefined(e.showHeaders)||e.showHeaders,e.enter=function(t,n){e.entered||(e.entered=!0,e.search.index=n.stateParams&&n.stateParams.index||e.search.index,e.search.type=n.stateParams&&n.stateParams.type||e.search.type,e.search.text=n.stateParams&&n.stateParams.q||e.search.text,e.search.last=!e.search.text,e.load()),e.expertMode=angular.isDefined(e.expertMode)?e.expertMode:!r.screen.isSmall()&&a.data.expertMode},e.$on("$ionicView.enter",e.enter),e.computeOptions=function(t,n){var i={index:e.search.index,type:e.search.type,from:t||0,size:n||e.defaultSizeLimit};return e.search.sort?(i.sort={},i.sort[e.search.sort]=e.search.asc?"asc":"desc"):i.sort={time:"desc"},i._source=i._source||e._source,i},e.load=function(t,n,i){if(!e.search.error){var a=e.computeOptions(t,n);return e.search.loading=!i,(e.search.last?l.search(a):l.searchText(e.search.text||"",a)).then((function(n){t?e.search.results=e.search.results.concat(n.hits):(e.search.results=n.hits,e.search.took=n.took),e.search.total=n.total,r.loading.hide(),e.search.loading=!1,e.search.hasMore=n.hits&&n.hits.length>0&&n.total>e.search.results.length,e.updateView()})).catch((function(t){e.search.results=[],e.search.loading=!1,e.search.error=!0,e.search.hasMore=!1,r.onError("DOCUMENT.ERROR.LOAD_DOCUMENTS_FAILED")(t).then((function(){e.search.error=!1}))}))}},e.updateView=function(){e.motion&&e.search.results&&e.search.results.length&&e.motion.show({selector:".list .item.item-document"}),e.$broadcast("$$rebind::rebind")},e.doSearchText=function(){return e.search.last=!e.search.text,e.load().then((function(){n.search({q:e.search.text}).replace()}))},e.doSearchLast=function(){return e.search.last=!0,e.search.text=void 0,e.load()},e.removeAll=function(){if(e.hideActionsPopover(),e.search.results&&e.search.results.length)return r.alert.confirm("DOCUMENT.CONFIRM.REMOVE_ALL").then((function(t){if(t)return r.loading.show(),l.removeAll(e.search.results).then((function(){return e.search.loading=!1,i((function(){return r.toast.show("DOCUMENT.INFO.REMOVED"),e.load()}),1e3)})).catch(r.onError("DOCUMENT.ERROR.REMOVE_ALL_FAILED"))}))},e.remove=function(t,n){var i=e.search.results[n];i&&!t.defaultPrevented&&(t.stopPropagation(),r.alert.confirm("DOCUMENT.CONFIRM.REMOVE").then((function(t){if(t)return l.remove(i).then((function(){e.search.results.splice(n,1),e.$broadcast("$$rebind::rebind"),r.toast.show("DOCUMENT.INFO.REMOVED")})).catch(r.onError("MESSAGE.ERROR.REMOVE_FAILED"))})))},e.selectDocument=function(t,n){console.debug("Selected document: ",n,s);var i=s.getUrl("/{0}/{1}/_search?pretty&q=_id:{2}".format(n.index,n.type,n.id));return e.openLink(t,i)},e.toggleCompactMode=function(){e.compactMode=!e.compactMode,e.updateView(),!e.search.hasMore&&e.search.results.length&&"last"==e.search.type&&i((function(){e.search.hasMore=!0}),500)},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.load()},e.showMore=function(){e.search.loading||(e.search.loadingMore=!0,e.load(e.search.results.length,e.defaultSizeLimit,!0).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})))},e.startListenChanges=function(){var t=Date.now(),n=e.search.index+"/"+e.search.type,i=s.websocket.changes(n);return i.open().then((function(){console.debug("[ES] [document] Websocket opened in {0} ms".format(Date.now()-t)),i.on((function(t){e.search.last&&t&&l.fromHit(t).then((function(n){"DELETE"===t._operation?e.onDeleteDocument(n):e.onNewDocument(n)}))}))}))},e.onNewDocument=function(t){if(e.search.last&&!e.search.loading){console.debug("[ES] [document] Detected new document: ",t);var n=_.findIndex(e.search.results,{id:t.id,index:t.index,type:t.type});n<0?(e.search.total++,e.search.results.splice(0,0,t)):(t.updated=!0,i((function(){t.updated=!1}),2e3),e.search.results.splice(n,1,t)),e.updateView()}},e.onDeleteDocument=function(t){e.search.last&&!e.search.loading&&i((function(){var n=_.findIndex(e.search.results,{id:t.id,index:t.index,type:t.type});n<0||(console.debug("[ES] [document] Detected document deletion: ",t),e.search.results.splice(n,1),e.search.total--,e.updateView())}),750)},e.showActionsPopover=function(t){r.popover.show(t,{templateUrl:"plugins/es/templates/document/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.resetData=function(){e.search.loading||(console.debug("[ES] [document] Resetting data (settings or account may have changed)"),e.search.results=[],e.search.loading=!1,e.search.total=void 0,e.search.loadingMore=!1,e.entered=!1,delete e.search.limit)},o.api.data.on.unauth(e,e.resetData)}function Ye(e,t,n,i,a){angular.extend(this,t("ESDocumentLookupCtrl",{$scope:e})),e.search={loading:!0,hasMore:!0,text:void 0,index:"user,page,group",type:"profile,record,comment",results:void 0,sort:"time",asc:!1},e.expertMode=!1,e.defaultSizeLimit=20,e._source=["issuer","hash","time","creationTime","title","avatar._content_type","city","message","record","type"],e.showHeaders=!1,e.$on("$ionicParentView.enter",e.enter),e.selectDocument=function(e,t){if(t&&e&&!e.defaultPrevented)if(e.stopPropagation(),"user"===t.index&&"profile"===t.type)i.go("app.wot_identity",{pubkey:t.pubkey,uid:t.name});else if("page"===t.index&&"record"===t.type)i.go("app.view_page",{title:t.title,id:t.id});else if("page"===t.index&&"comment"===t.type){var n=a("formatHash")(t.id);i.go("app.view_page_anchor",{title:t.title,id:t.record,anchor:n})}else"group"===t.index&&"record"===t.type?i.go("app.view_group",{title:t.title,id:t.id}):"group"===t.index&&"comment"===t.type?(n=a("formatHash")(t.id),i.go("app.view_group_anchor",{title:t.title,id:t.record,anchor:n})):console.warn("Click on this kind of document not implement yet!",t)};var o=e.computeOptions;e.computeOptions=function(t,n){var i=o(t,n);if(!i.sort||i.sort.time){var a=i.sort&&i.sort.time||a;i.sort=[{time:a}]}return i._source=i._source||e._source,i.getTimeFunction=function(e){return e.time=e.creationTime||e.time,e.time},i},n((function(){e.startListenChanges()}),1e3)}function je(e,t,n,i,a,o,r,s,l,c){e.entered=!1,e.abuseData={},e.abuseLevels=[{value:1,label:"LOW"},{value:2,label:"LOW"}],e.staring=!1,e.options=e.options||{},e.options.like=e.options.like||{kinds:c.constants.KINDS,index:void 0,type:void 0,id:void 0},e.$on("$recordView.enter",(function(t,n){e.entered?e.id&&e.loadLikes(e.id):e.entered=!1})),e.$on("$recordView.load",(function(t,n){e.id=n||e.id,e.id&&e.loadLikes(e.id)})),e.initLikes=function(){if(!e.likeData)throw new Error("Missing 'likeData' in scope. Cannot load likes counter");if(!e.options.like.service){if(!e.options.like.index||!e.options.like.type)throw new Error("Missing 'options.like.index' or 'options.like.type' in scope. Cannot load likes counter");e.options.like.service=c.instance(e.options.like.index,e.options.like.type)}e.options.like.kinds||(e.options.like.kinds=_.filter(c.constants.KINDS,(function(t){var n=t.toLowerCase()+"s";return angular.isDefined(e.likeData[n])})))},e.loadLikes=function(n){if(e.likeData&&!e.likeData.loading){n=n||e.likeData.id,e.initLikes();var i=e.options.like.kinds||[];if(i.length){e.likeData.loading=!0;var a=Date.now();console.debug("[ES] Loading counter of {0}... ({1})".format(n.substring(0,8),i));var o=s.isLogin()?s.pubkeys():void 0;return t.all(_.map(i,(function(t){var i=t.toLowerCase()+"s";return e.options.like.service.count(n,{issuers:o,kind:t}).then((function(t){e.likeData[i]&&angular.merge(e.likeData[i],t)}))}))).then((function(){e.likeData.id=n,console.debug("[ES] Loading counter of {0} [OK] in {1}ms".format(n.substring(0,8),Date.now()-a)),_.contains(i,"VIEW")&&!e.canEdit&&e.markAsView(),e.$parent&&(console.debug("[ES] [likes] Adding data and functions to parent scope"),e.$parent.toggleLike=e.toggleLike,e.$parent.reportAbuse=e.reportAbuse),e.likeData.loading=!1})).catch((function(t){console.error(t&&t.message||t),e.likeData.loading=!1}))}}},e.toggleLike=function(i,a){if(e.initLikes(),!e.likeData.id)throw new Error("Missing 'likeData.id' in scope. Cannot apply toggle");(a=a||{}).kind=a.kind&&a.kind.toUpperCase()||"LIKE";var l=a.kind.toLowerCase()+"s";if(e.likeData[l]=e.likeData[l]||{},!0===e.likeData[l].loading||e.likeData.loading)return i.preventDefault(),t.reject();if(!a.pubkey)return(s.children.count()?r.showSelectWallet({displayBalance:!1}):t.when(s)).then((function(t){if(!t)throw"CANCELLED";return a.pubkey=t.data.pubkey,e.toggleLike(i,a)}));var c=s.getByPubkey(a.pubkey)
+;return c?(e.likeData[l].loading=!0,c.auth({minData:!0}).then((function(t){if(t)return t.isMember,a.id=e.likeData.id,e.options.like.service.toggle(e.likeData.id,a);o.loading.hide()})).then((function(t){o.loading.hide(),0!==t&&(e.likeData[l].total=(e.likeData[l].total||0)+t,e.likeData[l].wasHitByPubkey=e.likeData[l].wasHitByPubkey||{},e.likeData[l].wasHitByPubkey[a.pubkey]=t>0,e.likeData[l].wasHitCount+=t),n((function(){e.likeData[l].loading=!1,e.$broadcast("$$rebind::like")}),1e3)})).catch((function(t){e.likeData[l].loading=!1,"CANCELLED"!==t&&(console.error(t),o.onError("LIKE.ERROR.FAILED_TOGGLE_LIKE")(t),i.preventDefault())}))):void 0},e.setAbuseForm=function(t){e.abuseForm=t},e.showAbuseCommentPopover=function(t){return i(["COMMON.REPORT_ABUSE.TITLE","COMMON.REPORT_ABUSE.SUB_TITLE","COMMON.BTN_SEND","COMMON.BTN_CANCEL"]).then((function(t){return o.loading.hide(),a.show({templateUrl:"plugins/es/templates/common/popup_report_abuse.html",title:t["COMMON.REPORT_ABUSE.TITLE"],subTitle:t["COMMON.REPORT_ABUSE.SUB_TITLE"],cssClass:"popup-report-abuse",scope:e,buttons:[{text:t["COMMON.BTN_CANCEL"],type:"button-stable button-clear gray"},{text:t["COMMON.BTN_SEND"],type:"button button-positive  ink",onTap:function(t){if(e.abuseForm.$submitted=!0,e.abuseForm.$valid&&e.abuseData.comment)return e.abuseData;t.preventDefault()}}]})})).then((function(t){if(e.abuseData={},t&&t.comment)return t;o.loading.hide()}))},e.reportAbuse=function(n,i){if(e.likeData&&e.likeData.abuses&&!e.likeData.abuses.wasHitCount&&!e.likeData.abuses.wasHitCount){if(!(i=i||{}).pubkey)return(s.children.count()?r.showSelectWallet({displayBalance:!1}):t.when(s)).then((function(t){if(!t)throw"CANCELLED";return i.pubkey=t.data.pubkey,e.reportAbuse(n,i)}));var a=s.getByPubkey(i.pubkey);if(a&&a.isMember())return i.comment?(i.kind="ABUSE",e.toggleLike(n,i).then((function(){o.toast.show("COMMON.REPORT_ABUSE.CONFIRM.SENT")}))):e.showAbuseCommentPopover(n).then((function(t){if(t&&t.comment)return i.comment=t.comment,i.level=t.level||t.delete&&5||void 0,e.reportAbuse(n,i)}));o.alert.info("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")}},s.api.data.on.reset(e,(function(){_.forEach(e.options.like.kinds||[],(function(t){var n=t.toLowerCase()+"s";e.likeData[n]&&(e.likeData[n].wasHitByPubkey={},e.likeData[n].wasHitCount=0)})),e.$broadcast("$$rebind::like")}),this)}function Ke(e,t,n,i,a,o,r,s,l){function c(t){return moment.unix(t).utc().startOf(e.formData.rangeDuration).unix()}e.loading=!0,e.formData=e.formData||{useRelative:o.data.useRelative,timePct:100,rangeDuration:"day",firstBlockTime:0,scale:"linear",hide:[],beginAtZero:!0},e.formData.useRelative=!1,e.scale="linear",e.height=void 0,e.width=void 0,e.maintainAspectRatio=!0,e.times=[],e.enter=function(t,n){if(e.loading){if(n&&n.stateParams&&(e.stateName=n&&n.stateName,e.stateParams=angular.copy(n&&n.stateParams||{}),!e.formData.currency&&n&&n.stateParams&&n.stateParams.currency&&(e.formData.currency=n.stateParams.currency),n.stateParams.t?e.formData.timePct=n.stateParams.t:n.stateParams.timePct&&(e.formData.timePct=n.stateParams.timePct),n.stateParams.stepUnit&&(e.formData.rangeDuration=n.stateParams.stepUnit),n.stateParams.scale&&(e.formData.scale=n.stateParams.scale),n.stateParams.hide&&(e.formData.hide=n.stateParams.hide.split(",").reduce((function(e,t){return e.concat(parseInt(t))}),[]))),e.init(t,n),!e.formData.currency)return r.get().then((function(i){return e.formData.currency=i?i.name:null,e.formData.firstBlockTime=i?c(i.firstBlockTime):0,e.formData.firstBlockTime||console.warn("[graph] currency.firstBlockTime not loaded ! Should have been loaded by currrency service!"),e.formData.currencyAge=c(moment().utc().unix())-e.formData.firstBlockTime,e.enter(t,n)}));e.load().then((function(){e.setScale(e.formData.scale),e.updateHiddenDataset(),e.loading=!1}))}},e.$on("$csExtension.enter",e.enter),e.$on("$ionicParentView.enter",e.enter),e.updateLocation=function(){e.stateName&&(i.nextViewOptions({disableAnimate:!0,disableBack:!0,historyRoot:!0}),e.stateParams=e.stateParams||{},e.stateParams.t=e.formData.timePct>=0&&e.formData.timePct<100?e.formData.timePct:void 0,e.stateParams.stepUnit="day"!=e.formData.rangeDuration?e.formData.rangeDuration:void 0,e.stateParams.hide=e.formData.hide&&e.formData.hide.length?e.formData.hide.join(","):void 0,e.stateParams.scale="linear"!=e.formData.scale?e.formData.scale:void 0,a.go(e.stateName,e.stateParams,{reload:!1,inherit:!0,notify:!1}))},e.setSize=function(t,n,i){e.height=t,e.width=n,e.maintainAspectRatio=angular.isDefined(i)?i:e.maintainAspectRatio},e.$on("csView.action.refresh",(function(t,n){if(!n||"currency"==n)return e.load()})),e.init=function(e,t){},e.load=function(){},e.toggleScale=function(){e.setScale("linear"===e.formData.scale?"logarithmic":"linear"),e.updateLocation()},e.setScale=function(n){if(e.hideActionsPopover(),e.formData.scale=n,e.options&&e.options.scales&&e.options.scales.yAxes){var i=t("formatInteger");_.forEach(e.options.scales.yAxes,(function(t,a){t.type=n,t.ticks=t.ticks||{},"linear"==n?(t.ticks.beginAtZero=!angular.isDefined(e.formData.beginAtZero)||e.formData.beginAtZero,delete t.ticks.min,t.ticks.callback=function(e){return i(e)}):(delete t.ticks.beginAtZero,delete t.ticks.callback,t.ticks.callback=function(e,t){if(e)return Math.log10(e)%1==0||Math.log10(e/3)%1==0?i(e):""})}))}},e.setRangeDuration=function(t){e.hideActionsPopover(),e.formData&&t==e.formData.rangeDuration||(e.formData.rangeDuration=t,delete e.formData.startTime,delete e.formData.endTime,delete e.formData.rangeDurationSec,e.load(),e.updateLocation())},e.updateHiddenDataset=function(t){t=t||e.datasetOverride||{},_.forEach(e.formData.hide||[],(function(n){if(t[n]){t[n].hidden=!0;var i=t[n].yAxisID,a=i&&e.options&&e.options.scales&&_.findWhere(e.options.scales.yAxes||[],{id:i});i&&a&&1==_.filter(t,(function(e){return e.yAxisID===i})).length&&(a.display=!1)}}))},e.onLegendClick=function(t,n){var i=n.datasetIndex,a=this.chart,o=a.getDatasetMeta(i);o.hidden=null===o.hidden?!a.data.datasets[i].hidden:null,a.config&&a.config.data&&a.config.data.datasets&&1===_.filter(a.config.data.datasets,(function(e){return e.yAxisID&&e.yAxisID===o.yAxisID})).length&&(a.scales[o.yAxisID].options.display=!(!0===o.hidden)),a.update(),e.formData.hide=e.formData.hide||[],e.formData.hide=o.hidden?_.union(e.formData.hide,[i]):_.difference(e.formData.hide,[i]),e.updateLocation()},e.goPreviousRange=function(){e.loadingRange||(e.loadingRange=!0,e.formData.startTime-=e.times.length*e.formData.rangeDurationSec,e.formData.startTime<e.formData.firstBlockTime&&(e.formData.startTime=e.formData.firstBlockTime),e.formData.endTime=e.formData.startTime+e.times.length*e.formData.rangeDurationSec,e.load().then((function(){e.updateLocation(),e.loadingRange=!1})))},e.goNextRange=function(){e.loadingRange||(e.loadingRange=!0,e.formData.startTime+=e.times.length*e.formData.rangeDurationSec,e.formData.startTime>e.formData.firstBlockTime+e.formData.currencyAge-e.formData.timeWindow&&(e.formData.startTime=e.formData.firstBlockTime+e.formData.currencyAge-e.formData.timeWindow),e.formData.endTime=e.formData.startTime+e.times.length*e.formData.rangeDurationSec,e.load().then((function(){e.updateLocation(),e.loadingRange=!1})))},e.onRangeChanged=function(){e.loadingRange||(e.loadingRange=!0,e.formData.startTime=e.formData.firstBlockTime+parseFloat(e.formData.timePct)/100*(e.formData.currencyAge-e.formData.timeWindow),e.formData.endTime=e.formData.startTime+e.times.length*e.formData.rangeDurationSec,e.load().then((function(){e.updateLocation(),e.loadingRange=!1})))},e.updateRange=function(t,n,i){i=!angular.isDefined(i)||i,e.formData.startTime=t,e.formData.endTime=n,e.formData.timeWindow=e.formData.timeWindow||e.formData.endTime-e.formData.startTime,e.formData.rangeDurationSec=e.formData.rangeDurationSec||e.formData.timeWindow/(e.times.length-1),i&&(e.formData.timePct=Math.ceil(100*(e.formData.startTime-e.formData.firstBlockTime)/(e.formData.currencyAge-e.formData.timeWindow)))},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"plugins/graph/templates/common/popover_range_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function $e(e,t,n,i,a,o,r,s){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.displayRightAxis=!0,e.init=function(t,n){n&&n.stateParams&&!e.formData.issuer&&n&&n.stateParams&&n.stateParams.pubkey&&(e.formData.issuer=n.stateParams.pubkey)},e.load=function(t){var i=e.formData;return n.all([o(e.formData.issuer?"GRAPH.BLOCKCHAIN.TX_AMOUNT_PUBKEY_TITLE":"GRAPH.BLOCKCHAIN.TX_AMOUNT_TITLE",i),o(["GRAPH.BLOCKCHAIN.TX_AMOUNT_LABEL","GRAPH.BLOCKCHAIN.TX_COUNT_LABEL","GRAPH.BLOCKCHAIN.TX_AVG_BY_BLOCK","COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"]),r.blockchain.txCount(e.formData.currency,i)]).then((function(n){var i=n[0],o=n[1],r={hour:o["COMMON.DATE_PATTERN"],day:o["COMMON.DATE_SHORT_PATTERN"],month:o["COMMON.DATE_MONTH_YEAR_PATTERN"]};if((n=n[2])&&n.times){e.times=n.times,a("formatInteger");var l=a("formatDecimal");e.currencySymbol=a("currencySymbolNoHtml")(e.formData.currency,e.formData.useRelative),e.formData.rangeDuration,e.data=[n.amount,n.count];var c=r[e.formData.rangeDuration];e.labels=n.times.reduce((function(e,t){return e.concat(moment.unix(t).local().format(c))}),[]),e.colors=s.scale.fix(n.times.length),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.options={responsive:!0,maintainAspectRatio:!0,title:{display:!0,text:i},scales:{yAxes:[{id:"y-axis-amount",position:"left"},{id:"y-axis-count",display:e.displayRightAxis,position:"right",gridLines:{drawOnChartArea:!1}}]},legend:{display:e.displayRightAxis,onClick:e.onLegendClick},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return 0===t.datasetIndex?n.datasets[t.datasetIndex].label+": "+l(t.yLabel)+" "+e.currencySymbol:n.datasets[t.datasetIndex].label+": "+t.yLabel}}}},e.datasetOverride=[{yAxisID:"y-axis-amount",type:"bar",label:o["GRAPH.BLOCKCHAIN.TX_AMOUNT_LABEL"],hoverBackgroundColor:s.rgba.calm(.6)},{yAxisID:"y-axis-count",type:"line",label:o["GRAPH.BLOCKCHAIN.TX_COUNT_LABEL"],fill:!1,borderColor:s.rgba.gray(.5),borderWidth:2,backgroundColor:s.rgba.gray(.5),pointBackgroundColor:s.rgba.gray(.5),pointBorderColor:s.rgba.white(),pointHoverBackgroundColor:s.rgba.gray(1),pointHoverBorderColor:s.rgba.translucent(),pointRadius:3}]}}))},e.onChartClick=function(t,n,a){if(a){var o=e.times[a._index],r=moment.unix(o).utc().add(1,e.formData.rangeDuration).unix(),s="_exists_:transactions AND medianTime:>={0} AND medianTime:<{1}".format(o,r);e.formData.issuer&&(s+=" AND issuer:"+e.formData.issuer),i.go("app.blockchain_search",{q:s})}}}function ze(e,t,n,i,a,o,r){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.load=function(){return n.all([a(["GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_TITLE","GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_LABEL"]),r.blockchain.countByIssuer(e.formData.currency)]).then((function(t){var n=t[0];(t=t[1])&&t.data&&(e.data=t.data,e.labels=t.labels,e.blockCount=t.blockCount,e.issuers=t.issuers,e.barOptions={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_TITLE"]},scales:{yAxes:[{type:"linear",ticks:{beginAtZero:!0}}]}},e.colors=o.scale.custom(t.data.length))}))},e.onChartClick=function(t,n,a){if(a){var o=e.issuers[a._index];i.go("app.wot_identity",o)}}}function qe(e,t,n,i,a,o){e.extensionPoint=n.extensions.points.current.get(),e.enable=i.isEnable(),e.loading=!0,e.node=e.node||{},i.api.state.on.changed(e,(function(t){e.enable=t})),e.enter=function(n,i){return!e.node.currency&&i&&i.stateParams&&i.stateParams.currency&&(e.node.currency=i.stateParams.currency),e.node.currency?e.node.pubkey?e.load():t((function(){return e.enter(n,i)}),500):a.get().then((function(t){return e.node.currency=t?t.name:null,e.enter(n,i)}))},e.$on("$csExtension.enter",e.enter),e.load=function(){if(e.node.currency||e.node.pubkey)return console.info("[Graph] [peer] Loading blocks count for [{0}]".format(e.node.pubkey.substr(0,8))),o.node.blockCount(e.node.currency,e.node.pubkey).then((function(t){e.blockCount=t,e.loading=!1}))}}function Xe(e,t,n,i){e.extensionPoint=t.extensions.points.current.get(),e.enable=i.isEnable(),e.smallscreen=n.screen.isSmall(),i.api.state.on.changed(e,(function(t){e.enable=t}))}function Qe(e,t,n,i,a,o,r,s,l,c){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.formData.useRelative=angular.isDefined(e.formData.useRelative)?e.formData.useRelative:c.data.useRelative,e.displayShareAxis=!0,e.hiddenDatasets=[],e.init=function(e,t){},e.onUseRelativeChanged=function(){e.loading||e.load()},e.$watch("formData.useRelative",e.onUseRelativeChanged);var u=function(e){return Math.trunc(100*e)/100};e.load=function(t,i){return t=t||0,i=i||1e4,n.all([a(["GRAPH.CURRENCY.MONETARY_MASS_TITLE","GRAPH.CURRENCY.MONETARY_MASS_LABEL","GRAPH.CURRENCY.MONETARY_MASS_SHARE_LABEL"]),s.blockchain.withDividend(e.formData.currency,{from:t,size:i})]).then((function(t){var n=t[0];if((t=t[1])&&t.times){e.times=t.times;var i,a=t.times[t.times.length-1]-t.times[0];i=l(a<31557600?"medianDateShort":"formatDateMonth");var o=l("formatDecimal");e.currencySymbol=l("currencySymbolNoHtml")(e.formData.currency,e.formData.useRelative);var s=[];e.formData.useRelative?(s.push(t.blocks.reduce((function(e,t){return e.concat(u(t.monetaryMass/t.dividend/t.membersCount))}),[])),s.push(t.blocks.reduce((function(e,t){return e.concat(u(t.monetaryMass/t.dividend))}),[]))):(s.push(t.blocks.reduce((function(e,t){return e.concat(u(t.monetaryMass/t.membersCount/100))}),[])),s.push(t.blocks.reduce((function(e,t){return e.concat(t.monetaryMass/100)}),[]))),e.data=s,e.labels=t.times.reduce((function(e,t){return e.concat(i(t))}),[]),e.colors=r.scale.fix(t.times.length),e.options={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.CURRENCY.MONETARY_MASS_TITLE"]},legend:{display:e.displayShareAxis,onClick:e.onLegendClick},scales:{yAxes:[{id:"y-axis-mn"},{id:"y-axis-mass",display:e.displayShareAxis,position:"right",gridLines:{drawOnChartArea:!1}}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return n.datasets[t.datasetIndex].label+": "+o(t.yLabel)+" "+e.currencySymbol}}}},e.datasetOverride=[{yAxisID:"y-axis-mn",type:"line",label:n["GRAPH.CURRENCY.MONETARY_MASS_SHARE_LABEL"],borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3},{yAxisID:"y-axis-mass",type:"line",label:n["GRAPH.CURRENCY.MONETARY_MASS_LABEL"],fill:!1,showLine:!0,borderColor:r.rgba.energized(),borderWidth:1,backgroundColor:r.rgba.energized(),pointBackgroundColor:r.rgba.energized(),pointBorderColor:r.rgba.energized(),pointHoverBackgroundColor:r.rgba.energized(),pointHoverBorderColor:r.rgba.energized(),pointRadius:0,pointHitRadius:4,pointHoverRadius:3}],e.setScale(e.scale),e.blocks=t.blocks.reduce((function(e,t){return e.concat(t.number)}),[])}}))},e.onChartClick=function(t,n,a){if(a){var o=e.blocks[a._index];i.go("app.view_block",{number:o})}},e.showActionsPopover=function(t){o.popover.show(t,{templateUrl:"plugins/graph/templates/currency/popover_monetary_mass_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function Je(e,t,n,i,a,o,r,s){e.formData={scale:"linear",beginAtZero:!1},angular.extend(this,n("GpCurrencyMonetaryMassCtrl",{$scope:e})),e.load=function(n,s){return n=n||0,s=s||1e4,t.all([i(["GRAPH.CURRENCY.UD_TITLE","COMMON.UNIVERSAL_DIVIDEND"]),o.blockchain.withDividend(e.formData.currency,{from:n,size:s})]).then((function(t){var n=t[0];if((t=t[1])&&t.times){e.times=t.times;var i,o=t.times[t.times.length-1]-t.times[0];i=r(o<31557600?"medianDateShort":"formatDateMonth");var s=r("formatDecimal");e.currencySymbol=r("currencySymbolNoHtml")(e.formData.currency,!1),e.data=[t.blocks.reduce((function(e,t){return e.concat(t.dividend/100)}),[])],e.labels=t.times.reduce((function(e,t){return e.concat(i(t))}),[]),e.colors=t.blocks.reduce((function(e){return e.concat(a.rgba.calm(.5))}),[]),e.options={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.CURRENCY.UD_TITLE"]},scales:{yAxes:[{id:"y-axis-ud",ticks:{beginAtZero:e.formData.beginAtZero}}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return n.datasets[t.datasetIndex].label+": "+s(t.yLabel)+" "+e.currencySymbol}}}},e.setScale(e.scale),e.datasetOverride=[{yAxisID:"y-axis-ud",type:"line",label:n["COMMON.UNIVERSAL_DIVIDEND"],borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3}],e.blocks=t.blocks.reduce((function(e,t){return e.concat(t.number)}),[])}}))},e.showActionsPopover=function(t){s.popover.show(t,{templateUrl:"plugins/graph/templates/currency/popover_monetary_mass_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function Ze(e,t,n,i,a,o,r,s){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.load=function(t,i){return t=t||0,i=i||1e4,n.all([a(["GRAPH.CURRENCY.MEMBERS_COUNT_TITLE","GRAPH.CURRENCY.MEMBERS_COUNT_LABEL"]),r.blockchain.withDividend(e.formData.currency,{from:t,size:i,withCurrent:!0})]).then((function(t){var n=t[0];if((t=t[1])&&t.times){e.times=t.times;var i,a=t.times[t.blocks.length-1]-t.times[0];i=s(a<31557600?"medianDateShort":"formatDateMonth"),e.labels=t.times.reduce((function(e,t){return e.concat(i(t))}),[]),e.options={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.CURRENCY.MEMBERS_COUNT_TITLE"]},scales:{xAxes:[{position:"bottom"}],yAxes:[{id:"y-axis-1",ticks:{beginAtZero:!1}}]}},e.datasetOverride=[{yAxisID:"y-axis-1",type:"line",label:n["GRAPH.CURRENCY.MEMBERS_COUNT_LABEL"],borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3}],e.data=[t.blocks.reduce((function(e,t){return e.concat(t.membersCount)}),[])],e.colors=o.scale.fix(t.blocks.length)}}))},e.onChartClick=function(t,n,a){if(a)if(a._index){var o=e.times[a._index-1],r=moment.unix(o).utc().add(1,"day").unix();i.go("app.blockchain_search",{q:"(_exists_:joiners OR _exists_:leavers OR _exists_:revoked OR _exists_:excluded) AND medianTime:>{0} AND medianTime:<={1}".format(o,r)})}else i.go("app.view_block",{number:0})}}function et(e,t,n,i,a,o,r,s,l,c){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.init=function(t,n){n&&n.stateParams&&n.stateParams.pubkey?e.formData.pubkey=n.stateParams.pubkey:c.isLogin()&&(e.formData.pubkey=c.data.pubkey)};var u=e.setScale;e.setScale=function(t){e.data[e.data.length-2]="linear"===t?_.map(e.data[e.data.length-2],(function(e){return-1*Math.abs(e)})):_.map(e.data[e.data.length-2],(function(e){return Math.abs(e)})),u(t)},e.load=function(t){t=!angular.isDefined(t)||t;var i=!0;return r.load(e.formData.pubkey,null,{cache:!0}).then((function(t){return e.identity=t,i=e.identity.isMember||e.identity.wasMember,n.all([o("GRAPH.ACCOUNT.BALANCE_TITLE",e.formData),o(["GRAPH.ACCOUNT.UD_LABEL","GRAPH.ACCOUNT.TX_RECEIVED_LABEL","GRAPH.ACCOUNT.TX_SENT_LABEL","GRAPH.ACCOUNT.UD_ACCUMULATION_LABEL","GRAPH.ACCOUNT.TX_ACCUMULATION_LABEL","GRAPH.ACCOUNT.BALANCE_LABEL","COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"]),s.blockchain.movement(e.formData.currency,angular.copy(e.formData,{withUD:i}))])})).then((function(n){var o=n[0],r=n[1];if((n=n[2])&&n.times){e.times=n.times;var s=a("formatDecimal");e.currencySymbol=a("currencySymbolNoHtml")(e.formData.currency,e.formData.useRelative),e.data=[n.ud,n.received,n.sent,n.balance];var c={hour:r["COMMON.DATE_PATTERN"],day:r["COMMON.DATE_SHORT_PATTERN"],month:r["COMMON.DATE_MONTH_YEAR_PATTERN"]}[e.formData.rangeDuration];e.labels=n.times.reduce((function(e,t){return e.concat(moment.unix(t).local().format(c))}),[]),e.colors=l.scale.fix(n.times.length),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.options={responsive:!0,maintainAspectRatio:!0,title:{display:!0,text:o},scales:{xAxes:[{stacked:!0}],yAxes:[{id:"y-axis-left",type:"linear",position:"left",stacked:!0}]},legend:{display:!0,onClick:e.onLegendClick},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return n.datasets[t.datasetIndex].label+": "+(t.yLabel?s(t.yLabel)+" "+e.currencySymbol:"0")}}}},e.datasetOverride=[{yAxisID:"y-axis-left",type:"bar",label:r["GRAPH.ACCOUNT.UD_LABEL"],backgroundColor:l.rgba.energized(.3),hoverBackgroundColor:l.rgba.energized(.5),borderWidth:1},{yAxisID:"y-axis-left",type:"bar",label:r["GRAPH.ACCOUNT.TX_RECEIVED_LABEL"],backgroundColor:l.rgba.positive(.4),hoverBackgroundColor:l.rgba.positive(.6),borderWidth:1},{yAxisID:"y-axis-left",type:"bar",label:r["GRAPH.ACCOUNT.TX_SENT_LABEL"],backgroundColor:l.rgba.assertive(.4),hoverBackgroundColor:l.rgba.assertive(.6),borderWidth:1},{yAxisID:"y-axis-left",type:"line",label:r["GRAPH.ACCOUNT.BALANCE_LABEL"],fill:"origin",borderColor:l.rgba.calm(.5),borderWidth:2,pointBackgroundColor:l.rgba.calm(.5),pointBorderColor:l.rgba.white(),pointHoverBackgroundColor:l.rgba.calm(1),pointHoverBorderColor:"rgba(0,0,0,0)",pointRadius:3,lineTension:.1}],i||(e.data.splice(0,1),e.datasetOverride.splice(0,1))}}))},e.onChartClick=function(t,n,a){if(a){var o=e.times[a._index],r=moment.unix(o).utc().add(1,e.formData.rangeDuration).unix(),s="medianTime:>={0} AND medianTime:<{1}".format(o,r);e.formData.pubkey&&(s+=" AND (transactions.issuers:"+e.formData.pubkey+" OR transactions.outputs:*"+e.formData.pubkey+")"),i.go("app.blockchain_search",{q:s})}}}function tt(e,t,n,i,a,o){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.init=function(t,n){e.pubkey=n&&n.stateParams&&n.stateParams.pubkey},e.load=function(t,n){if(e.pubkey)return a.load(e.pubkey,-1).then((function(t){t&&t.tx&&t.tx.history&&(e.inputChart=e.computeChartData(_.filter(t.tx.history,(function(e){return e.amount>0}))),e.outputChart=e.computeChartData(_.filter(t.tx.history,(function(e){return e.amount<0}))))}))},e.computeChartData=function(e){var t=n("formatPubkey"),i={};_.forEach(e,(function(e){i[e.pubkey]=i[e.pubkey]||{label:e.name||e.uid||t(e.pubkey),pubkey:e.pubkey,sum:0},i[e.pubkey].sum+=Math.abs(e.amount)}));var a=_.sortBy(_.values(i),"sum").reverse();return _.each(a,(function(e){e.sum=e.sum/100})),{data:_.pluck(a,"sum"),labels:_.pluck(a,"label"),pubkeys:_.pluck(a,"pubkey"),colors:o.scale.custom(Math.max(10,a.length))}},e.onInputChartClick=function(t,n,a){if(a){var o=e.inputChart.pubkeys[a._index];i.go("app.wot_identity",{pubkey:o})}},e.onOutputChartClick=function(t,n,a){if(a){var o=e.outputChart.pubkeys[a._index];i.go("app.wot_identity",{pubkey:o})}}}function nt(e,t,n,i,a,o,r,s,l){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.init=function(t,n){n&&n.stateParams&&n.stateParams.pubkey?e.formData.pubkey=n.stateParams.pubkey:l.isLogin()&&(e.formData.pubkey=l.data.pubkey)},e.load=function(t){var i=e.formData;return n.all([o("GRAPH.ACCOUNT.CERTIFICATION_TITLE",i),o(["GRAPH.ACCOUNT.GIVEN_CERT_LABEL","GRAPH.ACCOUNT.RECEIVED_CERT_LABEL","GRAPH.ACCOUNT.GIVEN_CERT_DELTA_LABEL","GRAPH.ACCOUNT.RECEIVED_CERT_DELTA_LABEL","COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"]),r.wot.certifications(i)]).then((function(n){var i=n[0],o=n[1];if((n=n[2])&&n.times){e.times=n.times;var r=a("formatInteger");e.data=[n.deltaReceived,n.received,n.deltaGiven,n.given],e.labels=n.labels;var l={hour:o["COMMON.DATE_PATTERN"],day:o["COMMON.DATE_SHORT_PATTERN"],month:o["COMMON.DATE_MONTH_YEAR_PATTERN"]}[e.formData.rangeDuration];e.labels=n.times.reduce((function(e,t){return e.concat(moment.unix(t).local().format(l))}),[]),e.colors=s.scale.fix(n.times.length),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.options={responsive:!0,maintainAspectRatio:!0,title:{display:!0,text:i},scales:{yAxes:[{id:"y-axis-left",type:"linear",position:"left"},{id:"y-axis-hide",type:"linear",display:!1,position:"right"}]},legend:{display:!0},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(e,t){var n=(0===e.datasetIndex||2===e.datasetIndex)&&e.yLabel>0;return t.datasets[e.datasetIndex].label+": "+(n?"+":"")+!e.yLabel?"0":r(e.yLabel)}}}},e.datasetOverride=[{yAxisID:"y-axis-left",type:"bar",label:o["GRAPH.ACCOUNT.RECEIVED_CERT_DELTA_LABEL"],borderColor:s.rgba.positive(.6),borderWidth:1,backgroundColor:s.rgba.positive(.4),hoverBackgroundColor:s.rgba.positive(.6)},{yAxisID:"y-axis-left",type:"line",label:o["GRAPH.ACCOUNT.RECEIVED_CERT_LABEL"],fill:!1,borderColor:s.rgba.positive(.5),borderWidth:2,backgroundColor:s.rgba.positive(1),pointBackgroundColor:s.rgba.positive(.5),pointBorderColor:s.rgba.white(),pointHoverBackgroundColor:s.rgba.positive(1),pointHoverBorderColor:"rgba(0,0,0,0)",pointRadius:3},{yAxisID:"y-axis-left",type:"bar",label:o["GRAPH.ACCOUNT.GIVEN_CERT_DELTA_LABEL"],borderColor:s.rgba.assertive(.6),borderWidth:1,backgroundColor:s.rgba.assertive(.4),hoverBackgroundColor:s.rgba.assertive(.6)},{yAxisID:"y-axis-left",type:"line",label:o["GRAPH.ACCOUNT.GIVEN_CERT_LABEL"],fill:!1,borderColor:s.rgba.assertive(.4),borderWidth:2,backgroundColor:s.rgba.assertive(1),pointBackgroundColor:s.rgba.assertive(.4),pointBorderColor:s.rgba.white(),pointHoverBackgroundColor:s.rgba.assertive(1),pointHoverBorderColor:"rgba(0,0,0,0)",pointRadius:3,lineTension:.1}]}}))},e.onChartClick=function(t,n,a){if(a){var o=e.times[a._index],r=moment.unix(o).utc().add(1,e.formData.rangeDuration).unix(),s="_exists_:transactions AND medianTime:>={0} AND medianTime:<{1}".format(o,r);e.formData.pubkey&&(s+=" AND (transactions.issuers:"+e.formData.pubkey+" OR transactions.outputs:*"+e.formData.pubkey+")"),i.go("app.blockchain_search",{q:s})}}}function it(e,t,n,i,a,o,r,s){angular.extend(this,n("GpCurrencyAbstractCtrl",{$scope:e})),e.formData.rangeDuration="month",e.displayRightAxis=!0,e.hiddenDatasets=[],e.chartIdPrefix="docstats-chart-",e.charts=[{id:"user",title:"GRAPH.DOC_STATS.USER.TITLE",series:[{key:"user_profile",label:"GRAPH.DOC_STATS.USER.USER_PROFILE",color:o.rgba.royal(.7),pointHoverBackgroundColor:o.rgba.royal(),clickState:{name:"app.document_search",params:{index:"user",type:"profile"}}},{key:"user_settings",label:"GRAPH.DOC_STATS.USER.USER_SETTINGS",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"user",type:"settings"}}}]},{id:"user_delta",title:"GRAPH.DOC_STATS.USER_DELTA.TITLE",series:[{key:"user_profile_delta",label:"GRAPH.DOC_STATS.USER_DELTA.USER_PROFILE",type:"line",yAxisID:"y-axis-delta",color:o.rgba.royal(),pointHoverBackgroundColor:o.rgba.royal()},{key:"user_settings_delta",label:"GRAPH.DOC_STATS.USER_DELTA.USER_SETTINGS",type:"line",yAxisID:"y-axis-delta",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray()}]},{id:"message",title:"GRAPH.DOC_STATS.MESSAGE.TITLE",series:[{key:"message_inbox",label:"GRAPH.DOC_STATS.MESSAGE.MESSAGE_INBOX",color:o.rgba.royal(),pointHoverBackgroundColor:o.rgba.royal(),clickState:{name:"app.document_search",params:{index:"message",type:"inbox"}}},{key:"message_outbox",label:"GRAPH.DOC_STATS.MESSAGE.MESSAGE_OUTBOX",color:o.rgba.calm(),pointHoverBackgroundColor:o.rgba.calm(),clickState:{name:"app.document_search",params:{index:"message",type:"outbox"}}},{key:"invitation_certification",label:"GRAPH.DOC_STATS.MESSAGE.INVITATION_CERTIFICATION",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"invitation",type:"certification"}}}]},{id:"social",title:"GRAPH.DOC_STATS.SOCIAL.TITLE",series:[{key:"page_record",label:"GRAPH.DOC_STATS.SOCIAL.PAGE_RECORD",color:o.rgba.royal(),pointHoverBackgroundColor:o.rgba.royal(),clickState:{name:"app.document_search",params:{index:"page",type:"record"}}},{key:"group_record",label:"GRAPH.DOC_STATS.SOCIAL.GROUP_RECORD",color:o.rgba.calm(),pointHoverBackgroundColor:o.rgba.calm(),clickState:{name:"app.document_search",params:{index:"group",type:"record"}}},{key:"page_comment",label:"GRAPH.DOC_STATS.SOCIAL.PAGE_COMMENT",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"page",type:"comment"}}}]},{id:"other",title:"GRAPH.DOC_STATS.OTHER.TITLE",series:[{key:"history_delete",label:"GRAPH.DOC_STATS.OTHER.HISTORY_DELETE",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"history",type:"delete"}}}]}];var l=s("formatInteger");e.defaultChartOptions={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0},legend:{display:!0,onClick:e.onLegendClick},scales:{xAxes:[{stacked:!0}],yAxes:[{id:"y-axis",stacked:!0},{id:"y-axis-delta",stacked:!1},{id:"y-axis-delta-right",stacked:!1,display:e.displayRightAxis,position:"right",gridLines:{drawOnChartArea:!1}}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(e,t){return t.datasets[e.datasetIndex].label+": "+l(e.yLabel)}}}},e.init=function(t,n){if(n&&n.stateParams){var i=n.stateParams&&n.stateParams.server||void 0;i&&(console.debug("[docstats] Will use server: "+i),angular.merge(e.formData,{server:n.stateParams.server,useSsl:n.stateParams.useSsl,useTor:n.stateParams.useTor}))}},e.load=function(t){return i.all([a(e.charts.reduce((function(e,t){return e.concat(t.series.reduce((function(e,t){return e.concat(t.label)}),[t.title]))}),["COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"])),r.docstat.get(e.formData)]).then((function(n){var i=n[0],a={hour:i["COMMON.DATE_PATTERN"],day:i["COMMON.DATE_SHORT_PATTERN"],month:i["COMMON.DATE_MONTH_YEAR_PATTERN"]};if((n=n[1])&&n.times){e.times=n.times;var r=a[e.formData.rangeDuration];e.labels=_.map(n.times,(function(e){return moment.unix(e).local().format(r)})),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.setScale(e.scale),_.forEach(e.charts,(function(t){var a={};t.data=_.map(t.series,(function(e){if(a[e.yAxisID||"y-axis"]=!0,e.key.endsWith("_delta")){var t=e.key.substring(0,e.key.length-"_delta".length);return((i=n[t])?_.map(i,(function(e){var t=void 0!==e&&void 0!==o?e-(o||e):void 0;return o=e,t})):void 0)||[]}var i,o;return n[e.key]||[]})),t.options=angular.copy(e.defaultChartOptions),t.options.title.text=i[t.title],t.options.scales.yAxes=t.options.scales.yAxes.reduce((function(e,t){return a[t.id]?e.concat(t):e}),[]),t.datasetOverride=_.map(t.series,(function(e){return{yAxisID:e.yAxisID||"y-axis",type:e.type||"line",label:i[e.label],fill:"line"!==e.type,borderWidth:2,pointRadius:"line"!==e.type?0:2,pointHitRadius:4,pointHoverRadius:3,borderColor:e.color,backgroundColor:e.color,pointBackgroundColor:e.color,pointBorderColor:e.color,pointHoverBackgroundColor:e.pointHoverBackgroundColor||e.color,pointHoverBorderColor:e.pointHoverBorderColor||o.rgba.white()}}))}))}}))},e.onChartClick=function(n,i,a){if(a){var o=_.find(e.charts,(function(t){return e.chartIdPrefix+t.id==a._chart.canvas.id})).series[a._datasetIndex];if(o&&o.clickState&&o.clickState.name){var r=o.clickState.params?angular.copy(o.clickState.params):{},s=e.times[a._index],l=moment.unix(s).utc().add(1,e.formData.rangeDuration).unix();return r.q="time:>={0} AND time:<{1}".format(s,l),t.go(o.clickState.name,r)}console.debug("Click on item index={0} on range [{1},{2}]".format(a._index,s,l))}}}function at(e,t,n,i,a,o,r){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.formData.rangeDuration="month",e.hiddenDatasets=[],e.charts=[{id:"count",title:"GRAPH.SYNCHRO.COUNT.TITLE",series:[{key:"inserts",type:"bar",label:"GRAPH.SYNCHRO.COUNT.INSERTS",color:a.rgba.royal(),pointHoverBackgroundColor:a.rgba.royal()},{key:"updates",type:"bar",label:"GRAPH.SYNCHRO.COUNT.UPDATES",color:a.rgba.calm(),pointHoverBackgroundColor:a.rgba.calm()},{key:"deletes",type:"bar",label:"GRAPH.SYNCHRO.COUNT.DELETES",color:a.rgba.assertive(.5),pointHoverBackgroundColor:a.rgba.assertive()}]},{id:"peer",title:"GRAPH.SYNCHRO.PEER.TITLE",series:[{key:"ES_USER_API",label:"GRAPH.SYNCHRO.PEER.ES_USER_API",color:a.rgba.royal(),pointHoverBackgroundColor:a.rgba.royal()},{key:"ES_SUBSCRIPTION_API",label:"GRAPH.SYNCHRO.PEER.ES_SUBSCRIPTION_API",color:a.rgba.gray(.5),pointHoverBackgroundColor:a.rgba.gray()}]},{id:"performance",title:"GRAPH.SYNCHRO.PERFORMANCE.TITLE",series:[{key:"duration",type:"bar",label:"GRAPH.SYNCHRO.PERFORMANCE.DURATION",color:a.rgba.gray(.5),pointHoverBackgroundColor:a.rgba.gray()}]}];var s=r("formatInteger");e.defaultChartOptions={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0},legend:{display:!0,onClick:e.onLegendClick},scales:{xAxes:[{stacked:!0}],yAxes:[{stacked:!0,id:"y-axis"}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(e,t){return t.datasets[e.datasetIndex].label+": "+s(e.yLabel)}}}},e.init=function(t,n){if(n&&n.stateParams){var i=n.stateParams&&n.stateParams.server||void 0;i&&(console.debug("[synchro] Will use server: "+i),angular.merge(e.formData,n.stateParams))}},e.load=function(t){return n.all([i(e.charts.reduce((function(e,t){return e.concat(t.series.reduce((function(e,t){return e.concat(t.label)}),[t.title]))}),["COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"])),o.synchro.execution.get(e.formData)]).then((function(n){var i=n[0],o={hour:i["COMMON.DATE_PATTERN"],day:i["COMMON.DATE_SHORT_PATTERN"],month:i["COMMON.DATE_MONTH_YEAR_PATTERN"]};if((n=n[1])&&n.times){e.times=n.times;var r=o[e.formData.rangeDuration];e.labels=n.times.reduce((function(e,t){return e.concat(moment.unix(t).local().format(r))}),[]),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.setScale(e.scale),_.forEach(e.charts,(function(t){t.data=[],_.forEach(t.series,(function(e){t.data.push(n[e.key]||[])})),t.options=angular.copy(e.defaultChartOptions),t.options.title.text=i[t.title],t.datasetOverride=t.series.reduce((function(e,t){return e.concat({yAxisID:"y-axis",type:t.type||"line",label:i[t.label],fill:!0,borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3,borderColor:t.color,backgroundColor:t.color,pointBackgroundColor:t.color,pointBorderColor:t.color,pointHoverBackgroundColor:t.pointHoverBackgroundColor||t.color,pointHoverBorderColor:t.pointHoverBorderColor||a.rgba.white()})}),[])}))}}))}}function ot(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){angular.extend(this,l("WotIdentityAbstractCtrl",{$scope:e})),angular.extend(this,l("ESWotIdentityViewCtrl",{$scope:e}));var g,f={member:{type:"awesomeMarker",icon:"person",markerColor:"blue"},pending:{type:"awesomeMarker",icon:"clock",markerColor:"lightgreen",iconColor:"gray"},wallet:{type:"awesomeMarker",icon:"key",markerColor:"lightgray"}};e.loading=!0,e.loadingMarker=!0,e.mapId="map-wot-"+e.$id,e.map=E.map({cache:"map-wot",layers:{overlays:{member:{type:"featureGroup",name:"MAP.WOT.VIEW.LAYER.MEMBER",visible:!0},pending:{type:"featureGroup",name:"MAP.WOT.VIEW.LAYER.PENDING",visible:!0},wallet:{type:"featureGroup",name:"MAP.WOT.VIEW.LAYER.WALLET",visible:!0}}},bounds:{},markers:{},loading:!0},e.mapId),e.showDescription=!1,c().then((function(){e.enableDescription=!d.screen.isSmall()&&"a"===ionic.Platform.grade.toLowerCase(),e.enableDescription||console.debug("[map] [wot] Disable profile description.",ionic.Platform.grade)})),e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!d.screen.isSmall()||t.enableBack})),e.enter=function(t,n){if(e.loading){if(d.loading.show({noBackdrop:!0}),n.stateParams&&n.stateParams.c){var i=n.stateParams.c.split(":");e.map.center.lat=parseFloat(i[0]),e.map.center.lng=parseFloat(i[1]),e.map.center.zoom=parseInt(i[2])}e.$watch("map.center",(function(){if(!e.loading)return a((function(){e.updateLocationHref()}),300)}),!0);var o=Date.now();e.loadMap().then(e.load).then((function(){console.debug("[map] [wot] Loaded in "+(Date.now()-o)+"ms"),e.showHelpTip()}))}else e.updateLocationHref(),e.showHelpTip()},e.$on("$ionicView.enter",e.enter),e.loadMap=function(){return s.all([r(["COMMON.BTN_HELP_TOUR_SCREEN","COMMON.BTN_REFRESH","MAP.COMMON.BTN_LOCALIZE_ME"]),u.getMap(e.mapId)]).then((function(t){var o=t[0],r=t[1];if(!e.map.loading)return r;d.screen.isSmall()||(L.easyButton({position:"topright",type:"replace",leafletClasses:!0,states:[{stateName:"show-help-tour",onClick:e.startHelpTour,title:o["COMMON.BTN_HELP_TOUR_SCREEN"],icon:"icon ion-easel"}]}).addTo(r),L.easyButton({position:"topright",type:"replace",leafletClasses:!0,states:[{stateName:"refresh",onClick:function(t,n){return e.load(n)},title:o["COMMON.BTN_REFRESH"],icon:"icon ion-refresh"}]}).addTo(r)),L.Control.loading({position:"topright",separate:!0}).addTo(r),E.control.localizeMe({title:o["MAP.COMMON.BTN_LOCALIZE_ME"]}).addTo(r),g=L.layerGroup({visible:!1});var s=i(n.get("plugins/map/templates/wot/item_search_tooltip.html"));E.control.search({layer:g,propertyName:"title",buildTip:function(e,t){return s(t.layer.options)},moveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e);var i=e.layer&&e.layer.options&&e.layer.options.popupMarkerId;a((function(){var e=i&&_.find(n._layers,(function(e){return e.options&&e.options.id===i}));e&&e.openPopup()}),400)},firstTipSubmit:!0,tooltipLimit:50}).addTo(r);var l=function(e){return e.options&&e.options.layer},c=L.markerClusterGroup({disableClusteringAtZoom:E.constants.LOCALIZE_ZOOM,maxClusterRadius:65,showCoverageOnHover:!1,iconCreateFunction:function(e){var t=_.countBy(e.getAllChildMarkers(),l),n=t.member?"blue":t.pending?"lightgreen":"lightgray",i=e.getChildCount(),a="marker-cluster "+n+" marker-cluster-";return a+=i<10?"small":i<100?"medium":"large",L.divIcon({html:"<div><span>"+i+"</span></div>",className:a,iconSize:new L.Point(40,40)})}});return r.eachLayer((function(e){e.addLayer&&angular.extend(e,L.featureGroup.subGroup(c))})),c.addTo(r),e.map.loading=!1,r}))},e.load=function(i){if(!i)return u.getMap(e.mapId).then(e.load);e.loading=!0,i.fire("dataloading");var o={fields:{description:e.enableDescription}};return e.map.bounds,b.load(o).then((function(o){var r={};if(g.clearLayers(),o&&o.length){var s=t("formatPubkey"),l=n.get("plugins/map/templates/wot/popup_marker.html");_.forEach(o,(function(t){var n=t.pending?"pending":t.uid?"member":"wallet",i=s(t.pubkey),a=t.index+"_"+(t.id||(t.uid?t.uid+":"+t.pubkey:t.pubkey)).replace(/-/g,"_"),o={layer:n,icon:f[n],opacity:t.uid?1:.7,title:t.name+" | "+i,lat:t.geoPoint.lat,lng:t.geoPoint.lon,getMessageScope:function(){var n=e.$new();return n.loadingMarker=!0,n.formData={},n.$applyAsync((function(){n.formData={pubkey:t.pubkey,uid:t.uid,name:t.name,profile:t},n.loadingMarker=!1})),n},focus:!1,message:l,id:a};r[a]=o;var c=t.name+(t.uid&&t.uid!=t.name?" | "+t.uid:"")+" | "+i,u=angular.merge({type:n,opacity:0,icon:L.divIcon({className:n+" ng-hide",iconSize:L.point(0,0)})},{title:c,pubkey:t.pubkey,uid:t.uid,name:t.name,pending:t.pending,popupMarkerId:a});g.addLayer(new L.Marker({lat:t.geoPoint.lat,lng:t.geoPoint.lon},u))}))}return e.map.markers=r,a((function(){e.loading=!1,i.fire("dataload"),d.loading.hide()}))})).catch((function(t){e.map.markers={},e.loading=!1,d.onError("MAP.WOT.ERROR.LOAD_POSITION_FAILED")(t)}))},e.updateLocationHref=function(t){(o.search()||{}).c&&E.center.isDefault(e.map.center)||(t=t||"{0}:{1}:{2}".format(e.map.center.lat.toFixed(4),e.map.center.lng.toFixed(4),e.map.center.zoom),o.search({c:t}).replace())},e.startHelpTour=function(){return e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if((n||m.isLogin())&&(t=angular.isDefined(t)?t:angular.isNumber(p.data.helptip.mapwot)?p.data.helptip.mapwot:0,n=!!angular.isDefined(n)&&n,!(t<0||t>2))){var i=e.createHelptipScope(n,"MapHelpTipCtrl");if(i)return i.tour=n,i.mapId=e.mapId,i.startMapWotTour(t,!1).then((function(e){i.$destroy(),p.data.helptip.mapwot=angular.isNumber(p.data.helptip.mapwot)?Math.max(e,p.data.helptip.mapwot):e,p.store()}))}}}function rt(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){var b,g={shop:{type:"awesomeMarker",icon:"page-shop",markerColor:"blue"},company:{type:"awesomeMarker",icon:"page-company",markerColor:"blue"},association:{type:"awesomeMarker",icon:"page-association",markerColor:"lightgreen",iconColor:"gray"},institution:{type:"awesomeMarker",icon:"page-institution",markerColor:"lightgray"}};e.loading=!0,e.loadingMarker=!0,e.mapId="map-registry-"+e.$id,e.map=m.map({cache:"map-registry",layers:{overlays:{shop:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.SHOP",visible:!0},company:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.COMPANY",visible:!0},association:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.ASSOCIATION",visible:!0},institution:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.INSTITUTION",visible:!0}}},bounds:{},markers:{},loading:!0},e.mapId),e.formData={},e.showDescription=!1,l().then((function(){e.enableDescription=!u.screen.isSmall()&&"a"===ionic.Platform.grade.toLowerCase(),e.enableDescription||console.debug("[map] [wot] Disable profile description.",ionic.Platform.grade)})),e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!u.screen.isSmall()||t.enableBack})),e.enter=function(t,n){if(e.loading){if(n.stateParams&&n.stateParams.c){var i=n.stateParams.c.split(":");e.map.center.lat=parseFloat(i[0]),e.map.center.lng=parseFloat(i[1]),e.map.center.zoom=parseInt(i[2])}e.$watch("map.center",(function(){if(!e.loading)return a((function(){e.updateLocationHref()}),300)}),!0),e.loadMap().then((function(){return p.isLogin()&&e.showHelpTip(),e.load()}))}else e.updateLocationHref(),p.isLogin()&&e.showHelpTip()},e.$on("$ionicView.enter",e.enter),e.loadMap=function(){return s.all([r(["COMMON.BTN_HELP_TOUR_SCREEN","COMMON.BTN_REFRESH","MAP.COMMON.BTN_LOCALIZE_ME"]),c.getMap(e.mapId)]).then((function(t){var o=t[0],r=t[1];if(!e.map.loading)return r;u.screen.isSmall()||L.easyButton({position:"topright",type:"replace",leafletClasses:!0,states:[{stateName:"refresh",onClick:function(t,n){return e.load(n)},title:o["COMMON.BTN_REFRESH"],icon:"icon ion-refresh"}]}).addTo(r),L.Control.loading({position:"topright",separate:!0}).addTo(r),m.control.localizeMe({title:o["MAP.COMMON.BTN_LOCALIZE_ME"]}).addTo(r),b=L.layerGroup({visible:!1});var s=i(n.get("plugins/map/templates/registry/item_search_tooltip.html"));m.control.search({layer:b,propertyName:"title",buildTip:function(e,t){return s(t.layer.options)},moveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e);var i=e.layer&&e.layer.options&&e.layer.options.popupMarkerId;a((function(){var e=i&&_.find(n._layers,(function(e){return e.options&&e.options.id===i}));e&&e.openPopup()}),400)},firstTipSubmit:!0,tooltipLimit:50}).addTo(r);var l=function(e){return e.options&&e.options.layer},c=L.markerClusterGroup({disableClusteringAtZoom:m.constants.LOCALIZE_ZOOM,maxClusterRadius:65,showCoverageOnHover:!1,iconCreateFunction:function(e){var t=_.countBy(e.getAllChildMarkers(),l),n=t.shop||t.company?"blue":t.association?"lightgreen":"lightgray",i=e.getChildCount(),a="marker-cluster "+n+" marker-cluster-";return a+=i<10?"small":i<100?"medium":"large",L.divIcon({html:"<div><span>"+i+"</span></div>",className:a,iconSize:new L.Point(40,40)})}});return r.eachLayer((function(e){e.addLayer&&angular.extend(e,L.featureGroup.subGroup(c))})),c.addTo(r),e.map.loading=!1,r}))},e.load=function(i){if(!i)return c.getMap(e.mapId).then(e.load);e.loading=!0,i.fire("dataloading");var a={fields:{description:e.enableDescription}};return E.load(a).then((function(a){var o={};if(b.clearLayers(),a&&a.length){var r=t("formatPubkey"),s=n.get("plugins/map/templates/registry/popup_marker.html");_.forEach(a,(function(t){var n=r(t.pubkey),i=t.index+"_"+t.id.replace(/-/g,"_"),a={layer:t.type,icon:g[t.type],opacity:1,title:t.name+" | "+n,lat:t.geoPoint.lat,lng:t.geoPoint.lon,getMessageScope:function(){var n=e.$new();return n.loadingMarker=!0,n.formData={},n.$applyAsync((function(){angular.extend(n.formData,t),n.loadingMarker=!1})),n},focus:!1,message:s,id:i};o[i]=a;var l=t.name+" | "+n,c=angular.merge({type:t.type,opacity:0,icon:L.divIcon({className:t.type+" ng-hide",iconSize:L.point(0,0)})},{title:l,pubkey:t.pubkey,name:t.name,popupMarkerId:i});b.addLayer(new L.Marker({lat:t.geoPoint.lat,lng:t.geoPoint.lon},c))}))}e.map.markers=o,e.loading=!1,i.fire("dataload")})).catch((function(t){e.map.markers={},e.loading=!1,u.onError("MAP.WOT.ERROR.LOAD_POSITION_FAILED")(t)}))},e.updateLocationHref=function(t){(o.search()||{}).c&&m.center.isDefault(e.map.center)||(t=t||"{0}:{1}:{2}".format(e.map.center.lat.toFixed(4),e.map.center.lng.toFixed(4),e.map.center.zoom),o.search({c:t}).replace())},e.$on("centerUrlHash",(function(t,n){if(!e.loading)return a((function(){e.updateLocationHref(n)}),300)})),e.startHelpTour=function(){return e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if(t=angular.isDefined(t)?t:angular.isNumber(d.data.helptip.mapwot)?d.data.helptip.mapwot:0,n=!!angular.isDefined(n)&&n,!(t<0||t>2)){var i=e.createHelptipScope(n,"MapHelpTipCtrl");if(i)return i.tour=n,i.mapId=e.mapId,i.startMapWotTour(t,!1).then((function(e){i.$destroy(),d.data.helptip.mapwot=angular.isNumber(d.data.helptip.mapwot)?Math.max(e,d.data.helptip.mapwot):e,d.store()}))}}}function st(e,t){angular.extend(this,t("HelpTipCtrl",{$scope:e})),e.mapId=void 0,e.startMapWotTour=function(t,n){var i=[function(){return e.showHelpTip("helptip-map-wot",{bindings:{content:"MAP.HELP.TIP.WOT",icon:{position:"center",glyph:"ion-information-circled"}}})},function(){return e.showHelpTip(null,{selector:"#{0} .leaflet-control-search".format(e.mapId),bindings:{content:"MAP.HELP.TIP.WOT_BTN_SEARCH",icon:{position:"center"}}})},function(){return e.showHelpTip(null,{selector:"#{0} .leaflet-control-layers".format(e.mapId),bindings:{content:"MAP.HELP.TIP.WOT_BTN_LAYERS",icon:{position:"right"},hasNext:n}})}];return e.executeStep("mapwot",i,t)}}if(angular.module("cesium.settings.services",["ngApi","cesium.config"]).factory("csSettings",["$rootScope","$q","$window","Api","localStorage","$translate","csConfig",function(e,t,n,i,a,o,r){var s=[{id:"en",label:"English",country:"us"},{id:"en-GB",label:"English (UK)",country:"gb"},{id:"eo-EO",label:"Esperanto"},{id:"fr-FR",label:"Français",country:"fr"},{id:"nl-NL",label:"Nederlands",country:"nl"},{id:"es-ES",label:"Spanish",country:"es"},{id:"it-IT",label:"Italiano",country:"it"}],l=r.fallbackLanguage?c(r.fallbackLanguage):"en";function c(e){if(!e)return l;if(_.findWhere(s,{id:e}))return e;var t=e.split("-");if(t.length>1)return c(t[0]);var n=_.find(s,(function(t){return String.prototype.startsWith.call(t.id,e)}));return n?n.id:l}var u,d,p,m,E={STORAGE_KEY:"settings",KEEP_AUTH_IDLE_SESSION:9999},b={timeout:4e3,cacheTimeMs:6e4,timeWarningExpireMembership:5184e3,timeWarningExpire:7776e3,minVersion:"1.1.0",newIssueUrl:"https://git.duniter.org/clients/cesium-grp/cesium/issues/new",userForumUrl:"https://forum.monnaie-libre.fr",latestReleaseUrl:"https://api.github.com/repos/duniter/cesium/releases/latest",duniterLatestReleaseUrl:"https://api.github.com/repos/duniter/duniter/releases/latest",httpsMode:!1},g=angular.merge({useRelative:!1,useLocalStorage:!!n.localStorage,useLocalStorageEncryption:!1,walletHistoryTimeSecond:2592e3,walletHistorySliceSecond:432e3,walletHistoryAutoRefresh:!0,rememberMe:!0,keepAuthIdle:600,showUDHistory:!0,expertMode:!1,decimalCount:4,uiEffects:!0,blockValidityWindow:6,helptip:{enable:!0,installDocUrl:"https://duniter.org/en/wiki/duniter/install/",currency:0,network:0,wotLookup:0,wot:0,wotCerts:0,wallet:0,walletCerts:0,header:0,settings:0},currency:{allRules:!1,allWotRules:!1},wallet:{showPubkey:!0,alertIfUnusedWallet:!0},locale:{id:(p=r.defaultLanguage||o.use(),m=c(p),p!==m&&console.debug("[settings] Fix locale [{0}] -> [{1}]".format(p,m)),m)},license:{en:"license/license_g1-en","fr-FR":"license/license_g1-fr-FR","es-ES":"license/license_g1-es-ES"}},b,r),f={},T=!1,h=new i(this,"csSettings");g.walletHistoryAutoRefresh=!1;var v=function(){if(angular.isUndefined(u)||!angular.equals(u,f))return u=angular.copy(f),h.data.raise.changed(f)},I=function(){return T?(f.useLocalStorage?!0===f.node.temporary?a.getObject(E.STORAGE_KEY).then((function(e){var t=angular.copy(f);return t.node=e&&e.node||{},delete t.temporary,a.setObject(E.STORAGE_KEY,t)})):a.setObject(E.STORAGE_KEY,f):a.setObject(E.STORAGE_KEY,null)).then((function(){return f.useLocalStorage&&console.debug("[setting] Saved locally"),h.data.raisePromise.store(f)})).then(v):(console.debug("[setting] Waiting start finished..."),(d||R()).then(I))},N=function(e){if(e){var t=!1;if(e.locale&&e.locale.id){var n=c(e.locale.id);e.locale=_.findWhere(s,{id:n}),t=!f.locale||e.locale.id!==f.locale.id||e.locale.id!==o.use()}_.keys(b).forEach((function(t){e[t]=g[t]})),angular.merge(f,e),(e&&e.node&&!e.node.temporary||!f.node.temporary)&&delete f.node.temporary,t&&o.use(f.locale.id)}},O=function(){var e=Date.now();return a.getObject(E.STORAGE_KEY).then((function(t){if(!t)return console.debug("[settings] No settings in local storage. Using defaults."),N(g),void v();N(t),console.debug("[settings] Loaded from local storage in "+(Date.now()-e)+"ms"),v()}))},R=function(){return console.debug("[settings] Starting..."),d=a.ready().then(O).then((function(){console.debug("[settings] Started"),T=!0,d=null,h.data.raise.ready(f)}))};return e.$on("$translateChangeSuccess",(function(){var e=o.use();console.debug("[settings] Locale ["+e+"]");try{moment.locale(e.toLowerCase())}catch(t){try{moment.locale(e.substr(0,2))}catch(e){moment.locale("en-gb"),console.warn("[settings] Unknown local for moment lib. Using default [en]")}}try{numeral.language(e.toLowerCase())}catch(t){try{numeral.language(e.substring(0,2))}catch(e){numeral.language("en-gb"),console.warn("[settings] Unknown local for numeral lib. Using default [en]")}}h.locale.raise.changed(e)})),h.registerEvent("data","reset"),h.registerEvent("data","changed"),h.registerEvent("data","store"),h.registerEvent("data","ready"),h.registerEvent("locale","changed"),N(g),{ready:function(){return T?t.when():d||R()},start:R,data:f,apply:N,getByPath:function(e,t){var n=f;return _.each(e.split("."),(function(e){n=n[e],angular.isUndefined(n)&&(n=t)})),n},reset:function(){return _.keys(f).forEach((function(e){delete f[e]})),N(g),h.data.raisePromise.reset(f).then(I)},store:I,restore:O,getLicenseUrl:function(){var e=f.locale&&f.locale.id||r.defaultLanguage||"en";return r.license?r.license[e]?r.license[e]:g.license[r.defaultLanguage||"en"]||r.license:void 0},getFeedUrl:function(){var e=f.locale&&f.locale.id||r.defaultLanguage||"en";return r.feed&&r.feed.jsonFeed?r.feed.jsonFeed[e]?r.feed.jsonFeed[e]:g.feed.jsonFeed[r.defaultLanguage||"en"]||r.feed:void 0},defaultSettings:g,api:h,locales:s,constants:E}}]),angular.module("cesium.network.services",["ngApi","cesium.currency.services","cesium.http.services"]).factory("csNetwork",["$rootScope","$q","$interval","$timeout","$window","csConfig","BMA","csHttp","csCurrency","Api",function(t,i,a,o,r,s,l,c,u,d){var p,m="https:"===r.location.protocol,E=new d(this,"csNetwork"),b={bma:null,listeners:[],loading:!0,peers:[],filter:{member:!0,mirror:!0,endpoint:null,online:!1,bma:!1,ssl:void 0,tor:void 0},sort:{type:null,asc:!0,compact:!0},groupBy:"pubkey",expertMode:!1,knownBlocks:[],mainBlock:null,minOnlineBlockNumber:0,uidsByPubkeys:null,searchingPeersOnNetwork:!1,difficulties:null,ws2pHeads:null,timeout:s.timeout},g=function(e){return e&&[e.number,e.hash].join("-")},f=function(){return b.bma.network.ws2p.heads().then((function(e){b.ws2pHeads=e.heads?e.heads.reduce((function(e,t){if(t.message&&t.sig)try{var i=new n(t.message);e[[i.pubkey,i.ws2pid].join("-")]=i}catch(e){console.error("[network] Ignoring WS2P head.",e&&e.message||e)}return e}),{}):{}})).catch((function(e){if(e&&e.ucode==l.errorCodes.HTTP_LIMITATION)return o((function(){return f()}),3e3);console.error(e),b.ws2pHeads={}}))},T=function(){return b.bma.blockchain.stats.difficulties().then((function(e){b.difficulties=e.levels?e.levels.reduce((function(e,t){return t.uid&&t.level&&(e[t.uid]=t.level),e}),{}):{}})).catch((function(e){if(e&&e.ucode==l.errorCodes.HTTP_LIMITATION)return o((function(){return T()}),3e3);console.error(e),b.difficulties={}}))},h=function(){b.peers=[],b.searchingPeersOnNetwork=!0,b.loading=!0,b.bma=b.bma||l;var t=[];p&&a.cancel(p),p=a((function(){t.length?R(t):b.loading&&!b.searchingPeersOnNetwork&&(b.loading=!1,a.cancel(p),S(!0),console.debug("[network] Finish: {0} peers found.".format(b.peers.length)))}),1e3);var n=[b.bma.wot.member.uids().then((function(e){b.uidsByPubkeys=e})).catch((function(e){console.error(e),b.uidsByPubkeys={}})),f()];return b.expertMode&&n.push(T()),i.all(n).then((function(){return b.bma&&b.bma.network.peers()})).then((function(n){if(n&&n.peers&&n.peers.length){if(!b.filter.online)return i.all(_(n&&n.peers||[]).reduce((function(e,n){return e.concat(I(n,t))}),[]));var a=[];_.forEach(n.peers,(function(e){"UP"===e.status&&(e.blockNumber=e.block&&parseInt(e.block.split("-")[0]),e.blockNumber&&e.blockNumber<b.minOnlineBlockNumber?console.debug("[network] Exclude a too old peer document, on pubkey {0}".format(e.pubkey.substring(0,6))):(a.push(I(e,t)),_.forEach(e.endpoints||[],(function(t){if(t.startsWith("WS2P")){var n=e.pubkey+"-"+t.split(" ")[1];b.ws2pHeads[n]&&(b.ws2pHeads[n].hasEndpoint=!0)}}))))}));var o=_.values(b.ws2pHeads);if(o&&o.length){var r=0;_.forEach(o,(function(n){if(!n.hasEndPoint){var i=n.buid&&parseInt(n.buid.split("-")[0]);if(i&&i<b.minOnlineBlockNumber)return void console.debug("[network] Exclude a too old WS2P message, on pubkey {0}".format(n.pubkey.substring(0,6)));var a=new e({buid:n.buid,currentNumber:i,pubkey:n.pubkey,version:n.version,powPrefix:n.powPrefix,online:!0,uid:b.uidsByPubkeys[n.pubkey],bma:{useWs2p:!0,private:!0,ws2pid:n.ws2pid},endpoints:["WS2P "+n.ws2pid]});a.id=a.keyID(),a.uid&&b.expertMode&&b.difficulties&&(a.difficulty=b.difficulties[a.uid]),v(a)&&(t.push(a),r++)}})),r&&console.debug("[http] Found {0} WS2P endpoints without endpoint (private ?)".format(r))}return a.length?i.all(a):void 0}})).then((function(){b.searchingPeersOnNetwork=!1})).catch((function(e){console.error(e),b.searchingPeersOnNetwork=!1}))},v=function(e){return!(b.filter&&(b.filter.member&&!b.filter.mirror&&!e.uid||b.filter.mirror&&!b.filter.member&&e.uid||b.filter.endpoint&&!e.hasEndpoint(b.filter.endpoint)||b.filter.online&&"UP"!==e.status&&e.oldBlock||!b.filter.online&&"UP"===e.status&&!e.oldBlock||angular.isDefined(b.filter.bma)&&e.isBma()!=b.filter.bma||angular.isDefined(b.filter.ws2p)&&e.isWs2p()!=b.filter.ws2p||angular.isDefined(b.filter.ssl)&&e.isSsl()!=b.filter.ssl||angular.isDefined(b.filter.tor)&&e.isTor()!=b.filter.tor))},I=function(e,t){t=t||b.newPeers,e.blockNumber=e.block&&parseInt(e.block.split("-")[0]),e.oldBlock="UP"===e.status&&e.blockNumber&&e.blockNumber<b.minOnlineBlockNumber;var n=N(e),a=!1,o=n.reduce((function(e,n){var i=_.findWhere(b.peers,{id:n.id}),o=i?i.buid:null,r=!!i&&i.online;return e.concat(O(n).then((function(e){if(i)if(!e||e.online!==b.filter.online&&"all"!==b.filter.online){var s=b.peers.indexOf(i);-1!==s&&(console.debug("[network] Peer [{0}] removed (cause: {1})".format(n.server,e?e.online?"UP":"DOWN":"filtered")),b.peers.splice(s,1),a=!0)}else e.buid!==o?(console.debug("[network] {0} endpoint [{1}] new current block".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server)),a=!0):r!==e.online?(console.debug("[network] {0} endpoint [{1}] is now {2}".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server,e.online?"UP":"DOWN")),a=!0):console.debug("[network] {0} endpoint [{1}] unchanged".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server));else!e||e.online!==b.filter.online&&"all"!==b.filter.online||(console.debug("[network] {0} endpoint [{1}] is {2}".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server,e.online?"UP":"DOWN")),t.push(e),a=!0)})))}),[]);return(1===o.length?o[0]:i.all(o)).then((function(){return a}))},N=function(t,n){if(!t)return[];var i=new e(t);if(!n){var a=i.getEndpoints();if(!a)return[];var o=a.reduce((function(e,t){var n=l.node.parseEndPoint(t);return n?e.concat(n):e}),[]);if(o.length>1)return o.reduce((function(e,n){return e.concat(N(t,n))}),[]);n=o[0]}return i.bma=n,i.server=i.getServer(),i.dns=i.getDns(),i.buid=i.buid||i.block,i.blockNumber=i.buid&&parseInt(i.buid.split("-")[0]),i.uid=i.pubkey&&b.uidsByPubkeys[i.pubkey],i.id=i.keyID(),[i]},O=function(e){if(!v(e))return i.when();if(!b.filter.online||!b.filter.online&&"DOWN"===e.status||!e.getHost())return e.online=!1,i.when(e);if(e.bma.useWs2p&&b.ws2pHeads){var t=[e.pubkey,e.bma.ws2pid].join("-"),n=b.ws2pHeads[t];return delete b.ws2pHeads[t],n&&(e.buid=n.buid,e.currentNumber=n.buid&&parseInt(n.buid.split("-")[0]),e.version=n.version,e.powPrefix=n.powPrefix),e.online=!!e.buid,e.uid&&b.expertMode&&b.difficulties&&(e.difficulty=b.difficulties[e.uid]),i.when(e)}return e.bma.useWs2p||!m||e.bma.useSsl?e.bma.useTor||e.bma.useWs2p?(e.online="UP"===e.status,e.buid=-1,delete e.version,e.uid&&b.expertMode&&b.difficulties&&(e.difficulty=b.difficulties[e.uid]),i.when(e)):(e.api=e.api||l.lightInstance(e.getHost(),e.getPort(),e.isSsl(),b.timeout),e.api.blockchain.current(!1).then((function(t){return e.currentNumber=t.number,e.online=!0,e.buid=g(t),e.medianTime=t.medianTime,-1===b.knownBlocks.indexOf(e.buid)&&b.knownBlocks.push(e.buid),e})).catch((function(t){if(t&&t.ucode==l.errorCodes.NO_CURRENT_BLOCK)return e.online=!0,e.buid=g({number:0,hash:l.constants.ROOT_BLOCK_HASH}),e.difficulty=0,e;if(!e.secondTry){var n=e.bma||e.getBMA();if(n.dns&&-1===e.server.indexOf(n.dns))return e.secondTry=!0,e.api=l.lightInstance(n.dns,n.port,n.useSsl),O(e)}return e.buid=null,e.blockNumber=null,e.currentNumber=null,e.online=!1,e.uid=b.uidsByPubkeys[e.pubkey],e})).then((function(e){if(!(b.filter.online&&e&&e.online&&b.expertMode))return e;var t=[];return e.uid&&t.push(e.api.blockchain.stats.hardship({pubkey:e.pubkey}).then((function(t){e.difficulty=t?t.level:null})).catch((function(){e.difficulty=null}))),t.push(e.api.node.summary().then((function(t){e.software=t&&t.duniter&&t.duniter.software||void 0,e.version=t&&t.duniter&&t.duniter.version||"?"})).catch((function(){e.software=void 0,e.version="?"}))),i.all(t).then((function(){return e}))}))):(e.online="UP"===e.status,e.buid=-1,delete e.version,e.uid&&b.expertMode&&b.difficulties&&(e.difficulty=b.difficulties[e.uid]),i.when(e))},R=function(e,t){if((e=e||b.newPeers).length){var n=_.map(b.peers,(function(e){return e.id})),i=!1,a=0;_.forEach(e.splice(0),(function(e){n[e.id]||(b.peers.push(e),n[e.id]=e,i=!0,a++)})),i&&(console.debug("[network] Flushing {0} new peers...".format(a)),S(t))}},A=function(e,t,n){if(!e)return 0;var i=0;t>(e=e.toLowerCase()).length&&(t=e.length),i+=e.charCodeAt(0);for(var a=1;a<t;a++)i+=Math.pow(.001,a)*e.charCodeAt(a);return n?1e3-i:i},S=function(e){var t={};b.memberPeersCount=0,_.forEach(b.peers,(function(e){if(e.buid){var n=t[e.buid];n&&n.medianTime?!n.medianTime&&e.medianTime&&(n.medianTime=e.medianTime):(n={buid:e.buid,medianTime:e.medianTime,count:0},t[e.buid]=n),-1!==n.buid&&n.count++}b.memberPeersCount+=e.uid?1:0}));var n,i=b.mainBlock;b.filter.online&&(_.forEach(_.values(t),(function(e){e.pct=100*e.count/b.peers.length})),i=_.max(t,(function(e){return e.count})),_.forEach(b.peers,(function(e){e.hasMainConsensusBlock=e.buid===i.buid,e.hasConsensusBlock=e.buid&&!e.hasMainConsensusBlock&&t[e.buid].count>1,e.hasConsensusBlock&&(e.consensusBlockDelta=t[e.buid].medianTime-i.medianTime)}))),b.peers=_.uniq(b.peers,!1,(function(e){return e.id})),b.peers=_.sortBy(b.peers,(function(e){var n=0;return b.sort.type&&(n+="uid"===b.sort.type?A(e.uid||e.pubkey,3,b.sort.asc):0,n+="api"===b.sort.type&&(e.isWs2p()&&(b.sort.asc?1:-1)||0)+(e.hasEndpoint("ES_USER_API")&&(b.sort.asc?.01:-.01)||0)+(e.isSsl()&&(b.sort.asc?.75:-.75)||0)||0,n+="difficulty"===b.sort.type&&e.difficulty?b.sort.asc?1e4-e.difficulty:e.difficulty:0,n+="current_block"===b.sort.type&&e.currentNumber?b.sort.asc?1e9-e.currentNumber:e.currentNumber:0),n*=1e10,n+=1e9*(e.online?1:0),n+=1e8*(e.hasMainConsensusBlock?1:0),n+=1e6*(e.hasConsensusBlock?t[e.buid].pct:0),b.expertMode?(n+=100*(e.difficulty?1e4-e.difficulty:0),n+=1*(e.uid?A(e.uid,2,!0):0)):(n+=100*(e.uid?A(e.uid,2,!0):0),n+=1*(e.uid?0:A(e.pubkey,2,!0))),-(n+=e.isBma()?e.isSsl()?.01:.001:0)})),b.groupBy&&b.peers.forEach((function(e){e.compacted=n&&e[b.groupBy]&&e[b.groupBy]===n[b.groupBy],n=e})),e&&i&&i.buid&&(!b.mainBlock||b.mainBlock.buid!==i.buid)&&(b.mainBlock=i,E.data.raise.mainBlockChanged(i)),E.data.raise.changed(b)},C=function(e,t){return t=t||{},l.ready().then((function(){if(L(),b.bma=e||l,b.filter=t.filter?angular.merge(b.filter,t.filter):b.filter,b.sort=t.sort?angular.merge(b.sort,t.sort):b.sort,b.expertMode=angular.isDefined(t.expertMode)?t.expertMode:b.expertMode,b.timeout=angular.isDefined(t.timeout)?t.timeout:s.timeout,b.minOnlineBlockNumber=b.mainBlock&&b.mainBlock.buid&&parseInt(b.mainBlock.buid.split("-")[0])-1e3||void 0,void 0===b.minOnlineBlockNumber)return u.blockchain.current(!0).then((function(e){b.minOnlineBlockNumber=e.number-1e3}))})).then((function(){console.info("[network] Starting network from [{0}]".format(e.server));var t=Date.now();return b.listeners=[b.bma.websocket.block().onListener((function(e){if(e&&!b.loading){var t=[e.number,e.hash].join("-");-1===b.knownBlocks.indexOf(t)&&(console.debug("[network] Receiving block: "+t.substring(0,20)),b.knownBlocks.push(t),1===b.knownBlocks.length||(b.loading=!0,o((function(){console.debug("[network] new block received by WS: will refresh peers"),h()}),2e3,!1)))}})),b.bma.websocket.peer().onListener((function(e){if(e&&!b.loading){var t=[];I(e,t).then((function(e){e&&(t.length>0?R(t,!0):(console.debug("[network] [ws] Peers updated received"),S(!0)))}))}}))],h().then((function(e){return console.debug("[network] Started in "+(Date.now()-t)+"ms"),e}))}))},L=function(){b.bma&&(console.info("[network-service] Stopping..."),_.forEach(b.listeners,(function(e){e()})),b.listeners=[],b.bma=null,b.listeners=[],b.peers.splice(0),b.filter={member:!0,mirror:!0,endpoint:null,online:!0,bma:!1,ssl:void 0,tor:void 0},b.sort={type:null,asc:!0},b.groupBy="pubkey",b.expertMode=!1,b.memberPeersCount=0,b.knownBlocks=[],b.mainBlock=null,b.minOnlineBlockNumber=0,b.uidsByPubkeys={},b.loading=!0,b.searchingPeersOnNetwork=!1,b.difficulties=null,b.ws2pHeads=null,b.timeout=s.timeout)},D=function(e){return b.bma?C().then((function(){return i(e)})):i(e)};return E.registerEvent("data","changed"),E.registerEvent("data","mainBlockChanged"),E.registerEvent("data","rollback"),{data:b,start:C,close:L,hasPeers:function(){return b.peers&&b.peers.length>0},getPeers:function(){return b.peers},sort:function(e){e=e||{},b.filter=e.filter?angular.merge(b.filter,e.filter):b.filter,b.sort=e.sort?angular.merge(b.sort,e.sort):b.sort,S(!1)},getTrustedPeers:function(){return D((function(e,t){e(b.peers.reduce((function(e,t){return t.hasMainConsensusBlock&&t.uid?e.concat(t):e}),[]))}))},getKnownBlocks:function(){return b.knownBlocks},getMainBlockUid:function(){return D((function(e,t){e(b.mainBuid)}))},loadPeers:h,isBusy:function(){return b.loading},api:E}}]),angular.module("cesium.crypto.services",["cesium.utils.services"]).factory("CryptoUtils",["$q","$timeout","ionicReady",function(e,t,n){function i(){this.loaded=!1;var e=this;this.copy=function(t){_.forEach(_.keys(t),(function(n){e[n]=t[n]}))},this.isLoaded=function(){return this.loaded},this.util=this.util||{},this.util.array_to_string=function(e,t){var n=new Blob([new Uint8Array(e)]),i=new FileReader;i.onload=function(e){t(e.target.result)},i.readAsText(n)}}i.prototype.constants={crypto_sign_BYTES:64,crypto_secretbox_NONCEBYTES:24,crypto_box_MACBYTES:16,SEED_LENGTH:32,SCRYPT_PARAMS:{SIMPLE:{N:2048,r:8,p:1,memory:-1},DEFAULT:{N:4096,r:16,p:1,memory:-1},SECURE:{N:16384,r:32,p:2,memory:33554432},HARDEST:{N:65536,r:32,p:4,memory:134217728},EXTREME:{N:262144,r:64,p:8,memory:536870912}}},i.prototype.async_load_base58=function(e){var n=this;if(null!==Base58)return e(Base58);t((function(){n.async_load_base58(e)}),100)},i.prototype.async_load_scrypt=function(e,n){var i=this;null!==scrypt_module_factory?scrypt_module_factory(e,n):t((function(){i.async_load_scrypt(e,n)}),100)},i.prototype.async_load_nacl_js=function(e,n){var i=this;null!==nacl_factory?nacl_factory.instantiate(e,n):t((function(){i.async_load_nacl_js(e,n)}),100)},i.prototype.async_load_base64=function(e){var n=this;null!==Base64?e(Base64):t((function(){n.async_load_base64(e)}),100)},i.prototype.async_load_sha256=function(e){var n=this;if(null!==sha256)return e(sha256);t((function(){n.async_load_sha256(e)}),100)},i.prototype.seed_from_signSk=function(e){for(var t=new Uint8Array(this.constants.SEED_LENGTH),n=0;n<t.length;n++)t[n]=e[n];return t};var a=window.crypto||window.msCrypto||window.Crypto;function o(){this.id="FullJS",this.scrypt=null,this.nacl=null,this.base58=null,this.base64=null;var t=this;function n(e,t){if(0!==t)throw{message:"nacl_raw."+e+" signalled an error"}}function i(e,n,i,o,r){return function(e,t,n,i){if(n.length!==i)throw{message:"nacl."+e+" expected "+i+"-byte "+t+" but got length "+n.length}}(e,n,i,o),function(e,n){var i=n||0,o=a(e.length+i);t.nacl.nacl_raw.HEAPU8.set(e,o+i);for(var r=o;r<o+i;r++)t.nacl.nacl_raw.HEAPU8[r]=0;return o}(i,r)}function a(e){var n=t.nacl.nacl_raw._malloc(e);if(0===n)throw{message:"malloc() failed",nbytes:e};return n}function o(e){t.nacl.nacl_raw._free(e)}function r(e){this.length=e,this.address=a(e)}this.util=this.util||{},this.util.decode_utf8=function(e){var t,n=unescape(encodeURIComponent(e)),i=new Uint8Array(n.length);for(t=0;t<n.length;t++)i[t]=n.charCodeAt(t);return i},this.util.encode_utf8=function(e){return t.nacl.encode_utf8(e)},this.util.encode_base58=function(e){return t.base58.encode(e)},this.util.decode_base58=function(e){var n,i=t.base58.decode(e),a=new Uint8Array(i.length);for(n=0;n<i.length;n++)a[n]=i[n];return a},this.util.decode_base64=function(e){return t.base64.decode(e)},this.util.encode_base64=function(e){return t.base64.encode(e)},this.util.hash_sha256=function(n){return e((function(e){var i=t.util.decode_utf8(n);e(t.nacl.to_hex(t.nacl.crypto_hash_sha256(i)).toUpperCase())}))},this.util.random_nonce=function(){if(t.crypto&&t.crypto.getRandomValues){var n=new Uint8Array(t.constants.crypto_secretbox_NONCEBYTES);return t.crypto.getRandomValues(n),e.when(n)}return e.when(t.nacl.crypto_box_random_nonce())},this.util.crypto_hash_sha256=function(e){return t.nacl.crypto_hash_sha256(e)},this.util.crypto_scrypt=function(n,i,a,o,r,s){return e((function(e,l){try{e(t.scrypt.crypto_scrypt(n,i,a,o,r,s))}catch(e){l(e)}}))},this.box_keypair_from_sign=function(a){return a.boxSk&&a.boxPk?e.when(a):e((function(e,s){try{e((l=i("crypto_box_keypair_from_sign_sk","sk",a.signSk,t.nacl.nacl_raw._crypto_sign_secretkeybytes()),c=new r(t.nacl.nacl_raw._crypto_box_secretkeybytes()),n("_crypto_sign_ed25519_sk_to_curve25519",t.nacl.nacl_raw._crypto_sign_ed25519_sk_to_curve25519(c.address,l)),o(l),t.nacl.crypto_box_keypair_from_raw_sk(c.extractBytes())))}catch(e){s(e)}var l,c}))},this.box_pk_from_sign=function(a){return e((function(e,s){try{e((l=i("crypto_box_pk_from_sign_pk","pk",a,t.nacl.nacl_raw._crypto_sign_publickeybytes()),c=new r(t.nacl.nacl_raw._crypto_box_publickeybytes()),n("_crypto_sign_ed25519_pk_to_curve25519",t.nacl.nacl_raw._crypto_sign_ed25519_pk_to_curve25519(c.address,l)),o(l),c.extractBytes()))}catch(e){s(e)}var l,c}))},this.box_sk_from_sign=function(a){return e((function(e,s){try{e((l=i("crypto_box_sk_from_sign_sk","sk",a,t.nacl.nacl_raw._crypto_sign_secretkeybytes()),c=new r(t.nacl.nacl_raw._crypto_box_secretkeybytes()),n("_crypto_sign_ed25519_sk_to_curve25519",t.nacl.nacl_raw._crypto_sign_ed25519_sk_to_curve25519(c.address,l)),o(l),c.extractBytes()))}catch(e){s(e)}var l,c}))},this.box=function(n,i,a,o){return e((function(e,r){if(n){var s=t.nacl.encode_utf8(n);"string"==typeof a&&(a=t.util.decode_base58(a));try{var l=t.nacl.crypto_box(s,i,a,o);e(t.util.encode_base64(l))}catch(e){r(e)}}else e(n)}))},this.box_open=function(n,i,a,o){return e((function(e,r){if(n){var s=t.util.decode_base64(n);"string"==typeof a&&(a=t.util.decode_base58(a));try{var l=t.nacl.crypto_box_open(s,i,a,o);e(t.nacl.decode_utf8(l))}catch(e){r(e)}}else e(n)}))},this.scryptKeypair=function(e,n,i){return t.util.crypto_scrypt(t.util.encode_utf8(n),t.util.encode_utf8(e),i&&i.N||t.constants.SCRYPT_PARAMS.DEFAULT.N,i&&i.r||t.constants.SCRYPT_PARAMS.DEFAULT.r,i&&i.p||t.constants.SCRYPT_PARAMS.DEFAULT.p,t.constants.SEED_LENGTH).then((function(e){var n=t.nacl.crypto_sign_seed_keypair(e),i=t.nacl.crypto_box_seed_keypair(e);return{signPk:n.signPk,signSk:n.signSk,boxPk:i.boxPk,boxSk:i.boxSk}}))},this.seedKeypair=function(n){return e((function(e,i){var a=t.nacl.crypto_sign_seed_keypair(n),o=t.nacl.crypto_box_seed_keypair(n);e({signPk:a.signPk,signSk:a.signSk,boxPk:o.boxPk,boxSk:o.boxSk})}))},this.scryptSignPk=function(n,i,a){return e((function(e,o){try{var r=t.scrypt.crypto_scrypt(t.util.encode_utf8(i),t.util.encode_utf8(n),a&&a.N||t.constants.SCRYPT_PARAMS.DEFAULT.N,a&&a.r||t.constants.SCRYPT_PARAMS.DEFAULT.r,a&&a.p||t.constants.SCRYPT_PARAMS.DEFAULT.p,t.constants.SEED_LENGTH);e(t.nacl.crypto_sign_seed_keypair(r).signPk)}catch(e){o(e)}}))},this.verify=function(n,i,a){return e((function(e,o){var r,s=t.util.decode_utf8(n),l=t.util.decode_base64(i),c=t.util.decode_base58(a),u=new Uint8Array(t.constants.crypto_sign_BYTES+s.length);for(r=0;r<t.constants.crypto_sign_BYTES;r++)u[r]=l[r];for(r=0;r<s.length;r++)u[r+t.constants.crypto_sign_BYTES]=s[r];e(null!==t.nacl.crypto_sign_open(u,c))}))},this.sign=function(n,i){return e((function(e,a){for(var o=t.util.decode_utf8(n),r=i.signSk,s=t.nacl.crypto_sign(o,r),l=new Uint8Array(t.constants.crypto_sign_BYTES),c=0;c<l.length;c++)l[c]=s[c];e(t.base64.encode(l))}))},this.load=function(){var n=e.defer(),i={},a={};"a"!=ionic.Platform.grade.toLowerCase()&&(console.info("Reduce NaCl memory to 16mb,  because plateform grade is not [a] but [{0}]".format(ionic.Platform.grade)),i.requested_total_memory=16777216);var o=0,r=function(){4==++o&&(t.loaded=!0,n.resolve())};return this.async_load_nacl_js((function(e){t.nacl=e,r()}),i),this.async_load_scrypt((function(e){t.scrypt=e,t.scrypt.requested_total_memory=a.requested_total_memory,r()}),a),this.async_load_base58((function(e){t.base58=e,r()})),t.async_load_base64((function(e){t.base64=e,r()})),n.promise},this.util.hash=t.util.hash_sha256,this.box={keypair:{fromSignKeypair:t.box_keypair_from_sign,skFromSignSk:t.box_sk_from_sign,pkFromSignPk:t.box_pk_from_sign},pack:t.box,open:t.box_open},r.prototype.extractBytes=function(e){var n=function(e,n){var i=new Uint8Array(n);return i.set(t.nacl.nacl_raw.HEAPU8.subarray(e,e+n)),i}(this.address+(e||0),this.length-(e||0));return o(this.address),this.address=null,n}}function r(){this.id="MiniSodium",this.nacl=null,this.base58=null,this.sha256=null;var t=this;this.util=this.util||{},this.util.decode_utf8=function(e){return t.nacl.to_string(e)},this.util.encode_utf8=function(e){return t.nacl.from_string(e)},this.util.encode_base58=function(e){return t.base58.encode(e)},this.util.decode_base58=function(e){var n,i=t.base58.decode(e),a=new Uint8Array(i.length);for(n=0;n<i.length;n++)a[n]=i[n];return a},this.util.decode_base64=function(e){return t.nacl.from_base64(e)},this.util.encode_base64=function(e){return t.nacl.to_base64(e)},this.util.hash_sha256=function(n){return e.when(t.sha256(n).toUpperCase())},this.util.random_nonce=function(){var n=new Uint8Array(t.constants.crypto_secretbox_NONCEBYTES);return t.crypto.getRandomValues(n),e.when(n)},this.util.crypto_hash_sha256=function(e){return t.nacl.from_hex(t.sha256(e))},this.util.crypto_scrypt=function(n,i,a,o,r,s){var l=e.defer();return t.nacl.crypto_pwhash_scryptsalsa208sha256_ll(n,i,a,o,r,s,(function(e,t){e?l.reject(e):l.resolve(t)})),l.promise},this.scryptKeypair=function(n,i,a){var o=e.defer();return t.nacl.crypto_pwhash_scryptsalsa208sha256_ll(t.nacl.from_string(i),t.nacl.from_string(n),a&&a.N||t.constants.SCRYPT_PARAMS.DEFAULT.N,a&&a.r||t.constants.SCRYPT_PARAMS.DEFAULT.r,a&&a.p||t.constants.SCRYPT_PARAMS.DEFAULT.p,t.constants.SEED_LENGTH,(function(e,n){e?o.reject(e):t.nacl.crypto_sign_seed_keypair(n,(function(e,n){if(e)o.reject(e);else{var i={signPk:n.pk,signSk:n.sk};t.box_keypair_from_sign(i).then((function(e){i.boxPk=e.pk,i.boxSk=e.sk,o.resolve(i)})).catch((function(e){o.reject(e)}))}}))})),o.promise},this.seedKeypair=function(n){var i=e.defer();return t.nacl.crypto_sign_seed_keypair(n,(function(e,t){e?i.reject(e):i.resolve({signPk:t.pk,signSk:t.sk})})),i.promise},this.scryptSignPk=function(n,i,a){var o=e.defer();return t.nacl.crypto_pwhash_scryptsalsa208sha256_ll(t.nacl.from_string(i),t.nacl.from_string(n),a&&a.N||t.constants.SCRYPT_PARAMS.DEFAULT.N,a&&a.r||t.constants.SCRYPT_PARAMS.DEFAULT.r,a&&a.p||t.constants.SCRYPT_PARAMS.DEFAULT.p,t.constants.SEED_LENGTH,(function(e,n){e?o.reject(e):t.nacl.crypto_sign_seed_keypair(n,(function(e,t){e?o.reject(e):o.resolve(t.pk)}))})),o.promise},this.verify=function(n,i,a){var o=e.defer();return t.nacl.crypto_sign_verify_detached(t.nacl.from_base64(i),t.nacl.from_string(n),t.nacl.from_base64(a),(function(e,t){e?o.reject(e):o.resolve(t)})),o.promise},this.sign=function(n,i){var a=e.defer();return t.nacl.crypto_sign(t.nacl.from_string(n),i.signSk,(function(e,n){if(e)a.reject(e);else{var i;if(n.length>t.constants.crypto_sign_BYTES){i=new Uint8Array(t.constants.crypto_sign_BYTES);for(var o=0;o<i.length;o++)i[o]=n[o]}else i=n;var r=t.nacl.to_base64(i);a.resolve(r)}})),a.promise},this.box_keypair_from_sign=function(n){if(n.boxSk&&n.boxPk)return e.when(n);var i=e.defer(),a={};return t.nacl.crypto_sign_ed25519_pk_to_curve25519(n.signPk,(function(e,t){e?i.reject(e):(a.boxPk=t,a.boxSk&&i.resolve(a))})),t.nacl.crypto_sign_ed25519_sk_to_curve25519(n.signSk,(function(e,t){e?i.reject(e):(a.boxSk=t,a.boxPk&&i.resolve(a))})),i.promise},this.box_pk_from_sign=function(n){var i=e.defer();return t.nacl.crypto_sign_ed25519_pk_to_curve25519(n,(function(e,t){e?i.reject(e):i.resolve(t)})),i.promise},this.box_sk_from_sign=function(n){var i=e.defer();return t.nacl.crypto_sign_ed25519_sk_to_curve25519(n,(function(e,t){e?i.reject(e):i.resolve(t)})),i.promise},this.box=function(n,i,a,o){if(!n)return e.reject("No message");var r=e.defer(),s=t.nacl.from_string(n);return"string"==typeof a&&(a=t.util.decode_base58(a)),t.nacl.crypto_box_easy(s,i,a,o,(function(e,n){if(e)r.reject(e);else{var i=t.util.encode_base64(n);r.resolve(i)}})),r.promise},this.box_open=function(n,i,a,o){if(!n)return e.reject("No cypherText");var r=e.defer(),s=t.nacl.from_base64(n);if("string"==typeof a&&(a=t.util.decode_base58(a)),!(s.length<t.constants.crypto_box_MACBYTES))return t.nacl.crypto_box_open_easy(s,i,a,o,(function(e,n){e?r.reject(e):t.util.array_to_string(n,(function(e){r.resolve(e)}))})),r.promise;r.reject("Invalid cypher content length")},this.load=function(){var n=e.defer();if(window.plugins&&window.plugins.MiniSodium){t.nacl=window.plugins.MiniSodium;var i=0,a=function(){2==++i&&(t.loaded=!0,n.resolve())};t.async_load_base58((function(e){t.base58=e,a()})),t.async_load_sha256((function(e){t.sha256=e,a()}))}else n.reject("Cordova plugin 'MiniSodium' not found. Please load Full JS implementation instead.");return n.promise},this.util.hash=t.util.hash_sha256,this.box={keypair:{fromSignKeypair:t.box_keypair_from_sign,skFromSignSk:t.box_sk_from_sign,pkFromSignPk:t.box_pk_from_sign},pack:t.box,open:t.box_open}}a&&a.getRandomValues&&(i.prototype.crypto=a,i.prototype.util={},i.prototype.util.random_nonce=function(){var t=new Uint8Array(crypto_secretbox_NONCEBYTES);return this.crypto.getRandomValues(t),e.when(t)}),o.prototype=new i,r.prototype=new i;var s=new i;return n().then((function(){console.debug("[crypto] Starting...");var e,t=Date.now();window.plugins&&window.plugins.MiniSodium&&a&&a.getRandomValues?(console.debug("[crypto] Loading 'MiniSodium' implementation..."),e=new r):(console.debug("[crypto] Loading 'FullJS' implementation..."),e=new o),e.load().catch((function(e){throw console.error(e),e})).then((function(){s.copy(e),console.debug("[crypto] Loaded '{0}' implementation in {1}ms".format(s.id,Date.now()-t))}))})),s}]).factory("csCrypto",["$q","$rootScope","$timeout","CryptoUtils","UIUtils","Modals",function(e,t,n,i,a,o){function r(e){return new RegExp(e)}function s(e,t){for(var n=Math.max(e.length,t.length),i=new Uint8Array(n),a=0;a<n;++a)i[a]=e[a]^t[a];return i}function l(e,t){var n=new Uint8Array(e.byteLength+t.byteLength);return n.set(new Uint8Array(e),0),n.set(new Uint8Array(t),e.byteLength),n}var c={WIF:{DATA_LENGTH:35},EWIF:{SALT_LENGTH:4,DERIVED_HALF_LENGTH:16,DATA_LENGTH:39,SCRYPT_PARAMS:{N:16384,r:8,p:8}},REGEXP:{PUBKEY:"[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}",SECKEY:"[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{86,88}",FILE:{TYPE_LINE:"^Type: ([a-zA-Z0-9]+)\n",VERSION:"Version: ([0-9]+)\n",PUB:"[Pp]ub: ([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44})\n",SEC:"[Ss]ec: ([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{86,88})(\n|$)",DATA:"[Dd]ata: ([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)(\n|$)"}}},u={FILE:{TYPE_LINE:r(c.REGEXP.FILE.TYPE_LINE),VERSION:r(c.REGEXP.FILE.VERSION),PUB:r(c.REGEXP.FILE.PUB),SEC:r(c.REGEXP.FILE.SEC),DATA:r(c.REGEXP.FILE.DATA)}},d={BAD_PASSWORD:3001,BAD_CHECKSUM:3002};function p(t,n){if(!t)return e.reject("Argument [content] is missing");var a;(n=n||{}).withSecret=!!angular.isDefined(n.withSecret)&&n.withSecret,n.defaultType=n.defaultType||"PubSec";var o=u.FILE.TYPE_LINE.exec(t),r=o&&o[1];if(!r&&n.defaultType)return p("Type: {0}\n{1}".format(n.defaultType,t),n);if("PubSec"==r){if(!(a=u.FILE.PUB.exec(t)))return e.reject("Missing [pub] field in file, or invalid public key value");var s={signPk:i.base58.decode(a[1])};return n.withSecret?(a=u.FILE.SEC.exec(t))?(s.signSk=i.base58.decode(a[1]),e.resolve(s)):e.reject("Missing [sec] field in file, or invalid secret key value"):e.resolve(s)}return"WIF"==r||"EWIF"==r?(a=u.FILE.DATA.exec(t))?m(a[1],{type:r,password:n.password}).then((function(e){return e&&!n.withSecret?{signPk:e.signPk}:e})):e.reject("Missing [Data] field in file. This is required for WIF or EWIF format"):n.defaultType?e.reject("Bad file format: missing Type field"):e.reject("Bad file format, unknown type ["+r+"]")}function m(t,n){n=n||{};var a=t&&i.base58.decode(t);return!a||a.length!=c.EWIF.DATA_LENGTH&&a.length!=c.WIF.DATA_LENGTH?e.reject("Invalid WIF or EWIF format (invalid bytes count)."):(n.type=n.type||1==a[0]&&"WIF"||2==a[0]&&"EWIF","WIF"==n.type?function(t){var n=i.util.decode_base58(t);if(1!=n[0])return e.reject({message:"Invalid WIF v1 format: expected [0x01] as first byte"});if(n.length!=c.WIF.DATA_LENGTH)return e.reject({message:"Invalid WIF v1 format: Data must be a "+c.WIF.DATA_LENGTH+" bytes array, encoded in base 58."});var a=n.slice(0,-2),o=n.slice(1,-2),r=n.slice(-2),s=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(a)).slice(0,2);return i.util.encode_base58(r)!=i.util.encode_base58(s)&&e.reject({message:"Invalid WIF format: bad checksum"}),i.seedKeypair(o)}(t):"EWIF"==n.type?"function"!=typeof n.password||(n.password=n.password(),n.password)?"object"==typeof n.password&&n.password.then?n.password.then((function(e){if(!e)throw"CANCELLED";return E(t,e)})):"string"==typeof n.password?E(t,n.password):e.reject({message:"Invalid EWIF options.password. Waiting a callback function, a promise or a string."}):e.reject({message:"Invalid callback result for 'options.password()': must return a promise or a string."}):e.reject({message:"Invalid WIF or EWIF format: unknown first byte identifier."}))}function E(t,n){var a=i.util.decode_base58(t);if(2!=a[0])return e.reject({message:"Invalid EWIF v1 format: Expected [0x02] as first byte"});if(a.length!=c.EWIF.DATA_LENGTH)return e.reject({message:"Invalid EWIF v1 format: Expected {0} bytes, encoded in base 58.".format(c.EWIF.DATA_LENGTH)});var o=a.slice(0,-2),r=a.slice(-2),u=a.slice(1,5),p=a.slice(5,21),m=a.slice(21,37);return i.util.crypto_scrypt(i.util.encode_utf8(n),u,c.EWIF.SCRYPT_PARAMS.N,c.EWIF.SCRYPT_PARAMS.r,c.EWIF.SCRYPT_PARAMS.p,64).then((function(e){var t=e.slice(0,32),n=e.slice(32,64),i=new aesjs.ModeOfOperation.ecb(n),a=i.decrypt(p),o=i.decrypt(m);return a=new Uint8Array(a),o=new Uint8Array(o),l(s(a,t.slice(0,16)),s(o,t.slice(16,32)))})).then(i.seedKeypair).then((function(e){var t=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(e.signPk)).slice(0,4);if(i.util.encode_base58(u)!==i.util.encode_base58(t))throw{ucode:d.BAD_PASSWORD,message:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_PASSWORD"};var n=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(o)).slice(0,2);if(i.util.encode_base58(r)!=i.util.encode_base58(n))throw{ucode:d.BAD_CHECKSUM,message:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_CHECKSUM"};return e}))}function b(t){if(!t)throw new Error("Missing keypair");return t.boxPk&&t.boxSk?e.when(t):e.all([i.box.keypair.skFromSignSk(t.signSk),i.box.keypair.pkFromSignPk(t.signPk)]).then((function(e){return{boxSk:e[0],boxPk:e[1]}}))}return{errorCodes:d,constants:c,util:angular.extend({pkChecksum:function(e){var t=i.util.decode_base58(e);return i.util.encode_base58(i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(t))).substring(0,3)}},i.util),keyfile:{read:function(t,n){return t&&t.content?p(t.content,n):e((function(e,i){if(!t)return i("Argument [file] is missing");var a=new FileReader;a.onload=function(t){p(t.target.result,n).then(e).catch(i)},a.readAsText(t,"utf8")}))},parseData:function e(t,i){return(i=i||{}).withSecret=!angular.isDefined(i.withSecret)||i.withSecret,i.silent=!!angular.isDefined(i.withSecret)&&i.silent,i.password=function(){return a.loading.hide(100).then((function(){return o.showPassword({title:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.TITLE",subTitle:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.HELP",error:i.error,scope:i.scope})})).then((function(e){return n((function(){return e&&a.loading.show(),e}),150)}))},i.silent||a.loading.show(),m(t,i).then((function(e){return e})).catch((function(n){if(!n||"CANCELLED"!==n){if(n&&n.ucode==d.BAD_PASSWORD)return e(t,{withSecret:i.withSecret,error:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_PASSWORD"});throw console.error("[crypto] Unable to parse as WIF or EWIF format: "+(n&&n.message||n)),n}}))},generateContent:function t(n,a){switch((a=a||{}).type=a.type||"PubSec",a.type){case"PubSec":return e.resolve("Type: PubSec\nVersion: 1\npub: "+i.base58.encode(n.signPk)+"\nsec: "+i.base58.encode(n.signSk)+"\n");case"WIF":return function(t){var n=i.seed_from_signSk(t.signSk);if(!n||n.byteLength!==i.constants.SEED_LENGTH)throw"Bad see format. Expected {0} bytes".format(i.constants.SEED_LENGTH);var a=new Uint8Array(1);a[0]=1;var o=l(a,n),r=l(o,i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(o)).slice(0,2));return e.when(i.util.encode_base58(r))}(n).then((function(e){return"Type: WIF\nVersion: 1\nData: "+e+"\n"}));case"EWIF":return a.password?a.password&&"function"==typeof a.password&&(console.debug("[crypto] [EWIF] Executing 'options.password()' to resolve the password..."),a.password=a.password(),!a.password)?e.reject({message:"Invalid callback result for 'options.password()': must return a promise or a string."}):a.password&&"object"==typeof a.password&&a.password.then?a.password.then((function(e){if(!e)throw"CANCELLED";return t(n,angular.merge({},a,{password:e}))})):a.password&&"string"==typeof a.password?function(t,n){var a=i.seed_from_signSk(t.signSk);if(!a||a.byteLength!==i.constants.SEED_LENGTH)return e.reject({message:"Bad see format. Expected {0} bytes".format(i.constants.SEED_LENGTH)});var o=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(t.signPk)).slice(0,4);return i.util.crypto_scrypt(i.util.encode_utf8(n),o,c.EWIF.SCRYPT_PARAMS.N,c.EWIF.SCRYPT_PARAMS.r,c.EWIF.SCRYPT_PARAMS.p,64).then((function(e){var t=e.slice(0,32),n=e.slice(32,64),r=s(a.slice(0,16),t.slice(0,16)),c=s(a.slice(16,32),t.slice(16,32)),u=new aesjs.ModeOfOperation.ecb(n),d=u.encrypt(r),p=u.encrypt(c);d=new Uint8Array(d),p=new Uint8Array(p);var m=new Uint8Array(1);return m[0]=2,m=l(m,o),m=l(m,d),m=l(m,p),m=l(m,i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(m)).slice(0,2)),i.util.encode_base58(m)}))}(n,a.password).then((function(e){return"Type: EWIF\nVersion: 1\nData: "+e+"\n"})):e.reject({message:"Invalid EWIF options.password. Waiting a callback function, a promise or a string."}):e.reject({message:"Missing EWIF options.password."});default:return e.reject({message:"Unknown keyfile format: "+a.type})}}},box:{getKeypair:b,pack:function(t,n,a,o,r){if(!t[a=a||"recipient"])return e.reject({message:"ES_WALLET.ERROR.RECIPIENT_IS_MANDATORY"});"string"==typeof(o=o||"content")&&(o=[o]),t=angular.copy(t);var s=i.util.decode_base58(t[a]);return e.all([b(n),i.box.keypair.pkFromSignPk(s),r?e.when(r):i.util.random_nonce()]).then((function(n){var a=n[0].boxSk,r=n[1],s=n[2];return e.all(o.reduce((function(e,n){return t[n]?e.concat(i.box.pack(t[n],s,r,a)):e}),[])).then((function(e){var n=0;return _.forEach(o,(function(i){t[i]?t[i]=e[n++]:t[i]=null})),t.nonce=i.util.encode_base58(s),t}))}))},open:function(t,n,a,o){a=a||"issuer","string"==typeof(o=o||"content")&&(o=[o]);var r=Date.now(),s={},l=[b(n)];return e.all(t.reduce((function(e,t){var n=t[a];if(!n)throw"Record has no "+a;return s[n]?res:e.concat(i.box.keypair.pkFromSignPk(i.util.decode_base58(n)).then((function(e){s[n]=e})))}),l)).then((function(n){var r=n[0];return e.all(t.reduce((function(e,t){var n=s[t[a]],l=i.util.decode_base58(t.nonce);return t.valid=!0,e.concat(o.reduce((function(e,a){return t[a]?e.concat(i.box.open(t[a],l,n,r.boxSk).then((function(e){t[a]=e})).catch((function(e){console.error(e),console.warn("[ES] [crypto] a record may have invalid cypher "+a),t.valid=!1}))):e}),[]))}),[]))})).then((function(){return console.debug("[ES] [crypto] All record decrypted in "+(Date.now()-r)+"ms"),t}))}}}}]),angular.module("cesium.utils.services",[]).factory("ionicReady",["$ionicPlatform",function(e){var t;return function(){return t||(t=e.ready()),t}}]).factory("UIUtils",["$ionicLoading","$ionicPopup","$ionicConfig","$ionicHistory","$translate","$q","ionicMaterialInk","ionicMaterialMotion","$window","$timeout","Fullscreen","$cordovaToast","$ionicPopover","$state","$rootScope","screenmatch",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){var g,f=null,T={MAX_HEIGHT:480,MAX_WIDTH:640,THUMB_MAX_HEIGHT:200,THUMB_MAX_WIDTH:200},h={smallscreen:b.bind("xs, sm",E)},v={};function I(e,n){return e?o((function(i){a([e,n,"ERROR.POPUP_TITLE","ERROR.UNKNOWN_ERROR","COMMON.BTN_OK"]).then((function(a){var o=e.message||a[e];return t.show({template:"<p>"+(o||a["ERROR.UNKNOWN_ERROR"])+"</p>",title:a["ERROR.POPUP_TITLE"],subTitle:a[n],buttons:[{text:"<b>"+a["COMMON.BTN_OK"]+"</b>",type:"button-assertive",onTap:function(e){i(e)}}]})}))})):o.when()}function N(e,n){return o((function(i){a([e,n,"INFO.POPUP_TITLE","COMMON.BTN_OK"]).then((function(a){t.show({template:"<p>"+a[e]+"</p>",title:a["INFO.POPUP_TITLE"],subTitle:a[n],buttons:[{text:a["COMMON.BTN_OK"],type:"button-positive",onTap:function(e){i(e)}}]})}))}))}function O(t){return t?c((function(){return e.hide()}),t):e.hide()}function R(t){return f?((t=t||{}).template=t.template||f,e.show(t)):a("COMMON.LOADING").then((function(e){return f=e,R(t)}))}function A(){return h.smallscreen.active}function S(e,t,n){return function(t){var i,a=t.target.width,o=t.target.height,r=n?T.THUMB_MAX_WIDTH:T.MAX_WIDTH,s=n?T.THUMB_MAX_HEIGHT:T.MAX_HEIGHT,l=document.createElement("canvas");if(n){a>o?(a*=s/o,o=s):(o*=r/a,a=r),l.width=r,l.height=s,i=l.getContext("2d");var c=Math.trunc((r-a)/2+.5),u=Math.trunc((s-o)/2+.5);i.drawImage(t.target,c,u,r+-2*c,s+-2*u)}else a>o?a>r&&(o*=r/a,a=r):o>s&&(a*=s/o,o=s),l.width=a,l.height=o,(i=l.getContext("2d")).drawImage(t.target,0,0,l.width,l.height);var d=l.toDataURL();l.remove(),e(d)}}function C(e,t){var n=o.defer();(t=t||{}).templateUrl=t.templateUrl?t.templateUrl:"templates/common/popover_copy.html",t.scope=t.scope||E,t.scope.popovers=t.scope.popovers||{},t.autoselect=t.autoselect||!1,t.autoremove=!angular.isDefined(t.autoremove)||t.autoremove,t.backdropClickToClose=!angular.isDefined(t.backdropClickToClose)||t.backdropClickToClose,t.focusFirstInput=!!angular.isDefined(t.focusFirstInput)&&t.focusFirstInput;var i=function(i){(i=i||t.scope.popovers[t.templateUrl]).isResolved=!1,i.deferred=n,i.options=t,t.bindings&&angular.merge(i.scope,t.bindings),c((function(){i.show(e).then((function(){var e;t.autoselect?(e=document.querySelectorAll(t.autoselect)[0])&&(l.getSelection&&!l.getSelection().toString()?(e.setSelectionRange(0,e.value.length),e.focus()):e.focus()):t.autofocus&&(e=document.querySelectorAll(t.autofocus)[0])&&e.focus(),i.scope.$parent.$emit("popover.shown"),t.afterShow&&t.afterShow(i)}))}))},a=function(e){(e=e||t.scope.popovers[t.templateUrl])&&(delete t.scope.popovers[t.templateUrl],e.remove().then((function(){angular.element(l.document.querySelectorAll("body")[0]).removeClass("popover-open")})))},r=t.scope.popovers[t.templateUrl];return r?i(r):p.fromTemplateUrl(t.templateUrl,{scope:t.scope,backdropClickToClose:t.backdropClickToClose}).then((function(e){e.isResolved=!1,e.scope.closePopover=function(t){var n=e.options&&e.options.autoremove;e.options&&delete e.options.autoremove,e.hide().then((function(){if(n)return a(e)})).then((function(){e.deferred&&e.deferred.resolve(t),delete e.deferred,delete e.options}))},e.scope.$on("popover.hidden",(function(){e.options&&e.options.afterHidden&&e.options.afterHidden(),e.options&&e.options.autoremove&&a(e)})),t.scope.$on("$remove",(function(){e.deferred&&e.deferred.resolve(),a()})),t.scope.popovers[t.templateUrl]=e,i(e)})),n.promise}function L(e,t){var n=A()?100:10,i=".list.{0} .item, .list .{0} .item".format(t,t);return{ionListClass:t,show:function(t){return(t=t||{}).selector=t.selector||i,t.ink=!angular.isDefined(t.ink)||t.ink,t.startVelocity=t.startVelocity||(A()?1100:3e3),c((function(){t.ink&&g.ink(),e(t)}),t.timeout||n)}}}function D(e,t){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return console.error("invalid toggleOn selector"),!1;c((function(){var t=document.querySelectorAll(e.selector);t&&_.forEach(t,(function(e){e.classList.toggle("on",!0)}))}),t||100)}function y(e,t){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return console.error("invalid toggleOff selector"),!1;c((function(){var t=document.querySelectorAll(e.selector);t&&_.forEach(t,(function(e){e.classList.toggle("on",!1)}))}),t||900)}return v.motion={enable:!0,default:L(s.ripple,"animate-ripple"),blinds:L(s.blinds,"animate-blinds"),fadeSlideIn:L(s.fadeSlideIn,"animate-fade-slide-in"),fadeSlideInRight:L(s.fadeSlideInRight,"animate-fade-slide-in-right"),panInLeft:L(s.panInLeft,"animate-pan-in-left"),pushDown:L(s.pushDown,"push-down"),ripple:L(s.ripple,"animate-ripple"),slideUp:L(s.slideUp,"slide-up"),fadeIn:L((function(e){D(e)}),"fade-in"),toggleOn:D,toggleOff:y},g={alert:{error:I,info:N,confirm:function(e,n,i){return n=n||"CONFIRM.POPUP_TITLE",(i=i||{}).cssClass=i.cssClass||"confirm",i.okText=i.okText||"COMMON.BTN_OK",i.cancelText=i.cancelText||"COMMON.BTN_CANCEL",a([e,n,i.cancelText,i.okText]).then((function(a){return t.confirm({template:a[e],cssClass:i.cssClass,title:a[n],cancelText:a[i.cancelText],cancelType:i.cancelType,okText:a[i.okText],okType:i.okType})}))},notImplemented:function(){return N("INFO.FEATURES_NOT_IMPLEMENTED")}},loading:{show:R,hide:O,update:function(t){return e._getLoader().then((function(e){if(e&&e.isShown)return t&&t.template?a(t&&t.template).then((function(n){return t.template=n,e})):void 0})).then((function(e){if(e&&e.isShown)return R(t)}))}},toast:{show:function(e,t,n){return t=t||"short",n=n||"bottom",a([e]).then((function(i){window.cordova&&d.show(i[e],t,n)}))}},onError:function(e,t){return function(n){var i,a=e;if(n&&n.message?(a=n.message,i=e):e||(a=n),!t)return"CANCELLED"==a?O(10):(O(10),I(a,i));t(a)}},screen:{isSmall:A,fullscreen:u},ink:r.displayEffect,motion:v.motion,setEffects:function(e){if(g.motion.enable!==e){if(console.debug("[UI] [effects] "+(e?"Enable":"Disable")),g.motion.enable=e,e)n.views.transition("platform"),angular.merge(g.motion,v.motion);else{n.views.transition("none");var t={class:void 0,show:function(){}};angular.merge(g.motion,{enable:!1,default:t,fadeSlideIn:t,fadeSlideInRight:t,panInLeft:t,pushDown:t,ripple:t,slideUp:t,fadeIn:t,toggleOn:D,toggleOff:y}),E.motion=t}i.clearCache()}},fab:{show:function(e,t){t||(t=900),c((function(){var t=document.getElementsByClassName("button-fab");_.forEach(t,(function(t){t.id==e&&t.classList.toggle("on",!0)}))}),t)},hide:function(e,t){t||(t=10),c((function(){var t=document.getElementsByClassName("button-fab");_.forEach(t,(function(t){t.id==e&&t.classList.toggle("on",!1)}))}),t)}},popover:{show:C,copy:function(e,t){var n=t&&t.indexOf("\n")>=0?t.split("\n").length:1;return C(e,{templateUrl:"templates/common/popover_copy.html",bindings:{value:t,rows:n},autoselect:".popover-copy "+(n<=1?"input":"textarea")})},share:function(e,t){return(t=t||{}).templateUrl=t.templateUrl?t.templateUrl:"templates/common/popover_share.html",t.autoselect=t.autoselect||".popover-share input",t.bindings=t.bindings||{},t.bindings.value=t.bindings.value||t.bindings.url||m.href(m.current,m.params,{absolute:!0}),t.bindings.postUrl=t.bindings.postUrl||t.bindings.value,t.bindings.postMessage=t.bindings.postMessage||"",t.bindings.titleKey=t.bindings.titleKey||"COMMON.POPOVER_SHARE.TITLE",C(e,t)},helptip:function e(t,n){var i="string"==typeof t&&t?l.document.getElementById(t):t;t||i||!n.selector||(i=l.document.querySelector(n.selector));var a=(n=n||{}).deferred||o.defer();if(i&&!n.timeout)n.preAction&&i[n.preAction](),n.templateUrl=n.templateUrl?n.templateUrl:"templates/common/popover_helptip.html",n.autofocus=n.autofocus||"#helptip-btn-ok",n.bindings=n.bindings||{},n.bindings.icon=n.bindings.icon||{},n.bindings.icon.position=n.bindings.icon.position||!1,n.bindings.icon.glyph=n.bindings.icon.glyph||(n.bindings.icon.position&&n.bindings.icon.position.startsWith("bottom-")?"ion-arrow-down-c":"ion-arrow-up-c"),n.bindings.icon.class=n.bindings.icon.class||"calm icon "+n.bindings.icon.glyph,n.bindings.tour=!!angular.isDefined(n.bindings.tour)&&n.bindings.tour,C(i,n).then((function(e){n.postAction&&i[n.postAction](),a.resolve(e)})).catch((function(e){n.postAction&&i[n.postAction](),a.reject(e)}));else if(n.timeout){var r=n.timeout;n.retryTimeout=n.retryTimeout||r,delete n.timeout,n.deferred=a,c((function(){e(t,n)}),r)}else angular.isDefined(n.retry)&&!n.retry?"continue"===n.onError?c((function(){a.resolve(!0)})):c((function(){a.reject("[helptip] element now found: "+t)})):(n.retry=angular.isUndefined(n.retry)?2:n.retry-1,n.deferred=a,c((function(){e(t,n)}),n.timeout||n.retryTimeout||100));return a.promise}},selection:{select:function e(t){if(t.value||"text"==t.type||"textarea"==t.type)l.getSelection&&!l.getSelection().toString()&&t.setSelectionRange(0,t.value.length);else if(t.childNodes&&t.childNodes.length>0)e(t.childNodes[0]);else{var n=l.document.createRange();n.selectNodeContents(t);var i=l.getSelection();i.removeAllRanges(),i.addRange(n)}},get:function(){var e="";return window.getSelection&&(e=l.getSelection().toString()),e}},image:{resizeFile:function(e,t){var n=document.createElement("img");return o((function(i,a){if(e){var o=new FileReader;o.onload=function(e){n.onload=S(i,0,t),n.src=e.target.result},o.readAsDataURL(e)}else a("no file to resize")})).then((function(e){return n.remove(),e}))},resizeSrc:function(e,t){var n=document.createElement("img");return o((function(i,a){n.onload=S(i,0,t),n.src=e})).then((function(e){return n.remove(),e}))},rotateSrc:function(e,t){var n=document.createElement("img");return o((function(t,i){n.onload=function(e,t){var n=Math.PI/180*90;return function(t){var i=t.target.width,a=t.target.height,o=T.MAX_WIDTH,r=T.MAX_HEIGHT;i>a?i>o&&(a*=o/i,i=o):a>r&&(i*=r/a,a=r);var s=document.createElement("canvas");s.width=a,s.height=i;var l=s.getContext("2d");l.rotate(n),l.drawImage(t.target,0,-1*s.width);var c=s.toDataURL();s.remove(),e(c)}}(t),n.src=e})).then((function(e){return n.remove(),e}))}},raw:v}}]).factory("$focus",["$timeout","$window",function(e,t){return function(n){e((function(){var e=t.document.getElementById(n);e&&e.focus()}))}}]),angular.module("cesium.cache.services",["angular-cache"]).factory("csCache",["$http","$window","csSettings","CacheFactory",function(e,t,n,i){var a={VERY_LONG:54e6,LONG:36e5,MEDIUM:3e5,SHORT:n.defaultSettings.cacheTimeMs},o=[];return{get:function(e,r,s){var l=(e=e||"csCache-")+(r=r||a.SHORT)/1e3,c=n.data.useLocalStorage&&t.localStorage?"localStorage":"memory";if(s){for(var u=1;i.get(l+u);)u++;return o[l+=u]||(o[l]=!0),console.debug("[cache] Creating cache {0} with 'onExpire' option...".format(l)),i.createCache(l,{maxAge:r,deleteOnExpire:"aggressive",recycleFreq:r,onExpire:s,storageMode:c})}return o[l]||(o[l]=!0,console.debug("[cache] Creating cache {0}...".format(l))),i.get(l)||i.createCache(l,{maxAge:r,deleteOnExpire:"passive",recycleFreq:Math.max(r-1e3,3e5),storageMode:c})},clear:function(e){_.forEach(_.keys(o),(function(t){if(t.startsWith(e)){var n=i.get(t);n&&n.removeAll()}}))},clearAll:function(){console.debug("[cache] cleaning all caches"),_.forEach(_.keys(o),(function(e){var t=i.get(e);t&&t.removeAll()}))},constants:a}}]),angular.module("cesium.modal.services",["cesium.utils.services"]).controller("EmptyModalCtrl",(function(){})).controller("AboutModalCtrl",["$scope","UIUtils","csHttp",function(e,t,n){e.openLink=function(e,i,a){return(a=a||{}).onError=function(){return t.popover.copy(e,i)},n.uri.open(i,a)}}]).factory("ModalUtils",["$ionicModal","$rootScope","$q","$injector","$controller","$timeout","Device",function(e,t,n,i,a,o,r){function s(e,t,i){e.deferred=t||n.defer(),e.resolved=!1,e.openModal=function(){return e.modal.show()},e.hideModal=function(){return e.modal.hide()},e.closeModal=function(t){return e.resolved=!0,r.enable&&r.keyboard.close(),e.modal.remove().then((function(){return document.body.classList.remove("modal-open"),e.deferred.resolve(t),t}))},e.setForm=function(t,n){n?e[n]=t:e.form=t},e.getParameters=function(){return i},e.$on("modal.hidden",(function(){e.resolved||(e.resolved=!0,o((function(){return e.deferred.resolve(),e.modal.remove().then((function(){document.body.classList.remove("modal-open")}))}),(e.modal.hideDelay||320)+20))}))}return{show:function(i,o,r,l){var c,u,d,p=n.defer();if((l=l||{}).animation=l.animation||"slide-in-up",l.focusFirstInput=!1,o){l.scope=l.scope?l.scope.$new():t.$new(),s.call({},l.scope,p,r);var m={$scope:l.scope,parameters:r},E=(u={isControllerAs:!1,controllerName:"",propName:""},d=((c=o)||"").trim().split(/\s+/),u.isControllerAs=3===d.length&&"as"===(d[1]||"").toLowerCase(),u.isControllerAs?(u.controllerName=d[0],u.propName=d[2]):u.controllerName=c,u),b=a(o,m);E.isControllerAs&&(b.openModal=l.scope.openModal,b.closeModal=l.scope.closeModal)}return e.fromTemplateUrl(i,l).then((function(e){if(o)e.scope.$parent.modal=e;else{var t=e.scope;s.call({},t,p,r),t.modal=e}return e.show()}),(function(e){p.reject(e)})),p.promise}}}]).factory("Modals",["$rootScope","$translate","$ionicPopup","$timeout","ModalUtils","UIUtils",function(e,t,n,i,a,o){function r(e){return a.show("templates/join/modal_join_member.html","JoinModalCtrl",e)}function s(e){return a.show("templates/join/modal_join_wallet.html","JoinModalCtrl",e)}return{showTransfer:function(e){var t=o.screen.isSmall();return a.show("templates/wallet/modal_transfer.html","TransferModalCtrl",e,{focusFirstInput:!t})},showLogin:function(e){return a.show("templates/login/modal_login.html","LoginModalCtrl",e,{focusFirstInput:!0,backdropClickToClose:!1})},showWotLookup:function(e){return a.show("templates/wot/modal_lookup.html","WotLookupModalCtrl",e||{},{focusFirstInput:!0})},showNetworkLookup:function(e){return a.show("templates/network/modal_network.html","NetworkLookupModalCtrl",e,{focusFirstInput:!0})},showAbout:function(e){return a.show("templates/modal_about.html","AboutModalCtrl",e)},showJoin:function(e){return a.show("templates/join/modal_choose_account_type.html","JoinChooseAccountTypeModalCtrl",e).then((function(e){if(e)return"member"==e.accountType?r(e):s(e)}))},showJoinMember:r,showJoinWallet:s,showHelp:function(e){return a.show("templates/help/modal_help.html","HelpModalCtrl",e)},showAccountSecurity:function(e){return a.show("templates/wallet/modal_security.html","WalletSecurityModalCtrl",e)},showLicense:function(e){return a.show("templates/currency/modal_license.html","CurrencyLicenseModalCtrl",e)},showSelectPubkeyIdentity:function(e){return a.show("templates/wot/modal_select_pubkey_identity.html","WotSelectPubkeyIdentityModalCtrl",e)},showSelectWallet:function(e){return a.show("templates/wallet/list/modal_wallets.html","WalletSelectModalCtrl",e)},showPassword:function(i){(i=i||{}).title=i.title||"COMMON.SET_PASSWORD_TITLE",i.subTitle=i.subTitle||"COMMON.SET_PASSWORD_SUBTITLE";var a=i.scope?i.scope.$new():e.$new();return a.formData={password:void 0},a.setForm=function(e){a.form=e},a.submit=function(e){a.form.$submitted=!0,e&&e.preventDefault&&e.preventDefault(),a.form.$valid&&a.formData.password&&i.popup.close(a.formData.password)},a.error=i.error||void 0,t([i.title,i.subTitle,"COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then((function(e){return i.popup=n.show({templateUrl:"templates/common/popup_password.html",title:e[i.title],subTitle:e[i.subTitle],scope:a,buttons:[{text:e["COMMON.BTN_CANCEL"]},{text:e["COMMON.BTN_OK"],type:"button-positive",onTap:a.submit}]}),i.popup}))}}}]).factory("csPopovers",["$rootScope","$translate","$ionicPopup","$timeout","UIUtils","$controller",function(e,t,n,i,a,o){return{showSelectWallet:function(t,n){var i=(n=n||{}).parameters||{};delete n.parameters;var r=n.scope&&n.scope.$new()||e.$new(!0);n.scope=r,n.templateUrl="templates/wallet/list/popover_wallets.html",n.autoremove=!0,angular.extend(this,o("WalletSelectPopoverCtrl",{$scope:n.scope,parameters:i}));var s=n.afterShow;return n.afterShow=function(e){r.closePopover=function(t){e.scope.closePopover(t)},s&&s(e)},a.popover.show(t,n).then((function(e){return r.$destroy(),e}))}}}]),angular.module("cesium.http.services",["cesium.cache.services"]).factory("csHttp",["$http","$q","$timeout","$window","csSettings","csCache","Device",function(e,t,n,i,a,o,r){var s=a.data.timeout,l=[];function c(e,t){return e?e+(t&&80!=t&&443!=t?":"+t:""):null}function u(e,t,n,i){return(443==t||i?"https":"http")+"://"+c(e,t)+(n||"")}function d(e,t,n,i){t&&t.message?e(t):e(404==i?{ucode:404,message:"Resource not found"+(n?" ("+n+")":"")}:n?"Error while requesting ["+n+"]":"Unknown error from node")}function p(e,t,n,i){var a=[],o={},r=e;return"object"==typeof t&&(a=_.keys(t)),_.forEach(a,(function(e){r===(r=r.replace(":"+e,t[e]))&&(o[e]=t[e])})),n.params=o,i(r,n)}function m(e){var t;e.startsWith("duniter://")&&(t="duniter",e=e.replace("duniter://","http://"));var n=document.createElement("a");n.href=e;var i=n.pathname;i&&i.startsWith("/")&&(i=i.substring(1));var a={protocol:t||n.protocol,hostname:n.hostname,host:n.host,port:n.port,username:n.username,password:n.password,pathname:i,search:n.search,hash:n.hash};return n.remove(),a}function E(e,t){var n=e.split("."),i=t.split(".");function a(e){for(var t=0;t<e.length;++t)if(n=e[t],!/^\d+$/.test(n))return!1;var n;return!0}if(!a(n)||!a(i))return NaN;for(var o=0;o<n.length;++o){if(i.length===o)return 1;if(n[o]!==i[o])return n[o]>i[o]?1:-1}return n.length!=i.length?-1:0}s||(s=4e3);var b=angular.copy(o.constants);return b.clear=function(){console.debug("[http] Cleaning cache..."),o.clear("csHttp-")},{get:function(n,i,a,o,r){if(!n)return t.reject("[http] invalid URL from host: "+n);var l=u(n,i,a,o);return function(n){return t((function(t,i){p(l,n,{timeout:r||s,responseType:"json"},(function(n,a){e.get(n,a).success((function(e,n,i,a){t(e)})).error((function(e,t,a,o){d(i,e,n,t)}))}))}))}},getWithCache:function(n,i,a,r,l,c,m,E){var b=u(n,i,a,r);return l=l||o.constants.LONG,function(n){return t((function(t,i){var a={timeout:m||s,responseType:"json"};a.cache=c?o.get(E,l,(function(t,n,i){console.debug("[http] Refreshing cache for ["+t+"] "),e.get(t,a).success((function(e){a.cache.put(t,e),i&&i(t,e)}))})):o.get(E,l),p(b,n,a,(function(n,a){e.get(n,a).success((function(e){t(e)})).error((function(e,t){d(i,e,n,t)}))}))}))}},post:function(n,i,a,o,r){var l=u(n,i,a,o);return function(n,i){return t((function(t,a){p(l,i,{timeout:r||s,headers:{"Content-Type":"application/json;charset=UTF-8"}},(function(i,o){e.post(i,n,o).success((function(e){t(e)})).error((function(e,t){d(a,e,i,t)}))}))}))}},ws:function(e,i,o,r,s){if(!o)throw console.error("calling csHttp.ws without path argument"),"calling csHttp.ws without path argument";var u=function(e,t,n,i){return(443==t||i?"wss":"ws")+"://"+c(e,t)+(n||"")}(e,i,o,r);function d(e){if(!e.delegate)throw new Error("Websocket {0} was closed!".format(u));return 1==e.delegate.readyState?t.when(e.delegate):3==e.delegate.readyState?t.reject("Unable to connect to websocket ["+e.delegate.url+"]"):(e.waitDuration>=s?(e.waitRetryDelay=e.waitRetryDelay&&Math.min(e.waitRetryDelay+2e3,3e4)||2e3,console.debug("[http] Will retry websocket [{0}] in {1}s...".format(e.path,Math.round(e.waitRetryDelay/1e3)))):Math.round(e.waitDuration/1e3)%10==0&&console.debug("[http] Waiting websocket ["+e.path+"]..."),n((function(){return e.waitDuration+=e.waitRetryDelay,d(e)}),e.waitRetryDelay))}function m(e,t,n){return e.delegate||(e.path=o,e.callbacks=[],e.waitDuration=0,e.waitRetryDelay=200,p(u,n,{},(function(t){e.delegate=new WebSocket(t),e.delegate.onerror=function(t){e.delegate.readyState=3},e.delegate.onmessage=function(t){var n=JSON.parse(t.data);_.forEach(e.callbacks,(function(e){e(n)}))},e.delegate.onopen=function(t){console.debug("[http] Listening on websocket ["+e.path+"]..."),l.push(e),e.delegate.openTime=Date.now()},e.delegate.onclose=function(t){var i=_.findIndex(l,(function(t){return t.path===e.path}));i>=0&&l.splice(i,1),e.delegate.closing?e.delegate=null:e.delegate.openTime?(console.debug("[http] Unexpected close of websocket [{0}] (open {1} ms ago): re-opening...",o,Date.now()-e.delegate.openTime),e.delegate=null,m(e,null,n)):t&&(console.debug("[http] TODO -- Unexpected close of websocket [{0}]: error code: ".format(o),t),e.delegate=null,m(e,null,n))}}))),t&&e.callbacks.push(t),d(e)}function E(e){e.delegate&&(e.delegate.closing=!0,console.debug("[http] Closing websocket ["+e.path+"]..."),e.delegate.close(),e.callbacks=[],e.onclose&&e.onclose())}return s=s||a.data.timeout,{open:function(e){return m(this,null,e)},on:function(e,t){return m(this,e,t)},onListener:function(e,t){var n=this;return m(n,e,t),function(){!function(e,t){e.callbacks=_.reject(e.callbacks,(function(e){return e===t})),e.callbacks.length||E(e)}(n,e)}},send:function(e){var t=this;return d(t).then((function(){t.delegate&&t.delegate.send(e)}))},close:function(){E(this)},isClosed:function(){return!this.delegate||this.delegate.closing}}},closeAllWs:function(){l.length>0&&(console.debug("[http] Closing all websocket..."),_.forEach(l,(function(e){e.close()})),l=[])},getUrl:u,getServer:c,uri:{parse:m,open:function(e,t){if(t=t||{},!e.startsWith("http://")&&!e.startsWith("https://")){var n=m(e);if(!n.protocol&&t.type&&(n.protocol="email"==t.type?"mailto:":"phone"==t.type?"tel:":"",e=n.protocol+e),"mailto:"==n.protocol&&r.isDesktop())try{return void nw.Shell.openExternal(e)}catch(e){console.error("[http] Failed not open 'mailto:' URI into external tool.")}if("mailto:"!=n.protocol&&"tel:"!=n.protocol||!r.enable)return void(t.onError&&"function"==typeof t.onError&&t.onError(e))}var a,o=t.target||(r.enable?"_system":"_blank");if("_blank"===o||"_system"===o&&r.isDesktop())try{return void nw.Shell.openExternal(e)}catch(e){console.error("[http] Failed not open URI into external browser.")}if("_blank"===o&&r.isDesktop()){if(nw&&nw.Shell)return nw.Shell.openExternal(e),!1;a="location=1,titlebar=1,status=1,menubar=1,toolbar=1,resizable=1,scrollbars=1",i.screen&&i.screen.width&&i.screen.height&&(a+=",width={0},height={1}".format(Math.trunc(i.screen.width/2),Math.trunc(i.screen.height/2)))}var s=i.open(e,o,a);a&&i.screen&&i.screen.width&&i.screen.height&&(s.moveTo(i.screen.width/2/2,i.screen.height/2/2),s.focus())}},date:{now:function(){return moment().utc().unix()}},version:{compare:E,isCompatible:function(e,t){return console.debug("[http] Checking actual version [{0}] is compatible with min expected version [{1}]".format(t,e)),E(e,t)<=0}},cache:b}}]),angular.module("cesium.storage.services",["cesium.config"]).factory("sessionStorage",["$window","$q",function(e,t){var n={storage:e.sessionStorage||{},put:function(e,i){return n.storage[e]=i,t.when()},get:function(e,i){return t.when(n.storage[e]||i)},setObject:function(e,i){return n.storage[e]=JSON.stringify(i),t.when()},getObject:function(e){return t.when(JSON.parse(n.storage[e]||"null"))}};return n}]).factory("localStorage",["$window","$q","$log","sessionStorage",function(e,t,n,i){var a,o="Cesium",r=!1,s=!0,l={standard:{storage:null},secure:{storage:null}};function c(){return e.localStorage?(console.debug("[storage] Starting {local} storage..."),l.standard.storage=e.localStorage,_.forEach(_.keys(l.standard),(function(e){l[e]=l.standard[e]}))):(console.debug("[storage] Starting {session} storage..."),_.forEach(_.keys(i),(function(e){l[e]=i[e]}))),t.when()}function u(){if(a)return a;var e=Date.now();return(a=s?function(){console.debug("[storage] Starting {secure} storage..."),_.forEach(_.keys(l.secure),(function(e){l[e]=l.secure[e]}));var e=t.defer();return cordova.plugins&&cordova.plugins.SecureStorage?l.secure.storage=new cordova.plugins.SecureStorage((function(){e.resolve()}),(function(t){console.error("[storage] Could not use secure storage. Will use standard.",t),c(),e.resolve()}),o):(c(),e.resolve()),e.promise}():c()).then((function(){console.debug("[storage] Started in "+(Date.now()-e)+"ms"),r=!0,a=null}))}return l.standard.put=function(e,n){return angular.isDefined(n)&&null!=n?l.standard.storage[e]=n:l.standard.storage.removeItem(e),t.when()},l.standard.remove=function(e,n){return l.standard.storage.removeItem(e),t.when()},l.standard.get=function(e,n){return t.when(l.standard.storage[e]||n)},l.standard.setObject=function(e,n){return l.standard.storage[e]=JSON.stringify(n),t.when()},l.standard.getObject=function(e){return t.when(JSON.parse(l.standard.storage[e]||"null"))},l.secure.put=function(e,i){return t((function(t,a){null!=i?l.secure.storage.set((function(e){t()}),(function(e){n.error(e),a(e)}),e,i):l.secure.storage.remove((function(){t()}),(function(e){n.error(e),t()}),e)}))},l.secure.get=function(e,i){return t((function(t,a){l.secure.storage.get((function(e){t(!e&&i?i:e)}),(function(e){n.error(e),t()}),e)}))},l.secure.setObject=function(e,i){return n.debug("[storage] Setting object into secure storage, using key="+e),t((function(t,n){l.secure.storage.set(t,n,e,i?JSON.stringify(i):void 0)}))},l.secure.getObject=function(e){return n.debug("[storage] Getting object from secure storage, using key="+e),t((function(t,i){l.secure.storage.get((function(e){t(JSON.parse(e||"null"))}),(function(e){n.error(e),t()}),e)}))},l.isStarted=function(){return r},l.ready=function(){return r?t.when():a||u()},u(),l}]),angular.module("cesium.device.services",["cesium.utils.services","cesium.settings.services"]).factory("Device",["$rootScope","$translate","$ionicPopup","$q","$cordovaClipboard","$cordovaBarcodeScanner","$cordovaCamera","ionicReady",function(e,t,n,i,a,o,r,s){var l,c=400,u=400,d={enable:!0},p={},m=!1;function E(e){if(!d.enable)return i.reject("Barcode scanner not enable. Please call 'ionicReady()' once before use (e.g in app.js).");var t=i.defer();return cordova.plugins.barcodeScanner.scan((function(e){e.cancelled?(console.debug("[device] barcode scanner scan: CANCELLED"),t.resolve()):(console.debug("[device] barcode scanner scan: "+e.text),t.resolve(e.text))}),(function(e){console.error("[device] Error while using barcode scanner: "+e),t.reject(e)}),e),t.promise}return d.clipboard={copy:function(e,t){if(!d.enable)return i.reject("Device disabled");var n=i.defer();return a.copy(e).then((function(){t&&t(),n.resolve()}),(function(){n.reject({message:"ERROR.COPY_CLIPBOARD"})})),n.promise}},d.camera={getPicture:function(e){return d.camera.enable?(e&&"string"==typeof e&&(e={sourceType:e}),e=e||{},angular.isUndefined(e.sourceType)?t(["SYSTEM.PICTURE_CHOOSE_TYPE","SYSTEM.BTN_PICTURE_GALLERY","SYSTEM.BTN_PICTURE_CAMERA"]).then((function(t){return n.show({title:t["SYSTEM.PICTURE_CHOOSE_TYPE"],buttons:[{text:t["SYSTEM.BTN_PICTURE_GALLERY"],type:"button",onTap:function(e){return navigator.camera.PictureSourceType.PHOTOLIBRARY}},{text:t["SYSTEM.BTN_PICTURE_CAMERA"],type:"button button-positive",onTap:function(e){return navigator.camera.PictureSourceType.CAMERA}}]}).then((function(t){return console.info("[camera] User select sourceType:"+t),e.sourceType=t,d.camera.getPicture(e)}))})):(e.quality=e.quality||50,e.destinationType=e.destinationType||navigator.camera.DestinationType.DATA_URL,e.encodingType=e.encodingType||navigator.camera.EncodingType.PNG,e.targetWidth=e.targetWidth||u,e.targetHeight=e.targetHeight||c,r.getPicture(e))):i.reject("Camera not enable. Please call 'ionicReady()' once before use (e.g in app.js).")},scan:function(e){return console.warn("Deprecated use of Device.camera.scan(). Use Device.barcode.scan() instead"),E(e)}},d.barcode={enable:!1,scan:E},d.keyboard={enable:!1,close:function(){d.keyboard.enable&&cordova.plugins.Keyboard.close()}},d.keyboard.digit={settings:{bindModel:function(t,n,i){t=t||e;var a=function(){return(n||"").split(".").reduce((function(e,t){return e?e[t]:void 0}),t)},o=function(e){var i=(n||"").split("."),a=i.length&&i[i.length-1];i.reduce((function(t,n){if(n!=a)return t[n];t[a]=e}),t)};return(i=i||{}).animation=i.animation||"pop",i.action=i.action||function(e){o((a()||"")+e)},i.decimal&&(i.decimalSeparator=i.decimalSeparator||".",i.leftButton={html:"<span>.</span>",action:function(){var e=a()||"";e.indexOf(i.decimalSeparator)>=0||(e.trim().length||(e="0"),o(e+i.decimalSeparator))}}),i.rightButton=i.rightButton||{html:'<i class="icon ion-backspace-outline"></i>',action:function(){var e=a();e&&e.length&&(e=e.slice(0,-1),o(e))}},i}}},d.isIOS=function(){return!!navigator.userAgent.match(/iPhone | iPad | iPod/i)||ionic.Platform.isIOS()},d.isOSX=function(){return!!navigator.userAgent.match(/Macintosh/i)||ionic.Platform.is("osx")},d.isDesktop=function(){if(!angular.isDefined(p.isDesktop))try{p.isDesktop=!(d.enable||!process||!nw||!nw.App)}catch(e){p.isDesktop=!1}return p.isDesktop},d.isWeb=function(){return!d.enable&&!d.isDesktop()},d.ready=function(){return m?i.when():l||d.start()},d.start=function(){return l=s().then((function(){d.enable=window.cordova&&cordova&&cordova.plugins,d.enable?(d.camera.enable=!!navigator.camera,d.keyboard.enable=cordova&&cordova.plugins&&!!cordova.plugins.Keyboard,d.barcode.enable=cordova&&cordova.plugins&&!!cordova.plugins.barcodeScanner&&!d.isOSX(),d.clipboard.enable=cordova&&cordova.plugins&&!!cordova.plugins.clipboard,d.keyboard.enable&&angular.extend(d.keyboard,cordova.plugins.Keyboard),console.debug("[device] Ionic platform ready, with [camera: {0}] [barcode scanner: {1}] [keyboard: {2}] [clipboard: {3}]".format(d.camera.enable,d.barcode.enable,d.keyboard.enable,d.clipboard.enable)),cordova.InAppBrowser&&console.debug("[device] Enabling InAppBrowser")):console.debug("[device] Ionic platform ready - no device detected."),m=!0,l=null}))},d}]),angular.module("cesium.currency.services",["ngApi","cesium.bma.services"]).factory("csCurrency",["$rootScope","$q","$timeout","BMA","Api","csSettings",function(e,n,i,a,o,r){var s,l,c={WELL_KNOWN_CURRENCIES:{g1:{firstBlockTime:1488987127,medianTimeOffset:3600}}},u={},d=!1,p=new o(this,"csCurrency");function m(){u.name=null,u.parameters=null,u.firstBlockTime=null,u.membersCount=null,u.cache={},u.node=a,u.currentUD=null,u.medianTimeOffset=0,d=!1,s=void 0,p.data.raise.reset(u)}function E(){return n.all([a.blockchain.parameters().then((function(e){return u.name=e.currency,u.parameters=e,u.medianTimeOffset=e.avgGenTime*e.medianTimeBlocks/2,e})).then((function(e){return t=e.currency,c.WELL_KNOWN_CURRENCIES[t]?(angular.merge(u,c.WELL_KNOWN_CURRENCIES[t]),n.when()):a.blockchain.block({block:0}).then((function(e){u.firstBlockTime=e.medianTime})).catch((function(e){if(e&&e.ucode===a.errorCodes.BLOCK_NOT_FOUND)return u.firstBlockTime=0,u.initPhase=!0,void console.warn("[currency] Blockchain not launched: Enable init phase mode");throw e}));var t})),a.blockchain.stats.ud().then((function(e){return e.result.blocks.length?function e(t,n){if(!t.result.blocks.length||n<0)return u.currentUD=u.parameters?u.parameters.ud0:-1,u.currentUD;var i=t.result.blocks[n];return a.blockchain.block({block:i}).then((function(e){var t,n;return u.currentUD=(t=e.dividend,(n=e.unitbase)<=0?t:t*Math.pow(10,n)),u.currentUD})).catch((function(a){if(console.error("[currency] Unable to load last block with UD, with number {0}".format(i)),n>0)return console.error("[currency] Retrying to load UD from a previous block..."),e(t,n-1);throw u.currentUD=null,a}))}(e,e.result.blocks.length-1):(u.currentUD=u.parameters?u.parameters.ud0:-1,u.currentUD)})).catch((function(e){throw u.currentUD=null,e})),p.data.raisePromise.load(u)]).catch((function(e){throw m(),e}))}function b(){return d?n.when(u):s||v()}function g(e){return function(){return d?n.when(u[e]):s||v().then((function(){return u[e]}))}}function f(e){var n=new t(e);n.cleanData(),console.debug("[currency] Received new block {"+n.number+"-"+n.hash+"}"),u.currentBlock=n,u.currentBlock.receivedAt=moment().utc().unix(),u.medianTime=n.medianTime,u.membersCount=n.membersCount,n.dividend&&(u.currentUD=n.dividend),p.data.raise.newBlock(n)}function T(){console.debug("[currency] Stopping..."),_.forEach(l,(function(e){e()})),l=[],m()}function h(){return T(),i(v,200)}function v(){console.debug("[currency] Starting...");var t=Date.now();return s=a.ready().then(E).then((function(){!function(){l=[a.api.node.on.restart(e,h,this),a.websocket.block().onListener(f)]}(),console.debug("[currency] Started in "+(Date.now()-t)+"ms"),d=!0,s=null,p.data.raise.ready(u)})).then((function(){return u}))}var I=g("currentBlock");function N(e){return I().then((function(t){var n=moment().utc().unix();if(e){if(t&&t.receivedAt&&n-t.receivedAt<60)return t;t||console.warn("[currency] No current block in cache: get it from network. Websocket [/ws/block] may not be started ?")}return a.blockchain.current(!1).catch((function(e){if(e&&e.ucode==a.errorCodes.NO_CURRENT_BLOCK)return{number:0,hash:a.constants.ROOT_BLOCK_HASH,medianTime:n};throw e})).then((function(e){return u.currentBlock=e,u.currentBlock.receivedAt=n,e}))}))}return p.registerEvent("data","ready"),p.registerEvent("data","load"),p.registerEvent("data","reset"),p.registerEvent("data","newBlock"),m(),{ready:function(){return d?n.when(u):s||v()},start:v,stop:T,data:u,get:b,name:g("name"),parameters:g("parameters"),currentUD:g("currentUD"),medianTimeOffset:g("medianTimeOffset"),blockchain:{current:N,lastValid:function(){return r.data.blockValidityWindow<=0?N(!0):N(!0).then((function(e){var t=e.number-r.data.blockValidityWindow;return t>0?a.blockchain.block({block:t}):e}))}},date:{now:function(){return moment().utc().unix()-(u.medianTimeOffset||c.WELL_KNOWN_CURRENCIES.g1.medianTimeOffset)}},api:p,default:function(){return console.warn("[currency] 'csCurrency.default()' has been DEPRECATED - Please use 'csCurrency.get()' instead."),b()}}}]),angular.module("cesium.bma.services",["ngApi","cesium.http.services","cesium.settings.services"]).factory("BMA",["$q","$window","$rootScope","$timeout","csCrypto","Api","Device","UIUtils","csConfig","csSettings","csHttp",function(e,t,n,i,a,o,r,s,l,c,u){function d(r,d,p,m){
+var E,b="[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}",g="SIG\\(("+b+")\\)",f="OBJ\\(([0-9]+)\\)",T="( ([a-z_][a-z0-9-_.ÄŸÄž]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))( (.+))?",h={BMA:"BASIC_MERKLED_API",BMAS:"BMAS",WS2P:"WS2P",BMATOR:"BMATOR",WS2PTOR:"WS2PTOR"},v={USER_ID:"[0-9a-zA-Z-_]+",CURRENCY:"[0-9a-zA-Z-_]+",PUBKEY:b,PUBKEY_WITH_CHECKSUM:"("+b+"):([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{3})",COMMENT:"[ a-zA-Z0-9-_:/;*\\[\\]()?!^\\+=@&~#{}|\\\\<>%.]*",INVALID_COMMENT_CHARS:"[^ a-zA-Z0-9-_:/;*\\[\\]()?!^\\+=@&~#{}|\\\\<>%.]*",URI_WITH_AT:"duniter://(?:([A-Za-z0-9_-]+):)?("+b+"@([a-zA-Z0-9-.]+.[ a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+)",URI_WITH_PATH:"duniter://([a-zA-Z0-9-.]+.[a-zA-Z0-9-_:.]+)/("+b+")(?:/([A-Za-z0-9_-]+))?",BMA_ENDPOINT:h.BMA+T,BMAS_ENDPOINT:h.BMAS+T,WS2P_ENDPOINT:h.WS2P+" ([a-f0-9]{8})"+T,BMATOR_ENDPOINT:h.BMATOR+" ([a-z0-9-_.]*|[0-9.]+|[0-9a-f:]+.onion)(?: ([0-9]+))?",WS2PTOR_ENDPOINT:h.WS2PTOR+" ([a-f0-9]{8}) ([a-z0-9-_.]*|[0-9.]+|[0-9a-f:]+.onion)(?: ([0-9]+))?(?: (.+))?"},I={PROTOCOL_VERSION:10,ROOT_BLOCK_HASH:"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",LIMIT_REQUEST_COUNT:5,LIMIT_REQUEST_DELAY:1e3,regexp:v,api:h},N=this;function O(e,t,n,i){N.started&&N.stop(),N.alive=!1,N.cache={getByPath:{},postByPath:{},wsByPath:{}},c.data&&c.data.node&&(e=e||c.data.node.host,t=t||c.data.node.port,n=angular.isDefined(n)?n:443==t||c.data.node.useSsl||N.forceUseSsl,i=!angular.isDefined(i)||i),e&&(N.host=e,N.port=t||80,N.useSsl=angular.isDefined(n)?n:443==N.port||N.forceUseSsl,N.useCache=!!angular.isDefined(i)&&i,N.server=u.getServer(e,t),N.url=u.getUrl(e,t,"",n))}function R(e){return new RegExp("^"+e+"$")}function A(e){return new RegExp(e)}function S(){N.cache&&(console.warn("[BMA] Closing all websockets..."),_.keys(N.cache.wsByPath||{}).forEach((function(e){N.cache.wsByPath[e].close()})),N.cache.wsByPath={})}function C(e){u.getUrl(e.node.host,e.node.port,"",e.node.useSsl)!==N.url&&(O(e.node.host,e.node.port,e.node.useSsl,N.useCache),N.restart())}N.api=new o(this,"BMA-"+N.server),N.started=!1,N.init=O,N.forceUseSsl=!!("true"===l.httpsMode||!0===l.httpsMode||"force"===l.httpsMode||t.location&&"https:"===t.location.protocol),N.forceUseSsl&&console.debug("[BMA] Enable SSL (forced by config or detected in URL)"),r&&O(r,d,p,m),N.useCache=m,N.cleanCache=function(){console.debug("[BMA] Cleaning requests cache..."),S(),N.cache={getByPath:{},postByPath:{},wsByPath:{}}},get=function(e,t){t=N.useCache&&t||0;var n=e+(t?"#"+t:""),a=function(o){if(!N.started)return N._startPromise||console.warn("[BMA] Trying to get [{0}] before start(). Waiting...".format(e)),N.ready().then((function(){return a(o)}));var r=N.cache.getByPath[n];r||(r=t?u.getWithCache(N.host,N.port,e,N.useSsl,t):u.get(N.host,N.port,e,N.useSsl),N.cache.getByPath[n]=r);var l=1;return r(o).catch((function(e){if(e&&e.ucode===L.errorCodes.HTTP_LIMITATION&&l<=L.constants.LIMIT_REQUEST_COUNT)return 1===l&&(console.warn("[BMA] Too many HTTP requests: Will wait then retry..."),s.loading.update({template:"COMMON.LOADING_WAIT"})),i((function(){return l++,r(o)}),L.constants.LIMIT_REQUEST_DELAY);throw e}))};return a},post=function(e){var t=function(n,i){if(!N.started)return N._startPromise||console.error("[BMA] Trying to post [{0}] before start()...".format(e)),N.ready().then((function(){return t(n,i)}));var a=N.cache.postByPath[e];return a||(a=u.post(N.host,N.port,e,N.useSsl),N.cache.postByPath[e]=a),a(n,i)};return t},ws=function(e){return function(){var t=N.cache.wsByPath[e];return t&&!t.isClosed()||((t=u.ws(N.host,N.port,e,N.useSsl)).onclose=function(){delete N.cache.wsByPath[e]},N.cache.wsByPath[e]=t),t}},N.isAlive=function(){return u.get(N.host,N.port,"/node/summary",N.useSsl)().then((function(e){var t=e&&e.duniter&&e.duniter.software,n=!0;return"duniter"===t&&e.duniter.version?n=u.version.isCompatible(c.data.minVersion,e.duniter.version):console.debug("[BMA] Unknown node software [{0} v{1}]: could not check compatibility.".format(t||"?",e.duniter.version||"?")),n||console.error("[BMA] Incompatible node [{0} v{1}]: expected at least v{2}".format(t,e.duniter.version,c.data.minVersion)),n})).catch((function(){return!1}))},N.isStarted=function(){return N.started},N.ready=function(){return N.started?e.when(!0):N._startPromise||N.start()},N.start=function(){if(N._startPromise)return N._startPromise;if(N.started)return e.when(N.alive);if(!N.host)return c.ready().then((function(){return N.init(),N.useCache=!0,N.start()}));N.useSsl?console.debug("[BMA] Starting [{0}] (SSL on)...".format(N.server)):console.debug("[BMA] Starting [{0}]...".format(N.server));var t=Date.now();return N._startPromise=e.all([c.ready,N.isAlive()]).then((function(e){return N.alive=e[1],N.alive?(E&&0!==E.length||function(){E=[c.api.data.on.changed(n,C,this)]}(),console.debug("[BMA] Started in "+(Date.now()-t)+"ms"),N.api.node.raise.start(),N.started=!0,delete N._startPromise,!0):(console.error("[BMA] Could not start [{0}]: node unreachable".format(N.server)),N.started=!0,delete N._startPromise,!1)})),N._startPromise},N.stop=function(){console.debug("[BMA] Stopping..."),_.forEach(E,(function(e){e()})),E=[],u.cache.clear(),N.cleanCache(),N.alive=!1,N.started=!1,delete N._startPromise,N.api.node.raise.stop()},N.restart=function(){return N.stop(),i(N.start,200).then((function(e){return e&&N.api.node.raise.restart(),e}))},N.api.registerEvent("node","start"),N.api.registerEvent("node","stop"),N.api.registerEvent("node","restart");var L={errorCodes:{REVOCATION_ALREADY_REGISTERED:1002,HTTP_LIMITATION:1006,IDENTITY_SANDBOX_FULL:1007,NO_MATCHING_IDENTITY:2001,UID_ALREADY_USED:2003,NO_MATCHING_MEMBER:2004,NO_IDTY_MATCHING_PUB_OR_UID:2021,WRONG_SIGNATURE_MEMBERSHIP:2006,MEMBERSHIP_ALREADY_SEND:2007,NO_CURRENT_BLOCK:2010,BLOCK_NOT_FOUND:2011,SOURCE_ALREADY_CONSUMED:2015,TX_INPUTS_OUTPUTS_NOT_EQUAL:2024,TX_OUTPUT_SUM_NOT_EQUALS_PREV_DELTAS:2025,TX_ALREADY_PROCESSED:2030},constants:I,regexp:{USER_ID:R(v.USER_ID),COMMENT:R(v.COMMENT),PUBKEY:R(v.PUBKEY),PUBKEY_WITH_CHECKSUM:R(v.PUBKEY_WITH_CHECKSUM),CURRENCY:R(v.CURRENCY),URI:R(v.URI),BMA_ENDPOINT:R(v.BMA_ENDPOINT),BMAS_ENDPOINT:R(v.BMAS_ENDPOINT),WS2P_ENDPOINT:R(v.WS2P_ENDPOINT),BMATOR_ENDPOINT:R(v.BMATOR_ENDPOINT),WS2PTOR_ENDPOINT:R(v.WS2PTOR_ENDPOINT),TX_OUTPUT_SIG:R(g),TX_OUTPUT_FUNCTION:A("SIG\\(([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44})\\)|XHX\\(([A-F0-9]{1,64})\\)|CSV\\(([0-9]{1,8})\\)|CLTV\\(([0-9]{1,10})\\)"),TX_OUTPUT_OBJ_OPERATOR_AND:A(f+"([ ]*&&[ ]*("+f+"))+"),TX_OUTPUT_OBJ_OPERATOR_OR:A(f+"([ ]*\\|\\|[ ]*("+f+"))+"),TX_OUTPUT_OBJ:A(f),TX_OUTPUT_OBJ_OPERATOR:A("OBJ\\(([0-9]+)\\)[ ]*(&&)|(\\|\\|)[ ]*OBJ\\(([0-9]+)\\)"),TX_OUTPUT_OBJ_PARENTHESIS:A("\\(("+f+")\\)"),TX_OUTPUT_FUNCTIONS:A("SIG\\(([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44})\\)|XHX\\(([A-F0-9]{1,64})\\)|CSV\\(([0-9]{1,8})\\)|CLTV\\(([0-9]{1,10})\\)([ ]*(&&)|(\\|\\|)[ ]*SIG\\(([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44})\\)|XHX\\(([A-F0-9]{1,64})\\)|CSV\\(([0-9]{1,8})\\)|CLTV\\(([0-9]{1,10})\\))*")},node:{summary:get("/node/summary",u.cache.LONG),same:function(e,t){return e===N.host&&(!N.port&&!t||N.port==t||80)&&N.useSsl==(t&&443===t)},forceUseSsl:N.forceUseSsl},network:{peering:{self:get("/network/peering"),peers:get("/network/peering/peers")},peers:get("/network/peers"),ws2p:{info:get("/network/ws2p/info"),heads:get("/network/ws2p/heads")}},wot:{lookup:get("/wot/lookup/:search"),certifiedBy:get("/wot/certified-by/:pubkey",u.cache.SHORT),certifiersOf:get("/wot/certifiers-of/:pubkey",u.cache.SHORT),member:{all:get("/wot/members",u.cache.LONG),pending:get("/wot/pending",u.cache.SHORT)},requirements:function(e,t){return!0!==t?L.raw.wot.requirements(e):L.raw.wot.requirementsWithCache(e)},add:post("/wot/add"),certify:post("/wot/certify"),revoke:post("/wot/revoke")},blockchain:{parameters:get("/blockchain/parameters",u.cache.VERY_LONG),block:get("/blockchain/block/:block",u.cache.SHORT),blocksSlice:get("/blockchain/blocks/:count/:from"),current:function(e){return!0!==e?L.raw.blockchain.current():L.raw.blockchain.currentWithCache()},membership:post("/blockchain/membership"),stats:{ud:get("/blockchain/with/ud",u.cache.MEDIUM),tx:get("/blockchain/with/tx"),newcomers:get("/blockchain/with/newcomers",u.cache.MEDIUM),hardship:get("/blockchain/hardship/:pubkey"),difficulties:get("/blockchain/difficulties")}},tx:{sources:get("/tx/sources/:pubkey",u.cache.SHORT),process:post("/tx/process"),history:{all:function(e){return L.raw.tx.history.all(e).then((function(e){return e.history=e.history||{},e.history.sending=[],e.history.pendings=[],e}))},times:function(e,t){return(!0!==t?L.raw.tx.history.times(e):L.raw.tx.history.timesWithCache(e)).then((function(e){return e.history=e.history||{},e.history.sending=[],e.history.pendings=[],e}))},blocks:get("/tx/history/:pubkey/blocks/:from/:to",u.cache.LONG),pending:get("/tx/history/:pubkey/pending")}},ud:{history:get("/ud/history/:pubkey")},uri:{},version:{},raw:{blockchain:{currentWithCache:get("/blockchain/current",u.cache.SHORT),current:get("/blockchain/current")},wot:{requirementsWithCache:get("/wot/requirements/:pubkey",u.cache.LONG),requirements:get("/wot/requirements/:pubkey")},tx:{history:{timesWithCache:get("/tx/history/:pubkey/times/:from/:to",u.cache.LONG),times:get("/tx/history/:pubkey/times/:from/:to"),all:get("/tx/history/:pubkey")}}}};L.tx.parseUnlockCondition=function(e){for(var t,n,i,a,o=e,r=[],s={},l=L.regexp.TX_OUTPUT_FUNCTION.exec(o);l;)t={},n="OBJ("+r.length+")",t.type=o.substr(l.index,l[0].indexOf("(")),t.value=l[1]||l[2]||l[3]||l[4],r.push(t),s[t.type]=s[t.type]++||1,o=o.replace(l[0],n),l=L.regexp.TX_OUTPUT_FUNCTION.exec(o);for(var c=!0;c;){for(c=!!(l=L.regexp.TX_OUTPUT_OBJ_OPERATOR_AND.exec(o));l;){for(t={},n="OBJ("+r.length+")",t.type="AND",t.children=[],r.push(t),i=l[0],a=L.regexp.TX_OUTPUT_OBJ.exec(i);a;)t.children.push(r[a[1]]),i=i.replace(a[0],""),a=L.regexp.TX_OUTPUT_OBJ.exec(i);o=o.replace(l[0],n),l=L.regexp.TX_OUTPUT_OBJ_OPERATOR_AND.exec(i)}for(l=L.regexp.TX_OUTPUT_OBJ_OPERATOR_OR.exec(o),c=c||!!l;l;){for(t={},n="OBJ("+r.length+")",t.type="OR",t.children=[],r.push(t),i=l[0],a=L.regexp.TX_OUTPUT_OBJ.exec(i);a;)t.children.push(r[a[1]]),i=i.replace(a[0],""),a=L.regexp.TX_OUTPUT_OBJ.exec(i);o=o.replace(l[0],n),l=L.regexp.TX_OUTPUT_OBJ_OPERATOR_AND.exec(o)}for(l=L.regexp.TX_OUTPUT_OBJ_PARENTHESIS.exec(o),c=c||!!l;l;)o=o.replace(l[0],l[1]),l=L.regexp.TX_OUTPUT_OBJ_PARENTHESIS.exec(o)}if(0!==(s=_.keys(s)).length)return console.debug("[BMA] Unlock conditions successfully parsed:",t),{unlockFunctions:s,unlockTree:t};console.error("[BMA] Unparseable unlock condition: ",output)},L.node.parseEndPoint=function(e,t){var n=L.regexp.BMA_ENDPOINT.exec(e);return n?{dns:n[2]||"",ipv4:n[4]||"",ipv6:n[6]||"",port:n[8]||80,useSsl:n[8]&&443==n[8],path:n[10],useBma:!0}:(n=L.regexp.BMAS_ENDPOINT.exec(e))?{dns:n[2]||"",ipv4:n[4]||"",ipv6:n[6]||"",port:n[8]||80,useSsl:!0,path:n[10],useBma:!0}:(n=L.regexp.BMATOR_ENDPOINT.exec(e))?{dns:n[1]||"",port:n[2]||80,useSsl:!1,useTor:!0,useBma:!0}:(n=L.regexp.WS2P_ENDPOINT.exec(e))?{ws2pid:n[1]||"",dns:n[3]||"",ipv4:n[5]||"",ipv6:n[7]||"",port:n[9]||80,useSsl:n[9]&&443==n[9],path:n[11]||"",useWs2p:!0}:(n=L.regexp.WS2PTOR_ENDPOINT.exec(e))?{ws2pid:n[1]||"",dns:n[2]||"",port:n[3]||80,path:n[4]||"",useSsl:!1,useTor:!0,useWs2p:!0}:t&&(n=R(t+T).exec(e))?{dns:n[2]||"",ipv4:n[4]||"",ipv6:n[6]||"",port:n[8]||80,useSsl:n[8]&&443==n[8],path:n[10],useBma:!1}:void 0},L.copy=function(t){var n=N.started;if(u.getUrl(t.host,t.port,"",t.useSsl)!==N.url)return N.init(t.host,t.port,t.useSsl,N.useCache),n?N.restart():e.when()},L.wot.member.uids=function(){return L.wot.member.all().then((function(e){return e.results.reduce((function(e,t){return e[t.pubkey]=t.uid,e}),{})}))},L.wot.member.get=function(e){return L.wot.member.uids().then((function(t){var n=t[e];return{pubkey:e,uid:n||null}}))},L.wot.member.getByUid=function(e){return L.wot.member.all().then((function(t){return _.findWhere(t.results,{uid:e})}))},L.blockchain.blocks=function(e){return L.raw.getHttpRecursive(L.blockchain.block,"block",e)},L.network.peering.peersByLeaves=function(e){return L.raw.getHttpRecursive(L.network.peering.peers,"leaf",e,0,10)},L.raw.getHttpRecursive=function(t,n,a,o,r){return o=angular.isDefined(o)?o:0,r=r||L.constants.LIMIT_REQUEST_COUNT,e((function(s,l){var c=[],u=[];_.each(a.slice(o,o+r),(function(e){var i={};i[n]=e,u.push(t(i).then((function(e){e&&c.push(e)})))})),e.all(u).then((function(){o<a.length-1?i((function(){L.raw.getHttpRecursive(t,n,a,o+r,r).then((function(e){e&&e.length?s(c.concat(e)):s(c)})).catch((function(e){l(e)}))}),L.constants.LIMIT_REQUEST_DELAY):s(c)})).catch((function(e){e&&e.ucode===L.errorCodes.HTTP_LIMITATION?s(c):l(e)}))}))},L.raw.getHttpWithRetryIfLimitation=function(e){return e().catch((function(t){if(t&&t.ucode==L.errorCodes.HTTP_LIMITATION)return i((function(){return L.raw.getHttpWithRetryIfLimitation(e)}),L.constants.LIMIT_REQUEST_DELAY)}))},L.blockchain.lastUd=function(){return L.blockchain.stats.ud().then((function(e){if(!e.result.blocks||!e.result.blocks.length)return null;var t=e.result.blocks[e.result.blocks.length-1];return L.blockchain.block({block:t}).then((function(e){return e.unitbase>0?e.dividend*Math.pow(10,e.unitbase):e.dividend}))}))},L.uri.parse=function(t){return e((function(e,n){var i;if(R(v.PUBKEY).test(t))e({pubkey:t});else if(R(v.PUBKEY_WITH_CHECKSUM).test(t)){console.debug("[BMA.parse] Detecting a pubkey with checksum: "+t);var o=L.regexp.PUBKEY_WITH_CHECKSUM.exec(t);i=o[1];var r=o[2];console.debug("[BMA.parse] Detecting a pubkey {"+i+"} with checksum {"+r+"}");var s=a.util.pkChecksum(i);console.debug("[BMA.parse] Expecting checksum for pubkey is {"+s+"}"),r!=s?n({message:"ERROR.PUBKEY_INVALID_CHECKSUM"}):e({pubkey:i})}else if(t.startsWith("duniter://")){var l,c=u.uri.parse(t),d=-1===c.host.indexOf(".")?c.host:null,p=-1!==c.host.indexOf(".")?c.host:null;if(c.username&&(c.password?(l=c.username,i=c.password):i=c.username),c.pathname){var m=c.pathname.split("/"),E=m?m.length:0,b=0;if(!d&&E>b&&(d=m[b++]),!i&&E>b&&(i=m[b++]),!l&&E>b&&(l=m[b++]),E>b)return void n({message:"Bad Duniter URI format. Invalid path (incomplete or redundant): "+c.pathname})}if(d)return p||e({uid:l,pubkey:i,currency:d}),u.get(p+"/blockchain/parameters")().then((function(t){t.currency===d?e({uid:l,pubkey:i,host:p,currency:d}):n({message:"Node's currency ["+t.currency+"] does not matched URI's currency ["+d+"]."})})).catch((function(e){console.error(e),n({message:"Could not get node parameter. Currency could not be retrieve"})}));if(!p)return void n({message:"Bad Duniter URI format. Missing currency name (or node address)."});u.get(p+"/blockchain/parameters")().then((function(t){e({uid:l,pubkey:i,host:p,currency:t.currency})})).catch((function(e){console.error(e),n({message:"Could not get node parameter. Currency could not be retrieve"})}))}else console.debug("[BMA.parse] Could not parse URI: "+t),n({message:"ERROR.UNKNOWN_URI_FORMAT"})})).then((function(e){if(e){if(e.pubkey&&!R(v.PUBKEY).test(e.pubkey))throw{message:"Invalid pubkey format ["+e.pubkey+"]"};if(e.uid&&!R(v.USER_ID).test(e.uid))throw{message:"Invalid uid format ["+e.uid+"]"};if(e.currency&&!R(v.CURRENCY).test(e.currency))throw{message:"Invalid currency format ["+e.currency+"]"};return e}}))};var D=c.data.duniterLatestReleaseUrl&&u.uri.parse(c.data.duniterLatestReleaseUrl);L.raw.getLatestRelease=D?u.getWithCache(D.host,D.port,"/"+D.pathname,443==+D.port||"https:"===D.protocol||N.forceUseSsl,u.cache.LONG):function(){return e.when()},L.version.latest=function(){return L.raw.getLatestRelease().then((function(e){if(e)return e.name&&e.html_url?{version:e.name,url:e.html_url}:e.tag_name&&e.html_url?{version:e.tag_name.substring(1),url:e.html_url}:void 0})).catch((function(e){console.error("[BMA] Failed to get Duniter latest version",e)}))},L.websocket={block:ws("/ws/block"),peer:ws("/ws/peer"),close:S},angular.merge(N,L)}var p=new d(void 0,void 0,void 0,!0);return p.instance=function(e,t,n,i){return new d(e,t,n,i)},p.lightInstance=function(e,t,n,i){return{host:e,port:t=t||80,useSsl:n=angular.isDefined(n)?n:443==t,url:u.getUrl(e,t,"",n),node:{summary:u.getWithCache(e,t,"/node/summary",n,u.cache.LONG,!1,i)},network:{peering:{self:u.get(e,t,"/network/peering",n,i)},peers:u.get(e,t,"/network/peers",n,i)},blockchain:{current:u.get(e,t,"/blockchain/current",n,i),stats:{hardship:u.get(e,t,"/blockchain/hardship/:pubkey",n,i)}}}},p}]),angular.module("cesium.wot.services",["ngApi","cesium.bma.services","cesium.crypto.services","cesium.utils.services","cesium.settings.services"]).factory("csWot",["$rootScope","$q","$timeout","BMA","Api","CacheFactory","csConfig","csCurrency","csSettings","csCache",function(e,t,n,i,a,o,r,s,l,c){var u=new a(this,"csWot"),d=c.get("csWot-idty-",c.constants.MEDIUM),p=c.get("csWot-requirements-",c.constants.MEDIUM),m=function(e){var t={};return e.reduce((function(e,n){return n.id=n.id||n.uid+"-"+n.pubkey,t[n.id]?e:(t[n.id]=!0,e.concat(n))}),[])},E=function(e,t,n){return t=t||0,e=m(e),e=_.sortBy(e,(function(e){var t=1;return t+=1e6*e.block,-(t+=10*(900-e.uid.toLowerCase().charCodeAt(0)))})),angular.isDefined(n)&&e.length>n&&(e=e.slice(t,t+n)),e},b=function(e){e.requirements={loaded:!1,meta:{},hasSelf:!1,needSelf:!0,needMembership:!0,canMembershipOut:!1,needRenew:!1,pendingMembership:!1,isMember:!1,wasMember:!1,certificationCount:0,needCertifications:!1,needCertificationCount:0,willNeedCertificationCount:0,alternatives:void 0},e.blockUid=null,e.isMember=!1,e.sigDate=null,e.hasSelf=!1},g=function(e,t){if(e.hasSelf=!!e.meta.timestamp,e.needSelf=!e.hasSelf||e.meta.invalid,e.wasMember=!!angular.isDefined(e.wasMember)&&e.wasMember,e.needMembership=!e.revoked&&e.membershipExpiresIn<=0&&e.membershipPendingExpiresIn<=0&&!e.wasMember,e.needRenew=!e.needMembership&&!e.revoked&&e.membershipExpiresIn<=l.data.timeWarningExpireMembership&&e.membershipPendingExpiresIn<=0||e.wasMember&&!e.revoked&&0===e.membershipExpiresIn&&0===e.membershipPendingExpiresIn,e.canMembershipOut=!e.revoked&&e.membershipExpiresIn>0,e.pendingMembership=!e.revoked&&e.membershipExpiresIn<=0&&e.membershipPendingExpiresIn>0,e.isMember=!e.revoked&&e.membershipExpiresIn>0,e.blockUid=e.meta.timestamp,e.certificationCount=(e.isMember||e.wasMember&&!e.expired)&&e.certifications?e.certifications.length:0,e.willExpireCertificationCount=e.certifications?e.certifications.reduce((function(e,t){return e+(t.expiresIn<=l.data.timeWarningExpire?1:0)}),0):0,e.willExpire=e.willExpireCertificationCount>0,e.pendingRevocation=!e.revoked&&!!e.revocation_sig,e.isMember||e.wasMember)e.pendingCertificationCount=angular.isDefined(e.pendingCerts)?e.pendingCerts.length:0;else{var n=_.union(_.pluck(e.pendingCerts||[],"from"),_.pluck(e.certifications||[],"from"));e.pendingCertificationCount=_.size(n)}return e.needCertificationCount=!e.needSelf&&e.certificationCount<t.sigQty?t.sigQty-e.certificationCount:0,e.willNeedCertificationCount=!e.needMembership&&!e.needCertificationCount&&e.certificationCount-e.willExpireCertificationCount<t.sigQty?t.sigQty-e.certificationCount+e.willExpireCertificationCount:0,e.loaded=!0,e},f=function(e){if(!e)return t.when(e);var n=[];return _.forEach(e,(function(e){var t=e.meta.timestamp.split("-",2);e.meta.number=parseInt(t[0]),e.meta.hash=t[1],e.meta.sig=e.meta.sig||e.sig,delete e.sig,n.push(e.meta.number)})),i.blockchain.blocks(_.uniq(n)).then((function(t){return _.forEach(e,(function(e){var n=_.findWhere(t,{number:e.meta.number});e.meta.time=n&&n.medianTime,n&&0!==e.meta.number&&e.meta.hash!==n.hash&&(e.meta.invalid=!0)})),e})).catch((function(t){if(t&&t.ucode==i.errorCodes.BLOCK_NOT_FOUND)return _.forEach(e,(function(e){0===e.number&&(e.meta.time=moment().utc().unix())})),e;throw t}))},T=function(e,a){if(!e||!e.pubkey&&!e.uid)return t.when(e);var o=e.pubkey||e.uid,r=!1!==a?p.get(o):null;if(r)return console.debug("[wot] Requirements "+o+" found in cache"),angular.merge(e,r),t.when(r);r={pubkey:e.pubkey,uid:e.uid},n((function(){r.requirements&&r.requirements.loaded||UIUtils.loading.update({template:"COMMON.LOADING_WAIT"})}),2e3);var l=Date.now();return t.all([s.get(),i.wot.requirements({pubkey:r.pubkey||r.uid},!1).then((function(e){return f(e&&e.identities)}))]).then((function(t){var n=t[0],i=t[1];if(i&&i.length)return i.length>1&&(i=_.sortBy(i,(function(e){var t=0;t+=1e12*(r.uid&&e.uid===r.uid?1:0),t+=1e11*(e.meta.invalid?0:1),t+=1e10*(r.blockUid&&e.meta.timestamp&&e.meta.timestamp===r.blockUid?1:0),t+=1e9*(e.membershipExpiresIn>0?1:0),t+=1e8*(e.membershipPendingExpiresIn>0?1:0),t+=1e7*(e.expired?0:1),t+=1e6*(e.outdistanced?0:1),t+=1e5*(e.wasMember?1:0);var n=!e.expired&&e.certifications?e.certifications.length:0;return t+=1*(n||0),-(t+=1*(!n&&e.membershipPendingExpiresIn>0?e.membershipPendingExpiresIn/1e3:0))})),console.debug("[wot] Found {0} identities (in requirements). Will selected the best one".format(i.length))),r.requirements=g(i[0],n.parameters),r.pubkey=r.requirements.pubkey,r.uid=r.requirements.uid,r.isMember=r.requirements.isMember,r.blockUid=r.requirements.meta&&r.requirements.meta.timestamp,r.hasSelf=r.requirements.hasSelf,r.sigDate=r.requirements.meta&&r.requirements.meta.time,!r.requirements.isMember&&!r.requirements.wasMember&&i.length>1&&(r.requirements.alternatives=i.splice(1),_.forEach(r.requirements.alternatives,(function(e){g(e,n.parameters)}))),p.put(o,r),angular.merge(e,r),console.debug("[wot] Requirements for '{0}' loaded in {1}ms".format(r.pubkey&&r.pubkey.substring(0,8)||r.uid,Date.now()-l)),e})).catch((function(t){if(r.requirements={loaded:!0},b(e),t&&(t.ucode==i.errorCodes.NO_MATCHING_MEMBER||t.ucode==i.errorCodes.NO_IDTY_MATCHING_PUB_OR_UID))return e.requirements.loaded=!0,e;throw t}))},h=function(e,t){var n={pubkey:e,uid:t,hasSelf:!1};return i.wot.lookup({search:e||t}).then((function(e){var t=e.results.reduce((function(e,t){return e.concat(t.uids.reduce((function(e,n){var i=n.meta.timestamp.split("-",2),a=parseInt(i[0]);return e.concat({uid:n.uid,pubkey:t.pubkey,meta:{timestamp:n.meta.timestamp,number:a,hash:i[1],sig:n.self},revoked:n.revoked,revoked_on:n.revoked_on})}),[]))}),[]);return f(t).then((function(t){return{identities:t,results:e.results}}))})).then((function(e){var t=e.identities;t.length>1&&(e.identities=_.sortBy(t,(function(e){var t=0;return t+=1e11*(n.uid&&e.uid===n.uid?1:0),t+=1e10*(e.meta.invalid?0:1),t+=1e9*(n.blockUid&&e.meta.timestamp&&e.meta.timestamp===n.blockUid?1:0),t+=1e8*(e.revoked?0:1),-(t+=1*(e.meta.number?e.meta.number:0)/1e3)})),console.debug("[wot] Found {0} identities (in lookup). Will selected the best one".format(t.length))),_.forEach(t,(function(e){e.hasSelf=!!(e.uid&&e.meta.timestamp&&e.meta.sig)})),n.requirements=t[0],n.pubkey=n.requirements.pubkey,n.uid=n.requirements.uid,n.blockUid=n.requirements.meta&&n.requirements.meta.timestamp,n.hasSelf=n.requirements.hasSelf,n.sigDate=n.requirements.meta&&n.requirements.meta.time,t.length>1&&(n.requirements.alternatives=t.splice(1)),n.lookup={};var i={};return n.lookup.certifications=(e.results||[]).reduce((function(e,t){return t.uids.reduce((function(e,t){var n=t.uid+"-"+(t.meta?t.meta.timestamp:"");return e[n]=(t.others||[]).reduce((function(e,t){var a=n+"-"+t.pubkey,o={pubkey:t.pubkey,uid:t.uids[0],cert_time:{block:t.meta&&t.meta.block_number?t.meta.block_number:0,block_hash:t.meta&&t.meta.block_hash?t.meta.block_hash:null},isMember:t.isMember,wasMember:t.wasMember};return i[a]?o.cert_time.block>i[a].cert_time.block?(i[a]=o,e.splice(_.findIndex(e,{pubkey:t.pubkey}),1,o),e):e:(i[a]=o,e.concat(o))}),[]),e}),e)}),{}),i={},n.lookup.givenCertifications=(e.results||[]).reduce((function(e,t){return(t.signed||[]).reduce((function(e,t){var n={pubkey:t.pubkey,uid:t.uid,cert_time:{block:t.cert_time&&t.cert_time.block?t.cert_time.block:0,block_hash:t.cert_time&&t.cert_time.block_hash?t.cert_time.block_hash:null},sigDate:t.meta?t.meta.timestamp:null,isMember:t.isMember,wasMember:t.wasMember};if(i[t.pubkey]){if(!(n.block>i[t.pubkey].block))return e;i[t.pubkey]=n}else i[t.pubkey]=n;return e.concat(n)}),e)}),[]),n})).catch((function(e){if(e&&e.ucode==i.errorCodes.NO_MATCHING_IDENTITY)return b(n),n;throw e}))},v=function(e,t,n,a,o,r){function c(e,t){return e+"-"+t}var u=!0,d=n?n.reduce((function(e,t){var n=c(t.pubkey,t.cert_time?t.cert_time.block:t.sigDate);return t.cert_time||(u=!1),e[n]=t,e}),{}):{};return e({pubkey:t}).then((function(e){return(e&&e.certifications||[]).reduce((function(e,t){var n=!t.written,i=t.cert_time?t.cert_time.medianTime:null,r=i?n?i+a.sigWindow-o:i+a.sigValidity-o:0;r=r<0?0:r;var s=c(t.pubkey,u&&t.cert_time?t.cert_time.block:t.sigDate);return delete d[s],e.concat({pubkey:t.pubkey,uid:t.uid,time:i,isMember:t.isMember,wasMember:t.wasMember,expiresIn:r,willExpire:r&&r<=l.data.timeWarningExpire,pending:n,block:null!==t.written?t.written.number:t.cert_time?t.cert_time.block:null,valid:r>0})}),[])})).catch((function(e){if(e&&e.ucode==i.errorCodes.NO_MATCHING_MEMBER)return[];if(e&&1002==e.ucode)return console.warn("[wallet-service] Detecting Duniter issue #1309 ! Applying workaround... "),[];throw e})).then((function(e){var t=_.values(d);if(!t.length)return e;if(s.data.initPhase)return t.reduce((function(e,t){return e.concat({pubkey:t.pubkey,uid:t.uid,isMember:t.isMember,wasMember:t.wasMember,time:null,expiresIn:a.sigWindow,willExpire:!1,pending:!0,block:0,valid:!0})}),e);var n=t.reduce((function(e,t){var n=u&&t.cert_time?t.cert_time.block:t.sigDate?t.sigDate.split("-")[0]:null;return angular.isDefined(n)&&(e[n]?e[n].push(t):e[n]=[t]),e}),{});return i.blockchain.blocks(_.keys(n)).then((function(t){return e=t.reduce((function(e,t){return e.concat(n[t.number].reduce((function(e,n){var i=t.medianTime,s=Math.max(0,i+a.sigWindow-o),c=!n.cert_time||!n.cert_time.block_hash||n.cert_time.block_hash==t.hash;c||console.debug("[wot] Invalid cert {0}: block hash changed".format(n.pubkey.substring(0,8)));var d=s>0&&(!r||n.isMember)&&c;return e.concat({pubkey:n.pubkey,uid:n.uid,isMember:n.isMember,wasMember:n.wasMember,time:i,expiresIn:s,willExpire:s&&s<=l.data.timeWarningExpire,pending:!0,block:u&&n.cert_time?n.cert_time.block:n.sigDate?n.sigDate.split("-")[0]:null,valid:d})}),[]))}),e)}))})).then((function(e){var t=e.reduce((function(e,t){return!t.pending&&t.valid&&t.expiresIn>=a.sigWindow&&(e[t.pubkey]=!0),e}),{});e=function(e){return _.sortBy(e,(function(e){var t=1;return t+=1e12*(e.expiresIn?e.expiresIn:0),t+=1e7*(e.isMember?1:0),-(t+=10*(e.block?e.block:0))}))}(e);var n=[],i=[];return{valid:e.reduce((function(e,a){return a.pending?(a.valid&&!t[a.pubkey]?n.push(a):a.valid||t[a.pubkey]||i.push(a),e):e.concat(a)}),[]),pending:n,error:i}}))},I=function(e,n,a){var o;if(a=a||{},!e&&n&&!a.force)return i.wot.member.getByUid(n).then((function(t){if(t)return I(t.pubkey,t.uid,i);var i=angular.copy(i||{});return i.force=!0,I(e,n,i)}));if(e){if((o=!1!==a.cache?d.get(e):null)&&(!n||o.uid===n)&&(!a.blockUid||o.blockUid===a.blockUid))return console.debug("[wot] Identity "+e.substring(0,8)+" found in cache"),t.when(o);console.debug("[wot] Loading identity "+e.substring(0,8)+"..."),o={pubkey:e,uid:n}}else console.debug("[wot] Loading identity from uid "+n),o={uid:n};a.blockUid&&(o.blockUid=a.blockUid);var r,l,c=Date.now();return t.all([s.parameters().then((function(e){r=e})),s.blockchain.current(!0).then((function(e){l=e.medianTime})).catch((function(e){if(!e||e.ucode!=i.errorCodes.NO_CURRENT_BLOCK)throw e;l=moment.utc().unix()})),T(o,!1!==a.cache),h(e,n)]).then((function(e){var n=e[3];if(!o.requirements.uid)return console.debug("[wot] No requirements found: using data from lookup"),angular.merge(o,n),void delete o.lookup;var a=o.requirements.uid+"-"+o.requirements.meta.timestamp;return t.all([v(i.wot.certifiersOf,o.pubkey,n.lookup?n.lookup.certifications[a]:null,r,l,!0).then((function(e){o.received_cert=e.valid,o.received_cert_pending=e.pending,o.received_cert_error=e.error})),v(i.wot.certifiedBy,o.pubkey,n.lookup?n.lookup.givenCertifications:null,r,l,!1).then((function(e){o.given_cert=e.valid,o.given_cert_pending=e.pending,o.given_cert_error=e.error}))])})).then((function(){return o.requirements.pendingCertificationCount=o.received_cert_pending?o.received_cert_pending.length:o.requirements.pendingCertificationCount,o.requirements.revoked=angular.isDefined(o.requirements.revoked)?o.requirements.revoked:o.revoked,function(e){e.requirements.revoked?(delete e.requirements.meta.invalid,e.requirements.revoked_on?(S(e,{type:"error",message:"ERROR.IDENTITY_REVOKED_WITH_TIME",messageParams:{revocationTime:e.requirements.revoked_on}}),console.debug("[wot] Identity [{0}] has been revoked on {1}".format(e.uid,e.requirements.revoked_on))):(S(e,{type:"error",message:"ERROR.IDENTITY_REVOKED"}),console.debug("[wot] Identity [{0}] has been revoked".format(e.uid)))):e.requirements.pendingRevocation?(delete e.requirements.meta.invalid,S(e,{type:"error",message:"ERROR.IDENTITY_PENDING_REVOCATION"}),console.debug("[wot] Identity [{0}] has pending revocation".format(e.uid))):e.requirements.meta&&e.requirements.meta.invalid?e.isMember||(S(e,{type:"error",message:"ERROR.IDENTITY_INVALID_BLOCK_HASH"}),console.debug("[wot] Invalid membership for uid {0}: block hash changed".format(e.uid))):e.requirements.expired?(S(e,{type:"error",message:"ERROR.IDENTITY_EXPIRED"}),console.debug("[wot] Identity {0} expired (in sandbox)".format(e.uid))):e.requirements.willNeedCertificationCount>0?(S(e,{type:"error",message:"INFO.IDENTITY_WILL_MISSING_CERTIFICATIONS",messageParams:e.requirements}),console.debug("[wot] Identity {0} will need {1} certification(s)".format(e.uid,e.requirements.willNeedCertificationCount))):!e.requirements.needSelf&&e.requirements.needMembership&&(S(e,{type:"error",message:"INFO.IDENTITY_NEED_MEMBERSHIP"}),console.debug("[wot] Identity {0} has a self but no membership".format(e.uid))),!e.isMember&&e.requirements.alternatives&&S(e,{type:"info",message:"INFO.HAS_ALTERNATIVE_IDENTITIES"})}(o),u.data.raisePromise.load(o).catch((function(e){console.debug("Error while loading identity data, on extension point."),console.error(e)}))})).then((function(){if(o.pubkey)return d.put(o.pubkey,o),console.debug("[wot] Identity "+o.pubkey.substring(0,8)+" loaded in "+(Date.now()-c)+"ms"),o}))},N=function(e,n){if(!e||e.trim()!==e)return t.when(void 0);var a=e.replace(/(^|\s)#\w+/g,"");return a=(a=a.replace(/[^a-zA-Z0-9_-\s]+/g,"")).replace(/\s+/g," ").trim(),(n=n||{}).addUniqueId=!angular.isDefined(n.addUniqueId)||n.addUniqueId,n.allowExtension=!angular.isDefined(n.allowExtension)||n.allowExtension,n.excludeRevoked=!!angular.isDefined(n.excludeRevoked)&&n.excludeRevoked,(a?t.all(a.split(" ").reduce((function(e,t){return console.debug("[wot] Will search on: '"+t+"'"),e.concat(i.wot.lookup({search:t}))}),[])).then((function(e){return e.reduce((function(e,t){return e.concat(t.results.reduce((function(e,t){return e.concat(t.uids.reduce((function(e,i){var a=i.meta.timestamp.split("-",2),o=!i.revoked&&i.revocation_sig;return n.excludeRevoked&&o?e:e.concat({uid:i.uid,pubkey:t.pubkey,number:a[0],hash:a[1],revoked:o})}),[]))}),[]))}),[])})).catch((function(e){if(e&&e.ucode==i.errorCodes.NO_MATCHING_IDENTITY)return[];throw e})):t.when([])).then((function(t){if(!n.allowExtension)return n.addUniqueId?m(t):t;var a=t.length;return u.data.raisePromise.search(e,t,"pubkey").then((function(){if(t.length>a&&_.filter(t,(function(e){return!e.uid&&e.pubkey})).length)return i.wot.member.uids().then((function(e){_.forEach(t,(function(t){!t.uid&&t.pubkey&&(t.uid=e[t.pubkey])}))}))})).then((function(){return n.addUniqueId?m(t):t}))}))},O=function(e,a,o,r){return t((function(s,l){var c=[],u=[];_.each(e.slice(a,a+o),(function(e){u.push(i.blockchain.block({block:e}).then((function(e){e&&e.joiners&&_.each(e.joiners,(function(t){var n=t.split(":"),i=n[n.length-1]+"-"+n[0];c.push({id:i,uid:n[n.length-1],pubkey:n[0],memberDate:e.medianTime,block:e.number})}))})))})),t.all(u).then((function(){c.length<r&&a<e.length-1?n((function(){O(e,a+o,o,r-c.length).then((function(e){s(c.concat(e))})).catch((function(e){l(e)}))}),1e3):s(c)})).catch((function(e){e&&e.ucode===i.errorCodes.HTTP_LIMITATION?s(c):l(e)}))}))},R=function(e,a,o){return t((function(r,s){var l=[],c={},u=[];_.each(e.slice(a,a+o),(function(e){u.push(N(e,{addUniqueId:!1,allowExtension:!1}).then((function(e){e&&e.length&&(l=e.reduce((function(e,t){return c[t.pubkey]?e:(c[t.pubkey]=!0,e.concat(t))}),l))})))})),t.all(u).then((function(){a<e.length-1?n((function(){R(e,a+o,o).then((function(e){e&&e.length?r(e.reduce((function(e,t){return c[t.pubkey]?e:(c[t.pubkey]=!0,e.concat(t))}),l)):r(l)})).catch((function(e){s(e)}))}),i.constants.LIMIT_REQUEST_DELAY):r(l)})).catch((function(e){e&&e.ucode===i.errorCodes.HTTP_LIMITATION?r(l):s(e)}))}))},A=function(e,n,a){n=n||"pubkey";var o=[];return a||o.push(i.wot.member.uids()),o.push(u.data.raisePromise.search(null,e,n).catch((function(e){console.debug("Error while search identities, on extension point."),console.error(e)}))),t.all(o).then((function(t){if(!a){var i=t[0];_.forEach(e,(function(e){!e.uid&&e[n]&&(e.uid=i[e[n]],e.uid&&e.uid==e.name&&delete e.name)}))}return e}))},S=function(e,t){(t=t||{}).type=t.type||"info",t.message=t.message||"",t.messageParams=t.messageParams||{},e.events=e.events||[],e.events.push(t)};return u.registerEvent("data","load"),u.registerEvent("data","search"),i.api.node.on.stop(e,(function(){console.debug("[wot] Cleaning cache..."),c.clear("csWot-")}),this),{load:I,loadRequirements:T,search:N,newcomers:function(e,n){var a;return e=e||0,n=n||20,t.all([s.blockchain.current(!0).then((function(e){a=e.membersCount||0})),i.blockchain.stats.newcomers()]).then((function(t){if(!((t=t[1])&&t.result&&t.result.blocks&&t.result.blocks.length))return null;var i=_.sortBy(t.result.blocks,(function(e){return-e}));return O(i,0,5,e+n)})).then((function(t){return t&&t.length?(t=E(t,e,n),A(t,"pubkey",!0)):null})).then((function(e){return{hits:e,total:a}}))},pending:function(e,n){e=e||0,n=n||20;var a=Date.now();return t.all([i.wot.member.uids(),i.wot.member.pending().then((function(e){return e.memberships&&e.memberships.length?e.memberships:void 0}))]).then((function(o){var r=o[0],s=o[1];if(s){var l={},c={};_.forEach(s,(function(e){if("IN"==e.membership&&!r[e.pubkey]){var t={uid:e.uid,pubkey:e.pubkey,block:e.blockNumber,blockHash:e.blockHash},n=c[e.pubkey];if(n&&t.block>n.block)return;c[t.pubkey]=t,l[t.block]?l[t.block].push(t):l[t.block]=[t],n&&(l[n.block]=l[n.block].reduce((function(e,t){return t.pubkey==n.pubkey?e:(e||[]).concat(t)}),null),null===l[n.block]&&delete l[n.block])}}));var u=_.values(c),d=u.length,p=(u=E(u,e,n)).reduce((function(e,t){return e.concat(t.block)}),[]);return t.all([i.blockchain.blocks(_.uniq(p)).then((function(e){_.forEach(e,(function(e){_.forEach(l[e.number],(function(t){t.sigDate=e.medianTime,0!==e.number&&t.blockHash!==e.hash&&(S(t,{type:"error",message:"ERROR.WOT_PENDING_INVALID_BLOCK_HASH"}),console.debug("Invalid membership for uid={0}: block hash changed".format(t.uid)))}))}))})),A(u,"pubkey",!0)]).then((function(){return console.debug("[ES] [wot] Loaded {0}/{1} pending identities in {2} ms".format(u&&u.length||0,d,Date.now()-a)),{hits:u,total:d}}))}}))},all:function(){return R(["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","u","v","w","x","y","z"],0,i.constants.LIMIT_REQUEST_COUNT).then((function(e){return A(e,"pubkey",!0)})).then(m).then((function(){return{hits:idties,total:idties.length}}))},extend:function(e,t,n){return A([e],t,n).then((function(e){return e[0]}))},extendAll:A,api:u}}]),angular.module("cesium.tx.services",["ngApi","cesium.bma.services","cesium.settings.services","cesium.wot.services"]).factory("csTx",["$q","$timeout","$filter","$translate","FileSaver","UIUtils","BMA","Api","csConfig","csSettings","csWot","csCurrency",function(e,t,n,i,a,o,r,s,l,c,u,d){var p=new s(this,"csTx");function m(e,t,n,i,a){t&&t.length&&_.forEach(t,(function(t){if(null!==t.block_number||a){var o,s,l=!1,c=t.issuers.reduce((function(t,n){return l=l||n===e,n!==e?t.concat(n):t}),[]),u=[],d=[],p=t.outputs.reduce((function(n,i,a){var p="string"==typeof i?i.split(":",3):[i.amount,i.base,i.conditions];o=parseInt(p[1]);var m=b(parseInt(p[0]),o),E=p[2],g=r.regexp.TX_OUTPUT_SIG.exec(E);if(g){var f=g[1];if(f===e){if(!l)return n+m;null===t.block_number&&d.push({amount:parseInt(p[0]),base:o,type:"T",identifier:t.hash,noffset:a,consumed:!1,conditions:E})}else if(""===f||_.contains(c,f)||u.push(f),l)return n-m}else if(-1!==E.indexOf("SIG("+e+")")){var T=r.tx.parseUnlockCondition(E);if(T)return d.push(angular.merge({amount:parseInt(p[0]),base:o,type:"T",identifier:t.hash,noffset:a,conditions:E,consumed:!1},T)),T.amount=m,(s=s||[]).push(T),console.debug("[tx] has locked output:",T),n+m}return n}),0),m=p>0?c:u,E=t.time||t.blockstampTime,g=p+":"+t.hash+":"+E;if(!i[g]){i[g]=!0;var f={time:E,amount:p,pubkey:1===m.length?m[0]:void 0,pubkeys:m.length>1?m:void 0,comment:t.comment,isUD:!1,hash:t.hash,locktime:t.locktime,block_number:t.block_number};l&&null===t.block_number&&(f.inputs=t.inputs,f.sources=d),s&&(f.lockedOutputs=s),n.push(f)}}}))}function E(t,n){return e((function(i,a){var o=moment().utc().unix();n=n||o-c.data.walletHistoryTimeSecond;var s={pendings:[],validating:[],history:[],errors:[]},l={},u=[d.blockchain.current(!0),r.tx.history.pending({pubkey:t}).then((function(e){m(t,e.history.sending,s.pendings,l,!0),m(t,e.history.pending,s.pendings,l,!0)}))];if("pending"!==n){var E=function(e){m(t,e.history.sent,s.history,l,!1),m(t,e.history.received,s.history,l,!1)};if(n>0){for(var b=c.data.walletHistorySliceSecond,g=n-=n%b;g-b<o;g+=b)u.push(r.tx.history.times({pubkey:t,from:g,to:g+b-1},!0).then(E));u.push(r.tx.history.times({pubkey:t,from:o-o%b,to:o+999999999},!1).then(E))}else u.push(r.tx.history.all({pubkey:t}).then(E));c.data.showUDHistory&&n>0&&u.push(p.data.raisePromise.loadUDs({pubkey:t,fromTime:n}).then((function(e){e&&e.length&&_.forEach(e,(function(e){s.history.push(e)}))})).catch((function(e){console.debug("Error while loading UDs history, on extension point."),console.error(e)})))}e.all(u).then((function(e){var t=e[0];s.history.sort((function(e,t){return t.time-e.time}));var a=s.history.findIndex((function(e){return e.block_number<=t.number-c.data.blockValidityWindow}));s.validating=a>0?s.history.splice(0,a):[],s.fromTime="pending"!==n&&n||void 0,s.toTime=s.history.length?s.history[0].time:s.fromTime,i(s)})).catch(a)}))}function b(e,t){return t<=0?e:e*Math.pow(10,t)}function g(e,t){_(t).forEach((function(t){!function(e,t,n){var i=e.type+":"+e.identifier+":"+e.noffset;angular.isUndefined(n[i])&&(t.push(e),n[i]=t.length-1)}(t,e.sources,e.sourcesIndexByKey)}))}function f(e){return r.tx.sources({pubkey:e}).then((function(e){var t={sources:[],sourcesIndexByKey:[],balance:0};return e.sources&&e.sources.length&&(_.forEach(e.sources,(function(e){e.consumed=!1,t.balance+=b(e.amount,e.base)})),g(t,e.sources)),t})).catch((function(e){throw console.warn("[tx] Error while getting sources...",e),e}))}function T(t,n){var i=Date.now();return e.all([f(t),E(t,n)]).then((function(e){var t=e[0];t.tx=e[1];var n=[],a=[],o=t.balance,r=t.balance;function s(e){var i=[],o=!0;e.amount>0?o=!1:(_.find(e.inputs,(function(e){var n=e.split(":").slice(2).join(":"),a=t.sourcesIndexByKey[n];if(!angular.isDefined(a))return o=!1,!0;i.push(t.sources[a])})),e.sources&&g(t,e.sources),delete e.sources,delete e.inputs),o?(r+=e.amount,n.push(e),_.forEach(i,(function(e){e.consumed=!0}))):a.push(e)}for(var l=t.tx.pendings,c=!0;l&&l.length;)_.forEach(l,s),a.length>0&&n.length>0&&c?(l=a,a=[],c=!1):l=null;t.tx=t.tx||{},t.tx.pendings=n.sort((function(e,t){return t.time-e.time})),t.tx.errors=a.sort((function(e,t){return t.time-e.time})),t.balance=r<0?o:r;var d=(t.tx.history||[]).concat(t.tx.validating||[],t.tx.pendings||[],t.tx.errors||[]);return u.extendAll(d,"pubkey").then((function(){return console.debug("[tx] TX and sources loaded in "+(Date.now()-i)+"ms"),t}))})).catch((function(e){throw console.warn("[tx] Error while getting sources and tx...",e),e}))}return p.registerEvent("data","loadUDs"),{load:T,loadSources:function(e){return console.debug("[tx] Loading sources for "+e.substring(0,8)),T(e,"pending")},downloadHistoryFile:function(t,r){return(r=r||{}).fromTime=r.fromTime||-1,console.debug("[tx] Exporting TX history for pubkey [{0}]".format(t.substr(0,8))),e.all([i(["ACCOUNT.HEADERS.TIME","COMMON.UID","COMMON.PUBKEY","COMMON.UNIVERSAL_DIVIDEND","ACCOUNT.HEADERS.AMOUNT","ACCOUNT.HEADERS.COMMENT"]),d.blockchain.current(!0),T(t,r.fromTime)]).then((function(e){var r=e[0],s=e[1],l=s&&s.medianTime||moment().utc().unix(),c=s&&s.currency,u=e[2];return u&&u.tx&&u.tx.history?i("ACCOUNT.FILE_NAME",{currency:c,pubkey:t,currentTime:l}).then((function(e){var t=n("formatDecimal"),i=n("medianDate"),o=n("currencySymbolNoHtml"),s=[r["ACCOUNT.HEADERS.TIME"],r["COMMON.UID"],r["COMMON.PUBKEY"],r["ACCOUNT.HEADERS.AMOUNT"]+" ("+o(c)+")",r["ACCOUNT.HEADERS.COMMENT"]],l=u.tx.history.concat(u.tx.validating).reduce((function(e,n){return e.concat([i(n.time),n.uid,n.pubkey,t(n.amount/100),'"'+(n.isUD?r["COMMON.UNIVERSAL_DIVIDEND"]:n.comment)+'"'].join(";")+"\n")}),[s.join(";")+"\n"]),d=new Blob(l,{type:"text/plain; charset=utf-8"});a.saveAs(d,e)})):o.toast.show("INFO.EMPTY_TX_HISTORY")}))},api:p}}]),angular.module("cesium.wallet.services",["ngApi","ngFileSaver","cesium.bma.services","cesium.crypto.services","cesium.utils.services","cesium.settings.services"]).factory("csWallet",["$q","$rootScope","$timeout","$translate","$filter","$ionicHistory","UIUtils","Api","Idle","localStorage","sessionStorage","Modals","CryptoUtils","csCrypto","BMA","csConfig","csSettings","FileSaver","Blob","csWot","csTx","csCurrency",function(e,t,n,a,o,r,s,l,c,u,d,p,m,E,b,g,f,T,h,v,I,N){var O,R=b;function A(b,A){var S,C,L,D,y,P,k=(A=A||R).constants.PROTOCOL_VERSION,M=A.constants.PROTOCOL_VERSION,w=A.constants.PROTOCOL_VERSION,U=A.constants.PROTOCOL_VERSION,B=A.constants.PROTOCOL_VERSION,x={},F=!1,H=new l(this,"csWallet-"+b),W=function(e){x.loaded=!1,x.pubkey=null,x.uid=null,x.localName=null,x.isNew=null,x.sourcesIndexByKey=null,x.medianTime=null,x.requirements={},x.blockUid=null,x.sigDate=null,x.sigStock=null,x.isMember=!1,x.events=[],x.children=[],x.encryptedData=null,V(),G(),D=!1,y=void 0,e?H.data.raise.init(x):(Y()&&C&&!C.useLocalStorage&&f.reset(),H.data.raise.reset(x))},V=function(){x.keypair={signSk:null,signPk:null}},G=function(){x.sources=void 0,x.sourcesIndexByKey=void 0,x.balance=0,x.tx=x.tx||{},x.tx.history=[],x.tx.pendings=[],x.tx.validating=[],x.tx.errors=[],delete x.tx.fromTime,delete x.tx.toTime},Y=function(){return"default"===b},j=function(){return x.encryptedData&&x.encryptedData.nonce&&x.encryptedData.content},K=function(e){x.sources=x.sources||[],x.sourcesIndexByKey=x.sourcesIndexByKey||{},_(e).forEach((function(e){!function(e,t,n){var i=e.type+":"+e.identifier+":"+e.noffset;angular.isUndefined(n[i])&&(e.conditions||console.warn("Trying to add a source without output condition !",e),t.push(e),n[i]=t.length-1)}(e,x.sources,x.sourcesIndexByKey)}))},$=function(t){if(!D)return(y||Fe()).then((function(){return $(t)}));var i=!q(),a=t&&(t.auth&&!J()||t.forceAuth);if(!i&&!a)return ee(t)?e.when(x):me(t);var o,r=f.data.keepAuthIdle>0;return(t&&t.authData&&e.when(t.authData)||p.showLogin(t)).then((function(e){if(!e||!e.pubkey||!i&&e.pubkey!==x.pubkey||a&&(!e.keypair||!e.keypair.signPk||!e.keypair.signSk))throw"CANCELLED";if(o=e,x.pubkey=o.pubkey,x.uid=o.uid||x.uid,x.isNew=t&&angular.isDefined(t.isNew)?t.isNew:x.isNew,r&&(x.keypair=o.keypair||{signSk:null,signPk:null}),i)return H.data.raisePromise.loginCheck(x).catch((function(e){throw W(),e})).then((function(){if(i)return H.data.raisePromise.login(x).catch((function(e){console.warn("Error during extension call [wallet.api.data.on.login]",e)}))}))})).then((function(){return i?se():a?openEncryptedData():void 0})).then((function(){if(i&&ie(),a||J())return checkAuthIdle(!0),H.data.raisePromise.auth(r?x:o)})).then((function(){var e=!i&&t&&t.minData?{minData:!0}:void 0;if(!ee(e))return me(e)})).then((function(){return t&&t.silent&&s.loading.hide(),r?x:angular.merge({},x,o)})).catch((function(e){if(!("RETRY"!==e||t&&t.authData))return n((function(){return $(t)}),300);throw e}))},z=function(){var t=J();return e((function(e,n){var i=x.pubkey;W(),ae(i),H.data.raise.logout(),t&&H.data.raise.unauth(),checkAuthIdle(!1),r.clearCache(),e()}))},q=function(){return!!x.pubkey},X=function(t){return D?!J()||t&&t.forceAuth?((t=t||{}).expectedPubkey=q()&&x.pubkey,t.auth=!0,$(t)):e.when(x):(y||Fe()).then((function(){return X(t)}))},Q=function(){return e((function(e,t){V(),ie(),H.data.raise.unauth(),checkAuthIdle(!1),r.clearCache(),e()}))},J=function(){return x.pubkey&&x.keypair&&x.keypair.signSk&&!0},Z=function(t){return D?J()?e.when(x.keypair):((t=t||{}).silent=!angular.isDefined(t.silent)||t.silent,X(t).then((function(){return x.keypair}))):(y||Fe()).then((function(){return Z(t)}))},ee=function(e){if(e){if(e.minData&&!e.sources)return x.loaded&&!0;if(e.requirements&&!x.requirements.loaded)return!1;if(e.tx&&e.tx.enable&&(!x.tx.fromTime||"pending"===x.tx.fromTime))return!1;if(e.sigStock&&!x.sigStock)return!1}return x.loaded&&x.sources&&!0},te=function(){if(x.loaded)return!x.pubkey||!(x.isMember||x.requirements.pendingMembership||x.requirements.revoked||!x.requirements.needSelf||x.requirements.wasMember||x.sources&&x.sources.length>0||x.tx.history.length>0||x.tx.validating.length>0||x.tx.pendings.length>0||x.localName||x.name||x.avatar)},ne=function(){return!!x.isNew},ie=function(t){if(t=t&&"string"==typeof t?t:x.pubkey,C&&C.useLocalStorage){if(q()&&C.rememberMe){var n=Date.now();console.debug("[wallet] Storing...");var i=[];return C.keepAuthIdle==f.constants.KEEP_AUTH_IDLE_SESSION&&J()?i.push(d.put("seckey",m.util.encode_base58(x.keypair.signSk))):i.push(d.put("seckey",null)),i.push(u.put("pubkey",x.pubkey)),x.uid?i.push(u.put("uid",x.uid)):i.push(u.put("uid",null)),e.all(i).then((function(){console.debug("[wallet] Stored in "+(Date.now()-n)+"ms")}))}return e.all([d.put("seckey",null),u.put("pubkey",null),u.put("uid",null),t?d.put("data-"+t,null):e.when()])}return e.all([d.put("seckey",null),u.put("pubkey",null),u.put("uid",null),t?d.put("data-"+t,null):e.when(),t?u.put("data-"+t,null):e.when()])},ae=function(t){return console.debug("[wallet] Resetting stored pubkey (and uid) in local storage..."),d.put("seckey",null),u.put("pubkey",null),u.put("uid",null),C&&C.useLocalStorage?t?d.put("data-"+t,null):e.when():(console.debug("[wallet] Resetting stored data in local storage..."),e.all([t?d.put("data-"+t,null):e.when(),t?u.put("data-"+t,null):e.when()]))},oe=function(){if(!q())throw{message:"ERROR.NEED_LOGIN_FIRST"};var t,n,i=C&&C.useLocalStorageEncryption,a="data-"+x.pubkey;x.notifications&&x.notifications.time&&((t=t||{}).notifications={time:x.notifications.time}),x.invitations&&x.invitations.time&&((t=t||{}).invitations={time:x.invitations.time}),x.children&&x.children.length&&((t=t||{}).childrenCount=x.children.length,(n=n||{}).children=_.map(x.children,(function(e){return{pubkey:e.data.pubkey,uid:e.data.uid,localName:e.data.localName}})));var o=(t||n)&&JSON.stringify(angular.merge({},t||{},n||{}));return i&&n?J()?e.all([m.util.random_nonce(),m.box.keypair.fromSignKeypair(x.keypair),d.put(a,o||null)]).then((function(e){var i=e[0],o=e[1];return m.box.pack(JSON.stringify(n),i,o.boxPk,o.boxSk).then((function(e){return t=angular.merge(t||{},{encryptedData:{nonce:m.util.encode_base58(i),content:e}}),u.put(a,JSON.stringify(t))}))})):d.put(a,o||null):e.all([d.put(a,null),u.put(a,o||null)])},re=function(){return e.all([d.get("seckey"),u.get("pubkey"),u.get("uid")]).then((function(e){var t=e[0],n=e[1],i=e[2];if(n&&"null"!=n){var a;if(console.debug("[wallet] Restore {"+n.substring(0,8)+"} from local storage"),t&&t.length&&"null"!=t)try{a={signPk:m.util.decode_base58(n),signSk:m.util.decode_base58(t)}}catch(e){console.warn("[wallet] Secret key restoration failed: ",e),a=void 0}return x.pubkey=n,x.uid=i&&"null"!=i?i:void 0,x.keypair=a||{signPk:void 0,signSk:void 0},se()}})).then((function(){return J()?e.all([H.data.raisePromise.login(x),checkAuthIdle(!0),H.data.raisePromise.auth(x)]).catch((function(e){console.warn("Error during extension call [wallet.api.data.on.auth]",e)})):q()?H.data.raisePromise.login(x).catch((function(e){console.warn("Error during extension call [wallet.api.data.on.login]",e)})):void 0})).then((function(){return x}))},se=function(){if(!q())throw{message:"ERROR.NEED_LOGIN_FIRST"};return ne()?e.when(x):e.all([d.getObject("data-"+x.pubkey),u.getObject("data-"+x.pubkey)]).then((function(e){var t=e[0],n=e[1];return t&&t.children&&t.children.length===n.childrenCount?le(t).catch((function(e){return console.error("[wallet] Failed to restore from the session storage ! Retrying from the local storage...",e),le(n)})):le(n)}))},le=function(t){if(!t)return e.when();if(t.children){var n=x.childrenCount,i=De({stop:!1,store:!1});try{var a={};_.forEach(t.children,(function(e){if(!a[e.pubkey]){a[e.pubkey]=!0;var t=Pe();t.data.pubkey=e.pubkey,t.data.localName=e.localName,t.data.uid=e.uid,Le(t,{store:!1})}})),delete t.children,delete x.childrenCount}catch(t){return console.error("[wallet] Failed to restore children wallet.",t),x.childrenCount=n,x.children=i,e.reject({message:"ERROR.RESTORE_WALLET_LIST_FAILED"})}_.forEach(i||[],(function(e){e.stop()}))}return delete t.pubkey,delete t.uid,angular.merge(x,t),j()&&J()?openEncryptedData({store:!1}).then((function(){return x})):e.when(x)},ce=function(e,t){return Ce("requirements"),v.loadRequirements(x,e).catch((function(n){if(!t)return console.error("[wallet] Unable to load requirements: Will retrying... ",n),s.loading.update({template:"COMMON.LOADING_WAIT"}),ce(e,!0);throw n}))},ue=function(e){return I.load(x.pubkey,e).then((function(e){G(),angular.merge(x,e)})).catch((function(e){throw G(),e}))},de=function(){x.requirements.revoked?(delete x.requirements.meta.invalid,Re({type:"info",message:"ERROR.WALLET_REVOKED",context:"requirements"})):x.requirements.pendingRevocation?(delete x.requirements.meta.invalid,Re({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"})):(!x.isMember&&x.requirements.meta&&x.requirements.meta.invalid?(Re({type:"error",message:"ERROR.WALLET_INVALID_BLOCK_HASH",context:"requirements"}),console.debug("Invalid membership for uid={0}: block hash changed".format(x.uid))):!x.isMember&&x.requirements.expired?(Re({type:"error",message:"ERROR.WALLET_IDENTITY_EXPIRED",context:"requirements"}),console.debug("Identity expired for uid={0}.".format(x.uid))):x.requirements.pendingMembership?(Re({type:"pending",message:"ACCOUNT.WAITING_MEMBERSHIP",context:"requirements"}),!x.requirements.needCertificationCount&&x.requirements.outdistanced&&Re({type:"warn",message:"ACCOUNT.OUT_DISTANCED",context:"requirements"})):!x.requirements.needSelf&&x.requirements.needMembership&&Re({type:"warn",message:"ACCOUNT.NO_WAITING_MEMBERSHIP",context:"requirements"}),x.requirements.needRenew?x.isMember&&x.requirements.membershipExpiresIn>0?Re({type:"warn",message:"ACCOUNT.WILL_NEED_RENEW_MEMBERSHIP",messageParams:x.requirements,context:"requirements"}):!x.isMember&&x.requirements.membershipExpiresIn>0&&x.requirements.needCertificationCount>0?Re({type:"warn",message:"ACCOUNT.NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED",messageParams:x.requirements,context:"requirements"}):Re({type:"warn",message:"ACCOUNT.NEED_RENEW_MEMBERSHIP",messageParams:x.requirements,context:"requirements"}):(x.requirements.needCertificationCount>0&&(Re({type:"info",message:"ACCOUNT.WAITING_CERTIFICATIONS",messageParams:x.requirements,context:"requirements"}),x.requirements.wasMember||Re({type:"help",message:"ACCOUNT.WAITING_CERTIFICATIONS_HELP",messageParams:x.requirements,context:"requirements"})),x.requirements.willNeedCertificationCount>0&&Re({type:"warn",message:"ACCOUNT.WILL_MISSING_CERTIFICATIONS",messageParams:x.requirements,context:"requirements"}),x.requirements.wasMember&&x.requirements.needMembership&&Re({type:"warn",message:"ACCOUNT.NEED_RENEW_MEMBERSHIP",messageParams:x.requirements,context:"requirements"}),x.requirements.needCertificationCount||x.requirements.willNeedCertificationCount||!x.requirements.outdistanced||Re({type:"warn",message:"ACCOUNT.OUT_DISTANCED",context:"requirements"})))},pe=function(){return A.wot.certifiedBy({pubkey:x.pubkey}).then((function(e){x.sigStock=e.certifications?e.certifications.reduce((function(e,t){return null===t.written?e:e+1}),0):0})).catch((function(e){if(e&&e.ucode==A.errorCodes.NO_MATCHING_MEMBER)x.sigStock=0;else{if(!e||1002!=e.ucode)throw e;console.warn("[wallet-service] Detecting Duniter issue #1309 ! Applying workaround... "),x.sigStock=0}}))},me=function(e){var t=!N.data.initPhase&&(!f.data.wallet||f.data.wallet.alertIfUnusedWallet)&&!x.loaded&&(!e||!e.minData||!e.silent);return P?P.then((function(){return ee(e)?x:ge(e)})):(P=e&&e.minData?be(e):e||x.loaded?ge(e):Ee()).then((function(){var e=te();return!(t&&!ne()&&!0===e)||s.loading.hide().then((function(){return s.alert.confirm("CONFIRM.LOGIN_UNUSED_WALLET","CONFIRM.LOGIN_UNUSED_WALLET_TITLE",{cancelText:"COMMON.BTN_CONTINUE",okText:"COMMON.BTN_RETRY"})})).then((function(e){return e?z().then((function(){throw"RETRY"})):(f.data.wallet.alertIfUnusedWallet&&(f.data.wallet.alertIfUnusedWallet=!1,f.store()),!0)}))})).then((function(e){if(P=null,e)return x;throw"CANCELLED"}))},Ee=function(t){return x.loaded=!1,e.all([ce(!0).then((function(e){if(e.requirements&&(e.requirements.isMember||e.requirements.wasMember))return pe();e.sigStock=0})),ue(t||"pending")]).then((function(){return de(),H.data.raisePromise.load(x).catch((function(e){console.error("[wallet] Error during load API extension point. Try to continue",e)}))})).then((function(){return x.loaded=!0,x})).catch((function(e){throw x.loaded=!1,e}))},be=function(t){return(t=t||{}).requirements=angular.isDefined(t.requirements)?t.requirements:!x.requirements.loaded||angular.isUndefined(x.requirements.needSelf),t.requirements?ge(t).then((function(e){return e.loaded=!0,e})):e.when(x)},ge=function(t){(t=t||{requirements:!0,sources:!0,tx:{enable:!0,fromTime:x.tx&&"pending"!==x.tx.fromTime?x.tx.fromTime:void 0},sigStock:!0,api:!0}).requirements=angular.isDefined(t.requirements)?t.requirements:!x.requirements.loaded,angular.isUndefined(t.sources)&&t.tx&&t.tx.enable&&(t.sources=!0);var n=[];return t.requirements&&(Ce("requirements"),n.push(ce(!0).then(de))),!t.sources||t.tx&&!t.tx.enable?t.sources&&t.tx&&!t.tx.enable&&n.push(ue("pending")):n.push(ue(t.tx?t.tx.fromTime:void 0)),t.sigStock&&n.push(pe()),(n.length?e.all(n):e.when()).then((function(){return angular.isDefined(t.api)&&!t.api?x:H.data.raisePromise.load(x).then((function(){return x.loaded||(x.loaded=x.requirements.loaded&&x.sources),x}))}))},fe=function(t,n){return x.uid!=t||n&&x.blockUid!=n?x.loaded?(x.uid=t,x.blockUid=n,ge({requirements:!0,sigStock:!0}).then((function(){return ie({skipData:!0})}))):P?P.then((function(){return fe(t,n)})):e.when():e.when()},_e=function(e,t){var n=Math.pow(10,t);return e<n?0:Math.trunc(e/n)*n},Te=function(e,t){return t<=0?e:e*Math.pow(10,t)},he=function(e,t,n){angular.isUndefined(n)&&(n=t);var i=0,a=[],o=n,r=n;if(_.find(x.sources||[],(function(t){return!t.consumed&&t.base===n&&A.regexp.TX_OUTPUT_SIG.exec(t.conditions)&&(i+=Te(t.amount,t.base),a.push(t)),i>=e})),i<e&&n>0){var s=he(e-i,t,n-=1);s.amount>0&&(o=s.minBase,i+=s.amount,[].push.apply(a,s.sources))}return{minBase:o,maxBase:r,amount:i,sources:a}},ve=function(t,i,r,l,c,u){return e.all([Z(),N.get(),u&&e.when(u)||N.blockchain.current(!0)]).then((function(e){var d=e[0],p=e[1];if(u=e[2],!A.regexp.PUBKEY.test(t))throw{message:"ERROR.INVALID_PUBKEY"};if(!A.regexp.COMMENT.test(r))throw{message:"ERROR.INVALID_COMMENT"};if(!q())throw{message:"ERROR.NEED_LOGIN_FIRST"};if(t===x.pubkey)throw{message:"ERROR.SAME_TX_RECIPIENT"};if(!i)throw{message:"ERROR.AMOUNT_REQUIRED"};if(i<=0)throw{message:"ERROR.AMOUNT_NEGATIVE"};i=Math.floor(i);var m={amount:0,minBase:u.unitbase,maxBase:u.unitbase+1,sources:[]},E=[];E.push("[wallet] amount="+i);for(var b=0;m.amount<i&&b<=u.unitbase;)(m=he(i,u.unitbase)).amount<i&&++b<=u.unitbase&&(i=_e(i,b),E.push("[wallet] inputs not found. Retrying with amount ="+i+" be compatible with amountBase="+b));if(m.amount<i){if(x.balance<i)throw{message:"ERROR.NOT_ENOUGH_CREDIT"};if(0===m.amount)throw{message:"ERROR.ALL_SOURCES_USED"};return a("COMMON.UD").then((function(e){var t;return t=l?{amount:o("formatDecimal")(m.amount/p.currentUD),unit:e,subUnit:o("abbreviate")(p.name)}:{amount:o("formatDecimal")(m.amount/100),unit:o("abbreviate")(p.name),subUnit:""},a("ERROR.NOT_ENOUGH_SOURCES",t).then((function(e){throw{message:e}}))}))}return b<m.minBase&&!function(e,t){if(!t)return!0;if(e<Math.pow(10,t))return!1;var n="00000000"+e;return 0===parseInt(n.substring(n.length-t))}(i,m.minBase)?(i=function(e,t){var n=Math.pow(10,t);return e<n?n:Math.trunc(e/n)*n}(i,m.minBase),console.debug("[wallet] Amount has been truncate to "+i),E.push("[wallet] Amount has been truncate to "+i)):b>0&&(console.debug("[wallet] Amount has been truncate to "+i),E.push("[wallet] Will use amount truncated to "+i+" (amountBase="+b+")")),Ie(p,u,d,t,i,m,r,c||x.pubkey,E).then((function(e){x.balance-=e.amount,x.balance<0&&(x.balance=0),_.forEach(m.sources,(function(e){e.consumed=!0})),e&&e.sources.length&&(console.debug("[wallet-service] New sources to be add after the TX: ",e.sources),K(e.sources));var n={time:N.date.now(),amount:-i,pubkey:t,comment:r,isUD:!1,hash:e.hash,locktime:0,block_number:null};return v.extendAll([n],"pubkey").then((function(){return x.tx.pendings.unshift(n),H.data.raise.balanceChanged(x),H.data.raise.newTx(x),{hash:e.hash}}))})).catch((function(e){if(e&&e.ucode===A.errorCodes.SOURCE_ALREADY_CONSUMED)return console.debug("[wallet] TX rejected by node with error [{0}]. Reloading sources then retry...".format(e.message||"Source already consumed")),n(ue,500).then((function(){return ve(t,i,r,l,c,u)}));if(e&&e.ucode===A.errorCodes.TX_INPUTS_OUTPUTS_NOT_EQUAL&&f.data.plugins&&f.data.plugins.es&&f.data.plugins.es.enable)return s.loading.hide(),s.alert.confirm("CONFIRM.ISSUE_524_SEND_LOG","ERROR.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_OK",cancelText:"COMMON.BTN_NO"}).then((function(e){if(e)return H.error.raise.send({title:"Issue #524 logs",content:"App version: "+g.version+"\nApp build: "+g.build+"\nLogs:\n\n"+E.join("\n")}),n((function(){throw{message:"ERROR.ISSUE_524_TX_FAILED"}}),1500);throw{message:"ERROR.SEND_TX_FAILED"}}));throw e}))}))},Ie=function(e,t,n,a,o,r,s,l,c){if(r.sources.length>40){console.debug("[Wallet] TX has to many sources. Will chain TX...");var u={minBase:t.unitbase,maxBase:0,amount:0,sources:r.sources.slice(0,40)};return _.forEach(u.sources,(function(e){e.base<u.minBase&&(u.minBase=e.base),e.base>u.maxBase&&(u.maxBase=e.base),u.amount+=Te(e.amount,e.base)})),Ie(e,t,n,x.pubkey,u.amount,u,void 0,x.pubkey,c).then((function(i){_.forEach(u.sources,(function(e){e.consumed=!0})),K(i.sources);var d={minBase:t.unitbase,maxBase:0,amount:0,sources:r.sources.slice(40).concat(i.sources)};return _.forEach(d.sources,(function(e){e.base<d.minBase&&(d.minBase=e.base),e.base>d.maxBase&&(d.maxBase=e.base),d.amount+=Te(e.amount,e.base)})),Ie(e,t,n,a,o,d,s,l,c)}))}var d="Version: "+k+"\nType: Transaction\nCurrency: "+e.name+"\nBlockstamp: "+t.number+"-"+t.hash+"\nLocktime: 0\nIssuers:\n"+x.pubkey+"\nInputs:\n";for(_.forEach(r.sources,(function(e){d+=[e.amount,e.base,e.type,e.identifier,e.noffset].join(":")+"\n"})),d+="Unlocks:\n",i=0;i<r.sources.length;i++)d+=i+":SIG(0)\n";d+="Outputs:\n";var p,E=o,b=r.maxBase,g=0,f=[];if(a!==x.pubkey){for(;E>0;)E-=p=_e(E,b),p>0&&(p=0===b?p:p/Math.pow(10,b),d+=p+":"+b+":SIG("+a+")\n",g++),b--;E=r.amount-o,b=r.maxBase}for(;E>0;)E-=p=_e(E,b),p>0&&(p=0===b?p:p/Math.pow(10,b),d+=p+":"+b+":SIG("+l+")\n",x.pubkey===l&&f.push({type:"T",noffset:g,amount:p,base:b,conditions:"SIG("+l+")",consumed:!1}),g++),b--;return d+="Comment: "+(s||"")+"\n",c&&(a==x.pubkey?c.push("[wallet] Creating new TX, using inputs:\n - minBase: "+r.minBase+"\n - maxBase: "+r.maxBase):c.push("[wallet] Creating new TX, using inputs:\n - minBase: "+r.minBase+"\n - maxBase: "+r.maxBase+"\n - sources (=TX inputs):"),_.forEach(r.sources,(function(e){c.push([e.amount,e.base,e.type,e.identifier,e.noffset].join(":"))})),c.push("\n[wallet] generated TX document (without signature) :\n------ START ------\n"+d+"------ END ------\n")),m.sign(d,n).then((function(e){var t=d+e+"\n";return A.tx.process({transaction:t}).catch((function(e){if(!e||e.ucode!==A.errorCodes.TX_ALREADY_PROCESSED)throw e})).then((function(){return m.util.hash(t)})).then((function(e){return _.forEach(f,(function(t){t.identifier=e,t.consumed=!1,t.pending=!0})),{amount:x.pubkey===a?0:x.pubkey===l?o:r.amount,tx:t,hash:e,sources:f}}))}))},Ne=function(e,t,n,i){if(n=n||x.uid,i=i||x.blockUid,!n||!i)throw{message:"ERROR.WALLET_HAS_NO_SELF"};if(x.requirements.expired)throw{message:"ERROR.WALLET_IDENTITY_EXPIRED"};var a="Version: "+M+"\nType: Identity\nCurrency: "+e.name+"\nIssuer: "+x.pubkey+"\nUniqueID: "+n+"\nTimestamp: "+i+"\n";return m.sign(a,t).then((function(e){return a+=e+"\n",console.debug("Has generate an identity document:\n----\n"+a+"----"),a}))},Oe=function(t){return function(){var i;return e.all([Z(),N.blockchain.lastValid()]).then((function(e){var n=e[0],a=e[1];return i="Version: "+w+"\nType: Membership\nCurrency: "+a.currency+"\nIssuer: "+x.pubkey+"\nBlock: "+a.number+"-"+a.hash+"\nMembership: "+(t?"IN":"OUT")+"\nUserID: "+x.uid+"\nCertTS: "+x.blockUid+"\n",m.sign(i,n)})).then((function(e){var t=i+e+"\n";return A.blockchain.membership({membership:t})})).then((function(){return n((function(){return ce(!1)}),1e3)})).then(de)}},Re=function(e,t){(e=e||{}).type=e.type||"info",e.message=e.message||"",e.messageParams=e.messageParams||{},e.context=e.context||"undefined",e.message.trim().length?t?x.events.splice(0,0,e):x.events.push(e):console.debug("Event without message. Skipping this event")},Ae=function(e){var t=Math.round(e.answer.length/2),n=e.answer.substr(0,t),i=e.answer.substr(t);return m.scryptKeypair(n,i).then((function(t){return e.pubkey=m.util.encode_base58(t.signPk),e.keypair=t,e}))},Se=function(){return e.all([Z(),N.get()]).then((function(e){var t=e[0],n=e[1];return Ne(n,t).then((function(e){var i=e.trim().split("\n"),a=i[i.length-1],o="Version: "+B+"\nType: Revocation\nCurrency: "+n.name+"\nIssuer: "+x.pubkey+"\nIdtyUniqueID: "+x.uid+"\nIdtyTimestamp: "+x.blockUid+"\nIdtySignature: "+a+"\n";return m.sign(o,t).then((function(e){return o+=e+"\n",console.debug("Has generate an revocation document:\n----\n"+o+"----"),o}))}))}))},Ce=function(e){x.events=x.events.reduce((function(t,n){return n.context&&n.context==e?t:t.concat(n)}),[])},Le=function(t,n){return t.children.setParent(S),x.children=x.children||[],x.children.push(t),!n||angular.isUndefined(n.store)||n.store?oe():e.when()},De=function(e){e&&!e.stop||_.forEach(x.children||[],(function(e){e.stop()}));var t=x.children.splice(0,x.children.length);return!e||angular.isUndefined(e.store)||e.store?oe():t},ye=function(e){return _.find(x.children||[],(function(t){return t.isUserPubkey(e)}))},Pe=function(){var e=(x.children||[]).reduce((function(e,t){return Math.max(e,t.id)}),0)+1;return O.instance(e,A)},ke=function(){return openEncryptedData().then((function(){return x.children}))};function Me(e){return e&&{useLocalStorage:e.useLocalStorage,useLocalStorageEncryption:e.useLocalStorageEncryption,rememberMe:e.rememberMe,keepAuthIdle:e.keepAuthIdle}}function we(e){var t=Me(e);if(!angular.equals(C,t)&&C){var n=!angular.equals(C.useLocalStorageEncryption,t.useLocalStorageEncryption),i=!angular.equals(C.useLocalStorage,t.useLocalStorage)||n,a=!angular.equals(C.keepAuthIdle,t.keepAuthIdle);if(C=t,a&&checkAuthIdle(),i){if(C.useLocalStorage)return ie().then((function(){if(x.childrenCount>0&&n&&C.useLocalStorageEncryption)return X({minData:!0,silent:!0}).catch((function(e){if("CANCELLED"===e)return f.apply({useLocalStorageEncryption:!1}),f.store();throw e}))})).then(oe);ae(x.pubkey)}}}function Ue(){_.forEach(L,(function(e){e()})),L=[]}function Be(){console.debug("[wallet] Stopping..."),Ue(),W()}function xe(){return Be(),n(Fe,200)}function Fe(n){(n=n||{}).restore=angular.isDefined(n.restore)?n.restore:"default"===b,console.debug("[wallet] Starting...");var i=Date.now();return y=e.all([f.ready().then((function(){C=Me(f.data)})),N.ready(),A.ready()]),n.restore&&(y=y.then(re)),y.then((function(){!function(){L=[f.api.data.on.changed(t,we,this),A.api.node.on.restart(t,xe,this)],t.$on("IdleStart",Q)}(),console.debug("[wallet] Started in "+(Date.now()-i)+"ms"),D=!0,y=null})).then((function(){return x})),y}return getByPubkey=function(e){if(!e)throw new Error("Missing 'pubkey' argument !");if(!x.pubkey)throw new Error("User not login!");return x.pubkey===e?S:ye(e)},downloadChildrenWalletFile=function(){return e.all([ke(),N.get()]).then((function(e){var t=e[0],n=e[1],i=(t||[]).reduce((function(e,t){return e+[t.data.pubkey,t.data.uid,t.data.localName||t.data.name].join("\t")+"\n"}),""),o=new h([i],{type:"text/plain; charset=utf-8"});return a("ACCOUNT.WALLET_LIST.EXPORT_FILENAME",{pubkey:x.pubkey,currency:n.name}).then((function(e){T.saveAs(o,e)}))}))},openEncryptedData=function(t){return j()?J()?m.box.keypair.fromSignKeypair(x.keypair).then((function(e){var t=m.util.decode_base58(x.encryptedData.nonce);return m.box.open(x.encryptedData.content,t,e.boxPk,e.boxSk)})).then((function(e){x.encryptedData=null;var n=le(JSON.parse(e));return(!t||angular.isUndefined(t.store)||t.store)&&n.then((function(){return oe()})),n})):X().then(openEncryptedData):e.when()},fromJson=function(t,n){return n=!!angular.isUndefined(n)||n,e((function(e,i){var a;try{a=JSON.parse(t||"{}")}catch(e){}if(a&&a.keypair&&a.keypair.signPk&&a.keypair.signSk){var o,r={},s=new Uint8Array(32);for(o=0;o<32;o++)s[o]=a.keypair.signPk[o];r.signPk=s;var l=new Uint8Array(64);for(o=0;o<64;o++)l[o]=a.keypair.signSk[o];if(r.signSk=l,a.version&&a.keypair.boxPk){var c=new Uint8Array(32);for(o=0;o<32;o++)c[o]=a.keypair.boxPk[o];r.boxPk=c}if(a.version&&a.keypair.boxSk){var u=new Uint8Array(32);for(o=0;o<64;o++)u[o]=a.keypair.boxSk[o];r.boxSk=u}e({pubkey:a.pubkey,keypair:r,tx:a.tx})}else n?i("Not a valid Wallet.data object"):e()}))},checkAuthIdle=function(e){var t=(e=angular.isDefined(e)?e:J())&&C&&C.keepAuthIdle>0&&C.keepAuthIdle!=f.constants.KEEP_AUTH_IDLE_SESSION,n=F!=t;n?(t?(console.debug("[wallet] Start idle (delay: {0}s)".format(C.keepAuthIdle)),c.setIdle(C.keepAuthIdle),c.watch()):F&&(console.debug("[wallet] Stop idle"),c.unwatch()),F=t):t&&c.getIdle()!==C.keepAuthIdle&&(console.debug("[idle] Updating auth idle (delay: {0}s)".format(C.keepAuthIdle)),c.setIdle(C.keepAuthIdle)),e&&C&&C.keepAuthIdle==f.constants.KEEP_AUTH_IDLE_SESSION?d.put("seckey",m.util.encode_base58(x.keypair.signSk)):n&&d.put("seckey",null)},H.registerEvent("data","init"),H.registerEvent("data","loginCheck"),H.registerEvent("data","login"),H.registerEvent("data","auth"),H.registerEvent("data","unauth"),H.registerEvent("data","load"),H.registerEvent("data","logout"),H.registerEvent("data","reset"),H.registerEvent("data","store"),H.registerEvent("error","send"),H.registerEvent("data","balanceChanged"),H.registerEvent("data","newTx"),H.registerEvent("action","certify"),W(!0),"default"!==b&&(ie=e.when,re=e.when,se=e.when),S={id:b,data:x,ready:function(){return D?e.when():y||Fe()},start:Fe,stop:Be,login:$,logout:z,auth:X,unauth:Q,isLogin:q,isAuth:J,getKeypair:Z,hasSelf:function(){return!!x.pubkey&&!x.requirements.needSelf},setSelf:fe,isMember:function(){return x.isMember},isDataLoaded:ee,isDefault:Y,isNeverUsed:te,isNew:ne,isUserPubkey:function(e){return q()&&x.pubkey===e},getData:function(){return x},loadData:me,refreshData:ge,internal:{addListener:function(e){(L=L||[]).push(e)},removeListeners:Ue},store:ie,storeData:oe,transfer:ve,transferAll:function(t,n,i,a,o){return q()?o&&t!=o?N.blockchain.lastValid().then((function(e){return console.debug("[wallet] Using last valid block as TX reference (to avoid network fork): ",e),ve(t,n,i,a,o,e).then((function(){if(x.balance>0&&o)return console.debug("[wallet] Wallet has some more money: transfering fund to [{0}]".format(o.substring(0,8))),ve(o,x.balance,void 0,!1,o,e)}))})):e.reject({message:"Could not have same pubkey for 'destPub' and 'restPub'"}):e.reject({message:"ERROR.NEED_LOGIN_FIRST"})},self:function(t,n){return A.regexp.USER_ID.test(t)?e.all([Z(),N.get(),N.blockchain.lastValid()]).then((function(e){var n=e[0],a=e[1];return i=e[2],Ne(a,n,t,i.number+"-"+i.hash)})).then((function(e){return A.wot.add({identity:e})})).then((function(){if(n)return ce(!1).then(de);x.uid=t,x.blockUid=i.number+"-"+i.hash})).catch((function(e){if(e&&e.ucode===A.errorCodes.IDENTITY_SANDBOX_FULL)throw{ucode:A.errorCodes.IDENTITY_SANDBOX_FULL,message:"ERROR.IDENTITY_SANDBOX_FULL"};throw e})):e.reject({message:"ERROR.INVALID_USER_ID"});var i},revoke:function(){return Ce("revocation"),Se().then((function(e){return A.wot.revoke({revocation:e})})).then((function(){return n((function(){return ce(!1)}),1e3)})).then(de).catch((function(e){if(!e||e.ucode!=A.errorCodes.REVOCATION_ALREADY_REGISTERED)throw e;Re({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"},!0)}))},revokeWithFile:function(t){return e.all([A.wot.revoke({revocation:t})]).then((function(e){if(q())return n((function(){return ce(!1)}),1e3).then(de).catch((function(e){if(!e||e.ucode!=A.errorCodes.REVOCATION_ALREADY_REGISTERED)throw e;Re({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"},!0)}));Re({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"},!0)}))},certify:function(t,n,i,a,o,r){return e.all([Z(),N.get(),N.blockchain.lastValid()]).then((function(e){var s=e[0],l=e[1],c=e[2];if(!x.isMember&&!g.initPhase)throw{message:"ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION"};var u="Version: "+U+"\nType: Certification\nCurrency: "+l.name+"\nIssuer: "+x.pubkey+"\nIdtyIssuer: "+n+"\nIdtyUniqueID: "+t+"\nIdtyTimestamp: "+i+"\nIdtySignature: "+a+"\nCertTimestamp: "+c.number+"-"+c.hash+"\n";return m.sign(u,s).then((function(e){var t=u+e+"\n";return A.wot.certify({cert:t})})).then((function(){var e={pubkey:n,uid:t,time:c.medianTime,isMember:o,wasMember:r,expiresIn:l.parameters.sigWindow,pending:!0,block:c.number,valid:!0};return H.action.raise.certify(e),e}))}))},downloadSaveId:function(e){return function(e){var t="Version: 10 \nType: SaveID\nQuestions: \n"+e.questions+"Issuer: "+x.pubkey+"\nCrypted-Nonce: "+e.nonce+"\nCrypted-Pubkey: "+e.pubkey+"\nCrypted-Salt: "+e.salt+"\nCrypted-Pwd: "+e.pwd+"\n";return m.sign(t,x.keypair).then((function(e){return t+=e+"\n",console.debug("Has generate an SaveID document:\n----\n"+t+"----"),t}))}(e).then((function(e){var t=new h([e],{type:"text/plain; charset=utf-8"});T.saveAs(t,"{0}-recover_ID.txt".format(x.pubkey.substring(0,8)))}))},getCryptedId:function(t){return Ae(t).then(m.util.random_nonce).then((function(n){return t.nonce=m.util.encode_base58(n),e.all([m.box.pack(t.salt,n,t.keypair.boxPk,t.keypair.boxSk),m.box.pack(t.pwd,n,t.keypair.boxPk,t.keypair.boxSk)])})).then((function(e){return t.salt=e[0],t.pwd=e[1],t}))},recoverId:function(e){var t=m.util.decode_base58(e.cypherNonce);return Ae(e).then((function(e){return m.box.open(e.cypherSalt,t,e.keypair.boxPk,e.keypair.boxSk)})).then((function(n){return e.salt=n,m.box.open(e.cypherPwd,t,e.keypair.boxPk,e.keypair.boxSk)})).then((function(t){return e.pwd=t,e})).catch((function(e){console.warn("Incorrect answers - Unable to recover passwords")}))},downloadRevocation:function(){return e.all([N.get(),Se()]).then((function(e){var t=e[0],n=e[1],i=new h([n],{type:"text/plain; charset=utf-8"});return a("ACCOUNT.SECURITY.REVOCATION_FILENAME",{uid:x.uid,currency:t.name,pubkey:x.pubkey}).then((function(e){T.saveAs(i,e)}))}))},downloadKeyFile:function(t){return J()?e.all([N.get(),E.keyfile.generateContent(x.keypair,{type:t,password:function(){return s.loading.hide(),p.showPassword({title:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.TITLE",subTitle:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.HELP"}).then((function(e){return s.loading.show(10).then((function(){return e}))}))}})]).then((function(e){var n=e[0],i=e[1];return a("ACCOUNT.SECURITY.KEYFILE_FILENAME",{currency:n.name,pubkey:x.pubkey,format:t}).then((function(e){var t=new h([i],{type:"text/plain; charset=utf-8"});T.saveAs(t,e)}))})):e.reject("user not authenticated")},pubkeys:function(){if(!x.pubkey)throw new Error("User not login!");return(x.children||[]).reduce((function(e,t){return t.data.pubkey?e.concat(t.data.pubkey):e}),[x.pubkey])},getByPubkey,membership:{inside:Oe(!0),out:Oe(!1)},events:{add:Re,cleanByContext:Ce},children:{create:function(e){var t=Pe();return Le(t,e),t},add:Le,remove:function(e,t){x.children=x.children||[];var n=_.findIndex(x.children,(function(t){return t.id===e}));if(-1!==n)return x.children.splice(n,1)[0].stop(),!t||angular.isUndefined(t.store)||t.store?oe():void 0;console.warn("[wallet] Unable to remove child wallet {"+e+"} (not found)")},get:function(e){return"default"!==e&&_.find(x.children||[],(function(t){return t.id===+e}))||void 0},getByPubkey:ye,all:ke,setParent:function(n){var i;L=L||[],_.forEach(["load","reset"],(function(a){i=H.data.on[a](t,(function(t,i){return i=i||e.defer(),n.api.data.raisePromise[a](t).then(i.resolve).catch(i.reject),i.promise}),this),L.push(i)})),i=n.api.data.on.unauth(t,(function(){J()&&Q()}),this),L.push(i)},count:function(){return angular.isDefined(x.childrenCount)?x.childrenCount:x.children&&x.children.length||0},hasPubkey:function(e){return!!ye(e)},instance:Pe,downloadFile:downloadChildrenWalletFile},api:H}}return(O=A("default",b)).instance=A,O}]),angular.module("cesium.help.services",[]).constant("csHelpConstants",{wallet:{stepCount:4}}).factory("csHelp",["$rootScope","csSettings","UIUtils","csHelpConstants","$controller",function(e,t,n,i,a){function o(o,r){if(o=angular.isDefined(o)?o:t.data.helptip.wallet,r=!!angular.isDefined(r)&&r,!(o<0||o>=i.wallet.stepCount)){var s=function(i,o){if(i||!e.tour&&t.data.helptip.enable&&!n.screen.isSmall()){var r=e.$new();return a("HelpTipCtrl",{$scope:r}),r}}(r);if(s)return s.tour=r,s.startWalletTour(o,!1).then((function(e){s.$destroy(),r||(t.data.helptip.wallet=e,t.store())}))}}return{wallet:{tour:function(){return o(0,!0)},helptip:o}}}]),angular.module("cesium.plugin.services",[]).provider("PluginService",(function(){var e=[],t={};this.registerEagerLoadingService=function(t){return e.push(t),this},this.extendState=function(e,n){return angular.isDefined(e)&&angular.isDefined(n)&&(t[e]||(t[e]=[]),t[e].push(n)),this},this.extendStates=function(e,t){var n=this;return e.forEach((function(e){n.extendState(e,t)})),this},this.$get=["$injector","$state",function(n,i){var a;return{start:function(){e.length>0&&_.forEach(e,(function(e){n.get(e)}))},extensions:{points:{getActivesByName:function(e){return _.keys(t).reduce((function(e,n){return i.includes(n)?e.concat(t[n]):e}),[]).reduce((function(t,n){return n.points&&n.points[e]?t.concat(n.points[e]):t}),[])},current:{get:function(){return a},set:function(e){a=e}}}}}}]})),angular.module("cesium.services",["cesium.settings.services","cesium.http.services","cesium.network.services","cesium.bma.services","cesium.crypto.services","cesium.utils.services","cesium.modal.services","cesium.storage.services","cesium.device.services","cesium.currency.services","cesium.wot.services","cesium.tx.services","cesium.wallet.services","cesium.help.services","cesium.plugin.services"]),e.prototype.regexp={BMA:/^BASIC_MERKLED_API[ ]?/,BMAS:/^BMAS[ ]?/,WS2P:/^WS2P[ ]?/,BMA_REGEXP:/^BASIC_MERKLED_API([ ]+([a-z_][a-z0-9-_.ÄŸÄž]*))?([ ]+([0-9.]+))?([ ]+([0-9a-f:]+))?([ ]+([0-9]+))$/,BMAS_REGEXP:/^BMAS([ ]+([a-z_][a-z0-9-_.ÄŸÄž]*))?([ ]+([0-9.]+))?([ ]+([0-9a-f:]+))?([ ]+([0-9]+))$/,WS2P_REGEXP:/^WS2P[ ]+([a-z0-9]+)([ ]+([a-z_][a-z0-9-_.ÄŸÄž]*))?([ ]+([0-9.]+))?([ ]+([0-9a-f:]+))?([ ]+([0-9]+))([ ]+([a-z0-9/.&#!]+))?$/,LOCAL_IP_ADDRESS:/^127[.]0[.]0.|192[.]168[.]|10[.]0[.]0[.]|172[.]16[.]/},e.prototype.regex=e.prototype.regexp,e.prototype.keyID=function(){var e=this.bma||this.getBMA();return e.useBma?[this.pubkey||"Unknown",e.dns,e.ipv4,e.ipv6,e.port,e.useSsl,e.path].join("-"):[this.pubkey||"Unknown",e.ws2pid,e.path].join("-")},e.prototype.copyValues=function(e){var t=this;["version","currency","pub","endpoints","hash","status","block","signature"].forEach((function(n){e[n]=t[n]}))},e.prototype.copyValuesFrom=function(e){var t=this;["version","currency","pub","endpoints","block","signature"].forEach((function(n){t[n]=e[n]}))},e.prototype.json=function(){var e=this,t={};return["version","currency","endpoints","status","block","signature"].forEach((function(n){t[n]=e[n]})),t.raw=this.raw&&this.getRaw(),t.pubkey=this.pubkey,t},e.prototype.getBMA=function(){if(this.bma)return this.bma;var e=null,t=this.regexp.BMA_REGEXP,n=this.regexp.BMAS_REGEXP;return this.endpoints.forEach((function(i){var a=!e&&t.exec(i);a&&(e={dns:a[2]||"",ipv4:a[4]||"",ipv6:a[6]||"",port:a[8]||80,useSsl:443==a[8],useBma:!0}),(a=!e&&n.exec(i))&&(e={dns:a[2]||"",ipv4:a[4]||"",ipv6:a[6]||"",port:a[8]||80,useSsl:!0,useBma:!0})})),e||{}},e.prototype.getEndpoints=function(e){return e?this.endpoints.reduce((function(t,n){return n.match(e)?t.concat(n):t}),[]):this.endpoints},e.prototype.hasEndpoint=function(e){var t=this.regexp[e]||new RegExp("^"+e);return!!this.getEndpoints(t).length},e.prototype.getDns=function(){var e=this.bma||this.getBMA();return e.dns?e.dns:null},e.prototype.getIPv4=function(){var e=this.bma||this.getBMA();return e.ipv4?e.ipv4:null},e.prototype.getIPv6=function(){var e=this.bma||this.getBMA();return e.ipv6?e.ipv6:null},e.prototype.getPort=function(){var e=this.bma||this.getBMA();return e.port?e.port:null},e.prototype.getHost=function(e){return bma=e||this.bma||this.getBMA(),(443==bma.port||bma.useSsl)&&bma.dns?bma.dns:this.hasValid4(bma)?bma.ipv4:bma.dns?bma.dns:bma.ipv6?"["+bma.ipv6+"]":""},e.prototype.getURL=function(e){e=e||this.bma||this.getBMA();var t=this.getHost(e);return(443==e.port||e.useSsl?"https":"http")+"://"+t+(e.port?":"+e.port:"")},e.prototype.getServer=function(e){e=e||this.bma||this.getBMA();var t=this.getHost(e);return t+(t&&e.port?":"+e.port:"")},e.prototype.hasValid4=function(e){return!(!e.ipv4||e.ipv4.match(this.regexp.LOCAL_IP_ADDRESS))},e.prototype.isReachable=function(){return!!this.getServer()},e.prototype.isSsl=function(){return(this.bma||this.getBMA()).useSsl},e.prototype.isTor=function(){return(this.bma||this.getBMA()).useTor},e.prototype.isWs2p=function(){return(this.bma||this.getBMA()).useWs2p},e.prototype.isBma=function(){var e=this.bma||this.getBMA();return!e.useWs2p&&!e.useTor},e.prototype.hasBma=function(){return this.hasEndpoint("(BASIC_MERKLE_API|BMAS|BMATOR)")},t.prototype.isEmpty=function(){"use strict";return!(this.transactionsCount||this.certificationsCount||this.joinersCount||this.dividend||this.activesCount||this.identitiesCount||this.leaversCount||this.excludedCount||this.revokedCount)},t.prototype.parseData=function(){this.identities=this.parseArrayValues(this.identities,["pubkey","signature","buid","uid"]),this.joiners=this.parseArrayValues(this.joiners,["pubkey","signature","mBuid","iBuid","uid"]),this.actives=this.parseArrayValues(this.actives,["pubkey","signature","mBuid","iBuid","uid"]),this.leavers=this.parseArrayValues(this.leavers,["pubkey","signature","mBuid","iBuid","uid"]),this.revoked=this.parseArrayValues(this.revoked,["pubkey","signature"]),this.excluded=this.parseArrayValues(this.excluded,["pubkey"]),this.certifications=this.parseArrayValues(this.certifications,["from","to","block","signature"]),this.transactions=this.parseTransactions(this.transactions),delete this.raw},t.prototype.cleanData=function(){delete this.identities,delete this.joiners,delete this.actives,delete this.leavers,delete this.revoked,delete this.excluded,delete this.certifications,delete this.transactions,delete this.raw},t.prototype.parseArrayValues=function(e,t){return e&&e.length?e.reduce((function(e,n){var i=n.split(":");if(i.length!=t.length)return console.debug("[block] Bad format for '{0}': [{1}]. Expected {1} parts. Skipping".format(arrayProperty,n,t.length)),e;for(var a={},o=0;o<t.length;o++)a[t[o]]=i[o];return e.concat(a)}),[]):[]},t.prototype.regexp={TX_OUTPUT_SIG:("SIG\\(([0-9a-zA-Z]{43,44})\\)",new RegExp("^SIG\\(([0-9a-zA-Z]{43,44})\\)$"))},t.prototype.parseTransactions=function(e){return e&&e.length?e.reduce((function(e,n){var i={issuers:n.issuers,time:n.time};return i.outputs=n.outputs.reduce((function(e,i){var a=i.split(":");if(3!=a.length)return console.debug("[block] Bad format a 'transactions': [{0}]. Expected 3 parts. Skipping".format(i)),e;var o=a[0],r=a[1],s=a[2],l=t.prototype.regexp.TX_OUTPUT_SIG.exec(a[2]);if(l){var c=l[1];return n.issuers&&-1==n.issuers.indexOf(c)?e.concat({amount:r<=0?o:o*Math.pow(10,r),unitbase:r,pubkey:c}):e}return e.concat({amount:r<=0?o:o*Math.pow(10,r),unitbase:r,unlockCondition:s})}),[]),i.error||i.outputs.length||(i.toHimself=!0),e.concat(i)}),[]):[]},n.prototype.regexp={WS2P_PREFIX:/^WS2P(?:O([CT][SAM]))?(?:I([CT]))?$/},o.$inject=["$scope","$rootScope","$state","$ionicSideMenuDelegate","$q","$timeout","$ionicHistory","$controller","$window","csPlatform","CryptoUtils","csCrypto","UIUtils","BMA","csWallet","Device","Modals","csConfig","csHttp"],r.$inject=["$scope","$state","$timeout","$ionicHistory","$translate","$http","UIUtils","csConfig","csPlatform","csCurrency","csSettings"],a.$inject=["$scope","PluginService"],angular.module("cesium.app.controllers",["cesium.platform","cesium.services"]).config(["$stateProvider","$urlRouterProvider",function(e,t){e.state("app",{url:"/app",abstract:!0,templateUrl:"templates/menu.html",controller:"AppCtrl",data:{large:!1}}).state("app.home",{url:"/home?error",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"HomeCtrl"}}}).state("app.lock",{cache:!1,url:"/lock",views:{menuContent:{templateUrl:"templates/common/view_passcode.html",controller:"PassCodeCtrl"}}}),t.otherwise("/app/home")}]).controller("AppCtrl",o).controller("HomeCtrl",r).controller("PluginExtensionPointCtrl",a),s.$inject=["$scope","$timeout","$controller","Modals","csWallet"],l.$inject=["$scope","$state","Modals","UIUtils","csCurrency"],c.$inject=["$scope","$state","$interval","$q","$timeout","Device","UIUtils","CryptoUtils","csSettings","Modals","csWallet","BMA","parameters"],angular.module("cesium.join.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.join",{url:"/join",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"JoinCtrl"}}})}]).controller("JoinCtrl",s).controller("JoinChooseAccountTypeModalCtrl",l).controller("JoinModalCtrl",c),u.$inject=["$scope","$timeout","$controller","csWallet"],d.$inject=["$scope","$timeout","$q","$ionicPopover","CryptoUtils","csCrypto","ionicReady","UIUtils","BMA","Modals","csSettings","Device","parameters"],p.$inject=["$scope","$controller"],angular.module("cesium.login.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.login",{url:"/login",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"LoginCtrl"}}})}]).controller("LoginCtrl",u).controller("LoginModalCtrl",d).controller("AuthCtrl",p),m.$inject=["$scope","$state","$timeout","$anchorScroll","csSettings"],E.$inject=["$scope","$timeout","$anchorScroll","csSettings","parameters"],b.$inject=["$scope","$state","$window","$ionicSideMenuDelegate","$timeout","$q","$anchorScroll","UIUtils","csConfig","csSettings","csCurrency","csHelpConstants","Device","csWallet"],g.$inject=["$scope"],angular.module("cesium.help.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.help_tour",{url:"/tour",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"HelpTourCtrl"}}}).state("app.help",{url:"/help?anchor",views:{menuContent:{templateUrl:"templates/help/view_help.html",controller:"HelpCtrl"}}}).state("app.help_anchor",{url:"/help/:anchor",views:{menuContent:{templateUrl:"templates/help/view_help.html",controller:"HelpCtrl"}}})}]).controller("HelpCtrl",m).controller("HelpModalCtrl",E).controller("HelpTipCtrl",b).controller("HelpTourCtrl",g),f.$inject=["$scope","$rootScope","$q","$ionicPopup","$timeout","$state","$translate","$ionicPopover","$location","UIUtils","ModalUtils","Modals","csPopovers","BMA","csConfig","csSettings","csWallet","csHelp"],T.$inject=["$scope","$ionicPopover","$state","$timeout","$location","UIUtils","Modals","csPopovers","BMA","csHttp","csSettings","csCurrency","csWallet","csTx"],h.$inject=["$scope","UIUtils","csSettings","csWallet"],v.$inject=["$scope","UIUtils","csWallet","$translate","parameters"],angular.module("cesium.wallet.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){e.state("app.view_wallet",{url:"/account?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet.html",controller:"WalletCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx",{url:"/history/account?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx.html",controller:"WalletTxCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx_errors",{url:"/history/account/errors",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx_error.html",controller:"WalletTxErrorCtrl"}},data:{login:!0}})}]).controller("WalletCtrl",f).controller("WalletTxCtrl",T).controller("WalletTxErrorCtrl",h).controller("WalletSecurityModalCtrl",v),I.$inject=["$scope","$q","$timeout","UIUtils","filterTranslations","csSettings","csCurrency","csWallet"],O.$inject=["$scope","$controller","$state","$timeout","$q","$translate","$ionicPopover","$ionicPopup","ModalUtils","UIUtils","Modals","csCurrency","csSettings","csWallet"],N.$inject=["$scope","$controller","parameters"],A.$inject=["$scope","$timeout","BMA","csWallet"],R.$inject=["$scope","$controller","UIUtils","parameters"],angular.module("cesium.wallets.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){e.state("app.view_wallets",{url:"/wallets",views:{menuContent:{templateUrl:"templates/wallet/list/view_wallets.html",controller:"WalletListViewCtrl"}},data:{login:!0}}).state("app.view_wallet_by_id",{url:"/wallets/:id?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet.html",controller:"WalletCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx_by_id",{url:"/history/wallets/:id?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx.html",controller:"WalletTxCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx_errors_by_id",{url:"/history/wallets/:id/errors",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx_error.html",controller:"WalletTxErrorCtrl"}},data:{login:!0}})}]).controller("WalletListAbstractCtrl",I).controller("WalletListViewCtrl",O).controller("WalletSelectModalCtrl",N).controller("WalletListImportModalCtrl",A).controller("WalletSelectPopoverCtrl",R),S.$inject=["$scope","$state","$q","$timeout","$focus","$location","$ionicPopover","$ionicHistory","UIUtils","csConfig","csCurrency","csSettings","Device","BMA","csWallet","csWot"],C.$inject=["$scope","$controller","$focus","csWallet","parameters"],D.$inject=["$scope","$rootScope","$state","$translate","$ionicHistory","$q","UIUtils","Modals","csConfig","csSettings","csCurrency","csWot","csWallet"],y.$inject=["$scope","$rootScope","$controller","$timeout","$state","UIUtils","Modals","csWallet"],P.$inject=["$scope","$timeout","$q","BMA","csSettings","csWot","csTx","UIUtils"],k.$inject=["$scope","$rootScope","$controller","csSettings","csWallet","UIUtils"],M.$inject=["$scope","$q","csWot","parameters"],angular.module("cesium.wot.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.wot_lookup",{url:"/wot",abstract:!0,enableBack:!1,views:{menuContent:{templateUrl:"templates/wot/lookup.html"}}}).state("app.wot_lookup.tab_search",{url:"/search?q&type&hash",views:{tab:{templateUrl:"templates/wot/tabs/tab_lookup.html",controller:"WotLookupCtrl"}},data:{silentLocationChange:!0,large:"app.wot_lookup_lg"}}).state("app.wot_lookup_lg",{url:"/wot/lg?q&type&hash",views:{menuContent:{templateUrl:"templates/wot/lookup_lg.html",controller:"WotLookupCtrl"}},data:{silentLocationChange:!0}}).state("app.wot_identity",{url:"/wot/:pubkey/:uid?action&block",views:{menuContent:{templateUrl:"templates/wot/view_identity.html",controller:"WotIdentityViewCtrl"}}}).state("app.wot_identity_uid",{url:"/lookup/:uid?action",views:{menuContent:{templateUrl:"templates/wot/view_identity.html",controller:"WotIdentityViewCtrl"}}}).state("app.wot_identity_tx_uid",{url:"/wot/tx/:pubkey/:uid?action",views:{menuContent:{templateUrl:"templates/wot/view_identity_tx.html",controller:"WotIdentityTxViewCtrl"}}}).state("app.wot_cert",{url:"/wot/:pubkey/:uid/:type?block",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}},data:{large:"app.wot_cert_lg"}}).state("app.wot_cert_lg",{url:"/wot/cert/lg/:pubkey/:uid?block",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}}}).state("app.wallet_cert",{url:"/account/cert/:type",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}},data:{large:"app.wallet_cert_lg"}}).state("app.wallet_cert_lg",{url:"/account/cert/lg",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}}}).state("app.wallet_cert_by_id",{url:"/wallets/:id/cert/:type",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}},data:{large:"app.wallet_cert_lg_by_id"}}).state("app.wallet_cert_lg_by_id",{url:"/wallets/:id/cert/lg",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}}})}]).controller("WotLookupCtrl",S).controller("WotLookupModalCtrl",C).controller("WotIdentityAbstractCtrl",D).controller("WotIdentityViewCtrl",y).controller("WotIdentityTxViewCtrl",P).controller("WotCertificationsViewCtrl",k).controller("WotSelectPubkeyIdentityModalCtrl",M),w.$inject=["$scope","$state","$location","$ionicPopover","$window","$translate","BMA","UIUtils","csConfig","csSettings","csCurrency","csNetwork","csWot"],F.$inject=["$scope","$q","$window","$state","UIUtils","csWot","BMA"],U.$inject=["$scope","$controller","parameters"],B.$inject=["$scope","$controller"],x.$inject=["$scope","$q","csSettings","csCurrency","csHttp","BMA"],angular.module("cesium.network.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.network",{url:"/network?type&expert",cache:!1,views:{menuContent:{templateUrl:"templates/network/view_network.html",controller:"NetworkLookupCtrl"}},data:{silentLocationChange:!0}}).state("app.view_peer",{url:"/network/peer/:server?ssl&tor",cache:!1,views:{menuContent:{templateUrl:"templates/network/view_peer.html",controller:"PeerViewCtrl"}},data:{preferHttp:!0}})}]).controller("NetworkLookupCtrl",w).controller("PeerViewCtrl",F).controller("NetworkLookupModalCtrl",U).controller("NetworkLookupPopoverCtrl",B).controller("PeerInfoPopoverCtrl",x),H.$inject=["$scope","$q","$timeout","$ionicPopover","Modals","BMA","UIUtils","csSettings","csCurrency","csNetwork","ModalUtils"],W.$inject=["$scope","$http","UIUtils","csSettings","FileSaver"],angular.module("cesium.currency.controllers",["ngFileSaver","cesium.services"]).config(["$stateProvider",function(e){e.state("app.currency",{url:"/currency",views:{menuContent:{templateUrl:"templates/currency/view_currency.html",controller:"CurrencyViewCtrl"}},data:{large:"app.currency_lg"}}).state("app.currency.tab_parameters",{url:"/parameters",views:{"tab-parameters":{templateUrl:"templates/currency/tabs/tab_parameters.html"}}}).state("app.currency.tab_wot",{url:"/community",views:{"tab-wot":{templateUrl:"templates/currency/tabs/tab_wot.html"}}}).state("app.currency.tab_network",{url:"/network",views:{"tab-network":{templateUrl:"templates/currency/tabs/tab_network.html",controller:"NetworkLookupCtrl"}}}).state("app.currency.tab_blocks",{url:"/blocks",views:{"tab-blocks":{templateUrl:"templates/currency/tabs/tab_blocks.html",controller:"BlockLookupCtrl"}}}).state("app.currency_lg",{url:"/currency/lg",cache:!1,views:{menuContent:{templateUrl:"templates/currency/view_currency_lg.html",controller:"CurrencyViewCtrl"}}})}]).controller("CurrencyViewCtrl",H).controller("CurrencyLicenseModalCtrl",W),V.$inject=["$scope","$controller","UIUtils"],G.$inject=["$scope","$q","$translate","$timeout","$filter","$focus","Device","BMA","UIUtils","Modals","csWallet","csWot","csCurrency","csSettings","parameters"],angular.module("cesium.transfer.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){e.state("app.new_transfer",{cache:!1,url:"/transfer?amount&udAmount&comment&restPub&all&wallet",views:{menuContent:{templateUrl:"templates/wallet/new_transfer.html",controller:"TransferCtrl"}}}).state("app.new_transfer_pubkey_uid",{cache:!1,url:"/transfer/:pubkey/:uid?amount&udAmount&comment&restPub&all&wallet",views:{menuContent:{templateUrl:"templates/wallet/new_transfer.html",controller:"TransferCtrl"}}}).state("app.new_transfer_pubkey",{cache:!1,url:"/transfer/:pubkey?amount&udAmount&comment&restPub&all&wallet",views:{menuContent:{templateUrl:"templates/wallet/new_transfer.html",controller:"TransferCtrl"}}})}]).controller("TransferCtrl",V).controller("TransferModalCtrl",G),Y.$inject=["$scope","$q","$window","$ionicHistory","$ionicPopup","$timeout","$translate","$ionicPopover","UIUtils","Modals","BMA","csHttp","csConfig","csCurrency","csSettings","csPlatform"],angular.module("cesium.settings.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){e.state("app.settings",{url:"/settings",views:{menuContent:{templateUrl:"templates/settings/settings.html",controller:"SettingsCtrl"}}})}]).controller("SettingsCtrl",Y),j.$inject=["$scope","$timeout","$focus","$filter","$state","$anchorScroll","UIUtils","BMA","csCurrency","csWot","csSettings"],K.$inject=["$scope","$ionicPopover","$state","UIUtils","BMA","csCurrency","csWot"],angular.module("cesium.blockchain.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.blockchain",{url:"/blockchain",views:{menuContent:{templateUrl:"templates/blockchain/lookup.html",controller:"BlockLookupCtrl"}},data:{large:"app.blockchain_lg"}}).state("app.blockchain_lg",{url:"/blockchain/lg",views:{menuContent:{templateUrl:"templates/blockchain/lookup_lg.html",controller:"BlockLookupCtrl"}}}).state("app.server_blockchain",{url:"/network/peer/:server/blockchain?ssl&tor",views:{menuContent:{templateUrl:"templates/blockchain/lookup.html",controller:"BlockLookupCtrl"}},data:{large:"app.server_blockchain_lg"}}).state("app.server_blockchain_lg",{url:"/network/peer/:server/blockchain/lg?ssl&tor",views:{menuContent:{templateUrl:"templates/blockchain/lookup_lg.html",controller:"BlockLookupCtrl"}}}).state("app.view_block",{url:"/block/:number",views:{menuContent:{templateUrl:"templates/blockchain/view_block.html",controller:"BlockViewCtrl"}}}).state("app.view_block_hash",{url:"/block/:number/:hash",views:{menuContent:{templateUrl:"templates/blockchain/view_block.html",controller:"BlockViewCtrl"}}}).state("app.view_server_block_hash",{url:"/network/peer/:server/block/:number/:hash?ssl&tor",views:{menuContent:{templateUrl:"templates/blockchain/view_block.html",controller:"BlockViewCtrl"}}})}]).controller("BlockLookupCtrl",j).controller("BlockViewCtrl",K),angular.module("cesium.controllers",["cesium.app.controllers","cesium.join.controllers","cesium.login.controllers","cesium.help.controllers","cesium.wallet.controllers","cesium.wallets.controllers","cesium.currency.controllers","cesium.wot.controllers","cesium.transfer.controllers","cesium.settings.controllers","cesium.network.controllers","cesium.blockchain.controllers"]),angular.module("cesium.templates",[]).run(["$templateCache",function(e){e.put("templates/menu.html",'<ion-side-menus enable-menu-with-back-views="true" bind-notifier="{locale:$root.settings.locale.id}"><ion-side-menu-content><ion-nav-bar class="bar-dark" title-align="left"><ion-nav-back-button class="no-text"></ion-nav-back-button><ion-nav-buttons side="left"><button class="button button-icon button-clear icon ion-navicon visible-nomenu" menu-toggle="left"></button></ion-nav-buttons><ion-nav-buttons side="right"><cs-extension-point name="nav-buttons-right"></cs-extension-point></ion-nav-buttons></ion-nav-bar><ion-nav-view name="menuContent"></ion-nav-view></ion-side-menu-content><ion-side-menu id="menu" side="left" expose-aside-when="large" enable-menu-with-back-views="false" width="225"><ion-header-bar class="bar-title"><div class="visible-sm visible-xs hero"><div class="content"><i class="avatar avatar-member hero-icon" ng-if="!walletData.avatar" ng-class="{\'royal-bg\': login, \'stable-bg\': !login}" ng-click="!login ? showHome() : loginAndGo()" menu-close=""></i> <a class="avatar hero-icon" ng-if="walletData.avatar" style="background-image: url(\'{{walletData.avatar.src}}\')" ui-sref="app.view_wallet" menu-close=""></a><h4 ng-if="login"><a class="light" ui-sref="app.view_wallet" menu-close="">{{walletData.name||walletData.uid}} <span ng-if="!walletData.name && !walletData.uid"><i class="icon ion-key"></i>&nbsp;{{walletData.pubkey|formatPubkey}}</span></a></h4><h4 ng-if="!login"><a class="light" ui-sref="app.login" menu-close="">{{\'COMMON.BTN_LOGIN\'|translate}} <i class="ion-arrow-right-b"></i></a></h4><cs-extension-point name="menu-profile-user"></cs-extension-point></div><a ng-if="login" class="button-icon" ng-click="logout({askConfirm: true})" style="position: absolute; top: 5px; left: 5px; z-index: 999"><i class="icon light ion-android-exit"></i></a></div></ion-header-bar><ion-content scroll="false" class="scroll-content ionic-scroll" ng-class="{\'overflow-scroll\': smallscreen, \'scroll-content-false\': !smallscreen}"><ion-list class="list" ng-class="{\'scroll\': smallscreen}"><ion-item menu-close="" class="item-icon-left hidden-xs" ui-sref="app.home" active-link="active"><i class="icon ion-home"></i> {{:locale:\'MENU.HOME\'|translate}}</ion-item><ion-item menu-close="" ng-if="!login" class="item-icon-left visible-xs" ui-sref="app.home" active-link="active"><i class="icon ion-home"></i> {{:locale:\'MENU.HOME\'|translate}}</ion-item><div class="item item-divider"></div><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/account" ui-sref="app.view_wallet" ng-class="{\'item-menu-disable\': !login}"><i class="icon ion-person"></i> {{:locale:\'MENU.ACCOUNT\'|translate}} </a><a id="helptip-menu-btn-account"></a> <a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/history" ui-sref="app.view_wallet_tx" ng-class="{\'item-menu-disable\': !login}"><i class="icon ion-card"></i> {{:locale:\'MENU.TRANSACTIONS\'|translate}} </a><a id="helptip-menu-btn-tx"></a> <a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/wallets" ui-sref="app.view_wallets" ng-class="{\'item-menu-disable\': !login}"><i class="icon ion-card" style="top: -5px; left: 22px; font-size: 18px"></i> <i class="icon-secondary ion-card" style="top: 22px; left: 19px; font-size: 20px; background-color: white; width:17px; height: 14px"></i> {{:locale:\'MENU.WALLETS\'|translate}}</a><div class="item item-divider"></div><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/wot" ui-sref="app.wot_lookup.tab_search"><i class="icon ion-person-stalker"></i> {{:locale:\'MENU.WOT\'|translate}} </a><a id="helptip-menu-btn-wot"></a><cs-extension-point name="menu-main"></cs-extension-point><div class="item item-divider"></div><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/currency" ui-sref="app.currency"><i class="icon ion-ios-world-outline"></i> {{:locale:\'MENU.CURRENCY\'|translate}} </a><a id="helptip-menu-btn-currency"></a> <a id="helptip-menu-btn-network"></a><cs-extension-point name="menu-discover"></cs-extension-point><div class="item item-divider visible-xs visible-sm"></div><cs-extension-point name="menu-user"></cs-extension-point><a menu-close="" class="item item-icon-left visible-xs visible-sm" active-link="active" active-link-path-prefix="#/app/settings" ui-sref="app.settings"><i class="icon ion-android-settings"></i> {{:locale:\'MENU.SETTINGS\'|translate}} </a><a id="helptip-menu-btn-settings"></a><div class="item item-divider" ng-if="login"></div><ion-item menu-close="" class="item item-button-right" ng-if="login" ng-class="::{\'item-button-left\': $root.device.barcode.enable}"><button class="button button-positive ink-dark" ng-click="showTransferModal()"><i class="icon ion-paper-airplane"></i></button> <button class="button button-stable ink" ng-if="$root.device.barcode.enable" ng-click="scanQrCodeAndGo()"><i class="icon ion-qr-scanner"></i></button></ion-item><cs-extension-point name="menu-actions"></cs-extension-point></ion-list></ion-content></ion-side-menu></ion-side-menus>'),e.put("templates/modal_about.html",'<ion-modal-view class="about"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CLOSE</button><h1 class="title" translate>ABOUT.TITLE</h1></ion-header-bar><ion-content class="text-center" scroll="true"><div class="list item-wrap-text"><ion-item class="item-icon-left item-text-wrap"><span>{{\'COMMON.APP_NAME\'|translate}}&nbsp;<b>{{\'COMMON.APP_VERSION\'|translate:$root.config}}</b> - <a ng-click="openLink($event, \'http://cesium.app\')">www.cesium.app</a></span> <i ng-if="$root.newRelease" class="assertive ion-alert-circled"></i><h3 ng-if="$root.config.build" class="gray">{{\'COMMON.APP_BUILD\'|translate:$root.config}}</h3><span translate>ABOUT.LICENSE</span></ion-item><ion-item class="item-icon-left" ng-if="$root.newRelease"><i class="item-image icon ion-alert-circled assertive"></i> <span ng-if="!$root.device.isWeb()" ng-bind-html="\'ABOUT.PLEASE_UPDATE\' | translate:$root.newRelease "></span> <span ng-if="$root.device.isWeb()" ng-bind-html="\'ABOUT.LATEST_RELEASE\' | translate:$root.newRelease "></span><h3 ng-if="!$root.device.enable"><a ng-click="openLink($event, $root.newRelease.url)" translate>{{::$root.newRelease.url}}</a></h3></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="item-image icon ion-android-laptop"></i> <span translate>ABOUT.OFFICIAL_WEB_SITE</span><h3><a ng-click="openLink($event, \'https://www.cesium.app\')">https://www.cesium.app</a></h3></ion-item><ion-item class="item-icon-left"><i class="item-image icon ion-chatbubbles"></i> {{\'ABOUT.FORUM\' | translate}}<h3><a ng-click="openLink($event, $root.settings.userForumUrl)">{{::$root.settings.userForumUrl}}</a></h3></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="item-image icon ion-bug"></i> <span translate>ABOUT.PLEASE_REPORT_ISSUE</span><h3><a ng-click="openLink($event, $root.settings.newIssueUrl)" translate>ABOUT.REPORT_ISSUE</a></h3></ion-item><ion-item class="item-icon-left"><i class="item-image icon ion-network"></i> {{\'ABOUT.CODE\' | translate}}<h3><a ng-click="openLink($event, \'https://git.duniter.org/clients/cesium-grp/cesium\')">https://git.duniter.org/clients/cesium-grp/cesium</a></h3></ion-item><ion-item class="item-icon-left"><i class="item-image icon ion-person-stalker"></i> {{\'ABOUT.DEVELOPERS\' | translate}}<h3><a href="https://github.com/blavenie" target="_system">Benoit Lavenier</a>, <a href="https://github.com/bpresles" target="_system">bpresles</a>, <a href="https://github.com/c-geek" target="_system">cgeek</a>, <a href="https://github.com/devingfx" target="_system">DiG</a>, <a href="https://git.duniter.org/ji_emme" target="_system">Ji_emme</a></h3></ion-item><div class="padding hidden-xs text-center"><button class="button button-stable icon-left ink" type="submit" ng-click="closeModal()" ui-sref="app.help"><i class="icon ion-ios-help-outline"></i> {{\'HOME.BTN_HELP\' | translate}}</button> <button class="button button-positive ink" type="submit" ng-click="closeModal()">{{\'COMMON.BTN_CLOSE\' | translate}}</button></div></div></ion-content></ion-modal-view>'),e.put("templates/api/doc.html",'<h2 class="padding" translate="">API.DOC.TRANSFER.TITLE</h2><div class="list padding no-padding-xs no-padding-top"><div class="item item-divider no-border"><p translate="">API.DOC.DESCRIPTION_DIVIDER</p></div><div class="item item-text-wrap"><p translate="">API.DOC.TRANSFER.DESCRIPTION</p></div><div class="item item-divider no-border"><p translate="">API.DOC.URL_DIVIDER</p></div><div class="item item-text-wrap"><p class="gray text-right">{{$root.rootPath}}#/v1/payment/:pubkey?amount=<span class="text-italic" translate="">API.DOC.TRANSFER.PARAM_AMOUNT</span></p></div><div class="item item-divider no-border"><p translate="">API.DOC.PARAMETERS_DIVIDER</p></div><div class="item item-text-wrap"><p translate="">API.DOC.AVAILABLE_PARAMETERS</p><div class="row"><div class="col col-20 text-italic">pubkey</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_PUBKEY_HELP</div></div><div class="row stable-bg"><div class="col col-20 text-italic dark">amount</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_AMOUNT_HELP</div></div><div class="row"><div class="col col-20 text-italic">comment</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_COMMENT_HELP</div></div><div class="row stable-bg"><div class="col col-20 text-italic dark">name</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_NAME_HELP</div></div><div class="row"><div class="col col-20 text-italic">preferred_node</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_PREFERRED_NODE_HELP</div></div><div class="row stable-bg"><div class="col col-20 text-italic dark">redirect_url</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_REDIRECT_URL_HELP</div></div><div class="row"><div class="col col-20 text-italic">cancel_url</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_CANCEL_URL_HELP</div></div></div><div class="item item-divider no-border"><p translate="">API.DOC.DEMO_DIVIDER</p></div><div class="item item-button-right item-text-wrap padding-bottom"><p class="item-icon-right-padding" translate="">API.DOC.DEMO_HELP</p><span class="badge" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></span><a ng-if="!loading" href="{{transferDemoUrl}}" class="button button-raised button-positive icon ion-play"></a></div><div class="item item-text-wrap" ng-if="result.type === \'payment\' && !result.cancelled"><h2 class="text-right balanced" translate="">API.DOC.DEMO_SUCCEED</h2><h4 class="gray" translate="">API.DOC.DEMO_RESULT</h4><p class="balanced-100-bg padding dark text-keep-lines">{{result.content}}</p><h4 class="gray"><span translate="">API.DOC.DEMO_RESULT_PEER</span> <b>{{result.node}}</b></h4></div><div class="item item-text-wrap" ng-if="result.type === \'payment\' && result.cancelled"><h2 class="text-right assertive" translate="">API.DOC.DEMO_CANCELLED</h2></div><div class="item item-divider no-border"><p translate="">API.DOC.INTEGRATE_DIVIDER</p></div><div class="item item-text-wrap"><p translate="">API.DOC.TRANSFER.EXAMPLES_HELP</p><div class="row responsive-sm"><div class="col col-20 text-italic"><span translate="">API.DOC.TRANSFER.EXAMPLE_BUTTON</span></div><div class="col gray no-border"><p><i class="icon ion-code"></i> <span translate="">API.DOC.INTEGRATE_CODE</span></p><div class="item item-input"><textarea class="gray" select-on-click="" rows="5" ng-model="transferButton.html" ng-model-options="{ debounce: 650 }"></textarea></div><p class="padding-top"><i class="icon ion-eye"></i> <span translate="">API.DOC.INTEGRATE_RESULT</span></p><div class="padding-left" bind-notifier="{ notifierKey:watchedExpression }"><ng-bind-html ng-bind-html="transferButton.html|trustAsHtml"></ng-bind-html></div></div></div><div class="row responsive-sm"><div class="col gray no-border"><p class="padding-top"><a class="positive" ng-click="transferButton.showParameters=!transferButton.showParameters"><i class="icon ion-wrench"></i> <span translate="">API.DOC.INTEGRATE_PARAMETERS</span> <i class="icon" ng-class="{\'ion-arrow-down-b\': !transferButton.showParameters, \'ion-arrow-up-b\': transferButton.showParameters}"></i></a></p><div ng-if="transferButton.showParameters" class="padding-left"><form id="transferForm" class="stable-bg padding"><p class="padding-top"><i class="icon ion-key"></i> {{\'API.DOC.TRANSFER.PARAM_PUBKEY\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.pubkey" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_PUBKEY_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-pricetag"></i> {{\'API.DOC.TRANSFER.PARAM_AMOUNT\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.amount" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_AMOUNT_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-flag"></i> {{\'API.DOC.TRANSFER.PARAM_COMMENT\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.comment" placeholder="{{\'API.DOC.TRANSFER.PARAM_COMMENT\'|translate}}"></label><p class="padding-top"><i class="icon ion-ios-world-outline"></i> {{\'API.DOC.TRANSFER.PARAM_NAME\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.name" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_NAME\'|translate}}"></label><p class="padding-top"><i class="icon ion-key"></i> {{\'API.DOC.TRANSFER.PARAM_PREFERRED_NODE\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.preferred_node" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_PREFERRED_NODE_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-arrow-return-left"></i> {{\'API.DOC.TRANSFER.PARAM_REDIRECT_URL\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.redirect_url" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_REDIRECT_URL\'|translate}}"></label><p class="padding-top"><i class="icon ion-backspace"></i> {{\'API.DOC.TRANSFER.PARAM_CANCEL_URL\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.cancel_url" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_CANCEL_URL\'|translate}}"></label><p class="padding-top"><a class="positive" ng-click="transferButton.style.enable=!transferButton.style.enable"><i class="icon" ng-class="{\'ion-android-checkbox-outline\': transferButton.style.enable, \'ion-android-checkbox-outline-blank\': !transferButton.style.enable}"></i> <span translate="">API.DOC.TRANSFER.EXAMPLE_BUTTON_DEFAULT_STYLE</span></a></p><div ng-if="transferButton.style.enable"><p class="padding-top"><i class="icon ion-image"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_ICON\' | translate}} :</p><label class="item item-input item-select"><select class="stable-bg dark" ng-model="transferButton.style.icon" style="width: 100%; max-width: 100%" ng-options="l as (l.label | translate) for l in transferButton.icons track by l.filename"></select></label><p class="padding-top"><i class="icon ion-quote"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_HELP\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.text" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-paintbucket"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_BG_COLOR\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.bgColor" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_BG_COLOR_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-paintbrush"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_FONT_COLOR\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.fontColor" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_FONT_COLOR_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-ios-crop-strong"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_WIDTH\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.width" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_WIDTH_HELP\'|translate}}"></label></div></form></div></div></div></div></div>'),e.put("templates/api/home.html",'<ion-view class="circle-bg-dark"><ion-nav-title><span class="title visible-xs visible-sm" translate="">API.HOME.TITLE</span></ion-nav-title><ion-nav-buttons side="right"></ion-nav-buttons><ion-content class="no-padding-xs no-padding-sm positive-900-bg"><br class="hidden-xs"><div class="light text-center"><h4 class="hidden-xs" translate="">API.HOME.MESSAGE</h4><h4 class="visible-xs padding" translate="">API.HOME.MESSAGE_SHORT</h4></div><br class="hidden-xs"><div class="row no-padding-xs"><div class="col"><div class="light-bg no-padding"><ng-include src="\'templates/api/doc.html\'"></ng-include></div></div></div><p class="visible-xs visible-sm light padding-top text-center">{{\'COMMON.APP_NAME\'|translate}} API - <a href="#" ng-click="showAboutModal($event)">v{{$root.config.version}}</a></p></ion-content></ion-view>'),e.put("templates/api/locales_popover.html",'<ion-popover-view class="fit popover-locales" style="height: {{locales.length*48}}px"><ion-content scroll="false"><div class="list item-text-wrap block"><a ng-repeat="l in locales track by l.id" class="item item-icon-left ink" ng-click="changeLanguage(l.id)"><i class="item-image avatar" style="border-radius: 0; background-image: url(https://www.countryflags.io/{{l.country}}/shiny/64.png)"></i> {{l.label | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/api/menu.html",'<ion-nav-bar class="bar-dark" title-align="left"><ion-nav-back-button class="no-text"></ion-nav-back-button><ion-nav-buttons side="left"></ion-nav-buttons><ion-nav-buttons side="right"></ion-nav-buttons></ion-nav-bar><ion-nav-view name="menuContent"></ion-nav-view>'),e.put("templates/api/transfer.html",'<ion-view class="circle-bg-dark"><ion-nav-buttons side="left"><button class="button button-clear visible-xs" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button></ion-nav-buttons><ion-nav-title><span class="title visible-xs" translate="">API.TRANSFER.TITLE_SHORT</span></ion-nav-title><ion-nav-buttons side="right"><button class="button button-positive button-icon button-clear icon ion-android-send visible-xs" ng-click="doLogin()"></button></ion-nav-buttons><ion-content class="no-padding-xs positive-900-bg"><br class="hidden-xs"><div class="row no-padding-xs"><div class="col no-padding-xs"><div class="light-bg"><h2 class="padding-top text-center hidden-xs" translate="">API.TRANSFER.TITLE</h2><div class="no-padding energized-100-bg" ng-if="demo"><div class="item item-icon-left item-text-wrap no-border"><i class="icon ion-information-circled positive"></i><p translate="">API.TRANSFER.DEMO.HELP</p></div></div><ng-include src="\'templates/login/form_login.html\'"></ng-include></div><br class="hidden-xs"><br class="hidden-xs"><div class="list padding no-padding-xs light-bg"><div class="item"><p translate="">API.TRANSFER.SUMMARY</p></div><div class="item item-icon-left-padding item-tx no-border" ng-if="!transferData.amounts" style="min-height: 56px"><h2 translate="">API.TRANSFER.AMOUNT</h2><ion-spinner class="badge item-note" icon="android" ng-show="loading"></ion-spinner><div class="badge badge-calm ng-hide" ng-show="!loading" ng-bind-html="transferData.amount|formatAmount:{useRelative: false, currency: currency.name}"></div><div class="badge badge-secondary ng-hide" ng-show="!loading" ng-bind-html="transferData.amount|formatAmount:{useRelative: true, currency: currency.name, currentUD: currency.currentUD}"></div></div><label ng-if="transferData.amounts" style="min-height: 58px" class="item item-icon-left-padding item-input item-select item-tx no-border" ng-class="{ \'item-input-error\': form.$submitted && !transferData.amount}"><div class="input-label"><span translate="">API.TRANSFER.AMOUNT</span></div><select ng-model="transferData.amount" required="true" ng-options="(amount |formatAmount:{useRelative: false, currency: currency.name}) for amount in transferData.amounts"></select><span class="badge badge-secondary ng-hide" ng-show="transferData.amount" ng-bind-html="transferData.amount|formatAmount:{useRelative: true, currency: currency.name, currentUD: currency.currentUD}"></span></label><div class="form-errors" ng-if="form.$submitted && !transferData.amount"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-icon-left-padding"><h2 translate="">API.TRANSFER.NAME</h2><div class="badge item-note">{{transferData.name}}</div></div><div class="item item-icon-left-padding item-text-wrap"><h2 translate="">API.TRANSFER.PUBKEY</h2><div class="badge"><span class="hidden-xs"><br class="visible-sm visible-md"><i class="icon ion-key"></i>{{transferData.pubkey}}</span> <span class="visible-xs" copy-on-click="{{transferData.pubkey}}"><br class="visible-xs"><i class="icon ion-key"></i> {{transferData.pubkey|formatPubkey}}</span></div></div><div class="item item-icon-left-padding"><h2 translate="">API.TRANSFER.COMMENT</h2><div class="badge item-note"><span class="hidden-xs"><br class="visible-sm visible-md">{{::transferData.comment}}</span> <span class="visible-xs" copy-on-click="{{transferData.comment}}"><br>{{::transferData.comment}}</span></div></div><div class="item item-icon-left-padding" ng-hide="error"><h2 translate="">API.TRANSFER.NODE</h2><div class="badge item-note" ng-if="!loading"><br class="visible-sm visible-md"><i class="icon ion-locked" ng-if="node.useSsl"></i>&nbsp;{{node.server}}</div></div><div class="center padding animate-fade-in animate-show-hide ng-hide" ng-show="!loading && error"><div class="card card-item padding"><p class="item-content item-text-wrap"><i class="icon ion-android-alert assertive"></i> <span class="dark" trust-as-html="\'API.COMMON.CONNECTION_ERROR\'|translate:node"></span></p><button type="button" class="button button-positive icon icon-left ion-refresh ink" ng-click="start()">{{\'COMMON.BTN_REFRESH\'|translate}}</button></div></div><div class="padding-bottom visible-xs">&nbsp;</div></div></div></div><p class="visible-xs visible-sm light padding-top text-center">{{\'COMMON.APP_NAME\'|translate}} - <a href="#" ng-click="showAboutModal($event)">v{{$root.config.version}}</a></p></ion-content></ion-view>'),
+e.put("templates/blockchain/item_block.html",'<a name="block-{{:rebind:block.number}}"></a><ion-item id="block-{{:rebind:block.number}}" class="item item-icon-left item-block {{::ionItemClass}}" ng-class="{\'ink\': !block.empty||!block.compacted, \'item-block-empty\': block.empty, \'compacted\': block.compacted && compactMode}" ng-click="selectBlock(block)"><i class="icon ion-cube stable" ng-if=":rebind:(!block.empty && !block.avatar)"></i> <i class="avatar" ng-if=":rebind:!block.empty && block.avatar" style="background-image: url(\'{{:rebind:block.avatar.src}}\')"></i><div class="row no-padding" ng-if=":rebind:!block.compacted || !compactMode"><div class="col" style="min-width: 110px; max-width: 130px"><h4 ng-class="{\'gray\': block.compacted, \'dark\': !block.compacted}"><i class="ion-clock"></i> {{:rebind:block.medianTime|medianDate}}</h4><h4 ng-if="!block.empty"><ng-if ng-if=":rebind:block.joinersCount||(block.excludedCount-block.revokedCount)"><i class="dark ion-person"></i> <span class="dark" ng-if=":rebind:block.joinersCount">+{{:rebind:block.joinersCount}}</span> <span class="dark" ng-if=":rebind:block.excludedCount">-{{:rebind:block.excludedCount-block.revokedCount}}</span></ng-if><span class="dark" ng-if=":rebind:block.revokedCount" class="assertive"><i class="ion-minus-circled"></i> {{:rebind:block.revokedCount}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.activesCount" class="gray"><i class="gray ion-refresh"></i> {{:rebind:block.activesCount}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.certificationsCount"><i class="ion-ribbon-a"></i> {{:rebind:block.certificationsCount}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.dividend" class="gray"><i class="gray ion-arrow-up-c"></i> {{\'COMMON.UD\'|translate}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.transactionsCount"><i class="ion-card">{{:rebind:block.transactionsCount}}</i></span></h4></div><div class="col positive hidden-md"><h4><i class="ion-person"></i> {{:rebind:block.name||block.uid}}</h4></div><div class="col col-20"><span class="badge" ng-class="{\'badge-balanced\': !$index , \'badge-calm\': $index && !block.compacted && !block.empty}">{{:rebind:block.number|formatInteger}}</span></div></div></ion-item>'),e.put("templates/blockchain/item_block_empty_lg.html",'<a name="block-{{::block.number}}"></a><div id="block-{{::block.number}}" class="item item-block item-icon-left item-block-empty" ng-class="{\'compacted\': block.compacted && compactMode}" ng-click="selectBlock(block)"><div class="row no-padding" ng-if=":rebind:!block.compacted || !compactMode"><div class="col"><h3 class="gray"><i class="ion-clock"></i> {{:rebind:block.medianTime|medianDate}}</h3></div><div class="col"><h3><span class="gray" ng-if=":rebind:expertMode"><i class="ion-key"></i> {{:rebind:block.issuer|formatPubkey}} </span><span class="positive"><i class="ion-person"></i> {{:rebind:block.name||block.uid}}</span></h3></div><div class="col col-20"></div><div class="col col-20"><span class="badge" ng-class="{\'badge-balanced\': !$index && search.type==\'last\'}">{{block.number|formatInteger}}</span></div></div></div>'),e.put("templates/blockchain/item_block_lg.html",'<ion-item id="block-{{::block.number}}" class="item item-block item-icon-left ink {{::ionItemClass}}" ng-class="{{::ionItemClass}}" ng-click="selectBlock(block)"><i class="icon ion-cube stable" ng-if=":rebind:!block.avatar"></i> <i class="avatar" ng-if=":rebind:!block.empty && block.avatar" style="background-image: url(\'{{:rebind:block.avatar.src}}\')"></i><div class="row no-padding"><div class="col"><h3 class="dark"><i class="ion-clock"></i> {{:rebind:block.medianTime|medianDate}}</h3><h4 class="gray">{{:rebind:\'BLOCKCHAIN.HASH\'|translate}} {{:rebind:block.hash|formatHash}}</h4></div><div class="col"><h3><span class="gray" ng-if=":rebind:expertMode"><i class="ion-key"></i> {{:rebind:block.issuer|formatPubkey}} </span><span class="positive"><i class="ion-person"></i> {{:rebind:block.name||block.uid}}</span></h3></div><div class="col col-20"><small><ng-if ng-if=":rebind:block.joinersCount||(block.excludedCount-block.revokedCount)"><i class="ion-person"></i> <span ng-if=":rebind:block.joinersCount">+{{:rebind:block.joinersCount}}</span> <span ng-if=":rebind:block.excludedCount">-{{:rebind:block.excludedCount-block.revokedCount}}</span> &nbsp;&nbsp;</ng-if><span ng-if=":rebind:block.revokedCount" class="assertive"><i class="ion-minus-circled"></i> -{{:rebind:block.revokedCount}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.activesCount"><i class="ion-refresh"></i> {{:rebind:block.activesCount}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.certificationsCount"><i class="ion-ribbon-a"></i> {{:rebind:block.certificationsCount}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.dividend"><i class="gray ion-arrow-up-c"></i> {{:rebind:\'COMMON.UD\'|translate}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.transactionsCount"><i class="ion-card">{{:rebind:block.transactionsCount}}</i>&nbsp;&nbsp;</span></small></div><div class="col col-20"><span class="badge" ng-class="{\'badge-balanced\': !$index && search.type==\'last\', \'badge-calm\': ($index  || search.type!=\'last\')&& !block.compacted && !block.empty}">{{:rebind:block.number}}</span></div></div></ion-item>'),e.put("templates/blockchain/items_blocks.html",'<div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ion-list class="animate-ripple padding padding-xs"><div class="padding gray" ng-if="!search.loading && !search.results.length" translate>BLOCKCHAIN.LOOKUP.NO_BLOCK</div><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="\'templates/blockchain/item_block.html\'"></ng-repeat></ion-list><ion-infinite-scroll ng-if="search.hasMore" icon="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("templates/blockchain/link_identity.html",'<a ui-sref="app.wot_identity({pubkey: identity.pubkey, uid: identity.uid})"><span class="positive" ng-if="identity.uid"><i class="icon ion-person"></i> {{::identity.uid}}&nbsp;</span> <span class="gray" ng-class="{\'hidden-xs hidden-sm\': identity.uid}"><i class="icon ion-key"></i>&nbsp;{{::identity.pubkey|formatPubkey}}</span></a>'),e.put("templates/blockchain/list_blocks.html",'<div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ion-list class="padding padding-xs list-blocks {{::motion.ionListClass}}"><div class="padding gray" ng-if="!search.loading && !search.results.length" translate>BLOCKCHAIN.LOOKUP.NO_BLOCK</div><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="\'templates/blockchain/item_block.html\'"></ng-repeat></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("templates/blockchain/list_blocks_lg.html",'<div class="padding padding-xs" style="display: block; height: 100px"><h4 translate>BLOCKCHAIN.LOOKUP.LAST_BLOCKS</h4><div class="pull-right"><a class="button button-text button-small ink" ng-class="{\'button-text-positive\': compactMode, \'button-text-stable\': !compactMode}" ng-click="toggleCompactMode()"><i class="icon ion-navicon"></i> <b class="ion-arrow-down-b" style="position: absolute; top: -2px; left: 4px; font-size: 8px"></b> <b class="ion-arrow-up-b" style="position: absolute; top: 10px; left: 4px; font-size: 8px"></b> <span>{{\'BLOCKCHAIN.LOOKUP.BTN_COMPACT\'|translate}}</span></a></div></div><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ion-list class="padding padding-xs list-blocks {{::motion.ionListClass}}"><div class="padding gray" ng-if="!search.loading && !search.results.length" translate>BLOCKCHAIN.LOOKUP.NO_BLOCK</div><ng-repeat ng-repeat="block in search.results track by block.id" ng-include="!block.empty ? \'templates/blockchain/item_block_lg.html\' : \'templates/blockchain/item_block_empty_lg.html\'"></ng-repeat></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("templates/blockchain/lookup.html",'<ion-view><ion-nav-title><span translate>BLOCKCHAIN.LOOKUP.TITLE</span></ion-nav-title><ion-content class="padding no-padding-xs" scroll="true"><ng-include src="\'templates/blockchain/list_blocks.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/blockchain/lookup_lg.html",'<ion-view><ion-nav-title><span translate>BLOCKCHAIN.LOOKUP.TITLE</span></ion-nav-title><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'templates/blockchain/list_blocks_lg.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/blockchain/unlock_condition_popover.html",'<ion-popover-view class="fit"><ion-header-bar><h1 class="title" translate>BLOCKCHAIN.VIEW.TX_OUTPUT_UNLOCK_CONDITIONS</h1></ion-header-bar><ion-content scroll="true"><div class="row" ng-repeat="condition in popoverData.unlockConditions track by $index" ng-style="::condition.style"><span class="gray" ng-if="::condition.operator">{{::\'BLOCKCHAIN.VIEW.TX_OUTPUT_OPERATOR.\'+condition.operator|translate}}&nbsp;</span><div ng-if="::condition.type==\'SIG\'"><i class="icon ion-key dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.SIG\' | translate"></span> <a ng-click="goState(\'app.wot_identity\', {pubkey:condition.value})" style="text-decoration: none" class="positive">{{condition.value|formatPubkey}}</a></div><div ng-if="::condition.type==\'XHX\'"><i class="icon ion-lock-combination dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.XHX\' | translate"></span> <a copy-on-click="{{::condition.value}}" class="positive">{{::condition.value|formatPubkey}}...</a></div><div ng-if="condition.type==\'CSV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CSV\' | translate"></span> {{::condition.value|formatDuration}}</div><div ng-if="condition.type==\'CLTV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CLTV\' | translate"></span> {{::condition.value|medianDate}}</div></div></ion-content></ion-popover-view>'),e.put("templates/blockchain/view_block.html",'<ion-view><ion-nav-title><span class="title visible-xs visible-sm" ng-if="number==\'current\'">{{\'BLOCKCHAIN.VIEW.TITLE_CURRENT\'|translate}}</span> <span class="title visible-xs visible-sm" ng-if="number!=\'current\'">{{\'BLOCKCHAIN.VIEW.TITLE\'|translate:formData}}</span></ion-nav-title><ion-content class="no-padding-xs no-padding-sm" scroll="true"><div class="row no-padding"><div class="col no-padding"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list item-text-wrap no-padding-xs" ng-if="!loading"><div class="item item-text-wrap"><h3><span class="dark"><i class="icon ion-clock"></i> {{formData.medianTime | medianFromNowAndDate}}</span></h3><h3><span class="dark"><i class="icon ion-lock-combination"></i> {{\'BLOCKCHAIN.VIEW.COMPUTED_BY\'|translate}} </span><a class="positive" ui-sref="app.wot_identity({pubkey:issuer.pubkey, uid: issuer.uid})"><i class="icon ion-person positive"></i> {{issuer.name||issuer.uid}} <span class="gray" ng-if="issuer.name">({{issuer.uid}})</span></a></h3><h3><a ng-click="openRawBlock($event)"><i class="icon ion-share"></i> {{\'BLOCKCHAIN.VIEW.SHOW_RAW\'|translate}}</a></h3></div><span class="item item-divider">{{\'BLOCKCHAIN.VIEW.TECHNICAL_DIVIDER\' | translate}}</span><ion-item class="item-icon-left item-text-wrap" ng-if="!compactMode || $root.settings.expertMode"><i class="icon ion-gear-b"></i> {{\'BLOCKCHAIN.VIEW.VERSION\'|translate}} <span class="badge badge-stable">{{::formData.version}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="!compactMode || $root.settings.expertMode" copy-on-click="{{::formData.powMin}}"><i class="icon ion-lock-combination"></i> {{\'BLOCKCHAIN.VIEW.POW_MIN\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.POW_MIN_HELP\'|translate}}</h4><span class="badge badge-stable">{{::formData.powMin}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" copy-on-click="{{::formData.hash}}"><i class="icon ion-pound"></i> {{\'BLOCKCHAIN.VIEW.HASH\'|translate}}<h5 class="visible-xs visible-sm dark">{{::formData.hash}}</h5></ion-item><span class="item item-divider">{{\'BLOCKCHAIN.VIEW.DATA_DIVIDER\' | translate}}</span><ion-item ng-if="compactMode && formData.empty" class="item-icon-left item-text-wrap">{{\'BLOCKCHAIN.VIEW.EMPTY\'|translate}}</ion-item><ion-item ng-if="!compactMode || formData.dividend" class="item-icon-left item-text-wrap" copy-on-click="{{::formData.dividend/100}}"><i class="icon ion-arrow-up-c"></i><div class="col col-60">{{\'COMMON.UNIVERSAL_DIVIDEND\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.UNIVERSAL_DIVIDEND_HELP\'|translate: {membersCount: formData.membersCount} }}</h4></div><span class="badge badge-balanced" ng-if="formData.dividend">+1 <span ng-bind-html="formData.currency|currencySymbol: {useRelative: true} "></span> / {{\'COMMON.MEMBER\'|translate|lowercase}} </span><span class="badge badge-stable" ng-if="!formData.dividend">0</span> <span class="badge badge-secondary" ng-if="formData.dividend">+ {{formData.dividend| formatAmount: {currency: formData.currency, useRelative: false} }} / {{\'COMMON.MEMBER\'|translate|lowercase}}</span></ion-item><ng-if ng-if="!compactMode || formData.identitiesCount"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-clock" style="position: absolute; top: 16px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.IDENTITIES_COUNT\'|translate}} <span class="badge badge-balanced" ng-if="formData.identitiesCount">+{{::formData.identitiesCount}}</span> <span class="badge badge-stable" ng-if="!formData.identitiesCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.identitiesCount"><ion-item ng-repeat="identity in ::formData.identities" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.joinersCount"><ion-item class="item-icon-left"><i class="icon ion-person-add"></i> {{\'BLOCKCHAIN.VIEW.JOINERS_COUNT\'|translate}} <span class="badge badge-balanced" ng-if="formData.joinersCount">+{{::formData.joinersCount}}</span> <span class="badge badge-stable" ng-if="!formData.joinersCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.joinersCount"><ion-item ng-repeat="identity in ::formData.joiners" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.activesCount"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-refresh" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.ACTIVES_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.ACTIVES_COUNT_HELP\'|translate}}</h4><span class="badge badge-balanced" ng-if="formData.activesCount">{{::formData.activesCount}}</span> <span class="badge badge-stable" ng-if="!formData.activesCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.activesCount"><ion-item ng-repeat="identity in ::formData.actives" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || (formData.excludedCount-formData.revokedCount)"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-close dark" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.EXCLUDED_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.EXCLUDED_COUNT_HELP\'|translate}}</h4><span class="badge badge-assertive" ng-if="formData.excludedCount-formData.revokedCount">-{{::formData.excludedCount-formData.revokedCount}}</span> <span class="badge badge-stable" ng-if="!(formData.excludedCount-formData.revokedCount)">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.excludedCount"><ion-item ng-repeat="identity in ::formData.excluded" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.leaversCount"><ion-item class="item-icon-left" ng-if="!compactMode || formData.leaversCount"><i class="icon ion-person"></i> <b class="ion-minus" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.LEAVERS_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.LEAVERS_COUNT_HELP\'|translate}}</h4><span class="badge badge-assertive" ng-if="formData.leaversCount">-{{::formData.leaversCount}}</span> <span class="badge badge-stable" ng-if="!formData.leaversCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.leaversCount"><ion-item ng-repeat="identity in ::formData.leavers" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.revokedCount"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-minus-circled assertive" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.REVOKED_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.REVOKED_COUNT_HELP\'|translate}}</h4><span class="badge badge-balanced" ng-if="formData.revokedCount">-{{::formData.revokedCount}}</span> <span class="badge badge-stable" ng-if="!formData.revokedCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.revokedCount"><ion-item ng-repeat="identity in ::formData.revoked" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.certificationsCount"><ion-item class="item-icon-left"><i class="icon ion-ribbon-a"></i> {{\'BLOCKCHAIN.VIEW.CERT_COUNT\'|translate}} <span class="badge badge-stable" ng-class="{\'badge-positive\':formData.certificationsCount}">{{::formData.certificationsCount}}</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding no-padding-xs" ng-if="formData.certificationsCount"><div ng-repeat="(key, certs) in formData.certifications" class="item item-border-large item-small-height"><div class="row no-padding"><div class="col col-center no-padding"><ng-repeat ng-repeat="cert in certs"><ng-include src="\'templates/blockchain/link_identity.html\'" onload="identity=cert.from"></ng-include><br></ng-repeat></div><div class="col col-10 col-center gray text-center no-padding"><h2><i class="icon ion-arrow-right-a"></i></h2></div><div class="col col-40 col-center no-padding" ng-include="\'templates/blockchain/link_identity.html\'" onload="identity=certs[0].to"></div></div></div></div></ng-if><ng-if ng-if="!compactMode || formData.transactionsCount"><ion-item class="item-icon-left"><i class="icon ion-card"></i> {{\'BLOCKCHAIN.VIEW.TX_COUNT\'|translate}} <span class="badge badge-stable" ng-class="{\'badge-positive\':formData.transactionsCount}">{{::formData.transactionsCount}}</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding no-padding-xs" ng-if="formData.transactionsCount"><div ng-repeat="tx in ::formData.transactions" class="item item-small-height item-border-large"><div class="row no-padding" style="padding-top: 3px"><div class="col col-40 col-center no-padding list no-margin"><div ng-repeat="identity in ::tx.issuers" class="item no-padding item-small-height"><ng-include src="\'templates/blockchain/link_identity.html\'"></ng-include></div></div><div class="col col-10 col-center gray text-center no-padding"><h2><i class="icon ion-arrow-right-a"></i></h2></div><div class="col no-padding padding-right no-padding-xs col-text-wrap list no-margin"><span class="gray" ng-if="tx.toHimself" translate="">BLOCKCHAIN.VIEW.TX_TO_HIMSELF</span><div ng-repeat="output in ::tx.outputs" class="item no-padding item-small-height"><ng-include ng-if="::output.pubkey" src="\'templates/blockchain/link_identity.html\'" onload="identity=output"></ng-include><span ng-if="::!output.pubkey && output.unlockFunctions"><i class="icon ion-locked"></i> (<a ng-click="showUnlockConditionPopover(output, $event)"> <i ng-repeat="unlockFunction in ::output.unlockFunctions" ng-class="::{\'ion-key\': (unlockFunction==\'SIG\'), \'ion-clock\': (unlockFunction==\'CSV\' || unlockFunction==\'CLTV\'), \'ion-lock-combination\': (unlockFunction==\'XHX\') }" class="icon"></i> </a>) </span><span class="badge badge-balanced" ng-bind-html="::output.amount | formatAmount:{currency: formData.currency, useRelative: false} "></span></div></div></div></div></div></ng-if></div></div></div></ion-content></ion-view>'),e.put("templates/common/badge_certification_count.html",'<span ng-attr-id="{{$ctrl.csId}}" class="badge badge-balanced" ng-class="{\'badge-energized\': $ctrl.requirements.willNeedCertificationCount || ($ctrl.requirements.needCertificationCount + $ctrl.requirements.pendingCertificationCount >= $ctrl.parameters.sigQty),\n               \'badge-assertive\': ($ctrl.requirements.needCertificationCount + $ctrl.requirements.pendingCertificationCount < $ctrl.parameters.sigQty)}"><span ng-if="$ctrl.requirements.certificationCount || !$ctrl.requirements.pendingCertificationCount"><i ng-if="!$ctrl.requirements.needCertificationCount" class="ion-android-done"></i> {{$ctrl.requirements.certificationCount}} <i ng-if="$ctrl.requirements.willNeedCertificationCount" class="ion-android-warning"></i> </span><span ng-if="$ctrl.requirements.pendingCertificationCount"><ng-if ng-if="$ctrl.requirements.certificationCount">+</ng-if><i class="ion-clock"></i> {{$ctrl.requirements.pendingCertificationCount}}</span></span>'),e.put("templates/common/badge_given_certification_count.html",'<div ng-attr-id="{{$ctrl.csId}}" class="badge badge-calm" ng-class="{\'badge-assertive\': $ctrl.identity.given_cert.length >= $ctrl.parameters.sigStock}"><span><i ng-if="$ctrl.identity.given_cert.length" class="ion-android-done"></i> {{$ctrl.identity.given_cert.length}} </span><span ng-if="$ctrl.identity.given_cert_pending.length">(<ng-if ng-if="$ctrl.identity.given_cert.length">+</ng-if><i class="ion-clock"></i> {{$ctrl.identity.given_cert_pending.length}}) </span><small>/ {{$ctrl.parameters.sigStock}}</small></div>'),e.put("templates/common/form_error_messages.html",'<div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.FIELD_ACCENT"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div>'),e.put("templates/common/popover_copy.html",'<ion-popover-view class="popover-copy" style="height: {{(!rows || rows &lt;= 1) ? 50 : rows*22}}px"><ion-content scroll="false"><div class="list"><div class="item item-input"><input type="text" ng-if="!rows || rows &lt;= 1" ng-model="value"><textarea ng-if="rows && rows > 1" ng-model="value" rows="{{rows}}" cols="10">\n      </textarea></div></div></ion-content></ion-popover-view>'),e.put("templates/common/popover_helptip.html",'<ion-popover-view class="popover-helptip"><ion-content scroll="false" class="list"><p><i ng-if="icon.position && !icon.position.startsWith(\'bottom-\')" class="{{icon.class}} icon-{{icon.position}} hidden-xs" style="{{icon.style}}"></i><a ng-click="closePopover()" class="pull-right button-close" ng-class="{\'pull-left\': icon.position === \'right\', \'pull-right\': icon.position !== \'right\'}"><i class="ion-close"></i> </a><span>&nbsp;</span></p><p class="padding light"><ng-bind-html ng-bind-html="content | translate:contentParams"></ng-bind-html><ng-bind-html ng-bind-html="trustContent"></ng-bind-html></p><div class="text-center" ng-if="!tour"><button class="button button-small button-stable" ng-if="!hasNext" ng-click="closePopover(true)" translate>COMMON.BTN_UNDERSTOOD</button> <button class="button button-small button-stable" id="helptip-btn-ok" ng-if="hasNext" ng-click="closePopover(false)" translate>COMMON.BTN_UNDERSTOOD</button> <button id="helptip-btn-ok" class="button button-small button-positive icon-right ink" ng-if="hasNext" ng-click="closePopover(true)"><i class="icon ion-chevron-right"></i></button></div><div class="text-center" ng-if="tour"><button class="button button-small button-positive" id="helptip-btn-ok" ng-if="!hasNext" ng-click="closePopover(false)" translate>COMMON.BTN_CLOSE</button> <button id="helptip-btn-ok" class="button button-small button-positive icon-right ink" ng-if="hasNext" ng-click="closePopover(true)">{{\'COMMON.BTN_CONTINUE\'|translate}} <i class="icon ion-chevron-right"></i></button></div><p><i ng-if="icon.position && icon.position.startsWith(\'bottom-\')" class="{{icon.class}} icon-{{icon.position}} hidden-xs"></i></p></ion-content></ion-popover-view>'),e.put("templates/common/popover_profile.html",""),e.put("templates/common/popover_share.html",'<ion-popover-view class="popover-share"><ion-content scroll="false"><div class="bar bar-header"><h1 class="title">{{titleKey|translate:titleValues}}</h1><span class="gray pull-right">{{time|formatDate}}</span></div><div class="list no-margin no-padding has-header has-footer block"><div class="item item-input"><input type="text" ng-model="value"></div></div><div class="bar bar-footer"><div class="button-bar"><a class="button button-icon positive icon ion-social-facebook" href="https://www.facebook.com/sharer/sharer.php?u={{postUrl|formatEncodeURI}}&amp;title={{postMessage|formatEncodeURI}}" onclick="window.open(this.href, \'facebook-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_FACEBOOK\'|translate}}"></a> <a class="button button-icon positive icon ion-social-twitter" href="https://twitter.com/intent/tweet?url={{postUrl|formatEncodeURI}}&amp;text={{postMessage|formatEncodeURI}}" onclick="window.open(this.href, \'twitter-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_TWITTER\'|translate}}"></a> <a class="button button-icon positive icon ion-social-googleplus" href="https://plus.google.com/share?url={{postUrl|formatEncodeURI}}" onclick="window.open(this.href, \'google-plus-share\', \'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=296,width=580\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_GOOGLEPLUS\'|translate}}"></a> <a class="button button-icon positive icon ion-social-diaspora" href="https://sharetodiaspora.github.io/?title={{postMessage|formatEncodeURI}}&amp;url={{postUrl|formatEncodeURI}}" onclick="window.open(this.href, \'diaspora-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_DIASPORA\'|translate}}"></a> <a class="button-close" title="{{\'COMMON.BTN_CLOSE\'|translate}}" ng-click="closePopover()"><i class="icon ion-close"></i></a></div></div></ion-content></ion-popover-view>'),e.put("templates/common/popup_password.html",'<form name="pwdForm" ng-submit="submit($event)"><div class="list" ng-init="setForm(pwdForm)"><label class="item item-input" ng-class="{\'item-input-error\': pwdForm.$submitted && pwdForm.password.$invalid}"><input name="password" type="password" placeholder="{{\'ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.PASSWORD_HELP\' | translate}}" ng-model="formData.password" ng-minlength="1" required></label><div class="form-errors" ng-if="pwdForm.$submitted && pwdForm.pseudo.$error" ng-messages="pwdForm.password.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="form-errors" ng-if="error"><div class="form-error">{{error|translate}}</div></div></div></form>'),e.put("templates/common/view_passcode.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm" translate>COMMON.PASSCODE.TITLE</span></ion-nav-title><ion-content scroll="false"></ion-content></ion-view>'),e.put("templates/currency/items_network.html",'<ion-item id="helptip-network-blockchain" class="item-icon-left item-text-wrap"><i class="icon ion-clock"></i> <span class="col col-60" translate="">CURRENCY.VIEW.MEDIAN_TIME</span> <span class="badge badge-stable">{{formData.medianTime | medianDate}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-lock-combination"></i> <span class="col col-75" translate="">CURRENCY.VIEW.POW_MIN</span> <span class="badge badge-stable">{{formData.difficulty | formatInteger}}</span></ion-item><cs-extension-point name="network-actual"></cs-extension-point><div class="item item-divider"><span translate="">CURRENCY.VIEW.NETWORK_RULES_DIVIDER</span></div><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-clock" style="position: absolute; font-size: 20px; left: 16px; margin-top: 11px"></i> <b class="icon-secondary ion-lock-combination" style="left: 14px; margin-top: -4px"></b> <b class="icon-secondary ion-arrow-right-c" style="font-size: 12px; left: 28px; margin-top: -4px"></b> <b class="icon-secondary ion-lock-combination" style="left: 38px; margin-top: -4px"></b> <span class="col col-75" translate="">CURRENCY.VIEW.AVG_GEN_TIME</span> <span class="badge badge-stable">{{formData.avgGenTime | formatDuration}}</span></ion-item><div id="helptip-network-peers" class="item item-divider"><div class="pull-left"><span ng-if="search.type==\'member\'" translate="">PEER.MEMBERS</span> <span ng-if="search.type==\'mirror\'" translate="">PEER.MIRRORS</span> <span ng-if="search.type==\'offline\'" translate="">PEER.OFFLINE</span> <span ng-if="!search.type" translate="">PEER.PEERS</span> <span ng-if="!search.loading">({{search.results.length}})</span></div><div class="buttons pull-right"><ion-spinner class="icon" icon="android" ng-if="search.loading"></ion-spinner></div></div><ng-include src="\'templates/network/items_peers.html\'"></ng-include>'),e.put("templates/currency/items_parameters.html",'<div bind-notifier="{ rebind:formData.useRelative }"><ion-item class="item-icon-left item-text-wrap visible-xs visible-sm"><i class="icon ion-android-bookmark"></i> <span translate>CURRENCY.VIEW.CURRENCY_NAME</span><div class="item-note dark" ng-if="!loading">{{formData.currency}} (<span ng-bind-html=":rebind:formData.currency | currencySymbol:formData.useRelative"></span>)</div></ion-item><ion-item id="helptip-currency-mass-member" class="item-icon-left item-text-wrap"><i class="icon ion-pie-graph"></i><div class="col col-60"><span translate>CURRENCY.VIEW.SHARE</span> <span class="gray">(M<sub>t</sub>/N<sub>t</sub>)</span></div><span id="helptip-currency-mass-member-unit" ng-if="!loading" class="badge badge-calm" ng-bind-html=":rebind:formData.MoverN | formatAmount:{currency: formData.currency, useRelative: formData.useRelative, currentUD: formData.currentUD}"></span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-record"></i><div class="col col-60"><span translate>CURRENCY.VIEW.MASS</span> <span class="gray">(M<sub>t</sub>)</span></div><span class="badge badge-energized" ng-if="!loading" ng-bind-html=":rebind:formData.M | formatAmount:{currency: formData.currency, useRelative: formData.useRelative, currentUD: formData.currentUD}"></span></ion-item><cs-extension-point name="parameters-actual"></cs-extension-point><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-arrow-graph-up-right"></i><div class="col col-60"><span translate>CURRENCY.VIEW.C_ACTUAL</span> <span class="gray">(c<sub>{{\'CURRENCY.VIEW.CURRENT\'|translate}}</sub>)</span></div><span class="badge badge-stable">{{formData.cactual | formatNumeral: \'0,0.00\'}} %&nbsp;/&nbsp;{{formData.dt | formatPeriod}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-load-c"></i><div class="col col-60"><span translate>CURRENCY.VIEW.UD</span> <span class="gray">({{\'COMMON.UD\'|translate}}<sub>t</sub>)</span></div><div class="badge badge-royal" ng-if="!loading"><span ng-if="formData.useRelative">1<ng-bind-html ng-bind-html=":rebind:formData.currency| currencySymbol:true"></ng-bind-html></span><span ng-if="!formData.useRelative" ng-bind-html=":rebind:formData.currentUD | formatAmount:{currency: formData.currency, useRelative: formData.useRelative, currentUD: formData.currentUD}"></span> &nbsp;/&nbsp;{{formData.dt | formatPeriod}}</div></ion-item><div class="item item-toggle dark"><div class="item-label text-right gray" translate>COMMON.BTN_RELATIVE_UNIT</div><label class="toggle toggle-royal" id="helptip-currency-change-unit"><input type="checkbox" ng-model="formData.useRelative"><div class="track"><div class="handle"></div></div></label></div><a name="helptip-currency-rules-anchor"></a><div class="item item-divider" id="helptip-currency-rules"><span translate>CURRENCY.VIEW.MONEY_RULES_DIVIDER</span></div><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-arrow-graph-up-right"></i><div class="col col-60"><span translate>CURRENCY.VIEW.C_RULE</span> <span class="gray">(c)</span></div><span class="item-note dark" ng-if="!loading && !formData.udReevalTime0">{{formData.c*100 | formatNumeral: \'0,0.00\'}} %&nbsp;/&nbsp;{{formData.dt | formatPeriod}}</span><span class="badge badge-stable" ng-if="!loading && formData.udReevalTime0">{{formData.c*100 | formatNumeral: \'0,0.00\'}} %&nbsp;/&nbsp;{{formData.dtReeval | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.udReevalTime0 && formData.allRules"><i class="icon ion-load-c"></i> <b class="ion-clock icon-secondary" style="font-size: 18px; left: 36px; top: -12px"></b><div class="col col-60"><span translate>CURRENCY.VIEW.DT_REEVAL</span> <span class="gray">(dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)</span></div><span class="item-note dark" ng-if="!loading" translate="CURRENCY.VIEW.DT_REEVAL_VALUE" translate-values="formData"></span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.udReevalTime0 && formData.allRules"><i class="icon ion-load-c"></i> <b class="ion-calendar icon-secondary" style="font-size: 18px; left: 36px; top: -12px"></b><div class="col col-60"><span translate>CURRENCY.VIEW.UD_REEVAL_TIME0</span> <span class="gray">(t0<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)</span></div><span class="item-note dark" ng-if="!loading">{{formData.udReevalTime0|medianDate}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allRules"><i class="icon ion-load-c"></i> <b class="ion-calculator icon-secondary" style="font-size: 18px; left: 36px; top: -12px"></b><div class="col col-60"><span translate>CURRENCY.VIEW.UD_RULE</span> <span class="gray" ng-if="formData.udReevalTime0">- {{\'COMMON.UD\'|translate}}<sub>{{formData.dt|formatPeriod}}</sub>(t<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)</span></div><span class="item-note dark" ng-if="!loading && !formData.udReevalTime0">{{\'COMMON.UD\'|translate}}<sub>t-1</sub> + c<sup>2</sup> * M<sub>t-1</sub>/N<sub>t-1</sub></span><span class="item-note dark" ng-if="!loading && formData.udReevalTime0">{{\'COMMON.UD\'|translate}}<sub>{{formData.dt|formatPeriod}}</sub>(t<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub> - dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)+ c<sup>2</sup> * (M/N)(t<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub> - dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>) / dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub></span></ion-item><div class="item item-toggle dark"><div class="item-label text-right gray" translate>CURRENCY.VIEW.DISPLAY_ALL_RULES</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.allRules"><div class="track"><div class="handle"></div></div></label></div></div>'),e.put("templates/currency/items_wot.html",'<div bind-notifier="{ rebind:formData.useRelative }"><a name="helptip-currency-newcomers-anchor"></a><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-person-stalker"></i><div class="col col-60"><span translate>CURRENCY.VIEW.MEMBERS</span> <span class="gray">(N<sub>{{\'CURRENCY.VIEW.CURRENT\'|translate}}</sub>)</span></div><span class="badge badge-calm" ng-if="!loading">{{formData.N | formatInteger}}</span></ion-item><ion-item id="helptip-currency-newcomers" class="item-icon-left item-text-wrap"><i class="icon ion-arrow-graph-up-right"></i><div class="col col-75"><span translate="CURRENCY.VIEW.MEMBERS_VARIATION" translate-values="{duration: formData.durationFromLastUD}"></span> <span class="gray">(&#916;N)</span></div><div class="badge" ng-if="!loading" ng-class="{\'badge-balanced\': (formData.N>formData.Nprev), \'badge-stable\': (formData.N==formData.Nprev) ,\'badge-assertive\': (formData.Nprev>formData.N)}">{{formData.N > formData.Nprev ? \'+\' : \'\'}}{{formData.N - formData.Nprev}}</div></ion-item><cs-extension-point name="wot-actual"></cs-extension-point><div class="item item-divider"><span translate>CURRENCY.VIEW.WOT_RULES_DIVIDER</span></div><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-ribbon-b"></i> <span class="col col-75" translate>CURRENCY.VIEW.SIG_QTY_RULE</span> <span class="badge badge-balanced" ng-if="!loading">{{formData.sigQty}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-person"></i> <b class="ion-clock icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.MS_WINDOW</span> <span class="badge badge-assertive" ng-if="!loading">{{formData.msWindow | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-person"></i> <b class="ion-calendar icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.MS_VALIDITY</span> <span class="badge badge-balanced" ng-if="!loading">{{formData.msValidity | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-clock icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.SIG_WINDOW</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sigWindow | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-calendar icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.SIG_VALIDITY</span> <span class="badge badge-balanced" ng-if="!loading">{{formData.sigValidity | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-a"></i> <span class="col col-75" translate>CURRENCY.VIEW.SIG_STOCK</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sigStock}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-clock" style="position: absolute; font-size: 20px; left: 16px"></i> <b class="ion-ribbon-a icon-secondary" style="left: 16px; top: -15px"></b> <b class="ion-arrow-right-c icon-secondary" style="left: 28px; top: -15px"></b> <b class="ion-ribbon-a icon-secondary" style="left: 40px; top: -15px"></b> <span class="col col-75" translate>CURRENCY.VIEW.SIG_PERIOD</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sigPeriod | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-steam"></i> <b class="ion-person icon-secondary" style="left: 38px; top: -17px"></b><div class="col col-75"><span ng-bind-html="\'CURRENCY.VIEW.STEP_MAX\'|translate"></span> <span class="gray">(stepMax)</span></div><span class="badge badge-assertive" ng-if="!loading">{{formData.stepMax}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span class="col col-75" translate>CURRENCY.VIEW.SENTRIES</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sentries}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span class="col col-75" translate>CURRENCY.VIEW.SENTRIES_FORMULA</span> <span class="item-note dark" ng-if="!loading">{{\'CURRENCY.VIEW.MATH_CEILING\'| translate}}( N<sub>t</sub><sup>^ (1 / stepMax)</sup>)</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-pull-request"></i> <span class="col col-75" translate>CURRENCY.VIEW.XPERCENT</span> <span class="badge badge-stable" ng-if="!loading">{{formData.xpercent*100| formatNumeral: \'0,0\'}} %</span></ion-item><div class="item item-toggle dark"><div class="item-label text-right gray" translate>CURRENCY.VIEW.DISPLAY_ALL_RULES</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.allWotRules"><div class="track"><div class="handle"></div></div></label></div></div>'),e.put("templates/currency/lookup.html",'<ion-view view-title="{{\'CURRENCY.SELECT.TITLE\' | translate}}"><ion-content class="padding no-padding-xs no-padding-sm"><h4 class="content double-padding-x" translate>CURRENCY.SELECT.CURRENCIES</h4><ng-include src="\'templates/currency/lookup_form.html\'"></ion-content></ion-view>'),e.put("templates/currency/lookup_form.html",'<ion-list><div class="item center" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div ng-repeat="currency in search.results" ng-class="{ selected: selectedCurrency == currency }"><a class="item card card-item stable-bg padding ink" ng-click="selectCurrency(currency)" ng-class="{ selected: selectedCurrency && selectedCurrency.name == currency.name }"><h2>{{currency.name}}</h2><h4 class="gray">{{currency.peer.server}}</h4><span class="badge badge-royal">{{\'CURRENCY.SELECT.MEMBERS_COUNT\'|translate:currency}}</span></a></div></ion-list>'),e.put("templates/currency/modal_license.html",'<ion-modal-view class="modal-full-height modal-license"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>CURRENCY.LICENSE.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doTransfer()"></button></ion-header-bar><ion-content scroll="false" style="bottom: 0px"><p ng-if="!licenseUrl && !loading">translate>CURRENCY.LICENSE.NO_LICENSE_FILE</p><iframe ng-if="licenseUrl && !loading" class="padding-left padding-right no-padding-xs iframe-license" id="iframe-license" ng-src="{{licenseUrlHtml||licenseUrl}}"></iframe><div class="padding hidden-xs text-center"><button class="button button-stable ink" ng-click="downloadFile()">{{\'CURRENCY.LICENSE.BTN_DOWNLOAD\' | translate}}</button> <button class="button button-positive ink" type="submit" ng-click="closeModal()">{{\'COMMON.BTN_CLOSE\' | translate}}</button></div></ion-content></ion-modal-view>'),e.put("templates/currency/popover_actions.html",'<ion-popover-view class="fit has-header popover-wallet-actions"><ion-header-bar><h1 class="title" translate="">COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"></div></ion-content></ion-popover-view>'),e.put("templates/currency/view_currency.html",'<ion-view left-buttons="leftButtons" cache-view="false"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'CURRENCY.VIEW.TAB_CURRENCY\'|translate}}" icon="ion-stats-bars" ui-sref="app.currency.tab_parameters"><ion-nav-view name="tab-parameters"></ion-nav-view></ion-tab><ion-tab title="{{\'CURRENCY.VIEW.TAB_WOT\'|translate}}" icon="ion-person-stalker" ui-sref="app.currency.tab_wot"><ion-nav-view name="tab-wot"></ion-nav-view></ion-tab><ion-tab id="helptip-currency-tab-peers" title="{{\'CURRENCY.VIEW.TAB_NETWORK\'|translate}}" icon="ion-cloud" ui-sref="app.currency.tab_network"><ion-nav-view name="tab-network"></ion-nav-view></ion-tab><ion-tab title="{{\'CURRENCY.VIEW.TAB_BLOCKS\'|translate}}" icon="ion-lock-combination" ui-sref="app.currency.tab_blocks"><ion-nav-view name="tab-blocks"></ion-nav-view></ion-tab></ion-tabs></ion-view>'),e.put("templates/currency/view_currency_lg.html",'<ion-view left-buttons="leftButtons" cache-view="false"><ion-nav-title bind-notifier="{ rebind:formData.useRelative }"><span ng-if="!loading">{{\'CURRENCY.VIEW.TITLE\' | translate}} {{formData.currency|abbreviate}}</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="refreshPeers()"></button><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content><div class="item item-text-wrap no-border no-padding pull-left"><div class="item-icon-left card padding stable-900-bg"><ion-spinner class="icon" icon="android" ng-if="loading"></ion-spinner><i class="icon ion-help-circled calm" ng-if="!loading"></i><div class="item-icon-left-padding" style="min-height: 26px"><span ng-if="!loading" trust-as-html="\'CURRENCY.VIEW.CURRENCY_SHORT_DESCRIPTION\'|translate:formData"></span></div></div></div><div class="row responsive-sm"><div class="col list"><div class="item item-divider"><span translate="">CURRENCY.VIEW.MONEY_DIVIDER</span></div><ng-include src="\'templates/currency/items_parameters.html\'"></ng-include></div><div class="col list"><div class="item item-divider"><span translate="">CURRENCY.VIEW.WOT_DIVIDER</span></div><ng-include src="\'templates/currency/items_wot.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("templates/help/help.html",'<a name="join"></a><h2 translate>HELP.JOIN.SECTION</h2><a name="join-salt"></a><div class="row responsive-sm" ng-class="itemsClass[\'join-salt\']"><div class="col col-20" translate>LOGIN.SALT</div><div class="col" translate>HELP.JOIN.SALT</div></div><a name="join-password"></a><div class="row responsive-sm" ng-class="itemsClass[\'join-password\']"><div class="col col-20" translate>LOGIN.PASSWORD</div><div class="col" translate>HELP.JOIN.PASSWORD</div></div><a name="join-pseudo"></a><div class="row responsive-sm" ng-class="itemsClass[\'join-pseudo\']"><div class="col col-20" translate>ACCOUNT.NEW.PSEUDO</div><div class="col" translate>HELP.JOIN.PSEUDO</div></div><a name="login"></a><h2 translate>HELP.LOGIN.SECTION</h2><a name="login-pubkey"></a><div class="row responsive-sm" ng-class="itemsClass[\'login-pubkey\']"><div class="col col-20" translate>HELP.LOGIN.PUBKEY</div><div class="col" translate>HELP.LOGIN.PUBKEY_DEF</div></div><a name="login-method"></a><div class="row responsive-sm" ng-class="itemsClass[\'login-method\']"><div class="col col-20" translate>HELP.LOGIN.METHOD</div><div class="col" translate>HELP.LOGIN.METHOD_DEF</div></div><a name="glossary"></a><h2 translate>HELP.GLOSSARY.SECTION</h2><a name="pubkey"></a><div class="row responsive-sm" ng-class="itemsClass.pubkey"><div class="col col-20" translate>COMMON.PUBKEY</div><div class="col" translate>HELP.GLOSSARY.PUBKEY_DEF</div></div><a name="blockchain"></a><div class="row responsive-sm" ng-class="itemsClass.blockchain"><div class="col col-20" translate>HELP.GLOSSARY.BLOCKCHAIN</div><div class="col" translate>HELP.GLOSSARY.BLOCKCHAIN_DEF</div></div><a name="universal_dividend"></a> <a name="ud"></a><div class="row responsive-sm" ng-class="itemsClass.ud"><div class="col col-20" translate>COMMON.UNIVERSAL_DIVIDEND</div><div class="col" translate>HELP.GLOSSARY.UNIVERSAL_DIVIDEND_DEF</div></div><a name="member"></a><div class="row responsive-sm" ng-class="itemsClass.member"><div class="col col-20" translate>HELP.GLOSSARY.MEMBER</div><div class="col" translate>HELP.GLOSSARY.MEMBER_DEF</div></div><a name="wot"></a><div class="row responsive-sm" ng-class="itemsClass.wot"><div class="col col-20" translate>HELP.GLOSSARY.WOT</div><div class="col" translate>HELP.GLOSSARY.WOT_DEF</div></div><a name="currency_rules"></a><div class="row responsive-sm" ng-class="itemsClass.currency_rules"><div class="col col-20" translate>HELP.GLOSSARY.CURRENCY_RULES</div><div class="col" translate>HELP.GLOSSARY.CURRENCY_RULES_DEF</div></div><a name="distance_rule"></a><div class="row responsive-sm" ng-class="itemsClass.distance_rule"><div class="col col-20" translate>HELP.GLOSSARY.DISTANCE_RULE</div><div class="col" translate>HELP.GLOSSARY.DISTANCE_RULE_DEF</div></div>'),e.put("templates/help/modal_help.html",'<ion-modal-view class="modal-full-height modal-help"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CLOSE</button><h1 class="title" translate>HELP.TITLE</h1></ion-header-bar><ion-content scroll="true" class="padding no-padding-xs"><div ng-class="listClass"><ng-include src="\'templates/help/help.html\'"></ng-include></div><div class="padding hidden-xs text-center"><button class="button button-positive ink" type="submit" ng-click="closeModal()">{{\'COMMON.BTN_CLOSE\' | translate}}</button></div></ion-content></ion-modal-view>'),e.put("templates/help/view_help.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm" translate="">HELP.TITLE</span></ion-nav-title><ion-content scroll="true" class="padding"><ng-include src="\'templates/help/help.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/home/home.html",'<ion-view id="home" class=""><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"></ion-nav-buttons><ion-content class="positive-900-bg circle-bg-dark"><div class="row no-padding-xs responsive-lg"><div class="col text-center no-padding-xs main-container"><div id="helptip-home-logo" class="logo"></div><h4><span class="hidden-xs" translate="">HOME.WELCOME</span> <b ng-show="!loading" translate-values=":currency:{currency: $root.currency.name}" translate="">HOME.MESSAGE</b></h4><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding animate-fade-in animate-show-hide ng-hide" ng-show="!loading && error"><div class="card card-item padding"><p class="item-content item-text-wrap"><span class="dark" trust-as-html="\'HOME.CONNECTION_ERROR\'|translate:node"></span></p><button type="button" class="button button-positive icon icon-left ion-refresh ink" ng-click="reload()">{{\'COMMON.BTN_REFRESH\'|translate}}</button></div></div><div class="center animate-show-hide ng-hide" ng-show="!loading && !error"><button type="button" class="button button-block button-stable button-raised icon-left icon ion-easel ink-dark hidden-xs" ng-show="login" ng-click="startHelpTour()">{{\'COMMON.BTN_HELP_TOUR\'|translate}}</button> <button type="button" class="button button-block button-positive button-raised ink-dark" ng-click="showJoinModal()" ng-if="!login" translate="">LOGIN.CREATE_FREE_ACCOUNT</button> <button type="button" class="item button button-block button-positive button-raised icon icon-left ion-person ink-dark" ui-sref="app.view_wallet" ng-show="login" translate="">MENU.ACCOUNT</button> <button type="button" class="item button button-block button-positive button-raised icon icon-left ion-card ink-dark visible-xs" ui-sref="app.view_wallet_tx" ng-if="login" translate="">MENU.TRANSACTIONS</button><br class="visible-xs visible-sm"><div class="text-center no-padding" ng-show="!login"><br class="visible-xs visible-sm">{{\'LOGIN.HAVE_ACCOUNT_QUESTION\'|translate}} <b></b></div><div class="text-center no-padding" ng-show="login"><br class="visible-xs visible-sm"><span ng-bind-html="\'HOME.NOT_YOUR_ACCOUNT_QUESTION\'|translate:{pubkey: walletData.pubkey}"></span><br><b></b></div><button type="button" class="button button-block button-stable button-raised ink visible-xs visible-sm" ui-sref="app.view_wallet" ng-if="!login" translate="">COMMON.BTN_LOGIN</button> <button type="button" class="button button-block button-assertive button-raised icon icon-left ion-log-out ink-dark visible-xs visible-sm" ng-click="logout()" ng-if="login" translate="">COMMON.BTN_LOGOUT</button><div class="text-center no-padding visible-xs stable"><br>{{\'COMMON.APP_VERSION\'|translate:{version: config.version} }} | <a href="#" ng-click="showAboutModal()" translate="">HOME.BTN_ABOUT</a></div></div></div><div class="col col-30 no-padding"><div ng-if="feed" class="feed padding padding-top"><h3 class="padding-left"><i class="icon ion-speakerphone"></i> {{feed.title}} <small><a ng-click="openLink($event, feed.home_page_url)" class="gray"><span translate="">HOME.SHOW_ALL_FEED</span> <i class="icon ion-chevron-right"></i></a></small></h3><div class="animate-show-hide ng-hide" ng-show="feed"><div ng-repeat="item in feed.items" class="card padding"><div class="header"><i ng-if="item.author.avatar" class="avatar" style="background-image: url({{item.author.avatar}})"></i> <a ng-class="{\'avatar-left-padding\': item.author.avatar}" class="author" ng-click="item.author.url && openLink($event, item.author.url)">{{item.author.name}} </a><a ng-if="item.time" title="{{item.time|formatDate}}" ng-click="openLink($event, item.url)" class="item-note"><small><i class="icon ion-clock"></i>&nbsp;{{item.time|formatFromNow}}</small></a></div><h2 class="title feed-title"><a ng-click="openLink($event, item.url)">{{item.title}}</a></h2><div ng-if="item.content" class="content feed-content" trust-as-html="item.content"></div><h4 class="card-footer feed-footer text-right positive-100"><a ng-click="openLink($event, item.url)"><span ng-if="item.truncated" translate="">HOME.READ_MORE</span> <span ng-if="!item.truncated" translate="">COMMON.BTN_SHOW</span> <i class="icon ion-chevron-right"></i></a></h4></div></div></div></div></div></ion-content></ion-view>'),e.put("templates/join/modal_choose_account_type.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="slidePrev()" ng-if="slides.slider.activeIndex"></button><h1 class="title" translate="">ACCOUNT.NEW.TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="slides.slider.activeIndex === 0" ng-click="slideNext()"><span translate="">COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page><ion-content class="has-header padding"><div class="center padding" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><div ng-if="!loading"><p ng-bind-html="\'ACCOUNT.NEW.INTRO_WARNING_TIME\'|translate:currency"></p><div class="row responsive-sm"><div class="col"><div class="item card item-icon-left padding item-text-wrap stable-bg"><i class="icon ion-android-warning assertive"></i><p class="item-content item-icon-left-padding"><span class="dark" translate="">ACCOUNT.NEW.INTRO_WARNING_SECURITY</span><br><small translate="">ACCOUNT.NEW.INTRO_WARNING_SECURITY_HELP</small></p></div></div><div class="col"><div class="item card item-icon-left padding item-text-wrap stable-bg"><i class="icon ion-information-circled positive"></i><p class="item-content item-icon-left-padding"><span class="dark" trust-as-html="\'ACCOUNT.NEW.REGISTRATION_NODE\'|translate:currency.node"></span><br><small trust-as-html="\'ACCOUNT.NEW.REGISTRATION_NODE_HELP\'|translate:currency.node"></small></p></div></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate="">COMMON.BTN_CANCEL</button> <button class="button button-positive icon-right ion-chevron-right ink" ng-click="slideNext()" ng-disabled="loading" type="button" translate="">COMMON.BTN_START</button></div></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header padding"><p translate="">ACCOUNT.NEW.SELECT_ACCOUNT_TYPE</p><div class="list"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectAccountTypeAndClose(\'member\')"><div class="item-content item-text-wrap"><i class="item-image icon dark ion-person"></i><h2 translate="">ACCOUNT.NEW.MEMBER_ACCOUNT</h2><h4 class="gray" ng-bind-html="\'ACCOUNT.NEW.MEMBER_ACCOUNT_HELP\'|translate:currency"></h4><i class="icon dark ion-ios-arrow-right"></i></div></div><cs-extension-point name="select-account-type"></cs-extension-point><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectAccountTypeAndClose(\'wallet\')"><div class="item-content item-text-wrap"><i class="item-image icon dark ion-card"></i><h2 translate="">ACCOUNT.NEW.WALLET_ACCOUNT</h2><h4 class="gray" translate="">ACCOUNT.NEW.WALLET_ACCOUNT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate="">COMMON.BTN_CANCEL</button></div></ion-content></ion-slide-page></ion-slides></ion-modal-view>'),e.put("templates/join/modal_join_member.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="doPrev()" ng-if="slides.slider.activeIndex && slideBehavior.hasPreviousButton"></button> <button class="button button-icon button-clear icon ion-ios-help-outline visible-xs" ng-if="slideBehavior.helpAnchor" ng-click="showHelpModal(slideBehavior.helpAnchor)"></button><h1 class="title" translate>ACCOUNT.NEW.MEMBER_ACCOUNT_TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasNextButton" ng-click="doNext()"><span translate>COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-class="{\'button-text-stable\': !isLicenseRead}" ng-if="slideBehavior.hasAcceptButton" ng-click="isLicenseRead ? doNext() : undefined"><span translate>ACCOUNT.NEW.BTN_ACCEPT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasSendButton" ng-click="doNewAccount()"><i class="icon ion-android-send"></i></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page ng-if="licenseFileUrl"><ion-content class="has-header" scroll="false"><div class="padding" translate>ACCOUNT.NEW.INFO_LICENSE</div><div class="center padding" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><iframe ng-if="!loading" class="padding-left padding-right no-padding-xs iframe-license" id="iframe-license" ng-src="{{licenseFileUrl}}"></iframe><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="doNext(\'licenceForm\')" ng-disabled="!isLicenseRead" type="button" translate>ACCOUNT.NEW.BTN_ACCEPT_LICENSE</button></div></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="true"><form name="pseudoForm" novalidate="" ng-submit="doNext(\'pseudoForm\')"><div class="item item-text-wrap text-center padding"><a class="pull-right icon-help hidden-xs" ng-click="showHelpModal(\'join-pseudo\')"></a> <span translate>ACCOUNT.NEW.PSEUDO_WARNING</span></div><div class="list" ng-init="setForm(pseudoForm, \'pseudoForm\')"><div class="item item-input" ng-class="{\'item-input-error\': (pseudoForm.$submitted && pseudoForm.pseudo.$invalid) || (uiAlreadyUsed && formData.pseudo)}"><span class="input-label" translate>ACCOUNT.NEW.PSEUDO</span> <input id="pseudo" name="pseudo" type="text" placeholder="{{\'ACCOUNT.NEW.PSEUDO_HELP\' | translate}}" ng-model="formData.pseudo" autocomplete="off" ng-minlength="3" ng-maxlength="100" ng-pattern="userIdPattern" ng-model-options="{ debounce: 250 }" required></div><div class="form-errors" ng-show="pseudoForm.$submitted && pseudoForm.pseudo.$error" ng-messages="pseudoForm.pseudo.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 3}"></span></div><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG_WITH_LENGTH" translate-values="{maxLength: 100}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.INVALID_USER_ID"></span></div></div><div class="text-right" style="min-height: 18px"><div class="form-error gray" ng-if="formData.computing && formData.pseudo"><ion-spinner class="icon ion-spinner-small" icon="android" ng-if="formData.computing && formData.pseudo"></ion-spinner><span translate>ACCOUNT.NEW.CHECKING_PSEUDO</span></div><ng-if ng-if="!formData.computing && formData.pseudo"><div class="form-error balanced" ng-if="!uiAlreadyUsed "><i class="icon ion-checkmark balanced"></i> <span translate>ACCOUNT.NEW.PSEUDO_AVAILABLE</span></div><div class="form-error" ng-if="uiAlreadyUsed"><i class="icon ion-close-circled assertive"></i> <span translate>ACCOUNT.NEW.PSEUDO_NOT_AVAILABLE</span></div></ng-if></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" ng-disabled="uiAlreadyUsed" translate>COMMON.BTN_NEXT</button></div></div></form></ion-content></ion-slide-page><ion-slide-page ng-if="!formData.pubkey"><ion-content class="has-header" scroll="true"><form name="saltForm" novalidate="" ng-submit="doNext(\'saltForm\')"><div class="list" ng-init="setForm(saltForm, \'saltForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-salt\')"></a> <span translate>ACCOUNT.NEW.SALT_WARNING</span></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.username.$invalid}"><span class="input-label" translate>LOGIN.SALT</span> <input ng-if="!showUsername" name="username" type="password" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" autocomplete="off" ng-minlength="8" different-to="formData.pseudo" required> <input ng-if="showUsername" name="username" type="text" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" autocomplete="off" ng-minlength="8" different-to="formData.pseudo" required></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.username.$error" ng-messages="saltForm.username.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="differentTo"><span translate="ERROR.EQUALS_TO_PSEUDO"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.confirmSalt.$invalid}"><span class="input-label pull-right" translate>ACCOUNT.NEW.SALT_CONFIRM</span> <input ng-if="!showUsername" name="confirmUsername" type="password" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" autocomplete="off" compare-to="formData.username"> <input ng-if="showUsername" name="confirmUsername" type="text" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" autocomplete="off" compare-to="formData.username"></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.confirmUsername.$error" ng-messages="saltForm.confirmUsername.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.SALT_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showUsername"><div class="track"><div class="handle"></div></div></label></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></div></form></ion-content></ion-slide-page><ion-slide-page ng-if="!formData.pubkey"><ion-content class="has-header" scroll="true"><form name="passwordForm" novalidate="" ng-submit="doNext(\'passwordForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-password\')"></a> <span translate>ACCOUNT.NEW.PASSWORD_WARNING</span></div><div class="list" ng-init="setForm(passwordForm, \'passwordForm\')"><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.password.$invalid}"><span class="input-label" translate>LOGIN.PASSWORD</span> <input ng-if="!showPassword" name="password" type="password" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" autocomplete="off" ng-change="formDataChanged()" ng-minlength="8" different-to="formData.username" required> <input ng-if="showPassword" name="text" type="text" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" autocomplete="off" ng-change="formDataChanged()" ng-minlength="8" different-to="formData.username" required></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.password.$error" ng-messages="passwordForm.password.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="differentTo"><span translate="ERROR.EQUALS_TO_SALT"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.confirmPassword.$invalid}"><span class="input-label" translate>ACCOUNT.NEW.PASSWORD_CONFIRM</span> <input ng-if="!showPassword" name="confirmPassword" type="password" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" autocomplete="off" compare-to="formData.password"> <input ng-if="showPassword" name="confirmPassword" type="text" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" autocomplete="off" compare-to="formData.password"></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.confirmPassword.$error" ng-messages="passwordForm.confirmPassword.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.PASSWORD_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showPassword"><div class="track"><div class="handle"></div></div></label></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" ng-click="getRevocationDocument()" translate>COMMON.BTN_NEXT</button></div><div class="padding hidden-xs"></div></form></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="true"><div class="center padding" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><ng-if ng-if="!formData.computing"><div class="animate-fade-in animate-show-hide ng-hide" ng-show="accountAvailable"><div class="padding text-center" translate>ACCOUNT.NEW.LAST_SLIDE_CONGRATULATION</div><div class="list"><ion-item class="item text-center item-text-wrap"><h3 class="gray" translate>LOGIN.ASSOCIATED_PUBKEY</h3><h3 class="dark bold">{{formData.pubkey}}</h3></ion-item></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-click="doNewAccount()" translate>COMMON.BTN_SEND <i class="icon ion-android-send"></i></button></div></div><div class="animate-fade-in animate-show-hide ng-hide" ng-show="!accountAvailable"><ion-item class="item-icon-left item-text-wrap text-center"><i class="icon ion-minus-circled assertive"></i> <span id="modal-license" trust-as-html="\'ERROR.EXISTING_ACCOUNT\'|translate"></span></ion-item><div class="list"><ion-item class="item item-text-wrap item-border"><div class="padding text-center"><span class="gray text-no-wrap">{{formData.pubkey}}</span></div></ion-item><div class="padding text-center"><span translate>ERROR.EXISTING_ACCOUNT_REQUEST</span></div></div><div class="padding hidden-xs text-left"><button class="button button-assertive icon-left ion-chevron-left ink" ng-click="identifierRecovery()" translate>COMMON.BTN_MODIFY</button></div></div></ng-if></ion-content></ion-slide-page></ion-slides></ion-modal-view>'),e.put("templates/join/modal_join_wallet.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="slidePrev()" ng-if="slideBehavior.hasPreviousButton"></button> <button class="button button-icon button-clear icon ion-ios-help-outline visible-xs" ng-if="slideBehavior.helpAnchor" ng-click="showHelpModal(slideBehavior.helpAnchor)"></button><h1 class="title" translate>ACCOUNT.NEW.WALLET_ACCOUNT_TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasNextButton" ng-click="doNext()"><span translate>COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasSendButton" ng-click="doNewAccount()"><i class="icon ion-android-send"></i></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page><ion-content class="has-header" scroll="false"><form name="saltForm" novalidate="" ng-submit="doNext(\'saltForm\')"><div class="list" ng-init="setForm(saltForm, \'saltForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-salt\')"></a> <span translate>ACCOUNT.NEW.SALT_WARNING</span></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.username.$invalid}"><span class="input-label" translate>LOGIN.SALT</span> <input ng-if="!showUsername" name="username" type="password" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" ng-minlength="8" required> <input ng-if="showUsername" name="username" type="text" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" ng-minlength="8" required></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.username.$error" ng-messages="saltForm.username.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.confirmSalt.$invalid}"><span class="input-label pull-right" translate>ACCOUNT.NEW.SALT_CONFIRM</span> <input ng-if="!showUsername" name="confirmUsername" type="password" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" compare-to="formData.username"> <input ng-if="showUsername" name="confirmUsername" type="text" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" compare-to="formData.username"></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.confirmUsername.$error" ng-messages="saltForm.confirmUsername.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.SALT_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showUsername"><div class="track"><div class="handle"></div></div></label></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></div></form></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="false"><form name="passwordForm" novalidate="" ng-submit="doNext(\'passwordForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-password\')"></a> <span translate>ACCOUNT.NEW.PASSWORD_WARNING</span></div><div class="list" ng-init="setForm(passwordForm, \'passwordForm\')"><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.password.$invalid}"><span class="input-label" translate>LOGIN.PASSWORD</span> <input ng-if="!showPassword" name="password" type="password" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" ng-change="formDataChanged()" ng-minlength="8" required> <input ng-if="showPassword" name="text" type="text" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" ng-change="formDataChanged()" ng-minlength="8" required></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.password.$error" ng-messages="passwordForm.password.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.confirmPassword.$invalid}"><span class="input-label" translate>ACCOUNT.NEW.PASSWORD_CONFIRM</span> <input ng-if="!showPassword" name="confirmPassword" type="password" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" compare-to="formData.password"> <input ng-if="showPassword" name="confirmPassword" type="text" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" compare-to="formData.password"></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.confirmPassword.$error" ng-messages="passwordForm.confirmPassword.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.PASSWORD_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showPassword"><div class="track"><div class="handle"></div></div></label></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT</button></div><div class="padding hidden-xs"></div></form></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="false"><div class="padding center" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><div ng-if="accountAvailable && !formData.computing"><div class="padding text-center" translate>ACCOUNT.NEW.LAST_SLIDE_CONGRATULATION</div><div class="list"><ion-item class="item item-text-wrap item-border"><div class="dark pull-right padding-right" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><span class="input-label" translate>COMMON.PUBKEY</span> <span class="gray text-no-wrap" ng-if="formData.computing" translate>ACCOUNT.NEW.COMPUTING_PUBKEY </span><span class="gray text-no-wrap" ng-if="formData.pubkey">{{formData.pubkey}}</span></ion-item></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-click="doNewAccount()" translate>COMMON.BTN_CREATE</button></div></div><div ng-if="!accountAvailable && !formData.computing"><ion-item class="item-icon-left item-text-wrap text-center"><i class="icon ion-android-close active"></i> <span id="modal-license" translate>ERROR.EXISTING_ACCOUNT</span></ion-item><div class="list"><ion-item class="item item-text-wrap item-border"><div class="dark pull-right padding-right" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><span class="gray text-no-wrap" ng-if="formData.computing" translate>ACCOUNT.NEW.COMPUTING_PUBKEY</span><div class="padding text-center"><span class="gray text-no-wrap" ng-if="formData.pubkey">{{formData.pubkey}}</span></div></ion-item><div class="padding text-center"><span translate>ERROR.EXISTING_ACCOUNT_REQUEST</span></div></div><div class="padding hidden-xs text-left"><button class="button button-assertive icon-left ion-chevron-left ink" ng-click="identifierRecovery()" translate>COMMON.BTN_MODIFY</button></div></div></ion-content></ion-slide-page></ion-slides></ion-modal-view>'),e.put("templates/login/form_file_import.html",'<div class="item"><p class="item-text-wrap" translate>LOGIN.FILE_FORM_HELP</p></div><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i> <span class="positive" translate>LOGIN.FILE.HELP</span></div><div dropzone="onKeyFileDrop(file)"><div ng-if="!formData.file" onclick="angular.element(document.querySelector(\'#loginImportFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="loginImportFile" accept=".dunikey,.yml" style="visibility:hidden; position:absolute" onchange="angular.element(this).scope().fileChanged(event)"></div><div class="item item-icon-left item-icon-right stable-bg" ng-if="formData.file"><i class="icon ion-document-text dark"></i><div class="item-content row"><div class="col"><h2>{{formData.file.name}}</h2><h4 class="dark" ng-if="formData.file.lastModified"><span class="gray" translate>COMMON.FILE.DATE</span> {{formData.file.lastModified/1000|formatDate}}</h4><h5 class="dark"><span class="gray" translate>COMMON.FILE.SIZE</span> {{formData.file.size|formatInteger}} Ko</h5></div><div class="col"><h3><span class="gray" translate>COMMON.PUBKEY</span></h3><h3 ng-if="validatingFile" translate>COMMON.FILE.VALIDATING</h3><h3 ng-if="!validatingFile"><span class="dark animate-show-hide ng-hide" ng-show="formData.file.pubkey">{{formData.file.pubkey}}</span> <span class="assertive animate-show-hide ng-hide" ng-show="!formData.file.valid"><br><i class="ion-close-circled assertive"></i> {{formData.file.pubkey ? \'ERROR.AUTH_INVALID_PUBKEY\' : \'ERROR.AUTH_INVALID_FILE\' |translate}}</span></h3></div></div><a class="ion-close-round gray pull-right" style="font-size: 10px; position: absolute; top: 6px; right: 6px" ng-click="removeKeyFile()"></a></div></div><ion-checkbox ng-model="formData.keepAuth" class="item ink item-text-wrap"><div class="item-content dark" translate>LOGIN.MEMORIZE_AUTH_FILE</div></ion-checkbox>'),e.put("templates/login/form_login.html",'<form name="loginForm" novalidate="" ng-submit="doLogin()" autocomplete="off"><div class="list padding no-padding-xs" ng-init="setForm(loginForm)" ng-switch on="formData.method"><div class="item hidden-xs no-padding" ng-if="showMethods"><div class="pull-right"><a class="button button-text button-small-padding icon-right ink" ng-click="showMethodsPopover($event)"><i class="icon ion-wrench"></i> {{\'LOGIN.BTN_METHODS\'| translate}} </a>&nbsp; <a class="button button-icon positive button-small-padding icon ion-ios-help-outline" style="right: 8px" ng-click="showHelpModal(\'login-method\')"></a></div></div><div class="item item-text-wrap" ng-if="::isAuth"><p ng-if="::expectedPubkey" ng-bind-html="::expectedUid ? \'AUTH.EXPECTED_UID_HELP\' : \'AUTH.EXPECTED_PUBKEY_HELP\' |translate: {uid: expectedUid, pubkey: expectedPubkey}"></p><p ng-if="::!expectedPubkey" ng-bind-html="::\'AUTH.GENERAL_HELP\'|translate"></p></div><div ng-switch-when="SCRYPT_DEFAULT"><ng-include src="\'templates/login/form_scrypt.html\'"></ng-include></div><div ng-switch-when="SCRYPT_ADVANCED"><ng-include src="\'templates/login/form_scrypt_advanced.html\'"></ng-include></div><div ng-switch-when="PUBKEY"><ng-include src="\'templates/login/form_pubkey.html\'"></ng-include></div><div ng-switch-when="FILE"><ng-include src="\'templates/login/form_file_import.html\'"></ng-include></div><div ng-switch-when="SCAN"><ng-include src="\'templates/login/form_scan.html\'"></ng-include></div><div ng-switch-default><ng-include src="\'templates/login/form_scrypt.html\'"></ng-include></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-class="{\'button-assertive\': isAuth, \'button-positive\': !isAuth}" type="submit">{{okText || (isAuth ? \'AUTH.BTN_AUTH\' : \'COMMON.BTN_LOGIN\') | translate}}</button></div><div class="text-center no-padding visible-xs"><button type="button" class="button button-small icon-right ink" ng-click="showMethodsPopover($event)"><i class="icon ion-loop"></i> <span translate>LOGIN.BTN_METHODS_DOTS</span></button><br><br></div><ng-if ng-if="!isAuth && showNewAccountLink"><div class="text-center no-padding">{{\'LOGIN.NO_ACCOUNT_QUESTION\'|translate}}<br class="visible-xs"><a ng-click="showJoinModal()" translate>LOGIN.CREATE_ACCOUNT</a></div><br class="visible-xs"><div class="text-center no-padding"><a ng-click="showAccountSecurityModal()" translate>LOGIN.FORGOTTEN_ID</a></div></ng-if></form>'),e.put("templates/login/form_pubkey.html",'<div class="item"><p class="item-text-wrap" translate>LOGIN.PUBKEY_FORM_HELP</p></div><div class="item item-input item-button-right" ng-class="{ \'item-input-error\': form.$submitted && form.pubkey.$invalid}"><span class="input-label hidden-xs" translate>COMMON.PUBKEY</span> <input name="pubkey" type="text" placeholder="{{\'LOGIN.PUBKEY_HELP\' | translate}}" autocomplete="off" ng-model="formData.pubkey" ng-model-options="{ debounce: 650 }" required> <a class="button button-stable icon ion-android-search ink" ng-click="showWotLookupModal(form.pubkey.$viewValue)"></a></div><div class="form-errors" ng-show="form.$submitted && form.pubkey.$error" ng-messages="form.pubkey.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="checksum"><span translate="ERROR.INVALID_PUBKEY_CHECKSUM"></span></div></div>'),e.put("templates/login/form_scan.html",'<div class="item"><p class="item-text-wrap" ng-bind-html="::isAuth ? \'AUTH.SCAN_FORM_HELP\' : \'LOGIN.SCAN_FORM_HELP\' |translate"></p></div><div class="item item-icon-right item-text-wrap item-input" ng-class="{ \'item-input-error\': pubkeyError}"><span class="input-label" translate>COMMON.PUBKEY</span><div class="item-content text-wrap"><span class="gray animate-show-hide" ng-show="!computing && formData.pubkey">{{formData.pubkey}}</span><ion-spinner class="ion-spinner-small" icon="android" ng-if="computing"></ion-spinner><input type="hidden" ng-model="formData.pubkey" required></div><a class="button button-icon positive button-small-padding icon ion-qr-scanner animate-show-hide" ng-show="!computing && (!expectedPubkey || pubkeyError)" ng-click="doScan()"></a> <span class="button button-icon balanced button-small-padding icon ion-checkmark animate-show-hide" ng-if="expectedPubkey" ng-show="!computing && !pubkeyError"></span></div><div class="form-errors" ng-if="expectedPubkey"><div class="form-error" ng-show="pubkeyError"><span trust-as-html="::\'ERROR.AUTH_INVALID_PUBKEY\'|translate:{pubkey: expectedPubkey}"></span></div></div>'),e.put("templates/login/form_scrypt.html",'<div class="item item-text-wrap" ng-if="!isAuth"><p ng-bind-html="\'LOGIN.SCRYPT_FORM_HELP\'|translate"></p></div><input type="password" name="fake-password" autocomplete="off" style="visibility:hidden; position:absolute"><label class="item item-input" ng-class="{ \'item-input-error\': form.$submitted && form.username.$invalid}"><span class="input-label hidden-xs" translate>LOGIN.SALT</span> <input name="username" type="password" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" autocomplete="off" ng-model="formData.username" ng-model-options="{ debounce: 650 }" class="highlight-light" required></label><div class="form-errors" ng-show="form.$submitted && form.username.$error" ng-messages="form.username.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><label class="item item-input" ng-class="{ \'item-input-error\': form.$submitted && form.password.$invalid}"><span class="input-label hidden-xs" translate>LOGIN.PASSWORD</span> <input name="password" type="password" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" autocomplete="off" ng-model="formData.password" ng-model-options="{ debounce: 650 }" select-on-click required></label><div class="form-errors" ng-show="form.$submitted && form.password.$error" ng-messages="form.password.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-icon-right item-text-wrap" ng-class="{ \'item-input-error\': pubkeyError, \'item-input\': showPubkey}"><span class="input-label hidden-xs animate-show-hide ng-hide" ng-show="showPubkey" translate>COMMON.PUBKEY</span><div class="item-content text-wrap"><a class="positive ink animate-show-hide ng-hide" ng-show="showComputePubkeyButton && !pubkey" ng-click="computePubkey()"><i class="ion-eye"></i> {{\'COMMON.BTN_SHOW_PUBKEY\' | translate}} </a><span class="gray animate-show-hide" ng-show="!computing && pubkey">{{pubkey}}</span><ion-spinner class="ion-spinner-small" icon="android" ng-if="computing"></ion-spinner></div><a class="button button-icon positive button-small-padding icon ion-ios-help-outline animate-show-hide" ng-click="showHelpModal(\'login-pubkey\')" ng-if="!expectedPubkey" ng-show="showPubkey"></a> <span class="button button-icon balanced button-small-padding icon ion-checkmark animate-show-hide" ng-if="expectedPubkey" ng-show="showPubkey && !showComputePubkeyButton && !computing && !pubkeyError"></span></div><div class="form-errors" ng-if="expectedPubkey"><div class="form-error" ng-show="pubkeyError"><span trust-as-html="::\'ERROR.AUTH_INVALID_PUBKEY\'|translate:{pubkey: expectedPubkey}"></span></div></div>'),e.put("templates/login/form_scrypt_advanced.html",'<div class="row responsive-md responsive-sm padding-left"><div class="col col-33 no-padding"><label class="item item-input item-select"><select ng-model="formData.scrypt" style="max-width: 100%" ng-change="changeScrypt(formData.scrypt)" ng-options="l as (l.label | translate) for l in scryptParamsValues track by l.id"></select></label></div><div class="col no-padding"><label class="item item-input"><span class="input-label" translate>LOGIN.SCRYPT.N</span> <input class="no-padding-right" type="number" placeholder="N" autocomplete="off" ng-model="formData.scrypt.params.N" ng-model-options="{ debounce: 650 }" ng-change="onScryptFormChanged()" required></label></div><div class="col no-padding"><label class="item item-input"><span class="input-label" translate>LOGIN.SCRYPT.r</span> <input class="no-padding-right" type="number" placeholder="r" ng-model="formData.scrypt.params.r" autocomplete="off" ng-model-options="{ debounce: 650 }" ng-change="onScryptFormChanged()" required></label></div><div class="col no-padding"><label class="item item-input"><span class="input-label" translate>LOGIN.SCRYPT.p</span> <input class="no-padding-right" type="number" placeholder="p" autocomplete="off" ng-model="formData.scrypt.params.p" ng-model-options="{ debounce: 650 }" ng-change="onScryptFormChanged()" required></label></div></div><p class="energized-100-bg padding dark"><i class="icon ion-android-warning"></i> <span translate>INFO.FEATURES_NOT_IMPLEMENTED</span></p><ng-include src="\'templates/login/form_scrypt.html\'"></ng-include>'),e.put("templates/login/item_remember_me.html",'<ion-checkbox ng-model="formData.rememberMe" ng-if="!isAuth" class="item ink item-text-wrap"><div class="item-content dark" translate>SETTINGS.REMEMBER_ME</div></ion-checkbox>'),e.put("templates/login/modal_login.html",'<ion-modal-view class="modal-full-height modal-login"><ion-header-bar class="" ng-class="{\'bar-positive\': !isAuth, \'bar-assertive\': isAuth}"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" ng-bind-html="title | translate"></h1><div class="buttons buttons-right"><div class="secondary-buttons"><button class="button button-icon button-clear icon ion-android-done visible-xs" ng-class="{\'button-positive\': !isAuth}" style="color: #fff" ng-click="doLogin()"></button></div></div></ion-header-bar><ion-content scroll="true"><ng-include src="\'templates/login/form_login.html\'"></ng-include></ion-content></ion-modal-view>'),e.put("templates/login/popover_methods.html",'<ion-popover-view class="fit has-header popover-login-methods" ng-class="{\'auth\': isAuth}"><ion-header-bar><h1 class="title" translate="">LOGIN.METHOD_POPOVER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="changeMethod(\'SCRYPT_DEFAULT\')"><i class="icon ion-shuffle" style="font-size: 22px"></i> {{\'LOGIN.METHOD.SCRYPT_DEFAULT\' | translate}} </a><a class="item item-icon-left ink" ng-click="changeMethod(\'SCRYPT_ADVANCED\')"><i class="icon ion-shuffle" style="font-size: 22px"></i> <i class="icon-secondary ion-plus" style="font-size: 13px; left: 40px; margin-top: -4px"></i> {{\'LOGIN.METHOD.SCRYPT_ADVANCED\' | translate}} </a><a class="item item-icon-left ink hidden-xs" ng-click="changeMethod(\'FILE\')"><i class="icon ion-document-text"></i> {{\'LOGIN.METHOD.FILE\' | translate}} </a><a class="item item-icon-left ink" ng-if="$root.device.barcode.enable" ng-click="changeMethod(\'SCAN\')"><i class="icon ion-qr-scanner"></i> {{\'LOGIN.METHOD.SCAN\' | translate}} </a><a class="item item-icon-left ink" ng-if="!isAuth" ng-click="changeMethod(\'PUBKEY\')"><i class="icon ion-key"></i> {{\'LOGIN.METHOD.PUBKEY\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/network/item_content_peer.html",'<i class="icon ion-android-desktop" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" ng-if=":rebind:!peer.avatar"></i> <b class="icon-secondary ion-person" ng-if=":rebind:!peer.avatar" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" style="left: 26px; top: -3px"></b> <i class="avatar" ng-if=":rebind:peer.avatar" style="background-image: url(\'{{:rebind:peer.avatar.src}}\')"></i> <b class="icon-secondary assertive ion-close-circled" ng-if=":rebind:!peer.online" style="left: 37px; top: -10px"></b><div class="row no-padding"><div class="col no-padding"><h3 class="dark" ng-if=":rebind:!peer.bma.private">{{:rebind:peer.dns || peer.server}}</h3><h4 class="gray" ng-if=":rebind:peer.bma.private"><i class="ion-flash"></i> {{\'NETWORK.VIEW.PRIVATE_ACCESS\'|translate}}</h4><h4><span class="gray" ng-if=":rebind:!peer.uid"><i class="ion-key"></i> {{:rebind:peer.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:peer.uid"><i class="ion-person"></i> {{:rebind:peer.name || peer.uid}} </span><span class="gray" ng-if=":rebind:!compactMode">{{:rebind:peer.dns && (\' | \' + peer.server) + (peer.bma.path||\'\') }}</span></h4></div><div class="col col-20 no-padding text-center" ng-if="::expertMode && search.type != \'offline\'"></div><div class="col col-20 no-padding text-center"><span id="{{$index === 0 ? helptipPrefix + \'-peer-0-block\' : \'\'}}" class="badge" ng-class=":rebind:{\'badge-balanced\': peer.hasMainConsensusBlock, \'badge-energized\': peer.hasConsensusBlock, \'ng-hide\': !peer.currentNumber && !peer.blockNumber }">{{::!expertMode ? (\'COMMON.BLOCK\'|translate) : \'\' }} {{:rebind:(peer.currentNumber || peer.blockNumber) | formatInteger}}</span> <span class="badge badge-secondary" ng-if=":rebind:peer.consensusBlockDelta && expertMode"><i class="ion-clock"></i>&nbsp; {{:rebind:peer.consensusBlockDelta|formatDurationTime}}</span></div></div>'),e.put("templates/network/items_peers.html",'<div class="no-padding {{::motion.ionListClass}}"><div class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-if="::isHttps && expertMode"><small><i class="icon ion-alert-circled"></i> {{\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></div><div ng-repeat="peer in :rebind:search.results track by peer.id" class="item item-peer item-icon-left ink {{::ionItemClass}}" ng-class=":rebind:{\'compacted\': peer.compacted && compactMode}" id="{{::helptipPrefix}}-peer-{{::$index}}" ng-click="selectPeer(peer)" ng-include="::\'templates/network/item_content_peer.html\'"></div></div>'),e.put("templates/network/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>PEER.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'member\')"><i class="icon ion-person"></i> {{\'PEER.MEMBERS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'member\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'mirror\')"><i class="icon ion-radio-waves"></i> {{\'PEER.MIRRORS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'mirror\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'offline\')"><i class="icon ion-eye-disabled"></i> {{\'PEER.OFFLINE\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'offline\'"></i></a></div></ion-content></ion-popover-view>'),e.put("templates/network/modal_network.html",'<ion-modal-view id="nodes" class="modal-full-height" cache-view="false"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button><h1 class="title" translate="">PEER.PEER_LIST</h1><div class="buttons buttons-right header-item"><span class="secondary"><button class="button button-clear icon ion-loop button-clear" ng-click="refresh()"></button> <button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></span></div></ion-header-bar><ion-content><div class="list"><div class="padding padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4><span ng-if="enableFilter && search.type==\'member\'" translate="">PEER.MEMBER_PEERS</span> <span ng-if="enableFilter && search.type==\'mirror\'" translate="">PEER.MIRROR_PEERS</span> <span ng-if="!enableFilter || !search.type" translate="">PEER.ALL_PEERS</span> <span ng-if="!search.loading">({{search.results.length}})</span></h4></div><div class="pull-right"><ion-spinner class="icon" icon="android" ng-if="search.loading"></ion-spinner>&nbsp;<div class="pull-right">&nbsp;</div></div></div><ng-include src="\'templates/network/items_peers.html\'"></ng-include></div></ion-content></ion-modal-view>'),e.put("templates/network/popover_endpoints.html",'<ion-popover-view class="popover-endpoints popover-light" style="height: {{(titleKey?30:0)+((!items || items.length &lt;= 1) ? 55 : 3+items.length*52)}}px"><ion-header-bar class="bar bar-header stable-bg" ng-if="titleKey"><div class="title">{{titleKey | translate:titleValues }}</div></ion-header-bar><ion-content scroll="false"><div class="list" ng-class="{\'has-header\': titleKey}"><div class="item item-text-wrap" ng-repeat="item in items"><div class="item-label" ng-if="item.label">{{item.label | translate}}</div><div id="endpoint_{{$index}}" class="badge item-note dark">{{item.value}}</div></div></div></ion-content></ion-popover-view>'),e.put("templates/network/popover_network.html",""),e.put("templates/network/popover_peer_info.html",""),e.put("templates/network/view_network.html",'<ion-view><ion-nav-title><span translate="">MENU.NETWORK</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="refresh()"></button></ion-nav-buttons><ion-content scroll="true" ng-init="enableFilter=true; ionItemClass=\'item-border-large\';"><div class="row responsive-sm responsive-md responsive-lg"><div class="col list col-border-right"><div class="padding padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4><span ng-if="enableFilter && search.type==\'member\'" translate="">PEER.MEMBER_PEERS</span> <span ng-if="enableFilter && search.type==\'mirror\'" translate="">PEER.MIRROR_PEERS</span> <span ng-if="enableFilter && search.type==\'offline\'" translate="">PEER.OFFLINE_PEERS</span> <span ng-if="!enableFilter || !search.type" translate="">PEER.ALL_PEERS</span> <span ng-if="search.results.length">({{search.results.length}})</span><ion-spinner ng-if="search.loading" class="icon ion-spinner-small" icon="android"></ion-spinner></h4></div><div class="pull-right"><div class="pull-right" ng-if="enableFilter">&nbsp;<cs-extension-point name="network-buttons"></cs-extension-point></div></div></div><div id="helptip-network-blockchain" style="display: block"></div><div id="helptip-network-peers" style="display: block"></div><ng-include src="\'templates/network/items_peers.html\'"></ng-include></div><div class="col col-33" ng-controller="BlockLookupCtrl"><div class="padding padding-xs" style="display: block; height: 100px"><h4 translate="">BLOCKCHAIN.LOOKUP.LAST_BLOCKS</h4></div><ng-include src="\'templates/blockchain/list_blocks.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("templates/network/view_peer.html",'<ion-view><ion-nav-title><span translate="">PEER.VIEW.TITLE</span></ion-nav-title><ion-content><div class="row no-padding"><div class="col list"><ion-item><h1><span translate="">PEER.VIEW.TITLE</span> <span class="gray">{{node.host}}</span></h1><h2 class="gray"><i class="gray icon ion-android-globe"></i> {{node.bma.dns || node.server}} <span class="gray" ng-if="!loading && node.useSsl"><i class="gray ion-locked"></i> <small>SSL</small> </span><span class="gray" ng-if="!loading && node.useTor"><i class="gray ion-bma-tor-api"></i> </span><span class="assertive" ng-if="!loading && !node.uid">({{\'PEER.MIRROR\'|translate}})</span></h2><h3><span class="dark"><i class="icon ion-android-desktop"></i> {{\'PEER.VIEW.OWNER\'|translate}} </span><a class="positive" ng-if="node.uid" ui-sref="app.wot_identity({pubkey: node.pubkey, uid: node.uid})"><i class="ion-person"></i> {{node.name || node.uid}} <span class="gray" ng-if="node.name">({{node.uid}}) </span></a><span ng-if="!loading && !node.uid"><a class="gray" ui-sref="app.wot_identity({pubkey: node.pubkey})"><i class="ion-key"></i> {{node.pubkey|formatPubkey}} <span class="gray" ng-if="node.name">({{node.name}})</span></a></span></h3><h3><a ng-click="openRawPeering($event)"><i class="icon ion-share"></i> {{\'PEER.VIEW.SHOW_RAW_PEERING\'|translate}} </a><span class="gray" ng-if="!isReachable">| </span><a ng-if="!isReachable" ng-click="openRawCurrentBlock($event)"><i class="icon ion-share"></i> <span translate="">PEER.VIEW.SHOW_RAW_CURRENT_BLOCK</span></a></h3></ion-item><div class="item item-divider" translate="">PEER.VIEW.GENERAL_DIVIDER</div><ion-item class="item-icon-left item-text-wrap ink" copy-on-click="{{node.pubkey}}"><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><h4 class="dark text-left">{{node.pubkey}}</h4></ion-item><a class="item item-icon-left item-icon-right item-text-wrap ink" ng-if="isReachable" ui-sref="app.view_server_block_hash({server: node.server, ssl: node.useSsl, tor: node.useTor, number: current.number, hash: current.hash})"><i class="icon ion-cube"></i> <span translate="">BLOCKCHAIN.VIEW.TITLE_CURRENT</span><div class="badge badge-calm" ng-if="!loading">{{current.number|formatInteger}}</div><i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-icon-right item-text-wrap ink" ng-if="isReachable" ui-sref="app.server_blockchain({server: node.server, ssl: node.useSsl, tor: node.useTor})"><i class="icon ion-cube" style="font-size: 25px"></i> <i class="icon-secondary ion-clock" style="font-size: 18px; left: 33px; top: -12px"></i> <span translate="">PEER.VIEW.LAST_BLOCKS</span> <i class="gray icon ion-ios-arrow-right"></i></a><cs-extension-point name="general"></cs-extension-point><div class="item item-divider" ng-hide="loading || !isReachable" translate="">PEER.VIEW.KNOWN_PEERS</div><ion-item class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-show="!loading && !isReachable"><small><i class="icon ion-alert-circled"></i> {{\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></ion-item><div class="item center" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><div class="list no-padding {{::motion.ionListClass}}" ng-if="isReachable"><div ng-repeat="peer in :rebind:peers track by peer.id" class="item item-peer item-icon-left ink {{::ionItemClass}}" ng-click="selectPeer(peer)" ng-include="\'templates/network/item_content_peer.html\'"></div></div></div></div></ion-content></ion-view>'),e.put("templates/settings/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink visible-xs visible-sm" ng-click="reset()"><i class="icon ion-refresh"></i> {{\'SETTINGS.BTN_RESET\' | translate}} </a><a class="item item-icon-left ink" ng-click="startSettingsTour()"><i class="icon ion-easel"></i> {{\'COMMON.BTN_HELP_TOUR_SCREEN\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/settings/popup_node.html",'<form name="popupForm" ng-submit=""><div class="list no-padding" ng-init="setPopupForm(popupForm)"><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': popupForm.$submitted && popupForm.newNode.$invalid}"><span class="input-label" ng-bind-html="\'SETTINGS.POPUP_PEER.HOST\'|translate"></span> <input name="newNode" type="text" placeholder="{{\'SETTINGS.POPUP_PEER.HOST_HELP\' | translate}}" ng-model="popupData.newNode" ng-minlength="3" required></div><div class="form-errors" ng-if="popupForm.$submitted && popupForm.newNode.$error" ng-messages="popupForm.newNode.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="item item-toggle"><span class="input-label">{{\'SETTINGS.POPUP_PEER.USE_SSL\' | translate}}</span><h4><small class="gray" ng-bind-html="\'SETTINGS.POPUP_PEER.USE_SSL_HELP\' | translate"></small></h4><label class="toggle toggle-royal no-padding-right"><input type="checkbox" ng-model="popupData.useSsl"><div class="track"><div class="handle"></div></div></label></div><a class="button button-positive button-clear positive button-outline button-full button-small-padding icon-left ink no-padding" ng-click="showNodeList()"><i class="icon ion-search"></i> {{\'SETTINGS.POPUP_PEER.BTN_SHOW_LIST\' | translate}}</a></div><button type="submit" class="hide"></button></form>'),e.put("templates/settings/settings.html",'<ion-view left-buttons="leftButtons" cache-view="false" class="settings"><ion-nav-title translate="">SETTINGS.TITLE</ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><div class="row no-padding responsive-sm responsive-md responsive-lg"><div class="col col-50 list item-border-large padding-left padding-right no-padding-xs no-padding-sm" style="margin-bottom: 2px"><span class="item item-divider" translate="">SETTINGS.DISPLAY_DIVIDER</span><label class="item item-input item-select"><div class="input-label" translate="">COMMON.LANGUAGE</div><select ng-model="formData.locale" ng-change="changeLanguage(formData.locale.id)" ng-options="l as l.label for l in locales track by l.id"></select></label><div class="item item-toggle dark"><div class="input-label">{{\'COMMON.BTN_RELATIVE_UNIT\' | translate}}</div><label class="toggle toggle-royal" id="helptip-settings-btn-unit-relative"><input type="checkbox" ng-model="formData.useRelative"><div class="track"><div class="handle"></div></div></label></div><div class="item item-toggle dark item-text-wrap"><div class="input-label" ng-bind-html="\'SETTINGS.ENABLE_HELPTIP\' | translate"></div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.helptip.enable"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.STORAGE_DIVIDER</span><div class="item item-text-wrap item-toggle dark"><div class="input-label">{{\'SETTINGS.USE_LOCAL_STORAGE\' | translate}}</div><h4 class="gray" ng-bind-html="\'SETTINGS.USE_LOCAL_STORAGE_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useLocalStorage"><div class="track"><div class="handle"></div></div></label></div><cs-extension-point name="common"></cs-extension-point><span class="item item-divider">{{\'SETTINGS.AUTHENTICATION_SETTINGS\' | translate}}</span><div class="item item-toggle item-text-wrap"><div class="input-label" ng-class="{\'gray\': !formData.useLocalStorage}">{{\'SETTINGS.REMEMBER_ME\' | translate}}</div><h4 class="gray text-wrap" ng-bind-html="\'SETTINGS.REMEMBER_ME_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.rememberMe" ng-disabled="!formData.useLocalStorage"><div class="track"><div class="handle"></div></div></label></div><label class="item item-input item-select item-text-wrap"><div class="input-label hidden-xs"><span class="hidden-xs" translate="">SETTINGS.KEEP_AUTH</span><h4 class="gray text-wrap hidden-xs" ng-bind-html="\'SETTINGS.KEEP_AUTH_HELP\' | translate"></h4></div><span class="visible-xs" translate="">SETTINGS.KEEP_AUTH_SHORT</span><select ng-model="formData.keepAuthIdle" ng-options="i as (keepAuthIdleLabels[i].labelKey | translate:keepAuthIdleLabels[i].labelParams ) for i in keepAuthIdles track by i"></select></label></div><div class="col col-50 list item-border-large padding-left padding-right no-padding-xs no-padding-sm no-margin-xs no-margin-sm"><span class="item item-divider">{{\'SETTINGS.WALLETS_SETTINGS\' | translate}}</span><div class="item item-toggle item-text-wrap dark"><span class="input-label" ng-class="{\'gray\': !formData.useLocalStorage}" translate="">SETTINGS.USE_WALLETS_ENCRYPTION</span><h4 class="gray text-wrap" ng-bind-html="\'SETTINGS.USE_WALLETS_ENCRYPTION_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useLocalStorageEncryption" ng-disabled="!formData.useLocalStorage"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.HISTORY_SETTINGS</span><div class="item item-toggle item-text-wrap dark"><div class="input-label" translate="">SETTINGS.DISPLAY_UD_HISTORY</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.showUDHistory"><div class="track"><div class="handle"></div></div></label></div><cs-extension-point name="history"></cs-extension-point><span class="item item-divider" translate="">SETTINGS.NETWORK_SETTINGS</span><ion-item class="ink item-icon-right visible-xs visible-sm" ng-click="changeNode()"><div class="input-label hidden-xs" translate="">SETTINGS.PEER</div><div class="input-label visible-xs" translate="">SETTINGS.PEER_SHORT</div><ng-if ng-if="formData.node.temporary"><h4 class="gray text-wrap assertive"><b class="ion-alert-circled"></b> <span ng-bind-html="\'SETTINGS.PEER_CHANGED_TEMPORARY\' | translate "></span></h4><div class="badge badge-assertive">{{bma.server}}</div></ng-if><div class="badge badge-balanced" ng-if="!formData.node.temporary">{{bma.server}}</div><i class="icon ion-ios-arrow-right"></i></ion-item><label class="item item-input item-select item-text-wrap"><div class="input-label hidden-xs"><span translate="">SETTINGS.BLOCK_VALIDITY_WINDOW</span><h4 class="gray text-wrap hidden-xs" ng-bind-html="\'SETTINGS.BLOCK_VALIDITY_WINDOW_HELP\' | translate"></h4></div><div class="input-label visible-xs" translate="">SETTINGS.BLOCK_VALIDITY_WINDOW_SHORT</div><select ng-model="formData.blockValidityWindow" ng-options="i as (blockValidityWindowLabels[i].labelKey | translate:blockValidityWindowLabels[i].labelParams ) for i in blockValidityWindows track by i"></select></label><cs-extension-point name="network"></cs-extension-point><span class="item item-divider" ng-if="$root.config.plugins" translate="">SETTINGS.PLUGINS_SETTINGS</span><cs-extension-point name="plugins"></cs-extension-point></div></div></ion-content></ion-view>'),e.put("templates/wallet/item_tx.html",'<i class="icon item-image" ng-if="::!tx.avatar" ng-class="::{\'ion-person dark\': tx.uid, \'ion-card dark\': !tx.uid}"></i> <i class="avatar" ng-if="::tx.avatar" style="background-image: url({{::tx.avatar.src}})"></i><div class="row no-padding"><div class="col col-pubkey no-padding"><a class="" ui-sref="app.wot_identity({pubkey:tx.pubkey, uid:tx.uid})" ng-if="::tx.uid">{{::tx.name||tx.uid}} </a><a class="gray" ui-sref="app.wot_identity({pubkey:tx.pubkey, uid:tx.uid})" ng-if="::!tx.uid && tx.pubkey"><i class="ion-key gray"></i> {{::tx.pubkey | formatPubkey}} <span ng-if="::tx.name">- {{::tx.name | truncText:40}}</span></a><p ng-if="::tx.pubkeys" class="pubkeys"><a class="gray" ng-repeat="pubkey in ::tx.pubkeys.slice(0, 4)" ui-sref="app.wot_identity({pubkey:pubkey})"><i class="ion-key gray"></i>&nbsp;{{::pubkey | formatPubkey}} </a><span ng-if="::tx.pubkeys.length &gt; 4">...</span></p><p class="dark visible-xs comment text-italic" ng-if="::tx.comment" title="{{::tx.comment}}"><i class="ion-ios-chatbubble-outline"></i> {{::tx.comment}}<br></p><h4><a ng-if="::!pending" class="gray underline" ui-sref="app.view_block({number: tx.block_number})">{{::tx.time | medianFromNowAndDate: false}} </a><span ng-if="::pending" class="gray">{{::tx.time | medianFromNowAndDate: false}}</span></h4></div><div class="col col-50 col-comment no-padding padding-left hidden-xs" ng-if="::tx.comment"><p class="vertical-center gray text-italic" data-toggle="tooltip" title="{{::tx.comment}}">{{::tx.comment}}</p></div><div class="col col-10 no-padding"><span ng-if="::!tx.lockedOutputs" class="badge item-note" ng-class="{\'badge-calm\': tx.amount > 0, \'badge-white\': tx.amount <= 0}"><span ng-bind-html=":rebind:tx.amount| formatAmount:{currency:$root.currency.name}"></span> </span><a ng-if=":rebind:tx.lockedOutputs" class="badge item-note" ng-class="{\'badge-calm\': tx.amount > 0}" ng-click="showLockedOutputsPopover(tx, $event)"><b class="ion-locked"></b> <span ng-bind-html=":rebind:tx.amount| formatAmount:{currency:$root.currency.name}"></span></a><div class="badge badge-secondary" ng-if="$root.settings.expertMode">(<span ng-bind-html=":rebind:tx.amount| formatAmount:{useRelative: !$root.settings.useRelative, currency:$root.currency.name}"></span>)</div></div></div>'),e.put("templates/wallet/item_ud.html",'<i class="icon item-image ion-arrow-up-c energized"></i><div class="row no-padding"><div class="col no-padding"><span class="energized" translate>COMMON.UNIVERSAL_DIVIDEND</span><h4><a class="gray underline" ui-sref="app.view_block({number: tx.block_number})">{{::tx.time | medianFromNowAndDate}}</a></h4></div><div class="col col-10 no-padding"><span class="badge item-note badge-energized"><span ng-bind-html=":rebind:tx.amount| formatAmount:{currency:$root.currency.name}"></span></span><div class="badge badge-secondary" ng-if="$root.settings.expertMode">(<span ng-bind-html=":rebind:tx.amount| formatAmount:{useRelative: !$root.settings.useRelative, currency:$root.currency.name}"></span>)</div></div></div>'),
+e.put("templates/wallet/modal_security.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="slidePrev()" ng-if="slides.slider.activeIndex"></button><h1 class="title hidden-xs" translate="">ACCOUNT.SECURITY.TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="!isLastSlide && slides.slider.activeIndex > 0" ng-click="doNext()"><span translate="">COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-positive button-icon button-clear icon ion-android-done visible-xs" ng-click="doNext()" ng-if="isLastSlide && option === \'saveID\'"></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page><ion-content class="has-header padding"><div class="list"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectOption(\'recoverID\')" ng-if="!login"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-person"></i> <b class="ion-ios-undo icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.RECOVER_ID</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.RECOVER_ID_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectOption(\'revocation\')" ng-if="!login"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-person"></i> <b class="ion-close icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.REVOCATION_WITH_FILE</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.REVOCATION_WITH_FILE_DESCRIPTION</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink hidden-xs" ng-click="selectOption(\'saveID\')" ng-if="login && !$root.device.enable"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-person"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b> <b class="ion-locked icon-secondary dark" style="top: 0px; left: 40px; font-size: 8px"></b><h2 translate="">ACCOUNT.SECURITY.SAVE_ID</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.SAVE_ID_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink hidden-xs" ng-click="selectOption(\'generateKeyfile\')" ng-if="login && !$root.device.enable"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-key icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.GENERATE_KEYFILE</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.GENERATE_KEYFILE_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="self()" ng-if="needSelf"><div class="item-content item-text-wrap"><i class="item-image icon ion-person dark"></i> <b class="ion-flag icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.SEND_IDENTITY</h2><h4 class="gray" ng-bind-html="::\'ACCOUNT.SECURITY.SEND_IDENTITY_HELP\' | translate"></h4></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="membershipIn()" ng-if="needMembership"><div class="item-content item-text-wrap"><i class="item-image icon ion-person dark"></i> <b class="ion-plus icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.MEMBERSHIP_IN</h2><h4 class="gray" ng-bind-html="::\'ACCOUNT.SECURITY.MEMBERSHIP_IN_HELP\' | translate"></h4></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="revokeWalletIdentity()" ng-if="canRevoke"><div class="item-content item-text-wrap"><i class="item-image icon ion-person assertive-900"></i> <b class="ion-close icon-secondary assertive-900" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.REVOCATION_WALLET</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.REVOCATION_WALLET_HELP</h4></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate="">COMMON.BTN_CANCEL</button></div></ion-content></ion-slide-page><ion-slide-page ng-if="option == \'revocation\'"><ng-include src="\'templates/wallet/slides/slides_revocation_file.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="login && option == \'saveID\'"><ng-include src="\'templates/wallet/slides/slides_saveID_1.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="login && option == \'saveID\'"><ng-include src="\'templates/wallet/slides/slides_saveID_2.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="option == \'recoverID\'"><ng-include src="\'templates/wallet/slides/slides_recoverID_1.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="option == \'recoverID\'"><ng-include src="\'templates/wallet/slides/slides_recoverID_2.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="option == \'recoverID\'"><ng-include src="\'templates/wallet/slides/slides_recoverID_3.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="login && option == \'generateKeyfile\'"><ng-include src="\'templates/wallet/slides/slides_generate_keyfile.html\'"></ng-include></ion-slide-page></ion-slides></ion-modal-view>'),e.put("templates/wallet/modal_transfer.html",'<ion-modal-view id="transfer" class="modal-full-height modal-transfer"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>TRANSFER.MODAL.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doTransfer()"></button></ion-header-bar><ion-content><ng-include src="\'templates/wallet/transfer_form.html\'"></ng-include></ion-content><ion-digit-keyboard settings="digitKeyboardSettings" ng-if="digitKeyboardVisible"></ion-digit-keyboard></ion-modal-view>'),e.put("templates/wallet/new_transfer.html",'<ion-view left-buttons="leftButtons" id="transfer"><ion-nav-title><span class="visible-xs visible-sm" translate="">TRANSFER.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doTransfer()"></button></ion-nav-buttons><ion-content scroll="true"><div class="row no-padding-xs"><div class="col no-padding-xs"><ng-include src="\'templates/wallet/transfer_form.html\'"></ng-include></div></div></ion-content><ion-digit-keyboard settings="digitKeyboardSettings" ng-if="digitKeyboardVisible"></ion-digit-keyboard></ion-view>'),e.put("templates/wallet/popover_actions.html",'<ion-popover-view class="fit has-header popover-wallet-actions"><ion-header-bar><h1 class="title" translate="">COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink visible-xs visible-sm" ng-click="showSharePopover($event)"><i class="icon ion-android-share-alt"></i> {{\'COMMON.BTN_SHARE\' | translate}} </a><a class="item item-icon-left ink" ng-if="walletData.requirements.alternatives" ng-click="showSelectIdentitiesModal()"><i class="icon ion-person"></i> <b class="icon-secondary ion-loop" style="margin-top: 4px; left: 15px"></b> {{\'ACCOUNT.BTN_SELECT_ALTERNATIVES_IDENTITIES\' | translate}} </a><a class="item item-icon-left ink visible-xs visible-sm" ng-if="!walletData.requirements.needSelf && walletData.requirements.needRenew" ng-click="renewMembership()"><i class="icon ion-loop"></i> {{\'ACCOUNT.BTN_MEMBERSHIP_RENEW_DOTS\' | translate}} </a><a class="item item-icon-left assertive ink" ng-if="walletData.requirements.canMembershipOut" ng-click="membershipOut()"><i class="icon ion-log-out"></i> {{\'ACCOUNT.BTN_MEMBERSHIP_OUT_DOTS\' | translate}} </a><a class="item item-icon-left ink" ng-click="showSecurityModal()"><i class="icon ion-locked"></i> <span ng-bind-html="\'ACCOUNT.BTN_SECURITY_DOTS\' | translate"></span></a></div></ion-content></ion-popover-view>'),e.put("templates/wallet/popover_unit.html",'<ion-popover-view class="popover-unit"><ion-content scroll="false"><div class="list"><a class="item item-icon-left" ng-class="{ \'selected\': !formData.useRelative}" ng-click="closePopover(false)"><i class="icon" ng-class="{ \'ion-ios-checkmark-empty\': !formData.useRelative}"></i> <i ng-bind-html="$root.currency.name | currencySymbol:false"></i> </a><a class="item item-icon-left" ng-class="{ \'selected\': formData.useRelative}" ng-click="closePopover(true)"><i class="icon" ng-class="{ \'ion-ios-checkmark-empty\': formData.useRelative}"></i> <i ng-bind-html="$root.currency.name | currencySymbol:true"></i></a></div></ion-content></ion-popover-view>'),e.put("templates/wallet/popup_register.html",'<form name="registerForm" ng-submit=""><div class="list" ng-init="setRegisterForm(registerForm)"><label class="item item-input" ng-class="{\'item-input-error\': registerForm.$submitted && registerForm.pseudo.$invalid}"><input name="pseudo" type="text" placeholder="{{\'ACCOUNT.NEW.PSEUDO_HELP\' | translate}}" ng-model="formData.newUid" ng-minlength="3" required></label><div class="form-errors" ng-if="registerForm.$submitted && registerForm.pseudo.$error" ng-messages="registerForm.pseudo.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div></div></form>'),e.put("templates/wallet/transfer_form.html",'<form name="transferForm" novalidate="" ng-submit="doTransfer()"><div class="list no-padding-xs" ng-init="setForm(transferForm)"><ion-item class="item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.destPub}" tabindex="1" ng-click="showWotLookupModal()"><span class="gray" translate="">TRANSFER.TO</span> <span class="badge badge-royal animate-fade-in animate-show-hide ng-hide" ng-show="destUid"><i class="ion-person"></i> {{destUid}} </span>&nbsp; <span class="badge badge-royal" ng-show="!destUid && formData.destPub"><i class="ion-key"></i> {{formData.destPub | formatPubkey}} </span><i class="gray icon ion-ios-arrow-right"></i></ion-item><div class="form-errors" ng-if="form.$submitted && !formData.destPub"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><ion-item class="item-text-wrap ink" ng-class="{\'item-icon-right\': enableSelectWallet}" tabindex="2" ng-click="showSelectWalletModal()"><span class="gray" translate="">TRANSFER.FROM</span> <span class="badge animate-fade-in animate-show-hide ng-hide" ng-show="!loading" ng-class="{\'badge-assertive\': (convertedBalance <= 0 || form.amount.$error.max), \'badge-balanced\': (convertedBalance > 0 && (!form.amount.$error.max)) }"><ion-spinner icon="android" ng-show="!walletData.pubkey"></ion-spinner><span ng-if="walletData.pubkey && !walletData.isMember"><i class="ion-key"></i> {{walletData.pubkey| formatPubkey}}&nbsp;&nbsp; </span><span ng-if="walletData.isMember"><i class="ion-person"></i> {{walletData.name||walletData.uid}}&nbsp;&nbsp; </span><span ng-bind-html="walletData.balance|formatAmount:{useRelative: formData.useRelative, currency:currency}"></span> </span><i class="gray icon ion-ios-arrow-right" ng-if="enableSelectWallet"></i></ion-item><ion-item class="item-input item-floating-label item-button-right" ng-class="{\'item-input-error\': form.$submitted && form.amount.$invalid}"><div class="input-label"><span translate="">TRANSFER.AMOUNT</span> (<span ng-bind-html="$root.currency.name | currencySymbol:formData.useRelative"></span>)</div><input type="text" tabindex="-1" autocomplete="off" class="hidden-no-device" name="amount" placeholder="{{::\'TRANSFER.AMOUNT_HELP\' | translate}}" ng-model="formData.amount" required number-float=""><div class="block hidden-no-device" style="position:absolute; opacity:0; z-index:100; top: 0; left: 0; height: 100%; width: 100%" tabindex="4" ng-click="showDigitKeyboard()"></div><a class="button button-clear button-stable dark ink" tabindex="-1" style="z-index:110; padding: 0px 16px" ng-click="showUnitPopover($event)"><span ng-bind-html="$root.currency.name | currencySymbol:formData.useRelative"></span> &nbsp;<b class="ion-arrow-down-b" style="font-size: 12pt"></b></a></ion-item><div class="form-errors" ng-show="form.$submitted && form.amount.$error" ng-messages="form.amount.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="numberFloat"><span translate="ERROR.FIELD_NOT_NUMBER"></span></div><div class="form-error" ng-message="numberInt"><span translate="ERROR.FIELD_NOT_INT"></span></div><div class="form-error" ng-message="min"><span translate="ERROR.FIELD_MIN" translate-values="{min: minAmount}"></span></div><div class="form-error" ng-message="max"><span translate="ERROR.NOT_ENOUGH_CREDIT"></span></div></div><a class="item item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.destPub}" ng-click="showWotLookupModal(\'restPub\')" tabindex="5" ng-if="formData.all && formData.restAmount"><span class="gray"><i translate="">TRANSFER.REST</i><ng-if ng-if="formData.restAmount">(<i ng-bind-html="formData.restAmount|formatAmount:{useRelative: formData.useRelative, currency:currency}"></i>)</ng-if><i translate="">TRANSFER.REST_TO</i> </span><span class="badge badge-royal animate-fade-in animate-show-hide ng-hide" ng-show="restUid"><i class="ion-person"></i> {{restUid}} </span>&nbsp; <span class="badge badge-royal" ng-show="!restUid && formData.restPub"><i class="ion-key"></i> {{formData.restPub | formatPubkey}} </span><i class="gray icon ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && formData.all && !formData.restPub && formData.restAmount &gt; 0"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="pull-right visible-xs visible-sm" ng-if="!formData.useComment"><a class="button button-text button-small ink" tabindex="-1" ng-click="addComment()"><i class="icon ion-plus"></i> <span translate="">TRANSFER.BTN_ADD_COMMENT</span></a></div><label class="item item-input item-floating-label visible-xs visible-sm" ng-if="formData.useComment" ng-class="{\'item-input-error\': form.$submitted && form.comment.$invalid}"><span class="input-label">{{\'TRANSFER.COMMENT\' | translate}}</span> <input type="text" placeholder="{{\'TRANSFER.COMMENT_HELP\' | translate}}" id="{{commentInputId}}" tabindex="7" name="comment" autocomplete="off" ng-model="formData.comment" ng-model-options="{ debounce: 650 }" ng-maxlength="255" ng-pattern="commentPattern" ng-focus="hideDigitKeyboard()"></label><div class="form-errors" ng-show="form.comment.$error" ng-messages="form.comment.$error"><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.FIELD_ACCENT"></span></div></div><div class="item item-icon-left item-text-wrap item-no-border visible-xs visible-sm" ng-if="formData.useComment"><i class="icon ion-android-alert positive"></i><h4 class="positive" translate="">TRANSFER.WARN_COMMENT_IS_PUBLIC</h4></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" tabindex="-1" ng-click="cancel()" type="button" translate="">COMMON.BTN_CANCEL</button> <button class="button ink" tabindex="8" ng-class="{\'button-assertive\': formData.all, \'button-positive\': !formData.all}" type="submit" translate="">TRANSFER.BTN_SEND</button></div></form>'),e.put("templates/wallet/tx_locked_outputs_popover.html",'<ion-popover-view class="fit popover-locked-outputs"><ion-header-bar><h1 class="title" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.TITLE</h1></ion-header-bar><ion-content scroll="true"><div ng-if="popoverData.lockedOuputs.length == 1" class="item item-text-wrap no-border"><h4 class="positive" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.DESCRIPTION</h4></div><div ng-if="popoverData.lockedOuputs.length > 1" class="item item-text-wrap no-border"><h4 class="positive" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.DESCRIPTION_MANY</h4></div><div ng-repeat="output in popoverData.lockedOuputs track by $index" class="item"><h2 class="gray" ng-if="popoverData.lockedOuputs.length > 1" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.LOCKED_AMOUNT</h2><div ng-if="popoverData.lockedOuputs.length > 1" class="badge item-note" ng-class="{\'badge-balanced\': output.amount > 0}"><i class="icon ion-locked"></i> <span ng-bind-html="::output.amount| formatAmount"></span> <span ng-bind-html="::unit"></span></div><div ng-repeat="condition in output.unlockConditions track by $index" class="row" ng-class="::{\'padding-top\': !$index && popoverData.lockedOuputs.length > 1}" ng-style="::condition.style"><span class="gray" ng-if="::condition.operator">{{::\'BLOCKCHAIN.VIEW.TX_OUTPUT_OPERATOR.\'+condition.operator|translate}}&nbsp;</span><div ng-if="::condition.type==\'SIG\'"><i class="icon ion-key dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.SIG\' | translate"></span> <a ng-click="goState(\'app.wot_identity\', {pubkey:condition.value})" style="text-decoration: none" class="positive">{{condition.value|formatPubkey}}</a></div><div ng-if="::condition.type==\'XHX\'"><i class="icon ion-lock-combination dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.XHX\' | translate"></span> <a copy-on-click="{{::condition.value}}" class="positive">{{::condition.value|formatPubkey}}...</a></div><div ng-if="condition.type==\'CSV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CSV\' | translate"></span> {{::condition.value|formatDuration}}</div><div ng-if="condition.type==\'CLTV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CLTV\' | translate"></span> {{::condition.value|medianDate}}</div></div></div></ion-content></ion-popover-view>'),e.put("templates/wallet/view_wallet.html",'<ion-view left-buttons="leftButtons" class="view-wallet" id="wallet"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" id="helptip-wallet-options-xs" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true" class="refresher-positive-900-bg" bind-notifier="{ rebind:settings.useRelative, locale:$root.settings.locale.id}"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="positive-900-bg hero" style="max-width: 100%; display: block" ng-class="{\'hero-qrcode-active\': toggleQRCode}"><div class="content" ng-if="!loading" style="max-width: 100%"><i class="avatar" ng-if=":rebind:!formData.avatar" ng-class=":rebind:{\'avatar-wallet\': !formData.isMember, \'avatar-member\': formData.isMember}"></i> <i class="avatar" ng-if=":rebind:formData.avatar" style="background-image: url({{:rebind:formData.avatar.src}})"></i><h3 class="light" ng-if=":rebind:!enableSelectWallet"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span></h3><h3 class="light" ng-if=":rebind:enableSelectWallet"><a class="visible-xs visible-sm" style="color: lightgray" title="{{:locale:\'ACCOUNT.SELECT_WALLET_MODAL.TITLE\'|translate}}" ng-click="showSelectWalletModal($event)"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span> <small><i class="ion-arrow-down-b"></i></small></a></h3><h4><span class="assertive" ng-if=":rebind:(formData.name || formData.uid) && !formData.isMember" translate="">WOT.NOT_MEMBER_PARENTHESIS</span><cs-extension-point name="hero"></cs-extension-point></h4></div><h4 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><a ng-attr-id="{{ qrcodeId }}" class="qrcode spin pull-right" ng-class="{\'active\': toggleQRCode}" ng-click="toggleQRCode = !toggleQRCode"></a><a id="wallet-share-anchor"></a><div class="visible-xs visible-sm padding text-center" ng-if="!loading"><button class="button button-assertive button-small-padding ink" ng-if="isDefaultWallet" ng-click="logout({askConfirm: true})"><i class="icon ion-log-out"></i> {{\'COMMON.BTN_LOGOUT\' | translate}}</button><div ng-if="formData.requirements.needRenew"><br><button class="button button-raised icon-left button-stable button-small-padding ink" ng-click="renewMembership()"><i class="icon ion-loop assertive"></i> <span class="assertive">{{:locale:\'ACCOUNT.BTN_MEMBERSHIP_RENEW\' | translate}}</span></button></div></div><div class="row no-padding"><div class="col"><div class="list {{::motion.ionListClass}}" ng-hide="loading"><span class="item item-divider" translate="">WOT.GENERAL_DIVIDER</span><div id="helptip-wallet-pubkey" class="item item-icon-left item-text-wrap ink" on-hold="copy(formData.pubkey)" copy-on-click="{{:rebind:formData.pubkey}}"><i class="icon ion-key"></i> <span>{{:locale:\'COMMON.PUBKEY\'|translate}}</span><h4 id="pubkey" class="dark">{{:rebind:formData.pubkey}}</h4></div><ion-item class="item-icon-left" ng-if=":rebind:formData.sigDate||formData.uid"><i class="icon ion-calendar"></i> <span translate="">COMMON.UID</span><h5 class="dark" ng-if=":rebind:formData.sigDate"><span translate="">WOT.REGISTERED_SINCE</span> {{:rebind:formData.sigDate | medianDate}}</h5><span class="badge badge-stable">{{:rebind:formData.uid}}</span></ion-item><a id="helptip-wallet-certifications" class="item item-icon-left item-icon-right item-text-wrap ink" ng-if="formData.isMember||formData.requirements.pendingMembership||!formData.requirements.needSelf" ng-click="showCertifications()"><i class="icon ion-ribbon-b"></i> <b ng-if="formData.requirements.isSentry" class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> {{:locale:\'ACCOUNT.CERTIFICATION_COUNT\'|translate}}<cs-badge-certification requirements="formData.requirements" parameters="::currency.parameters"></cs-badge-certification><i class="gray icon ion-ios-arrow-right"></i> </a><a id="helptip-wallet-given-certifications" class="item item-icon-left item-text-wrap item-icon-right ink visible-xs visible-sm" ng-if="formData.isMember" ng-click="showGivenCertifications()"><i class="icon ion-ribbon-a"></i> <span translate="">WOT.GIVEN_CERTIFICATIONS.SENT</span> <i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="showTxHistory()"><i class="icon ion-card"></i> <span translate="">WOT.ACCOUNT_OPERATIONS</span> <i class="gray icon ion-ios-arrow-right"></i> </a><span class="item item-divider" ng-if="formData.events.length">{{:locale:\'ACCOUNT.EVENTS\' | translate}}</span><div class="item item-text-wrap item-icon-left item-wallet-event" ng-repeat="event in formData.events"><i class="icon" ng-class="{\'ion-information-circled royal\': event.type==\'info\',\'ion-alert-circled assertive\': event.type==\'warn\'||event.type==\'error\',\'assertive\': event.type==\'error\',\'ion-clock\': event.type==\'pending\'}"></i> <span trust-as-html="event.message | translate:event.messageParams"></span></div><cs-extension-point name="general"></cs-extension-point><cs-extension-point name="after-general"></cs-extension-point></div></div></div></ion-content></ion-view>'),e.put("templates/wallet/view_wallet_tx.html",'<ion-view left-buttons="leftButtons" class="view-wallet-tx"><ion-nav-title><span class="visible-xs visible-sm" translate="">MENU.TRANSACTIONS</span></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content scroll="true" class="refresher-positive-900-bg" bind-notifier="{ rebind:settings.useRelative, locale:settings.locale.id}"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="positive-900-bg hero"><div class="content" ng-if="!loading"><h1 class="light"><span ng-bind-html=":balance:rebind:formData.balance | formatAmount:{currency: $root.currency.name}"></span></h1><h4><ng-if ng-if="!loading && $root.settings.expertMode" style="font-style: italic">(<span ng-bind-html=":balance:rebind:formData.balance | formatAmount:{useRelative:!$root.settings.useRelative, currency: $root.currency.name}"></span>)</ng-if><ng-if ng-if=":rebind:!enableSelectWallet" style="color: lightgray"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span></ng-if><ng-if ng-if=":rebind:enableSelectWallet"><a class="visible-xs visible-sm" style="color: lightgray" title="{{:locale:\'ACCOUNT.SELECT_WALLET_MODAL.TITLE\'|translate}}" ng-click="showSelectWalletModal($event)"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span> <small><i class="ion-arrow-down-b"></i></small></a></ng-if></h4><div class="helptip-anchor-center"><a id="helptip-wallet-balance">&nbsp;</a></div></div><h2 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h2></div><div class="row no-padding"><div class="col"><div class="list {{::motion.ionListClass}}"><a class="item item-icon-left item-icon-right ink" ng-if="formData.tx.errors && formData.tx.errors.length" ng-click="showTxErrors()"><i class="icon ion-alert-circled"></i> {{:locale:\'ACCOUNT.ERROR_TX\'|translate}}<div class="badge badge-assertive">{{formData.tx.errors.length}}</div><i class="gray icon ion-ios-arrow-right"></i></a><ng-if ng-if="formData.tx.pendings.length"><span class="item item-pending item-divider"><b class="ion-clock"></b> {{:locale:\'ACCOUNT.PENDING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.pendings" ng-init="pending=true;" ng-include="\'templates/wallet/item_tx.html\'"></div></ng-if><ng-if ng-if="formData.tx.validating.length"><span class="item item-pending item-divider"><b class="icon ion-checkmark" style="font-size: 12px"></b> <b class="icon-secondary ion-help" style="font-size: 12px; top: 2px; left: 11px"></b> {{:locale:\'ACCOUNT.VALIDATING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.validating" ng-init="validating=true;" ng-include="::\'templates/wallet/item_tx.html\'"></div></ng-if><span class="item item-divider" ng-if="!loading"><b class="icon ion-checkmark"></b> {{:locale:\'ACCOUNT.LAST_TX\'|translate}} <a id="helptip-wallet-tx" style="position: relative; bottom: 0; right: 0px">&nbsp;</a> </span><span class="item padding" ng-if="!loading && !formData.tx.history.length"><span class="gray">{{:locale:\'ACCOUNT.NO_TX\'|translate}}</span></span><div ng-repeat="tx in formData.tx.history" class="item item-tx item-icon-left" ng-include="::!tx.isUD ? \'templates/wallet/item_tx.html\' : \'templates/wallet/item_ud.html\'"></div><div class="item item-text-wrap text-center" ng-if="formData.tx.fromTime > 0"><p><a ng-click="showMoreTx()">{{:locale:\'ACCOUNT.SHOW_MORE_TX\'|translate}}</a> <span class="gray" translate="ACCOUNT.TX_FROM_DATE" translate-values="{fromTime: formData.tx.fromTime}"></span> <span class="gray">|</span> <a ng-click="showMoreTx(-1)" translate="">ACCOUNT.SHOW_ALL_TX</a></p></div></div></div></div></ion-content><button id="fab-transfer" ng-show="!loading" class="button button-fab button-fab-bottom-right button-energized-900 hidden-md hidden-lg drop ng-hide" ng-click="showTransferModal()"><i class="icon ion-android-send"></i></button></ion-view>'),e.put("templates/wallet/view_wallet_tx_error.html",'<ion-view left-buttons="leftButtons" class="view-wallet-tx-error"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content scroll="true" class="refresher-top-bg" bind-notifier="{ rebind:settings.useRelative, locale:settings.locale.id}"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="row no-padding"><div class="col list {{::motion.ionListClass}}"><div class="item item-divider"><span><b class="ion-clock"></b> {{:locale:\'ACCOUNT.PENDING_TX_RECEIVED\'|translate}}</span><div class="badge item-note"><span ng-if="!$root.settings.useRelative">({{$root.currency.name | abbreviate}})</span> <span ng-if="$root.settings.useRelative">({{\'COMMON.UD\' | translate}}<sub>{{$root.currency.name | abbreviate}}</sub>)</span></div></div><span class="item padding" ng-if="!loading && !hasReceivedTx()"><span class="gray">{{:locale:\'ACCOUNT.NO_TX\'|translate}}</span></span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.errors | filter: filterReceivedTx" ng-init="pending=true;" ng-include="\'templates/wallet/item_tx.html\'"></div><div class="item item-divider"><span><b class="ion-close-circled"></b> {{:locale:\'ACCOUNT.ERROR_TX_SENT\'|translate}}</span><div class="badge item-note"><span ng-if="!$root.settings.useRelative">({{$root.currency.name | abbreviate}})</span> <span ng-if="$root.settings.useRelative">({{\'COMMON.UD\' | translate}}<sub>{{$root.currency.name | abbreviate}}</sub>)</span></div></div><span class="item padding" ng-if="!loading && !hasSentTx()"><span class="gray">{{:locale:\'ACCOUNT.NO_TX\'|translate}}</span></span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.errors | filter: filterSentTx" ng-init="error=true;" ng-include="\'templates/wallet/item_tx.html\'"></div></div></div></ion-content></ion-view>'),e.put("templates/wot/item_certification.html",'<i class="item-image" ng-if="!cert.avatar" ng-class="{\'ion-card\': !cert.isMember, \'ion-person\': cert.isMember}"></i> <i class="item-image avatar" ng-if="cert.avatar" style="background-image: url({{::cert.avatar.src}})"></i> <span ng-if="cert.isMember"><h3><i class="icon ion-clock" ng-if="cert.pending"></i> <span class="positive">{{::cert.name||cert.uid}}</span></h3><h4 class="gray"><i class="ion-key"></i> {{::cert.pubkey | formatPubkey}} <span class="gray">| {{::cert.time|medianDate}}</span> <span class="gray" ng-if="$root.settings.expertMode">| {{::cert.pending ? \'WOT.SIGNED_ON_BLOCK\' : \'WOT.WRITTEN_ON_BLOCK\' | translate:cert}}</span></h4></span><span ng-if="!cert.isMember"><h3><i class="icon ion-clock" ng-if="cert.pending"></i> <span ng-if="cert.uid" class="dark">{{::cert.name||cert.uid}} </span><span ng-if="!cert.uid" class="gray"><i class="ion-key"></i> {{::cert.pubkey | formatPubkey}}</span></h3><h5 class="assertive">{{::\'WOT.NOT_MEMBER_PARENTHESIS\'|translate}}</h5><h4 class="gray"><span ng-if="cert.uid"><i class="ion-key"></i> {{::cert.pubkey | formatPubkey}} </span><span class="gray">| {{::cert.time|medianDate}}</span> <span class="gray" ng-if="$root.settings.expertMode">| {{::cert.pending ? \'WOT.SIGNED_ON_BLOCK\' : \'WOT.WRITTEN_ON_BLOCK\' | translate:cert}}</span></h4></span><div class="badge badge-stable" ng-class="{\'badge-energized\': cert.willExpire}" ng-if="cert.expiresIn">{{::cert.expiresIn | formatDurationTo}}</div><div class="badge badge-assertive" ng-if="!cert.expiresIn">{{::\'WOT.EXPIRED\' | translate}}</div>'),e.put("templates/wot/item_content_identity.html",'<i ng-if="::!item.avatar" class="item-image icon ion-person"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2><ng-if ng-if="::item.name||item.uid" ng-bind-html="::item.name||item.uid"></ng-if><ng-if ng-if="::!item.name && !item.uid">{{::item.pubkey|formatPubkey}}</ng-if></h2><h4 class="gray" ng-class="{\'pull-right\': !smallscreen}" ng-if="::item.sigDate"><i class="ion-clock"></i> {{::\'WOT.LOOKUP.REGISTERED\' | translate:item }}</h4><h4 class="gray" ng-class="{\'pull-right\': !smallscreen}" ng-if="item.memberDate"><i class="ion-clock"></i> {{::\'WOT.LOOKUP.MEMBER_FROM\' | translate:item}}</h4><h4 class="gray"><span class="positive" ng-if="::item.name && item.uid"><i class="ion-person"></i> {{::item.uid}}&nbsp; </span><b class="ion-key"></b> {{::item.pubkey | formatPubkey}} <span ng-if="::(!item.uid && !item.revoked)" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span> <span ng-if="::item.revoked" class="assertive" translate>WOT.IDENTITY_REVOKED_PARENTHESIS</span></h4><h4 ng-if="::item.events||item.tags"><span ng-repeat="event in ::item.events" class="assertive"><i class="ion-alert-circled" ng-if="::!item.valid"></i> <span ng-bind-html="::event.message|translate:event.messageParams"></span> </span><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4>'),e.put("templates/wot/items_given_certifications.html",'<div class="list given-certifications" ng-class="::motions.givenCertifications.ionListClass"><span class="item item-divider hidden-xs"><span translate>WOT.GIVEN_CERTIFICATIONS.SUMMARY</span></span><div id="helptip-certs-stock" class="item item-icon-left item-text-wrap ink"><i class="icon ion-ribbon-a"></i> <span translate>WOT.GIVEN_CERTIFICATIONS.SENT</span><cs-badge-given-certification identity="formData" parameters="$root.currency.parameters"></cs-badge-given-certification></div><div class="item item-icon-left item-text-wrap ink" ng-if="formData.given_cert_error.length"><i class="icon ion-alert-circled"></i> <span translate>WOT.GIVEN_CERTIFICATIONS.ERROR</span> <span class="badge badge-assertive">{{formData.given_cert_error.length}}</span></div><span class="item item-divider" ng-if="formData.given_cert_pending.length"><span translate>WOT.GIVEN_CERTIFICATIONS.PENDING_LIST</span><div class="badge item-note" style="text-align: right !important" translate>WOT.NOT_WRITTEN_EXPIRE_IN</div></span><a class="item item-avatar ink" ng-repeat="cert in formData.given_cert_pending" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a><span class="item item-divider"><span translate>WOT.GIVEN_CERTIFICATIONS.LIST</span><div class="badge item-note" translate>WOT.EXPIRE_IN</div></span><span class="item gray" ng-if="!formData.given_cert.length" translate>WOT.NO_GIVEN_CERTIFICATION </span><a class="item item-avatar ink" ng-repeat="cert in formData.given_cert" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a></div>'),e.put("templates/wot/items_received_certifications.html",'<div class="list certifications" ng-class="::motions.receivedCertifications.ionListClass"><span class="item item-divider hidden-xs"><span translate>WOT.CERTIFICATIONS.SUMMARY</span></span><div id="helptip-received-certs" class="item item-icon-left item-text-wrap ink"><i class="icon ion-ribbon-b"></i> <b ng-if="formData.requirements.isSentry" class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span translate>WOT.CERTIFICATIONS.RECEIVED</span><h4 class="gray" ng-if="formData.requirements.isSentry" translate>WOT.CERTIFICATIONS.SENTRY_MEMBER</h4><cs-badge-certification cs-id="helptip-wot-view-certifications-count" requirements="formData.requirements" parameters="$root.currency.parameters"></cs-badge-certification></div><div class="item item-icon-left item-text-wrap ink" ng-if="formData.received_cert_error.length"><i class="icon ion-alert-circled"></i> <span translate>WOT.CERTIFICATIONS.ERROR</span> <span class="badge badge-assertive">{{formData.received_cert_error.length}}</span></div><span class="item item-divider" ng-if="formData.received_cert_pending.length"><span translate>WOT.CERTIFICATIONS.PENDING_LIST</span><div class="badge item-note" style="text-align: right !important" translate>WOT.NOT_WRITTEN_EXPIRE_IN</div></span><a class="item item-avatar ink" ng-repeat="cert in formData.received_cert_pending" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a><span class="item item-divider"><span translate>WOT.CERTIFICATIONS.LIST</span><div class="badge item-note" translate>WOT.EXPIRE_IN</div></span><span class="item gray" ng-if="!formData.received_cert.length" translate>WOT.NO_CERTIFICATION</span> <a class="item item-avatar ink" ng-repeat="cert in formData.received_cert" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a></div>'),e.put("templates/wot/lookup.html",'<ion-view left-buttons="leftButtons"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'WOT.LOOKUP.TITLE\'|translate}}" icon="ion-person-stalker" ui-sref="app.wot_lookup.tab_search"><ion-nav-view name="tab"></ion-nav-view></ion-tab><cs-extension-point name="tabs"></cs-extension-point></ion-tabs></ion-view>'),e.put("templates/wot/lookup_form.html",'<div class="lookupForm"><div class="item no-padding"><div class="double-padding-x padding-top-xs item-text-wrap" ng-if="::allowMultiple" style="height: 36px"><div class="gray padding-top" ng-if="!selection.length && parameters.help">{{::parameters.help|translate}}</div><div ng-repeat="identity in selection track by identity.id" class="button button-small button-text button-stable button-icon-event ink" ng-class="{\'button-text-positive\': identity.selected}"><span ng-bind-html="identity.name||identity.uid||(identity.pubkey|formatPubkey)"></span> <i class="icon ion-close" ng-click="removeSelection(identity, $event)">&nbsp;&nbsp;</i></div></div><div class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'WOT.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()" on-return="doSearchText()" select-on-click=""><div class="helptip-anchor-center"><a id="helptip-wot-search-text"></a></div></div></div><div class="padding-top padding-xs padding-sm" style="display: block; height: 60px" ng-class="::{\'hidden-xs hidden-sm\': !showResultLabel}"><div class="pull-left" ng-if="!search.loading && showResultLabel"><ng-if ng-if="search.type==\'newcomers\'"><h4 translate="">WOT.LOOKUP.NEWCOMERS</h4><small class="gray no-padding" ng-if="search.total">{{\'WOT.LOOKUP.NEWCOMERS_COUNT\'|translate:{count: search.total} }}</small></ng-if><ng-if ng-if="search.type==\'pending\'"><h4 translate="">WOT.LOOKUP.PENDING</h4><small class="gray no-padding" ng-if="search.total">{{\'WOT.LOOKUP.PENDING_COUNT\'|translate:{count: search.total} }}</small></ng-if><h4 ng-if="search.type==\'text\'"><span translate="">COMMON.RESULTS_LIST</span> <small class="gray" ng-if="search.total">({{search.total}})</small></h4></div></div><div class="text-center padding-top" ng-if="search.loading"><p class="gray" ng-if="::$root.currency.initPhase" translate="">WOT.SEARCH_INIT_PHASE_WARNING</p><ion-spinner icon="android"></ion-spinner></div><ng-if ng-if="!search.loading"><div class="assertive padding" ng-if="!search.results.length"><span ng-if="search.type==\'text\'" translate="">COMMON.SEARCH_NO_RESULT</span> <span ng-if="search.type==\'pending\'" translate="">WOT.LOOKUP.NO_PENDING</span> <span ng-if="search.type==\'newcomers\'" translate="">WOT.LOOKUP.NO_NEWCOMERS</span></div><ion-list ng-if="::!allowMultiple && $root.device.enable" class="{{::motion.ionListClass}}" can-swipe="true"><ng-repeat ng-repeat="item in search.results track by item.id"><div ng-if="::item.divider" class="item item-divider" id="helptip-wot-search-result-{{$index}}">{{::(\'WOT.SEARCH.DIVIDER_\' + item.index)|upper|translate}}</div><ion-item ng-if="::!item.divider" id="helptip-wot-search-result-{{$index}}" class="item item-border-large item-avatar item-icon-right ink" ng-click="::select(item)"><ng-include src="item.templateUrl || \'templates/wot/item_content_identity.html\'"></ng-include><i class="icon ion-ios-arrow-right"></i><ion-option-button class="button-positive" ng-click="showTransferModal({pubkey: item.pubkey, uid: item.name ||item.uid})" translate="">COMMON.BTN_SEND_MONEY_SHORT</ion-option-button></ion-item></ng-repeat></ion-list><div ng-if="::allowMultiple" class="list {{::motion.ionListClass}}"><ion-checkbox ng-repeat="item in search.results track by item.id" ng-model="item.checked" class="item item-border-large item-avatar ink" ng-click="toggleCheck($index, $event)"><ng-include src="\'templates/wot/item_content_identity.html\'"></ng-include></ion-checkbox></div><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="20%"></ion-infinite-scroll></ng-if></div>'),e.put("templates/wot/lookup_lg.html",'<ion-view><ion-nav-title>{{\'MENU.WOT\' | translate}}</ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-qr-scanner hidden-no-device" ng-if="$root.device.barcode.enable" ng-click="scanQrCode()"></button> <button class="button button-icon button-clear visible-xs visible-sm" ng-click="showActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></ion-nav-buttons><ion-content class="padding no-padding-x no-padding-sm" scroll="true"><cs-extension-point name="top"></cs-extension-point><ng-include src="\'templates/wot/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/wot/lookup_popover_actions.html",'<ion-popover-view class="fit has-header visible-sm visible-xs"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-if="enableWallets" ng-click="doGetWallets()"><i class="icon ion-card"></i> {{\'MENU.WALLETS\' | translate}} </a><a class="item item-icon-left ink" ng-click="doGetNewcomers()"><i class="icon ion-person"></i> {{\'WOT.LOOKUP.BTN_NEWCOMERS\' | translate}} </a><a class="item item-icon-left ink" ng-click="doGetPending()"><i class="icon ion-clock"></i> {{\'WOT.LOOKUP.BTN_PENDING\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/wot/modal_lookup.html",'<ion-modal-view id="wotLookup" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title hidden-xs">{{::parameters.title?parameters.title:\'WOT.MODAL.TITLE\'|translate}}</h1><button class="button button-clear icon-right visible-xs ink" ng-if="allowMultiple && selection.length" ng-click="closeModal(selection)">{{::parameters.okText||\'COMMON.BTN_NEXT\' | translate}} <i ng-if="::!parameters.okText||parameters.okIcon" class="icon {{::parameters.okIcon||\'ion-ios-arrow-right\'}}"></i></button></ion-header-bar><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><div class="visible-xs visible-sm text-right stable-bg stable"><button class="button button-icon button-small-padding dark hidden-no-device ink" ng-if="$root.device.barcode.enable" ng-click="scanQrCode()"><i class="icon ion-qr-scanner"></i></button> <button class="button button-icon button-small-padding dark ink" ng-click="showActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></div><ng-include src="\'templates/wot/lookup_form.html\'"></ng-include></ion-content></ion-modal-view>'),e.put("templates/wot/modal_select_pubkey_identity.html",'<ion-modal-view id="transfer" class="modal-full-height modal-transfer"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>ACCOUNT.SELECT_IDENTITY_MODAL.TITLE</h1></ion-header-bar><ion-content scroll="true"><div class="padding"><p trust-as-html="\'ACCOUNT.SELECT_IDENTITY_MODAL.HELP\'|translate:{pubkey: pubkey}"></p></div><ion-list><ion-item class="item-avatar item-icon-right" ng-repeat="item in identities" ng-click="closeModal(item)"><i class="item-image icon ion-person"></i><h2>{{item.uid}}</h2><h4 class="gray"><b class="ion-key"></b> {{::item.pubkey | formatPubkey}} <span ng-if="::!item.revoked && !item.pendingRevocation && !item.isMember" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span> <span ng-if="::item.revoked || item.pendingRevocation" class="assertive bold" translate>WOT.IDENTITY_REVOKED_PARENTHESIS</span> <span ng-if="::item.meta.invalid" class="assertive" translate>ERROR.WOT_PENDING_INVALID_BLOCK_HASH</span></h4><h4 class="dark" ng-if="::item.meta.time"><i class="ion-calendar"></i> <span translate>WOT.REGISTERED_SINCE</span> {{::item.meta.time|medianDate}}</h4><ng-if ng-if="::!item.revoked && !item.pendingRevocation && (item.certificationCount || item.pendingCertificationCount)"><cs-badge-certification requirements="item" parameters="$root.currency.parameters"></cs-badge-certification><div class="gray badge badge-secondary hidden-xs"><span translate>ACCOUNT.CERTIFICATION_COUNT</span></div></ng-if><i class="icon ion-ios-arrow-right"></i></ion-item></ion-list></ion-content></ion-modal-view>'),e.put("templates/wot/view_certifications.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm">{{::formData.name||formData.uid}}</span></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content class="certifications certifications-lg"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate()"></ion-refresher><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="row responsive-sm responsive-md responsive-lg"><div class="col no-padding" ng-if="motions.receivedCertifications.enable"><ng-include src="\'templates/wot/items_received_certifications.html\'"></ng-include></div><div class="col no-padding" ng-if="motions.givenCertifications.enable"><ng-include src="\'templates/wot/items_given_certifications.html\'"></ng-include></div></div></ion-content><div class="visible-xs visible-sm"><button id="fab-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-if="canCertify && !alreadyCertified" ng-click="certify()"><i class="icon ion-ribbon-b"></i></button> <button id="fab-select-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-if="canSelectAndCertify" ng-click="selectAndCertify()"><i class="icon ion-plus"></i></button></div></ion-view>'),e.put("templates/wot/view_identity.html",'<ion-view left-buttons="leftButtons" class="view-identity"><ion-nav-title></ion-nav-title><ion-content scroll="true" ng-class="{\'member\': !loading && formData.isMember}"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="hero" ng-class="{\'hero-qrcode-active\': toggleQRCode}"><div class="content" ng-if="!loading"><i class="avatar" ng-if=":rebind:!formData.avatar" ng-class="{\'avatar-wallet\': !formData.isMember, \'avatar-member\': formData.isMember}"></i> <i class="avatar" ng-if=":rebind:formData.avatar" style="background-image: url({{::formData.avatar.src}})"></i><ng-if ng-if=":rebind:formData.name"><h3 class="light">{{::formData.name}}</h3></ng-if><ng-if ng-if=":rebind:!formData.name"><h3 class="light" ng-if=":rebind:formData.uid">{{:rebind:formData.uid}}</h3><h3 class="light" ng-if=":rebind:!formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</h3></ng-if><h4><ng-if class="assertive" ng-if=":rebind:(formData.name || formData.uid) && !formData.isMember && revoked" translate="">WOT.IDENTITY_REVOKED_PARENTHESIS</ng-if><ng-if class="assertive" ng-if=":rebind:(formData.name || formData.uid) && formData.isMember && revoked" translate="">WOT.MEMBER_PENDING_REVOCATION_PARENTHESIS</ng-if><cs-extension-point name="hero"></cs-extension-point></h4></div><h4 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><div ng-attr-id="{{ qrcodeId }}" class="qrcode spin" ng-class="{\'active\': toggleQRCode}" ng-click="toggleQRCode = !toggleQRCode"></div><a id="wot-share-anchor-{{::formData.pubkey}}"></a><div class="visible-xs visible-sm"><button id="fab-certify-{{:rebind:formData.uid}}" class="button button-fab button-fab-top-left button-fab-hero button-calm spin" ng-if=":rebind:(canCertify && !alreadyCertified)" ng-click="certify()"><i class="icon ion-ribbon-b"></i></button><cs-extension-point name="buttons-top-fab"></cs-extension-point></div><div class="row no-padding"><div class="col list {{::motion.ionListClass}}" bind-notifier="{ rebind:loading}"><span class="item item-divider" translate="">WOT.GENERAL_DIVIDER</span><ion-item class="item-icon-left item-text-wrap ink" copy-on-click="{{:rebind:formData.pubkey}}"><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><h4 id="pubkey" class="dark text-left">{{:rebind:formData.pubkey}}</h4></ion-item><div class="item item-icon-left item-text-wrap" ng-if=":rebind:!formData.hasSelf"><i class="icon ion-ios-help-outline positive"></i> <span translate="">WOT.NOT_MEMBER_ACCOUNT</span><h4 class="gray" translate="">WOT.NOT_MEMBER_ACCOUNT_HELP</h4></div><ion-item class="item-icon-left" ng-if=":rebind:formData.sigDate||formData.uid"><i class="icon ion-calendar"></i> <span translate="">COMMON.UID</span><h5 class="dark" ng-if=":rebind:formData.sigDate "><span translate="">WOT.REGISTERED_SINCE</span> {{:rebind:formData.sigDate|medianDate}}</h5><span class="badge badge-energized">{{:rebind:formData.uid}}</span></ion-item><a id="helptip-wot-view-certifications" class="item item-icon-left item-text-wrap item-icon-right ink" ng-if=":rebind:formData.hasSelf" ng-click="showCertifications()"><i class="icon ion-ribbon-b"></i> <b ng-if=":rebind:formData.requirements.isSentry" class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span translate="">ACCOUNT.CERTIFICATION_COUNT</span><cs-badge-certification cs-id="helptip-wot-view-certifications-count" requirements="formData.requirements" parameters="{sigQty: formData.sigQty}"></cs-badge-certification><i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-text-wrap item-icon-right ink visible-xs visible-sm" ng-if=":rebind:formData.hasSelf && formData.isMember" ng-click="showGivenCertifications()"><i class="icon ion-ribbon-a"></i> <span translate="">WOT.GIVEN_CERTIFICATIONS.SENT</span><cs-badge-given-certification identity="formData" parameters="$root.currency.parameters"></cs-badge-given-certification><i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-icon-right ink" ng-if="!loading" ui-sref="app.wot_identity_tx_uid({uid:formData.uid,pubkey:formData.pubkey})"><i class="icon ion-card"></i> <span translate="">WOT.ACCOUNT_OPERATIONS</span> <i class="gray icon ion-ios-arrow-right"></i></a><div class="item item-text-wrap item-icon-left item-wallet-event" ng-class="{\'assertive\': event.type==\'error\'}" ng-repeat="event in :rebind:formData.events"><i class="icon" ng-class="{\'ion-information-circled royal\': event.type==\'info\',\'ion-alert-circled\': event.type==\'warn\'||event.type==\'error\',\'assertive\': event.type==\'error\',\'ion-clock\': event.type==\'pending\'}"></i> <span trust-as-html="event.message | translate:event.messageParams"></span></div><cs-extension-point name="general"></cs-extension-point><cs-extension-point name="after-general"></cs-extension-point></div></div></ion-content><div class="visible-xs visible-sm" ng-hide="loading"><button id="fab-transfer" class="button button-fab button-fab-bottom-right button-assertive drop" ng-click="showTransferModal({pubkey:formData.pubkey, uid: formData.uid})"><i class="icon ion-android-send"></i></button></div></ion-view>'),e.put("templates/wot/view_identity_tx.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm" ng-if="!loading"><span ng-if="formData.name || formData.uid">{{formData.name || formData.uid}} </span><span ng-if="!formData.name && !formData.uid"><i class="ion-key"></i> {{formData.pubkey|formatPubkey}}</span></span></ion-nav-title><ion-content scroll="true"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list {{motion.ionListClass}}" ng-if="!loading"><div class="row"><div class="col"><div class="item item-tx item-divider">{{:locale:\'ACCOUNT.BALANCE_ACCOUNT\'|translate}}<div class="badge item-note" ng-class=":balance:{\'badge-assertive\': formData.balance <= 0, \'badge-balanced\': formData.balance > 0 }" ng-bind-html=":balance:formData.balance|formatAmount:{currency: $root.currency.name}"></div><div class="badge badge-secondary" ng-if="$root.settings.expertMode">(<span ng-bind-html=":balance:formData.balance| formatAmount: {useRelative: !$root.settings.useRelative, currency: $root.currency.name} "></span>)</div></div><div class="item item-icon-left" ng-if="formData.tx.errors.length"><i class="icon ion-alert-circled"></i> {{:locale:\'ACCOUNT.ERROR_TX\'|translate}}<div class="badge badge-assertive">{{formData.tx.errors.length}}</div></div><ng-if ng-if="formData.tx.pendings.length"><span class="item item-pending item-divider"><i class="ion-clock"></i> {{:locale:\'ACCOUNT.PENDING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.pendings" ng-init="pending=true;" ng-include="::\'templates/wallet/item_tx.html\'"></div></ng-if><ng-if ng-if="formData.tx.validating.length"><span class="item item-pending item-divider">{{:locale:\'ACCOUNT.VALIDATING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.validating" ng-init="validating=true;" ng-include="::\'templates/wallet/item_tx.html\'"></div></ng-if><span class="item item-divider" ng-if="!loading">{{:locale:\'ACCOUNT.LAST_TX\'|translate}} <a id="helptip-wallet-tx" style="position: relative; bottom: 0; right: 0px">&nbsp;</a></span><div ng-repeat="tx in formData.tx.history" class="item item-tx item-icon-left" ng-include="::!tx.isUD ? \'templates/wallet/item_tx.html\' : \'templates/wallet/item_ud.html\'"></div><div class="item item-text-wrap text-center" ng-if="formData.tx.fromTime > 0"><p><a ng-click="showMoreTx()">{{:locale:\'ACCOUNT.SHOW_MORE_TX\'|translate}}</a> <span class="gray" translate="ACCOUNT.TX_FROM_DATE" translate-values="{fromTime: formData.tx.fromTime}"></span> <span class="gray">|</span> <a ng-click="showMoreTx(-1)" translate="">ACCOUNT.SHOW_ALL_TX</a></p></div></div></div></div></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_blocks.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-navicon visible-xs visible-sm" ng-click="toggleCompactMode()"><b class="icon-secondary" ng-class="{\'ion-arrow-down-b\': !compactMode, \'ion-arrow-up-b\': compactMode}" style="top: -12px; left: 11px; font-size: 10px"></b> <b class="icon-secondary" ng-class="{\'ion-arrow-up-b\': !compactMode,\'ion-arrow-down-b\': compactMode}" style="top: 12px; left: 11px; font-size: 10px"></b></button><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content><div class="item item-divider"><span translate>BLOCKCHAIN.LOOKUP.LAST_BLOCKS</span></div><cs-extension-point name="buttons"></cs-extension-point><ng-include src="\'templates/blockchain/list_blocks.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_network.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear" ng-click="showExtendActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refreshPeers()"></ion-refresher><div class="list"><ng-include src="\'templates/currency/items_network.html\'"></ng-include></div></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_parameters.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh()"></ion-refresher><div class="list"><ng-include src="\'templates/currency/items_parameters.html\'"></ng-include></div></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_wot.html",'<ion-view><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh()"></ion-refresher><div class="list"><ng-include src="\'templates/currency/items_wot.html\'"></ng-include></div></ion-content></ion-view>'),e.put("templates/wallet/list/item_wallet.html",'<div class="item item-avatar item-icon-right item-border-large item-wallet ink" id="wallet-{{::wallet.id}}" ng-click="select($event, wallet)" ng-init="walletData=wallet.data;"><i ng-if=":rebind:!walletData.avatar" class="item-image icon" ng-class=":rebind:{\'ion-card\': !walletData.isMember, \'ion-person\': walletData.isMember}"></i> <i ng-if=":rebind:walletData.avatar" class="item-image avatar" style="background-image: url({{::walletData.avatar.src}})"></i><div class="badge badge-button badge-avatar badge-assertive ion-locked" ng-hide=":rebind:wallet.isAuth()"></div><h2><span class="text-editable" ng-click="editWallet($event, wallet)" title="{{\'ACCOUNT.WALLET_LIST.BTN_RENAME\'|translate}}"><ng-if ng-if=":rebind:walletData.localName||walletData.name||walletData.uid" ng-bind-html="::walletData.localName||walletData.name||walletData.uid"></ng-if><ng-if ng-if=":rebind:!walletData.localName && !walletData.name && !walletData.uid">{{::walletData.pubkey|formatPubkey}}</ng-if></span></h2><h4 class="gray"><span class="positive" ng-if="::walletData.name && walletData.uid"><i class="ion-person"></i> {{::walletData.uid}}&nbsp; </span><b class="ion-key"></b> {{::walletData.pubkey | formatPubkey}} <span ng-if="::!walletData.uid" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span></h4><cs-extension-point name="item-wallet"></cs-extension-point><span class="badge" ng-if=":rebind:formData.showBalance && walletData.sources" ng-class=":rebind:{\'badge-calm\': (walletData.balance > 0) }"><ion-spinner class="ion-spinner-small" ng-if="formData.updatingWalletId==wallet.id" icon="android"></ion-spinner><span ng-bind-html=":rebind:walletData.balance|formatAmount:{useRelative: formData.useRelative, currency: currency}"></span> </span><i class="icon ion-ios-arrow-right"></i></div>'),e.put("templates/wallet/list/item_wallet_light.html",'<div class="item item-avatar item-icon-right item-border item-wallet" ng-click="select($event, wallet)" ng-init="walletData=wallet.data;"><i ng-if="::!walletData.avatar" class="item-image icon" ng-class="::{\'ion-card\': !walletData.isMember, \'ion-person\': walletData.isMember}"></i> <i ng-if="::walletData.avatar" class="item-image avatar" style="background-image: url({{::walletData.avatar.src}})"></i><div class="badge badge-button badge-avatar badge-assertive ion-locked" ng-hide="::wallet.isAuth()"></div><h2><ng-if ng-if="::walletData.localName||walletData.name||walletData.uid">{{::walletData.localName||walletData.name||walletData.uid}}</ng-if><ng-if ng-if="::!walletData.localName && !walletData.name && !walletData.uid">{{::walletData.pubkey|formatPubkey}}</ng-if></h2><h4 class="gray"><span class="positive" ng-if="::walletData.name && walletData.uid"><i class="ion-person"></i> {{::walletData.uid}}&nbsp; </span><b class="ion-key"></b> {{::walletData.pubkey | formatPubkey}} <span ng-if="::!walletData.uid" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span></h4><div class="badge" ng-if="formData.showBalance" ng-class="{\'badge-calm\': (walletData.balance > 0) }"><span ng-bind-html="walletData.balance|formatAmount:{useRelative: formData.useRelative, currency: currency}"></span></div><i class="icon ion-ios-arrow-right"></i></div>'),e.put("templates/wallet/list/modal_import_file.html",'<ion-modal-view id="transfer" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>ACCOUNT.WALLET_LIST.IMPORT_MODAL.TITLE</h1></ion-header-bar><ion-content scroll="true" class="padding"><p translate>ACCOUNT.WALLET_LIST.IMPORT_MODAL.HELP</p><div dropzone="importFromFile(file)"><div ng-if="!hasContent" onclick="angular.element(document.querySelector(\'#walletsImportFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="walletsImportFile" accept=".csv,.txt" style="visibility:hidden; position:absolute" on-read-file="importFromFile(file)"></div><div ng-if="hasContent" class="item item-icon-left item-icon-right stable-bg"><i class="icon ion-document-text gray"></i><div class="item-content row"><div class="col"><h2>{{fileData.name}}</h2><h4 ng-if="fileData.lastModified"><span class="gray" translate>COMMON.FILE.DATE</span> {{fileData.lastModified/1000|formatDate}}</h4><h5><span class="gray" translate>COMMON.FILE.SIZE</span> {{fileData.size|formatInteger}} Ko</h5></div><div class="col padding-left"><h3 ng-if="validatingFile" translate>COMMON.FILE.VALIDATING</h3><h3 ng-if="!validatingFile"><span class="dark animate-show-hide ng-hide" ng-show="isValidFile && content.length" ng-bind-html="\'ACCOUNT.WALLET_LIST.IMPORT_MODAL.WALLET_COUNT\'|translate:{count: content.length}"></span> <span class="assertive animate-show-hide ng-hide" ng-show="isValidFile && !content.length"><br><i class="ion-close-circled assertive"></i> {{\'ACCOUNT.WALLET_LIST.IMPORT_MODAL.NO_NEW_WALLET\' |translate}} </span><span class="assertive animate-show-hide ng-hide" ng-show="!isValidFile"><br><i class="ion-close-circled assertive"></i> {{\'ERROR.INVALID_FILE_FORMAT\' |translate}}</span></h3></div></div><a class="ion-close-round gray pull-right" style="font-size: 10px; position: absolute; top: 6px; right: 6px" ng-click="removeFile()"></a></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-disabled="loading || !content.length" ng-click="closeModal(content)" translate>COMMON.BTN_IMPORT</button></div></ion-content></ion-modal-view>'),e.put("templates/wallet/list/modal_wallets.html",'<ion-modal-view id="transfer" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>ACCOUNT.SELECT_WALLET_MODAL.TITLE</h1></ion-header-bar><ion-content scroll="true"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!loading && !wallets.length && !defaultWallet">{{:locale:\'ACCOUNT.WALLET_LIST.NO_WALLET\'|translate}}</div><ion-list ng-if="!loading" class="{{::motion.ionListClass}}"><ng-include ng-if="defaultWallet" ng-init="wallet = defaultWallet" src="\'templates/wallet/list/item_wallet.html\'"></ng-include><ng-repeat ng-repeat="wallet in wallets track by wallet.id" ng-include="\'templates/wallet/list/item_wallet_light.html\'"></ng-repeat></ion-list></ion-content></ion-modal-view>'),e.put("templates/wallet/list/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate="">COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><button class="item item-icon-left ink" ng-class="{\'gray\': loading || !wallets.length, \'assertive\': !loading && wallets.length}" ng-disabled="loading || !wallets.length" ng-click="selectAndRemoveWallet()"><i class="icon ion-trash-a"></i> {{\'ACCOUNT.WALLET_LIST.BTN_DELETE\' | translate}}</button></div></ion-content></ion-popover-view>'),e.put("templates/wallet/list/popover_wallets.html",'<ion-popover-view class="fit popover-wallets popover-light"><ion-header-bar class="stable-bg block"><div class="title" translate>ACCOUNT.SELECT_WALLET_MODAL.TITLE</div><div class="pull-right"><a class="positive" ng-click="showNewWalletModal()" translate>ACCOUNT.WALLET_LIST.BTN_NEW</a></div></ion-header-bar><ion-content scroll="true"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!loading && !wallets.length && !defaultWallet">{{:locale:\'ACCOUNT.WALLET_LIST.NO_WALLET\'|translate}}</div><ion-list ng-if="!loading"><ng-include ng-if="defaultWallet" ng-init="wallet = defaultWallet" src="\'templates/wallet/list/item_wallet_light.html\'"></ng-include><ng-repeat ng-repeat="wallet in :rebind:wallets | filter:filterFn(formData) track by wallet.id" ng-include="\'templates/wallet/list/item_wallet_light.html\'"></ng-repeat></ion-list></ion-content><ion-footer-bar class="stable-bg block"><div class="pull-right"><a class="positive" ui-sref="app.view_wallets" ng-click="closePopover()" translate>COMMON.NOTIFICATIONS.SHOW_ALL</a></div></ion-footer-bar></ion-popover-view>'),e.put("templates/wallet/list/popup_edit_name.html",'<form name="editForm" ng-submit=""><div class="list" ng-init="setEditForm(editForm)"><label class="item item-input" ng-class="{\'item-input-error\': editForm.$submitted && editForm.name.$invalid}"><input name="name" type="text" placeholder="{{\'ACCOUNT.WALLET_LIST.EDIT_POPOVER.NAME_HELP\' | translate}}" ng-model="formData.name" ng-minlength="3" required></label><div class="form-errors" ng-if="editForm.$submitted && editForm.name.$error" ng-messages="editForm.name.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div></div></form>'),e.put("templates/wallet/list/view_wallets.html",'<ion-view left-buttons="leftButtons" class="view-wallet-list"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true" class="padding no-padding-xs no-padding-sm" bind-notifier="{ rebind:formData.useRelative, locale:settings.locale.id}"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true, $event)"></ion-refresher><div class="center padding gray" ng-if="!loading && wallets && !wallets.length && !defaultWallet">{{:locale:\'ACCOUNT.WALLET_LIST.NO_WALLET\'|translate}}</div><ion-list class="{{::motion.ionListClass}}"><ng-include ng-if="defaultWallet" ng-init="wallet = defaultWallet" src="\'templates/wallet/list/item_wallet.html\'"></ng-include><ng-include ng-repeat="wallet in wallets track by wallet.id" src="\'templates/wallet/list/item_wallet.html\'"></ng-include></ion-list><div class="center padding visible-xs visible-sm" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div></ion-content><button id="fab-add-wallet" class="button button-fab button-fab-bottom-right button-assertive hidden-md hidden-lg drop ng-hide" ng-show="!loading" ng-click="showNewWalletModal()"><i class="icon ion-plus"></i></button></ion-view>'),e.put("templates/wallet/slides/slides_generate_keyfile.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.GENERATE_KEYFILE</h3><div class="list"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="downloadKeyFile(\'PubSec\')"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b><h2 translate>ACCOUNT.SECURITY.KEYFILE.PUBSEC_FORMAT</h2><h4 class="gray" translate>ACCOUNT.SECURITY.KEYFILE.PUBSEC_FORMAT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="downloadKeyFile(\'WIF\')"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b><h2 translate>ACCOUNT.SECURITY.KEYFILE.WIF_FORMAT</h2><h4 class="gray" translate>ACCOUNT.SECURITY.KEYFILE.WIF_FORMAT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="downloadKeyFile(\'EWIF\')"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b> <b class="ion-locked icon-secondary dark" style="top: 0px; left: 43px; font-size: 8px"></b><h2 translate>ACCOUNT.SECURITY.KEYFILE.EWIF_FORMAT</h2><h4 class="gray" translate>ACCOUNT.SECURITY.KEYFILE.EWIF_FORMAT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div></div></ion-content>'),e.put("templates/wallet/slides/slides_recoverID_1.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.RECOVER_ID</h3><div dropzone="recoverContent(file)"><div ng-if="!hasContent" onclick="angular.element(document.querySelector(\'#saveIdFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="saveIdFile" accept=".txt" style="visibility:hidden; position:absolute" on-read-file="recoverContent(file)"></div><div ng-if="hasContent" class="item row item-icon-left no-padding"><i class="icon ion-document-text gray"></i><div class="col"><span>{{fileData.name}}</span><br><small>{{fileData.size}} Ko</small></div><div class="col-10"><b ng-class="{\'ion-android-done balanced\': isValidFile,\'ion-close-circled assertive\': !isValidFile}" style="font-size: 28px; position: relative; top: 6px"></b> <button class="button-icon ion-close-round gray pull-right" style="font-size:10px" ng-click="restore()"></button></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="doNext()" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></ion-content>'),e.put("templates/wallet/slides/slides_recoverID_2.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.RECOVER_ID</h3><form name="recoverForm" novalidate ng-submit="recoverId()"><div class="list" ng-init="setForm(recoverForm, \'recoverForm\')"><ng-repeat ng-repeat="question in recover.questions "><label class="item item-input {{smallscreen ? \'item-stacked-label\' : \'item-floating-label\'}}" ng-class="{\'item-input-error\': recoverForm.$submitted && recoverForm[\'question{{$index}}\'].$invalid}"><span class="input-label" style="{{smallscreen ? \'white-space: normal\' : \'\'}}">{{question.value }}</span> <input type="text" name="question{{$index}}" placeholder="{{smallscreen ? \'\' : question.value }}" ng-model="question.answer" required></label><div class="form-errors" ng-show="recoverForm.$submitted && recoverForm[\'question{{$index}}\'].$error" ng-messages="recoverForm[\'question{{$index}}\'].$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div></ng-repeat><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-clear button-dark" ng-click="restore()" type="button" translate>ACCOUNT.SECURITY.BTN_CLEAN</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></div></form></ion-content>'),e.put("templates/wallet/slides/slides_recoverID_3.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.RECOVER_ID</h3><div class="item item-input"><span class="input-label">{{\'LOGIN.SALT\' | translate}} :</span> <span>{{recover.salt}}</span></div><div class="item item-input"><span class="input-label">{{\'LOGIN.PASSWORD\' | translate}} :</span> <span>{{recover.pwd}}</span></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CLOSE</button></div></ion-content>'),e.put("templates/wallet/slides/slides_revocation_file.html",'<ion-content class="has-header padding"><p translate>ACCOUNT.SECURITY.REVOCATION_WITH_FILE_HELP</p><div dropzone="recoverContent(file)"><div ng-if="!hasContent" onclick="angular.element(document.querySelector(\'#revocationFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="revocationFile" accept=".txt" style="visibility:hidden; position:absolute" on-read-file="recoverContent(file)"></div><div ng-if="hasContent" class="item row item-icon-left no-padding"><i class="icon ion-document-text gray"></i><div class="col"><span>{{fileData.name}}</span><br><small>{{fileData.size}} Ko</small></div><div class="col-10"><b ng-class="{\'ion-android-done balanced\': isValidFile,\'ion-close-circled assertive\': !isValidFile}" style="font-size: 28px; position: relative; top: 6px"></b> <button class="button-icon ion-close-round gray pull-right" style="font-size:10px" ng-click="restore()"></button></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="revokeWithFile()" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></ion-content>'),e.put("templates/wallet/slides/slides_saveID_1.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.SAVE_ID</h3><label class="item item-input item-select"><div class="input-label" translate>ACCOUNT.SECURITY.LEVEL</div><select ng-model="formData.level"><option value="2" ng-bind-html="\'ACCOUNT.SECURITY.LOW_LEVEL\' | translate"></option><option value="4" translate>ACCOUNT.SECURITY.MEDIUM_LEVEL</option><option value="6" translate>ACCOUNT.SECURITY.STRONG_LEVEL</option></select></label><div class="padding-top" translate="ACCOUNT.SECURITY.HELP_LEVEL" translate-values="{nb: {{formData.level}}}"></div><form name="questionsForm" novalidate ng-submit="doNext(\'questionsForm\')"><div class="list" ng-init="setForm(questionsForm, \'questionsForm\')"><ion-checkbox ng-repeat="question in formData.questions" ng-model="question.checked" ng-required="isRequired()"><span style="white-space: normal">{{question.value | translate}}</span></ion-checkbox><div class="item item-icon-right no-padding-top"><a class="dark"><i class="icon ion-android-add" ng-click="addQuestion()"></i></a><div class="list list-inset"><label class="item item-input"><input type="text" placeholder="{{\'ACCOUNT.SECURITY.ADD_QUESTION\' | translate}}" ng-model="formData.addQuestion"></label></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-clear button-dark" ng-click="restore()" type="button" translate>ACCOUNT.SECURITY.BTN_RESET</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-disabled="questionsForm.$invalid" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></form></ion-content>'),e.put("templates/wallet/slides/slides_saveID_2.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.SAVE_ID</h3><form name="answersForm" novalidate ng-submit="doNext(\'answersForm\')"><div class="list" ng-init="setForm(answersForm, \'answersForm\')"><ng-repeat ng-repeat="question in formData.questions |filter:true:checked"><label class="item item-input item-text-wrap {{smallscreen ? \'item-stacked-label\' : \'item-floating-label\'}}" ng-class="{\'item-input-error\': answersForm.$submitted && answersForm[\'question{{$index}}\'].$invalid}"><span class="input-label" style="width: 100%; max-width: inherit">{{question.value | translate}}</span> <input type="text" name="question{{$index}}" placeholder="{{smallscreen ? \'\' : question.value | translate}}" ng-model="question.answer" required></label><div class="form-errors" ng-show="answersForm.$submitted && answersForm[\'question{{$index}}\'].$error" ng-messages="answersForm[\'question{{$index}}\'].$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div></ng-repeat><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-clear button-dark" ng-click="restore()" type="button" translate>ACCOUNT.SECURITY.BTN_CLEAN</button> <button class="button button-positive ink" type="submit" translate>COMMON.BTN_CONTINUE <i class="icon ion-android-archive"></i></button></div></div></form></ion-content>'),e.put("templates/wot/tabs/tab_given_certifications.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop" ng-click="doUpdate()"></button></ion-nav-buttons><ion-content ng-init="motions.receivedCertifications=false; motions.avatar=false"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><ng-include src="\'templates/wot/items_given_certifications.html\'"></ng-include></ion-content><div class="visible-xs visible-sm"><button id="fab-select-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-if="canSelectAndCertify || $root.tour" ng-click="selectAndCertify()"><i class="icon ion-plus"></i></button></div></ion-view>'),e.put("templates/wot/tabs/tab_lookup.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear" ng-click="showActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doSearch()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="\'templates/wot/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/wot/tabs/tab_received_certifications.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop" ng-click="doUpdate()"></button></ion-nav-buttons><ion-content ng-init="motions.givenCertifications=false; motions.avatar=false;"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><ng-include src="\'templates/wot/items_received_certifications.html\'"></ng-include></ion-content><div class="visible-xs visible-sm"><button id="fab-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-click="certify()" ng-if="(formData.hasSelf && canCertify && !alreadyCertified) || $root.tour"><i class="icon ion-ribbon-b"></i></button></div></ion-view>')}]),angular.module("cesium.translations",[]).config(["$translateProvider",function(e){e.translations("en-GB",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",PUBKEY:"Public key",MEMBER:"Member",BLOCK:"Block",BTN_OK:"OK",BTN_YES:"Yes",BTN_NO:"No",BTN_SEND:"Send",BTN_SEND_MONEY:"Transfer money",BTN_SEND_MONEY_SHORT:"Transfer",BTN_SAVE:"Save",BTN_YES_SAVE:"Yes, Save",BTN_YES_CONTINUE:"Yes, Continue",BTN_SHOW:"Show",BTN_SHOW_PUBKEY:"Show key",BTN_RELATIVE_UNIT:"Display amounts in UD?",BTN_BACK:"Back",BTN_NEXT:"Next",BTN_IMPORT:"Import",BTN_CANCEL:"Cancel",BTN_CLOSE:"Close",BTN_LATER:"Later",BTN_LOGIN:"Sign In",BTN_LOGOUT:"Logout",BTN_ADD_ACCOUNT:"New Account",BTN_SHARE:"Share",BTN_EDIT:"Edit",BTN_DELETE:"Delete",BTN_ADD:"Add",BTN_SEARCH:"Search",BTN_REFRESH:"Refresh",BTN_RETRY:"Retry",BTN_START:"Start",BTN_CONTINUE:"Continue",BTN_CREATE:"Create",BTN_UNDERSTOOD:"I understand",BTN_OPTIONS:"Options",BTN_HELP_TOUR:"Features tour",BTN_HELP_TOUR_SCREEN:"Discover this screen",BTN_DOWNLOAD:"Download",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Download account statement",BTN_MODIFY:"Modify",CHOOSE_FILE:"Drag your file<br/>or click to select",DAYS:"days",NO_ACCOUNT_QUESTION:"Not a member yet? Register now!",SEARCH_NO_RESULT:"No result found",LOADING:"Loading...",LOADING_WAIT:"Loading...<br/><small>(Waiting for node availability)</small>",SEARCHING:"Searching...",FROM:"From",TO:"To",COPY:"Copy",LANGUAGE:"Language",UNIVERSAL_DIVIDEND:"Universal dividend",UD:"UD",DATE_PATTERN:"DD/MM/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(empty)",UID:"Pseudonym",ENABLE:"Enabled",DISABLE:"Disabled",RESULTS_LIST:"Results:",RESULTS_COUNT:"{{count}} results",EXECUTION_TIME:"executed in {{duration|formatDurationMs}}",SHOW_VALUES:"Display values openly?",POPOVER_ACTIONS_TITLE:"Options",POPOVER_FILTER_TITLE:"Filters",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit at {{limit}})",POPOVER_SHARE:{TITLE:"Share",SHARE_ON_TWITTER:"Share on Twitter",SHARE_ON_FACEBOOK:"Share on Facebook",SHARE_ON_DIASPORA:"Share on Diaspora*",SHARE_ON_GOOGLEPLUS:"Share on Google+"},FILE:{DATE:"Date:",TYPE:"Type:",SIZE:"Size:",VALIDATING:"Validating..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Choose source:",BTN_PICTURE_GALLERY:"Gallery",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Home",WOT:"Registry",CURRENCY:"Currency",ACCOUNT:"My Account",WALLETS:"My wallets",TRANSFER:"Transfer",SCAN:"Scan",SETTINGS:"Settings",NETWORK:"Network",TRANSACTIONS:"My transactions"},ABOUT:{TITLE:"About",LICENSE:"<b>Free/libre software</b> (License GNU AGPLv3).",LATEST_RELEASE:"There is a <b>newer version</ b> of {{'COMMON.APP_NAME' | translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Please update {{'COMMON.APP_NAME' | translate}} (latest version: <b>v{{version}}</b>)",CODE:"Source code:",OFFICIAL_WEB_SITE:"Official web site:",DEVELOPERS:"Developers:",FORUM:"Forum:",PLEASE_REPORT_ISSUE:"Please report any issue to us!",REPORT_ISSUE:"Report an issue",BTN_OPEN_DEV_WINDOW:"Open the debug window"},HOME:{TITLE:"Cesium",WELCOME:"Welcome to the Cesium Application!",MESSAGE:"Receive and send libre currency {{currency|abbreviate}}",BTN_CURRENCY:"Explore currency",BTN_ABOUT:"about",BTN_HELP:"Help",REPORT_ISSUE:"Report an issue",NOT_YOUR_ACCOUNT_QUESTION:'You do not own the account <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Disconnect this account",CONNECTION_ERROR:'Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or change node <a class="positive" ng-click="doQuickFix(\'settings\')">in the settings</a>.',SHOW_ALL_FEED:"Show all",READ_MORE:"Read more",FEED_SOURCE:"Source"},SETTINGS:{TITLE:"Settings",DISPLAY_DIVIDER:"Display",STORAGE_DIVIDER:"Storage",NETWORK_SETTINGS:"Network",PEER:"Duniter peer address",PEER_SHORT:"Peer address",PEER_CHANGED_TEMPORARY:"Address used temporarily",USE_LOCAL_STORAGE:"Enable local storage",USE_LOCAL_STORAGE_HELP:"Allows you to save your settings",WALLETS_SETTINGS:"My wallets",USE_WALLETS_ENCRYPTION:"Secure the list",USE_WALLETS_ENCRYPTION_HELP:"Enables you to encrypt the list of your wallets. Authentication required to access it.",ENABLE_HELPTIP:"Enable contextual help tips",ENABLE_UI_EFFECTS:"Enable visual effects",HISTORY_SETTINGS:"Account operations",DISPLAY_UD_HISTORY:"Display produced dividends?",TX_HISTORY_AUTO_REFRESH:"Enable automatic refresh?",TX_HISTORY_AUTO_REFRESH_HELP:"Updates the list of operations to each new block.",AUTHENTICATION_SETTINGS:"Authentication",KEEP_AUTH:"Expiration of authentication",KEEP_AUTH_SHORT:"Expiration",KEEP_AUTH_HELP:"Define when authentication is cleared from memory.",KEEP_AUTH_OPTION:{NEVER:"After each operation",SECONDS:"After {{value}}s of inactivity",MINUTE:"After {{value}}min of inactivity",MINUTES:"After {{value}}min of inactivity",HOUR:"After {{value}}h of inactivity",ALWAYS:"At the end of the session"},KEYRING_FILE:"Keyring file",KEYRING_FILE_HELP:'Allow auto-connect at startup, or to authenticate (only if "Expiration of authentication" is "at the end of the session"',REMEMBER_ME:"Remember me ?",REMEMBER_ME_HELP:"Allows to remain identified from one session to another, keeping the public key locally.",PLUGINS_SETTINGS:"Extensions",BTN_RESET:"Restore default values",EXPERT_MODE:"Enable expert mode",EXPERT_MODE_HELP:"Allow to see more details",BLOCK_VALIDITY_WINDOW:"Block uncertainty time",BLOCK_VALIDITY_WINDOW_SHORT:"Time of uncertainty",BLOCK_VALIDITY_WINDOW_HELP:"Time to wait before considering an information is validated",BLOCK_VALIDITY_OPTION:{NONE:"No delay",N:"{{time | formatDuration}} ({{count}} blocks)"},POPUP_PEER:{TITLE:"Duniter peer",HOST:"Address",HOST_HELP:"Address: server:port",USE_SSL:"Secured?",USE_SSL_HELP:"(SSL Encryption)",BTN_SHOW_LIST:"Peer's list"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Block #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Current block",TITLE:"Block #{{number|formatInteger}}",COMPUTED_BY:"Computed by",SHOW_RAW:"Show raw data",TECHNICAL_DIVIDER:"Technical informations",VERSION:"Format version",HASH:"Computed hash",UNIVERSAL_DIVIDEND_HELP:"Money co-produced by each of the {{membersCount}} members",EMPTY:"Aucune donnée dans ce bloc",POW_MIN:"Minimal difficulty",POW_MIN_HELP:"Difficulty imposed in calculating hash",DATA_DIVIDER:"Data",IDENTITIES_COUNT:"New identities",JOINERS_COUNT:"Joiners",ACTIVES_COUNT:"Renewals",ACTIVES_COUNT_HELP:"Members having renewed their membership",LEAVERS_COUNT:"Leavers",LEAVERS_COUNT_HELP:"Members that now refused certification",EXCLUDED_COUNT:"Excluded members",EXCLUDED_COUNT_HELP:"Old members, excluded because missing membreship renewal or certifications",REVOKED_COUNT:"Revoked identities",REVOKED_COUNT_HELP:"These accounts may no longer be member",TX_COUNT:"Transactions",CERT_COUNT:"Certifications",TX_TO_HIMSELF:"Change",TX_OUTPUT_UNLOCK_CONDITIONS:"Unlock conditions",TX_OUTPUT_OPERATOR:{AND:"and",OR:"or"},TX_OUTPUT_FUNCTION:{SIG:"<b>Sign</b> of the public key",XHX:"<b>Password</b>, including SHA256 =",CSV:"Blocked during",CLTV:"Bloqué until"}},LOOKUP:{TITLE:"Blocks",NO_BLOCK:"No bloc",LAST_BLOCKS:"Last blocks:",BTN_COMPACT:"Compact"}},CURRENCY:{VIEW:{TITLE:"Currency",TAB_CURRENCY:"Currency",TAB_WOT:"Web of trust",TAB_NETWORK:"Network",TAB_BLOCKS:"Blocks",CURRENCY_SHORT_DESCRIPTION:"{{currency|capitalize}} is a <b>libre money</b>, started {{firstBlockTime | formatFromNow}}. It currently counts <b>{{N}} members </b>, who produce and collect a <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a> (DU), each {{dt | formatPeriod}}.",NETWORK_RULES_DIVIDER:"Network rules",CURRENCY_NAME:"Currency name",MEMBERS:"Members count",MEMBERS_VARIATION:"Variation since {{duration|formatDuration}} (since last UD)",MONEY_DIVIDER:"Money",MASS:"Monetary mass",SHARE:"Money share",UD:"Universal Dividend",C_ACTUAL:"Current growth",MEDIAN_TIME:"Current blockchain time",POW_MIN:"Common difficulty",MONEY_RULES_DIVIDER:"Rules of currency",C_RULE:"Theoretical growth target",UD_RULE:"Universal dividend (formula)",DT_REEVAL:"Period between two re-evaluation of the UD",REEVAL_SYMBOL:"reeval",DT_REEVAL_VALUE:"Every <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Date of first reevaluation of the UD",SIG_QTY_RULE:"Required number of certifications to become a member",SIG_STOCK:"Maximum number of certifications sent by a member",SIG_PERIOD:"Minimum delay between 2 certifications sent by one and the same issuer.",SIG_WINDOW:"Maximum delay before a certification will be treated",SIG_VALIDITY:"Lifetime of a certification that has been treated",MS_WINDOW:"Maximum delay before a pending membership will be treated",MS_VALIDITY:"Lifetime of a membership that has been treated",STEP_MAX:"Maximum distance between a newcomer and each referring members.",WOT_RULES_DIVIDER:"Rules for web of trust",SENTRIES:"Required number of certifications (given <b>and</b> received) to become a referring member",SENTRIES_FORMULA:"Required number of certifications to become a referring member (formula)",XPERCENT:"Minimum percent of referring member to reach to match the distance rule",AVG_GEN_TIME:"The average time between 2 blocks",CURRENT:"current",MATH_CEILING:"CEILING",DISPLAY_ALL_RULES:"Display all rules?",BTN_SHOW_LICENSE:"Show license",WOT_DIVIDER:"Web of trust"},LICENSE:{TITLE:"Currency license",BTN_DOWNLOAD:"Download file",NO_LICENSE_FILE:"License file not found."}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain time",LOADING_PEERS:"Loading peers...",NODE_ADDRESS:"Address:",SOFTWARE:"Software:",WARN_PRE_RELEASE:"Pre-release (latest stable: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Version <b>{{version}}</b> available",WS2PID:"Identifier:",PRIVATE_ACCESS:"Private access",POW_PREFIX:"Proof of work prefix:",ENDPOINTS:{BMAS:"Secure endpoint (SSL)",BMATOR:"TOR endpoint",WS2P:"WS2P endpoint",ES_USER_API:"Cesium+ data node"}},INFO:{ONLY_SSL_PEERS:"Non-SSL nodes have a degraded display because Cesium works in HTTPS mode."}},PEER:{PEERS:"Peers",SIGNED_ON_BLOCK:"Signed on block",MIRROR:"mirror",MIRRORS:"Mirrors",MIRROR_PEERS:"Mirror peers",PEER_LIST:"Peer's list",MEMBERS:"Members",MEMBER_PEERS:"Member peers",ALL_PEERS:"All peers",DIFFICULTY:"Difficulty",API:"API",CURRENT_BLOCK:"Block #",POPOVER_FILTER_TITLE:"Filter",OFFLINE:"Offline",OFFLINE_PEERS:"Offline peers",BTN_SHOW_PEER:"Show peer",VIEW:{TITLE:"Peer",OWNER:"Owned by ",SHOW_RAW_PEERING:"See peering document",SHOW_RAW_CURRENT_BLOCK:"See current block (raw format)",LAST_BLOCKS:"Last blocks",KNOWN_PEERS:"Known peers :",GENERAL_DIVIDER:"General information",ERROR:{LOADING_TOR_NODE_ERROR:"Could not get peer data, using the TOR network.",LOADING_NODE_ERROR:"Could not get peer data"}}},WOT:{SEARCH_HELP:"Search (member or public key)",SEARCH_INIT_PHASE_WARNING:"During the pre-registration phase, the search for pending registrations <b>may be long</b>. Please wait ...",REGISTERED_SINCE:"Registered on",REGISTERED_SINCE_BLOCK:"Registered since block #",NO_CERTIFICATION:"No validated certification",NO_GIVEN_CERTIFICATION:"No given certification",NOT_MEMBER_PARENTHESIS:"(non-member)",IDENTITY_REVOKED_PARENTHESIS:"(identity revoked)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(being revoked)",EXPIRE_IN:"Expires",NOT_WRITTEN_EXPIRE_IN:"Deadline<br/>treatment",EXPIRED:"Expired",PSEUDO:"Pseudonym",SIGNED_ON_BLOCK:"Emitted on block #{{block}}",WRITTEN_ON_BLOCK:"Written on block #{{block}}",GENERAL_DIVIDER:"General information",NOT_MEMBER_ACCOUNT:"Non-member account",NOT_MEMBER_ACCOUNT_HELP:"This is a simple wallet, with no pending membership application.",TECHNICAL_DIVIDER:"Technical data",BTN_CERTIFY:"Certify",BTN_YES_CERTIFY:"Yes, certify",BTN_SELECT_AND_CERTIFY:"New certification",ACCOUNT_OPERATIONS:"Account operations",VIEW:{POPOVER_SHARE_TITLE:"Identity {{title}}"},LOOKUP:{TITLE:"Registry",NEWCOMERS:"New members:",NEWCOMERS_COUNT:"{{count}} members",PENDING:"Pending registrations:",PENDING_COUNT:"{{count}} pending registrations",REGISTERED:"Registered {{sigDate | formatFromNow}}",MEMBER_FROM:"Member since {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Latest members",BTN_PENDING:"Pending registrations",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit to {{limit}})",NO_PENDING:"No pending registrations.",NO_NEWCOMERS:"No members."},CONTACTS:{TITLE:"Contacts"},MODAL:{TITLE:"Search"},CERTIFICATIONS:{TITLE:"{{uid}} - Certifications",SUMMARY:"Received certifications",LIST:"Details of received certifications",PENDING_LIST:"Pending certifications",RECEIVED:"Received certifications",RECEIVED_BY:"Certifications received by {{uid}}",ERROR:"Received certifications in error",SENTRY_MEMBER:"Referring member"},OPERATIONS:{TITLE:"{{uid}} - Operations"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certifications sent",SUMMARY:"Sent certifications",LIST:"Details of sent certifications",PENDING_LIST:"Pending certifications",SENT:"Sent certifications",SENT_BY:"Certifications sent by {{uid}}",ERROR:"Sent certifications with error"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Login',SCRYPT_FORM_HELP:"Please enter your credentials. <br> Remember to check the public key for your account.",PUBKEY_FORM_HELP:"Please enter a public account key:",FILE_FORM_HELP:"Choose the keychain file to use:",SCAN_FORM_HELP:"Scan the QR code of a wallet.",SALT:"Secret identifier",SALT_HELP:"Secret identifier",SHOW_SALT:"Display secret identifier?",PASSWORD:"Password",PASSWORD_HELP:"Password",PUBKEY_HELP:"Public key or pseudonym",NO_ACCOUNT_QUESTION:"Don't have an account yet?",HAVE_ACCOUNT_QUESTION:"Already have an account ?",CREATE_ACCOUNT:"Create an account",CREATE_FREE_ACCOUNT:"Create a free account",FORGOTTEN_ID:"Forgot password?",ASSOCIATED_PUBKEY:"Public key :",BTN_METHODS:"Other methods",BTN_METHODS_DOTS:"Change method...",METHOD_POPOVER_TITLE:"Methods",MEMORIZE_AUTH_FILE:"Memorize this keychain during the navigation session",SCRYPT_PARAMETERS:"Paramètres (Scrypt) :",AUTO_LOGOUT:{TITLE:"Information",MESSAGE:'<i class="ion-android-time"></i> You were <b>logout</ b> automatically, due to prolonged inactivity.',BTN_RELOGIN:"Sign In",IDLE_WARNING:"You will be logout... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Secret identifier and password",SCRYPT_ADVANCED:"Advanced salt",FILE:"Keychain file",PUBKEY:"Public key or pseudonym",SCAN:"Scan a QR code"},SCRYPT:{SIMPLE:"Light salt",DEFAULT:"Standard salt",SECURE:"Secure salt",HARDEST:"Hardest salt",EXTREME:"Extreme salt",USER:"Personal value",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Expected file format: <b>.dunikey</b> (type PubSec). Other formats are under development (EWIF, WIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Authentication',BTN_AUTH:"Authenticate",GENERAL_HELP:"Please authenticate yourself:",EXPECTED_UID_HELP:'Please authenticate to the account <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Please authenticate to the wallet <i class="ion-key"></i> {{pubkey|formatPubkey}}:',SCAN_FORM_HELP:"Scan the QR code of the <b>private key</b> of the wallet."},ACCOUNT:{TITLE:"My Account",BALANCE:"Balance",LAST_TX:"Latest validated transactions",BALANCE_ACCOUNT:"Account balance",NO_TX:"No transaction",SHOW_MORE_TX:"Show more",SHOW_ALL_TX:"Show all",TX_FROM_DATE:"(current limit to {{fromTime|medianFromNowShort}})",PENDING_TX:"Pending transactions",VALIDATING_TX:"Transactions being validated",ERROR_TX:"Transaction not executed",ERROR_TX_SENT:"Sent transactions",PENDING_TX_RECEIVED:"Transactions awaiting receipt",EVENTS:"Events",OUT_DISTANCED:"Your current certifications come from a group too isolated from the <a ng-click=\"showHelpModal('wot')\"> Web of Trust</a> (WoT): the <a ng-click=\"showHelpModal('distance_rule')\">maximum distance rule</a> is violated.<br/>You must obtain certifications from another area of the Web of Trust, or wait for it to tighten.",WAITING_MEMBERSHIP:"Membership application sent. Waiting validation.",WAITING_CERTIFICATIONS:"You need {{needCertificationCount}} certification(s) to become a member and produce the <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a>. Your account is however already operational, to receive and send payments.",WAITING_CERTIFICATIONS_HELP:'To get your certifications, only request members <b>who know you enough</b>, as required by <a ng-click="showLicenseModal()">the currency license</a> that you have accepted.<br/>If you do not know enough members, let them know on <a ng-click="openLink($event, $root.settings.userForumUrl)">the user forum</a>.',WILL_MISSING_CERTIFICATIONS:"You will <b>lack certifications</b> soon (at least {{willNeedCertificationCount}} more are needed)",WILL_NEED_RENEW_MEMBERSHIP:"Your membership <b>will expire {{membershipExpiresIn|formatDurationTo}}</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a> before then.",NEED_RENEW_MEMBERSHIP:"You are no longer a member because your membership <b>has expired</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"You are no longer a member because your membership <b>has been cancelled</b> for lack of certifications. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NO_WAITING_MEMBERSHIP:"No membership application pending. If you'd like to <b>become a member</ b>, please <a ng-click=\"doQuickFix('membership')\">send the membership application</a>.",CERTIFICATION_COUNT:"Received certifications",CERTIFICATION_COUNT_SHORT:"Certifications",SIG_STOCK:"Stock of certifications to give",BTN_RECEIVE_MONEY:"Receive",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Switch to another identity...",BTN_FIX_MEMBERSHIP:"Resubmit membership request...",BTN_MEMBERSHIP_RENEW:"Renew membership",BTN_MEMBERSHIP_RENEW_DOTS:"Renew membership...",BTN_MEMBERSHIP_OUT_DOTS:"Revoke membership...",BTN_SECURITY_DOTS:"Sign-in and security...",BTN_SHOW_DETAILS:"Display technical data",LOCKED_OUTPUTS_POPOVER:{TITLE:"Locked amount",DESCRIPTION:"Here are the conditions for unlocking this amount:",DESCRIPTION_MANY:"This transaction consists of several parts, of which the unlock conditions are:",LOCKED_AMOUNT:"Conditions for the amount:"},NEW:{TITLE:"Registration",INTRO_WARNING_TIME:"Creating an account on {{name|capitalize}} is very simple. Please take sufficient time to do this correctly (not to forget the usernames, passwords, etc.).",INTRO_WARNING_SECURITY:"Check that the hardware you are currently using (computer, tablet, phone) <b>is secure and trustworthy </b>.",INTRO_WARNING_SECURITY_HELP:"Up-to-date anti-virus, firewall enabled, session protected by password or pin code...",INTRO_HELP:"Click <b> {{'COMMON.BTN_START'|translate}}</b> to begin creating an account. You will be guided step by step.",REGISTRATION_NODE:"Your registration will be registered via the Duniter peer <b>{{server}}</b> node, which will then be distributed to the rest of the currency network.",REGISTRATION_NODE_HELP:"If you do not trust this peer, please change <a ng-click=\"doQuickFix('settings')\">in the settings</a> of Cesium.",SELECT_ACCOUNT_TYPE:"Choose the type of account to create:",MEMBER_ACCOUNT:"Member account",MEMBER_ACCOUNT_TITLE:"Create a member account",MEMBER_ACCOUNT_HELP:"If you are not yet registered as an individual (one account possible per individual).",WALLET_ACCOUNT:"Simple wallet",WALLET_ACCOUNT_TITLE:"Create a wallet",WALLET_ACCOUNT_HELP:"If you represent a company, association, etc. or simply need an additional wallet. No universal dividend will be created by this account.",SALT_WARNING:"Choose a secret identifier.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this identifier</b>.<br/>If lost, there are no means to retrieve it!",PASSWORD_WARNING:"Choose a password.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this password</b>.<br/>If lost, there are no means to retrieve it!",PSEUDO_WARNING:"Choose a pseudonym.<br/>It may be used by other people to find you more easily.<br/><br/>.Use of <b>commas, spaces and accents</b> is not allowed.<br/><div class='hidden-xs'><br/>Example: <span class='gray'>JohnDalton, JackieChan, etc.</span>",PSEUDO:"Pseudonym",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Confirm",SALT_CONFIRM_HELP:"Confirm the secret identifier",PASSWORD_CONFIRM:"Confirm",PASSWORD_CONFIRM_HELP:"Confirm the password",SLIDE_6_TITLE:"Confirmation:",COMPUTING_PUBKEY:"Computing...",LAST_SLIDE_CONGRATULATION:"You completed all required fields.<br/><b>You can send the account creation request</b>.<br/><br/>For information, the public key below identifies your future account.<br/>It can be communicated to third parties to receive their payment.<br/>Once your account has been approved, you can find this key under <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Warning:</b> your secret identifier, password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to send this account creation request?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Warning:</b> your password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to continue?',CHECKING_PSEUDO:"Checking...",PSEUDO_AVAILABLE:"This pseudonym is available",PSEUDO_NOT_AVAILABLE:"This pseudonym is not available",INFO_LICENSE:"To be able to adhere to the currency, we ask you to kindly read and accept this license.",BTN_ACCEPT:"I accept",BTN_ACCEPT_LICENSE:"I accept the license"},POPUP_REGISTER:{TITLE:"Enter a pseudonym",HELP:"A pseudonym is needed to let other members find you."},SELECT_IDENTITY_MODAL:{TITLE:"Identity selection",HELP:'Several <b>different identities</b> have been sent, for the public key <span class="gray"> <i class="ion-key"></i> {{pubkey | formatPubkey}}</span>.<br/>Please select the identity to use:'},SELECT_WALLET_MODAL:{TITLE:"Wallet selection"},WALLET_LIST:{TITLE:"My wallets",BTN_NEW:"Add a wallet",BTN_DOWNLOAD:"Download the list",BTN_IMPORT_FILE_DOTS:"Import from a file...",NO_WALLET:"No secondary wallet",BTN_DELETE:"Remove a secondary wallet...",BTN_RENAME:"Rename the wallet",EXPORT_FILENAME:"my_wallets-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Total: ",EDIT_POPOVER:{TITLE:"Rename the wallet",HELP:"Fill in the new name",NAME_HELP:"Wallet name"},IMPORT_MODAL:{TITLE:"Import secondary wallets",HELP:"To <b>import secodnary wallets</b>, please drag the file in the box below, or click in the box to search for a file.",WALLET_COUNT:"<b>{{count}}</b> new wallet{{count > 1 ? 's' : ''}}",NO_NEW_WALLET:"No new wallet"}},SECURITY:{ADD_QUESTION:"Add custom question",BTN_CLEAN:"Clean",BTN_RESET:"Reset",DOWNLOAD_REVOKE:"Save a revocation file",DOWNLOAD_REVOKE_HELP:"Having a revocation file is important, for example in case of loss of identifiers. It allows you to <b>get this account out of the Web Of Trust</b>, thus becoming a simple wallet.",GENERATE_KEYFILE:"Generate my keychain file ...",GENERATE_KEYFILE_HELP:"Generate a file allowing you to authenticate without entering your identifiers.<br/><b>Warning:</b> this file will contain your secret key; It is therefore very important to put it in a safe place!",KEYFILE_FILENAME:"keychain-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Register as member...",MEMBERSHIP_IN_HELP:"Allows you to <b>transform </b> a simple wallet account <b>into a member account</b>, by sending a membership request. Useful only if you do not already have another member account.",SEND_IDENTITY:"Publish identity...",SEND_IDENTITY_HELP:"Allows you to associate a pseudonym to this account, but <b>without applying for membership</b> to become a member. This is not very useful because the validity of this pseudonym association is limited in time.",HELP_LEVEL:"Choose <strong> at least {{nb}} questions </strong> :",LEVEL:"Security level",LOW_LEVEL:'Low <span class="hidden-xs">(2 questions minimum)</span>',MEDIUM_LEVEL:'Medium <span class="hidden-xs">(4 questions minimum)</span>',QUESTION_1:"What was your best friend's name when you were a teen ?",QUESTION_2:"What was the name of your first pet ?",QUESTION_3:"What is the first meal you have learned to cook ?",QUESTION_4:"What is the first movie you saw in the cinema?",QUESTION_5:"Where did you go the first time you flew ?",QUESTION_6:"What was your favorite elementary school teacher's name  ?",QUESTION_7:"What would you consider the ideal job ?",QUESTION_8:"Which children's book do you prefer?",QUESTION_9:"What was the model of your first vehicle?",QUESTION_10:"What was your nickname when you were a child ?",QUESTION_11:"What was your favorite movie character or actor when you were a student ?",QUESTION_12:"What was your favorite singer or band when you were a student ?",QUESTION_13:"In which city did your parents meet ?",QUESTION_14:"What was the name of your first boss ?",QUESTION_15:"What is the name of the street where you grew up ?",QUESTION_16:"What is the name of the first beach where you go swim ?",QUESTION_17:"QWhat is the first album you bought ?",QUESTION_18:"What is the name of your favorite sport team ?",QUESTION_19:"What was your grand-father's job ?",RECOVER_ID:"Recover my password...",RECOVER_ID_HELP:"If you have a <b>backup file of your identifiers</b>, you can find them by answering your personal questions correctly.",REVOCATION_WITH_FILE:"Rekoke my member account...",REVOCATION_WITH_FILE_DESCRIPTION:"If you have <b>permanently lost your member account credentials (or if account security is compromised), you can use <b>the revocation file</b> of the account <b>to quit the Web Of Trust</b>.",REVOCATION_WITH_FILE_HELP:"To <b>permanently revoke</ b> a member account, please drag the revocation file in the box below, or click in the box to search for a file.",REVOCATION_WALLET:"Revoke this account immediately",REVOCATION_WALLET_HELP:"Requesting revocation of your identity causes <b>will revoke your membership</ b> (definitely for the associated pseudonym and public key). The account will no longer be able to produce a Universal Dividend.<br/>However, you can still use it as a simple wallet.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Save my credentials...",SAVE_ID_HELP:"Creating a backup file, to <b>retrieve your password</b> (and the secret identifier) <b> in case of forgetting</b>. The file is <b>secured</ b> (encrypted) using personal questions.",STRONG_LEVEL:'Strong <span class="hidden-xs ">(6 questions minimum)</span>',TITLE:"Account and security",KEYFILE:{PUBSEC_FORMAT:"PubSec format.",PUBSEC_FORMAT_HELP:"This file format is compatible in particular with Cesium and Gannonce. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",WIF_FORMAT:"Wallet Import Format (WIF)",WIF_FORMAT_HELP:"This format is used in particular by paper wallets. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",EWIF_FORMAT:"Encrypted Wallet Import Format (WIF)",EWIF_FORMAT_HELP:"This format is used in particular by paper wallets. However, <b>the keychain is encrypted</b> from a passphrase of your choice.",PASSWORD_POPUP:{TITLE:"Keychain file encrypted",HELP:"Please enter the passphrase:",PASSWORD_HELP:"Passphrase"},ERROR:{BAD_PASSWORD:"Bad passphrase",BAD_CHECKSUM:"Bad checksum"}}},FILE_NAME:"{{currency}} - Account statement {{pubkey|formatPubkey}} to {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Amount",COMMENT:"Comment"}},TRANSFER:{TITLE:"Transfer",SUB_TITLE:"Transfer money",SUB_TITLE_ALL:"Empty the account",FROM:"From",TO:"To",AMOUNT:"Amount",AMOUNT_HELP:"Amount",COMMENT:"Comment",COMMENT_HELP:"Comment (optional)",BTN_SEND:"Send",BTN_ADD_COMMENT:"Add a comment",REST:"Rest of account",REST_TO:"to",WARN_COMMENT_IS_PUBLIC:"Please note that <b>comments are public</b> (not encrypted).",MODAL:{TITLE:"Transfer"}},ERROR:{UNKNOWN_URI_FORMAT:"Unknown URI format",PUBKEY_INVALID_CHECKSUM:"Invalid public key (bad checksum).",POPUP_TITLE:"Error",UNKNOWN_ERROR:"Unknown error",CRYPTO_UNKNOWN_ERROR:"Your browser is not compatible with cryptographic features.",DOWNLOAD_KEYFILE_FAILED:"Failed to generate the keychain file.",EQUALS_TO_PSEUDO:"Must be different from pseudonym",EQUALS_TO_SALT:"Must be different from secret identifier",FIELD_REQUIRED:"This field is required.",FIELD_TOO_SHORT:"This field value is too short.",FIELD_TOO_SHORT_WITH_LENGTH:"Value is too short (min {{minLength]] characters).",FIELD_TOO_LONG:"Value is exceeding max length.",FIELD_TOO_LONG_WITH_LENGTH:"Value is too long (max {{maxLength}} characters).",FIELD_MIN:"Minimum value: {{min}}",FIELD_MAX:"Maximal value: {{max}}",FIELD_ACCENT:"Commas and accent characters not allowed",FIELD_NOT_NUMBER:"Value is not a number",FIELD_NOT_INT:"Value is not an integer",FIELD_NOT_EMAIL:"Email adress not valid",PASSWORD_NOT_CONFIRMED:"Must match previous password.",SALT_NOT_CONFIRMED:"Must match previous identifier.",SEND_IDENTITY_FAILED:"Error while trying to register.",SEND_CERTIFICATION_FAILED:"Could not certify identity.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"You could not send certification, because your account is <b>not a member account</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"You could not send certification now, because your are <b>not a member</b> yet.<br/><br/>You still need certification to become a member.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"This account could not be certified. No registration found, or need to renew.",LOGIN_FAILED:"Error while sign in.",LOAD_IDENTITY_FAILED:"Could not load identity.",LOAD_REQUIREMENTS_FAILED:"Could not load identity requirements.",SEND_MEMBERSHIP_IN_FAILED:"Error while sending registration as member.",SEND_MEMBERSHIP_OUT_FAILED:"Error while sending membership revocation.",REFRESH_WALLET_DATA:"Could not refresh wallet.",GET_CURRENCY_PARAMETER:"Could not get currency parameters.",GET_CURRENCY_FAILED:"Could not load currency. Please retry later.",SEND_TX_FAILED:"Could not send transaction.",ALL_SOURCES_USED:"Please wait the next block computation (All transaction sources has been used).",NOT_ENOUGH_SOURCES:"Not enough changes to send this amount in one time.<br/>Maximum amount: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error while creating your member account.",RESTORE_WALLET_DATA_ERROR:"Error while reloading settings from local storage",LOAD_WALLET_DATA_ERROR:"Error while loading wallet data.",COPY_CLIPBOARD_FAILED:"Could not copy to clipboard",TAKE_PICTURE_FAILED:"Could not get picture.",SCAN_FAILED:"Could not scan QR code.",SCAN_UNKNOWN_FORMAT:"Code not recognized.",WOT_LOOKUP_FAILED:"Search failed.",LOAD_PEER_DATA_FAILED:"Duniter peer not accessible. Please retry later.",NEED_LOGIN_FIRST:"Please sign in first.",AMOUNT_REQUIRED:"Amount is required.",AMOUNT_NEGATIVE:"Negative amount not allowed.",NOT_ENOUGH_CREDIT:"Not enough credit.",INVALID_NODE_SUMMARY:"Unreachable peer or invalid address",INVALID_USER_ID:"Field 'pseudonym' must not contains spaces or special characters.",INVALID_COMMENT:"Field 'reference' has a bad format.",INVALID_PUBKEY:"Public key has a bad format.",INVALID_PUBKEY_CHECKSUM:"Invalid checksum.",IDENTITY_REVOKED:"This identity <b>has been revoked</b>. It can no longer become a member.",IDENTITY_REVOKED_WITH_TIME:"This identity <b>has been revoked {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). It can no longer become a member.",IDENTITY_PENDING_REVOCATION:"The <b>revocation of this identity</b> has been requested and is awaiting processing. Certification is therefore disabled.",IDENTITY_INVALID_BLOCK_HASH:"This membership application is no longer valid (because it references a block that network peers are cancelled): the person must renew its application for membership <b>before</b> being certified.",IDENTITY_EXPIRED:"This identity has expired: this person must re-apply <b>before</b> being certified.",IDENTITY_SANDBOX_FULL:"Could not register, because peer's sandbox is full.<br/><br/>Please retry later or choose another Duniter peer (in <b>Settings</b>).",IDENTITY_NOT_FOUND:"Identity not found",IDENTITY_TX_FAILED:"Error while getting identity's transactions",WOT_PENDING_INVALID_BLOCK_HASH:"Membership not valid.",WALLET_INVALID_BLOCK_HASH:"Your membership application is no longer valid (because it references a block that network peers are cancelled).<br/>You must <a ng-click=\"doQuickFix('renew')\">renew your application for membership</a> to fix this issue.",WALLET_IDENTITY_EXPIRED:"The publication of your identity <b>has expired</b>.<br/>You must <a ng-click=\"doQuickFix('fixIdentity')\">re-issue your identity</a> to resolve this issue.",WALLET_REVOKED:"Your identity has been <b>revoked</b>: neither your pseudonym nor your public key will be used in the future for a member account.",WALLET_HAS_NO_SELF:"Your identity must first have been published, and not expired.",AUTH_REQUIRED:"Authentication required.",AUTH_INVALID_PUBKEY:"The public key does not match the connected account.",AUTH_INVALID_SCRYPT:"Invalid username or password.",AUTH_INVALID_FILE:"Invalid keychain file.",AUTH_FILE_ERROR:"Failed to open keychain file",IDENTITY_ALREADY_CERTIFY:"You have <b>already certified</b> that identity.<br/><br/>Your certificate is still valid (expires {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"You have <b>already certified</b> that identity.<br/><br/>Your certification is still pending (Deadline for treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Unable to certify",LOAD_NEWCOMERS_FAILED:"Unable to load new members.",LOAD_PENDING_FAILED:"Unable to load pending registrations.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member</b> in order to perform this action.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member (or old member)</b> in order to perform this action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"You must have <b>published your identity</b> in order to perform this action.",GET_BLOCK_FAILED:"Error while getting block",INVALID_BLOCK_HASH:"Block not found (incorrect hash)",DOWNLOAD_REVOCATION_FAILED:"Error while downloading revocation file.",REVOCATION_FAILED:"Error while trying to revoke the identity.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Wrong secret identifier or password ",RECOVER_ID_FAILED:"Could not recover password",LOAD_FILE_FAILED:"Unable to load file",NOT_VALID_REVOCATION_FILE:"Invalid revocation file (wrong file format)",NOT_VALID_SAVE_ID_FILE:"Invalid credentials backup file (wrong file format)",NOT_VALID_KEY_FILE:"Invalid keychain file (unrecognized format)",EXISTING_ACCOUNT:"Your identifiers correspond to an already existing account, whose <a ng-click=\"showHelpModal('pubkey')\">public key</a> is:",EXISTING_ACCOUNT_REQUEST:"Please modify your credentials so that they correspond to an unused account.",GET_LICENSE_FILE_FAILED:"Unable to get license file",CHECK_NETWORK_CONNECTION:"No peer appears to be accessible.<br/><br/>Please <b>check your Internet connection</b>.",ISSUE_524_TX_FAILED:"Failed to transfer.<br/><br/>A message has been sent to developers to help solve the problem.<b>Thank you for your help</b>.",ADD_SECONDARY_WALLET_FAILED:"Unable to add secondary wallet.",UPDATE_WALLET_LIST_FAILED:"Unable to refresh the list of wallets.",LOAD_WALLET_LIST_FAILED:"Unable to load the list of wallets.",SAVE_WALLET_LIST_FAILED:"Unable to save the list of wallets.",COULD_NOT_ADD_MAIN_WALLET:"This wallet <b>is the main account</b> with which you are connected. Unable to add it as a secondary wallet.",COULD_NOT_ADD_EXISTING_WALLET:"Wallet already existing in the list.",UNKNOWN_WALLET_ID:"Unknown secondary wallet.",RESTORE_WALLET_LIST_FAILED:"Unable to restore the list of wallets.",INVALID_FILE_FORMAT:"Invalid file format.",SAME_TX_RECIPIENT:"The recipient must be different from the issuer."},INFO:{POPUP_TITLE:"Information",CERTIFICATION_DONE:"Identity successfully signed",NOT_ENOUGH_CREDIT:"Not enough credit",TRANSFER_SENT:"Transfer request successfully sent",COPY_TO_CLIPBOARD_DONE:"Copy succeeded",MEMBERSHIP_OUT_SENT:"Membership revocation sent",NOT_NEED_MEMBERSHIP:"Already a member.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"This identity will soon lack certification (at least {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"This identity did not send a membership request. She will have to if she wishes to become a member.",HAS_ALTERNATIVE_IDENTITIES:"There are <b>multiple identities</b> attached to this public key. <b>Before any certification</b>, please <a ng-click=\"doQuickFix('showSelectIdentities')\">check other identities</a> to choose the correct one, or contact the wallet owner.",REVOCATION_SENT:"Revocation sent successfully",REVOCATION_SENT_WAITING_PROCESS:"Revocation <b>has been sent successfully</b>. It is awaiting processing.",FEATURES_NOT_IMPLEMENTED:"This features is not implemented yet.<br/><br/>Why not to contribute to get it faster? ;)",EMPTY_TX_HISTORY:"No operations to export"},CONFIRM:{POPUP_TITLE:"<b>Confirmation</b>",POPUP_WARNING_TITLE:"<b>Warning</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Security warning</b>',CERTIFY_RULES_TITLE_UID:"Certify {{uid}}",CERTIFY_RULES:'<b class="assertive">Don\'t certify an account</b> if you believe that: <ul><li>1.) the issuers identity might be faked.<li>2.) the issuer already has another certified account.<li>3.) the issuer purposely or carelessly violates rule 1 or 2 (he certifies faked or double accounts).</ul></small><br/>Are you sure you want to certify this identity?',FULLSCREEN:"View the application in full screen?",EXIT_APP:"Close the application ?",TRANSFER:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",TRANSFER_ALL:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li><br/><li> - Rest : <b>{{restAmount}} {{unit}}</b> to <b>{{restTo}}</b></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",MEMBERSHIP_OUT:"This operation is <b>irreversible</b>.<br/></br/><b>Are you sure you want to terminate your membership?</b>",MEMBERSHIP_OUT_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>terminate your membership</b>?",LOGIN_UNUSED_WALLET_TITLE:"Typing error?",LOGIN_UNUSED_WALLET:"The account seems to be <b>inactive</b>.<br/><br/>It's probably a <b>typing error</b> when sign in. Please try again, checking that <b>public key is yours<b/>.",
+FIX_IDENTITY:"The pseudonym <b>{{uid}}</b> will be published again, replacing the old publication that has expired.<br/></br/><b>Are you sure</b> you want to continue?",FIX_MEMBERSHIP:"Your application for membership will be sent.<br/></br/><b>Are you sure?</b>",MEMBERSHIP:"Your membership request will be sent. <br/></br/><b>Are you sure?</b>",RENEW_MEMBERSHIP:"Your membership will be renewed.<br/></br/><b>Are you sure?</b>",REVOKE_IDENTITY:"You will <b>definitely revoke this identity</b>.<br/><br/>The public key and the associated pseudonym <b>will never be used again</b> (for a member account).<br/></br/><b>Are you sure</b> you want to revoke this identity?",REVOKE_IDENTITY_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>revoke this identity</b>?",NOT_NEED_RENEW_MEMBERSHIP:"Your membership does not need to be renewed (it will only expire in {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Are you sure you</b> want to renew your membership?",SAVE_BEFORE_LEAVE:"Do you want to <b>save your changes</b> before leaving the page?",SAVE_BEFORE_LEAVE_TITLE:"Changes not saved",LOGOUT:"Are you sure you want to logout?",USE_FALLBACK_NODE:"Peer <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the <b>{{new}}</b> node?",ISSUE_524_SEND_LOG:"The transaction was rejected because of a known problem (issue #524) but not reproduced.<br/><br/>To help developers correct this error, do you accept <b>the transmission of your logs</b> per message?<br/><small>(No confidential data is sent)</small>"},DOWNLOAD:{POPUP_TITLE:"<b>Revocation file</b>",POPUP_REVOKE_MESSAGE:"To safeguard your account, please download the <b>account revocation document</b>. It will allow you to cancel your account (in case of account theft, ID, an incorrectly created account, etc.).<br/><br/><b>Please store it in a safe place.</b>"},HELP:{TITLE:"Online help",JOIN:{SECTION:"Join",SALT:'The secret identifier is very important. It is used to hash you password, which in turn is used to calculate your <span class="text-italic">public account key</span> (its number) and the private key to access it.<br/><b>Please remeber this identifier well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good secret identifier must be sufficiently long (8 characters at the very least) and as original as possible.',PASSWORD:"The password is very important. Together with the secret identifier, it is use to calculate your account number (pblic key) and the private key to access it.<br/><b>Please remember it well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good password is made (ideally) of at least 8 characters, with at least one capital and one number.",PSEUDO:'A pseudonym is used only when joining as <span class="text-italic">member</span>. It is always associated with a wallet (by its <span class="text-italic">public key</span>).<br/>It is published on the network so that other users may identify it, certify or send money to the account.<br/>A pseudonym must be unique among all members (current and past).'},LOGIN:{SECTION:"Log in",PUBKEY:"Account public key",PUBKEY_DEF:'The public key of the keychain is generated from the entered identifiers (any), but does not correspond to an account already used.<br/><b>Make sure your public key is the same as your account</b>. Otherwise, you will be logged into an account that is probably never used, as the risk of collision with an existing account is very small.<br/><a href="https://en.wikipedia.org/wiki/Elliptic_curve_cryptography" target="_ system">Learn more about cryptography</a> by public key.',METHOD:"Connection methods",METHOD_DEF:"Several options are available to connect to a portfolios: <br/> - The connection <b>with salt (simple or advanced)</b> mixes your password with the secret identifier, to limit the attempts of piracy<br/> - The connection <b>using public key</b> prevents you from entering your credentials, which you will be asked only when an operation need it.<br/> - The connection <b>using keychain file</b> will read the public and private keys of the account from a file without the need to enter credentials. Several file formats are possible."},GLOSSARY:{SECTION:"Glossary",PUBKEY_DEF:"A public key always identifies a wallet. It may identify a member. In Cesium it is calculated using the secret identifier and the password.",MEMBER:"Member",MEMBER_DEF:'A member is a real and living human, wishing to participate freely to the monitary community. The member will receive universal dividend, according to the period and amount as defined in the <span class="text-italic">currency parameters</span>.',CURRENCY_RULES:"Currency rules",CURRENCY_RULES_DEF:'The currency rules are defined only once, and for all. They set the parameters under which the currency will perform: universal dividend calculation, the amount of certifications needed to become a member, the maximum amount of certifications a member can send, etc.<br/><br/>The parameters cannot be modified because of the use of a <span class="text-italic">Blockchain</span> which carries and executes these rules, and constantly verifies their correct application. <a href="#/app/currency">See current parameters</a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'The Blockchain is a decentralised system which, in case of Duniter, serves to carry and execute the <span class="text-italic">currency rules</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Read more about Duniter</a> and the working of its blockchain.',UNIVERSAL_DIVIDEND_DEF:'The Universal Dividend (UD) is the quantity of money co-created by each member, according to the period and the calculation defined in the <span class="text-italic">currency rules</span>.<br/>Every term, the members receive an equal amount of new money on their account.<br/><br/>The UD undergoes a steady growth, to remain fair under its members (current and future), calculated by an average life expectancy, as demonstrated in the Relative Theory of Money (RTM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Read more about RTM</a> and open money.',WOT:"Web of Trust (WoT)",WOT_DEF:"The Web of Trust is made up of all the members of the currency, and the links of certification which connect them.",DISTANCE_RULE:"Distance rule",DISTANCE_RULE_DEF:"The rule of distance defines <b>a maximum distance to meet</b> between an applicant and a minimum number of referring member. This distance is calculated using the certification links."},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> allows discovery of <b>currency parameters</b> and its state.",CURRENCY_WOT:"The <b>member count</b> shows the <b>community's weight and evolution</b>.",CURRENCY_MASS:"Shown here is the <b>total amount</b> currently in circulation and its <b>average distribution</b> per member.<br/><br/>This allows to estimate the <b>worth of any amount</b>, in respect to what <b>others own</b> on their account (on average).",CURRENCY_UNIT_RELATIVE:"The unit used here (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amounts in {{currency|capitalize}} have been devided by the <b>Universal Dividend</b> (UD).<br/><br/><small>This relative unit is <b>relevant</b> because it is stable in contrast to the permanently growing monitary mass.</small>",CURRENCY_CHANGE_UNIT:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in <b>{{currency|capitalize}}</b>, undevided by the Universal Dividend (instead of in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, which is relative to the Universal Dividend (the amount co-produced by each member).",CURRENCY_RULES:"The <b>rules</b> of the currency determine its <b>exact and predictible</b> performance.<br/><br/>As a true DNA of the currency these rules make the monetary code <b>transparent and understandable</b>.",MENU_BTN_NETWORK:"Menu <b>{{'MENU.NETWORK'|translate}}</b> allows discovery of <b>network's state<b>.",NETWORK_BLOCKCHAIN:"All monetary transactions are recoded in a <b>public and tamper proof</b> ledger, generally referred to as the <b>blockchain</b>.",NETWORK_PEERS:"The <b>peers</b> shown here correspond to <b>computers that update and check</b> the blockchain.<br/><br/>The more active peers there are, the more <b>decentralised</b> and therefore trustworhty the currency becomes.",NETWORK_PEERS_BLOCK_NUMBER:"This <b>number</b> (in green) indicates the peer's <b>latest validated block</b> (last page written in the ledger).<br/><br/>Green indicates that the block was equally validated by the <b>majority of other peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Each member</b>, equiped with a computer with Internet, <b>can participate, adding a peer</b> simply by <b>installing the Duniter software</b> (free/libre). <a target="_new" href="{{installDocUrl}}" target="_system">Read the installation manual &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> allows access to your account balance and transaction history.",MENU_BTN_ACCOUNT_MEMBER:"Here you can consult your account status, transaction history and your certifications.",WALLET_CERTIFICATIONS:"Click here to reveiw the details of your certifications (given and received).",WALLET_RECEIVED_CERTIFICATIONS:"Click here to review the details of your <b>received certifications</b>.",WALLET_GIVEN_CERTIFICATIONS:"Click here to review the details of your <b>given certifications</b>.",WALLET_BALANCE:"Your account <b>balance</b> is shown here.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>The used unit (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amount in {{currency|capitalize}} has been divided by the <b>Universal Dividend</b> (UD) co-created by each member.<br/>At this moment, 1 UD equals {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"You can <b>change the unit</b> in which amounts are shown in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>For example, to display amounts <b>directly in {{currency|capitalize}}</b> instead of relative amounts.",WALLET_PUBKEY:"This is your account public key. You can communicate it to a third party so that it more easily identifies your account.",WALLET_SEND:"Issue a payment in just a few clicks.",WALLET_SEND_NO_MONEY:"Issue a payment in just a few clicks.<br/>(Your balance does not allow this yet)",WALLET_OPTIONS:"Please note that this button allows access to <b>other, less used actions</b>.<br/><br/>Don't forget to take a quick look, when you have a moment!",WALLET_RECEIVED_CERTS:"This shows the list of persons that certified you.",WALLET_CERTIFY:"The button <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> allows selecting an identity and certifying it.<br/><br/>Only users that are <b>already member</b> may certify others.",WALLET_CERT_STOCK:"Your supply of certifications (to send) is limited to <b>{{sigStock}} certifications</b>.<br/><br/>This supply will replete itself over time, as and when earlier certifications expire.",MENU_BTN_TX_MEMBER:"<b>{{'MENU.TRANSACTIONS'|translate}}</b> allow access to transactions history, and send new payments.",MENU_BTN_TX:"View the history of <b>your transactions</b> here and send new payments.",MENU_BTN_WOT:"The menu <b>{{'MENU.WOT'|translate}}</b> allows searching <b>users</b> of the currency (member or not).",WOT_SEARCH_TEXT_XS:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>The search will start automatically.",WOT_SEARCH_TEXT:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>Then hit <b>Enter</b> to start the search.",WOT_SEARCH_RESULT:"Simply click a user row to view the details sheet.",WOT_VIEW_CERTIFICATIONS:"The row <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> shows how many members members validated this identity.<br/><br/>These certifications testify that the account belongs to <b>a living human</b> and this person has <b>no other member account</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"There are at least <b>{{sigQty}} certifications</b> needed to become a member and receive the <b>Universal Dividend</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Click here to open <b>a list of all certifications</b> given to and by this identity.",WOT_VIEW_CERTIFY:"The button <b>{{'WOT.BTN_CERTIFY'|translate}}</b> allows to add your certification to this identity.",CERTIFY_RULES:"<b>Attention:</b> Only certify <b>real and living persons</b> that do not own any other certified account.<br/><br/>The trust carried by the currency depends on each member's vigilance!",MENU_BTN_SETTINGS:"The <b>{{'MENU.SETTINGS'|translate}}</b> allow you to configure the Cesium application.<br/><br/>For example, you can <b>change the unit</b> in which the currency will be shown.",HEADER_BAR_BTN_PROFILE:"Click here to access your <b>user profile</b>",SETTINGS_CHANGE_UNIT:"You can <b>change the display unit</b> of amounts by clicking here.<br/><br/>- Deactivate the option to show amounts in {{currency|capitalize}}.<br/>- Activate the option for relative amounts in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divided</b> by the current Universal Dividend).",END_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>Welcome to the <b>free economy</b>!",END_NOT_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>If you wish to join the currency {{currency|capitalize}}, simply click <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> below."}},API:{COMMON:{LINK_DOC:"API documentation",LINK_DOC_HELP:"API documentation for developers",LINK_STANDARD_APP:"Standard version",LINK_STANDARD_APP_HELP:"Open standard version of {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or contact the web site administrator."},HOME:{TITLE:"{{'COMMON.APP_NAME'|translate}} API Documentation",MESSAGE:'Welcome to the {{\'COMMON.APP_NAME\'|translate}} <b>API documentation </b>.<br/>Connect your web site to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',MESSAGE_SHORT:'Connect your websites to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',DOC_HEADER:"Available services:"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Online payment",TITLE_SHORT:"Online payment",SUMMARY:"Order summary:",AMOUNT:"Amount:",AMOUNTS_HELP:"Please select the amount:",NAME:"Name:",PUBKEY:"Public key of the recipient:",COMMENT:"Order reference:",NODE:"Peer address:",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Demonstration mode</b>: No payment will actually be sent during this simulation.<br/>Please use credentials: <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Invalid credentials.<br/>In demonstration mode, credentials should be: {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Payment sent.<br/>Redirect to <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Payment sent.<br/>Redirect to the seller's website...",CANCEL_REDIRECTING_WITH_NAME:"Payment cancelled.<br/>Redirect to <b>{{name}}</b>...",CANCEL_REDIRECTING:"Payment cancelled.<br/>Redirect to the seller's website..."},ERROR:{TRANSFER_FAILED:"Payment failed"}},DOC:{DESCRIPTION_DIVIDER:"Description",URL_DIVIDER:"Calling address",PARAMETERS_DIVIDER:"Parameters",AVAILABLE_PARAMETERS:"Here is the list of al available parameters:",DEMO_DIVIDER:"Try it !",DEMO_HELP:"To test this service, click on this button. The result content will be display below.",DEMO_RESULT:"Result returned by call:",DEMO_RESULT_PEER:"Peer address used:",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Success!',DEMO_CANCELLED:'<i class="icon ion-close"></i> Canceled by user',INTEGRATE_DIVIDER:"Website integration",INTEGRATE_CODE:"Code:",INTEGRATE_RESULT:"Result preview:",INTEGRATE_PARAMETERS:"Parameters",TRANSFER:{TITLE:"Payments",DESCRIPTION:"From a site (eg online marketplace) you can delegate payment in free currency to Cesium API. To do this, simply open a page at the following address:",PARAM_PUBKEY:"Recipient's public key",PARAM_PUBKEY_HELP:"Recipient's public key (required)",PARAM_AMOUNT:"Amount",PARAM_AMOUNT_HELP:"Transaction amount (required)",PARAM_COMMENT:"Reference (or comment)",PARAM_COMMENT_HELP:"Reference or comment. You will allow for example to identify the payment in the BlockChain.",PARAM_NAME:"Name (of recipient or website)",PARAM_NAME_HELP:'The name of your website. This can be a readable name (eg "My online site"), or a web address (eg "www.MySite.com").',PARAM_REDIRECT_URL:"URL redirection",PARAM_REDIRECT_URL_HELP:'URL redirection after sending payment, after the payment has been sent. Can contain the following strings, which will be replaced by the values of the transaction: "{tx}", "{hash}", "{comment}", "{amount}" and "{pubkey}".',PARAM_CANCEL_URL:"URL if cancelled",PARAM_CANCEL_URL_HELP:'URL in case of cancellation.  Can contain the following strings, which will be replaced: "{comment}", "{amount}" and "{pubkey}".',PARAM_PREFERRED_NODE:"Preferred Duniter peer",PARAM_PREFERRED_NODE_HELP:'Peer address (URL) to use preferably ("g1.domain.com:443" or "https://g1.domain.com")',EXAMPLES_HELP:"Examples of integration:",EXAMPLE_BUTTON:"HTML Button",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pay in {{currency|abbreviate}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Custom style",EXAMPLE_BUTTON_TEXT_HELP:"Button text",EXAMPLE_BUTTON_BG_COLOR:"Background color",EXAMPLE_BUTTON_BG_COLOR_HELP:"eg: #fbc14c, yellow, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Font color",EXAMPLE_BUTTON_FONT_COLOR_HELP:"eg: black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icon",EXAMPLE_BUTTON_TEXT_WIDTH:"Width",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"eg: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"No icon",EXAMPLE_BUTTON_ICON_DUNITER:"Duniter logo",EXAMPLE_BUTTON_ICON_CESIUM:"Cesium logo",EXAMPLE_BUTTON_ICON_G1_COLOR:"Ğ1 logo",EXAMPLE_BUTTON_ICON_G1_BLACK:"Ğ1 logo (outline)"}}}}),e.translations("en",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",PUBKEY:"Public key",MEMBER:"Member",BLOCK:"Block",BTN_OK:"OK",BTN_YES:"Yes",BTN_NO:"No",BTN_SEND:"Send",BTN_SEND_MONEY:"Transfer money",BTN_SEND_MONEY_SHORT:"Transfer",BTN_SAVE:"Save",BTN_YES_SAVE:"Yes, Save",BTN_YES_CONTINUE:"Yes, Continue",BTN_SHOW:"Show",BTN_SHOW_PUBKEY:"Show key",BTN_RELATIVE_UNIT:"Display amounts in UD?",BTN_BACK:"Back",BTN_NEXT:"Next",BTN_IMPORT:"Import",BTN_CANCEL:"Cancel",BTN_CLOSE:"Close",BTN_LATER:"Later",BTN_LOGIN:"Sign In",BTN_LOGOUT:"Logout",BTN_ADD_ACCOUNT:"New Account",BTN_SHARE:"Share",BTN_EDIT:"Edit",BTN_DELETE:"Delete",BTN_ADD:"Add",BTN_SEARCH:"Search",BTN_REFRESH:"Refresh",BTN_RETRY:"Retry",BTN_START:"Start",BTN_CONTINUE:"Continue",BTN_CREATE:"Create",BTN_UNDERSTOOD:"I understand",BTN_OPTIONS:"Options",BTN_HELP_TOUR:"Features tour",BTN_HELP_TOUR_SCREEN:"Discover this screen",BTN_DOWNLOAD:"Download",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Download account statement",BTN_MODIFY:"Modify",CHOOSE_FILE:"Drag your file<br/>or click to select",DAYS:"days",NO_ACCOUNT_QUESTION:"Not a member yet? Register now!",SEARCH_NO_RESULT:"No result found",LOADING:"Loading...",LOADING_WAIT:"Loading...<br/><small>(Waiting for node availability)</small>",SEARCHING:"Searching...",FROM:"From",TO:"To",COPY:"Copy",LANGUAGE:"Language",UNIVERSAL_DIVIDEND:"Universal dividend",UD:"UD",DATE_PATTERN:"MM/DD/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"MM/DD/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(empty)",UID:"Pseudonym",ENABLE:"Enabled",DISABLE:"Disabled",RESULTS_LIST:"Results:",RESULTS_COUNT:"{{count}} results",EXECUTION_TIME:"executed in {{duration|formatDurationMs}}",SHOW_VALUES:"Display values openly?",POPOVER_ACTIONS_TITLE:"Options",POPOVER_FILTER_TITLE:"Filters",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit at {{limit}})",POPOVER_SHARE:{TITLE:"Share",SHARE_ON_TWITTER:"Share on Twitter",SHARE_ON_FACEBOOK:"Share on Facebook",SHARE_ON_DIASPORA:"Share on Diaspora*",SHARE_ON_GOOGLEPLUS:"Share on Google+"},FILE:{DATE:"Date:",TYPE:"Type:",SIZE:"Size:",VALIDATING:"Validating..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Choose source:",BTN_PICTURE_GALLERY:"Gallery",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Home",WOT:"Registry",CURRENCY:"Currency",ACCOUNT:"My Account",WALLETS:"My wallets",TRANSFER:"Transfer",SCAN:"Scan",SETTINGS:"Settings",NETWORK:"Network",TRANSACTIONS:"My transactions"},ABOUT:{TITLE:"About",LICENSE:"<b>Free/libre software</b> (License GNU AGPLv3).",LATEST_RELEASE:"There is a <b>newer version</ b> of {{'COMMON.APP_NAME' | translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Please update {{'COMMON.APP_NAME' | translate}} (latest version: <b>v{{version}}</b>)",CODE:"Source code:",OFFICIAL_WEB_SITE:"Official web site:",DEVELOPERS:"Developers:",FORUM:"Forum:",PLEASE_REPORT_ISSUE:"Please report any issue to us!",REPORT_ISSUE:"Report an issue",BTN_OPEN_DEV_WINDOW:"Open the debug window"},HOME:{TITLE:"Cesium",WELCOME:"Welcome to the Cesium Application!",MESSAGE:"Receive and send libre currency {{currency|abbreviate}}",BTN_CURRENCY:"Explore currency",BTN_ABOUT:"about",BTN_HELP:"Help",REPORT_ISSUE:"Report an issue",NOT_YOUR_ACCOUNT_QUESTION:'You do not own the account <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Disconnect this account",CONNECTION_ERROR:'Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or change node <a class="positive" ng-click="doQuickFix(\'settings\')">in the settings</a>.',SHOW_ALL_FEED:"Show all",READ_MORE:"Read more",FEED_SOURCE:"Source"},SETTINGS:{TITLE:"Settings",DISPLAY_DIVIDER:"Display",STORAGE_DIVIDER:"Storage",NETWORK_SETTINGS:"Network",PEER:"Duniter peer address",PEER_SHORT:"Peer address",PEER_CHANGED_TEMPORARY:"Address used temporarily",USE_LOCAL_STORAGE:"Enable local storage",USE_LOCAL_STORAGE_HELP:"Allows you to save your settings",WALLETS_SETTINGS:"My wallets",USE_WALLETS_ENCRYPTION:"Secure the list",USE_WALLETS_ENCRYPTION_HELP:"Enables you to encrypt the list of your wallets. Authentication required to access it.",ENABLE_HELPTIP:"Enable contextual help tips",ENABLE_UI_EFFECTS:"Enable visual effects",HISTORY_SETTINGS:"Account operations",DISPLAY_UD_HISTORY:"Display produced dividends?",TX_HISTORY_AUTO_REFRESH:"Enable automatic refresh?",TX_HISTORY_AUTO_REFRESH_HELP:"Updates the list of operations to each new block.",AUTHENTICATION_SETTINGS:"Authentication",KEEP_AUTH:"Expiration of authentication",KEEP_AUTH_SHORT:"Expiration",KEEP_AUTH_HELP:"Define when authentication is cleared from memory.",KEEP_AUTH_OPTION:{NEVER:"After each operation",SECONDS:"After {{value}}s of inactivity",MINUTE:"After {{value}}min of inactivity",MINUTES:"After {{value}}min of inactivity",HOUR:"After {{value}}h of inactivity",ALWAYS:"At the end of the session"},KEYRING_FILE:"Keyring file",KEYRING_FILE_HELP:'Allow auto-connect at startup, or to authenticate (only if "Expiration of authentication" is "at the end of the session"',REMEMBER_ME:"Remember me ?",REMEMBER_ME_HELP:"Allows to remain identified from one session to another, keeping the public key locally.",PLUGINS_SETTINGS:"Extensions",BTN_RESET:"Restore default values",EXPERT_MODE:"Enable expert mode",EXPERT_MODE_HELP:"Allow to see more details",BLOCK_VALIDITY_WINDOW:"Block uncertainty time",BLOCK_VALIDITY_WINDOW_SHORT:"Time of uncertainty",BLOCK_VALIDITY_WINDOW_HELP:"Time to wait before considering an information is validated",BLOCK_VALIDITY_OPTION:{NONE:"No delay",N:"{{time | formatDuration}} ({{count}} blocks)"},POPUP_PEER:{TITLE:"Duniter peer",HOST:"Address",HOST_HELP:"Address: server:port",USE_SSL:"Secured?",USE_SSL_HELP:"(SSL Encryption)",BTN_SHOW_LIST:"Peer's list"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Block #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Current block",TITLE:"Block #{{number|formatInteger}}",COMPUTED_BY:"Computed by",SHOW_RAW:"Show raw data",TECHNICAL_DIVIDER:"Technical informations",VERSION:"Format version",HASH:"Computed hash",UNIVERSAL_DIVIDEND_HELP:"Money co-produced by each of the {{membersCount}} members",EMPTY:"Aucune donnée dans ce bloc",POW_MIN:"Minimal difficulty",POW_MIN_HELP:"Difficulty imposed in calculating hash",DATA_DIVIDER:"Data",IDENTITIES_COUNT:"New identities",JOINERS_COUNT:"Joiners",ACTIVES_COUNT:"Renewals",ACTIVES_COUNT_HELP:"Members having renewed their membership",LEAVERS_COUNT:"Leavers",LEAVERS_COUNT_HELP:"Members that now refused certification",EXCLUDED_COUNT:"Excluded members",EXCLUDED_COUNT_HELP:"Old members, excluded because missing membreship renewal or certifications",REVOKED_COUNT:"Revoked identities",REVOKED_COUNT_HELP:"These accounts may no longer be member",TX_COUNT:"Transactions",CERT_COUNT:"Certifications",TX_TO_HIMSELF:"Change",TX_OUTPUT_UNLOCK_CONDITIONS:"Unlock conditions",TX_OUTPUT_OPERATOR:{AND:"and",OR:"or"},TX_OUTPUT_FUNCTION:{SIG:"<b>Sign</b> of the public key",XHX:"<b>Password</b>, including SHA256 =",CSV:"Blocked during",CLTV:"Bloqué until"}},LOOKUP:{TITLE:"Blocks",NO_BLOCK:"No bloc",LAST_BLOCKS:"Last blocks:",BTN_COMPACT:"Compact"}},CURRENCY:{VIEW:{TITLE:"Currency",TAB_CURRENCY:"Currency",TAB_WOT:"Web of trust",TAB_NETWORK:"Network",TAB_BLOCKS:"Blocks",CURRENCY_SHORT_DESCRIPTION:"{{currency|capitalize}} is a <b>libre money</b>, started {{firstBlockTime | formatFromNow}}. It currently counts <b>{{N}} members </b>, who produce and collect a <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a> (DU), each {{dt | formatPeriod}}.",NETWORK_RULES_DIVIDER:"Network rules",CURRENCY_NAME:"Currency name",MEMBERS:"Members count",MEMBERS_VARIATION:"Variation since {{duration|formatDuration}} (since last UD)",MONEY_DIVIDER:"Money",MASS:"Monetary mass",SHARE:"Money share",UD:"Universal Dividend",C_ACTUAL:"Current growth",MEDIAN_TIME:"Current blockchain time",POW_MIN:"Common difficulty",MONEY_RULES_DIVIDER:"Rules of currency",C_RULE:"Theoretical growth target",UD_RULE:"Universal dividend (formula)",DT_REEVAL:"Period between two re-evaluation of the UD",REEVAL_SYMBOL:"reeval",DT_REEVAL_VALUE:"Every <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Date of first reevaluation of the UD",SIG_QTY_RULE:"Required number of certifications to become a member",SIG_STOCK:"Maximum number of certifications sent by a member",SIG_PERIOD:"Minimum delay between 2 certifications sent by one and the same issuer.",SIG_WINDOW:"Maximum delay before a certification will be treated",SIG_VALIDITY:"Lifetime of a certification that has been treated",MS_WINDOW:"Maximum delay before a pending membership will be treated",MS_VALIDITY:"Lifetime of a membership that has been treated",STEP_MAX:"Maximum distance between a newcomer and each referring members.",WOT_RULES_DIVIDER:"Rules for web of trust",SENTRIES:"Required number of certifications (given <b>and</b> received) to become a referring member",SENTRIES_FORMULA:"Required number of certifications to become a referring member (formula)",XPERCENT:"Minimum percent of referring member to reach to match the distance rule",AVG_GEN_TIME:"The average time between 2 blocks",CURRENT:"current",MATH_CEILING:"CEILING",DISPLAY_ALL_RULES:"Display all rules?",BTN_SHOW_LICENSE:"Show license",WOT_DIVIDER:"Web of trust"},LICENSE:{TITLE:"Currency license",BTN_DOWNLOAD:"Download file",NO_LICENSE_FILE:"License file not found."}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain time",LOADING_PEERS:"Loading peers...",NODE_ADDRESS:"Address:",SOFTWARE:"Software:",WARN_PRE_RELEASE:"Pre-release (latest stable: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Version <b>{{version}}</b> available",WS2PID:"Identifier:",PRIVATE_ACCESS:"Private access",POW_PREFIX:"Proof of work prefix:",ENDPOINTS:{BMAS:"Secure endpoint (SSL)",BMATOR:"TOR endpoint",WS2P:"WS2P endpoint",ES_USER_API:"Cesium+ data node"}},INFO:{ONLY_SSL_PEERS:"Non-SSL nodes have a degraded display because Cesium works in HTTPS mode."}},PEER:{PEERS:"Peers",SIGNED_ON_BLOCK:"Signed on block",MIRROR:"mirror",MIRRORS:"Mirrors",MIRROR_PEERS:"Mirror peers",PEER_LIST:"Peer's list",MEMBERS:"Members",MEMBER_PEERS:"Member peers",ALL_PEERS:"All peers",DIFFICULTY:"Difficulty",API:"API",CURRENT_BLOCK:"Block #",POPOVER_FILTER_TITLE:"Filter",OFFLINE:"Offline",OFFLINE_PEERS:"Offline peers",BTN_SHOW_PEER:"Show peer",VIEW:{TITLE:"Peer",OWNER:"Owned by ",SHOW_RAW_PEERING:"See peering document",SHOW_RAW_CURRENT_BLOCK:"See current block (raw format)",LAST_BLOCKS:"Last blocks",KNOWN_PEERS:"Known peers :",GENERAL_DIVIDER:"General information",ERROR:{LOADING_TOR_NODE_ERROR:"Could not get peer data, using the TOR network.",LOADING_NODE_ERROR:"Could not get peer data"}}},WOT:{SEARCH_HELP:"Search (member or public key)",SEARCH_INIT_PHASE_WARNING:"During the pre-registration phase, the search for pending registrations <b>may be long</b>. Please wait ...",REGISTERED_SINCE:"Registered on",REGISTERED_SINCE_BLOCK:"Registered since block #",NO_CERTIFICATION:"No validated certification",NO_GIVEN_CERTIFICATION:"No given certification",NOT_MEMBER_PARENTHESIS:"(non-member)",IDENTITY_REVOKED_PARENTHESIS:"(identity revoked)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(being revoked)",EXPIRE_IN:"Expires",NOT_WRITTEN_EXPIRE_IN:"Deadline<br/>treatment",EXPIRED:"Expired",PSEUDO:"Pseudonym",SIGNED_ON_BLOCK:"Emitted on block #{{block}}",WRITTEN_ON_BLOCK:"Written on block #{{block}}",GENERAL_DIVIDER:"General information",NOT_MEMBER_ACCOUNT:"Non-member account",NOT_MEMBER_ACCOUNT_HELP:"This is a simple wallet, with no pending membership application.",TECHNICAL_DIVIDER:"Technical data",BTN_CERTIFY:"Certify",BTN_YES_CERTIFY:"Yes, certify",BTN_SELECT_AND_CERTIFY:"New certification",ACCOUNT_OPERATIONS:"Account operations",VIEW:{POPOVER_SHARE_TITLE:"Identity {{title}}"},LOOKUP:{TITLE:"Registry",NEWCOMERS:"New members:",NEWCOMERS_COUNT:"{{count}} members",PENDING:"Pending registrations:",PENDING_COUNT:"{{count}} pending registrations",REGISTERED:"Registered {{sigDate | formatFromNow}}",MEMBER_FROM:"Member since {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Latest members",BTN_PENDING:"Pending registrations",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit to {{limit}})",NO_PENDING:"No pending registrations.",NO_NEWCOMERS:"No members."},CONTACTS:{TITLE:"Contacts"},MODAL:{TITLE:"Search"},CERTIFICATIONS:{TITLE:"{{uid}} - Certifications",SUMMARY:"Received certifications",LIST:"Details of received certifications",PENDING_LIST:"Pending certifications",RECEIVED:"Received certifications",RECEIVED_BY:"Certifications received by {{uid}}",ERROR:"Received certifications in error",SENTRY_MEMBER:"Referring member"},OPERATIONS:{TITLE:"{{uid}} - Operations"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certifications sent",SUMMARY:"Sent certifications",LIST:"Details of sent certifications",PENDING_LIST:"Pending certifications",SENT:"Sent certifications",SENT_BY:"Certifications sent by {{uid}}",ERROR:"Sent certifications with error"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Login',SCRYPT_FORM_HELP:"Please enter your credentials. <br> Remember to check the public key for your account.",PUBKEY_FORM_HELP:"Please enter a public account key:",FILE_FORM_HELP:"Choose the keychain file to use:",SCAN_FORM_HELP:"Scan the QR code of a wallet.",SALT:"Secret identifier",SALT_HELP:"Secret identifier",SHOW_SALT:"Display secret identifier?",PASSWORD:"Password",PASSWORD_HELP:"Password",PUBKEY_HELP:"Public key or pseudonym",NO_ACCOUNT_QUESTION:"Don't have an account yet?",HAVE_ACCOUNT_QUESTION:"Already have an account ?",CREATE_ACCOUNT:"Create an account",CREATE_FREE_ACCOUNT:"Create a free account",FORGOTTEN_ID:"Forgot password?",ASSOCIATED_PUBKEY:"Public key :",BTN_METHODS:"Other methods",BTN_METHODS_DOTS:"Change method...",METHOD_POPOVER_TITLE:"Methods",MEMORIZE_AUTH_FILE:"Memorize this keychain during the navigation session",SCRYPT_PARAMETERS:"Paramètres (Scrypt) :",AUTO_LOGOUT:{TITLE:"Information",MESSAGE:'<i class="ion-android-time"></i> You were <b>logout</ b> automatically, due to prolonged inactivity.',BTN_RELOGIN:"Sign In",IDLE_WARNING:"You will be logout... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Secret identifier and password",SCRYPT_ADVANCED:"Advanced salt",FILE:"Keychain file",PUBKEY:"Public key or pseudonym",SCAN:"Scan a QR code"},SCRYPT:{SIMPLE:"Light salt",DEFAULT:"Standard salt",SECURE:"Secure salt",HARDEST:"Hardest salt",EXTREME:"Extreme salt",USER:"Personal value",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Expected file format: <b>.dunikey</b> (type PubSec). Other formats are under development (EWIF, WIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Authentication',BTN_AUTH:"Authenticate",GENERAL_HELP:"Please authenticate yourself:",EXPECTED_UID_HELP:'Please authenticate to the account <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Please authenticate to the wallet <i class="ion-key"></i> {{pubkey|formatPubkey}}:',SCAN_FORM_HELP:"Scan the QR code of the <b>private key</b> of the wallet."},ACCOUNT:{TITLE:"My Account",BALANCE:"Balance",LAST_TX:"Latest validated transactions",BALANCE_ACCOUNT:"Account balance",NO_TX:"No transaction",SHOW_MORE_TX:"Show more",SHOW_ALL_TX:"Show all",TX_FROM_DATE:"(current limit to {{fromTime|medianFromNowShort}})",PENDING_TX:"Pending transactions",VALIDATING_TX:"Transactions being validated",ERROR_TX:"Transaction not executed",ERROR_TX_SENT:"Sent transactions",PENDING_TX_RECEIVED:"Transactions awaiting receipt",EVENTS:"Events",OUT_DISTANCED:"Your current certifications come from a group too isolated from the <a ng-click=\"showHelpModal('wot')\"> Web of Trust</a> (WoT): the <a ng-click=\"showHelpModal('distance_rule')\">maximum distance rule</a> is violated.<br/>You must obtain certifications from another area of the Web of Trust, or wait for it to tighten.",WAITING_MEMBERSHIP:"Membership application sent. Waiting validation.",WAITING_CERTIFICATIONS:"You need {{needCertificationCount}} certification(s) to become a member and produce the <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a>. Your account is however already operational, to receive and send payments.",WAITING_CERTIFICATIONS_HELP:'To get your certifications, only request members <b>who know you enough</b>, as required by <a ng-click="showLicenseModal()">the currency license</a> that you have accepted.<br/>If you do not know enough members, let them know on <a ng-click="openLink($event, $root.settings.userForumUrl)">the user forum</a>.',WILL_MISSING_CERTIFICATIONS:"You will <b>lack certifications</b> soon (at least {{willNeedCertificationCount}} more are needed)",WILL_NEED_RENEW_MEMBERSHIP:"Your membership <b>will expire {{membershipExpiresIn|formatDurationTo}}</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a> before then.",NEED_RENEW_MEMBERSHIP:"You are no longer a member because your membership <b>has expired</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"You are no longer a member because your membership <b>has been canceled</b> for lack of certifications. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NO_WAITING_MEMBERSHIP:"No membership application pending. If you'd like to <b>become a member</ b>, please <a ng-click=\"doQuickFix('membership')\">send the membership application</a>.",CERTIFICATION_COUNT:"Received certifications",CERTIFICATION_COUNT_SHORT:"Certifications",SIG_STOCK:"Stock of certifications to give",BTN_RECEIVE_MONEY:"Receive",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Switch to another identity...",BTN_FIX_MEMBERSHIP:"Resubmit membership request...",BTN_MEMBERSHIP_RENEW:"Renew membership",BTN_MEMBERSHIP_RENEW_DOTS:"Renew membership...",BTN_MEMBERSHIP_OUT_DOTS:"Revoke membership...",BTN_SECURITY_DOTS:"Sign-in and security...",BTN_SHOW_DETAILS:"Display technical data",LOCKED_OUTPUTS_POPOVER:{TITLE:"Locked amount",DESCRIPTION:"Here are the conditions for unlocking this amount:",DESCRIPTION_MANY:"This transaction consists of several parts, of which the unlock conditions are:",LOCKED_AMOUNT:"Conditions for the amount:"},NEW:{TITLE:"Registration",INTRO_WARNING_TIME:"Creating an account on {{name|capitalize}} is very simple. Please take sufficient time to do this correctly (not to forget the usernames, passwords, etc.).",INTRO_WARNING_SECURITY:"Check that the hardware you are currently using (computer, tablet, phone) <b>is secure and trustworthy </b>.",INTRO_WARNING_SECURITY_HELP:"Up-to-date anti-virus, firewall enabled, session protected by password or pin code...",INTRO_HELP:"Click <b> {{'COMMON.BTN_START'|translate}}</b> to begin creating an account. You will be guided step by step.",REGISTRATION_NODE:"Your registration will be registered via the Duniter peer <b>{{server}}</b> node, which will then be distributed to the rest of the currency network.",REGISTRATION_NODE_HELP:"If you do not trust this peer, please change <a ng-click=\"doQuickFix('settings')\">in the settings</a> of Cesium.",SELECT_ACCOUNT_TYPE:"Choose the type of account to create:",MEMBER_ACCOUNT:"Member account",MEMBER_ACCOUNT_TITLE:"Create a member account",MEMBER_ACCOUNT_HELP:"If you are not yet registered as an individual (one account possible per individual).",WALLET_ACCOUNT:"Simple wallet",WALLET_ACCOUNT_TITLE:"Create a wallet",WALLET_ACCOUNT_HELP:"If you represent a company, association, etc. or simply need an additional wallet. No universal dividend will be created by this account.",SALT_WARNING:"Choose a secret identifier.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this identifier</b>.<br/>If lost, there are no means to retrieve it!",PASSWORD_WARNING:"Choose a password.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this password</b>.<br/>If lost, there are no means to retrieve it!",PSEUDO_WARNING:"Choose a pseudonym.<br/>It may be used by other people to find you more easily.<br/><br/>.Use of <b>commas, spaces and accents</b> is not allowed.<br/><div class='hidden-xs'><br/>Example: <span class='gray'>JohnDalton, JackieChan, etc.</span>",PSEUDO:"Pseudonym",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Confirm",SALT_CONFIRM_HELP:"Confirm the secret identifier",PASSWORD_CONFIRM:"Confirm",PASSWORD_CONFIRM_HELP:"Confirm the password",SLIDE_6_TITLE:"Confirmation:",COMPUTING_PUBKEY:"Computing...",LAST_SLIDE_CONGRATULATION:"You completed all required fields.<br/><b>You can send the account creation request</b>.<br/><br/>For information, the public key below identifies your future account.<br/>It can be communicated to third parties to receive their payment.<br/>Once your account has been approved, you can find this key under <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Warning:</b> your secret identifier, password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to send this account creation request?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Warning:</b> your password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to continue?',CHECKING_PSEUDO:"Checking...",PSEUDO_AVAILABLE:"This pseudonym is available",PSEUDO_NOT_AVAILABLE:"This pseudonym is not available",INFO_LICENSE:"To be able to adhere to the currency, we ask you to kindly read and accept this license.",BTN_ACCEPT:"I accept",BTN_ACCEPT_LICENSE:"I accept the license"},POPUP_REGISTER:{TITLE:"Enter a pseudonym",HELP:"A pseudonym is needed to let other members find you."},SELECT_IDENTITY_MODAL:{TITLE:"Identity selection",HELP:'Several <b>different identities</b> have been sent, for the public key <span class="gray"> <i class="ion-key"></i> {{pubkey | formatPubkey}}</span>.<br/>Please select the identity to use:'},SELECT_WALLET_MODAL:{TITLE:"Wallet selection"},WALLET_LIST:{TITLE:"My wallets",BTN_NEW:"Add a wallet",BTN_DOWNLOAD:"Download the list",BTN_IMPORT_FILE_DOTS:"Import from a file...",NO_WALLET:"No secondary wallet",BTN_DELETE:"Remove a secondary wallet...",BTN_RENAME:"Rename the wallet",EXPORT_FILENAME:"my_wallets-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Total: ",EDIT_POPOVER:{TITLE:"Rename the wallet",HELP:"Fill in the new name",NAME_HELP:"Wallet name"},IMPORT_MODAL:{TITLE:"Import secondary wallets",HELP:"To <b>import secodnary wallets</b>, please drag the file in the box below, or click in the box to search for a file.",WALLET_COUNT:"<b>{{count}}</b> new wallet{{count > 1 ? 's' : ''}}",NO_NEW_WALLET:"No new wallet"}},SECURITY:{ADD_QUESTION:"Add custom question",BTN_CLEAN:"Clean",BTN_RESET:"Reset",DOWNLOAD_REVOKE:"Save a revocation file",DOWNLOAD_REVOKE_HELP:"Having a revocation file is important, for example in case of loss of identifiers. It allows you to <b>get this account out of the Web Of Trust</b>, thus becoming a simple wallet.",GENERATE_KEYFILE:"Generate my keychain file ...",GENERATE_KEYFILE_HELP:"Generate a file allowing you to authenticate without entering your identifiers.<br/><b>Warning:</b> this file will contain your secret key; It is therefore very important to put it in a safe place!",KEYFILE_FILENAME:"keychain-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Register as member...",MEMBERSHIP_IN_HELP:"Allows you to <b>transform </b> a simple wallet account <b>into a member account</b>, by sending a membership request. Useful only if you do not already have another member account.",SEND_IDENTITY:"Publish identity...",SEND_IDENTITY_HELP:"Allows you to associate a pseudonym to this account, but <b>without applying for membership</b> to become a member. This is not very useful because the validity of this pseudonym association is limited in time.",HELP_LEVEL:"Choose <strong> at least {{nb}} questions </strong> :",LEVEL:"Security level",LOW_LEVEL:'Low <span class="hidden-xs">(2 questions minimum)</span>',MEDIUM_LEVEL:'Medium <span class="hidden-xs">(4 questions minimum)</span>',QUESTION_1:"What was your best friend's name when you were a teen ?",QUESTION_2:"What was the name of your first pet ?",QUESTION_3:"What is the first meal you have learned to cook ?",QUESTION_4:"What is the first movie you saw in the cinema?",QUESTION_5:"Where did you go the first time you flew ?",QUESTION_6:"What was your favorite elementary school teacher's name  ?",QUESTION_7:"What would you consider the ideal job ?",QUESTION_8:"Which children's book do you prefer?",QUESTION_9:"What was the model of your first vehicle?",QUESTION_10:"What was your nickname when you were a child ?",QUESTION_11:"What was your favorite movie character or actor when you were a student ?",QUESTION_12:"What was your favorite singer or band when you were a student ?",QUESTION_13:"In which city did your parents meet ?",QUESTION_14:"What was the name of your first boss ?",QUESTION_15:"What is the name of the street where you grew up ?",QUESTION_16:"What is the name of the first beach where you go swim ?",QUESTION_17:"QWhat is the first album you bought ?",QUESTION_18:"What is the name of your favorite sport team ?",QUESTION_19:"What was your grand-father's job ?",RECOVER_ID:"Recover my password...",RECOVER_ID_HELP:"If you have a <b>backup file of your identifiers</b>, you can find them by answering your personal questions correctly.",REVOCATION_WITH_FILE:"Rekoke my member account...",REVOCATION_WITH_FILE_DESCRIPTION:"If you have <b>permanently lost your member account credentials (or if account security is compromised), you can use <b>the revocation file</b> of the account <b>to quit the Web Of Trust</b>.",REVOCATION_WITH_FILE_HELP:"To <b>permanently revoke</ b> a member account, please drag the revocation file in the box below, or click in the box to search for a file.",REVOCATION_WALLET:"Revoke this account immediately",REVOCATION_WALLET_HELP:"Requesting revocation of your identity causes <b>will revoke your membership</ b> (definitely for the associated pseudonym and public key). The account will no longer be able to produce a Universal Dividend.<br/>However, you can still use it as a simple wallet.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Save my credentials...",SAVE_ID_HELP:"Creating a backup file, to <b>retrieve your password</b> (and the secret identifier) <b> in case of forgetting</b>. The file is <b>secured</ b> (encrypted) using personal questions.",STRONG_LEVEL:'Strong <span class="hidden-xs ">(6 questions minimum)</span>',TITLE:"Account and security",KEYFILE:{PUBSEC_FORMAT:"PubSec format.",PUBSEC_FORMAT_HELP:"This file format is compatible in particular with Cesium and Gannonce. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",WIF_FORMAT:"Wallet Import Format (WIF)",WIF_FORMAT_HELP:"This format is used in particular by paper wallets. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",EWIF_FORMAT:"Encrypted Wallet Import Format (WIF)",EWIF_FORMAT_HELP:"This format is used in particular by paper wallets. However, <b>the keychain is encrypted</b> from a passphrase of your choice.",PASSWORD_POPUP:{TITLE:"Keychain file encrypted",HELP:"Please enter the passphrase:",PASSWORD_HELP:"Passphrase"},ERROR:{BAD_PASSWORD:"Bad passphrase",BAD_CHECKSUM:"Bad checksum"}}},FILE_NAME:"{{currency}} - Account statement {{pubkey|formatPubkey}} to {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Amount",COMMENT:"Comment"}},TRANSFER:{TITLE:"Transfer",SUB_TITLE:"Transfer money",SUB_TITLE_ALL:"Empty the account",FROM:"From",TO:"To",AMOUNT:"Amount",AMOUNT_HELP:"Amount",COMMENT:"Comment",COMMENT_HELP:"Comment (optional)",BTN_SEND:"Send",BTN_ADD_COMMENT:"Add a comment",REST:"Rest of account",REST_TO:"to",WARN_COMMENT_IS_PUBLIC:"Please note that <b>comments are public</b> (not encrypted).",MODAL:{TITLE:"Transfer"}},ERROR:{UNKNOWN_URI_FORMAT:"Unknown URI format",PUBKEY_INVALID_CHECKSUM:"Invalid public key (bad checksum).",POPUP_TITLE:"Error",UNKNOWN_ERROR:"Unknown error",CRYPTO_UNKNOWN_ERROR:"Your browser is not compatible with cryptographic features.",DOWNLOAD_KEYFILE_FAILED:"Failed to generate the keychain file.",EQUALS_TO_PSEUDO:"Must be different from pseudonym",EQUALS_TO_SALT:"Must be different from secret identifier",FIELD_REQUIRED:"This field is required.",FIELD_TOO_SHORT:"This field value is too short.",FIELD_TOO_SHORT_WITH_LENGTH:"Value is too short (min {{minLength]] characters).",FIELD_TOO_LONG:"Value is exceeding max length.",FIELD_TOO_LONG_WITH_LENGTH:"Value is too long (max {{maxLength}} characters).",FIELD_MIN:"Minimum value: {{min}}",FIELD_MAX:"Maximal value: {{max}}",FIELD_ACCENT:"Commas and accent characters not allowed",FIELD_NOT_NUMBER:"Value is not a number",FIELD_NOT_INT:"Value is not an integer",FIELD_NOT_EMAIL:"Email adress not valid",PASSWORD_NOT_CONFIRMED:"Must match previous password.",SALT_NOT_CONFIRMED:"Must match previous identifier.",SEND_IDENTITY_FAILED:"Error while trying to register.",SEND_CERTIFICATION_FAILED:"Could not certify identity.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"You could not send certification, because your account is <b>not a member account</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"You could not send certification now, because your are <b>not a member</b> yet.<br/><br/>You still need certification to become a member.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"This account could not be certified. No registration found, or need to renew.",LOGIN_FAILED:"Error while sign in.",LOAD_IDENTITY_FAILED:"Could not load identity.",LOAD_REQUIREMENTS_FAILED:"Could not load identity requirements.",SEND_MEMBERSHIP_IN_FAILED:"Error while sending registration as member.",SEND_MEMBERSHIP_OUT_FAILED:"Error while sending membership revocation.",REFRESH_WALLET_DATA:"Could not refresh wallet.",GET_CURRENCY_PARAMETER:"Could not get currency parameters.",GET_CURRENCY_FAILED:"Could not load currency. Please retry later.",SEND_TX_FAILED:"Could not send transaction.",ALL_SOURCES_USED:"Please wait the next block computation (All transaction sources has been used).",NOT_ENOUGH_SOURCES:"Not enough changes to send this amount in one time.<br/>Maximum amount: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error while creating your member account.",RESTORE_WALLET_DATA_ERROR:"Error while reloading settings from local storage",LOAD_WALLET_DATA_ERROR:"Error while loading wallet data.",COPY_CLIPBOARD_FAILED:"Could not copy to clipboard",TAKE_PICTURE_FAILED:"Could not get picture.",SCAN_FAILED:"Could not scan QR code.",SCAN_UNKNOWN_FORMAT:"Code not recognized.",WOT_LOOKUP_FAILED:"Search failed.",LOAD_PEER_DATA_FAILED:"Duniter peer not accessible. Please retry later.",NEED_LOGIN_FIRST:"Please sign in first.",AMOUNT_REQUIRED:"Amount is required.",AMOUNT_NEGATIVE:"Negative amount not allowed.",NOT_ENOUGH_CREDIT:"Not enough credit.",INVALID_NODE_SUMMARY:"Unreachable peer or invalid address",INVALID_USER_ID:"Field 'pseudonym' must not contains spaces or special characters.",INVALID_COMMENT:"Field 'reference' has a bad format.",INVALID_PUBKEY:"Public key has a bad format.",INVALID_PUBKEY_CHECKSUM:"Invalid checksum.",IDENTITY_REVOKED:"This identity <b>has been revoked</b>. It can no longer become a member.",IDENTITY_REVOKED_WITH_TIME:"This identity <b>has been revoked {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). It can no longer become a member.",IDENTITY_PENDING_REVOCATION:"The <b>revocation of this identity</b> has been requested and is awaiting processing. Certification is therefore disabled.",IDENTITY_INVALID_BLOCK_HASH:"This membership application is no longer valid (because it references a block that network peers are cancelled): the person must renew its application for membership <b>before</b> being certified.",IDENTITY_EXPIRED:"This identity has expired: this person must re-apply <b>before</b> being certified.",IDENTITY_SANDBOX_FULL:"Could not register, because peer's sandbox is full.<br/><br/>Please retry later or choose another Duniter peer (in <b>Settings</b>).",IDENTITY_NOT_FOUND:"Identity not found",IDENTITY_TX_FAILED:"Error while getting identity's transactions",WOT_PENDING_INVALID_BLOCK_HASH:"Membership not valid.",WALLET_INVALID_BLOCK_HASH:"Your membership application is no longer valid (because it references a block that network peers are cancelled).<br/>You must <a ng-click=\"doQuickFix('renew')\">renew your application for membership</a> to fix this issue.",WALLET_IDENTITY_EXPIRED:"The publication of your identity <b>has expired</b>.<br/>You must <a ng-click=\"doQuickFix('fixIdentity')\">re-issue your identity</a> to resolve this issue.",WALLET_REVOKED:"Your identity has been <b>revoked</b>: neither your pseudonym nor your public key will be used in the future for a member account.",WALLET_HAS_NO_SELF:"Your identity must first have been published, and not expired.",AUTH_REQUIRED:"Authentication required.",AUTH_INVALID_PUBKEY:"The public key does not match the connected account.",AUTH_INVALID_SCRYPT:"Invalid username or password.",AUTH_INVALID_FILE:"Invalid keychain file.",AUTH_FILE_ERROR:"Failed to open keychain file",IDENTITY_ALREADY_CERTIFY:"You have <b>already certified</b> that identity.<br/><br/>Your certificate is still valid (expires {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"You have <b>already certified</b> that identity.<br/><br/>Your certification is still pending (Deadline for treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Unable to certify",LOAD_NEWCOMERS_FAILED:"Unable to load new members.",LOAD_PENDING_FAILED:"Unable to load pending registrations.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member</b> in order to perform this action.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member (or old member)</b> in order to perform this action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"You must have <b>published your identity</b> in order to perform this action.",GET_BLOCK_FAILED:"Error while getting block",INVALID_BLOCK_HASH:"Block not found (incorrect hash)",DOWNLOAD_REVOCATION_FAILED:"Error while downloading revocation file.",REVOCATION_FAILED:"Error while trying to revoke the identity.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Wrong secret identifier or password ",RECOVER_ID_FAILED:"Could not recover password",LOAD_FILE_FAILED:"Unable to load file",NOT_VALID_REVOCATION_FILE:"Invalid revocation file (wrong file format)",NOT_VALID_SAVE_ID_FILE:"Invalid credentials backup file (wrong file format)",NOT_VALID_KEY_FILE:"Invalid keychain file (unrecognized format)",EXISTING_ACCOUNT:"Your identifiers correspond to an already existing account, whose <a ng-click=\"showHelpModal('pubkey')\">public key</a> is:",EXISTING_ACCOUNT_REQUEST:"Please modify your credentials so that they correspond to an unused account.",GET_LICENSE_FILE_FAILED:"Unable to get license file",CHECK_NETWORK_CONNECTION:"No peer appears to be accessible.<br/><br/>Please <b>check your Internet connection</b>.",ISSUE_524_TX_FAILED:"Failed to transfer.<br/><br/>A message has been sent to developers to help solve the problem.<b>Thank you for your help</b>.",ADD_SECONDARY_WALLET_FAILED:"Unable to add secondary wallet.",UPDATE_WALLET_LIST_FAILED:"Unable to refresh the list of wallets.",LOAD_WALLET_LIST_FAILED:"Unable to load the list of wallets.",SAVE_WALLET_LIST_FAILED:"Unable to save the list of wallets.",COULD_NOT_ADD_MAIN_WALLET:"This wallet <b>is the main account</b> with which you are connected. Unable to add it as a secondary wallet.",COULD_NOT_ADD_EXISTING_WALLET:"Wallet already existing in the list.",UNKNOWN_WALLET_ID:"Unknown secondary wallet.",RESTORE_WALLET_LIST_FAILED:"Unable to restore the list of wallets.",INVALID_FILE_FORMAT:"Invalid file format.",SAME_TX_RECIPIENT:"The recipient must be different from the issuer."},INFO:{POPUP_TITLE:"Information",CERTIFICATION_DONE:"Identity successfully signed",NOT_ENOUGH_CREDIT:"Not enough credit",TRANSFER_SENT:"Transfer request successfully sent",COPY_TO_CLIPBOARD_DONE:"Copy succeeded",MEMBERSHIP_OUT_SENT:"Membership revocation sent",NOT_NEED_MEMBERSHIP:"Already a member.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"This identity will soon lack certification (at least {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"This identity did not send a membership request. She will have to if she wishes to become a member.",HAS_ALTERNATIVE_IDENTITIES:"There are <b>multiple identities</b> attached to this public key. <b>Before any certification</b>, please <a ng-click=\"doQuickFix('showSelectIdentities')\">check other identities</a> to choose the correct one, or contact the wallet owner.",REVOCATION_SENT:"Revocation sent successfully",REVOCATION_SENT_WAITING_PROCESS:"Revocation <b>has been sent successfully</b>. It is awaiting processing.",FEATURES_NOT_IMPLEMENTED:"This features is not implemented yet.<br/><br/>Why not to contribute to get it faster? ;)",EMPTY_TX_HISTORY:"No operations to export"},CONFIRM:{POPUP_TITLE:"<b>Confirmation</b>",POPUP_WARNING_TITLE:"<b>Warning</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Security warning</b>',CERTIFY_RULES_TITLE_UID:"Certify {{uid}}",CERTIFY_RULES:'<b class="assertive">Don\'t certify an account</b> if you believe that: <ul><li>1.) the issuers identity might be faked.<li>2.) the issuer already has another certified account.<li>3.) the issuer purposely or carelessly violates rule 1 or 2 (he certifies faked or double accounts).</ul></small><br/>Are you sure you want to certify this identity?',FULLSCREEN:"View the application in full screen?",EXIT_APP:"Close the application ?",TRANSFER:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",TRANSFER_ALL:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li><br/><li> - Rest : <b>{{restAmount}} {{unit}}</b> to <b>{{restTo}}</b></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",MEMBERSHIP_OUT:"This operation is <b>irreversible</b>.<br/></br/><b>Are you sure you want to terminate your membership?</b>",MEMBERSHIP_OUT_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>terminate your membership</b>?",LOGIN_UNUSED_WALLET_TITLE:"Typing error?",LOGIN_UNUSED_WALLET:"The account seems to be <b>inactive</b>.<br/><br/>It's probably a <b>typing error</b> when sign in. Please try again, checking that <b>public key is yours<b/>.",FIX_IDENTITY:"The pseudonym <b>{{uid}}</b> will be published again, replacing the old publication that has expired.<br/></br/><b>Are you sure</b> you want to continue?",FIX_MEMBERSHIP:"Your application for membership will be sent.<br/></br/><b>Are you sure?</b>",MEMBERSHIP:"Your membership request will be sent. <br/></br/><b>Are you sure?</b>",RENEW_MEMBERSHIP:"Your membership will be renewed.<br/></br/><b>Are you sure?</b>",REVOKE_IDENTITY:"You will <b>definitely revoke this identity</b>.<br/><br/>The public key and the associated pseudonym <b>will never be used again</b> (for a member account).<br/></br/><b>Are you sure</b> you want to revoke this identity?",REVOKE_IDENTITY_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>revoke this identity</b>?",NOT_NEED_RENEW_MEMBERSHIP:"Your membership does not need to be renewed (it will only expire in {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Are you sure you</b> want to renew your membership?",SAVE_BEFORE_LEAVE:"Do you want to <b>save your changes</b> before leaving the page?",SAVE_BEFORE_LEAVE_TITLE:"Changes not saved",LOGOUT:"Are you sure you want to logout?",USE_FALLBACK_NODE:"Peer <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the <b>{{new}}</b> node?",ISSUE_524_SEND_LOG:"The transaction was rejected because of a known problem (issue #524) but not reproduced.<br/><br/>To help developers correct this error, do you accept <b>the transmission of your logs</b> per message?<br/><small>(No confidential data is sent)</small>"},DOWNLOAD:{POPUP_TITLE:"<b>Revocation file</b>",POPUP_REVOKE_MESSAGE:"To safeguard your account, please download the <b>account revocation document</b>. It will allow you to cancel your account (in case of account theft, ID, an incorrectly created account, etc.).<br/><br/><b>Please store it in a safe place.</b>"},HELP:{TITLE:"Online help",JOIN:{SECTION:"Join",SALT:'The secret identifier is very important. It is used to hash you password, which in turn is used to calculate your <span class="text-italic">public account key</span> (its number) and the private key to access it.<br/><b>Please remeber this identifier well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good secret identifier must be sufficiently long (8 characters at the very least) and as original as possible.',PASSWORD:"The password is very important. Together with the secret identifier, it is use to calculate your account number (pblic key) and the private key to access it.<br/><b>Please remember it well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good password is made (ideally) of at least 8 characters, with at least one capital and one number.",PSEUDO:'A pseudonym is used only when joining as <span class="text-italic">member</span>. It is always associated with a wallet (by its <span class="text-italic">public key</span>).<br/>It is published on the network so that other users may identify it, certify or send money to the account.<br/>A pseudonym must be unique among all members (current and past).'},LOGIN:{SECTION:"Log in",PUBKEY:"Account public key",PUBKEY_DEF:'The public key of the keychain is generated from the entered identifiers (any), but does not correspond to an account already used.<br/><b>Make sure your public key is the same as your account</b>. Otherwise, you will be logged into an account that is probably never used, as the risk of collision with an existing account is very small.<br/><a href="https://en.wikipedia.org/wiki/Elliptic_curve_cryptography" target="_ system">Learn more about cryptography</a> by public key.',METHOD:"Connection methods",METHOD_DEF:"Several options are available to connect to a portfolios: <br/> - The connection <b>with salt (simple or advanced)</b> mixes your password with the secret identifier, to limit the attempts of piracy<br/> - The connection <b>using public key</b> prevents you from entering your credentials, which you will be asked only when an operation need it.<br/> - The connection <b>using keychain file</b> will read the public and private keys of the account from a file without the need to enter credentials. Several file formats are possible."},GLOSSARY:{SECTION:"Glossary",PUBKEY_DEF:"A public key always identifies a wallet. It may identify a member. In Cesium it is calculated using the secret identifier and the password.",MEMBER:"Member",MEMBER_DEF:'A member is a real and living human, wishing to participate freely to the monitary community. The member will receive universal dividend, according to the period and amount as defined in the <span class="text-italic">currency parameters</span>.',CURRENCY_RULES:"Currency rules",CURRENCY_RULES_DEF:'The currency rules are defined only once, and for all. They set the parameters under which the currency will perform: universal dividend calculation, the amount of certifications needed to become a member, the maximum amount of certifications a member can send, etc.<br/><br/>The parameters cannot be modified because of the use of a <span class="text-italic">Blockchain</span> which carries and executes these rules, and constantly verifies their correct application. <a href="#/app/currency">See current parameters</a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'The Blockchain is a decentralised system which, in case of Duniter, serves to carry and execute the <span class="text-italic">currency rules</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Read more about Duniter</a> and the working of its blockchain.',UNIVERSAL_DIVIDEND_DEF:'The Universal Dividend (UD) is the quantity of money co-created by each member, according to the period and the calculation defined in the <span class="text-italic">currency rules</span>.<br/>Every term, the members receive an equal amount of new money on their account.<br/><br/>The UD undergoes a steady growth, to remain fair under its members (current and future), calculated by an average life expectancy, as demonstrated in the Relative Theory of Money (RTM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Read more about RTM</a> and open money.',WOT:"Web of Trust (WoT)",WOT_DEF:"The Web of Trust is made up of all the members of the currency, and the links of certification which connect them.",DISTANCE_RULE:"Distance rule",DISTANCE_RULE_DEF:"The rule of distance defines <b>a maximum distance to meet</b> between an applicant and a minimum number of referring member. This distance is calculated using the certification links."},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> allows discovery of <b>currency parameters</b> and its state.",CURRENCY_WOT:"The <b>member count</b> shows the <b>community's weight and evolution</b>.",CURRENCY_MASS:"Shown here is the <b>total amount</b> currently in circulation and its <b>average distribution</b> per member.<br/><br/>This allows to estimate the <b>worth of any amount</b>, in respect to what <b>others own</b> on their account (on average).",CURRENCY_UNIT_RELATIVE:"The unit used here (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amounts in {{currency|capitalize}} have been devided by the <b>Universal Dividend</b> (UD).<br/><br/><small>This relative unit is <b>relevant</b> because it is stable in contrast to the permanently growing monitary mass.</small>",CURRENCY_CHANGE_UNIT:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in <b>{{currency|capitalize}}</b>, undevided by the Universal Dividend (instead of in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, which is relative to the Universal Dividend (the amount co-produced by each member).",CURRENCY_RULES:"The <b>rules</b> of the currency determine its <b>exact and predictible</b> performance.<br/><br/>As a true DNA of the currency these rules make the monetary code <b>transparent and understandable</b>.",MENU_BTN_NETWORK:"Menu <b>{{'MENU.NETWORK'|translate}}</b> allows discovery of <b>network's state<b>.",NETWORK_BLOCKCHAIN:"All monetary transactions are recoded in a <b>public and tamper proof</b> ledger, generally referred to as the <b>blockchain</b>.",NETWORK_PEERS:"The <b>peers</b> shown here correspond to <b>computers that update and check</b> the blockchain.<br/><br/>The more active peers there are, the more <b>decentralised</b> and therefore trustworhty the currency becomes.",NETWORK_PEERS_BLOCK_NUMBER:"This <b>number</b> (in green) indicates the peer's <b>latest validated block</b> (last page written in the ledger).<br/><br/>Green indicates that the block was equally validated by the <b>majority of other peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Each member</b>, equiped with a computer with Internet, <b>can participate, adding a peer</b> simply by <b>installing the Duniter software</b> (free/libre). <a target="_new" href="{{installDocUrl}}" target="_system">Read the installation manual &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> allows access to your account balance and transaction history.",MENU_BTN_ACCOUNT_MEMBER:"Here you can consult your account status, transaction history and your certifications.",WALLET_CERTIFICATIONS:"Click here to reveiw the details of your certifications (given and received).",WALLET_RECEIVED_CERTIFICATIONS:"Click here to review the details of your <b>received certifications</b>.",WALLET_GIVEN_CERTIFICATIONS:"Click here to review the details of your <b>given certifications</b>.",WALLET_BALANCE:"Your account <b>balance</b> is shown here.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>The used unit (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amount in {{currency|capitalize}} has been divided by the <b>Universal Dividend</b> (UD) co-created by each member.<br/>At this moment, 1 UD equals {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"You can <b>change the unit</b> in which amounts are shown in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>For example, to display amounts <b>directly in {{currency|capitalize}}</b> instead of relative amounts.",WALLET_PUBKEY:"This is your account public key. You can communicate it to a third party so that it more easily identifies your account.",WALLET_SEND:"Issue a payment in just a few clicks.",WALLET_SEND_NO_MONEY:"Issue a payment in just a few clicks.<br/>(Your balance does not allow this yet)",WALLET_OPTIONS:"Please note that this button allows access to <b>other, less used actions</b>.<br/><br/>Don't forget to take a quick look, when you have a moment!",WALLET_RECEIVED_CERTS:"This shows the list of persons that certified you.",WALLET_CERTIFY:"The button <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> allows selecting an identity and certifying it.<br/><br/>Only users that are <b>already member</b> may certify others.",WALLET_CERT_STOCK:"Your supply of certifications (to send) is limited to <b>{{sigStock}} certifications</b>.<br/><br/>This supply will replete itself over time, as and when earlier certifications expire.",MENU_BTN_TX_MEMBER:"<b>{{'MENU.TRANSACTIONS'|translate}}</b> allow access to transactions history, and send new payments.",MENU_BTN_TX:"View the history of <b>your transactions</b> here and send new payments.",MENU_BTN_WOT:"The menu <b>{{'MENU.WOT'|translate}}</b> allows searching <b>users</b> of the currency (member or not).",WOT_SEARCH_TEXT_XS:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>The search will start automatically.",WOT_SEARCH_TEXT:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>Then hit <b>Enter</b> to start the search.",WOT_SEARCH_RESULT:"Simply click a user row to view the details sheet.",WOT_VIEW_CERTIFICATIONS:"The row <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> shows how many members members validated this identity.<br/><br/>These certifications testify that the account belongs to <b>a living human</b> and this person has <b>no other member account</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"There are at least <b>{{sigQty}} certifications</b> needed to become a member and receive the <b>Universal Dividend</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Click here to open <b>a list of all certifications</b> given to and by this identity.",WOT_VIEW_CERTIFY:"The button <b>{{'WOT.BTN_CERTIFY'|translate}}</b> allows to add your certification to this identity.",CERTIFY_RULES:"<b>Attention:</b> Only certify <b>real and living persons</b> that do not own any other certified account.<br/><br/>The trust carried by the currency depends on each member's vigilance!",MENU_BTN_SETTINGS:"The <b>{{'MENU.SETTINGS'|translate}}</b> allow you to configure the Cesium application.<br/><br/>For example, you can <b>change the unit</b> in which the currency will be shown.",HEADER_BAR_BTN_PROFILE:"Click here to access your <b>user profile</b>",SETTINGS_CHANGE_UNIT:"You can <b>change the display unit</b> of amounts by clicking here.<br/><br/>- Deactivate the option to show amounts in {{currency|capitalize}}.<br/>- Activate the option for relative amounts in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divided</b> by the current Universal Dividend).",END_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>Welcome to the <b>free economy</b>!",END_NOT_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>If you wish to join the currency {{currency|capitalize}}, simply click <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> below."}},API:{COMMON:{LINK_DOC:"API documentation",LINK_DOC_HELP:"API documentation for developers",LINK_STANDARD_APP:"Standard version",LINK_STANDARD_APP_HELP:"Open standard version of {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or contact the web site administrator."},HOME:{TITLE:"{{'COMMON.APP_NAME'|translate}} API Documentation",MESSAGE:'Welcome to the {{\'COMMON.APP_NAME\'|translate}} <b>API documentation </b>.<br/>Connect your web site to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',MESSAGE_SHORT:'Connect your websites to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',DOC_HEADER:"Available services:"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Online payment",TITLE_SHORT:"Online payment",SUMMARY:"Order summary:",AMOUNT:"Amount:",AMOUNTS_HELP:"Please select the amount:",NAME:"Name:",PUBKEY:"Public key of the recipient:",COMMENT:"Order reference:",NODE:"Peer address:",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Demonstration mode</b>: No payment will actually be sent during this simulation.<br/>Please use credentials: <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Invalid credentials.<br/>In demonstration mode, credentials should be: {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Payment sent.<br/>Redirect to <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Payment sent.<br/>Redirect to the seller's website...",CANCEL_REDIRECTING_WITH_NAME:"Payment cancelled.<br/>Redirect to <b>{{name}}</b>...",CANCEL_REDIRECTING:"Payment cancelled.<br/>Redirect to the seller's website..."},ERROR:{TRANSFER_FAILED:"Payment failed"}},DOC:{DESCRIPTION_DIVIDER:"Description",URL_DIVIDER:"Calling address",PARAMETERS_DIVIDER:"Parameters",AVAILABLE_PARAMETERS:"Here is the list of al available parameters:",DEMO_DIVIDER:"Try it !",DEMO_HELP:"To test this service, click on this button. The result content will be display below.",DEMO_RESULT:"Result returned by call:",DEMO_RESULT_PEER:"Peer address used:",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Success!',DEMO_CANCELLED:'<i class="icon ion-close"></i> Canceled by user',INTEGRATE_DIVIDER:"Website integration",INTEGRATE_CODE:"Code:",INTEGRATE_RESULT:"Result preview:",INTEGRATE_PARAMETERS:"Parameters",TRANSFER:{TITLE:"Payments",DESCRIPTION:"From a site (eg online marketplace) you can delegate payment in free currency to Cesium API. To do this, simply open a page at the following address:",PARAM_PUBKEY:"Recipient's public key",PARAM_PUBKEY_HELP:"Recipient's public key (required)",PARAM_AMOUNT:"Amount",PARAM_AMOUNT_HELP:"Transaction amount (required)",PARAM_COMMENT:"Reference (or comment)",PARAM_COMMENT_HELP:"Reference or comment. You will allow for example to identify the payment in the BlockChain.",PARAM_NAME:"Name (of recipient or website)",PARAM_NAME_HELP:'The name of your website. This can be a readable name (eg "My online site"), or a web address (eg "www.MySite.com").',PARAM_REDIRECT_URL:"URL redirection",PARAM_REDIRECT_URL_HELP:'URL redirection after sending payment, after the payment has been sent. Can contain the following strings, which will be replaced by the values of the transaction: "{tx}", "{hash}", "{comment}", "{amount}" and "{pubkey}".',PARAM_CANCEL_URL:"URL if cancelled",PARAM_CANCEL_URL_HELP:'URL in case of cancellation.  Can contain the following strings, which will be replaced: "{comment}", "{amount}" and "{pubkey}".',PARAM_PREFERRED_NODE:"Preferred Duniter peer",PARAM_PREFERRED_NODE_HELP:'Peer address (URL) to use preferably ("g1.domain.com:443" or "https://g1.domain.com")',EXAMPLES_HELP:"Examples of integration:",EXAMPLE_BUTTON:"HTML Button",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pay in {{currency|abbreviate}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Custom style",EXAMPLE_BUTTON_TEXT_HELP:"Button text",EXAMPLE_BUTTON_BG_COLOR:"Background color",EXAMPLE_BUTTON_BG_COLOR_HELP:"eg: #fbc14c, yellow, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Font color",EXAMPLE_BUTTON_FONT_COLOR_HELP:"eg: black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icon",EXAMPLE_BUTTON_TEXT_WIDTH:"Width",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"eg: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"No icon",EXAMPLE_BUTTON_ICON_DUNITER:"Duniter logo",EXAMPLE_BUTTON_ICON_CESIUM:"Cesium logo",EXAMPLE_BUTTON_ICON_G1_COLOR:"Ğ1 logo",EXAMPLE_BUTTON_ICON_G1_BLACK:"Ğ1 logo (outline)"}}}}),e.translations("eo-EO",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"date : {{build}}",PUBKEY:"Publika ŝlosilo",MEMBER:"Membro",BLOCK:"Bloko",BTN_OK:"OK",BTN_YES:"Jes",BTN_NO:"Ne",BTN_SEND:"Sendi",BTN_SEND_MONEY:"Fari elspezon",BTN_SEND_MONEY_SHORT:"Elspezo",BTN_SAVE:"Konservi",BTN_YES_SAVE:"Jes, Konservi",BTN_YES_CONTINUE:"Jes, Daŭrigi",BTN_SHOW:"Vidi",BTN_SHOW_PUBKEY:"Afiŝi la publikan ŝlosilon",BTN_RELATIVE_UNIT:"Afiŝi la sumojn en UD?",BTN_BACK:"Reiro",BTN_NEXT:"Sekva",BTN_IMPORT:"Enporti",BTN_CANCEL:"Nuligi",BTN_CLOSE:"Fermi",BTN_LATER:"Poste",BTN_LOGIN:"Konektiĝi",BTN_LOGOUT:"Malkonektiĝo",BTN_ADD_ACCOUNT:"Nova konto",BTN_SHARE:"Diskonigi",BTN_EDIT:"Modifi",BTN_DELETE:"Forigi",BTN_ADD:"Aldoni",BTN_SEARCH:"Serĉi",BTN_REFRESH:"Aktualigi",BTN_RETRY:"Rekomenci",BTN_START:"Komenci",BTN_CONTINUE:"Daŭrigi",BTN_CREATE:"Krei",BTN_UNDERSTOOD:"Mi komprenis",BTN_OPTIONS:"Kromeblecoj",BTN_HELP_TOUR:"Gvidata vizito",BTN_HELP_TOUR_SCREEN:"Malkovri tiun ĉi paĝon",BTN_DOWNLOAD:"Elŝuti",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Elŝuti la konto-tabelon",BTN_MODIFY:"Modifi",CHOOSE_FILE:"Almetu vian dosieron <br/>aŭ klaku por elekti ĝin",DAYS:"tagoj",NO_ACCOUNT_QUESTION:"Ankoraŭ sen konto? Kreu ĝin senpage!",SEARCH_NO_RESULT:"Neniu rezulto trovita",LOADING:"Bonvolu pacienci...",LOADING_WAIT:"Bonvolu pacienci...<br/><small>(Atendado pri disponebleco de la nodo)</small>",SEARCHING:"Serĉanta...",FROM:"De",TO:"Al",COPY:"Kopii",LANGUAGE:"Lingvo",UNIVERSAL_DIVIDEND:"Universala dividendo",UD:"UD",DATE_PATTERN:"DD/MM/YY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(malplena)",UID:"Pseŭdonimo",ENABLE:"Aktiva",DISABLE:"Malaktiva",RESULTS_LIST:"Rezultoj",RESULTS_COUNT:"{{count}} rezultoj",EXECUTION_TIME:"Plenumita en {{duration|formatDurationMs}}",SHOW_VALUES:"Afiŝi la signojn klare?",POPOVER_ACTIONS_TITLE:"Kromeblecoj",POPOVER_FILTER_TITLE:"Filtriloj",SHOW_MORE:"Afiŝi pli",SHOW_MORE_COUNT:"(nuna limo je {{limit}})",POPOVER_SHARE:{TITLE:"Diskonigi",SHARE_ON_TWITTER:"Diskonigi ĉe Twitter",SHARE_ON_FACEBOOK:"Diskonigi ĉe Facebook",SHARE_ON_DIASPORA:"Diskonigi ĉe Diaspora*",SHARE_ON_GOOGLEPLUS:"Diskonigi ĉe Google+"},FILE:{DATE:"Dato:",TYPE:"Tipo:",SIZE:"Pezo:",VALIDATING:"Validiĝanta..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Elekti la fonton:",BTN_PICTURE_GALLERY:"Bildaro",BTN_PICTURE_CAMERA:"<b>Kamerao</b>"},MENU:{HOME:"Hejmpaĝo",WOT:"Kontaro",CURRENCY:"Mono",ACCOUNT:"Mia konto",WALLETS:"Miaj monujoj",TRANSFER:"Elspezo",SCAN:"Skani",SETTINGS:"Parametroj",NETWORK:"Reto",TRANSACTIONS:"Miaj spezoj"},ABOUT:{TITLE:"Prie",LICENSE:"Programo <b>libera</b> (Licenco GNU AGPLv3).",LATEST_RELEASE:"Ekzistas <b>pli freŝdata versio</b> de {{'COMMON.APP_NAME'|translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Bonvolu ĝisdatigi {{'COMMON.APP_NAME'|translate}} (lasta versio: <b>v{{version}}</b>)",CODE:"Fonto-kodo:",OFFICIAL_WEB_SITE:"Oficiala retejo:",DEVELOPERS:"Programita de:",FORUM:"Forumo:",PLEASE_REPORT_ISSUE:"Ne hezitu sciigi al ni la renkontitajn fuŝaĵojn",REPORT_ISSUE:"Sciigi problemon",BTN_OPEN_DEV_WINDOW:"Malfermi la fenestron pri malfuŝigado"},HOME:{TITLE:"Cesium",WELCOME:"Bonvenon ĉe la programo Cesium!",MESSAGE:"Ricevu kaj sendu liberan monon {{currency|abbreviate}}",BTN_CURRENCY:"Esploru la monon {{name|abbreviate}}",BTN_ABOUT:"prie",BTN_HELP:"Reta helpo",REPORT_ISSUE:"fuŝaĵo",NOT_YOUR_ACCOUNT_QUESTION:'Vi ne posedas la konton <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b> ?',BTN_CHANGE_ACCOUNT:"Malkonektu tiun ĉi konton",CONNECTION_ERROR:'Nodo <b>{{server}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Kontrolu vian retkonekton, aŭ elektu alian nodon <a class="positive" ng-click="doQuickFix(\'settings\')">ĉe la parametroj</a>.'},SETTINGS:{TITLE:"Parametroj",DISPLAY_DIVIDER:"Afiŝado",STORAGE_DIVIDER:"Stokado",NETWORK_SETTINGS:"Reto",PEER:"Adreso de la nodo Duniter",PEER_SHORT:"Adreso de la nodo",PEER_CHANGED_TEMPORARY:"Adreso provizore uzata",USE_LOCAL_STORAGE:"Aktivigi lokan stokadon",USE_LOCAL_STORAGE_HELP:"Ebligas konservi viajn parametrojn",WALLETS_SETTINGS:"Miaj monujoj",USE_WALLETS_ENCRYPTION:"Sekurigi la liston?",USE_WALLETS_ENCRYPTION_HELP:"Ebligas sekurigi la liston de viaj monujoj (per ĉifrado), postulante aŭtentigado por aliri ilin.",ENABLE_HELPTIP:"Aktivigi la rilatigajn help-vezikojn",ENABLE_UI_EFFECTS:"Aktivigi la vid-efikojn",HISTORY_SETTINGS:"Miaj spezoj",DISPLAY_UD_HISTORY:"Afiŝi la produktitajn dividendojn?",TX_HISTORY_AUTO_REFRESH:"Aktualigi aŭtomate",TX_HISTORY_AUTO_REFRESH_HELP:"Aktualigas la saldon kaj la spezojn aŭtomate, por ĉiu nova bloko de la reto.",AUTHENTICATION_SETTINGS:"Aŭtentigado",KEEP_AUTH:"Aŭtomata malaŭtentigado",KEEP_AUTH_SHORT:"Malaŭtentigado",KEEP_AUTH_HELP:"Difinas la momenton, kiam la aŭtentigado estas forviŝita de la memoro.",KEEP_AUTH_OPTION:{NEVER:"Post ĉiu ago",SECONDS:"Post {{value}}s de neatktiveco",MINUTE:"Post {{value}}min de neatktiveco",MINUTES:"Post {{value}}min de neatktiveco",HOUR:"Post {{value}}h de neatktiveco",ALWAYS:"Fine de la sesio"},KEYRING_FILE:"Dosiero pri ŝlosilaro",KEYRING_FILE_HELP:'Ebligas <b>konektiĝi</b> aŭtomate por ĉiu ekuzo<br/>kaj eĉ <b>aŭtentiĝi</b> (nur se "Finiĝo de la aŭtentiĝo" estas agordita kiel "fine de la sesio").',REMEMBER_ME:"Memori min?",REMEMBER_ME_HELP:"Ebligas resti identigita de sesio al alia, loke konservante la publikan ŝlosilon.",PLUGINS_SETTINGS:"Krom-programoj",BTN_RESET:"Restarigi la originajn valorojn",EXPERT_MODE:"Aktivigi la spertan moduson",EXPERT_MODE_HELP:"Ebligas pli detalan afiŝadon.",BLOCK_VALIDITY_WINDOW:"Limtempo pri necerteco de la blokoj",BLOCK_VALIDITY_WINDOW_SHORT:"Limtempo pri necerteco",BLOCK_VALIDITY_WINDOW_HELP:"Limtempo antaŭ ol taksi, ke iu informo estas validigita",BLOCK_VALIDITY_OPTION:{NONE:"Neniu limtempo",N:"{{time | formatDuration}} ({{count}} blokoj)"},POPUP_PEER:{TITLE:"Nodo Duniter",HOST:"Adreso",HOST_HELP:"Adreso: servilo: konektujo",USE_SSL:"Sekurigita?",USE_SSL_HELP:"(SSL-ĉifrado)",BTN_SHOW_LIST:"Listo de la nodoj"}},BLOCKCHAIN:{HASH:"Haketo: {{hash}}",VIEW:{HEADER_TITLE:"Bloko #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Nuna bloko",TITLE:"Bloko #{{number|formatInteger}}",COMPUTED_BY:"Kalkulita de la nodo de",SHOW_RAW:"Vidi la kompletan dosieron",TECHNICAL_DIVIDER:"Teknikaj informoj",VERSION:"Versio de la daten-strukturo",HASH:"Kalkulita haketo",UNIVERSAL_DIVIDEND_HELP:"Mono kunproduktita de ĉiu el la {{membersCount}} membroj",EMPTY:"Neniu dateno en tiu ĉi bloko",POW_MIN:"Minimuma malfacileco",POW_MIN_HELP:"Malfacileco trudita por la haket-kalkulo",DATA_DIVIDER:"Datenoj",IDENTITIES_COUNT:"Novaj identecoj",JOINERS_COUNT:"Novaj membroj",ACTIVES_COUNT:"Revalidigoj",ACTIVES_COUNT_HELP:"Membroj revalidigintaj sian membrecon",LEAVERS_COUNT:"Membroj elirintaj",LEAVERS_COUNT_HELP:"Membroj ne plu dezirantaj atestaĵon",EXCLUDED_COUNT:"Membroj eksigitaj",EXCLUDED_COUNT_HELP:"Malnovaj membroj eksigitaj pro nerevalidiĝo aŭ manko de atestaĵoj",REVOKED_COUNT:"Nuligitaj identecoj",REVOKED_COUNT_HELP:"Tiuj kontoj ne plu povos esti membroj",TX_COUNT:"Spezoj",CERT_COUNT:"Atestaĵoj",TX_TO_HIMSELF:"Operacio pri monŝanĝo",TX_OUTPUT_UNLOCK_CONDITIONS:"Kondiĉoj por malblokado",TX_OUTPUT_OPERATOR:{AND:"kaj",OR:"aŭ"},TX_OUTPUT_FUNCTION:{SIG:"<b>Subskribo</b> de ",XHX:"<b>Pasvorto</b>, el kiu SHA256 =",CSV:"Blokita dum",CLTV:"Blokita ĝis"}},LOOKUP:{TITLE:"Blokoj",NO_BLOCK:"Neniu bloko",LAST_BLOCKS:"Lastaj blokoj:",BTN_COMPACT:"Densigi"}},CURRENCY:{VIEW:{TITLE:"Mono",TAB_CURRENCY:"Mono",TAB_WOT:"Reto de fido",TAB_NETWORK:"Reto",TAB_BLOCKS:"Blokoj",CURRENCY_SHORT_DESCRIPTION:"{{currency|abbreviate}} estas <b>libera mono</b>, kiu ekis {{firstBlockTime|formatFromNow}}. Ĝi nombras nun <b>{{N}} membrojn</b>, kiuj produktas kaj ricevas <a ng-click=\"showHelpModal('ud')\">Universalan Dividendon</a> (UD), ĉiun {{dt|formatPeriod}}n.",NETWORK_RULES_DIVIDER:"Reguloj de la reto",CURRENCY_NAME:"Nomo de la mono",MEMBERS:"Nombro de membroj",MEMBERS_VARIATION:"Variado depost la lasta UD",MONEY_DIVIDER:"Mono",MASS:"Mona maso",SHARE:"Maso por membro",UD:"Universala Dividendo",C_ACTUAL:"Nuna kreskado",MEDIAN_TIME:"Horo de la blokĉeno",POW_MIN:"Minimuma nivelo pri malfacileco de kalkulo",MONEY_RULES_DIVIDER:"Reguloj de la mono",C_RULE:"Teoria kreskado celata",UD_RULE:"Kalkulo de la universala dividendo",DT_REEVAL:"Periodo de revalorigo de la UD",REEVAL_SYMBOL:"reval",DT_REEVAL_VALUE:"Ĉiuj <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Dato de la unua revalorigo",SIG_QTY_RULE:"Nombro de necesaj atestaĵoj por fariĝi membro",SIG_STOCK:"Maksimuma nombro da senditaj atestaĵoj por membro",SIG_PERIOD:"Minimuma daŭro de atendado inter 2 sinsekvaj atestaĵoj senditaj de sama persono",SIG_WINDOW:"Limdaŭro por akcepti atestaĵon",SIG_VALIDITY:"Vivdaŭro de atestaĵo, kiu estis akceptita",MS_WINDOW:"Limdaŭro por akcepti aliĝ-peton kiel membron",MS_VALIDITY:"Vivdaŭro de aliĝo, kiu estis akceptita",STEP_MAX:"Maksimuma distanco, per la atestaĵoj, inter nova eniranto kaj la referencaj membroj",WOT_RULES_DIVIDER:"Reguloj de la reto de fido",SENTRIES:"Nombro de atestaĵoj (senditaj <b>kaj</b> ricevitaj) por fariĝi referenca membro",SENTRIES_FORMULA:"Nombro de atestaĵoj (senditaj <b>kaj</b> ricevitaj) por fariĝi referenca membro (formulo)",XPERCENT:"Minimuma procento da referencaj membroj atingenda por konformiĝi al la regulo pri distanco",AVG_GEN_TIME:"Meza daŭro inter du blokoj",CURRENT:"nuna",MATH_CEILING:"PLAFONO",DISPLAY_ALL_RULES:"Afiŝi ĉiujn regulojn?",BTN_SHOW_LICENSE:"Vidi la licencon",WOT_DIVIDER:"Reto de fido"},LICENSE:{TITLE:"Licenco de la mono",BTN_DOWNLOAD:"Elŝuti la dosieron",NO_LICENSE_FILE:"Dosiero pri licenco ne trovita."}},NETWORK:{VIEW:{MEDIAN_TIME:"Horo de la blokĉeno",LOADING_PEERS:"Nodoj ŝarĝiĝantaj...",NODE_ADDRESS:"Adreso:",SOFTWARE:"Programo",WARN_PRE_RELEASE:"Antaŭ-versio (lasta stabila versio: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Versio <b>{{version}}</b> disponebla",WS2PID:"Identigilo:",PRIVATE_ACCESS:"Privata aliro",POW_PREFIX:"Prefikso pri labor-pruvo:",ENDPOINTS:{BMAS:"Sekurigita interfaco (SSL)",BMATOR:"Reta interfaco TOR",WS2P:"Interfaco WS2P",ES_USER_API:"Nodo de datenoj Cesium+"}},INFO:{ONLY_SSL_PEERS:"La nodoj ne-SSL estas mis-afiŝitaj, ĉar Cesium funkcias laŭ moduso HTTPS."}},PEER:{PEERS:"Nodoj",SIGNED_ON_BLOCK:"Skribita en la bloko",MIRROR:"spegulo",MIRRORS:"Speguloj",MIRROR_PEERS:"Spegul-nodoj",PEER_LIST:"Listo de la nodoj",MEMBERS:"Membroj",MEMBER_PEERS:"Membro-nodoj",ALL_PEERS:"Ĉiuj nodoj",DIFFICULTY:"Malfacileco",API:"API",CURRENT_BLOCK:"Bloko #",POPOVER_FILTER_TITLE:"Filtrilo",OFFLINE:"Nekonektita",OFFLINE_PEERS:"Nekonektitaj nodoj",BTN_SHOW_PEER:"Vidi la nodon",VIEW:{TITLE:"Nodo",OWNER:"Apartenas al",SHOW_RAW_PEERING:"Vidi la samrangan dokumenton",SHOW_RAW_CURRENT_BLOCK:"Vidi la lastan blokon (kompleta strukturo)",LAST_BLOCKS:"Lastaj blokoj konataj",KNOWN_PEERS:"Konataj nodoj:",GENERAL_DIVIDER:"Ĝeneralaj informoj",ERROR:{LOADING_TOR_NODE_ERROR:"Neeblas ricevi la informojn de la nodo. La limdaŭro de atendado estas transpasita.",LOADING_NODE_ERROR:"Neeblas ricevi la informojn de la nodo"}}},WOT:{SEARCH_HELP:"Traserĉado (pseŭdo aŭ publika ŝlosilo)",SEARCH_INIT_PHASE_WARNING:"Dum la periodo de antaŭ-aliĝo, la traserĉado de la atendantaj aliĝoj <b>povas esti longa</b>. Bonvolu pacienci...",REGISTERED_SINCE:"Enskribita la",REGISTERED_SINCE_BLOCK:"Enskribita en la bloko #",NO_CERTIFICATION:"Neniu atestaĵo validigita",NO_GIVEN_CERTIFICATION:"Neniu atestaĵo sendita",NOT_MEMBER_PARENTHESIS:"(ne membro)",IDENTITY_REVOKED_PARENTHESIS:"(identeco nuligita)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(nuliĝanta)",EXPIRE_IN:"Finiĝo",NOT_WRITTEN_EXPIRE_IN:"Limdato<br/>de traktado",EXPIRED:"Finiĝinta",PSEUDO:"Pseŭdonimo",SIGNED_ON_BLOCK:"Sendita en la bloko #{{block}}",WRITTEN_ON_BLOCK:"Enskribita en la bloko #{{block}}",GENERAL_DIVIDER:"Ĝeneralaj informoj",NOT_MEMBER_ACCOUNT:"Simpla konto (ne membro)",NOT_MEMBER_ACCOUNT_HELP:"Temas pri simpla monujo, sen aliĝ-peto atendanta.",TECHNICAL_DIVIDER:"Teknikaj informoj",BTN_CERTIFY:"Atesti",BTN_YES_CERTIFY:"Jes, atesti",BTN_SELECT_AND_CERTIFY:"Nova atestaĵo",ACCOUNT_OPERATIONS:"Spezoj en la konto",VIEW:{POPOVER_SHARE_TITLE:"Identeco {{title}}"},LOOKUP:{TITLE:"Reto de fido",NEWCOMERS:"Novaj membroj",NEWCOMERS_COUNT:"{{count}} membroj",PENDING:"Atendantaj enskribiĝoj",PENDING_COUNT:"{{count}} atendantaj enskribiĝoj",REGISTERED:"Enskribita {{sigDate | formatFromNow}}",MEMBER_FROM:"Membro depost {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Novaj membroj",BTN_PENDING:"Atendantaj enskribiĝoj",SHOW_MORE:"Afiŝi pli",SHOW_MORE_COUNT:"(nuna limo je {{limit}})",NO_PENDING:"Neniu enskribiĝo atendanta.",NO_NEWCOMERS:"Neniu membro."},CONTACTS:{TITLE:"Kontaktoj"},MODAL:{TITLE:"Traserĉado"},CERTIFICATIONS:{TITLE:"{{uid}} - Atestaĵoj",SUMMARY:"Ricevitaj atestaĵoj",LIST:"Detalo pri la ricevitaj atestaĵoj",PENDING_LIST:"Atestaĵoj atendantaj traktadon",RECEIVED:"Ricevitaj atestaĵoj",RECEIVED_BY:"Atestaĵoj ricevitaj de {{uid}}",ERROR:"Atestaĵoj erare ricevitaj",SENTRY_MEMBER:"Referenca membro"},OPERATIONS:{TITLE:"{{uid}} - Spezoj"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Senditaj atestaĵoj",SUMMARY:"Senditaj atestaĵoj",LIST:"Detalo pri la senditaj atestaĵoj",PENDING_LIST:"Atestaĵoj atendantaj traktadon",SENT:"Senditaj atestaĵoj",SENT_BY:"Atestaĵoj senditaj de {{uid}}",ERROR:"Atestaĵoj erare senditaj"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Konektiĝo',SCRYPT_FORM_HELP:"Bonvolu tajpi viajn identigilojn.<br>Pensu kontroli, ke la publika ŝlosilo estas tiu de via konto.",PUBKEY_FORM_HELP:"Bonvolu tajpi publikan ŝlosilon de konto:",FILE_FORM_HELP:"Elektu la ŝlosilaro-dosieron uzotan:",SCAN_FORM_HELP:"Skani la QR-kodon de monujo.",SALT:"Sekreta identigilo",SALT_HELP:"Sekreta identigilo",SHOW_SALT:"Afiŝi la sekretan identigilon?",PASSWORD:"Pasvorto",PASSWORD_HELP:"Pasvorto",PUBKEY_HELP:"Publika ŝlosilo aŭ pseŭdonimo",NO_ACCOUNT_QUESTION:"Vi ankoraŭ ne havas konton?",HAVE_ACCOUNT_QUESTION:"Vi jam havas konton?",CREATE_ACCOUNT:"Krei konton...",CREATE_FREE_ACCOUNT:"Krei konton senpage",FORGOTTEN_ID:"Pasvorto forgesita?",ASSOCIATED_PUBKEY:"Publika ŝlosilo de la ŝlosilaro:",BTN_METHODS:"Aliaj metodoj",BTN_METHODS_DOTS:"Ŝanĝi metodon...",METHOD_POPOVER_TITLE:"Metodoj",MEMORIZE_AUTH_FILE:"Memorigi tiun ŝlosilaron por la daŭro de la sesio de retumado",SCRYPT_PARAMETERS:"Parametroj (Skripto):",AUTO_LOGOUT:{TITLE:"Informo",MESSAGE:'<i class="ion-android-time"></i> Vi estis <b>malkonektita</b> aŭtomate, pro tro longa senaktiveco.',BTN_RELOGIN:"Rekonektiĝi",IDLE_WARNING:"Vi estos malkonektita... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Sekreta identigilo kaj pasvorto",SCRYPT_ADVANCED:"Sperta salumado",FILE:"Dosiero pri ŝlosilaro",PUBKEY:"Publika ŝlosilo aŭ pseŭdonimo",SCAN:"Skani QR-kodon"},SCRYPT:{SIMPLE:"Malpeza salumado",DEFAULT:"Kutima salumado",SECURE:"Sekura salumado",HARDEST:"Plej sekura salumado",EXTREME:"Ekstrema salumado",USER:"Personigita salumado",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Atendita strukturo de dosiero: <b>.yml</b> aŭ <b>.dunikey</b> (tipo PubSec, WIF aŭ EWIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Aŭtentigado',BTN_AUTH:"Aŭtentiĝi",GENERAL_HELP:"Bonvolu aŭtentiĝi:",EXPECTED_UID_HELP:'Bonvolu aŭtentiĝi ĉe la konto <i class="ion-person"></i> {{uid}} :',EXPECTED_PUBKEY_HELP:'Bonvolu aŭtentiĝi ĉe la monujo <br class="visible-xs"/><i class="ion-key"></i> {{pubkey|formatPubkey}} :',SCAN_FORM_HELP:"Skani la QR-kodon de la <b>privata ŝlosilo</b> de la monujo."},ACCOUNT:{TITLE:"Mia konto",BALANCE:"Saldo",LAST_TX:"Lastaj spezoj validigitaj",BALANCE_ACCOUNT:"Konto-saldo",NO_TX:"Neniu spezo",SHOW_MORE_TX:"Afiŝi pli",SHOW_ALL_TX:"Afiŝi ĉion",TX_FROM_DATE:"(nuna limo je {{fromTime|medianFromNowShort}})",PENDING_TX:"Spezoj atendantaj traktadon",VALIDATING_TX:"Spezoj traktitaj, ne validigitaj",ERROR_TX:"Spezoj ne realigitaj",ERROR_TX_SENT:"Spezoj malsukcesintaj",PENDING_TX_RECEIVED:"Spezoj atendantaj ricevon",EVENTS:"Okazaĵoj",OUT_DISTANCED:"Viaj nunaj atestaĵoj venas de tro izolita grupo de la <a ng-click=\"showHelpModal('wot')\">Reto de Fido</a> (RdF): al la <a ng-click=\"showHelpModal('distance_rule')\">regulo de maksimuma distanco</a> vi ne konformiĝas.<br/>Vi devas akiri atestaĵojn venantajn de aliaj lokoj de la RdF, aŭ atendi ke tiu ĉi densiĝos.",WAITING_MEMBERSHIP:"Aliĝo-peto sendita. Atendanta akcepton.",WAITING_CERTIFICATIONS:"Vi devas <b>akiri {{needCertificationCount}} atestaĵo(j)n</b> por fariĝi membro kaj produkti la <a ng-click=\"showHelpModal('ud')\">Universalan Dividendon</a>. Via konto tamen estas jam funkcianta, por ricevi kaj efektivigi pagojn.",WAITING_CERTIFICATIONS_HELP:'Por akiri viajn atestaĵojn, petu nur membrojn <b>kiuj sufiĉe konas vin</b>, kiel postulas <a ng-click="showLicenseModal()">la licenco de la mono</a>, kiun vi akceptis.<br/>Se vi ne konas sufiĉe da membroj, sciigu tion ĉe <a ng-click="openLink($event, $root.settings.userForumUrl)">la forumo por uzantoj</a>.',WILL_MISSING_CERTIFICATIONS:"Baldaŭ <b>mankos al vi atestaĵoj</b> (almenaŭ {{willNeedCertificationCount}} estas necesaj)",WILL_NEED_RENEW_MEMBERSHIP:"Via aliĝo kiel membro <b>estas finiĝonta {{membershipExpiresIn|formatDurationTo}}</b>. Pensu <a ng-click=\"doQuickFix('renew')\">revalidigi vian aliĝon</a> ĝis tiam.",NEED_RENEW_MEMBERSHIP:"Vi ne plu estas membro de la mono, ĉar <b>via aliĝo finiĝis</b>. Pensu <a ng-click=\"doQuickFix('renew')\">revalidigi vian aliĝon</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"Vi ne plu estas membro de la mono, <b>pro manko da atestaĵoj</b>. Pensu <a ng-click=\"doQuickFix('renew')\">revalidigi vian aliĝon</a>.",NO_WAITING_MEMBERSHIP:"Neniu aliĝo-peto atendanta. Se vi deziras <b>fariĝi membro</b>, pensu <a ng-click=\"doQuickFix('membership')\">sendi la aliĝo-peton</a>.",CERTIFICATION_COUNT:"Ricevitaj atestaĵoj",CERTIFICATION_COUNT_SHORT:"Atestaĵoj",SIG_STOCK:"Senditaj atestaĵoj",BTN_RECEIVE_MONEY:"Enkasigi",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Aliri alian identecon...",BTN_FIX_MEMBERSHIP:"Resendi la aliĝo-peton...",BTN_MEMBERSHIP_RENEW:"Revalidigi la aliĝon",BTN_MEMBERSHIP_RENEW_DOTS:"Revalidigi la aliĝon...",BTN_MEMBERSHIP_OUT_DOTS:"Ĉesigi la aliĝon...",BTN_SECURITY_DOTS:"Konto kaj sekureco...",BTN_SHOW_DETAILS:"Afiŝi la teknikajn informojn",LOCKED_OUTPUTS_POPOVER:{TITLE:"Sumo blokita",DESCRIPTION:"Jen la kondiĉoj de malblokado de tiu sumo:",DESCRIPTION_MANY:"Tiu spezo entenas plurajn partojn, pri kiuj la kondiĉoj de malblokado estas:",LOCKED_AMOUNT:"Kondiĉoj por la sumo:"},NEW:{TITLE:"Kreado de konto",INTRO_WARNING_TIME:"La kreado de konto ĉe {{name|capitalize}} estas tre simpla. Bonvolu tamen dediĉi sufiĉe da tempo por ĝuste efektivigi tiun proceduron (por ne forgesi la identigilojn, pasvortojn, ktp.).",INTRO_WARNING_SECURITY:"Kontrolu ke la aparatoj, kiujn vi nun uzas (komputilo, tabuleto, telefono), <b>estas sekurigitaj kaj fidindaj</b>.",INTRO_WARNING_SECURITY_HELP:"Senvirusigilo ĝisdata, fajroŝirmilo aktivigita, sesio protektita per pasvorto aŭ PIN-kodo, ktp.",INTRO_HELP:"Alklaku <b>{{'COMMON.BTN_START'|translate}}</b> por ekigi la kreadon de konto. Vi estos gvidata paŝon post paŝo.",REGISTRATION_NODE:"Via aliĝo estos registrita tra la nodo Duniter <b>{{server}}</b>, kiu dissendos ĝin poste al la cetero de la mon-reto.",REGISTRATION_NODE_HELP:"Se vi ne fidas tiun nodon, bonvolu ŝanĝi ĝin <a ng-click=\"doQuickFix('settings')\">en la parametroj</a> de Cesium.",SELECT_ACCOUNT_TYPE:"Elektu la tipon de konto kreota:",MEMBER_ACCOUNT:"Membro-konto",MEMBER_ACCOUNT_TITLE:"Kreado de membro-konto",MEMBER_ACCOUNT_HELP:"Se vi ankoraŭ ne enskribiĝis kiel individuo (nur unu konto eblas por unu individuo). Tia konto ebligas kunprodukti la monon, ricevante <b> universalan dividendon</b> ĉiun {{parameters.dt|formatPeriod}}n.",WALLET_ACCOUNT:"Simpla monujo",WALLET_ACCOUNT_TITLE:"Kreado de monujo",WALLET_ACCOUNT_HELP:"Por ĉiuj aliaj kazoj, ekzemple se vi bezonas plian konton.<br/>Neniu universala dividendo estos kreita per tia konto.",SALT_WARNING:"Elektu vian sekretan identigilon.<br/>Oni petos ĝin de vi ĉiufoje, kiam vi konektiĝos al tiu konto.<br/><br/><b>Bone memorigu ĝin</b>: kaze de perdo, neniu alia povos aliri vian konton!",PASSWORD_WARNING:"Elektu pasvorton.<br/>Oni petos ĝin de vi ĉiufoje, kiam vi konektiĝos al tiu konto.<br/><br/><b>Bone memorigu tiun pasvorton</b: kaze de perdo, neniu alia povos aliri vian konton!",PSEUDO_WARNING:"Elektu pseŭdonimon.<br/>Ĝi utilas al la aliaj membroj, por identigi vin pli facile.<div class='hidden-xs'><br/>Ĝi <b>ne povos esti modifita</b>, sen rekrei konton.</div><br/><br/>Ĝi entenu <b>nek spacon, nek diakritan literon (kun supersigno, ktp.)</b>.<div class='hidden-xs'><br/>Ekzemple: <span class='gray'>NataljaBelulino, JohanoStelaro, ktp.</span>",PSEUDO:"Pseŭdonimo",PSEUDO_HELP:"Pseŭdonimo",SALT_CONFIRM:"Konfirmo",SALT_CONFIRM_HELP:"Konfirmo de la sekreta identigilo",PASSWORD_CONFIRM:"Konfirmo",PASSWORD_CONFIRM_HELP:"Konfirmo de la pasvorto",SLIDE_6_TITLE:"Konfirmo:",COMPUTING_PUBKEY:"Kalkulanta...",LAST_SLIDE_CONGRATULATION:"Vi tajpis ĉiujn necesajn informojn: Gratulon!<br/>Vi nun povas <b>sendi la peton por kreado</b> de la konto.</b><br/><br/>Por informo, la publika ŝlosilo ĉi-sube identigos vian estontan konton.<br/>Ĝi povos estis sciigita al aliuloj por ricevi iliajn pagojn.<br/><b>Ne estas devige</b> noti ĝin nun, vi ankaŭ povos fari tion poste.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Averto:</b> la sekreta identigilo, la pasvorto kaj la pseŭdonimo ne plu povos esti modifitaj.<br/><br/><b>Certiĝu, ke vi ĉiam rememorigos ĝin!</b><br/><br/><b>Ĉu vi certas</b>, ke vi deziras sendi tiun ĉi aliĝo-peton?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Averto:</b> la sekreta identigilo kaj la pasvorto ne plu povos esti modifitaj.<br/><br/><b>Certiĝu, ke vi ĉiam rememorigos ĝin!</b><br/><br/><b>Ĉu vi certas</b>, ke vi deziras daŭrigi per tiuj ĉi identigiloj?',CHECKING_PSEUDO:"Kontrolo...",PSEUDO_AVAILABLE:"Pseŭdonimo disponebla",PSEUDO_NOT_AVAILABLE:"Pseŭdonimo ne disponebla",INFO_LICENSE:"Antaŭ ol krei membro-konton, <b>bonvolu legi kaj akcepti la licencon</b> pri uzado de la mono:",BTN_ACCEPT:"Mi akceptas",BTN_ACCEPT_LICENSE:"Mi akceptas la licencon"},POPUP_REGISTER:{TITLE:"Elektu pseŭdonimon",HELP:"Pseŭdonimo estas deviga por fariĝi membro."},SELECT_IDENTITY_MODAL:{TITLE:"Elekto de la identeco",HELP:'Pluraj <b>malsamaj identecoj</b> estis senditaj, por la publika ŝlosilo <span class="gray"><i class="ion-key"></i> {{pubkey|formatPubkey}}</span>.<br/>Bonvolu elekti la dosierujon uzotan:'},SELECT_WALLET_MODAL:{TITLE:"Elekto de la monujo"},WALLET_LIST:{TITLE:"Miaj monujoj",BTN_NEW:"Aldoni monujon",BTN_DOWNLOAD:"Elŝuti la liston",BTN_IMPORT_FILE_DOTS:"Enporti el dosiero...",NO_WALLET:"Neniu kroma monujo",BTN_DELETE:"Forigi kroman monujon...",BTN_RENAME:"Renomi la monujon",EXPORT_FILENAME:"miaj_monujoj-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Sumo: ",EDIT_POPOVER:{TITLE:"Renomi la monujon",HELP:"Sciigu la novan nomon",NAME_HELP:"Nomo de la monujo"},IMPORT_MODAL:{TITLE:"Enporti monujojn",HELP:"Por <b>enporti monujojn</b>, bonvolu glitigi en la ĉi-suban zonon la dosieron pri la listo de monujoj, aŭ alklaki la zonon por serĉadi dosieron.",WALLET_COUNT:"<b>{{count}}</b> nova{{count > 1 ? 'j' : ''}} monujo{{count > 1 ? 'j' : ''}}",NO_NEW_WALLET:"Neniu nova monujo"}},SECURITY:{ADD_QUESTION:"Aldoni personigitan demandon",BTN_CLEAN:"Malplenigi",BTN_RESET:"Restartigi",DOWNLOAD_REVOKE:"Konservi mian dosieron pri nuligo",DOWNLOAD_REVOKE_HELP:"Disponi dosieron pri nuligo estas grave, ekzemple kaze de perdo de viaj identigiloj. Ĝi ebligas al vi <b>elirigi tiun konton el la reto de fido</b>, tiel ke ĝi refariĝu simpla monujo.",GENERATE_KEYFILE:"Krei mian dosieron pri ŝlosilaro...",GENERATE_KEYFILE_HELP:"Kreas dosieron, kiu ebligas al vi aŭtentiĝi sen tajpi viajn identigilojn.<br/><b>Atenton:</b> tiu dosiero entenos vian konto-ŝlosilaron (publikan kaj sekretan ŝlosilojn); do tre gravas meti ĝin en sekuran lokon!",KEYFILE_FILENAME:"ŝlosilaro-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Transformi en membro-konton...",MEMBERSHIP_IN_HELP:"Ebligas <b>transformi</b> simplan monujo-konton <b>en membro-konton</b>, sendante aliĝo-peton. Utilas nur se vi ne havas jam alian membro-konton.",SEND_IDENTITY:"Publikigi sian identecon...",SEND_IDENTITY_HELP:"Ebligas kunligi pseŭdonimon kun tiu ĉi konto, sed <b>sen fari aliĝo-peton</b> por iĝi membro. Tiu kunligo kutime ne utilas, ĉar la valideco de tiu kunligo de pseŭdonimo estas limigita en la tempo.",HELP_LEVEL:"Por krei konserv-dosieron pri viaj identigiloj, elektu <strong> almenaŭ {{nb}} demandojn:</strong>",LEVEL:"Nivelo de sekureco",LOW_LEVEL:'Malforta <span class="hidden-xs">(2 demandoj minimume)</span>',MEDIUM_LEVEL:'Meza <span class="hidden-xs">(4 demandoj minimume)</span>',QUESTION_1:"Kiel nomiĝis via plej bona amik.in.o, kiam vi estis adoleskant.in.o?",QUESTION_2:"Kiel nomiĝis via unua hejm-besto?",QUESTION_3:"Kiun pladon vi unue lernis kuiradi?",QUESTION_4:"Kiun filmon vi unue spektis en kinejo?",QUESTION_5:"Kien vi iris la unuan fojon, kiam vi vojaĝis per aviadilo?",QUESTION_6:"Kiel nomiĝis via preferata instruist.i.no en bazlernejo?",QUESTION_7:"Kio estus laŭ vi la ideala profesio?",QUESTION_8:"Kiun libron por infanoj vi preferas?",QUESTION_9:"Kio estis la marko de via unua veturilo?",QUESTION_10:"Kio estis via kromnomo, kiam vi estis infano?",QUESTION_11:"Kiun rolant.in.on aŭ aktor.in.on vi preferis en kino, kiam vi estis student.in.o?",QUESTION_12:"Kiun kanzonist.ino.n aŭ muzikgrupon vi preferis, kiam vi estis student.in.o?",QUESTION_13:"En kiu urbo renkontiĝis viaj gepatroj?",QUESTION_14:"Kiel nomiĝis via unua ĉefo?",QUESTION_15:"Kiel nomiĝas la strato, kie vi kreskis?",QUESTION_16:"Kiel nomiĝas la marbordo, kie vi unuafoje baniĝis?",QUESTION_17:"Kiun muzik-albumon vi unuafoje aĉetis?",QUESTION_18:"Kiel nomiĝas via preferata sporto-teamo?",QUESTION_19:"Kio estis la profesio de via avo?",RECOVER_ID:"Retrovi mian pasvorton...",RECOVER_ID_HELP:"Se vi disponas <b>konserv-dosieron pri viaj identigiloj</b>, vi povas retrovi ilin respondante ĝuste viajn personajn demandojn.",REVOCATION_WITH_FILE:"Nuligi mian membro-konton...",REVOCATION_WITH_FILE_DESCRIPTION:"Se vi <b>definitive perdis viajn identigilojn</b> pri via membro-konto (aŭ ke la sekureco de la konto estas endanĝerigita), vi povas uzi <b>la dosieron pri nuligo</b> de la konto por <b>trudi ties definitivan eliradon el la reto de fido</b>.",REVOCATION_WITH_FILE_HELP:"Por <b>definitive nuligi</b> membro-konton, bonvolu glitigi en la ĉi-suban zonon vian dosieron pri nuligo, aŭ alklaki la zonon por serĉadi dosieron.",REVOCATION_WALLET:"Nuligi tiun ĉi konton tuj",REVOCATION_WALLET_HELP:"Peti la nuligon de via identeco estigas la <b>eliradon el la reto de fido</b> (definitivan por la pseŭdonimo kaj la publika ŝlosilo kunligitaj). La konto ne plu povos produkti Universalan Dividendon.<br/>Vi tamen daŭre povos konektiĝi al ĝi, kiel al simpla monujo.",REVOCATION_FILENAME:"nuligo-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Konservi miajn identigilojn...",SAVE_ID_HELP:"Kreado de konserv-dosiero, por <b>retrovi vian pasvorton</b> (kaj la sekretan identigilon) <b>kaze de forgeso</b>. La dosiero estas <b>sekurigita</b> (ĉifrita) dank'al personaj demandoj.",STRONG_LEVEL:'Forta <span class="hidden-xs ">(6 demandoj minimume)</span>',TITLE:"Konto kaj sekureco",KEYFILE:{PUBSEC_FORMAT:"Strukturo PubSec.",PUBSEC_FORMAT_HELP:"Tiu strukturo stokas vian ŝlosilaron laŭ tre simpla maniero. Ĝi kongruas aparte kun Cesium, ğannonce kaj Duniter.<br/><b>Atenton:</b>La dosiero <b>ne estas ĉifrita</b> (la sekreta ŝlosilo klare aperas en ĝi); bonvolu do stoki ĝin en sekura loko!",WIF_FORMAT:"Strukturo WIF (Wallet Import Format) - v1",WIF_FORMAT_HELP:"Tiu strukturo stokas vian ŝlosilaron inkluzivante en ĝin kontrol-sumon por kontroli la sendifektecon de la dosiero. Ĝi kongruas aparte kun la paper-monujoj (Duniter paper wallet).<br/><b>Atenton:</b>La dosiero <b>ne estas ĉifrita</b> (la sekreta ŝlosilo klare aperas en ĝi); bonvolu do stoki ĝin en sekura loko!",EWIF_FORMAT:"Strukturo EWIF (Encrypted Wallet Import Format) - v1",EWIF_FORMAT_HELP:"Tiu strukturo stokas vian ŝlosilaron <b>laŭ ĉifrita maniero</b> dank'al sekreta frazo elektita de vi. Ĝi ankaŭ inkluzivas kontrol-sumon por kontroli la sendifektecon de la dosiero.<br/><b>Atenton:</b> Zorgu, ke vi ĉiam rememoru vian sekretan frazon!",PASSWORD_POPUP:{TITLE:"Ĉifrita dosiero pri ŝlosilaro",HELP:"Bonvolu indiki la la sekretan frazon:",PASSWORD_HELP:"Sekreta frazo"},ERROR:{BAD_PASSWORD:"Sekreta frazo malĝusta",BAD_CHECKSUM:"Kontrol-sumo malĝusta"}}},FILE_NAME:"{{currency}} - Konto-tabelo {{pubkey|formatPubkey}} je {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Dato",AMOUNT:"Sumo",COMMENT:"Komento"}},TRANSFER:{TITLE:"Elspezo",SUB_TITLE:"Fari elspezon",SUB_TITLE_ALL:"Malplenigi la konton",FROM:"De",TO:"Al",AMOUNT:"Sumo",AMOUNT_HELP:"Sumo",COMMENT:"Komento",COMMENT_HELP:"Komento",BTN_SEND:"Sendi",BTN_ADD_COMMENT:"Aldoni komenton",REST:"Resto de la konto",REST_TO:"al",WARN_COMMENT_IS_PUBLIC:"Bonvolu noti, ke <b>la komentoj estas publikaj</b> (ne ĉifritaj).",MODAL:{TITLE:"Elspezo"}},ERROR:{UNKNOWN_URI_FORMAT:"URI-strukturo nekonata",PUBKEY_INVALID_CHECKSUM:"Publika ŝlosilo nevalida (bad checksum).",POPUP_TITLE:"Eraro",UNKNOWN_ERROR:"Eraro nekonata",CRYPTO_UNKNOWN_ERROR:"Via retumilo ŝajnas ne kongrua kun la kriptografiaj funkcioj.",DOWNLOAD_KEYFILE_FAILED:"Malsukceso por la kreado de la dosiero pri ŝlosilaro.",EQUALS_TO_PSEUDO:"Devas esti malsama ol la pseŭdonimo",EQUALS_TO_SALT:"Devas esti malsama ol la sekreta identigilo",FIELD_REQUIRED:"Deviga kampo",FIELD_TOO_SHORT:"Signaro tro mallonga",FIELD_TOO_SHORT_WITH_LENGTH:"Signaro tro mallonga ({{minLength}} signoj minimume)",FIELD_TOO_LONG:"Signaro tro longa",FIELD_TOO_LONG_WITH_LENGTH:"Signaro tro longa ({{maxLength}} signoj maksimume)",FIELD_MIN:"Minimuma longeco: {{min}}",FIELD_MAX:"Maksimuma longeco: {{max}}",FIELD_ACCENT:"Diakritaj literoj kaj komoj ne permesataj",FIELD_NOT_NUMBER:"Nombra valoro atendata",FIELD_NOT_INT:"Entjera nombro atendata",FIELD_NOT_EMAIL:"Retadreso nevalida",PASSWORD_NOT_CONFIRMED:"Ne kongruas kun la pasvorto",SALT_NOT_CONFIRMED:"Ne kongruas kun la sekreta identigilo",SEND_IDENTITY_FAILED:"Aliĝo malsukcesa",SEND_CERTIFICATION_FAILED:"Atestado malsukcesa",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"Vi ne povas efektivigi atestadon, ĉar via konto <b>ne estas membro</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"Vi ne povas efektivigi atestadon, ĉar via konto ankoraŭ ne estas membro.<br/><br/>Ankoraŭ mankas al vi atestaĵoj, aŭ tiuj ĉi ankoraŭ ne estis validigitaj.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Konto ne atestebla. Neniu aliĝo-peto estis farita, aŭ la aliĝo ne estis revalidigita.",LOGIN_FAILED:"Eraro dum konektiĝo.",LOAD_IDENTITY_FAILED:"Eraro por ŝarĝi la identecon.",LOAD_REQUIREMENTS_FAILED:"Eraro por ŝarĝi la antaŭ-necesaĵoj de la identeco.",SEND_MEMBERSHIP_IN_FAILED:"Malsukceso pri la provado eniri la komunumon.",SEND_MEMBERSHIP_OUT_FAILED:"Malsukceso pri la ĉesigo de la aliĝo.",REFRESH_WALLET_DATA:"Malsukceso pri la ĝisdatigo de la monujo.",GET_CURRENCY_PARAMETER:"Malsukceso por ricevi la regulojn de la mono.",GET_CURRENCY_FAILED:"Ne eblis ŝarĝi la monon. Bonvolu reprovi pli poste.",SEND_TX_FAILED:"Elspezado malsukcesa.",ALL_SOURCES_USED:"Bonvolu atendi la kalkulon de la venonta bloko (ĉiuj viaj monfontoj estis uzitaj).",NOT_ENOUGH_SOURCES:"Ne sufiĉe da mono por sendi tiun ĉi sumon per ununura spezo.<br/>Maksimuma sumo: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Malsukceso por krei la membro-konton.",RESTORE_WALLET_DATA_ERROR:"Malsukceso por reŝarĝi la parametrojn de la loka stokaĵo",LOAD_WALLET_DATA_ERROR:"Malsukceso por ŝarĝi la datenojn de la monujo.",COPY_CLIPBOARD_FAILED:"Ne eblis kopii la valoron.",TAKE_PICTURE_FAILED:"Malsukceso por ricevi la foton.",SCAN_FAILED:"Malsukceso por skani la QR-kodon.",SCAN_UNKNOWN_FORMAT:"Kodo nerekonata.",WOT_LOOKUP_FAILED:"Serĉado malsukcesa.",LOAD_PEER_DATA_FAILED:"Ne eblis legi la nodon Duniter. Bonvolu reprovi poste.",NEED_LOGIN_FIRST:"Bonvolu unue konektiĝi.",AMOUNT_REQUIRED:"La monsumo estas deviga.",AMOUNT_NEGATIVE:"Negativa sumo nepermesata.",NOT_ENOUGH_CREDIT:"Saldo nesufiĉa.",INVALID_NODE_SUMMARY:"Nodo neatingebla aŭ adreso nevalida.",INVALID_USER_ID:"La pseŭdonimo devas enteni nek spacon nek signon specialan aŭ kun supersigno.",INVALID_COMMENT:"La kampo 'referenco' ne devas enteni literojn kun supersigno.",INVALID_PUBKEY:"La publika ŝlosilo ne havas la atenditan strukturon.",INVALID_PUBKEY_CHECKSUM:"Kontrol-sumo nevalida.",IDENTITY_REVOKED:"Tiu ĉi identeco <b>estis nuligita</b>. Ĝi ne plu povas fariĝi membro.",IDENTITY_REVOKED_WITH_TIME:"Tiu ĉi identeco <b>estis nuligita {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). Ĝi ne plu povas fariĝi membro.",IDENTITY_PENDING_REVOCATION:"La <b>nuligo de tiu ĉi identeco</b> estis petita kaj atendas traktadon. La atestado estas do malaktivigita.",IDENTITY_INVALID_BLOCK_HASH:"Tiu ĉi aliĝo-peto ne plu validas (ĉar ĝi rilatas al bloko, kiun nuligis la nodoj de la reto): tiu persono devas refari sian aliĝo-peton <b>antaŭ ol</b> esti atestita.",IDENTITY_EXPIRED:"La publikigo de tiu ĉi identeco finiĝis: tiu persono devas fari novan aliĝo-peton <b>antaŭ ol</b> esti atestita.",IDENTITY_SANDBOX_FULL:"La nodo Duniter uzata de Cesium ne plu povas ricevi novajn identecojn, ĉar ĝia atendo-vico estas plena.<br/><br/>Bonvolu reprovi poste aŭ ŝanĝi la nodon (per la menuo <b>Parametroj</b>).",IDENTITY_NOT_FOUND:"Identeco ne trovita.",IDENTITY_TX_FAILED:"Malsukceso por ŝarĝi la spezojn.",WOT_PENDING_INVALID_BLOCK_HASH:"Aliĝo ne valida.",WALLET_INVALID_BLOCK_HASH:"Via aliĝo-peto ne plu validas (ĉar ĝi rilatas al bloko, kiun nuligis la nodoj de la reto).<br/>Vi devas <a ng-click=\"doQuickFix('fixMembership')\">sendi novan peton</a> por solvi tiun ĉi problemon.",WALLET_IDENTITY_EXPIRED:"La publikigo de <b>via identeco finiĝis</b>.<br/>Vi devas <a ng-click=\"doQuickFix('fixIdentity')\">publikigi denove vian identecon</a> por solvi tiun ĉi problemon.",WALLET_REVOKED:"Via identeco estis <b>nuligita</b>: nek via pseŭdonimo nek via publika ŝlosilo povos esti uzata en la estonteco por membro-konto.",WALLET_HAS_NO_SELF:"Via identeco devas unue esti publikigita, kaj ne esti finiĝinta.",AUTH_REQUIRED:"Aŭtentigado necesa.",AUTH_INVALID_PUBKEY:'La atendata ŝlosilo estas <i class="ion-key"></i> {{pubkey|formatPubkey}}...',AUTH_INVALID_SCRYPT:"Identigilo aŭ pasvorto nevalida.",AUTH_INVALID_FILE:"Dosiero pri ŝlosilaro nevalida.",AUTH_FILE_ERROR:"Malsukceso por malfermi la dosieron pri ŝlosilaro.",IDENTITY_ALREADY_CERTIFY:"Vi <b>jam atestis</b> tiun identecon.<br/><br/>Tiu atestado daŭre validas (finiĝo {{expiresIn|formatDurationTo}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Vi <b>jam atestis</b> tiun identecon.<br/><br/>Tiu atestado atendas traktadon (limdato de traktado {{expiresIn|formatDurationTo}}).",UNABLE_TO_CERTIFY_TITLE:"Atestado neebla",LOAD_NEWCOMERS_FAILED:"Malsukceso por ŝarĝi la novajn membrojn.",LOAD_PENDING_FAILED:"Malsukceso por ŝarĝi la atendantajn aliĝojn.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vi devas <b>esti membro</b> por rajti efektivigi tiun ĉi agon.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vi devas <b>esti membro (aŭ eksa membro)</b> por rajti efektivigi tiun ĉi agon.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Via identeco devas <b>jam esti publikigita</b>, por ke vi rajtu efektivigi tiun ĉi agon.",GET_BLOCK_FAILED:"Malsukceso por ricevi la blokon.",INVALID_BLOCK_HASH:"Bloko ne trovita (haketo malsama)",DOWNLOAD_REVOCATION_FAILED:"Malsukceso por elŝuti la dosieron pri nuligo.",REVOCATION_FAILED:"Malsukceso pri nuligo.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Sekreta identigilo aŭ pasvorto malĝusta.",RECOVER_ID_FAILED:"Malsukceso por ricevi la identigilojn",LOAD_FILE_FAILED:"Malsukceso por ŝarĝi la dosieron",NOT_VALID_REVOCATION_FILE:"Dosiero pri nuligo ne valida (malĝusta strukturo de dosiero)",NOT_VALID_SAVE_ID_FILE:"Dosiero pri konservado ne valida (malĝusta strukturo de dosiero)",NOT_VALID_KEY_FILE:"Dosiero pri ŝlosilaro ne valida (strukturo ne rekonata)",EXISTING_ACCOUNT:"Viaj identigiloj rilatas al jam ekzistanta konto, kies <a ng-click=\"showHelpModal('pubkey')\">publika ŝlosilo</a> estas:",EXISTING_ACCOUNT_REQUEST:"Bonvolu modifi viajn identigilojn, por ke ili rilatu al ne uzata konto.",GET_LICENSE_FILE_FAILED:"La ricevo de la dosiero pri licenco ne eblis.",CHECK_NETWORK_CONNECTION:"Neniu nodo ŝajnas atingebla.<br/><br/>Bonvolu <b>kontroli vian retkonekton</b>.",ISSUE_524_TX_FAILED:"Malsukcesa elspezo.<br/><br/>Mesaĝo estis sendita al la programistoj por faciligi la solvadon de la problemo. <b>Dankon pro via helpo</b>.",ADD_SECONDARY_WALLET_FAILED:"Malsukceso por aldoni kroman monujon.",UPDATE_WALLET_LIST_FAILED:"Malsukceso por ĝisdatigi la kromajn monujojn.",LOAD_WALLET_LIST_FAILED:"Malsukceso por ŝarĝi la kromajn monujojn.",SAVE_WALLET_LIST_FAILED:"Malsukceso por konservi la kromajn monujojn.",COULD_NOT_ADD_MAIN_WALLET:"Tiu ĉi monujo <b>rilatas al la ĉefa konto</b>, kun kiu vi estas konektita.<br/>Ne eblas aldoni ĝin kiel kroman monujon.",COULD_NOT_ADD_EXISTING_WALLET:"Monujo jam ekzistanta en la listo.",UNKNOWN_WALLET_ID:"Kroma monujo nekonata.",RESTORE_WALLET_LIST_FAILED:"Malsukceso por restarigi la kromajn monujojn.",INVALID_FILE_FORMAT:"Strukturo de dosiero nevalida."},INFO:{POPUP_TITLE:"Informo",CERTIFICATION_DONE:"Atestaĵo sendita",NOT_ENOUGH_CREDIT:"Saldo nesufiĉa",TRANSFER_SENT:"Elspezo sendita",COPY_TO_CLIPBOARD_DONE:"Kopiita en la memoreto",MEMBERSHIP_OUT_SENT:"Eksiĝo sendita",NOT_NEED_MEMBERSHIP:"Vi jam estas membro.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Al tiu ĉi identeco baldaŭ mankos atestaĵoj (almenaŭ {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"Tiu ĉi identeco ne sendis aliĝo-peton. Tion ĝi devos fari, se ĝi deziras fariĝi membro.",HAS_ALTERNATIVE_IDENTITIES:"Ekzistas <b>pluraj identecoj</b> ligitaj kun tiu ĉi publika ŝlosilo. <b>Antaŭ ĉia atestado</b>, pensu <a ng-click=\"doQuickFix('showSelectIdentities')\">trarigardi la aliajn identecojn</a> por elekti la ĝustan, aŭ kontaktu la posedanton de la konto.",REVOCATION_SENT:"Nuligo sendita",REVOCATION_SENT_WAITING_PROCESS:"La <b>nuligo de tiu ĉi identeco</b> estis petita kaj atendas traktadon.",FEATURES_NOT_IMPLEMENTED:"Tiu ĉi funkciaro ankoraŭ estas programiĝanta.<br/>Kial ne <b>kontribui al Cesium</b>, por ekhavi ĝin pli rapide? ;)",EMPTY_TX_HISTORY:"Neniu spezo elportota"},CONFIRM:{POPUP_TITLE:"<b>Konfirmo</b>",POPUP_WARNING_TITLE:"<b>Averto</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Averto pri sekureco</b>',CERTIFY_RULES_TITLE_UID:"Atesti {{uid}}",CERTIFY_RULES:'<b class="assertive">NE atestu</b> konton, se vi pensas ke:<br/><br/><ul><li>1.) ĝi ne rilatas al persono <b>fizika kaj vivanta</b>.<li>2.) ĝia posedanto <b>havas alian konton</b> jam atestitan.<li>3.) ĝia posedanto malobservas (vole aŭ ne) la regulon 1 aŭ 2 (ekzemple atestante falsajn kontojn aŭ duoblajn).</ul><br/><b>Ĉu vi certas,</b> ke vi tamen volas atesti tiun ĉi identecon?',FULLSCREEN:"Afiŝi la programon plen-ekrane?",EXIT_APP:"Fermi la programon?",TRANSFER:"<b>Resumo de la elspezo</b> :<br/><br/><ul><li> - De: {{from}}</li><li> - Al: <b>{{to}}</b></li><li> - Sumo: <b>{{amount}} {{unit}}</b></li><li> - Komento: <i>{{comment}}</i></li></ul><br/><b>Ĉu vi certas, ke vi volas efektivigi tiun ĉi elspezon?</b>",TRANSFER_ALL:"<b>Resumo de la elspezo</b>:<br/><br/><ul><li> - De : {{from}}</li><li> - Al : <b>{{to}}</b></li><li> - Sumo: <b>{{amount}} {{unit}}</b></li><li> - Komento: <i>{{comment}}</i></li><br/><li> - Resto: <b>{{restAmount}} {{unit}}</b> al <b>{{restTo}}</b></li></ul><br/><b>Ĉu vi certas, ke vi volas efektivigi tiun ĉi elspezon?</b>",MEMBERSHIP_OUT:"Tiu ĉi ago estas <b>neinversigebla</b>.<br/></br/>Ĉu vi certas, ke vi volas <b>nuligi vian membro-konton</b>?",MEMBERSHIP_OUT_2:"Tiu ĉi ago estas <b>neinversigebla</b> !<br/><br/>Ĉu vi vere certas, ke vi volas <b>nuligi vian aliĝon</b> kiel membron?",LOGIN_UNUSED_WALLET_TITLE:"Tajperaro?",LOGIN_UNUSED_WALLET:"La konektita konto ŝajnas <b>neaktiva</b>.<br/><br/>Temas probable pri <b>tajperaro</b> en viaj konekto-identigiloj. Bonvolu rekomenci, kontrolante ke <b>la publika ŝlosilo estas tiu de via konto</b>.",FIX_IDENTITY:"La pseŭdonimo <b>{{uid}}</b> estos denove publikigita, anstataŭigante la malnovan publikigon, kiu finiĝis.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",FIX_MEMBERSHIP:"Via aliĝo-peto kiel membro tuj estos resendita.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",MEMBERSHIP:"Via aliĝo-peto kiel membro tuj estos sendita.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",RENEW_MEMBERSHIP:"Via aliĝo kiel membro tuj estos revalidigita.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",REVOKE_IDENTITY:"Vi estas <b>nuligonta definitive tiun ĉi identecon</b>.<br/><br/>La publika ŝlosilo kaj la ligita pseŭdonimo <b>neniam plu povos esti uzataj</b> (por membro-konto). <br/></br/><b>Ĉu vi certas</b>, ke vi volas definitive nuligi tiun ĉi konton?",REVOKE_IDENTITY_2:"Tiu ĉi ago estas <b>neinversigebla</b>!<br/><br/>Ĉu vi vere certas, ke vi volas <b>definitive nuligi</b> tiun ĉi konton?",NOT_NEED_RENEW_MEMBERSHIP:"Via aliĝo ne bezonas esti revalidigita (ĝi finiĝos nur post {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Ĉu vi certas</b>, ke vi volas revalidigi vian aliĝon?",SAVE_BEFORE_LEAVE:"Ĉu vi volas <b>konservi viajn modifojn</b> antaŭ ol eliri el la paĝo?",SAVE_BEFORE_LEAVE_TITLE:"Modifoj ne registritaj",LOGOUT:"Ĉu vi certas, ke vi volas malkonektiĝi?",USE_FALLBACK_NODE:"Nodo <b>{{old}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Ĉu vi volas provizore uzi la nodon <b>{{new}}</b> ?",ISSUE_524_SEND_LOG:"La spezo estis forĵetita, pro konata anomalio (petslipo #524) sed <b>ne ripetita</b>.<br/><br/>Por helpi la programistojn korekti tiun eraron, <b>ĉu vi akceptas la sendadon de viaj protokolaj dosieroj</b> per mesaĝo?<br/><small>(neniu konfidenca dateno estas sendita)</small>."},DOWNLOAD:{POPUP_TITLE:"<b>Dosiero pri nuligo</b>",POPUP_REVOKE_MESSAGE:"Por sekurigi vian konton, bonvolu elŝuti la <b>dokumenton pri konto-nuligo</b>. Ĝi ebligos al vi eventuale nuligi vian konton (kaze de konto-ŝtelo, ŝanĝo de identigilo, konto erare kreita, ktp.).<br/><br/><b>Bonvolu stoki ĝin en sekura loko.</b>"},HELP:{TITLE:"Ret-helpo",JOIN:{SECTION:"Enskribiĝo",SALT:'La sekreta identigilo estas tre grava. Ĝi utilas por miksi la pasvorton, antaŭ ol ĝi servos por kalkuli la <span class="text-italic">publikan ŝlosilon</span> de via konto (ties numeron) kaj la sekretan ŝlosilon por aliri ĝin.<br/><b>Zorgu pri ĝia bona memorigado</b>, ĉar neniu rimedo estas nuntempe planita por retrovi ĝin kaze de perdo.<br/>Krom tio, ĝi ne povas esti modifita sen devige krei novan konton.<br/><br/>Bona sekreta identigilo devas esti sufiĉe longa (kun almenaŭ 8 signoj) kaj kiel eble plej originala.',PASSWORD:"La pasvorto estas tre grava. Kun la sekreta identigilo, ĝi servas por kalkuli la numeron (la publikan ŝlosilon) de via konto, kaj la sekretan ŝlosilon por aliri ĝin.<br/><b>Zorgu pri ĝia bona memorigado</b>, ĉar neniu rimedo estas planita por retrovi ĝin kaze de perdo (krom se oni generas konserv-dosieron).<br/>Krom tio, ĝi ne povas esti modifita sen devige krei novan konton.<br/><br/>Bona pasvorto entenas (ideale) almenaŭ 8 signojn, inter kiuj estas almenaŭ unu majusklo kaj unu cifero.",
+PSEUDO:'La pseŭdonimo estas utila nur kaze de enskribiĝo kiel <span class="text-italic">membro</span>. Ĝi ĉiam estas ligita kun monujo (tra ĝia <span class="text-italic">publika ŝlosilo</span>).<br/>Ĝi estas publikigita en la reto, tiel ke la aliaj uzantoj povu identigi ĝin, atesti ĝin aŭ sendi monon al ĝia konto.<br/>Pseŭdonimo devas esti unika ene de la membroj (<u>nunaj</u> kaj eksaj).'},LOGIN:{SECTION:"Konekto",PUBKEY:"Publika ŝlosilo de la ŝlosilaro",PUBKEY_DEF:'La publika ŝlosilo de la ŝlosilaro estas kreita per la tajpitaj identigiloj (iuj ajn), sen ke ili necese rilatu al konto jam uzata.<br/><b>Atente kontrolu, ke la publika ŝlosilo estas tiu de via konto</b>. Alikaze, vi estos konektita al konto probable neniam uzita, la risko de kolizio kun ekzistanta konto estante tre eta.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">Scii pli pri kriptografio</a> per publika ŝlosilo.',METHOD:"Konekto-metodoj",METHOD_DEF:'Pluraj eblecoj disponeblas por konekti vin al monujo:<br/> - La konekto <b>per salumado (simpla aŭ sperta)</b> miksas vian pasvorton dank\'al la sekreta identigilo, por limigi la provojn de <a href="https://fr.wikipedia.org/wiki/Attaque_par_force_brute" target="_system">kodrompado per kruda forto</a> (ekzemple per konataj vortoj.<br/> - La konekto <b>per publika ŝlosilo</b> evitigas tajpi viajn identigilojn, kiuj estos petataj de vi, nur kiam venos la momento dum operacio ĉe la konto.<br/> - La konekto <b>per dosiero pri ŝlosilaro</b> legas la ŝlosilojn (publikan kaj privatan) de la konto, per dosiero, sen la bezono tajpi identigilojn. Pluraj strukturoj de dosiero eblas.'},GLOSSARY:{SECTION:"Glosaro",PUBKEY_DEF:'Publika ŝlosilo identigas monujon, kiu povas identigi membron aŭ rilati al anonima monujo. Ĉe Cesium la publika ŝlosilo estas kalkulita (implicite) dank\'al la sekreta identigilo kaj la pasvorto.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">Scii pli pri kriptografio</a> per publika ŝlosilo.',MEMBER:"Membro",MEMBER_DEF:'Membro estas homa persono fizika kaj vivanta, kiu deziras libere partopreni en la mona komunumo. Li/ŝi kunproduktas universalan dividendon, laŭ periodo kaj sumo tiel difinitaj kiel en la <span class="text-italic">reguloj de la mono</span>',CURRENCY_RULES:"Reguloj de la mono",CURRENCY_RULES_DEF:'La reguloj de la mono estas difinitaj definitive. Ili fiksas la funkciadon de la mono: la kalkulon de la universala dividendo, la nombron de necesaj atestaĵoj por esti membro, la maksimuman nombron da atestaĵoj, kiujn povas doni unu membro, ktp. <a href="#/app/currency">Vidi la nuntempajn regulojn</a>.<br/>La nemodifo de la reguloj tra la tempo eblas per uzado de <span class="text-italic">Blokĉeno</span>, kiu entenas kaj plenumas tiujn regulojn, kaj konstante kontrolas ties ĝustan aplikadon.',BLOCKCHAIN:'Ĉeno de blokoj (<span class="text-italic">Blokchain/Blokĉeno</span>)',BLOCKCHAIN_DEF:'La Blokĉeno estas malcentrigita sistemo, kiu, kaze de Duniter, servas por enteni kaj plenumi la <span class="text-italic">regulojn de la mono</span>.<br/><a href="https://duniter.org/fr/comprendre/" target="_system">Scii pli pri Duniter</a> kaj la funkciado de ties blokĉeno.',UNIVERSAL_DIVIDEND_DEF:'La Universala Dividendo (UD) estas la kvanto de mono kunkreita de ĉiu membro, laŭ la periodo kaj kalkulo difinitaj en la <span class="text-italic">reguloj de la mono</span>.<br/>Por ĉiu perioda dato, la membroj ricevas en sian konton la saman kvanton da nova mono.<br/><br/>La UD spertas regulan kreskon, por resti justa inter la membroj (nunaj kaj venontaj), kalkulitan depende de la meza vivespero, kiel estas demonstrite en la Teorio Relativa pri la Mono (TRM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Scii pli pri la TRM</a> kaj la liberaj monoj.',WOT:"Reto de Fido (RdF)",WOT_DEF:"La Reto de Fido konsistas el la tuto de la membroj de la mono, kaj el la atesto-ligoj, kiuj kunligas ilin.",DISTANCE_RULE:"Regulo pri distanco",DISTANCE_RULE_DEF:"La regulo pri distanco de la Reto de Fido difinas <b>maksimuman distancon nepran</b> inter petanto kaj minimuma nombro da referencaj membroj (aŭ centraj membroj). Tiu distanco estas kalkulita uzante la ligojn inter atestaĵoj."},TIP:{MENU_BTN_CURRENCY:"La menuo <b>{{'MENU.CURRENCY'|translate}}</b> ebligas konsulti la <b>regulojn de la mono</b> kaj ties staton.",CURRENCY_WOT:"La <b>nombro de membroj</b> montras la gravecon de la komunumo kaj ebligas <b>sekvi ties evoluon</b>.",CURRENCY_MASS:"Sekvu ĉi tie la <b>ĉioman kvanton da mono</b> ekzistanta kaj ties <b>mezan distribuon</b> por membro.<br/><br/>Tio ĉi ebligas taksi la <b>gravecon de iu sumo</b>, kompare kun tio, kion <b>posedas la aliuloj</b> en sia konto (mezume).",CURRENCY_UNIT_RELATIVE:"La unuo uzata (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifas, ke la sumoj en {{currency|capitalize}} estis dividitaj per la <b> Universala Dividendo</b> (UD).<br/><br/><small>Tiu relativa unuo estas <b>trafa</b>, ĉar stabila malgraŭ la kvanto de mono, kiu kreskas seninterrompe.</small>",CURRENCY_CHANGE_UNIT:"La kromaĵo <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> ebligas <b>ŝanĝi la unuon</b>, por vidigi la sumojn <b>rekte en {{currency|capitalize}}</b> (prefere ol en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"La kromaĵo <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> ebligas <b>ŝanĝi la unuon</b>, por vidigi la sumojn en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, tio estas rilate al la Universala Dividendo (la sumo kunproduktita de ĉiu membro).",CURRENCY_RULES:"La <b>reguloj</b> de la mono fiksas ties funkciadon <b>ĝustan kaj antaŭvideblan</b>.<br/><br/>Vera DNA de la mono, ili igas sian monan kodon <b>legebla kaj travidebla</b>.",MENU_BTN_NETWORK:"La menuo <b>{{'MENU.NETWORK'|translate}}</b> ebligas konsulti la staton de la reto.",NETWORK_BLOCKCHAIN:"Ĉiuj operacioj pri la mono estas registritaj en granda konto-libro <b>publika kaj nefalsigebla</b>, ankaŭ nomata <b>blokĉeno</b> (<em>BlockChain</em> en la angla).",NETWORK_PEERS:"La <b>nodoj</b> videblaj ĉi tie rilatas al la <b>komputiloj, kiuj ĝisdatigas kaj kontrolas</b> la blokĉenon.<br/><br/>Ju pli estas nodoj, des pli la mono havas administradon <b>malcentrigitan</b> kaj fidindan.",NETWORK_PEERS_BLOCK_NUMBER:"Tiu ĉi <b>numero</b> (verda) indikas la <b>lastan blokon validigitan</b> por tiu ĉi nodo (lasta paĝo skribita en la granda konto-libro).<br/><br/>La verda koloro indikas, ke tiu ĉi bloko estas validigita ankaŭ de <b>la plej multaj el la aliaj nodoj</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Ĉiu membro</b>, ekipita per komputilo kun interreto, <b>povas partopreni aldonante nodon</b>. Sufiĉas <b>instali la programon Duniter</b> (libera kaj senpaga). <a href="{{installDocUrl}}" target="_system">Vidi la gvidilon pri instalado &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"La menuo <b>{{'ACCOUNT.TITLE'|translate}}</b> ebligas aliri la administradon de via konto.",MENU_BTN_ACCOUNT_MEMBER:"Konsultu ĉi tie la staton de via konto kaj la informojn pri viaj atestaĵoj.",WALLET_CERTIFICATIONS:"Alklaku ĉi tien por konsulti la detalon pri viaj atestaĵoj (ricevitaj kaj senditaj).",WALLET_RECEIVED_CERTIFICATIONS:"Alklaku ĉi tien por konsulti la detalon pri viaj <b>ricevitaj atestaĵoj</b>.",WALLET_GIVEN_CERTIFICATIONS:"Alklaku ĉi tien por konsulti la detalon pri viaj <b>senditaj atestaĵoj</b>.",WALLET_BALANCE:"La <b>saldo</b> de via konto afiŝiĝas tie ĉi.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>La uzata unuo (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifas, ke la sumo en {{currency|capitalize}} estis dividita per la <b>Universala Dividendo</b> (UD) kunkreita de ĉiu membro.<br/><br/>Nuntempe 1 UD valoras {{currentUD|formatInteger}} {{currency|capitalize}}j.",WALLET_BALANCE_CHANGE_UNIT:"Vi povos <b>ŝanĝi la unuon</b> afiŝitan por la sumoj en la <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Ekzemple por vidigi la sumojn <b>rekte en {{currency|capitalize}}</b>, prefere ol en relativa unuo.",WALLET_PUBKEY:"Jen la publika ŝlosilo de via konto. Vi povas sciigi ĝin al aliulo, por ke li identigu pli simple vian konton.",WALLET_SEND:"Efektivigi pagon per kelkaj klakoj.",WALLET_SEND_NO_MONEY:"Efektivigi pagon per kelkaj klakoj.<br/>(Via saldo ankoraŭ ne permesas tion)",WALLET_OPTIONS:"Tiu ĉi butono ebligas aliri la <b>agojn pri aliĝo</b> kaj sekureco.<br/><br/>Ne forgesu okulumi al ĝi!",WALLET_RECEIVED_CERTS:"Afiŝiĝos ĉi tie la listo de la personoj, kiuj atestis vin.",WALLET_CERTIFY:"La butono <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> ebligas elekti identecon kaj atesti ĝin.<br/><br/>Nur uzantoj <b>jam membroj</b> povas atesti aliajn.",WALLET_CERT_STOCK:"Via stoko da atestaĵoj (senditaj) estas limigita je <b>{{sigStock}} atestaĵoj</b>.<br/><br/>Tiu stoko plu evoluas laŭ la tempo, samtempe kiam la atestaĵoj malvalidiĝas.",MENU_BTN_TX_MEMBER:"La menuo <b>{{'MENU.TRANSACTIONS'|translate}}</b> ebligas konsulti vian konton, la liston de viaj spezoj, kaj sendi pagon.",MENU_BTN_TX:"Konsultu ĉi tie <b>la liston de viaj spezoj</b> kaj efektivigu novajn operaciojn.",MENU_BTN_WOT:"La menuo <b>{{'MENU.WOT'|translate}}</b> ebligas traserĉi inter la <b>uzantoj</b> de la mono (membroj aŭ ne).",WOT_SEARCH_TEXT_XS:"Por traserĉi en la kontaro, tajpu la <b>unuajn literojn de pseŭdonimo</b> (aŭ de publika ŝlosilo).<br/><br/>La serĉado ekos aŭtomate.",WOT_SEARCH_TEXT:"Por traserĉi en la kontaro, tajpu la <b>unuajn literojn de de pseŭdonimo</b> (aŭ de publika ŝlosilo). <br/><br/>Premu poste sur la klavon <b>Enigi</b> por ekigi la serĉadon.",WOT_SEARCH_RESULT:"Vidigu la detalan slipon simple <b>alklakante</b> linion.",WOT_VIEW_CERTIFICATIONS:"La linio <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> montras kiom da membroj validigis tiun ĉi identecon.<br/><br/>Tiuj atestaĵoj pruvas, ke la konto apartenas al <b>persono homa kaj vivanta</b>, havanta <b>neniun alian membro-konton</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Necesas almenaŭ <b>{{sigQty}} atestaĵoj</b> por fariĝi membro kaj ricevi la <b>Universalan Dividendon</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Alklaki ĉi tien ebligas malfermi <b>la liston de ĉiuj atestaĵoj</b> de la identeco (ricevitaj kaj senditaj).",WOT_VIEW_CERTIFY:"La butono <b>{{'WOT.BTN_CERTIFY'|translate}}</b> ebligas aldoni vian atestaĵon al tiu identeco.",CERTIFY_RULES:"<b>Atenton:</b> Atestu nur <b>personojn fizikajn vivantajn</b>, posedantajn neniun alian membro-konton.<br/><br/>La sekureco de la mono dependas de ĉies atentego!",MENU_BTN_SETTINGS:"La <b>{{'MENU.SETTINGS'|translate}}</b> ebligos al vi agordi la programon.",HEADER_BAR_BTN_PROFILE:"Alklaku ĉi tien por aliri vian <b>uzanto-profilon.</b>",SETTINGS_CHANGE_UNIT:"Vi povos <b>ŝanĝi la afiŝ-unuon</b> de la sumoj alklakante ĉi-supren.<br/><br/>- Malaktivigu la kromaĵon por afiŝi sumojn en {{currency|capitalize}}.<br/>- Aktivigu la kromaĵon por relativa afiŝado en {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (ĉiuj sumoj estos <b>dividitaj</b> per la Universala Dividendo aktuala).",END_LOGIN:"Tiu ĉi gvidata vizito <b>finiĝis</b>!<br/><br/>Bonan daŭrigon al vi, en la nova mondo de la<b>libera ekonomio</b>!",END_NOT_LOGIN:"Tiu ĉi gvidata vizito <b>finiĝis</b>!<br/><br/>Se vi deziras partopreni en la mono {{currency|capitalize}}, sufiĉos al vi alklaki <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> ĉi-sube."}},API:{COMMON:{LINK_DOC:"Dokumentaro API",LINK_DOC_HELP:"Dokumentaro por la programistoj",LINK_STANDARD_APP:"Klasika versio",LINK_STANDARD_APP_HELP:"Malfermi la klasikan version de {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Nodo <b>{{server}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Kontrolu vian interretan konekton, aŭ kontaktu la administranton de la retejo</a>."},HOME:{TITLE:"Dokumentaro API {{'COMMON.APP_NAME'|translate}}",MESSAGE:'Bonvenon en la <b>dokumentaro de la API</b> {{\'COMMON.APP_NAME\'|translate}}.<br/>Konektu viajn retejojn al <a href="http://duniter.org" target="_system">Duniter</a> tre simple!',MESSAGE_SHORT:'Konektu viajn retejojn al <a href="http://duniter.org" target="_system">Duniter</a> tre simple!',DOC_HEADER:"Servoj disponeblaj:"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Reta pago",TITLE_SHORT:"Reta pago",SUMMARY:"Resumo de la pago:",AMOUNT:"Sumo:",AMOUNTS_HELP:"Bonvolu elekti la sumon:",NAME:"Nomo:",PUBKEY:"Publika ŝlosilo de la ricevonto:",COMMENT:"Referenco de la spezo:",NODE:"Adreso de la nodo:",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Demonstra moduso</b>: Neniu pago reale estos sendita dum tiu simulado.<br/>Bonvolu uzi la identigilojn: <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Kontrolu vian tajpaĵon.<br/>En demonstra moduso, la identigiloj estas: {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Pago sendita.<br/>Redirektiĝo al <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Pago sendita.<br/>Redirektiĝo al la retejo de la vendanto...",CANCEL_REDIRECTING_WITH_NAME:"Pago nuligita.<br/>Redirektiĝo al <b>{{name}}</b>...",CANCEL_REDIRECTING:"Pago nuligita.<br/>Redirektiĝo al la retejo de la vendanto..."},ERROR:{TRANSFER_FAILED:"Pago malsukcesa"}},DOC:{DESCRIPTION_DIVIDER:"Priskribo",URL_DIVIDER:"Adreso alvokita",PARAMETERS_DIVIDER:"Parametroj",AVAILABLE_PARAMETERS:"Jen la listo de la eblaj parametroj:",DEMO_DIVIDER:"Testi",DEMO_HELP:"Por testi tiun servon, alklaku la butonon ĉi-apude. La rezulto afiŝiĝos sube.",DEMO_RESULT:"Rezulto sendita de la alvoko:",DEMO_RESULT_PEER:"Adreso de la uzata nodo:",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Sukceso!',DEMO_CANCELLED:'<i class="icon ion-close"></i> Nuligita de la uzanto',INTEGRATE_DIVIDER:"Integri",INTEGRATE_CODE:"Kodo:",INTEGRATE_RESULT:"Antaŭvidigo de la rezulto:",INTEGRATE_PARAMETERS:"Parametroj",TRANSFER:{TITLE:"Pagoj",DESCRIPTION:"De retejo (ekz.: ret-vendado) vi povas komisii la pagon en libera mono al Cesium API. Por tio, sufiĉas al vi ekigi la malfermon de paĝo ĉe la sekvanta adreso:",PARAM_PUBKEY:"Publika ŝlosilo de la ricevonto",PARAM_PUBKEY_HELP:"Publika ŝlosilo de la ricevonto (devige)",PARAM_AMOUNT:"Sumo",PARAM_AMOUNT_HELP:"Sumo de la spezo (devige). Pluraj valoroj permesataj, uzante apartigilon (punkto-komo, vertikala streko aŭ spaco).",PARAM_COMMENT:"Referenco (aŭ komento)",PARAM_COMMENT_HELP:"Referenco aŭ komento. Tio ekzemple ebligos al vi identigi la pagon en la blokĉeno.",PARAM_NAME:"Nomo (de la ricevonto aŭ de la retejo)",PARAM_NAME_HELP:'La nomo de la ricevonto, aŭ de la retejo alvokanta. Tio povas estis legebla nomo ("Mia retejo"), aŭ alie pseŭdo-retadreso ("MiaRetejo.com").',PARAM_REDIRECT_URL:"Retadreso por redirektiĝo",PARAM_REDIRECT_URL_HELP:'Retadreso (URL) por redirektiĝo, alvokita kiam la pago estis sendita. Ĝi povas enteni la sekvantajn signojn, kiuj estos anstataŭigitaj per la valoroj de la spezo: "{tx}", "{hash}", "{comment}", "{amount}", "{pubkey}" kaj "{node}".',PARAM_CANCEL_URL:"Retadreso por nuligo",PARAM_CANCEL_URL_HELP:'Retadreso (URL) kaze de nuligo de la pago, fare de la uzanto. Ĝi povas enteni la sekvantajn signojn, kiuj estos anstataŭigitaj lastmomente: "{comment}", "{amount}" kaj {pubkey}.',PARAM_PREFERRED_NODE:"Adreso de la preferata nodo",PARAM_PREFERRED_NODE_HELP:'Adreso (URL) de la nodo Duniter preferinde uzota ("g1.domaine.com:443" aŭ "https://g1.domaine.com").',EXAMPLES_HELP:"Jen ekzemploj pri integrado:",EXAMPLE_BUTTON:"Butono HTML",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pagi en {{currency|currencySymbol}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Personigita stilo",EXAMPLE_BUTTON_TEXT_HELP:"Buton-teksto",EXAMPLE_BUTTON_BG_COLOR:"Fon-koloro",EXAMPLE_BUTTON_BG_COLOR_HELP:"Ekzemplo: #fbc14c, nigra, helgriza, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Teksto-koloro",EXAMPLE_BUTTON_FONT_COLOR_HELP:"Ekzemplo: nigra, oranĝa, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Ikono",EXAMPLE_BUTTON_TEXT_WIDTH:"Larĝeco",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"Ekzemplo: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"Neniu",EXAMPLE_BUTTON_ICON_DUNITER:"Insigno Duniter",EXAMPLE_BUTTON_ICON_CESIUM:"Insigno Cesium",EXAMPLE_BUTTON_ICON_G1_COLOR:"Insigno Ğ1",EXAMPLE_BUTTON_ICON_G1_BLACK:"Insigno Ğ1 (nigra)"}}}}),e.translations("es-ES",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"fecha: {{build}}",PUBKEY:"Llave pública",MEMBER:"Miembro",BLOCK:"Bloque",BTN_OK:"OK",BTN_YES:"Sí",BTN_NO:"No",BTN_SEND:"Enviar",BTN_SEND_MONEY:"Hacer una transferencia",BTN_SEND_MONEY_SHORT:"Transferencia",BTN_SAVE:"Guardar",BTN_YES_SAVE:"Sí, guardar",BTN_YES_CONTINUE:"Sí, continuar",BTN_SHOW:"Ver",BTN_SHOW_PUBKEY:"Ver la llave",BTN_RELATIVE_UNIT:"¿Mostrar las importes en DU?",BTN_BACK:"Anterior",BTN_NEXT:"Siguiente",BTN_IMPORT:"Importar",BTN_CANCEL:"Cancelar",BTN_CLOSE:"Cerrar",BTN_LATER:"Más tarde",BTN_LOGIN:"Connectarse",BTN_LOGOUT:"Desconexión",BTN_ADD_ACCOUNT:"Nueva cuenta",BTN_SHARE:"Compartir",BTN_EDIT:"Modificar",BTN_DELETE:"Suprimir",BTN_ADD:"Añadir",BTN_SEARCH:"Buscar",BTN_REFRESH:"Actualizar",BTN_RETRY:"Empezar de nuevo",BTN_START:"Empezar",BTN_CONTINUE:"Continuar",BTN_CREATE:"Crear",BTN_UNDERSTOOD:"Entendido",BTN_OPTIONS:"Opciones",BTN_HELP_TOUR:"Visita guiada",BTN_HELP_TOUR_SCREEN:"Descubrir esta pantalla",BTN_DOWNLOAD:"Descargar",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Descargar el estado de cuenta",BTN_MODIFY:"Modificar",CHOOSE_FILE:"Deposite archivo<br/>o clique para seleccionarlo",DAYS:"Días",NO_ACCOUNT_QUESTION:"¿Todavía no es miembro? ¡Crear una cuenta!",SEARCH_NO_RESULT:"Ningún resultado encontrado",LOADING:"Espere por favor...",LOADING_WAIT:"Espere por favor...<br/><small>(Esperando disponibilidad de nodo)</small>",SEARCHING:"Búsqueda en proceso...",FROM:"De",TO:"A",COPY:"Copiar",LANGUAGE:"Idioma",UNIVERSAL_DIVIDEND:"Dividendo universal",UD:"DU",DATE_PATTERN:"DD/MM/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(vacío)",UID:"Seudónimo",ENABLE:"Activado",DISABLE:"Desactivado",RESULTS_LIST:"Resultados:",RESULTS_COUNT:"{{count}} resultados",EXECUTION_TIME:"ejecutado en {{duration|formatDurationMs}}",SHOW_VALUES:"¿Publicar los valores no codificados?",POPOVER_ACTIONS_TITLE:"Opciones",POPOVER_FILTER_TITLE:"Filtros",SHOW_MORE:"Mostrar más",SHOW_MORE_COUNT:"(límite actual {{limit}})",POPOVER_SHARE:{TITLE:"Compartir",SHARE_ON_TWITTER:"Compartir en Twitter",SHARE_ON_FACEBOOK:"Compartir en Facebook",SHARE_ON_DIASPORA:"Compartir en Diaspora*",SHARE_ON_GOOGLEPLUS:"Compartir en Google+"},FILE:{DATE:"Fecha:",TYPE:"Tipo:",SIZE:"Tamaño:",VALIDATING:"Validación en progreso..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Elegir la fuente:",BTN_PICTURE_GALLERY:"Galería",BTN_PICTURE_CAMERA:"<b>Cámara</b>"},MENU:{HOME:"Recepción",WOT:"Directorio",CURRENCY:"Moneda",ACCOUNT:"Mi cuenta",WALLETS:"Mis monederos",TRANSFER:"Transferencia",SCAN:"Escáner",SETTINGS:"Configuraciones",NETWORK:"Red",TRANSACTIONS:"Mis operaciones"},ABOUT:{TITLE:"A propósito ",LICENSE:"Aplicación <b>libre</b> (licencia GNU AGPLv3).",LATEST_RELEASE:"Hay una <b>versión más nueva</b> de {{'COMMON.APP_NAME' | translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Por favor actualice {{'COMMON.APP_NAME' | translate}} (última versión: <b>v{{version}}</b>)",CODE:"Código fuente:",DEVELOPERS:"Desarrollado por:",FORUM:"Foro:",PLEASE_REPORT_ISSUE:"No dude en informarnos de las anomalías encontradas",REPORT_ISSUE:"Reportar un problema"},HOME:{TITLE:"Cesium",WELCOME:"Bienvenido(a) a la aplicación Cesium !",MESSAGE:"Seguir las cuentas de {{currency|abbreviate}} fácilmente",BTN_CURRENCY:"Explorar la moneda",BTN_ABOUT:"Acerca de:",BTN_HELP:"Ayuda en línea",REPORT_ISSUE:"anomalía",NOT_YOUR_ACCOUNT_QUESTION:'¿Usted no es dueño de la cuenta <<b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Desconectar esta cuenta",CONNECTION_ERROR:'Nodo <b>{{servidor}}</b> inalcanzable o dirección inválida.<br/><br/>Compruebe su conexión a Internet, o nodo de conmutación <a class="positive" ng-click="doQuickFix(\'settings\')">en la configuración</a>.'},SETTINGS:{TITLE:"Configuración",DISPLAY_DIVIDER:"Visualización",STORAGE_DIVIDER:"Almacenamiento",NETWORK_SETTINGS:"Red",PEER:"Dirección del nodo Duniter",PEER_CHANGED_TEMPORARY:"Dirección utilizada temporalmente",USE_LOCAL_STORAGE:"Activar el almacenamiento local",USE_LOCAL_STORAGE_HELP:"Permitir el ahorro de almacenamiento local",WALLETS_SETTINGS:"Mis monederos",USE_WALLETS_ENCRYPTION:"¿Asegurar la lista?",ENABLE_HELPTIP:"Activar las ayudas contextuales",ENABLE_UI_EFFECTS:"Activar los efectos visuales",HISTORY_SETTINGS:"Operaciones de cuentas",DISPLAY_UD_HISTORY:"¿Publicar los dividendos producidos?",TX_HISTORY_AUTO_REFRESH:"Activar actualización automática?",TX_HISTORY_AUTO_REFRESH_HELP:"Actualice el saldo y las operaciones automáticamente, en cada nuevo bloque.",AUTHENTICATION_SETTINGS:"Autenticación",KEEP_AUTH:"Caducidad de la autenticación",KEEP_AUTH_SHORT:"Caducidad",KEEP_AUTH_HELP:"Definir cuándo limpiar la memoria de autenticación.",KEEP_AUTH_OPTION:{NEVER:"Después de cada operación",SECONDS:"Después de {{value}} segundos de inactividad",MINUTE:"Después de {{value}}min de inactividad",MINUTES:"Después de {{value}}mins de inactividad",HOUR:"Después de {{value}}h de inactividad",ALWAYS:"Al finalizar la sesión"},KEYRING_FILE:"Archivo de llavero",REMEMBER_ME:"Recordarme",REMEMBER_ME_HELP:"Permite mantenerse siempre conectado (no recomendado), conservando localmente la llave pública.",PLUGINS_SETTINGS:"Extensiones",BTN_RESET:"Restaurar los valores por defecto",EXPERT_MODE:"Activar el modo experto",EXPERT_MODE_HELP:"Permite una visualización más detallada",POPUP_PEER:{TITLE:"Nodo Duniter",HOST:"Dirección",HOST_HELP:"Dirección: servidor:puerto",USE_SSL:"¿Segura?",USE_SSL_HELP:"(Cifrado SSL)",BTN_SHOW_LIST:"Lista de nodos"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Bloque #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Bloque corriente",TITLE:"Bloque #{{number|formatInteger}}",COMPUTED_BY:"Calculado por el nodo de",SHOW_RAW:"Ver el fichero en bruto",TECHNICAL_DIVIDER:"Informaciones técnicas",VERSION:"Versión del formato",HASH:"Hash calculado",UNIVERSAL_DIVIDEND_HELP:"Moneda co-producida por cada uno de los {{membersCount}} miembros",EMPTY:"Ningún dato en este bloque",POW_MIN:"Dificultad mínima",POW_MIN_HELP:"Dificultad impuesta por el cálculo del hash",DATA_DIVIDER:"Datos",IDENTITIES_COUNT:"Nuevas identidades",JOINERS_COUNT:"Nuevos miembros",ACTIVES_COUNT:"Renovaciones",ACTIVES_COUNT_HELP:"Miembros que han renovado sus adhesiones",LEAVERS_COUNT:"Miembros salientes",LEAVERS_COUNT_HELP:"Miembros salientes que ya no quieren estar certificados",EXCLUDED_COUNT:"Miembros excluidos",EXCLUDED_COUNT_HELP:"Antiguos miembros excluidos por no renovación o falta de certificaciones",REVOKED_COUNT:"Identidades revocadas",REVOKED_COUNT_HELP:"Estas cuentas no podrán ser miembros",TX_COUNT:"Transacciones",CERT_COUNT:"Certificaciones",TX_TO_HIMSELF:"Operación de cambio",TX_OUTPUT_UNLOCK_CONDITIONS:"Condiciones de desbloqueo",TX_OUTPUT_OPERATOR:{AND:"y",OR:"o"},TX_OUTPUT_FUNCTION:{SIG:"<b>Firma</b> de ",XHX:"<b>Contraseña</b>, cuyo SHA256 =",CSV:"Bloqueado durante",CLTV:"Bloqueado hasta"}},LOOKUP:{TITLE:"Bloques",NO_BLOCK:"Ningún bloque",LAST_BLOCKS:"últimos bloques:",BTN_COMPACT:"Compactar"}},CURRENCY:{VIEW:{TITLE:"Moneda",TAB_CURRENCY:"Moneda",TAB_WOT:"Red de confianza",TAB_NETWORK:"Red",TAB_BLOCKS:"Bloques",CURRENCY_SHORT_DESCRIPTION:"{{currency|abbreviate}} es una <b>moneda libre</b>, originada el {{firstBlockTime|formatFromNow}}. Ella cuenta actualmente <b>{{N}} miembros</b>, que producen y recibir un <a ng-click=\"showHelpModal('ud')\">Dividendo universal</a> (DU), cada {{dt|formatPeriod}}.",NETWORK_RULES_DIVIDER:"Reglas de la red",CURRENCY_NAME:"Nombre de la moneda",MEMBERS:"Cantidad de miembros",MEMBERS_VARIATION:"variaciones del último DU",MONEY_DIVIDER:"Moneda",MASS:"Masa monetaria",SHARE:"Masa por miembro",UD:"Dividendo universal",C_ACTUAL:"Crecimiento actual",MEDIAN_TIME:"Hora de la blockchain",POW_MIN:"Nivel mínimo de dificultad de cálculo",MONEY_RULES_DIVIDER:"Reglas de la moneda",C_RULE:"Crecimiento teórico objetivo",UD_RULE:"Cálculo del dividendo universal",DT_REEVAL:"Periodo de revalorización del DU",REEVAL_SYMBOL:"reval",DT_REEVAL_VALUE:"Todos los <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Fecha de la primera revalorización",SIG_QTY_RULE:"Número de certificaciones requeridas para ser miembro",SIG_STOCK:"Número máximo de certificaciones emitidas por miembros",SIG_PERIOD:"Plazo mínimo de espera entre 2 certificaciones sucesivas emitidas por la misma persona",SIG_WINDOW:"Plazo límite para tomar en cuenta una certificación",SIG_VALIDITY:"Duración de una certificación que se ha tenido en cuenta.",MS_WINDOW:"Duración límite para toma en cuenta de una adhesión",MS_VALIDITY:"Duración de una certificación",STEP_MAX:"Distancia máxima entre un nuevo entrante y los miembros referentes",WOT_RULES_DIVIDER:"Reglas de la red de confianza",SENTRIES:"Cantidad de certificaciones necesarias para ser miembro referente",SENTRIES_FORMULA:"Cantidad de certificaciones necesarias para ser miembro referente (fórmula)",XPERCENT:"Porcentaje mínimo de miembros referentes necesario para respetar la regla de distancia",AVG_GEN_TIME:"Tiempo medio entre dos bloques",CURRENT:"actual",MATH_CEILING:"TECHO",DISPLAY_ALL_RULES:"¿Ver todas las reglas?",BTN_SHOW_LICENSE:"Ver la licencia",WOT_DIVIDER:"Red de confianza"},LICENSE:{TITLE:"Licencia de la moneda",BTN_DOWNLOAD:"Descagar el fichero",NO_LICENSE_FILE:"Fichero de licencia no encontrado."}},NETWORK:{VIEW:{MEDIAN_TIME:"Hora de la blockchain",LOADING_PEERS:"Cargando los nodos...",NODE_ADDRESS:"Dirección:",SOFTWARE:"Software:",WARN_PRE_RELEASE:"prelanzamiento (última versión estable: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Versión <b>{{version}}</b> disponible",WS2PID:"ID:",PRIVATE_ACCESS:"Acceso privado",POW_PREFIX:"Prefijo de la prueba de trabajo:",ENDPOINTS:{BMAS:"Interfaz segura (SSL)",BMATOR:"Interfaz red TOR",WS2P:"Interfaz WS2P",ES_USER_API:"Nodo de datos Cesium+"}},INFO:{ONLY_SSL_PEERS:"La visualización de los nodos sin SSL está deteriorada porque Cesium funciona en modo HTTPS."}},PEER:{PEERS:"Nodos",SIGNED_ON_BLOCK:"Firmado sobre el bloque",MIRROR:"espejo",MIRRORS:"Espejo",MIRROR_PEERS:"Nodos espejo",PEER_LIST:"Lista de nodos",MEMBERS:"Miembro",MEMBER_PEERS:"Nodos miembro",ALL_PEERS:"Todos los nodos",DIFFICULTY:"Dificultad",API:"API",CURRENT_BLOCK:"Bloque #",POPOVER_FILTER_TITLE:"Filtro",OFFLINE:"Fuera de línea",OFFLINE_PEERS:"Nodos fuera de línea",BTN_SHOW_PEER:"Ver nodo",VIEW:{TITLE:"Nodo",OWNER:"Propiedad de",SHOW_RAW_PEERING:"Ver la mapa de red",SHOW_RAW_CURRENT_BLOCK:"Ver el último bloque (formato bruto)",LAST_BLOCKS:"Bloques recientes",KNOWN_PEERS:"Nodos conocidos:",GENERAL_DIVIDER:"Información general",ERROR:{LOADING_TOR_NODE_ERROR:"No se pudo obtener la información del nodo usando la red TOR.",LOADING_NODE_ERROR:"No se pudo obtener la información del nodo"}}},WOT:{SEARCH_HELP:"Buscar (seudónimo o llave pública)",SEARCH_INIT_PHASE_WARNING:"Durante la etapa de preinscripción, el tiempo de búsqueda de las inscripciones en espera <b>puede ser largo</b>. Gracias por su paciencia...",REGISTERED_SINCE:"Registrado en",REGISTERED_SINCE_BLOCK:"Registrado en el bloque #",NO_CERTIFICATION:"Ninguna certificación validada",NO_GIVEN_CERTIFICATION:"Ninguna certificación emitida",NOT_MEMBER_PARENTHESIS:"(no miembro)",IDENTITY_REVOKED_PARENTHESIS:"(identidad revocada)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(revocación en proceso)",EXPIRE_IN:"Expira el",NOT_WRITTEN_EXPIRE_IN:"Fecha límite<br/>de procesamiento",EXPIRED:"Expirado",PSEUDO:"Seudónimo",SIGNED_ON_BLOCK:"Emitida en el bloque #{{block}}",WRITTEN_ON_BLOCK:"Escrita en el bloque #{{block}}",GENERAL_DIVIDER:"Informaciones generales",NOT_MEMBER_ACCOUNT:"Cuenta no miembro",NOT_MEMBER_ACCOUNT_HELP:"Se trata de un simple monedero, sin solicitud de adhesión en espera.",TECHNICAL_DIVIDER:"Informaciones técnicas",BTN_CERTIFY:"Certificar",BTN_YES_CERTIFY:"Sí, certificar",BTN_SELECT_AND_CERTIFY:"Nueva certificación",ACCOUNT_OPERATIONS:"Operaciones de cuenta",VIEW:{POPOVER_SHARE_TITLE:"Identidad {{title}}"},LOOKUP:{TITLE:"Directorio",NEWCOMERS:"Nuevos miembros:",NEWCOMERS_COUNT:"{{count}} miembros",PENDING:"Inscripciones en espera:",PENDING_COUNT:"{{count}} inscripciones en espera",REGISTERED:"Inscrito {{sigDate | formatFromNow}}",MEMBER_FROM:"Miembro desde {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Nuevos miembros",BTN_PENDING:"Inscripciones en espera",SHOW_MORE:"Mostrar más",SHOW_MORE_COUNT:"(límite actual a {{limit}})",NO_PENDING:"Ninguna inscripción en espera.",NO_NEWCOMERS:"Ningun miembro."},CONTACTS:{TITLE:"Contactos"},MODAL:{TITLE:"Buscar"},CERTIFICATIONS:{TITLE:"{{uid}} - Certificaciones",SUMMARY:"Certificaciones recibidas",LIST:"Detalle de las certificaciones recibidas",PENDING_LIST:"Certificaciones en espera de tratamiento",RECEIVED:"Certificaciones recibidas",RECEIVED_BY:"Certificaciones recibidas por {{uid}}",ERROR:"Certificaciones recibidas por error",SENTRY_MEMBER:"Miembro referente"},OPERATIONS:{TITLE:"{{uid}} - Operaciones"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certificaciones emitidas",SUMMARY:"Certificaciones emitidas",LIST:"Detalle de las certificaciones emitidas",PENDING_LIST:"Certificaciones en espera a ser procesadas",SENT:"Certificaciones emitidas",SENT_BY:"Certificaciones emitidas por {{uid}}",ERROR:"Certificaciones emitidas por error"}},LOGIN:{TITLE:'<i class="icon ion-locked"></i> Conexión',SCRYPT_FORM_HELP:"Ingrese sus credenciales.<br>Recuerde verificar que la clave pública es su cuenta.",PUBKEY_FORM_HELP:"Por favor ingrese una clave de cuenta pública:",FILE_FORM_HELP:"Elija el archivo de llavero para usar:",SCAN_FORM_HELP:"Escanee el código QR de la monedero.",SALT:"Identificador secreto",SALT_HELP:"Identificador secreto",SHOW_SALT:"¿Visualizar el identificador secreto?",PASSWORD:"Frase secreta",PASSWORD_HELP:"Frase secreta",PUBKEY_HELP:"llave pública",NO_ACCOUNT_QUESTION:"¿Aún no tiene cuenta?",HAVE_ACCOUNT_QUESTION:"¿Ya tienes una cuenta?",CREATE_ACCOUNT:"Crear una cuenta",CREATE_FREE_ACCOUNT:"Crear una cuenta gratis",FORGOTTEN_ID:"¿Olvidó su frase secreta?",ASSOCIATED_PUBKEY:"Clave pública del llavero:",BTN_METHODS:"Otros métodos",BTN_METHODS_DOTS:"Método de cambio...",METHOD_POPOVER_TITLE:"Métodos",MEMORIZE_AUTH_FILE:"Recuerda este llavero al momento de la sesión de navegación",SCRYPT_PARAMETERS:"Configuraciones (Scrypt) :",AUTO_LOGOUT:{TITLE:"Información",MESSAGE:'<i class="ion-android-time"></i> Se ha <b>desconectado</b> de forma automática, después de un periodo de inactividad prolongada.',BTN_RELOGIN:"Volver a conectarme",IDLE_WARNING:"Se desconectará en... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Identificación predeterminada",SCRYPT_ADVANCED:"Sallaje avanzado",FILE:"Archivo llavero",PUBKEY:"Solo clave pública",SCAN:"Escanear un código QR"},SCRYPT:{SIMPLE:"Ligero",DEFAULT:"Predeterminado",SECURE:"Seguro",HARDEST:"El más seguro",EXTREME:"Extremo",USER:"Personalizado",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Formato de archivo esperado: <b>.yml</b> o <b>.dunikey</b> (tipo PubSec, WIF o EWIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> AAutenticación',BTN_AUTH:"Autenticar",GENERAL_HELP:"Por favor, autentíquese:",EXPECTED_UID_HELP:'Por favor inicie sesión en la cuenta de <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Por favor, autentifíquese en la monedero <i class="ion-key"></i> {{pubkey|formatPubkey}} :',SCAN_FORM_HELP:"Escanee el código QR de la <b>clave privada</b> de la monedero."},ACCOUNT:{TITLE:"Mi cuenta",BALANCE:"Saldo",LAST_TX:"última validadas transacción",BALANCE_ACCOUNT:"Saldo de la cuenta",NO_TX:"Ninguna transacción",SHOW_MORE_TX:"Mostrar más",SHOW_ALL_TX:"Mostrar todo",TX_FROM_DATE:"(límite actual a {{fromTime|medianFromNowShort}})",PENDING_TX:"Transacciones en proceso de se procesadas",VALIDATING_TX:"Transacciones validadas",ERROR_TX:"Transacciones no ejecutadas",ERROR_TX_SENT:"Transacciones ejecutadas fallidas",PENDING_TX_RECEIVED:"Tansacciones en espera de recepción",EVENTS:"Eventos",WAITING_MEMBERSHIP:"Solicitud de adhesión emitida. En espera de aceptación.",WAITING_CERTIFICATIONS:"Debe obtener {{needCertificationCount}} certificación(es) para ser miembro.",WILL_MISSING_CERTIFICATIONS:"Pronto le van a <b>faltar certificaciones</b> (al menos {{willNeedCertificationCount}} son necesarias)",WILL_NEED_RENEW_MEMBERSHIP:"Su adhesión como miembro <b>va a expirar {{membershipExpiresIn|formatDurationTo}}</b>. Piense en <a ng-click=\"doQuickFix('renew')\">renovar su adhesión</a> mientras tanto.",NEED_RENEW_MEMBERSHIP:"No es miembro porque su adhesión <b>ha expirado</b>. Piense en <a ng-click=\"doQuickFix('renew')\">renovar su adhesión</a>.",NO_WAITING_MEMBERSHIP:"No hay adhesión miembro en espera. Si desea <b>convertirse en miembro</b>, por favor <a ng-click=\"doQuickFix('membership')\">envíe su adhesión como miembro</a>.",CERTIFICATION_COUNT:"Certificaciones recibidas",CERTIFICATION_COUNT_SHORT:"Certificaciones",SIG_STOCK:"Certificaciones emitidas",BTN_RECEIVE_MONEY:"Recibir",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Cambiar a otra identidad...",BTN_FIX_MEMBERSHIP:"Volver a enviar la adhesión...",BTN_MEMBERSHIP_RENEW:"Renovar la adhesión",BTN_MEMBERSHIP_RENEW_DOTS:"Renovar la adhesión...",BTN_MEMBERSHIP_OUT_DOTS:"Cancelar la adhesión...",BTN_SECURITY_DOTS:"Cuenta y securidad...",BTN_SHOW_DETAILS:"Publicar la información técnica",LOCKED_OUTPUTS_POPOVER:{TITLE:"Importe bloqueado",DESCRIPTION:"Aquí están las condiciones para desbloquear este importe:",DESCRIPTION_MANY:"Esta transacción esta compuesta de varias partes, cuyas condiciones de desbloqueo son:",LOCKED_AMOUNT:"Condiciones del importe:"},NEW:{TITLE:"Inscripción",INTRO_WARNING_TIME:"Crear una cuenta en {{name|capitalize}} es muy simple. Sin embargo, por favor tome el tiempo suficiente para dar correctamente este paso (no olvidar los identificadores, frase secreta, etc.).",INTRO_WARNING_SECURITY:"Asegúrece de que el equipo que utiliza actualmente (ordenador, tableta, teléfono) <b>es seguro y digno de confianza</b>.",INTRO_WARNING_SECURITY_HELP:"Actualizaciones de antivirus, firewall activado, sesión protegidos por contraseña o código PIN, etc.",INTRO_HELP:"Haga clic en <b>{{'COMMON.BTN_START'|translate}}</b> para iniciar la creación de la cuenta. Se le guiará paso a paso.",REGISTRATION_NODE:"Su registro será grabado a través del nodo Duniter <b>{{server}}</b>, que luego se transmitirá al resto del sistema de la moneda.",REGISTRATION_NODE_HELP:"Si usted no confía en este nodo, <a ng-click=\"doQuickFix('settings')\">cambie la configuración</a> de Cesium.",SELECT_ACCOUNT_TYPE:"Elegir el tipo de cuenta a crear:",MEMBER_ACCOUNT:"Cuenta miembro",MEMBER_ACCOUNT_TITLE:"Crear una cuenta miembro",MEMBER_ACCOUNT_HELP:"Si aún no está inscrito como un individuo (Solamente una cuenta posible por individuo).",WALLET_ACCOUNT:"Simple monedero",WALLET_ACCOUNT_TITLE:"Crear una cuenta simple",WALLET_ACCOUNT_HELP:"Monedero simple para todos los otros casos, por ejemplo si necesita una cuenta suplementaria.<br/>El Dividendo Universal no será producido para esta cuenta.",SALT_WARNING:"Elija su identificador secreto.<br/>Se solicitará cada vez que se conectará con esta cuenta.<br/><br/><b>Retenga bien este identificador secreto</b>.<br/>¡En caso de pérdida, nadie podrá acceder a su cuenta!",PASSWORD_WARNING:"Elija su frase secreta.<br/>Se solicitará cada vez que se conectará con esta cuenta.<br/><br/><b>Retenga bien esta frase secreta</b>.<br/>¡En caso de pérdida, nadie podrá acceder su cuenta!",PSEUDO_WARNING:"Elija un seudónimo.<br/>Sirve para que los otros miembros puedan encontrarlo más fácilmente.<br/><br/>No debe contener <b>ni espacios ni caracteres acentuados</b>.<div class='hidden-xs'><br/>Ejemplo: <span class='gray'>SophieDupond, MarcelChemin, etc.</span>",PSEUDO:"Seudónimo",PSEUDO_HELP:"Seudónimo",SALT_CONFIRM:"Confirmación",SALT_CONFIRM_HELP:"Confirmación del identificador secreto",PASSWORD_CONFIRM:"Confirmación",PASSWORD_CONFIRM_HELP:"Confirmación de la frase secreta",SLIDE_6_TITLE:"Confirmación:",COMPUTING_PUBKEY:"Cálculo en proceso...",LAST_SLIDE_CONGRATULATION:"<b>¡Bien!</b> Ha introducido todas los datos necesarias.<br/><b>Puede solicitar</b> la creación de su cuenta.</b><br/><br/>Para su información, la llave pública que se muestra más abajo identificará su futura cuenta.<br/>Esta podrá ser comunicada a terceros para recibir sus pagos.<br/>Sin embargo, <b>no es útil</b> anotarla aquí.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Advertencia:</b> el identificador secreto, la frase secreta y el seudónimo no podrán estar modificados.<br/><b>¡Asegúrese siempre de recordarlos!</b><br/><br/><b>¿Está usted seguro</b> de querer solicitar la inscripción?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Advertencia:</b> el identificador secreto y la frase secreta no podrán estar modificados.<br/><b>¡Asegúrese de recordarlos siempre!</b><br/><br/><b>¿Está usted seguro</b> de querer continuar con estos identificadores?',CHECKING_PSEUDO:"Comprobar de disponibilidad...",PSEUDO_AVAILABLE:"Este nombre está disponible",PSEUDO_NOT_AVAILABLE:"Este nombre de usuario no está disponible",INFO_LICENSE:"Para unirse a la moneda, le pedimos leer y aceptar esta licencia.",BTN_ACCEPT:"Acepto",BTN_ACCEPT_LICENSE:"Acepto la licencia"},POPUP_REGISTER:{TITLE:"Elija un seudónimo",HELP:"Un seudónimo es obligatorio para ser miembro."},SELECT_IDENTITY_MODAL:{TITLE:"Selección de identidad",HELP:'Se han enviado varias <b>identidades diferentes</b> para la clave pública <span class="gray"><i class="ion-key"></i>{{pubkey | formatPubkey}}</span>.<br/>Por favor, selecciona la carpeta para usar:'},SELECT_WALLET_MODAL:{TITLE:"Selección de monedero"},WALLET_LIST:{TITLE:"Mis monederos",BTN_NEW:"Añadir un monedero",BTN_DOWNLOAD:"Descargue la lista",BTN_IMPORT_FILE_DOTS:"Importar desde un archivo...",NO_WALLET:"Sin monedero secundaria",BTN_DELETE:"Eliminar una monedero secundaria...",BTN_RENAME:"Renombrar el monedero",EXPORT_FILENAME:"monederos-{{pubkey|formatPubkey}}-{{currency}}.csv",EDIT_POPOVER:{TITLE:"Renombrar el monedero",HELP:"Completa el nuevo nombre",NAME_HELP:"Nombre de la monedero"}},SECURITY:{ADD_QUESTION:"Añadir una pregunta personalizada",BTN_CLEAN:"Limpiar",BTN_RESET:"Reinicializar",DOWNLOAD_REVOKE:"Grabar un fichero de revocación",HELP_LEVEL:"Para generar un fichero de respaldo de sus identificadores, elija <strong> al menos {{nb}} preguntas:</strong>",LEVEL:"Nivel de seguridad",LOW_LEVEL:'Bajo <span class="hidden-xs">(mínimo dos preguntas)</span>',MEDIUM_LEVEL:'Medio <span class="hidden-xs">(mínimo cuatro preguntas)</span>',QUESTION_1:"¿Cómo se llamaba su mejor amigo de la adolescencia?",QUESTION_2:"¿Cómo se llamaba su primer animal de compañía?",QUESTION_3:"¿Cuál es el primer plato que aprendió a cocinar?",QUESTION_4:"¿Cuál es la primera película que vió en un cine?",QUESTION_5:"¿Cuál era el destino del primer avión que cogió?",QUESTION_6:"¿Cómo se llamaba su maestro favorito en la escuela primaria?",QUESTION_7:"¿Cuál sería para usted el mejor oficio?",QUESTION_8:"¿Cuál es su libro para niños preferido?",QUESTION_9:"¿Cuál fue el modelo de su primer vehículo?",QUESTION_10:"¿Cuál fue su sobrenombre cuando era niña(o)?",QUESTION_11:"¿Cuál fue su personaje o actor/actriz preferido/a cuando era estudiante?",QUESTION_12:"¿Cuál fue su cantante o grupo preferido/a cuando era estudiante?",QUESTION_13:"¿En qué ciudad sus padres se encontraron?",QUESTION_14:"¿Cómo se llamaba su primer jefe?",QUESTION_15:"¿Cómo se llama la calle donde creció?",QUESTION_16:"¿Cómo se llama la primera playa donde se bañó?",QUESTION_17:"¿Cuál es el primer álbum que compró?",QUESTION_18:"¿Cuál es el nombre de su equipo deportivo preferido?",QUESTION_19:"¿Cuál fue el oficio de su abuelo?",RECOVER_ID:"Recuperar sus identificadores",REVOCATION_WITH_FILE:"Revocar una identidad a partir de un fichero",REVOCATION_WITH_FILE_DESCRIPTION:"Si ha perdido las credenciales de su cuenta de miembro de forma permanente (o la seguridad de la cuenta se ve comprometida), puede usar <b>el archivo de revocación de la cuenta</b> para forzar publicación final de la web de confianza.",REVOCATION_WITH_FILE_HELP:"Para <b>revocar permanentemente</b> una cuenta de miembro, arrastre el archivo de revocación en el cuadro siguiente o haga clic en el cuadro para buscar un archivo.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",REVOCATION_WALLET:"Revocar esta identidad",SAVE_ID:"Grabar sus identificadores",STRONG_LEVEL:'Alto <span class="hidden-xs ">(6 preguntas mínimo)</span>',TITLE:"Cuenta y seguridad"},FILE_NAME:"{{currency}} - Estado de cuenta {{pubkey|formatPubkey}} a {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Fecha",AMOUNT:"Cantidad",COMMENT:"Comentario"}},TRANSFER:{TITLE:"Transferencia",SUB_TITLE:"Hacer una transferencia",FROM:"De",TO:"A",AMOUNT:"Importe",AMOUNT_HELP:"Importe",COMMENT:"Comentario",COMMENT_HELP:"Comentario",BTN_SEND:"Enviar",BTN_ADD_COMMENT:"Añadir un comentario",REST:"Resto de cuenta",REST_TO:"a",WARN_COMMENT_IS_PUBLIC:"Tenga en cuenta que los <b>comentarios son públicos</b> (sin encriptar).",MODAL:{TITLE:"Transferencia"}},ERROR:{UNKNOWN_URI_FORMAT:"Formato URI desconocido",PUBKEY_INVALID_CHECKSUM:"Clave pública no válida (suma de comprobación incorrecta).",POPUP_TITLE:"Error",UNKNOWN_ERROR:"Error desconocido",CRYPTO_UNKNOWN_ERROR:"Su navegador parece incompatible con las funcionalidades de cryptografía.",DOWNLOAD_KEYFILE_FAILED:"Error al generar el archivo de llavero.",EQUALS_TO_PSEUDO:"Debe ser diferente del seudónimo.",EQUALS_TO_SALT:"Debe ser diferente del identificador secreto.",FIELD_REQUIRED:"Campo obligatorio.",FIELD_TOO_SHORT:"Valor demasiado corta.",FIELD_TOO_SHORT_WITH_LENGTH:"Valor demasiado corta ({{minLength}} carácteres mín)",FIELD_TOO_LONG:"Valor demasiado largo",FIELD_TOO_LONG_WITH_LENGTH:"Valor demasiado largo, ({{maxLength}} carácteres máx)",FIELD_MIN:"Valor mínimo: {{min}}",FIELD_MAX:"Valor máximo: {{max}}",FIELD_ACCENT:"Caracteres acentuados y comas no autorizados",FIELD_NOT_NUMBER:"Valor numérico esperado",FIELD_NOT_INT:"Valor entero esperado",FIELD_NOT_EMAIL:"Email no válido",PASSWORD_NOT_CONFIRMED:"No corresponde a la frase secreta.",SALT_NOT_CONFIRMED:"No corresponde al identificador secreto.",SEND_IDENTITY_FAILED:"Error de la inscripción.",SEND_CERTIFICATION_FAILED:"Error de la certificación.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"No se puede certificar, porque su cuenta no <b>es miembro</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"No se puede certificar, porque su cuenta ya no es miembro.<br/><br/>Todavía faltan certificaciones, o ahora no son validas.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Cuenta no certificable. No se ha solicitado la adhesión, o no fue renovada.",LOGIN_FAILED:"Error durante la autentificación.",LOAD_IDENTITY_FAILED:"Error de carga de la identidad.",LOAD_REQUIREMENTS_FAILED:"Error de carga de las condiciones de la identidad.",SEND_MEMBERSHIP_IN_FAILED:"Error en el intento de entrada en la comunidad.",SEND_MEMBERSHIP_OUT_FAILED:"Error en la interrupción de adhesión.",REFRESH_WALLET_DATA:"Error en la actualización del monedero.",GET_CURRENCY_PARAMETER:"Error en la recuperación de las reglas de moneda.",GET_CURRENCY_FAILED:"Carga de la moneda imposible. Por favor, intente más tarde.",SEND_TX_FAILED:"Error en la transferencia.",ALL_SOURCES_USED:"Por favor, espera el cálculo del bloque siguiente (Todas sus fuentes de moneda fueron utilizada).",NOT_ENOUGH_SOURCES:"No lo bastante cambio para mandar este importe en una sola transacción.<br/>Importe máximo: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error en la creación de la cuenta miembro.",RESTORE_WALLET_DATA_ERROR:"Error en la recarga de las configuración desde el almacenamiento local",LOAD_WALLET_DATA_ERROR:"Error en la carga de los datos del monedero.",COPY_CLIPBOARD_FAILED:"Copia de la valor imposible.",TAKE_PICTURE_FAILED:"Error en la recuperación de la foto.",SCAN_FAILED:"Error en el escán del Codigo QR",SCAN_UNKNOWN_FORMAT:"Codigo no reconocido.",WOT_LOOKUP_FAILED:"Error en la búsqueda",LOAD_PEER_DATA_FAILED:"Lectura del nodo Duniter imposible. Por favor, intente más tarde.",NEED_LOGIN_FIRST:"Por favor, conéctese en primer lugar.",AMOUNT_REQUIRED:"El importe es obligatorio.",AMOUNT_NEGATIVE:"Importe negativo no autorizado.",NOT_ENOUGH_CREDIT:"Crédito insuficiente.",INVALID_NODE_SUMMARY:"Nodo ilocalizable o dirección inválida.",INVALID_USER_ID:"El seudónimo no debe contener ni espacios ni caracteres especiales o acentuado.",INVALID_COMMENT:"El campo 'referencia’ no debe contener carácteres acentuados.",INVALID_PUBKEY:"La clave pública no tiene el formato esperado.",INVALID_PUBKEY_CHECKSUM:"Suma de comprobación inválida.",IDENTITY_REVOKED:"Esta identidad <b>fue revocada</b>. No puede estar miembro.",IDENTITY_REVOKED_WITH_TIME:"Esta identidad <b>fue revocada {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). No puede estar miembro.",IDENTITY_PENDING_REVOCATION:"La <b>revocación de esta identidad</b> fue solicitado y esta en espera de tratamiento. Por lo que, la certificación es desactivada.",IDENTITY_INVALID_BLOCK_HASH:"Esta solicitud de adhesión no es valida (porque denomina un bloque los nodos de la red han anulado): esta persona debe renovelar su solicitud de adhesión <b>antes que</b> estar certificada.",IDENTITY_EXPIRED:"La publicación de esta identidad ha caducada: esta persona debe realizar una nueva solicitud de adhesión <b>antes que</b> estar certificada.",IDENTITY_SANDBOX_FULL:"EL nodo Duniter utilizado por Cesium ya no puede recibir más nuevas identidades, porque la fila de espera es llena.<br/><br/>Por favor, intenta ulteriormente o cambia de nodo (vía el menú <b>Paramètres</b>).",IDENTITY_NOT_FOUND:"Identidad no encontrada",IDENTITY_TX_FAILED:"Las operaciones de carga fallidos",WOT_PENDING_INVALID_BLOCK_HASH:"Adhesión no validada.",WALLET_INVALID_BLOCK_HASH:"Su solicitud de adhesión ya no está validada (porque denomina un bloque los nodos de la red han anulado).<br/>Debe <a ng-click=\"doQuickFix('fixMembership')\">mandar una nueva solicitud</a> para resolver este problema.",WALLET_IDENTITY_EXPIRED:"La publicación de <b>su identidad ha caducada</b>.<br/>Debe <a ng-click=\"doQuickFix('fixIdentity')\">publicar une outra vez su identidad</a> para resolver este problema.",WALLET_REVOKED:"Su identidad fue <b>revocada</b>: ni su seudónimo ni su llave pública podrán estar utilizados en el futuro por una cuenta miembro.",WALLET_HAS_NO_SELF:"Su identidad debe en primer lugar haber estado publicado, y no estar caducada.",AUTH_REQUIRED:"Autenticación requerida.",AUTH_INVALID_PUBKEY:"La llave pública no se corresponde con la cuenta conectada",AUTH_INVALID_SCRYPT:"De usuario o contraseña no válidos.",AUTH_INVALID_FILE:"archivo de llave no válido.",AUTH_FILE_ERROR:"No se pudo abrir el archivo de llave",IDENTITY_ALREADY_CERTIFY:"Ha <b>ya certificado</b> esta identidad.<br/><br/>Esta certificación todavía es valida (expiration {{expiresIn|formatDurationTo}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Ha <b>ya certificado</b> esta identidad.<br/><br/>Esta certificación está en espera de tratamiento (fecha límite de tratamiento {{expiresIn|formatDurationTo}}).",UNABLE_TO_CERTIFY_TITLE:"Certificación imposible",LOAD_NEWCOMERS_FAILED:"Error el la carga de los miembros nuevos.",LOAD_PENDING_FAILED:"Error el la carga de las inscripciones en espera.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Debe <b>estar miembro</b> para poder realizar esta acción.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Debe haber <b>publicado su identidad</b> para poder realizar esta acción.",GET_BLOCK_FAILED:"Error en la recuperación del bloque",INVALID_BLOCK_HASH:"Bloque no encontrado (hash diferente)",DOWNLOAD_REVOCATION_FAILED:"Debe seleccionar un fichero de texto",REVOCATION_FAILED:"Error en la revocación.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Identificador secreto o contraseña incorrectos",RECOVER_ID_FAILED:"Error en la recuperación de los identificadores",LOAD_FILE_FAILED:"Error en la carga del fichero",NOT_VALID_REVOCATION_FILE:"Archivo de revocación no válido (formato de archivo erróneo)",NOT_VALID_SAVE_ID_FILE:"Archivo no válido (formato de archivo erróneo)",NOT_VALID_KEY_FILE:"Archivo no válido (formato de archivo erróneo)",EXISTING_ACCOUNT:"Su frase secreta corresponde a una cuenta existente, la <a ng-click=\"showHelpModal('pubkey')\">clave pública</a> es:",EXISTING_ACCOUNT_REQUEST:"Por favor, cambie su frase secreta para que coincida con una cuenta sin usar.",GET_LICENSE_FILE_FAILED:"Error al obtener el archivo de licencia",CHECK_NETWORK_CONNECTION:"Ningún nodo parece alcanzable.<br/><br/><b>Compruebe la conexión a Internet</b>.",INVALID_FILE_FORMAT:"Formato de archivo inválido.",SAME_TX_RECIPIENT:"El destinatario debe ser diferente del emisor."},INFO:{POPUP_TITLE:"Información",CERTIFICATION_DONE:"Certificación enviada",NOT_ENOUGH_CREDIT:"Crédito insuficiente",TRANSFER_SENT:"Transferencia enviada",COPY_TO_CLIPBOARD_DONE:"Copia realizada",MEMBERSHIP_OUT_SENT:"Anulación enviada",NOT_NEED_MEMBERSHIP:"Ya es miembro.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Esta identidad pronto va a necesitar certificaciones (al menos {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"Esta identidad no envió una solicitud de membresía. Ella tendrá que hacerlo si desea hacerse miembro.",HAS_ALTERNATIVE_IDENTITIES:"Hay <b>identidades múltiples</b> adjuntas a esta clave pública. <b>Antes de cualquier certificación</b>, <a ng-click=\"doQuickFix('showSelectIdentities')\">verifique otras identidades</a> para elegir la correcta o comuníquese con el propietario de la cuenta.",REVOCATION_SENT:"Revocación enviada",REVOCATION_SENT_WAITING_PROCESS:"La <b>revocación de esta identidad</b> fue solicitada y está en espera de ser procesada.",FEATURES_NOT_IMPLEMENTED:"Esta funcionalidad todavía está en proceso de desarrollo.<br/><br/>¿Por qué no <b>contribuir a Cesium</b>, para obtenerla más rápido? ;)",EMPTY_TX_HISTORY:"Ninguna operación a exportar"},CONFIRM:{POPUP_TITLE:"<b>Confirmación</b>",POPUP_WARNING_TITLE:"<b>Advertencia</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Advertencia de seguridad</b>',CERTIFY_RULES_TITLE_UID:"Certificar {{uid}}",CERTIFY_RULES:'<b class="assertive">NO CERTIFICAR</b> una cuenta si piense que :<br/><br/><ul><li>1.) no corresponde a una persona <b>física y viviente</b>.<li>2.) su propietario <b>posee una otra cuenta</b> ya certificada.<li>3.) su propietario viola (voluntariamente o no) la regla 1 o 2 (por ejemplo certificando cuentas falsas o duplicadas).</ul><br/><b>¿Está usted seguro</b> sin embargo querer certificar esta identidad?',TRANSFER:"<b>Recapitulativo de la transferencia</b>:<br/><br/><ul><li> - De: {{from}}</li><li> - A: <b>{{to}}</b></li><li> - Importe: <b>{{amount}} {{unit}}</b></li><li> - Comentario: <i>{{comment}}</i></li></ul><br/><b>¿Está usted seguro de querer realizar esta transferencia?</b>",TRANSFER_ALL:"<b>Recapitulativo de la transferencia</b>:<br/><br/><ul><li> - De: {{from}}</li><li> - A: <b>{{to}}</b></li><li> - Importe: <b>{{amount}} {{unit}}</b></li><li> - Comentario: <i>{{comment}}</i></li><br/><li> - Resto: <b>{{restAmount}} {{unit}}</b> para <b>{{restTo}}</b></li></ul><br/><b>¿Está usted seguro de querer realizar esta transferencia?</b>",MEMBERSHIP_OUT:"Esta operación es <b>irreversible</b>.<br/></br/>¿Está usted seguro querer <b>anular su cuenta miembro</b>?",MEMBERSHIP_OUT_2:"¡Esta operación es <b>irreversible</b>!<br/><br/>¿Está usted seguro querer <b>anular su adhesión</b> como miembro?",LOGIN_UNUSED_WALLET_TITLE:"¿Error de introducción de datos?",LOGIN_UNUSED_WALLET:"Está usted conectado a une cuenta que parece <b>inactiva</b>.<br/><br/>Si esta cuenta no corresponde a la suya, se trata probablemente de un <b>error al introducir los datos</b> de sus identificadores de conexión.<br/></br/><b>¿Quiere usted sin embargo continuar con esta cuenta?</b>",FIX_IDENTITY:"El seudónimo <b>{{uid}}</b> va a ser publicado de nuevo, en reemplazo del antiguo que caducó.<br/></br/><b>¿Está usted seguro</b> de querer continuar?",FIX_MEMBERSHIP:"Su solicitud de adhesión como miembro va a ser enviada de nuevo.<br/></br/><b>¿Está usted seguro</b>de querer continuar?",MEMBERSHIP:"Se enviará su solicitud de membresía como miembro.<br/></br/><b>¿Está usted seguro</b>de querer continuar?",RENEW_MEMBERSHIP:"Su adhesión como miembro va a estar renovada.<br/></br/><b>¿Está usted seguro</b>de querer continuar?",REVOKE_IDENTITY:"Va a <b>revocar definitivamente esta identidad</b>.<br/><br/>La llave pública y el seudónimo asociados <b>jamás podrán ser utilizados</b> (para una cuenta miembro). <br/></br/><b>¿Está usted seguro</b> de querer revocar definitivamente esta cuenta?",REVOKE_IDENTITY_2:"¡Esta operación es <b>irreversible</b>!<br/><br/>¿Está usted seguro de querer <b>revocar definitivamente</b> esta cuenta?",NOT_NEED_RENEW_MEMBERSHIP:"Su adhesión no necesita ser renovada (solo va a caducar en {{membershipExpiresIn|formatDuration}}).<br/></br/><b>¿Está usted segura(o)</b> de querer renovar su adhesión?",SAVE_BEFORE_LEAVE:"¿Quiere usted <b>guardar sus cambios</b> antes dejar la página?",SAVE_BEFORE_LEAVE_TITLE:"Cambios no registrados",LOGOUT:"¿Está usted segura(o) de querer desconectarse?",USE_FALLBACK_NODE:"Nodo <b>{{edad}}</ b> inalcanzable o no válido.<br/><br/>¿Desea utilizar temporalmente el nodo <b>{{nuevo}}</b>?"},DOWNLOAD:{POPUP_TITLE:"<b>Revocación del archivo</b>",POPUP_REVOKE_MESSAGE:"Para proteger su cuenta, descargar el <b>documento de revocación de cuenta</b>. Si se necesita cancelar su cuenta (en caso de robo, cambio de identificador, una cuenta falsa creada, etc.).<br/><br/><b>Por favor, almacénelo en un lugar seguro.</b>"},HELP:{TITLE:"Ayuda en línea",JOIN:{SECTION:"Inscripción",SALT:'El identificador secreto es muy importante. Sirve para mezclar la frase secreta, antes de calcular la <span class="text-italic">llave pública</span> de su cuenta (su número) y la llave secreta para acceder a esta.<br/><b>Por favor, memorícelo muy bien</b> porque actualmente no existe ninguna manera para encontrarlo en caso de pérdida.<br/>Por otra parte, no puede ser modificado sin tener que crear una nueva cuenta.<br/><br/>Un buen identificador secreto debe ser suficientemente largo (al menos 8 carácteres) y lo más original posible.',PASSWORD:"La frase secreta es muy importante. Junto al identificador secreto, sirve a calcular el número (la llave pública) de su cuenta, y la llave secreta para acceder a ella.<br/><b>Por favor, memorícela muy bien</b> porque actualmente no existe ninguna manera para encontrarla en caso de pérdida (excepto el generar un fichero de respaldo).<br/>Por otra parte, no puede ser modificado sin deber creer una nueva cuenta.<br/><br/>Una buena frase secreta contiene (idealmente) al menos 8 carácteres, del que al menos una mayúscula y un número.",PSEUDO:'El seudónimo es solamente utilizado en caso de inscripción como <span class="text-italic">miembro</span>. Siempre es asociado a un monedero (vía su <span class="text-italic">llave pública</span>).<br/>El seudónimo se publica en la red para que los otros usuarios puedan identificarlo, certificarlo o enviar dinero a la cuenta.<br/>Un seudónimo debe ser único dentro de los miembros (<u>actuales</u> y antiguos).'},GLOSSARY:{SECTION:"Glosario",PUBKEY_DEF:"Una llave pública identifica un monedero. Puede identificar un miembro. En Cesium se calcula con el identificador y la frase secreta.",MEMBER:"Miembro",MEMBER_DEF:'Un miembro es una persona humana física y viviente, deseosa de participar libremente a la comunidad monetaria. Percibe un dividendo universal, dependiendo de un período y un importe definido en las <span class="text-italic">reglas de la moneda</span>',CURRENCY_RULES:"Reglas de la moneda",CURRENCY_RULES_DEF:'Las reglas de la moneda son definidas una sola vez por todas. Establecen el funcionamiento de la moneda: el cálculo del dividendo universal, la cantidad de certificaciones necesarias para ser miembro, la cantidad máxima de certificaciones que un miembro puede emitir, etc. <a href="#/app/currency">Ver las reglas actuales</a>.<br/> Una <span class="text-italic">BlockChain</span> que soporta y ejecuta estas reglas, y verifica continuamente su buena aplicación, hace posible que ellas no se modifiquen en el tiempo.',BLOCKCHAIN:'Cadena de bloques (<span class="text-italic">Blockchain</span>)',BLOCKCHAIN_DEF:'La BlockChain es un sistema descentralizado, que, para el caso de Duniter, sirve a mantener y ejecutar las <span class="text-italic">reglas de la moneda</span>.<br/><a href="http://duniter.org" target="_system">Saber más a proposito de Duniter</a> y el funcionamiento de su blockchain.',UNIVERSAL_DIVIDEND_DEF:'El Dividendo Universal (DU) es la cantidad de moneda co-creada por cada miembro, dependiendo del periodo y del cálculo definidos en las <span class="text-italic">reglas de la moneda</span>.<br/>En cada periodo, los miembros reciben en sus cuentas la misma cantidad de dinero.<br/><br/>El DU crece regularmente, para ser justo entre los miembros (actuales y futuros), calculado en función de la esperanza de vida media, como demostrado en la Théorie Relative de la Monnaie (TRM) = Teoría Relativa de la Moneda, aún no está traducida en español, contáctenos para contribuir a su traducción.<br/><a href="http://trm.creationmonetaire.info">Saber más a propósito de la TRM</a> y las monedas libres.'},TIP:{MENU_BTN_CURRENCY:"El menú <b>{{'MENU.CURRENCY'|translate}}</b> permite consultar las <b>reglas de la moneda</b> y su estado.",CURRENCY_WOT:"El <b>número de miembros</b> demuestra la importancia de la comunidad y permite <b>seguir su evolución</b>.",CURRENCY_MASS:"Siga aquí la <b>cantidad total de moneda</b> existente y su <b>distribución media</b> por miembro.<br/><br/>Esto permite juzgar la <b>importancia de un importe</b>, en relación con lo que <b>poseen los otros</b> en sus cuentas (como media).",CURRENCY_UNIT_RELATIVE:"La unidad utilizada (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa que los importes en {{currency|capitalize}} han sido divididos entre el valor del <b>Dividendo Universal</b> (DU).<br/><br/><small> Esta unidad relativa es <b>pertinente</b>, porque permanece estable, independiente de la cantidad de moneda que aumenta constantemente.</small>",CURRENCY_CHANGE_UNIT:"Este botón permite <b>cambiar la unidad</b>, para visualizar los importes <b>directamente en {{currency|capitalize}}</b> (en lugar de &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"Este botón permite <b>cambiar la unidad</b>, para visualizar los importes en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, es decir, relativo al Dividendo Universal (el monto co-producido por cada miembro).",CURRENCY_RULES:"Las <b>reglas</b> de la moneda fijan su funcionamiento <b>exacto y previsible</b>.<br/><br/>Es el propio ADN de la moneda, que hace que su código monetario sea <b>legible y transparente</b>.",MENU_BTN_NETWORK:"El menú <b>{{'MENU.NETWORK'|translate}}</b> permite consultar el estado de la red.",NETWORK_BLOCKCHAIN:"Todas las operaciones de la moneda están registradas dentro de un grand libro de cuenta <b>público e infalsificable</b>, también llamado <b>cadena de bloques</b> (<em>BlockChain</em> en inglés).",NETWORK_PEERS:"Los <b>nodos</b> visibles aquí corresponden a los <b>ordenadores que actualizan y controlan</b> la cadena de bloques.<br/><br/>Entre más nodos estén conectados, la moneda tendrá una gestión más <b>descentralizada</b> y digna de confianza.",NETWORK_PEERS_BLOCK_NUMBER:"Este <b>número</b> (en verde) indica el <b>último bloque validado</b> por este nodo (última pagina escrita dentro del grand libro de cuentas).<br/><br/>El color verde indica que este bloque ha sido también validado por <b>la mayoría de los otros nodos</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Cada miembro</b>, equipado de un ordenador conectador a Internet, <b>puede participar añadiendo un nodo</b>.  Necesita <b>instalar el programa Duniter</b> (libre y gratis). <a href="{{installDocUrl}}" target="_system">Ver el manual de uso &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"El menú <b>{{'ACCOUNT.TITLE'|translate}}</b> permite acceder a la gestión de su cuenta.",MENU_BTN_ACCOUNT_MEMBER:"Consulte aquí el estado de su cuenta y la información sobre sus certificaciones.",WALLET_CERTIFICATIONS:"Haga clic aquí para consultar el detalle de sus certificaciones (recibidas y emitidas).",WALLET_RECEIVED_CERTIFICATIONS:"Haga clic aquí para consultar el detalle de sus <b>certificaciones recibidas</b>.",WALLET_GIVEN_CERTIFICATIONS:"Haga clic aquí para consultar el detalle de sus <b>certificaciones emitidas</b>.",WALLET_BALANCE:"El <b>saldo</b> de su cuenta se visualiza aquí.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>La unidad utilizada (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa que el importe en {{currency|capitalize}} fue dividido entre el <b>Dividendo Universal</b> (DU) co-producido por cada miembro.<br/><br/>Actualmente un DU vale {{currentUD|formatInteger}} {{currency|capitalize}}s.",WALLET_BALANCE_CHANGE_UNIT:"Podrá <b>cambiar la unidad</b> de visualización de los importes en los <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Por ejemplo, para visualizar los importes <b>directamente en {{currency|capitalize}}</b>, en lugar de unidad relativa.",WALLET_PUBKEY:"Esta es la llave pública de su cuenta. Puede comunicarla a un tercero para que pueda identificar su cuenta de forma simple.",WALLET_SEND:"Realizar un pago en algunos clics",WALLET_SEND_NO_MONEY:"Realizar un pago en algunos clics.<br/>(Su saldo ya no lo permite)",WALLET_OPTIONS:"Este botón permite acceder a las <b>acciones de adhesión</b> y de seguridad.<br/><br/>¡No olvide echar un vistazo!",WALLET_RECEIVED_CERTS:"Se exhibirá aquí la lista de las personas que le han certificado.",WALLET_CERTIFY:"El botón <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> permite seleccionar una identidad y certificarla.<br/><br/>Sólo usuarios <b>miembros</b> pueden certificar a otros.",WALLET_CERT_STOCK:"Su stock de certificaciones (emitidas) es limitado a <b>{{sigStock}} certificaciones</b>.<br/><br/>Este stock se renueva con el tiempo, a medida que las certificaciones caducan.",MENU_BTN_TX_MEMBER:"El menú <b>{{'MENU.TRANSACTIONS'|translate}}</b> permite consultar su saldo, el historial de sus transacciones y mandar un pago.",MENU_BTN_TX:"Consulte aquí <b>el historial de sus transacciones</b> y efectúe nuevas operaciones.",MENU_BTN_WOT:"El menú <b>{{'MENU.WOT'|translate}}</b> permite buscar <b>usuarios</b> de la moneda (miembro o no).",WOT_SEARCH_TEXT_XS:"Para buscar en el directorio, escribe las <b>primeras letras de un seudónimo</b> (o de una llave pública).<br/><br/>La búsqueda se iniciará automáticamente.",WOT_SEARCH_TEXT:"Para buscar en el directorio, escribe las <b>primeras letras de un seudónimo</b> (o de una llave pública). <br/><br/>Luego, pulsa en la tecla <b>Entrada</b> para iniciar la búsqueda.",WOT_SEARCH_RESULT:"Visualiza la ficha detallada simplemente <b>haciendo un clic</b> sobre una línea.",WOT_VIEW_CERTIFICATIONS:"La línea <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> muestra cuántos miembros han validado esta identidad.<br/><br/>Estas certificaciones atestiguan que la cuenta pertenece a <b>una persona humana viviente</b> y que no tenga <b>ninguna otra cuenta miembro</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Necesita al menos <b>{{sigQty}} certificaciones</b> para ser miembro y recibir el <b>Dividendo Universal</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Un clic aquí permite abrir <b>la lista de todas las certificaciones</b> de la identidad (recibidas y emitidas).",WOT_VIEW_CERTIFY:"El botón <b>{{'WOT.BTN_CERTIFY'|translate}}</b> permite añadir su certificación a esta identidad.",CERTIFY_RULES:"<b>Atención:</b> Certificar solamente <b>personas físicas vivas</b>, que no posean ninguna otra cuenta miembro.<br/><br/>¡La seguridad de la moneda depende de la vigilancia de cada uno!",MENU_BTN_SETTINGS:"Los <b>{{'MENU.SETTINGS'|translate}}</b> le permitirán configurar la aplicación.",HEADER_BAR_BTN_PROFILE:"Haga un clic aquí para acceder a su <b>perfil de usuario</b>",SETTINGS_CHANGE_UNIT:"Podrá <b>cambiar la unidad de visualización</b> de los importes haciendo un clic más arriba.<br/><br/>- Desactive la opción para visualizar los importes en {{currency|capitalize}}.<br/>- Active la opción para visualizar los importes relativos al {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (todos los importes serán <b>dividido</b> entre el Dividendo Universal actual).",END_LOGIN:"¡La visita guiada ha <b>terminado</b>!<br/><br/>¡Buena suerte en este nuevo mundo de la <b>economía libre</b> !",END_NOT_LOGIN:"¡La visita guiada ha <b>terminado</b>!<br/><br/>Si quiere utilizar la moneda {{currency|capitalize}}, tiene que hacer un clic en <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> más abajo."}}}),e.translations("fr-FR",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"date : {{build}}",PUBKEY:"Clé publique",MEMBER:"Membre",BLOCK:"Bloc",BTN_OK:"OK",BTN_YES:"Oui",BTN_NO:"Non",BTN_SEND:"Envoyer",BTN_SEND_MONEY:"Faire un virement",BTN_SEND_MONEY_SHORT:"Virement",BTN_SAVE:"Enregistrer",BTN_YES_SAVE:"Oui, Enregistrer",BTN_YES_CONTINUE:"Oui, Continuer",BTN_SHOW:"Voir",BTN_SHOW_PUBKEY:"Afficher la clé publique",BTN_RELATIVE_UNIT:"Afficher les montants en DU ?",BTN_BACK:"Retour",BTN_NEXT:"Suivant",BTN_IMPORT:"Importer",BTN_CANCEL:"Annuler",BTN_CLOSE:"Fermer",BTN_LATER:"Plus tard",BTN_LOGIN:"Se connecter",BTN_LOGOUT:"Déconnexion",BTN_ADD_ACCOUNT:"Nouveau compte",BTN_SHARE:"Partager",BTN_EDIT:"Modifier",BTN_DELETE:"Supprimer",BTN_ADD:"Ajouter",BTN_SEARCH:"Rechercher",BTN_REFRESH:"Actualiser",BTN_RETRY:"Recommencer",BTN_START:"Commencer",BTN_CONTINUE:"Continuer",BTN_CREATE:"Créer",BTN_UNDERSTOOD:"J'ai compris",BTN_OPTIONS:"Options",BTN_HELP_TOUR:"Visite guidée",BTN_HELP_TOUR_SCREEN:"Découvrir cet écran",BTN_DOWNLOAD:"Télécharger",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Télécharger le relevé du compte",BTN_MODIFY:"Modifier",CHOOSE_FILE:"Déposez votre fichier <br/>ou cliquez pour le sélectionner",DAYS:"jours",NO_ACCOUNT_QUESTION:"Pas encore de compte ? Créez-en un gratuitement !",SEARCH_NO_RESULT:"Aucun résultat trouvé",LOADING:"Veuillez patienter...",LOADING_WAIT:"Veuillez patienter...<br/><small>(Cesium interroge le nœud Duniter)</small>",SEARCHING:"Recherche en cours...",FROM:"De",TO:"À",COPY:"Copier",LANGUAGE:"Langue",UNIVERSAL_DIVIDEND:"Dividende universel",UD:"DU",DATE_PATTERN:"DD/MM/YY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(vide)",UID:"Pseudonyme",ENABLE:"Activé",DISABLE:"Désactivé",RESULTS_LIST:"Résultats",RESULTS_COUNT:"{{count}} résultats",EXECUTION_TIME:"exécuté en {{duration|formatDurationMs}}",SHOW_VALUES:"Afficher les valeurs en clair ?",POPOVER_ACTIONS_TITLE:"Options",POPOVER_FILTER_TITLE:"Filtres",SHOW_MORE:"Afficher plus",SHOW_MORE_COUNT:"(limite actuelle à {{limit}})",POPOVER_SHARE:{TITLE:"Partager",SHARE_ON_TWITTER:"Partager sur Twitter",SHARE_ON_FACEBOOK:"Partager sur Facebook",SHARE_ON_DIASPORA:"Partager sur Diaspora*",SHARE_ON_GOOGLEPLUS:"Partager sur Google+"},FILE:{DATE:"Date :",TYPE:"Type :",SIZE:"Taille :",VALIDATING:"Validation en cours..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Choisir la source :",BTN_PICTURE_GALLERY:"Galerie",BTN_PICTURE_CAMERA:"<b>Caméra</b>"},MENU:{HOME:"Accueil",WOT:"Annuaire",CURRENCY:"Monnaie",ACCOUNT:"Mon compte",WALLETS:"Mes portefeuilles",TRANSFER:"Virement",SCAN:"Scanner",SETTINGS:"Paramètres",NETWORK:"Réseau",TRANSACTIONS:"Mes opérations"},ABOUT:{TITLE:"À propos",LICENSE:"Application <b>libre</b> (Licence GNU AGPLv3).",LATEST_RELEASE:"Il existe une <b>version plus récente</b> de {{'COMMON.APP_NAME'|translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Veuillez mettre à jour {{'COMMON.APP_NAME'|translate}} (dernière version : <b>v{{version}}</b>)",CODE:"Code source :",OFFICIAL_WEB_SITE:"Site web officiel :",DEVELOPERS:"Développé par :",FORUM:"Forum :",PLEASE_REPORT_ISSUE:"N'hésitez pas à nous remonter les anomalies rencontrées",REPORT_ISSUE:"Remonter un problème",BTN_OPEN_DEV_WINDOW:"Ouvrir la fenêtre de debuggage"},HOME:{TITLE:"Cesium",WELCOME:"Bienvenue dans l'application Cesium !",MESSAGE:"Recevez et envoyez de la monnaie libre {{currency|abbreviate}}",BTN_CURRENCY:"Explorer la monnaie {{name|abbreviate}}",BTN_ABOUT:"à propos",BTN_HELP:"Aide en ligne",REPORT_ISSUE:"anomalie",NOT_YOUR_ACCOUNT_QUESTION:'Vous n\'êtes pas propriétaire du compte <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b> ?',BTN_CHANGE_ACCOUNT:"Déconnecter ce compte",CONNECTION_ERROR:'Nœud <b>{{server}}</b> injoignable ou adresse invalide.<br/><br/>Vérifiez votre connexion Internet, ou changer de nœud <a class="positive" ng-click="doQuickFix(\'settings\')">dans les paramètres</a>.',SHOW_ALL_FEED:"Voir tout",READ_MORE:"Lire la suite",FEED_SOURCE:"Source"},SETTINGS:{TITLE:"Paramètres",DISPLAY_DIVIDER:"Affichage",STORAGE_DIVIDER:"Stockage",NETWORK_SETTINGS:"Réseau",PEER:"Adresse du nœud Duniter",PEER_SHORT:"Adresse du nœud",PEER_CHANGED_TEMPORARY:"Adresse utilisée temporairement",USE_LOCAL_STORAGE:"Activer le stockage local",USE_LOCAL_STORAGE_HELP:"Permet de sauvegarder vos paramètres",WALLETS_SETTINGS:"Mes portefeuilles",USE_WALLETS_ENCRYPTION:"Sécuriser la liste ?",USE_WALLETS_ENCRYPTION_HELP:"Permet de sécuriser la liste de vos portefeuilles (par chiffrement), en exigeant une authentification pour y accéder.",ENABLE_HELPTIP:"Activer les bulles d'aide contextuelles",ENABLE_UI_EFFECTS:"Activer les effets visuels",HISTORY_SETTINGS:"Mes opérations",DISPLAY_UD_HISTORY:"Afficher les dividendes produits ?",TX_HISTORY_AUTO_REFRESH:"Rafraîchir automatiquement",TX_HISTORY_AUTO_REFRESH_HELP:"Rafraîchit le solde et les opérations automatiquement, à chaque nouveau bloc du réseau.",AUTHENTICATION_SETTINGS:"Authentification",KEEP_AUTH:"Désauthentification automatique",KEEP_AUTH_SHORT:"Désauthentification",KEEP_AUTH_HELP:"Définit le moment où l'authentification est nettoyée de la mémoire.",KEEP_AUTH_OPTION:{NEVER:"Après chaque opération",SECONDS:"Après {{value}}s d'inactivité",MINUTE:"Après {{value}}min d'inactivité",MINUTES:"Après {{value}}min d'inactivité",HOUR:"Après {{value}}h d'inactivité",ALWAYS:"A la fin de la session"},KEYRING_FILE:"Fichier de trousseau",KEYRING_FILE_HELP:'Permet de vous <b>connecter</b> automatiquement à chaque lancement<br/>et même de vous <b>authentifier</b> (seulement si "Expiration de l\'authentification" est configurée "à la fin de la session").',REMEMBER_ME:"Se souvenir de moi ?",REMEMBER_ME_HELP:"Permet de rester identifié d'une session à l'autre, en conservant localement la clé publique.",PLUGINS_SETTINGS:"Extensions",BTN_RESET:"Restaurer les valeurs par défaut",EXPERT_MODE:"Activer le mode expert",EXPERT_MODE_HELP:"Permet un affichage plus détaillé.",BLOCK_VALIDITY_WINDOW:"Délai d'incertitude des blocs",BLOCK_VALIDITY_WINDOW_SHORT:"Délai d'incertitude",BLOCK_VALIDITY_WINDOW_HELP:"Délai avant de considérer qu'une information est validée",BLOCK_VALIDITY_OPTION:{NONE:"Aucun délai",N:"{{time | formatDuration}} ({{count}} blocs)"},POPUP_PEER:{TITLE:"Nœud Duniter",HOST:"Adresse",HOST_HELP:"Adresse : serveur:port",USE_SSL:"Sécurisé ?",USE_SSL_HELP:"(Chiffrement SSL)",BTN_SHOW_LIST:"Liste des noeuds"}},BLOCKCHAIN:{HASH:"Hash : {{hash}}",VIEW:{HEADER_TITLE:"Bloc #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Bloc courant",TITLE:"Bloc #{{number|formatInteger}}",COMPUTED_BY:"Calculé par le noeud de",SHOW_RAW:"Voir le fichier brut",TECHNICAL_DIVIDER:"Informations techniques",VERSION:"Version du format",HASH:"Hash calculé",UNIVERSAL_DIVIDEND_HELP:"Monnaie co-produite par chacun des {{membersCount}} membres",EMPTY:"Aucune donnée dans ce bloc",POW_MIN:"Difficulté minimale",POW_MIN_HELP:"Difficulté imposée pour le calcul du hash",DATA_DIVIDER:"Données",IDENTITIES_COUNT:"Nouvelles identités",JOINERS_COUNT:"Nouveaux membres",ACTIVES_COUNT:"Renouvellements",ACTIVES_COUNT_HELP:"Membres ayant renouvelé leur adhésion",LEAVERS_COUNT:"Membres sortants",LEAVERS_COUNT_HELP:"Membres ne souhaitant plus de certification",EXCLUDED_COUNT:"Membres exclus",EXCLUDED_COUNT_HELP:"Anciens membres exclus par non renouvellement ou manque de certifications",REVOKED_COUNT:"Identités révoquées",REVOKED_COUNT_HELP:"Ces comptes ne pourront plus être membres",TX_COUNT:"Transactions",CERT_COUNT:"Certifications",TX_TO_HIMSELF:"Opération de change",TX_OUTPUT_UNLOCK_CONDITIONS:"Conditions de déblocage",TX_OUTPUT_OPERATOR:{AND:"et",OR:"ou"},TX_OUTPUT_FUNCTION:{SIG:"<b>Signature</b> de ",XHX:"<b>Mot de passe</b>, dont SHA256 =",CSV:"Bloqué pendant",CLTV:"Bloqué jusqu'à"}},LOOKUP:{TITLE:"Blocs",NO_BLOCK:"Aucun bloc",LAST_BLOCKS:"Derniers blocs :",BTN_COMPACT:"Compacter"}},CURRENCY:{VIEW:{TITLE:"Monnaie",TAB_CURRENCY:"Monnaie",TAB_WOT:"Toile de confiance",TAB_NETWORK:"Réseau",TAB_BLOCKS:"Blocs",CURRENCY_SHORT_DESCRIPTION:"{{currency|abbreviate}} est une <b>monnaie libre</b>, démarrée {{firstBlockTime|formatFromNow}}. Elle compte actuellement <b>{{N}} membres</b>, qui produisent et perçoivent un <a ng-click=\"showHelpModal('ud')\">Dividende Universel</a> (DU), chaque {{dt|formatPeriod}}.",NETWORK_RULES_DIVIDER:"Règles du réseau",CURRENCY_NAME:"Nom de la monnaie",MEMBERS:"Nombre de membres",MEMBERS_VARIATION:"Variation depuis le dernier DU",MONEY_DIVIDER:"Monnaie",MASS:"Masse monétaire",SHARE:"Masse par membre",UD:"Dividende universel",C_ACTUAL:"Croissance actuelle",MEDIAN_TIME:"Heure de la blockchain",POW_MIN:"Niveau minimal de difficulté de calcul",MONEY_RULES_DIVIDER:"Règles de la monnaie",C_RULE:"Croissance théorique cible",UD_RULE:"Calcul du dividende universel",DT_REEVAL:"Période de revalorisation du DU",REEVAL_SYMBOL:"reval",DT_REEVAL_VALUE:"Tous les <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Date de la 1ère revalorisation",SIG_QTY_RULE:"Nombre de certifications requises pour devenir membre",SIG_STOCK:"Nombre maximal de certifications émises par membre",SIG_PERIOD:"Délai minimal d'attente entre 2 certifications successives émises par une même personne",SIG_WINDOW:"Délai limite de prise en compte d'une certification",SIG_VALIDITY:"Durée de vie d'une certification qui a été prise en compte",MS_WINDOW:"Délai limite de prise en compte d'une demande d'adhésion comme membre",MS_VALIDITY:"Durée de vie d'une adhésion qui a été prise en compte",STEP_MAX:"Distance maximale, par les certifications, entre un nouvel entrant et les membres référents",WOT_RULES_DIVIDER:"Règles de la toile de confiance",SENTRIES:"Nombre de certifications (émises <b>et</b> reçues) pour devenir membre référent",SENTRIES_FORMULA:"Nombre de certifications (émises <b>et</b> reçues) pour devenir membre référent (formule)",XPERCENT:"Pourcentage minimum de membres référents à atteindre pour respecter la règle de distance",AVG_GEN_TIME:"Temps moyen entre deux blocs",CURRENT:"actuel",MATH_CEILING:"PLAFOND",DISPLAY_ALL_RULES:"Afficher toutes les règles ?",BTN_SHOW_LICENSE:"Voir la licence",WOT_DIVIDER:"Toile de confiance"},LICENSE:{TITLE:"Licence de la monnaie",BTN_DOWNLOAD:"Télécharger le fichier",NO_LICENSE_FILE:"Fichier de licence non trouvé."}},NETWORK:{VIEW:{MEDIAN_TIME:"Heure de la blockchain",LOADING_PEERS:"Chargement des noeuds...",NODE_ADDRESS:"Adresse :",SOFTWARE:"Logiciel",WARN_PRE_RELEASE:"Pré-version (dernière version stable : <b>{{version}}</b>)",WARN_NEW_RELEASE:"Version <b>{{version}}</b> disponible",WS2PID:"Identifiant :",PRIVATE_ACCESS:"Accès privé",POW_PREFIX:"Préfixe de preuve de travail :",ENDPOINTS:{BMAS:"Interface sécurisée (SSL)",BMATOR:"Interface réseau TOR",WS2P:"Interface WS2P",ES_USER_API:"Noeud de données Cesium+"}},INFO:{ONLY_SSL_PEERS:"Les noeuds non SSL ont un affichage dégradé, car Cesium fonctionne en mode HTTPS."}},PEER:{PEERS:"Nœuds",SIGNED_ON_BLOCK:"Signé sur le bloc",MIRROR:"miroir",MIRRORS:"Miroirs",MIRROR_PEERS:"Nœuds miroirs",PEER_LIST:"Liste des nœuds",MEMBERS:"Membres",MEMBER_PEERS:"Nœuds membres",ALL_PEERS:"Tous les nœuds",DIFFICULTY:"Difficulté",API:"API",CURRENT_BLOCK:"Bloc #",POPOVER_FILTER_TITLE:"Filtre",OFFLINE:"Hors ligne",OFFLINE_PEERS:"Nœuds hors ligne",BTN_SHOW_PEER:"Voir le nœud",VIEW:{TITLE:"Nœud",OWNER:"Appartient à",SHOW_RAW_PEERING:"Voir la fiche de pair",SHOW_RAW_CURRENT_BLOCK:"Voir le dernier bloc (format brut)",LAST_BLOCKS:"Derniers blocs connus",KNOWN_PEERS:"Nœuds connus :",GENERAL_DIVIDER:"Informations générales",ERROR:{LOADING_TOR_NODE_ERROR:"Récupération des informations du noeud impossible. Le délai d'attente est dépassé.",LOADING_NODE_ERROR:"Récupération des informations du noeud impossible"}}},WOT:{SEARCH_HELP:"Recherche (pseudo ou clé publique)",SEARCH_INIT_PHASE_WARNING:"Durant la phase de pré-inscription, la recherche des inscriptions en attente <b>peut être longue</b>. Merci de patienter...",REGISTERED_SINCE:"Inscrit le",REGISTERED_SINCE_BLOCK:"Inscrit au bloc #",NO_CERTIFICATION:"Aucune certification validée",NO_GIVEN_CERTIFICATION:"Aucune certification émise",NOT_MEMBER_PARENTHESIS:"(non membre)",IDENTITY_REVOKED_PARENTHESIS:"(identité révoquée)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(en cours de révocation)",EXPIRE_IN:"Expiration",NOT_WRITTEN_EXPIRE_IN:"Date limite<br/>de traitement",EXPIRED:"Expiré",PSEUDO:"Pseudonyme",SIGNED_ON_BLOCK:"Emise au bloc #{{block}}",WRITTEN_ON_BLOCK:"Ecrite au bloc #{{block}}",GENERAL_DIVIDER:"Informations générales",NOT_MEMBER_ACCOUNT:"Compte simple (non membre)",NOT_MEMBER_ACCOUNT_HELP:"Il s'agit d'un simple portefeuille, sans demande d'adhésion en attente.",TECHNICAL_DIVIDER:"Informations techniques",BTN_CERTIFY:"Certifier",BTN_YES_CERTIFY:"Oui, certifier",BTN_SELECT_AND_CERTIFY:"Nouvelle certification",ACCOUNT_OPERATIONS:"Opérations sur le compte",VIEW:{POPOVER_SHARE_TITLE:"Identité {{title}}"},LOOKUP:{TITLE:"Toile de confiance",NEWCOMERS:"Nouveaux membres",NEWCOMERS_COUNT:"{{count}} membres",PENDING:"Inscriptions en attente",PENDING_COUNT:"{{count}} inscriptions en attente",REGISTERED:"Inscrit {{sigDate | formatFromNow}}",MEMBER_FROM:"Membre depuis {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Nouveaux membres",BTN_PENDING:"Inscriptions en attente",SHOW_MORE:"Afficher plus",SHOW_MORE_COUNT:"(limite actuelle à {{limit}})",NO_PENDING:"Aucune inscription en attente.",NO_NEWCOMERS:"Aucun membre."},CONTACTS:{TITLE:"Contacts"},MODAL:{TITLE:"Recherche"},CERTIFICATIONS:{TITLE:"{{uid}} - Certifications",SUMMARY:"Certifications reçues",LIST:"Détail des certifications reçues",PENDING_LIST:"Certifications en attente de traitement",RECEIVED:"Certifications reçues",RECEIVED_BY:"Certifications reçues par {{uid}}",ERROR:"Certifications reçues en erreur",SENTRY_MEMBER:"Membre référent"},OPERATIONS:{TITLE:"{{uid}} - Opérations"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certifications émises",SUMMARY:"Certifications émises",LIST:"Détail des certifications émises",PENDING_LIST:"Certifications en attente de traitement",SENT:"Certifications émises",SENT_BY:"Certifications émises par {{uid}}",ERROR:"Certifications émises en erreur"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Connexion',SCRYPT_FORM_HELP:"Veuillez saisir vos identifiants.<br>Pensez à vérifier que la clé publique est celle de votre compte.",PUBKEY_FORM_HELP:"Veuillez saisir une clé publique de compte :",FILE_FORM_HELP:"Choisissez le fichier de trousseau à utiliser :",SCAN_FORM_HELP:"Scanner le QR code d'un portefeuille.",SALT:"Identifiant secret",SALT_HELP:"Identifiant secret",SHOW_SALT:"Afficher l'identifiant secret ?",PASSWORD:"Mot de passe",PASSWORD_HELP:"Mot de passe",PUBKEY_HELP:"Clé publique ou pseudonyme",NO_ACCOUNT_QUESTION:"Vous n'avez pas encore de compte ?",HAVE_ACCOUNT_QUESTION:"Vous avez déjà un compte ?",CREATE_ACCOUNT:"Créer un compte...",CREATE_FREE_ACCOUNT:"Créer un compte gratuitement",FORGOTTEN_ID:"Mot de passe oublié ?",ASSOCIATED_PUBKEY:"Clé publique du trousseau :",BTN_METHODS:"Autres méthodes",BTN_METHODS_DOTS:"Changer de méthode...",METHOD_POPOVER_TITLE:"Méthodes",MEMORIZE_AUTH_FILE:"Mémoriser ce trousseau le temps de la session de navigation",SCRYPT_PARAMETERS:"Paramètres (Scrypt) :",AUTO_LOGOUT:{TITLE:"Information",MESSAGE:'<i class="ion-android-time"></i> Vous avez été <b>déconnecté</b> automatiquement, suite à une inactivité prolongée.',BTN_RELOGIN:"Me reconnecter",IDLE_WARNING:"Vous allez être déconnecté... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Identifiant secret et mot de passe",SCRYPT_ADVANCED:"Salage avancé",FILE:"Fichier de trousseau",PUBKEY:"Clé publique ou pseudonyme",SCAN:"Scanner un QR code"},SCRYPT:{SIMPLE:"Salage léger",DEFAULT:"Salage standard",SECURE:"Salage sûr",HARDEST:"Salage le plus sûr",EXTREME:"Salage extrême",USER:"Salage personnalisé",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Format de fichier attendu : <b>.yml</b> ou <b>.dunikey</b> (type PubSec, WIF ou EWIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Authentification',BTN_AUTH:"S'authentifier",GENERAL_HELP:"Veuillez vous authentifier :",EXPECTED_UID_HELP:'Veuillez vous authentifier sur le compte <i class="ion-person"></i> {{uid}} :',EXPECTED_PUBKEY_HELP:'Veuillez vous authentifier sur le portefeuille <br class="visible-xs"/><i class="ion-key"></i> {{pubkey|formatPubkey}} :',SCAN_FORM_HELP:"Scanner le QR code de la <b>clef privée</b> du portefeuille."},ACCOUNT:{TITLE:"Mon compte",BALANCE:"Solde",LAST_TX:"Dernières transactions validées",BALANCE_ACCOUNT:"Solde du compte",NO_TX:"Aucune transaction",SHOW_MORE_TX:"Afficher plus",SHOW_ALL_TX:"Afficher tout",TX_FROM_DATE:"(limite actuelle à {{fromTime|medianFromNowShort}})",PENDING_TX:"Transactions en attente de traitement",VALIDATING_TX:"Transactions traitées, non validées",ERROR_TX:"Transactions non executées",ERROR_TX_SENT:"Transactions envoyées en échec",PENDING_TX_RECEIVED:"Transactions en attente de réception",EVENTS:"Evénements",OUT_DISTANCED:"Vos certifications actuelles proviennent d'un groupe trop isolé de la <a ng-click=\"showHelpModal('wot')\">Toile de Confiance</a> (TdC) : la <a ng-click=\"showHelpModal('distance_rule')\">règle de distance maximale</a> n'est pas respectée.<br/>Vous devez obtenir des certifications provenant d'autres secteurs de la TdC, ou bien attendre que celle-ci se resserre.",WAITING_MEMBERSHIP:"Demande d'adhésion envoyée. En attente d'acceptation.",WAITING_CERTIFICATIONS:"Vous devez <b>obtenir {{needCertificationCount}} certification(s)</b> pour devenir membre et produire le <a ng-click=\"showHelpModal('ud')\">Dividende Universel</a>. Votre compte est cependant déjà opérationnel, pour recevoir et effectuer des paiements.",WAITING_CERTIFICATIONS_HELP:'Pour obtenir vos certifications, sollicitez uniquement des membres <b>qui vous connaissent suffisamment</b>, comme l\'exige <a ng-click="showLicenseModal()">la licence de la monnaie</a> que vous avez acceptée.<br/>Si vous ne connaissez pas suffisamment de membres, faites-le savoir sur <a ng-click="openLink($event, $root.settings.userForumUrl)">le forum utilisateur</a>.',WILL_MISSING_CERTIFICATIONS:"Vous allez bientôt <b>manquer de certifications</b> (au moins {{willNeedCertificationCount}} sont requises)",WILL_NEED_RENEW_MEMBERSHIP:"Votre adhésion comme membre <b>va expirer {{membershipExpiresIn|formatDurationTo}}</b>. Pensez à <a ng-click=\"doQuickFix('renew')\">renouveler votre adhésion</a> d'ici là.",NEED_RENEW_MEMBERSHIP:"Vous n'êtes plus membre de la monnaie, car <b>votre adhésion a expiré</b>. Pensez à <a ng-click=\"doQuickFix('renew')\">renouveler votre adhésion</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"Vous n'êtes plus membre de la monnaie, <b>pour manque de certifications</b>. Pensez à <a ng-click=\"doQuickFix('renew')\">renouveler votre adhésion</a>.",NO_WAITING_MEMBERSHIP:"Aucune demande d'adhésion en attente. Si vous souhaitez <b>devenir membre</b>, pensez à <a ng-click=\"doQuickFix('membership')\">envoyer la demande d'adhésion</a>.",CERTIFICATION_COUNT:"Certifications reçues",CERTIFICATION_COUNT_SHORT:"Certifications",SIG_STOCK:"Certifications envoyées",BTN_RECEIVE_MONEY:"Encaisser",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Basculer vers une autre identité...",BTN_FIX_MEMBERSHIP:"Renvoyer la demande d'adhésion...",BTN_MEMBERSHIP_RENEW:"Renouveler l'adhésion",BTN_MEMBERSHIP_RENEW_DOTS:"Renouveler l'adhésion...",BTN_MEMBERSHIP_OUT_DOTS:"Arrêter l'adhésion...",BTN_SECURITY_DOTS:"Compte et sécurité...",BTN_SHOW_DETAILS:"Afficher les infos techniques",LOCKED_OUTPUTS_POPOVER:{TITLE:"Montant verrouillé",DESCRIPTION:"Voici les conditions de déverrouillage de ce montant :",DESCRIPTION_MANY:"Cette transaction est composé de plusieurs parties, dont voici les conditions de déverrouillage :",LOCKED_AMOUNT:"Conditions pour le montant :"},NEW:{TITLE:"Création de compte",INTRO_WARNING_TIME:"La création d'un compte sur {{name|capitalize}} est très simple. Veuillez néanmoins prendre suffisament de temps pour faire correctement cette formalité (pour ne pas oublier les identifiants, mots de passe, etc.).",INTRO_WARNING_SECURITY:"Vérifiez que le matériel que vous utilisez actuellement (ordinateur, tablette, téléphone) <b>est sécurisé et digne de confiance</b>.",INTRO_WARNING_SECURITY_HELP:"Anti-virus à jour, pare-feu activé, session protégée par mot de passe ou code pin, etc.",INTRO_HELP:"Cliquez sur <b>{{'COMMON.BTN_START'|translate}}</b> pour débuter la création de compte. Vous serez guidé étape par étape.",REGISTRATION_NODE:"Votre inscription sera enregistrée via le noeud Duniter <b>{{server}}</b>, qui le diffusera ensuite au reste du réseau de la monnaie.",REGISTRATION_NODE_HELP:"Si vous ne faites pas confiance en ce noeud, veuillez en changer <a ng-click=\"doQuickFix('settings')\">dans les paramètres</a> de Cesium.",SELECT_ACCOUNT_TYPE:"Choisissez le type de compte à créer :",MEMBER_ACCOUNT:"Compte membre",MEMBER_ACCOUNT_TITLE:"Création d'un compte membre",MEMBER_ACCOUNT_HELP:"Si vous n'êtes pas encore inscrit en tant qu'individu (un seul compte possible par individu). Ce compte permet de co-produire la monnaie, en recevant un <b>dividende universel</b> chaque {{parameters.dt|formatPeriod}}.",WALLET_ACCOUNT:"Simple portefeuille",WALLET_ACCOUNT_TITLE:"Création d'un portefeuille",WALLET_ACCOUNT_HELP:"Pour tous les autres cas, par exemple si vous avez besoin d'un compte supplémentaire.<br/>Aucun dividende universel ne sera créé par ce compte.",SALT_WARNING:"Choisissez votre identifiant secret.<br/>Il vous sera demandé à chaque connexion sur ce compte.<br/><br/><b>Retenez le bien</b> : en cas de perte, plus personne ne pourra accéder à votre compte !",PASSWORD_WARNING:"Choisissez un mot de passe.<br/>Il vous sera demandé à chaque connexion sur ce compte.<br/><br/><b>Retenez bien ce mot de passe</b : en cas de perte, plus personne ne pourra accéder à votre compte !",PSEUDO_WARNING:"Choisissez un pseudonyme.<br/>Il sert aux autres membres, pour vous identifier plus facilement.<div class='hidden-xs'><br/>Il <b>ne pourra pas être modifié</b>, sans refaire un compte.</div><br/><br/>Il ne doit contenir <b>ni espace, ni de caractère accentué</b>.<div class='hidden-xs'><br/>Exemple : <span class='gray'>SophieDupond, MarcelChemin, etc.</span>",PSEUDO:"Pseudonyme",PSEUDO_HELP:"Pseudonyme",SALT_CONFIRM:"Confirmation",SALT_CONFIRM_HELP:"Confirmation de l'identifiant secret",PASSWORD_CONFIRM:"Confirmation",PASSWORD_CONFIRM_HELP:"Confirmation du mot de passe",SLIDE_6_TITLE:"Confirmation :",COMPUTING_PUBKEY:"Calcul en cours...",LAST_SLIDE_CONGRATULATION:"Vous avez saisi toutes les informations nécessaires : Bravo !<br/>Vous pouvez maintenant <b>envoyer la demande de création</b> de compte.</b><br/><br/>Pour information, la clé publique ci-dessous identifiera votre futur compte.<br/>Elle pourra être communiquée à des tiers pour recevoir leurs paiements.<br/><b>Il n'est pas obligatoire</b> de la noter ici, vous pourrez également le faire plus tard.",CONFIRMATION_MEMBER_ACCOUNT:"<b class=\"assertive\">Avertissement :</b> l'identifiant secret, le mot de passe et le pseudonyme ne pourront plus être modifiés.<br/><br/><b>Assurez-vous de toujours vous en rappeler !</b><br/><br/><b>Êtes-vous sûr</b> de vouloir envoyer cette demande d'inscription ?",CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Avertissement :</b> l\'identifiant secret et le mot de passe ne pourront plus être modifiés.<br/><br/><b>Assurez-vous de toujours vous en rappeler !</b><br/><br/><b>Êtes-vous sûr</b> de vouloir continuer avec ces identifiants ?',CHECKING_PSEUDO:"Vérification...",PSEUDO_AVAILABLE:"Pseudonyme disponible",PSEUDO_NOT_AVAILABLE:"Pseudonyme non disponible",INFO_LICENSE:"Avant de créer un compte membre, <b>veuillez lire et accepter la licence</b> d'usage de la monnaie :",BTN_ACCEPT:"J'accepte",BTN_ACCEPT_LICENSE:"J'accepte la licence"},POPUP_REGISTER:{TITLE:"Choisissez un pseudonyme",HELP:"Un pseudonyme est obligatoire pour devenir membre."},SELECT_IDENTITY_MODAL:{TITLE:"Sélection de l'identité",HELP:'Plusieurs <b>identités différentes</b> ont été envoyées, pour la clé publique <span class="gray"><i class="ion-key"></i> {{pubkey|formatPubkey}}</span>.<br/>Veuillez sélectionner le dossier à utiliser :'},SELECT_WALLET_MODAL:{TITLE:"Sélection du portefeuille"},WALLET_LIST:{TITLE:"Mes portefeuilles",BTN_NEW:"Ajouter un portefeuille",BTN_DOWNLOAD:"Télécharger la liste",BTN_IMPORT_FILE_DOTS:"Importer depuis un fichier...",NO_WALLET:"Aucun portefeuille secondaire",BTN_DELETE:"Retirer un portefeuille secondaire...",BTN_RENAME:"Renommer le portefeuille",EXPORT_FILENAME:"mes_portefeuilles-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Total : ",EDIT_POPOVER:{TITLE:"Renommer le portefeuille",HELP:"Renseignez le nouveau nom",NAME_HELP:"Nom du portefeuille"},IMPORT_MODAL:{TITLE:"Importer des portefeuilles",HELP:"Pour <b>importer des porftefeuilles</b>, veuillez glisser dans la zone ci-dessous le fichier de la liste des portefeuilles, ou bien cliquer dans la zone pour rechercher un fichier.",WALLET_COUNT:"<b>{{count}}</b> nouveau{{count > 1 ? 'x' : ''}} portefeuille{{count > 1 ? 's' : ''}}",NO_NEW_WALLET:"Aucun nouveau portefeuille"}},SECURITY:{ADD_QUESTION:"Ajouter une question personnalisée",BTN_CLEAN:"Vider",BTN_RESET:"Réinitialiser",DOWNLOAD_REVOKE:"Sauvegarder mon fichier de révocation",DOWNLOAD_REVOKE_HELP:"Disposer d'un fichier de révocation est important, par exemple en cas de perte de vos identifiants. Il vous permet de <b>sortir ce compte de la toile de confiance</b>, en redevenant ainsi un simple portefeuille.",GENERATE_KEYFILE:"Générer mon fichier de trousseau...",GENERATE_KEYFILE_HELP:"Génère un fichier permettant de vous authentifier sans saisir vos identifiants.<br/><b>Attention :</b> ce fichier contiendra votre trousseau de compte (clefs publique et secrète) ; il est donc très important de le mettre en lieu sûr !",KEYFILE_FILENAME:"trousseau-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Transformer en compte membre...",MEMBERSHIP_IN_HELP:"Permet de <b>transformer</b> un compte simple portefeuille <b>en compte membre</b>, en envoyant une demande d'adhésion. Utile uniquement si vous n'avez pas déjà un autre compte membre.",SEND_IDENTITY:"Publier son identité...",SEND_IDENTITY_HELP:"Permet d'associer un pseudonyme à ce compte, mais <b>sans faire de demande d'adhésion</b> pour devenir membre. Cette association n'est généralement pas utile, car la validité de cette association de pseudonyme est limitée dans le temps.",HELP_LEVEL:"Pour générer un fichier de sauvegarde de vos identifiants, choisissez <strong> au moins {{nb}} questions :</strong>",LEVEL:"Niveau de sécurité",LOW_LEVEL:'Faible <span class="hidden-xs">(2 questions minimum)</span>',MEDIUM_LEVEL:'Moyen <span class="hidden-xs">(4 questions minimum)</span>',QUESTION_1:"Comment s'appelait votre meilleur ami lorsque vous étiez adolescent ?",QUESTION_2:"Comment s'appelait votre premier animal de compagnie ?",QUESTION_3:"Quel est le premier plat que vous avez appris à cuisiner ?",QUESTION_4:"Quel est le premier film que vous avez vu au cinéma ?",QUESTION_5:"Où êtes-vous allé la première fois que vous avez pris l'avion ?",QUESTION_6:"Comment s'appelait votre instituteur préféré à l'école primaire ?",QUESTION_7:"Quel serait selon vous le métier idéal ?",QUESTION_8:"Quel est le livre pour enfants que vous préférez ?",QUESTION_9:"Quel était le modèle de votre premier véhicule ?",QUESTION_10:"Quel était votre surnom lorsque vous étiez enfant ?",QUESTION_11:"Quel était votre personnage ou acteur de cinéma préféré lorsque vous étiez étudiant ?",QUESTION_12:"Quel était votre chanteur ou groupe préféré lorsque vous étiez étudiant ?",QUESTION_13:"Dans quelle ville vos parents se sont-ils rencontrés ?",QUESTION_14:"Comment s'appelait votre premier patron ?",QUESTION_15:"Quel est le nom de la rue où vous avez grandi ?",QUESTION_16:"Quel est le nom de la première plage où vous vous êtes baigné ?",QUESTION_17:"Quel est le premier album que vous avez acheté ?",QUESTION_18:"Quel est le nom de votre équipe de sport préférée ?",QUESTION_19:"Quel était le métier de votre grand-père ?",RECOVER_ID:"Retrouver mon mot de passe...",RECOVER_ID_HELP:"Si vous disposez d'un <b>fichier de sauvegarde de vos identifiants</b>, vous pouvez les retrouver en répondant correctement à vos questions personnelles.",REVOCATION_WITH_FILE:"Révoquer mon compte membre...",REVOCATION_WITH_FILE_DESCRIPTION:"Si vous avez <b>définitivement perdus vos identifiants</b> de compte membre (ou que la sécurité du compte est compromise), vous pouvez utiliser <b>le fichier de révocation</b> du compte pour <b>forcer sa sortie définitive de la toile de confiance</b>.",REVOCATION_WITH_FILE_HELP:"Pour <b>révoquer définitivement</b> un compte membre, veuillez glisser dans la zone ci-dessous votre fichier de révocation, ou bien cliquer dans la zone pour rechercher un fichier.",REVOCATION_WALLET:"Révoquer immédiatement ce compte",REVOCATION_WALLET_HELP:"Demander la révocation de votre identité entraîne la <b>sortie de la toile de confiance</b> (définitive pour le pseudonyme et la clé publique associés). Le compte ne pourra plus produire de Dividende Universel.<br/>Vous pourrez toutefois encore vous y connecter, comme à un simple portefeuille.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Sauvegarder mes identifiants...",SAVE_ID_HELP:"Création d'un fichier de sauvegarde, pour <b>retrouver votre mot de passe</b> (et l'identifiant secret) <b>en cas de d'oubli</b>. Le fichier est <b>sécurisé</b> (chiffré) à l'aide de questions personnelles.",STRONG_LEVEL:'Fort <span class="hidden-xs ">(6 questions minimum)</span>',TITLE:"Compte et sécurité",KEYFILE:{PUBSEC_FORMAT:"Format PubSec.",PUBSEC_FORMAT_HELP:"Ce format stocke votre trousseau de manière très simple. Il est compatible notamment avec Cesium, ğannonce et Duniter.<br/><b>Attention :</b>Le fichier <b>n'est pas chiffré</b> (la clef secrète y apparaît en clair) ; veuillez donc le stocker en lieu sûr !",WIF_FORMAT:"Format WIF (Wallet Import Format) - v1",WIF_FORMAT_HELP:"Ce format stocke votre trousseau en y intégrant une somme de contrôle pour vérifier l'intégrité du fichier. Il est compatible notamment avec les portefeuilles papier (Duniter paper wallet).<br/><b>Attention :</b>Le fichier <b>n'est pas chiffré</b> (la clef secrète y apparaît en clair) ; veuillez donc le stocker en lieu sûr !",EWIF_FORMAT:"Format EWIF (Encrypted Wallet Import Format) - v1",EWIF_FORMAT_HELP:"Ce format stocke votre trousseau <b>de manière chiffrée</b> à partir d'une phrase secrète de votre choix. Il intègre aussi une somme de contrôle pour vérifier l'intégrité du fichier.<br/><b>Attention :</b> Veillez à toujours vous souvenir de votre phrase secrète !",PASSWORD_POPUP:{TITLE:"Fichier de trousseau chiffré",HELP:"Veuillez indiquer la phrase secrète :",PASSWORD_HELP:"Phrase secrète"},ERROR:{BAD_PASSWORD:"Phrase secrète incorrecte",BAD_CHECKSUM:"Somme de contrôle incorrecte"}}},FILE_NAME:"{{currency}} - Relevé du compte {{pubkey|formatPubkey}} au {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Montant",COMMENT:"Commentaire"}},TRANSFER:{TITLE:"Virement",SUB_TITLE:"Faire un virement",SUB_TITLE_ALL:"Vider le compte",FROM:"De",TO:"À",AMOUNT:"Montant",AMOUNT_HELP:"Montant",COMMENT:"Commentaire",COMMENT_HELP:"Commentaire",BTN_SEND:"Envoyer",BTN_ADD_COMMENT:"Ajouter un commentaire",REST:"Reste du compte",REST_TO:"à",WARN_COMMENT_IS_PUBLIC:"Veuillez noter que <b>les commentaires sont publics</b> (non chiffrés).",MODAL:{TITLE:"Virement"}},ERROR:{UNKNOWN_URI_FORMAT:"Format d'URI inconnu",PUBKEY_INVALID_CHECKSUM:"Clé publique invalide (bad checksum).",POPUP_TITLE:"Erreur",UNKNOWN_ERROR:"Erreur inconnue",CRYPTO_UNKNOWN_ERROR:"Votre navigateur ne semble pas compatible avec les fonctionnalités de cryptographie.",DOWNLOAD_KEYFILE_FAILED:"Échec de la génération du fichier de trousseau.",EQUALS_TO_PSEUDO:"Doit être différent du pseudonyme",EQUALS_TO_SALT:"Doit être différent de l'identifiant secret",FIELD_REQUIRED:"Champ obligatoire",FIELD_TOO_SHORT:"Valeur trop courte",FIELD_TOO_SHORT_WITH_LENGTH:"Valeur trop courte ({{minLength}} caractères min)",FIELD_TOO_LONG:"Valeur trop longue",FIELD_TOO_LONG_WITH_LENGTH:"Valeur trop longue ({{maxLength}} caractères max)",FIELD_MIN:"Valeur minimale : {{min}}",FIELD_MAX:"Valeur maximale : {{max}}",FIELD_ACCENT:"Caractères accentués et virgules non autorisés",FIELD_NOT_NUMBER:"Valeur numérique attendue",FIELD_NOT_INT:"Valeur entière attendue",FIELD_NOT_EMAIL:"Adresse email non valide",PASSWORD_NOT_CONFIRMED:"Ne correspond pas au mot de passe",SALT_NOT_CONFIRMED:"Ne correspond pas à l'identifiant secret",SEND_IDENTITY_FAILED:"Échec de l'inscription",SEND_CERTIFICATION_FAILED:"Échec de la certification",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"Vous ne pouvez pas effectuer de certification, car ce compte n'est <b>pas membre</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"Vous ne pouvez pas effectuer de certification, car ce compte n'est pas encore membre.<br/><br/>Il vous manque encore des certifications, ou bien celles-ci n'ont pas encore été validées.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Compte non certifiable. Aucune demande d'adhésion n'a été faite, ou bien elle n'a pas été renouvelée.",LOGIN_FAILED:"Erreur lors de la connexion.",LOAD_IDENTITY_FAILED:"Erreur de chargement de l'identité.",LOAD_REQUIREMENTS_FAILED:"Erreur de chargement des prérequis de l'identité.",SEND_MEMBERSHIP_IN_FAILED:"Échec de la tentative d'entrée dans la communauté.",SEND_MEMBERSHIP_OUT_FAILED:"Échec de l'arrêt de l'adhésion.",REFRESH_WALLET_DATA:"Échec du rafraîchissement du portefeuille.",GET_CURRENCY_PARAMETER:"Échec de la récupération des règles de la monnaie.",GET_CURRENCY_FAILED:"Chargement de la monnaie impossible. Veuillez réessayer plus tard.",SEND_TX_FAILED:"Échec du virement.",ALL_SOURCES_USED:"Veuillez attendre le calcul du prochain bloc (toutes vos sources de monnaie ont été utilisées).",NOT_ENOUGH_SOURCES:"Pas assez de change pour envoyer ce montant en une seule transaction.<br/>Montant maximum : {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Échec de la création du compte membre.",RESTORE_WALLET_DATA_ERROR:"Échec du rechargement des paramètres depuis le stockage local",LOAD_WALLET_DATA_ERROR:"Échec du chargement des données du portefeuille.",COPY_CLIPBOARD_FAILED:"Copie de la valeur impossible.",TAKE_PICTURE_FAILED:"Échec de la récupération de la photo.",SCAN_FAILED:"Échec du scan de QR-code.",SCAN_UNKNOWN_FORMAT:"Code non reconnu.",WOT_LOOKUP_FAILED:"Échec de la recherche.",LOAD_PEER_DATA_FAILED:"Lecture du nœud Duniter impossible. Veuillez réessayer ultérieurement.",NEED_LOGIN_FIRST:"Veuillez d'abord vous connecter.",AMOUNT_REQUIRED:"Le montant est obligatoire.",AMOUNT_NEGATIVE:"Montant négatif non autorisé.",NOT_ENOUGH_CREDIT:"Crédit insuffisant.",INVALID_NODE_SUMMARY:"Nœud injoignable ou adresse invalide.",INVALID_USER_ID:"Le pseudonyme ne doit contenir ni espace ni caractère spécial ou accentué.",INVALID_COMMENT:"Le champ 'référence' ne doit pas contenir de caractères accentués.",INVALID_PUBKEY:"La clé publique n'a pas le format attendu.",INVALID_PUBKEY_CHECKSUM:"Somme de contrôle invalide.",IDENTITY_REVOKED:"Cette identité <b>a été révoquée</b>. Elle ne peut plus devenir membre.",IDENTITY_REVOKED_WITH_TIME:"Cette identité <b>a été révoquée {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). Elle ne peut plus devenir membre.",IDENTITY_PENDING_REVOCATION:"La <b>révocation de cette identité</b> a été demandée et est en attente de traitement. La certification est donc désactivée.",IDENTITY_INVALID_BLOCK_HASH:"Cette demande d'adhésion n'est plus valide (car elle référence un bloc que les nœuds du réseau ont annulé) : cette personne doit renouveler sa demande d'adhésion <b>avant</b> d'être certifiée.",IDENTITY_EXPIRED:"La publication de cette identité a expiré : cette personne doit effectuer une nouvelle demande d'adhésion <b>avant</b> d'être certifiée.",IDENTITY_SANDBOX_FULL:"Le nœud Duniter utilisé par Cesium ne peut plus recevoir de nouvelles identités, car sa file d'attente est pleine.<br/><br/>Veuillez réessayer ultérieurement ou changer de nœud (via le menu <b>Paramètres</b>).",IDENTITY_NOT_FOUND:"Identité non trouvée.",IDENTITY_TX_FAILED:"Échec du chargement des opérations.",WOT_PENDING_INVALID_BLOCK_HASH:"Adhésion non valide.",WALLET_INVALID_BLOCK_HASH:"Votre demande d'adhésion n'est plus valide (car elle référence un bloc que les nœuds du réseau ont annulé).<br/>Vous devez <a ng-click=\"doQuickFix('fixMembership')\">envoyer une nouvelle demande</a> pour résoudre ce problème.",WALLET_IDENTITY_EXPIRED:"La publication de <b>votre identité a expirée</b>.<br/>Vous devez <a ng-click=\"doQuickFix('fixIdentity')\">publier à nouveau votre identité</a> pour résoudre ce problème.",WALLET_REVOKED:"Votre identité a été <b>révoquée</b> : ni votre pseudonyme ni votre clef publique ne pourra être utilisé à l'avenir pour un compte membre.",WALLET_HAS_NO_SELF:"Votre identité doit d'abord avoir été publiée, et ne pas être expirée.",AUTH_REQUIRED:"Authentification requise.",AUTH_INVALID_PUBKEY:'La clef attendue est <i class="ion-key"></i> {{pubkey|formatPubkey}}...',AUTH_INVALID_SCRYPT:"Identifiant ou mot de passe invalide.",AUTH_INVALID_FILE:"Fichier de trousseau invalide.",AUTH_FILE_ERROR:"Échec de l'ouverture du fichier de trousseau.",IDENTITY_ALREADY_CERTIFY:"Vous avez <b>déjà certifié</b> cette identité.<br/><br/>Cette certification est encore valide (expiration {{expiresIn|formatDurationTo}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Vous avez <b>déjà certifié</b> cette identité.<br/><br/>Cette certification est en attente de traitement (date limite de traitement {{expiresIn|formatDurationTo}}).",UNABLE_TO_CERTIFY_TITLE:"Certification impossible",LOAD_NEWCOMERS_FAILED:"Échec du chargement des nouveaux membres.",LOAD_PENDING_FAILED:"Échec du chargement des inscriptions en attente.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vous devez <b>être membre</b> pour pouvoir effectuer cette action.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vous devez <b>être membre (ou ancien membre)</b> pour pouvoir effectuer cette action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Vous devez avoir <b>publié votre identité</b> pour pouvoir effectuer cette action.",GET_BLOCK_FAILED:"Échec de la récupération du bloc.",INVALID_BLOCK_HASH:"Bloc non trouvé (hash différent).",DOWNLOAD_REVOCATION_FAILED:"Échec du téléchargement du fichier de révocation.",REVOCATION_FAILED:"Échec de la révocation.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Identifiant secret ou mot de passe incorrect.",RECOVER_ID_FAILED:"Échec de la récupération des identifiants",LOAD_FILE_FAILED:"Échec du chargement du fichier",NOT_VALID_REVOCATION_FILE:"Fichier de révocation non valide (mauvais format de fichier)",NOT_VALID_SAVE_ID_FILE:"Fichier de récupération non valide (mauvais format de fichier)",NOT_VALID_KEY_FILE:"Fichier de trousseau non valide (format non reconnu)",EXISTING_ACCOUNT:"Vos identifiants correspondent à un compte déjà existant, dont la <a ng-click=\"showHelpModal('pubkey')\">clef publique</a> est :",EXISTING_ACCOUNT_REQUEST:"Veuillez modifier vos identifiants afin qu'ils correspondent à un compte non utilisé.",GET_LICENSE_FILE_FAILED:"Récupération du fichier de licence impossible.",CHECK_NETWORK_CONNECTION:"Aucun nœud ne semble accessible.<br/><br/>Veuillez <b>vérifier votre connexion Internet</b>.",ISSUE_524_TX_FAILED:"Échec du virement.<br/><br/>Un message a été envoyé aux développeurs pour faciliter la résolution du problème. <b>Merci de votre aide</b>.",ADD_SECONDARY_WALLET_FAILED:"Échec de l'ajout du portefeuille secondaire.",UPDATE_WALLET_LIST_FAILED:"Échec du rafraîchissement des portefeuilles secondaires.",LOAD_WALLET_LIST_FAILED:"Échec du chargement des portefeuilles secondaires.",SAVE_WALLET_LIST_FAILED:"Échec de la sauvegarde des portefeuilles secondaires.",COULD_NOT_ADD_MAIN_WALLET:"Ce portefeuille <b>correspond au compte principal</b> avec lequel vous êtes connecté.<br/>Impossible de l'ajouter comme portefeuille secondaire.",COULD_NOT_ADD_EXISTING_WALLET:"Portefeuille déjà existant dans la liste.",UNKNOWN_WALLET_ID:"Portefeuille secondaire inconnu.",RESTORE_WALLET_LIST_FAILED:"Échec de la restauration des portefeuilles secondaires.",INVALID_FILE_FORMAT:"Format de fichier invalide.",SAME_TX_RECIPIENT:"Le destinataire doit être différent de l'émetteur."},INFO:{POPUP_TITLE:"Information",CERTIFICATION_DONE:"Certification envoyée",NOT_ENOUGH_CREDIT:"Crédit insuffisant",TRANSFER_SENT:"Virement envoyé",COPY_TO_CLIPBOARD_DONE:"Copié dans le presse-papier",MEMBERSHIP_OUT_SENT:"Résiliation envoyée",NOT_NEED_MEMBERSHIP:"Vous êtes déjà membre.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Cette identité va bientôt manquer de certifications (au moins {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"Cette identité n'a pas envoyée de demande d'adhésion. Elle le devra si elle souhaite devenir membre.",HAS_ALTERNATIVE_IDENTITIES:"Il existe <b>plusieurs identités</b> rattachées à cette clé publique. <b>Avant toute certification</b>, pensez à <a ng-click=\"doQuickFix('showSelectIdentities')\">consulter les autres identités</a> pour choisir la bonne, ou bien contacter le propriétaire du compte.",REVOCATION_SENT:"Révocation envoyée",REVOCATION_SENT_WAITING_PROCESS:"La <b>révocation de cette identité</b> a été demandée et est en attente de traitement.",FEATURES_NOT_IMPLEMENTED:"Cette fonctionnalité est encore en cours de développement.<br/>Pourquoi ne pas <b>contribuer à Cesium</b>, pour l'obtenir plus rapidement ? ;)",EMPTY_TX_HISTORY:"Aucune opération à exporter"},CONFIRM:{POPUP_TITLE:"<b>Confirmation</b>",POPUP_WARNING_TITLE:"<b>Avertissement</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Avertissement de sécurité</b>',CERTIFY_RULES_TITLE_UID:"Certifier {{uid}}",CERTIFY_RULES:'<b class="assertive">Ne PAS certifier</b> un compte si vous pensez que :<br/><br/><ul><li>1.) il ne correspond pas à une personne <b>physique et vivante</b>.<li>2.) son propriétaire <b>possède un autre compte</b> déjà certifié.<li>3.) son propriétaire viole (volontairement ou non) la règle 1 ou 2 (par exemple en certifiant des comptes factices ou en double).</ul><br/><b>Êtes-vous sûr</b> de vouloir néanmoins certifier cette identité ?',FULLSCREEN:"Afficher l'application en plein écran ?",EXIT_APP:"Fermer l'application ?",TRANSFER:"<b>Récapitulatif du virement</b> :<br/><br/><ul><li> - De : {{from}}</li><li> - A : <b>{{to}}</b></li><li> - Montant : <b>{{amount}} {{unit}}</b></li><li> - Commentaire : <i>{{comment}}</i></li></ul><br/><b>Êtes-vous sûr de vouloir effectuer ce virement ?</b>",TRANSFER_ALL:"<b>Récapitulatif du virement</b> :<br/><br/><ul><li> - De : {{from}}</li><li> - A : <b>{{to}}</b></li><li> - Montant : <b>{{amount}} {{unit}}</b></li><li> - Commentaire : <i>{{comment}}</i></li><br/><li> - Reste : <b>{{restAmount}} {{unit}}</b> à <b>{{restTo}}</b></li></ul><br/><b>Êtes-vous sûr de vouloir effectuer ce virement ?</b>",MEMBERSHIP_OUT:"Cette opération est <b>irréversible</b>.<br/></br/>Êtes-vous sûr de vouloir <b>résilier votre compte membre</b> ?",MEMBERSHIP_OUT_2:"Cette opération est <b>irreversible</b> !<br/><br/>Êtes-vous vraiment sûr de vouloir <b>résilier votre adhésion</b> comme membre ?",LOGIN_UNUSED_WALLET_TITLE:"Erreur de saisie ?",LOGIN_UNUSED_WALLET:"Le compte connecté semble <b>inactif</b>.<br/><br/>Il s'agit probablement d'une <b>erreur de saisie</b> dans vos identifiants de connexion. Veuillez recommencer, en vérifiant que <b>la clé publique est celle de votre compte</b>.",FIX_IDENTITY:"Le pseudonyme <b>{{uid}}</b> va être publiée à nouveau, en remplacement de l'ancienne publication qui a expirée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",FIX_MEMBERSHIP:"Votre demande d'adhésion comme membre va être renvoyée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",MEMBERSHIP:"Votre demande d'adhésion comme membre va être envoyée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",RENEW_MEMBERSHIP:"Votre adhésion comme membre va être renouvelée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",REVOKE_IDENTITY:"Vous allez <b>revoquer définitivement cette identité</b>.<br/><br/>La clé publique et le pseudonyme associés <b>ne pourront plus jamais être utilisés</b> (pour un compte membre). <br/></br/><b>Êtes-vous sûr</b> de vouloir révoquer définitivement ce compte ?",REVOKE_IDENTITY_2:"Cette opération est <b>irreversible</b> !<br/><br/>Êtes-vous vraiment sûr de vouloir <b>révoquer définitivement</b> ce compte ?",NOT_NEED_RENEW_MEMBERSHIP:"Votre adhésion n'a pas besoin d'être renouvelée (elle n'expirera que dans {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Êtes-vous sûr</b> de vouloir renouveler votre adhésion ?",SAVE_BEFORE_LEAVE:"Voulez-vous <b>sauvegarder vos modifications</b> avant de quitter la page ?",SAVE_BEFORE_LEAVE_TITLE:"Modifications non enregistrées",LOGOUT:"Êtes-vous sûr de vouloir vous déconnecter ?",USE_FALLBACK_NODE:"Nœud <b>{{old}}</b> injoignable ou adresse invalide.<br/><br/>Voulez-vous temporairement utiliser le nœud <b>{{new}}</b> ?",ISSUE_524_SEND_LOG:"La transaction a été rejetée, à cause d'une anomalie connue (ticket #524) mais <b>non reproduite</b>.<br/><br/>Pour aider les développeurs à corriger cette erreur, <b>acceptez-vous la transmission de vos logs</b> par message ?<br/><small>(aucune donnée confidentielle n'est envoyée)</small>."},DOWNLOAD:{POPUP_TITLE:"<b>Fichier de révocation</b>",POPUP_REVOKE_MESSAGE:"Pour sécuriser votre compte, veuillez télécharger le <b>document de révocation de compte</b>. Il vous permettra le cas échéant d'annuler votre compte (en cas d'un vol de compte, d'un changement d'identifiant, d'un compte créé à tort, etc.).<br/><br/><b>Veuillez le stocker en lieu sûr.</b>"},HELP:{TITLE:"Aide en ligne",JOIN:{SECTION:"Inscription",SALT:"L'identifiant secret est très important. Il sert à mélanger le mot de passe, avant qu'il ne serve à calculer la <span class=\"text-italic\">clé publique</span> de votre compte (son numéro) et la clé secrète pour y accéder.<br/><b>Veillez à bien la mémoriser</b>, car aucun moyen n'est actuellement prévu pour la retrouver en cas de perte.<br/>Par ailleurs, il ne peut pas être modifié sans devoir créer un nouveau compte.<br/><br/>Un bon identifiant secret doit être suffisamment long (au moins 8 caractères) et le plus original possible.",PASSWORD:"Le mot de passe est très important. Avec l'identifiant secret, il sert à calculer le numéro (la clé publique) de votre compte, et la clé secrète pour y accéder.<br/><b>Veillez à bien le mémoriser</b>, car aucun moyen n'est prévu de le retrouver en cas de perte (sauf à générer un fichier de sauvegarde).<br/>Par ailleurs, il ne peut pas être modifié sans devoir créer un nouveau compte.<br/><br/>Un bon mot de passe contient (idéalement) au moins 8 caractères, dont au moins une majuscule et un chiffre.",PSEUDO:'Le pseudonyme est utilisé uniquement dans le cas d\'inscription comme <span class="text-italic">membre</span>. Il est toujours associé à un portefeuille (via sa <span class="text-italic">clé publique</span>).<br/>Il est publié sur le réseau, afin que les autres utilisateurs puisse l\'identifier, le certifier ou envoyer de la monnaie sur le compte.<br/>Un pseudonyme doit être unique au sein des membres (<u>actuels</u> et anciens).'},LOGIN:{SECTION:"Connexion",PUBKEY:"Clé publique du trousseau",PUBKEY_DEF:'La clef publique du trousseau est générée à partir des identifiants saisis (n\'importe lesquels), sans pour autant qu\'ils correspondent à un compte déjà utilisé.<br/><b>Vérifiez attentivement que la clé publique est celle de votre compte</b>. Dans le cas contraire, vous serez connecté à un compte probablement jamais utilisé, le risque de collision avec un compte existant étant infime.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">En savoir plus sur la cryptographie</a> par clé publique.',METHOD:"Méthodes de connexion",METHOD_DEF:'Plusieurs options sont disponibles pour vous connecter à un portefeuille :<br/> - La connexion <b>par salage (simple ou avancé)</b> mélange votre mot de passe grâce à l\'identifiant secret, pour limiter les tentatives de <a href="https://fr.wikipedia.org/wiki/Attaque_par_force_brute" target="_system">piratage par force brute</a> (par exemple à partir de mots connus).<br/> - La connexion <b>par clé publique</b> évite de saisir vos identifiants, qui vous seront demandé seulement le moment venu lors d\'une opération sur le compte.<br/> - La connexion <b>par fichier de trousseau</b> va lire les clés (publique et privée) du compte, depuis un fichier, sans besoin de saisir d\'identifiants. Plusieurs formats de fichier sont possibles.'},GLOSSARY:{SECTION:"Glossaire",PUBKEY_DEF:'Une clé publique identifie un portefeuille de monnaie, qui peut identifier un membre ou correspondre à un portefeuille anonyme. Dans Cesium la clé publique est calculée (par défaut) grâce à l\'identifiant secret et au mot de passe.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">En savoir plus sur la cryptographie</a> par clé publique.',MEMBER:"Membre",MEMBER_DEF:'Un membre est une personne humaine physique et vivante, désireuse de participer librement à la communauté monétaire. Elle co-produit un dividende universel, suivant une période et un montant tels que définis dans les <span class="text-italic">règles de la monnaie</span>',CURRENCY_RULES:"Règles de la monnaie",CURRENCY_RULES_DEF:'Les règles de la monnaie sont définies une fois pour toutes. Elle fixe le fonctionnement de la monnaie : le calcul du dividende universel, le nombre de certifications nécessaire pour être membre, le nombre de certification maximum qu\'un membre peut donner, etc. <a href="#/app/currency">Voir les règles actuelles</a>.<br/>La non modification des règles dans le temps est possible par l\'utilisation d\'une <span class="text-italic">BlockChain</span> qui porte et exécute ces règles, et en vérifie constamment la bonne application.',BLOCKCHAIN:'Chaîne de blocs (<span class="text-italic">Blockchain</span>)',BLOCKCHAIN_DEF:'La BlockChain est un système décentralisé, qui, dans le cas de Duniter, sert à porter et exécuter les <span class="text-italic">règles de la monnaie</span>.<br/><a href="https://duniter.org/fr/comprendre/" target="_system">En savoir plus sur Duniter</a> et le fonctionnement de sa blockchain.',UNIVERSAL_DIVIDEND_DEF:'Le Dividende Universel (DU) est la quantité de monnaie co-créée par chaque membre, suivant la période et le calcul définis dans les <span class="text-italic">règles de la monnaie</span>.<br/>A chaque échéance, les membres recoivent sur leur compte la meme quantité de nouvelle monnaie.<br/><br/>Le DU subit une croissance régulière, pour rester juste entre les membres (actuels et à venir), calculée en fonction de l\'espérance de vie moyenne, telle que démontré dans la Thérorie Relative de la Monnaie (TRM).<br/><a href="http://trm.creationmonetaire.info" target="_system">En savoir plus sur la TRM</a> et les monnaies libres.',WOT:"Toile de Confiance (TdC)",WOT_DEF:"La Toile de Confiance est constituée de l'ensemble des membres de la monnaie, et des liens de certification qui les relient.",DISTANCE_RULE:"Règle de distance",DISTANCE_RULE_DEF:"La règle de distance de la Toile de Confiance définie <b>une distance maximale à respecter</b> entre un postulant et un nombre minimum de membres référents (ou membres centraux). Cette distance est calculée en utilisant les liens de certification."},TIP:{MENU_BTN_CURRENCY:"Le menu <b>{{'MENU.CURRENCY'|translate}}</b> permet la consultation des <b>règles de la monnaie</b> et de son état.",CURRENCY_WOT:"Le <b>nombre de membres</b> montre l'importance de la communauté et permet de <b>suivre son évolution</b>.",CURRENCY_MASS:"Suivez ici la <b>quantité totale de monnaie</b> existante et sa <b>répartition moyenne</b> par membre.<br/><br/>Ceci permet de juger de l'<b>importance d'un montant</b>, vis à vis de ce que <b>possède les autres</b> sur leur compte (en moyenne).",CURRENCY_UNIT_RELATIVE:"L'unité utilisée (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifie que les montants en {{currency|capitalize}} ont été divisés par le <b>Dividende Universel</b> (DU).<br/><br/><small>Cette unité relative est <b>pertinente</b>, car stable malgré la quantitié de monnaie qui augmente en permanence.</small>",CURRENCY_CHANGE_UNIT:"L'option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permet de <b>changer d'unité</b>, pour visualiser les montants <b>directement en {{currency|capitalize}}</b> (plutôt qu'en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"L'option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permet de <b>changer d'unité</b>, pour visualiser les montants en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, c'est-à-dire relativement au Dividende Universel (le montant co-produit par chaque membre).",CURRENCY_RULES:"Les <b>règles</b> de la monnaie fixent son fonctionnement <b>exact et prévisible</b>.<br/><br/>Véritable ADN de la monnaie, elles rendent son code monétaire <b>lisible et transparent</b>.",MENU_BTN_NETWORK:"Le menu <b>{{'MENU.NETWORK'|translate}}</b> permet la consultation de l'état du réseau.",NETWORK_BLOCKCHAIN:"Toutes les opérations de la monnaie sont enregistrées dans un grand livre de compte <b>public et infalsifiable</b>, appelé aussi <b>chaine de blocs</b> (<em>BlockChain</em> en anglais).",NETWORK_PEERS:"Les <b>nœuds</b> visibles ici correspondent aux <b>ordinateurs qui actualisent et contrôlent</b> la chaine de blocs.<br/><br/>Plus il y a de nœuds, plus la monnaie a une gestion <b>décentralisée</b> et digne de confiance.",NETWORK_PEERS_BLOCK_NUMBER:"Ce <b>numéro</b> (en vert) indique le <b>dernier bloc validé</b> pour ce nœud (dernière page écrite dans le grand livre de comptes).<br/><br/>La couleur verte indique que ce bloc est également validé par <b>la plupart des autres nœuds</b>.",
+NETWORK_PEERS_PARTICIPATE:'<b>Chaque membre</b>, équipé d\'un ordinateur avec Internet, <b>peut participer en ajoutant un nœud</b>. Il suffit d\'<b>installer le logiciel Duniter</b> (libre et gratuit). <a href="{{installDocUrl}}" target="_system">Voir le manuel d\'installation &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"Le menu <b>{{'ACCOUNT.TITLE'|translate}}</b> permet d'accéder à la gestion de votre compte.",MENU_BTN_ACCOUNT_MEMBER:"Consultez ici l'état de votre compte et les informations sur vos certifications.",WALLET_CERTIFICATIONS:"Cliquez ici pour consulter le détail de vos certifications (reçues et émises).",WALLET_RECEIVED_CERTIFICATIONS:"Cliquez ici pour consulter le détail de vos <b>certifications reçues</b>.",WALLET_GIVEN_CERTIFICATIONS:"Cliquez ici pour consulter le détail de vos <b>certifications émises</b>.",WALLET_BALANCE:"Le <b>solde</b> de votre compte s'affiche ici.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>L'unité utilisée (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifie que le montant en {{currency|capitalize}} a été divisé par le <b>Dividende Universel</b> (DU) co-créé par chaque membre.<br/><br/>Actuellement 1 DU vaut {{currentUD|formatInteger}} {{currency|capitalize}}s.",WALLET_BALANCE_CHANGE_UNIT:"Vous pourrez <b>changer l'unité</b> d'affichage des montants dans les <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Par exemple pour visualiser les montants <b>directement en {{currency|capitalize}}</b>, plutôt qu'en unité relative.",WALLET_PUBKEY:"Voici la clé publique de votre compte. Vous pouvez la communiquer à un tiers afin qu'il identifie plus simplement votre compte.",WALLET_SEND:"Effectuer un paiement en quelques clics.",WALLET_SEND_NO_MONEY:"Effectuer un paiement en quelques clics.<br/>(Votre solde ne le permet pas encore)",WALLET_OPTIONS:"Ce bouton permet l'accès aux <b>actions d'adhésion</b> et de sécurité.<br/><br/>N'oubliez pas d'y jeter un oeil !",WALLET_RECEIVED_CERTS:"S'affichera ici la liste des personnes qui vous ont certifié.",WALLET_CERTIFY:"Le bouton <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> permet de sélectionner une identité et de la certifier.<br/><br/>Seuls des utilisateurs <b>déjà membres</b> peuvent en certifier d'autres.",WALLET_CERT_STOCK:"Votre stock de certifications (émises) est limité à <b>{{sigStock}} certifications</b>.<br/><br/>Ce stock se renouvelle avec le temps, au fur et à mesure que les certifications s'invalident.",MENU_BTN_TX_MEMBER:"Le menu <b>{{'MENU.TRANSACTIONS'|translate}}</b> permet de consulter votre solde, l'historique vos transactions et d'envoyer un paiement.",MENU_BTN_TX:"Consultez ici <b>l'historique de vos transactions</b> et effectuez de nouvelles opérations.",MENU_BTN_WOT:"Le menu <b>{{'MENU.WOT'|translate}}</b> permet de rechercher parmi les <b>utilisateurs</b> de la monnaie (membres ou non).",WOT_SEARCH_TEXT_XS:"Pour rechercher dans l'annuaire, tapez les <b>premières lettres d'un pseudonyme</b> (ou d'une clé publique).<br/><br/>La recherche se lancera automatiquement.",WOT_SEARCH_TEXT:"Pour rechercher dans l'annuaire, tapez les <b>premières lettres d'un pseudonyme</b> (ou d'une clé publique). <br/><br/>Appuyer ensuite sur <b>Entrée</b> pour lancer la recherche.",WOT_SEARCH_RESULT:"Visualisez la fiche détaillée simplement en <b>cliquant</b> sur une ligne.",WOT_VIEW_CERTIFICATIONS:"La ligne <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> montre combien de membres ont validé cette identité.<br/><br/>Ces certifications attestent que le compte appartient à <b>une personne humaine vivante</b> n'ayant <b>aucun autre compte membre</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Il faut au moins <b>{{sigQty}} certifications</b> pour devenir membre et recevoir le <b>Dividende Universel</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Un clic ici permet d'ouvrir <b>la liste de toutes les certifications</b> de l'identité (reçues et émises).",WOT_VIEW_CERTIFY:"Le bouton <b>{{'WOT.BTN_CERTIFY'|translate}}</b> permet d'ajouter votre certification à cette identité.",CERTIFY_RULES:"<b>Attention :</b> Ne certifiez que des <b>personnes physiques vivantes</b>, ne possédant aucun autre compte membre.<br/><br/>La sécurité de la monnaie dépend de la vigilance de chacun !",MENU_BTN_SETTINGS:"Les <b>{{'MENU.SETTINGS'|translate}}</b> vous permettront de configurer l'application.",HEADER_BAR_BTN_PROFILE:"Cliquez ici pour accéder à votre <b>profil utilisateur.</b>",SETTINGS_CHANGE_UNIT:"Vous pourrez <b>changer d'unité d'affichage</b> des montants en cliquant ci-dessus.<br/><br/>- Désactivez l'option pour un affichage des montants en {{currency|capitalize}}.<br/>- Activez l'option pour un affichage relatif en {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (tous les montants seront <b>divisés</b> par le Dividende Universel courant).",END_LOGIN:"Cette visite guidée est <b>terminée</b> !<br/><br/>Bonne continuation à vous, dans le nouveau monde de l'<b>économie libre</b> !",END_NOT_LOGIN:"Cette visite guidée est <b>terminée</b> !<br/><br/>Si vous souhaitez rejoindre la monnaie {{currency|capitalize}}, il vous suffira de cliquer sur <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> ci-dessous."}},API:{COMMON:{LINK_DOC:"Documentation API",LINK_DOC_HELP:"Documentation pour les développeurs",LINK_STANDARD_APP:"Version classique",LINK_STANDARD_APP_HELP:"Ouvrir la version classique de {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Nœud <b>{{server}}</b> injoignable ou adresse invalide.<br/><br/>Vérifiez votre connexion Internet, ou contactez l'administrateur du site</a>."},HOME:{TITLE:"Documentation API {{'COMMON.APP_NAME'|translate}}",MESSAGE:'Bienvenue dans la <b>documentation de l\'API</b> {{\'COMMON.APP_NAME\'|translate}}.<br/>Connectez vos sites web à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',MESSAGE_SHORT:'Connectez vos sites à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',DOC_HEADER:"Services disponibles :"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Paiement en ligne",TITLE_SHORT:"Paiement en ligne",SUMMARY:"Récapitulatif du paiement :",AMOUNT:"Montant :",AMOUNTS_HELP:"Veuillez choisir le montant :",NAME:"Nom :",PUBKEY:"Clé publique du destinataire :",COMMENT:"Référence de l'opération :",NODE:"Adresse du nœud :",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Mode démonstration</b> : Aucun paiement ne sera réellement envoyé pendant cette simulation.<br/>Veuillez utiliser les identifiants : <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Vérifiez votre saisie.<br/>En mode démonstration, les identifiants sont : {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Paiement envoyé.<br/>Redirection vers <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Paiement envoyé.<br/>Redirection vers le site du vendeur...",CANCEL_REDIRECTING_WITH_NAME:"Paiement annulé.<br/>Redirection vers <b>{{name}}</b>...",CANCEL_REDIRECTING:"Paiement annulé.<br/>Redirection vers le site du vendeur..."},ERROR:{TRANSFER_FAILED:"Échec du paiement"}},DOC:{DESCRIPTION_DIVIDER:"Description",URL_DIVIDER:"Adresse d'appel",PARAMETERS_DIVIDER:"Paramètres",AVAILABLE_PARAMETERS:"Voici la liste des paramètres possibles :",DEMO_DIVIDER:"Tester",DEMO_HELP:"Pour tester ce service, cliquez sur le bouton ci-contre. Le résultat s'affichera en dessous.",DEMO_RESULT:"Résultat retourné par l'appel :",DEMO_RESULT_PEER:"Adresse du nœud utilisé :",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Succès !',DEMO_CANCELLED:'<i class="icon ion-close"></i> Annulé par l\'utilisateur',INTEGRATE_DIVIDER:"Intégrer",INTEGRATE_CODE:"Code :",INTEGRATE_RESULT:"Prévisualisation du résultat :",INTEGRATE_PARAMETERS:"Paramètres",TRANSFER:{TITLE:"Paiements",DESCRIPTION:"Depuis un site (ex: vente en ligne) vous pouvez déléguer le paiement en monnaie libre à Cesium API. Pour cela, il vous suffit de déclencher l'ouverture d'une page sur l'adresse suivante :",PARAM_PUBKEY:"Clé publique du destinataire",PARAM_PUBKEY_HELP:"Clé publique du destinataire (obligatoire)",PARAM_AMOUNT:"Montant",PARAM_AMOUNT_HELP:"Montant de la transaction (obligatoire). Valeurs multiples autorisées, en utilisant un séparateur (point-virgule, barre verticale ou espace).",PARAM_COMMENT:"Référence (ou commentaire)",PARAM_COMMENT_HELP:"Référence ou commentaire. Vous permettra par exemple d'identifier le paiement dans la BlockChain.",PARAM_NAME:"Nom (du destinataire ou du site web)",PARAM_NAME_HELP:'Le nom du destinataire, ou du site web appelant. Cela peut être un nom lisible ("Mon site en ligne"), ou encore une pseudo-adresse web ("MonSite.com").',PARAM_REDIRECT_URL:"Adresse web de redirection",PARAM_REDIRECT_URL_HELP:'Adresse web (URL) de redirection, appelé quand le paiement a été envoyé. Peut contenir les chaînes suivantes, qui seront remplacées par les valeurs de la transaction : "{tx}", "{hash}", "{comment}", "{amount}", "{pubkey}" et "{node}".',PARAM_CANCEL_URL:"Adresse web d'annulation",PARAM_CANCEL_URL_HELP:'Adresse web (URL) en cas d\'annulation du paiement, par l\'utilisateur. Peut contenir les chaînes suivantes, qui seront remplacées dynamiquement : "{comment}", "{amount}" et {pubkey}.',PARAM_PREFERRED_NODE:"Adresse du nœud préféré",PARAM_PREFERRED_NODE_HELP:'Adresse (URL) du nœud Duniter à utiliser de préférence ("g1.domaine.com:443" ou "https://g1.domaine.com").',EXAMPLES_HELP:"Voici des exemples d'intégration :",EXAMPLE_BUTTON:"Bouton HTML",EXAMPLE_BUTTON_DEFAULT_TEXT:"Payer en {{currency|currencySymbol}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Style personnalisé",EXAMPLE_BUTTON_TEXT_HELP:"Texte du bouton",EXAMPLE_BUTTON_BG_COLOR:"Couleur du fond",EXAMPLE_BUTTON_BG_COLOR_HELP:"Exemple : #fbc14c, black, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Couleur du texte",EXAMPLE_BUTTON_FONT_COLOR_HELP:"Exemple : black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icône",EXAMPLE_BUTTON_TEXT_WIDTH:"Largeur",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"Exemple : 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"Aucune",EXAMPLE_BUTTON_ICON_DUNITER:"Logo Duniter",EXAMPLE_BUTTON_ICON_CESIUM:"Logo Cesium",EXAMPLE_BUTTON_ICON_G1_COLOR:"Logo Ğ1",EXAMPLE_BUTTON_ICON_G1_BLACK:"Logo Ğ1 (noir)"}}}}),e.translations("it-IT",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",PUBKEY:"Chiave privata",MEMBER:"Membro",BLOCK:"Blocco",BTN_OK:"OK",BTN_YES:"Si",BTN_NO:"No",BTN_SEND:"Inviare",BTN_SEND_MONEY:"Trasferire soldi",BTN_SEND_MONEY_SHORT:"Trasferire",BTN_SAVE:"Salvare",BTN_YES_SAVE:"Si, salvare",BTN_YES_CONTINUE:"Si, continuare",BTN_SHOW:"Mostrare",BTN_SHOW_PUBKEY:"Mostrare chiave pubblica",BTN_RELATIVE_UNIT:"Mostra importi in DU?",BTN_BACK:"Indietro",BTN_NEXT:"Avanti",BTN_CANCEL:"Cancellare",BTN_CLOSE:"Chiudere",BTN_LATER:"Più tardi",BTN_LOGIN:"Accedi",BTN_LOGOUT:"Log out",BTN_ADD_ACCOUNT:"Nuovo conto",BTN_SHARE:"Condividere",BTN_EDIT:"Modificare",BTN_DELETE:"Eliminare",BTN_ADD:"Aggiungere",BTN_SEARCH:"Cercare",BTN_REFRESH:"Aggiornare",BTN_RETRY:"Riprovare",BTN_START:"Iniziare",BTN_CONTINUE:"Continuare",BTN_CREATE:"Creare",BTN_UNDERSTOOD:"Ho capito",BTN_OPTIONS:"Opzioni",BTN_HELP_TOUR:"Mostrami le funzionalità",BTN_HELP_TOUR_SCREEN:"Scoprire questo schermo",BTN_DOWNLOAD:"Scaricare",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Scaricare estratto conto",BTN_MODIFY:"Modificare",CHOOSE_FILE:"Trascini un file <br/>o cliccare per selezionare",DAYS:"giorni",NO_ACCOUNT_QUESTION:"Non sei ancora membro? Registrati subito!",SEARCH_NO_RESULT:"Nessun risultato trovato",LOADING:"Caricando...",SEARCHING:"Cercando...",FROM:"Da",TO:"A",COPY:"Copiare",LANGUAGE:"Lingua",UNIVERSAL_DIVIDEND:"Dividendo universale",UD:"UD",DATE_PATTERN:"DD/MM/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(empty)",UID:"Pseudonimo",ENABLE:"Attivato",DISABLE:"Disattivato",RESULTS_LIST:"Risultati:",RESULTS_COUNT:"{{count}} risultati",EXECUTION_TIME:"eeseguit in {{duration|formatDurationMs}}",SHOW_VALUES:"Mostrare valori in modo trasparente?",POPOVER_ACTIONS_TITLE:"Opzioni",POPOVER_FILTER_TITLE:"Filtri",SHOW_MORE:"Mostrare di più",SHOW_MORE_COUNT:"(limite attuale di {{limit}})",POPOVER_SHARE:{TITLE:"Condividere",SHARE_ON_TWITTER:"Condividere su Twitter",SHARE_ON_FACEBOOK:"Condividere su Facebook",SHARE_ON_DIASPORA:"Condividere su Diaspora*",SHARE_ON_GOOGLEPLUS:"Condividere su Google+"},FILE:{DATE:"Data:",TYPE:"Tipo:",SIZE:"Dimensioni del file:",VALIDATING:"Validazione in corso..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Scegliere un file:",BTN_PICTURE_GALLERY:"Galleria",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Home",WOT:"Annuario",CURRENCY:"Moneta",ACCOUNT:"Mio conto",WALLETS:"I miei portafogli",TRANSFER:"Trasferire",SCAN:"Scansionare",SETTINGS:"Impostazioni",NETWORK:"Rete",TRANSACTIONS:"Miei pagamenti"},ABOUT:{TITLE:"A proposito",LICENSE:"<b>Free/libre software</b> (License GNU AGPLv3).",CODE:"Codice sorgente:",DEVELOPERS:"Sviluppatori:",FORUM:"Forum:",DEV_WARNING:"Attenzione!",DEV_WARNING_MESSAGE:"Questa app è ancora in sviluppo attivo.<br/>Facci sapere se trovi dei bugs!",DEV_WARNING_MESSAGE_SHORT:"Questa app è tutt'ora instabile (in sviluppo)",REPORT_ISSUE:"Segnalare un bug"},HOME:{TITLE:"Cesium",WELCOME:"Benvenuti nell'{{'COMMON.APP_NAME'|translate}} App!",MESSAGE:"Scambiate in moneta libera. {{currency|abbreviate}}!",BTN_CURRENCY:"Esplorare la moneta",BTN_ABOUT:"a proposito",BTN_HELP:"Aiuto",REPORT_ISSUE:"Segnalare un bug",NOT_YOUR_ACCOUNT_QUESTION:'Non sei proprietario del conto <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Disconettere questo conto",CONNECTION_ERROR:'Peer <b>{{server}}</b> irraggiungibile o indirizzo invalido. <br/><br/> Verifica tua connessione or cambia nodo. <a class="positive" ng-click="doQuickFix(\'settings\')">nell impostazioni. </a>.'},SETTINGS:{TITLE:"Impostazioni",NETWORK_SETTINGS:"Rete",PEER:"Indirizzo peer Duniter",PEER_CHANGED_TEMPORARY:"Indirizzo usato per un tempo determinato",USE_LOCAL_STORAGE:"Abilitare local storage",USE_LOCAL_STORAGE_HELP:"Permette di salvare tue impostazioni",ENABLE_HELPTIP:"Abilitare consigli dinamici",ENABLE_UI_EFFECTS:"Abilitare effetti visivi",HISTORY_SETTINGS:"Mio conto",DISPLAY_UD_HISTORY:"Mostrare dividendi prodotti?",AUTHENTICATION_SETTINGS:"Autenticazione",KEEP_AUTH:"Scadenza dell'autenticazione",KEEP_AUTH_SHORT:"Scadenza",KEEP_AUTH_HELP:"Definire quando l'autenticazione verrà eliminata dalla memoria.",KEEP_AUTH_OPTION:{NEVER:"Dopo ogni operazione",SECONDS:"Dopo {{value}}s d'inattività",MINUTE:"Dopo{{value}}min d'inattività",MINUTES:"Dopo {{value}}min d'inattività",HOUR:"Dopo {{value}}h d'inattività",ALWAYS:"Alla fine della sessione"},REMEMBER_ME:"Ricordarsi di me?",REMEMBER_ME_HELP:"Rimanere identificato/a da una sessione all'altra, conservando la chiave localmente.",PLUGINS_SETTINGS:"Estensioni",BTN_RESET:"Ripristini valori predefiniti",EXPERT_MODE:"Abilitare modlità eseperto",EXPERT_MODE_HELP:"Permette di vedere più dettagli",POPUP_PEER:{TITLE:"Peer Duniter",HOST:"Indirizzo",HOST_HELP:"Indirizzo: server:port",USE_SSL:"Securizzato?",USE_SSL_HELP:"(SSL Encryption)",BTN_SHOW_LIST:"Lista dei peers"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Blocco #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Blocco attuale",TITLE:"Blocco #{{number|formatInteger}}",COMPUTED_BY:"Calcolato da",SHOW_RAW:"Mostrare dati grezzi",TECHNICAL_DIVIDER:"Informazioni tecniche",VERSION:"Versione di formatto",HASH:"Hash calcolato",UNIVERSAL_DIVIDEND_HELP:"Moneta co-prodotta da ciasciun dei {{membersCount}} membri",EMPTY:"Nessun dati in questo blocco",POW_MIN:"Difficoltà minimale",POW_MIN_HELP:"Difficoltà imposta nel calcolo del hash",DATA_DIVIDER:"Dati",IDENTITIES_COUNT:"Nuove identità",JOINERS_COUNT:"Nuovi membri",ACTIVES_COUNT:"Rinnovi",ACTIVES_COUNT_HELP:"Membri che hanno rinnovato la loro presenza nella rete",LEAVERS_COUNT:"",LEAVERS_COUNT_HELP:"Membri che si sono fatti escludere dalla rete",EXCLUDED_COUNT:"Membri esclusi",EXCLUDED_COUNT_HELP:"Vecchi membri, esclusi per certificazione non rinnovata o soglia di certificazioni non raggiunta.",REVOKED_COUNT:"Identità revocate",REVOKED_COUNT_HELP:"Può essere che questi conti non siano più attivi",TX_COUNT:"Transazioni",CERT_COUNT:"Certificazioni",TX_TO_HIMSELF:"Cambio",TX_OUTPUT_UNLOCK_CONDITIONS:"Sbloccare condizioni",TX_OUTPUT_OPERATOR:{AND:"e",OR:"o"},TX_OUTPUT_FUNCTION:{SIG:"<b>Firma</b> della chive pubblica",XHX:"<b>Password</b>, incluso SHA256 =",CSV:"Bloccato per",CLTV:"Bloccato fino a"}},LOOKUP:{TITLE:"Blocchi",NO_BLOCK:"Nessun blocco",LAST_BLOCKS:"Ultimi blocchi:",BTN_COMPACT:"Compact"}},CURRENCY:{VIEW:{TITLE:"Moneta",TAB_CURRENCY:"Moneta",TAB_WOT:"Web of trust",TAB_NETWORK:"Rete",TAB_BLOCKS:"Blocchi",CURRENCY_SHORT_DESCRIPTION:"{{currency|capitalize}} è <b>una moneta libera</b>, {{firstBlockTime | formatFromNow}}. La rete comprende <b>{{N}} membri </b>, che produccono e ricevono un <a ng-click=\"showHelpModal('ud')\">Dividendo Universale</a> (DU), ogni {{dt | formatPeriod}}.",NETWORK_RULES_DIVIDER:"Regole della rete",CURRENCY_NAME:"Nome della moneta",MEMBERS:"Numero di membri",MEMBERS_VARIATION:"Variazione da {{duration|formatDuration}} (dall' ultimo UD)",MONEY_DIVIDER:"Moneta",MASS:"Massa monetaria",SHARE:"Quantità a testa",UD:"Dividendo universale",C_ACTUAL:"Crescita attuale",MEDIAN_TIME:"Current blockchain time",POW_MIN:"Difficoltà commune",MONEY_RULES_DIVIDER:"Regole della moneta",C_RULE:"Obbietivo teorico di crescità",UD_RULE:"Dividendo universale (formula)",DT_REEVAL:"Periodo tra due re-evaluazioni del UD",REEVAL_SYMBOL:"reeval",DT_REEVAL_VALUE:"Ogni <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Data della prima re-evaluzione del UD",SIG_QTY_RULE:"Numero di certificazioni requisiti per diventare membro",SIG_STOCK:"Numero massimo di certificazioni inviate da un membro",SIG_PERIOD:"Tempo minimo tra 2 certificazioni inviate da un unico membro.",SIG_WINDOW:"Periodo massimo prima che una certificazione venga studiata",SIG_VALIDITY:"Durata di vita di una certificazione che è state presa in conto",MS_WINDOW:"Periodo massimo prima che una certificazione pendente sia validata",MS_VALIDITY:"Durata di vita di un'adesione che è state presa in conto",STEP_MAX:"Distanza massima tra un nuovo membro e ogni membro referente.",WOT_RULES_DIVIDER:"Regole della Web of Trust",SENTRIES:"Numero di certificazioni (date <b>e</b> ricevute) per diventare membro referente ",SENTRIES_FORMULA:"Numero di certificazioni necessarie per diventare membro (formula)",XPERCENT:"Percentaggio minimino di membri referenti per rispettare la regola di distanza tra i membri",AVG_GEN_TIME:"Tempo medio tra due blocchi",CURRENT:"attuale",MATH_CEILING:"CEILING",DISPLAY_ALL_RULES:"Mostrare tutte le regole?",BTN_SHOW_LICENSE:"Mostrare licenza",WOT_DIVIDER:"Web of trust"},LICENSE:{TITLE:"Licensa attuale",BTN_DOWNLOAD:"Scaricare il file",NO_LICENSE_FILE:"File di licenza non trovato ."}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain time",LOADING_PEERS:"Caricando peers...",NODE_ADDRESS:"Indirizzo del peer",SOFTWARE:"Software",WARN_PRE_RELEASE:"Pre-versione (ultima versione stabile: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Versione <b>{{version}}</b> disponibile",WS2PID:"Identificativo :",PRIVATE_ACCESS:"Accesso privato",POW_PREFIX:"Prefisso Prova di Lavoro :",ENDPOINTS:{BMAS:"Endpoint sicuro (SSL)",BMATOR:"Interfaccia rete TOR",WS2P:"Interfaccia WS2P",ES_USER_API:"Cesium+ data node"}},INFO:{ONLY_SSL_PEERS:"I nodi non-SSL hanno un display semplificato perche Cesium funziona in modalità HTTPS."}},PEER:{PEERS:"Peers-Nodi",SIGNED_ON_BLOCK:"Firmato nel blocco",MIRROR:"Specchio",MIRRORS:"Specchio",MIRROR_PEERS:"Peers specchio",PEER_LIST:"Lista dei peers",MEMBERS:"Membri",MEMBER_PEERS:"Peers membri",ALL_PEERS:"Tutti i peers",DIFFICULTY:"Difficoltà",API:"API",CURRENT_BLOCK:"Blocco #",POPOVER_FILTER_TITLE:"Filtro",OFFLINE:"Sconessi",OFFLINE_PEERS:"Peers sconessi",BTN_SHOW_PEER:"Mostrare peer",VIEW:{TITLE:"Peer",OWNER:"Proprietà di ",SHOW_RAW_PEERING:"Vedere il documento di peering",SHOW_RAW_CURRENT_BLOCK:"Vedere l'utimo blocco (formatto grezzo)",LAST_BLOCKS:"Ultimi blocchi",KNOWN_PEERS:"Peers conosciuti :",GENERAL_DIVIDER:"Informazioni generali",ERROR:{LOADING_TOR_NODE_ERROR:"Impossibile ottenere i dati del peer, periodo di attesa scaduto.",LOADING_NODE_ERROR:"Impossibile ottenere i dati del peer"}}},WOT:{SEARCH_HELP:"Cercare (membro o chiave pubblica)",SEARCH_INIT_PHASE_WARNING:"La ricerca per le certificazioni pendenti <b>può essere lunga</b> durante la fase di pre-certificazione. La preghiamo di attendere...",REGISTERED_SINCE:"Certificato/a dal",REGISTERED_SINCE_BLOCK:"Certificato/a dal blocco #",NO_CERTIFICATION:"Nessuna certificazione valida",NO_GIVEN_CERTIFICATION:"Nessuna certificazione data",NOT_MEMBER_PARENTHESIS:"(non-membro)",IDENTITY_REVOKED_PARENTHESIS:"(identità revocata)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(Cancellazione dell'identità pendente)",EXPIRE_IN:"Scade",NOT_WRITTEN_EXPIRE_IN:"Scadenza <br/> ",EXPIRED:"Scaduto",PSEUDO:"Pseudonimo",SIGNED_ON_BLOCK:"Emessa nel blocco #{{block}}",WRITTEN_ON_BLOCK:"Scritta nel blocco #{{block}}",GENERAL_DIVIDER:"Informazioni generali",NOT_MEMBER_ACCOUNT:"Conto non-membro",NOT_MEMBER_ACCOUNT_HELP:"Questo è un semplice portafoglio osservatore, senza richiesta di certificazione emessa.",TECHNICAL_DIVIDER:"Dati tecnici",BTN_CERTIFY:"Certificare",BTN_YES_CERTIFY:"Si, certificare",BTN_SELECT_AND_CERTIFY:"Nuova certificazione",ACCOUNT_OPERATIONS:"Operazioni sul conto",VIEW:{POPOVER_SHARE_TITLE:"Identità {{title}}"},LOOKUP:{TITLE:"Annuario",NEWCOMERS:"Nuovi membri:",NEWCOMERS_COUNT:"{{count}} membri",PENDING:"Registrazioni pendenti",PENDING_COUNT:"{{count}} inscrizioni pendenti",REGISTERED:"Registrato {{sigDate | formatFromNow}}",MEMBER_FROM:"Membro dal {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Ultimi membri",BTN_PENDING:"Registrazioni pendenti",SHOW_MORE:"Vedere di più",SHOW_MORE_COUNT:"(limite attuale di {{limit}})",NO_PENDING:"Nessuna certificazione pendente.",NO_NEWCOMERS:"Nessun membro."},CONTACTS:{TITLE:"Contatti"},MODAL:{TITLE:"Ricerca"},CERTIFICATIONS:{TITLE:"{{uid}} - Certificazioni",SUMMARY:"Certificazioni ricevute",LIST:"Dettagli delle certificazioni ricevute",PENDING_LIST:"Certificazioni pendenti",RECEIVED:"Certificazioni ricevute",RECEIVED_BY:"Certifications ricevute da {{uid}}",ERROR:"Certificazioni ricevute per errore",SENTRY_MEMBER:"Membro referente"},OPERATIONS:{TITLE:"{{uid}} - Operazioni"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certificazioni inviate",SUMMARY:"Certificazioni inviate",LIST:"Dettagli delle certificazioni inviate",PENDING_LIST:"Certificazioni ",SENT:"Certificazioni inviate",SENT_BY:"Certificazioni inviate da {{uid}}",ERROR:"Certificazioni inviate per errore"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Accedi',SCRYPT_FORM_HELP:"Accedi con tuoi dati <br> Ricordati di verificare che stai utilizzando la chiave del tuo conto.",PUBKEY_FORM_HELP:"Scrivi qui la tua chiave privata:",FILE_FORM_HELP:"Scegliere un portachiavi da utilizzare:",SCAN_FORM_HELP:"Scansiona il codice QR di un portafoglio.",SALT:"Identificativo segreto",SALT_HELP:"Identificativo segreto",SHOW_SALT:"Mostrare identificativo segreto?",PASSWORD:"Passsord",PASSWORD_HELP:"Password",PUBKEY_HELP:"Chiave pubblica, pseudonimo",NO_ACCOUNT_QUESTION:"Ancora non hai un conto?",HAVE_ACCOUNT_QUESTION:"Hai già un account?",CREATE_ACCOUNT:"Creare un conto",CREATE_FREE_ACCOUNT:"Crea un conto gratuito",FORGOTTEN_ID:"Non ricordi la password?",ASSOCIATED_PUBKEY:"Chiave pubblica:",BTN_METHODS:"Altri metodi",BTN_METHODS_DOTS:"Cambiare metodo...",METHOD_POPOVER_TITLE:"Metodi",MEMORIZE_AUTH_FILE:"Memorizzare questo portachiavi per la durata di questa sessione",SCRYPT_PARAMETERS:"Parametri (Scrypt) :",AUTO_LOGOUT:{TITLE:"Informazioni",MESSAGE:'<i class="ion-android-time"></i> Sei stato <b>sconesso/ b> automaticamente, per un periodo di inattività prolongata',BTN_RELOGIN:"Accedi",IDLE_WARNING:"Sarai disconesso in... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Salatura standard (imp. predefinita)",SCRYPT_ADVANCED:"Salatura avanzata",FILE:"File del portachiavi",PUBKEY:"Chiave pubblica soltanto",SCAN:"Scansiona un codice QR"},SCRYPT:{SIMPLE:"Salatura leggera",DEFAULT:"Salatura standard",SECURE:"Salatura sicura",HARDEST:"Salatura più sicura",EXTREME:"Salatura estrema",USER:"Salatura personalizzata",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Format del file atteso: <b>.dunikey</b> (type PubSec). Altri formati in sviluppo (EWIF, WIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Autenticazione',BTN_AUTH:"Autenticarsi",GENERAL_HELP:"Autenticati :",EXPECTED_UID_HELP:'Effettua il login nell\'account <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Si prega di autenticarsi sul portafoglio <i class="ion-key"></i> {{pubkey|formatPubkey}}:',SCAN_FORM_HELP:"Scansiona il codice QR della <b>chiave privata</b> del portafoglio."},ACCOUNT:{TITLE:"Mio conto",BALANCE:"Saldo",LAST_TX:"Ultime transazioni",BALANCE_ACCOUNT:"Saldo del conto",NO_TX:"Nessuna transazione",SHOW_MORE_TX:"Mostrare di più",SHOW_ALL_TX:"Mostrare tutte",TX_FROM_DATE:"(limite attuale del {{fromTime|medianFromNowShort}})",PENDING_TX:"Transazioni pendenti",VALIDATING_TX:"Transazioni in corso di convalida",ERROR_TX:"Transaction non eseguite",ERROR_TX_SENT:"Transazioni inviate",PENDING_TX_RECEIVED:"Transazioni in attesa di recezione",EVENTS:"Eventi",WAITING_MEMBERSHIP:"Richiesta di certificazione inviata. In attesa di validazione.",WAITING_CERTIFICATIONS:"Hai bisogno di {{needCertificationCount}} certificazione(i) per diventare membro.",WILL_MISSING_CERTIFICATIONS:"Mancherai a breve <b>di certificazioni</b> (occorrono almeno {{willNeedCertificationCount}} altre certificazioni)",WILL_NEED_RENEW_MEMBERSHIP:"Tua certificazione <b>scaderà{{membershipExpiresIn|formatDurationTo}}</b>. Ricordati di <a ng-click=\"doQuickFix('renew')\">rinnovarla</a> prima.",NEED_RENEW_MEMBERSHIP:"You are no longer a member because your membership <b>has expired</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NO_WAITING_MEMBERSHIP:"Nessuna domanda di adesione pendente. Se desideri <b>diventare membro</b>, ricordati di <a ng-click=\"doQuickFix('membership')\">inviare tua domanda di adesione</a>.",CERTIFICATION_COUNT:"Certificazioni ricevute",CERTIFICATION_COUNT_SHORT:"Certificazioni",SIG_STOCK:"Stock di certificazioni da inviare",BTN_RECEIVE_MONEY:"Ricevere",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Usare un'altra identità..",BTN_FIX_MEMBERSHIP:"Invia nuovamente di adesione...",BTN_MEMBERSHIP_RENEW:"Rinnovare adesione",BTN_MEMBERSHIP_RENEW_DOTS:"Rinnovare adesione ...",BTN_MEMBERSHIP_OUT_DOTS:"Revocare adesione...",BTN_SECURITY_DOTS:"Login e securità...",BTN_SHOW_DETAILS:"Visualizzare dati tecnici",LOCKED_OUTPUTS_POPOVER:{TITLE:"Importo bloccata",DESCRIPTION:"Ecco le condizioni per sbloccare questo importo:",DESCRIPTION_MANY:"Questa transazione è fatta da diverse parti, di cui queste sono le condizioni di sblocco:",LOCKED_AMOUNT:"Condizioni per l'importo:"},NEW:{TITLE:"Registrazione",INTRO_WARNING_TIME:"Crearsi un conto su {{name|capitalize}} è molto semplice. E consigliato prendere il giusto tempo per farlo correttamente (per evitare di dimenticare passwords, pseudonimi etc.).",INTRO_WARNING_SECURITY:"Occorre verificare che il hardware che stai utilizzando (computer, tablet, cellulare) <b>è sicuro e affidabile</b>.",INTRO_WARNING_SECURITY_HELP:"Anti-virus aggiornato, firewall abilitato, session protteta da un password o codice PIN...",INTRO_HELP:"Cliccare <b> {{'COMMON.BTN_START'|translate}}</b> per avviare la creazione del conto. Ti accompagniamo passo alla volta.",REGISTRATION_NODE:"Tua iscrizione verrà salvata dal nodo peer Duniter <b>{{server}}</b>, è verrà poi condivisa nella rete della moneta.",REGISTRATION_NODE_HELP:"Se non ti fidi di questo peer, per favore cambialo <a ng-click=\"doQuickFix('settings')\">nelle impostazioni/a> di Cesium.",SELECT_ACCOUNT_TYPE:"Scegliere un tipo di conto:",MEMBER_ACCOUNT:"Conto membro",MEMBER_ACCOUNT_TITLE:"Creare un conto membro",MEMBER_ACCOUNT_HELP:"Se non sei ancora registrato come individuo (un conto a persona soltanto).",WALLET_ACCOUNT:"Semplice portafoglio",WALLET_ACCOUNT_TITLE:"Creare un portafoglio",WALLET_ACCOUNT_HELP:"Se rappresenti un'azienda, associazione, altra ente o hai necessita di un altro portafoglio. Nessun Dividendo Universale sarà prodotto da questo conto.",SALT_WARNING:"Scegliere un identificativo segreto.<br/>E necessario per ogni connessione a questo conto.<br/><br/><b>Accertati di ricordarlo!</b>.<br/>Se lo dimentichi non ti potrà aiutare nessuno!",PASSWORD_WARNING:"Scegliere una password.<br/>E necessario per ogni connessione a questo conto.<br/><br/><b>Accertati di ricordarla!</b>.<br/>Se la dimentichi non ti potrà aiutare nessuno!",PSEUDO_WARNING:"Segliere uno pseudonimo.<br/>Puo essere utile per chi ti cerca nella rete.<br/><br/>.L'utilizzo delle<b>virgole, spazi e accenti</b> è vietato.<br/><div class='hidden-xs'><br/>Esempio: <span class='gray'>JohnDalton, JackieChan, etc.</span>",PSEUDO:"Pseudonimo",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Confermare",SALT_CONFIRM_HELP:"Confermare l'identificativo segreto",PASSWORD_CONFIRM:"Confermare",PASSWORD_CONFIRM_HELP:"Confermare la password",SLIDE_6_TITLE:"Conferma:",COMPUTING_PUBKEY:"Calcolando...",LAST_SLIDE_CONGRATULATION:"Hai riempito tutti i campi richiesti.<br/><b>Puoi inviare la richiesta di creazione del conto</b>.<br/><br/>Per tua informazione, la chiave pubblica qui sotto identifica il tuo futuro conto.<br/>Puo essere communicata a chi ti deve pagare per esempio.<br/>Quando tuo conto verrà approvato potrai trovare la chiave qui <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Warning:</b> tuo identificare segreto, tua password e tuo pseudonimo non si possono cambiare.<br/><b>Ricordali per sempre!</b><br/><b>Sei sicuro/a</b>di voler inviare questa richiesta di creazione di conto?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Warning:</b> tuo identificare segreto, tua password e tuo pseudonimo non si possono cambiare..<br/><b>Ricordali per sempre!</b><br/><b>Sei sicuro/a</b> di voler continuare?',CHECKING_PSEUDO:"Verificazione in corso...",PSEUDO_AVAILABLE:"Pseudonimo disponibile",PSEUDO_NOT_AVAILABLE:"Pseudonimo indisponibile",INFO_LICENSE:"TPer aderire alla moneta, ti chiediamo di leggere e accetare le condizioni della licenza.",BTN_ACCEPT:"Accetto",BTN_ACCEPT_LICENSE:"Accetto la licenza"},POPUP_REGISTER:{TITLE:"Pseudonimo",HELP:"Un pseudonimo è necessario per che gli altri ti possino trovare."},SELECT_IDENTITY_MODAL:{TITLE:"Selezionare una identità",HELP:'Più <b>identità diverse</b> sono state inviate per la chiave pubblica <span class="gray"><i class="ion-key"></i> {{pubkey|formatPubkey}}</span>.<br/>Seleziona un dossier da usare :'},SELECT_WALLET_MODAL:{TITLE:"Selezione del portafoglio"},WALLET_LIST:{TITLE:"Portafoglio secondario",BTN_NEW:"Aggiungi un portfolio",NO_WALLET:"Nessun portafoglio secondario",BTN_DELETE:"Rimuovi un portafoglio secondario ...",BTN_RENAME:"Rinominare il portafoglio",EDIT_POPOVER:{TITLE:"Rinominare il portafoglio",HELP:"Compila il nuovo nome",NAME_HELP:"Nome del portafoglio"}},SECURITY:{ADD_QUESTION:"Aggiungere domanda personalizzata",BTN_CLEAN:"Svuotare",BTN_RESET:"Reset",DOWNLOAD_REVOKE:"Salvare un file di revoca",DOWNLOAD_REVOKE_HELP:"Avere une file di revoca è necessario in caso di smarrimento dei tuoi credenziali. Ti permette <b> di rimuovere tuo conto dalla Web Of Trust</b>, per farlo tornare ad essere un semplice portafoglio.",HELP_LEVEL:"Scegliere <strong> almeno{{nb}} domande </strong> :",LEVEL:"Livello di sicurezza",LOW_LEVEL:'Basso <span class="hidden-xs">(minimo di 2 domande)</span>',MEDIUM_LEVEL:'Medio <span class="hidden-xs">(minimo di 4 domande)</span>',QUESTION_1:"Qual'era il nome del tuo miglior amico quando eri adolescente ?",QUESTION_2:"Qual'era il nome del tuo primo animale domestico?",QUESTION_3:"Qual'è il primo piatto che imparasti a cucinare?",QUESTION_4:"Qual'è il primo film che hai visto al cinema?",QUESTION_5:"Qual'era la destinazione del tuo primo volo?",QUESTION_6:"Qual'era il nome del tuo professore preferito in scuola ?",QUESTION_7:"Quale sarebbe il tuo lavoro preferito?",QUESTION_8:"Qual'è il tuo libro per bimbi preferito?",QUESTION_9:"Qual'era il marchio della tua prima macchina?",QUESTION_10:"Qual'era il tuo nomignolo da ragazzino/a ?",QUESTION_11:"Qual'era il tuo personaggio di film o attore preferito quand eri studente?",QUESTION_12:"Qual'era il tuo musicista/cantante/grupo preferito quand eri studente ?",QUESTION_13:"In che città si sono conosciuti tuoi genitori ?",QUESTION_14:"Qual'era il nome del tuo primo capo ?",QUESTION_15:"Qual'è il nome della strada dove sei cresciuto/a ?",QUESTION_16:"Qual'è il nome della tua spiaggia preferita ?",QUESTION_17:"Qual'è il primo album che ti sei comprato ?",QUESTION_18:"Qual'è il nome della squadra di sport preferita ?",QUESTION_19:"Cosa faceva tuo nonno ?",RECOVER_ID:"Ricuperare mia password...",RECOVER_ID_HELP:"Se hai un<b<file di backup dei tuoi credenziali</b>, li puoi trovare rispondendo correttamente alle tue domande personalizzate.",REVOCATION_WITH_FILE:"Revocare il mio conto membro...",REVOCATION_WITH_FILE_DESCRIPTION:"Se pensi di aver perso <b>definitivamente tuoi credenziali</b> di conto membro (o che la sicurezza del tuo conto è compromessa), puoi usare <b>il file di revoca</b> del conto <b>per forzare la sua uscita permanente dalla Tela di Fiducia</b>.",REVOCATION_WITH_FILE_HELP:"Se hai <b>definitivamente perso tuoi credenziali (o se la sicurezza del tuo conto è compromessa), puoi usare <b>il file di revoca</b> del conto <b>per uscire dalla Web Of Trust</b>.",REVOCATION_WALLET:"Revocare questo conto subito",REVOCATION_WALLET_HELP:"Richiedere la cancellazione dell'identità <b>revocherà la tua adesione alla tua rete</ b> (con certezza per il pseudonimo e la chiave pubblica associata). Il conto non potrà più produrre il Dividendo Universale.<br/>Nonostante ciò, puoi ancora usare il conto come semplice portafoglio.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Salvare miei credenziali...",SAVE_ID_HELP:"Creare un file di backup, per <b>ricuperare vostra password</b> (e l'identificativo segreto) <b> in caso di smarrimento</b>. Il file è <b>sicuro</ b> (cryptato) utilizzando le domande personalizzate.",STRONG_LEVEL:'Alto <span class="hidden-xs ">(minimo di 6 domande)</span>',TITLE:"Conto e sicurezza"},FILE_NAME:"{{currency}} - Account statement {{pubkey|formatPubkey}} to {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Amount",COMMENT:"Comment"}},TRANSFER:{TITLE:"Bonifico",SUB_TITLE:"Fare un bonifico",FROM:"Da",TO:"A",AMOUNT:"Importo",AMOUNT_HELP:"Importo",COMMENT:"Commenti",COMMENT_HELP:"Commenti",BTN_SEND:"Inviare",BTN_ADD_COMMENT:"Scrivere un comento ?",WARN_COMMENT_IS_PUBLIC:"Ti avvertiamo <b>che i commenti sono pubblici</b> (non cifrati).",MODAL:{TITLE:"Bonifico"}},ERROR:{POPUP_TITLE:"Errore",UNKNOWN_ERROR:"Errore",CRYPTO_UNKNOWN_ERROR:"Suo navigatore non sembra compatibile con le funzionalità di cryptografia.",EQUALS_TO_PSEUDO:"Deve essere diverso dal pseudonimo",EQUALS_TO_SALT:"Deve essere diverso dal identificativo segreto",FIELD_REQUIRED:"Campo obbligatorio.",FIELD_TOO_SHORT:"Valore troppo corto.",FIELD_TOO_SHORT_WITH_LENGTH:"Valore troppo corto ({{minLength}} caratteri min)",FIELD_TOO_LONG:"Valore troppo lungo",FIELD_TOO_LONG_WITH_LENGTH:"Valore troppo lungo ({{maxLength}} caractteri max)",FIELD_MIN:"Valore minimo : {{min}}",FIELD_MAX:"Valore massimo : {{max}}",FIELD_ACCENT:"Virgole e caratteri accentati vietati",FIELD_NOT_NUMBER:"Valore numerico atteso",FIELD_NOT_INT:"Valore intero atteso",FIELD_NOT_EMAIL:"Indirizzo mail non valido",PASSWORD_NOT_CONFIRMED:"Non corrisponde alla password.",SALT_NOT_CONFIRMED:"Non corrisponde al identificativo segreto.",SEND_IDENTITY_FAILED:"Iscrizione fallita.",SEND_CERTIFICATION_FAILED:"Certificazione fallita.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"Non puoi inviare certificazioni perche tuo conto <b>non è ancora un conto membro</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"Non puoi inviare certificazioni adesso perche <b>non sei ancora membro</b>.<br/><br/>Devi ancora entrare nella WOT.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Impossibile certificare questo conto. Nessuna richiesta di certificazione trovata o bisogna rinnovarla.",LOGIN_FAILED:"Errore di login.",LOAD_IDENTITY_FAILED:"Impossibile caricare la tua identità.",LOAD_REQUIREMENTS_FAILED:"Impossibile caricare i prerequisiti dell'identità.",SEND_MEMBERSHIP_IN_FAILED:"Ingresso nella WOT fallito.",SEND_MEMBERSHIP_OUT_FAILED:"Errore nel invio della revocazione.",REFRESH_WALLET_DATA:"Impossibile aggiornare il portafoglio.",GET_CURRENCY_PARAMETER:"Impossibile ricuperare i parametri della moneta.",GET_CURRENCY_FAILED:"Impossibile caricare la moneta. Riprovare più tardi.",SEND_TX_FAILED:"Impossibile eseguire la transazione.",ALL_SOURCES_USED:"Per favore aspetta il calcolo del prossimo blocco (Tutte le tue fonti di moneta sono state utilizzate).",NOT_ENOUGH_SOURCES:"Non hai abbastanza cambio per inviare questo importo in una sola transazione.<br/>Importo massimo: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Errore nella creazione del tuo conto membro.",RESTORE_WALLET_DATA_ERROR:"Errore nel aggiornamento delle impostazioni definite in local storage.",LOAD_WALLET_DATA_ERROR:"Errore nel caricamento dei dati del portafoglio.",COPY_CLIPBOARD_FAILED:"Impossibile copiare al clipboard",TAKE_PICTURE_FAILED:"Impossibile ricuperare foto.",SCAN_FAILED:"Impossibile scansionare il codice QR.",SCAN_UNKNOWN_FORMAT:"Codice non riconosciuto.",WOT_LOOKUP_FAILED:"Ricerca fallita.",LOAD_PEER_DATA_FAILED:"Peer Duniter non accessibile. Riprovare più tardi.",NEED_LOGIN_FIRST:"Accedi al tuo conto prima.",AMOUNT_REQUIRED:"Importo necessario.",AMOUNT_NEGATIVE:"Importo negativo non consentito.",NOT_ENOUGH_CREDIT:"Saldo insufficiente",INVALID_NODE_SUMMARY:"Impossibile comunicare col peer o indirizzo non valido",INVALID_USER_ID:"Il campo del 'pseudonimo' non deve avere spazi vuoti o caratteri speciali.",INVALID_COMMENT:"Il formato del campo 'reference' è errato.",INVALID_PUBKEY:"If formato della chiave pubblica è errato.",IDENTITY_REVOKED:"Questa identità <b>è stata revocata</b>. Non puo più diventare membro.",IDENTITY_REVOKED_WITH_TIME:"Questa identità <b>è stata revocata {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). Non puo più diventare membro.",IDENTITY_PENDING_REVOCATION:"L'<b>annulamento di questa identità</b> è stata richiesta ed è in corso di evaluazione. Capacità ad inviare certificazioni disabilitata",IDENTITY_INVALID_BLOCK_HASH:"Questa richiesta di certificazione non è più valida (perche si riferisce ad un blocco che è stato eliminato dai peers): la persona deve rinnovare la sua domanda di certificazione <b>prima</b> di essere certificata.",IDENTITY_EXPIRED:"Questa identità è scaduta: la persona deve fare una nuova domanda di certificazione <b>prima di</b> essere certificata.",IDENTITY_SANDBOX_FULL:"Il nodo Duniter utilizzato da Cesium non puo ricevere altre domande di certificazione per ora, la lista d'attesa è piena.<br/><br/>Riprova più tardi o scegli un'altro peer Duniter (nelle <b>Impostazioni</b>).",IDENTITY_NOT_FOUND:"Identità non trovata",IDENTITY_TX_FAILED:"Impossibile caricare le operazioni",WOT_PENDING_INVALID_BLOCK_HASH:"Adesione non valida.",WALLET_INVALID_BLOCK_HASH:"Tua domanda di certificazione non è più valida (perche si riferisce ad un blocco che è stato eliminato dai peers).<br/>Devi <a ng-click=\"doQuickFix('renew')\">rinnvoare la tua richiesta di adesione alla WOT</a> per risolvere il problema.",WALLET_IDENTITY_EXPIRED:"La pubblicazione della tua identità <b>è scaduta</b>.<br/>Devi <a ng-click=\"doQuickFix('fixIdentity')\">ripubblicare la tua identità</a> per risolvere il problema.",WALLET_REVOKED:"La tua identità è stata <b>revocata</b>: ne tuo pseudonimo ne tua chiave pubblica sarano utilizzati in futuro.",WALLET_HAS_NO_SELF:"La tua identità deve prima essere stata pubblicata e non essere ancora scaduta.",AUTH_REQUIRED:"Autenticazione necessaria.",AUTH_INVALID_PUBKEY:"La chiave pubblica non corrisponde al conto conesso.",AUTH_INVALID_SCRYPT:"Password o nome di utente non valido.",AUTH_INVALID_FILE:"File di portachiavi non valido.",AUTH_FILE_ERROR:"Impossibile aprire il file di portachiavi",IDENTITY_ALREADY_CERTIFY:"Hai <b>già certificato</b> questa identità.<br/><br/>Tuo certificato è ancora valido (scade {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Hai <b>già certificato</b> questa identità.<br/><br/>Tua certificazione è ancora pendente (Scadenza del periodo di  treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Impossibile certificare",LOAD_NEWCOMERS_FAILED:"Impossibile caricare i nuovi membri.",LOAD_PENDING_FAILED:"Impossibile caricare le certificazioni pendenti.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Devi <b>essere membro</b> per poter fare questo.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Devi aver <b>publiccato tua identità</b> per poter fare questo.",GET_BLOCK_FAILED:"Impossibile caricare il blocco",INVALID_BLOCK_HASH:"Blocco non trovato (hash errato)",DOWNLOAD_REVOCATION_FAILED:"Errore avvenuto nel download del file di cancellazione d'identità.",REVOCATION_FAILED:"Errore avvenuto durante la richiesta di cancellazione dell'identità.",SALT_OR_PASSWORD_NOT_CONFIRMED:"identificativo segreto o password sbagliati",RECOVER_ID_FAILED:"Impossibile ricuperare la password",LOAD_FILE_FAILED:"Impossibile caricare il file",NOT_VALID_REVOCATION_FILE:"File di cancellazione dell'identità errato (formato di file incorreto)",NOT_VALID_SAVE_ID_FILE:"File di backup dei credenziali errato (formato di file incorreto)",NOT_VALID_KEY_FILE:"File di portachiavi non valido (formato non riconosciuto)",EXISTING_ACCOUNT:"Tuoi credenziali corrispondono a quelli di un conto già esistente,di cui <a ng-click=\"showHelpModal('pubkey')\">la chiave pubblica</a> è:",EXISTING_ACCOUNT_REQUEST:"Per favore cambi tuoi credenziali in modo che corrispondino ad un conto non utilizzato.",GET_LICENSE_FILE_FAILED:"Impossibile caricare il file della licenza",CHECK_NETWORK_CONNECTION:"Nessun peer sembra disponibile.<br/><br/>Per favore <b>verifica la tua connessione Internet</b>.",ISSUE_524_TX_FAILED:"Bonifico .<br/><br/>Un message a été envoyé aux développeurs pour faciliter la résolution du problème. <b>Merci de votre aide</b>."},INFO:{POPUP_TITLE:"Informazioni",CERTIFICATION_DONE:"Identità firmata con successo",NOT_ENOUGH_CREDIT:"Saldo insufficiente",TRANSFER_SENT:"Transazione inviata con successo",COPY_TO_CLIPBOARD_DONE:"Copiato con successo",MEMBERSHIP_OUT_SENT:"Revoca dell'identità inviata",NOT_NEED_MEMBERSHIP:"Già un membro.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Questa identità mancherà a breve di certificazioni (almeno {{willNeedCertificationCount}}).",REVOCATION_SENT:"Revoca dell'identità inviata",REVOCATION_SENT_WAITING_PROCESS:"Cancellazione dell'identità <b>inviata con successo</b>. In attesa di validazione.",FEATURES_NOT_IMPLEMENTED:"Questa funzionalità non è ancora disponibile.<br/><br/>Vuoi contribuire per velocizzarne la disponibilità? ;)",EMPTY_TX_HISTORY:"Nessuna operazione da esportare"},CONFIRM:{POPUP_TITLE:"<b>Conferma</b>",POPUP_WARNING_TITLE:"<b>Avviso</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Avvertimento di sicurezza</b>',CERTIFY_RULES_TITLE_UID:"Certificare {{uid}}",CERTIFY_RULES:'<b class="assertive">Non certificare un conto</b> se credi che: <ul><li>1.) l\'identità della persona potrebbe essere finta.<li>2.) la oersona ha già un conto certicato.<li>3.) la persona trasgredisce la regola 1 o 2 o entrambe. (Certifica conti finti o gemelli).</ul></small><br/>Sei sicuro/a di voler certificare questa identità?',TRANSFER:"<b>Resoconto del bonifico:</b><br/><br/><ul><li> - Inviato da: <b>{{from}}</b></li><li> - A: <b>{{to}}</b></li><li> - Importo: <b>{{amount}} {{unit}}</b></li><li> - Comento: <i>{{comment}}</i></li></ul><br/><b>Sei sicuro di voler procedere con questo bonifico?</b>",MEMBERSHIP_OUT:"Questa operazione è <b>irreversibile</b>.<br/></br/><b>Sei sicuro/a di voler cancellare la tua presenza nella WOT?</b>",MEMBERSHIP_OUT_2:"Questa operazione è <b>irreversibile</b>!<br/><br/>Sei sicuro/a <b>di voler revocare la tua identità</b>?",LOGIN_UNUSED_WALLET_TITLE:"Errore di battitura?",LOGIN_UNUSED_WALLET:"Il conto sembra <b>inattivo</b>.<br/><br/>Probabilmente è un<b>errore di battitura</b> mientre digitavi i tuoi credenziali. Per favore riprova, verificando che la <b>chiave pubblica sia tua<b/>.",FIX_IDENTITY:"Lo pseudonimo <b>{{uid}}</b> verrà pubblicato nuovamente. Si sostituirà alla precedente pubblicazione che è scaduta.<br/></br/><b>Sei sicuro/a</b> di voler procedere?",FIX_MEMBERSHIP:"Tua domanda di certificazione sarà inviata alla rete.<br/></br/><b>Sei sicuro/a?</b>",MEMBERSHIP:"Tua domanda per diventare membro sta per essere inviata alla rete.<br/></br/><b>Sei sicuro/a/b> di voler continuare ?",RENEW_MEMBERSHIP:"Tua adesione verrà rinnovata.<br/></br/><b>Sei sicuro/a?</b>",REVOKE_IDENTITY:"Stai per <b>revocare definitivamente questa identità</b>.<br/><br/>La chiave pubblica e lo pseudonimo associato <b>non saranno mai più utilizzati</b> (per un conto membro).<br/></br/><b>Sei sicuro/a</b> di voler revocare questa identità?",REVOKE_IDENTITY_2:"Questa operazione è <b>irreversibile</b>!<br/><br/>Sei sicuro/a di volern<b>revocare questa identità</b>?",NOT_NEED_RENEW_MEMBERSHIP:"Tua presenza nella rete non deve ancora essere rinnovata (scaderà tra {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Sei sicuro/a</b> di voler rinnovare la tua presenza?",SAVE_BEFORE_LEAVE:"Vuoi <b>salvare tue modifiche</b> prima di uscira dalla pagina?",SAVE_BEFORE_LEAVE_TITLE:"Modifiche non salvate",LOGOUT:"Sei sicuro/a di voler chiudere la sessione?",USE_FALLBACK_NODE:"Peer <b>{{old}}</b> indisponibile o indirizzo errato.<br/><br/>Vuoi utilizzare temporanemante il <b>{{new}}</b> nodo?",INVALID_FILE_FORMAT:"Formato file non valido.",SAME_TX_RECIPIENT:"Il destinatario deve essere diverso dall'emittente."},DOWNLOAD:{POPUP_TITLE:"<b>File di cancellazione dell'identità/b>",POPUP_REVOKE_MESSAGE:"Per migliorare la sicurezza del tuo conto, scarica <b>il documento di revoca del conto</b>. Ti consentirà di revocare tuo conto (nel caso di violazione del conto, della tua identità, conto creato con errori, etc.).<br/><br/><b>Tiene questo document al sicuro.</b>"},HELP:{TITLE:"Aiuto online",JOIN:{SECTION:"Entrare nella rete",SALT:"Il tuo identificativo segreto è molto importante. E utilizzato per cryptare tua password che permette poi di calcolare tua <span class=\"text-italic\">chiave pubblica</span> (suo numero) è la chiave privata che ne consenta l'accesso.<br/><b>Ricordati bene di questo identificativo</b>, perche non ti potrà aiutare nessuno se lo perdi.<br/>Tra l'altro, non puo essere cambiato senza dover creare un conto nuovo.<br/><br/>Raccomandiamo che sia abbastanza lungo (8 caratteri almeno) è il più originale possibile. (buona entropia)",PASSWORD:"La password è molto importante, è utilizzata per calcolare tuo numero di conto (tua chiave pubblica) e la chiave privata che ne consento l'accesso.<br/><b>Ricordatila bene</b>, perche non ti potrà aiutare nessuno se lo perdi.<br/>Tra l'altro, non puo essere cambiata senza dover creare un conto nuovo.<br/><br/>Una buona password (preferibilmente) è composta da almeno 8 caratteri, con almeno una maiuscola e un numero.",PSEUDO:'Un pseudonimo è utilizzato quando ti iscrivi come <span class="text-italic">membro</span>. E sempre associato ad un portafoglio (con sua <span class="text-italic">chiave pubblica</span>).<br/>E pubblicato sulla rete perche gli altri membri possino identificarla, certificarla o invarle soldi. <br/> Lo pseudonimo deve essere unico nella rete (tra quelli utilizzati adesso e in passato).'},LOGIN:{SECTION:"Accedi",PUBKEY:"Chiave pubblica del conto",PUBKEY_DEF:'La chiave pubblica del portachiavi è generata dai credenziali, ma non corrispode ad un conto già utilizzato.<br/><b>Accertati che tua chiave pubblica corrisponda al tuo conto</b>. Nel caso contrario, sarai conesso/a ad un conto probabilmente mai usato, datto che il rischio di collisione con un conto esistente è molto ridotto.<br/><a href="https://en.wikipedia.org/wiki/Elliptic_curve_cryptography" target="_ system">Saperne di più sulla cryptografia </a> con chiave pubblica.',METHOD:"Metodi di connessione",METHOD_DEF:"Hai diverse opzioni per accedere ad un portafoglio:<br/> - Accedendo con <b>salatura (leggera o sicura)</b> tua password sarà cryptata dal tuo identificativo segreto per scoraggiare tentativi di attachi di 'brute force' (per esempio con passwords conosciute).<br/> - Accedendo con la <b>chiave pubblica</b> ti evita di dover digitare tuoi credenziali che ti saranno chiesti solo quando vorrai fare una operazione col conto.<br/> - Accedendo <b>con un portachiavi</b> che leggerà tue chiave pubbliche e private da un file esterno, senza che tu li debba entrare."},GLOSSARY:{SECTION:"Glossario",PUBKEY_DEF:"Una chiave pubblica permette di identificare un portafoglio. Puo anche identificare un membro. In Cesium  è calcolata con la password e lo pseudonimo.",MEMBER:"Membro",MEMBER_DEF:'Un membro è una persona reale e viva, che desidera participare liberamente alla communità monetaria. Questo membro riceverà un Dividendo Universale, a secondo delle regole definite <span class="text-italic">nei parametri della moneta</span>.',CURRENCY_RULES:"Regole della moneta",CURRENCY_RULES_DEF:'I parametri delle moneta sono state definite per sempre e per tutti. I parametri con i quali la moneta si comporta: il calcolo del Dividendo Universale, il numero di certificazioni necessarie per diventare membro, il numero massimo di certificazioni che un membro puo inviare, etc.<br/><br/>I parametri non possono essere modificati perche c\'è una<span class="text-italic">Blockchain</span> che implementa e esegue queste regole e verifica costantemente la loro applicazione. <a href="#/app/currency">Vedere i parametri </a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'La Blockchain è un sistema decentralizzato che, nel caso di Duniter, permette di rispettare e implementare <span class="text-italic">le regole della moneta</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Saperne di più su Duniter</a> e il funzionamento della blockchain.',UNIVERSAL_DIVIDEND_DEF:'Il Dividendo Universale (UD) è la quantità di moneta co-creata da ogni membro, seguendo le formule mathematiche definite nelle <span class="text-italic">regole della moneta</span>.<br/>Al inizio di ogni periodo, il conto di ogni membro riceve una quantità uguale della nuova moneta creata. <br/><br/>Il DU conosce una crescita costante per rimanere equo nei confronti dei membri (attuali e passati). Viene calcolato tenendo in conto la speranza di vità media, cosi come dimostrato nella Teoria Relativa della Moneta (TRM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Saperne di più sulla TRM</a> e la moneta libera.'},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> permette la scoperta dei <b>parametri della moneta</b> e la sua condizione presente.",CURRENCY_WOT:"Il <b>numero di membri</b> mostra <b>le dimensioni della WoT e la sua evoluzione </b>.",CURRENCY_MASS:"In evidenza qui è <b>l'importo totale</b> attualmente in circolazione e la sua <b> ripartizione media </b> a testa.<br/><br/>Questa cifra permette di avere un'idea <b>del valore di qualsiasi importo</b>, in base a quello <b>hanno gli altri</b> sul loro conto (in media).",CURRENCY_UNIT_RELATIVE:"L'unità usata qui (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa che gli importi in {{currency|capitalize}} sono stati divisi dal <b>Dividendo Universale</b> (DU).<br/><br/><small>Questa unità relativa <b>ha senso</b> perche è stabile in contrasto con la massa monetaria che cresce costantemente.</small>",CURRENCY_CHANGE_UNIT:"Questa opzione <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permette di <b>permutare unità</b> per vedere gli importi in <b>{{currency|capitalize}}</b>, non divisi dal Dividendo Universale (piuttosto che in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"Questa opzione <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permette <b>di permutare unità</b> per vedere gli importi in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, che è relativo al Dividendo Universale (l'importo co-prodotto da ogni membro).",CURRENCY_RULES:"Le<b>regole</b> della moneta determinano il suo <b>esatto e previdibile</b> comportamento.<br/><br/> Considerate come il proprio DNA della moneta, queste regole rendono il codice monetario <b>trasparente e comprensibile</b>.",MENU_BTN_NETWORK:"Menu <b>{{'MENU.NETWORK'|translate}}</b> permette la scopertà dello <b>stato della rete<b>.",NETWORK_BLOCKCHAIN:"Tutte le transazioni monetarie sono registrate in <b>registro sicuro e a prova di manomissione</b>, spesso chiamato <b>blockchain</b>.",NETWORK_PEERS:"I<b>peers</b> mostrati qui corrispondono a <b>dei computers che aggiornano e monitorano</b> la blockchain.<br/><br/>Più peers ci sono, più <b>decentralizzata</b> e più affidabile diventa la moneta.",NETWORK_PEERS_BLOCK_NUMBER:"Questo <b>numero</b> (in verda) indica <b>l'ultimo blocco validato</b> dal peer (ultima pagina scritta nel regitro).<br/><br/>Il verda indica che il blocco è stato validato anche dalla <b>maggioranza degli altri peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Ogni membro</b>, che dispone di un computer connesso a Internet <b>puo partecipare, aggiungendosi come peer installando il software Duniter</b> (free/libre). <a target="_new" href="{{installDocUrl}}" target="_system">Leggi il manuale d\'installazione &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> permette l'accesso al saldo del conto e la cronologia delle transazioni.",MENU_BTN_ACCOUNT_MEMBER:"Qui puoi consultare lo stato del tuo conto, la cronologia delle transazioni e le tue certificazioni.",WALLET_CERTIFICATIONS:"Clicca qui per vedere i dettagli delle tue certificazioni (date o ricevute).",WALLET_RECEIVED_CERTIFICATIONS:"Clicca qui per vedere i dettagli delle <b>certificazioni che hai ricevuto</b>.",WALLET_GIVEN_CERTIFICATIONS:"Clicca qui per vedere i dettagli delle <b>certificazioni che hai date</b>.",WALLET_BALANCE:"Il <b>soldo</b> del tuo conto è visibile qui.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>L'unità utilizzata (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa che questo importo in {{currency|capitalize}} è stato diviso dal <b>Dividendo Universale</b> (DU) co-creato da ogni membro.<br/>Ad oggi, 1 DU equivale a {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"Puoi <b>cambiare l'unità</b> in cui sono mostrati gli importi in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Per esempio, per mostrare gli importi <b>direttamente in {{currency|capitalize}}</b> piuttosto che in unità relativa.",WALLET_PUBKEY:"Questa è la chiave pubblica del tuo conto. La puoi dare ad un terzo perche possa identificare tuo conto.",WALLET_SEND:"Paghi in pochi clics.",WALLET_SEND_NO_MONEY:"Paghi in pochi clics.<br/>(Tuo saldo ancora non lo permette)",WALLET_OPTIONS:"Questo bottone permette di fare <b>altre, meno frequenti azioni</b>.<br/><br/> Non dimenticarti di fare il tour guidato di Cesium quando hai un attimo!",WALLET_RECEIVED_CERTS:"Questo mostra l'elenco delle persone che ti hanno fatto entrare nella WoT.",WALLET_CERTIFY:"Questo bottone <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> permette di selezionare e certificare una identità.<br/><br/>Solo gli utenti <b>che sono già membri</b> possono certificare gli altri.",WALLET_CERT_STOCK:"Tuo stock di certificazioni da dare è limitato a <b>{{sigStock}} certificazioni</b>.<br/><br/>Questo stock si rifornisce col tempo, man mano che le certificazioni inviate scadono.",MENU_BTN_TX_MEMBER:"<b>{{'MENU.TRANSACTIONS'|translate}}</b> permette l'accesso alla cronologia delle transazioni, e permette di fare nuovi bonifici.",MENU_BTN_TX:"Visualizza la cronologia <b>delle tue transazioni</b> qui e fai nuovi bonifici.",MENU_BTN_WOT:"Il menu<b>{{'MENU.WOT'|translate}}</b> permette di cercare <b>utenti</b> della moneta (membri o non).",WOT_SEARCH_TEXT_XS:"Per fare una ricerca nel annuario, digita <b>le prime lettere dello pseudonimo o della chiave pubblica di un utente</b>.<br/><br/>La ricerca inizierà automaticamente.",WOT_SEARCH_TEXT:"Per cercare nel annuario, digita <b>le prime lettere dello pseudonimo o della chiave pubblica di un utente</b>.<br/><br/>Dopodichè calca <b>Enter</b> per avviare la ricerca.",WOT_SEARCH_RESULT:"Visualizza la scheda dettagliata di un utente con un semplice click sulla linea.",WOT_VIEW_CERTIFICATIONS:"La linea <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> mostra quanti membri hanno certificato questa identità.<br/><br/>Queste certificazioni dimostrano che il conto appartiene ad <b>una persona viva</b> e che questa persona non ha <b>nessun altro conto membro</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Ci vogliono almeno <b>{{sigQty}} certificazioni</b> per diventare membro e co-produrre il <b>Dividendo Universale</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Clicca qui per aprire <b>una lista di tutte le certificazioni</b> ricevute e date da questa identità.",WOT_VIEW_CERTIFY:"Il bottone <b>{{'WOT.BTN_CERTIFY'|translate}}</b> permette di aggiungere tua certificazione a questa identità.",CERTIFY_RULES:"<b>Attenzione:</b> Certifichi <b> solo persone reali e vive</b> che non hanno nessun altro conto membro.<br/><br/>L'affidabilità della moneta dipende della vigilanza di ciascuno.",MENU_BTN_SETTINGS:"Les <b>{{'MENU.SETTINGS'|translate}}</b> ti permettono di configurare Cesium.<br/><br/>Per esempio, puoi <b>cambiare l'unità</b> in cui visualizzi la moneta.",HEADER_BAR_BTN_PROFILE:"Clicca qui per entrare nel <b>tuo profilo utente</b>",SETTINGS_CHANGE_UNIT:"Puoi cambiare <b>l'unità</b> della moneta cliccando qui.<br/><br/>- Disabilita questa opzione per vedere gli importi in {{currency|capitalize}}.<br/>- Abilita l'opzione per importi relativi in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divisi</b> dal attuale Dividendo Universale).",END_LOGIN:"Il tour guidato <b>è finito</b>.<br/><br/>Benvenuto nel <b>economia libera</b>!",END_NOT_LOGIN:"Il tour guidato <b>è finito</b>.<br/><br/>Se desideri entrare nella Web of Trust {{currency|capitalize}}, basta cliccare <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> qui sotto."}},API:{COMMON:{LINK_DOC:"documentazione API",LINK_DOC_HELP:"Documentazione dello sviluppatore",LINK_STANDARD_APP:"versione classica",LINK_STANDARD_APP_HELP:"Apri la versione classica di {{'COMMON.APP_NAME'|translate}}"},HOME:{TITLE:"Documentazione API {{'COMMON.APP_NAME'|translate}}",MESSAGE:'Bienvenue dans la <b>documentation de l\'API</b> {{\'COMMON.APP_NAME\'|translate}}.<br/>Connecter vos sites web à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',MESSAGE_SHORT:'Connecter vos sites à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',DOC_HEADER:"Services disponibles :"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Paiement en ligne",TITLE_SHORT:"Pagamento online",SUMMARY:"Récapitulatif de la commande :",AMOUNT:"Montant :",NAME:"Nom :",PUBKEY:"Clé publique du destinaire :",COMMENT:"Référence de la commande :",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Mode démonstration</b> : Aucun paiement ne sera réellement envoyé pendant cette simulation.<br/>Veuillez utiliser les identifiants : <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Vérifiez votre saisie.<br/>En mode démonstration, les identifiants sont : {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Paiement envoyé.<br/>Redirection vers <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Paiement envoyé.<br/>Redirection vers le site du vendeur...",CANCEL_REDIRECTING_WITH_NAME:"Paiement annulé.<br/>Redirection vers <b>{{name}}</b>...",CANCEL_REDIRECTING:"Paiement annulé.<br/>Redirection vers le site du vendeur..."},ERROR:{TRANSFER_FAILED:"Mancato pagamento"}},DOC:{DESCRIPTION_DIVIDER:"Descrizione",URL_DIVIDER:"Indirizzo chiamata",PARAMETERS_DIVIDER:"Impostazioni",AVAILABLE_PARAMETERS:"Ecco l'elenco dei parametri disponibili :",DEMO_DIVIDER:"Provare",DEMO_HELP:"Per provare questo servizio, clicca sul bottone qui a fianco. Il risultato apparirà qui sotto .",DEMO_RESULT:"Risultato della chiamata :",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Successo !',DEMO_CANCELLED:'<i class="icon ion-close"></i> Annulato dal utente',INTEGRATE_DIVIDER:"Integrare",INTEGRATE_CODE:"Codice :",INTEGRATE_RESULT:"Previsualizzare il risultato :",INTEGRATE_PARAMETERS:"Parametri",TRANSFER:{TITLE:"Pagamenti",DESCRIPTION:"Da un sito (per es. : un sito e-commerce) si può delegare il pagamento in moneta libera a Cesium API. Per invocare l'API, basta innescare l'apertura di una pagina con questo indirizzo:",PARAM_PUBKEY:"Chiave pubblica del destinatario",PARAM_PUBKEY_HELP:"Chiave pubblica del destinatario (obliggatoria)",PARAM_AMOUNT:"Importo",PARAM_AMOUNT_HELP:"Importo della transazione (obligatorio)",PARAM_COMMENT:"Riferimento (o commento)",PARAM_COMMENT_HELP:"Riferimento o commento. Ti può aiutare per esempio a trovare tuo pagamento nella blockchain.",PARAM_NAME:"Nome (de destinatario o del sito web)",PARAM_NAME_HELP:'Nom del sito web o del destinatario chiamando l\'API. Può essere un nome leggibile ("Mio sito"), oppure l\'indirizzo http del sito ("MioSito.com").',PARAM_REDIRECT_URL:"Indirizzo web di redirezione",PARAM_REDIRECT_URL_HELP:'Indirizzo web (URL) di redirezione, chiamato dopo aver inviato il pagamento. Può includere le seguenti stringe, che saranno sostituite con i valori della transazione : "{tx}", "{hash}", "{comment}", "{amount}" e {pubkey}.',PARAM_CANCEL_URL:"Indirizzo web della cancellazione",PARAM_CANCEL_URL_HELP:'Indirizzo web (URL) in caso dell\'annullamento del pagamento dall\'utente. Può includere le seguenti stringe, che saranno sostituite dinamicamente : "{comment}", "{amount}" e {pubkey}.',EXAMPLES_HELP:"Ecco esempi di integrazione :",EXAMPLE_BUTTON:"Bottone HTML",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pagare in {{currency|currencySymbol}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Stile personnalizzato",EXAMPLE_BUTTON_TEXT_HELP:"Testo del bottone",EXAMPLE_BUTTON_BG_COLOR:"Colore del fondo",EXAMPLE_BUTTON_BG_COLOR_HELP:"Per esempio: #fbc14c, black, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Colore del testo",EXAMPLE_BUTTON_FONT_COLOR_HELP:"Esempio: black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icona",EXAMPLE_BUTTON_TEXT_WIDTH:"Larghezza",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"Esempio: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"Nessuna",EXAMPLE_BUTTON_ICON_DUNITER:"Logo Duniter",EXAMPLE_BUTTON_ICON_CESIUM:"Logo Cesium",EXAMPLE_BUTTON_ICON_G1_COLOR:"Logo Ğ1",EXAMPLE_BUTTON_ICON_G1_BLACK:"Logo Ğ1 (nero)"}}}}),e.translations("nl-NL",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",PUBKEY:"Publieke sleutel",MEMBER:"Lid",BLOCK:"Blok",BTN_OK:"OK",BTN_YES:"Ja",BTN_NO:"Nee",BTN_SEND:"Verzenden",BTN_SEND_MONEY:"Verstuur geld",BTN_SEND_MONEY_SHORT:"Versturen",BTN_SAVE:"Opslaan",BTN_YES_SAVE:"Ja, opslaan",BTN_YES_CONTINUE:"Ja, doorgaan",BTN_SHOW:"Tonen",BTN_SHOW_PUBKEY:"Toon sleutel",BTN_RELATIVE_UNIT:"Gebruik relatieve eenheid",BTN_BACK:"Terug",BTN_NEXT:"Volgende",BTN_CANCEL:"Annuleer",BTN_CLOSE:"Sluit",BTN_LATER:"Later",BTN_LOGIN:"Aanmelden",BTN_LOGOUT:"Uitloggen",BTN_ADD_ACCOUNT:"Nieuwe Rekening",BTN_SHARE:"Delen",BTN_EDIT:"Bewerken",BTN_DELETE:"Wissen",BTN_ADD:"Toevoegen",BTN_SEARCH:"Zoeken",BTN_REFRESH:"Verwezenlijken",BTN_START:"Beginnen",BTN_CONTINUE:"Doorgaan",BTN_UNDERSTOOD:"Ik heb het begrepen",BTN_OPTIONS:"Opties",BTN_HELP_TOUR:"Rondleiding",BTN_HELP_TOUR_SCREEN:"Ontdek dit scherm",BTN_DOWNLOAD:"Downloaden",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Downloaden het rekeningoverzicht",BTN_MODIFY:"Bewerken",DAYS:"dagen",NO_ACCOUNT_QUESTION:"Nog geen lid? Registreer nu!",SEARCH_NO_RESULT:"Geen resultaten",LOADING:"Even geduld...",SEARCHING:"Zoeken...",FROM:"Van",TO:"Aan",COPY:"Kopieren",LANGUAGE:"Taal",UNIVERSAL_DIVIDEND:"Universeel dividend",UD:"UD",DATE_PATTERN:"DD-MM-YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD-MM-YY",DATE_MONTH_YEAR_PATTERN:"MM-YYYY",EMPTY_PARENTHESIS:"(leeg)",UID:"Pseudoniem",ENABLE:"Geactiveerd",DISABLE:"Gedeactiveerd",RESULTS_LIST:"Resultaten:",RESULTS_COUNT:"{{count}} uitslagen",EXECUTION_TIME:"uitgevoerd in {{duration|formatDurationMs}}",SHOW_VALUES:"Toon waarden openlijk?",POPOVER_ACTIONS_TITLE:"Opties",POPOVER_FILTER_TITLE:"Filters",SHOW_MORE:"Toon meer",SHOW_MORE_COUNT:"(huidig limiet op {{limit}})",POPOVER_SHARE:{TITLE:"Delen",SHARE_ON_TWITTER:"Deel op Twitter",SHARE_ON_FACEBOOK:"Deel op Facebook",SHARE_ON_DIASPORA:"Deel op Diaspora*",SHARE_ON_GOOGLEPLUS:"Deel op Google+"}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Selecteer bron:",BTN_PICTURE_GALLERY:"Gallerij",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Welkom",WOT:"Register",CURRENCY:"Valuta",CURRENCIES:"Valuta's",ACCOUNT:"Mijn rekening",TRANSFER:"Overmaken",SCAN:"Scannen",SETTINGS:"Instellingen",NETWORK:"Netwerk",TRANSACTIONS:"Mijn transacties"},ABOUT:{TITLE:"Over",LICENSE:"<b>Vrije</b> software (GNU AGPLv3 licentie).",CODE:"Broncode:",DEVELOPERS:"Ontwikkelaars:",FORUM:"Forum:",DEV_WARNING:"Waarschuwing",DEV_WARNING_MESSAGE:"Deze applicatie is nog in actieve onwikkeling.<br/>Meld ons elk pobleem!",DEV_WARNING_MESSAGE_SHORT:"Deze App is nog instabiel (in ontwikkeling).",REPORT_ISSUE:"Meld een probleem"},HOME:{TITLE:"Cesium",WELCOME:"Welkom bij de Cesium Applicatie!",MESSAGE:"Bekijk je {{currency|abbreviate}} portefeilles in real time.",BTN_REGISTRY:"Register",BTN_CURRENCY:"Verken valuta",BTN_ABOUT:"over",BTN_HELP:"Help",REPORT_ISSUE:"Meld een probleem",NOT_YOUR_ACCOUNT_QUESTION:'Is rekening <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b> niet van jou?',BTN_CHANGE_ACCOUNT:"Dze rekening ontkoppelen",CONNECTION_ERROR:'Node <b>{{server}}</b> onbereikbaar of ongeldig adres.<br/><br/>Controleer de internetverbinding, of schakel knooppunt <a class="positive" ng-click="doQuickFix(\'settings\')">in parameters</a>.'},SETTINGS:{TITLE:"Instellingen",NETWORK_SETTINGS:"Netwerk",PEER:"Duniter knooppunt adres",PEER_CHANGED_TEMPORARY:"Adres tijdelijk worden gebruikt",USE_LOCAL_STORAGE:"Lokale opslag inschakelen",USE_LOCAL_STORAGE_HELP:"Laat je instellingen opslaan",ENABLE_HELPTIP:"Contextgebonden hulp inschakelen",ENABLE_UI_EFFECTS:"Schakel visuele effecten",HISTORY_SETTINGS:"Mijn rekening",DISPLAY_UD_HISTORY:"Toon geproduceerde dividenden?",AUTHENTICATION_SETTINGS:"Authentificatie",REMEMBER_ME:"Onthoud mij",REMEMBER_ME_HELP:"Hiermee kunt u blijven altijd aangesloten (niet aanbevolen).",PLUGINS_SETTINGS:"Uitbreidingen",BTN_RESET:"Herstel standaardinstellingen",EXPERT_MODE:"Geavanceerde modus inschakelen",EXPERT_MODE_HELP:"Toon meer details",POPUP_PEER:{TITLE:"Duniter Knooppunt",HOST:"Adres",HOST_HELP:"Aadres: server:poort",USE_SSL:"Secure?",USE_SSL_HELP:"(SSL-encryptie)",BTN_SHOW_LIST:"Lijst van knooppunten"}},BLOCKCHAIN:{HASH:"Hachee : {{hash}}",VIEW:{HEADER_TITLE:"Blok #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Huidige blok",TITLE:"Blok #{{number|formatInteger}}",COMPUTED_BY:"Berekend door het knooppunt",SHOW_RAW:"Bekijk RAW-bestand",TECHNICAL_DIVIDER:"Technische informatie",VERSION:"Format versie",HASH:"Hash berekend",UNIVERSAL_DIVIDEND_HELP:"Munt gecoproduceerd door elk van de {{membersCount}} ledental",EMPTY:"Er zijn geen gegevens in dit blok",POW_MIN:"Mminimum moeilijkheid",POW_MIN_HELP:"Moeilijkheid opgelegd hash te berekenen",DATA_DIVIDER:"Gegevens",IDENTITIES_COUNT:"Nieuwe identiteiten",JOINERS_COUNT:"Nieuwe leden",ACTIVES_COUNT:"Verlengingen",ACTIVES_COUNT_HELP:"Leden die hun lidmaatschap te vernieuwen",LEAVERS_COUNT:"Verlaters",LEAVERS_COUNT_HELP:"Leden die niet langer wenst certificering",EXCLUDED_COUNT:"Uitgesloten leden",EXCLUDED_COUNT_HELP:"Oud-leden uitgesloten door niet-verlenging of gebrek aan certificeringen",REVOKED_COUNT:"Identiteiten ingetrokken",REVOKED_COUNT_HELP:"Deze rekeningen zullen niet langer leden",TX_COUNT:"Transacties",CERT_COUNT:"Certificeringen",TX_TO_HIMSELF:"Ruil deal",TX_OUTPUT_UNLOCK_CONDITIONS:"Omstandigheden van de introductie",TX_OUTPUT_OPERATOR:{AND:"en",OR:"of"},TX_OUTPUT_FUNCTION:{SIG:"<b>handtekening</b> ",XHX:"<b>Wachtwoord</b>, wiens SHA256 =",CSV:"Geblokkeerd",CLTV:"Opgesloten"}},LOOKUP:{TITLE:"Blokken",NO_BLOCK:"Geen blok",LAST_BLOCKS:"Recente blokken :",BTN_COMPACT:"Compact"}},CURRENCY:{SELECT:{TITLE:"Valuta's",CURRENCIES:"Bekende valuta's",MEMBERS_COUNT:"{{membersCount}} leden"},VIEW:{TITLE:"Valuta",TAB_CURRENCY:"Valuta",TAB_WOT:"Gemeenschap",TAB_NETWORK:"Netwerk",CURRENCY_NAME:"Valuta naam",MEMBERS:"Ledental",MEMBERS_VARIATION:"Variatie since {{duration | formatDuration}}",MONEY_DIVIDER:"Geld",MASS:"Monetaire massa",SHARE:"Aandeel per lid",UD:"Universeel Dividend",C_ACTUAL:"Huidige toename",MEDIAN_TIME:"Blockchain tijd",POW_MIN:"Algemene moeilijkheidsgraad",MONEY_RULES_DIVIDER:"Monetaire regels",C_RULE:"Toename",UD_RULE:"Universeel dividend (formule)",SIG_QTY_RULE:"Benodigd aantal certificaties om lid te worden",SIG_STOCK:"Maximum aantal certificaties te versturen per lid",SIG_PERIOD:"Minimum vertraging tussen 2 certificaties verzonden door één en dezelfde persoon.",SIG_WINDOW:"Maximum vertraging voor een certificatie in behandeling wordt genomen",STEP_MAX:"Maximum afstand tussen elk WoT lid en een nieuw lid.",WOT_RULES_DIVIDER:"Lidmaatschapseisen",XPERCENT:"Minimum percentage schildwachten te bereiken om de afstandsregel te respecteren"}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain tijd",LOADING_PEERS:"Even geduld...",NODE_ADDRESS:"Adres :",ENDPOINTS:{BMAS:"Endpoint (SSL)",BMATOR:"Endpoint TOR",ES_USER_API:"Knoop Cesium+"}},INFO:{ONLY_SSL_PEERS:"Les noeuds non SSL ont un affichage dégradé, car Cesium fonctionne en mode HTTPS."}},PEER:{PEERS:"Knopen",SIGNED_ON_BLOCK:"Getekend op blok",MIRROR:"spiegel",CURRENT_BLOCK:"Blok #",VIEW:{TITLE:"Knoop",OWNER:"Maakt deel uit van",SHOW_RAW_PEERING:"Zie netwerkdocument",KNOWN_PEERS:"Bekende knopen :",GENERAL_DIVIDER:"Algemene informatie",ERROR:{LOADING_TOR_NODE_ERROR:"Kan knooppunt niet worden opgehaald. De wachttijd wordt overschreden.",LOADING_NODE_ERROR:"Kan knooppunt niet worden opgehaald"}}},WOT:{SEARCH_HELP:"Zoeken (lid of publieke sleutel)",SEARCH_INIT_PHASE_WARNING:"Tijdens de pre-registratiefase, het zoeken van lopende registraties <b>kan lang</b> zijn. Dank je wel geduld...",REGISTERED_SINCE:"Registratie",REGISTERED_SINCE_BLOCK:"Geregistreerd op blok #",NO_CERTIFICATION:"Geen gevalideerde certificaties",NO_GIVEN_CERTIFICATION:"Geen uitgegeven certificaties",NOT_MEMBER_PARENTHESIS:"(niet-lid)",IDENTITY_REVOKED_PARENTHESIS:"(ingetrokken identiteit)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(intrekking in behandeling)",EXPIRE_IN:"Verloopt",NOT_WRITTEN_EXPIRE_IN:"Uiterlijke<br/>behandeling",EXPIRED:"Verlopen",PSEUDO:"Pseudoniem",SIGNED_ON_BLOCK:"Uitgegeven op block #{{block}}",WRITTEN_ON_BLOCK:"Geschreven op block #{{block}}",GENERAL_DIVIDER:"Algemene informatie",NOT_MEMBER_ACCOUNT:"Simpele rekening (geen lid)",NOT_MEMBER_ACCOUNT_HELP:"Dit is een eenvoudige rekening, zonder dat er een aanvraag voor lidmaatschap in de wacht wordt gezet.",TECHNICAL_DIVIDER:"Technische informatie",BTN_CERTIFY:"Certificeren",BTN_YES_CERTIFY:"Ja, Certificeren",BTN_SELECT_AND_CERTIFY:"Nieuwe certificatie",ACCOUNT_OPERATIONS:"Operaties op de rekening",VIEW:{POPOVER_SHARE_TITLE:"Identiteit {{title}}"},LOOKUP:{TITLE:"Register",NEWCOMERS:"Nieuwe leden:",PENDING:"Aspirant leden:",REGISTERED:"Geregistreerd {{sigDate | formatFromNow}}",MEMBER_FROM:"Lid sinds {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Nieuwste leden",BTN_PENDING:"Registraties in afwachting",SHOW_MORE:"Toon meer",SHOW_MORE_COUNT:"(huidige limiet op {{limit}})",NO_PENDING:"Er zijn geen registraties in afwachting gevonden.",NO_NEWCOMERS:"Er zijn geen nieuwe leden gevonden."},MODAL:{TITLE:"Zoeken"},CERTIFICATIONS:{TITLE:"{{uid}} - Certificaties",SUMMARY:"Ontvangen certificaties",LIST:"Details van ontvangen certificaties",PENDING_LIST:"Certificaties in afwachting",RECEIVED:"Ontvangen certificaties",RECEIVED_BY:"Certificaties ontvanged door {{uid}}",ERROR:"Ontvangen vertificaties met fout",SENTRY_MEMBER:"Referent lid"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Verzonden certificaties",SUMMARY:"Verzonden certificaties",LIST:"Details van verzonden certificaties",PENDING_LIST:"Certificaties in afwachting",SENT:"Verzonden certificaties",SENT_BY:"Certificaties verzonden door {{uid}}",ERROR:"Verzonden certificaties met fout"}},LOGIN:{TITLE:'<i class="icon ion-locked"></i> Inloggen',SALT:"Beveiligingszin",SALT_HELP:"Zin ter beveiliging van je rekening",SHOW_SALT:"Toon de beveiligingszin",PASSWORD:"Wachtwoord",PASSWORD_HELP:"Wachtwoord ter beveiliging van je rekening",NO_ACCOUNT_QUESTION:"Nog geen rekening?",CREATE_ACCOUNT:"Open een rekening",FORGOTTEN_ID:"Wachtwoord vergeten?"},ACCOUNT:{TITLE:"Mijn rekening",BALANCE:"Saldo",LAST_TX:"Recente transacties",BALANCE_ACCOUNT:"Rekeningsaldo",NO_TX:"Geen transacties",SHOW_MORE_TX:"Show more",SHOW_ALL_TX:"Show all",TX_FROM_DATE:"(huidige limiet op {{fromTime|medianFromNowShort}})",PENDING_TX:"Transacties in afwachting",ERROR_TX:"Niet uitgevoerde transacties",ERROR_TX_SENT:"Verzonden transacties",ERROR_TX_RECEIVED:"Ontvangen transacties",EVENTS:"Gebeurtenissen",WAITING_MEMBERSHIP:"Lidmaatschapsverzoek verzonden. In afwachting van validatie.",WAITING_CERTIFICATIONS:"Je hebt {{needCertificationCount}} certificatie(s) nodig om lid te worden",WILL_MISSING_CERTIFICATIONS:"Je heeft binnenkort <b>onvoldoende certificaties</b> (ten minste {{willNeedCertificationCount}} benodigd)",WILL_NEED_RENEW_MEMBERSHIP:"Je lidmaatschap <b>gaat verlopen op {{membershipExpiresIn|formatDurationTo}}</b>. Vergeet niet <a ng-click=\"doQuickFix('renew')\">je lidmaatschap te vernieuwen</a> voor die tijd.",CERTIFICATION_COUNT:"Aantal certificaties",CERTIFICATION_COUNT_SHORT:"Certificaties",SIG_STOCK:"Voorraad uit te geven certificaties",BTN_RECEIVE_MONEY:"Ontvangen",BTN_MEMBERSHIP_IN_DOTS:"Lidmaatschap aanvragen...",BTN_MEMBERSHIP_RENEW:"Lidmaatschap verlengen",BTN_MEMBERSHIP_RENEW_DOTS:"Lidmaatschap verlengen...",BTN_MEMBERSHIP_OUT_DOTS:"Lidmaatschap opzeggen...",BTN_SEND_IDENTITY_DOTS:"Identiteit publiceren...",BTN_SECURITY_DOTS:"Rekening en veiligheid...",BTN_SHOW_DETAILS:"Tonen technische informatie",BTN_REVOKE:"Deze identiteit<span class='hidden-xs hidden-sm'> definitief</span> opzeggen...",NEW:{TITLE:"Registratie",SLIDE_1_TITLE:"Selecteer een valuta:",SLIDE_2_TITLE:"Soort rekening:",MEMBER_ACCOUNT:"Persoonlijke rekening (lidmaatschap)",MEMBER_ACCOUNT_HELP:"Als je nog niet als individu geregistreerd bent (één rekening per individu mogelijk).",WALLET_ACCOUNT:"Eenvoudige portefeille",WALLET_ACCOUNT_HELP:"Als je een onderneming, stichting etc. vertegenwoordigd of eenvoudigweg een additionele portefeille nodig hebt. Geen individueel universeel dividend zal door deze rekening gecréeerd worden.",SALT_WARNING:"Kies een beveiligingszin.<br/>Deze heb je nodig voor ieder verbinding met je rekening.<br/><br/><b>Zorg dat je deze zin goed onthoud</b>.<br/>Eenmaal verloren, is er geen mogelijkheid om hem te achterhalen!",PASSWORD_WARNING:"Kies een wachtwoord.<br/>Deze heb je nodig voor ieder verbinding met je rekening.<br/><br/><b>Zorg dat je dit woord goed onthoud</b>.<br/>Eenmaal verloren, is er geen mogelijkheid om hem te achterhalen!",PSEUDO_WARNING:"Kies een pseudoniem.<br/>Het dient om makkelijker gevonden te worden door anderen.<br/><br/>.Gebruik van spaties, komma's en accenten is niet toegestaan.<br/><div class='hidden-xs'><br/>Voorbeeld: <span class='gray'>JulesDeelder, JohanVermeer, etc.</span>",PSEUDO:"Pseudoniem",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Bevestig",SALT_CONFIRM_HELP:"Bevestig de beveiligingszin",PASSWORD_CONFIRM:"Bevestig",PASSWORD_CONFIRM_HELP:"Bevestig het wachtwoord",SLIDE_6_TITLE:"Bevestiging:",COMPUTING_PUBKEY:"Berekening...",LAST_SLIDE_CONGRATULATION:"Bravo! Je hebt alle verplichte velden ingevuld.<br/>Je kunt je <b>rekeningaanvraag verzenden</b>.<br/><br/>Ter informatie, de publieke sleutel hieronder identificeert je toekomstige rekening.<br/>Je kunt deze aan derde partijen communiceren om geld te ontvangen. Zodra je rekening geopend is, kun je de sleutel terugvinden onder <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Waarschuwing:</b> je beveiligingszin, wachtwoord en pseudoniem kunnen hierna niet gewijzigd worden.<br/><b>Zorg dat ze goed onthoudt!</b><br/><b>Weet je zeker</b> dat je je persoonlijke rekeningaanvraag wil verzenden?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Waarschuwing:</b> je wachtwoord en pseudoniem kunnen hierna niet gewijzigd worden.<br/><b>Zorg dat ze goed onthoudt!</b><br/><b>Weet je zeker</b> dat je deze portefeilleaanvraag wil verzenden?',PSEUDO_AVAILABLE:"Deze naam is beschikbaar",PSEUDO_NOT_AVAILABLE:"Deze gebruikersnaam is niet beschikbaar",INFO_LICENSE:"Om de valuta te sluiten, vragen wij u om te lezen en deze licentie te accepteren.",BTN_ACCEPT:"Ik accepteer",BTN_ACCEPT_LICENSE:"Ik ga akkoord met de licentie"},POPUP_REGISTER:{TITLE:"Voer een pseudoniem in",HELP:"Een pseudoniem is nodig voor anderen om je te kunnen vinden."},FILE_NAME:"{{currency}} - Rekeningafschrift {{pubkey|formatPubkey}} {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Datum",AMOUNT:"Bedrag",COMMENT:"Commentaar"}},TRANSFER:{TITLE:"Overboeken",SUB_TITLE:"Geld overboeken",FROM:"Van",TO:"Aan",AMOUNT:"Bedrag",AMOUNT_HELP:"Bedrag",COMMENT:"Opmerking",COMMENT_HELP:"Opmerking (optioneel)",BTN_SEND:"Verzenden",BTN_ADD_COMMENT:"Opmerking toevoegen",WARN_COMMENT_IS_PUBLIC:"Houd er rekening mee dat <b>reacties openbaar zijn </b> (niet-versleuteld).",MODAL:{TITLE:"Overboeking"}},ERROR:{POPUP_TITLE:"Error",UNKNOWN_ERROR:"Unknown error",CRYPTO_UNKNOWN_ERROR:"Your browser is not compatible with cryptographic features.",FIELD_REQUIRED:"This field is required.",FIELD_TOO_SHORT:"Value is too short (min {{minLength]] characters).",FIELD_TOO_SHORT_WITH_LENGTH:"This field value is too short.",FIELD_TOO_LONG:"Value is exceeding max length.",FIELD_TOO_LONG_WITH_LENGTH:"Value is too long (max {{maxLength}} characters).",FIELD_ACCENT:"Commas and accent characters not allowed",FIELD_NOT_NUMBER:"Value is not a number",FIELD_NOT_INT:"Value is not an integer",PASSWORD_NOT_CONFIRMED:"Must match previous password.",SALT_NOT_CONFIRMED:"Must match previous phrase.",SEND_IDENTITY_FAILED:"Error while trying to register.",SEND_CERTIFICATION_FAILED:"Could not certify identity.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"You could not send certification, because your account is <b>not a member account</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"You could not send certification now, because your are <b>not a member</b> yet.<br/><br/>You still need certification to become a member.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"This account could not be certified. No registration found, or need to renew.",LOGIN_FAILED:"Error while sign in.",LOAD_IDENTITY_FAILED:"Could not load identity.",LOAD_REQUIREMENTS_FAILED:"Could not load identity requirements.",SEND_MEMBERSHIP_IN_FAILED:"Error while sending registration as member.",SEND_MEMBERSHIP_OUT_FAILED:"Error while sending membership revocation.",REFRESH_WALLET_DATA:"Could not refresh wallet.",GET_CURRENCY_PARAMETER:"Could not get currency parameters.",GET_CURRENCY_FAILED:"Could not load currency.",SEND_TX_FAILED:"Could not send transaction.",ALL_SOURCES_USED:"Please wait the next block computation (All transaction sources has been used).",NOT_ENOUGH_SOURCES:"Not enough changes to send this amount in one time.<br/>Maximum amount: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error while creating your member account.",RESTORE_WALLET_DATA_ERROR:"Error while reloading settings from local storage",LOAD_WALLET_DATA_ERROR:"Error while loading wallet data.",COPY_CLIPBOARD_FAILED:"Could not copy to clipboard",TAKE_PICTURE_FAILED:"Could not get picture.",SCAN_FAILED:"Could not scan QR code.",SCAN_UNKNOWN_FORMAT:"Code not recognized.",WOT_LOOKUP_FAILED:"Search failed.",LOAD_PEER_DATA_FAILED:"Duniter peer not accessible. Please retry later.",NEED_LOGIN_FIRST:"Please sign in first.",AMOUNT_REQUIRED:"Amount is required.",AMOUNT_NEGATIVE:"Negative amount not allowed.",NOT_ENOUGH_CREDIT:"Not enough credit.",INVALID_NODE_SUMMARY:"Unreachable peer or invalid address",INVALID_USER_ID:"Field 'pseudonym' must not contains spaces or special characters.",INVALID_COMMENT:"Field 'reference' has a bad format.",INVALID_PUBKEY:"Public key has a bad format.",IDENTITY_INVALID_BLOCK_HASH:"This membership application is no longer valid (because it references a block that network peers are cancelled): the person must renew its application for membership <b>before</b> being certified.",IDENTITY_EXPIRED:"This identity has expired: this person must re-apply <b>before</b> being certified.",IDENTITY_SANDBOX_FULL:"Could not register, because peer's sandbox is full.<br/><br/>Please retry later or choose another Duniter peer (in <b>Settings</b>).",WOT_PENDING_INVALID_BLOCK_HASH:"Membership not valid.",WALLET_INVALID_BLOCK_HASH:"Your membership application is no longer valid (because it references a block that network peers are cancelled).<br/>You must <a ng-click=\"doQuickFix('renew')\">renew your application for membership</a> to fix this issue.",WALLET_IDENTITY_EXPIRED:"The publication of your identity <b>has expired</b>.<br/>You must <a ng-click=\"doQuickFix('fixIdentity')\">re-issue your identity</a> to resolve this issue.",WALLET_HAS_NO_SELF:"Your identity must first have been published, and not expired.",IDENTITY_ALREADY_CERTIFY:"You have <b>already certified</b> that identity.<br/><br/>Your certificate is still valid (expires {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"You have <b>already certified</b> that identity.<br/><br/>Your certification is still pending (Deadline for treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Unable to certify",LOAD_NEWCOMERS_FAILED:"Unable to load new members.",LOAD_PENDING_FAILED:"Unable to load pending registrations.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member</b> in order to perform this action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"You must have <b>published your identity</b> in order to perform this action.",EXISTING_ACCOUNT:"Je gegevens komen overeen met een bestaande rekening, met de <a ng-click=\"showHelpModal('pubkey')\">publieke sleutel</a>:",EXISTING_ACCOUNT_REQUEST:"Gelieve je gegevens te wijzigen zodat ze met een niet gebruikte rekening overeenkomen."},INFO:{POPUP_TITLE:"Informatie",CERTIFICATION_DONE:"Identiteit succesvol getekend",NOT_ENOUGH_CREDIT:"Niet genoeg krediet",TRANSFER_SENT:"Verzoek tot overboeken succesvol verzonden",COPY_TO_CLIPBOARD_DONE:"Kopie geslaagd",MEMBERSHIP_OUT_SENT:"Opzegging lidmaatschap succesvol verzonden",NOT_NEED_MEMBERSHIP:"Je bent al lid.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Deze identiteit heeft binnenkort onvoldoende certificaties (ten minste {{willNeedCertificationCount}} nodig)."},CONFIRM:{POPUP_TITLE:"<b>Bevestiging</b>",POPUP_WARNING_TITLE:"<b>Waarschuwing</b>",CERTIFY_RULES_TITLE_UID:"Certificeer {{uid}}",CERTIFY_RULES:'<b>Beveiligingswaarschuwing:</b><br/><br/><b class="assertive">Certificeer een rekening niet</b> als je gelooft dat: <ul><li>1.) de aanvrager niet echt is.<li>2.) de aanvrager al een andere gecertificeerde rekening heeft.<li>3.) de aanvrager opzettelijk of door onzorgvuldigheid regel 1 of 2 overtreedt bij het verzenden van certificaten.</ul></small><br/>Weet je zeker dat je deze identieit wilt certificeren?',TRANSFER:"<b>Samenvatting van de overboeking:</b><br/><br/><ul><li> - Van: <b>{{from}}</b></li><li> - Aan: <b>{{to}}</b></li><li> - Bedrag: <b>{{amount}} {{unit}}</b></li><li> - Opmerking: <i>{{comment}}</i></li></ul><br/><b>Weet je zeker dat je deze overboeking wil doen?</b>",MEMBERSHIP_OUT:"<b>Waarschuwing</b>:<br/>Je staat op het punt je lidmaatschap te beëindigen. Dit kan <b>niet ongedaan</b> worden gemaakt.<br/></br/><b>Weet je zeker dat je door wil gaan?</b>",LOGIN_UNUSED_WALLET_TITLE:"Typefout?",LOGIN_UNUSED_WALLET:"Je bent ingelogged op een rekening die <b>inactief</b> lijkt te zijn.<br/><br/>Als deze rekening niet met de jouwe overeenkomt, komt dat waarschijnlijk door een <b>typefout</b> bij het inloggen.<br/><br/><b>Wilt u toch doorgaan met deze rekening?</b>",FIX_IDENTITY:"De pseudoniem <b>{{uid}}</b> zal opnieuw gepubliceerd worden, waarmee de oude verlopen publicatie wordt vervangen.<br/></br/><bWeet je zeker</b> dat je door wil gaan?",FIX_MEMBERSHIP:"Je verzoek to lidmaatschap zal verstuurd worden.<br/></br/><b>Weet je het zeker?</b>",RENEW_MEMBERSHIP:"Je lidmaatschap zal verlengd worden.<br/></br/><b>Weet je het zeker?</b>",REVOKE_IDENTITY:"<b>Beveiligingswaarschuwing:</b><br/>You will <b>definitely revoke this identity</b>.<br/><br/>The public key and the associated nickname <b>will never be used again</b> (for a member account).<br/></br/><b>Are you sure</b> you want to continue?",REVOKE_IDENTITY_2:"Deze handeling is <b>niet terug te draaien</b>!<br/><br/><b>Weet je zeker</b> dat je door wil gaan?",NOT_NEED_RENEW_MEMBERSHIP:"Je lidmaatschap hoeft niet verlengd te worden (het zal pas verlopen na {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Weet je zeker</b> dat je een verlengingsaanvraag wil versturen?",SAVE_BEFORE_LEAVE:"Wil je <b>je wijzigingen opslaan</b> voor je de pagina verlaat?",SAVE_BEFORE_LEAVE_TITLE:"Wijzigingen niet opgeslagen",LICENCE:"Ik heb gelezen en geaccepteerd de voorwaarden van de vergunning G1"},DOWNLOAD:{POPUP_TITLE:"<b>Intrekkingsdocument</b>",POPUP_REVOKE_MESSAGE:"Om je rekening te beveiligen, download het <b>rekening intrekkingsdocument</b>. Dit heb je nodig om je rekening op te heffen (in het geval van diefstal, een verandering van ID, een ten onrechte gemaakte rekening, etc.).<br/><br/><b>Bewaar deze op een veilige plaats.</b>"},HELP:{TITLE:"Online help",JOIN:{SECTION:"Join",SALT:'The protection phrase is very important. It is used to hash you password, which in turn is used to calculate your <span class="text-italic">public account key</span> (its number) and the private key to access it. <b>Please remeber this phrase well</b>, because there is no way to recover it when lost. What\'s more, it cannot be changed without having to create a new account.<br/><br/>A good protection phrase must be sufficiently long (8 characters at the very least) and as original as possible.',PASSWORD:"The password is very important. Together with the protection phrase, it is use to calculate your account number (public key) and the private key to access it. <b>Please remember it well</b>, because there is no way to recover it when lost. What's more, it cannot be changed without having to create a new account.<br/><br/>A good password is made (ideally) of at least 8 characters, with at least one capital and one number.",PSEUDO:'A pseudonym is used only when joining as <span class="text-italic">member</span>. It is always associated with a wallet (by its <span class="text-italic">public key</span>). It is published on the network so that other users may identify it, certify or send money to the account. A pseudonym must be unique among all members (current and past).'},GLOSSARY:{SECTION:"Glossary",PUBKEY_DEF:"Een publieke sleutel identificeert altijd een portemonnee. Het kan een lid identificeren. In Cesium wordt berekend met de geheime ID en wachtwoord.",MEMBER:"Member",MEMBER_DEF:'A member is a real and living human, wishing to participate freely to the monitary community. The member will receive universal dividend, according to the period and amount as defined in the <span class="text-italic">currency parameters</span>.',CURRENCY_RULES:"Currency rules",CURRENCY_RULES_DEF:'The currency rules are defined only once, and for all. They set the parameters under which the currency will perform: universal dividend calculation, the amount of certifications needed to become a member, the maximum amount of certifications a member can send, etc.<br/><br/>The parameters cannot be modified because of the use of a <span class="text-italic">Blockchain</span> which carries and executes these rules, and constantly verifies their correct application. <a href="#/app/currency">See current parameters</a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'The Blockchain is a decentralised system which, in case of Duniter, serves to carry and execute the <span class="text-italic">currency rules</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Read more about Duniter</a> and the working of its blockchain.',UNIVERSAL_DIVIDEND_DEF:'The Universal Dividend (UD) is the quantity of money co-created by each member, according to the period and the calculation defined in the <span class="text-italic">currency rules</span>.<br/>Every term, the members receive an equal amount of new money on their account.<br/><br/>The UD undergoes a steady growth, to remain fair under its members (current and future), calculated by an average life expectancy, as demonstrated in the Relative Theory of Money (RTM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Read more about RTM</a> and open money.'},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> allows discovery of <b>currency parameters</b> and its state.",CURRENCY_WOT:"The <b>member count</b> shows the <b>community's weight and evolution</b>.",CURRENCY_MASS:"Shown here is the <b>total amount</b> currently in circulation and its <b>average distribution</b> per member.<br/><br/>This allows to estimate the <b>worth of any amount</b>, in respect to what <b>others own</b> on their account (on average).",CURRENCY_UNIT_RELATIVE:"The unit used here (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amounts in {{currency|capitalize}} have been devided by the <b>Universal Dividend</b> (UD).<br/><br/><small>This relative unit is <b>relevant</b> because it is stable in contrast to the permanently growing monitary mass.</small>",CURRENCY_CHANGE_UNIT:"This button allows to <b>switch the unit</b> to show amounts in <b>{{currency|capitalize}}</b>, undevided by the Universal Dividend (instead of in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"This button allows to <b>switch the unit</b> to show amounts in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, which is relative to the Universal Dividend (the amount co-produced by each member).",CURRENCY_RULES:"The <b>rules</b> of the currency determine its <b>exact and predictible</b> performance.<br/><br/>As a true DNA of the currency these rules make the monetary code <b>transparent and understandable</b>.",NETWORK_BLOCKCHAIN:"All monetary transactions are recoded in a <b>public and tamper proof</b> ledger, generally referred to as the <b>blockchain</b>.",NETWORK_PEERS:"The <b>peers</b> shown here correspond to <b>computers that update and check</b> the blockchain.<br/><br/>The more active peers there are, the more <b>decentralised</b> and therefore trustworhty the currency becomes.",NETWORK_PEERS_BLOCK_NUMBER:"This <b>number</b> indicates the peer's <b>latest validated block</b> (last page written in the ledger).<br/><br/>Green indicates that the block was equally validated by the <b>majority of other peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Each member</b>, equiped with a computer with Internet, <b>can participate, adding a peer</b> simply by <b>installing the Duniter software</b> (free/libre and open source). <a href="{{installDocUrl}}" target="_system">Read the installation manual &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> allows access to your account balance and transaction history.",MENU_BTN_ACCOUNT_MEMBER:"Here you can consult your account status, transaction history and your certifications.",WALLET_CERTIFICATIONS:"Click here to reveiw the details of your certifications (given and received).",WALLET_BALANCE:"Your account <b>balance</b> is shown here.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>The used unit (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amount in {{currency|capitalize}} has been divided by the <b>Universal Dividend</b> (UD) co-created by each member.<br/>At this moment, 1 UD equals {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"You can <b>change the unit</b> in which amounts are shown in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>For example, to display amounts <b>directly in {{currency|capitalize}}</b> instead of relative amounts.",WALLET_SEND:"Issue a payment in just a few clicks.",WALLET_SEND_NO_MONEY:"Issue a payment in just a few clicks.<br/>(Your balance does not allow this yet)",WALLET_OPTIONS:"Please note that this button allows access to <b>other, less used actions</b>.<br/><br/>Don't forget to take a quick look, when you have a moment!",WALLET_RECEIVED_CERTS:"This shows the list of persons that certified you.",WALLET_CERTIFY:"The button <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> allows selecting an identity and certifying it.<br/><br/>Only users that are <b>already member</b> may certify others.",WALLET_CERT_STOCK:"Your supply of certifications (to send) is limited to <b>{{sigStock}} certifications</b>.<br/><br/>This supply will replete itself over time, as and when earlier certifications expire.",MENU_BTN_WOT:"The menu <b>{{'MENU.WOT'|translate}}</b> allows searching <b>users</b> of the currency (member or not).",WOT_SEARCH_TEXT_XS:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>The search will start automatically.",WOT_SEARCH_TEXT:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>Then hit <b>Enter</b> to start the search.",WOT_SEARCH_RESULT:"Simply click a user row to view the details sheet.",WOT_VIEW_CERTIFICATIONS:"The row <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> shows how many members members validated this identity.<br/><br/>These certifications testify that the account belongs to <b>a living human</b> and this person has <b>no other member account</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"There are at least <b>{{sigQty}} certifications</b> needed to become a member and receive the <b>Universal Dividend</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Click here to open <b>a list of all certifications</b> given to and by this identity.",WOT_VIEW_CERTIFY:"The button <b>{{'WOT.BTN_CERTIFY'|translate}}</b> allows to add your certification to this identity.",CERTIFY_RULES:"<b>Attention:</b> Only certify <b>real and living persons</b> that do not own any other certified account.<br/><br/>The trust carried by the currency depends on each member's vigilance!",MENU_BTN_SETTINGS:"The <b>{{'MENU.SETTINGS'|translate}}</b> allow you to configure the Cesium application.<br/><br/>For example, you can <b>change the unit</b> in which the currency will be shown.",HEADER_BAR_BTN_PROFILE:"Click here to access your <b>user profile</b>",SETTINGS_CHANGE_UNIT:"You can <b>change the display unit</b> of amounts by clicking here.<br/><br/>- Deactivate the option to show amounts in {{currency|capitalize}}.<br/>- Activate the option for relative amounts in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divided</b> by the current Universal Dividend).",END_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>Welcome to the <b>free economy</b>!",END_NOT_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>If you wish to join the currency {{currency|capitalize}}, simply click <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> below."}}})}]),angular.module("cesium.plugins",["cesium.plugins.translations","cesium.plugins.templates","cesium.graph.plugin","cesium.es.plugin","cesium.map.plugin"]),angular.module("cesium.plugins.translations",[]).config(["$translateProvider",function(e){e.translations("en-GB",{COMMON:{CATEGORY:"Category",CATEGORIES:"Categories",CATEGORY_SEARCH_HELP:"Search",COMMENT_HELP:"Comments",LAST_MODIFICATION_DATE:"Updated on ",SUBMIT_BY:"Submitted by",BTN_LIKE:"I like",BTN_LIKE_REMOVE:"I don't like anymore",LIKES_TEXT:"{{total}} {{total > 1 ? 'people' : 'person'}} liked this page",ABUSES_TEXT:"{{total}} {{total > 1 ? 'people' : 'person'}} reported a problem on this page",BTN_REPORT_ABUSE_DOTS:"Report a problem or an abuse...",BTN_REMOVE_REPORTED_ABUSE:"Cancel my problem report",BTN_PUBLISH:"Publish",BTN_PICTURE_DELETE:"Delete",BTN_PICTURE_FAVORISE:"Default",BTN_PICTURE_ROTATE:"Rotate",BTN_ADD_PICTURE:"Add picture",NOTIFICATION:{TITLE:"New notification | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"You have {{count}} unread notification{{count>0?'s':''}}"},NOTIFICATIONS:{TITLE:"Notifications",MARK_ALL_AS_READ:"Mark all as read",NO_RESULT:"No notification",SHOW_ALL:"Show all",LOAD_NOTIFICATIONS_FAILED:"Could not load notifications"},REPORT_ABUSE:{TITLE:"Report a problem",SUB_TITLE:"Please explain briefly the problem:",REASON_HELP:"I explain the problem...",ASK_DELETE:"Request removal?",CONFIRM:{SENT:"Request sent. Thnak you!"}}},MENU:{REGISTRY:"Pages",USER_PROFILE:"My Profile",MESSAGES:"Messages",NOTIFICATIONS:"Notifications",INVITATIONS:"Invitations"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Account for an organization",ORGANIZATION_ACCOUNT_HELP:"If you represent a company, association, etc.<br/>No universal dividend will be created by this account."},EVENT:{MEMBER_WITHOUT_PROFILE:'You can <a ui-sref="app.edit_profile">fill your Cesium+ profile</a> (optional) to provide better visibility of your account. This profile will be stored in <b>a directory independent</b> of the currency, but decentralized.'},ERROR:{WS_CONNECTION_FAILED:"Cesium can not receive notifications because of a technical error (connection to the Cesium + data node).<br/><br/>If the problem persists, please <b>choose another data node</b> in Cesium+ settings."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggest identities to certify...",BTN_ASK_CERTIFICATIONS_DOTS:"Ask members to certify me...",BTN_ASK_CERTIFICATION:"Ask a certification",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggest certifications",HELP:"Select your suggestions"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Ask certifications",HELP:"Select recipients"},SEARCH:{DIVIDER_PROFILE:"Accounts",DIVIDER_PAGE:"Pages",DIVIDER_GROUP:"Groups"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Are you sure you want <b>to send these certification suggestions</b>?",ASK_CERTIFICATION:"Are you sure you want to <b>send a certification request</b>?",ASK_CERTIFICATIONS:"Are you sure you want to <b>send a certification request</b> to these people?"}},INVITATION:{TITLE:"Invitations",NO_RESULT:"No invitation received",BTN_DELETE_ALL:"Delete all invitations",BTN_DELETE:"Delete invitation",BTN_NEW_INVITATION:"New invitation",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> asks for your certification',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> is suggested for certification',SUGGESTED_BY:'Suggestion sent by <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitations"},LIST:{TITLE:"Invitations"},NEW:{TITLE:"New invitation",RECIPIENTS:"A",RECIPIENTS_HELP:"Recipients of the invitation",RECIPIENTS_MODAL_TITLE:"Recipients",RECIPIENTS_MODAL_HELP:"Please choose recipients:",SUGGESTION_IDENTITIES:"Suggestions for certification",SUGGESTION_IDENTITIES_HELP:"Certifications to suggest",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggestions",SUGGESTION_IDENTITIES_MODAL_HELP:"Please choose your suggestions:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"Removing invitations is <b>an irreversible operation</b>.<br/><br/><b>Are you sure</b> you want to continue",SEND_INVITATIONS_TO_CERTIFY:"<b>Are you sure</b> you want <b>to sent this invitation to certify</b> ?"},INFO:{INVITATION_SENT:"Invitation sent"},ERROR:{LOAD_INVITATIONS_FAILED:"Error while loading invitations",REMOVE_INVITATION_FAILED:"Error while deleting the invitation",REMOVE_ALL_INVITATIONS_FAILED:"Error while deleting invitations",SEND_INVITATION_FAILED:"Error while sending invitation",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitation unreadable (format unknown)</span> - sent by <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Comments",SHOW_MORE_COMMENTS:"Show previous comments",COMMENT_HELP:"Your comment, question...",COMMENT_HELP_REPLY_TO:"Your answer...",BTN_SEND:"Send",POPOVER_SHARE_TITLE:"Message #{{number}}",REPLY:"Reply",REPLY_TO:"Respond to:",REPLY_TO_LINK:"In response to ",REPLY_TO_DELETED_COMMENT:"In response to a deleted comment",REPLY_COUNT:"{{replyCount}} responses",DELETED_COMMENT:"Comment deleted",MODIFIED_ON:"modified on {{time|formatDate}}",MODIFIED_PARENTHESIS:"(modified then)",ERROR:{FAILED_SAVE_COMMENT:"Saving comment failed",FAILED_REMOVE_COMMENT:"Deleting comment failed"}},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Reply",BTN_COMPOSE:"New message",BTN_WRITE:"Write",NO_MESSAGE_INBOX:"No message received",NO_MESSAGE_OUTBOX:"No message sent",NOTIFICATIONS:{TITLE:"Messages",MESSAGE_RECEIVED:"You <b>received a message</b><br/>from"},LIST:{INBOX:"Inbox",OUTBOX:"Outbox",LAST_INBOX:"New messages",LAST_OUTBOX:"Sent messages",BTN_LAST_MESSAGES:"Recent messages",TITLE:"Private messages",SEARCH_HELP:"Search in messages",POPOVER_ACTIONS:{TITLE:"Options",DELETE_ALL:"Delete all messages"}},COMPOSE:{TITLE:"New message",TITLE_REPLY:"Reply",SUB_TITLE:"New message",TO:"To",OBJECT:"Object",OBJECT_HELP:"Object",ENCRYPTED_HELP:"Please note this message will be encrypted before sending so that only the recipient can read it and be sure you are the author.",MESSAGE:"Message",MESSAGE_HELP:"Message content",CONTENT_CONFIRMATION:"No message content.<br/><br/>Are your sure you want to send this message?"},VIEW:{TITLE:"Message",SENDER:"Sent by",RECIPIENT:"Sent to",NO_CONTENT:"Empty message",DELETE:"Delete the message"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this message</b>?<br/><br/> This operation is irreversible.",REMOVE_ALL:"Are you sure you want to <b>delete all messages</b>?<br/><br/> This operation is irreversible.",MARK_ALL_AS_READ:"Are you sure you want to <b>mark all message as read</b>?",USER_HAS_NO_PROFILE:"This identity has no Cesium + profile. It may not use the Cesium + extension, so it <b>will not read your message</b>.<br/><br/>Are you sure you want <b>to continue</b>?"},INFO:{MESSAGE_REMOVED:"Message successfully deleted",All_MESSAGE_REMOVED:"Messages successfully deleted",MESSAGE_SENT:"Message sent"},ERROR:{SEND_MSG_FAILED:"Error while sending message.",LOAD_MESSAGES_FAILED:"Error while loading messages.",LOAD_MESSAGE_FAILED:"Error while loading message.",MESSAGE_NOT_READABLE:"Unable to read message.",USER_NOT_RECIPIENT:"You are not the recipient of this message: unable to read it.",NOT_AUTHENTICATED_MESSAGE:"The authenticity of the message is not certain or its content is corrupted.",REMOVE_MESSAGE_FAILED:"Error while deleting message",MESSAGE_CONTENT_TOO_LONG:"Value too long ({{maxLength}} characters max).",MARK_AS_READ_FAILED:"Unable to mark the message as 'read'.",LOAD_NOTIFICATIONS_FAILED:"Error while loading messages notifications.",REMOVE_All_MESSAGES_FAILED:"Error while removing all messages.",MARK_ALL_AS_READ_FAILED:"Error while marking messages as read.",RECIPIENT_IS_MANDATORY:"Recipient is mandatory."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Block number, hash...",POPOVER_FILTER_TITLE:"Filter",HEADER_MEDIAN_TIME:"Date / Time",HEADER_BLOCK:"Block #",HEADER_ISSUER:"Peer owner",BTN_LAST:"Last blocks",DISPLAY_QUERY:"View query",HIDE_QUERY:"Hide query",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Members input/output',EXISTING_TRANSACTION:'<b class="ion-card"></b> Having transactions',PERIOD:'<b class="ion-clock"></b> Between <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) and <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Computed by {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transactions concerning <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Error while searching blocks."}},REGISTRY:{CATEGORY:"Main activity",GENERAL_DIVIDER:"Basic information",LOCATION_DIVIDER:"Address",SOCIAL_NETWORKS_DIVIDER:"Social networks, web sites",TECHNICAL_DIVIDER:"Technical data",BTN_SHOW_WOT:"People",BTN_SHOW_WOT_HELP:"Search for people",BTN_SHOW_PAGES:"Pages",BTN_SHOW_PAGES_HELP:"Search for pages",BTN_NEW:"New page",MY_PAGES:"My pages",NO_PAGE:"No page",SEARCH:{TITLE:"Pages",SEARCH_HELP:"What, Who: hairdresser, Lili's restaurant, ...",BTN_ADD:"New",BTN_LAST_RECORDS:"Recent pages",BTN_ADVANCED_SEARCH:"Advanced search",BTN_OPTIONS:"Advanced search",TYPE:"Kind of organization",LOCATION_HELP:"Where: City, Country",RESULTS:"Results",RESULT_COUNT_LOCATION:"{{count}} result{{count>0?'s':''}}, near {{location}}",RESULT_COUNT:"{{count}} result{{count>0?'s':''}}",LAST_RECORDS:"Recent pages",LAST_RECORD_COUNT_LOCATION:"{{count}} recent page{{count>0?'s':''}}, near {{location}}",LAST_RECORD_COUNT:"{{count}} recent page{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Advanced options?"}},VIEW:{TITLE:"Registry",CATEGORY:"Main activity:",LOCATION:"Address:",MENU_TITLE:"Options",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Are you sure you want to delete this reference?<br/><br/>This is irreversible."},TYPE:{TITLE:"New page",SELECT_TYPE:"Kind of organization:",ENUM:{SHOP:"Local shops",COMPANY:"Company",ASSOCIATION:"Association",INSTITUTION:"Institution"}},EDIT:{TITLE:"Edit",TITLE_NEW:"New page",RECORD_TYPE:"Kind of organization",RECORD_TITLE:"Name",RECORD_TITLE_HELP:"Name",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Describe activity",RECORD_ADDRESS:"Street",RECORD_ADDRESS_HELP:"Street, building...",RECORD_CITY:"City",RECORD_CITY_HELP:"City, Country",RECORD_SOCIAL_NETWORKS:"Social networks and web site",RECORD_PUBKEY:"Public key",RECORD_PUBKEY_HELP:"Public key to receive payments"},WALLET:{REGISTRY_DIVIDER:"Pages",REGISTRY_HELP:"Pages refer to activities accepting money or promoting it: local shops, companies, associations, institutions."},ERROR:{LOAD_CATEGORY_FAILED:"Loading main activities failed",LOAD_RECORD_FAILED:"Loading failed",LOOKUP_RECORDS_FAILED:"Error while loading records.",REMOVE_RECORD_FAILED:"Deleting failed",SAVE_RECORD_FAILED:"Saving failed",RECORD_NOT_EXISTS:"Record not found",GEO_LOCATION_NOT_FOUND:"City or zip code not found"},INFO:{RECORD_REMOVED:"Page successfully deleted",RECORD_SAVED:"Page successfully saved"}},PROFILE:{PROFILE_DIVIDER:"Cesium+ profile",PROFILE_DIVIDER_HELP:"These are ancillary data, stored outside the currency network.",NO_PROFILE_DEFINED:"No Cesium+ profile",BTN_ADD:"Create my profile",BTN_EDIT:"Edit my profile",BTN_DELETE:"Delete my profile",BTN_REORDER:"Reorder",UID:"Pseudonym",TITLE:"Lastname, FirstName",TITLE_HELP:"Name",DESCRIPTION:"About me",DESCRIPTION_HELP:"About me...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"General data",SOCIAL_NETWORKS_DIVIDER:"Social networks and web site",TECHNICAL_DIVIDER:"Technical data",MODAL_AVATAR:{TITLE:"Avatar",SELECT_FILE_HELP:"<b>Choose an image file</b>, by clicking on the button below:",BTN_SELECT_FILE:"Choose an image",RESIZE_HELP:"<b>Re-crop the image</b> if necessary. A click on the image allows to move it. Click on the area at the bottom left to zoom in.",RESULT_HELP:"<b>Here is the result</b> as seen on your profile:"},CONFIRM:{DELETE:"Are you sure you want to <b>delete your Cesium+ profile ?</b><br/><br/>This operation is irreversible."},ERROR:{REMOVE_PROFILE_FAILED:"Deleting profile failed",LOAD_PROFILE_FAILED:"Could not load user profile.",SAVE_PROFILE_FAILED:"Saving profile failed",INVALID_SOCIAL_NETWORK_FORMAT:"Invalid format: please fill a valid Internet address.<br/><br/>Examples :<ul><li>- A Facebook page (https://www.facebook.com/user)</li><li>- A web page (http://www.domain.com)</li><li>- An email address (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Error while resizing picture"},INFO:{PROFILE_REMOVED:"Profile deleted",PROFILE_SAVED:"Profile saved"},HELP:{WARNING_PUBLIC_DATA:"Please note that the information published here <b>is public</b>: visible including by <b>not logged in people</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Find my address on the map",USE_GEO_POINT:"Appear on {{'COMMON.APP_NAME'|translate}} maps?",LOADING_LOCATION:"Searching address...",LOCATION_DIVIDER:"Localisation",ADDRESS:"Address",ADDRESS_HELP:"Address (optional)",CITY:"City",CITY_HELP:"City, Country",DISTANCE:"Maximum distance around the city",DISTANCE_UNIT:"mi",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"City, Country",PROFILE_POSITION:"Profile position",MODAL:{TITLE:"Search address",SEARCH_HELP:"City, Country",ALTERNATIVE_RESULT_DIVIDER:"Alternative results for <b>{{address}}</b>:",POSITION:"lat/lon : {{lat}} / {{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Required if a street has been filled",REQUIRED_FOR_LOCATION:"Required field to appear on the map",INVALID_FOR_LOCATION:"Unknown address",GEO_LOCATION_FAILED:"Unable to retrieve your current position. Please use the search button.",ADDRESS_LOCATION_FAILED:"Unable to retrieve the address position"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Online services",SUBSCRIPTION_DIVIDER_HELP:"Online services offer optional additional services, delegated to a third party.",BTN_ADD:"Add a service",BTN_EDIT:"Manage my services",NO_SUBSCRIPTION:"No service defined",SUBSCRIPTION_COUNT:"Services / Subscription",EDIT:{TITLE:"Online services",HELP_TEXT:"Manage your subscriptions and other online services here",PROVIDER:"Provider:"},TYPE:{ENUM:{EMAIL:"Receive email notifications"}},CONFIRM:{DELETE_SUBSCRIPTION:"Are you sur you want to <b>delete this subscription</b>?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Error while loading online services",ADD_SUBSCRIPTION_FAILED:"Error while adding subscription",UPDATE_SUBSCRIPTION_FAILED:"Error during subscription update",DELETE_SUBSCRIPTION_FAILED:"Error while deleting subscription"},MODAL_EMAIL:{TITLE:"Notification by email",HELP:"Fill out this form to <b>be notified by email</ b> of your account's events. <br/>Your email address will be encrypted only to be visible to the service provider.",EMAIL_LABEL:"Your email:",EMAIL_HELP:"john@domain.com",FREQUENCY_LABEL:"Frequency of notifications:",FREQUENCY_DAILY:"Daily",FREQUENCY_WEEKLY:"Weekly",PROVIDER:"Service Provider:"}},DOCUMENT:{HASH:"Hash: ",LOOKUP:{TITLE:"Document search",BTN_ACTIONS:"Actions",SEARCH_HELP:"issuer:AAA*, time:1508406169",LAST_DOCUMENTS_DOTS:"Last documents:",LAST_DOCUMENTS:"Last documents",SHOW_QUERY:"Show query",HIDE_QUERY:"Hide query",HEADER_TIME:"Time/Hour",HEADER_ISSUER:"Issuer",HEADER_RECIPIENT:"Recipient",READ:"Read",BTN_REMOVE:"Delete this document",BTN_COMPACT:"Compact",HAS_CREATE_OR_UPDATE_PROFILE:"create or edit his profile",POPOVER_ACTIONS:{TITLE:"Actions",REMOVE_ALL:"Delete these documents..."}},INFO:{REMOVED:"Deleted document"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this document</b>?",REMOVE_ALL:"Are you sure you want to <b>delete these documents</b>?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Error searching documents",REMOVE_FAILED:"Error deleting the document",REMOVE_ALL_FAILED:"Error deleting documents"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"User profiles, notifications, private messages",ENABLE_TOGGLE:"Enable extension?",ENABLE_REMOTE_STORAGE:"Enable remote storage for settings?",ENABLE_REMOTE_STORAGE_HELP:"Enables (encrypted) storage of your settings on Cesium + nodes",ENABLE_MESSAGE_TOGGLE:"Enable private messages?",PEER:"Data peer address",POPUP_PEER:{TITLE:"Data peer",HELP:"Set the address of the peer to use:",PEER_HELP:"server.domain.com:port"},NOTIFICATIONS:{DIVIDER:"Notifications",HELP_TEXT:"Enable the types of notifications you want to receive:",ENABLE_TX_SENT:"Notify the validation of <b>sent payments</b>?",ENABLE_TX_RECEIVED:"Notify the validation of <b>received payments</b>?",ENABLE_CERT_SENT:"Notify the validation of <b>sent certifications</b>?",ENABLE_CERT_RECEIVED:"Notify the validation of <b>received certifications</b>?",ENABLE_HTML5_NOTIFICATION:"Warn with each new notification?",ENABLE_HTML5_NOTIFICATION_HELP:"Opens a small popup window with each new notification."},CONFIRM:{ASK_ENABLE_TITLE:"Optional features",ASK_ENABLE:'Cesium+ extension is <b>disabled</b> in your settings, making some features inactive: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> user profiles</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Private messages</b>.</ul><br/><br/><b>Do you want to enable</b> the extension?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"A recipient is required for encryption."},ES_PEER:{NAME:"Name",DOCUMENTS:"Documents",SOFTWARE:"Software",DOCUMENT_COUNT:"Number of documents",EMAIL_SUBSCRIPTION_COUNT:"{{emailSubscription}} subscribers to email notification"}},EVENT:{NODE_STARTED:"Your node ES API <b>{{params[0]}}</b> is UP",NODE_BMA_DOWN:"Node <b>{{params[0]}}:{{params[1]}}</b> (used by your ES API) is <b>unreachable</b>.",NODE_BMA_UP:"Node <b>{{params[0]}}:{{params[1]}}</b> is reachable again.",MEMBER_JOIN:"You are now a <b>member</b> of currency <b>{{params[0]}}</b>!",MEMBER_LEAVE:"You are <b>not a member anymore</b> of currency <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"You are <b>not more member</b> of the currency <b>{{params[0]}}</b>, for lack of renewal or lack of certifications.",MEMBER_REVOKE:"Your account has been revoked. It will no longer be a member of the currency <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Your membership to <b>{{params[0]}}</b> has been <b>renewed successfully</b>.",TX_SENT:"Your payment to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",TX_SENT_MULTI:"Your payment to <b>{{params[1]}}</b> was executed.",TX_RECEIVED:"You received a payment from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"You received a payment from <b>{{params[1]}}</b>.",CERT_SENT:"Your <b>certification</b> to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",CERT_RECEIVED:"You  have <b>received a certification</b> from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",USER:{LIKE_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> like your profile",FOLLOW_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> follows your activity",STAR_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> rated you ({{params[3]}} <i class=\"ion-star\">)",MODERATION_RECEIVED:'<span ng-class="{\'gray\': !notification.uid, \'positive\':notification.uid }"><i class="icon" ng-class="{\'ion-person\': notification.uid, \'ion-key\': !notification.uid}"></i>&thinsp;{{name||uid||params[1]}}</span> asks you for a moderation on the profile: <b>{{params[2]}}</b><br/><b class="dark ion-quote"> </b><span class="text-italic">{{params[3]}}</span>',DELETION_RECEIVED:'<span ng-class="{\'gray\': !notification.uid, \'positive\':notification.uid }"><i class="icon" ng-class="{\'ion-person\': notification.uid, \'ion-key\': !notification.uid}"></i>&thinsp;{{name||uid||params[1]}}</span> reported a profile to be deleted: <b>{{params[2]}}</b><br/><b class="dark ion-quote"> </b><span class="text-italic">{{params[3]}}</span>',ABUSE_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has requested moderation on your profile"},PAGE:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has commented on your referencing: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his comment on your referencing: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has replied to your comment on the referencing: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his answer to your comment, on the referencing: <b>{{params[2]}}</b>",FOLLOW_NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has commented on the page: <b>{{params[2]}}</b>",FOLLOW_UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his comment on the page: <b>{{params[2]}}</b>",
+FOLLOW_NEW:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> added a page: <b>{{params[2]}}</b>",FOLLOW_UPDATE:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> updated the page: <b>{{params[2]}}</b>",MODERATION_RECEIVED:'<span ng-class="{\'gray\': !notification.uid, \'positive\':notification.uid }"><i class="icon" ng-class="{\'ion-person\': notification.uid, \'ion-key\': !notification.uid}"></i>&thinsp;{{name||uid||params[1]}}</span> asks you for a moderation on the page: <b>{{params[2]}}</b><br/><b class="dark ion-quote"> </b><span class="text-italic">{{params[3]}}</span>',DELETION_RECEIVED:'<span ng-class="{\'gray\': !notification.uid, \'positive\':notification.uid }"><i class="icon" ng-class="{\'ion-person\': notification.uid, \'ion-key\': !notification.uid}"></i>&thinsp;{{name||uid||params[1]}}</span> reported a page to be deleted: <b>{{params[2]}}</b><br/><b class="dark ion-quote"> </b><span class="text-italic">{{params[3]}}</span>',ABUSE_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has requested moderation on your page: <b>{{params[2]}}</b>"}},LIKE:{ERROR:{FAILED_TOGGLE_LIKE:"Unable to execute this action."}},CONFIRM:{ES_USE_FALLBACK_NODE:"Data node <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the data node <b>{{new}}</b>?"},ERROR:{ES_CONNECTION_ERROR:'Data node <b>{{server}}</b> unreachable or invalid address.<br/><br/>Cesium will continue to work, <b>without the Cesium+</b> extension (user profiles, private messages, maps and graphics).<br/><br/>Check your Internet connection, or change data node in <a class="positive" ng-click="doQuickFix(\'settings\')">extension settings</a>.',ES_MAX_UPLOAD_BODY_SIZE:"The volume of data to be sent exceeds the limit set by the server.<br/><br/>Please try again after, for example, deleting photos."}}),e.translations("en",{COMMON:{CATEGORY:"Category",CATEGORIES:"Categories",CATEGORY_SEARCH_HELP:"Search",COMMENT_HELP:"Comments",LAST_MODIFICATION_DATE:"Updated on ",SUBMIT_BY:"Submitted by",BTN_LIKE:"I like",BTN_LIKE_REMOVE:"I don't like anymore",LIKES_TEXT:"{{total}} {{total > 1 ? 'people' : 'person'}} liked this page",ABUSES_TEXT:"{{total}} {{total > 1 ? 'people' : 'person'}} reported a problem on this page",BTN_REPORT_ABUSE_DOTS:"Report a problem or an abuse...",BTN_REMOVE_REPORTED_ABUSE:"Cancel my problem report",BTN_PUBLISH:"Publish",BTN_PICTURE_DELETE:"Delete",BTN_PICTURE_FAVORISE:"Default",BTN_PICTURE_ROTATE:"Rotate",BTN_ADD_PICTURE:"Add picture",NOTIFICATION:{TITLE:"New notification | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"You have {{count}} unread notification{{count>0?'s':''}}"},NOTIFICATIONS:{TITLE:"Notifications",MARK_ALL_AS_READ:"Mark all as read",NO_RESULT:"No notification",SHOW_ALL:"Show all",LOAD_NOTIFICATIONS_FAILED:"Could not load notifications"},REPORT_ABUSE:{TITLE:"Report a problem",SUB_TITLE:"Please explain briefly the problem:",REASON_HELP:"I explain the problem...",ASK_DELETE:"Request removal?",CONFIRM:{SENT:"Request sent. Thnak you!"}}},MENU:{REGISTRY:"Pages",USER_PROFILE:"My Profile",MESSAGES:"Messages",NOTIFICATIONS:"Notifications",INVITATIONS:"Invitations"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Account for an organization",ORGANIZATION_ACCOUNT_HELP:"If you represent a company, association, etc.<br/>No universal dividend will be created by this account."},EVENT:{MEMBER_WITHOUT_PROFILE:'You can <a ui-sref="app.edit_profile">fill your Cesium+ profile</a> (optional) to provide better visibility of your account. This profile will be stored in <b>a directory independent</b> of the currency, but decentralized.'},ERROR:{WS_CONNECTION_FAILED:"Cesium can not receive notifications because of a technical error (connection to the Cesium + data node).<br/><br/>If the problem persists, please <b>choose another data node</b> in Cesium+ settings."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggest identities to certify...",BTN_ASK_CERTIFICATIONS_DOTS:"Ask members to certify me...",BTN_ASK_CERTIFICATION:"Ask a certification",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggest certifications",HELP:"Select your suggestions"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Ask certifications",HELP:"Select recipients"},SEARCH:{DIVIDER_PROFILE:"Accounts",DIVIDER_PAGE:"Pages",DIVIDER_GROUP:"Groups"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Are you sure you want <b>to send these certification suggestions</b>?",ASK_CERTIFICATION:"Are you sure you want to <b>send a certification request</b>?",ASK_CERTIFICATIONS:"Are you sure you want to <b>send a certification request</b> to these people?"}},INVITATION:{TITLE:"Invitations",NO_RESULT:"No invitation received",BTN_DELETE_ALL:"Delete all invitations",BTN_DELETE:"Delete invitation",BTN_NEW_INVITATION:"New invitation",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> asks for your certification',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> is suggested for certification',SUGGESTED_BY:'Suggestion sent by <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitations"},LIST:{TITLE:"Invitations"},NEW:{TITLE:"New invitation",RECIPIENTS:"A",RECIPIENTS_HELP:"Recipients of the invitation",RECIPIENTS_MODAL_TITLE:"Recipients",RECIPIENTS_MODAL_HELP:"Please choose recipients:",SUGGESTION_IDENTITIES:"Suggestions for certification",SUGGESTION_IDENTITIES_HELP:"Certifications to suggest",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggestions",SUGGESTION_IDENTITIES_MODAL_HELP:"Please choose your suggestions:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"Removing invitations is <b>an irreversible operation</b>.<br/><br/><b>Are you sure</b> you want to continue",SEND_INVITATIONS_TO_CERTIFY:"<b>Are you sure</b> you want <b>to sent this invitation to certify</b> ?"},INFO:{INVITATION_SENT:"Invitation sent"},ERROR:{LOAD_INVITATIONS_FAILED:"Error while loading invitations",REMOVE_INVITATION_FAILED:"Error while deleting the invitation",REMOVE_ALL_INVITATIONS_FAILED:"Error while deleting invitations",SEND_INVITATION_FAILED:"Error while sending invitation",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitation unreadable (format unknown)</span> - sent by <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Comments",SHOW_MORE_COMMENTS:"Show previous comments",COMMENT_HELP:"Your comment, question...",COMMENT_HELP_REPLY_TO:"Your answer...",BTN_SEND:"Send",POPOVER_SHARE_TITLE:"Message #{{number}}",REPLY:"Reply",REPLY_TO:"Respond to:",REPLY_TO_LINK:"In response to ",REPLY_TO_DELETED_COMMENT:"In response to a deleted comment",REPLY_COUNT:"{{replyCount}} responses",DELETED_COMMENT:"Comment deleted",MODIFIED_ON:"modified on {{time|formatDate}}",MODIFIED_PARENTHESIS:"(modified then)",ERROR:{FAILED_SAVE_COMMENT:"Saving comment failed",FAILED_REMOVE_COMMENT:"Deleting comment failed"}},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Reply",BTN_COMPOSE:"New message",BTN_WRITE:"Write",NO_MESSAGE_INBOX:"No message received",NO_MESSAGE_OUTBOX:"No message sent",NOTIFICATIONS:{TITLE:"Messages",MESSAGE_RECEIVED:"You <b>received a message</b><br/>from"},LIST:{INBOX:"Inbox",OUTBOX:"Outbox",LAST_INBOX:"New messages",LAST_OUTBOX:"Sent messages",BTN_LAST_MESSAGES:"Recent messages",TITLE:"Private messages",SEARCH_HELP:"Search in messages",POPOVER_ACTIONS:{TITLE:"Options",DELETE_ALL:"Delete all messages"}},COMPOSE:{TITLE:"New message",TITLE_REPLY:"Reply",SUB_TITLE:"New message",TO:"To",OBJECT:"Object",OBJECT_HELP:"Object",ENCRYPTED_HELP:"Please note this message will be encrypted before sending so that only the recipient can read it and be sure you are the author.",MESSAGE:"Message",MESSAGE_HELP:"Message content",CONTENT_CONFIRMATION:"No message content.<br/><br/>Are your sure you want to send this message?"},VIEW:{TITLE:"Message",SENDER:"Sent by",RECIPIENT:"Sent to",NO_CONTENT:"Empty message",DELETE:"Delete the message"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this message</b>?<br/><br/> This operation is irreversible.",REMOVE_ALL:"Are you sure you want to <b>delete all messages</b>?<br/><br/> This operation is irreversible.",MARK_ALL_AS_READ:"Are you sure you want to <b>mark all message as read</b>?",USER_HAS_NO_PROFILE:"This identity has no Cesium + profile. It may not use the Cesium + extension, so it <b>will not read your message</b>.<br/><br/>Are you sure you want <b>to continue</b>?"},INFO:{MESSAGE_REMOVED:"Message successfully deleted",All_MESSAGE_REMOVED:"Messages successfully deleted",MESSAGE_SENT:"Message sent"},ERROR:{SEND_MSG_FAILED:"Error while sending message.",LOAD_MESSAGES_FAILED:"Error while loading messages.",LOAD_MESSAGE_FAILED:"Error while loading message.",MESSAGE_NOT_READABLE:"Unable to read message.",USER_NOT_RECIPIENT:"You are not the recipient of this message: unable to read it.",NOT_AUTHENTICATED_MESSAGE:"The authenticity of the message is not certain or its content is corrupted.",REMOVE_MESSAGE_FAILED:"Error while deleting message",MESSAGE_CONTENT_TOO_LONG:"Value too long ({{maxLength}} characters max).",MARK_AS_READ_FAILED:"Unable to mark the message as 'read'.",LOAD_NOTIFICATIONS_FAILED:"Error while loading messages notifications.",REMOVE_All_MESSAGES_FAILED:"Error while removing all messages.",MARK_ALL_AS_READ_FAILED:"Error while marking messages as read.",RECIPIENT_IS_MANDATORY:"Recipient is mandatory."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Block number, hash...",POPOVER_FILTER_TITLE:"Filter",HEADER_MEDIAN_TIME:"Date / Time",HEADER_BLOCK:"Block #",HEADER_ISSUER:"Peer owner",BTN_LAST:"Last blocks",DISPLAY_QUERY:"View query",HIDE_QUERY:"Hide query",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Members input/output',EXISTING_TRANSACTION:'<b class="ion-card"></b> Having transactions',PERIOD:'<b class="ion-clock"></b> Between <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) and <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Computed by {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transactions concerning <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Error while searching blocks."}},REGISTRY:{CATEGORY:"Main activity",GENERAL_DIVIDER:"Basic information",LOCATION_DIVIDER:"Address",SOCIAL_NETWORKS_DIVIDER:"Social networks, web sites",TECHNICAL_DIVIDER:"Technical data",BTN_SHOW_WOT:"People",BTN_SHOW_WOT_HELP:"Search for people",BTN_SHOW_PAGES:"Pages",BTN_SHOW_PAGES_HELP:"Search for pages",BTN_NEW:"New page",MY_PAGES:"My pages",NO_PAGE:"No page",SEARCH:{TITLE:"Pages",SEARCH_HELP:"What, Who: hairdresser, Lili's restaurant, ...",BTN_ADD:"New",BTN_LAST_RECORDS:"Recent pages",BTN_ADVANCED_SEARCH:"Advanced search",BTN_OPTIONS:"Advanced search",TYPE:"Kind of organization",LOCATION_HELP:"Where: City, Country",RESULTS:"Results",RESULT_COUNT_LOCATION:"{{count}} result{{count>0?'s':''}}, near {{location}}",RESULT_COUNT:"{{count}} result{{count>0?'s':''}}",LAST_RECORDS:"Recent pages",LAST_RECORD_COUNT_LOCATION:"{{count}} recent page{{count>0?'s':''}}, near {{location}}",LAST_RECORD_COUNT:"{{count}} recent page{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Advanced options?"}},VIEW:{TITLE:"Registry",CATEGORY:"Main activity:",LOCATION:"Address:",MENU_TITLE:"Options",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Are you sure you want to delete this reference?<br/><br/>This is irreversible."},TYPE:{TITLE:"New page",SELECT_TYPE:"Kind of organization:",ENUM:{SHOP:"Local shops",COMPANY:"Company",ASSOCIATION:"Association",INSTITUTION:"Institution"}},EDIT:{TITLE:"Edit",TITLE_NEW:"New page",RECORD_TYPE:"Kind of organization",RECORD_TITLE:"Name",RECORD_TITLE_HELP:"Name",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Describe activity",RECORD_ADDRESS:"Street",RECORD_ADDRESS_HELP:"Street, building...",RECORD_CITY:"City",RECORD_CITY_HELP:"City, Country",RECORD_SOCIAL_NETWORKS:"Social networks and web site",RECORD_PUBKEY:"Public key",RECORD_PUBKEY_HELP:"Public key to receive payments"},WALLET:{REGISTRY_DIVIDER:"Pages",REGISTRY_HELP:"Pages refer to activities accepting money or promoting it: local shops, companies, associations, institutions."},ERROR:{LOAD_CATEGORY_FAILED:"Loading main activities failed",LOAD_RECORD_FAILED:"Loading failed",LOOKUP_RECORDS_FAILED:"Error while loading records.",REMOVE_RECORD_FAILED:"Deleting failed",SAVE_RECORD_FAILED:"Saving failed",RECORD_NOT_EXISTS:"Record not found",GEO_LOCATION_NOT_FOUND:"City or zip code not found"},INFO:{RECORD_REMOVED:"Page successfully deleted",RECORD_SAVED:"Page successfully saved"}},PROFILE:{PROFILE_DIVIDER:"Cesium+ profile",PROFILE_DIVIDER_HELP:"These are ancillary data, stored outside the currency network.",NO_PROFILE_DEFINED:"No Cesium+ profile",BTN_ADD:"Create my profile",BTN_EDIT:"Edit my profile",BTN_DELETE:"Delete my profile",BTN_REORDER:"Reorder",UID:"Pseudonym",TITLE:"Lastname, FirstName",TITLE_HELP:"Name",DESCRIPTION:"About me",DESCRIPTION_HELP:"About me...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"General data",SOCIAL_NETWORKS_DIVIDER:"Social networks and web site",TECHNICAL_DIVIDER:"Technical data",MODAL_AVATAR:{TITLE:"Avatar",SELECT_FILE_HELP:"<b>Choose an image file</b>, by clicking on the button below:",BTN_SELECT_FILE:"Choose an image",RESIZE_HELP:"<b>Re-crop the image</b> if necessary. A click on the image allows to move it. Click on the area at the bottom left to zoom in.",RESULT_HELP:"<b>Here is the result</b> as seen on your profile:"},CONFIRM:{DELETE:"Are you sure you want to <b>delete your Cesium+ profile ?</b><br/><br/>This operation is irreversible."},ERROR:{REMOVE_PROFILE_FAILED:"Deleting profile failed",LOAD_PROFILE_FAILED:"Could not load user profile.",SAVE_PROFILE_FAILED:"Saving profile failed",INVALID_SOCIAL_NETWORK_FORMAT:"Invalid format: please fill a valid Internet address.<br/><br/>Examples :<ul><li>- A Facebook page (https://www.facebook.com/user)</li><li>- A web page (http://www.domain.com)</li><li>- An email address (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Error while resizing picture"},INFO:{PROFILE_REMOVED:"Profile deleted",PROFILE_SAVED:"Profile saved"},HELP:{WARNING_PUBLIC_DATA:"Please note that the information published here <b>is public</b>: visible including by <b>not logged in people</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Find my address on the map",USE_GEO_POINT:"Appear on {{'COMMON.APP_NAME'|translate}} maps?",LOADING_LOCATION:"Searching address...",LOCATION_DIVIDER:"Localisation",ADDRESS:"Address",ADDRESS_HELP:"Address (optional)",CITY:"City",CITY_HELP:"City, Country",DISTANCE:"Maximum distance around the city",DISTANCE_UNIT:"mi",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"City, Country",PROFILE_POSITION:"Profile position",MODAL:{TITLE:"Search address",SEARCH_HELP:"City, Country",ALTERNATIVE_RESULT_DIVIDER:"Alternative results for <b>{{address}}</b>:",POSITION:"lat/lon : {{lat}} / {{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Required if a street has been filled",REQUIRED_FOR_LOCATION:"Required field to appear on the map",INVALID_FOR_LOCATION:"Unknown address",GEO_LOCATION_FAILED:"Unable to retrieve your current position. Please use the search button.",ADDRESS_LOCATION_FAILED:"Unable to retrieve the address position"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Online services",SUBSCRIPTION_DIVIDER_HELP:"Online services offer optional additional services, delegated to a third party.",BTN_ADD:"Add a service",BTN_EDIT:"Manage my services",NO_SUBSCRIPTION:"No service defined",SUBSCRIPTION_COUNT:"Services / Subscription",EDIT:{TITLE:"Online services",HELP_TEXT:"Manage your subscriptions and other online services here",PROVIDER:"Provider:"},TYPE:{ENUM:{EMAIL:"Receive email notifications"}},CONFIRM:{DELETE_SUBSCRIPTION:"Are you sur you want to <b>delete this subscription</b>?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Error while loading online services",ADD_SUBSCRIPTION_FAILED:"Error while adding subscription",UPDATE_SUBSCRIPTION_FAILED:"Error during subscription update",DELETE_SUBSCRIPTION_FAILED:"Error while deleting subscription"},MODAL_EMAIL:{TITLE:"Notification by email",HELP:"Fill out this form to <b>be notified by email</ b> of your account's events. <br/>Your email address will be encrypted only to be visible to the service provider.",EMAIL_LABEL:"Your email:",EMAIL_HELP:"john@domain.com",FREQUENCY_LABEL:"Frequency of notifications:",FREQUENCY_DAILY:"Daily",FREQUENCY_WEEKLY:"Weekly",PROVIDER:"Service Provider:"}},DOCUMENT:{HASH:"Hash: ",LOOKUP:{TITLE:"Document search",BTN_ACTIONS:"Actions",SEARCH_HELP:"issuer:AAA*, time:1508406169",LAST_DOCUMENTS_DOTS:"Last documents:",LAST_DOCUMENTS:"Last documents",SHOW_QUERY:"Show query",HIDE_QUERY:"Hide query",HEADER_TIME:"Time/Hour",HEADER_ISSUER:"Issuer",HEADER_RECIPIENT:"Recipient",READ:"Read",BTN_REMOVE:"Delete this document",BTN_COMPACT:"Compact",HAS_CREATE_OR_UPDATE_PROFILE:"create or edit his profile",POPOVER_ACTIONS:{TITLE:"Actions",REMOVE_ALL:"Delete these documents..."}},INFO:{REMOVED:"Deleted document"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this document</b>?",REMOVE_ALL:"Are you sure you want to <b>delete these documents</b>?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Error searching documents",REMOVE_FAILED:"Error deleting the document",REMOVE_ALL_FAILED:"Error deleting documents"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"User profiles, notifications, private messages",ENABLE_TOGGLE:"Enable extension?",ENABLE_REMOTE_STORAGE:"Enable remote storage for settings?",ENABLE_REMOTE_STORAGE_HELP:"Enables (encrypted) storage of your settings on Cesium + nodes",ENABLE_MESSAGE_TOGGLE:"Enable private messages?",PEER:"Data peer address",POPUP_PEER:{TITLE:"Data peer",HELP:"Set the address of the peer to use:",PEER_HELP:"server.domain.com:port"},NOTIFICATIONS:{DIVIDER:"Notifications",HELP_TEXT:"Enable the types of notifications you want to receive:",ENABLE_TX_SENT:"Notify the validation of <b>sent payments</b>?",ENABLE_TX_RECEIVED:"Notify the validation of <b>received payments</b>?",ENABLE_CERT_SENT:"Notify the validation of <b>sent certifications</b>?",ENABLE_CERT_RECEIVED:"Notify the validation of <b>received certifications</b>?",ENABLE_HTML5_NOTIFICATION:"Warn with each new notification?",ENABLE_HTML5_NOTIFICATION_HELP:"Opens a small popup window with each new notification."},CONFIRM:{ASK_ENABLE_TITLE:"Optional features",ASK_ENABLE:'Cesium+ extension is <b>disabled</b> in your settings, making some features inactive: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> user profiles</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Private messages</b>.</ul><br/><br/><b>Do you want to enable</b> the extension?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"A recipient is required for encryption."},ES_PEER:{NAME:"Name",DOCUMENTS:"Documents",SOFTWARE:"Software",DOCUMENT_COUNT:"Number of documents",EMAIL_SUBSCRIPTION_COUNT:"{{emailSubscription}} subscribers to email notification"}},EVENT:{NODE_STARTED:"Your node ES API <b>{{params[0]}}</b> is UP",NODE_BMA_DOWN:"Node <b>{{params[0]}}:{{params[1]}}</b> (used by your ES API) is <b>unreachable</b>.",NODE_BMA_UP:"Node <b>{{params[0]}}:{{params[1]}}</b> is reachable again.",MEMBER_JOIN:"You are now a <b>member</b> of currency <b>{{params[0]}}</b>!",MEMBER_LEAVE:"You are <b>not a member anymore</b> of currency <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"You are <b>not more member</b> of the currency <b>{{params[0]}}</b>, for lack of renewal or lack of certifications.",MEMBER_REVOKE:"Your account has been revoked. It will no longer be a member of the currency <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Your membership to <b>{{params[0]}}</b> has been <b>renewed successfully</b>.",TX_SENT:"Your payment to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",TX_SENT_MULTI:"Your payment to <b>{{params[1]}}</b> was executed.",TX_RECEIVED:"You received a payment from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"You received a payment from <b>{{params[1]}}</b>.",CERT_SENT:"Your <b>certification</b> to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",CERT_RECEIVED:"You  have <b>received a certification</b> from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",USER:{LIKE_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> like your profile",FOLLOW_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> follows your activity",STAR_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> rated you ({{params[3]}} <i class=\"ion-star\">)",MODERATION_RECEIVED:'<span ng-class="{\'gray\': !notification.uid, \'positive\':notification.uid }"><i class="icon" ng-class="{\'ion-person\': notification.uid, \'ion-key\': !notification.uid}"></i>&thinsp;{{name||uid||params[1]}}</span> asks you for a moderation on the profile: <b>{{params[2]}}</b><br/><b class="dark ion-quote"> </b><span class="text-italic">{{params[3]}}</span>',DELETION_RECEIVED:'<span ng-class="{\'gray\': !notification.uid, \'positive\':notification.uid }"><i class="icon" ng-class="{\'ion-person\': notification.uid, \'ion-key\': !notification.uid}"></i>&thinsp;{{name||uid||params[1]}}</span> reported a profile to be deleted: <b>{{params[2]}}</b><br/><b class="dark ion-quote"> </b><span class="text-italic">{{params[3]}}</span>',ABUSE_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has requested moderation on your profile"},PAGE:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has commented on your referencing: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his comment on your referencing: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has replied to your comment on the referencing: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his answer to your comment, on the referencing: <b>{{params[2]}}</b>",FOLLOW_NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has commented on the page: <b>{{params[2]}}</b>",FOLLOW_UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his comment on the page: <b>{{params[2]}}</b>",FOLLOW_NEW:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> added a page: <b>{{params[2]}}</b>",FOLLOW_UPDATE:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> updated the page: <b>{{params[2]}}</b>",MODERATION_RECEIVED:'<span ng-class="{\'gray\': !notification.uid, \'positive\':notification.uid }"><i class="icon" ng-class="{\'ion-person\': notification.uid, \'ion-key\': !notification.uid}"></i>&thinsp;{{name||uid||params[1]}}</span> asks you for a moderation on the page: <b>{{params[2]}}</b><br/><b class="dark ion-quote"> </b><span class="text-italic">{{params[3]}}</span>',DELETION_RECEIVED:'<span ng-class="{\'gray\': !notification.uid, \'positive\':notification.uid }"><i class="icon" ng-class="{\'ion-person\': notification.uid, \'ion-key\': !notification.uid}"></i>&thinsp;{{name||uid||params[1]}}</span> reported a page to be deleted: <b>{{params[2]}}</b><br/><b class="dark ion-quote"> </b><span class="text-italic">{{params[3]}}</span>',ABUSE_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has requested moderation on your page: <b>{{params[2]}}</b>"}},LIKE:{ERROR:{FAILED_TOGGLE_LIKE:"Unable to execute this action."}},CONFIRM:{ES_USE_FALLBACK_NODE:"Data node <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the data node <b>{{new}}</b>?"},ERROR:{ES_CONNECTION_ERROR:'Data node <b>{{server}}</b> unreachable or invalid address.<br/><br/>Cesium will continue to work, <b>without the Cesium+</b> extension (user profiles, private messages, maps and graphics).<br/><br/>Check your Internet connection, or change data node in <a class="positive" ng-click="doQuickFix(\'settings\')">extension settings</a>.',ES_MAX_UPLOAD_BODY_SIZE:"The volume of data to be sent exceeds the limit set by the server.<br/><br/>Please try again after, for example, deleting photos."}}),e.translations("eo-EO",{COMMON:{CATEGORY:"Kategorio",CATEGORIES:"Kategorioj",CATEGORY_SEARCH_HELP:"Serĉado",COMMENT_HELP:"Komento",LAST_MODIFICATION_DATE:"Ĝisdatigita la",SUBMIT_BY:"Submetita de",BTN_LIKE:"Mi ŝatas",LIKES_TEXT:"{{total}} persono{{total > 1 ? 'j' : ''}} ŝatis tiun ĉi paĝon",ABUSES_TEXT:"{{total}} persono{{total > 1 ? 'j' : ''}} atentigis pri problemo",BTN_REPORT_ABUSE_DOTS:"Atentigi pri problemo aŭ misuzo...",BTN_REMOVE_REPORTED_ABUSE:"Nuligi mian atentigon",BTN_PUBLISH:"Publikigi",BTN_PICTURE_DELETE:"Forigi",BTN_PICTURE_FAVORISE:"Precipa",BTN_PICTURE_ROTATE:"Turni",BTN_ADD_PICTURE:"Aldoni foton",NOTIFICATION:{TITLE:"Nova avizo | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"Vi havas {{count}} avizo{{count>0?'j':''}}n ne legita{{count>0?'j':''}}n"},NOTIFICATIONS:{TITLE:"Avizoj",MARK_ALL_AS_READ:"Ĉion marki legita",NO_RESULT:"Neniu avizo",SHOW_ALL:"Vidi ĉion",LOAD_NOTIFICATIONS_FAILED:"Malsukceso por ŝarĝi la avizojn"},REPORT_ABUSE:{TITLE:"Atentigi pri problemo",SUB_TITLE:"Bonvolu klarigi rapide la problemon:",REASON_HELP:"Mi klarigas la problemon...",ASK_DELETE:"Peti la forigon?",CONFIRM:{SENT:"Atentigo sendita. Dankon!"}}},MENU:{REGISTRY:"Paĝoj",USER_PROFILE:"Mia profilo",MESSAGES:"Mesaĝoj",NOTIFICATIONS:"Avizoj",INVITATIONS:"Invitoj"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Konto por organizaĵo",ORGANIZATION_ACCOUNT_HELP:"Se vi reprezentas entreprenon, asocion, ktp.<br/>Neniu universala dividendo estos kreita per tiu ĉi konto."},EVENT:{MEMBER_WITHOUT_PROFILE:'Vi povas <a ui-sref="app.edit_profile">tajpi vian profilon Cesium+</a> (kromebleco) por disponi pli bonan videblecon por via konto.'},ERROR:{WS_CONNECTION_FAILED:"Cesium ne povas ricevi la avizojn pro teknika eraro (konekto al la daten-nodo Cesium+).<br/><br/>Se la problemo daŭradas, bonvolu <b>elekti alian daten-nodon</b> ĉe la parametroj Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Sugesti identecojn atestotajn...",BTN_ASK_CERTIFICATIONS_DOTS:"Peti membrojn atesti min...",BTN_ASK_CERTIFICATION:"Peti atestaĵon",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Sugesti atestadojn",HELP:"Elekti viajn sugestojn"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Peti atestaĵojn",HELP:"Elekti la ricevontojn"},SEARCH:{DIVIDER_PROFILE:"Kontoj",DIVIDER_PAGE:"Paĝoj",DIVIDER_GROUP:"Grupoj"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Ĉu vi certas, ke vi volas <b>sendi tiujn sugestojn por atestado</b>?",ASK_CERTIFICATION:"Ĉu vi certas, ke vi volas <b>sendi atesto-peton</b>?",ASK_CERTIFICATIONS:"Ĉu vi certas, ke vi volas <b>sendi atesto-peton</b> al tiuj personoj?"}},INVITATION:{TITLE:"Invitoj",NO_RESULT:"Neniu invito atendanta",BTN_DELETE_ALL:"Forigi ĉiujn invitojn",BTN_DELETE:"Forigi la inviton",BTN_NEW_INVITATION:"Nova invito",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> petas vian atestadon',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> estas sugestita al vi por atestado',SUGGESTED_BY:'Sugesto sendita de <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitoj"},LIST:{TITLE:"Invitoj"},NEW:{TITLE:"Nova invito",RECIPIENTS:"Al",RECIPIENTS_HELP:"Ricevontoj de la invito",RECIPIENTS_MODAL_TITLE:"Ricevontoj",RECIPIENTS_MODAL_HELP:"Bonvolu elekti la ricevontojn:",SUGGESTION_IDENTITIES:"Sugestoj por atestado",SUGGESTION_IDENTITIES_HELP:"Atestadoj sugestotaj",SUGGESTION_IDENTITIES_MODAL_TITLE:"Sugestoj",SUGGESTION_IDENTITIES_MODAL_HELP:"Bonvolu elekti viajn sugestojn:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"La forigo de la invitoj estas <b>neinversigebla ago</b>.<br/><br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",SEND_INVITATIONS_TO_CERTIFY:"Ĉu vi certas, ke vi volas <b>sendi tiun inviton atestotan</b>?"},INFO:{INVITATION_SENT:"Invito sendita"},ERROR:{LOAD_INVITATIONS_FAILED:"Malsukceso por ŝarĝi la invitojn",REMOVE_INVITATION_FAILED:"Eraro dum la forigo de la invito",REMOVE_ALL_INVITATIONS_FAILED:"Eraro dum la forigo de la invitoj",SEND_INVITATION_FAILED:"Eraro dum la sendo de la invito",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invito nelegebla (strukturo nekonata)</span> - sendita de <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Komentoj",SHOW_MORE_COMMENTS:"Afiŝi la antaŭajn komentojn",COMMENT_HELP:"Via komento, demando, ktp.",COMMENT_HELP_REPLY_TO:"Via respondo...",BTN_SEND:"Sendi",POPOVER_SHARE_TITLE:"Mesaĝo #{{number}}",REPLY:"Respondi",REPLY_TO:"Respondo al:",REPLY_TO_LINK:"Responde al ",REPLY_TO_DELETED_COMMENT:"Responde al forigita komento",REPLY_COUNT:"{{replyCount}} respondoj",DELETED_COMMENT:"Komento forigita",MODIFIED_ON:"modifita la {{time|formatDate}}",MODIFIED_PARENTHESIS:"(modifita poste)",ERROR:{FAILED_SAVE_COMMENT:"Eraro dum la konservo de la komento",FAILED_REMOVE_COMMENT:"Eraro dum la forigo de la komento"}},MESSAGE:{REPLY_TITLE_PREFIX:"Resp: ",FORWARD_TITLE_PREFIX:"Tr: ",BTN_REPLY:"Respondi",BTN_COMPOSE:"Nova mesaĝo",BTN_WRITE:"Skribi",NO_MESSAGE_INBOX:"Neniu mesaĝo ricevita",NO_MESSAGE_OUTBOX:"Neniu mesaĝo sendita",NOTIFICATIONS:{TITLE:"Mesaĝoj",MESSAGE_RECEIVED:"Vi <b>ricevis mesaĝon</b><br/>de"},LIST:{INBOX:"Ricevujo",OUTBOX:"Senditaj mesaĝoj",LAST_INBOX:"Novaj mesaĝoj",LAST_OUTBOX:"Senditaj mesaĝoj",BTN_LAST_MESSAGES:"Freŝdataj mesaĝoj",TITLE:"Mesaĝoj",SEARCH_HELP:"Serĉado en la mesaĝoj",POPOVER_ACTIONS:{TITLE:"Kromaĵoj",DELETE_ALL:"Forigi ĉiujn mesaĝojn"}},COMPOSE:{TITLE:"Nova mesaĝo",TITLE_REPLY:"Respondi",SUB_TITLE:"Nova mesaĝo",TO:"Al",OBJECT:"Temo",OBJECT_HELP:"Temo",ENCRYPTED_HELP:"Bonvolu noti, ke tiu ĉi mesaĝo estos ĉifrita antaŭ sendo, tiel ke nur la adresato povos legi ĝin, kaj ke li estos certa, ke vi ja estas ties aŭtoro.",MESSAGE:"Mesaĝo",MESSAGE_HELP:"Enhavo de la mesaĝo",CONTENT_CONFIRMATION:"La enhavo de la mesaĝo estas malplena.<br/><br/>Ĉu vi volas tamen sendi la mesaĝon?"},VIEW:{TITLE:"Mesaĝo",SENDER:"Sendita de",RECIPIENT:"Sendita al",NO_CONTENT:"Mesaĝo malplena",DELETE:"Forigi la mesaĝon"},CONFIRM:{REMOVE:"Ĉu vi certas, ke vi volas <b>forigi tiun ĉi mesaĝon</b>?<br/><br/>Tiu ago estas neinversigebla.",REMOVE_ALL:"Ĉu vi certas, ke vi volas <b>forigi ĉiujn mesaĝojn</b>?<br/><br/>Tiu ago estas neinversigebla.",MARK_ALL_AS_READ:"Ĉu vi certas, ke vi volas <b>marki ĉiujn mesaĝojn legitaj</b>?",USER_HAS_NO_PROFILE:"Tiu identeco havas neniun profilon Cesium+. Eblas ke ĝi ne uzas la krom-programon Cesium+, kaj <b>do ne legos vian mesaĝon</b>.<br/><br/>Ĉu vi certas, ke vi volas tamen <b>daŭrigi</b>?"},INFO:{MESSAGE_REMOVED:"Mesaĝo forigita",All_MESSAGE_REMOVED:"Ĉiuj mesaĝoj estis forigitaj",MESSAGE_SENT:"Mesaĝo sendita"},ERROR:{SEND_MSG_FAILED:"Eraro dum la sendo de la mesaĝo.",LOAD_MESSAGES_FAILED:"Eraro dum la ricevo de la mesaĝoj.",LOAD_MESSAGE_FAILED:"Eraro dum la ricevo de la mesaĝo.",MESSAGE_NOT_READABLE:"Legado de la mesaĝo neebla.",USER_NOT_RECIPIENT:"Vi ne estas la adresato de tiu ĉi mesaĝo: malĉifrado neebla.",NOT_AUTHENTICATED_MESSAGE:"La aŭtenteco de la mesaĝo estas dubinda aŭ ties enhavo estas difektita.",REMOVE_MESSAGE_FAILED:"Malsukceso por forigi la mesaĝon",MESSAGE_CONTENT_TOO_LONG:"Signaro tro longa ({{maxLength}} signoj maksimume).",MARK_AS_READ_FAILED:"Neeblas marki la mesaĝon 'legita'.",LOAD_NOTIFICATIONS_FAILED:"Eraro dum la ricevo de la mesaĝo-avizoj.",REMOVE_All_MESSAGES_FAILED:"Eraro dum la forigo de ĉiuj mesaĝoj.",MARK_ALL_AS_READ_FAILED:"Eraro por marki la mesaĝojn legitaj.",RECIPIENT_IS_MANDATORY:"La adresato estas deviga."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Numero de bloko, haketo, publika ŝlosilo, ktp.",POPOVER_FILTER_TITLE:"Filtriloj",HEADER_MEDIAN_TIME:"Dato / Horo",HEADER_BLOCK:"Bloko #",HEADER_ISSUER:"Nodo elsendinta",BTN_LAST:"Lastaj blokoj",DISPLAY_QUERY:"Afiŝi la informpeton",HIDE_QUERY:"Kaŝi la informpeton",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Eniroj/eliroj de membroj',EXISTING_TRANSACTION:'<b class="ion-card"></b> Kun spezoj',PERIOD:'<b class="ion-clock"></b> Inter <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) kaj <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Kalkulita de <b class="ion-key"></b> {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Spezoj koncernantaj <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Eraro dum la serĉado de la blokoj."}},GROUP:{GENERAL_DIVIDER:"Ĝeneralaj informoj",LOCATION_DIVIDER:"Adreso",SOCIAL_NETWORKS_DIVIDER:"Sociaj retoj kaj retejo",TECHNICAL_DIVIDER:"Teknikaj informoj",CREATED_TIME:"Kreita {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Invitoj"},LOOKUP:{TITLE:"Grupoj",SEARCH_HELP:"Nomo de grupo, vortoj, loko, ktp.",LAST_RESULTS_LIST:"Novaj grupoj:",OPEN_RESULTS_LIST:"Malfermitaj grupoj:",MANAGED_RESULTS_LIST:"Fermitaj grupoj:",BTN_LAST:"Novaj grupoj",BTN_NEW:"Mi aldonas grupon"},TYPE:{TITLE:"Nova grupo",SELECT_TYPE:"Tipo de grupo:",OPEN_GROUP:"Malfermita grupo",OPEN_GROUP_HELP:"Malfermita grupo estas alirebla de iu ajn membro de la mono.",MANAGED_GROUP:"Administrita grupo",MANAGED_GROUP_HELP:"Administrita grupo estas mastrumata de administrantoj kaj moderigantoj, kiuj povas akcepti, rifuzi aŭ eksigi membron.",ENUM:{OPEN:"Malfermita grupo",MANAGED:"Administrita grupo"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Kromaĵoj",REMOVE_CONFIRMATION:"Ĉu vi certas, ke vi volas forigi tiun ĉi grupon?<br/><br/>Tiu ago estas neinversigebla."},EDIT:{TITLE:"Grupo",TITLE_NEW:"Nova grupo",RECORD_TITLE:"Titolo",RECORD_TITLE_HELP:"Titolo",RECORD_DESCRIPTION:"Priskribo",RECORD_DESCRIPTION_HELP:"Priskribo"},ERROR:{SEARCH_GROUPS_FAILED:"Malsukceso por traserĉi grupojn",REMOVE_RECORD_FAILED:"Malsukceso por forigi la grupon"},INFO:{RECORD_REMOVED:"Grupo forigita"}},REGISTRY:{CATEGORY:"Ĉefa agado",GENERAL_DIVIDER:"Ĝeneralaj informoj",LOCATION_DIVIDER:"Adreso",SOCIAL_NETWORKS_DIVIDER:"Sociaj retoj kaj retejo",TECHNICAL_DIVIDER:"Teknikaj informoj",BTN_SHOW_WOT:"Personoj",BTN_SHOW_WOT_HELP:"Traserĉi personojn",BTN_SHOW_PAGES:"Paĝoj",BTN_SHOW_PAGES_HELP:"Traserĉi paĝojn",BTN_NEW:"Krei paĝon",MY_PAGES:"Miaj paĝoj",NO_PAGE:"Neniu paĝo",SEARCH:{TITLE:"Paĝoj",SEARCH_HELP:"Kio, Kiu: restoracio, Ĉe Marcelo, ...",BTN_ADD:"Nova",BTN_LAST_RECORDS:"Freŝdataj paĝoj",BTN_ADVANCED_SEARCH:"Sperta serĉado",BTN_OPTIONS:"Sperta serĉado",TYPE:"Tipo de paĝo",LOCATION_HELP:"Kie: Poŝto-kodo, Urbo",RESULTS:"Rezultoj",RESULT_COUNT_LOCATION:"{{count}} rezulto{{count>0?'j':''}}, proksime de {{location}}",RESULT_COUNT:"{{count}} rezulto{{count>0?'j':''}}",LAST_RECORDS:"Freŝdataj paĝoj",LAST_RECORD_COUNT_LOCATION:"{{count}} paĝo{{count>0?'j':''}} freŝdata{{count>0?'j':''}}, proksime de {{location}}",LAST_RECORD_COUNT:"{{count}} paĝo{{count>0?'j':''}} freŝdata{{count>0?'j':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Spertaj kromaĵoj?"}},VIEW:{TITLE:"Adresaro",CATEGORY:"Ĉefa agado:",LOCATION:"Adreso:",MENU_TITLE:"Kromaĵoj",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Ĉu vi certas, ke vi volas forigi tiun ĉi paĝon?<br/><br/>Tiu ago estas neinversigebla."},TYPE:{TITLE:"Tipoj",SELECT_TYPE:"Tipo de paĝo:",ENUM:{SHOP:"Loka komerco",COMPANY:"Entrepreno",ASSOCIATION:"Asocio",INSTITUTION:"Institucio"}},EDIT:{TITLE:"Redaktado",TITLE_NEW:"Nova paĝo",RECORD_TYPE:"Tipo de paĝo",RECORD_TITLE:"Nomo",RECORD_TITLE_HELP:"Nomo",RECORD_DESCRIPTION:"Priskribo",RECORD_DESCRIPTION_HELP:"Priskribo de la agado",RECORD_ADDRESS:"Strato",RECORD_ADDRESS_HELP:"Strato, konstruaĵo...",RECORD_CITY:"Urbo",RECORD_CITY_HELP:"Urbo",RECORD_SOCIAL_NETWORKS:"Sociaj retoj kaj retejo",RECORD_PUBKEY:"Publika ŝlosilo",RECORD_PUBKEY_HELP:"Publika ŝlosilo por ricevi la pagojn"},WALLET:{REGISTRY_DIVIDER:"Paĝoj",REGISTRY_HELP:"La paĝoj listigas agadojn, kiuj akceptas la liberan monon aŭ helpas ĝin: komercoj, entreprenoj, asocioj, institucioj."},ERROR:{LOAD_CATEGORY_FAILED:"Malsukceso por ŝarĝi la liston de la agadoj",LOAD_RECORD_FAILED:"Eraro dum la ŝarĝado de la paĝo",LOOKUP_RECORDS_FAILED:"Eraro dum la serĉado",REMOVE_RECORD_FAILED:"Malsukceso por forigi la paĝon",SAVE_RECORD_FAILED:"Eraro dum la konservado",RECORD_NOT_EXISTS:"Paĝo neekzistanta",GEO_LOCATION_NOT_FOUND:"Urbo aŭ poŝto-kodo ne trovita"},INFO:{RECORD_REMOVED:"Paĝo forigita",RECORD_SAVED:"Paĝo konservita"}},PROFILE:{PROFILE_DIVIDER:"Profilo Cesium+",PROFILE_DIVIDER_HELP:"Temas pri kromaj datenoj, stokitaj ekster la mon-reto.",NO_PROFILE_DEFINED:"Neniu profilo tajpita",BTN_ADD:"Tajpi mian profilon",BTN_EDIT:"Redakti mian profilon",BTN_DELETE:"Forigi mian profilon",BTN_REORDER:"Reordigi",UID:"Pseŭdonimo",TITLE:"Familia nomo, Persona nomo",TITLE_HELP:"Familia nomo, Persona nomo",DESCRIPTION:"Pri mi",DESCRIPTION_HELP:"Pri mi...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Ĝeneralaj informoj",SOCIAL_NETWORKS_DIVIDER:"Sociaj retoj, retejoj",TECHNICAL_DIVIDER:"Teknikaj informoj",MODAL_AVATAR:{TITLE:"Profil-foto",SELECT_FILE_HELP:"Bonvolu <b>elekti bildo-dosieron</b>, alklakante la ĉi-suban butonon:",BTN_SELECT_FILE:"Elekti foton",RESIZE_HELP:"<b>Rekadri la bildon</b>, laŭbezone. Pluigi klakon sur la bildo ebligas movi ĝin. Alklaku la zonon malsupre maldekstre por zomi.",RESULT_HELP:"<b>Jen la rezulto</b> tiel videbla ĉe via profilo:"},CONFIRM:{DELETE:"Ĉu vi certas, ke vi volas <b>forigi vian profilon Cesium+ ?</b><br/><br/>Tiu ago estas neinversigebla."},ERROR:{REMOVE_PROFILE_FAILED:"Malsukceso por forigi la profilon",LOAD_PROFILE_FAILED:"Malsukceso por ŝarĝi la profilon de la uzanto.",SAVE_PROFILE_FAILED:"Eraro dum la konservado",INVALID_SOCIAL_NETWORK_FORMAT:"Strukturo ne rekonata: bonvolu tajpi validan adreson.<br/><br/>Ezemploj:<ul><li>- Facebook-paĝo (https://www.facebook.com/uzanto)</li><li>- Retpaĝo (http://www.miaretejo.net)</li><li>- Retadreso (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Eraro dum la reformatigo de la bildo"},INFO:{PROFILE_REMOVED:"Profilo forigita",PROFILE_SAVED:"Profilo konservita"},HELP:{WARNING_PUBLIC_DATA:"La informoj afiŝitaj en via profilo <b>estas publikaj</b>: videblaj inkluzive de la personoj <b>ne konektitaj</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Trovi mian adreson surmape",USE_GEO_POINT:"Aperi sur la mapoj {{'COMMON.APP_NAME'|translate}}?",LOADING_LOCATION:"Serĉado de la adreso...",LOCATION_DIVIDER:"Adreso",ADDRESS:"Strato",ADDRESS_HELP:"Strato, adres-aldonaĵo...",CITY:"Urbo",CITY_HELP:"Poŝto-kodo, Urbo, Lando",DISTANCE:"Maksimuma distanco ĉirkaŭ la urbo",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Poŝto-kodo, Urbo",PROFILE_POSITION:"Loko de la profilo",MODAL:{TITLE:"Serĉado de la adreso",SEARCH_HELP:"Urbo, Poŝto-kodo, Lando",ALTERNATIVE_RESULT_DIVIDER:"Alternativaj rezultoj por <b>{{address}}</b>:",POSITION:"Lat/Lon: {{lat}}/{{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Deviga kampo (ĉar strato estas tajpita)",REQUIRED_FOR_LOCATION:"Deviga kampo por aperi sur la mapo",INVALID_FOR_LOCATION:"Adreso nekonata",GEO_LOCATION_FAILED:"Neeblas ricevi vian lokiĝon. Bonvolu uzi la serĉo-butonon.",ADDRESS_LOCATION_FAILED:"Neeblas ricevi la lokon per la adreso"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Retaj servoj",SUBSCRIPTION_DIVIDER_HELP:"La retaj servoj proponas pliajn nedevigajn servojn, delegitajn al aliulo.",BTN_ADD:"Aldoni servon",BTN_EDIT:"Mastrumi miajn servojn",NO_SUBSCRIPTION:"Neniu servo uzata",SUBSCRIPTION_COUNT:"Servoj / Abonoj",EDIT:{TITLE:"Retaj servoj",HELP_TEXT:"Mastrumu ĉi tie viajn abonojn kaj aliajn retajn servojn",PROVIDER:"Provizanto:"},TYPE:{ENUM:{EMAIL:"Ricevi la avizojn per retmesaĝo"}},CONFIRM:{DELETE_SUBSCRIPTION:"Ĉu vi certas, ke vi volas <b>forigi tiun abonon</b>?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Eraro dum la ŝarĝo de la retaj servoj",ADD_SUBSCRIPTION_FAILED:"Malsukceso por sendi la abonon",UPDATE_SUBSCRIPTION_FAILED:"Malsukceso por ĝisdatigi la abonon",DELETE_SUBSCRIPTION_FAILED:"Eraro dum la forigo de la abono"},MODAL_EMAIL:{TITLE:"Avizo per retmesaĝo",HELP:"Plenigu tiun ĉi formularon por <b>esti avizita per retmesaĝo</b> pri la okazaĵoj ĉe via konto.<br/>Via retadreso estos ĉifrita por esti videbla nur de la servo-provizanto.",EMAIL_LABEL:"Via retadreso:",EMAIL_HELP:"johano.stelaro@esperanto.org",FREQUENCY_LABEL:"Periodo de la avizoj:",FREQUENCY_DAILY:"Ĉiutaga",FREQUENCY_WEEKLY:"Ĉiusemajna",PROVIDER:"Servo-provizanto:"}},DOCUMENT:{HASH:"Haketo: ",LOOKUP:{TITLE:"Serĉado de dokumentoj",BTN_ACTIONS:"Agoj",SEARCH_HELP:"Sendanto:AAA*, tempo:1508406169",LAST_DOCUMENTS_DOTS:"Lastaj dokumentoj:",LAST_DOCUMENTS:"Lastaj dokumentoj",SHOW_QUERY:"Vidi la informpeton",HIDE_QUERY:"Kaŝi la informpeton",HEADER_TIME:"Dato/Horo",HEADER_ISSUER:"Sendanto",HEADER_RECIPIENT:"Ricevonto",READ:"Legita",BTN_REMOVE:"Forigi tiun ĉi dokumenton",BTN_COMPACT:"Densigi",HAS_CREATE_OR_UPDATE_PROFILE:"kreis aŭ modifis sian profilon",POPOVER_ACTIONS:{TITLE:"Agoj",REMOVE_ALL:"Forigi tiujn ĉi dokumentojn..."}},INFO:{REMOVED:"Dokumento forigita"},CONFIRM:{REMOVE:"Ĉu vi certas, ke vi volas <b>forigi tiun ĉi dokumenton</b>?",REMOVE_ALL:"Ĉu vi certas, ke vi volas <b>forigi tiujn ĉi dokumentojn</b>?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Eraro dum la serĉado de dokumentoj",REMOVE_FAILED:"Eraro dum la forigo de la dokumento",REMOVE_ALL_FAILED:"Eraro dum la forigo de la dokumentoj"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Profiloj, avizoj, privataj mesaĝoj",ENABLE_TOGGLE:"Aktivigi la krom-programon?",ENABLE_REMOTE_STORAGE:"Aktivigi la foran stokadon?",ENABLE_REMOTE_STORAGE_HELP:"Ebligas stoki (ĉifrite) viajn parametrojn ĉe la nodoj Cesium+",ENABLE_MESSAGE_TOGGLE:"Aktivigi la privatajn mesaĝojn?",PEER:"Adreso de la daten-nodo",POPUP_PEER:{TITLE:"Daten-nodo",HELP:"Tajpu la adreson de la nodo, kiun vi volas uzi:",PEER_HELP:"servo.domajno.com:port"},NOTIFICATIONS:{DIVIDER:"Avizoj",HELP_TEXT:"Aktivigu la avizo-tipojn, kiujn vi deziras ricevi:",ENABLE_TX_SENT:"Avizi pri la <b>senditaj pagoj</b>?",ENABLE_TX_RECEIVED:"Avizi pri la <b>ricevitaj pagoj</b>?",ENABLE_CERT_SENT:"Avizi pri la <b>senditaj atestaĵoj</b>?",ENABLE_CERT_RECEIVED:"Avizi pri <b>la ricevitaj atestaĵoj</b>?",ENABLE_HTML5_NOTIFICATION:"Anonci ĉiun novan avizon?",ENABLE_HTML5_NOTIFICATION_HELP:"Malfermas fenestreton por ĉiu nova avizo."},CONFIRM:{ASK_ENABLE_TITLE:"Kromaj funkcioj",ASK_ENABLE:'La krom-programo Cesium+ estas <b>malaktivigita</b> ĉe viaj parametroj, kio senaktivigas la funkciojn: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Profiloj Cesium+</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Avizoj</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Privataj mesaĝoj</b>.<li>&nbsp;&nbsp;<b><i class="icon ion-location"></i> Mapoj, ktp.</b>.</ul><br/><b>Ĉu vi deziras reaktivigi</b> la krom-programon?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Adresito estas deviga por la ĉifrado."}},ES_PEER:{NAME:"Nomo",DOCUMENTS:"Dokumentoj",SOFTWARE:"Programo",DOCUMENT_COUNT:"Nombro de dokumentoj",EMAIL_SUBSCRIPTION_COUNT:"{{emailSubscription}} abonantoj pri avizoj per retmesaĝoj"},EVENT:{NODE_STARTED:"Via nodo ES API <b>{{params[0]}}</b> ekis",NODE_BMA_DOWN:"La nodo <b>{{params[0]}}:{{params[1]}}</b> (uzata de via nodo ES API) estas <b>neatingebla</b>.",NODE_BMA_UP:"La nodo <b>{{params[0]}}:{{params[1]}}</b> estas denove alirebla.",MEMBER_JOIN:"Vi estas nun <b>membro</b> de la mono <b>{{params[0]}}</b>!",MEMBER_LEAVE:"Vi <b>ne plu estas membro</b> de la mono <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"Vi <b>ne plu estas membro</b> de la mono <b>{{params[0]}}</b>, pro ne revalidiĝo aŭ pro manko da atestaĵoj.",MEMBER_REVOKE:"La nuligo de via konto efektiviĝis. Ĝi ne plu povos esti membro-konto de la mono <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"La revalidiĝo de via aliĝo al la mono <b>{{params[0]}}</b> estis <b>ricevita</b>.",TX_SENT:"Via <b>pago</b> al <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> efektiviĝis.",TX_SENT_MULTI:"Via <b>pago</b> al <b>{{params[1]}}</b> efektiviĝis.",TX_RECEIVED:"Vi <b>ricevis pagon</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Vi <b>ricevis pagon</b> de <b>{{params[1]}}</b>.",CERT_SENT:"Via <b>atestado</b> al <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> efektiviĝis.",CERT_RECEIVED:"Vi <b>ricevis atestaĵon</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",USER:{LIKE_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ŝatas vian profilon",FOLLOW_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> sekvas viajn agojn",STAR_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> notis vin ({{params[3]}} <b class=\"ion-star\">)",MODERATION_RECEIVED:'<span ng-class="{\'gray\': !notification.uid, \'positive\':notification.uid}"><i class="icon" ng-class="{\'ion-person\': notification.uid, \'ion-key\': !notification.uid}"></i>&thinsp;{{name||uid||params[1]}}</span> petas de vi moderigon pri la profilo: <b>{{params[2]}}</b><br/><b class="dark ion-quote"> </b><span class="text-italic">{{params[3]}}</span>',DELETION_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> atentigis pri profilo foriginda: <b>{{params[2]}}</b>",ABUSE_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> atentigis pri via profilo"},PAGE:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> komentis vian anoncon: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> modifis sian komenton pri via anonco: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> respondis al via komento pri la anonco: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> modifis sian respondon al via komento pri la anonco: <b>{{params[2]}}</b>",FOLLOW_NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> komentis la paĝon: <b>{{params[2]}}</b>",FOLLOW_UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> modifis sian komenton ĉe la paĝo: <b>{{params[2]}}</b>",FOLLOW_NEW:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> aldonis la paĝon: <b>{{params[2]}}</b>",FOLLOW_UPDATE:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> modifis la paĝon: <b>{{params[2]}}</b>",MODERATION_RECEIVED:'<span ng-class="{\'gray\': !notification.uid, \'positive\':notification.uid}"><i class="icon" ng-class="{\'ion-person\': notification.uid, \'ion-key\': !notification.uid}"></i>&thinsp;{{name||uid||params[1]}}</span> petas de vis moderigon pri la paĝo: <b>{{params[2]}}</b><br/><b class="dark ion-quote"> </b><span class="text-italic">{{params[3]}}</span>',DELETION_RECEIVED:'<span ng-class="{\'gray\': !notification.uid, \'positive\':notification.uid}"><i class="icon" ng-class="{\'ion-person\': notification.uid, \'ion-key\': !notification.uid}"></i>&thinsp;{{name||uid||params[1]}}</span> atentigis pri paĝo foriginda: <b>{{params[2]}}</b><br/><b class="dark ion-quote"> </b><span class="text-italic">{{params[3]}}</span>',ABUSE_RECEIVED:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> atentigis pri via paĝo: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Daten-nodo <b>{{old}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Ĉu vi volas provizore uzi la daten-nodon <b>{{new}}</b> ?"},ERROR:{ES_CONNECTION_ERROR:'Daten-nodo <b>{{server}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Cesium daŭrigos funkcii, <b>sen la krom-programo Cesium+</b> (uzanto-profiloj, privataj mesaĝoj, mapoj kaj grafikoj)<br/><br/>Kontrolu vian ret-konekton, aŭ ŝanĝu daten-nodon ĉe la <a class="positive" ng-click="doQuickFix(\'settings\')">parametroj de la krom-programo</a>.',ES_MAX_UPLOAD_BODY_SIZE:"La kvanto de datenoj sendotaj superas la limon fiksitan de la servilo.<br/>Bonvolu reprovi post, ekzemple, forigo de fotoj."}}),e.translations("es-ES",{COMMON:{CATEGORY:"Categoría",CATEGORIES:"Categorías",CATEGORY_SEARCH_HELP:"Búsqueda",LAST_MODIFICATION_DATE:"Actualización el",SUBMIT_BY:"Sometido por",BTN_PUBLISH:"Publicar",BTN_PICTURE_DELETE:"Suprimir",BTN_PICTURE_FAVORISE:"Principal",BTN_PICTURE_ROTATE:"Girar",BTN_ADD_PICTURE:"Añadir una foto",NOTIFICATIONS:{TITLE:"Notificaciónes",MARK_ALL_AS_READ:"Marcar todo como leído",NO_RESULT:"Ningúna notificación",SHOW_ALL:"Ver todo",LOAD_NOTIFICATIONS_FAILED:"Fracaso en la carga de las notificaciónes"}},MENU:{REGISTRY:"Profesionales",USER_PROFILE:"Mi perfil",MESSAGES:"Mensajes",NOTIFICATIONS:"Notificaciónes",INVITATIONS:"Invitaciónes"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Cuenta para una organización",ORGANIZATION_ACCOUNT_HELP:"Si representa una empresa, una asociación, etc.<br/>Ningún dividendo universal será creído por esta cuenta."},EVENT:{MEMBER_WITHOUT_PROFILE:'Para obtener sus certificaciónes más rapidamente, completa <a ui-sref="app.edit_profile">su perfil usuario</a>. Los miembros concederán más fácilmente su confianza a una identidad verificable.'},ERROR:{WS_CONNECTION_FAILED:"Cesium no puede recibir las notificaciónes, a causa de un error técnico (conexión al nodo de datos Cesium+).<br/><br/>Si el problema persiste, por favor <b>elige un otro nodo de datos</b> en las configuraciónes Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Sugerir identidad a certificar...",BTN_ASK_CERTIFICATIONS_DOTS:"Solicitar otros miembros a certificarme…",BTN_ASK_CERTIFICATION:"Solicitar una certificación",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Sugerir certificaciónes",HELP:"Selectionar sus sugerencias"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Solicitar certificaciónes",HELP:"Selectionar los destinatarios"},SEARCH:{DIVIDER_PROFILE:"Cuentas",DIVIDER_PAGE:"Páginas",DIVIDER_GROUP:"Grupos"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Está usted segura/o querer <b>mandar estas sugerencia de certificatión</b> ?",ASK_CERTIFICATION:"Está usted segura/o querer <b>mandar una solicitud de certificación</b> ?",ASK_CERTIFICATIONS:"Está usted segura/o querer <b>mandar una solicitud de certificación</b> a estas personas ?"}},INVITATION:{TITLE:"Invitaciónes",NO_RESULT:"Ningúna invitación en espera",BTN_DELETE_ALL:"Suprimir todas las invitaciónes",BTN_DELETE:"Suprimir la invitación",BTN_NEW_INVITATION:"Nueva invitación",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> solicita su certificación',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> él es sugerido por certificación',SUGGESTED_BY:'Sugerencia mandada por <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitaciónes"},LIST:{TITLE:"Invitaciónes"},NEW:{TITLE:"Nueva invitación",RECIPIENTS:"A",RECIPIENTS_HELP:"Destinatarios de la invitación",RECIPIENTS_MODAL_TITLE:"Destinatarios",RECIPIENTS_MODAL_HELP:"Por favor, elige los destinatarios :",SUGGESTION_IDENTITIES:"Sugerencia de certificación",SUGGESTION_IDENTITIES_HELP:"Certificaciónes a sugerir",SUGGESTION_IDENTITIES_MODAL_TITLE:"Sugerencias",SUGGESTION_IDENTITIES_MODAL_HELP:"Por favor, elige sus sugerencias :"},CONFIRM:{DELETE_ALL_CONFIRMATION:"La supresión de las invitaciónes es una <b>operación ireversible</b>.<br/><br/><b>Está usted segura/o </b> querer continuar ?",SEND_INVITATIONS_TO_CERTIFY:"Está usted segura/o querer <b>mandar esta invitación a certificar</b> ?"},INFO:{INVITATION_SENT:"Invitación mandada"},ERROR:{LOAD_INVITATIONS_FAILED:"Fracaso en la carga de las invitaciónes",REMOVE_INVITATION_FAILED:"Fracaso durante la supresión de la invitación",REMOVE_ALL_INVITATIONS_FAILED:"Fracaso durante la supresión de las invitaciónes",SEND_INVITATION_FAILED:"Fracaso durante el envío de la invitación",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitación ilegible (formato desconocido)</span> - mandada por <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Comentarios",SHOW_MORE_COMMENTS:"Visualizar los comentarios anteriores",COMMENT_HELP:"Su comentario, preguntas, etc.",COMMENT_HELP_REPLY_TO:"Su repuesta…",BTN_SEND:"Mandar",POPOVER_SHARE_TITLE:"Mensaje #{{number}}",REPLY:"Responder",REPLY_TO:"Repuesta a :",REPLY_TO_LINK:"En repuesta a ",REPLY_TO_DELETED_COMMENT:"En repuesta a un comentario suprimido",REPLY_COUNT:"{{replyCount}} repuestas",DELETED_COMMENT:"Comentario suprimido",ERROR:{FAILED_SAVE_COMMENT:"Fracaso durante el respaldo del comentario",FAILED_REMOVE_COMMENT:"Fracaso durante la supresión del comentario"}},MESSAGE:{REPLY_TITLE_PREFIX:"Rep: ",FORWARD_TITLE_PREFIX:"Tr: ",BTN_REPLY:"Responder",BTN_COMPOSE:"Nuevo mensaje",BTN_WRITE:"Escribir",NO_MESSAGE_INBOX:"Ningun mensaje recibido",NO_MESSAGE_OUTBOX:"Ningun mensaje mandado",NOTIFICATIONS:{TITLE:"Mensajes",MESSAGE_RECEIVED:"Ha <b>recibido un mensaje</b><br/>de"},LIST:{INBOX:"Bandeja de entrada",OUTBOX:"Mensajes mandados",LAST_INBOX:"Nuevos mensajes",LAST_OUTBOX:"Mensajes enviados",BTN_LAST_MESSAGES:"Mensajes recientes",TITLE:"Mensajes",SEARCH_HELP:"Buscar en mensajes",POPOVER_ACTIONS:{TITLE:"Opciónes",DELETE_ALL:"Suprimir todos los mensajes"}},COMPOSE:{TITLE:"Nuevo mensaje",TITLE_REPLY:"Responder",SUB_TITLE:"Nuevo mensaje",TO:"A",OBJECT:"Objeto",OBJECT_HELP:"Objeto",ENCRYPTED_HELP:"Por favor, nota que este mensaje será cifrado antes envío, a fin que solo el destinatario pueda leerlo, y que esté asegurado que usted esté bien su autor.",MESSAGE:"Mensaje",MESSAGE_HELP:"Contenido del mensaje",CONTENT_CONFIRMATION:"El contenido del mensaje es vacío.<br/><br/>Sin embargo, quiere mandar el mensaje ?"},VIEW:{TITLE:"Mensaje",SENDER:"Mandado por",RECIPIENT:"Mandado a",NO_CONTENT:"Mensaje vacío",DELETE:"Eliminar el mensaje"},CONFIRM:{REMOVE:"Está usted segura/o querer <b>suprimir este mensaje</b> ?<br/><br/>Esta operación es ireversible.",REMOVE_ALL:"Está usted segura/o querer <b>suprimir todos los mensajes</b> ?<br/><br/>Esta operación es ireversible.",MARK_ALL_AS_READ:"Está usted segura/o querer <b>marcar todos los mensajes como leído</b> ?",USER_HAS_NO_PROFILE:"Esta identidad no tiene ningún perfil Cesium+. Se puede que no utilice la extensión Cesium+, y <b>así no consultará su mensaje</b>.<br/><br/>Está usted segura/o querer <b>continuar</b> a pesar de todo ?"},INFO:{MESSAGE_REMOVED:"Mensaje suprimido",All_MESSAGE_REMOVED:"Todos los mensajes fueron suprimido",MESSAGE_SENT:"Mensaje mandado"},ERROR:{SEND_MSG_FAILED:"Fracaso durante el envío del mensaje.",LOAD_MESSAGES_FAILED:"Fracaso durante la recuperación de los mensajes.",LOAD_MESSAGE_FAILED:"Fracaso durante la recuperación del mensaje.",MESSAGE_NOT_READABLE:"Lectura del mensaje imposible.",USER_NOT_RECIPIENT:"No esta el destinatario de este mensaje : deciframiento imposible.",NOT_AUTHENTICATED_MESSAGE:"La autenticidad del mensaje es dudosa o su contenido es corrupto.",REMOVE_MESSAGE_FAILED:"Fracaso en la supresión del mensaje",MESSAGE_CONTENT_TOO_LONG:"Valor demasiado largo ({{maxLength}} carácteres max).",MARK_AS_READ_FAILED:"Imposible marcar el mensaje como 'leído'.",LOAD_NOTIFICATIONS_FAILED:"Fracaso durante la recuperación de las notificaciónes de mensajes.",REMOVE_All_MESSAGES_FAILED:"Fracaso durante la supresión de todos los mensajes.",MARK_ALL_AS_READ_FAILED:"Fracaso durante el marcaje de los mensajes como leído.",RECIPIENT_IS_MANDATORY:"El destinatario es obligatorio."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Número de bloque, hash, llave pública, etc.",POPOVER_FILTER_TITLE:"Filtros",HEADER_MEDIAN_TIME:"Fecha / Hora",HEADER_BLOCK:"Bloque #",HEADER_ISSUER:"Nodo emisor",BTN_LAST:"últimos bloques",DISPLAY_QUERY:"Mostrar la consulta",HIDE_QUERY:"Ocultar la consulta",TX_SEARCH_FILTER:{MEMBER_FLOWS:"Entradas/salidas de miembros",EXISTING_TRANSACTION:"Con transacciones",PERIOD:'<b class="ion-clock"></b> Entre el <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) y el <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Calculado por <b class="ion-key"></b> {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transacciones que implican <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Fracaso en la búsqueda de los bloques."}},GROUP:{GENERAL_DIVIDER:"Informaciónes generales",LOCATION_DIVIDER:"Dirección",SOCIAL_NETWORKS_DIVIDER:"Redes sociales y sitio web",TECHNICAL_DIVIDER:"Informaciónes técnicas",CREATED_TIME:"Creada {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Invitaciónes"},LOOKUP:{TITLE:"Grupos",SEARCH_HELP:"Nombre de grupo, palabras , lugar, etc.",LAST_RESULTS_LIST:"Nuevos grupos :",OPEN_RESULTS_LIST:"Grupos abiertos :",MANAGED_RESULTS_LIST:"Grupos cerrados :",BTN_LAST:"Nuevos grupos",BTN_NEW:"Añado un grupo"},TYPE:{TITLE:"Nuevo grupo",SELECT_TYPE:"Tipo de grupo :",OPEN_GROUP:"Grupo abierto",OPEN_GROUP_HELP:"Un grupo abierto es accesible por cualquier miembro de la moneda.",MANAGED_GROUP:"Grupo administrado",MANAGED_GROUP_HELP:"un grupo administrado es gestionado por administradores y moderadores, que pueden aceptar, rechazar o excluir un miembro en su seno.",ENUM:{OPEN:"Grupo abierto",MANAGED:"Grupo administrado"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Opciones",REMOVE_CONFIRMATION:"Seguro que quieres eliminar este grupo?<br/><br/>Esta operación es irreversible."},EDIT:{TITLE:"Grupo",TITLE_NEW:"Nuevo grupo",RECORD_TITLE:"Título",RECORD_TITLE_HELP:"Título",RECORD_DESCRIPTION:"Descripción",RECORD_DESCRIPTION_HELP:"Descripción"},ERROR:{SEARCH_GROUPS_FAILED:"Fracaso en la búsqueda de grupos",REMOVE_RECORD_FAILED:"Error al eliminar el grupo"},INFO:{RECORD_REMOVED:"Grupo eliminado"}},REGISTRY:{CATEGORY:"Actividad principal",GENERAL_DIVIDER:"Informaciónes generales",LOCATION_DIVIDER:"Dirección",SOCIAL_NETWORKS_DIVIDER:"Redes sociales y sitio web",TECHNICAL_DIVIDER:"Informaciónes técnicas",BTN_SHOW_WOT:"Personas",BTN_SHOW_WOT_HELP:"Buscar personas",BTN_SHOW_PAGES:"Páginas",BTN_SHOW_PAGES_HELP:"Búsqueda de páginas",BTN_NEW:"Creer una página",MY_PAGES:"Mis páginas",NO_PAGE:"Sin página",SEARCH:{TITLE:"Páginas",SEARCH_HELP:"Qué, Quién : restaurante, Con Marcel, ...",BTN_ADD:"Nuevo",BTN_LAST_RECORDS:"Páginas recientes",BTN_ADVANCED_SEARCH:"búsqueda avanzada",BTN_OPTIONS:"Búsqueda avanzada",TYPE:"Tipo de página",LOCATION_HELP:"Ciudad",RESULTS:"Resultados",RESULT_COUNT_LOCATION:"{{count}} Resultado{{count>0?'s':''}}, cerca de {{location}}",RESULT_COUNT:"{{count}} resultado{{count>0?'s':''}}",LAST_RECORDS:"Páginas recientes",LAST_RECORD_COUNT_LOCATION:"{{count}} página{{count>0?'s':''}} reciente{{count>0?'s':''}}, cerca de {{location}}",LAST_RECORD_COUNT:"{{count}} página{{count>0?'s':''}} reciente{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Opciones avanzadas?"}},VIEW:{TITLE:"Anuario",CATEGORY:"Actividad principal :",LOCATION:"Dirección :",MENU_TITLE:"Opciónes",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Está usted segura/o querer suprimir esta página ?<br/><br/>Esta operación es ireversible."},TYPE:{TITLE:"Nueva página",SELECT_TYPE:"Tipo de página :",ENUM:{SHOP:"Comercio local",COMPANY:"Empresa",ASSOCIATION:"Asociación",INSTITUTION:"Institución"}},EDIT:{TITLE:"Edición",TITLE_NEW:"Nueva página",RECORD_TYPE:"Tipo de página",RECORD_TITLE:"Nombre",RECORD_TITLE_HELP:"Nombre",RECORD_DESCRIPTION:"Descripción",RECORD_DESCRIPTION_HELP:"Descripción de la actividad",RECORD_ADDRESS:"Calle",RECORD_ADDRESS_HELP:"Calle, edificio...",RECORD_CITY:"Ciudad",RECORD_CITY_HELP:"Ciudad",RECORD_SOCIAL_NETWORKS:"Redes sociales y sitio web",RECORD_PUBKEY:"Llave pública",RECORD_PUBKEY_HELP:"Llave pública de recepción de los pagos"},WALLET:{REGISTRY_DIVIDER:"Páginas",REGISTRY_HELP:"Las páginas se refieren a actividades que aceptan dinero o lo favorecen: empresas, negocios, asociaciones, instituciones."},ERROR:{LOAD_CATEGORY_FAILED:"Fracaso en la carga de la lista de actividades",LOAD_RECORD_FAILED:"Fracaso durante la carga de la página",LOOKUP_RECORDS_FAILED:"Fracaso durante la ejecución de la búsqueda.",REMOVE_RECORD_FAILED:"Fracaso en la supresión de la página",SAVE_RECORD_FAILED:"Fracaso durante el respaldo",RECORD_NOT_EXISTS:"Página inexistente",GEO_LOCATION_NOT_FOUND:"Ciudad o código postal no encontrado"},INFO:{RECORD_REMOVED:"Página suprimida",RECORD_SAVED:"Página guardada"}},PROFILE:{PROFILE_DIVIDER:"Perfil Cesium+",PROFILE_DIVIDER_HELP:"Estos son datos auxiliares, almacenados fuera de la red monetaria.",NO_PROFILE_DEFINED:"Ningún perfil Cesium+",BTN_ADD:"Ingresar mi perfil",BTN_EDIT:"Editar mi perfil",BTN_DELETE:"Eliminar mi perfil",BTN_REORDER:"Reordenar",UID:"Seudónimo",TITLE:"Nombre, Apellido",TITLE_HELP:"Nombre, Apellido",DESCRIPTION:"A propósito de yo",DESCRIPTION_HELP:"A propósito de yo...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Informaciónes generales",SOCIAL_NETWORKS_DIVIDER:"Redes sociales, sitios web",TECHNICAL_DIVIDER:"Informaciónes técnicas",MODAL_AVATAR:{TITLE:"Foto de perfil",SELECT_FILE_HELP:"Por favor, <b>elige un fichero imagen</b>, haciendo un clic sobre el botón por debajo :",BTN_SELECT_FILE:"Eligir una foto",RESIZE_HELP:"<b>Encuadra la imagen</b>, si es necesario. Un clic mantenido sobre la imagen permite desplazarla. Hace un clic sobre la zona abajo a la izquierda para hacer zoom.",RESULT_HELP:"<b>Aquí está el resultado</b> tal como está visible sobre su perfil :"},CONFIRM:{DELETE:"¿Estás seguro de que quieres <b>eliminar tu perfil Cesium+?</b><br/><br/>Esta operación es irreversible."},ERROR:{REMOVE_PROFILE_FAILED:"Error de eliminación de perfil",LOAD_PROFILE_FAILED:"Fracaso en la carga del perfil usuario.",SAVE_PROFILE_FAILED:"Fracaso durante el respaldo",INVALID_SOCIAL_NETWORK_FORMAT:"Formato no tomado en cuenta : por favor, indica una dirección válida.<br/><br/>Ejemplos :<ul><li>- Una página Facebook (https://www.facebook.com/user)</li><li>- Una página web (http://www.misitio.es)</li><li>- Una dirección email (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Fracaso durante el redimensionamiento de la imagen"},INFO:{PROFILE_REMOVED:"Perfil eliminado",PROFILE_SAVED:"Perfil respaldado"},HELP:{WARNING_PUBLIC_DATA:"Las informaciónes informadas en su perfil <b>están públicas</b> : visibles también por personas <b>no conectadas</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Actualizar desde la dirección",USE_GEO_POINT:"Aparecer en la tarjeta {{'COMMON.APP_NAME'|translate}} ?",LOADING_LOCATION:"Encontrar la dirección ...",LOCATION_DIVIDER:"Dirección",ADDRESS:"Calle",ADDRESS_HELP:"Calle, complemento de dirección...",CITY:"Ciudad",CITY_HELP:"Ciudad, País",DISTANCE:"Distancia máxima alrededor de la ciudad",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Ciudad, País",PROFILE_POSITION:"Posición del perfil",MODAL:{TITLE:"Búsqueda de dirección",SEARCH_HELP:"Ciudad, País",ALTERNATIVE_RESULT_DIVIDER:"Resultados alternativos para <b>{{address}}</b> :",POSITION:"Latitud/Longitud : {{lat}} / {{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Requerido si una calle ha sido llenada",REQUIRED_FOR_LOCATION:"Campo obligatorio para aparecer en el mapa",INVALID_FOR_LOCATION:"Dirección desconocida",GEO_LOCATION_FAILED:"No se puede recuperar su ubicación Por favor usa el botón de búsqueda.",ADDRESS_LOCATION_FAILED:"No se puede recuperar la posición de la dirección."}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Servicios en línea",SUBSCRIPTION_DIVIDER_HELP:"Los servicios en línea ofrecen servicios adicionales opcionales, delegados a un tercero.",BTN_ADD:"Agregar un servicio",BTN_EDIT:"Administrar mis servicios",NO_SUBSCRIPTION:"Ningún servicio definido",SUBSCRIPTION_COUNT:"Servicios / Suscripción",EDIT:{TITLE:"Servicios en línea",HELP_TEXT:"Gestione sus suscripciones y otros servicios en línea aquí",PROVIDER:"Proveedor:"},TYPE:{ENUM:{EMAIL:"Recibir notificaciones por correo electrónico"}},CONFIRM:{DELETE_SUBSCRIPTION:"Deseas <b>eliminar</b> esta suscripción ?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Error al cargar servicios en línea",ADD_SUBSCRIPTION_FAILED:"Error al agregar suscripción",UPDATE_SUBSCRIPTION_FAILED:"Error durante la actualización de la suscripción",DELETE_SUBSCRIPTION_FAILED:"Error al eliminar la suscripción"},MODAL_EMAIL:{TITLE:"Notificación por correo electrónico",HELP:"Rellene este formulario para <b>ser notificado por correo electrónico</b> de los eventos de su cuenta. <br/> Su dirección de correo electrónico se cifrará únicamente para que sea visible para el proveedor de servicios.",EMAIL_LABEL:"Tu correo electrónico :",EMAIL_HELP:"carlos@dominio.com",FREQUENCY_LABEL:"Frecuencia de las notificaciones :",FREQUENCY_DAILY:"Diariamente",FREQUENCY_WEEKLY:"Semanal",PROVIDER:"Proveedor de servicio :"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Perfiles, notificaciónes, mensajes privados",ENABLE_TOGGLE:"Activar la extensión ?",ENABLE_MESSAGE_TOGGLE:"Activar los mensajes privados ?",ENABLE_SETTINGS_TOGGLE:"Activar el almacenamiento a distancia de las configuraciónes ?",PEER:"Dirección del nodo de datos",POPUP_PEER:{TITLE:"Nodo de datos",HELP:"Ingresa la dirección del nodo que quiere utilizar :",PEER_HELP:"servidor.dominio.com:puerto"},NOTIFICATIONS:{DIVIDER:"Notificaciónes",HELP_TEXT:"Activa los tipos de notificaciónes que usted desea recibir :",ENABLE_TX_SENT:"Notificar la validación de los <b>pagos emitidos</b> ?",ENABLE_TX_RECEIVED:"Notificar la validación de los <b>pagos recibidos</b> ?",ENABLE_CERT_SENT:"Notificar la validación de las <b>certificaciónes emitidas</b> ?",ENABLE_CERT_RECEIVED:"Notificar la validación de las <b>certificaciónes recibidas</b> ?"},CONFIRM:{ASK_ENABLE_TITLE:"Nuevas funcionalidades",ASK_ENABLE:'Nuevas funcionalidades son disponibles : <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Perfiles Cesium+</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notificaciónes</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Mensajes privados</b>.</ul><br/>Fueron <b>desactivadas</b> en sus configuraciones.<br/><br/><b>Quiere usted activarlas</b> ?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Un destinatario es obligatorio para el cifrado."}},EVENT:{NODE_STARTED:"Su nodo ES API <b>{{params[0]}}</b> es comenzado",NODE_BMA_DOWN:"El nodo <b>{{params[0]}}:{{params[1]}}</b> (utilizado por su nodo ES API) <b>no es localizable</b>.",NODE_BMA_UP:"El nodo <b>{{params[0]}}:{{params[1]}}</b> es de nuevo accesible.",MEMBER_JOIN:"Ahora usted está <b>miembro</b> de la moneda <b>{{params[0]}}</b> !",MEMBER_LEAVE:"No está <b>miembro</b> de la moneda <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"Usted ya no es un miembro de la moneda <b>{{params[0]}}</b>, la falta de no renovación o la falta de certificaciones.",MEMBER_REVOKE:"La revocación de su cuenta se ha hecho. Puede que no sea un miembro de la cuenta en moneda <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Su renovación de adhesión a la moneda <b>{{params[0]}}</b> fue <b>tomado en cuenta</b>.",TX_SENT:"Su <b>pago</b> a <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> fue efectuado.",TX_SENT_MULTI:"Su <b>pago</b> a <b>{{params[1]}}</b> fue efectuado.",TX_RECEIVED:"Ha <b>recibido un pago</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Ha <b>recibido un pago</b> de <b>{{params[1]}}</b>.",CERT_SENT:"Su <b>certificación</b> a <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> fue efectuada.",CERT_RECEIVED:"Ha <b>recibido una certificación</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",PAGE:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha comentado su referencia : <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificado su comentario sobre su referencia : <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha contestado a su comentario sobre el referencia : <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificado la repuesta a su comentario sobre el referencia : <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Nodo de datos <b> {{old}} </ b> dirección inalcanzable o no válida.<br/><br/>¿Desea utilizar temporalmente el nodo de datos <b>{{new}}</b>?"},ERROR:{ES_CONNECTION_ERROR:'Nodo de datos <b>{{server}}</b> dirección inalcanzable o no válida.<br/><br/>Cesium continuará funcionando, <b>sin la extensión Cesium+</b> (perfiles de usuario, mensajes privados), mapas y gráficos).<br/><br/>Verifique su conexión a Internet, o cambie el nodo de datos en <a class="positive" ng-click="doQuickFix(\'settings\')"> configuración de extensión </a>.',ES_MAX_UPLOAD_BODY_SIZE:"El volumen de datos a enviar excede el límite establecido por el servidor.<br/><br/>Por favor, inténtelo de nuevo después, por ejemplo, borrando fotos."}}),e.translations("fr-FR",{COMMON:{CATEGORY:"Catégorie",CATEGORIES:"Catégories",CATEGORY_SEARCH_HELP:"Recherche",COMMENT_HELP:"Commentaire",LAST_MODIFICATION_DATE:"Mise à jour le",SUBMIT_BY:"Soumis par",BTN_LIKE:"J'aime",BTN_LIKE_REMOVE:"Je n'aime plus",LIKES_TEXT:"{{total}} personne{{total > 1 ? 's' : ''}} {{total > 1 ? 'ont' : 'a'}} aimé cette page",ABUSES_TEXT:"{{total}} personne{{total > 1 ? 's' : ''}} {{total > 1 ? 'ont' : 'a'}} signalé un problème",BTN_REPORT_ABUSE_DOTS:"Signaler un problème ou un abus...",BTN_REMOVE_REPORTED_ABUSE:"Annuler mon signalement",BTN_PUBLISH:"Publier",BTN_PICTURE_DELETE:"Supprimer",BTN_PICTURE_FAVORISE:"Principale",BTN_PICTURE_ROTATE:"Tourner",BTN_ADD_PICTURE:"Ajouter une photo",NOTIFICATION:{TITLE:"Nouvelle notification | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"Vous avez {{count}} notification{{count>0?'s':''}} non lue{{count>0?'s':''}}"},NOTIFICATIONS:{TITLE:"Notifications",MARK_ALL_AS_READ:"Tout marquer comme lu",NO_RESULT:"Aucune notification",SHOW_ALL:"Voir tout",LOAD_NOTIFICATIONS_FAILED:"Erreur de chargement des notifications"},REPORT_ABUSE:{TITLE:"Signaler un problème",SUB_TITLE:"Merci d'expliquer succintement le problème :",REASON_HELP:"J'explique le problème...",ASK_DELETE:"Demander la suppression ?",CONFIRM:{SENT:"Signalement envoyé. Merci !"}}},MENU:{REGISTRY:"Pages",USER_PROFILE:"Mon profil",MESSAGES:"Messages",NOTIFICATIONS:"Notifications",INVITATIONS:"Invitations"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Compte pour une organisation",ORGANIZATION_ACCOUNT_HELP:"Si vous représentez une entreprise, une association, etc.<br/>Aucun dividende universel ne sera créé par ce compte."},EVENT:{MEMBER_WITHOUT_PROFILE:'Vous pouvez <a ui-sref="app.edit_profile">saisir votre profil Cesium+</a> (optionnel) pour offrir une meilleure visibilité de votre compte. Ce profil sera stocké dans <b>un annuaire indépendant</b> de la monnaie, mais décentralisé.'},ERROR:{WS_CONNECTION_FAILED:"Cesium ne peut pas recevoir les notifications, à cause d'une erreur technique (connexion au noeud de données Cesium+).<br/><br/>Si le problème persiste, veuillez <b>choisir un autre noeud de données</b> dans les paramètres Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggérer des identités à certifier...",BTN_ASK_CERTIFICATIONS_DOTS:"Demander à des membres de me certifier...",BTN_ASK_CERTIFICATION:"Demander une certification",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggérer des certifications",HELP:"Sélectionner vos suggestions"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Demander des certifications",HELP:"Sélectionner les destinataires"},SEARCH:{DIVIDER_PROFILE:"Comptes",DIVIDER_PAGE:"Pages",DIVIDER_GROUP:"Groupes"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Êtes-vous sûr de vouloir <b>envoyer ces suggestions de certification</b> ?",ASK_CERTIFICATION:"Êtes-vous sûr de vouloir <b>envoyer une demande de certification</b> ?",ASK_CERTIFICATIONS:"Êtes-vous sûr de vouloir <b>envoyer une demande de certification</b> à ces personnes ?"}},INVITATION:{TITLE:"Invitations",NO_RESULT:"Aucune invitation en attente",BTN_DELETE_ALL:"Supprimer toutes les invitations",BTN_DELETE:"Supprimer l'invitation",BTN_NEW_INVITATION:"Nouvelle invitation",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> demande votre certification',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> vous est suggéré pour certification',SUGGESTED_BY:'Suggestion envoyée par <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitations"},LIST:{TITLE:"Invitations"},NEW:{TITLE:"Nouvelle invitation",RECIPIENTS:"A",RECIPIENTS_HELP:"Destinataires de l'invitation",RECIPIENTS_MODAL_TITLE:"Destinataires",RECIPIENTS_MODAL_HELP:"Veuillez choisir les destinataires :",SUGGESTION_IDENTITIES:"Suggestions de certification",SUGGESTION_IDENTITIES_HELP:"Certifications à suggérer",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggestions",SUGGESTION_IDENTITIES_MODAL_HELP:"Veuillez choisir vos suggestions :"},CONFIRM:{DELETE_ALL_CONFIRMATION:"La suppression des invitations est une <b>opération irréversible</b>.<br/><br/><b>Êtes-vous sûr</b> de vouloir continuer ?",SEND_INVITATIONS_TO_CERTIFY:"Êtes-vous sûr de vouloir <b>envoyer cette invitation à certifier</b> ?"},INFO:{INVITATION_SENT:"Invitation envoyée"},ERROR:{LOAD_INVITATIONS_FAILED:"Échec du chargement des invitations",REMOVE_INVITATION_FAILED:"Erreur lors de la suppression de l'invitation",REMOVE_ALL_INVITATIONS_FAILED:"Erreur lors de la suppression des invitations",SEND_INVITATION_FAILED:"Erreur lors de l'envoi de l'invitation",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitation illisible (format inconnu)</span> - envoyée par <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Commentaires",SHOW_MORE_COMMENTS:"Afficher les commentaires précédents",COMMENT_HELP:"Votre commentaire, question, etc.",COMMENT_HELP_REPLY_TO:"Votre réponse...",BTN_SEND:"Envoyer",POPOVER_SHARE_TITLE:"Message #{{number}}",REPLY:"Répondre",REPLY_TO:"Réponse à :",REPLY_TO_LINK:"En réponse à ",REPLY_TO_DELETED_COMMENT:"En réponse à un commentaire supprimé",REPLY_COUNT:"{{replyCount}} réponses",DELETED_COMMENT:"Commentaire supprimé",MODIFIED_ON:"modifié le {{time|formatDate}}",MODIFIED_PARENTHESIS:"(modifié ensuite)",ERROR:{FAILED_SAVE_COMMENT:"Erreur lors de la sauvegarde du commentaire",FAILED_REMOVE_COMMENT:"Erreur lors de la suppression du commentaire"}},MESSAGE:{REPLY_TITLE_PREFIX:"Rep: ",FORWARD_TITLE_PREFIX:"Tr: ",BTN_REPLY:"Répondre",BTN_COMPOSE:"Nouveau message",BTN_WRITE:"Ecrire",NO_MESSAGE_INBOX:"Aucun message reçu",NO_MESSAGE_OUTBOX:"Aucun message envoyé",NOTIFICATIONS:{TITLE:"Messages",MESSAGE_RECEIVED:"Vous avez <b>reçu un message</b><br/>de"},LIST:{INBOX:"Boîte de réception",OUTBOX:"Messages envoyés",LAST_INBOX:"Nouveaux messages",LAST_OUTBOX:"Messages envoyés",BTN_LAST_MESSAGES:"Messages récents",TITLE:"Messages",SEARCH_HELP:"Recherche dans les messages",POPOVER_ACTIONS:{TITLE:"Options",DELETE_ALL:"Supprimer tous les messages"}},COMPOSE:{TITLE:"Nouveau message",TITLE_REPLY:"Répondre",SUB_TITLE:"Nouveau message",TO:"A",OBJECT:"Objet",OBJECT_HELP:"Objet",ENCRYPTED_HELP:"Veuillez noter que ce message sera chiffré avant envoi, afin que seul le destinataire puisse le lire, et qu'il soit assuré que vous soyez bien son auteur.",MESSAGE:"Message",MESSAGE_HELP:"Contenu du message",CONTENT_CONFIRMATION:"Le contenu du message est vide.<br/><br/>Voulez-vous néanmoins envoyer le message ?"},VIEW:{TITLE:"Message",SENDER:"Envoyé par",RECIPIENT:"Envoyé à",NO_CONTENT:"Message vide",DELETE:"Supprimer le message"},CONFIRM:{REMOVE:"Êtes-vous sûr de vouloir <b>supprimer ce message</b> ?<br/><br/>Cette opération est irréversible.",REMOVE_ALL:"Êtes-vous sûr de vouloir <b>supprimer tous les messages</b> ?<br/><br/>Cette opération est irréversible.",MARK_ALL_AS_READ:"Êtes-vous sûr de vouloir <b>marquer tous les messages comme lus</b> ?",USER_HAS_NO_PROFILE:"Cette identité n'a aucun profil Cesium+. Il se peut qu'elle n'utilise pas l'extension Cesium+, et <b>ne consultera donc pas votre message</b>.<br/><br/>Êtes-vous sûr de vouloir <b>continuer</b> malgré tout ?"},INFO:{MESSAGE_REMOVED:"Message supprimé",All_MESSAGE_REMOVED:"Tous les messages ont été supprimés",MESSAGE_SENT:"Message envoyé"},ERROR:{SEND_MSG_FAILED:"Erreur lors de l'envoi du message.",LOAD_MESSAGES_FAILED:"Erreur lors de la récupération des messages.",LOAD_MESSAGE_FAILED:"Erreur lors de la récupération du message.",MESSAGE_NOT_READABLE:"Lecture du message impossible.",USER_NOT_RECIPIENT:"Vous n'êtes pas le destinataire de ce message : déchiffrement impossible.",NOT_AUTHENTICATED_MESSAGE:"L'authenticité du message est douteuse ou son contenu est corrompu.",REMOVE_MESSAGE_FAILED:"Erreur de suppression du message",MESSAGE_CONTENT_TOO_LONG:"Valeur trop longue ({{maxLength}} caractères max).",MARK_AS_READ_FAILED:"Impossible de marquer le message comme 'lu'.",LOAD_NOTIFICATIONS_FAILED:"Erreur lors de la récupération des notifications de messages.",REMOVE_All_MESSAGES_FAILED:"Erreur lors de la suppression de tous les messages.",MARK_ALL_AS_READ_FAILED:"Erreur lors du marquage des messages comme lus.",RECIPIENT_IS_MANDATORY:"Le destinataire est obligatoire."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Numéro de bloc, hash, clé publique, etc.",POPOVER_FILTER_TITLE:"Filtres",HEADER_MEDIAN_TIME:"Date / Heure",HEADER_BLOCK:"Bloc #",HEADER_ISSUER:"Noeud émetteur",BTN_LAST:"Derniers blocs",DISPLAY_QUERY:"Afficher la requête",HIDE_QUERY:"Masquer la requête",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Entrées/sorties de membres',EXISTING_TRANSACTION:'<b class="ion-card"></b> Avec transactions',PERIOD:'<b class="ion-clock"></b> Entre <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) et <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Calculé par <b class="ion-key"></b> {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transactions concernant <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Erreur de la recherche des blocs."}},GROUP:{GENERAL_DIVIDER:"Informations générales",LOCATION_DIVIDER:"Adresse",SOCIAL_NETWORKS_DIVIDER:"Réseaux sociaux et site web",TECHNICAL_DIVIDER:"Informations techniques",CREATED_TIME:"Créé {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Invitations"},LOOKUP:{TITLE:"Groupes",SEARCH_HELP:"Nom de groupe, mots, lieu, etc.",LAST_RESULTS_LIST:"Nouveaux groupes :",OPEN_RESULTS_LIST:"Groupes ouverts :",MANAGED_RESULTS_LIST:"Groupes fermés :",BTN_LAST:"Nouveaux groupes",BTN_NEW:"J'ajoute un groupe"},TYPE:{TITLE:"Nouveau groupe",SELECT_TYPE:"Type de groupe :",OPEN_GROUP:"Groupe ouvert",OPEN_GROUP_HELP:"Un groupe ouvert est accessible par n'importe quel membre de la monnaie.",MANAGED_GROUP:"Groupe administré",MANAGED_GROUP_HELP:"un groupe administré est géré par des administrateurs et des modérateurs, qui peuvent accepter, refuser ou exclure un membre en son sein.",ENUM:{OPEN:"Groupe ouvert",MANAGED:"Groupe administré"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Options",REMOVE_CONFIRMATION:"Êtes-vous sûr de vouloir supprimer ce groupe ?<br/><br/>Cette opération est irréversible."},EDIT:{TITLE:"Groupe",TITLE_NEW:"Nouveau groupe",RECORD_TITLE:"Titre",RECORD_TITLE_HELP:"Titre",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Description"},ERROR:{SEARCH_GROUPS_FAILED:"Échec de la recherche de groupes",REMOVE_RECORD_FAILED:"Erreur de la suppression du groupe"},INFO:{RECORD_REMOVED:"Groupe supprimé"}},REGISTRY:{CATEGORY:"Activité principale",GENERAL_DIVIDER:"Informations générales",LOCATION_DIVIDER:"Adresse",SOCIAL_NETWORKS_DIVIDER:"Réseaux sociaux et site web",TECHNICAL_DIVIDER:"Informations techniques",BTN_SHOW_WOT:"Personnes",BTN_SHOW_WOT_HELP:"Rechercher des personnes",BTN_SHOW_PAGES:"Pages",BTN_SHOW_PAGES_HELP:"Rechercher des pages",BTN_NEW:"Créer une page",MY_PAGES:"Mes pages",NO_PAGE:"Aucune page",SEARCH:{TITLE:"Pages",SEARCH_HELP:"Quoi, Qui : restaurant, Chez Marcel, ...",BTN_ADD:"Nouveau",BTN_LAST_RECORDS:"Pages récentes",BTN_ADVANCED_SEARCH:"Recherche avancée",BTN_OPTIONS:"Recherche avancée",TYPE:"Type de page",LOCATION_HELP:"Où : Code postal, Ville",RESULTS:"Résultats",RESULT_COUNT_LOCATION:"{{count}} résultat{{count>0?'s':''}}, près de {{location}}",RESULT_COUNT:"{{count}} résultat{{count>0?'s':''}}",LAST_RECORDS:"Pages récentes",LAST_RECORD_COUNT_LOCATION:"{{count}} page{{count>0?'s':''}} récente{{count>0?'s':''}}, près de {{location}}",LAST_RECORD_COUNT:"{{count}} page{{count>0?'s':''}} récente{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Options avancées ?"}},VIEW:{TITLE:"Annuaire",CATEGORY:"Activité principale :",LOCATION:"Adresse :",MENU_TITLE:"Options",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Êtes-vous sûr de vouloir supprimer cette page ?<br/><br/>Cette opération est irréversible."},TYPE:{TITLE:"Types",SELECT_TYPE:"Type de page :",ENUM:{SHOP:"Commerce local",COMPANY:"Entreprise",ASSOCIATION:"Association",INSTITUTION:"Institution"}},EDIT:{TITLE:"Edition",TITLE_NEW:"Nouvelle page",RECORD_TYPE:"Type de page",RECORD_TITLE:"Nom",RECORD_TITLE_HELP:"Nom",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Description de l'activité",RECORD_ADDRESS:"Rue",RECORD_ADDRESS_HELP:"Rue, bâtiment...",RECORD_CITY:"Ville",RECORD_CITY_HELP:"Ville",RECORD_SOCIAL_NETWORKS:"Réseaux sociaux et site web",RECORD_PUBKEY:"Clé publique",RECORD_PUBKEY_HELP:"Clé publique de réception des paiements"},WALLET:{REGISTRY_DIVIDER:"Pages",REGISTRY_HELP:"Les pages référencent des activités acceptant la monnaie ou la favorisant : commerces, entreprises, associations, institutions."},ERROR:{LOAD_CATEGORY_FAILED:"Erreur de chargement de la liste des activités",LOAD_RECORD_FAILED:"Erreur lors du chargement de la page",LOOKUP_RECORDS_FAILED:"Erreur lors de l'exécution de la recherche",REMOVE_RECORD_FAILED:"Erreur lors de la suppression de la page",SAVE_RECORD_FAILED:"Erreur lors de la sauvegarde",RECORD_NOT_EXISTS:"Page inexistante",GEO_LOCATION_NOT_FOUND:"Ville ou code postal non trouvé"},INFO:{RECORD_REMOVED:"Page supprimée",RECORD_SAVED:"Page sauvegardée"}},PROFILE:{PROFILE_DIVIDER:"Profil Cesium+",PROFILE_DIVIDER_HELP:"Il s'agit de données annexes, stockées en dehors du réseau de la monnaie.",NO_PROFILE_DEFINED:"Aucun profil saisi",BTN_ADD:"Saisir mon profil",BTN_EDIT:"Editer mon profil",BTN_DELETE:"Supprimer mon profil",BTN_REORDER:"Réordonner",UID:"Pseudonyme",TITLE:"Nom, Prénom",TITLE_HELP:"Nom, Prénom",DESCRIPTION:"A propos de moi",DESCRIPTION_HELP:"A propos de moi...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Informations générales",SOCIAL_NETWORKS_DIVIDER:"Réseaux sociaux, sites web",TECHNICAL_DIVIDER:"Informations techniques",MODAL_AVATAR:{TITLE:"Photo de profil",SELECT_FILE_HELP:"Veuillez <b>choisir un fichier image</b>, en cliquant sur le bouton ci-dessous :",BTN_SELECT_FILE:"Choisir une photo",RESIZE_HELP:"<b>Recadrez l'image</b>, si besoin. Un clic maintenu sur l'image permet de la déplacer. Cliquez sur la zone en bas à gauche pour zoomer.",RESULT_HELP:"<b>Voici le résultat</b> tel que visible sur votre profil :"},CONFIRM:{DELETE:"Êtes-vous sûr de vouloir <b>supprimer votre profil Cesium+ ?</b><br/><br/>Cette opération est irréversible."},ERROR:{REMOVE_PROFILE_FAILED:"Erreur de suppression du profil",LOAD_PROFILE_FAILED:"Erreur de chargement du profil utilisateur",SAVE_PROFILE_FAILED:"Erreur lors de la sauvegarde",INVALID_SOCIAL_NETWORK_FORMAT:"Format non pris en compte : veuillez indiquer une adresse valide.<br/><br/>Exemples :<ul><li>- Une page Facebook (https://www.facebook.com/user)</li><li>- Une page web (http://www.monsite.fr)</li><li>- Une adresse email (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Erreur lors du redimensionnement de l'image"},INFO:{PROFILE_REMOVED:"Profil supprimé",PROFILE_SAVED:"Profil sauvegardé"},HELP:{WARNING_PUBLIC_DATA:"Les informations renseignées dans votre profil <b>sont publiques</b> : visibles y compris par des personnes <b>non connectées</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Trouver mon adresse sur la carte",USE_GEO_POINT:"Apparaître sur les cartes {{'COMMON.APP_NAME'|translate}} ?",LOADING_LOCATION:"Recherche de l'adresse...",LOCATION_DIVIDER:"Adresse",ADDRESS:"Rue",ADDRESS_HELP:"Rue, complément d'adresse...",CITY:"Ville",CITY_HELP:"Code postal, Ville, Pays",DISTANCE:"Distance maximale autour de la ville",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Code postal, Ville",PROFILE_POSITION:"Position du profil",MODAL:{TITLE:"Recherche de l'adresse",SEARCH_HELP:"Ville, Code postal, Pays",ALTERNATIVE_RESULT_DIVIDER:"Résultats alternatifs pour <b>{{address}}</b> :",POSITION:"Lat/Lon : {{lat}}/{{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Champ obligatoire (car une rue est saisie)",REQUIRED_FOR_LOCATION:"Champ obligatoire pour apparaître sur la carte",INVALID_FOR_LOCATION:"Adresse inconnue",GEO_LOCATION_FAILED:"Impossible de récupérer votre position. Veuillez utiliser le bouton de recherche.",ADDRESS_LOCATION_FAILED:"Impossible de récupérer la position à partir de l'adresse"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Services en ligne",SUBSCRIPTION_DIVIDER_HELP:"Les services en ligne offrent des services supplémentaires optionnels, délégués à un tiers.",BTN_ADD:"Ajouter un service",BTN_EDIT:"Gérer mes services",NO_SUBSCRIPTION:"Aucun service utilisé",SUBSCRIPTION_COUNT:"Services / Abonnements",EDIT:{TITLE:"Services en ligne",HELP_TEXT:"Gérez ici vos abonnements et autres services en ligne",PROVIDER:"Prestataire :"},TYPE:{ENUM:{EMAIL:"Recevoir les notifications par email"}},CONFIRM:{DELETE_SUBSCRIPTION:"Êtes-vous sûr de vouloir <b>supprimer cet abonnement</b> ?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Erreur lors du chargement des services en ligne",ADD_SUBSCRIPTION_FAILED:"Erreur de l'envoi de l'abonnement",UPDATE_SUBSCRIPTION_FAILED:"Erreur de la mise à jour de l'abonnement",DELETE_SUBSCRIPTION_FAILED:"Erreur lors de la suppression de l'abonnement"},MODAL_EMAIL:{TITLE:"Notification par email",HELP:"Remplissez ce formulaire pour <b>être notifié par email</b> des événements de votre compte.<br/>Votre adresse email sera chiffrée pour n'être visible que par le prestataire de service.",EMAIL_LABEL:"Votre email :",EMAIL_HELP:"jean.dupond@domaine.com",FREQUENCY_LABEL:"Fréquence des notifications :",FREQUENCY_DAILY:"Journalier",FREQUENCY_WEEKLY:"Hebdomadaire",PROVIDER:"Prestataire du service :"}},DOCUMENT:{HASH:"Hash : ",LOOKUP:{TITLE:"Recherche de documents",BTN_ACTIONS:"Actions",SEARCH_HELP:"issuer:AAA*, time:1508406169",LAST_DOCUMENTS_DOTS:"Derniers documents :",LAST_DOCUMENTS:"Derniers documents",SHOW_QUERY:"Voir la requête",HIDE_QUERY:"Masquer la requête",HEADER_TIME:"Date/Heure",HEADER_ISSUER:"Emetteur",HEADER_RECIPIENT:"Destinataire",READ:"Lu",BTN_REMOVE:"Supprimer ce document",BTN_COMPACT:"Compacter",HAS_CREATE_OR_UPDATE_PROFILE:"a créé ou modifié son profil",POPOVER_ACTIONS:{TITLE:"Actions",REMOVE_ALL:"Supprimer ces documents..."}},INFO:{REMOVED:"Document supprimé"},CONFIRM:{REMOVE:"Êtes-vous sûr de vouloir <b>supprimer ce document</b> ?",REMOVE_ALL:"Êtes-vous sûr de vouloir <b>supprimer ces documents</b> ?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Erreur lors de la recherche de documents",REMOVE_FAILED:"Erreur lors de la suppression du document",REMOVE_ALL_FAILED:"Erreur lors de la suppression des documents"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Profils, notifications, messages privés",ENABLE_TOGGLE:"Activer l'extension ?",ENABLE_REMOTE_STORAGE:"Activer le stockage distant ?",ENABLE_REMOTE_STORAGE_HELP:"Permet de stockage (chiffré) de vos paramètres sur les noeuds Cesium+",ENABLE_MESSAGE_TOGGLE:"Activer les messages privés ?",PEER:"Adresse du nœud de données",POPUP_PEER:{TITLE:"Nœud de données",HELP:"Saisissez l'adresse du nœud que vous voulez utiliser :",PEER_HELP:"serveur.domaine.com:port"},NOTIFICATIONS:{DIVIDER:"Notifications",HELP_TEXT:"Activez les types de notifications que vous souhaitez recevoir :",ENABLE_TX_SENT:"Notifier les <b>paiements émis</b> ?",ENABLE_TX_RECEIVED:"Notifier les <b>paiements reçus</b> ?",ENABLE_CERT_SENT:"Notifier les <b>certifications émises</b> ?",ENABLE_CERT_RECEIVED:"Notifier les <b>certifications reçues</b> ?",ENABLE_HTML5_NOTIFICATION:"Avertir à chaque nouvelle notification ?",ENABLE_HTML5_NOTIFICATION_HELP:"Ouvre une petite fenêtre à chaque nouvelle notification."},CONFIRM:{ASK_ENABLE_TITLE:"Fonctionnalités optionnelles",ASK_ENABLE:'L\'extension Cesium+ est <b>désactivée</b> dans vos paramètres, rendant inactives les fonctionnalités : <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Profils Cesium+</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Messages privés</b>.<li>&nbsp;&nbsp;<b><i class="icon ion-location"></i> Cartes, etc.</b>.</ul><br/><b>Souhaitez-vous ré-activer</b> l\'extension ?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Un destinataire est obligatoire pour le chiffrement."}},ES_PEER:{NAME:"Nom",DOCUMENTS:"Documents",SOFTWARE:"Logiciel",DOCUMENT_COUNT:"Nombre de documents",EMAIL_SUBSCRIPTION_COUNT:"{{emailSubscription}} abonné{{emailSubscription ? 's' : ''}} aux notifications par email"},EVENT:{NODE_STARTED:"Votre noeud ES API <b>{{params[0]}}</b> est démarré",NODE_BMA_DOWN:"Le noeud <b>{{params[0]}}:{{params[1]}}</b> (utilisé par votre noeud ES API) est <b>injoignable</b>.",NODE_BMA_UP:"Le noeud <b>{{params[0]}}:{{params[1]}}</b> est à nouveau accessible.",MEMBER_JOIN:"Vous êtes maintenant <b>membre</b> de la monnaie <b>{{params[0]}}</b> !",MEMBER_LEAVE:"Vous n'êtes <b>plus membre</b> de la monnaie <b>{{params[0]}}</b> !",MEMBER_EXCLUDE:"Vous n'êtes <b>plus membre</b> de la monnaie <b>{{params[0]}}</b>, faute de non renouvellement ou par manque de certifications.",MEMBER_REVOKE:"La révocation de votre compte a été effectuée. Il ne pourra plus être un compte membre de la monnaie <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Votre renouvellement d'adhésion à la monnaie <b>{{params[0]}}</b> a été <b>pris en compte</b>.",TX_SENT:"Votre <b>paiement</b> à <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a été effectué.",TX_SENT_MULTI:"Votre <b>paiement</b> à <b>{{params[1]}}</b> a été effectué.",TX_RECEIVED:"Vous avez <b>reçu un paiement</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Vous avez <b>reçu un paiement</b> de <b>{{params[1]}}</b>.",CERT_SENT:"Votre <b>certification</b> à <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a été effectuée.",CERT_RECEIVED:"Vous avez <b>reçu une certification</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",USER:{LIKE_RECEIVED:'<span class="positive"><i class="icon ion-person"></i>&thinsp;{{name||params[1]}}</span> aime votre profil',FOLLOW_RECEIVED:'<span class="positive"><i class="icon ion-person"></i>&thinsp;{{name||params[1]}}</span> suit votre activité',STAR_RECEIVED:'<span class="positive"><i class="icon ion-person"></i>&thinsp;{{name||params[1]}}</span> vous a noté ({{params[3]}} <b class="ion-star">)',MODERATION_RECEIVED:'<span class="positive"><i class="icon ion-person"></i>&thinsp;{{name||params[1]}}</span> vous demande une modération sur le profil : <b>{{params[2]}}</b><br/><b class="dark ion-quote"> </b><span class="text-italic">{{params[3]}}</span>',DELETION_RECEIVED:'<span class="positive"><i class="icon ion-person"></i>&thinsp;{{name||params[1]}}</span> demande la suppression d\'un profil : <b>{{params[2]}}</b>',ABUSE_RECEIVED:'<span class="positive"><i class="icon ion-person"></i>&thinsp;{{name||params[1]}}</span> a signalé votre profil'},PAGE:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a commenté votre page : <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a modifié son commentaire sur votre page : <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a répondu à votre commentaire sur la page : <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a modifié sa réponse à votre commentaire sur la page : <b>{{params[2]}}</b>",FOLLOW_NEW_COMMENT:'<span class="positive"><i class="icon ion-person"></i>&thinsp;{{name||params[1]}}</span> a commenté la page : <b>{{params[2]}}</b>',FOLLOW_UPDATE_COMMENT:'<span class="positive"><i class="icon ion-person"></i>&thinsp;{{name||params[1]}}</span> a modifié son commentaire sur la page : <b>{{params[2]}}</b>',FOLLOW_NEW:'<span class="positive"><i class="icon ion-person"></i>&thinsp;{{name||params[1]}}</span> a ajouté la page : <b>{{params[2]}}</b>',FOLLOW_UPDATE:'<span class="positive"><i class="icon ion-person"></i>&thinsp;{{name||params[1]}}</span> a modifié la page : <b>{{params[2]}}</b>',MODERATION_RECEIVED:'<span class="positive"><i class="icon ion-person"></i>&thinsp;{{name||params[1]}}</span> vous demande une modération sur la page : <b>{{params[2]}}</b><br/><b class="dark ion-quote"> </b><span class="text-italic">{{params[3]}}</span>',DELETION_RECEIVED:'<span class="positive"><i class="icon ion-person"></i>&thinsp;{{name||params[1]}}</span> a signalé une page à supprimer : <b>{{params[2]}}</b><br/><b class="dark ion-quote"> </b><span class="text-italic">{{params[3]}}</span>',ABUSE_RECEIVED:'<span class="positive"><i class="icon ion-person"></i>&thinsp;{{name||params[1]}}</span> a signalé votre page : <b>{{params[2]}}</b>'}},LIKE:{ERROR:{FAILED_TOGGLE_LIKE:"Impossible d'executer cette action."}},CONFIRM:{ES_USE_FALLBACK_NODE:"Nœud de données <b>{{old}}</b> injoignable ou adresse invalide.<br/><br/>Voulez-vous temporairement utiliser le nœud de données <b>{{new}}</b> ?"},ERROR:{ES_CONNECTION_ERROR:"Nœud de données <b>{{server}}</b> injoignable ou adresse invalide.<br/><br/>Cesium va continuer à fonctionner, <b>sans l'extension Cesium+</b> (profils utilisateur, messages privés, cartes et graphiques)<br/><br/>Vérifiez votre connexion Internet, ou changez de nœud de données dans les <a class=\"positive\" ng-click=\"doQuickFix('settings')\">paramètres de l'extension</a>.",ES_MAX_UPLOAD_BODY_SIZE:"Le volume des données à envoyer dépasse la limite fixée par le serveur.<br/>Veuillez ré-essayer après avoir, par exemple, supprimer des photos."}}),e.translations("it-IT",{COMMON:{CATEGORY:"Categoria",CATEGORIES:"Categorie",CATEGORY_SEARCH_HELP:"Ricerca",LAST_MODIFICATION_DATE:"Aggiornato il ",SUBMIT_BY:"Inviato da",BTN_PUBLISH:"Pubblicare",BTN_PICTURE_DELETE:"Eliminare",BTN_PICTURE_FAVORISE:"Predefinito",BTN_PICTURE_ROTATE:"Girare",BTN_ADD_PICTURE:"Aggiungere foto",NOTIFICATIONS:{TITLE:"Notifiche",MARK_ALL_AS_READ:"Segna tutte come lette",NO_RESULT:"Nessuna notifica",SHOW_ALL:"Mostrare tutte",LOAD_NOTIFICATIONS_FAILED:"Impossibile caricare le notifiche"}},MENU:{REGISTRY:"Pagine",USER_PROFILE:"Mio profilo",MESSAGES:"Messaggi",NOTIFICATIONS:"Notifiche",INVITATIONS:"Inviti"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Conto per enti",ORGANIZATION_ACCOUNT_HELP:"Se rappresenta un'azienda, un'associazione, etc.<br/>Questo conto non potrà creare il Dividendo Universale."},EVENT:{MEMBER_WITHOUT_PROFILE:'Per ottenere sue certificazioni più velocemente, riempire le informazioni<a ui-sref="app.edit_profile">del suo profilo</a>. I membri della rete si fidano più volontieri di profili verificabili.'},ERROR:{WS_CONNECTION_FAILED:"Cesium non può ricevere notifiche a causa di un problema tecnico (di conessione al data node Cesium+).<br/><br/>Se il problema persiste, le chiediamo di <b>scegliere un'altro data node</b> nelle impostazioni di Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggerire delle identità da certificare..",BTN_ASK_CERTIFICATIONS_DOTS:"Chiedere una certificazione ai membri...",BTN_ASK_CERTIFICATION:"Chiedere una certificazione",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggerire delle certificazioni",HELP:"Scegliere i suoi suggerimenti, aiuti"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Chiedere delle certificazioni",HELP:"Selezionare un ricevente"},SEARCH:{DIVIDER_PROFILE:"Conti",DIVIDER_PAGE:"Pagine",DIVIDER_GROUP:"Gruppi"},CONFIRM:{SUGGEST_CERTIFICATIONS:"E’ sicuro(a) di voler <b>suggerire queste certificazioni</b> ?",ASK_CERTIFICATION:" E’ sicuro(a) di voler  <b>chiedere una certificazione</b> ?",ASK_CERTIFICATIONS:" E’ sicuro(a) di voler <b>chiedere una certificazione</b> a questi membri ?"}},INVITATION:{TITLE:"Invitazioni",NO_RESULT:"Nessun invito ricevuto",BTN_DELETE_ALL:"Cancellare tutti gli inviti",BTN_DELETE:"Cancellare l'invito",BTN_NEW_INVITATION:"Nuovo invito",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> ti ha chiesto una certificazione',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> è proposto per ricevere una certificazione',SUGGESTED_BY:'Suggerimento inviato da by <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Inviti"},LIST:{TITLE:"Inviti"},NEW:{TITLE:"Nuovo invito",RECIPIENTS:"A",RECIPIENTS_HELP:"Riceventi dell'invito",RECIPIENTS_MODAL_TITLE:"Riceventi",RECIPIENTS_MODAL_HELP:"Scegliere riceventi:",SUGGESTION_IDENTITIES:"Suggerimenti di identità da certificare",SUGGESTION_IDENTITIES_HELP:"Suggerimenti di certificazioni",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggerimenti",SUGGESTION_IDENTITIES_MODAL_HELP:"Scegli tuoi sugerimenti:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"Cancellare degli inviti è <b>una operazione irreversibile</b>.<br/><br/><b>Sei sicuro/a</b> di voler proseguire",SEND_INVITATIONS_TO_CERTIFY:"<b>Sei sicuro/a</b> di voler <b>inviare questo suggerimento di certificazione</b> ?"},INFO:{INVITATION_SENT:"Invito inviato"},ERROR:{LOAD_INVITATIONS_FAILED:"Errore nel caricare gli inviti",REMOVE_INVITATION_FAILED:"Errore nel cancellare gli inviti",REMOVE_ALL_INVITATIONS_FAILED:"Errore nel cancellare inviti",SEND_INVITATION_FAILED:"Errore nel invio degli inviti",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invito illegibile (formatto sconosciuto)</span> - inviato da <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Commenti",SHOW_MORE_COMMENTS:"Mostrare commenti precedenti",COMMENT_HELP:"Suo commento o domanda...",COMMENT_HELP_REPLY_TO:"Sua risposta...",BTN_SEND:"Inviare",POPOVER_SHARE_TITLE:"Messaggio #{{number}}",REPLY:"Rispondere",REPLY_TO:"Rispondere a:",REPLY_TO_LINK:"In risposta a",REPLY_TO_DELETED_COMMENT:"In risposta ad un commento cancellato",REPLY_COUNT:"{{replyCount}} risposte",DELETED_COMMENT:"Commento cancellato",ERROR:{FAILED_SAVE_COMMENT:"Salvare il commento cancellato",FAILED_REMOVE_COMMENT:"Cancellazione del commento fallita"}},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Rispondere",BTN_COMPOSE:"Nuovo messaggio",BTN_WRITE:"Scrivere",NO_MESSAGE_INBOX:"Nessun messaggio ricevuto",NO_MESSAGE_OUTBOX:"Nessun messaggio inviato",NOTIFICATIONS:{TITLE:"Messaggi",MESSAGE_RECEIVED:"Hai <b>ricevuto un messaggio/b><br/>da"},LIST:{INBOX:"In entrata",OUTBOX:"In uscita",TITLE:"Messaggi privati",POPOVER_ACTIONS:{TITLE:"Opzioni",DELETE_ALL:"Eliminare tutti i messaggi"}},COMPOSE:{TITLE:"Nuovo messaggio",TITLE_REPLY:"Rispondere",SUB_TITLE:"Nuovo messaggio",TO:"A",OBJECT:"Oggetto",OBJECT_HELP:"Oggetto",ENCRYPTED_HELP:"La informiamo che questo messaggio verrà criptato prima della sua spedizione in modo che solo il destinatario lo possa leggere e essere sicuro che ne sia Lei l'autore.",MESSAGE:"Messaggio",MESSAGE_HELP:"Contenuto del messaggio",CONTENT_CONFIRMATION:"Nessun contenuto. <br/><br/>E’ sicura di voler inviare questo messaggio?"},VIEW:{TITLE:"Messaggio",SENDER:"Inviato da",RECIPIENT:"Inviato a",NO_CONTENT:"Messaggio vuoto",DELETE:"Cancellare il messaggio"},CONFIRM:{REMOVE:"E’ sicuro/a di voler <b>eliminare il messaggio</b>?<br/><br/> Questa operazione è irreversibile.",REMOVE_ALL:"E’ sicuro/a di voler <b>eliminare tutti i messaggi</b>?<br/><br/> Questa operazione è irreversibile.",MARK_ALL_AS_READ:"E’ sicuro/a di voler <b>segnare tutti i messaggi come letti/b>?",USER_HAS_NO_PROFILE:"Questa identità non ha un profilo Cesium+. Pertanto non può <b>leggere il suo messaggio</b>.<br/><br/>E’ sicuro/a di voler <b>continuare</b>?"},INFO:{MESSAGE_REMOVED:"Messaggio eliminato correttamente",All_MESSAGE_REMOVED:"Messaggi eliminati correttamente",MESSAGE_SENT:"Messaggio inviato"},ERROR:{SEND_MSG_FAILED:"Errore nella spedizione del messaggio.",LOAD_MESSAGES_FAILED:"Errore durante il caricamento dei messaggi.",LOAD_MESSAGE_FAILED:"Errore durante il caricamento del messaggio.",MESSAGE_NOT_READABLE:"Impossibile leggere il messaggio.",USER_NOT_RECIPIENT:"Lei non è il destinatario del messaggio: impossibile leggerlo.",NOT_AUTHENTICATED_MESSAGE:"Impossibile verificare l'autenticità del messaggio o contenuto corrotto.",REMOVE_MESSAGE_FAILED:"Errore avvenuto durante l'eliminazione del messaggio",MESSAGE_CONTENT_TOO_LONG:"Il contenuto supera il limite ({{maxLength}} caratteri ammessi).",MARK_AS_READ_FAILED:"Impossibile segnare il messaggio come 'letto'.",LOAD_NOTIFICATIONS_FAILED:"Errore nel caricare le notifiche.",REMOVE_All_MESSAGES_FAILED:"Errore avvenuto durante l'eliminazione dei messaggi.",MARK_ALL_AS_READ_FAILED:"Errore avvenuto nel segnare i messaggi come 'letti",RECIPIENT_IS_MANDATORY:"Destinatario obbligatorio"}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Numero di blocco, hash...",POPOVER_FILTER_TITLE:"Filtro",HEADER_MEDIAN_TIME:"Data / Ora",HEADER_BLOCK:"Blocco #",HEADER_ISSUER:"Peer proprietario",BTN_LAST:"Ultimi blocchi",DISPLAY_QUERY:"Visualizzare query",HIDE_QUERY:"Nascondere query",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Input/output Membri',EXISTING_TRANSACTION:'<b class="ion-card"></b> hanno transazioni',PERIOD:'<b class="ion-clock"></b> Tra <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) e <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Calcolato da {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transazioni legate a  <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Errore durante la ricerca dei blocchi."}},GROUP:{GENERAL_DIVIDER:"Informazioni generali",LOCATION_DIVIDER:"Indirizzo",SOCIAL_NETWORKS_DIVIDER:"Presenza sui social e/o sito web",TECHNICAL_DIVIDER:"Dati tecnici",CREATED_TIME:"Creato {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Inviti"},LOOKUP:{TITLE:"Gruppi",SEARCH_HELP:"Nome del grupo, parole chiavi, luogo, etc.",LAST_RESULTS_LIST:"Nuovi gruppi :",OPEN_RESULTS_LIST:"Gruppi aperti :",MANAGED_RESULTS_LIST:"Gruppi chiusi :",BTN_LAST:"Nuovi gruppi",BTN_NEW:"Aggiungo un grupo!"},TYPE:{TITLE:"Nuovo gruppo",SELECT_TYPE:"Tipo di gruppo :",OPEN_GROUP:"Gruppo aperto",OPEN_GROUP_HELP:"Un gruppo aperto è accessibile da qualsiasi membro della moneta.",MANAGED_GROUP:"Gruppo amministrato",MANAGED_GROUP_HELP:"un gruppo amministrato è gestito da amministratori e moderatori, che possono accetare, rifiutare o escludere membri del gruppo.",ENUM:{OPEN:"Gruppo aperto",MANAGED:"Gruppo amministrato"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Opzioni",REMOVE_CONFIRMATION:"Sei sicuro/a di voler chiudere questo gruppo ?<br/><br/>Questa operazione è irreversibile."},EDIT:{TITLE:"Gruppo",TITLE_NEW:"Nuovo gruppo",RECORD_TITLE:"Titolo",RECORD_TITLE_HELP:"Titolo",RECORD_DESCRIPTION:"Descrizione",RECORD_DESCRIPTION_HELP:"Descrizione"},ERROR:{SEARCH_GROUPS_FAILED:"Errore nella ricerca di gruppi",REMOVE_RECORD_FAILED:"Errore nel chiudere il gruppo"},INFO:{RECORD_REMOVED:"Gruppo eliminato"}},REGISTRY:{CATEGORY:"Attività principale",GENERAL_DIVIDER:"Informazioni di base",LOCATION_DIVIDER:"Indirizzo",SOCIAL_NETWORKS_DIVIDER:"Presenza sui social, sito web",TECHNICAL_DIVIDER:"Dati tecnici",BTN_SHOW_WOT:"Persone",BTN_SHOW_WOT_HELP:"Cercare persone",BTN_SHOW_PAGES:"Pagine",BTN_SHOW_PAGES_HELP:"Cercare pagine",BTN_NEW:"Aggiungere",MY_PAGES:"Mie pagine",NO_PAGE:"Nessuna pagina",SEARCH:{TITLE:"Pagine",SEARCH_HELP:"Che, chi: parrucchiere, Pizza Efisio, ...",BTN_ADD:"Nuovo",BTN_LAST_RECORDS:"Pagine recenti",BTN_ADVANCED_SEARCH:"Ricerca avanzata",BTN_OPTIONS:"Ricerca avanzata",TYPE:"Tipo di ente",LOCATION_HELP:"Città",RESULTS:"Risultati",RESULT_COUNT_LOCATION:"{{count}} risultato{{count>0?'i':''}}, vicino a {{location}}",RESULT_COUNT:"{{count}} risultato{{count>0?'i':''}}",LAST_RECORDS:"Pagine recenti:",LAST_RECORD_COUNT_LOCATION:"{{count}} pagina{{count>0?'e':''}} recente{{count>0?'i':''}}, vicino a{{location}}",LAST_RECORD_COUNT:"{{count}} pagina{{count>0?'e':''}} recente{{count>0?'i':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Opzioni avanzate ?"}},VIEW:{TITLE:"Annuario",CATEGORY:"Attività principale:",LOCATION:"Indirizzo:",MENU_TITLE:"Impostazioni",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"E’ sicuro/a di voler eliminare questo riferimento?<br/><br/>Questa operazione è irreversibile."},TYPE:{TITLE:"Nuovo riferimento",SELECT_TYPE:"Tipo di ente/organismo:",ENUM:{SHOP:"Negozi locali",COMPANY:"Azienda",ASSOCIATION:"Associazione",INSTITUTION:"Istituto"}},EDIT:{TITLE:"Modificare",TITLE_NEW:"Nuovo riferimento",RECORD_TYPE:"Tipo di ente",RECORD_TITLE:"Nome",RECORD_TITLE_HELP:"Nome",RECORD_DESCRIPTION:"Descrizione",RECORD_DESCRIPTION_HELP:"Descrivere l'attività",RECORD_ADDRESS:"Indirizzo",RECORD_ADDRESS_HELP:"Indirizzo: Strada, numero civico...",RECORD_CITY:"Città",RECORD_CITY_HELP:"Città, Paese",RECORD_SOCIAL_NETWORKS:"Presenza sui social e/o sito web",RECORD_PUBKEY:"Chiave pubblica",RECORD_PUBKEY_HELP:"Chiave pubblica per ricevere pagamenti"},WALLET:{REGISTRY_DIVIDER:"Pagine",REGISTRY_HELP:"Le pagine sono un elenco dei profesionisti che accettano o favoriscono: negozi, aziende, associazioni, istituti..."},ERROR:{LOAD_CATEGORY_FAILED:"Errore nel caricamento delle attività principali",LOAD_RECORD_FAILED:"Caricamento fallito",LOOKUP_RECORDS_FAILED:"Errore nel caricare i dati",REMOVE_RECORD_FAILED:"Errore nella cancellazione",SAVE_RECORD_FAILED:"Impossibile salvare",RECORD_NOT_EXISTS:"Inesistente",GEO_LOCATION_NOT_FOUND:"Città o CAP inesistente"},INFO:{RECORD_REMOVED:"Pagina eliminata con successo.",RECORD_SAVED:"Pagina salvata"}},PROFILE:{PROFILE_DIVIDER:"Profilo Cesium+",PROFILE_DIVIDER_HELP:"Si tratta qui di data esterni, salvati fuori della rete della moneta.",NO_PROFILE_DEFINED:"Nessun profilo Cesium+",BTN_ADD:"Creare mio profilo",BTN_EDIT:"Modificare mio profilo",UID:"Pseudonimo",TITLE:"Cognome, Nome",TITLE_HELP:"Nome",DESCRIPTION:"A proposito di me",DESCRIPTION_HELP:"A proposito di me...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Informazioni generali",SOCIAL_NETWORKS_DIVIDER:"Presenza sui social e sito/i web",TECHNICAL_DIVIDER:"Dati tecnici",MODAL_AVATAR:{TITLE:"Avatar",SELECT_FILE_HELP:"<b>Scegliere un'immagine</b>, cliccando sul bottone qui sotto:",BTN_SELECT_FILE:"Scegliere un'immagine",RESIZE_HELP:"<b>Ritagliare l'immagine</b> se necessario. Cliccare sull'immagine permette di spostarla. Cliccando nella zona a basso sinistra permette di fare uno zoom-in.",RESULT_HELP:"<b>Questo è il risultato</b> come visibile sul suo profilo:"},ERROR:{LOAD_PROFILE_FAILED:"Impossibile caricare il profilo dell’utente.",SAVE_PROFILE_FAILED:"Impossibile salvare il profilo",INVALID_SOCIAL_NETWORK_FORMAT:"Formatto scorretto: URL sbagliato.<br/><br/>Esempi: :<ul><li>- Una pagina Facebook (https://www.facebook.com/user)</li><li>- Un sito: (http://www.domain.com)</li><li>- Un indirizzo mail: (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Errore nel ritagliare l'immagine"},INFO:{PROFILE_SAVED:"Profilo salvato"},HELP:{WARNING_PUBLIC_DATA:"La informiamo che le informazioni qui pubblicate <b>sono pubbliche</b>: sono anche visibili <b>da gente non registrata/b>."}},LOCATION:{BTN_GEOLOC_ADDRESS:"Trovare mio indirizzo sulla mappa",USE_GEO_POINT:"Geo-localizzare (raccomandato)?",LOADING_LOCATION:"Cercando indirizzo...",LOCATION_DIVIDER:"Posizione",ADDRESS:"Indirizzo",ADDRESS_HELP:"Indirizzo (opzionale)",CITY:"Città",CITY_HELP:"Città, Paese",DISTANCE:"Distanza massimale intorno alla città",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Città, CAP",MODAL:{TITLE:"Cercare indirizzo",SEARCH_HELP:"Città, Paese",ALTERNATIVE_RESULT_DIVIDER:"Risultati alternativi <b>{{address}}</b>:",POSITION:"lat/lon : {{lat}} {{lon}}"},ERROR:{REQUIRED_FOR_LOCATION:"Campo obbligatorio per apparire sulla mappa",INVALID_FOR_LOCATION:"Indirizzo sconosciuto",GEO_LOCATION_FAILED:"Impossibile trovare sua posizione. Utilizzi il bottone di ricerca.",ADDRESS_LOCATION_FAILED:"Indirizzo non trovato"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Servizi online",SUBSCRIPTION_DIVIDER_HELP:"I servizi online offrono servizi addizionali opzionali, delegati ad terzi.",BTN_ADD:"Aggiungere un servizio",BTN_EDIT:"Gestire miei servizi",NO_SUBSCRIPTION:"Nessun servizio utilizzato",SUBSCRIPTION_COUNT:"Servizi/ Abbonamenti",EDIT:{TITLE:"Servizi online",HELP_TEXT:"Qui si possono gestire gli abbonamenti e/o altri servizi online",PROVIDER:"Prestatore :"},TYPE:{ENUM:{EMAIL:"Ricevere notifiche per posta elettronica"}},CONFIRM:{DELETE_SUBSCRIPTION:"Sei sicuro/a di voler <b>cancellare questo abbonamento</b> ?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Errore nel caricamento dei servizi online",ADD_SUBSCRIPTION_FAILED:"Errore nel invio dell' abbonamento",UPDATE_SUBSCRIPTION_FAILED:"Errore nel aggiornamento dell' abbonamento",DELETE_SUBSCRIPTION_FAILED:"Errore nella cancellazine dell' abbonamento"},MODAL_EMAIL:{TITLE:"Notifiche per posta elettronica",HELP:"Riempi questo formulario per <b>essere notificato/a per e-mail</b> degli eventi che avvengono sul tuo conto.<br/>Tuo indizzo mail sarà cifrato e solo il prestatore del servizio lo potrà vedere.",EMAIL_LABEL:"Tuo indirizzo mail :",EMAIL_HELP:"cristiana.leonardi@dominio.com",FREQUENCY_LABEL:"Frequenza delle notifiche :",FREQUENCY_DAILY:"Quotidiano",FREQUENCY_WEEKLY:"Settimanale",PROVIDER:"Prestatore del servizio :"}},DOCUMENT:{HASH:"Hash: ",LOOKUP:{TITLE:"Ricerca di documenti",BTN_ACTIONS:"Azioni",SEARCH_HELP:"issuer:AAA*, time:1508406169",LAST_DOCUMENTS:"Ultimi documenti",SHOW_QUERY:"Visualizzare la richiesta",HIDE_QUERY:"Nacondere la richiesta",HEADER_TIME:"Data/Ora",HEADER_ISSUER:"Emittente",HEADER_RECIPIENT:"Destinatario",READ:"Letto",BTN_REMOVE:"Eliminare questo documento",POPOVER_ACTIONS:{TITLE:"Azioni",REMOVE_ALL:"Eliminare questi documenti..."}},INFO:{REMOVED:"Documento eliminato"},CONFIRM:{REMOVE:"Sei sicuro/a di voler <b>eliminare questo documento</b> ?",REMOVE_ALL:"Si sicuro/a di voler <b>eliminare questi documenti</b> ?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Errore nella ricerca dei documenti",REMOVE_FAILED:"Errore nell'eliminazione del documento",REMOVE_ALL_FAILED:"Errore nell'eliminazione dei documenti"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Profili di utenti, notifiche, messaggi privati",ENABLE_TOGGLE:"Abilitare l'estensione ?",ENABLE_MESSAGE_TOGGLE:"Abilitare i messaggi? privati",ENABLE_SETTINGS_TOGGLE:"Abilitare stoccaggio su dispositivi esterni per le impostazioni?",
+PEER:"Indirizzo di data peers",POPUP_PEER:{TITLE:"Data peer",HELP:"Definire l'indirizzo da usare per il peer:",PEER_HELP:"server.domain.com:port"},NOTIFICATIONS:{DIVIDER:"Notifiche",HELP_TEXT:"Scegliere le notifiche che accetta ricevere:",ENABLE_TX_SENT:"Notificarmi di <b>pagamenti inviati</b> con successo?",ENABLE_TX_RECEIVED:"Notificarmi di <b>pagamenti in entrata</b>?",ENABLE_CERT_SENT:"Notificarmi delle <b>certificazioni inviate</b>?",ENABLE_CERT_RECEIVED:"Notificarmi di <b>certificazioni ricevute</b>?"},CONFIRM:{ASK_ENABLE_TITLE:"Nuove funzionalità",ASK_ENABLE:'Sono disponibili nuove funzionalità: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i>Profili di utenti</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Messaggi privati/b>.</ul><br/>Sono state <b>disabilitate</b> nelle sue impostazioni.<br/><br/><b>Desidera abilitare</b> queste funzionalità?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Un destinatario è necessario per il criptaggio."}},EVENT:{NODE_STARTED:"Suo nodo ES API <b>{{params[0]}}</b> è UP",NODE_BMA_DOWN:"Nodo<b>{{params[0]}}:{{params[1]}}</b> (utilizzato dal suo ES API) è <b>indisponibile</b>.",NODE_BMA_UP:"Nodo <b>{{params[0]}}:{{params[1]}}</b> è di nuovo attivo.",MEMBER_JOIN:"E diventato <b>membro/a</b> della WoT della moneta <b>{{params[0]}}</b>!",MEMBER_LEAVE:"Non <b>è più membro/a</b> della WoT della moneta <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"Non è <b>più membro/a</b> della WoT della moneta<b>{{params[0]}}</b>, a causa di certificazioni non rinnovate o soglia di certificazioni non raggiunta.",MEMBER_REVOKE:"Il suo conto è stato revocato. Da ora in poi non farà più parte della WoT. <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"La sua presenza nella WoT <b>{{params[0]}}</b> è stata <b>rinnovata correttamente</b>.",TX_SENT:"Il suo pagamento <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> è stato eseguito.",TX_SENT_MULTI:"Il suo pagamento <b>{{params[1]}}</b> è stato eseguito.",TX_RECEIVED:"Ha ricevuto un pagamento da <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Ha ricevuto un pagamento da <b>{{params[1]}}</b>.",CERT_SENT:"Sua <b>certificazione</b> a favore di <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> è stata eseguita.",CERT_RECEIVED:"Ha ricevuto <b>una certificazione</b> da parte di <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",PAGE:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha scritto un commento sul suo riferimento: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificato il suo commento sul suo riferimento: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha risposto al suo commento sul riferimento: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificato sua risposta sul suo commento a proposito del riferimento: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Nodo<b>{{old}}</b> irraggiungibile o indirizzo sbagliato.<br/><br/>Vuoi utilizzare temporaneamente il nodo di dati <b>{{new}}</b> ?"},ERROR:{ES_CONNECTION_ERROR:"Nodo di dati<b>{{server}}</b>  irraggiungibile o indirizzo sbagliato.<br/><br/>Cesium continuerà a funzionare <b>senza l'estensione Cesium+</b> (profili utenti, messaggi privati, mappe e grafici)<br/><br/>Verifica tua connessione o cambia nodo <a class=\"positive\" ng-click=\"doQuickFix('settings')\">impostazioni dell'estensione</a>.",ES_MAX_UPLOAD_BODY_SIZE:"Il volume di data da inviare supera il limite imposto dal server.<br/><br/>Suggeriamo di riprovare dopo aver eliminato delle foto, per esempio."}}),e.translations("nl-NL",{COMMON:{CATEGORY:"Categorie",CATEGORIES:"Categorieën",CATEGORY_SEARCH_HELP:"Zoeken",LAST_MODIFICATION_DATE:"Vernieuwd op ",SUBMIT_BY:"Ingediend door",BTN_PUBLISH:"Publiceren",BTN_PICTURE_DELETE:"Wissen",BTN_PICTURE_FAVORISE:"Default",BTN_ADD_PICTURE:"Afbeelding toevoegen",NOTIFICATIONS:{TITLE:"Notificaties",MARK_ALL_AS_READ:"Markeer alles als gelezen",NO_RESULT:"Geen berichten",SHOW_ALL:"Toon alles",LOAD_NOTIFICATIONS_FAILED:"Kan berichten niet laden"}},MENU:{REGISTRY:"Pagina's",USER_PROFILE:"Mijn profiel",MESSAGES:"Berichten"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Ondernemingsrekening",ORGANIZATION_ACCOUNT_HELP:"Als je een onderneming, vereniging etc. vertegenwoordigt.<br/>Deze rekening zal geen dividend créeren."},EVENT:{MEMBER_WITHOUT_PROFILE:'Vul <a ui-sref="app.edit_profile"je gebruikersprofiel</a> in om sneller een certificering te verkrijgen. Leden zullen een verfifieerbare identiteit eerder vertrouwen.'}},COMMENTS:{DIVIDER:"Commentaren",SHOW_MORE_COMMENTS:"Toon eerdere commentaren",COMMENT_HELP:"Jouw commentaar, vraag...",COMMENT_HELP_REPLY_TO:"Jouw antwoord...",BTN_SEND:"Verzenden",POPOVER_SHARE_TITLE:"Bericht #{{number}}",REPLY:"Antwoord",REPLY_TO:"Antwoorden op:",REPLY_TO_LINK:"In antwoord op ",REPLY_TO_DELETED_COMMENT:"In antwoord op een gewist bericht",REPLY_COUNT:"{{replyCount}} antwoorden",DELETED_COMMENT:"Bericht gewist"},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Antwoord",BTN_COMPOSE:"Nieuw bericht",BTN_WRITE:"Schrijven",NO_MESSAGE_INBOX:"Geen bericht ontvangen",NO_MESSAGE_OUTBOX:"Geen bericht verzonden",NOTIFICATIONS:{TITLE:"Berichten",MESSAGE_RECEIVED:"Je hebt een <b>bericht ontvangen</b><br/>van"},LIST:{INBOX:"Inbox",OUTBOX:"Verzonden",TITLE:"Privé",POPOVER_ACTIONS:{TITLE:"Opties",DELETE_ALL:"Alle berichten wissen"}},COMPOSE:{TITLE:"Nieuw bericht",TITLE_REPLY:"Antwoord",SUB_TITLE:"Nieuw bericht",TO:"Aan",OBJECT:"Onderwerp",OBJECT_HELP:"Onderwerp",ENCRYPTED_HELP:"Please note this message will by encrypt before sending zodat alleen de ontvanger het kan lezen en zeker kan zijn dat jij de auteur bent.",MESSAGE:"Bericht",MESSAGE_HELP:"Berichtinhoud",CONTENT_CONFIRMATION:"Geen berichtinhoud.<br/><br/>Weet je zeker dat je dit bericht wil verzenden?"},VIEW:{TITLE:"Bericht",SENDER:"Verzonden door",RECIPIENT:"Verzonden aan",NO_CONTENT:"Leeg bericht"},CONFIRM:{REMOVE:"Weet je zeker dat je <b>dit bericht wil wissen</b>?<br/><br/>Dit kan niet ongedaan gemaakt worden.",REMOVE_ALL:"Weet je zeker dat je <b>alle berichten wil wissen</b>?<br/><br/>Dit kan niet ongedaan gemaakt worden.",MARK_ALL_AS_READ:"Weet je zeker dat je <b>alle berichten als gelezen wil markeren</b>?"},INFO:{MESSAGE_REMOVED:"Bericht succesvol gewist",All_MESSAGE_REMOVED:"Berichten succesvol gewist",MESSAGE_SENT:"Bericht verzonden"},ERROR:{SEND_MSG_FAILED:"Fout tijdens verzending.",LOAD_MESSAGES_FAILED:"Kan berichten niet laden.",LOAD_MESSAGE_FAILED:"Kan bericht niet laden.",MESSAGE_NOT_READABLE:"Kan bericht niet lezen.",USER_NOT_RECIPIENT:"Je bent niet de geadresseerde van dit bericht: het kan niet gelezen worden.",NOT_AUTHENTICATED_MESSAGE:"De authenticiteit van het bericht is onduidelijk of de inhoud is gecorrumpeerd.",REMOVE_MESSAGE_FAILED:"Kan bericht niet wissen.",MESSAGE_CONTENT_TOO_LONG:"Waarde te lang (max {{maxLength}} characters).",MARK_AS_READ_FAILED:"Kan bericht niet als gelezen markeren.",LOAD_NOTIFICATIONS_FAILED:"Kan niet alle berichtnotificaties laden.",REMOVE_All_MESSAGES_FAILED:"Kan niet alle berichten wissen.",MARK_ALL_AS_READ_FAILED:"Kan berichten niet als gelezen markeren."}},REGISTRY:{CATEGORY:"Hoofdactiviteit",GENERAL_DIVIDER:"Basisinformatie",LOCATION_DIVIDER:"Adres",SOCIAL_NETWORKS_DIVIDER:"Sociale media en website",TECHNICAL_DIVIDER:"Technische informatie",BTN_NEW:"Toevoegen",SEARCH:{TITLE:"Bedrijfsregister",TITLE_SMALL_DEVICE:"Bedrijfsregister",SEARCH_HELP:"Wie, Wat: kapper, Lili's restaurant, ...",BTN_ADD:"Nieuw",BTN_OPTIONS:"Geavanceerd zoeken",TYPE:"Soort organisatie",LOCATION:"Locatie",LOCATION_HELP:"Plaats",LAST_RECORDS:"Nieuwste referenties:",RESULTS:"Resultaten:"},VIEW:{TITLE:"Register",CATEGORY:"Hoofdactiviteit:",LOCATION:"Adres:",MENU_TITLE:"Opties",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Weet je zeker dat je deze referentie wil verwijderen?<br/><br/>Dit kan niet ongedaan worden gemaakt."},TYPE:{TITLE:"Nieuwe referentie",SELECT_TYPE:"Soort organizatie:",ENUM:{SHOP:"Locale winkel",COMPANY:"Onderneming",ASSOCIATION:"Stichting",INSTITUTION:"Instituut"}},EDIT:{TITLE:"Bewerk",TITLE_NEW:"Nieuwe referentie",RECORD_TYPE:"Soort organizatie",RECORD_TITLE:"Naam",RECORD_TITLE_HELP:"Naam",RECORD_DESCRIPTION:"Beschrijving",RECORD_DESCRIPTION_HELP:"Omschrijf activiteit",RECORD_ADDRESS:"Straat",RECORD_ADDRESS_HELP:"Straat, gebouw...",RECORD_CITY:"Plaats",RECORD_CITY_HELP:"Plaats",RECORD_SOCIAL_NETWORKS:"Sociale media en website",RECORD_PUBKEY:"Publieke sleutel",RECORD_PUBKEY_HELP:"Publieke sleutel om betalingen te ontvangen"},ERROR:{LOAD_CATEGORY_FAILED:"Laden hoofdactiveiten mislukt",LOAD_RECORD_FAILED:"Laden datasheet mislukt",LOOKUP_RECORDS_FAILED:"Opzoeken datasheets is mislukt.",REMOVE_RECORD_FAILED:"Verwijderen datasheet mislukt",SAVE_RECORD_FAILED:"Opslaan datasheet mislukt",RECORD_NOT_EXISTS:"Datasheet niet gevonden"},INFO:{RECORD_REMOVED:"Datasheet succesvol verwijderd"}},PROFILE:{UID:"Pseudoniem",TITLE:"Naam",TITLE_HELP:"Naam",DESCRIPTION:"Over mij",DESCRIPTION_HELP:"Over mij...",ADDRESS:"Adres",ADDRESS_HELP:"Adres (optioneel)",CITY:"Plaats",CITY_HELP:"Plaats (optioneel)",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Algemene informatie",LOCATION_DIVIDER:"Localisatie",SOCIAL_NETWORKS_DIVIDER:"Sociale media en website",TECHNICAL_DIVIDER:"Technische informatie",ERROR:{LOAD_PROFILE_FAILED:"Kon gebruikersprofiel niet laden.",SAVE_PROFILE_FAILED:"Opslaan profiel mislukt",INVALID_SOCIAL_NETWORK_FORMAT:"Ongeldig formaat: vul een geldig internetadres in.<br/><br/>Voorbeelden:<ul><li>- Een Facebookpagina (https://www.facebook.com/user)</li><li>- Een webpagina (http://www.domain.com)</li><li>- Een emailadres (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Fout tijdens afbeelding schalen"},INFO:{PROFILE_SAVED:"Profiel opgeslagen"},HELP:{WARNING_PUBLIC_DATA:"Let op, de informatie die hier is vastgelegd <b>is publiek</b>: zichtbaar ook voor <b>niet ingelogde gebruikers</b>."}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",ENABLE_TOGGLE:"Uitbreiding inschakelen?",ENABLE_MESSAGE_TOGGLE:"Berichten inschakelen?",ENABLE_SETTINGS_TOGGLE:"Globale opslag voor instellingen inschakelen?",PEER:"Adres dataknooppunt",POPUP_PEER:{TITLE:"Dataknoop",HELP:"Stel het te gebruiken adres in:",PEER_HELP:"server.domein.com:poort"},NOTIFICATIONS:{DIVIDER:"Notificaties",HELP_TEXT:"Schakel het type notificatie dat je wil ontvangen in:",ENABLE_TX_SENT:"Bericht bij validatie van <b>verzonden betalingen</b>?",ENABLE_TX_RECEIVED:"Bericht bij validatie van <b>ontvangen betalingen</b>?",ENABLE_CERT_SENT:"Bericht bij validatie van <b>verzonden certificaties</b>?",ENABLE_CERT_RECEIVED:"Bericht bij validatie van <b>ontvangen certificaties</b>?"},CONFIRM:{ASK_ENABLE_TITLE:"Optionele functies",ASK_ENABLE:'Cesium+ is <b>uitgeschakeld</b> waardoor deze functies niet beschikbaar zijn: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Gebruikersprofielen</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifcaitions"></i> Notificaties</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Privéberichten</b>.</ul><br/><br/>Wil je deze functies <b>inschakelen</b>?'}},EVENT:{NODE_STARTED:"Je knoop ES API <b>{{params[0]}}</b> is UP",NODE_BMA_DOWN:"Knooppunt <b>{{params[0]}}:{{params[1]}}</b> (gebruikt door je ES API) is <b>onbereikbaar</b>.",NODE_BMA_UP:"Knooppunt <b>{{p0}}:{{params[1]}}</b> is weer bereikbaar.",MEMBER_JOIN:"Je bent nu <b>lid</b> van valuta <b>{{params[0]}}</b>!",MEMBER_LEAVE:"Je bent <b>geen lid meer</b> van valuta <b>{{params[0]}}</b>!",MEMBER_ACTIVE:"Je lidmaatschap bij <b>{{params[0]}}</b> is met <b>succes verlengd</b>.",TX_SENT:"Je <b>betaling</b> aan <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> is uitgevoerd.",TX_SENT_MULTI:"Je <b>betaling</b> aan <b>{{params[1]}}</b> is uitgevoerd.",TX_RECEIVED:"Je hebt een <b>betaling ontvangen</b> van <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Je hebt een <b>betaling ontvangen</b> van <b>{{params[1]}}</b>.",CERT_SENT:"Je <b>certificatie</b> van <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> is uitgevoerd.",CERT_RECEIVED:"Je hebt een <b>certificatie ontvangen</b> van <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",PAGE:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> heeft gereageerd op jouw referentie: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> heeft zijn/aar reactie op jouw referentie bewerkt: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> hheeft gereageerd op jouw commentaar op referentie: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> heeft zijn/haar reactie op jouw commentaar bewerkt, op referentie: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Knooppunt <b>{{old}}</b> onbereikbaar of ongeldig adres.<br/><br/>Tijdelijk knooppunt <b>{{new}}</b> gebruiken?"},ERROR:{ES_CONNECTION_ERROR:'Knooppunt <b>{{server}}</b> onbereikbaar of ongeldig adres.<br/><br/>Cesium zal verder weken, <b>zonder de Cesium+ uitbreiding</b> (gebruikersprofielens, privéberichten, kaarten en grafieken).<br/><br/>Controleer je internetverbinding, of verander je knooppunt in <a class="positive" ng-click="doQuickFix(\'settings\')">instellingen</a>.',ES_MAX_UPLOAD_BODY_SIZE:"De hoveelheid te verzenden gegevens is overschrijdt de serverlimiet.<br/><br/>Probeer het nogmaals na, bijvoorbeeld, het wissen foto's."}}),e.translations("en-GB",{NETWORK:{VIEW:{BTN_GRAPH:"Statistics"}},GRAPH:{COMMON:{LINEAR_SCALE:"Linear scale",LOGARITHMIC_SCALE:"Logarithmic scale",BTN_SHOW_STATS:"See statistics",BTN_SHOW_DETAILED_STATS:"Detailed statistics",RANGE_DURATION_DIVIDER:"Step unit:",RANGE_DURATION:{HOUR:"Group by <b>hour</b>",DAY:"Group by <b>day</b>",MONTH:"Group by <b>month</b>"}},ACCOUNT:{TITLE:"Statistics",BTN_SHOW_STATS:"View account Statistics",BALANCE_DIVIDER:"Account status",BALANCE_TITLE:"Evolution of the account {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Receipts",TX_SENT_LABEL:"Spending",UD_LABEL:"UD",BALANCE_LABEL:"Balance",INPUT_CHART_TITLE:"Sum of incoming flows, per transmitter:",OUTPUT_CHART_TITLE:"Sum of outgoing flows, per recipient:"},BLOCKCHAIN:{TITLE:"Statistics",BLOCKS_ISSUERS_DIVIDER:"Written blocks by members",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} members</b> calculated <b>{{blockCount|formatInteger}} blocks</b>",BLOCKS_ISSUERS_TITLE:"Number of blocks calculated per member",BLOCKS_ISSUERS_LABEL:"Number of blocks",TX_DIVIDER:"Analysis of transactions",TX_AMOUNT_TITLE:"Transaction volume",TX_AMOUNT_PUBKEY_TITLE:"Volume of transactions calculated by {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Exchange volume",TX_COUNT_TITLE:"Number of written transactions",TX_COUNT_LABEL:"Number of transactions",TX_AVG_BY_BLOCK:"Average per block"},CURRENCY:{MONETARY_MASS_TITLE:"Evolution of the monetary mass",MONETARY_MASS_LABEL:"Monetary mass",MONETARY_MASS_SHARE_LABEL:"Average per member",UD_TITLE:"Evolution of the universal dividend",MEMBERS_COUNT_TITLE:"Evolution of the number of members",MEMBERS_COUNT_LABEL:"Number of members"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Computed blocks count",BLOCK_COUNT:"{{count}} blocks",NO_BLOCK:"No block"}},DOC_STATS:{TITLE:"Data storage statistics (Cesium+)",USER:{TITLE:"Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},USER_DELTA:{TITLE:"Delta / Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},MESSAGE:{TITLE:"Number of documents related to the communication",MESSAGE_INBOX:"Messages in inbox",MESSAGE_OUTBOX:"Messages in outbox",INVITATION_CERTIFICATION:"Invitations to certify"},SOCIAL:{TITLE:"Number of page or group",PAGE_COMMENT:"Comments",PAGE_RECORD:"Pages",GROUP_RECORD:"Groups"},OTHER:{TITLE:"Other documents",HISTORY_DELETE:"Deletion of documents"}}}}),e.translations("en",{NETWORK:{VIEW:{BTN_GRAPH:"Statistics"}},GRAPH:{COMMON:{LINEAR_SCALE:"Linear scale",LOGARITHMIC_SCALE:"Logarithmic scale",BTN_SHOW_STATS:"See statistics",BTN_SHOW_DETAILED_STATS:"Detailed statistics",RANGE_DURATION_DIVIDER:"Step unit:",RANGE_DURATION:{HOUR:"Group by <b>hour</b>",DAY:"Group by <b>day</b>",MONTH:"Group by <b>month</b>"}},ACCOUNT:{TITLE:"Statistics",BTN_SHOW_STATS:"View account Statistics",BALANCE_DIVIDER:"Account status",BALANCE_TITLE:"Evolution of the account {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Receipts",TX_SENT_LABEL:"Spending",UD_LABEL:"UD",BALANCE_LABEL:"Balance",INPUT_CHART_TITLE:"Sum of incoming flows, per transmitter:",OUTPUT_CHART_TITLE:"Sum of outgoing flows, per recipient:"},BLOCKCHAIN:{TITLE:"Statistics",BLOCKS_ISSUERS_DIVIDER:"Written blocks by members",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} members</b> calculated <b>{{blockCount|formatInteger}} blocks</b>",BLOCKS_ISSUERS_TITLE:"Number of blocks calculated per member",BLOCKS_ISSUERS_LABEL:"Number of blocks",TX_DIVIDER:"Analysis of transactions",TX_AMOUNT_TITLE:"Transaction volume",TX_AMOUNT_PUBKEY_TITLE:"Volume of transactions calculated by {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Exchange volume",TX_COUNT_TITLE:"Number of written transactions",TX_COUNT_LABEL:"Number of transactions",TX_AVG_BY_BLOCK:"Average per block"},CURRENCY:{MONETARY_MASS_TITLE:"Evolution of the monetary mass",MONETARY_MASS_LABEL:"Monetary mass",MONETARY_MASS_SHARE_LABEL:"Average per member",UD_TITLE:"Evolution of the universal dividend",MEMBERS_COUNT_TITLE:"Evolution of the number of members",MEMBERS_COUNT_LABEL:"Number of members"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Computed blocks count",BLOCK_COUNT:"{{count}} blocks",NO_BLOCK:"No block"}},DOC_STATS:{TITLE:"Data storage statistics (Cesium+)",USER:{TITLE:"Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},USER_DELTA:{TITLE:"Delta / Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},MESSAGE:{TITLE:"Number of documents related to the communication",MESSAGE_INBOX:"Messages in inbox",MESSAGE_OUTBOX:"Messages in outbox",INVITATION_CERTIFICATION:"Invitations to certify"},SOCIAL:{TITLE:"Number of page or group",PAGE_COMMENT:"Comments",PAGE_RECORD:"Pages",GROUP_RECORD:"Groups"},OTHER:{TITLE:"Other documents",HISTORY_DELETE:"Deletion of documents"}}}}),e.translations("eo-EO",{NETWORK:{VIEW:{BTN_GRAPH:"Statistikoj"}},GRAPH:{COMMON:{LINEAR_SCALE:"Lineara skalo",LOGARITHMIC_SCALE:"Logaritma skalo",BTN_SHOW_STATS:"Vidi la statistikojn",BTN_SHOW_DETAILED_STATS:"Detalaj statistikoj",RANGE_DURATION_DIVIDER:"Tempo-unuo:",RANGE_DURATION:{HOUR:"Horo",DAY:"Tago",MONTH:"Monato"}},ACCOUNT:{TITLE:"Statistikoj",BTN_SHOW_STATS:"Vidi la statistikojn de la konto",BALANCE_DIVIDER:"Stato de la konto",BALANCE_TITLE:"Evoluo de la konto {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Enspezoj",TX_SENT_LABEL:"Elspezoj",TX_ACCUMULATION_LABEL:"Bilanco de la spezoj",UD_LABEL:"UD",UD_ACCUMULATION_LABEL:"Bilanco de la UD",BALANCE_LABEL:"Saldo",WOT_DIVIDER:"Reto de fido",CERTIFICATION_TITLE:"Nombro de atestaĵoj - {{pubkey|formatPubkey}}",RECEIVED_CERT_LABEL:"Tuto pri la ricevitaj",RECEIVED_CERT_DELTA_LABEL:"Vario pri la ricevitaj",GIVEN_CERT_LABEL:"Tuto pri la senditaj",GIVEN_CERT_DELTA_LABEL:"Vario pri la senditaj",INPUT_CHART_TITLE:"Sumo de la enirantaj fluoj, por ĉiu sendinto:",OUTPUT_CHART_TITLE:"Sumo de la elirantaj fluoj, por ĉiu ricevinto:"},BLOCKCHAIN:{TITLE:"Statistikoj",BLOCKS_ISSUERS_DIVIDER:"Analizo de la kalkul-distribuo",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} membroj</b> kalkulis <b>{{blockCount|formatInteger}} blokojn</b>",BLOCKS_ISSUERS_TITLE:"Nombro de blokoj kalkulitaj por membro",BLOCKS_ISSUERS_LABEL:"Nombro de blokoj",TX_DIVIDER:"Analizo de la spezoj",TX_AMOUNT_TITLE:"Kvanto de la spezoj",TX_AMOUNT_PUBKEY_TITLE:"Kvanto de spezoj kalkulitaj de {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Kvanto interŝanĝita",TX_COUNT_TITLE:"Nombro de spezoj skribitaj",TX_COUNT_LABEL:"Nombro de spezoj",TX_AVG_BY_BLOCK:"Meza nombro de spezoj / bloko"},CURRENCY:{MONETARY_MASS_TITLE:"Evoluo de la mona maso",MONETARY_MASS_LABEL:"Mona maso",MONETARY_MASS_SHARE_LABEL:"Mezumo por membro",UD_TITLE:"Evoluo de la universala dividendo",MEMBERS_COUNT_TITLE:"Evoluo de la nombro de membroj",MEMBERS_COUNT_LABEL:"Nombro de membroj"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Nombro de blokoj kalkulitaj",BLOCK_COUNT:"{{count}} blokoj",NO_BLOCK:"Neniu bloko"}},DOC_STATS:{TITLE:"Statistikoj pri stokado",USER:{TITLE:"Nombro de dokumentoj ligitaj al konto",USER_PROFILE:"Uzanto-profiloj",USER_SETTINGS:"Parametroj konservitaj"},USER_DELTA:{TITLE:"Variado de la nombro de dokumentoj ligitaj al konto",USER_PROFILE:"Uzanto-profiloj",USER_SETTINGS:"Parametroj konservitaj"},MESSAGE:{TITLE:"Nombro de dokumentoj ligitaj al komunikado",MESSAGE_INBOX:"Mesaĝoj en ricevujo",MESSAGE_OUTBOX:"Senditaj mesaĝoj konservitaj",INVITATION_CERTIFICATION:"Invitoj atestotaj"},SOCIAL:{TITLE:"Nombro de paĝoj aŭ grupoj",PAGE_COMMENT:"Komentoj",PAGE_RECORD:"Paĝoj",GROUP_RECORD:"Grupoj"},OTHER:{TITLE:"Aliaj dokumentoj",HISTORY_DELETE:"Forigoj de dokumentoj"}},SYNCHRO:{TITLE:"Statistikoj pri sinkronigoj",COUNT:{TITLE:"Kvanto sinkronigita",INSERTS:"Enmetoj",UPDATES:"Ĝisdatigoj",DELETES:"Forigoj"},PEER:{TITLE:"Nodoj informpetitaj",ES_USER_API:"Nodoj pri datenoj de uzantoj",ES_SUBSCRIPTION_API:"Nodoj pri retaj servoj"},PERFORMANCE:{TITLE:"Efikecoj pri efektiviĝo",DURATION:"Tempo por efektiviĝo (ms)"}}}}),e.translations("es-ES",{NETWORK:{VIEW:{BTN_GRAPH:"Estadística"}},GRAPH:{COMMON:{LINEAR_SCALE:"Escala lineal",LOGARITHMIC_SCALE:"Escala logarítmica",BTN_SHOW_STATS:"Ver estadísticas",BTN_SHOW_DETAILED_STATS:"Estadísticas detalladas",RANGE_DURATION_DIVIDER:"Unidad de paso:",RANGE_DURATION:{HOUR:"Grupo por <b>hora</b>",DAY:"Grupo por <b>día</b>",MONTH:"Grupo por <b>mes</b>"}},ACCOUNT:{INPUT_CHART_TITLE:"Suma del flujo entrante, por el transmisor:",OUTPUT_CHART_TITLE:"Suma de las salidas por destino:"},BLOCKCHAIN:{TITLE:"Estadística",BLOCKS_ISSUERS_DIVIDER:"Bloques escritos por los miembros",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} members</b> has computed <b>{{blockCount|formatInteger}} blocks</b>",BLOCKS_ISSUERS_TITLE:"Número de bloques miembro calculado",BLOCKS_ISSUERS_LABEL:"Número de bloques",TX_DIVIDER:"Análisis de transacciones",TX_AMOUNT_TITLE:"El volumen de operaciones",TX_AMOUNT_PUBKEY_TITLE:"El volumen de operaciones calculado por {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Volumen negociado",TX_COUNT_TITLE:"Número de transacciones escritas",TX_COUNT_LABEL:"Número de transacciones",TX_AVG_BY_BLOCK:"Promedio por bloque"},CURRENCY:{MONETARY_MASS_TITLE:"Evolución de la masa monetaria",MONETARY_MASS_LABEL:"Masa monetaria",MONETARY_MASS_SHARE_LABEL:"Promedio miembro",UD_TITLE:"Evolución del dividendo universales",MEMBERS_COUNT_TITLE:"Evolución del número de miembros",MEMBERS_COUNT_LABEL:"Número de miembros"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Número de bloques calculados",BLOCK_COUNT:"{{count}} bloques",NO_BLOCK:"Ningún bloque"}}}}),e.translations("fr-FR",{NETWORK:{VIEW:{BTN_GRAPH:"Statistiques"}},GRAPH:{COMMON:{LINEAR_SCALE:"Echelle linéaire",LOGARITHMIC_SCALE:"Echelle logarithmique",BTN_SHOW_STATS:"Voir les statistiques",BTN_SHOW_DETAILED_STATS:"Statistiques détaillées",RANGE_DURATION_DIVIDER:"Unité de temps :",RANGE_DURATION:{HOUR:"Heure",DAY:"Jour",MONTH:"Mois"}},ACCOUNT:{TITLE:"Statistiques",BTN_SHOW_STATS:"Voir les statistiques du compte",BALANCE_DIVIDER:"Situation du compte",BALANCE_TITLE:"Evolution du compte {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Recettes",TX_SENT_LABEL:"Dépenses",TX_ACCUMULATION_LABEL:"Bilan des transactions",UD_LABEL:"DU",UD_ACCUMULATION_LABEL:"Bilan des DU",BALANCE_LABEL:"Solde",WOT_DIVIDER:"Toile de confiance",CERTIFICATION_TITLE:"Nombre de certifications - {{pubkey|formatPubkey}}",RECEIVED_CERT_LABEL:"Total reçues",RECEIVED_CERT_DELTA_LABEL:"Variation reçues",GIVEN_CERT_LABEL:"Total envoyées",GIVEN_CERT_DELTA_LABEL:"Variation envoyées",INPUT_CHART_TITLE:"Somme des flux entrants, par émetteur :",OUTPUT_CHART_TITLE:"Somme des flux sortants, par destinaire :"},BLOCKCHAIN:{TITLE:"Statistiques",BLOCKS_ISSUERS_DIVIDER:"Analyse de la répartition du calcul",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} membres</b> ont calculé <b>{{blockCount|formatInteger}} blocs</b>",BLOCKS_ISSUERS_TITLE:"Nombre de blocs calculés par membre",BLOCKS_ISSUERS_LABEL:"Nombre de blocs",TX_DIVIDER:"Analyse des transactions",TX_AMOUNT_TITLE:"Volume des transactions",TX_AMOUNT_PUBKEY_TITLE:"Volume des transactions calculées par {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Volume échangé",TX_COUNT_TITLE:"Nombre de transactions écrites",TX_COUNT_LABEL:"Nombre de transactions",TX_AVG_BY_BLOCK:"Nombre moyen de transactions / bloc"},CURRENCY:{MONETARY_MASS_TITLE:"Evolution de la masse monétaire",MONETARY_MASS_LABEL:"Masse monétaire",MONETARY_MASS_SHARE_LABEL:"Moyenne par membre",UD_TITLE:"Evolution du dividende universel",MEMBERS_COUNT_TITLE:"Evolution du nombre de membres",MEMBERS_COUNT_LABEL:"Nombre de membres"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Nombre de blocs calculés",BLOCK_COUNT:"{{count}} blocs",NO_BLOCK:"Aucun bloc"}},DOC_STATS:{TITLE:"Statistiques de stockage",USER:{TITLE:"Nombre de documents liés à un compte",USER_PROFILE:"Profils utilisateur",USER_SETTINGS:"Paramètres sauvegardés"},USER_DELTA:{TITLE:"Variation du nombre de documents liés à un compte",USER_PROFILE:"Profils utilisateur",USER_SETTINGS:"Paramètres sauvegardés"},MESSAGE:{TITLE:"Nombre de documents liés à la communication",MESSAGE_INBOX:"Messages en boîte de réception",MESSAGE_OUTBOX:"Messages envoyés sauvegardés",INVITATION_CERTIFICATION:"Invitations à certifier"},SOCIAL:{TITLE:"Nombre de pages ou groupes",PAGE_COMMENT:"Commentaires",PAGE_RECORD:"Pages",GROUP_RECORD:"Groupes"},OTHER:{TITLE:"Autres documents",HISTORY_DELETE:"Suppressions de documents"}},SYNCHRO:{TITLE:"Statistiques de synchronisations",COUNT:{TITLE:"Volume synchronisé",INSERTS:"Insertions",UPDATES:"Mises à jour",DELETES:"Suppressions"},PEER:{TITLE:"Noeuds requêtés",ES_USER_API:"Noeuds données utilisateurs",ES_SUBSCRIPTION_API:"Noeuds services en ligne"},PERFORMANCE:{TITLE:"Performances d'exécution",DURATION:"Temps d'exécution (ms)"}}}}),e.translations("it-IT",{NETWORK:{VIEW:{BTN_GRAPH:"Statistiche"}},GRAPH:{COMMON:{LINEAR_SCALE:"Scala lineare",LOGARITHMIC_SCALE:"Scala logaritmica",BTN_SHOW_STATS:"Vedere le statistiche",BTN_SHOW_DETAILED_STATS:"Statistiche dettagliate",RANGE_DURATION_DIVIDER:"Unità di tempo :",RANGE_DURATION:{HOUR:"Ora",DAY:"Giorno",MONTH:"Mese"}},ACCOUNT:{TITLE:"Statistiche",BTN_SHOW_STATS:"Visualizzare le statistiche del conto",BALANCE_DIVIDER:"Situazione del conto",BALANCE_TITLE:"Evoluzione del conto {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Incassi",TX_SENT_LABEL:"Spese",TX_ACCUMULATION_LABEL:"Bilancio delle transazioni",UD_LABEL:"DU",UD_ACCUMULATION_LABEL:"Bilancio dei DU",BALANCE_LABEL:"Saldo",WOT_DIVIDER:"Tela di fiducia",CERTIFICATION_TITLE:"Numero di certificazioni - {{pubkey|formatPubkey}}",RECEIVED_CERT_LABEL:"Totale ricevute",RECEIVED_CERT_DELTA_LABEL:"Variazione ricevute",GIVEN_CERT_LABEL:"Totale inviate",GIVEN_CERT_DELTA_LABEL:"Variazione inviate",INPUT_CHART_TITLE:"Somma dei flussi in entrata, par emittente :",OUTPUT_CHART_TITLE:"Somma dei flussi in uscita, per destinatario :"},BLOCKCHAIN:{TITLE:"Statistiche",BLOCKS_ISSUERS_DIVIDER:"Analisi della ripartizione del calcolo",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} membri</b> hanno calcolato <b>{{blockCount|formatInteger}} blocchi</b>",BLOCKS_ISSUERS_TITLE:"Numero di blocchi calcolati a membro",BLOCKS_ISSUERS_LABEL:"Numero di blocchi",TX_DIVIDER:"Analisi delle transazioni",TX_AMOUNT_TITLE:"Volume delle transazioni",TX_AMOUNT_PUBKEY_TITLE:"Volume delle transazioni calcolato da {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Volume scambiato",TX_COUNT_TITLE:"Numero di transazioni scritte",TX_COUNT_LABEL:"Numero di transazioni",TX_AVG_BY_BLOCK:"Numero medio di transazioni / blocco"},CURRENCY:{MONETARY_MASS_TITLE:"Evoluzione della massa monetaria",MONETARY_MASS_LABEL:"Massa monetaria",MONETARY_MASS_SHARE_LABEL:"Media a membro",UD_TITLE:"Evoluzione del Dividendo Universale",MEMBERS_COUNT_TITLE:"Evoluzione del numero di membri",MEMBERS_COUNT_LABEL:"Numero di membri"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Numero di blocchi calcolati",BLOCK_COUNT:"{{count}} blocchi",NO_BLOCK:"Nessun blocco"}},DOC_STATS:{TITLE:"Statistiche di stoccaggio",USER:{TITLE:"Numero di documenti legati ad un conto",USER_PROFILE:"Profili dell'utente",USER_SETTINGS:"Impostazioni salvate"},MESSAGE:{TITLE:"Numero di documenti legati alla conversazione",MESSAGE_INBOX:"Messaggi in arrivo",MESSAGE_OUTBOX:"Messaggi inviati salvati",INVITATION_CERTIFICATION:"Invitazioni da certificare"},SOCIAL:{TITLE:"Numero di pagine o gruppi",PAGE_COMMENT:"Commenti",PAGE_RECORD:"Pagine",GROUP_RECORD:"Gruppi"},OTHER:{TITLE:"Altri documenti",HISTORY_DELETE:"Cronologia eliminazione documenti"}},SYNCHRO:{TITLE:"Statistiche di sincronizzazioni",COUNT:{TITLE:"Volume sincronizzato",INSERTS:"Inserimenti",UPDATES:"Aggiornamenti",DELETES:"Eliminazioni"},PEER:{TITLE:"Nodi interrogati",ES_USER_API:"Nodi dati utenti",ES_SUBSCRIPTION_API:"Noeuds servizi online"},PERFORMANCE:{TITLE:"Prestazioni (performance) di esecuzione",DURATION:"Tempo di esecuzione (ms)"}}}}),e.translations("nl-NL",{NETWORK:{VIEW:{BTN_GRAPH:"Statistieken"}},GRAPH:{COMMON:{LINEAR_SCALE:"Lineaire schaal",LOGARITHMIC_SCALE:"Logaritmische schaal",BTN_SHOW_STATS:"Zie statistieken",BTN_SHOW_DETAILED_STATS:"Gedetailleerde statistieken",RANGE_DURATION_DIVIDER:"Stap eenheid:",RANGE_DURATION:{HOUR:"Groep per <b>uur</b>",DAY:"Groep per <b>dag</b>",MONTH:"Groep per <b>maand</b>"}},ACCOUNT:{INPUT_CHART_TITLE:"Som van de binnenkomende stroom, door de zender:",OUTPUT_CHART_TITLE:"Som van de uitstroom per bestemming:"},BLOCKCHAIN:{TITLE:"Statistieken",BLOCKS_ISSUERS_DIVIDER:"Schriftelijke blokken door leden",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} leden</b> berekend <b>{{blockCount|formatInteger}} blokken</b>",BLOCKS_ISSUERS_TITLE:"Aantal blokken berekend per lid",BLOCKS_ISSUERS_LABEL:"Aantal blokken",TX_DIVIDER:"Analyse van transacties",TX_AMOUNT_TITLE:"Trading volume",TX_AMOUNT_PUBKEY_TITLE:"Trading volume dat wordt berekend door {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Verhandeld volume",TX_COUNT_TITLE:"Aantal schriftelijke transacties",TX_COUNT_LABEL:"Aantal transacties",TX_AVG_BY_BLOCK:"Gemiddeld aantal transacties / blok"},CURRENCY:{MONETARY_MASS_TITLE:"Evolutie van de monetaire massa",MONETARY_MASS_LABEL:"Monetaire massa",MONETARY_MASS_SHARE_LABEL:"Gemiddelde leden",UD_TITLE:"Ontwikkeling van de universele dividend",MEMBERS_COUNT_TITLE:"Evolutie van het aantal leden",MEMBERS_COUNT_LABEL:"Aantal leden"}}}),e.translations("en-GB",{MAP:{COMMON:{SEARCH_DOTS:"Search...",BTN_LOCALIZE_ME:"Localize me"},NETWORK:{LOOKUP:{BTN_MAP:"Peers map",BTN_MAP_HELP:"Open peers map"},VIEW:{TITLE:"Peers map",LAYER:{MEMBER:"Member peers",MIRROR:"Mirror peers",OFFLINE:"Offline peers"}}},WOT:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open members map"},VIEW:{TITLE:"Members map",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Members',PENDING:'<i class="icon ion-clock energized"></i> Pending registrations',WALLET:'<i class="icon ion-card gray"></i> Simple wallets'}},ERROR:{LOAD_POSITION_FAILED:"Can not retrieve the positions to display."}},REGISTRY:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open the map of the pages"},VIEW:{TITLE:"Map of pages",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Local shops',COMPANY:'<i class="icon ion-page-company positive"></i> Companies',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associations',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institutions'}}},PROFILE:{MARKER_HELP:"<b>Drag and drop</b> this marker to <b>update<br/>your position</b>, or use the buttons<br/>on top of the map."},ERROR:{LOCALIZE_ME_FAILED:"Unable to retrieve your current position"},SETTINGS:{MAP_DIVIDER:"Maps",ENABLE_GOOGLE_API:"Enable Google API services?",ENABLE_GOOGLE_API_HELP:"In the <b>members map</b>, allows you to display accounts with an address but without geolocation.",GOOGLE_API_KEY:"Google API key",BTN_GOOGLE_API:"Getting a key",BTN_GOOGLE_API_WARNING:"requires a Google account",GOOGLE_API_KEY_PLACEHOLDER:"eg: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"This map displays <b>profiles with a position</b>, whether they are member accounts or not.<br/><br/>Only profiles with the option &quot;appear on the map&quot; has been activated.",WOT_BTN_LAYERS:"<b>Filter the displayed data</b>: members, pending registrations, simple portfolios, etc.",WOT_BTN_SEARCH:"You can <b>search</b> by name, public key, or member pseudonym."}}}}),e.translations("en",{MAP:{COMMON:{SEARCH_DOTS:"Search...",BTN_LOCALIZE_ME:"Localize me"},NETWORK:{LOOKUP:{BTN_MAP:"Peers map",BTN_MAP_HELP:"Open peers map"},VIEW:{TITLE:"Peers map",LAYER:{MEMBER:"Member peers",MIRROR:"Mirror peers",OFFLINE:"Offline peers"}}},WOT:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open members map"},VIEW:{TITLE:"Members map",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Members',PENDING:'<i class="icon ion-clock energized"></i> Pending registrations',WALLET:'<i class="icon ion-card gray"></i> Simple wallets'}},ERROR:{LOAD_POSITION_FAILED:"Can not retrieve the positions to display."}},REGISTRY:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open the map of the pages"},VIEW:{TITLE:"Map of pages",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Local shops',COMPANY:'<i class="icon ion-page-company positive"></i> Companies',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associations',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institutions'}}},PROFILE:{MARKER_HELP:"<b>Drag and drop</b> this marker to <b>update<br/>your position</b>, or use the buttons<br/>on top of the map."},ERROR:{LOCALIZE_ME_FAILED:"Unable to retrieve your current position"},SETTINGS:{MAP_DIVIDER:"Maps",ENABLE_GOOGLE_API:"Enable Google API services?",ENABLE_GOOGLE_API_HELP:"In the <b>members map</b>, allows you to display accounts with an address but without geolocation.",GOOGLE_API_KEY:"Google API key",BTN_GOOGLE_API:"Getting a key",BTN_GOOGLE_API_WARNING:"requires a Google account",GOOGLE_API_KEY_PLACEHOLDER:"eg: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"This map displays <b>profiles with a position</b>, whether they are member accounts or not.<br/><br/>Only profiles with the option &quot;appear on the map&quot; has been activated.",WOT_BTN_LAYERS:"<b>Filter the displayed data</b>: members, pending registrations, simple portfolios, etc.",WOT_BTN_SEARCH:"You can <b>search</b> by name, public key, or member pseudonym."}}}}),e.translations("eo-EO",{MAP:{COMMON:{SEARCH_DOTS:"Traserĉi...",BTN_LOCALIZE_ME:"Lokalizi min"},NETWORK:{LOOKUP:{BTN_MAP:"Mapo",BTN_MAP_HELP:"Malfermi la mapon pri nodoj"},VIEW:{TITLE:"Mapo pri nodoj",LAYER:{MEMBER:"Membro-nodoj",MIRROR:"Spegul-nodoj",OFFLINE:"Nekonektitaj nodoj"}}},WOT:{LOOKUP:{BTN_MAP:"Mapo",BTN_MAP_HELP:"Malfermi la mapon pri membroj"},VIEW:{TITLE:"Mapo pri membroj",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Membroj',PENDING:'<i class="icon ion-clock energized"></i> Aliĝoj atendantaj',WALLET:'<i class="icon ion-card gray"></i> Simplaj monujoj'}},ERROR:{LOAD_POSITION_FAILED:"Neeblas ricevi la lokojn afiŝotajn."}},REGISTRY:{LOOKUP:{BTN_MAP:"Mapo",BTN_MAP_HELP:"Malfermi la mapon pri paĝoj"},VIEW:{TITLE:"Mapo pri paĝoj",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Lokaj komercoj',COMPANY:'<i class="icon ion-page-company positive"></i> Entreprenoj',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Asocioj',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institucioj'}}},PROFILE:{MARKER_HELP:"<b>Ŝovu-demetu</b> tiun ĉi markilon por <b>aktualigi<br/> vian lokon</b> sur la mapo, aŭ uzu la serĉo-butonon<br/>super la mapo."},ERROR:{LOCALIZE_ME_FAILED:"Neeblas ricevi vian nunan lokon"},SETTINGS:{MAP_DIVIDER:"Mapoj",ENABLE_GOOGLE_API:"Aktivigi la Google-API-servojn?",ENABLE_GOOGLE_API_HELP:"Ebligas afiŝi sur la <b>mapo pri membroj</b> kontojn kun adreso sed sen iu GPS-lokalizo.",GOOGLE_API_KEY:"Google-API-ŝlosilo",BTN_GOOGLE_API:"Ekhavi ŝlosilon",BTN_GOOGLE_API_WARNING:"Necesigas havi Google-konton",GOOGLE_API_KEY_PLACEHOLDER:"Ekzemple: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"Tiu ĉi mapo afiŝas <b>la profilojn kun loko</b>, ĉu ili rilatas al membro-kontoj aŭ ne.<br/><br/>Nur videblas la profiloj, kies kromaĵo &quot;aperi sur la mapo&quot; estis aktivigita.",WOT_BTN_LAYERS:"<b>Filtru ĉi tie la afiŝitajn datenojn</b>: membroj, aliĝoj atendantaj, simplaj monujoj, ktp.",WOT_BTN_SEARCH:"Vi povas <b>efektivigi serĉadon</b> laŭ nomo, publika ŝlosilo aŭ membro-pseŭdonimo."}}}}),e.translations("fr-FR",{MAP:{COMMON:{SEARCH_DOTS:"Rechercher...",BTN_LOCALIZE_ME:"Me localiser"},NETWORK:{LOOKUP:{BTN_MAP:"Carte",BTN_MAP_HELP:"Ouvrir la carte des noeuds"},VIEW:{TITLE:"Carte des noeuds",LAYER:{MEMBER:"Nœuds membre",MIRROR:"Nœuds miroir",OFFLINE:"Nœuds hors ligne"}}},WOT:{LOOKUP:{BTN_MAP:"Carte",BTN_MAP_HELP:"Ouvrir la carte des membres"},VIEW:{TITLE:"Carte des membres",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Membres',PENDING:'<i class="icon ion-clock energized"></i> Inscriptions en attente',WALLET:'<i class="icon ion-card gray"></i> Simples portefeuilles'}},ERROR:{LOAD_POSITION_FAILED:"Impossible de récupérer les positions à afficher."}},REGISTRY:{LOOKUP:{BTN_MAP:"Carte",BTN_MAP_HELP:"Ouvrir la carte des pages"},VIEW:{TITLE:"Carte des pages",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Commerces locaux',COMPANY:'<i class="icon ion-page-company positive"></i> Entreprises',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associations',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institutions'}}},PROFILE:{MARKER_HELP:"<b>Glissez-déposez</b> ce marqueur pour <b>mettre<br/>à jour votre position</b> sur la carte, ou utilisez le bouton<br/>de recherche au-dessus de la carte."},ERROR:{LOCALIZE_ME_FAILED:"Impossible de récupérer votre position actuelle"},SETTINGS:{MAP_DIVIDER:"Cartes",ENABLE_GOOGLE_API:"Activer les services Google API ?",ENABLE_GOOGLE_API_HELP:"Permet l'affichage dans la <b>carte des membres</b> des comptes ayant une adresse mais aucun positionnement GPS.",GOOGLE_API_KEY:"Clé d'API Google",BTN_GOOGLE_API:"Obtenir une clé",BTN_GOOGLE_API_WARNING:"Nécessite d'avoir un compte Google",GOOGLE_API_KEY_PLACEHOLDER:"Exemple : AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"Cette carte affiche <b>les profils ayant une position</b>, qu'ils correspondent à des comptes membre ou non.<br/><br/>Seuls sont visibles les profils dont l'option &quot;apparaître sur la carte&quot; a été activée.",WOT_BTN_LAYERS:"<b>Filtrez ici les données affichées</b> : membres, inscriptions en attente, simples portefeuilles, etc.",WOT_BTN_SEARCH:"Vous pouvez <b>effectuer une recherche</b> par nom, clef publique ou pseudonyme de membre."}}}}),e.translations("it-IT",{MAP:{COMMON:{SEARCH_DOTS:"Ricerca...",BTN_LOCALIZE_ME:"Trovami"},NETWORK:{LOOKUP:{BTN_MAP:"Mappa dei peers",BTN_MAP_HELP:"Aprire mappa dei peers"},VIEW:{TITLE:"Mappa dei peers",LAYER:{MEMBER:"Peers membri",MIRROR:"Peers specchi",OFFLINE:"Peers offline"}}},WOT:{LOOKUP:{BTN_MAP:"Mappa dei membri",BTN_MAP_HELP:"Aprire mappa dei membri"},VIEW:{TITLE:"Mappa membri",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Membri',PENDING:'<i class="icon ion-clock energized"></i> Registrazione pendenti',WALLET:'<i class="icon ion-card gray"></i> Portafogli osservatori'}},ERROR:{LOAD_POSITION_FAILED:"Errore nel caricamento delle posizioni."}},REGISTRY:{LOOKUP:{BTN_MAP:"Mappa",BTN_MAP_HELP:"Aprire la mappa delle pagine pro"},VIEW:{TITLE:"Mappa delle pagine pro",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Negozi locali',COMPANY:'<i class="icon ion-page-company positive"></i> Aziende',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associazioni',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Instituti'}}},PROFILE:{MARKER_HELP:"<b>Drag and drop</b> questo indicatore per <b>aggiornare<br/>tua posizione</b>, o usa i bottoni <br/>sopra la mappa."},ERROR:{LOCALIZE_ME_FAILED:"Impossible trovare tua posizione attuale"},SETTINGS:{MAP_DIVIDER:"Mappe",ENABLE_GOOGLE_API:"Abilitare i servizi Google API ?",ENABLE_GOOGLE_API_HELP:"Sulla <b>mappa dei membri</b>, ti permette di visualizzare i conti con un indirizzo ma senza geolocalizzazione.",GOOGLE_API_KEY:"Chiave Google API",BTN_GOOGLE_API:"Ottenere una chiave",BTN_GOOGLE_API_WARNING:"necessita un conto Google",GOOGLE_API_KEY_PLACEHOLDER:"per es. : AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"Questa mappa mostra <b>profili che hanno fornito una posizione</b>, che siano conti membri o no.<br/><br/>Solo i profili che hanno attivato l'opzione &quot;apparire sulla mappa&quot; sono stati attivati.",WOT_BTN_LAYERS:"<b>Filtrare i dati visibili</b>: membri, registrazioni pendenti, portafogli osservatori, etc.",WOT_BTN_SEARCH:"Puoi <b>cercare</b> per nome, chiave pubblica, o pseudonimo del membro."}}}}),e.translations("fr-FR",{RML9:{BTN_EXPORT:"Télécharger",BTN_OPEN:"Ouvrir la page RML9",BTN_SWOW_TX:"Voir les transactions",FILE_NAME:"relevé du compte {{pubkey|formatPubkey}} au {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Montant",COMMENT:"Commentaire"},VIEW:{TITLE:"RML9",DIVIDER:"Dernières transactions :",BALANCE:"Solde du compte"},CHART:{INPUT_CHART_TITLE:"Somme des flux entrants, par émetteur :",OUTPUT_CHART_TITLE:"Somme des flux sortants, par destinaire :"},SETTINGS:{ENABLE_TOGGLE:"Activer le plugin RML9 ?"}}})}]),angular.module("cesium.plugins.templates",[]).run(["$templateCache",function(e){e.put("plugins/es/templates/menu_extend.html",'<div ng-if=":state:enable && extensionPoint === \'menu-user\'" class="visible-xs visible-sm"><a menu-close="" class="item item-icon-left" active-link="active" ng-if="login && walletData.isMember" active-link-path-prefix="#/app/invitations" ui-sref="app.view_invitations"><i class="icon ion-person-stalker"></i> <span translate="">MENU.INVITATIONS</span> <span class="badge badge-positive" ng-if="walletData.invitations.unreadCount">{{walletData.invitations.unreadCount}}</span> </a><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/user/message" ng-class="{\'item-menu-disable\': !login}" ui-sref="app.user_message.tab_inbox"><i class="icon ion-email"></i> <span translate="">MENU.MESSAGES</span> <span class="badge badge-positive" ng-if="walletData.messages.unreadCount">{{walletData.messages.unreadCount}}</span> </a><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/notifications" ng-class="{\'item-menu-disable\': !login}" ui-sref="app.view_notifications"><i class="icon ion-android-notifications"></i> <span translate="">MENU.NOTIFICATIONS</span> <span class="badge badge-positive" ng-if="walletData.notifications.unreadCount">{{walletData.notifications.unreadCount}}</span></a></div>'),e.put("plugins/rml9/templates/01-button.html",'\x3c!-- Button that call a function of the controller --\x3e\n<button class="button button-balanced button-small-padding icon ion-android-archive"\n        ng-click="onButtonClick()"\n        title="{{\'RML9.BTN_OPEN\' | translate}}">\n</button>\n\n\x3c!-- Button: Open a view, using `ui-sref` attribute\n<button class="button button-balanced button-small-padding icon ion-plus-circled"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_OPEN\' | translate}}">\n</button> --\x3e\n\n'),e.put("plugins/rml9/templates/02-view.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n      \x3c!-- iterate on each TX --\x3e\n      <div class="item" ng-repeat="item in items">\n        <h3>{{item.time|formatDate}}</h3>\n        <h4>{{item.pubkey|formatPubkey}}</h4>\n        <div class="badge">{{item.amount|formatAmount}}</div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/rml9/templates/03-button.html",'\x3c!-- Button: Open a view, using `ui-sref` attribute --\x3e\n<button class="button button-balanced button-small-padding icon ion-android-archive"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n</button>\n\n'),e.put("plugins/rml9/templates/03-view_with_button.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- buttons bar --\x3e\n      <div class="center padding">\n        <div class="buttons">\n          <button class="button button-balanced icon-left icon ion-archive"\n                  ng-click="onExportButtonClick()">{{\'RML9.BTN_EXPORT\' | translate}}\n          </button>\n        </div>\n      </div>\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- the balance --\x3e\n      <div class="item">\n        {{\'RML9.VIEW.BALANCE\'|translate}}\n        <div class="badge badge-calm">\n          {{balance|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n      \x3c!-- iterate on each TX --\x3e\n      <div class="item item-text-wrap" ng-repeat="item in items">\n\n        <h3>\n          {{item.time|formatDate}}\n          <span ng-if="item.comment" class="gray"> | {{item.comment}}</span>\n        </h3>\n\n        <h4 ng-if="item.uid" class="positive"><i class="icon ion-person"></i> {{item.name||item.uid}}</h4>\n        <h4 ng-if="!item.uid" class="gray"><i class="icon ion-key"></i> {{item.pubkey|formatPubkey}}</h4>\n\n        <div class="badge"\n             ng-class="{\'badge-balanced\': item.amount > 0}">\n          {{item.amount|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/rml9/templates/04-view_chart.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- buttons bar --\x3e\n      <div class="center padding">\n        <div class="buttons">\n          <button class="button button-balanced icon-left icon ion-archive"\n                  ng-click="onExportButtonClick()">{{\'RML9.BTN_EXPORT\' | translate}}\n          </button>\n        </div>\n      </div>\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- the balance --\x3e\n      <div class="item">\n        {{\'RML9.VIEW.BALANCE\'|translate}}\n        <div class="badge badge-calm">\n          {{balance|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n\n      <div class="row">\n        <div class="col col-75">\n          \x3c!-- iterate on each TX --\x3e\n          <div class="item item-text-wrap" ng-repeat="item in items">\n\n            <h3>\n              {{item.time|formatDate}}\n              <span ng-if="item.comment" class="gray"> | {{item.comment}}</span>\n            </h3>\n\n            <h4 ng-if="item.uid" class="positive"><i class="icon ion-person"></i> {{item.name||item.uid}}</h4>\n            <h4 ng-if="!item.uid" class="gray"><i class="icon ion-key"></i> {{item.pubkey|formatPubkey}}</h4>\n\n            <div class="badge"\n                 ng-class="{\'badge-balanced\': item.amount > 0}">\n              {{item.amount|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n            </div>\n          </div>\n        </div>\n\n        <div class="col col-25">\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.INPUT_CHART_TITLE</p>\n          <canvas id="chart-received-pie" class="chart-pie"\n                  chart-data="inputChart.data"\n                  chart-labels="inputChart.labels"\n                  chart-colors="inputChart.colors">\n          </canvas>\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.OUTPUT_CHART_TITLE</p>\n          <canvas id="chart-sent-pie" class="chart-pie"\n                  chart-data="outputChart.data"\n                  chart-labels="outputChart.labels"\n                  chart-colors="outputChart.colors">\n          </canvas>\n        </div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/rml9/templates/06-button.html",'\x3c!-- [NEW] Display only if plugin is enable --\x3e\n\n  \x3c!-- Button: call a method from the state controller --\x3e\n  <button ng-if="enable" class="button button-balanced button-small-padding icon ion-android-archive"\n          ng-click="onButtonClick()"\n          title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n  </button>\n\n\n'),e.put("plugins/rml9/templates/06-settings_item.html",'\n<div class="item item-toggle dark">\n  <div class="input-label" translate>RML9.SETTINGS.ENABLE_TOGGLE</div>\n  <label class="toggle toggle-royal">\n    <input type="checkbox" ng-model="formData.plugins.rml9.enable" >\n    <div class="track">\n      <div class="handle"></div>\n    </div>\n  </label>\n</div>\n'),e.put("plugins/rml9/templates/07-button.html",'\x3c!-- Button: Open a view, using `ui-sref` attribute --\x3e\n<button class="button button-balanced button-small-padding icon ion-android-archive"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n</button>\n\n'),e.put("plugins/rml9/templates/07-view.html",'<leaflet id="map-geojson" center="map.center" geojson="map.geojson"></leaflet>\n'),e.put("plugins/rml9/templates/final-button.html",'\x3c!-- Button: Open a view, using `ui-sref` attribute --\x3e\n<button ng-if class="button button-balanced button-small-padding icon ion-android-archive"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n</button>\n\n'),e.put("plugins/rml9/templates/final-view.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- buttons bar --\x3e\n      <div class="center padding">\n        <div class="buttons">\n          <button class="button button-balanced icon-left icon ion-archive"\n                  ng-click="onExportButtonClick()">{{\'RML9.BTN_EXPORT\' | translate}}\n          </button>\n        </div>\n      </div>\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- the balance --\x3e\n      <div class="item">\n        {{\'RML9.VIEW.BALANCE\'|translate}}\n        <div class="badge badge-calm">\n          {{balance|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n      \x3c!-- iterate on each TX --\x3e\n      <div class="row">\n        <div class="col col-75">\n          <div class="item item-text-wrap" ng-repeat="item in items">\n\n            <h3>\n              {{item.time|formatDate}}\n              <span ng-if="item.comment" class="gray"> | {{item.comment}}</span>\n            </h3>\n\n            <h4 ng-if="item.uid" class="positive"><i class="icon ion-person"></i> {{item.name||item.uid}}</h4>\n            <h4 ng-if="!item.uid" class="gray"><i class="icon ion-key"></i> {{item.pubkey|formatPubkey}}</h4>\n\n            <div class="badge"\n                 ng-class="{\'badge-balanced\': item.amount > 0}">\n              {{item.amount|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n            </div>\n          </div>\n\n        </div>\n\n        <div class="col col-25">\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.INPUT_CHART_TITLE</p>\n          <canvas id="chart-received-pie" class="chart-pie"\n                  chart-data="inputChart.data"\n                  chart-labels="inputChart.labels">\n          </canvas>\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.OUTPUT_CHART_TITLE</p>\n          <canvas id="chart-sent-pie" class="chart-pie"\n                  chart-data="outputChart.data"\n                  chart-labels="outputChart.labels">\n          </canvas>\n        </div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/es/templates/blockchain/items_blocks.html",'<div class="padding gray" ng-if=":rebind:!search.loading && !search.results.length" translate="">COMMON.SEARCH_NO_RESULT</div><ng-if ng-if=":rebind:!smallscreen"><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="!block.empty ? \'templates/blockchain/item_block_lg.html\' : \'templates/blockchain/item_block_empty_lg.html\'"></ng-repeat></ng-if><ng-if ng-if=":rebind:smallscreen"><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="\'templates/blockchain/item_block.html\'"></ng-repeat></ng-if>'),e.put("plugins/es/templates/blockchain/lookup.html",'<ion-view><ion-nav-title><span translate>BLOCKCHAIN.LOOKUP.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-navicon visible-xs visible-sm" ng-click="toggleCompactMode()"><b class="icon-secondary" ng-class="{\'ion-arrow-down-b\': !compactMode, \'ion-arrow-up-b\': compactMode}" style="top: -12px; left: 11px; font-size: 10px"></b> <b class="icon-secondary" ng-class="{\'ion-arrow-up-b\': !compactMode,\'ion-arrow-down-b\': compactMode}" style="top: 12px; left: 11px; font-size: 10px"></b></button> <button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'plugins/es/templates/blockchain/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("plugins/es/templates/blockchain/lookup_form.html",'<div class="lookupForm"><div class="item no-padding"><div class="button button-small button-text button-stable button-icon-event padding no-padding-right ink" ng-repeat="filter in search.filters" ng-if="filter"><span ng-bind-html="\'BLOCKCHAIN.LOOKUP.TX_SEARCH_FILTER.\'+filter.type|translate:filter"></span> <i class="icon ion-close" ng-click="itemRemove($index)"></i></div><label class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'BLOCKCHAIN.LOOKUP.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearchText()"><div class="helptip-anchor-center"><a id="helptip-blockchain-search-text"></a></div></label></div><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="search.type==\'last\'" translate="">BLOCKCHAIN.LOOKUP.LAST_BLOCKS</h4><h4 ng-if="search.type==\'text\'">{{\'COMMON.RESULTS_LIST\'|translate}}</h4><h5 class="dark" ng-if="!search.loading && search.total"><span translate="COMMON.RESULTS_COUNT" translate-values="{count: search.total}"></span> <small class="gray" ng-if=":rebind:search.took && expertMode">- {{:rebind:\'COMMON.EXECUTION_TIME\'|translate: {duration: search.took} }} </small><small class="gray" ng-if=":rebind:expertMode && search.filters && search.filters.length">- <a ng-click="toggleShowQuery()" ng-if="!showQuery">{{\'DOCUMENT.LOOKUP.SHOW_QUERY\'|translate }} <i class="icon ion-arrow-down-b gray"></i> </a><a ng-click="toggleShowQuery()" ng-if="showQuery">{{\'DOCUMENT.LOOKUP.HIDE_QUERY\'|translate }} <i class="icon ion-arrow-up-b gray"></i></a></small></h5><h5 class="gray" ng-if="search.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner><span translate="">COMMON.SEARCHING</span><br></h5></div></div><div class="item no-border no-padding" ng-if=":rebind:search.filters && search.filters.length && expertMode"><small class="no-padding no-margin" ng-if="showQuery"><span class="gray text-wrap dark">{{:rebind:search.query}}</span></small></div><ion-list class="list list-blocks" ng-class="::motion.ionListClass"><ng-include src="\'plugins/es/templates/blockchain/items_blocks.html\'"></ng-include></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll></div>'),e.put("plugins/es/templates/blockchain/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>BLOCKCHAIN.LOOKUP.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a ng-if="enableFilter" class="item item-icon-left item-icon-right ink" ng-click="doSearchLast()"><i class="icon ion-clock"></i> {{\'BLOCKCHAIN.LOOKUP.BTN_LAST\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'last\'"></i></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/currency/tab_blocks_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'nav-buttons\'"><button class="button button-icon button-clear icon ion-android-search visible-xs visible-sm" ui-sref="app.blockchain_search"></button></ng-if>'),e.put("plugins/es/templates/common/edit_pictures.html",'<div class="gallery" ng-controller="ESPicturesEditCtrl as ctrl"><div ng-repeat="picture in pictures" class="item card card-gallery stable-bg" ng-class="{\'in done\': picture.isnew}"><div><h2 ng-if="picture.title">{{picture.title}}</h2><img ng-src="{{picture.src}}"></div><div class="item done in tabs tabs-secondary tabs-icon-left"><a class="tab-item stable-bg assertive" ng-click="removePicture($index)" title="{{\'COMMON.BTN_PICTURE_DELETE\' | translate}}"><i class="icon ion-trash-a"></i>{{\'COMMON.BTN_PICTURE_DELETE\'|translate}}</a> <a class="tab-item stable-bg dark" ng-click="rotatePicture($index)" title="{{\'COMMON.BTN_PICTURE_ROTATE\' | translate}}"><i class="icon ion-forward"></i>{{\'COMMON.BTN_PICTURE_ROTATE\'|translate}}</a> <a class="tab-item stable-bg" ng-click="favoritePicture($index)" ng-class="{\'gray\': $index !== 0, \'positive\': $index === 0}" title="{{\'COMMON.BTN_PICTURE_FAVORISE\' | translate}}"><i class="icon ion-star"></i>{{\'COMMON.BTN_PICTURE_FAVORISE\'|translate}}</a></div></div><div class="item card card-gallery card-gallery-new text-center padding ink" ng-click="selectNewPicture(\'#pictureFile\')"><i class="ion-image stable" style="font-size:150px"></i> <b class="ion-plus gray" style="font-size:80px; position:absolute; top:25px; right: 5px"></b><p translate>COMMON.BTN_ADD_PICTURE</p></div><input type="file" id="pictureFile" accept="image/*" onchange="angular.element(this).scope().fileChanged(event)" style="visibility:hidden; position:absolute"></div>'),e.put("plugins/es/templates/common/edit_position.html",'<div class="item item-divider" translate>LOCATION.LOCATION_DIVIDER</div><ion-item class="item-input item-floating-label item-button-right"><span class="input-label">{{\'LOCATION.ADDRESS\' | translate}}</span><textarea placeholder="{{\'LOCATION.ADDRESS_HELP\' | translate}}" ng-model="formData.address" ng-model-options="{ debounce: 350 }" rows="4" cols="10">\n              </textarea></ion-item><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.geoPoint.$invalid}"><span class="input-label" translate>LOCATION.CITY</span> <input type="text" placeholder="{{\'LOCATION.CITY_HELP\'|translate}}" ng-model="formData.city" ng-model-options="{ updateOn: \'blur\' }" required-if="formData.address" ng-change="onCityChanged()"></div><input type="hidden" name="geoPoint" ng-model="formData.geoPoint" required-if="formPosition.enable" geo-point><div class="form-errors" ng-show="form.$submitted && form.city.$error" ng-messages="form.city.$error"><div class="form-error" ng-message="required"><span translate="LOCATION.ERROR.CITY_REQUIRED_IF_STREET"></span></div></div><div class="form-errors" ng-show="form.$submitted && form.geoPoint.$error" ng-messages="form.geoPoint.$error"><div class="form-error" ng-message="required"><span translate="LOCATION.ERROR.REQUIRED_FOR_LOCATION" ng-if="!formData.city"></span> <span translate="LOCATION.ERROR.INVALID_FOR_LOCATION" ng-if="formData.city"></span></div><div class="form-error" ng-message="geoPoint"><span translate="LOCATION.ERROR.REQUIRED_FOR_LOCATION" ng-if="!formData.city"></span> <span translate="LOCATION.ERROR.INVALID_FOR_LOCATION" ng-if="formData.city"></span></div></div><div class="item row item-text-wrap no-padding"><div class="col no-padding"><ion-checkbox ng-model="formPosition.enable" ng-change="onUseGeopointChanged()" class="item item-border-large done in"><div class="item-content"><span translate>LOCATION.USE_GEO_POINT</span><h4 class="gray" ng-if="formPosition.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner>{{\'LOCATION.LOADING_LOCATION\'|translate}}</h4></div></ion-checkbox></div><div class="col col-10 no-padding" style="min-width: 60px"><div class="row text-center"><a class="button button-stable button-small-padding" title="{{\'LOCATION.BTN_GEOLOC_ADDRESS\'|translate}}" ng-disabled="!formPosition.enable" ng-click="openSearchLocationModal()"><i class="icon ion-home" style="left: 15px"></i> <b class="icon-secondary ion-search" style="top: -9px; left:32px; font-size: 18px"></b></a></div></div></div><cs-extension-point name="after-position"></cs-extension-point>'),e.put("plugins/es/templates/common/edit_socials.html",'<div class="list no-padding {{::motion.ionListClass}}"><div class="item item-divider"><span translate="">PROFILE.SOCIAL_NETWORKS_DIVIDER</span> <a class="badge button button-text button-small button-small-padding" ng-class="{\'button-text-positive\': socialData.reorder}" ng-if="formData.socials && formData.socials.length &gt; 1" ng-click="socialData.reorder=!socialData.reorder"><span translate="">PROFILE.BTN_REORDER</span></a></div></div><ion-list show-reorder="socialData.reorder"><ion-item class="item-icon-left item-social-edit done in" type="no-padding item-text-wrap" ng-if="formData.socials && formData.socials.length" ng-repeat="social in formData.socials | filter:filterFn track by social.url" id="social-{{social.url|formatSlug}}"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\', \'ion-iphone\': social.type == \'phone\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}} <i class="ion-locked" ng-if="social.recipient"></i></p><h2><span>{{social.url}}</span></h2><ion-option-button class="button-assertive" ng-if="!social.recipient" ng-click="formData.socials.splice($index, 1); dirty = true;">{{\'COMMON.BTN_DELETE\'|translate}}</ion-option-button><ion-option-button class="button-info" ng-if="!social.recipient" ng-click="editSocialNetwork($index)">{{\'COMMON.BTN_EDIT\'|translate}}</ion-option-button><ion-reorder-button class="ion-drag" on-reorder="reorderSocialNetwork(social, $fromIndex, $toIndex)"></ion-reorder-button></ion-item></ion-list><ion-list class="no-padding"><div class="item item-complex item-input-inset"><label class="item-input-wrapper"><input type="text" style="width:100%" placeholder="{{\'PROFILE.SOCIAL_HELP\'|translate}}" id="socialUrl" on-return="addSocialNetwork($event);" ng-model="socialData.url"></label><button class="button button-small hidden-xs" type="button" ng-click="addSocialNetwork($event)" translate="">COMMON.BTN_ADD</button> <button class="button button-small button-icon icon ion-android-add visible-xs" type="button" ng-click="addSocialNetwork($event)"></button></div></ion-list>'),e.put("plugins/es/templates/common/item_comment.html",'<ng-init ng-init="level = level + 1"><a name="{{::comment.id|formatHash}}"></a><ion-item id="comment-{{::comment.id|formatHash}}" class="card card-comment card-avatar stable-900-bg item-text-wrap no-padding" ng-class="::{\'in done\': comment.isnew}"><div class="card-header padding-left" ng-if="comment.parent && !hideParent"><h5 class="gray underline"><ng-if ng-if="!comment.parent.issuer">{{\'COMMENTS.REPLY_TO_DELETED_COMMENT\'|translate}}</ng-if><ng-if ng-if="comment.parent.issuer"><a ng-click="toggleExpandedParent(comment, $index)">{{\'COMMENTS.REPLY_TO_LINK\'|translate}}<ng-if ng-if="::comment.parent.uid">{{::comment.parent.name||comment.parent.uid}}</ng-if><ng-if ng-if="::!comment.parent.uid"><i class="ion-key"></i> {{::comment.parent.name|| (comment.parent.issuer|formatPubkey) }}</ng-if></a><i ng-class="{\'ion-arrow-down-b\': !comment.expandedParent[$index], \'ion-arrow-up-b\': comment.expandedParent[$index]}"></i></ng-if></h5><div class="padding-left" ng-if="comment.expandedParent[$index]"><div class="card card-avatar card-avatar-small stable-bg item-text-wrap no-padding in done"><ng-include ng-init="comment = comment.parent" src="\'plugins/es/templates/common/item_comment_content.html\'"></ng-include></div></div></div><ng-include src="\'plugins/es/templates/common/item_comment_content.html\'"></ng-include><div class="card-footer gray"><small class="underline"><a ng-click="share($event, comment, $index)">{{comment.creationTime | formatFromNow}}</a><ng-if ng-if="comment.replyCount">| <a class="dark" ng-click="toggleExpandedReplies(comment, $index)">{{\'COMMENTS.REPLY_COUNT\'|translate:comment}}</a> <i ng-class="{\'ion-arrow-down-b\': !comment.showReplies, \'ion-arrow-up-b\': comment.showReplies}"></i></ng-if></small><div class="pull-right"><a class="ion-android-share-alt" ng-click="share($event, comment)"></a> <a class="ion-edit" ng-if="isUserPubkey(comment.issuer)" ng-click="edit(comment)"></a> <a class="ion-trash-a" ng-if="isUserPubkey(comment.issuer)" ng-click="remove(comment, $index)"></a> <a class="ion-reply" ng-click="reply(comment)">{{::\'COMMENTS.REPLY\'|translate}}</a></div></div></ion-item><div ng-if="comment.expandedReplies[$index]" class="padding-left card-avatar-small expanded" ng-init="hideParent=true"><ng-include ng-repeat="comment in comment.replies track by comment.id" src="\'plugins/es/templates/common/item_comment.html\'"></ng-include></div></ng-init>'),e.put("plugins/es/templates/common/item_comment_content.html",'<div class="item item-avatar done in"><span class="avatar" ng-if="::!comment.avatar" ng-class="::{\'avatar-member\': comment.uid, \'avatar-wallet\': !comment.uid}"></span> <span class="avatar" ng-if="::comment.avatar" style="background-image: url({{::comment.avatar.src}})"></span> <a class="pull-left" ui-sref="app.wot_identity({pubkey:comment.issuer, uid: comment.uid})"><span class="positive" ng-if="::comment.uid">{{::comment.name||comment.uid}} </span><span ng-if="::!comment.uid" class="gray"><i class="icon ion-key gray"></i> {{::comment.name || (comment.issuer|formatPubkey)}} </span></a>&nbsp; <span trust-as-html="comment.html"></span></div>'),e.put("plugins/es/templates/common/item_location_search.html",'<div class="item no-padding"><div class="item-input"><i class="icon ion-location placeholder-icon"></i> <input type="text" placeholder="{{(options.location.help||\'LOCATION.SEARCH_HELP\')|translate}}" ng-model-options="{ debounce: 350 }" ng-model="search.location" ng-keydown="onKeydown($event)" ng-change="onLocationChanged()" ng-blur="hideDropdown()"></div></div><ul class="item no-padding list dropdown-list" ng-if="locations" scroll="true"><div ng-if="!locations.length" class="item padding assertive"><span translate>COMMON.SEARCH_NO_RESULT</span></div><a ng-repeat="res in locations" class="item item-border-large item-text-wrap ink done in {{res.selected && \'active\' || \'\'}}" ng-class="::{\'item-divider\': !res.address, \'item-icon-left\': res.address}" ng-click="::res.address ? selectLocation(res) : false"><h4 class="text-italic" ng-if="::!res.address" ng-bind-html="res.name"></h4><ng-if ng-if="::res.address"><i class="icon ion-location"></i><h3 ng-if="res.address.road">{{::res.address.road}}</h3><h3><span ng-if="res.address.postcode">{{::res.address.postcode}}</span> {{::res.address.city||res.address.village}} <span class="gray">| {{::res.address.country}}</span></h3><h5 class="gray">{{\'LOCATION.MODAL.POSITION\'|translate:res }}</h5></ng-if></a></ul>'),e.put("plugins/es/templates/common/modal_category.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title">{{ (ctrl.title || \'COMMON.CATEGORIES\') | translate}}</h1></ion-header-bar><ion-content class="categoryModal"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list"><label class="item item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" placeholder="{{\'COMMON.CATEGORY_SEARCH_HELP\'|translate}}" ng-model="ctrl.searchText" ng-model-options="{ debounce: 350 }" ng-change="ctrl.doSearch()"></label><div ng-repeat="cat in categories" class="item item-category item-text-wrap" ng-class="{\'item-divider\': !cat.parent}" ng-click="cat.parent ? closeModal(cat) : false"><h2 ng-bind-html="cat.name"></h2></div></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/common/modal_edit_avatar.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs visible-sm" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>PROFILE.MODAL_AVATAR.TITLE</h1><button class="button button-clear icon-right visible-xs" ng-click="doCrop()" ng-disabled="formData.imageCropStep == 1" ng-if="formData.imageCropStep <= 2"><span translate>COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-click="closeModal(formData.result)" ng-if="formData.imageCropStep == 3"><i class="icon ion-android-done"></i></button></ion-header-bar><ion-content class="modal-avatar padding"><div ng-show="formData.imageCropStep == 1"><p translate>PROFILE.MODAL_AVATAR.SELECT_FILE_HELP</p><div class="item card text-center padding ink" ng-click="openFileSelector()"><i class="ion-image stable" style="font-size:150px"></i> <b class="ion-plus gray" style="position:relative; font-size:80px; top:-51px; right: 19px"></b><p translate>PROFILE.MODAL_AVATAR.BTN_SELECT_FILE</p></div><input type="file" name="fileInput" accept="image/*" id="fileInput" onchange="angular.element(this).scope().fileChanged(event)" style="visibility:hidden; position:absolute"></div><div ng-show="formData.imageCropStep == 2"><p translate>PROFILE.MODAL_AVATAR.RESIZE_HELP</p><div class="item card text-center padding ink"><image-crop data-height="200" data-width="200" data-shape="circle" data-step="formData.imageCropStep" src="formData.imgSrc" data-result="formData.result" data-result-blob="formData.resultBlob" crop="formData.initCrop" padding="150" max-size="1024"></image-crop></div></div><div ng-show="formData.imageCropStep == 3"><p translate>PROFILE.MODAL_AVATAR.RESULT_HELP</p><div class="item card padding hero" style="height: 110px"><div class="content"><img class="avatar" ng-src="{{formData.result}}" style="height: 88px; width: 88px"></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="doCrop()" translate ng-disabled="formData.imageCropStep == 1" ng-if="formData.imageCropStep <= 2">COMMON.BTN_NEXT</button> <button class="button button-positive ink" ng-click="closeModal(formData.result)" translate ng-if="formData.imageCropStep == 3">COMMON.BTN_CONTINUE</button></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/common/modal_location.html",'<ion-modal-view class="modal-full-height modal-search-location"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button><h1 class="title" translate="">LOCATION.MODAL.TITLE</h1></ion-header-bar><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><div class="item item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'LOCATION.MODAL.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()"></div><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left" ng-if="!search.loading && search.results"><h4 translate="">COMMON.RESULTS_LIST</h4></div></div><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div ng-if="!search.loading && search.results && (!search.results.length || !search.results[0].address)" class="assertive padding"><span translate="">COMMON.SEARCH_NO_RESULT</span></div><ion-list ng-if="!search.loading" class="padding-top {{::motion.ionListClass}}"><div ng-repeat="res in search.results" class="item item-border-large item-text-wrap ink" ng-class="::{\'item-divider\': !res.address, \'item-icon-left item-icon-right\': res.address}" ng-click="res.address ? closeModal(res) : false"><h4 class="text-italic" ng-if="::!res.address" ng-bind-html="res.name"></h4><ng-if ng-if="::res.address"><i class="icon ion-location"></i><h2 ng-if="res.address.road">{{::res.address.road}}</h2><h3><span ng-if="res.address.postcode">{{::res.address.postcode}}</span> {{::res.address.city||res.address.village}} <span class="gray">| {{::res.address.country}}</span></h3><h5 class="gray">{{\'LOCATION.MODAL.POSITION\'|translate:res }}</h5><i class="icon ion-ios-arrow-right"></i></ng-if></div></ion-list></ion-content><ion-footer-bar class="stable-bg padding-left padding-right block" ng-if="license"><div class="pull-right copyright"><span class="dark">© </span><a class="positive" href="{{license.url}}" target="_blank">{{license.name}}</a></div></ion-footer-bar></ion-modal-view>'),e.put("plugins/es/templates/common/popover_profile_extend.html",'<button ng-if=":state:enable && auth" class="button button-positive button-small ink" ng-click="showEditUserProfile()">{{\'PROFILE.BTN_EDIT\' | translate}}</button>'),e.put("plugins/es/templates/common/popup_report_abuse.html",'<form name="abuseForm" ng-submit=""><div class="list" ng-init="setAbuseForm(abuseForm)"><label class="item item-input" ng-class="{\'item-input-error\': abuseForm.$submitted && abuseForm.comment.$invalid}"><textarea class="padding" style="background-color: transparent" name="comment" type="text" placeholder="{{\'COMMON.REPORT_ABUSE.REASON_HELP\' | translate}}" rows="3" ng-model="abuseData.comment" ng-minlength="8" required></textarea></label><div class="form-errors" ng-if="abuseForm.$submitted && abuseForm.comment.$error" ng-messages="abuseForm.comment.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="item item-toggle item-text-wrap dark"><div class="input-label" translate>COMMON.REPORT_ABUSE.ASK_DELETE</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="abuseData.delete"><div class="track"><div class="handle"></div></div></label></div></div></form>'),e.put("plugins/es/templates/common/view_comments.html",'<form class="comments" ng-controller="ESCommentsCtrl" ng-submit="save()"><div class="item item-divider"><i class="icon ion-chatboxes"></i> <span translate="">COMMENTS.DIVIDER</span> <span class="gray" ng-if="comments.total">({{comments.total}})</span></div><span class="item item-more-comments" ng-if="comments.hasMore"><small><a ng-click="showMore()" translate="">COMMENTS.SHOW_MORE_COMMENTS</a></small></span><div class="padding-right"><ng-repeat ng-repeat="comment in comments.result track by comment.id" ng-include="\'plugins/es/templates/common/item_comment.html\'"></ng-repeat></div><div class="visible-xs visible-sm" style="margin-bottom"><div class="block"><div class="item item-input-inset done in" ng-if="formData.parent"><div class="padding text-right pull-left" translate="">COMMENTS.REPLY_TO</div><br><div class="padding-left expanded"><div class="card card-comment stable-900-bg item-text-wrap no-padding in done"><ng-include ng-if="::formData.parent.message" ng-init="comment = formData.parent" src="\'plugins/es/templates/common/item_comment_content.html\'"></ng-include><span ng-if="::!formData.parent.message" translate="">COMMENTS.DELETED_COMMENT</span><div class="card-footer text-right gray"><div class="pull-right"><a class="ion-close" ng-click="removeParentLink()">{{::\'COMMON.BTN_CANCEL\'|translate}}</a></div></div></div></div></div><div class="item item-input-inset"><div class="item-input-wrapper"><input type="text" id="comment-form-input" style="width: 100%" placeholder="{{\'COMMENTS.COMMENT_HELP\'|translate}}" on-return="save();" ng-model="formData.message"> <button type="submit" class="button button-small button-small-padding button-icon button-dark button-icon gray"><i class="icon ion-android-send"></i></button></div></div></div></div></form>'),e.put("plugins/es/templates/common/view_likes.html",'<div class="likes"><ng-if ng-if="likeData.likes && likeData.likes.total"><span ng-class="{\'gray\': !likeData.likes.wasHitCount, \'positive\': likeData.likes.wasHitCount}"><a title="{{\'COMMON.LIKES_TEXT\'|translate: likeData.likes }}" ng-click="!canEdit && toggleLike($event, {kind: \'like\'})">{{likeData.likes.total}} <i class="icon ion-heart"></i></a></span></ng-if><ng-if ng-if="likeData.abuses && likeData.abuses.total"><span class="gray" ng-if="likeData.likes && likeData.likes.total">&nbsp;|&nbsp;</span> <a ng-class="{\'assertive\': likeData.abuses.wasHitCount}" ng-click="!canEdit && reportAbuse($event)" title="{{\'COMMON.ABUSES_TEXT\'|translate: likeData.abuses }}">{{likeData.abuses.total}} <i class="icon ion-android-warning"></i></a></ng-if></div>'),e.put("plugins/es/templates/common/view_pictures.html",'<div class="item gallery done in" ng-if="pictures && pictures.length>0"><div ng-repeat="picture in pictures" class="item card card-gallery"><div class="ink"><h2 ng-if="picture.title">{{::picture.title}}</h2><img ng-src="{{picture.src}}"></div></div></div>'),e.put("plugins/es/templates/document/item_document.html",'<ion-item id="doc-{{::doc.id}}" class="item item-document item-icon-left ink {{::ionItemClass}} no-padding-top no-padding-bottom" ng-click="selectDocument($event, doc)"><i class="icon ion-document stable" ng-if=":rebind:!doc.avatar"></i> <i class="avatar" ng-if=":rebind:doc.avatar" style="background-image: url(\'{{:rebind:doc.avatar.src}}\')"></i><div class="row no-padding"><div class="col"><h3 class="dark"><i class="ion-locked" ng-if=":rebind:doc.nonce"></i> {{:rebind:doc.time|formatDate}}</h3><h4 class="gray">{{:rebind:\'DOCUMENT.HASH\'|translate}} {{:rebind:doc.hash|formatHash}}</h4></div><div class="col"><h3><a ui-sref="app.wot_identity({pubkey: doc.pubkey, uid: doc.uid})"><span class="gray"><i class="ion-key"></i> {{:rebind:doc.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:doc.uid"><i class="ion-person"></i> {{:rebind:doc.name||doc.uid}}</span></a></h3></div><div class="col"><a ng-if=":rebind:login && doc.pubkey==walletData.pubkey" ng-click="remove($index)" class="gray pull-right" title="{{\'DOCUMENT.LOOKUP.BTN_REMOVE\'|translate}}"><i class="ion-trash-a"></i></a><h3 ng-if=":rebind:doc.recipient"><a ui-sref="app.wot_identity({pubkey: doc.recipient.pubkey, uid: doc.recipient.uid})"><span class="gray"><i class="ion-key"></i> {{:rebind:doc.recipient.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:doc.recipient.uid"><i class="ion-person"></i> {{:rebind:doc.recipient.name||doc.recipient.uid}}</span></a></h3><h4 class="gray" ng-if=":rebind:doc.read_signature"><i class="ion-checkmark"></i> <span translate>DOCUMENT.LOOKUP.READ</span></h4></div></div></ion-item>'),e.put("plugins/es/templates/document/item_document_comment.html",'<ion-item id="doc-{{::doc.id}}" class="item item-document item-document-comment item-icon-left ink {{::ionItemClass}} no-padding-top no-padding-bottom" ng-class="{\'compacted\': compactMode}" ng-click="selectDocument($event, doc)"><i ng-show=":rebind:!compactMode" ng-if=":rebind:!doc.avatar" class="icon ion-ios-chatbubble-outline stable"></i> <i ng-show=":rebind:!compactMode" ng-if=":rebind:doc.avatar" class="avatar" style="background-image: url(\'{{:rebind:doc.avatar.src}}\')"></i><div class="row no-padding"><div class="col"><h4><i class="ion-ios-chatbubble-outline dark"></i> <span class="gray" ng-if=":rebind:doc.name"><i class="ion-person" ng-show=":rebind:!compactMode"></i> {{:rebind:doc.name}}: </span><span class="dark"><i class="ion-quote" ng-if=":rebind:!compactMode"></i> {{:rebind:doc.message|truncText:50}}</span></h4><h4 class="gray"><i class="ion-clock"></i> {{:rebind:doc.time|formatDate}}</h4></div><div class="col"><h3><a ui-sref="app.wot_identity({pubkey: doc.pubkey, uid: doc.name})"></a></h3></div><div class="col" ng-if=":rebind:!compactMode"></div></div></ion-item>'),e.put("plugins/es/templates/document/item_document_page.html",'<ion-item id="doc-{{::doc.id}}" class="item item-document item-icon-left ink {{::ionItemClass}} no-padding-top no-padding-bottom" ng-class="{\'positive-100-bg\': doc.updated}" ng-click="selectDocument($event, doc)"><i ng-if=":rebind:doc.thumbnail" class="avatar" style="background-image: url({{:rebind:doc.thumbnail.src}})"></i> <i ng-if=":rebind:!doc.thumbnail" class="avatar icon dark cion-registry-{{doc.docType}}"></i><div class="row no-padding"><div class="col"><h3 ng-if="doc.title">{{:rebind:doc.title}}</h3><h4><span class="dark" ng-if=":rebind:doc.picturesCount > 1"><i class="ion-camera"></i> {{:rebind:doc.picturesCount}} </span><span class="dark" ng-if=":rebind:doc.city"><i class="ion-location"></i> {{:rebind:doc.city}} </span><span class="gray" ng-if=":rebind:doc.name"><i class="ion-person"></i> {{:rebind:doc.name}}</span></h4></div><div class="col col-33"><small class="gray pull-right"><i class="ion-clock"></i> {{:rebind:doc.time|formatDate}}</small></div></div></ion-item>'),e.put("plugins/es/templates/document/item_document_profile.html",'<ion-item id="doc-{{::doc.id}}" class="item item-document item-icon-left ink {{::ionItemClass}} no-padding-top no-padding-bottom" ng-class="{\'compacted\': compactMode}" ng-click="selectDocument($event, doc)"><i ng-show=":rebind:!compactMode" ng-if=":rebind:doc.avatar" class="avatar" style="background-image: url({{:rebind:doc.avatar.src}})"></i> <i ng-show=":rebind:!compactMode" ng-if=":rebind:!doc.avatar" class="icon ion-person stable"></i><div class="row no-padding"><div class="col"><h4 ng-if=":rebind:doc.title"><i class="ion-person gray"></i> <span class="dark">{{:rebind:doc.title}} </span><span class="gray">{{:rebind:\'DOCUMENT.LOOKUP.HAS_CREATE_OR_UPDATE_PROFILE\' |translate}}</span></h4><h4><span class="dark" ng-if=":rebind:doc.city"><i class="ion-location"></i> {{:rebind:doc.city}} </span><span class="gray"><i class="ion-clock"></i> {{:rebind:doc.time|formatDate}}</span></h4></div><div class="col" ng-if=":rebind:!compactMode"><a ng-if=":rebind:login && doc.pubkey==walletData.pubkey" ng-click="remove($event, $index)" class="gray pull-right" title="{{\'DOCUMENT.LOOKUP.BTN_REMOVE\'|translate}}"><i class="ion-trash-a"></i></a></div></div></ion-item>'),e.put("plugins/es/templates/document/items_documents.html",'<div class="padding gray" ng-if=":rebind:!search.loading && !search.results.length" translate="">COMMON.SEARCH_NO_RESULT</div><ng-repeat ng-repeat="doc in :rebind:search.results track by doc.id" ng-switch="" on="doc.type"><div ng-switch-when="comment"><ng-include src="::\'plugins/es/templates/document/item_document_comment.html\'"></ng-include></div><div ng-switch-when="profile"><ng-include src="::\'plugins/es/templates/document/item_document_profile.html\'"></ng-include></div><div ng-switch-when="record"><ng-include ng-if="doc.index === \'page\'" src="::\'plugins/es/templates/document/item_document_page.html\'"></ng-include><ng-include ng-if="doc.index !== \'page\'" src="::\'plugins/es/templates/document/item_document.html\'"></ng-include></div><div ng-switch-default=""><ng-include src="::\'plugins/es/templates/document/item_document.html\'"></ng-include></div></ng-repeat>'),e.put("plugins/es/templates/document/list_documents.html",'<ion-list class="list" ng-class="::motion.ionListClass"><ng-include src="\'plugins/es/templates/document/items_documents.html\'"></ng-include></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("plugins/es/templates/document/lookup.html",'<ion-view><ion-nav-title><span translate>DOCUMENT.LOOKUP.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'plugins/es/templates/document/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("plugins/es/templates/document/lookup_form.html",'<div class="lookupForm"><div class="item no-padding"><label class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'DOCUMENT.LOOKUP.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearchText()"><div class="helptip-anchor-center"><a id="{{helptipPrefix}}-search-text"></a></div></label></div><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="search.last" translate="">DOCUMENT.LOOKUP.LAST_DOCUMENTS</h4><h4 ng-if="!search.last">{{\'COMMON.RESULTS_LIST\'|translate}}</h4><h5 class="dark" ng-if="!search.loading && search.total"><span translate="COMMON.RESULTS_COUNT" translate-values="{count: search.total}"></span> <small class="gray" ng-if=":rebind:search.took && expertMode">- {{:rebind:\'COMMON.EXECUTION_TIME\'|translate: {duration: search.took} }} </small><small class="gray" ng-if=":rebind:expertMode && search.filters && search.filters.length">- <a ng-click="toggleShowQuery()" ng-if="!showQuery"><span translate="">DOCUMENT.LOOKUP.SHOW_QUERY</span> <i class="icon ion-arrow-down-b gray"></i> </a><a ng-click="toggleShowQuery()" ng-if="showQuery"><span translate="">DOCUMENT.LOOKUP.HIDE_QUERY</span> <i class="icon ion-arrow-up-b gray"></i></a></small></h5><h5 class="gray" ng-if="search.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner><span translate="">COMMON.SEARCHING</span><br></h5></div></div><div class="item no-border no-padding" ng-if=":rebind:search.filters && search.filters.length && expertMode"><small class="no-padding no-margin" ng-if="showQuery"><span class="gray text-wrap dark">{{:rebind:search.query}}</span></small></div><ion-list class="list" ng-class="::motion.ionListClass"><ng-include src="\'plugins/es/templates/document/items_documents.html\'"></ng-include></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll></div>'),e.put("plugins/es/templates/document/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>DOCUMENT.LOOKUP.POPOVER_ACTIONS.TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left assertive ink" ng-class="{\'gray\': !search.total}" ng-click="removeAll()"><i class="icon ion-trash-a"></i> {{\'DOCUMENT.LOOKUP.POPOVER_ACTIONS.REMOVE_ALL\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/group/edit_group.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs" ng-if="id" ng-bind-html="formData.title"></span> <span class="visible-xs" ng-if="!loading && !id" translate="">GROUP.EDIT.TITLE_NEW</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear visible-xs visible-sm" ng-class="{\'ion-android-send\':!id, \'ion-android-done\': id}" ng-click="save()"></button></ion-nav-buttons><ion-content scroll="true"><div class="row no-padding"><div class="col"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><form name="recordForm" novalidate="" ng-submit="save()"><div class="list" ng-class="motion.ionListClass" ng-init="setForm(recordForm)"><div class="item hidden-xs"><h1 ng-if="id" ng-bind-html="formData.title"></h1><h1 ng-if="!id" translate="">GROUP.EDIT.TITLE_NEW</h1><h2 class="balanced" ng-if="!id"><i class="icon ion-android-people"></i> <i class="icon ion-android-lock" ng-if="formData.type==\'managed\'"></i> {{\'GROUP.TYPE.ENUM.\'+formData.type|upper|translate}}</h2></div><div class="item" ng-if="id"><h4 class="gray"><i class="icon ion-calendar"></i> {{\'COMMON.LAST_MODIFICATION_DATE\'|translate}}&nbsp;{{formData.time | formatDate}}</h4><div class="badge badge-balanced badge-editable" ng-click="showRecordTypeModal()">{{\'GROUP.TYPE.ENUM.\'+formData.type|upper|translate}}</div></div><ng-include src="\'plugins/es/templates/common/edit_pictures.html\'"></ng-include><div class="item item-divider" translate="">GROUP.GENERAL_DIVIDER</div><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><span class="input-label" translate="">GROUP.EDIT.RECORD_TITLE</span> <input type="text" placeholder="{{\'GROUP.EDIT.RECORD_TITLE_HELP\'|translate}}" name="title" id="group-record-title" ng-model="formData.title" ng-minlength="3" ng-required="true"></div><div class="form-errors" ng-if="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="item item-input item-floating-label"><span class="input-label" translate="">GROUP.EDIT.RECORD_DESCRIPTION</span><textarea placeholder="{{\'GROUP.EDIT.RECORD_DESCRIPTION_HELP\'|translate}}" ng-model="formData.description" rows="8" cols="10">\n                </textarea></div><ng-include src="\'plugins/es/templates/common/edit_socials.html\'" ng-controller="ESSocialsEditCtrl"></ng-include></div></form></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/group/item_group.html",'<a name="group-{{:rebind:group.hash}}"></a><div id="group-{{:rebind:group.hash}}" class="item item-icon-right item-avatar {{::ionItemClass}} ink" ng-click="select(group)"><i class="item-image avatar" style="background-image: url({{::group.avatar.src}})" ng-if="group.avatar"></i> <i class="item-image icon ion-android-people" ng-if="!group.avatar"></i> <i class="item-image icon-secondary ion-android-lock" ng-if="!group.avatar" style="left: 20px; top: 17px; font-size: 19px; color: #d9d9d9"></i><h2 ng-bind-html=":rebind:group.title"></h2><h4 class="gray pull-right"><i class="ion-clock"></i> {{:rebind:\'GROUP.CREATED_TIME\'|translate: group }}</h4><h4 class="dark pull-left" ng-if=":rebind:group.membersCount"><i class="dark ion-person"></i> <span class="dark">+{{:rebind:group.membersCount}}</span></h4><i class="icon ion-ios-arrow-right"></i></div>'),e.put("plugins/es/templates/group/items_groups.html",'<div class="padding gray" ng-if=":rebind:!search.loading && !search.results.length" translate="">COMMON.SEARCH_NO_RESULT</div><ng-repeat ng-repeat="group in :rebind:search.results" ng-include="\'plugins/es/templates/group/item_group.html\'"></ng-repeat>'),e.put("plugins/es/templates/group/list.html",'<ion-list class="{{::motion.ionListClass}}"><ion-item ng-repeat="notification in search.results" class="item-border-large item-text-wrap ink item-avatar" ng-class="{\'unread\': !notification.read}" ng-click="select(notification)"><i ng-if="!notification.avatar" class="item-image icon {{::notification.avatarIcon}}"></i> <i ng-if="notification.avatar" class="item-image avatar" style="background-image: url({{::notification.avatar.src}})"></i><h3 trust-as-html="notification.message | translate:notification"></h3><h4><i class="icon {{notification.icon}}"></i>&thinsp;<span class="dark">{{notification.time|formatFromNow}}</span> <span class="gray">| {{notification.time|formatDate}}</span></h4></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("plugins/es/templates/group/lookup.html",'<ion-view class="view-group"><ion-nav-title><span translate>GROUP.LOOKUP.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'plugins/es/templates/group/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("plugins/es/templates/group/lookup_form.html",'<div class="lookupForm"><label class="item item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'GROUP.LOOKUP.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearchText()"><div class="helptip-anchor-center"><a id="helptip-group-search-text"></a></div></label><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="search.type==\'open\'" translate="">GROUP.LOOKUP.OPEN_RESULTS_LIST</h4><h4 ng-if="search.type==\'last\'" translate="">GROUP.LOOKUP.LAST_RESULTS_LIST</h4><h4 ng-if="search.type==\'managed\'" translate="">GROUP.LOOKUP.MANAGED_RESULTS_LIST</h4><h4 ng-if="search.type==\'text\'">{{\'COMMON.RESULTS_LIST\'|translate}}</h4><h5 class="dark" ng-if="!search.loading && search.total"><span translate="COMMON.RESULTS_COUNT" translate-values="{count: search.total}"></span> <small class="gray" ng-if=":rebind:search.took && expertMode">- {{:rebind:\'COMMON.EXECUTION_TIME\'|translate: {duration: search.took} }}</small></h5><h5 class="gray" ng-if="search.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner><span translate="">COMMON.SEARCHING</span><br></h5></div></div><div class="list {{::motion.ionListClass}}" ng-if="!$scope.search.loading"><ng-include src="\'plugins/es/templates/group/items_groups.html\'"></ng-include></div><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll></div>'),e.put("plugins/es/templates/group/lookup_item.html",'<i class="item-image avatar" style="background-image: url({{::item.avatar.src}})" ng-if="item.avatar"></i> <i class="item-image icon ion-android-people" ng-if="!item.avatar"></i> <i class="item-image icon-secondary ion-android-lock" ng-if="!item.avatar" style="left: 20px; top: 17px; font-size: 19px; color: #d9d9d9"></i><h2 ng-bind-html=":rebind:item.title"></h2><h4 class="gray pull-right"><i class="ion-clock"></i> {{:rebind:\'GROUP.CREATED_TIME\'|translate: item }}</h4><h4 class="dark pull-left" ng-if=":rebind:item.membersCount"><i class="dark ion-person"></i> <span class="dark">+{{:rebind:item.membersCount}}</span></h4>'),e.put("plugins/es/templates/group/modal_record_type.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>GROUP.TYPE.TITLE</h1></ion-header-bar><ion-content class="lookupForm padding"><h3 translate>GROUP.TYPE.SELECT_TYPE</h3><div class="list"><div class="item item-complex card stable-bg item-icon-left ink" ng-click="closeModal(\'open\')"><div class="item-content item-text-wrap"><i class="item-image icon ion-android-people dark"></i><h2 translate>GROUP.TYPE.OPEN_GROUP</h2><h4 class="gray" translate>GROUP.TYPE.OPEN_GROUP_HELP</h4></div></div><div class="item item-complex card stable-bg item-icon-left ink" ng-click="closeModal(\'managed\')"><div class="item-content item-text-wrap"><i class="item-image icon ion-android-people dark"></i> <i class="icon-secondary ion-android-lock dark" style="left: 10px; top: -8px"></i><h2 translate>GROUP.TYPE.MANAGED_GROUP</h2><h4 class="gray" translate>GROUP.TYPE.MANAGED_GROUP_HELP</h4></div></div></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/group/view_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>GROUP.VIEW.MENU_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="showSharePopover($event)"><i class="icon ion-android-share-alt"></i> {{\'COMMON.BTN_SHARE\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/group/view_record.html",'<ion-view left-buttons="leftButtons"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-bar button-icon button-clear visible-xs visible-sm" ng-click="edit()" ng-if="canEdit"><i class="icon ion-android-create"></i></button> <button class="button button-bar button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true"><div class="positive-900-bg hero"><div class="content" ng-if="!loading"><i class="avatar cion-registry-{{formData.type}}" ng-if="!formData.avatar"></i> <i class="avatar" style="background-image: url({{::formData.avatar.src}})" ng-if="formData.avatar"></i><h3 ng-bind-html="formData.title"></h3><h4>&nbsp;</h4></div><h4 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><div class="row no-padding-xs no-padding-sm"><div class="col list item-text-wrap no-padding-xs no-padding-sm" ng-class="::motion.ionListClass"><div class="item"><h2 class="gray"><a ng-if="formData.city" ui-sref="app.groups({location:formData.city})"><i class="icon ion-location"></i> <span ng-bind-html="formData.city"></span> </a><span ng-if="formData.city && formData.type">&nbsp;|&nbsp;</span> <a ng-if="formData.type" ui-sref="app.groups({type:formData.type})"><i class="icon ion-flag"></i> {{\'GROUP.TYPE.ENUM.\'+formData.type|upper|translate}}</a></h2><h4><i class="icon ion-clock" ng-if="formData.time"></i> <span translate="">COMMON.SUBMIT_BY</span> <a ng-class="{\'positive\': issuer.uid, \'gray\': !issuer.uid}" ui-sref="app.wot_identity({pubkey:issuer.pubkey, uid: issuer.name||issuer.uid})"><ng-if ng-if="issuer.uid"><i class="icon ion-person"></i> {{::issuer.name||issuer.uid}}</ng-if><span ng-if="!issuer.uid"><i class="icon ion-key"></i> {{issuer.pubkey|formatPubkey}} </span></a><span>{{formData.time|formatFromNow}}<h4 class="gray hidden-xs">| {{formData.time | formatDate}}</h4></span></h4></div><a id="group-share-anchor-{{id}}"></a><ion-item><h2><span trust-as-html="formData.description"></span></h2></ion-item><ion-item><h4 ng-if="formData.address"><span class="gray" translate="">REGISTRY.VIEW.LOCATION</span> <a class="positive" target="_blank" href="https://www.google.fr/maps/?q={{formData.address}},%20{{formData.city}}"><span ng-bind-html="formData.address"></span> <span ng-if="formData.city">- </span><span ng-bind-html="formData.city"></span></a></h4></ion-item><ng-if ng-if="formData.socials && formData.socials.length>0"><ion-item class="item-icon-left" type="no-padding item-text-wrap" ng-repeat="social in formData.socials track by social.url" id="social-{{social.url|formatSlug}}"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}}</p><h2><a href="{{social.url}}" ng-if="social.type != \'email\'" target="_blank">{{social.url}}</a> <a href="mailto:{{social.url}}" ng-if="social.type == \'email\'">{{social.url}}</a></h2></ion-item></ng-if><div class="lazy-load"><ng-include src="\'plugins/es/templates/common/view_pictures.html\'"></ng-include><span class="item item-divider" ng-if="formData.pubkey"><span translate="">REGISTRY.TECHNICAL_DIVIDER</span></span><div class="item item-icon-left item-text-wrap ink" ng-if="formData.pubkey" copy-on-click="{{::formData.pubkey}}"><i class="icon ion-key"></i> <span translate="">REGISTRY.EDIT.RECORD_PUBKEY</span><h4 class="dark">{{::formData.pubkey}}</h4></div><ng-include src="\'plugins/es/templates/common/view_comments.html\'"></ng-include></div></div></div></ion-content><button class="button button-fab button-fab-bottom-right button-assertive icon ion-android-send visible-xs visible-sm" ng-if="formData.pubkey && !isUserPubkey(formData.pubkey)" ng-click="showTransferModal({pubkey: formData.pubkey, uid: formData.title})"></button></ion-view>'),e.put("plugins/es/templates/invitation/list_invitation.html",'<ion-list class="{{::motion.ionListClass}}"><ion-item ng-repeat="invitation in search.results" class="item-border-large item-text-wrap item-avatar"><i ng-if="::!invitation.avatar" class="item-image icon {{::invitation.avatarIcon}}"></i> <i ng-if="::invitation.avatar" class="item-image avatar" style="background-image: url({{::invitation.avatar.src}})"></i><h3 trust-as-html="invitation.message | translate:invitation"></h3><h3 class="dark text-italic" ng-if="invitation.comment"><i class="icon ion-quote"></i> <span ng-bind-html="invitation.comment"></span></h3><h4><i class="icon {{::invitation.icon}}"></i> <span class="dark" ng-if="::invitation.issuer" trust-as-html="\'INVITATION.SUGGESTED_BY\' | translate:invitation"></span> <span class="dark">{{::invitation.time|formatFromNow}}</span> <span class="gray">| {{::invitation.time|formatDate}}</span></h4><div class="block text-right"><button class="button button-positive button-small button-small-padding" ng-click="accept(invitation)" ng-if="::invitation.state" translate>{{::(invitation.okText||\'COMMON.BTN_SHOW\') |translate}}</button> <button class="button button-stable button-small button-small-padding" ng-click="delete($index)" translate>INVITATION.BTN_DELETE</button></div></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("plugins/es/templates/invitation/modal_new_invitation.html",'<ion-modal-view id="transfer" class="modal-invitation modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>INVITATION.NEW.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSend()"></button></ion-header-bar><ion-content scroll="true"><ng-include src="\'plugins/es/templates/invitation/new_invitation_form.html\'"></ng-include></ion-content></ion-modal-view>'),e.put("plugins/es/templates/invitation/new_invitation_form.html",'<form name="invitationForm" novalidate="" ng-submit="doSend()"><div class="list" ng-init="setForm(invitationForm)"><a class="item item-icon-right gray ink" ng-class="{\'disable-pointer-events\': recipients.length, \'item-input-error\': form.$submitted && !recipients.length}" ng-click="showSelectRecipientModal($event)"><span class="gray" translate="">INVITATION.NEW.RECIPIENTS</span> <span class="item-note"><span class="hidden-xs" ng-if="!recipients.length" translate="">INVITATION.NEW.RECIPIENTS_HELP</span><ng-repeat ng-repeat="identity in recipients track by identity.id" class="button button-small button-text button-stable button-icon-event ink" ng-class="{\'button-text-positive\': identity.selected}"><ng-bind-html ng-bind-html="identity.name||identity.uid||(identity.pubkey|formatPubkey)"></ng-bind-html><b class="enable-pointer-events ion-close" ng-click="removeRecipient($index, $event)">&nbsp;&nbsp;</b></ng-repeat></span><i class="gray icon enable-pointer-events ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !recipients.length"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><a class="item item-icon-right gray ink" ng-class="{\'disable-pointer-events\': suggestions.length, \'item-input-error\': form.$submitted && !suggestions.length}" ng-click="showSelectSuggestionModal($event)"><span class="gray enable-pointer-events" translate="">INVITATION.NEW.SUGGESTION_IDENTITIES</span> <span class="item-note"><span class="hidden-xs" ng-if="!suggestions.length" translate="">INVITATION.NEW.SUGGESTION_IDENTITIES_HELP</span><ng-repeat ng-repeat="identity in suggestions track by identity.id" class="button button-small button-text button-stable button-icon-event ink" ng-class="{\'button-text-positive\': identity.selected}"><ng-bind-html ng-bind-html="identity.name||identity.uid||(identity.pubkey|formatPubkey)"></ng-bind-html><b class="enable-pointer-events ion-close" ng-click="removeSuggestion($index, $event)">&nbsp;&nbsp;</b></ng-repeat></span><i class="gray icon enable-pointer-events ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !suggestions.length"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-content item-toggle dark visible-xs visible-sm"><span class="input-label gray">{{\'TRANSFER.BTN_ADD_COMMENT\' | translate}}</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useComment"><div class="track"><div class="handle"></div></div></label></div><label class="item item-input item-floating-label visible-xs visible-sm" ng-if="formData.useComment" ng-class="{\'item-input-error\': form.$submitted && form.comment.$invalid}"><span class="input-label">{{\'TRANSFER.COMMENT\' | translate}}</span><textarea placeholder="{{\'TRANSFER.COMMENT_HELP\' | translate}}" name="comment" ng-model="formData.comment" ng-maxlength="255">\n        </textarea></label><div class="form-errors" ng-show="form.$submitted && form.comment.$error" ng-messages="form.comment.$error"><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.FIELD_ACCENT"></span></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" tabindex="-1" ng-click="cancel()" type="button" translate="">COMMON.BTN_CANCEL</button> <button class="button button-positive ink" tabindex="8" type="submit" translate="">TRANSFER.BTN_SEND</button></div></form>'),e.put("plugins/es/templates/invitation/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-class="{\'gray\': !search.results.length, \'assertive\': search.results.length}" ng-click="deleteAll()"><i class="icon ion-trash-a"></i> <span translate>INVITATION.BTN_DELETE_ALL</span></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/invitation/popover_invitation.html",""),e.put("plugins/es/templates/invitation/view_invitations.html",'<ion-view left-buttons="leftButtons" class="view-invitation"><ion-nav-title>{{\'INVITATION.LIST.TITLE\' | translate}}</ion-nav-title><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding gray" ng-if="!search.loading && !search.results.length" translate="">INVITATION.NO_RESULT</div><ng-include src="\'plugins/es/templates/invitation/list_invitation.html\'"></ng-include></div></div></ion-content><button id="fab-new-invitation" class="button button-fab button-fab-bottom-right button-assertive icon ion-android-send visible-xs visible-sm spin" ng-click="showNewInvitationModal()"></button></ion-view>'),e.put("plugins/es/templates/join/modal_join_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'select-account-type\'"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-class="{ activated: accountTypeMember != null && !accountTypeMember }" ng-click="selectAccountType(\'organization\')"><div class="item-content item-text-wrap"><i class="item-image icon dark cion-registry-association"></i><h2 translate>ACCOUNT.NEW.ORGANIZATION_ACCOUNT</h2><h4 class="gray" translate>ACCOUNT.NEW.ORGANIZATION_ACCOUNT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'last-slide\'"><ion-slide-page><ion-content class="has-header" scroll="false"><p>TOTO</p></ion-content></ion-slide-page></ng-if>'),e.put("plugins/es/templates/message/compose.html",'<ion-view left-buttons="leftButtons" id="composeMessage"><ion-nav-title><span class="visible-xs visible-sm" nf-if="!isReply" translate="">MESSAGE.COMPOSE.TITLE</span> <span class="visible-xs visible-sm" nf-if="isReply" translate="">MESSAGE.COMPOSE.TITLE_REPLY</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSend()"></button></ion-nav-buttons><ion-content scroll="true"><div class="row"><div class="col"><ng-include src="\'plugins/es/templates/message/compose_form.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/message/compose_form.html",'<form name="messageForm" novalidate="" ng-submit="doSend()"><div class="list no-margin" ng-init="setForm(messageForm)"><a class="item item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.destPub}" ng-click="showWotLookupModal()"><span class="gray" translate>MESSAGE.COMPOSE.TO</span> <span class="badge badge-royal" ng-if="destUid"><i class="ion-person"></i> {{destName||destUid}}</span>&nbsp; <span class="badge badge-stable" ng-if="!destUid && destPub">{{destName}} <span ng-if="!destName"><i class="ion-key"></i>{{destPub | formatPubkey}}</span> </span>&nbsp; <i class="gray icon ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !formData.destPub"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><ion-item class="item-text-wrap ink" ng-class="{\'item-icon-right\': enableSelectWallet}" ng-click="showSelectWalletModal()"><span class="gray" translate>TRANSFER.FROM</span> <span class="badge badge-balanced animate-fade-in animate-show-hide" ng-show="!loading"><ion-spinner icon="android" ng-if="!walletData.pubkey"></ion-spinner><span ng-if="walletData.pubkey && !walletData.isMember"><i class="ion-key"></i> {{walletData.pubkey| formatPubkey}}&nbsp;&nbsp; </span><span ng-if="walletData.isMember"><i class="ion-person"></i> {{walletData.name||walletData.uid}} </span></span><i class="gray icon ion-ios-arrow-right" ng-if="enableSelectWallet"></i></ion-item><div class="item item-input" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><input type="text" autocomplete="off" placeholder="{{\'MESSAGE.COMPOSE.OBJECT_HELP\' | translate}}" name="title" ng-model="formData.title" ng-maxlength="256" required> <span class="badge item-note" ng-if="isReply">({{\'MESSAGE.COMPOSE.OBJECT\' | translate}})</span></div><div class="form-errors" ng-show="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="maxlength"><span translate="MESSAGE.ERROR.MESSAGE_CONTENT_TOO_LONG" translate-values="{maxLength: 256}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.content.$invalid}"><span class="input-label">{{\'MESSAGE.COMPOSE.MESSAGE\' | translate}}</span><textarea placeholder="{{\'MESSAGE.COMPOSE.MESSAGE_HELP\' | translate}}" autocomplete="off" name="content" ng-model="formData.content" rows="8" ng-maxlength="5000">\n        </textarea></div><div class="form-errors" ng-show="form.$submitted && form.content.$error" ng-messages="form.content.$error"><div class="form-error" ng-message="maxlength"><span translate="MESSAGE.ERROR.MESSAGE_CONTENT_TOO_LONG" translate-values="{maxLength: 5000}"></span></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="cancel()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" type="submit" ng-disabled="sending" translate>TRANSFER.BTN_SEND</button></div><div class="list no-margin"><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i><h4 class="positive" translate>MESSAGE.COMPOSE.ENCRYPTED_HELP</h4></div></div></form>'),e.put("plugins/es/templates/message/list.html",'<div class="padding gray" ng-if="!search.loading && !search.results.length"><span ng-if="search.type==\'last\'">{{ (\'MESSAGE.NO_MESSAGE_\' + type) | upper | translate }}</span> <span ng-if="search.type==\'text\'" translate="">COMMON.SEARCH_NO_RESULT</span></div><ion-list class="{{::motion.ionListClass}}" can-swipe="$root.device.enable"><ion-item class="item item-border-large item-avatar item-icon-right ink" ng-repeat="msg in :rebind:search.results track by msg.id" ng-click="select(msg, $event)"><i ng-if="::!msg.avatar" class="item-image icon" ng-class="{\'ion-person\': msg.uid, \'ion-email\': !msg.uid}"></i> <i ng-if="::msg.avatar" class="item-image avatar" style="background-image: url({{::msg.avatar.src}})"></i><h4 class="pull-right visible-xs visible-sm dark"><i class="ion-clock"></i> {{::msg.time|formatFromNow}}</h4><h3><a class="positive" ng-if="::msg.name||msg.uid" ui-sref="app.wot_identity({pubkey:msg.issuer, uid:msg.name||msg.uid})"><i class="ion-person"></i> {{::msg.name||msg.uid}} </a><a class="gray" ng-if="::!msg.name && !msg.uid" ui-sref="app.wot_identity({pubkey:msg.issuer})"><i class="ion-key"></i> {{::msg.issuer|formatPubkey}}</a></h3><h2 ng-class="{\'unread\': !msg.read}" ng-bind-html="::msg.title"></h2><p ng-bind-html="::msg.summary||msg.content"></p><i class="icon ion-ios-arrow-right"></i><ion-option-button class="button-stable" ng-click="showReplyModal($index)" translate="">MESSAGE.BTN_REPLY</ion-option-button><ion-option-button class="button-assertive" ng-click="delete($index)" translate="">COMMON.BTN_DELETE</ion-option-button></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" icon="ion-loading-c" on-infinite="showMore()" distance="10%"></ion-infinite-scroll>'),e.put("plugins/es/templates/message/lookup.html",'<ion-view left-buttons="leftButtons" class="view-messages"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'MESSAGE.LIST.INBOX\'|translate}}" icon="ion-archive" ui-sref="app.user_message.tab_inbox"><ion-nav-view name="tab_inbox"></ion-nav-view></ion-tab><ion-tab title="{{\'MESSAGE.LIST.OUTBOX\'|translate}}" icon="ion-paper-airplane" ui-sref="app.user_message.tab_outbox"><ion-nav-view name="tab_outbox"></ion-nav-view></ion-tab></ion-tabs></ion-view>'),
+e.put("plugins/es/templates/message/lookup_by_id.html",'<ion-view left-buttons="leftButtons" class="view-messages"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'MESSAGE.LIST.INBOX\'|translate}}" icon="ion-archive" ui-sref="app.user_messages_by_id.tab_inbox"><ion-nav-view name="tab_inbox"></ion-nav-view></ion-tab><ion-tab title="{{\'MESSAGE.LIST.OUTBOX\'|translate}}" icon="ion-paper-airplane" ui-sref="app.user_messages_by_id.tab_outbox"><ion-nav-view name="tab_outbox"></ion-nav-view></ion-tab></ion-tabs></ion-view>'),e.put("plugins/es/templates/message/lookup_lg.html",'<ion-view left-buttons="leftButtons" class="view-messages"><ion-nav-title><span translate="">MESSAGE.LIST.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear visible-xs visible-sm" ng-click="showActionsPopover($event)"><i class="icon ion-android-more-vertical"></i></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh(true, $event)"></ion-refresher><div class="item no-padding"><div class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'MESSAGE.LIST.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()" on-return="doSearch()" select-on-click=""><div class="helptip-anchor-center"><a id="helptip-message-search-text"></a></div></div></div><div class="padding-top hidden-xs" style="display: block; height: 60px"><div class="pull-left" ng-if="!search.loading"><ng-if ng-if="search.type==\'last\'"><h4>{{ (\'MESSAGE.LIST.LAST_\' + type) | upper | translate}}</h4></ng-if><ng-if ng-if="search.type==\'text\'"><h4 translate="">COMMON.RESULTS_LIST</h4></ng-if></div></div><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ng-include src="\'plugins/es/templates/message/list.html\'"></ng-include></ion-content><button id="fab-add-message-record" class="button button-fab button-fab-bottom-right button-assertive icon ion-compose visible-xs visible-sm spin" ng-click="showNewMessageModal()"></button></ion-view>'),e.put("plugins/es/templates/message/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>MESSAGE.LIST.POPOVER_ACTIONS.TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-class="{\'gray\': (type != \'inbox\' && !messages.length)}" ng-click="markAllAsRead()"><i class="icon ion-android-checkmark-circle"></i> {{\'COMMON.NOTIFICATIONS.MARK_ALL_AS_READ\' | translate}} </a><a class="item item-icon-left assertive ink" ng-class="{\'gray\': !messages.length}" ng-click="deleteAll()"><i class="icon ion-trash-a"></i> {{\'MESSAGE.LIST.POPOVER_ACTIONS.DELETE_ALL\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/message/modal_compose.html",'<ion-modal-view id="composeMessage" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" ng-if="!isReply" translate>MESSAGE.COMPOSE.TITLE</h1><h1 class="title" ng-if="isReply" translate>MESSAGE.COMPOSE.TITLE_REPLY</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSend()"></button></ion-header-bar><ion-content scroll="true"><ng-include src="\'plugins/es/templates/message/compose_form.html\'"></ng-include></ion-content></ion-modal-view>'),e.put("plugins/es/templates/message/popover_message.html",""),e.put("plugins/es/templates/message/view_message.html",'<ion-view left-buttons="leftButtons" class="view-message"><ion-nav-title><span translate="">MESSAGE.VIEW.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true"><div class="row no-padding"><div class="col no-padding"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list animate-fade-slide-in item-text-wrap"><div class="item item-avatar" ng-class="{\'item-avatar\': formData.avatar}"><i ng-if="!formData.avatar" class="item-image" ng-class="{\'ion-person\': formData.uid, \'ion-email\': !formData.uid}"></i> <i ng-if="formData.avatar" class="item-image avatar" style="background-image: url({{::formData.avatar.src}})"></i><h4>{{type == \'inbox\' ? \'MESSAGE.VIEW.SENDER\': \'MESSAGE.VIEW.RECIPIENT\'|translate}} <a class="positive" ui-sref="app.wot_identity({pubkey: (type == \'inbox\') ? formData.issuer : formData.recipient, uid: formData.name||formData.uid})"><span ng-if="formData.uid"><i class="ion-person"></i> {{formData.name||formData.uid}} </span><span ng-if="!formData.uid" class="gray"><i class="ion-key gray"></i> {{formData.name||(formData.issuer|formatPubkey)}}</span></a></h4><h5 class="gray visible-xs visible-sm"><i class="ion-clock"></i> {{formData.time | formatDate}}</h5></div><ion-item class="visible-xs visible-sm"><h1 class="title" ng-bind-html="formData.title"></h1></ion-item><ion-item><p ng-bind-html="formData.html"></p><div class="padding gray" ng-if="!formData.content" translate="">MESSAGE.VIEW.NO_CONTENT</div></ion-item></div></div></div></ion-content><button id="fab-view-message-reply" class="button button-fab button-fab-bottom-right button-calm icon ion-reply visible-xs visible-sm spin" ng-click="showReplyModal()"></button></ion-view>'),e.put("plugins/es/templates/message/view_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left assertive ink" ng-click="delete()"><i class="icon ion-trash-a"></i> {{\'MESSAGE.VIEW.DELETE\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/network/item_content_peer.html",'<i class="icon ion-android-desktop" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" ng-if=":rebind:!peer.avatar"></i> <b class="icon-secondary ion-person" ng-if=":rebind:!peer.avatar" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" style="left: 26px; top: -3px"></b> <i class="avatar" ng-if=":rebind:peer.avatar" style="background-image: url(\'{{:rebind:peer.avatar.src}}\')"></i> <b class="icon-secondary assertive ion-close-circled" ng-if=":rebind:!peer.online" style="left: 37px; top: -10px"></b><div class="row no-padding"><div class="col no-padding"><h3 class="dark">{{:rebind:peer.dns || peer.server}}</h3><h4><span class="gray" ng-if=":rebind:!peer.name"><i class="ion-key"></i> {{:rebind:peer.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:peer.name"><i class="ion-person"></i> {{:rebind:peer.name}} </span><span class="gray">{{:rebind:peer.dns && (\' | \' + peer.server) + (peer.ep.path||\'\') }}</span></h4></div><div class="col col-20 no-padding text-center" ng-if="::!expertMode && search.type != \'offline\'"><div style="min-width: 50px; padding-top: 5px" ng-if=":rebind:peer.docCount.emailSubscription!==undefined"><span ng-if=":rebind:peer.hasEndpoint(\'ES_SUBSCRIPTION_API\')" title="{{\'ES_PEER.EMAIL_SUBSCRIPTION_COUNT\'|translate: peer.docCount }}"><i class="ion-email"></i> {{:rebind:peer.docCount.emailSubscription || \'?\'}}</span></div></div><div class="col col-20 no-padding text-center" ng-if="::expertMode && search.type != \'offline\'"></div><div class="col col-20 no-padding text-center" id="{{$index === 0 ? helptipPrefix + \'-peer-0-block\' : \'\'}}"><span class="badge badge-stable">{{:rebind:peer.docCount.record !== undefined ? (peer.docCount.record|formatInteger) : \'?\'}} <span ng-if=":rebind:!expertMode && peer.docCount.record!==undefined">{{::\'ES_PEER.DOCUMENTS\'|translate|lowercase }} </span></span><span class="badge badge-secondary" ng-class=":rebind:{\'balanced\': peer.hasMainConsensusBlock, \'energized\': peer.hasConsensusBlock, \'ng-hide\': !peer.currentNumber }" ng-if="::expertMode">{{:rebind:\'BLOCKCHAIN.VIEW.TITLE\'|translate: {number:peer.currentNumber} }}</span></div></div>'),e.put("plugins/es/templates/network/items_peers.html",'<div ng-class="::motion.ionListClass" class="no-padding"><div class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-if="::isHttps && expertMode"><small><i class="icon ion-alert-circled"></i> {{::\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></div><div ng-repeat="peer in :rebind:search.results track by peer.id" class="item item-peer item-icon-left ink" ng-class="::ionItemClass" id="{{helptipPrefix}}-peer-{{$index}}" ng-click="selectPeer(peer)" ng-include="\'plugins/es/templates/network/item_content_peer.html\'"></div></div>'),e.put("plugins/es/templates/network/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>PEER.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'member\')"><i class="icon ion-person"></i> {{\'PEER.MEMBERS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'member\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'mirror\')"><i class="icon ion-radio-waves"></i> {{\'PEER.MIRRORS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'mirror\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'offline\')"><i class="icon ion-eye-disabled"></i> {{\'PEER.OFFLINE\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'offline\'"></i></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/network/modal_network.html",'<ion-modal-view id="nodes" class="modal-full-height" cache-view="false"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>PEER.PEER_LIST</h1><div class="buttons buttons-right header-item"><span class="secondary"><button class="button button-clear icon ion-loop button-clear" ng-click="refresh()"></button> <button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></span></div></ion-header-bar><ion-content><div class="list"><div class="padding padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="!enableFilter || !search.type">{{\'PEER.ALL_PEERS\' | translate}} <span ng-if="!search.loading">({{search.results.length}})</span></h4></div><div class="pull-right"><ion-spinner class="icon" icon="android" ng-if="search.loading"></ion-spinner>&nbsp;</div></div><ng-include src="\'plugins/es/templates/network/items_peers.html\'"></ng-include></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/network/popover_endpoints.html",'<ion-popover-view class="popover-endpoints popover-light" style="height: {{(titleKey?30:0)+((!items || items.length &lt;= 1) ? 55 : 3+items.length*52)}}px"><ion-header-bar class="bar bar-header stable-bg" ng-if="titleKey"><div class="title">{{titleKey | translate:titleValues }}</div></ion-header-bar><ion-content scroll="false"><div class="list" ng-class="{\'has-header\': titleKey}"><div class="item item-text-wrap" ng-repeat="item in items"><div class="item-label" ng-if="item.label">{{item.label | translate}}</div><div id="endpoint_{{$index}}" class="badge item-note dark">{{item.value}}</div></div></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/network/popover_network.html",""),e.put("plugins/es/templates/network/popover_peer_info.html",""),e.put("plugins/es/templates/network/view_es_network.html",'<ion-view><ion-nav-title><span translate="">MENU.NETWORK</span>&nbsp; <span translate="">ES_SETTINGS.PLUGIN_NAME</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="refresh()"></button></ion-nav-buttons><ion-content scroll="true" ng-init="enableFilter=true; ionItemClass=\'item-border-large\';"><div class="row responsive-sm responsive-md responsive-lg"><div class="col list col-border-right"><div class="padding padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4><span ng-if="enableFilter && !search.online" translate="">PEER.OFFLINE_PEERS</span> <span ng-if="!enableFilter || search.online" translate="">PEER.ALL_PEERS</span> <span ng-if="search.results.length">({{search.results.length}})</span><ion-spinner ng-if="search.loading" class="icon ion-spinner-small" icon="android"></ion-spinner></h4></div><div class="pull-right"><div class="pull-right" ng-if="enableFilter"><cs-extension-point name="filter-buttons"></cs-extension-point></div></div></div><div id="helptip-network-peers" style="display: block"></div><ng-include src="\'plugins/es/templates/network/items_peers.html\'"></ng-include></div><div class="col col-33" ng-controller="ESLastDocumentsCtrl"><div class="padding padding-xs" style="display: block"><h4 translate="">DOCUMENT.LOOKUP.LAST_DOCUMENTS_DOTS</h4></div><ng-include src="\'plugins/es/templates/document/list_documents.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/network/view_es_peer.html",'<ion-view><ion-nav-title><span translate="">PEER.VIEW.TITLE</span>&nbsp; <span translate="">ES_SETTINGS.PLUGIN_NAME</span></ion-nav-title><ion-content><div class="row no-padding"><div class="col list"><ion-item><h1><span translate="">PEER.VIEW.TITLE</span> <span class="gray">{{node.host}}</span></h1><h2 class="gray"><i class="gray icon ion-android-globe"></i> {{node.ep.dns || node.server}} <span class="gray" ng-if="!loading && node.useSsl"><i class="gray ion-locked"></i> <small>SSL</small> </span><span class="gray" ng-if="!loading && node.useTor"><i class="gray ion-bma-tor-api"></i></span></h2><h3><span class="dark"><i class="icon ion-android-desktop"></i> {{\'PEER.VIEW.OWNER\'|translate}} </span><a class="positive" ng-if="node.name" ui-sref="app.wot_identity({pubkey: node.pubkey, uid: node.name})"><i class="ion-person"></i> {{node.name}} </a><span ng-if="!loading && !node.name"><a class="gray" ui-sref="app.wot_identity({pubkey: node.pubkey})"><i class="ion-key"></i> {{node.pubkey|formatPubkey}}</a></span></h3><h3><a ng-click="openRawPeering($event)"><i class="icon ion-share"></i> {{\'PEER.VIEW.SHOW_RAW_PEERING\'|translate}} </a><span class="gray" ng-if="!isReachable">| </span><a ng-if="!isReachable" ng-click="openRawCurrentBlock($event)"><i class="icon ion-share"></i> <span translate="">PEER.VIEW.SHOW_RAW_CURRENT_BLOCK</span></a></h3></ion-item><div class="item item-divider" translate="">PEER.VIEW.GENERAL_DIVIDER</div><ion-item class="item-icon-left item-text-wrap ink" copy-on-click="{{node.pubkey}}"><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><h4 class="dark text-left">{{node.pubkey}}</h4></ion-item><ion-item class="item item-icon-left item-text-wrap ink" ng-if="isReachable"><i class="icon ion-cube"></i> <span translate="">BLOCKCHAIN.VIEW.TITLE_CURRENT</span><div class="badge badge-calm" ng-if="!loading">{{current.number|formatInteger}}</div></ion-item><ion-item class="item item-icon-left item-text-wrap" ng-if="isReachable"><i class="icon ion-document"></i> <span translate="">ES_PEER.DOCUMENT_COUNT</span><div class="badge badge-stable" ng-if="!loading">{{node.docCount|formatInteger}}</div></ion-item><a class="item item-icon-left item-icon-right item-text-wrap ink" ng-if="isReachable" ui-sref="app.document_search(options.document)"><i class="icon ion-document" style="font-size: 25px"></i> <i class="icon-secondary ion-clock" style="font-size: 18px; left: 33px; top: -12px"></i> <span translate="">DOCUMENT.LOOKUP.LAST_DOCUMENTS</span> <i class="gray icon ion-ios-arrow-right"></i></a><cs-extension-point name="general"></cs-extension-point><div class="item item-divider" ng-hide="loading || !isReachable" translate="">PEER.VIEW.KNOWN_PEERS</div><ion-item class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-show="!loading && !isReachable"><small><i class="icon ion-alert-circled"></i> {{\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></ion-item><div class="item center" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><div class="list no-padding {{::motion.ionListClass}}" ng-if="isReachable"><div ng-repeat="peer in :rebind:peers track by peer.id" class="item item-peer item-icon-left ink" ng-class="::ionItemClass" ng-click="selectPeer(peer)" ng-include="\'plugins/es/templates/network/item_content_peer.html\'"></div></div></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/network/view_network_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'network-buttons\'"></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'blockchain-buttons\'"><a class="button button-text button-small ink" ui-sref="app.blockchain_search"><i class="icon ion-android-search"></i> <span>{{\'COMMON.BTN_SEARCH\'|translate}}</span></a></ng-if>'),e.put("plugins/es/templates/notification/list_notification.html",'<ion-list class="{{::motion.ionListClass}}"><ion-item ng-repeat="notification in search.results track by notification.id" class="item-border-large item-text-wrap ink item-avatar" ng-class="{\'unread\': !notification.read}" ng-click="select($event, notification)"><i ng-if="!notification.avatar" class="item-image icon {{::notification.avatarIcon}}"></i> <i ng-if="notification.avatar" class="item-image avatar" style="background-image: url({{::notification.avatar.src}})"></i><h3 trust-as-html="notification.message | translate:(notification.messageParams||notification)"></h3><h4 ng-if="!notification.medianTime"><i class="icon {{notification.icon}}"></i>&thinsp;<span class="dark">{{notification.time|formatFromNow}}</span> <span class="gray">| {{notification.time|formatDate}}</span></h4><h4 ng-if="notification.medianTime"><i class="icon {{notification.icon}}"></i>&thinsp;<span class="dark">{{notification.medianTime|medianFromNow}}</span> <span class="gray">| {{notification.medianTime|medianDate}}</span></h4></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("plugins/es/templates/notification/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-disabled="!search.results.length" ng-click="markAllAsRead()"><i class="icon ion-android-checkmark-circle"></i> {{\'COMMON.NOTIFICATIONS.MARK_ALL_AS_READ\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/notification/popover_notification.html",""),e.put("plugins/es/templates/notification/view_notifications.html",'<ion-view left-buttons="leftButtons" class="view-notification"><ion-nav-title>{{\'COMMON.NOTIFICATIONS.TITLE\' | translate}}</ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh(true)"></ion-refresher><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding gray" ng-if="!search.loading && !search.results.length" translate="">COMMON.NOTIFICATIONS.NO_RESULT</div><ng-include src="\'plugins/es/templates/notification/list_notification.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/registry/edit_record.html",'<ion-view left-buttons="leftButtons" class="view-page"><ion-nav-title><span class="visible-xs" ng-if="id" ng-bind-html="formData.title"></span> <span class="visible-xs" ng-if="!loading && !id" translate="">REGISTRY.EDIT.TITLE_NEW</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear visible-xs visible-sm" ng-class="{\'ion-android-send\':!id, \'ion-android-done\': id}" ng-click="save()"></button></ion-nav-buttons><ion-content scroll="true"><div class="hero"><div class="content"><i class="avatar" ng-class="avatarClass" ng-style="avatarStyle"><button class="button button-positive button-large button-clear flat icon ion-camera visible-xs visible-sm" style="display: inline-block" ng-click="showAvatarModal()"></button> <button ng-if="avatar.src" class="button button-positive button-large button-clear flat visible-xs visible-sm" style="display: inline-block; left: 85px; bottom:15px" ng-click="rotateAvatar()"><i class="icon-secondary ion-image" style="left: 24px; top: 3px; font-size: 24px"></i> <i class="icon-secondary ion-forward" style="left: 26px; top: -13px"></i></button></i><h3 class="dark"><span ng-if="!loading && formData.title">{{formData.title}}</span> <span ng-if="!loading && !id && !formData.title" translate="">REGISTRY.EDIT.TITLE_NEW</span></h3><h4 class="dark"><ion-spinner ng-if="loading" icon="android"></ion-spinner></h4></div></div><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><form name="recordForm" novalidate="" ng-submit="save()"><div class="list {{::motion.ionListClass}}" ng-init="setForm(recordForm)"><div class="item" ng-if="id"><h4 class="gray"><i class="icon ion-calendar"></i> {{\'COMMON.LAST_MODIFICATION_DATE\'|translate}}&nbsp;{{formData.time | formatDate}}</h4><div class="badge badge-balanced badge-editable" ng-click="showRecordTypeModal()">{{\'REGISTRY.TYPE.ENUM.\'+formData.type|upper|translate}}</div></div><ng-include src="\'plugins/es/templates/common/edit_pictures.html\'"></ng-include><div class="item item-divider" translate="">REGISTRY.GENERAL_DIVIDER</div><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><span class="input-label" translate="">REGISTRY.EDIT.RECORD_TITLE</span> <input type="text" placeholder="{{\'REGISTRY.EDIT.RECORD_TITLE_HELP\'|translate}}" name="title" id="registry-record-title" ng-model="formData.title" ng-minlength="3" ng-required="true"></div><div class="form-errors" ng-if="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="item item-input item-floating-label"><span class="input-label" translate="">REGISTRY.EDIT.RECORD_DESCRIPTION</span><textarea placeholder="{{\'REGISTRY.EDIT.RECORD_DESCRIPTION_HELP\'|translate}}" ng-model="formData.description" rows="8" cols="10">\n                </textarea></div><div class="item item-icon-right ink" ng-if="loading || formData.type===\'company\' || formData.type===\'shop\'" ng-class="{\'item-input-error\': form.$submitted && !formData.category.id, \'done in\': !loading}" ng-click="showCategoryModal()"><span translate="">REGISTRY.CATEGORY</span> <span class="badge badge-royal">{{formData.category.name | formatCategory}}</span>&nbsp; <i class="gray icon ion-ios-arrow-right"></i></div><input type="hidden" name="category" ng-model="formData.category.id" required-if="formData.type==\'company\' || formData.type==\'shop\'"><div class="form-errors" ng-if="form.$submitted && form.category.$error" ng-messages="form.category.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><ng-include src="\'plugins/es/templates/common/edit_position.html\'"></ng-include><ng-include src="\'plugins/es/templates/common/edit_socials.html\'" ng-controller="ESSocialsEditCtrl"></ng-include><div class="item item-divider" translate="">REGISTRY.TECHNICAL_DIVIDER</div><div class="item item-input item-floating-label"><span class="input-label" translate="">REGISTRY.EDIT.RECORD_PUBKEY</span> <input type="text" placeholder="{{\'REGISTRY.EDIT.RECORD_PUBKEY_HELP\'|translate}}" ng-model="formData.pubkey"></div></div></form></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/registry/lookup_form.html",'<form ng-submit="doSearch()"><div class="item no-padding"><div class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'REGISTRY.SEARCH.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()" on-return="doSearchText()" select-on-click=""></div></div><ng-include src="::\'plugins/es/templates/common/item_location_search.html\'" ng-if="entered && options.location.show && (!search.geoPoint || smallscreen)" ng-controller="ESSearchPositionItemCtrl"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_form_options.html\'"></ng-include></form><div class="padding-top padding-xs padding-sm" style="display: block; height: 60px"><div class="pull-left ng-hide" ng-show="!search.loading && search.results"><ng-if ng-if="search.lastRecords"><h4 translate="">REGISTRY.SEARCH.LAST_RECORDS</h4><small class="gray no-padding" ng-if="search.total"><span ng-if="search.geoPoint && search.total">{{\'REGISTRY.SEARCH.LAST_RECORD_COUNT_LOCATION\'|translate:{count: search.total, location: search.location} }}</span> <span ng-if="!search.geoPoint && search.total">{{\'REGISTRY.SEARCH.LAST_RECORD_COUNT\'|translate:{count: search.total} }}</span></small></ng-if><ng-if ng-if="!search.lastRecords"><h4 translate="">COMMON.RESULTS_LIST</h4><small class="gray no-padding" ng-if="search.total"><span ng-if="search.geoPoint && search.total">{{\'REGISTRY.SEARCH.RESULT_COUNT_LOCATION\'|translate:{count: search.total, location: search.location} }}</span> <span ng-if="!search.geoPoint && search.total">{{\'REGISTRY.SEARCH.RESULT_COUNT\'|translate:{count: search.total} }}</span></small></ng-if></div></div><div class="center" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding assertive" ng-if="!search.loading && search.results.length===0" translate="">COMMON.SEARCH_NO_RESULT</div>'),e.put("plugins/es/templates/registry/lookup_form_options.html",'<div class="item item-icon-left item-input item-select stable-bg" ng-if="search.advanced && options.location.show"><i class="icon ion-arrow-resize gray"></i> <span class="input-label item-icon-left-padding" translate="">LOCATION.DISTANCE</span><label><select ng-model="search.geoDistance" class="col-border-left" ng-options="i as (geoDistanceLabels[i].labelKey | translate:geoDistanceLabels[i].labelParams ) for i in geoDistances track by i"></select></label></div>'),e.put("plugins/es/templates/registry/lookup_lg.html",'<ion-view left-buttons="leftButtons"><ion-nav-title>{{\'REGISTRY.SEARCH.TITLE\' | translate}}</ion-nav-title><ion-content class="lookupForm padding no-padding-xs no-padding-sm"><ng-include src="::\'plugins/es/templates/wot/lookup_lg_extend.html\'" ng-init="enable= true; showNewPageButton=true;"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_form.html\'"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_list_lg.html\'"></ng-include></ion-content><button id="fab-add-registry-record" class="button button-fab button-fab-bottom-right button-assertive icon ion-plus hidden-md hidden-lg spin" ng-click="showNewPageModal()"></button></ion-view>'),e.put("plugins/es/templates/registry/lookup_list.html",'<ion-list class="{{::motion.ionListClass}}" ng-if="!search.loading && search.results"><div class="item item-avatar item-icon-right item-border-large ink" ng-repeat="item in search.results" ui-sref="app.view_page({id: item.id, title: item.urlTitle})"><i ng-if="::!item.avatar" class="item-image icon cion-page-{{::item.type}}"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2 ng-bind-html="::item.title"></h2><h4><span class="dark" ng-if="::item.city"><b class="ion-location"></b> <span ng-bind-html="::item.city"></span> </span><span class="gray" ng-if="::item.distance">({{::item.distance|formatDecimal}} {{::geoUnit}})</span></h4><h4 class="gray" ng-if="::item.time && search.lastRecords"><i class="ion-clock"></i> {{::item.time | formatFromNow}}</h4><h4 class="gray" ng-if="!search.lastRecords"><i class="cion-page-{{::item.type}}"></i> <span ng-if="item.category">{{::item.category.name}}</span> <span ng-if="!item.category">{{::\'REGISTRY.TYPE.ENUM.\'+item.type|uppercase|translate}}</span></h4><i class="icon ion-ios-arrow-right"></i></div></ion-list>'),e.put("plugins/es/templates/registry/lookup_list_lg.html",'<div class="list {{::motion.ionListClass}}" ng-if="!search.loading && search.results && search.results.length > 0"><a ng-repeat="item in search.results" class="item item-record item-border-large ink padding-xs" ui-sref="app.view_page({id: item.id, title: item.urlTitle})"><div class="row row-record"><div class="col item-text-wrap item-avatar-left-padding" ng-class="::{\'item-avatar\': item.avatar || item.type}"><i class="item-image icon cion-page-{{::item.type}}" ng-if="::!item.avatar"></i> <i class="item-image avatar" style="background-image: url({{::item.avatar.src}})" ng-if="::item.avatar"></i><h2 ng-bind-html="::item.title"></h2><h4><span class="dark" ng-if="::item.city"><b class="ion-location"></b> <span ng-bind-html="::item.city"></span> </span><span class="gray" ng-if="::item.distance">({{::item.distance|formatDecimal}} {{::geoUnit}})</span></h4><h4><span class="gray" ng-if="::item.time && search.lastRecords"><b class="ion-clock"></b> {{::item.time | formatFromNow}} </span><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4><span ng-if="::item.picturesCount > 1" class="badge badge-balanced badge-picture-count">{{::item.picturesCount}}&nbsp;<i class="icon ion-camera"></i></span></div><div class="col hidden-xs"><h4 class="text-wrap"><span class="visible-sm"><b class="ion-flag"></b><ng-if ng-if="::item.category">{{::item.category.name|truncText:50}}</ng-if><ng-if ng-if="::!item.category">{{::\'REGISTRY.TYPE.ENUM.\'+item.type|uppercase|translate}}</ng-if></span><span class="gray text-italic" ng-if="::item.description"><b class="ion-quote"></b> <span ng-bind-html="::item.description|truncText:500" ng-if="::item.description"></span></span></h4></div></div></a></div><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="10%"></ion-infinite-scroll>'),e.put("plugins/es/templates/registry/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="showNewPageModal();"><i class="icon ion-plus"></i> <span translate>REGISTRY.BTN_NEW</span></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/registry/lookup_popover_filters.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="doGetLastRecords()"><i class="icon ion-clock"></i> {{\'REGISTRY.SEARCH.BTN_LAST_RECORDS\' | translate}} </a><a class="item item-icon-left ink" ng-click="toggleAdvanced();"><i class="icon ion-android-checkbox-outline-blank" ng-show="!search.advanced"></i> <i class="icon ion-android-checkbox-outline" ng-show="search.advanced"></i> <span translate>REGISTRY.SEARCH.POPOVER_FILTERS.BTN_ADVANCED_SEARCH</span></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/registry/modal_record_type.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>{{getParameters().title||\'REGISTRY.TYPE.TITLE\'|translate}}</h1></ion-header-bar><ion-content class="lookupForm"><div class="list padding"><h3 translate>REGISTRY.TYPE.SELECT_TYPE</h3><button class="button button-block button-stable icon-left cion-page-shop" ng-click="closeModal(\'shop\')" translate>REGISTRY.TYPE.ENUM.SHOP</button> <button class="button button-block button-stable icon-left cion-page-association" ng-click="closeModal(\'association\')" translate>REGISTRY.TYPE.ENUM.ASSOCIATION</button> <button class="button button-block button-stable icon-left cion-page-company" ng-click="closeModal(\'company\')" translate>REGISTRY.TYPE.ENUM.COMPANY</button> <button class="button button-block button-stable icon-left cion-page-institution" ng-click="closeModal(\'institution\')" translate>REGISTRY.TYPE.ENUM.INSTITUTION</button></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/registry/view_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>REGISTRY.VIEW.MENU_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink visible-xs visible-sm" ng-click="showSharePopover($event)"><i class="icon ion-android-share-alt"></i> {{\'COMMON.BTN_SHARE\' | translate}} </a><a class="item item-icon-left assertive ink visible-xs visible-sm" ng-if="canEdit" ng-click="delete()"><i class="icon ion-trash-a"></i> {{\'COMMON.BTN_DELETE\' | translate}}</a><ng-if ng-if="!canEdit && likeData.abuses"><button class="item item-icon-left ink" ng-disabled="!!likeData.abuses.wasHitCount" ng-class="{\'gray\': !!likeData.abuses.wasHitCount}" ng-click="hideActionsPopover() && reportAbuse($event)"><i class="icon ion-android-warning"></i> {{\'COMMON.BTN_REPORT_ABUSE_DOTS\' | translate}}</button></ng-if></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/registry/view_record.html",'<ion-view left-buttons="leftButtons" class="view-page"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-bar button-icon button-clear visible-xs visible-sm" ng-click="edit()" ng-if="canEdit"><i class="icon ion-android-create"></i></button> <button class="button button-bar button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true" class="refresher-top-bg"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="load()"></ion-refresher><div class="hero"><div class="content" ng-if="!loading"><i class="avatar cion-page-{{formData.type}}" ng-if="!formData.avatar"></i> <i class="avatar" ng-style="{{avatarStyle}}" ng-if="formData.avatar"></i><h3><span class="dark" ng-bind-html="formData.title"></span></h3><h4 class="gray"><small ng-include="\'plugins/es/templates/common/view_likes.html\'"></small></h4></div><h4 class="content dark" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><div class="visible-xs visible-sm"><button class="button button-fab button-fab-top-right button-stable" ng-click="toggleLike($event)"><i class="icon ion-heart" ng-class="{\'gray\': !likeData.likes.wasHitCount, \'calm\': likeData.likes.wasHitCount}"></i></button></div><div class="row no-padding-xs no-padding-sm"><div class="col list animate-fade-slide-in item-text-wrap no-padding-xs no-padding-sm"><div class="item"><h2 class="gray"><a ng-if="formData.city" ui-sref="app.wot_lookup.tab_registry({location:formData.city})"><i class="icon ion-location"></i> <span ng-bind-html="formData.city"></span> </a><span ng-if="formData.city && formData.type">&nbsp;|&nbsp;</span> <a ng-if="formData.type" ui-sref="app.wot_lookup.tab_registry({type:formData.type})"><i class="cion-page-{{formData.type}}"></i> {{\'REGISTRY.TYPE.ENUM.\'+formData.type|upper|translate}}</a></h2><h4><i class="icon ion-clock" ng-if="formData.time"></i> <span translate="">COMMON.SUBMIT_BY</span> <a ng-class="{\'positive\': issuer.uid, \'gray\': !issuer.uid}" ui-sref="app.wot_identity({pubkey:issuer.pubkey, uid: issuer.name||issuer.uid})"><ng-if ng-if="issuer.uid"><i class="icon ion-person"></i> {{::issuer.name||issuer.uid}}</ng-if><span ng-if="!issuer.uid"><i class="icon ion-key"></i> {{issuer.pubkey|formatPubkey}} </span></a><span>{{formData.time|formatFromNow}}<h4 class="gray hidden-xs">| {{formData.time | formatDate}}</h4></span></h4></div><a id="registry-share-anchor-{{id}}"></a><div class="item"><h2 trust-as-html="formData.description"></h2></div><div class="item" ng-if="formData.category || formData.address"><h4 ng-if="formData.category"><span class="gray" translate="">REGISTRY.VIEW.CATEGORY</span> <a class="positive" ng-if="formData.category" ui-sref="app.wot_lookup.tab_registry({category:formData.category.id})"><span ng-bind-html="formData.category.name"></span></a></h4><h4 ng-if="formData.address"><span class="gray" translate="">REGISTRY.VIEW.LOCATION</span> <a class="positive" target="_system" href="https://www.openstreetmap.org/search?query={{formData.address}},%20{{formData.city}}"><span ng-bind-html="formData.address"></span> <span ng-if="formData.city">- </span><span ng-bind-html="formData.city"></span></a></h4></div><ng-if ng-if="formData.socials && formData.socials.length>0"><div class="item item-icon-left" type="no-padding item-text-wrap" ng-repeat="social in formData.socials track by social.url" id="social-{{social.url|formatSlug}}"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}}</p><h2><a ng-click="openLink($event, social.url, social.type)">{{social.url}}</a></h2></div></ng-if><div class="item item-icon-left item-text-wrap ink" ng-if="formData.pubkey" copy-on-click="{{::formData.pubkey}}"><i class="icon ion-key"></i> <span translate="">REGISTRY.EDIT.RECORD_PUBKEY</span><h4 class="dark">{{::formData.pubkey}}</h4></div><div class="lazy-load"><ng-include src="\'plugins/es/templates/common/view_pictures.html\'"></ng-include><ng-include src="\'plugins/es/templates/common/view_comments.html\'"></ng-include></div></div></div></ion-content><button class="button button-fab button-fab-bottom-right button-assertive icon ion-android-send visible-xs visible-sm" ng-if="formData.pubkey && !isUserPubkey(formData.pubkey)" ng-click="showTransferModal({pubkey: formData.pubkey, uid: formData.title})"></button></ion-view>'),e.put("plugins/es/templates/registry/view_wallet_pages.html",'<ion-view left-buttons="leftButtons" class="view-notification"><ion-nav-title>{{\'REGISTRY.MY_PAGES\' | translate}}</ion-nav-title><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate()"></ion-refresher><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!search.loading && !search.results.length" translate="">REGISTRY.NO_PAGE</div><ng-include src="\'plugins/es/templates/registry/lookup_list.html\'"></ng-include></ion-content><button id="fab-wallet-add-registry-record" class="button button-fab button-fab-bottom-right button-assertive hidden-md hidden-lg spin" ng-click="showNewPageModal()"><i class="icon ion-plus"></i></button></ion-view>'),e.put("plugins/es/templates/settings/plugin_settings.html",'<ion-view left-buttons="leftButtons" class="settings"><ion-nav-title translate="">ES_SETTINGS.PLUGIN_NAME</ion-nav-title><ion-content scroll="true"><div class="item item-toggle dark"><div class="input-label" translate="">ES_SETTINGS.ENABLE_TOGGLE</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.enable"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.STORAGE_DIVIDER</span><div class="item item-toggle item-text-wrap dark"><div class="input-label" ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.ENABLE_REMOTE_STORAGE</div><h4 class="gray text-wrap" ng-bind-html="\'ES_SETTINGS.ENABLE_REMOTE_STORAGE_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useRemoteStorage" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.NETWORK_SETTINGS</span><ion-item class="ink item-icon-right item-text-wrap visible-xs visible-sm" ng-click="formData.enable && changeEsNode()" ng-disabled="!formData.enable"><div class="input-label" ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.PEER</div><ng-if ng-if="isFallbackNode"><h4 class="gray text-wrap assertive"><b class="ion-alert-circled"></b> <span ng-bind-html="\'SETTINGS.PEER_CHANGED_TEMPORARY\' | translate "></span></h4><div class="badge badge-assertive">{{server}}</div></ng-if><div class="badge" ng-class="{\'badge-balanced\': formData.enable, \'badge-stable\': !formData.enable}" ng-if="!isFallbackNode">{{server}}</div><i class="icon ion-ios-arrow-right"></i></ion-item><span class="item item-divider" translate="">ES_SETTINGS.NOTIFICATIONS.DIVIDER</span><span class="item gray item-text-wrap" translate="">ES_SETTINGS.NOTIFICATIONS.HELP_TEXT</span><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_TX_SENT</span><div class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.txSent" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></div></label><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_TX_RECEIVED</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.txReceived" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></label></label><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_CERT_SENT</span><div class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.certSent" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></div></label><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_CERT_RECEIVED</span><div class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.certReceived" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></div></label><cs-extension-point name="common"></cs-extension-point></ion-content></ion-view>'),e.put("plugins/es/templates/settings/settings_extend.html",'<div class="item item-text-wrap item-icon-right ink" ui-sref="app.es_settings"><div class="input-label ng-binding" translate>ES_SETTINGS.PLUGIN_NAME</div><h4 class="gray" translate>ES_SETTINGS.PLUGIN_NAME_HELP</h4><i class="icon ion-ios-arrow-right"></i></div>'),e.put("plugins/es/templates/subscription/edit_subscriptions.html",'<ion-view left-buttons="leftButtons" class="view-notification"><ion-nav-title>{{\'SUBSCRIPTION.EDIT.TITLE\' | translate}}</ion-nav-title><ion-nav-buttons side="secondary"></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="load()"></ion-refresher><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!search.loading && !search.results.length" translate="">SUBSCRIPTION.NO_SUBSCRIPTION</div><div class="row no-padding"><div class="col list {{::motion.ionListClass}} item-border-large"><ng-repeat ng-repeat="subscriptions in search.results | filter: { type: \'email\' }" ng-include="\'plugins/es/templates/subscription/item_\' + subscriptions.type.toLowerCase() + \'_subscription.html\'">></ng-repeat></div></div></ion-content><button id="fab-add-subscription-record" class="button button-fab button-fab-bottom-right button-assertive icon ion-plus hidden-md hidden-lg spin" ng-click="addSubscription()"></button></ion-view>'),e.put("plugins/es/templates/subscription/item_email_subscription.html",'<div class="item item-avatar"><i class="item-image icon ion-email"></i><h3>{{\'SUBSCRIPTION.TYPE.ENUM.\' + subscriptions.type.toUpperCase() | translate}}</h3><h4 class="gray">{{\'SUBSCRIPTION.EDIT.PROVIDER\'|translate}} <a ui-sref="app.wot_identity({pubkey: subscriptions.recipient, uid: subscriptions.uid})"><span ng-class="{\'positive\': subscriptions.uid, \'dark\': !subscriptions.uid}" ng-if="subscriptions.name||subscriptions.uid"><i class="ion-person" ng-if="subscriptions.uid"></i> {{subscriptions.name||subscriptions.uid}} </span><span class="gray" ng-if="!subscriptions.uid"><i class="ion-key"></i> {{subscriptions.recipient | formatPubkey}}</span></a></h4><div class="item-note text-right"><span ng-repeat="item in subscriptions.items">{{item.content.email}} <a class="ion-trash-a gray padding-left" ng-click="deleteSubscription(item)"></a> <a class="ion-edit gray padding-left" ng-click="editSubscription(item)"></a><br></span></div></div>'),e.put("plugins/es/templates/subscription/modal_email.html",'<ion-modal-view id="composeMessage" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>SUBSCRIPTION.MODAL_EMAIL.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSubmit()"></button></ion-header-bar><ion-content scroll="true"><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i><h4 class="positive" translate>SUBSCRIPTION.MODAL_EMAIL.HELP</h4></div><form name="subscriptionForm" novalidate="" ng-submit="doSubmit()"><div class="list" ng-init="setForm(subscriptionForm)"><label class="item item-input" ng-class="{\'item-input-error\': form.$submitted && (form.email.$invalid || form.email.$error)}"><span class="input-label" translate>SUBSCRIPTION.MODAL_EMAIL.EMAIL_LABEL</span> <input name="email" type="text" placeholder="{{\'SUBSCRIPTION.MODAL_EMAIL.EMAIL_HELP\' | translate}}" ng-model="formData.content.email" ng-minlength="3" required email></label><div class="form-errors" ng-if="form.$submitted && (form.email.$invalid || form.email.$error)" ng-messages="form.email.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div><div class="form-error" ng-message="email"><span translate="ERROR.FIELD_NOT_EMAIL"></span></div></div><label class="item item-input item-select" ng-class="{\'item-input-error\': form.$submitted && !formData.content.frequency}"><span class="input-label" translate>SUBSCRIPTION.MODAL_EMAIL.FREQUENCY_LABEL</span><select name="frequency" ng-model="formData.content.frequency" style="height: 46px;margin-top: 1px"><option value="weekly" translate>SUBSCRIPTION.MODAL_EMAIL.FREQUENCY_WEEKLY</option><option value="daily" translate>SUBSCRIPTION.MODAL_EMAIL.FREQUENCY_DAILY</option></select></label><div class="form-errors" ng-if="form.$submitted && !formData.content.frequency"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><a class="item item-input item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.recipient}" ng-click="showNetworkLookup()" style="height: 67px"><span class="input-label" translate>SUBSCRIPTION.MODAL_EMAIL.PROVIDER</span> <span class="badge animate-fade-in animate-show-hide ng-hide" ng-class="{\'badge-royal\': recipient.uid, \'badge-stable\': !recipient.uid}" ng-show="recipient && (recipient.name||recipient.uid)"><i class="ion-person" ng-if="recipient.uid"></i> {{recipient.name||recipient.uid}} </span><span class="badge badge-secondary animate-fade-in animate-show-hide ng-hide" ng-show="formData.recipient"><i class="ion-key"></i> {{formData.recipient | formatPubkey}} </span><i class="gray icon ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !formData.recipient"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="cancel()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" type="submit">{{\'COMMON.BTN_ADD\' | translate}}</button></div></form></ion-content></ion-modal-view>'),e.put("plugins/es/templates/user/edit_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left assertive ink" ng-click="removeProfile()"><i class="icon ion-trash-a"></i> {{\'PROFILE.BTN_DELETE\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/user/edit_profile.html",'<ion-view left-buttons="leftButtons"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear button-assertive ion-trash-a visible-xs visible-sm" ng-click="removeProfile()" ng-if="existing"></button> <button class="button button-icon button-clear ion-android-done visible-xs visible-sm" ng-click="submitAndSaveAndClose()"></button></ion-nav-buttons><ion-content scroll="true"><div class="positive-900-bg hero"><div class="content"><i class="avatar" ng-style="avatarStyle" ng-class="{\'avatar-wallet\': !loading && !avatar && walletData && !walletData.isMember, \'avatar-member\': !loading && !avatar && walletData.isMember}"><button class="button button-positive button-large button-clear flat icon ion-camera visible-xs visible-sm" style="display: inline-block" ng-click="showAvatarModal()"></button> <button ng-if="avatar.src" class="button button-positive button-large button-clear flat visible-xs visible-sm" style="display: inline-block; left: 85px; bottom:15px" ng-click="rotateAvatar()"><i class="icon-secondary ion-image" style="left: 24px; top: 3px; font-size: 24px"></i> <i class="icon-secondary ion-forward" style="left: 26px; top: -13px"></i></button></i><h3 class="light"><ng-if ng-if="!loading && !formData.title && walletData && walletData.isMember">{{walletData.uid}}</ng-if><ng-if ng-if="!loading && !formData.title && walletData && !walletData.isMember">{{::walletData.pubkey | formatPubkey}}</ng-if><ng-if ng-if="!loading && formData.title">{{formData.title}}</ng-if></h3><h4 class="light"><ion-spinner ng-if="loading" icon="android"></ion-spinner></h4></div></div><div class="row no-padding"><div class="col"><form name="profileForm" novalidate="" ng-submit="saveAndClose()"><div class="list item-text-wrap {{::motion.ionListClass}}" ng-init="setForm(profileForm)"><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i><h4 class="positive" translate="">PROFILE.HELP.WARNING_PUBLIC_DATA</h4></div><div class="item item-divider" translate="">PROFILE.GENERAL_DIVIDER</div><ion-item class="item-input item-floating-label item-button-right" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><span class="input-label">{{\'PROFILE.TITLE\' | translate}}</span> <input type="text" name="title" placeholder="{{\'PROFILE.TITLE_HELP\' | translate}}" id="profile-name" ng-model="formData.title" ng-model-options="{ debounce: 350 }" ng-maxlength="50" required></ion-item><div class="form-errors" ng-show="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG_WITH_LENGTH" translate-values="{maxLength: 50}"></span></div></div><ion-item class="item-input item-floating-label item-button-right"><span class="input-label" style="width: 100%">{{\'PROFILE.DESCRIPTION\' | translate}}</span><textarea placeholder="{{\'PROFILE.DESCRIPTION_HELP\' | translate}}" ng-model="formData.description" ng-model-options="{ debounce: 350 }" rows="4" cols="10">\n              </textarea></ion-item><ng-include src="\'plugins/es/templates/common/edit_position.html\'" ng-controller="ESPositionEditCtrl as ctrl"></ng-include></div><ng-include src="\'plugins/es/templates/common/edit_socials.html\'" ng-controller="ESSocialsEditCtrl"></ng-include><div class="list item-text-wrap {{::motion.ionListClass}}"><div class="item item-divider" translate="">PROFILE.TECHNICAL_DIVIDER</div><ion-item class="item-icon-left" ng-if="walletData && walletData.uid"><span translate="">COMMON.UID</span> <span class="badge badge-stable">{{::walletData.uid}}</span></ion-item><ion-item class="item-icon-left item-icon-right item-text-wrap ink" on-hold="copy(formData.pubkey)" copy-on-click=""><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><p class="gray">{{walletData.pubkey}}</p></ion-item></div></form></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/user/items_profile.html",'<div ng-if="!formData.profile" class="item gray" translate>PROFILE.NO_PROFILE_DEFINED</div><div class="item" ng-if="formData.profile && formData.name && showName"><span class="gray" translate>PROFILE.TITLE</span><h3>{{formData.name}}</h3></div><div class="item item-text-wrap" ng-if="formData.profile.description"><span class="gray" translate>PROFILE.DESCRIPTION</span><h3 trust-as-html="formData.profile.description"></h3></div><div class="item" ng-if="formData.profile.address || formData.profile.city" copy-on-click="{{formData.profile.address ? formData.profile.address + \'&#10;\' : \'\'}}{{formData.profile.city}}"><span class="gray" translate>LOCATION.LOCATION_DIVIDER</span><h3><span class="text-keep-lines" ng-if="formData.profile.address">{{formData.profile.address}}<br></span>{{formData.profile.city}}</h3></div><div class="item" ng-if="formData.profile.socials && formData.profile.socials.length" ng-controller="ESSocialsViewCtrl"><span class="gray" translate>PROFILE.SOCIAL_NETWORKS_DIVIDER</span><div class="list no-padding"><ion-item ng-repeat="social in formData.profile.socials | filter:filterFn track by social.url " id="social-{{::social.url|formatSlug}}" class="item-icon-left item-text-wrap no-padding-bottom ink" on-tap="openSocial($event, social)"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\', \'ion-iphone\': social.type == \'phone\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}} <i class="ion-locked" ng-if="social.recipient"></i></p><h4><a on-tap="openSocial($event, social)" href="{{::social.url}}" target="_blank">{{::social.url}}</a></h4></ion-item></div></div>'),e.put("plugins/es/templates/wallet/item_wallet_extend.html",'<h4 class="dark" ng-if=":state:enable && wallet.id!=\'default\'"><a ng-if="walletData.invitations.unreadCount"><i class="dark ion-person-stalker"></i> {{walletData.invitations.unreadCount}} </a><a ng-if="walletData.messages.unreadCount" ui-sref="app.user_messages_by_id.tab_inbox({id: wallet.id})"><i class="dark ion-email"></i> {{walletData.messages.unreadCount}} </a><a ng-if="walletData.notifications.unreadCount" ui-sref="app.view_notifications_by_id({id: wallet.id})"><i class="dark ion-android-notifications"></i> {{walletData.notifications.unreadCount}}</a></h4>'),e.put("plugins/es/templates/wallet/view_wallet_extend.gc.html",'<ng-if ng-if=":state:enable && extensionPoint === \'hero\'"><h4 class="light"><small ng-include="\'plugins/es/templates/common/view_likes.html\'" ng-init="canEdit = true;"></small></h4></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'after-general\'"><div class="item item-divider item-divider-top-border"><span ng-bind-html="\'PROFILE.PROFILE_DIVIDER\' | translate"></span> <a class="badge button button-text button-small button-small-padding" ui-sref="app.user_edit_profile"><i class="icon ion-edit"></i> <span ng-if="!formData.profile" translate>PROFILE.BTN_ADD</span> <span ng-if="formData.profile" translate>PROFILE.BTN_EDIT</span></a></div><ng-include src="\'plugins/es/templates/user/items_profile.html\'" ng-init="showName=true"></ng-include><div class="item item-divider item-divider-top-border"><span>{{\'SUBSCRIPTION.SUBSCRIPTION_DIVIDER\' | translate}} <i style="font-size: 12pt; cursor: pointer" ng-click="showSubscriptionHelp=!showSubscriptionHelp" class="icon positive ion-ios-help-outline" title="{{\'SUBSCRIPTION.SUBSCRIPTION_DIVIDER_HELP\' | translate}}"></i> <span><a class="badge button button-text button-small button-small-padding" ng-if="!formData.subscriptions.count" ui-sref="app.edit_subscriptions"><i class="icon ion-edit"></i> <span translate>SUBSCRIPTION.BTN_ADD</span></a></span></span></div><div class="item item-text-wrap positive item-small-height" ng-show="showSubscriptionHelp"><small translate>SUBSCRIPTION.SUBSCRIPTION_DIVIDER_HELP</small></div><div ng-if="!formData.subscriptions.count" class="item gray" translate>SUBSCRIPTION.NO_SUBSCRIPTION</div><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.subscriptions.count" ui-sref="app.edit_subscriptions"><i class="icon ion-gear-a"></i> <span translate>SUBSCRIPTION.SUBSCRIPTION_COUNT</span> <span class="badge badge-calm">{{formData.subscriptions.count}}</span> <i class="gray icon ion-ios-arrow-right"></i></a><div class="item item-divider item-divider-top-border"><span>{{\'REGISTRY.WALLET.REGISTRY_DIVIDER\' | translate}} <i style="font-size: 12pt; cursor: pointer" ng-click="showPagesHelp=!showPagesHelp" class="icon positive ion-ios-help-outline" title="{{\'REGISTRY.WALLET.REGISTRY_HELP\' | translate}}"></i> <span><a class="badge button button-text button-small button-small-padding" ng-if="!formData.pages.count" ng-click="showNewPageModal($event)"><i class="icon ion-edit"></i> <span translate>REGISTRY.BTN_NEW</span></a></span></span></div><div class="item item-text-wrap positive item-small-height" ng-show="showPagesHelp"><small translate>REGISTRY.WALLET.REGISTRY_HELP</small></div><div ng-if="!formData.pages.count" class="item gray" translate>REGISTRY.NO_PAGE</div><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.pages.count" ui-sref="app.wallet_pages"><i class="icon ion-social-buffer"></i> <span translate>REGISTRY.MY_PAGES</span> <span class="badge badge-calm">{{formData.pages.count}}</span> <i class="gray icon ion-ios-arrow-right"></i></a></ng-if>'),e.put("plugins/es/templates/wallet/view_wallet_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'hero\'"><small class="light" style="display: inline-block" ng-include="\'plugins/es/templates/common/view_likes.html\'" ng-init="canEdit=true"></small></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'after-general\'"><div class="item item-divider item-divider-top-border"><span>{{\'PROFILE.PROFILE_DIVIDER\' | translate}} <i style="font-size: 12pt; cursor: pointer" ng-click="showProfileHelp=!showProfileHelp" class="icon positive ion-ios-help-outline" title="{{\'PROFILE.PROFILE_DIVIDER_HELP\' | translate}}"></i> </span><a class="badge button button-text button-small button-small-padding" ng-if="isDefaultWallet" ui-sref="app.edit_profile"><i class="icon ion-edit"></i> <span ng-if="!formData.profile" translate>PROFILE.BTN_ADD</span> <span ng-if="formData.profile" translate>PROFILE.BTN_EDIT</span> </a><a class="badge button button-text button-small button-small-padding" ng-if="!isDefaultWallet" ui-sref="app.edit_profile_by_id({id: walletId})"><i class="icon ion-edit"></i> <span ng-if="!formData.profile" translate>PROFILE.BTN_ADD</span> <span ng-if="formData.profile" translate>PROFILE.BTN_EDIT</span></a></div><div class="item item-text-wrap positive item-small-height" ng-show="showProfileHelp"><small translate>PROFILE.PROFILE_DIVIDER_HELP</small></div><ng-include src="\'plugins/es/templates/user/items_profile.html\'" ng-init="showName=true"></ng-include><div class="item item-divider item-divider-top-border"><span>{{\'SUBSCRIPTION.SUBSCRIPTION_DIVIDER\' | translate}} <i style="font-size: 12pt; cursor: pointer" ng-click="showSubscriptionHelp=!showSubscriptionHelp" class="icon positive ion-ios-help-outline" title="{{\'SUBSCRIPTION.SUBSCRIPTION_DIVIDER_HELP\' | translate}}"></i> <span><a class="badge button button-text button-small button-small-padding" ng-if="!formData.subscriptions.count && isDefaultWallet" ui-sref="app.edit_subscriptions"><i class="icon ion-edit"></i> <span translate>SUBSCRIPTION.BTN_ADD</span> </a><a class="badge button button-text button-small button-small-padding" ng-if="!formData.subscriptions.count && !isDefaultWallet" ui-sref="app.edit_subscriptions_by_id({id: walletId})"><i class="icon ion-edit"></i> <span translate>SUBSCRIPTION.BTN_ADD</span></a></span></span></div><div class="item item-text-wrap positive item-small-height" ng-show="showSubscriptionHelp"><small translate>SUBSCRIPTION.SUBSCRIPTION_DIVIDER_HELP</small></div><div ng-if="!formData.subscriptions.count" class="item gray" translate>SUBSCRIPTION.NO_SUBSCRIPTION</div><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.subscriptions.count && isDefaultWallet" ui-sref="app.edit_subscriptions"><i class="icon ion-gear-a"></i> <span translate>SUBSCRIPTION.SUBSCRIPTION_COUNT</span> <span class="badge badge-calm">{{formData.subscriptions.count}}</span> <i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.subscriptions.count && !isDefaultWallet" ui-sref="app.edit_subscriptions_by_id({id: walletId})"><i class="icon ion-gear-a"></i> <span translate>SUBSCRIPTION.SUBSCRIPTION_COUNT</span> <span class="badge badge-calm">{{formData.subscriptions.count}}</span> <i class="gray icon ion-ios-arrow-right"></i></a><div class="item item-divider item-divider-top-border"><span>{{\'REGISTRY.WALLET.REGISTRY_DIVIDER\' | translate}} <i style="font-size: 12pt; cursor: pointer" ng-click="showPagesHelp=!showPagesHelp" class="icon positive ion-ios-help-outline" title="{{\'REGISTRY.WALLET.REGISTRY_HELP\' | translate}}"></i> <span><a class="badge button button-text button-small button-small-padding" ng-if="!formData.pages.count" ng-click="showNewPageModal($event)"><i class="icon ion-edit"></i> <span translate>REGISTRY.BTN_NEW</span></a></span></span></div><div class="item item-text-wrap positive item-small-height" ng-show="showPagesHelp"><small translate>REGISTRY.WALLET.REGISTRY_HELP</small></div><div ng-if="!formData.pages.count" class="item gray" translate>REGISTRY.NO_PAGE</div><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.pages.count && isDefaultWallet" ui-sref="app.wallet_pages"><i class="icon ion-social-buffer"></i> <span translate>REGISTRY.MY_PAGES</span> <span class="badge badge-calm">{{formData.pages.count}}</span> <i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.pages.count && !isDefaultWallet" ui-sref="app.wallet_pages_by_id({id: walletId})"><i class="icon ion-social-buffer"></i> <span translate>REGISTRY.MY_PAGES</span> <span class="badge badge-calm">{{formData.pages.count}}</span> <i class="gray icon ion-ios-arrow-right"></i></a></ng-if>'),e.put("plugins/es/templates/wot/lookup_extend.html",'<ion-tab ng-if=":state:enable" title="{{\'MENU.REGISTRY\'|translate}}" icon="ion-social-buffer" ui-sref="app.wot_lookup.tab_registry"><ion-nav-view name="tab_registry"></ion-nav-view></ion-tab>'),e.put("plugins/es/templates/wot/lookup_item_group.html",'<i ng-if="::!item.avatar" class="item-image icon ion-android-people"></i> <i ng-if="::!item.avatar" class="item-image icon-secondary ion-android-lock" style="left: 20px; top: 17px; font-size: 19px; color: #d9d9d9"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2 ng-bind-html=":rebind:item.name"></h2><h4 class="gray"><i class="ion-clock"></i> {{:rebind:\'GROUP.CREATED_TIME\'|translate: item }}</h4><h4 class="dark pull-left" ng-if=":rebind:item.membersCount"><i class="dark ion-person"></i> <span class="dark">+{{:rebind:item.membersCount}}</span></h4><h4 class="dark"><span class="dark" ng-if="::item.description"><i class="ion-quote"></i> {{::item.description|truncText}}</span></h4><h4 ng-if="::item.tags"><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4>'),e.put("plugins/es/templates/wot/lookup_item_page.html",'<i ng-if="::!item.avatar" class="item-image icon cion-page-{{item.type}}"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2 ng-bind-html=":rebind:item.name"></h2><h4 class="gray"><span class="gray" ng-if="::item.city"><i class="ion-location"></i> {{::item.city|truncText}} </span><span ng-if="::item.city && item.type">|</span> <span ng-if="item.type"><i class="cion-page-{{item.type}}"></i> {{::\'REGISTRY.TYPE.ENUM.\'+item.type|uppercase|translate}}</span></h4><h4 class="dark"><span class="dark" ng-if="::item.description"><i class="ion-quote"></i> {{::item.description|truncText}}</span></h4><h4 ng-if="::item.tags"><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4>'),e.put("plugins/es/templates/wot/lookup_lg_extend.html",'<div class="buttons-tabs" ng-if=":state:enable"><div class="pull-right"><div class="button button-tab dark" title="{{\'REGISTRY.BTN_SHOW_WOT_HELP\' | translate}}" nav-transition="none" active-link="active" active-link-path-prefix="#/app/wot/lg" ui-sref="app.wot_lookup_lg"><i class="icon ion-person-stalker"></i> {{\'REGISTRY.BTN_SHOW_WOT\' | translate}}</div><a class="button button-tab ink dark" title="{{\'REGISTRY.BTN_SHOW_PAGES_HELP\' | translate}}" nav-transition="none" active-link="active" active-link-path-prefix="#/app/wot/page" ui-sref="app.registry_lookup_lg"><i class="icon ion-social-buffer"></i> {{\'REGISTRY.BTN_SHOW_PAGES\' | translate}}</a></div><div class="pull-right" ng-if="showNewPageButton">&nbsp;</div></div>'),e.put("plugins/es/templates/wot/popover_certification_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-if="canCertify" ng-click="certify()"><i class="icon ion-ribbon-b"></i> {{\'WOT.BTN_CERTIFY\' | translate}} </a><a class="item item-icon-left ink" ng-if="!isUserPubkey(formData.pubkey) && formData.isMember" ng-click="askCertification()"><i class="icon-secondary ion-ribbon-b" style="left: 16px; top: 0px; font-size: 25px"></i> <b class="icon-secondary ion-help" style="left: 35px; top: 0px"></b> {{\'WOT.BTN_ASK_CERTIFICATION\' | translate}} </a><a class="item item-icon-left ink" ng-if="isUserPubkey(formData.pubkey)" ng-click="showAskCertificationModal()"><i class="icon-secondary ion-ribbon-b" style="left: 16px; top: 0px; font-size: 25px"></i> <b class="icon-secondary ion-help" style="left: 35px; top: 0px"></b> {{\'WOT.BTN_ASK_CERTIFICATIONS_DOTS\' | translate}} </a><a class="item item-icon-left ink" ng-if="!isUserPubkey(formData.pubkey)" ng-click="showSuggestCertificationModal()"><i class="icon-secondary ion-person-stalker" style="left: 16px; top: 0px; font-size: 25px"></i> <b class="icon-secondary ion-help" style="left: 37px; top: -4px"></b> {{\'WOT.BTN_SUGGEST_CERTIFICATIONS_DOTS\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/wot/view_certifications_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'nav-buttons\'"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showCertificationActionsPopover($event)"></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'buttons\'"><button class="button button-stable button-small-padding icon ion-android-more-vertical" ng-click="showCertificationActionsPopover($event)" title="{{\'COMMON.POPOVER_ACTIONS_TITLE\' | translate}}"></button></ng-if>'),e.put("plugins/es/templates/wot/view_identity_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'hero\'"><small class="light" style="display: inline-block" ng-include="\'plugins/es/templates/common/view_likes.html\'"></small></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'buttons-top-fab\'"><button id="fab-compose-{{:rebind:formData.pubkey}}" class="button button-fab button-fab-top-left button-fab-hero mini button-stable spin" style="left: 88px" ng-click="showNewMessageModal()"><i class="icon ion-compose"></i></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'buttons\'"><button class="button button-stable button-small-padding icon ion-compose" ng-click="showNewMessageModal()" title="{{\'MESSAGE.BTN_WRITE\' | translate}}"></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'after-buttons\'"><button class="button button-stable button-small-padding icon ion-android-more-vertical" ng-click="showActionsPopover($event)"></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'after-general\'"><span class="item item-divider item-divider-top-border"><span>{{\'PROFILE.PROFILE_DIVIDER\' | translate}} <a style="font-size: 12pt; cursor: pointer" ng-click="showProfileHelp=!showProfileHelp" class="icon positive ion-ios-help-outline ink" title="{{\'PROFILE.PROFILE_DIVIDER_HELP\' | translate}}"></a></span></span><div class="item item-text-wrap positive item-small-height" ng-show="showProfileHelp"><small translate>PROFILE.PROFILE_DIVIDER_HELP</small></div><ng-include src="\'plugins/es/templates/user/items_profile.html\'" ng-init="showName=false;"></ng-include></ng-if>'),e.put("plugins/es/templates/wot/view_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink visible-xs visible-sm" ng-click="showSharePopover($event)"><i class="icon ion-android-share-alt"></i> {{\'COMMON.BTN_SHARE\' | translate}} </a><a class="item item-icon-left ink" ng-if="!canEdit && likeData.likes" ng-click="hideActionsPopover() && toggleLike($event)"><i class="icon" ng-class="{\'ion-heart-broken\': likeData.likes.wasHit, \'ion-heart\': !likeData.likes.wasHit}"></i> {{(likeData.likes.wasHit ? \'COMMON.BTN_LIKE_REMOVE\' : \'COMMON.BTN_LIKE\' )| translate}} </a><a class="item item-icon-left ink" ng-if="!canEdit && likeData.abuses" ng-disabled="!!likeData.abuses.wasHitCount" ng-class="{\'gray\': !!likeData.abuses.wasHitCount}" ng-click="hideActionsPopover() && reportAbuse($event)"><i class="icon ion-android-warning"></i> {{\'COMMON.BTN_REPORT_ABUSE_DOTS\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/graph/templates/account/graph_balance.html",'\n    \x3c!-- button bar --\x3e\n    <div class="button-bar-inline "\n         style="top: 33px; margin-top:-33px; position: relative;">\n      <button\n        class="button button-stable button-clear no-padding-xs pull-right"\n        ng-click="showActionsPopover($event)">\n        <i class="icon ion-navicon-round"></i>\n      </button>\n    </div>\n\n    <div class="padding-left padding-right">\n      <canvas id="account-balance" class="chart-bar"\n              height="{{height}}" width="{{width}}"\n              chart-data="data"\n              chart-dataset-override="datasetOverride"\n              chart-colors="colors"\n              chart-options="options"\n              chart-labels="labels"\n              chart-click="onChartClick">\n      </canvas>\n    </div>\n\n    <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/account/graph_certifications.html",'\n    <div class="padding-left padding-right">\n      <canvas id="account-certifications" class="chart-bar"\n              height="{{height}}" width="{{width}}"\n              chart-data="data"\n              chart-dataset-override="datasetOverride"\n              chart-colors="colors"\n              chart-options="options"\n              chart-labels="labels"\n              chart-click="onChartClick">\n      </canvas>\n    </div>\n'),e.put("plugins/graph/templates/account/graph_sum_tx.html",'<div class="row responsive-sm" ng-if="!loading">\n\n  <div class="col col-10 hidden-xs hidden-sm">&nbsp;</div>\n\n  <div class="col text-center">\n\n    \x3c!-- TX input chart --\x3e\n    <p class="gray padding text-wrap"\n       ng-if="inputChart.data.length"\n       translate>GRAPH.ACCOUNT.INPUT_CHART_TITLE</p>\n    <canvas id="chart-received-pie" class="chart-pie"\n            chart-data="inputChart.data"\n            chart-labels="inputChart.labels"\n            chart-colors="inputChart.colors"\n            chart-click="onInputChartClick">\n    </canvas>\n\n  </div>\n\n  <div class="col col-10 hidden-xs hidden-sm">&nbsp;</div>\n\n  <div class="col text-center">\n\n    \x3c!-- TX output chart --\x3e\n    <p class="gray padding text-wrap"\n       ng-if="outputChart.data.length"\n       translate>GRAPH.ACCOUNT.OUTPUT_CHART_TITLE</p>\n    <canvas id="chart-sent-pie" class="chart-pie"\n            chart-data="outputChart.data"\n            chart-labels="outputChart.labels"\n            chart-colors="outputChart.colors"\n            chart-click="onOutputChartClick">\n    </canvas>\n\n  </div>\n\n  <div class="col col-10 hidden-xs hidden-sm">&nbsp;</div>\n\n</div>\n'),e.put("plugins/graph/templates/account/view_identity_tx_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if=":state:enable && extensionPoint === \'buttons\'">\n\n  <button class="button button-stable button-small-padding icon ion-stats-bars"\n          ui-sref="app.wot_identity_stats({pubkey: formData.pubkey})"\n          title="{{\'GRAPH.ACCOUNT.BTN_SHOW_STATS\' | translate}}">\n  </button>\n\n</ng-if>\n'),e.put("plugins/graph/templates/account/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.ACCOUNT.TITLE\' | translate}}{{id}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="no-padding">\n\n\n\n    <div class="list" >\n\n      \x3c!--  - - - - Balance - - - - --\x3e\n      <ng-controller ng-controller="GpAccountBalanceCtrl">\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        <div class="item item-divider" ng-if="!loading" >\n          {{\'GRAPH.ACCOUNT.BALANCE_DIVIDER\'|translate}}\n          <ion-spinner ng-if="loadingRange" class="ion-spinner-small" icon="android"></ion-spinner>\n        </div>\n\n        <div class="item no-padding-xs"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/account/graph_balance.html\'"\n             ng-init="setSize(350, 1000)">\n        </div>\n      </ng-controller>\n\n    </div>\n\n    <div class="item no-padding-xs"\n         ng-include="\'plugins/graph/templates/account/graph_sum_tx.html\'"\n         ng-controller="GpAccountSumTxCtrl">\n    </div>\n\n    \x3c!--  - - - - WOT - - - -\n    <div class="item item-divider" translate>\n      GRAPH.ACCOUNT.WOT_DIVIDER\n    </div>\n\n    <div class="item no-padding-xs"\n         ng-include="\'plugins/graph/templates/account/graph_certifications.html\'"\n         ng-controller="GpAccountCertificationCtrl"\n         ng-init="setSize(350, 1000)">\n    </div>--\x3e\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/account/view_wallet_tx_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if=":state:enable && extensionPoint === \'buttons\'">\n\n  <button class="button button-stable button-small-padding icon ion-stats-bars"\n          ui-sref="app.wot_identity_stats({pubkey: formData.pubkey})"\n          title="{{\'GRAPH.ACCOUNT.BTN_SHOW_STATS\' | translate}}">\n  </button>\n\n</ng-if>\n'),e.put("plugins/graph/templates/blockchain/graph_block_issuers.html",'\n    <div class="row responsive-lg">\n\n      \x3c!-- bar --\x3e\n      <div class="col col-75">\n        <canvas id="bar" class="chart-bar"\n                height="{{height}}" width="{{width}}"\n                chart-data="data"\n                chart-labels="labels"\n                chart-colors="colors"\n                chart-options="barOptions"\n                chart-click="onChartClick">\n        </canvas>\n      </div>\n\n      \x3c!-- pie --\x3e\n      <div class="col col-25 padding-top">\n        <canvas id="blocksByIssuer-pie" class="chart-pie"\n                chart-data="data"\n                chart-labels="labels"\n                chart-colors="colors"\n                chart-click="onChartClick">\n        </canvas>\n\n        <div class="gray padding-top text-center">\n          <small ng-bind-html="\'GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_HELP\'| translate:{issuerCount: data.length, blockCount: blockCount }"></small>\n        </div>\n      </div>\n    </div>\n'),e.put("plugins/graph/templates/blockchain/graph_tx_count.html",'\n    \x3c!-- button bar --\x3e\n    <div class="button-bar-inline "\n         style="top: 33px; margin-top:-33px; position: relative;">\n      <button\n        class="button button-stable button-clear no-padding-xs pull-right"\n        ng-click="showActionsPopover($event)">\n        <i class="icon ion-navicon-round"></i>\n      </button>\n    </div>\n\n    <div class="padding-left padding-right">\n      <canvas id="tx-line" class="chart-bar"\n              height="{{height}}" width="{{width}}"\n              chart-data="data"\n              chart-dataset-override="datasetOverride"\n              chart-colors="colors"\n              chart-options="options"\n              chart-labels="labels"\n              chart-click="onChartClick">\n      </canvas>\n    </div>\n\n    <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/blockchain/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}{{id}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="no-padding">\n\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <div class="list" ng-if="!loading">\n\n\n      \x3c!-- TX count --\x3e\n      <ng-controller ng-controller="GpBlockchainTxCountCtrl">\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        <div class="item item-divider" ng-if="!loading" >\n          {{\'GRAPH.BLOCKCHAIN.TX_DIVIDER\'|translate}}\n          <ion-spinner ng-if="loadingRange" class="ion-spinner-small" icon="android"></ion-spinner>\n        </div>\n\n        <div class="item no-padding-xs no-padding-sm"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n             ng-init="setSize(350, 1000)">\n        </div>\n      </ng-controller>\n\n\n      \x3c!-- Blocks issuer --\x3e\n      <ng-controller ng-controller="GpBlockchainIssuersCtrl">\n\n        <div class="item item-divider" ng-if="!loading" translate>GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_DIVIDER</div>\n\n        <div class="item no-padding-xs no-padding-sm"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n             ng-init="setSize(300, 750)">\n        </div>\n\n      </ng-controller>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/common/graph_range_bar.html",'\n  <div class="range range-positive no-padding-left no-padding-right">\n    <a\n      class="button button-stable button-clear no-padding pull-left"\n      ng-click="goPreviousRange($event)">\n      <i class="icon ion-chevron-left"></i>\n    </a>\n    <input type="range"\n           ng-model="formData.timePct"\n           name="timePct"\n           min="0" max="100"\n           value="{{formData.timePct}}"\n           ng-change="onRangeChanged();"\n           ng-model-options="{ debounce: 250 }">\n    <a\n      class="button button-stable button-clear no-padding pull-right"\n      ng-click="goNextRange($event)">\n      <i class="icon ion-chevron-right"></i>\n    </a>\n  </div>\n'),e.put("plugins/graph/templates/common/popover_range_actions.html",'<ion-popover-view class="has-header popover-graph-currency">\n  <ion-header-bar>\n    <h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1>\n  </ion-header-bar>\n  <ion-content scroll="false">\n    <div class="list item-text-wrap">\n\n      \x3c!-- scale --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="toggleScale()">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.scale==\'logarithmic\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.LOGARITHMIC_SCALE\' | translate"></span>\n      </a>\n\n      \x3c!-- duration divider --\x3e\n      <div class="item item-divider">\n        {{\'GRAPH.COMMON.RANGE_DURATION_DIVIDER\'|translate}}\n      </div>\n\n      \x3c!-- duration: hour --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="setRangeDuration(\'hour\')">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'hour\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.HOUR\' | translate"></span>\n      </a>\n\n      \x3c!-- duration: day --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="setRangeDuration(\'day\')">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'day\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.DAY\' | translate"></span>\n      </a>\n\n      \x3c!-- duration: month --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="setRangeDuration(\'month\')">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'month\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.MONTH\' | translate"></span>\n      </a>\n\n    </div>\n  </ion-content>\n</ion-popover-view>\n'),e.put("plugins/graph/templates/currency/graph_du.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs no-padding-sm pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="monetaryMass-bar" class="chart-bar"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="data"\n          chart-labels="labels"\n          chart-colors="colors"\n          chart-dataset-override="datasetOverride"\n          chart-options="options"\n          chart-click="showBlock">\n  </canvas>\n'),e.put("plugins/graph/templates/currency/graph_members_count.html",'  <canvas id="membersCount-bar" class="chart-line"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="data"\n          chart-labels="labels"\n          chart-colors="colors"\n          chart-options="options"\n          chart-dataset-override="datasetOverride"\n          chart-click="onChartClick">\n  </canvas>\n'),e.put("plugins/graph/templates/currency/graph_monetary_mass.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="monetaryMass-bar"\n          class="chart-bar"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="data"\n          chart-labels="labels"\n          chart-colors="colors"\n          chart-dataset-override="datasetOverride"\n          chart-options="options"\n          chart-click="onChartClick">\n  </canvas>\n'),e.put("plugins/graph/templates/currency/popover_monetary_mass_actions.html",'<ion-popover-view class="fit has-header">\n  <ion-header-bar>\n    <h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1>\n  </ion-header-bar>\n  <ion-content scroll="false">\n    <div class="list item-text-wrap">\n\n      <a class="item item-icon-left ink"\n         ng-click="toggleScale()">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.scale==\'logarithmic\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.LOGARITHMIC_SCALE\' | translate"></span>\n      </a>\n\n    </div>\n  </ion-content>\n</ion-popover-view>\n'),e.put("plugins/graph/templates/currency/tab_blocks_extend.html",'\x3c!-- buttons --\x3e\n<ng-if ng-if=":state:enable && extensionPoint === \'buttons\'">\n  <div class="item item-divider">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_blocks_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n'),e.put("plugins/graph/templates/currency/view_currency_extend.html",'\n\x3c!-- section actual parameters --\x3e\n<ng-if ng-if=":state:enable && extensionPoint === \'parameters-actual\'" >\n\n  <ng-if ng-if="!smallscreen">\n    <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n         ng-include="\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n         ng-controller="GpCurrencyMonetaryMassCtrl"\n         ng-init="displayShareAxis=false;">\n    </div>\n    <div class="item buttons no-padding-top ">\n      <a class="pull-right button button-text button-small button-small-padding ink" ui-sref="app.currency_stats_lg">\n        <i class="icon ion-stats-bars"></i>\n        <span translate>GRAPH.COMMON.BTN_SHOW_DETAILED_STATS</span>\n      </a>\n    </div>\n  </ng-if>\n\n  <div class="item item-divider"\n       ng-if="smallscreen">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_parameters_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n\n\x3c!-- section Wot --\x3e\n<ng-if ng-if=":state:enable && extensionPoint === \'wot-actual\'" >\n\n  <ng-if ng-if="!smallscreen">\n    <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n         ng-include="\'plugins/graph/templates/currency/graph_members_count.html\'"\n         ng-controller="GpCurrencyMembersCountCtrl">\n    </div>\n    <div class="item buttons no-padding-top ">\n      <a class="pull-right button button-text button-small button-small-padding ink" ui-sref="app.currency_stats_lg">\n        <i class="icon ion-stats-bars"></i>\n        <span translate>GRAPH.COMMON.BTN_SHOW_DETAILED_STATS</span>\n      </a>\n    </div>\n  </ng-if>\n\n  <div class="item item-divider"\n       ng-if="smallscreen">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_wot_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n\n\x3c!-- section Wot --\x3e\n<ng-if ng-if=":state:enable && extensionPoint === \'network-actual\'" >\n\n  <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n       ng-if="!smallscreen"\n       ng-include="\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n       ng-controller="GpBlockchainIssuersCtrl">\n  </div>\n\n  <div class="item item-divider"\n       ng-if="smallscreen">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_network_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n\n'),e.put("plugins/graph/templates/currency/view_stats_lg.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="padding" >\n\n\n\n    <div class="list" >\n\n      \x3c!-- Monetary mass --\x3e\n      <ng-controller ng-controller="GpCurrencyMonetaryMassCtrl" >\n\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        <div class="item no-padding-xs" ng-if="!loading"\n             ng-include="\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n             ng-init="setSize(250, 1000)">\n        </div>\n\n        <div ng-if="!loading"\n             class="item item-toggle dark no-border text-right">\n          <span class="" translate>COMMON.BTN_RELATIVE_UNIT</span>\n          <label class="toggle toggle-royal" id="helptip-currency-change-unit">\n            <input type="checkbox" ng-model="formData.useRelative">\n            <div class="track">\n              <div class="handle"></div>\n            </div>\n          </label>\n        </div>\n      </ng-controller>\n\n      \x3c!-- DU --\x3e\n      <ng-controller ng-controller="GpCurrencyDUCtrl" >\n        <div class="item no-padding-xs"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/currency/graph_du.html\'"\n             ng-init="setSize(250, 1000)">\n        </div>\n      </ng-controller>\n\n      \x3c!-- Member count  --\x3e\n      <ng-controller ng-controller="GpCurrencyMembersCountCtrl" >\n      <div class="item no-padding-xs"\n           ng-if="!loading"\n           ng-include="\'plugins/graph/templates/currency/graph_members_count.html\'"\n           ng-init="setSize(250, 1000)">\n      </div>\n\n\n    </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/currency/view_wot_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n\n  <ion-content scroll="true" >\n\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <ng-include\n      ng-if="!loading"\n      src="\'plugins/graph/templates/currency/graph_members_count.html\'" ></ng-include>\n  </ion-content>\n  </ion-view>\n'),e.put("plugins/graph/templates/docstats/graph.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs no-padding-sm pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="{{::chartIdPrefix}}{{chart.id}}"\n          class="chart-line"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="chart.data"\n          chart-labels="labels"\n          chart-dataset-override="chart.datasetOverride"\n          chart-options="chart.options"\n          chart-click="onChartClick">\n  </canvas>\n\n  <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/docstats/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.DOC_STATS.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="padding" >\n\n    <div class="list" >\n\n      \x3c!-- Doc stat --\x3e\n      <div class="center padding" ng-if="loading">\n        <ion-spinner icon="android"></ion-spinner>\n      </div>\n\n      <div class="item no-padding-xs no-padding-sm" ng-if="!loading"\n           ng-repeat="chart in charts"\n           ng-include="\'plugins/graph/templates/docstats/graph.html\'"\n           ng-init="setSize(250, 1000)">\n      </div>\n\n    </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/network/view_es_network_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if=":state:enable && extensionPoint === \'documents-buttons\'">\n  <a class="button button-text button-small ink"\n     ui-sref="app.doc_stats_lg" >\n    <i class="icon ion-stats-bars"></i>\n    <span>{{\'NETWORK.VIEW.BTN_GRAPH\'|translate}}</span>\n  </a>\n</ng-if>\n'),e.put("plugins/graph/templates/network/view_es_peer_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if=":state:enable && extensionPoint === \'general\'">\n\n  <a class="item item-icon-left item-icon-right item-text-wrap ink"\n     ng-if="isReachable"\n     ui-sref="app.doc_stats_lg(node)">\n    <i class="icon ion-stats-bars"></i>\n    <span translate>GRAPH.DOC_STATS.TITLE</span>\n    <i class="gray icon ion-ios-arrow-right"></i>\n  </a>\n\n  <a class="item item-icon-left item-icon-right item-text-wrap ink"\n     ng-if="isReachable"\n     ui-sref="app.doc_synchro_lg(node)">\n    <i class="icon ion-stats-bars"></i>\n    <span translate>GRAPH.SYNCHRO.TITLE</span>\n    <i class="gray icon ion-ios-arrow-right"></i>\n  </a>\n</ng-if>\n\n'),e.put("plugins/graph/templates/network/view_network_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if=":state:enable && extensionPoint === \'blockchain-buttons\'">\n  <a class="button button-text button-small ink"\n     ui-sref="app.blockchain_stats" >\n    <i class="icon ion-stats-bars"></i>\n    <span>{{\'NETWORK.VIEW.BTN_GRAPH\'|translate}}</span>\n  </a>\n</ng-if>\n'),e.put("plugins/graph/templates/network/view_peer_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if=":state:enable && extensionPoint === \'general\'">\n\n  <a class="item item-icon-left item-icon-right item-text-wrap ink"\n    ui-sref="app.view_peer_stats({pubkey: node.pubkey})">\n    <i class="icon ion-stats-bars"></i>\n    <span translate>GRAPH.PEER.VIEW.BLOCK_COUNT_LABEL</span>\n    <span class="badge"\n          ng-if="!loading"\n          ng-class="{\'badge-stable\': blockCount > 0, \'badge-assertive\': !blockCount}">\n      {{!blockCount ? \'GRAPH.PEER.VIEW.NO_BLOCK\' : \'GRAPH.PEER.VIEW.BLOCK_COUNT\' | translate:{count: blockCount} }}\n    </span>\n    <ion-spinner class="badge" icon="android" ng-if="loading"></ion-spinner>\n    <i class="gray icon ion-ios-arrow-right"></i>\n  </a>\n</ng-if>\n\n'),e.put("plugins/graph/templates/network/view_peer_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}{{id}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="no-padding">\n\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <div class="list" ng-if="!loading">\n\n      \x3c!--  - - - - TX divider - - - - --\x3e\n      <div class="item item-divider hidden-xs hidden-sm" translate>\n        GRAPH.BLOCKCHAIN.TX_DIVIDER\n      </div>\n\n      <div class="item no-padding-xs"\n           ng-include="\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n           ng-init="setSize(350, 1000)">\n      </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/synchro/graph.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="synchro-chart-{{chart.id}}"\n          class="chart-bar"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="chart.data"\n          chart-labels="labels"\n          chart-dataset-override="chart.datasetOverride"\n          chart-options="chart.options">\n  </canvas>\n\n  <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/synchro/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.SYNCHRO.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="padding" >\n\n    <div class="list" >\n\n      <div class="center padding" ng-if="loading">\n        <ion-spinner icon="android"></ion-spinner>\n      </div>\n\n      <div class="item no-padding-xs" ng-if="!loading"\n           ng-repeat="chart in charts"\n           ng-include="\'plugins/graph/templates/synchro/graph.html\'"\n           ng-init="setSize(250, 1000)">\n      </div>\n\n    </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/map/templates/network/item_search_tooltip.html","<a href=\"#\">\n  {{peer.dns || peer.server}}\n  <span class=\"{{peer.uid ? 'positive' : 'gray'}}\">\n    <i class=\"icon {{peer.uid ? 'ion-person' : 'ion-key'}}\"></i>\n    {{peer.uid ? (peer.name||peer.uid) : (peer.pubkey|formatPubkey) }}\n  </span>\n  <span class=\"gray\">{{peer.ipv4 ? (peer.ipv4 + ':' + peer.port) : ''}}</span>\n  <span class=\"{{peer.bma.useSsl  ? '' : 'ng-hide'}}\"><i class=\"ion-locked\"></i> <small>SSL</small></span>\n</a>\n"),e.put("plugins/map/templates/network/lookup_extend.html",'\x3c!-- FIXME issue #755 - https://git.duniter.org/clients/cesium-grp/cesium/issues/755\n<a ng-if="enable"\n   class="button button-text button-small ink hidden-sm hidden-xs"\n   title="{{\'MAP.NETWORK.LOOKUP.BTN_MAP_HELP\' | translate}}"\n        ui-sref="app.view_network_map">\n  <i class="icon ion-ios-location"></i>\n  {{\'MAP.NETWORK.LOOKUP.BTN_MAP\' | translate}}\n</a>\n --\x3e\n'),e.put("plugins/map/templates/network/view_map.html",'<ion-view left-buttons="leftButtons" class="view-map-network">\n  <ion-nav-title>\n    <span class="hidden-xs" translate>MAP.NETWORK.VIEW.TITLE</span>\n  </ion-nav-title>\n\n  <ion-nav-buttons side="secondary">\n  </ion-nav-buttons>\n\n  <ion-content data-tap-disabled="true">\n    <leaflet id="{{::mapId}}"\n             height="100%"\n             center="map.center"\n             markers="map.markers"\n             layers="map.layers">\n    </leaflet>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/map/templates/registry/item_search_tooltip.html","<a href=\"#\" class=\"{{type}}\">\n  <i class=\"{{'cion-page-' + type}}\"></i>\n  {{name != uid ? name +' ' : ''}}\n  <span class=\"gray\">\n    {{pubkey ? (pubkey|formatPubkey) : ''}}\n  </span>\n</a>\n"),e.put("plugins/map/templates/registry/lookup_lg_extend.html",'<a class="button button-text button-small ink hidden-sm hidden-xs"\n   title="{{\'MAP.REGISTRY.LOOKUP.BTN_MAP_HELP\' | translate}}"\n   ui-sref="app.view_registry_map">\n  <i class="icon ion-ios-location"></i>\n  {{\'MAP.REGISTRY.LOOKUP.BTN_MAP\' | translate}}\n</a>\n'),e.put("plugins/map/templates/registry/popup_marker.html",'<div class="item no-border no-padding item-avatar "\n     ng-if="loadingMarker">\n\n  <i class="item-image icon ion-person"></i>\n\n  <div class="item-content item-avatar-left-padding padding-top" >\n    <h2 class="stable-bg">\n      &nbsp;\n    </h2>\n    <h4 class="stable-bg col-75">\n      &nbsp;\n    </h4>\n    <h4 class="stable-bg col-50">\n      &nbsp;\n    </h4>\n  </div>\n</div>\n\n<a class="item no-border no-padding item-avatar ink animate-fade-in animate-show-hide ng-hide"\n     ng-show="!loadingMarker"\n     ui-sref="app.view_page({id: formData.id, title: formData.name})">\n  <i ng-if="formData.avatar" class="item-image avatar" style="background-image: url({{::formData.avatar.src}}"></i>\n  <i ng-if="!formData.avatar" class="item-image icon cion-page-{{::formData.type}}"></i>\n  <div class="item-content item-avatar-left-padding padding-top">\n    <h2 class="dark">\n      {{::formData.name}}\n    </h2>\n    <h4 ng-if="::formData.category" class="gray" title="{{::formData.category.name}}">\n      <b class="ion-flag"></b> {{::formData.category.name}}\n    </h4>\n    <h4 ng-if="::formData.city" class="gray" title="{{::formData.city}}">\n      <b class="ion-location"></b> {{::formData.city}}\n    </h4>\n  </div>\n</a>\n\x3c!-- buttons --\x3e\n<div class="item no-border no-padding">\n  <div class="pull-left gray">\n    \x3c!-- show description --\x3e\n    <a class="animate-fade-in animate-show-hide gray ng-hide"\n       ng-class="{\'ion-arrow-down-b\': !showDescription, \'ion-arrow-up-b\': showDescription}"\n       ng-click="showDescription=!showDescription;"\n       title="{{\'PROFILE.DESCRIPTION\'|translate}}"\n       ng-show="!loadingMarker && formData.description">\n      &nbsp;\n    </a>\n  </div>\n</div>\n<div class="item no-border no-padding item-text-wrap hidden-xs ng-hide" ng-show="showDescription">\n  <small trust-as-html="::formData.description|truncText:500"></small>\n</div>\n'),e.put("plugins/map/templates/registry/view_map.html",'<ion-view left-buttons="leftButtons" class="view-map-registry">\n  <ion-nav-title>\n    <span class="hidden-xs" translate>MAP.REGISTRY.VIEW.TITLE</span>\n  </ion-nav-title>\n\n  <ion-nav-buttons side="secondary">\n    <button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="load()">\n    </button>\n  </ion-nav-buttons>\n\n  <ion-content data-tap-disabled="true">\n    <a id="helptip-map-registry" style="left: 150px; top: 50px; position: relative;"></a>\n    <leaflet id="{{::mapId}}"\n             height="100%"\n             layers="map.layers"\n             markers="map.markers"\n             lf-center="map.center"\n             bounds="map.bounds">\n    </leaflet>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/map/templates/settings/es_settings_extend.html",'\n\x3c!--<span class="item item-divider" translate>MAP.SETTINGS.MAP_DIVIDER</span>\n\n<label class="item item-toggle dark item-text-wrap">\n  <span translate>MAP.SETTINGS.ENABLE_GOOGLE_API</span>\n  <h4 class="gray" translate>MAP.SETTINGS.ENABLE_GOOGLE_API_HELP</h4>\n  <div class="toggle toggle-royal">\n    <input type="checkbox" ng-model="formData.enableGoogleApi">\n    <div class="track">\n      <div class="handle"></div>\n    </div>\n  </div>\n</label>\n\n<ion-item class="item-input"\n          ng-if="!$root.config.plugins.es.googleApiKey"\n          ng-class="{\'item-input-error\': formData.enableGoogleApi && !formData.googleApiKey}">\n  <div class="input-label col-33">\n    <span class="" ng-class="{\'gray\': !formData.enableGoogleApi}"translate>MAP.SETTINGS.GOOGLE_API_KEY</span>\n    <h4>\n      <a ng-click="openLink($event, \'https://console.developers.google.com/apis/credentials/key\')" translate>MAP.SETTINGS.BTN_GOOGLE_API</a>\n      <span class="gray"> ({{\'MAP.SETTINGS.BTN_GOOGLE_API_WARNING\'|translate}})</span>\n    </h4>\n  </div>\n  <input type="text"\n         placeholder="{{\'MAP.SETTINGS.GOOGLE_API_KEY_PLACEHOLDER\' | translate}}"\n         ng-model="formData.googleApiKey"\n         ng-if="formData.enableGoogleApi">\n</ion-item>\n<div class="form-errors"\n     ng-show="formData.enableGoogleApi && !formData.googleApiKey">\n  <div class="form-error">\n    <span translate="ERROR.FIELD_REQUIRED"></span>\n  </div>\n</div>--\x3e\n'),e.put("plugins/map/templates/user/edit_profile_extend.html",'<div class="item no-padding hidden-xs hidden-sm {{ionItemClass}}" ng-if="formData.geoPoint && formData.geoPoint.lat && formData.geoPoint.lon">\n  <leaflet id="{{::mapId}}"\n           height="250px"\n           center="map.center"\n           markers="map.markers"\n           defaults="map.defaults">\n  </leaflet>\n</div>\n'),e.put("plugins/map/templates/wot/item_search_tooltip.html","<a href=\"#\" class=\"{{type}}\">\n  <i class=\"{{pending ? 'ion-clock': (type ? 'cion-page-' + type : '')}}\"></i>\n  {{name != uid ? name +' ' : ''}}\n  <span class=\"{{uid ? 'positive' : 'gray'}}\">\n    <i class=\"{{uid ? 'ion-person' : 'ion-key'}}\"></i>\n    {{uid ? uid : (pubkey|formatPubkey) }}\n  </span>\n</a>\n"),e.put("plugins/map/templates/wot/lookup_lg_extend.html",'<a ng-if="enable"\n   class="button button-text button-small ink hidden-sm hidden-xs"\n   title="{{\'MAP.WOT.LOOKUP.BTN_MAP_HELP\' | translate}}"\n   ui-sref="app.view_wot_map">\n  <i class="icon ion-ios-location"></i>\n  {{\'MAP.WOT.LOOKUP.BTN_MAP\' | translate}}\n</a>\n'),e.put("plugins/map/templates/wot/popup_marker.html",'\n<div class="item no-border no-padding item-avatar "\n     ng-if="loadingMarker">\n\n  <i class="item-image icon ion-person"></i>\n\n  <div class="item-content item-avatar-left-padding padding-top" >\n    <h2 class="stable-bg">\n      &nbsp;\n    </h2>\n    <h4 class="stable-bg col-75">\n      &nbsp;\n    </h4>\n    <h4 class="stable-bg col-50">\n      &nbsp;\n    </h4>\n  </div>\n</div>\n\n<a class="item no-border no-padding item-avatar ink animate-fade-in animate-show-hide ng-hide"\n   ng-show="!loadingMarker"\n   ui-sref="app.wot_identity({pubkey: formData.pubkey, uid: formData.uid})">\n\n  <i ng-if="formData.avatar" class="item-image avatar" style="background-image: url({{::formData.avatar.src}})"></i>\n  <i ng-if="!formData.avatar && formData.uid" class="item-image icon ion-person"></i>\n  <i ng-if="!formData.avatar && !formData.uid" class="item-image icon ion-card"></i>\n\n  <div class="item-content item-avatar-left-padding padding-top">\n    <h2 class="dark">\n      {{formData.name}}\n    </h2>\n    <h4>\n      <span ng-if="formData.uid" class="positive">\n        <b class="ion-person"></b>\n        {{formData.uid}}\n      </span>\n      <span class="gray" title="{{formData.pubkey}}"><b class="ion-key"></b> {{formData.pubkey|formatPubkey}}</span>\n      <span class="assertive" ng-if="!formData.isMember">\n        {{::\'WOT.NOT_MEMBER_PARENTHESIS\'|translate}}\n      </span>\n    </h4>\n    <h4 ng-if="formData.profile.city" class="gray" title="{{formData.profile.city}}">\n      <b class="ion-location"></b> {{formData.profile.city}}\n    </h4>\n  </div>\n</a>\n\x3c!-- buttons --\x3e\n<div class="item no-border no-padding">\n  <div class="pull-left gray">\n    \x3c!-- show description --\x3e\n    <a class="animate-fade-in animate-show-hide gray ng-hide"\n       ng-class="{\'ion-arrow-down-b\': !showDescription, \'ion-arrow-up-b\': showDescription}"\n       ng-click="showDescription=!showDescription;"\n       title="{{\'PROFILE.DESCRIPTION\'|translate}}"\n       ng-show="!loadingMarker && formData.profile.description">\n      &nbsp;\n    </a>\n  </div>\n  <div style="font-size: 18px;" class="pull-right gray">\n    \x3c!-- share --\x3e\n    <a class="icon ion-android-share-alt "\n       ng-click="showSharePopover($event)"\n       title="{{\'COMMON.BTN_SHARE\' | translate}}">&nbsp;</a>\n    \x3c!-- certify --\x3e\n    <a class="icon ion-ribbon-b"\n       ng-click="certify()"\n       title="{{\'WOT.BTN_CERTIFY\' | translate}}"\n       ng-hide="!canCertify">&nbsp;</a>\n    \x3c!-- compose message --\x3e\n    <a class="icon ion-compose"\n       ng-click="showNewMessageModal()"\n       title="{{\'MESSAGE.BTN_WRITE\' | translate}}">&nbsp;</a>\n    \x3c!-- transfer --\x3e\n    <a class="icon ion-card"\n       ng-click="showTransferModal({pubkey:formData.pubkey, uid: formData.name||formData.uid})"\n       title="{{\'COMMON.BTN_SEND_MONEY\' | translate}}">&nbsp;</a>\n\n  </div>\n</div>\n<div class="item no-border no-padding item-text-wrap hidden-xs ng-hide" ng-show="showDescription">\n  <small trust-as-html="formData.profile.description|truncText:500"></small>\n</div>\n'),e.put("plugins/map/templates/wot/view_map.html",'<ion-view left-buttons="leftButtons" class="view-map-wot">\n  <ion-nav-title>\n    <span class="hidden-xs" translate>MAP.WOT.VIEW.TITLE</span>\n  </ion-nav-title>\n\n  <ion-nav-buttons side="secondary">\n    <button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="load()">\n    </button>\n  </ion-nav-buttons>\n\n  <ion-content data-tap-disabled="true">\n    <a id="helptip-map-wot" style="left: 150px; top: 50px; position: relative;"></a>\n    <leaflet id="{{::mapId}}"\n             height="100%"\n             layers="map.layers"\n             markers="map.markers"\n             lf-center="map.center"\n             bounds="map.bounds">\n    </leaflet>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/es/templates/message/tabs/tab_list.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear icon ion-android-more-vertical" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="\'plugins/es/templates/message/list.html\'"></ng-include></ion-content><div class="visible-xs visible-sm"><button ng-if="fabButtonNewMessageId" id="{{::fabButtonNewMessageId}}" class="button button-fab button-fab-bottom-right button-assertive spin has-footer" ng-click="showNewMessageModal()"><i class="icon ion-compose"></i></button></div></ion-view>'),e.put("plugins/es/templates/registry/tabs/tab_registry.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear" ng-click="showFiltersPopover($event)"><i class="icon ion-android-funnel"></i></button> <button class="button button-icon button-clear icon ion-android-more-vertical" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doSearch()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="::\'plugins/es/templates/registry/lookup_form.html\'"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_list.html\'"></ng-include></ion-content></ion-view>'),e.put("plugins/graph/templates/currency/tabs/tab_blocks_stats.html",'<ion-view>\n  <ion-content>\n    <div\n       ng-include="\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n       ng-controller="GpBlockchainTxCountCtrl"\n       ng-init="setSize(500,700,false)">\n      </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/graph/templates/currency/tabs/tab_network_stats.html",'<ion-view>\n  <ion-content>\n\n    <div class="list">\n      <div class="item"\n         ng-include="\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n         ng-controller="GpBlockchainIssuersCtrl"\n           ng-init="setSize(500,700,true)">\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/graph/templates/currency/tabs/tab_parameters_stats.html",'<ion-view>\n  <ion-content>\n    <div class="list no-padding-xs no-padding-sm">\n\n      <ng-container ng-controller="GpCurrencyMonetaryMassCtrl">\n\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        \x3c!-- Monetary mass --\x3e\n        <div class="item"\n             ng-include="\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n             ng-init="setSize(500,700,true)">\n        </div>\n      </ng-container>\n\n      \x3c!-- DU --\x3e\n      <ng-container ng-controller="GpCurrencyDUCtrl">\n        <div class="item"\n             ng-include="\'plugins/graph/templates/currency/graph_du.html\'"\n             ng-init="setSize(500,700,true)">\n        </div>\n      </ng-container>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/graph/templates/currency/tabs/tab_wot_stats.html",'<ion-view>\n  <ion-content>\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <div class="list no-padding">\n      <div class="item no-padding-top"\n           ng-include="\'plugins/graph/templates/currency/graph_members_count.html\'"\n           ng-init="setSize(600,700,false)">\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n')}]),angular.module("cesium.es.plugin",["cesium.es.services","cesium.es.app.controllers","cesium.es.common.controllers","cesium.es.settings.controllers","cesium.es.currency.controllers","cesium.es.wot.controllers","cesium.es.wallet.controllers","cesium.es.profile.controllers","cesium.es.message.controllers","cesium.es.notification.controllers","cesium.es.blockchain.controllers","cesium.es.network.controllers","cesium.es.registry.controllers","cesium.es.group.controllers","cesium.es.invitation.controllers","cesium.es.subscription.controllers","cesium.es.document.controllers","cesium.es.like.controllers"]),X.prototype.regexp={API_REGEXP:/^([A-Z_]+)(?:[ ]+([a-z_][a-z0-9-_.ÄŸÄž]*))?(?:[ ]+([0-9.]+))?(?:[ ]+([0-9a-f:]+))?(?:[ ]+([0-9]+))(?:\/[^\/]+)?$/,LOCAL_IP_ADDRESS:/^127[.]0[.]0.|192[.]168[.]|10[.]0[.]0[.]|172[.]16[.]/},X.prototype.keyID=function(){var e=this.ep||this.getEP();return e.useBma?[this.pubkey||"Unknown",e.dns,e.ipv4,e.ipv6,e.port,e.useSsl,e.path].join("-"):[this.pubkey||"Unknown",e.ws2pid,e.path].join("-")},X.prototype.copyValues=function(e){var t=this;["version","currency","pub","endpoints","hash","status","block","signature"].forEach((function(n){e[n]=t[n]}))},X.prototype.copyValuesFrom=function(e){var t=this;["version","currency","pub","endpoints","block","signature"].forEach((function(n){t[n]=e[n]}))},X.prototype.json=function(){var e=this,t={};return["version","currency","endpoints","status","block","signature"].forEach((function(n){t[n]=e[n]})),t.raw=this.raw&&this.getRaw(),t.pubkey=this.pubkey,t},X.prototype.getEP=function(){if(this.ep)return this.ep;var e=null,t=this.regexp.API_REGEXP;return this.endpoints.forEach((function(n){var i=!e&&t.exec(n);i&&(e={api:i[1]||"",dns:i[2]||"",ipv4:i[3]||"",ipv6:i[4]||"",port:i[5]||80,path:i[6]||"",useSsl:443==i[5]})})),e||{}},X.prototype.getEndpoints=function(e){return e?("string"==typeof e&&(e=new RegExp("^"+e)),this.endpoints.reduce((function(t,n){return n.match(e)?t.concat(n):t}),[])):this.endpoints},X.prototype.hasEndpoint=function(e){var t=this.regexp[e]||new RegExp("^"+e),n=this.getEndpoints(t);return n&&n.length>0},X.prototype.hasEsEndpoint=function(){var e=this.getEsEndpoints();return e&&e.length>0},X.prototype.getEsEndpoints=function(){return this.getEndpoints(/^(ES_CORE_API|ES_USER_API|ES_SUBSCRIPTION_API|GCHANGE_API)/)},X.prototype.getDns=function(){var e=this.ep||this.getEP();return e.dns?e.dns:null},X.prototype.getIPv4=function(){var e=this.ep||this.getEP();return e.ipv4?e.ipv4:null},X.prototype.getIPv6=function(){var e=this.ep||this.getEP();return e.ipv6?e.ipv6:null},X.prototype.getPort=function(){var e=this.ep||this.getEP();return e.port?e.port:null},X.prototype.getHost=function(){var e=this.ep||this.getEP();return(443==e.port||e.useSsl)&&e.dns?e.dns:this.hasValid4(e)?e.ipv4:e.dns?e.dns:e.ipv6?"["+e.ipv6+"]":""},X.prototype.getURL=function(){var e=this.ep||this.getEP(),t=this.getHost();return(443==e.port||e.useSsl?"https":"http")+"://"+t+(e.port?":"+e.port:"")},X.prototype.getServer=function(){var e=this.ep||this.getEP(),t=this.getHost();return t+(t&&e.port?":"+e.port:"")},X.prototype.hasValid4=function(e){return!(!e.ipv4||e.ipv4.match(this.regexp.LOCAL_IP_ADDRESS))},X.prototype.isReachable=function(){return!!this.getServer()},X.prototype.isSsl=function(){return(this.ep||this.getEP()).useSsl},X.prototype.isTor=function(){return(this.ep||this.getEP()).useTor},X.prototype.isHttp=function(){return this.ep||this.getEP(),!bma.useTor},angular.module("cesium.es.services",["cesium.es.http.services","cesium.es.comment.services","cesium.es.social.services","cesium.es.settings.services","cesium.es.crypto.services","cesium.es.profile.services","cesium.es.notification.services","cesium.es.message.services","cesium.es.modal.services","cesium.es.blockchain.services","cesium.es.registry.services","cesium.es.group.services","cesium.es.wallet.services","cesium.es.invitation.services","cesium.es.subscription.services","cesium.es.wot.services","cesium.es.tx.services","cesium.es.geo.services","cesium.es.document.services","cesium.es.network.services","cesium.es.like.services"]),angular.module("cesium.es.comment.services",["ngResource","cesium.services","cesium.es.http.services","cesium.es.profile.services"]).factory("esComment",["$rootScope","$q","esHttp","csWallet","csWot",function(e,t,n,i,a){return{instance:function(o){var r={commons:["issuer","creationTime","time","message","reply_to"]},s={index:o,fields:{commons:r.commons},raw:{search:n.post("/"+o+"/comment/_search"),remove:n.record.remove(o,"comment"),wsChanges:n.ws("/ws/_changes"),add:new n.record.post("/"+o+"/comment",{creationTime:!0}),update:new n.record.post("/"+o+"/comment/:id/_update",{creationTime:!0})}};return s.raw.refreshTreeLinks=function(e){return s.raw.addTreeLinks(e,!0)},s.raw.addTreeLinks=function(e,i){(e=e||{}).result=e.result||[],e.mapById=e.mapById||{};var a={};if(_.forEach(_.values(e.mapById),(function(t){if(t.reply_to&&!t.parent){var n=e.mapById[t.reply_to];n||(n=new z(t.reply_to),a[n.id]=t.id,e.mapById[n.id]=n),i&&n.containsReply(t)||n.addReply(t)}})),!_.size(a)){var o=t.defer();return o.resolve(e),o.promise}var l={query:{terms:{_id:_.keys(a)}},sort:[{creationTime:{order:"desc"}},{time:{order:"desc"}}],from:0,size:1e3,_source:r.commons};return console.debug("[ES] [comment] Getting missing comments in tree"),s.raw.search(l).then((function(t){return t.hits.total?(_.forEach(t.hits.hits,(function(t){var i=e.mapById[t._id];i.copyFromJson(t._source),i.html=n.util.parseAsHtml(i.message),delete a[i.id]})),_.size(a)&&console.error("Comments has invalid [reply_to]: "+_.values(a).join(",")),s.raw.addTreeLinks(e)):(console.error("[ES] [comment] Comments has invalid [reply_to]: "+_.values(a).join(",")),e)}))},s.raw.loadDataByRecordId=function(e,t){(t=t||{}).from=t.from||0,t.size=t.size||20,t.loadAvatar=!angular.isDefined(t.loadAvatar)||t.loadAvatar,t.loadAvatarAllParent=!!angular.isDefined(t.loadAvatarAllParent)&&t.loadAvatar&&t.loadAvatarAllParent,t.size<0&&(t.size=1e3);var i={query:{term:{record:e}},sort:[{creationTime:{order:"desc"}},{time:{order:"desc"}}],from:t.from,size:t.size,_source:r.commons},o={total:0,mapById:{},result:[],pendings:{}};return s.raw.search(i).then((function(e){return e.hits.total?(o.total=e.hits.total,o.result=e.hits.hits.reduce((function(e,t){var i=new z(t._id,t._source)
+;return i.html=n.util.parseAsHtml(i.message),o.mapById[i.id]=i,e.concat(i)}),o.result),s.raw.addTreeLinks(o)):o})).then((function(){if(t.loadAvatar)return t.loadAvatarAllParent?a.extendAll(_.values(o.mapById),"issuer"):a.extendAll(o.result,"issuer")})).then((function(){return o.result=o.result.sort((function(e,t){return e.creationTime-t.creationTime})),o}))},s.raw.createOnDeleteListener=function(e){return function(n){var a=_.findIndex(e.result,{id:n.id});if(-1!==a)return e.result.splice(a,1),delete e.mapById[n.id],(i.isUserPubkey(n.issuer)?i:i.children.getByPubkey(n.issuer))?s.raw.remove(n.id).catch((function(e){throw console.error(e),new Error("COMMENTS.ERROR.FAILED_REMOVE_COMMENT")})):t.reject("No wallet found corresponding to the comment issuer")}},s.raw.startListenChanges=function(t,r,l){(r=r||{}).result=r.result||[],r.mapById=r.mapById||{},r.pendings=r.pendings||{},l=l||e;var c=s.raw.createOnDeleteListener(r);_.forEach(r.result,(function(e){e.addOnRemoveListener(c)}));var u=Date.now();console.info("[ES] [comment] Starting websocket to listen comments on [{0}/record/{1}]".format(o,t.substr(0,8)));var d=n.websocket.changes(o+"/comment");return d.open().then((function(){console.debug("[ES] [comment] Websocket opened in {0} ms".format(Date.now()-u)),d.on((function(e){e&&l.$applyAsync((function(){var o=r.mapById[e._id];"DELETE"===e._operation?o&&o.remove():e._source&&e._source.record===t&&(o?(o.copyFromJson(e._source),o.html=n.util.parseAsHtml(o.message),s.raw.refreshTreeLinks(r)):r.pendings&&r.pendings[e._source.creationTime]||e._source.issuer==i.data.pubkey?console.debug("Skip comment received by WS (already in pending)"):((o=new z(e._id,e._source)).addOnRemoveListener(c),o.isnew=!0,o.html=n.util.parseAsHtml(o.message),r.mapById[e._id]=o,s.raw.refreshTreeLinks(r).then((function(){return a.extend(o,"issuer")})).then((function(){r.result.push(o)}))))}))}))}))},s.raw.save=function(e,t,a){(t=t||{}).result=t.result||[],t.mapById=t.mapById||{},t.pendings=t.pendings||{};var o,r=a.id,l={creationTime:r?a.creationTime||a.time:moment().utc().unix(),message:a.message,record:e,issuer:i.data.pubkey};return a.reply_to||a.parent?l.reply_to=a.reply_to||a.parent.id:l.reply_to=null,r?(o=t.mapById[r]).copy(a):((o=new z(null,l)).addOnRemoveListener(s.raw.createOnDeleteListener(t)),o.uid=i.data.uid,o.name=i.data.name,o.avatar=i.data.avatar,o.isnew=!0,a.parent&&a.parent.addReply(o),t.result.push(o)),o.html=n.util.parseAsHtml(o.message),r?s.raw.update(l,{id:r}).then((function(){return o})):(t.pendings=t.pendings||{},t.pendings[l.creationTime]=l,s.raw.add(l).then((function(e){return o.id=e,t.mapById[e]=o,delete t.pendings[l.creationTime],o})))},s.raw.stopListenChanges=function(e){console.debug("[ES] [comment] Stopping websocket on comments"),_.forEach(e.result,(function(e){e.cleanAllListeners()})),s.raw.wsChanges().close()},s.load=s.raw.loadDataByRecordId,s.save=s.raw.save,s.changes={start:s.raw.startListenChanges,stop:s.raw.stopListenChanges},s}}}]),angular.module("cesium.es.http.services",["ngResource","ngApi","cesium.services","cesium.config"]).factory("esHttp",["$q","$timeout","$rootScope","$state","$sce","$translate","$window","$filter","CryptoUtils","UIUtils","csHttp","csConfig","csSettings","csCache","BMA","csWallet","csPlatform","Api",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,f){var T=!!("true"===d.httpsMode||!0===d.httpsMode||"force"===d.httpsMode||r.location&&"https:"===r.location.protocol);function h(i,a,r,h){var v,I,N=this,O={ES_USER_API:"ES_USER_API",ES_SUBSCRIPTION_API:"ES_SUBSCRIPTION_API",ES_USER_API_ENDPOINT:"ES_USER_API( ([a-z_][a-z0-9-_.]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))",ANY_API_ENDPOINT:"([A-Z_]+)(?:[ ]+([a-z_][a-z0-9-_.ğĞ]*))?(?:[ ]+([0-9.]+))?(?:[ ]+([0-9a-f:]+))?(?:[ ]+([0-9]+))(?:\\/[^\\/]+)?",MAX_UPLOAD_BODY_SIZE:d.plugins&&d.plugins.es&&d.plugins.es.maxUploadBodySize||2097152},R={IMAGE_SRC:P("data:([A-Za-z//]+);base64,(.+)"),URL:k("(www\\.|https?://(www\\.)?)[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)"),HASH_TAG:k("(?:^|[\t\n\rs ])#([0-9_-\\wḡĞǦğàáâãäåçèéêëìíîïðòóôõöùúûüýÿ]+)"),USER_TAG:k("(?:^|[\t\n\rs ])@("+E.constants.regexp.USER_ID+")"),ES_USER_API_ENDPOINT:P(O.ES_USER_API_ENDPOINT),API_ENDPOINT:P(O.ANY_API_ENDPOINT)},A=0,S=s("truncUrl");function C(e,t,n,i){!e&&p.data&&(e=e||(p.data.plugins&&p.data.plugins.es?p.data.plugins.es.host:null),t=t||(e?p.data.plugins.es.port:null),n=angular.isDefined(n)?n:443==t||p.data.plugins.es.useSsl||T),N.alive=!1,N.host=e,N.port=t||(n||T?443:80),N.useSsl=angular.isDefined(n)?n:443==N.port||T,N.server=u.getServer(e,t)}function L(e){if(!(e=e||p.data).plugins||!e.plugins.es)return!1;var t=e.plugins.es.host,n=443==e.plugins.es.port||e.plugins.es.useSsl||T;return D(t,e.plugins.es.port||(n?443:80),n)}function D(e,t,n){return N.host===e&&N.port===t&&(angular.isUndefined(n)||n==N.useSsl)}function y(e){N.data.isFallback=e}function P(e){return new RegExp("^"+e+"$")}function k(e){return new RegExp(e)}function M(t,n){return n=n||e.defer(),N.data.isFallback&&N.started&&N.stop(),N.data.isFallback=!1,I=null,n.resolve(t),n.promise}function w(e,t){for(var n="@"===(t=t||"#")?R.USER_TAG:R.HASH_TAG,i=e&&n.exec(e),a=i&&[];i;){var o=i[1];_.contains(a,o)||a.push(o),i=(e=e.substr(i.index+i[1].length+1)).length>0&&n.exec(e)}return a}N.data={isFallback:!1},N.cache={getByPath:{},postByPath:{},wsByPath:{}},N.api=new f(this,"esHttp"),N.started=!1,N.init=C,C(i,a,r),N.useCache=!!angular.isDefined(h)&&h,N.cleanCache=function(){console.debug("[ES] [http] Cleaning requests cache..."),_.keys(N.cache.wsByPath).forEach((function(e){N.cache.wsByPath[e].close()})),N.cache={getByPath:{},postByPath:{},wsByPath:{}},m.clear("esHttp-")},N.copy=function(e){return N.started&&N.stop(),N.init(e.host,e.port,e.useSsl||443==e.port),N.data.isTemporary=!1,N.start(!0)},N.date={now:u.date.now},N.byteCount=function(e){return e="string"==typeof e?e:JSON.stringify(e),encodeURI(e).split(/%(?:u[0-9A-F]{2})?[0-9A-F]{2}|./).length-1},N.getUrl=function(e){return u.getUrl(N.host,N.port,e,N.useSsl)},N.get=function(t,n){n=N.useCache&&n;var i=t+(n?"#"+n:""),a=function(o){if(!N.started)return N._startPromise||console.warn("[ES] [http] Trying to get [{0}] before start(). Waiting...".format(t)),N.ready().then((function(t){return t?a(o):e.reject("ERROR.ES_CONNECTION_ERROR")}));var r=N.cache.getByPath[i];return r||(r=n?u.getWithCache(N.host,N.port,t,N.useSsl,n,null,null,"esHttp-"):u.get(N.host,N.port,t,N.useSsl),N.cache.getByPath[i]=r),r(o)};return a},N.post=function(t){var n=function(i,a){if(!N.started)return N._startPromise||console.error("[ES] [http] Trying to post [{0}] before start()...".format(t)),N.ready().then((function(t){return t?n(i,a):e.reject("ERROR.ES_CONNECTION_ERROR")}));var o=N.cache.postByPath[t];return o||(o=u.post(N.host,N.port,t,N.useSsl),N.cache.postByPath[t]=o),o(i,a)};return n},N.ws=function(e){return function(){var t=N.cache.wsByPath[e];return t&&!t.isClosed()||((t=u.ws(N.host,N.port,e,N.useSsl)).onclose=function(){delete N.cache.wsByPath[e]},N.cache.wsByPath[e]=t),t}},N.wsChanges=function(e){var t=N.ws("/ws/_changes")();if(!e)return t;var n=t.open;return t.open=function(){return n.call(t).then((function(t){t?t.send(e):console.warn("Trying to access ws changes, but no sock anymore... already open ?")}))},t},N.isAlive=function(){return u.get(N.host,N.port,"/node/summary",N.useSsl)().then((function(e){var t=e&&e.duniter&&e.duniter.software||"unknown";return"cesium-plus-pod"===t||"duniter4j-elasticsearch"===t||(console.error("[ES] [http] Not a Cesium+ Pod, but a {0} node. Please check '/node/summary'".format(t)),!1)})).catch((function(){return!1}))},N.checkNodeAlive=function(e){if(e)return y(!L()),!0;if(angular.isUndefined(e))return N.isAlive().then(N.checkNodeAlive);var t=p.data.plugins&&p.data.plugins.es||{};I=I||{host:t.host,port:t.port};var n=t.fallbackNodes&&A<t.fallbackNodes.length&&t.fallbackNodes[A++];if(!n)return o("ERROR.ES_CONNECTION_ERROR",{server:N.server}).then(c.alert.info),!1;var i=u.getServer(n.host,n.port);return c.loading.hide(),o("CONFIRM.ES_USE_FALLBACK_NODE",{old:N.server,new:i}).then(c.alert.confirm).then((function(e){return!!e&&(N.cleanCache(),N.init(n.host,n.port,n.useSsl||443==n.port),N.isAlive().then(N.checkNodeAlive))}))},N.isStarted=function(){return N.started},N.ready=function(){return N.started?e.when(!0):N._startPromise||N.start()},N.start=function(t){return N._startPromise?N._startPromise:N.started?e.when(N.alive):(N._startPromise=g.ready().then((function(){t||N.init()})).then((function(){console.debug("[ES] [http] Starting on [{0}]{1}...".format(N.server,N.useSsl?" (SSL on)":""));var e=Date.now();return N.checkNodeAlive().then((function(t){return N.alive=t,t?(v=[p.api.data.on.reset(n,M,N)],console.debug("[ES] [http] Started in "+(Date.now()-e)+"ms"),N.api.node.raise.start(),N.started=!0,delete N._startPromise,A=0,!0):(console.error("[ES] [http] Could not start [{0}]: node unreachable".format(N.server)),N.started=!0,delete N._startPromise,A=0,!1)}))})),N._startPromise)},N.stop=function(){return console.debug("[ES] [http] Stopping..."),_.forEach(v,(function(e){e()})),v=[],y(!1),delete N._startPromise,N.alive?(N.cleanCache(),N.alive=!1,N.started=!1,N.api.node.raise.stop()):N.started=!1,e.when()},N.restart=function(){return N.stop(),t(N.start,200)},N.image={},N.image.fromHit=function(e,t){if(e&&e._source){var n=e._source[t];if(n&&n._content_type&&n._content_type.startsWith("image/")){var i={};if(n._content)i.src="data:"+n._content_type+";base64,"+n._content;else{var a=n._content_type.substr(6),o=[e._index,e._type,e._id,"_image",t].join("/");o="/"+o+"."+a,i.src=N.getUrl(o)}return n._title&&(i.title=n._title),n._name&&(i.name=n._name),i}}},N.api.registerEvent("node","start"),N.api.registerEvent("node","stop");var U={getServer:u.getServer,node:{summary:N.get("/node/summary"),parseEndPoint:function(e){var t=R.API_ENDPOINT.exec(e);if(t)return{api:t[1]||"",dns:t[2]||"",ipv4:t[3]||"",ipv6:t[4]||"",port:t[5]||80,path:t[6]||"",useSsl:443==t[5]}},same:D,sameAsSettings:L,isFallback:function(){return N.data.isFallback}},websocket:{changes:N.wsChanges,block:N.ws("/ws/block"),peer:N.ws("/ws/peer")},wot:{member:{uids:N.get("/wot/members")}},network:{peering:{self:N.get("/network/peering")},peers:N.get("/network/peers")},record:{post:function(t,n){n=n||{};var i=N.post(t);return function(t,a){var o=(a=a||{}).wallet||a.walletId&&b.children.get(a.walletId)||(!a.pubkey||b.isUserPubkey(a.pubkey))&&b||a.pubkey&&b.children.getByPubkey(a.pubkey),r=a.keypair||o&&o.data&&o.data.keypair;if(!r&&!o)throw new Error("Missing wallet or keypair, to sign record");return delete a.wallet,delete a.walletId,delete a.keypair,(a=angular.copy(a)).pubkey=a.pubkey||o.data.pubkey,(o.isAuth()?e.when(o.data):o.auth({silent:!0,minData:!0})).then((function(){a.creationTime&&!t.creationTime&&(t.creationTime=moment().utc().unix());var e=moment().utc().unix();t.time=!t.time||t.time<e?e:t.time+1;var o=angular.copy(t);delete o.signature,delete o.hash,o.issuer=a.pubkey,o.version||(o.version=2),n.tagFields&&function(e,t){t=t||["title","description"],e.tags=t.reduce((function(t,n){var i=e[n],a=i&&w(i);return a?t.concat(a):t}),[])}(o,n.tagFields);var s=JSON.stringify(o);return l.util.hash(s).then((function(e){return l.sign(e,r).then((function(t){return s='{"hash":"{0}","signature":"{1}",'.format(e,t)+s.substring(1),i(s,a).then((function(e){return m.clear("esHttp-"),e})).catch((function(e){var t=N.byteCount(o);if(t>O.MAX_UPLOAD_BODY_SIZE)throw{message:"ERROR.ES_MAX_UPLOAD_BODY_SIZE",length:t};throw e}))}))}))}))}},remove:function(t,n){return function(i,a){var o=(a=a||{}).wallet||a.walletId&&b.children.get(a.walletId)||b;return(o.isAuth()?e.when(o.data):o.auth({silent:!0,minData:!0})).then((function(e){var a={version:2,index:t,type:n,id:i,issuer:e.pubkey,time:moment().utc().unix()},o=JSON.stringify(a);return l.util.hash(o).then((function(t){return l.sign(t,e.keypair).then((function(e){return o='{"hash":"{0}","signature":"{1}",'.format(t,e)+o.substring(1),N.post("/history/delete")(o).then((function(e){return e}))}))}))}))}},count:function(e,t,n){var i=N.get("/{0}/{1}/_search?size=0".format(e,t),n);return function(e){return i(e).then((function(e){return e&&e.hits&&e.hits.total}))}}},image:{fromAttachment:function(e){if(!e||!e._content_type||!e._content||0===e._content.length)return null;var t={src:"data:"+e._content_type+";base64,"+e._content};return e._title&&(t.title=e._title),e._name&&(t.name=e._name),t},toAttachment:function(e){if(!e||!e.src)return null;var t=R.IMAGE_SRC.exec(e.src);if(!t)return null;var n={_content_type:t[1],_content:t[2]};return e.title&&(n._title=e.title),e.name&&(n._name=e.name),n}},hit:{empty:function(){return{_id:null,_index:null,_type:null,_version:null,_source:{}}}},util:{parseTags:w,parseAsHtml:function(e,t){var n=e?function(e){return e?e.replace(/</g,"&lt;").replace(/>/g,"&gt;"):e}(e.trim()):void 0;if(n){(t=t||{}).tagState=t.tagState||"app.wot_lookup.tab_search",t.uidState=t.uidState||"app.wot_identity_uid",!t.newLine&&angular.isDefined(t.newLine)||(n=n.replace(/\n/g,"<br>\n"));var i=function(e){for(var t=e&&R.URL.exec(e),n=t&&[];t;){var i=t[0];_.contains(n,i)||n.push(i),t=(e=e.substr(t.index+t[0].length+1))&&R.URL.exec(e)}return n}(n);_.forEach(i,(function(e){var t=e.startsWith("http://")||e.startsWith("https://")?e:"http://"+e,i='<a on-tap="openLink($event, \'{0}\')" href="{1}" target="_blank">{2}</a>'.format(t,t,S(e));n=n.replace(e,i)}));var a=w(n);_.forEach(a,(function(e){var i="<a ui-sref=\"{0}({hash: '{1}'})\">#{2}</a>".format(t.tagState,e,e);n=n.replace("#"+e,i)}));var o=w(n,"@");_.forEach(o,(function(e){var i="<a ui-sref=\"{0}({uid: '{1}'})\">@{2}</a>".format(t.uidState,e,e);n=n.replace("@"+e,i)}));var r=function(e,t,n){for(var i=k("(?:^|[\\r\\s])("+(t=t||"##")+"([^#></]+)<br>)"),a=e&&i.exec(e),o=a&&[],r=a&&[];a;){var s=a[1];_.contains(o,s)||(o.push(s),r.push({line:s,title:a[2]})),a=(e=e.substr(a.index+a[1].length+1)).length>0&&i.exec(e)}return r}(n,"#+[ ]*");_.forEach(r,(function(e){var t=e.line.lastIndexOf("#",5)+1;n=n.replace(e.line,"<h{0}>{1}</h{2}>".format(t,e.title,t))}))}return n},findObjectInTree:function e(t,n){if(t)return t[n]?t[n]:Array.isArray(t)?t.reduce((function(t,i){return t||e(i,n)}),!1):"object"==typeof t?_.reduce(_.keys(t),(function(i,a){return i||e(t[a],n)}),!1):void 0}},cache:u.cache,constants:O};U.constants.regexp=R,angular.merge(N,U)}T&&console.debug("[ES] [https] Enable SSL (forced by config or detected in URL)");var v=new h(void 0,void 0,void 0,!0);return v.instance=function(e,t,n,i){return new h(e,t,n,i)},v.lightInstance=function(e,t,n,i){function a(n,i){return u.get(e,t,n)(i).then((function(e){return e&&e.hits&&e.hits.total}))}return t=t||80,n=angular.isDefined(n)?n:443==+t,{host:e,port:t,useSsl:n,node:{summary:u.getWithCache(e,t,"/node/summary",n,u.cache.LONG,!1,i)},network:{peering:{self:u.get(e,t,"/network/peering",n,i)},peers:u.get(e,t,"/network/peers",n,i)},blockchain:{current:u.get(e,t,"/blockchain/current?_source=number,hash,medianTime",n,i)},record:{count:function(e,t){return a("/{0}/{1}/_search?size=0".format(e,t))}},subscription:{count:function(e){return a("/subscription/record/_search?size=0&q="+_.keys(e||{}).reduce((function(t,n){return(t&&t+" AND "||"")+n+":"+e[n]}),""))}}}},v}]),angular.module("cesium.es.settings.services",["cesium.services","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esSettings")}]).factory("esSettings",["$rootScope","$q","$timeout","Api","esHttp","csConfig","csSettings","CryptoUtils","Device","UIUtils","csWallet",function(e,t,n,i,a,o,r,s,l,c,u){var d,p,m={includes:["locale","showUDHistory","useRelative","useLocalStorage","useLocalStorageEncryption","expertMode","logoutIdle","blockValidityWindow"],excludes:["timeout","cacheTimeMs","version","build","minVersion","fallbackLanguage"],plugins:{es:{excludes:["enable","host","port","useSsl","fallbackNodes","enableGoogleApi","googleApiKey","document","maxUploadBodySize","defaultCountry"],notifications:{}}},wallet:{includes:["alertIfUnusedWallet"],excludes:["notificationReadTime"]},helptip:{excludes:["installDocUrl"]},notifications:{excludes:["time","warnCount","unreadCount"]}},E=angular.merge({plugins:{es:{askEnable:!1,useRemoteStorage:!0,notifications:{txSent:!0,txReceived:!0,certSent:!0,certReceived:!0,emitHtml5:!1},invitations:{readTime:!0},defaultCountry:void 0,enableGoogleApi:!1,googleApiKey:void 0,wot:{enableMixedSearch:!0},document:{index:"user,page,group",type:"profile,record,comment"},registry:{defaultSearch:{location:null,geoPoint:null}},geoDistance:"20km"}}},{plugins:{es:o.plugins&&o.plugins.es||{}}}),b=this,g=new i("esSettings"),f=!1,T=!1;function h(e,n){return n=n||t.defer(),angular.merge(e,E),T=!1,n.resolve(e),n.promise}function v(e,n){return n=n||t.defer(),e&&e.pubkey&&e.keypair&&e.keypair.signSk&&e.keypair.boxSk?(console.debug("[ES] [settings] Loading user settings..."),function(e,t){var n=Date.now();return b.get({id:e}).catch((function(e){if(e&&e.ucode&&404==e.ucode)return null;throw e})).then((function(e){if(e&&e._source){var i=e._source;if(i.time!==r.data.time){var a=s.util.decode_base58(i.nonce);return s.box.open(i.content,a,t.boxPk,t.boxSk).then((function(e){var t=JSON.parse(e||"{}");return t.time=i.time,console.debug("[ES] [settings] Loaded and decrypted in "+(Date.now()-n)+"ms"),t})).catch((function(e){return console.error("[ES] [settings] Could not load remote settings: "+(e&&e.message||"decryption error")),delete r.data.time,null}))}console.debug("[ES] [settings] Loaded in "+(Date.now()-n)+"ms, but already up to date")}}))}(e.pubkey,e.keypair).then((function(e){if(e)return angular.merge(r.data,e),d=e,console.debug("[ES] [settings] Applied"),N()})).then((function(){n.resolve(e)})).catch((function(e){n.reject(e)})),n.promise):(n.resolve(),n.promise)}function I(e){if(!f){var n=p&&p.length>0;!a.isStarted()||a.node.isFallback()||a.node.sameAsSettings(e)||(O(),a.stop()),R(),b.isEnable()&&u.isAuth()&&(n?function(e){var n=function e(t,n){var i={};return n.includes&&_.forEach(_.keys(n),(function(e){"includes"!=e&&"excludes"!=e&&n.includes.push(e)})),_.forEach(_.keys(t),(function(a){n.includes&&!_.contains(n.includes,a)||n.excludes&&_.contains(n.excludes,a)||(t[a]&&"object"==typeof t[a]&&n[a]&&"object"==typeof n[a]?i[a]=e(t[a],n[a]):i[a]=t[a])})),i}(e,m);if(d&&angular.equals(n,d))return t.when();if(!r.data.plugins.es.useRemoteStorage)return N();var i=moment().utc().unix();console.debug("[ES] [settings] Saving user settings remotely..."),t.all([u.getKeypair(),s.util.random_nonce()]).then((function(t){var a=t[0],o=t[1];if(a.boxPk&&a.boxSk){var r={issuer:u.data.pubkey,nonce:s.util.encode_base58(o),time:i},l=JSON.stringify(n);return s.box.pack(l,o,a.boxPk,a.boxSk).then((function(t){return r.content=t,angular.isUndefined(e.time)?b.add(r):b.update(r,{id:r.issuer}).catch((function(e){if(e&&404==e.ucode)return b.add(r);throw e}))})).then((function(){return!0}))}})).then((function(t){if(t)return e.time=i,d=n,console.debug("[ES] [settings] Saved user settings remotely in "+(moment().utc().unix()-i)+"ms"),N()})).catch((function(e){throw console.error(e),e}))}(e):v(u.data))}}function N(){return f?t.when():(f=!0,r.store().then((function(){f=!1})).catch((function(e){throw f=!1,e})))}function O(){_.forEach(p,(function(e){e()})),p=[]}function R(){var t=b.isEnable();return!t&&p&&p.length>0?(console.debug("[ES] [settings] Disable"),O(),a.stop().then((function(){g.state.raise.changed(t)}))):!t||p&&0!==p.length&&a.isStarted()?void 0:a.start().then((function(n){return n?(console.debug("[ES] [settings] Enable"),function(){p=[r.api.data.on.reset(e,h,this),u.api.data.on.auth(e,v,this)]}(),u.isAuth()?v(u.data).then((function(){g.state.raise.changed(t)})):void g.state.raise.changed(t)):(r.data.plugins.es.enable=!1,r.data.plugins.es.askEnable=!0,T=!0,g.state.raise.changed(!1),void console.error("[ES] [settings] Disable, has ES node could not be started"))}))}return b.api=g,b.get=a.get("/user/settings/:id"),b.add=a.record.post("/user/settings"),b.update=a.record.post("/user/settings/:id/_update"),b.isEnable=function(){return r.data.plugins&&r.data.plugins.es&&r.data.plugins.es.enable&&!!r.data.plugins.es.host},b.notifications={},b.notifications.isEmitHtml5Enable=function(){return!!(b.isEnable()&&r.data.plugins.es.notifications&&angular.isDefined(r.data.plugins.es.notifications.emitHtml5))&&r.data.plugins.es.notifications.emitHtml5},b.wot={},b.wot.isMixedSearchEnable=function(){return b.isEnable()&&(!angular.isDefined(r.data.plugins.es.wot&&r.data.plugins.es.wot.enableMixedSearch)||r.data.plugins.es.wot.enableMixedSearch)},g.registerEvent("state","changed"),r.ready().then((function(){return r.api.data.on.changed(e,I,this),a.api.node.on.stop(e,(function(){d=null}),this),R()})).then((function(){if(!T&&o.plugins&&o.plugins.es&&o.plugins.es.askEnable&&!b.isEnable()&&r.data.plugins.es.askEnable)return c.alert.confirm("ES_SETTINGS.CONFIRM.ASK_ENABLE","ES_SETTINGS.CONFIRM.ASK_ENABLE_TITLE",{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES"}).then((function(e){return e&&(r.data.plugins.es.enable=!0),r.data.plugins.es.askEnable=!1,r.store()}))})),b}]),angular.module("cesium.es.registry.services",["ngResource","cesium.services","cesium.es.http.services","cesium.es.like.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esRegistry")}]).factory("esRegistry",["$rootScope","$q","csPlatform","csSettings","csWallet","csWot","esHttp","esComment","esLike","esGeo",function(e,t,n,i,a,o,r,s,l,c){var u,d={commons:["title","description","issuer","time","address","city","creationTime","avatar._content_type","picturesCount","type","category","socials","pubkey","geoPoint"]},p=this;function m(e){e.pages=null}function E(e,n){return n=n||t.defer(),e&&e.pubkey&&e.keypair?(console.debug("[ES] [registry] Loading pages count..."),p.raw.count({pubkey:e.pubkey}).then((function(t){e.pages=e.pages||{},e.pages.count=t&&t.hits&&t.hits.total,console.debug("[ES] [registry] Loaded pages count ("+e.pages.count+")"),n.resolve(e)})).catch((function(t){console.error("[ES] [registry] Error while counting page: "+(t.message?t.message:t)),n.resolve(e)})),n.promise):(n.resolve(),n.promise)}function b(){if(p.raw.categories&&p.raw.categories.length){var e=t.defer();return e.resolve(p.raw.categories),e.promise}return p.raw.category.all().then((function(e){if(0===e.hits.total)p.raw.categories=[];else{var t=e.hits.hits.reduce((function(e,t){var n=t._source;return n.id=t._id,e.concat(n)}),[]);_.forEach(t,(function(e){t[e.id]=e})),p.raw.categories=t}return p.raw.categories}))}function g(e,t){if(e){var n=e._source;return n.category&&n.category.id&&(n.category=t[n.category.id]),e.highlight&&(e.highlight.title&&(n.title=e.highlight.title[0]),e.highlight.description&&(n.description=e.highlight.description[0]),e.highlight.location&&(n.location=e.highlight.location[0]),e.highlight.tags&&(n.tags=e.highlight.tags.reduce((function(e,t){return e.concat(t.replace("<em>","").replace("</em>",""))}),[]))),n.avatar=r.image.fromHit(e,"avatar"),e._source.pictures&&e._source.pictures.reduce&&(n.pictures=e._source.pictures.reduce((function(e,t){return e.concat(r.image.fromAttachment(t.file))}),[])),n}}function f(){var t=r.alive;if(!t&&u&&u.length>0){if(console.debug("[ES] [subscription] Disable"),_.forEach(u,(function(e){e()})),u=[],a.isLogin())return m(a.data)}else if(t&&(!u||0===u.length)&&(console.debug("[ES] [subscription] Enable"),function(){u=[a.api.data.on.load(e,E,this),a.api.data.on.init(e,m,this),a.api.data.on.reset(e,m,this)]}(),a.isLogin()))return E(a.data)}return p.raw={count:r.get("/page/record/_search?size=0&q=issuer::pubkey"),searchText:r.get("/page/record/_search?q=:search"),search:r.post("/page/record/_search"),get:r.get("/page/record/:id"),getCommons:r.get("/page/record/:id?_source="+d.commons.join(",")),category:{get:r.get("/page/category/:id"),all:r.get("/page/category/_search?sort=order&from=0&size=1000&_source=name,parent")}},n.ready().then((function(){return r.api.node.on.start(e,f,this),r.api.node.on.stop(e,f,this),f()})),p.category={all:b,get:function(e){return p.raw.category.get(e).then((function(e){var t=e._source;return t.id=e._id,t}))}},p.record={search:function(e){return(e=e||{}).from=e.from||0,e.size=e.size||20,e._source=e._source||d.commons,e.highlight=e.highlight||{fields:{title:{},description:{}}},t.all([b(),p.raw.search(e)]).then((function(t){var n=t[0];if(!(t=t[1])||!t.hits||!t.hits.total)return{total:0,hits:[]};var i=r.util.findObjectInTree(e.query,"geo_distance"),a=i&&i.geoPoint,o=i&&i.distance&&i.distance.replace(new RegExp("[0-9 ]+","gm"),""),s=t.hits.hits.reduce((function(e,t){var i=g(t,n);return i.id=t._id,a&&i.geoPoint&&o&&(i.distance=c.point.distance(a.lat,a.lon,i.geoPoint.lat,i.geoPoint.lon,o)),e.concat(i)}),[]);return{total:t.hits.total,hits:s}}))},load:function(e,n){return(n=n||{}).raw=!!angular.isDefined(n.raw)&&n.raw,n.fecthPictures=angular.isDefined(n.fetchPictures)?n.fetchPictures:n.raw,t.all([b(),n.fecthPictures?p.raw.get({id:e}):p.raw.getCommons({id:e})]).then((function(e){var t=e[0],i=e[1],a=g(i,t);return n.raw||(a.description=r.util.parseAsHtml(a.description,{tagState:"app.wot_lookup.tab_registry"})),o.extend({pubkey:a.issuer}).then((function(e){return{id:i._id,issuer:e,record:a}}))}))},add:r.record.post("/page/record",{tagFields:["title","description"],creationTime:!0}),update:r.record.post("/page/record/:id/_update",{tagFields:["title","description"]}),remove:r.record.remove("page","record"),fields:{commons:d.commons},picture:{all:r.get("/page/record/:id?_source=pictures")},like:l.instance("page","record"),comment:s.instance("page")},p.currency={all:r.get("/currency/record/_search?_source=currencyName,peers.host,peers.port"),get:r.get("/currency/record/:id/_source")},p}]),angular.module("cesium.es.social.services",["cesium.es.crypto.services"]).factory("SocialUtils",["$filter","$q","CryptoUtils","BMA","csWallet","esCrypto","$timeout",function(e,t,n,i,a,o,r){function s(){var s={URI:"([a-zA−Z0-9]+)://[ a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+",EMAIL:"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$",PHONE:"[+]?[0-9. ]{9,15}",socials:{facebook:"https?://((fb.me)|((www.)?facebook.com))",twitter:"https?://(www.)?twitter.com",googleplus:"https?://plus.google.com(/u)?",youtube:"https?://(www.)?youtube.com",github:"https?://(www.)?github.com",tumblr:"https?://(www.)?tumblr.com",snapchat:"https?://(www.)?snapchat.com",linkedin:"https?://(www.)?linkedin.com",vimeo:"https?://(www.)?vimeo.com",instagram:"https?://(www.)?instagram.com",wordpress:"https?://([a-z]+)?wordpress.com",diaspora:"https?://(www.)?((diaspora[-a-z]+)|(framasphere)).org",duniter:"duniter://[a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+",bitcoin:"bitcoin://[a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+",curve25519:"curve25519://("+i.constants.regexp.PUBKEY+"):([a-zA-Z0-9]+)@([a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+)"}};function l(e){return new RegExp("^"+e+"$")}function c(e){var t;if(s.URI.test(e)){var n=s.URI.exec(e)[1],i=e;if("http"==n||"https"==n){var a=e.indexOf("/",n.length+3);a>0&&(i=e.substring(0,a))}_.keys(s.socials).forEach((function(e){if(s.socials[e].test(i))return t=e,!1})),t||(t="web")}else s.EMAIL.test(e)?t="email":s.PHONE.test(e)&&(t="phone");return t||console.warn("[ES] [social] Unable to detect type of social URL: "+e),t}function u(e){if((e=e?e.trim():e)&&e.length>0)return e.startsWith("www.")&&(e="http://"+e),{type:c(e),url:e}}function d(t){if(!t||!t.length)return[];var n={};return t.forEach((function(t){if("curve25519"==t.type?(delete t.issuer,t.valid&&angular.merge(t,u(t.url))):t=u(t.url),t){var i=e("formatSlug")(t.url);n[i]=t}})),_.values(n)}return s.URI=l(s.URI),s.EMAIL=l(s.EMAIL),s.PHONE=l(s.PHONE),_.keys(s.socials).forEach((function(e){s.socials[e]=l(s.socials[e])})),{get:u,reduce:d,createForEncryption:function(e,t){return{recipient:e,type:"curve25519",url:t}},open:function e(i,l,c){if(c=c||a.data.pubkey,!n.isLoaded())return console.debug("[socials] Waiting crypto lib loading..."),r((function(){return e(i,l,c)}),100);var u=_.filter(i||[],(function(e){var t=e.url&&"curve25519"==e.type&&s.socials.curve25519.exec(e.url);return!!t&&(e.recipient=t[1],e.nonce=t[2],e.url=t[3],e.issuer=l,e.valid=e.recipient===c,e.valid)}));return u.length?o.box.open(u,void 0,"issuer","url").then((function(){return d(i)})):t.when(d(i))},pack:function e(i){if(!n.isLoaded())return console.debug("[socials] Waiting crypto lib loading..."),r((function(){return e(i)}),100);var a=_.filter(i||[],(function(e){return"curve25519"==e.type&&e.url&&e.recipient}));return a.length?n.util.random_nonce().then((function(e){return t.all(a.reduce((function(t,n){return t.concat(o.box.pack(n,void 0,"recipient","url",e))}),[]))})).then((function(e){return e.reduce((function(e,t){return e.concat({type:"curve25519",url:"curve25519://{0}:{1}@{2}".format(t.recipient,t.nonce,t.url)})}),[])})):t.when(i)}}}var l=s();return l.instance=s,l}]),angular.module("cesium.es.crypto.services",["ngResource","cesium.services"]).factory("esCrypto",["$q","$rootScope","CryptoUtils",function(e,t,n){function i(t){if(!t)throw new Error("Missing keypair");return t.boxPk&&t.boxSk?e.when(t):e.all([n.box.keypair.skFromSignSk(t.signSk),n.box.keypair.pkFromSignPk(t.signPk)]).then((function(e){return{boxSk:e[0],boxPk:e[1]}}))}return{box:{getKeypair:i,pack:function(t,a,o,r,s){if(!t[o=o||"recipient"])return e.reject({message:"ES_WALLET.ERROR.RECIPIENT_IS_MANDATORY"});"string"==typeof(r=r||"content")&&(r=[r]),t=angular.copy(t);var l=n.util.decode_base58(t[o]);return e.all([i(a),n.box.keypair.pkFromSignPk(l),s?e.when(s):n.util.random_nonce()]).then((function(i){var a=i[0].boxSk,o=i[1],s=i[2];return e.all(r.reduce((function(e,i){return t[i]?e.concat(n.box.pack(t[i],s,o,a)):e}),[])).then((function(e){var i=0;return _.forEach(r,(function(n){t[n]?t[n]=e[i++]:t[n]=null})),t.nonce=n.util.encode_base58(s),t}))}))},open:function(t,a,o,r){o=o||"issuer","string"==typeof(r=r||"content")&&(r=[r]);var s=Date.now(),l={},c=[i(a)];return e.all(t.reduce((function(e,t){var i=t[o];if(!i)throw"Record has no "+o;return l[i]?res:e.concat(n.box.keypair.pkFromSignPk(n.util.decode_base58(i)).then((function(e){l[i]=e})))}),c)).then((function(i){var a=i[0];return e.all(t.reduce((function(e,t){var i=l[t[o]],s=n.util.decode_base58(t.nonce);return t.valid=!0,e.concat(r.reduce((function(e,o){return t[o]?e.concat(n.box.open(t[o],s,i,a.boxSk).then((function(e){t[o]=e})).catch((function(e){console.error(e),console.warn("[ES] [crypto] a record may have invalid cypher "+o),t.valid=!1}))):e}),[]))}),[]))})).then((function(){return console.debug("[ES] [crypto] All record decrypted in "+(Date.now()-s)+"ms"),t}))}}}}]),angular.module("cesium.es.profile.services",["cesium.services","cesium.es.http.services","cesium.es.like.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esProfile")}]).factory("esProfile",["$rootScope","$q","esHttp","SocialUtils","csWot","csWallet","csPlatform","esSettings","esLike",function(e,t,n,i,a,o,r,s,l){var c,u=this;function d(e,t){return((t=t||{}).raw?u.raw.getAll:u.raw.get)({id:e}).then((function(a){if(a&&a.found&&a._source){var r={name:a._source.title,source:a._source};return r.name&&r.name.length>30&&(r.name=r.name.substr(0,27)+"..."),r.avatar=n.image.fromHit(a,"avatar"),t.raw||(r.description=n.util.parseAsHtml(r.source.description)),r.source.socials&&r.source.socials.length&&(r.source.socials=_.uniq(r.source.socials,!1,(function(e){return e.url}))),o.isLogin()?i.open(r.source.socials,e).then((function(){return r})):(r.source.socials=_.filter(r.source.socials,(function(e){return"curve25519"!=e.type})),r)}})).catch((function(e){if(e&&e.ucode&&404==e.ucode)return null;throw e}))}function p(e,t){return m(null,e,t)}function m(e,i,a,o){if(o=o||t.defer(),!(e||i&&i.length))return o.resolve(i),o.promise;var r;a=a||"pubkey";var l,c=(e=e?e.toLowerCase().trim():e)?n.util.parseTags(e):void 0,d={query:{},highlight:{fields:{title:{},tags:{}}},from:0,size:100,_source:["title","avatar._content_type"]},p=e&&s.wot.isMixedSearchEnable();if(p&&(d._source=d._source.concat(["description","city","creationTime","membersCount","type"]),console.debug("[ES] [profile] Mixed search: enable")),i.length>0){r={},_.forEach(i,(function(e){var t=e[a];if(t){var n=r[t];n?n.push(e):(n=[e],r[t]=n)}}));var m=_.keys(r);d.size=m.length<=d.size?d.size:m.length,e?(d.query.bool={should:[{terms:{"_id^4":m}},{match:{title:{query:e,boost:2}}},{prefix:{title:e}}]},c&&d.query.bool.should.push({terms:{tags:c}})):(delete d.highlight,d.query.constant_score={filter:{terms:{_id:m}}})}else{if(!e)return o.resolve(i),o.promise;d.query.bool={should:[{match:{title:{query:e,boost:2}}},{prefix:{title:e}}]},c&&d.query.bool.should.push({terms:{tags:c}})}return e&&p&&(d.indices_boost={user:100,page:1,group:.01}),(p?u.raw.mixedSearch:u.raw.search)(d).then((function(e){if((l=e.hits).total>0){var t,s={};_.forEach(l.hits,(function(e){var o="avatar";if("user"==e._index){if(!(t=r&&r[e._id])){var l={};l[a]=e._id,t=[l],i.push(l)}}else if("user"!=e._index){s[e._index]||(s[e._index]=!0,i.push({id:"divider-"+e._index,divider:!0,index:e._index}));var c={id:e._index+"-"+e._id,index:e._index,templateUrl:"plugins/es/templates/wot/lookup_item_{0}.html".format(e._index),state:"app.view_{0}".format(e._index),stateParams:{id:e._id,title:e._source.title},creationTime:e._source.creationTime,memberCount:e._source.memberCount,type:e._source.type};t=[c],i.push(c),o="avatar"}var u=n.image.fromHit(e,o);_.forEach(t,(function(t){t.avatar=u,function(e,t,i){e.avatar=e.avatar||n.image.fromHit(t,"avatar"),e.name=t._source.title,e.name&&e.name.length>30&&(e.name=e.name.substr(0,27)+"..."),e.description=t._source.description||e.description,e.city=t._source.city||e.city,t.highlight&&(t.highlight.title&&(e.name=t.highlight.title[0]),t.highlight.tags&&(e.tags=t.highlight.tags.reduce((function(e,t){return e.concat(t.replace("<em>","").replace("</em>",""))}),[])))}(t,e)}))})),_.keys(s).length&&i.splice(0,0,{id:"divider-identities",divider:!0,index:"profile"})}o.resolve(i)})).catch((function(e){e&&e.ucode&&404==e.ucode?o.resolve(i):o.reject(e)})),o.promise}function E(e,n){return n=n||t.defer(),e&&e.pubkey?(t.all([d(e.pubkey).then((function(t){t&&(e.name=t.name,e.avatar=t.avatar,e.profile=t.source,e.profile.description=t.description),n.resolve(e)})),p((e.received_cert||[]).concat(e.received_cert_pending||[]).concat(e.given_cert||[]).concat(e.given_cert_pending||[]))]).catch((function(e){n.reject(e)})),n.promise):(n.resolve(),n.promise)}function b(){var t=n.alive;!t&&c&&c.length>0?(console.debug("[ES] [profile] Disable"),_.forEach(c,(function(e){e()})),c=[]):!t||c&&0!==c.length||(console.debug("[ES] [profile] Enable"),function(){c=[a.api.data.on.load(e,E,this),a.api.data.on.search(e,m,this)]}())}return u.raw={getFields:n.get("/user/profile/:id?&_source_exclude=avatar._content&_source=:fields"),get:n.get("/user/profile/:id?&_source_exclude=avatar._content",n.cache.MEDIUM),getAll:n.get("/user/profile/:id",n.cache.MEDIUM),search:n.post("/user/profile/_search",n.cache.MEDIUM),mixedSearch:n.post("/user,page,group/profile,record/_search",n.cache.MEDIUM)},r.ready().then((function(){return n.api.node.on.start(e,b,this),n.api.node.on.stop(e,b,this),b()})),{getAvatarAndName:function(e){return u.raw.getFields({id:e,fields:"title,avatar._content_type"}).then((function(e){var t;return e&&e._source&&((t={name:e._source.title}).avatar=n.image.fromHit(e,"avatar")),t})).catch((function(e){if(e&&e.ucode&&404==e.ucode)return null;throw e}))},get:d,add:n.record.post("/user/profile",{tagFields:["title","description"]}),update:n.record.post("/user/profile/:id/_update",{tagFields:["title","description"]}),remove:n.record.remove("user","profile"),avatar:n.get("/user/profile/:id?_source=avatar"),fillAvatars:p,like:l.instance("user","profile")}}]),angular.module("cesium.es.notification.services",["cesium.platform","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esNotification")}]).factory("esNotification",["$rootScope","$q","$timeout","$translate","$state","csHttp","csConfig","csSettings","esHttp","esSettings","csWallet","csWot","UIUtils","filterTranslations","BMA","CryptoUtils","csPlatform","Api",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,f){var T,h,v={MESSAGE_CODES:["MESSAGE_RECEIVED"],INVITATION_CODES:["INVITATION_TO_CERTIFY"],DEFAULT_LOAD_SIZE:20},I={commons:["type","code","params","reference","recipient","time","hash","read_signature"]},N=this,O=new f(this,"esNotification");function R(e,t){(t=t||{}).codes=t.codes||{},t.codes.excludes=t.codes.excludes||v.EXCLUDED_CODES;var n={bool:{must:[{term:{recipient:e}}]}};if(t.codes&&t.codes.includes)n.bool.must.push({terms:{code:t.codes.includes}});else{var i=[];s.getByPath("plugins.es.notifications.txSent",!1)||i.push("TX_SENT"),s.getByPath("plugins.es.notifications.txReceived",!0)||i.push("TX_RECEIVED"),s.getByPath("plugins.es.notifications.certSent",!1)||i.push("CERT_SENT"),s.getByPath("plugins.es.notifications.certReceived",!0)||i.push("CERT_RECEIVED"),t.codes.excludes&&_.forEach(t.codes.excludes,(function(e){i.push(e)})),i.length&&(n.bool.must_not={terms:{code:i}})}return t.readTime&&n.bool.must.push({range:{time:{gt:t.readTime}}}),n}function A(e,n){if(!e)return t.reject("[ES] [notification] Unable to load - missing pubkey");var i={query:R(e,n)};return i.query.bool.must.push({missing:{field:"read_signature"}}),N.raw.postCount(i).then((function(e){return e.count}))}function S(e){var t=(e=e||{}).wallet||u;return new Promise((function(e){if(!t.data||!t.data.events||!t.data.events.length)return e([]);var n=o.date.now()-m.MEDIAN_TIME_OFFSET;e((t.data.events||[]).reduce((function(e,i){if("warn"!=i.type&&"error"!=i.type)return e;var a=new $({},(function(e){e.read||(e.read=!0,t.data.notifications&&t.data.notifications.warnCount>0&&t.data.notifications.warnCount--)}));return a.id=i.code,a.read=!1,a.state="app.view_wallet",a.avatarIcon="ion-alert-circled",a.icon="ion-alert-circled assertive",a.time=n,a.message=i.message,a.messageParams=i.messageParams,e.concat(a)}),[]))}))}function C(t){if(t&&u.isLogin())if(_.contains(v.INVITATION_CODES,t.code))O.event.raise.newInvitation(t);else{if(!_.contains(v.MESSAGE_CODES,t.code)){var n=new $(t,k);return d.extendAll([n]).then((function(){e.$$phase?L(n):e.$applyAsync((function(){L(n)}))})).then((function(){if(c.notifications.isEmitHtml5Enable())return y(n)}))}O.event.raise.newMessage(t)}}function L(e){return u.data.notifications=u.data.notifications||{},u.data.notifications.unreadCount++,O.data.raise.new(e),e}function D(e){return e?String(e).replace(/<[^>]*>/gm,"").replace(/&[^;]+;/gm,""):""}function y(n,o){t.all([i(o||"COMMON.NOTIFICATION.TITLE"),i(n.message,n)]).then((function(t){P(D(t[0]),{body:D(t[1]),icon:n.avatar&&n.avatar.src||"./img/logo.png",lang:i.use(),tag:n.id,onclick:function(){e.$applyAsync((function(){"function"==typeof n.markAsRead&&n.markAsRead(),n.state&&a.go(n.state,n.stateParams)}))}})}))}function P(e,t){if("Notification"in window)if("granted"===Notification.permission){var n=new Notification(e,t);n.onclick=t.onclick||n.onclick}else"denied"!==Notification.permission&&Notification.requestPermission((function(n){"granted"===n&&P(e,t)}))}function k(e){if(!e.read&&e.id)if(e.id){if(u.isAuth())return e.read=!0,u.getKeypair().then((function(t){return b.sign(e.hash,t).then((function(t){return N.raw.postReadById(t,{id:e.id})})).catch((function(e){console.error("[ES] [notification] Error while trying to mark event as read.",e)}))}))}else console.error("[ES] [notification] Could not mark as read: no 'id' found!",e)}function M(e){e.notifications=e.notifications||{},e.notifications.unreadCount=null,e.notifications.warnCount=null,e.notifications.time=null,h&&(console.debug("[ES] [notification] Closing websocket..."),h(),h=null)}function w(e,i){if(i=i||t.defer(),!e||!e.pubkey||!e.keypair)return i.resolve(),i.promise;var a=Date.now(),o=Math.trunc(a/1e3);if(e.notifications&&e.notifications.time&&o-e.notifications.time<30)return e.notifications.warnCount=B(e),console.debug("[ES] [notification] Skipping load (loaded "+(o-e.notifications.time)+"s ago)"),i.resolve(),i.promise;var r=u.isUserPubkey(e.pubkey);return console.debug("[ES] [notification] Loading count..."+e.pubkey.substr(0,8)),A(e.pubkey,{readTime:e.notifications&&e.notifications.time||0,excludeCodes:v.EXCLUDED_CODES}).then((function(t){e.notifications=e.notifications||{},e.notifications.unreadCount=t,e.notifications.warnCount=B(e),t>0&&c.notifications.isEmitHtml5Enable()&&r&&n((function(){y({message:"COMMON.NOTIFICATION.HAS_UNREAD",count:t,state:"app.view_notifications"},e.ui||e.name||e.pubkey&&e.pubkey.substr(0,8))}),500),console.debug("[ES] [notification] Loaded count ("+t+") in "+(Date.now()-a)+"ms"),i.resolve(e)})).catch(i.reject),i.promise}function U(e,t){return w(e,t).then((function(){console.debug("[ES] [notification] Starting listen user event...");var t=N.raw.ws.getUserEvent();t.on(C,{pubkey:e.pubkey,locale:s.data.locale.id}).catch((function(e){console.error("[ES] [notification] Unable to listen user event",e),p.alert.error("ACCOUNT.ERROR.WS_CONNECTION_FAILED")})),h=function(){t.close()}}))}function B(e){return e.events?e.events.reduce((function(e,t){return"warn"==t.type?e+1:e}),0):0}function x(){var t=l.alive;if(!t&&T&&T.length>0)console.debug("[ES] [notification] Disable"),_.forEach(T,(function(e){e()})),T=[],u.isLogin()&&M(u.data);else if(t&&(!T||0===T.length)&&(console.debug("[ES] [notification] Enable"),function(){T=[u.api.data.on.login(e,U,this),u.api.data.on.load(e,w,this),u.api.data.on.init(e,M,this),u.api.data.on.reset(e,M,this)]}(),u.isLogin()))return U(u.data)}return v.EXCLUDED_CODES=v.MESSAGE_CODES.concat(v.INVITATION_CODES),N.raw={postCount:l.post("/user/event/_count"),postSearch:l.post("/user/event/_search"),postReadById:l.post("/user/event/:id/_read"),ws:{getUserEvent:l.ws("/ws/event/user/:pubkey/:locale"),getChanges:l.ws("/ws/_changes")}},O.registerEvent("data","new"),O.registerEvent("event","newInvitation"),O.registerEvent("event","newMessage"),g.ready().then((function(){return l.api.node.on.start(e,x,this),l.api.node.on.stop(e,x,this),x()})),N.load=function(e){if(!(e=e||{}).pubkey)return t.reject("[ES] [notification] Unable to load - missing options.pubkey");e.from=e.from||0,e.size=e.size||v.DEFAULT_LOAD_SIZE;var n={query:R(e.pubkey,e),sort:[{time:{order:"desc"}}],from:e.from,size:e.size,_source:I.commons};return t.all([S(e),N.raw.postSearch(n)]).then((function(e){var t=e[0]||[];if(!(e=e[1]).hits||!e.hits.total)return t;var n=e.hits.hits.reduce((function(e,t){var n=new $(t._source,k);return n.id=t._id,e.concat(n)}),t);return d.extendAll(n)}))},N.unreadCount=A,N.html5={emit:P},N.api=O,N.websocket={event:N.raw.ws.getUserEvent,change:N.raw.ws.getChanges},N.constants=v,N}]),angular.module("cesium.es.message.services",["ngResource","cesium.platform","cesium.es.http.services","cesium.es.wallet.services","cesium.es.notification.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esMessage")}]).factory("esMessage",["$q","$rootScope","$timeout","UIUtils","Api","CryptoUtils","csPlatform","csConfig","csSettings","esHttp","csWallet","esWallet","csWot","esNotification",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m){var E,b=10,g={commons:["issuer","recipient","title","content","time","nonce","read_signature"],notifications:["issuer","time","hash","read_signature"]},f={postSearch:c.post("/message/inbox/_search"),postSearchByType:c.post("/message/:type/_search"),getByTypeAndId:c.get("/message/:type/:id"),postReadById:c.post("/message/inbox/:id/_read")},T=new a(this,"esMessage");function h(e){e.messages=e.messages||{},e.messages.unreadCount=null,e.messages.time=null}function v(e){e.messages&&delete e.messages}function I(t,n){if(n=n||e.defer(),!t||!t.pubkey)return n.resolve(),n.promise;var i=Date.now(),a=Math.trunc(i/1e3);return t.messages&&t.messages.time&&a-t.messages.time<30?(console.debug("[ES] [message] Skipping load (loaded "+(a-t.messages.time)+"s ago)"),n.resolve(),n.promise):(console.debug("[ES] [message] Loading count..."),function(e){var t=(e=e||{}).wallet||e.walletId&&u.children.get(e.walletId)||u,n=e.pubkey||t&&t.data&&t.data.pubkey;if(!n)throw new Error("no pubkey or wallet found in options, and user not connected.");var i={query:{bool:{must:[{term:{recipient:n}},{missing:{field:"read_signature"}}]}}};return c.post("/message/inbox/_count")(i).then((function(e){return e.count}))}({pubkey:t.pubkey}).then((function(e){t.messages=t.messages||{},t.messages.unreadCount=e,t.messages.time=a,console.debug("[ES] [message] Loaded count ("+e+") in "+(Date.now()-i)+"ms"),n.resolve(t)})).catch((function(e){console.error("Error while counting messages: "+(e.message?e.message:e)),n.resolve(t)})),n.promise)}function N(e,t){console.debug("[ES] [message] detected new message (from notification service)");var n=new $(e);if(n.issuer=n.pubkey,delete n.pubkey,n.issuer){if(!(t=t||n.issuer&&u.isUserPubkey(n.issuer)&&u||n.issuer&&u.children.getByPubkey(n.issuer)))throw new Error("No wallet for pubkey: {0}".format(n.issuer.substring(0,6)));p.extend(n,"issuer").then((function(){t.data.messages=t.data.messages||{},t.data.messages.unreadCount++,T.data.raise.new(n)}))}}function O(e,t,n,i){return n=n||"/message/inbox",d.box.record.pack(e,t,i,["title","content"]).then((function(e){return c.record.post(n)(e,{pubkey:e.issuer,keypair:t})}))}function R(e,t){e=e||u.data.pubkey,(t=t||{}).type=t.type||"inbox",t.from=t.from||0,t.size=t.size||1e3,t._source=t._source||g.commons;var n={sort:{time:"desc"},from:t.from,size:t.size,_source:t._source};return"inbox"==t.type?n.query={bool:{filter:{term:{recipient:e}}}}:n.query={bool:{filter:{term:{issuer:e}}}},f.postSearchByType(n,{type:t.type}).then((function(e){if(!e||!e.hits||!e.hits.total)return[];var n=e.hits.hits.reduce((function(e,n){var i=n._source||{};return i.id=n._id,i.read="outbox"==t.type||!!i.read_signature,delete i.read_signature,e.concat(i)}),[]);return console.debug("[ES] [message] Loading {0} {1} messages".format(n.length,t.type)),n}))}function A(t,n,i){var a=Date.now(),r={},s=[d.box.getKeypair(n)];return e.all(t.reduce((function(e,t){return r[t.issuer]?res:e.concat(o.box.keypair.pkFromSignPk(o.util.decode_base58(t.issuer)).then((function(e){r[t.issuer]=e})))}),s)).then((function(n){var a=n[0];return e.all(t.reduce((function(e,t){var n=r[t.issuer],s=o.util.decode_base58(t.nonce);return t.valid=!0,e.concat(o.box.open(t.title,s,n,a.boxSk).then((function(e){t.title=e})).catch((function(e){console.error(e),console.warn("[ES] [message] may have invalid cypher title"),t.valid=!1})),o.box.open(t.content,s,n,a.boxSk).then((function(e){t.content=e,i?function(e){e.content&&(e.summary=e.content.replace(/(^|[\n\r]+)\s*>[^\n\r]*/g,"").trim(),e.summary.length>140&&(e.summary=e.summary.substr(0,137)+"..."))}(t):e&&(t.html=c.util.parseAsHtml(e))})).catch((function(e){console.error(e),console.warn("[ES] [message] may have invalid cypher content"),t.valid=!1})))}),[]))})).then((function(){return console.debug("[ES] [message] All messages decrypted in "+(Date.now()-a)+"ms"),t}))}function S(e){return _.sortBy(e,(function(e){return-1*(1e3*(e.titleMatch||0)+100*(e.contentMatch||0)+e.time/1e10)}))}function C(t){var n=s.developers||[{pubkey:"38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE"}];t&&t.content&&n&&n.length&&(console.info("[ES] [message] Sending logs to developers..."),t.issuer=u.data.pubkey,t.title=t.title||"Sending log",t.time=moment().utc().unix(),u.getKeypair().then((function(i){return e.all(n.reduce((function(e,n){return n.pubkey?e.concat(O(angular.merge({recipient:n.pubkey},t),i)):e}),[]))})).then((function(e){console.info("[ES] [message] Logs sent to {0} developers".format(e.length))})))}function L(){var e=c.alive;!e&&E&&E.length>0?(console.debug("[ES] [message] Disable"),_.forEach(E,(function(e){e()})),E=[],u.isLogin()&&v(u.data)):!e||E&&0!==E.length||(console.debug("[ES] [message] Enable"),function(){E=[u.api.data.on.init(t,h,this),u.api.data.on.login(t,I,this),u.api.data.on.load(t,I,this),u.api.data.on.reset(t,v,this),m.api.event.on.newMessage(t,N,this),u.api.error.on.send(t,C,this)]}(),u.isLogin()&&I(u.data))}return T.registerEvent("data","new"),T.registerEvent("data","delete"),T.registerEvent("data","sent"),r.ready().then((function(){return c.api.node.on.start(t,L,this),c.api.node.on.stop(t,L,this),L()})),{api:T,search:f.postSearch,notifications:{load:function(t){(t=t||{}).from=t.from||0,t.size=t.size||b;var n=t.wallet||t.walletId&&u.children.get(t.walletId)||u;if(delete t.wallet,!n.isLogin())return e.when([]);var i={sort:{time:"desc"},query:{bool:{filter:{term:{recipient:n.data.pubkey}}}},from:t.from,size:t.size,_source:g.notifications};return f.postSearch(i).then((function(e){if(!e||!e.hits||!e.hits.total)return[];var t=e.hits.hits.reduce((function(e,t){var n=t._source;return n.id=t._id,n.read=!!n.read_signature,delete n.read_signature,e.concat(n)}),[]);return p.extendAll(t,"issuer")}))}},load:function e(t){(t=t||{}).type=t.type||"inbox",t._source=g.commons,t.summary=!angular.isDefined(t.summary)||t.summary,t.filter=angular.isDefined(t.filter)?t.filter:void 0,t.from=t.from||0;var n=t.wallet||t.walletId&&u.children.get(t.walletId)||u;delete t.wallet;var i=n.auth().then((function(e){return R(e.pubkey,t).then((function(n){return A(n,e.keypair,t.summary)}))})).then((function(e){var n="inbox"==t.type?"issuer":"recipient";return p.extendAll(e,n)})).then((function(i){if(i.length&&t.filter){var a=function(e,t){return t&&!t.trim().length?e:(e.forEach((function(e){e.content&&(e.summary=e.content.replace(/(^|[\n\r]+)\s*>[^\n\r]*/g,"").trim()||"")})),t.trim().split(" ").forEach((function(t){var n=new RegExp(t,"gi");e.forEach((function(e){var i=n.exec(e.title);if(i)for(e.title=e.title.replace(n,"<b>$&</b>"),e.titleMatch=(e.titleMatch||0)+1;(i=n.exec(e.title.substring(i.index+t.length)))&&!(e.titleMatch>=10);)e.titleMatch=e.titleMatch+1;else if(i=n.exec(e.summary)){for(i.index>140&&(e.summary="..."+e.summary.substring(i.index-20)),e.summary=e.summary.replace(n,"<b>$&</b>"),e.contentMatch=(e.contentMatch||0)+1;(i=n.exec(e.summary.substring(i.index+t.length)))&&!(e.contentMatch>=10);)e.contentMatch++;e.summary.length>140&&(e.summary=e.summary.substr(0,137)+"...")}}))})),e=_.filter(e,(function(e){return e.titleMatch||e.contentMatch})))}(i,t.filter);if(a.length<i.length)return(t=angular.copy(t)).from+=t.size,t.size=i.length-a.length,t.wallet=n,e(t).then((function(e){return a.concat(e)}))}return 0!==t.from||t.filter||(n.data.messages=n.data.messages||{},n.data.messages.count=i.length),i}));return 0===t.from&&t.filter&&i.then(S),i},get:function(e,t,n){return t=t||"inbox",(n=n||{}).summary=!!angular.isDefined(n.summary)&&n.summary,(n.wallet||n.walletId&&u.children.get(n.walletId)||u).auth().then((function(i){return f.getByTypeAndId({id:e,type:t}).then((function(e){if(e.found){var a=e._source;return a.id=e._id,a.read="outbox"==t||!!a.read_signature,delete a.read_signature,A([a],i.keypair,n.summary).then((function(){var e="inbox"==t?"issuer":"recipient";return p.extend(a,e)}))}}))}))},send:function(e,t){var n=(t=t||{}).wallet||t.walletId&&u.children.get(t.walletId)||u;return delete t.wallet,e.issuer=e.issuer||n.data.pubkey,n.getKeypair().then((function(t){return O(e,t).then((function(n){return l.data.plugins.es.message&&angular.isDefined(l.data.plugins.es.message.outbox)&&!l.data.plugins.es.message.outbox?n:O(e,t,"/message/outbox","issuer").catch((function(e){return console.error("Failed to store message to outbox: "+e),n}))})).then((function(e){return T.data.raise.sent(e),e}))}))},remove:function(e,t,n){t=t||"inbox";var i=n.wallet||n.walletId&&u.children.get(n.walletId)||u;return c.record.remove("message",t)(e,{wallet:i}).then((function(n){return"inbox"===t&&(i.data.messages=i.data.messages||{},i.data.messages.count=i.data.messages.count>0?i.data.messages.count-1:0),i.isDefault()&&T.data.raise.delete(e),n}))},removeAll:function(t,n){t=t||"inbox";var i=n&&n.walletId&&u.children.get(n.walletId)||u;return i.auth().then((function(n){return R(n.pubkey,{type:t,from:0,size:1e3,_source:!1}).then((function(n){if(n&&n.length){var a=_.pluck(n,"id");return e.all(n.reduce((function(e,n){return e.concat(c.record.remove("message",t)(n.id,{wallet:i}))}),[])).then((function(){return a}))}})).then((function(e){"inbox"===t&&(i.data.messages=i.data.messages||{},i.data.messages.count=0,i.data.messages.unreadCount=0),i.isDefault()&&_.forEach(e,T.data.raise.delete)}))}))},markAsRead:function(t,n){var i=(n=n||{}).wallet||n.walletId&&u.children.get(n.walletId)||u,a=n&&n.type||(i.isUserPubkey(t.recipient)?"inbox":"outbox");if(t.read){var r=e.defer();return r.resolve(),r.promise}return t.read=!0,i.getKeypair().then((function(e){return o.sign(t.hash,e)})).then((function(e){return f.postReadById(e,{id:t.id})})).then((function(){"inbox"===a&&(i.data.messages=i.data.messages||{},i.data.messages.unreadCount=i.data.messages.unreadCount?i.data.messages.unreadCount-1:0)}))},markAllAsRead:function(t){var n=(t=t||{}).wallet||t.walletId&&u.children.get(t.walletId)||u;return n.auth().then((function(t){return R(t.pubkey,{type:"inbox",from:0,size:1e3,_source:["hash","read_signature"]}).then((function(n){if(n&&n.length)return n=_.filter(n,{read:!1}),e.all(n.reduce((function(e,n){return e.concat(o.sign(n.hash,t.keypair).then((function(e){return f.postReadById(e,{id:n.id})})))}),[]))})).then((function(){n.data.messages=n.data.messages||{},n.data.messages.unreadCount=0}))}))},fields:{commons:g.commons}}}]),angular.module("cesium.es.modal.services",["cesium.modal.services","cesium.es.message.services"]).factory("esModals",["$state","ModalUtils","UIUtils","csWallet",function(e,t,n,i){function a(){if(i.data.notifications.unreadCount=0,i.data.notifications&&i.data.notifications.history.length){var e=i.data.notifications.history[0],t=e?e.time:0;csSettings.data.wallet=csSettings.data.wallet||{},t&&csSettings.data.wallet.notificationReadTime!=t&&(csSettings.data.wallet.notificationReadTime=t,csSettings.store())}}return{showMessageCompose:function(e){return t.show("plugins/es/templates/message/modal_compose.html","ESMessageComposeModalCtrl",e,{focusFirstInput:!0})},showNotifications:function(t,i){return n.popover.show(i,{templateUrl:"plugins/es/templates/common/popover_notification.html",scope:t,autoremove:!1,afterHidden:a}).then((function(t){t&&(t.onRead&&"function"==typeof t.onRead&&t.onRead(),t.state&&e.go(t.state,t.stateParams))}))},showNewInvitation:function(e){return i.auth({minData:!0}).then((function(i){return n.loading.hide(),i.isMember?t.show("plugins/es/templates/invitation/modal_new_invitation.html","ESNewInvitationModalCtrl",e):n.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")}))},showNewPage:function(a){var o=a&&a.wallet||i;return o.auth({minData:!0}).then((function(){return n.loading.hide(),t.show("plugins/es/templates/registry/modal_record_type.html",void 0,{title:"REGISTRY.EDIT.TITLE_NEW"}).then((function(t){t&&e.go("app.registry_add_record",{type:t,wallet:o.id})}))}))},showNetworkLookup:function(e){return t.show("plugins/es/templates/network/modal_network.html","ESNetworkLookupModalCtrl",e,{focusFirstInput:!1})}}}]),angular.module("cesium.es.blockchain.services",["cesium.services","cesium.es.http.services"]).factory("esBlockchain",["$rootScope","$q","$timeout","BMA","esHttp",function(e,n,i,a,o){return r=a.constants.regexp.PUBKEY,40,"ES_CORE_API( ([a-z_][a-z0-9-_.]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))",s={SEARCH_FILTER:{TX_PUBKEY:new RegExp("\\(transactions\\.issuers:("+r+") OR transactions\\.outputs:\\*("+r+")\\)([ ]+AND)?"),ISSUER:new RegExp("issuer:("+r+")([ ]+AND)?"),MEMBER_FLOWS:new RegExp("\\(_exists_:joiners OR _exists_:leavers OR _exists_:revoked OR _exists_:excluded\\)([ ]+AND)?"),EXISTING_TRANSACTION:new RegExp("_exists_:transactions([ ]+AND)?"),PERIOD:new RegExp("medianTime:>=?([0-9]+)[ ]+AND[ ]+medianTime:<=?([0-9]+)([ ]+AND)?")},LAST_AND:/[ ]+AND$/},l={MINIMAL:["number","hash","medianTime","issuer"],COMMONS:["number","hash","medianTime","issuer","currency","version","powMin","dividend","membersCount","identities","joiners","actives","leavers","revoked","excluded","certifications","transactions"]},(c={node:{},block:{},raw:{block:{search:o.post("/:currency/block/_search",o.cache.SHORT),searchText:o.get("/:currency/block/_search?q=:text"),get:o.get("/:currency/block/:number/_source",o.cache.SHORT)}},regexp:{ES_CORE_API_ENDPOINT:new RegExp("^ES_CORE_API( ([a-z_][a-z0-9-_.]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))$")}}).regex=c.regexp,c.node.parseEndPoint=function(e){var t=c.regexp.ES_CORE_API_ENDPOINT.exec(e);if(t)return{dns:t[2]||"",ipv4:t[4]||"",ipv6:t[6]||"",port:t[8]||80}},c.raw.block.processSearchResult=function(e,n){(n=n||{}).excludeCurrent=!angular.isDefined(n.excludeCurrent)||n.excludeCurrent,n.fillAvatar=!angular.isDefined(n.fillAvatar)||n.fillAvatar,n.cleanData=!angular.isDefined(n.cleanData)||n.cleanData;var i=!1;return{hits:(e&&e.hits&&e.hits.hits||[]).reduce((function(e,a){if("current"==a._id&&n.excludeCurrent)return i=!0,e;if(!a._source)return e;var o=new t(a._source);return n.cleanData&&o.cleanData(),e.concat(o)}),[]),took:e.took,total:e&&e.hits&&e.hits.total?i?e.hits.total-1:e.hits.total:0}},c.block.search=function(e,t){var n=t?angular.copy(t):{};return delete n.excludeCurrent,delete n.fillAvatar,delete n.skipData,n.from=n.from||0,n.size=n.size||40,n._source=t._source||l.COMMONS,t._source&&"*"==t._source&&delete n._source,c.raw.block.search(n,{currency:e}).then((function(e){return c.raw.block.processSearchResult(e,t)}))},c.block.searchText=function(e,t,n){n&&angular.isUndefined(n.excludeCurrent)&&(n.excludeCurrent=!0);var i=n?angular.copy(n):{};return delete i.excludeCurrent,delete i.fillAvatar,delete i.skipData,i.from=i.from||0,i.size=i.size||40,i._source=n._source||l.COMMONS.join(","),n._source&&"*"==n._source&&delete i._source,i.currency=e,i.text=t||"",c.raw.block.searchText(i).then((function(e){return c.raw.block.processSearchResult(e,n)}))},c.block.parseSearchText=function(e,t){var n=e;return{filters:t=_.keys(s.SEARCH_FILTER).reduce((function(e,t){var i=s.SEARCH_FILTER[t].exec(n);if(i){var a=i[0];n=n.replace(a,"");var o={type:t,text:a=a.replace(s.LAST_AND,""),params:i};return e.concat(o)}return e}),t||[]),text:n.trim()}},c;var r,s,l,c}]),angular.module("cesium.es.group.services",["cesium.platform","cesium.es.http.services","cesium.es.profile.services","cesium.es.notification.services","cesium.es.comment.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esGroup")}]).factory("esGroup",["$q","$rootScope","csPlatform","BMA","csSettings","esHttp","CryptoUtils","csWot","csWallet","esNotification","esComment",function(e,t,n,i,a,o,r,s,l,c,u){var d,p=50,m={list:["issuer","title","description","type","creationTime","avatar._content_type"],commons:["issuer","title","description","creationTime","time","signature"],notifications:["issuer","time","hash","read_signature"]},E={_internal:{}};function b(e){e.groups=e.groups||{},e.groups.unreadCount=null}function g(e){e.groups&&delete e.groups}function f(t,n){return n=n||e.defer(),t&&t.pubkey?(c.unreadCount(t.pubkey,{codes:{includes:["GROUP_INVITATION"],excludes:[]}}).then((function(e){t.groups=t.groups||{},t.groups.unreadCount=e,console.debug("[ES] [group] Detecting "+e+" unread notifications"),n.resolve(t)})).catch((function(e){console.error("Error while counting group notifications: "+(e.message?e.message:e)),n.resolve(t)})),n.promise):(n.resolve(),n.promise)}function T(e,t){if(e){var n=e._source;return t&&e.highlight&&(e.highlight.title&&(n.title=e.highlight.title[0]),e.highlight.description&&(n.description=e.highlight.description[0]),e.highlight.location&&(n.location=e.highlight.location[0]),e.highlight.tags&&(data.tags=e.highlight.tags.reduce((function(e,t){return e.concat(t.replace("<em>","").replace("</em>",""))}),[]))),t&&(n.description=o.util.parseAsHtml(n.description)),n.avatar=o.image.fromHit(e,"avatar"),e._source.pictures&&e._source.pictures.reduce&&(n.pictures=e._source.pictures.reduce((function(e,t){return e.concat(o.image.fromAttachment(t.file))}),[])),n}}function h(e){return E._internal.search(e).then((function(e){if(!e||!e.hits||!e.hits.total)return[];var t=e.hits.hits.reduce((function(e,t){var n=T(t,!0);return n.id=t._id,n?e.concat(n):e}),[]);return console.debug("[ES] [group] Loading {0} groups".format(t.length)),t}))}function v(e){return h({sort:{time:"desc"},from:(e=e||{}).from||0,size:e.size||p,_source:e._source||m.list})}function I(){var e=o.alive;!e&&d&&d.length>0?(console.debug("[ES] [group] Disable"),_.forEach(d,(function(e){e()})),d=[],l.isLogin()&&g(l.data)):!e||d&&0!==d.length||(console.debug("[ES] [group] Enable"),function(){d=[l.api.data.on.login(t,f,this),l.api.data.on.init(t,b,this),l.api.data.on.reset(t,g,this)]}(),l.isLogin()&&f(l.data))}return E._internal.search=o.post("/group/record/_search"),E._internal.get=o.get("/group/record/:id"),E._internal.getCommons=o.get("/group/record/:id?_source="+m.commons.join(",")),n.ready().then((function(){return o.api.node.on.start(t,I,this),o.api.node.on.stop(t,I,this),I()})),{record:{last:v,search:function(e){var t=(e=e||{}).text&&e.text.trim();if(!t)return v(e);var n={from:e.from||0,size:e.size||p,highlight:{fields:{title:{},tags:{}}},_source:e._source||m.list},a=[],o=[];return i.regexp.PUBKEY.test(t)?(o.push({term:{issuer:t}}),o.push({term:{pubkey:t}})):(t=t.toLowerCase(),a.push({multi_match:{query:t,fields:["title","description"],type:"phrase_prefix"}}),a.push({match:{title:t}}),a.push({match:{description:t}})),n.query={bool:{}},a.length>0&&(n.query.bool.should=a),o.length>0&&(n.query.bool.filter=o),h(n)},load:function(e,t){return(t=t||{}).fecthPictures=!!angular.isDefined(t.fetchPictures)&&t.fetchPictures,t.html=!angular.isDefined(t.html)||t.html,(t.fecthPictures?E._internal.get({id:e}):E._internal.getCommons({id:e})).then((function(e){var n=T(e,t.html);return s.extend({pubkey:n.issuer}).then((function(t){return{id:e._id,issuer:t,record:n}}))}))},add:o.record.post("/group/record",{tagFields:["title","description"]}),update:o.record.post("/group/record/:id/_update",{tagFields:["title","description"]}),remove:o.record.remove("group","record"),fields:{commons:m.commons},picture:{all:o.get("/group/record/:id?_source=pictures")},comment:u.instance("group")}}}]),angular.module("cesium.es.invitation.services",["cesium.platform","cesium.es.http.services","cesium.es.wallet.services","cesium.es.notification.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esInvitation")}]).factory("esInvitation",["$rootScope","$q","CryptoUtils","csPlatform","Api","esHttp","csWallet","esWallet","csWot","esNotification",function(e,t,n,i,a,o,r,s,l,c){var u,d=this,p={DEFAULT_LOAD_SIZE:20},m={commons:["issuer","time","hash","content","nonce","comment"]},E=new a(this,"esInvitation");function b(e){e.invitations=e.invitations||{},e.invitations.unreadCount=null,e.invitations.time=null}function g(e){e.invitations&&delete e.invitations}function f(e,n){if(n=n||t.defer(),!e||!e.pubkey)return n.resolve(),n.promise;var i=Date.now(),a=Math.trunc(i/1e3);return e.invitations&&e.invitations.time&&a-e.invitations.time<30?(console.debug("[ES] [invitation] Skipping load (loaded "+(a-e.invitations.time)+"s ago)"),n.resolve(),n.promise):(console.debug("[ES] [invitation] Loading count..."),function(e){if(!(e=e||(r.isLogin()?r.data.pubkey:e)))throw new Error("User not connected or no pubkey");var t={query:{bool:{must:[{term:{recipient:e}}]}}};return o.post("/invitation/certification/_count")(t).then((function(e){return e.count}))}(e.pubkey).then((function(t){e.invitations=e.invitations||{},e.invitations.unreadCount=t,e.invitations.time=a,console.debug("[ES] [invitation] Loaded count ("+t+") in "+(Date.now()-i)+"ms"),n.resolve(e)})).catch((function(t){console.error("Error while counting invitation: "+(t.message?t.message:t)),n.resolve(e)})),n.promise)}function T(e){if(r.data.invitations&&r.data.invitations.list){var n=_.where(r.data.invitations.list,{type:"certification",pubkey:e.pubkey});if(n&&n.length)return t.all(n.reduce((function(e,t){return e.concat(I(t))}),[]))}}function h(t){console.debug("[ES] [invitation] detected new invitation (from notification service)"),r.isAuth()?v(t.reference.id,t.reference.type).then((function(e){r.data.invitations=r.data.invitations||{},r.data.invitations.unreadCount++,r.data.invitations.list&&r.data.invitations.list.splice(0,0,e),E.data.raise.new(e)})):e.$applyAsync((function(){r.data.invitations=r.data.invitations||{},r.data.invitations.unreadCount++}))}function v(e,n){return n=n||"certification",t.all([s.box.getKeypair(),d.raw[n].get({id:e,fields:m.commons.join(",")})]).then((function(e){var t=e[0],n=e[1],i=n._source;return i.id=n._id,i.type=n._type,s.box.record.open([i],t,"issuer",["content","comment"])})).then((function(e){var t=e[0];if(t&&t.valid){var n=new q(t);return l.extendAll(n.issuer?[n,n.issuer]:[n],"pubkey").then((function(){return n}))}}))}function I(e,t){if(!e||!e.id)throw"Invalid invitation (empty or without id). Could not delete.";var n=e.type||"certification",i=t&&t.walletId&&r.children.get(t.walletId)||r;return d.raw[n].remove(e.id,{wallet:i}).then((function(){i.data.invitations.unreadCount=0,i.data.invitations&&i.data.invitations.list&&i.data.invitations.list.splice(i.data.invitations.list.indexOf(e),1)}))}function N(e,n,i){return e&&e.length?(n=n||"certification",t.all(e.reduce((function(e,t){return e.concat(d.raw[n].remove(t,i))}),[]))):t.when()}function O(){var t=o.alive;!t&&u&&u.length>0?(console.debug("[ES] [invitations] Disable"),_.forEach(u,(function(e){e()})),u=[],r.isLogin()&&g(r.data)):!t||u&&0!==u.length||(console.debug("[ES] [invitations] Enable"),function(){u=[r.api.data.on.init(e,b,this),r.api.data.on.login(e,f,this),r.api.data.on.load(e,f,this),r.api.data.on.reset(e,g,this),r.api.action.on.certify(e,T,this),c.api.event.on.newInvitation(e,h,this)]}(),r.isLogin()&&f(r.data))}return d.raw={certification:{get:o.get("/invitation/certification/:id?_source:fields"),add:o.record.post("/invitation/certification"),postSearch:o.post("/invitation/certification/_search"),remove:o.record.remove("invitation","certification"),getIds:o.get("/invitation/certification/_search?q=recipient::pubkey&_source=false&size=1000")}},E.registerEvent("data","new"),i.ready().then((function(){return o.api.node.on.start(e,O,this),o.api.node.on.stop(e,O,this),O()})),d.api=E,d.load=function(e,n){if(!r.isLogin())return t.when([]);(e=e||{}).from=e.from||0,e.size=e.size||p.DEFAULT_LOAD_SIZE;var i={sort:{time:"desc"},query:{bool:{filter:{term:{recipient:e.issuer||r.data.pubkey}}}},from:e.from,size:e.size,_source:m.commons};return e.readTime&&(query.bool.must=[{range:{time:{gt:e.readTime}}}]),d.raw.certification.postSearch(i).then((function(e){if(!e||!e.hits||!e.hits.total)return[];var t=e.hits.hits.reduce((function(e,t){var n=t._source;return n.id=t._id,n.type=t._type,n.read=!!n.read_signature,delete n.read_signature,e.concat(n)}),[]);return s.box.record.open(t,n,"issuer",["content","comment"])})).then((function(t){var n=[];return t=t.reduce((function(e,t){if(!t||!t.valid)return e;var i=new q(t);return n.push(i),i.issuer&&n.push(i.issuer),e.concat(i)}),[]),l.extendAll(n,"pubkey").then((function(){return r.data.invitations=r.data.invitations||{},r.data.invitations.list?(r.data.invitations.list.length&&r.data.invitations.list.splice(e.from,r.data.invitations.list.length-e.from),_.forEach(t,(function(e){r.data.invitations.list.push(e)}))):r.data.invitations.list=t,r.data.invitations.list}))}))},d.get=v,d.send=function(e,t){(t=t||{}).type=t.type||"certification";var n=t.keypair||t.wallet&&t.wallet.data.keypair;return s.box.record.pack(e,n,"recipient",["content","comment"]).then((function(e){return d.raw[t.type].add(e,t)}))},d.delete=I,d.deleteByIds=N,d.deleteAll=function(e,t){e=e||"certification";var n=Date.now();console.debug("[ES] [invitation] Deleting all {0} invitations...".format(e));var i=t&&t.pubkey&&r.children.getByPubkey(t.pubkey)||t&&t.walletId&&r.children.getByPubkey(t.walletId)||r,a=i.data.invitations&&i.data.invitations.count||0,o=i.data.invitations&&i.data.invitations.unreadCount||0;return d.raw[e].getIds({pubkey:i.data.pubkey}).then((function(t){if(t&&t.hits&&t.hits.total)return N(t.hits.hits.reduce((function(e,t){return e.concat(t._id)}),[]),e,{walletId:i.id}).then((function(){i.data.invitations=i.data.invitations||{},i.data.invitations.count>=a?i.data.invitations.count-=a||0:i.data.invitations.count=0,i.data.invitations.unreadCount>=o?i.data.invitations.unreadCount-=o||0:i.data.invitations.unreadCount=0,console.debug("[ES] [invitation] All {0} invitations deleted in {1}ms".format(e,Date.now()-n))}))}))},d.constants=p,d}]),angular.module("cesium.es.subscription.services",["cesium.platform","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esSubscription")}]).factory("esSubscription",["$rootScope","$q","$timeout","esHttp","$state","$sce","$sanitize","esSettings","CryptoUtils","UIUtils","csWallet","csWot","BMA","csPlatform","esWallet",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){var b,g=this;function f(e){e.subscriptions=null}function T(e,n){return n=n||t.defer(),e&&e.pubkey&&e.keypair?(console.debug("[ES] [subscription] Loading subscriptions count..."),g.raw.count({pubkey:e.pubkey}).then((function(t){e.subscriptions=e.subscriptions||{},e.subscriptions.count=t&&t.hits&&t.hits.total,console.debug("[ES] [subscription] Loaded count ("+e.subscriptions.count+")"),n.resolve(e)})).catch((function(t){console.error("[ES] [subscription] Error while counting subscription: "+(t.message?t.message:t)),n.resolve(e)})),n.promise):(n.resolve(),n.promise)}function h(){var t=i.alive;if(!t&&b&&b.length>0){if(console.debug("[ES] [subscription] Disable"),_.forEach(b,(function(e){e()})),b=[],u.isLogin())return f(u.data)}else if(t&&(!b||0===b.length)&&(console.debug("[ES] [subscription] Enable"),function(){b=[u.api.data.on.load(e,T,this),u.api.data.on.init(e,f,this),u.api.data.on.reset(e,f,this)]}(),u.isLogin()))return T(u.data)}return g.raw={getAll:i.get("/subscription/record/_search?_source_excludes=recipientContent&q=issuer::issuer"),count:i.get("/subscription/record/_search?size=0&q=issuer::pubkey"),add:i.record.post("/subscription/record"),update:i.record.post("/subscription/record/:id/_update"),category:{get:i.get("/subscription/category/:id"),all:i.get("/subscription/category/_search?sort=order&from=0&size=1000&_source=name,parent,key")}},m.ready().then((function(){return i.api.node.on.start(e,h,this),i.api.node.on.stop(e,h,this),h()})),g.record={load:function(e,t){return g.raw.getAll({issuer:e}).then((function(e){var n=e&&e.hits&&e.hits.total&&e.hits.hits.reduce((function(e,t){var n=t._source;return n.id=t._id,e.concat(n)}),[])||[];return E.box.record.open(n,t,"issuer","issuerContent").then((function(e){return _.forEach(e,(function(e){e.content=JSON.parse(e.issuerContent||"{}"),delete e.issuerContent,delete e.recipientContent})),e}))}))},add:function(e,n){if(!(e&&e.type&&e.content&&e.recipient))return t.reject("Missing arguments 'record' or 'record.type' or 'record.content' or 'record.recipient'");var i=n&&n.wallet||n&&n.walletId&&u.children.get(n.walletId)||u,a=i.data.pubkey,o=JSON.stringify(e.content);return l.util.random_nonce().then((function(n){return t.all([E.box.record.pack({issuer:a,issuerContent:o},i.data.keypair,"issuer","issuerContent",n),E.box.record.pack({recipient:e.recipient,recipientContent:o},i.data.keypair,"recipient","recipientContent",n)])})).then((function(t){var n=angular.merge(t[0],t[1]);return n.type=e.type,g.raw.add(n,{wallet:i}).then((function(t){return e.id=t,e}))}))},update:function(e,n){if(!e||!e.content||!e.recipient)return t.reject("Missing arguments 'record' or 'record.content', or 'record.recipient'");var i=n&&n.wallet||n&&n.walletId&&u.children.get(n.walletId)||u,a=i.data.pubkey,o=JSON.stringify(e.content);return l.util.random_nonce().then((function(n){return t.all([E.box.record.pack({issuer:a,issuerContent:o},i.data.keypair,"issuer","issuerContent",n),E.box.record.pack({recipient:e.recipient,recipientContent:o},i.data.keypair,"recipient","recipientContent",n)])})).then((function(t){var n=angular.merge(t[0],t[1]);return n.type=e.type,g.raw.update(n,{id:e.id,wallet:i}).then((function(){return e}))}))},remove:i.record.remove("subscription","record")},g.category={all:function(){if(g.raw.categories&&g.raw.categories.length){var e=t.defer();return e.resolve(g.raw.categories),e.promise}return g.raw.category.all().then((function(e){if(0===e.hits.total)g.raw.categories=[];else{var t=e.hits.hits.reduce((function(e,t){var n=t._source;return n.id=t._id,e.concat(n)}),[]);_.forEach(t,(function(e){t[e.id]=e})),g.raw.categories=t}return g.raw.categories}))},get:function(e){return g.raw.category.get(e).then((function(e){var t=e._source;return t.id=e._id,t}))}},g.constants={},g}]),angular.module("cesium.es.wallet.services",["ngResource","cesium.platform","cesium.es.http.services","cesium.es.crypto.services"]).factory("esWallet",["$q","$rootScope","$timeout","CryptoUtils","csPlatform","csWallet","esCrypto","esProfile","esHttp",function(e,t,n,i,a,o,r,s,l){var c;function u(e){e.avatar=null,e.profile=null,e.name=null,o.events.cleanByContext("esWallet"),e.keypair&&(delete e.keypair.boxSk,delete e.keypair.boxPk)}function d(t,n){return n=n||e.defer(),r.box.getKeypair(t.keypair).then((function(e){t.keypair.boxSk=e.boxSk,t.keypair.boxPk=e.boxPk,console.debug("[ES] [wallet] Box keypair successfully computed"),n.resolve()})),n.promise}function p(e){(e=e||o.data).keypair&&(delete e.keypair.boxSk,delete e.keypair.boxPk)}function m(t,a){if(a=a||e.defer(),!t||!t.pubkey||!t.keypair)return a.resolve(),a.promise;if(!i.isLoaded())return console.debug("[ES] [wallet] Waiting crypto lib loading..."),n((function(){return m(t,a)}),50);console.debug("[ES] [wallet] Loading user avatar+name...");var o=Date.now();return s.getAvatarAndName(t.pubkey).then((function(e){e?(t.name=e.name,t.avatarStyle=e.avatarStyle,t.avatar=e.avatar,console.debug("[ES] [wallet] Loaded user avatar+name in "+(Date.now()-o)+"ms")):console.debug("[ES] [wallet] No user avatar+name found"),a.resolve(t)})).catch((function(e){a.reject(e)})),a.promise}function E(t,n){n=n||e.defer(),o.events.cleanByContext("esWallet"),!t.name&&!t.requirements.revoked&&t.requirements.pendingMembership&&t.requirements.needCertificationCount>0&&o.events.add({type:"info",message:"ACCOUNT.EVENT.MEMBER_WITHOUT_PROFILE",context:"esWallet"}),console.debug("[ES] [wallet] Loading full user profile...");var i=Date.now();return s.get(t.pubkey).then((function(e){e&&(t.name=e.name,t.avatar=e.avatar,t.profile=e.source,t.profile.description=e.description,console.debug("[ES] [wallet] Loaded full user profile in "+(Date.now()-i)+"ms")),n.resolve()})),n.promise}function b(t){if(!t&&!o.isAuth())throw new Error("Unable to get box keypair: user not authenticated !");return(t?e.when(t):o.getKeypair({silent:!0})).then((function(t){return t&&t.boxPk&&t.boxSk?e.when(t):r.box.getKeypair(t).then((function(e){return t.boxSk=e.boxSk,t.boxPk=e.boxPk,console.debug("[ES] [wallet] Box keypair successfully computed"),t}))}))}function g(){var e=l.alive;if(!e&&c&&c.length>0){if(console.debug("[ES] [wallet] Disable"),_.forEach(c,(function(e){e()})),c=[],o.isLogin())return u(o.data)}else if(e&&(!c||0===c.length)&&(console.debug("[ES] [wallet] Enable"),function(){c=[o.api.data.on.login(t,m,this),o.api.data.on.load(t,E,this),o.api.data.on.init(t,u,this),o.api.data.on.reset(t,u,this),o.api.data.on.unauth(t,p,this),o.api.data.on.auth(t,d,this)]}(),o.isLogin()))return m(o.data)}return a.ready().then((function(){return l.api.node.on.start(t,g,this),l.api.node.on.stop(t,g,this),g()})),this.box={getKeypair:b,record:{pack:function(e,t,n,i,a){return b(t).then((function(t){return r.box.pack(e,t,n,i,a)}))},open:function(e,t,n,i){return b(t).then((function(t){return r.box.open(e,t,n,i)}))}}},this}]),angular.module("cesium.es.wot.services",["ngResource","cesium.es.http.services"]).factory("esWot",["$rootScope","$q","esHttp","csCache",function(e,t,n,i){var a=i.get("esWot-memberships-",i.constants.MEDIUM),o={user:{event:n.post("/user/event/_search")}};return n.api.node.on.stop(e,(function(){console.debug("[ES] [wot] Clean cache..."),i.clear("esWot-")}),this),{memberships:function(e,n){var i=!1!==(n=n||{}).cache?a.get(e):null;if(i)return t.when(i);var r={size:1e3,query:{bool:{filter:[{term:{recipient:e}},{terms:{code:["MEMBER_JOIN","MEMBER_ACTIVE","MEMBER_LEAVE","MEMBER_EXCLUDE","MEMBER_REVOKE"]}}]}},sort:[{time:{order:"asc"}}],_source:["code","time"]};return o.user.event(r).then((function(t){if(t.hits&&t.hits.total){var n,i=t.hits.hits.reduce((function(e,t){var i="MEMBER_JOIN"==t._source.code||"MEMBER_ACTIVE"==t._source.code;return i&&!n?n=t._source.time:!i&&n&&(e=e.concat({joinTime:n,leaveTime:t._source.time}),n=0),e}),[]);return n&&i.push({joinTime:n,leaveTime:moment().utc().unix()}),a.put(e,i),i}}))}}}]),angular.module("cesium.es.tx.services",["ngResource","cesium.services","cesium.es.http.services","cesium.es.wot.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esTx")}]).factory("esTx",["$q","$rootScope","csPlatform","csCurrency","csTx","esHttp","esWot",function(e,t,n,i,a,o,r){var s,l={block:{search:o.post("/:currency/block/_search")}};function c(t,n){return n=n||e.defer(),(t=t||{}).pubkey||n.reject("Missing [pubkey] when calling [loadUDs] extension point"),e.all([i.get(),r.memberships(t.pubkey)]).then((function(n){var i=n[0]&&n[0].name,a=n[1];if(i&&a&&a.length)return-1!==t.fromTime&&(a=a.reduce((function(e,n){return n.leaveTime<t.fromTime?e:(n.joinTime=Math.max(n.joinTime,t.fromTime),e.concat(n))}),[])),e.all(a.reduce((function(e,n){var a={query:{filtered:{filter:{bool:{must:[{exists:{field:"dividend"}},{range:{medianTime:{from:n.joinTime+1,to:n.leaveTime}}}]}}}},size:t.size||1e4,from:t.from||0,sort:{medianTime:"desc"},_source:["medianTime","number","dividend","unitbase"]};return e.concat(l.block.search(a,{currency:i}))}),[]))})).then((function(e){if(e&&e.length)return e.reduce((function(e,t){return t.hits.total&&t.hits.hits.length?e.concat(t.hits.hits.reduce((function(e,t){var n,i,a=t._source;return e.concat({time:a.medianTime,amount:(n=a.dividend,i=a.unitbase,i<=0?n:n*Math.pow(10,i)),isUD:!0,block_number:a.number})}),[])):t}),[])})).then((function(e){n.resolve(e)})).catch((function(e){n.reject(e)})),n.promise}function u(){var e=o.alive;!e&&s&&s.length>0?(console.debug("[ES] [tx] Disable"),_.forEach(s,(function(e){e()})),s=[]):!e||s&&0!==s.length||(console.debug("[ES] [tx] Enable"),function(){s=[a.api.data.on.loadUDs(t,c,this)]}())}return n.ready().then((function(){return o.api.node.on.start(t,u,this),o.api.node.on.stop(t,u,this),u()})),{}}]),angular.module("cesium.es.geo.services",["cesium.services","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esGeo")}]).factory("esGeo",["$rootScope","$q","csConfig","csSettings","csHttp",function(e,t,n,i,a){var o=this;function r(e){return o.raw.google.search({address:e,key:o.raw.google.apiKey}).then((function(e){if(e&&e.results&&e.results.length)return e.results.reduce((function(e,t){return e.concat({display_name:t.address_components&&t.address_components.reduce((function(e,t){return t.long_name?e.concat(t.long_name):e}),[]).join(", "),lat:t.geometry&&t.geometry.location&&t.geometry.location.lat,lon:t.geometry&&t.geometry.location&&t.geometry.location.lng})}),[])}))}o.raw={osm:{search:a.get("nominatim.openstreetmap.org",443,"/search.php?format=json"),license:{name:"OpenStreetMap",url:"https://www.openstreetmap.org/copyright"}},google:{apiKey:void 0,search:a.get("maps.google.com",443,"/maps/api/geocode/json")},freegeoip:{search:a.get("freegeoip.net",443,"/json/:ip"),license:{name:"freegeoip",url:"https://freegeoip.net"}}},o.raw.google.apiKey=n.plugins&&n.plugins.es&&n.plugins.es.googleApiKey;var s=!!o.raw.google.apiKey;return i.ready().then((function(){function t(e){s||(o.raw.google.apiKey=e.plugins.es.googleApiKey),o.raw.google.enable=o.raw.google.apiKey&&e.plugins&&e.plugins.es&&e.plugins.es.enableGoogleApi}i.api.data.on.changed(e,t,this),t(i.data)})),{point:{current:function(){var e=t.defer();return navigator.geolocation?navigator.geolocation.getCurrentPosition((function(t){t&&t.coords?e.resolve({lat:t.coords.latitude,lon:t.coords.longitude}):console.error("[ES] [geo] navigator geolocation > Unknown format:",t)}),(function(t){e.reject(t)}),{timeout:5e3}):e.reject(),e.promise},searchByAddress:function(e){"string"==typeof e&&(e={q:e}),e.q&&(e.q=e.q.trim().replace(/\n/g,",").replace(/(?:^|[\t\n\r\s ])([A−Z09-]+)(?:$|[\t\n\r\s ])/g,"").replace(/,[ ,]+/g,", ")),e.addressdetails=1;var t=Date.now();return o.raw.osm.search(e).then((function(e){if(e)return e=e.reduce((function(e,t){return"waterway"!=t.class&&"railway"!=t.class&&t.address?(t.address.city=t.address.city||t.address.village||t.address.town||t.address.postcode,t.address.road=t.address.road||t.address.suburb||t.address.hamlet,t.address.postcode&&t.address.city==t.address.postcode&&delete t.address.postcode,t.address.city?e.concat({id:t.place_id,name:t.display_name,address:t.address,lat:t.lat,lon:t.lon,class:t.class,license:o.raw.osm.license}):e):e}),[]),console.debug("[ES] [geo] Found {0} address position(s)".format(e&&e.length||0,Date.now()-t),e),e.length?e:void 0})).catch((function(t){return n=t,i=e.q?e.q:(e.street?e.street+", ":"")+e.city+(e.country?", "+e.country:""),console.debug("[ES] [geo] Search position failed on [OSM]. Trying [google] service"),r(i).catch((function(e){throw console.debug("[ES] [geo] Search position failed on [google] service"),n||e}));var n,i}))},distance:function(e,t,n,i,a){var o=Math.PI*e/180,r=Math.PI*n/180,s=t-i,l=Math.PI*s/180,c=Math.sin(o)*Math.sin(r)+Math.cos(o)*Math.cos(r)*Math.cos(l);return c=60*(c=180*(c=Math.acos(c))/Math.PI)*1.1515,"km"==a?1.609344*c:"N"==a?.8684*c:c},ip:{search:function(e){return o.raw.freegeoip.search({ip:e}).then((function(e){return e?{lat:e.latitude,lng:e.longitude}:void 0}))},license:o.raw.freegeoip.license}},google:{isEnable:function(){return o.raw.google.enable&&o.raw.google.apiKey},searchByAddress:r}}}]),angular.module("cesium.es.document.services",["ngResource","cesium.platform","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esDocument")}]).factory("esDocument",["$q","$rootScope","$timeout","UIUtils","Api","CryptoUtils","csPlatform","csConfig","csSettings","csWot","csWallet","esHttp",function(e,t,n,i,a,o,r,s,l,c,u,d){var p=40,m={commons:["issuer","pubkey","hash","time","recipient","nonce","read_signature"],peer:["*"],movement:["*"]},E={search:d.post("/:index/:type/_search"),searchText:d.get("/:index/:type/_search?q=:text&_source=:source")};function b(e){if(!e||!e.index||!e.type)throw new Error("Missing mandatory options [index, type]");var t="desc";return"peer"===e.type?(e.sort&&!e.sort.time||(t=e.sort&&e.sort.time||t,e.sort={"stats.medianTime":{nested_path:"stats",order:t}}),e._source=m.peer,e.getTimeFunction=function(e){return e.time=e.stats&&e.stats.medianTime,e.time}):"movement"===e.type&&(e.sort&&!e.sort.time||(t=e.sort&&e.sort.time||t,e.sort={medianTime:t}),e._source=e._source||m.movement,e.getTimeFunction=function(e){return e.time=e.medianTime,e.time}),e}function g(e,t){t.issuerField=t.issuerField||"pubkey";var n=(e&&e.hits&&e.hits.hits||[]).reduce((function(e,n){var i=n._source||{};return i.docType=i.type,i.index=n._index,i.type=n._type,i.id=n._id,i.pubkey=i.issuer||t.issuerField&&i[t.issuerField]||i.pubkey,i.time=t.getTimeFunction&&t.getTimeFunction(i)||i.time,i.thumbnail=d.image.fromHit(n,"avatar")||d.image.fromHit(n,"thumbnail"),e.concat(i)}),[]),i=n.reduce((function(e,t){return t.recipient?(t.recipient={pubkey:t.recipient},e.concat(t.recipient)):e}),[]);return c.extendAll(n.concat(i)).then((function(){return{hits:n,took:e.took,total:e&&e.hits&&e.hits.total||0}}))}return{search:function(e){var t={from:(e=b(e)).from||0,size:e.size||p,sort:e.sort||{time:"desc"},_source:e._source||m.commons};return e.query&&(t.query=e.query),E.search(t,{index:e.index,type:e.type}).then((function(t){return g(t,e)}))},searchText:function(e,t){var n={text:e,index:(t=t||{}).index||"user",type:t.type||"profiles",from:t.from||0,size:t.size||p,sort:t.sort||"time:desc",source:t._source&&t._source.join(",")||m.commons.join(",")};console.debug("[ES] [wallet] [document] [{0}/{1}] Loading documents...".format(t.index,t.type));var i=Date.now();return E.searchText(n).then((function(e){return g(e,t)})).then((function(e){return console.debug("[ES] [document] [{0}/{1}] Loading {2} documents in {3}ms".format(t.index,t.type,e&&e.hits&&e.hits.length||0,Date.now()-i)),e}))},remove:function(t,n){return t&&t.index&&t.type&&t.id?d.record.remove(t.index,t.type)(t.id,n):e.reject("Could not remove document: missing mandatory fields")},removeAll:function(t,n){if(t&&t.length){var i=n&&n.walletId&&u.children.get(n.walletId)||u;return i.auth().then((function(){return e.all(t.reduce((function(e,t){return e.concat(d.record.remove(t.index,t.type)(t.id,{wallet:i}))}),[]))}))}},fields:{commons:m.commons},fromHit:function(e){return g({hits:{hits:[e]}},b({index:e._index,type:e._type})).then((function(e){return e.hits[0]}))}}}]),angular.module("cesium.es.network.services",["ngApi","cesium.es.http.services"]).factory("esNetwork",["$rootScope","$q","$interval","$timeout","$window","csSettings","csConfig","esHttp","Api","BMA",function(e,t,n,i,a,o,r,s,l,c){function u(e){var u,d="https:"===a.location.protocol,p=new l(this,"csNetwork-"+e),m={pod:null,listeners:[],loading:!0,peers:[],filter:{endpointFilter:null,online:!0,ssl:void 0,tor:void 0},sort:{type:null,asc:!0,compact:!0},groupBy:"pubkey",expertMode:!1,knownBlocks:[],mainBlock:null,searchingPeersOnNetwork:!1,timeout:r.timeout},E=function(e){return e&&[e.number,e.hash].join("-")},b=function(){m.pod=null,m.listeners=[],m.peers.splice(0),m.filter={endpointFilter:null,online:!0},m.sort={type:null,asc:!0},m.groupBy="pubkey",m.expertMode=!1,m.knownBlocks=[],m.mainBlock=null,m.loading=!0,m.searchingPeersOnNetwork=!1,m.timeout=r.timeout,m.document={index:o.data.plugins.es&&o.data.plugins.es.document&&o.data.plugins.es.document.index||"user",type:o.data.plugins.es&&o.data.plugins.es.document&&o.data.plugins.es.document.type||"profile"}},g=function(){m.peers=[],m.searchingPeersOnNetwork=!0,m.loading=!0,m.pod=m.pod||s;var e=[];return u&&n.cancel(u),u=n((function(){e.length?v(e):m.loading&&!m.searchingPeersOnNetwork&&(m.loading=!1,n.cancel(u),N(!0),console.debug("[network] Finish: {0} peers found.".format(m.peers.length)))}),1e3),t.when().then((function(){return m.filter.online?m.pod.network.peers().then((function(n){var i=[];if(_.forEach(n.peers,(function(t){"UP"===t.status&&i.push(f(t,e))})),i.length)return t.all(i)})).catch((function(e){console.error(e)})):m.pod.network.peers().then((function(n){var i=[];if(_.forEach(n.peers,(function(t){"UP"!==t.status&&i.push(f(t,e))})),i.length)return t.all(i)}))})).then((function(){m.searchingPeersOnNetwork=!1})).catch((function(e){console.error(e),m.searchingPeersOnNetwork=!1}))},f=function(e,n){n=n||m.newPeers;var i=T(e),a=!1,o=i.reduce((function(e,t){var i=_.findWhere(m.peers,{id:t.id}),o=i?i.buid:null,r=!!i&&i.online;return e.concat(h(t).then((function(e){if(i)if(!e||e.online!==m.filter.online&&"all"!==m.filter.online){var s=m.peers.indexOf(i);-1!==s&&(console.debug("[network] Peer [{0}] removed (cause: {1})".format(t.server,e?e.online?"UP":"DOWN":"filtered")),m.peers.splice(s,1),a=!0)}else e.buid!==o?(console.debug("[network] {0} endpoint [{1}] new current block".format(e.ep&&e.ep.api||"",e.server)),a=!0):r!==e.online?(console.debug("[network] {0} endpoint [{1}] is now {2}".format(e.ep&&e.ep.api||"",e.server,e.online?"UP":"DOWN")),a=!0):console.debug("[ES] [network] {0} endpoint [{1}] unchanged".format(e.ep&&e.ep.api||"",e.server));else!e||e.online!==m.filter.online&&"all"!==m.filter.online||(console.debug("[ES] [network] {0} endpoint [{1}] is {2}".format(e.ep&&e.ep.api||"",e.server,e.online?"UP":"DOWN")),n.push(e),a=!0)})))}),[]);return(1===o.length?o[0]:t.all(o)).then((function(){return a}))},T=function(e,t){if(!e)return[];var n=new X(e);if(!t){var i=n.getEndpoints();if(!i)return[];var a=i.reduce((function(e,t){var n=s.node.parseEndPoint(t);return n?e.concat(n):e}),[]);if(a.length>1)return a.reduce((function(t,n){return t.concat(T(e,n))}),[]);t=a[0]}return n.ep=t,n.server=n.getServer(),n.dns=n.getDns(),n.blockNumber=n.block&&n.block.replace(/-.+$/,""),n.id=n.keyID(),[n]},h=function(e){return function(e){return!(m.filter&&(m.filter.endpointFilter&&(e.ep&&e.ep.api&&e.ep.api!==m.filter.endpointFilter||!e.hasEndpoint(m.filter.endpointFilter))||!m.filter.online&&"UP"===e.status||angular.isDefined(m.filter.ssl)&&e.isSsl()!=m.filter.ssl||angular.isDefined(m.filter.tor)&&e.isTor()!=m.filter.tor))}(e)?m.filter.online&&(m.filter.online||"DOWN"!==e.status)&&e.getHost()?d&&!e.isSsl()?(e.online="UP"===e.status,e.buid=-1,delete e.version,t.when(e)):e.ep.useTor?(e.online="UP"==e.status,e.buid=-1,delete e.software,delete e.version,t.when(e)):(e.api=e.api||s.lightInstance(e.getHost(),e.getPort(),e.isSsl(),m.timeout),e.api.blockchain.current().then((function(t){return e.currentNumber=t.number,e.online=!0,e.buid=E(t),e.medianTime=t.medianTime,-1===m.knownBlocks.indexOf(e.buid)&&m.knownBlocks.push(e.buid),e})).catch((function(t){if(t&&t.ucode==c.errorCodes.NO_CURRENT_BLOCK)return e.online=!0,e.buid=E({number:0,hash:c.constants.ROOT_BLOCK_HASH}),e.difficulty=0,e;if(!e.secondTry){var n=e.ep||e.getEP();if(n.dns&&-1===e.server.indexOf(n.dns))return e.secondTry=!0,e.api=s.lightInstance(n.dns,e.getPort(),e.isSsl(),m.timeout),h(e)}return e.online=!1,e.currentNumber=null,e.buid=null,e})).then((function(e){return m.filter.online&&e&&e.online?(e.docCount={},t.all([m.expertMode?e.api.node.summary().then((function(t){e.software=t&&t.duniter&&t.duniter.software||void 0,e.version=t&&t.duniter&&t.duniter.version||"?"})).catch((function(){e.software=void 0,e.version="?"})):t.when(),e.api.record.count(m.document.index,m.document.type).then((function(t){e.docCount.record=t})).catch((function(){e.docCount.record=void 0})),e.api.subscription.count({recipient:e.pubkey,type:"email"}).then((function(t){e.docCount.emailSubscription=t})).catch((function(){e.docCount.emailSubscription=void 0}))])):e})).then((function(){return delete e.api,e}))):(e.online=!1,t.when(e)):t.when()},v=function(e,t){if((e=e||m.newPeers).length){var n=_.map(m.peers,(function(e){return e.id})),i=!1,a=0;_.forEach(e.splice(0),(function(e){n[e.id]||(m.peers.push(e),n[e.id]=e,i=!0,a++)})),i&&(console.debug("[network] Flushing {0} new peers...".format(a)),N(t))}},I=function(e,t,n){if(!e)return 0;var i=0;t>(e=e.toLowerCase()).length&&(t=e.length),i+=e.charCodeAt(0);for(var a=1;a<t;a++)i+=Math.pow(.001,a)*e.charCodeAt(a);return n?1e3-i:i},N=function(e){var t={};_.forEach(m.peers,(function(e){if(e.buid){var n=t[e.buid];n&&n.medianTime?!n.medianTime&&e.medianTime&&(n.medianTime=e.medianTime):(n={buid:e.buid,medianTime:e.medianTime,count:0},t[e.buid]=n),-1!==n.buid&&n.count++}})),_.forEach(_.values(t),(function(e){e.pct=100*e.count/m.peers.length}));var n,i=_.max(t,(function(e){return e.count}));_.forEach(m.peers,(function(e){e.hasMainConsensusBlock=e.buid==i.buid,e.hasConsensusBlock=e.buid&&!e.hasMainConsensusBlock&&t[e.buid].count>1,e.hasConsensusBlock&&(e.consensusBlockDelta=t[e.buid].medianTime-i.medianTime)})),m.peers=_.uniq(m.peers,!1,(function(e){return e.id})),m.peers=_.sortBy(m.peers,(function(e){var n=0;if(m.sort.type){var i=0;i+="name"==m.sort.type?I(e.name,10,m.sort.asc):0,i+="software"==m.sort.type?I(e.software,10,m.sort.asc):0,i+="api"==m.sort.type&&(e.hasEndpoint("ES_SUBSCRIPTION_API")&&(m.sort.asc?1:-1)||0)+(e.hasEndpoint("ES_USER_API")&&(m.sort.asc?.01:-.01)||0)+(e.isSsl()&&(m.sort.asc?.75:-.75)||0)||0,n+=1e10*(i+="doc_count"==m.sort.type&&e.docCount?m.sort.asc?1e9-e.docCount:e.docCount:0)}return n+=1e9*(e.online?1:0),n+=1e8*(e.hasMainConsensusBlock?1:0),n+=1e6*(e.hasConsensusBlock?t[e.buid].pct:0),m.expertMode?(n+=100*(e.difficulty?1e4-e.difficulty:0),n+=1*(e.uid?I(e.uid,2,!0):0)):(n+=100*(e.uid?I(e.uid,2,!0):0),n+=1*(e.uid?0:I(e.pubkey,2,!0))),-n})),m.groupBy&&m.peers.forEach((function(e){e.compacted=n&&e[m.groupBy]&&e[m.groupBy]===n[m.groupBy],n=e})),e&&i&&i.buid&&(!m.mainBlock||m.mainBlock.buid!==i.buid)&&(m.mainBlock=i,p.data.raise.mainBlockChanged(i)),p.data.raise.changed(m)},O=function(e,t){return t=t||{},s.ready().then((function(){R(),b(),m.pod=e||s,m.filter=t.filter?angular.merge(m.filter,t.filter):m.filter,m.sort=t.sort?angular.merge(m.sort,t.sort):m.sort,m.expertMode=angular.isDefined(t.expertMode)?t.expertMode:m.expertMode,m.timeout=angular.isDefined(t.timeout)?t.timeout:r.timeout,console.info("[ES] [network] Starting network from [{0}]".format(m.pod.server));var n=Date.now();return m.listeners=[m.pod.websocket.block().onListener((function(e){if(e&&!m.loading){var t=[e.number,e.hash].join("-");-1===m.knownBlocks.indexOf(t)&&(console.debug("[network] Receiving block: "+t.substring(0,20)),m.knownBlocks.push(t),1===m.knownBlocks.length||(m.loading=!0,i((function(){console.debug("[network] new block received by WS: will refresh peers"),g()}),2e3,!1)))}})),m.pod.websocket.peer().onListener((function(e){if(e&&!m.loading){var t=[];f(e,t).then((function(e){e&&(t.length>0?v(t,!0):(console.debug("[network] [ws] Peers updated received"),N(!0)))}))}}))],g().then((function(e){return console.debug("[ES] [network] Started in "+(Date.now()-n)+"ms"),e}))}))},R=function(){m.pod&&(console.info("[ES] [network-service] Stopping..."),_.forEach(m.listeners,(function(e){e()})),m.listeners=[],b())},A=function(e){return m.pod?O().then((function(){return t(e)})):t(e)};return p.registerEvent("data","changed"),p.registerEvent("data","mainBlockChanged"),p.registerEvent("data","rollback"),{id:e,data:m,start:O,close:R,hasPeers:function(){return m.peers&&m.peers.length>0},getPeers:function(){return m.peers},sort:function(e){e=e||{},m.filter=e.filter?angular.merge(m.filter,e.filter):m.filter,m.sort=e.sort?angular.merge(m.sort,e.sort):m.sort,N(!1)},getTrustedPeers:function(){return A((function(e,t){e(m.peers.reduce((function(e,t){return t.hasMainConsensusBlock&&t.uid?e.concat(t):e}),[]))}))},getKnownBlocks:function(){return m.knownBlocks},getMainBlockUid:function(){return A((function(e,t){e(m.mainBuid)}))},loadPeers:g,isBusy:function(){return m.loading},api:p}}var d=new u("default");return d.instance=function(e){return new u(e)},d}]),angular.module("cesium.es.like.services",["ngResource","cesium.services","cesium.es.http.services"]).factory("esLike",["$q","csWallet","esHttp",function(e,t,n){return{constants:{KINDS:["LIKE","ABUSE"]},instance:function(i,a){var o=this;function r(n,r){if((r=r||{}).kind=r.kind&&r.kind.toUpperCase()||"LIKE",!t.isLogin())return e.reject("Wallet must be login before sending record to ES node");var s={version:2,index:i,type:a,id:n,kind:r.kind};return r.comment&&(s.comment=r.comment),angular.isDefined(r.level)&&(s.level=r.level),o.raw.postRecord(s,r)}function s(e,t){if(!e)throw new Error("Missing 'id' argument");return o.raw.removeRecord(e,t)}return o.raw={getSearch:n.get("/like/record/_search?_source=false&q=:q"),searchBaseQueryString:"index:{0} AND type:{1} AND id:".format(i,a),postSearch:n.post("/like/record/_search"),postRecord:n.record.post("/{0}/{1}/:id/_like".format(i,a)),removeRecord:n.record.remove("like","record")},{index:i,type:a,toggle:function(n,i){(i=i||{}).kind=i.kind||"LIKE";var a=i.pubkey||i.wallet&&i.wallet.data.pubkey||t.isLogin()&&t.data.pubkey;return a?(i.wallet=i.wallet||t.getByPubkey(a),function(e,t){(t=t||{}).kind=t.kind||"LIKE";var n=o.raw.searchBaseQueryString+e;return t.kind&&(n+=" AND kind:"+t.kind.toUpperCase()),t.issuer&&(n+=" AND issuer:"+t.issuer),o.raw.getSearch({q:n}).then((function(e){return(e&&e.hits&&e.hits.hits||[]).map((function(e){return e._id}))}))}(n,{kind:i.kind,issuer:a}).then((function(t){return t&&t.length?e.all(_.map(t,(function(e){return s(e,i)}))).then((function(){return-1*t.length})):r(n,i).then((function(){return 1}))}))):e.reject("User not log in!")},add:r,remove:s,count:function(e,t){(t=t||{}).kind=t.kind||"LIKE";var n={query:{bool:{filter:[{term:{index:i}},{term:{type:a}},{term:{id:e}},{term:{kind:t.kind.toUpperCase()}}]}},size:0},r=t.issuer?[t.issuer]:t.issuers;return r&&r.length&&(n.query.bool.should={terms:{issuer:r}},n.size=r.length,n._source=["issuer"]),o.raw.postSearch(n).then((function(e){var t=e&&e.hits,n={total:t&&t.total||0,wasHitByPubkey:{},wasHitCount:0};return _.forEach(r,(function(e){var i=t?_.findIndex(t.hits||[],(function(t){return t._source.issuer===e})):-1;n.wasHitByPubkey[e]=-1!==i||!1,n.wasHitCount+=-1!==i?1:0})),n}))}}}}}]),Q.$inject=["$scope","UIUtils","$q","Device"],ee.$inject=["$scope","$focus","$filter","UIUtils","SocialUtils"],te.$inject=["$scope"],Z.$inject=["$scope","$filter","$state","$focus","$timeout","$anchorScroll","UIUtils"],J.$inject=["$scope","UIUtils","$timeout","parameters"],ne.$inject=["$scope"],ie.$inject=["$scope","csConfig","esGeo","ModalUtils"],ae.$inject=["$scope","$q","csConfig","esGeo","ModalUtils"],oe.$inject=["$scope","$timeout","ModalUtils","csConfig","esGeo"],re.$inject=["$scope","$q","$translate","esGeo","parameters"],angular.module("cesium.es.common.controllers",["ngResource","cesium.es.services"]).controller("ESPicturesEditCtrl",Q).controller("ESPicturesEditCtrl",Q).controller("ESSocialsEditCtrl",ee).controller("ESSocialsViewCtrl",te).controller("ESCommentsCtrl",Z).controller("ESCategoryModalCtrl",J).controller("ESAvatarModalCtrl",ne).controller("ESPositionEditCtrl",ie).controller("ESLookupPositionCtrl",ae).controller("ESSearchPositionItemCtrl",oe).controller("ESSearchPositionModalCtrl",re),se.$inject=["$scope","esSettings","PluginService"],le.$inject=["$scope","$state","$controller","UIUtils","csWallet"],ce.$inject=["$scope","$q","$state","esSettings","csWallet"],angular.module("cesium.es.app.controllers",["ngResource","cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&(e.extendState("app",{points:{"nav-buttons-right":{templateUrl:"plugins/es/templates/menu_extend.html",controller:"ESMenuExtendCtrl"},"menu-user":{templateUrl:"plugins/es/templates/menu_extend.html",controller:"ESMenuExtendCtrl"}}}),e.extendState("app",{points:{"profile-popover-user":{templateUrl:"plugins/es/templates/common/popover_profile_extend.html",controller:"ESProfilePopoverExtendCtrl"}}}))}]).controller("ESExtensionCtrl",se).controller("ESMenuExtendCtrl",le).controller("ESProfilePopoverExtendCtrl",ce),ue.$inject=["$scope","$window","$q","$translate","$ionicPopup","UIUtils","Modals","csHttp","csConfig","csSettings","esHttp","esSettings","esModals"],angular.module("cesium.es.settings.controllers",["cesium.es.services"]).config(["PluginServiceProvider","$stateProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(e.extendState("app.settings",{points:{plugins:{templateUrl:"plugins/es/templates/settings/settings_extend.html",controller:"ESExtensionCtrl"}}}),t.state("app.es_settings",{url:"/settings/es",views:{menuContent:{templateUrl:"plugins/es/templates/settings/plugin_settings.html",controller:"ESPluginSettingsCtrl"}}}))}]).controller("ESPluginSettingsCtrl",ue),angular.module("cesium.es.currency.controllers",["ngResource","cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.extendState("app.currency.tab_blocks",{points:{"nav-buttons":{templateUrl:"plugins/es/templates/currency/tab_blocks_extend.html",controller:"ESExtensionCtrl"}}})}]),de.$inject=["$scope","$controller","$state","csWallet","esModals"],pe.$inject=["$scope","$controller","UIUtils","esHttp","esProfile"],angular.module("cesium.es.wallet.controllers",["cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.extendStates(["app.view_wallet","app.view_wallet_by_id"],{points:{hero:{templateUrl:"plugins/es/templates/wallet/view_wallet_extend.html",controller:"ESWalletLikesCtrl"},"after-general":{templateUrl:"plugins/es/templates/wallet/view_wallet_extend.html",controller:"ESWalletViewCtrl"}}}).extendState("app.view_wallets",{points:{"item-wallet":{templateUrl:"plugins/es/templates/wallet/item_wallet_extend.html",controller:"ESExtensionCtrl"}}})}]).controller("ESWalletViewCtrl",de).controller("ESWalletLikesCtrl",pe),me.$inject=["$scope","$controller","$state"],Ee.$inject=["$scope","$ionicPopover","$q","$controller","UIUtils","Modals","csWallet","esHttp","esLike","esModals","esWallet","esProfile","esInvitation"],angular.module("cesium.es.wot.controllers",["cesium.es.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&t.extendState("app.wot_lookup",{points:{tabs:{templateUrl:"plugins/es/templates/wot/lookup_extend.html",controller:"ESExtensionCtrl"}}}).extendState("app.wot_lookup_lg",{points:{top:{templateUrl:"plugins/es/templates/wot/lookup_lg_extend.html",controller:"ESWotLookupExtendCtrl"}}}).extendStates(["app.wot_identity","app.wot_identity_uid"],{points:{hero:{templateUrl:"plugins/es/templates/wot/view_identity_extend.html",controller:"ESWotIdentityViewCtrl"},general:{templateUrl:"plugins/es/templates/wot/view_identity_extend.html",controller:"ESWotIdentityViewCtrl"},"after-general":{templateUrl:"plugins/es/templates/wot/view_identity_extend.html",controller:"ESWotIdentityViewCtrl"},buttons:{templateUrl:"plugins/es/templates/wot/view_identity_extend.html",controller:"ESWotIdentityViewCtrl"},"after-buttons":{templateUrl:"plugins/es/templates/wot/view_identity_extend.html",controller:"ESWotIdentityViewCtrl"},"buttons-top-fab":{templateUrl:"plugins/es/templates/wot/view_identity_extend.html",controller:"ESWotIdentityViewCtrl"}}}).extendStates(["app.wot_cert","app.wot_cert_lg","app.wallet_cert","app.wallet_cert_lg"],{points:{"nav-buttons":{templateUrl:"plugins/es/templates/wot/view_certifications_extend.html",controller:"ESWotIdentityViewCtrl"},buttons:{templateUrl:"plugins/es/templates/wot/view_certifications_extend.html",controller:"ESWotIdentityViewCtrl"}}})}]).controller("ESWotLookupExtendCtrl",me).controller("ESWotIdentityViewCtrl",Ee),be.$inject=["$scope","$focus","$timeout","$filter","$controller","$location","$translate","$ionicPopover","Device","UIUtils","ModalUtils","BMA","csSettings","csWallet","esModals","esRegistry","esHttp"],ge.$inject=["$scope","$controller","$timeout","UIUtils","esModals","csWallet"],fe.$inject=["$scope","$rootScope","$state","$q","$timeout","$ionicPopover","$ionicHistory","$translate","$controller","$anchorScroll","csConfig","csWallet","esRegistry","UIUtils","esHttp"],_e.$inject=["$scope","$timeout","$state","$q","$ionicHistory","$focus","$translate","$controller","Device","UIUtils","ModalUtils","csWallet","esHttp","esRegistry"],angular.module("cesium.es.registry.controllers",["cesium.es.services","cesium.es.common.controllers"]).config(["$stateProvider",function(e){e.state("app.wot_lookup.tab_registry",{url:"/page?q&type&hash&category&location&issuer&reload&lat&lon&d&last",views:{tab_registry:{templateUrl:"plugins/es/templates/registry/tabs/tab_registry.html",controller:"ESRegistryLookupCtrl"}},data:{large:"app.registry_lookup_lg",silentLocationChange:!0}}).state("app.registry_lookup_lg",{url:"/wot/page/lg?q&type&hash&category&location&issuer&reload&lat&lon&d&last",views:{menuContent:{templateUrl:"plugins/es/templates/registry/lookup_lg.html",controller:"ESRegistryLookupCtrl"}},data:{silentLocationChange:!0}}).state("app.wallet_pages",{url:"/account/pages?refresh",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_wallet_pages.html",controller:"ESWalletPagesCtrl"}},data:{login:!0,minData:!0,silentLocationChange:!0}}).state("app.wallet_pages_by_id",{url:"/wallets/:id/pages?refresh",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_wallet_pages.html",controller:"ESWalletPagesCtrl"}},data:{login:!0,minData:!0,silentLocationChange:!0}}).state("app.view_page",{url:"/page/view/:id/:title?refresh",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_record.html",controller:"ESRegistryRecordViewCtrl"}}}).state("app.view_page_anchor",{url:"/page/view/:id/:title/:anchor",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_record.html",controller:"ESRegistryRecordViewCtrl"}}}).state("app.registry_add_record",{cache:!1,url:"/page/add/:type?wallet",views:{menuContent:{templateUrl:"plugins/es/templates/registry/edit_record.html",controller:"ESRegistryRecordEditCtrl"}},data:{auth:!0,minData:!0}}).state("app.registry_edit_record",{cache:!1,url:"/page/edit/:id/:title?wallet",views:{menuContent:{templateUrl:"plugins/es/templates/registry/edit_record.html",controller:"ESRegistryRecordEditCtrl"}},data:{auth:!0,minData:!0}})}]).controller("ESRegistryLookupCtrl",be).controller("ESWalletPagesCtrl",ge).controller("ESRegistryRecordViewCtrl",fe).controller("ESRegistryRecordEditCtrl",_e),Te.$inject=["$scope","$q","$timeout","$state","$focus","$translate","$controller","$ionicHistory","$ionicPopover","UIUtils","csWallet","esHttp","esProfile","ModalUtils","Device"],angular.module("cesium.es.profile.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.edit_profile",{url:"/wallet/profile/edit",views:{menuContent:{templateUrl:"plugins/es/templates/user/edit_profile.html",controller:"ESViewEditProfileCtrl"}},cache:!1,data:{auth:!0}}).state("app.edit_profile_by_id",{url:"/wallets/:id/profile/edit",views:{menuContent:{templateUrl:"plugins/es/templates/user/edit_profile.html",controller:"ESViewEditProfileCtrl"}},cache:!1,data:{login:!0}})}]).controller("ESViewEditProfileCtrl",Te),he.$inject=["$scope","$state","$translate","$ionicHistory","$ionicPopover","$timeout","csWallet","esModals","UIUtils","esMessage"],ve.$inject=["$scope","$controller"],Ie.$inject=["$scope","$controller"],Ne.$inject=["$scope","$controller"],Oe.$inject=["$scope","Modals","UIUtils","csWallet","esHttp","esMessage","parameters"],Re.$inject=["$scope","$state","$timeout","$translate","$ionicHistory","$ionicPopover","UIUtils","esModals","esMessage","csWallet"],Ae.$inject=["$scope","UIUtils","$state","csWallet","esHttp","esMessage","esModals","$timeout"],angular.module("cesium.es.message.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.user_message",{url:"/user/message",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup.html"}}}).state("app.user_message.tab_inbox",{url:"/inbox",views:{tab_inbox:{controller:"ESMessageInboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{auth:!0,minData:!0,large:"app.user_messages_lg_inbox"}}).state("app.user_message.tab_outbox",{url:"/outbox",views:{tab_outbox:{controller:"ESMessageOutboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{auth:!0,minData:!0,large:"app.user_messages_lg_outbox"}}).state("app.user_messages_lg_inbox",{url:"/user/message/lg/inbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageInboxListCtrl"}},data:{auth:!0,minData:!0}}).state("app.user_messages_by_id",{url:"/wallets/:id/message",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_by_id.html"}}}).state("app.user_messages_by_id.tab_inbox",{url:"/inbox",views:{tab_inbox:{controller:"ESMessageInboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{large:"app.user_messages_lg_inbox_by_id"}}).state("app.user_messages_by_id.tab_outbox",{url:"/outbox",views:{tab_outbox:{controller:"ESMessageOutboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{large:"app.user_messages_lg_outbox_by_id"}}).state("app.user_messages_lg_inbox_by_id",{url:"/wallets/:id/message/lg/inbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageInboxListCtrl"}}}).state("app.user_messages_lg_outbox",{url:"/user/message/lg/outbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageOutboxListCtrl"}},data:{auth:!0,minData:!0}}).state("app.user_messages_lg_outbox_by_id",{url:"/wallets/:id/message/lg/outbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageOutboxListCtrl"}}}).state("app.user_new_message",{cache:!1,url:"/user/message/new?pubkey&uid&title&content&isReply",views:{menuContent:{templateUrl:"plugins/es/templates/message/compose.html",controller:"ESMessageComposeCtrl"}}}).state("app.user_view_message",{cache:!1,url:"/user/message/view/:type/:messageId",views:{menuContent:{templateUrl:"plugins/es/templates/message/view_message.html",controller:"ESMessageViewCtrl"}},data:{auth:!0,minData:!0}}).state("app.user_view_message_by_id",{cache:!1,url:"/wallets/:id/message/view/:type/:messageId",views:{menuContent:{templateUrl:"plugins/es/templates/message/view_message.html",controller:"ESMessageViewCtrl"}}})}]).controller("ESMessageAbstractListCtrl",he).controller("ESMessageInboxListCtrl",ve).controller("ESMessageOutboxListCtrl",Ie).controller("ESMessageComposeCtrl",Ne).controller("ESMessageComposeModalCtrl",Oe).controller("ESMessageViewCtrl",Re).controller("PopoverMessageCtrl",Ae),Se.$inject=["$scope","$ionicPopover","$state","$timeout","UIUtils","esHttp","csWallet","esNotification"],Ce.$inject=["$scope","$timeout","$controller","$state","UIUtils","csWallet"],angular.module("cesium.es.notification.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.view_notifications",{url:"/notifications",views:{menuContent:{templateUrl:"plugins/es/templates/notification/view_notifications.html",controller:"NotificationsCtrl"}},data:{login:!0}}).state("app.view_notifications_by_id",{url:"/wallets/:id/notifications",views:{menuContent:{templateUrl:"plugins/es/templates/notification/view_notifications.html",controller:"NotificationsCtrl"}},data:{login:!0}})}]).controller("NotificationsCtrl",Se).controller("PopoverNotificationsCtrl",Ce),Le.$inject=["$scope","$controller","$ionicPopover","$location","UIUtils","esBlockchain"],angular.module("cesium.es.blockchain.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.lookup_blocks_currency",{url:"/currencies/:currency/blocks?q",views:{menuContent:{templateUrl:"plugins/es/templates/blockchain/lookup.html",controller:"ESBlockLookupCtrl"}}}).state("app.blockchain_search",{url:"/blockchain/search?q&type",views:{menuContent:{templateUrl:"plugins/es/templates/blockchain/lookup.html",controller:"ESBlockLookupCtrl"}},data:{silentLocationChange:!0}})}]).controller("ESBlockLookupCtrl",Le),De.$inject=["$scope","$state","$location","$ionicPopover","$window","$translate","esHttp","UIUtils","csConfig","csSettings","csCurrency","esNetwork","csWot"],ye.$inject=["$scope","$controller","parameters"],Me.$inject=["$scope","$q","$window","$state","UIUtils","csWot","esHttp","csHttp","csSettings"],Pe.$inject=["$scope","$controller"],ke.$inject=["$scope","$q","csSettings","csCurrency","csHttp","esHttp"],angular.module("cesium.es.network.controllers",["cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.extendState("app.network",{points:{"network-buttons":{templateUrl:"plugins/es/templates/network/view_network_extend.html",controller:"ESExtensionCtrl"},"blockchain-buttons":{templateUrl:"plugins/es/templates/network/view_network_extend.html",controller:"ESExtensionCtrl"}}})}]).config(["$stateProvider",function(e){e.state("app.es_network",{url:"/network/data?online&expert",cache:!1,views:{menuContent:{templateUrl:"plugins/es/templates/network/view_es_network.html",controller:"ESNetworkLookupCtrl"}},data:{silentLocationChange:!0}}).state("app.view_es_peer",{url:"/network/data/peer/:server?ssl&tor",cache:!1,views:{menuContent:{templateUrl:"plugins/es/templates/network/view_es_peer.html",controller:"ESPeerViewCtrl"}},data:{preferHttp:!0}})}]).controller("ESNetworkLookupCtrl",De).controller("ESNetworkLookupModalCtrl",ye).controller("ESPeerViewCtrl",Me).controller("ESNetworkLookupPopoverCtrl",Pe).controller("ESPeerInfoPopoverCtrl",ke),we.$inject=["$scope","UIUtils","$state","csWallet","esGroup","ModalUtils"],Ue.$inject=["$scope","$state","$ionicPopover","$ionicHistory","$translate","UIUtils","csConfig","esGroup","csWallet"],Be.$inject=["$scope","esGroup","UIUtils","$state","$q","Device","$ionicHistory","ModalUtils","$focus","esHttp"],angular.module("cesium.es.group.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.groups",{url:"/group?type&location",views:{menuContent:{templateUrl:"plugins/es/templates/group/lookup.html",controller:"ESGroupListCtrl"}}}).state("app.add_group",{url:"/group/add/:type",views:{menuContent:{templateUrl:"plugins/es/templates/group/edit_group.html",controller:"ESGroupEditCtrl"}}}).state("app.edit_group",{url:"/group/edit/:id",views:{menuContent:{templateUrl:"plugins/es/templates/group/edit_group.html",controller:"ESGroupEditCtrl"}}}).state("app.view_group",{url:"/group/view/:id",views:{menuContent:{templateUrl:"plugins/es/templates/group/view_record.html",controller:"ESGroupViewCtrl"}}})}]).controller("ESGroupListCtrl",we).controller("ESGroupViewCtrl",Ue).controller("ESGroupEditCtrl",Be),xe.$inject=["$scope","$q","$ionicPopover","$state","$timeout","UIUtils","csWallet","esHttp","esModals","esNotification","esInvitation"],Fe.$inject=["$scope","$controller","csWallet"],He.$inject=["$scope","$q","Modals","UIUtils","csWallet","esHttp","esWallet","esInvitation","parameters"],angular.module("cesium.es.invitation.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.view_invitations",{url:"/invitations?id",views:{menuContent:{templateUrl:"plugins/es/templates/invitation/view_invitations.html",controller:"InvitationsCtrl"}},data:{auth:!0}}).state("app.view_invitations_by_id",{url:"/wallets/:id/invitations",views:{menuContent:{templateUrl:"plugins/es/templates/invitation/view_invitations.html",controller:"InvitationsCtrl"}},data:{login:!0}})}]).controller("InvitationsCtrl",xe).controller("PopoverInvitationCtrl",Fe).controller("ESNewInvitationModalCtrl",He),We.$inject=["$scope","$q","$ionicHistory","csWot","csWallet","UIUtils","ModalUtils","esSubscription"],Ve.$inject=["$scope","Modals","csSettings","esHttp","csWot","esModals","parameters"],angular.module("cesium.es.subscription.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.edit_subscriptions",{cache:!1,url:"/wallet/subscriptions",views:{menuContent:{templateUrl:"plugins/es/templates/subscription/edit_subscriptions.html",controller:"ViewSubscriptionsCtrl"}},data:{auth:!0,minData:!0}}).state("app.edit_subscriptions_by_id",{cache:!1,url:"/wallets/:id/subscriptions",views:{menuContent:{templateUrl:"plugins/es/templates/subscription/edit_subscriptions.html",controller:"ViewSubscriptionsCtrl"}},data:{login:!0,minData:!0}})}]).controller("ViewSubscriptionsCtrl",We).controller("ModalEmailSubscriptionsCtrl",Ve),Ge.$inject=["$scope","$ionicPopover","$location","$timeout","csSettings","csWallet","UIUtils","esHttp","esDocument"],Ye.$inject=["$scope","$controller","$timeout","$state","$filter"],angular.module("cesium.es.document.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.document_search",{url:"/data/search/:index/:type?q",views:{menuContent:{templateUrl:"plugins/es/templates/document/lookup.html",controller:"ESDocumentLookupCtrl"}},data:{silentLocationChange:!0}})}]).controller("ESDocumentLookupCtrl",Ge).controller("ESLastDocumentsCtrl",Ye),je.$inject=["$scope","$q","$timeout","$translate","$ionicPopup","UIUtils","Modals","csWallet","esHttp","esLike"],angular.module("cesium.es.like.controllers",["ngResource","cesium.es.services"]).controller("ESLikesCtrl",je),angular.module("cesium.graph.plugin",["cesium.graph.services","cesium.graph.common.controllers","cesium.graph.blockchain.controllers","cesium.graph.network.controllers","cesium.graph.currency.controllers","cesium.graph.account.controllers","cesium.graph.docstats.controllers","cesium.graph.synchro.controllers"]),angular.module("cesium.graph.services",["cesium.graph.color.services","cesium.graph.data.services"]),angular.module("cesium.graph.data.services",["cesium.wot.services","cesium.es.http.services","cesium.es.wot.services"]).factory("gpData",["$rootScope","$q","$timeout","csHttp","esHttp","BMA","csWot","csCache","esWot",function(e,t,n,i,a,o,r,s,l){var c=s.get("gpData-currency-",s.constants.SHORT),u={node:{},wot:{},blockchain:{},docstat:{},synchro:{execution:{}},raw:{block:{search:a.post("/:currency/block/_search")},blockstat:{search:a.post("/:currency/blockstat/_search")},movement:{search:a.post("/:currency/movement/_search")},user:{event:a.post("/user/event/_search?pretty")},docstat:{search:a.post("/document/stats/_search")},synchro:{search:a.post("/:currency/synchro/_search")}},regex:{}};function d(e,t){return t<=0?e:e*Math.pow(10,t)}function p(e,t,n,a){return t=t||80,n=angular.isDefined(n)?n:443==t,{docstat:{search:i.post(e,t,"/document/stats/_search",n,a)},synchro:{search:i.post(e,t,"/:currency/synchro/_search",n,a)}}}function m(e){return(e=e||{}).maxRangeSize=e.maxRangeSize||30,e.defaultTotalRangeCount=e.defaultTotalRangeCount||2*e.maxRangeSize,e.rangeDuration=e.rangeDuration||"day",e.endTime=e.endTime||moment().utc().add(1,e.rangeDuration).unix(),e.startTime=e.startTime||moment.unix(e.endTime).utc().subtract(e.defaultTotalRangeCount,e.rangeDuration).unix(),e.firstBlockTime&&e.startTime<e.firstBlockTime&&(e.startTime=e.firstBlockTime),e}return u.blockchain.countByIssuer=function(e){return u.raw.block.search({size:0,aggs:{blocksByIssuer:{terms:{field:"issuer",size:0}}}},{currency:e}).then((function(e){var t=e.aggregations;if(t.blocksByIssuer&&t.blocksByIssuer.buckets&&t.blocksByIssuer.buckets.length){var n={blockCount:e.hits.total};return n.data=(t.blocksByIssuer.buckets||[]).reduce((function(e,t){return e.concat(t.doc_count)}),[]),n.issuers=(t.blocksByIssuer.buckets||[]).reduce((function(e,t){return e.concat({pubkey:t.key})}),[]),r.extendAll(n.issuers).then((function(){return n.labels=n.issuers.reduce((function(e,t){return e.concat(t.name||t.uid||t.pubkey.substr(0,8))}),[]),n}))}}))},u.blockchain.withDividend=function(e,n){n=n||{};var i=!angular.isDefined(n.withCache)||n.withCache,a=[e,JSON.stringify(n)].join("-");if(i){var r=c.get(a);if(r){if(!r.blocks){var s=t.defer();return r.then((function(e){return s.resolve(e),e})),s.promise}return console.debug("[graph] monetaryMass for ["+e+"] found in cache"),t.when(r)}}var l={query:{filtered:{filter:{bool:{must:[{exists:{field:"dividend"}}]}}}},size:n.size||1e4,from:n.from||0,_source:["medianTime","number","dividend","monetaryMass","membersCount","unitbase"],sort:{medianTime:"asc"}},p=t.all([n.withCurrent?o.blockchain.current().catch((function(e){if(!e||e.ucode!=o.errorCodes.NO_CURRENT_BLOCK)throw e})):t.when(),u.raw.block.search(l,{currency:e})]).then((function(e){var t=e[0];if((e=e[1]).hits.total&&e.hits.hits.length){var n={};if(n.blocks=e.hits.hits.reduce((function(e,t){var n=t._source;return n.dividend=d(n.dividend,n.unitbase),delete n.unitbase,e.concat(n)}),[]),t){
+var i=n.blocks.length&&t.medianTime-n.blocks[n.blocks.length-1].medianTime;i&&i>=3600&&(t.dividend=d(t.dividend,t.unitbase),delete t.unitbase,n.blocks.push(t))}return n.times=n.blocks.reduce((function(e,t){return e.concat(t.medianTime)}),[]),c.put(a,n),n}}));return c.put(a,p),p},u.blockchain.txCount=function(e,n){n=m(n);for(var i=[],a=moment.unix(n.startTime).utc().startOf(n.rangeDuration),o=moment.unix(n.endTime).utc().startOf(n.rangeDuration),r=[];a.isBefore(o);)if(r.push({from:a.unix(),to:a.add(1,n.rangeDuration).unix()}),r.length===n.maxRangeSize||!a.isBefore(o)){var s={size:0,aggs:{tx:{range:{field:"medianTime",ranges:r},aggs:{txCount:{stats:{field:"txCount"}},txAmount:{stats:{field:"txAmount"}}}}}};n.issuer&&(s.query={bool:{filter:{term:{issuer:n.issuer}}}}),r=[],10==i.length?(console.error("Too many parallel jobs!"),a=moment.unix(n.endTime).utc()):i.push(u.raw.blockstat.search(s,{currency:e}).then((function(e){var t=e.aggregations;if(t.tx&&t.tx.buckets&&t.tx.buckets.length)return(t.tx.buckets||[]).reduce((function(e,t){return e.concat({from:t.from,to:t.to,count:t.txCount.sum||0,amount:t.txAmount.sum||0,avgByBlock:Math.round(100*t.txCount.avg)/100,maxByBlock:t.txCount.max})}),[])})))}return t.all(i).then((function(e){return e=e.reduce((function(e,t){return t&&t.length?e.concat(t):e}),[]),e=_.sortBy(e,"from"),{count:_.pluck(e,"count"),avgByBlock:_.pluck(e,"avgByBlock"),maxByBlock:_.pluck(e,"maxByBlock"),amount:e.reduce((function(e,t){return e.concat(t.amount/100)}),[]),times:_.pluck(e,"from")}}))},u.node.blockCount=function(e,t){var n={size:0,query:{bool:{filter:{term:{issuer:t}}}}};return u.raw.block.search(n,{currency:e}).then((function(e){return e.hits.total}))},u.raw.movement.getByRange=function(e,t,n){if(!t)throw new Error("Missing 'pubkey' argument!");var i={size:0,query:{bool:{should:[{term:{recipient:t}},{term:{issuer:t}}]}},aggs:{tx:{range:{field:"medianTime",ranges:n},aggs:{received:{filter:{term:{recipient:t}},aggs:{received_stats:{stats:{field:"amount"}}}},sent:{filter:{term:{issuer:t}},aggs:{sent_stats:{stats:{field:"amount"}}}}}}}};return u.raw.movement.search(i,{currency:e}).then((function(e){var t=e.aggregations;if(t.tx&&t.tx.buckets&&t.tx.buckets.length)return(t.tx.buckets||[]).reduce((function(e,t){var n=t.sent.sent_stats,i=t.received.received_stats;return e.concat({from:t.from,to:t.to,sent:n.sum?-n.sum/100:0,received:i.sum?i.sum/100:0})}),[])}))},u.raw.movement.getUds=function(e,t,n){var i={size:0,query:{bool:{should:[{exists:{field:"dividend"}}]}},aggs:{ud:{range:{field:"medianTime",ranges:t},aggs:{ud_stats:{stats:{field:"dividend"}},unitbase_stats:{stats:{field:"unitbase"}}}}}};return u.raw.block.search(i,{currency:e}).then((function(e){var t=e.aggregations;if(t.ud&&t.ud.buckets&&t.ud.buckets.length)return(t.ud.buckets||[]).reduce((function(e,t){return e[n[t.from]]=d(t.ud_stats.sum,t.unitbase_stats.min)/100,e}),{})}))},u.blockchain.movement=function(e,n){(n=m(n)).withUD=!angular.isDefined(n.withUD)||n.withUD;var i=[];if(n.withUD&&!n.memberships)return l.memberships(n.pubkey).then((function(t){return n.memberships=t||[],u.blockchain.movement(e,n)}));var a=moment.unix(n.startTime).utc().startOf(n.rangeDuration),o=moment.unix(n.endTime).utc().startOf(n.rangeDuration),r=[],s=[],c={},d=angular.copy(n.memberships).reverse(),p=d.pop();function E(e){if(r.push(e),p&&p.joinTime<e.to){var t={from:Math.max(p.joinTime,e.from),to:Math.min(p.leaveTime,e.to)};for(s.push(t),c[t.from]=e.from;p&&p.leaveTime&&p.leaveTime<e.to;)p=d.pop()}}for(E({from:0,to:a.unix()});a.isBefore(o);)E({from:a.unix(),to:a.add(1,n.rangeDuration).unix()}),(!i.length&&r.length==n.maxRangeSize+1||i.length&&r.length==n.maxRangeSize||!a.isBefore(o))&&(s.length?i.push(t.all([u.raw.movement.getUds(e,s,c),u.raw.movement.getByRange(e,n.pubkey,r)]).then((function(e){var t=e[0];return(e=e[1]).forEach((function(e){e.ud=t[e.from]||0})),e}))):i.push(u.raw.movement.getByRange(e,n.pubkey,r).then((function(e){return e.forEach((function(e){e.ud=0})),e}))),r=[]);return t.all(i).then((function(e){if((e=e.reduce((function(e,t){return t&&t.length?e.concat(t):e}),[])).length){var t=(e=_.sortBy(e,"from")).splice(0,1)[0],n=t.received+t.sent+t.ud;return{times:_.pluck(e,"from"),ud:_.pluck(e,"ud"),sent:_.pluck(e,"sent"),received:_.pluck(e,"received"),balance:e.reduce((function(e,t){return n+=t.received+t.sent+t.ud,e.concat(n)}),[])}}}))},u.wot.certifications=function(e){return e=m(e),r.load(e.pubkey).then((function(t){if(t){var n={};_.forEach(t.given_cert||[],(function(t){var i=moment.unix(t.time).utc().startOf(e.rangeDuration).unix();n[i]=n[i]||{time:i,given:0,received:0},n[i].given++})),_.forEach(t.received_cert||[],(function(t){var i=moment.unix(t.time).utc().startOf(e.rangeDuration).unix();n[i]=n[i]||{time:i,given:0,received:0},n[i].received++})),n=_.sortBy(_.values(n),"time");var i={times:_.pluck(n,"time"),deltaGiven:_.pluck(n,"given"),deltaReceived:_.pluck(n,"received")},a=0;return i.given=i.deltaGiven.reduce((function(e,t){return a+=t,e.concat(a)}),[]),a=0,i.received=i.deltaReceived.reduce((function(e,t){return a+=t,e.concat(a)}),[]),i}}))},u.wot.memberships=function(e){var t={size:1e3,query:{bool:{filter:[{term:{recipient:(e=e||{}).pubkey}},{terms:{code:["MEMBER_JOIN","MEMBER_ACTIVE","MEMBER_LEAVE","MEMBER_EXCLUDE","MEMBER_REVOKE"]}}]}},sort:[{time:{order:"asc"}}],_source:["code","time"]};return u.raw.user.event(t).then((function(e){if(e.hits&&e.hits.total){var t,n=e.hits.hits.reduce((function(e,n){var i="MEMBER_JOIN"==n._source.code||"MEMBER_ACTIVE"==n._source.code;return i&&!t?t=n._source.time:!i&&t&&(e=e.concat({joinTime:t,leaveTime:n._source.time}),t=0),e}),[]);return t&&n.push({joinTime:t,leaveTime:moment().utc().unix()}),n}}))},u.docstat.get=function(e){e=m(e);var n=u.raw.docstat.search;if(e.server){var i=e.server.split(":");n=p(i[0],i[1]||80,e.useSsl).docstat.search}for(var a=[],o=moment.unix(e.startTime).utc().startOf(e.rangeDuration),r=moment.unix(e.endTime).utc().startOf(e.rangeDuration),s=[],l=function(e){var t=e.aggregations;return(t.range&&t.range.buckets||[]).reduce((function(e,t){var n={from:t.from,to:t.to};return _.forEach(t.index&&t.index.buckets||[],(function(e){var t=e.key;_.forEach(e.type&&e.type.buckets||[],(function(e){var i=t+"_"+e.key;n[i]=e.max.value,d[i]||(d[i]=!0)}))})),e.concat(n)}),[])};o.isBefore(r);)if(s.push({from:o.unix(),to:o.add(1,e.rangeDuration).unix()}),s.length===e.maxRangeSize||!o.isBefore(r)){var c={size:0,aggs:{range:{range:{field:"time",ranges:s},aggs:{index:{terms:{field:"index",size:0},aggs:{type:{terms:{field:"type",size:0},aggs:{max:{max:{field:"count"}}}}}}}}}};s=[];var d={},E={request_cache:!angular.isDefined(e.cache)||e.cache};10===a.length?(console.error("Too many parallel jobs!"),o=moment.unix(e.endTime).utc()):a.push(n(c,E).then(l))}return t.all(a).then((function(e){return e=e.reduce((function(e,t){return t&&t.length?e.concat(t):e}),[]),e=_.sortBy(e,"from"),_.keys(d).reduce((function(t,n){return t[n]=_.pluck(e,n),t}),{times:_.pluck(e,"from")})}))},u.synchro.execution.get=function(e){e=m(e);var n=u.raw.synchro.search;if(e.server){var i=e.server.split(":");n=p(i[0],i[1]||80,e.useSsl).synchro.search}for(var a=[],o=moment.unix(e.startTime).utc().startOf(e.rangeDuration),r=moment.unix(e.endTime).utc().startOf(e.rangeDuration),s=[],l=function(e){var t=e.aggregations;return(t.range&&t.range.buckets||[]).reduce((function(e,t){var n={from:t.from,to:t.to,inserts:t.result.inserts.value,updates:t.result.inserts.value,deletes:t.result.deletes.value,duration:t.duration.value};return _.forEach(t.api&&t.api.buckets||[],(function(e){n[e.key]=e.peer_count&&e.peer_count.value||0,d[e.key]||(d[e.key]=!0)})),e.concat(n)}),[])};o.isBefore(r);)if(s.push({from:o.unix(),to:o.add(1,e.rangeDuration).unix()}),s.length===e.maxRangeSize||!o.isBefore(r)){var c={size:0,aggs:{range:{range:{field:"time",ranges:s},aggs:{api:{terms:{field:"api",size:0},aggs:{peer_count:{cardinality:{field:"peer"}}}},duration:{sum:{field:"executionTime"}},result:{nested:{path:"result"},aggs:{inserts:{sum:{field:"result.inserts"}},updates:{sum:{field:"result.updates"}},deletes:{sum:{field:"result.deletes"}}}}}}}};s=[];var d={};10===a.length?(console.error("Too many parallel jobs!"),o=moment.unix(e.endTime).utc()):a.push(n(c,{currency:e.currency}).then(l))}return t.all(a).then((function(e){e=e.reduce((function(e,t){return t&&t.length?e.concat(t):e}),[]),e=_.sortBy(e,"from");var t={times:_.pluck(e,"from"),inserts:_.pluck(e,"inserts"),updates:_.pluck(e,"updates"),deletes:_.pluck(e,"deletes"),duration:_.pluck(e,"duration")};return _.keys(d).forEach((function(n){t[n]=_.pluck(e,n)})),t}))},u}]),angular.module("cesium.graph.color.services",[]).factory("gpColor",(function(){var e={css2Rgb:{white:[255,255,255],assertive:[239,71,58],calm:[17,193,243],positive:[56,126,245],balanced:[51,205,95],energized:[255,201,0],royal:[136,106,234],gray:[150,150,150],stable:[248,248,248]}},t={scale:{}};return t.scale.custom=function(e,t,n,i){function a(e){switch(e){case 0:return 0;case 1:return-1;case 2:return 0;case 3:return 1}}t=t>0&&t||.55;for(var o=Math.round(e/2.5),r=n&&3==n.length?angular.copy(n):[255,0,0],s=i&&3==i.length?angular.copy(i):[0,2,3],l=n?[Math.round(255/o),Math.round(255/o),Math.round(255/o)]:[Math.round((r[0]-50)/o),Math.round((255-r[1])/o),Math.round((255-r[2])/o)],c=[a(s[0]),a(s[1]),a(s[2])],u=[0,0,0],d=[],p=0;p<e;p++){for(var m=0;m<3;m++)r[m]+=c[m]*l[m],u[m]++,((r[m]<=0||r[m]>=255)&&0!==c[m]||0===c[m]&&u[m]==o)&&(r[m]<=0?r[m]=0:r[m]>=255&&(r[m]=255),s[m]=(s[m]+1)%4,c[m]=a(s[m]),u[m]=0);d.push("rgba("+r[0]+","+r[1]+","+r[2]+","+t+")")}return d},t.scale.default=function(){return t.scale.custom(25)},t.scale.fix=function(e,n){return Array.apply(null,Array(e||25)).map(String.prototype.valueOf,n||t.rgba.calm(.5))},t.rgba=_.mapObject(e.css2Rgb,(function(e){var t="rgba("+e.join(",")+",";return function(n){return!n||n<0?"rgb("+e.join(",")+")":t+n+")"}})),t.rgba.translucent=function(){return"rgb(0,0,0,0)"},t.constants=e,t})),Ke.$inject=["$scope","$filter","$ionicPopover","$ionicHistory","$state","csSettings","csCurrency","esHttp","UIUtils"],angular.module("cesium.graph.common.controllers",["cesium.services"]).controller("GpCurrencyAbstractCtrl",Ke),$e.$inject=["$scope","$controller","$q","$state","$filter","$translate","gpData","gpColor"],ze.$inject=["$scope","$controller","$q","$state","$translate","gpColor","gpData"],angular.module("cesium.graph.blockchain.controllers",["chart.js","cesium.services","cesium.graph.services"]).config(["$stateProvider",function(e){e.state("app.blockchain_stats",{url:"/blockchain/stats?currency&stepUnit&t&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/blockchain/view_stats.html"}}}).state("app.currency_blockchain_stats",{url:"/:currency/blockchain/stats",views:{menuContent:{templateUrl:"plugins/graph/templates/blockchain/view_stats.html"}}})}]).controller("GpBlockchainTxCountCtrl",$e).controller("GpBlockchainIssuersCtrl",ze),qe.$inject=["$scope","$timeout","PluginService","esSettings","csCurrency","gpData"],angular.module("cesium.graph.network.controllers",["chart.js","cesium.graph.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(t.extendState("app.network",{points:{"blockchain-buttons":{templateUrl:"plugins/graph/templates/network/view_network_extend.html",controller:"ESExtensionCtrl"}}}).extendState("app.view_peer",{points:{general:{templateUrl:"plugins/graph/templates/network/view_peer_extend.html",controller:"GpPeerViewExtendCtrl"}}}).extendState("app.es_network",{points:{"documents-buttons":{templateUrl:"plugins/graph/templates/network/view_es_network_extend.html",controller:"ESExtensionCtrl"}}}).extendState("app.view_es_peer",{points:{general:{templateUrl:"plugins/graph/templates/network/view_es_peer_extend.html",controller:"ESExtensionCtrl"}}}),e.state("app.view_peer_stats",{url:"/network/peer/:pubkey/stats",views:{menuContent:{templateUrl:"plugins/graph/templates/network/view_peer_stats.html",controller:"GpBlockchainTxCountCtrl"}}}))}]).controller("GpPeerViewExtendCtrl",qe),Xe.$inject=["$scope","PluginService","UIUtils","esSettings"],Qe.$inject=["$scope","$controller","$q","$state","$translate","UIUtils","gpColor","gpData","$filter","csSettings"],Je.$inject=["$scope","$q","$controller","$translate","gpColor","gpData","$filter","UIUtils"],Ze.$inject=["$scope","$controller","$q","$state","$translate","gpColor","gpData","$filter"],angular.module("cesium.graph.currency.controllers",["chart.js","cesium.graph.services","cesium.graph.common.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){e.state("app.currency.tab_parameters_stats",{url:"/parameters/stats",views:{"tab-parameters":{templateUrl:"plugins/graph/templates/currency/tabs/tab_parameters_stats.html"}}}).state("app.currency.tab_wot_stats",{url:"/community/stats",views:{"tab-wot":{templateUrl:"plugins/graph/templates/currency/tabs/tab_wot_stats.html",controller:"GpCurrencyMembersCountCtrl"}}}).state("app.currency.tab_network_stats",{url:"/network/stats",views:{"tab-network":{templateUrl:"plugins/graph/templates/currency/tabs/tab_network_stats.html"}}}).state("app.currency.tab_blocks_stats",{url:"/blocks/stats",views:{"tab-blocks":{templateUrl:"plugins/graph/templates/currency/tabs/tab_blocks_stats.html"}}}).state("app.currency_stats_lg",{url:"/currency/stats/lg?hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/currency/view_stats_lg.html"}}}),n.plugins&&n.plugins.es&&t.extendStates(["app.currency_name","app.currency","app.currency_name_lg","app.currency_lg"],{points:{"parameters-actual":{templateUrl:"plugins/graph/templates/currency/view_currency_extend.html",controller:"GpCurrencyViewExtendCtrl"},"wot-actual":{templateUrl:"plugins/graph/templates/currency/view_currency_extend.html",controller:"GpCurrencyViewExtendCtrl"},"network-actual":{templateUrl:"plugins/graph/templates/currency/view_currency_extend.html",controller:"GpCurrencyViewExtendCtrl"}}}).extendStates(["app.currency.tab_blocks"],{points:{buttons:{templateUrl:"plugins/graph/templates/currency/tab_blocks_extend.html",controller:"GpCurrencyViewExtendCtrl"}}})}]).controller("GpCurrencyViewExtendCtrl",Xe).controller("GpCurrencyMonetaryMassCtrl",Qe).controller("GpCurrencyDUCtrl",Je).controller("GpCurrencyMembersCountCtrl",Ze),et.$inject=["$scope","$controller","$q","$state","$filter","$translate","csWot","gpData","gpColor","csWallet"],tt.$inject=["$scope","$controller","$filter","$state","csTx","gpColor"],nt.$inject=["$scope","$controller","$q","$state","$filter","$translate","gpData","gpColor","csWallet"],angular.module("cesium.graph.account.controllers",["chart.js","cesium.graph.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(t.extendState("app.view_wallet_tx",{points:{buttons:{templateUrl:"plugins/graph/templates/account/view_wallet_tx_extend.html",controller:"ESExtensionCtrl"}}}).extendState("app.view_wallet_tx_by_id",{points:{buttons:{templateUrl:"plugins/graph/templates/account/view_wallet_tx_extend.html",controller:"ESExtensionCtrl"}}}).extendStates(["app.wot_identity_tx_uid","app.wot_identity_tx_uid_lg"],{points:{buttons:{templateUrl:"plugins/graph/templates/account/view_identity_tx_extend.html",controller:"ESExtensionCtrl"}}}),e.state("app.view_wallet_stats",{url:"/wallet/stats?t&stepUnit&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/account/view_stats.html"}},data:{auth:!0}}).state("app.view_wallet_stats_by_id",{url:"/wallets/:id/stats?t&stepUnit&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/account/view_stats.html"}},data:{auth:!0}}).state("app.wot_identity_stats",{url:"/wot/:pubkey/stats?t&stepUnit&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/account/view_stats.html"}}}))}]).controller("GpAccountBalanceCtrl",et).controller("GpAccountSumTxCtrl",tt).controller("GpAccountCertificationCtrl",nt),it.$inject=["$scope","$state","$controller","$q","$translate","gpColor","gpData","$filter"],angular.module("cesium.graph.docstats.controllers",["chart.js","cesium.graph.services","cesium.graph.common.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){e.state("app.doc_stats_lg",{url:"/network/data/stats/:server?stepUnit&t&hide&scale&useSsl&useTor",views:{menuContent:{templateUrl:"plugins/graph/templates/docstats/view_stats.html",controller:"GpDocStatsCtrl"}}}).state("app.doc_stats_lg_old",{url:"/data/stats?stepUnit&t&hide&scale&useSsl&useTor",views:{menuContent:{templateUrl:"plugins/graph/templates/docstats/view_stats.html",controller:"GpDocStatsCtrl"}}}),n.plugins&&n.plugins.es}]).controller("GpDocStatsCtrl",it),at.$inject=["$scope","$controller","$q","$translate","gpColor","gpData","$filter"],angular.module("cesium.graph.synchro.controllers",["chart.js","cesium.graph.services","cesium.graph.common.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){e.state("app.doc_synchro_lg",{url:"/network/data/synchro/:server?stepUnit&t&hide&scale&useSsl&useTor",views:{menuContent:{templateUrl:"plugins/graph/templates/synchro/view_stats.html",controller:"GpSynchroCtrl"}}}).state("app.doc_synchro_lg_old",{url:"/data/synchro?stepUnit&t&hide&scale&useSsl&useTor",views:{menuContent:{templateUrl:"plugins/graph/templates/synchro/view_stats.html",controller:"GpSynchroCtrl"}}}),n.plugins&&n.plugins.es}]).controller("GpSynchroCtrl",at),angular.module("cesium.map.plugin",["ui-leaflet","cesium.map.services","cesium.map.wot.controllers","cesium.map.registry.controllers","cesium.map.network.controllers","cesium.map.user.controllers","cesium.map.settings.controllers","cesium.map.help.controllers"]).config((function(){L.AwesomeMarkers.Icon.prototype.options.prefix="ion"})),angular.module("cesium.map.services",["cesium.map.wot.services","cesium.map.registry.services","cesium.map.utils.services"]),angular.module("cesium.map.wot.services",["cesium.services"]).factory("mapWot",["$q","csHttp","esHttp","esSettings","csWot","BMA","esGeo",function(e,t,n,i,a,o,r){var s=this,l=1e3,c={min:["title","geoPoint"],profile:["title","geoPoint","avatar._content_type","address","city"]};function u(e){var t={bool:{}};if((e=e||{}).searchAddress?t.bool.should=[{exists:{field:"geoPoint"}},{exists:{field:"city"}}]:t.bool.must=[{exists:{field:"geoPoint"}}],e.bounds&&e.bounds.northEast&&e.bounds.southWest){var n={geoPoint:{top_left:{lat:Math.max(Math.min(e.bounds.northEast.lat,90),-90),lon:Math.max(Math.min(e.bounds.southWest.lng,180),-180)},bottom_right:{lat:Math.max(Math.min(e.bounds.southWest.lat,90),-90),lon:Math.max(Math.min(e.bounds.northEast.lng,180),-180)}}};console.debug("[map] [wot] Filtering on bounds: ",e.bounds),t.bool.must=t.bool.must||[],t.bool.must.push({geo_bounding_box:n})}return t}function d(t,i,a,o){var s=new RegExp("[,]"),l=[],c=o.hits.hits.reduce((function(e,o){var r=o._id,c=i[r],u=c&&{uid:c}||a[r]||{};if(u.pubkey=r,u.index=o._index,u.city=o._source.city,u.address=o._source.address,u.geoPoint=o._source.geoPoint,u.geoPoint&&u.geoPoint.lat&&u.geoPoint.lon)u.geoPoint.lat&&"string"==typeof u.geoPoint.lat&&(u.geoPoint.lat=parseFloat(u.geoPoint.lat.replace(s,"."))),u.geoPoint.lon&&"string"==typeof u.geoPoint.lon&&(u.geoPoint.lon=parseFloat(u.geoPoint.lon.replace(s,".")));else{if(!t.searchAddress||!u.city)return e;u.searchAddress=u.city&&(o._source.address?o._source.address+", ":"")+u.city,l.push(u)}return u.avatar=n.image.fromHit(o,"avatar"),u.name=o._source.title,u.name&&u.name.length>30&&(u.name=u.name.substr(0,27)+"..."),u.description=o._source.description&&n.util.parseAsHtml(o._source.description),u.geoPoint?e.concat(u):e}),[]);if(l.length){var u=Date.now();console.debug("[map] [wot] Search positions of {0} addresses...".format(l.length));var d=0;return e.all(l.reduce((function(e,t){return t.city?e.concat(r.google.searchByAddress(t.searchAddress).then((function(e){e&&e.length&&(t.geoPoint=e[0],t.city==t.searchAddress&&(t.geoPoint.lon+=Math.random()/1e3,t.geoPoint.lat+=Math.random()/1e3),delete t.searchAddress,c.push(t),d++)})).catch((function(){}))):e}),[])).then((function(){return console.debug("[map] [wot] Resolved {0}/{1} addresses in {2}ms".format(d,l.length,Date.now()-u)),c}))}return e.when(c)}return s.raw={profile:{search:n.post("/user/profile/_search"),mixedSearch:n.post("/user,page,group/profile,record/_search")}},{load:function(t){(t=t||{}).from=t.from||0,t.size=t.size||l,t.searchAddress=r.google.isEnable()&&(!angular.isDefined(t.searchAddress)||t.searchAddress),t.fields=t.fields||{},t.fields.description=!!angular.isDefined(t.fields.description)&&t.fields.description;var n={query:u(t),from:0,size:t.size,_source:t.fields.description?c.profile.concat("description"):c.profile},i=s.raw.profile.search;return e.all([i(n),o.wot.member.uids(),o.wot.member.pending().then((function(e){return e.memberships&&e.memberships.length?e.memberships:[]}))]).then((function(a){var o=a[1],r=a[2];if(!(a=a[0]).hits||!a.hits.total)return[];r=r.reduce((function(e,t){if("IN"==t.membership&&!o[t.pubkey]){var n={uid:t.uid,pubkey:t.pubkey,block:t.blockNumber,blockHash:t.blockHash,pending:!0},i=e[t.pubkey];if(i&&n.block>i.block)return e;e[n.pubkey]=n}return e}),{});var s=[d(t,o,r,a)];for(n.from+=n.size;n.from<a.hits.total;)s.push(i(angular.copy(n)).then((function(e){return e.hits&&e.hits.hits.length?d(t,o,r,e):[]}))),n.from+=n.size;return e.all(s).then((function(e){return e.reduce((function(e,t){return e.concat(t)}),[])}))}))}}}]),angular.module("cesium.map.registry.services",["cesium.services"]).factory("mapRegistry",["$q","csHttp","esHttp","esSettings","csWot","BMA","esGeo",function(e,t,n,i,a,o,r){var s=this,l=1e3,c={record:["title","geoPoint","avatar._content_type","address","city","type","pubkey","issuer","category"]};function u(e){var t={bool:{}};return(e=e||{}).searchAddress?t.bool.should=[{exists:{field:"geoPoint"}},{exists:{field:"city"}}]:t.bool.must=[{exists:{field:"geoPoint"}}],e.bounds&&e.bounds.northEast&&e.bounds.southWest&&(t.bool.should=t.bool.should||{},t.bool.should.geo_bounding_box={geoPoint:{top_left:{lat:Math.max(Math.min(e.bounds.northEast.lat,90),-90),lon:Math.max(Math.min(e.bounds.southWest.lng,180),-180)},bottom_right:{lat:Math.max(Math.min(e.bounds.southWest.lat,90),-90),lon:Math.max(Math.min(e.bounds.northEast.lng,180),-180)}}}),t}function d(t,i){var a=new RegExp("[,]"),o=[],s=i.hits.hits.reduce((function(e,i){var r=i._source.issuer,s={};if(s.issuer=r,s.pubkey=i._source.pubkey||s.issuer,s.id=i._id,s.index=i._index,s.type=i._source.type,s.category=i._source.category,s.category&&delete s.category.parent,s.city=i._source.city,s.address=i._source.address,s.geoPoint=i._source.geoPoint,s.geoPoint&&s.geoPoint.lat&&s.geoPoint.lon)s.geoPoint.lat&&"string"==typeof s.geoPoint.lat&&(s.geoPoint.lat=parseFloat(s.geoPoint.lat.replace(a,"."))),s.geoPoint.lon&&"string"==typeof s.geoPoint.lon&&(s.geoPoint.lon=parseFloat(s.geoPoint.lon.replace(a,".")));else{if(!t.searchAddress||!s.city)return e;s.searchAddress=s.city&&(i._source.address?i._source.address+", ":"")+s.city,o.push(s)}return s.avatar=n.image.fromHit(i,"avatar"),s.name=i._source.title,s.name&&s.name.length>30&&(s.name=s.name.substr(0,27)+"..."),s.description=i._source.description&&n.util.parseAsHtml(i._source.description),s.geoPoint?e.concat(s):e}),[]);if(o.length){var l=Date.now();console.debug("[map] [registry] Search positions of {0} addresses...".format(o.length));var c=0;return e.all(o.reduce((function(e,t){return t.city?e.concat(r.google.searchByAddress(t.searchAddress).then((function(e){e&&e.length&&(t.geoPoint=e[0],t.city==t.searchAddress&&(t.geoPoint.lon+=Math.random()/1e3,t.geoPoint.lat+=Math.random()/1e3),delete t.searchAddress,s.push(t),c++)})).catch((function(){}))):e}),[])).then((function(){return console.debug("[map] [registry] Resolved {0}/{1} addresses in {2}ms".format(c,o.length,Date.now()-l)),s}))}return e.when(s)}return s.raw={profile:{search:n.post("/page/record/_search"),mixedSearch:n.post("/user,page,group/profile,record/_search")}},{load:function(t){(t=t||{}).from=t.from||0,t.size=t.size||l,t.searchAddress=r.google.isEnable()&&(!angular.isDefined(t.searchAddress)||t.searchAddress),t.fields=t.fields||{},t.fields.description=!angular.isDefined(t.fields.description)||t.fields.description;var n={query:u(t),from:0,size:t.size,_source:t.fields.description?c.record.concat("description"):c.record},i=s.raw.profile.search,a=function(n){return n.hits&&n.hits.hits.length?d(t,n):e.when([])};return i(n).then((function(o){if(!o.hits||!o.hits.total)return[];var r=[d(t,o)];for(n.from+=n.size;n.from<o.hits.total;)r.push(i(angular.copy(n)).then(a)),n.from+=n.size;return e.all(r).then((function(e){return e.reduce((function(e,t){return e.concat(t)}),[])}))}))}}}]),angular.module("cesium.map.utils.services",["cesium.services","ui-leaflet"]).factory("MapUtils",["$timeout","$q","$translate","$window","leafletData","csConfig","csSettings","esGeo","UIUtils","leafletHelpers",function(e,t,n,i,a,o,r,s,l,c){var u=o.plugins&&o.plugins.es&&o.plugins.es.googleApiKey,d={locations:{FRANCE:{lat:46.5588603,lng:4.229736328124999,zoom:6}},LOCALIZE_ZOOM:15},p={cache:{}};function m(e,t){return c.isSameCenterOnMap(e,t)}function E(e,t){if(!e||!t)throw"Illegal arguments";if(e._container)e._container.id=t;else{var n=e.onAdd;e.onAdd=function(e){var i=n.call(this,e);return i.id=t,i}}}return d.DEFAULT_CENTER=r.data&&r.data.plugins&&r.data.plugins.map&&r.data.plugins.map.center||d.locations.FRANCE,{map:function(e){var t;return(e=angular.merge({center:angular.copy(d.DEFAULT_CENTER),cache:!1,defaults:{scrollWheelZoom:!0,tileLayerOptions:{attribution:'© <a target="_blank" href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'}},layers:{baselayers:{osm:{name:"OpenStreetMap",type:"xyz",url:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",layerOptions:{subdomains:["a","b","c"],attribution:'&copy; <a target="_blank" href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>',continuousWorld:!0}},google:{name:"Google map",type:"xyz",url:"https://{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}&key="+u,layerOptions:{subdomains:["mt0","mt1","mt2","mt3"],attribution:'&copy; <a target="_blank"  href="https://www.google.com/intl/fr_fr/help/terms_maps.html">Google</a>',continuousWorld:!0}}}},controls:{custom:[]}},e||{})).cache&&p.cache[e.cache]&&(console.debug("[map] Restoring map from cache :",p.cache[e.cache]),e=angular.merge(e,p.cache[e.cache])),e.layers.overlays&&(t=_.keys(e.layers.overlays).reduce((function(t,n){return t.concat(e.layers.overlays[n].name)}),[]),n(t).then((function(t){_.keys(e.layers.overlays||{}).forEach((function(n){e.layers.overlays[n].name=t[e.layers.overlays[n].name]}))}))),e},updateCenter:function(n,i){return m(i,n)?t.when():e((function(){n.invalidateSize(),n._resetView(i,i.zoom,!0)}),300)},center:{get:function(e){var t;if(e&&(e.lat&&((t={}).lat=parseFloat(e.lat)),(e.lng||e.lon)&&((t=t||{}).lng=parseFloat(e.lng||e.lon)),e.zoom&&((t=t||{}).zoom=parseFloat(e.zoom)),t))return c.isValidCenter(t)||(t=angular.merge({},d.DEFAULT_CENTER,t)),t},isSame:m,isDefault:function(e){var t=d.DEFAULT_CENTER;return!(!e.lat||!e.lng||t.lat.toFixed(4)!==e.lat.toFixed(4)||t.lng.toFixed(4)!==e.lng.toFixed(4)||t.zoom!==e.zoom)}},control:{search:function(e){(e=e||{}).initial=!!angular.isDefined(e.initial)&&e.initial,e.marker=!!angular.isDefined(e.marker)&&e.marker,e.propertyName=angular.isDefined(e.propertyName)?e.propertyName:"title",e.position=angular.isDefined(e.position)?e.position:"topleft",e.zoom=angular.isDefined(e.zoom)?e.zoom:d.LOCALIZE_ZOOM,e.markerLocation=!angular.isDefined(e.markerLocation)||e.markerLocation;var t=n(["MAP.COMMON.SEARCH_DOTS","COMMON.SEARCH_NO_RESULT"]);return{addTo:function(n){t.then((function(t){var i=L.control.search(angular.merge(e,{textPlaceholder:t["MAP.COMMON.SEARCH_DOTS"],textErr:t["COMMON.SEARCH_NO_RESULT"]}));e.id&&E(i,e.id),i.addTo(n)}))}}},localizeMe:function(e){return e=e||{},L.easyButton({position:"topleft",type:"replace",leafletClasses:!0,states:[{stateName:"locate-me",onClick:function(e,t){s.point.current().then((function(e){t.setView({lat:e.lat,lng:e.lon},d.LOCALIZE_ZOOM)})).catch((function(e){console.error(e),l.alert.error("MAP.ERROR.LOCALIZE_ME_FAILED")}))},title:e.title,icon:"icon ion-android-locate"}]})},setId:E},cache:{bind:function(e,t,n){if(n=n||{},!t||!n.layers||!e)throw"Illegal arguments";if(n.cache){if(n.layers.overlays){var o=_.keys(n.layers.overlays);p.cache[n.cache]||(p.cache[n.cache]={center:n.center,bounds:n.bounds,layers:angular.copy(n.layers)}),a.getMap(t).then((function(){_(i.document.querySelectorAll("#{0} .leaflet-control-layers-overlays input[type=checkbox]".format(t))).forEach((function(e,t){var i=o[t],a=n.layers.overlays[i].visible;e.addEventListener("change",(function(e){a=!a,p.cache[n.cache].layers.overlays[i].visible=a}))}))}))}e.$on("$ionicView.leave",(function(){p.cache[n.cache].center=n.center,p.cache[n.cache].bounds=n.bounds}))}}},constants:d}}]),ot.$inject=["$scope","$filter","$templateCache","$interpolate","$timeout","$location","$translate","$q","$controller","ionicReady","leafletData","UIUtils","csSettings","csWallet","MapUtils","mapWot"],angular.module("cesium.map.wot.controllers",["cesium.services","cesium.map.services","cesium.map.help.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(t.extendState("app.wot_lookup.tab_search",{points:{"nav-buttons":{template:'<button class="button button-icon button-clear" ui-sref="app.view_wot_map"><i class="icon ion-ios-location"></i></button>'}}}).extendState("app.wot_lookup_lg",{points:{"filter-buttons":{templateUrl:"plugins/map/templates/wot/lookup_lg_extend.html",controller:"ESExtensionCtrl"}}}),e.state("app.view_wot_map",{url:"/wot/map?c&center",views:{menuContent:{templateUrl:"plugins/map/templates/wot/view_map.html",controller:"MapWotViewCtrl"}},data:{silentLocationChange:!0}}))}]).controller("MapWotViewCtrl",ot),rt.$inject=["$scope","$filter","$templateCache","$interpolate","$timeout","$location","$translate","$q","ionicReady","leafletData","UIUtils","csSettings","csWallet","MapUtils","mapRegistry"],angular.module("cesium.map.registry.controllers",["cesium.services","cesium.map.services","cesium.map.help.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(t.extendState("app.wot_lookup.tab_registry",{points:{"nav-buttons":{template:'<button class="button button-icon button-clear" ui-sref="app.view_registry_map"><i class="icon ion-ios-location"></i></button>'}}}).extendState("app.registry_lookup_lg",{points:{"filter-buttons":{templateUrl:"plugins/map/templates/registry/lookup_lg_extend.html"}}}),e.state("app.view_registry_map",{url:"/wot/pagemap?c&center",views:{menuContent:{templateUrl:"plugins/map/templates/registry/view_map.html",controller:"MapRegistryViewCtrl"}},data:{silentLocationChange:!0}}))}]).controller("MapRegistryViewCtrl",rt),angular.module("cesium.map.network.controllers",["cesium.services","cesium.map.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(t.extendState("app.network",{points:{"filter-buttons":{templateUrl:"plugins/map/templates/network/lookup_extend.html",controller:"ESExtensionCtrl"}}}),e.state("app.view_network_map",{url:"/network/map?c",views:{menuContent:{templateUrl:"plugins/map/templates/network/view_map.html",controller:"MapNetworkViewCtrl"}},data:{silentLocationChange:!0}}))}]).controller("MapNetworkViewCtrl",["$scope","$controller","$q","$interpolate","$translate","$filter","$templateCache","$timeout","$location","esGeo","UIUtils","csNetwork","MapUtils","leafletData",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m){angular.extend(this,t("NetworkLookupCtrl",{$scope:e}));var E,b,g=o("formatPubkey"),f={member:{type:"awesomeMarker",icon:"person",markerColor:"green",iconColor:"white"},mirror:{type:"awesomeMarker",icon:"radio-waves",markerColor:"green",iconColor:"white"},offline:{type:"awesomeMarker",icon:"ion-close-circled",markerColor:"red",iconColor:"white"}},T={},h=0;E='<div class="item item-peer item-icon-left no-border" ng-click="selectPeer(peer)">',E+=r.get("templates/network/item_content_peer.html"),E=(E+="</div>").replace(/[:]rebind[:]|[:][:]/g,""),e.loading=!0,e.mapId="map-network-"+e.$id,e.helptipPrefix="helptip-"+e.mapId,e.map=p.map({cache:"map-network",layers:{overlays:{member:{type:"featureGroup",name:"MAP.NETWORK.VIEW.LAYER.MEMBER",visible:!0},mirror:{type:"featureGroup",name:"MAP.NETWORK.VIEW.LAYER.MIRROR",visible:!0},offline:{type:"featureGroup",name:"MAP.NETWORK.VIEW.LAYER.OFFLINE",visible:!1}}},bounds:{},loading:!0,markers:{}});var v=e.enter;e.enter=function(t,n){if(!e.loading)return e.updateLocationHref(),v(t,n);if(n.stateParams&&n.stateParams.c){var i=n.stateParams.c.split(":");e.map.center.lat=parseFloat(i[0]),e.map.center.lng=parseFloat(i[1]),e.map.center.zoom=parseInt(i[2])}e.$watch("map.center",(function(){if(!e.map.loading)return s((function(){e.updateLocationHref()}),300)}),!0),e.loadMap().then((function(e){return e.fire("dataloading"),v(t,n)}))},e.$on("$ionicView.enter",e.enter);var I=e.computeOptions;e.computeOptions=function(){var e=I();return e.filter.online="all",e},e.loadMap=function(){return m.getMap(e.mapId).then((function(t){if(!e.map.loading)return t;L.Control.loading({position:"topright",separate:!0}).addTo(t),b=L.layerGroup({visible:!1});var n=i(r.get("plugins/map/templates/network/item_search_tooltip.html"));p.control.search({layer:b,propertyName:"title",buildTip:function(e,t){return n(t.layer.options)},moveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e);var i=e.layer&&e.layer.options&&e.layer.options.popupMarkerId;i&&s((function(){var e=_.find(n._layers,(function(e){return e.options&&e.options.id===i}));e&&e.openPopup()}),400)},firstTipSubmit:!0,tooltipLimit:50}).addTo(t);var a=function(e){return e.options&&e.options.icon.options.markerColor},o=L.markerClusterGroup({disableClusteringAtZoom:p.constants.LOCALIZE_ZOOM,maxClusterRadius:65,showCoverageOnHover:!1,iconCreateFunction:function(e){var t=_.countBy(e.getAllChildMarkers(),a),n=t.green?"green":t.lightgreen?"lightgreen":t.lightgray?"lightgray":"red",i=e.getChildCount(),o="marker-cluster "+n+" marker-cluster-";return o+=i<10?"small":i<100?"medium":"large",L.divIcon({html:"<div><span>"+i+"</span></div>",className:o,iconSize:new L.Point(40,40)})}});return t.eachLayer((function(e){e.addLayer&&angular.extend(e,L.featureGroup.subGroup(o))})),c.point.ip.license&&(o.getAttribution=function(){return'<a target="_blank" href="{0}">{1}</a>'.format(c.point.ip.license.url,c.point.ip.license.name)}),o.addTo(t),e.map.loading=!1,t}))},e.updateView=function(t){console.debug("[map] [peers] Updating UI"),e.search.loading=!e.networkStarted||d.isBusy();var n=angular.copy(T);_.forEach(t.peers||[],(function(t){if(!t.isTor()){var i=T[t.id];if(i&&e.map.markers[i])return e.updateMarker(e.map.markers[i],t),void delete n[t.id];var a=t.bma,o=t.hasValid4(a)?a.ipv4:a.dns||a.ipv6;c.point.ip.search(o).then((function(n){i=""+h++;var o=e.updateMarker({position:n,getMessageScope:function(){var n=e.$new();return n.peer=t,n},draggable:!1,focus:!1,message:E,id:i},t);e.map.markers[i]=o,T[t.id]=i;var r,s=(t.dns||t.server)+(t.uid?" | "+(t.name||t.uid):"")+" | "+g(t.pubkey);a.ipv4&&!(t.dns||t.server).startsWith(a.ipv4)&&(r=a.ipv4,s+=" | "+a.ipv4),b.addLayer(new L.Marker({lat:n.lat,lng:n.lng},{opacity:0,icon:L.divIcon({className:"ng-hide",iconSize:L.point(0,0)}),title:s,peer:angular.extend({ipv4:r},t),popupMarkerId:i}))})).catch((function(e){console.debug("No position found for address ["+o+"]",e)}))}})),_.forEach(_.keys(n),(function(e){delete T[e]})),_.forEach(_.values(n),(function(t){delete e.map.markers[t]})),e.search.loading||m.getMap(e.mapId).then((function(t){e.loading=!1,t.fire("dataload")}))},e.updateMarker=function(e,t){return e.layer=t.online?t.uid?"member":"mirror":"offline",e.icon=angular.copy(f[e.layer]),e.opacity=(t.online,1),e.title=t.dns||t.server,t.online&&!t.hasMainConsensusBlock&&(e.icon.markerColor=t.hasConsensusBlock?"lightgreen":"lightgray",e.opacity=t.hasConsensusBlock?.9:.8),e.lng||(e.lng=e.position.lng+Math.random()/1e3,e.lat=e.position.lat+Math.random()/1e3),e},e.updateLocationHref=function(t){(l.search()||{}).c&&p.center.isDefault(e.map.center)||(t=t||"{0}:{1}:{2}".format(e.map.center.lat.toFixed(4),e.map.center.lng.toFixed(4),e.map.center.zoom),l.search({c:t}).replace())},e.$on("centerUrlHash",(function(t,n){if(!e.loading)return s((function(){e.updateLocationHref(n)}),300)})),e.showHelpTip=function(){}}]),angular.module("cesium.map.user.controllers",["cesium.services","cesium.map.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.extendState("app.edit_profile",{points:{"after-position":{templateUrl:"plugins/map/templates/user/edit_profile_extend.html",controller:"MapEditProfileViewCtrl"}}}).extendState("app.edit_profile_by_id",{points:{"after-position":{templateUrl:"plugins/map/templates/user/edit_profile_extend.html",controller:"MapEditProfileViewCtrl"}}})}]).controller("MapEditProfileViewCtrl",["$scope","$timeout","$q","MapUtils","$translate",function(e,t,n,i,a){var o=[];e.mapId="map-user-profile-"+e.$id,e.map=i.map({markers:{},center:{zoom:13}}),e.loading=!0,e.mapId="map-profile-"+e.$id,e.enter=function(n,i){return e.formData&&(e.formData.title||e.formData.geoPoint)?(e.loading=!0,e.load()):t(e.enter,500)},e.$on("$csExtension.enter",e.enter),e.$on("$ionicParentView.enter",e.enter),e.load=function(){return e.formData.geoPoint&&e.formData.geoPoint.lat&&e.formData.geoPoint.lon?e.map.markers.geoPoint?(e.map.markers.geoPoint.lat=e.formData.geoPoint.lat,void(e.map.markers.geoPoint.lng=e.formData.geoPoint.lon)):a("MAP.PROFILE.MARKER_HELP").then((function(t){e.map.markers.geoPoint={message:t,lat:parseFloat(e.formData.geoPoint.lat),lng:parseFloat(e.formData.geoPoint.lon),draggable:!0,focus:!0},angular.extend(e.map.center,{lat:e.map.markers.geoPoint.lat,lng:e.map.markers.geoPoint.lng});var n=e.$watch("map.markers.geoPoint",(function(){e.loading||e.map.markers.geoPoint&&e.map.markers.geoPoint.lat&&e.map.markers.geoPoint.lng&&(e.formData.geoPoint=e.formData.geoPoint||{},e.formData.geoPoint.lat=e.map.markers.geoPoint.lat,e.formData.geoPoint.lon=e.map.markers.geoPoint.lng)}),!0);o.push(n),e.ionItemClass||(e.ionItemClass="done in"),e.loading=!1})):(_.forEach(o,(function(e){e()})),o=[],delete e.map.markers.geoPoint,e.loading=!1,n.when())},e.$watch("formData.geoPoint",(function(){e.loading||e.load()}),!0)}]),angular.module("cesium.map.settings.controllers",["cesium.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.extendState("app.es_settings",{points:{common:{templateUrl:"plugins/map/templates/settings/es_settings_extend.html"}}})}]),st.$inject=["$scope","$controller"],angular.module("cesium.map.help.controllers",["cesium.services"]).controller("MapHelpTipCtrl",st),angular.module("cesium",["ionic","ionic-material","ngMessages","ngSanitize","pascalprecht.translate","ngApi","angular-cache","angular.screenmatch","angular.bind.notifier","ImageCropper","ion-digit-keyboard","FBAngular","ngCordova","cesium.plugins","cesium.filters","cesium.config","cesium.platform","cesium.controllers","cesium.templates","cesium.translations","cesium.components","cesium.directives"]).config(["$urlRouterProvider",function(e){e.deferIntercept()}]).run(["$rootScope","$translate","$state","$window","$urlRouter","ionicReady","Device","UIUtils","$ionicConfig","PluginService","csPlatform","csWallet",function(e,t,n,i,a,o,r,s,l,c,u,d){u.disableChangeState();var p=!1;e.$on("$stateChangeStart",(function(t,i,a,o){if(!t.defaultPrevented&&i.data&&!e.tour&&!t.currentScope.tour){if(!p){var r,l=a.wallet&&"default"!=a.wallet?d.children.get(a.wallet):d;return a.wallet&&!l&&console.warn("[app] Unable to find the children wallet: "+a.wallet),i.data.auth&&!l.isAuth()?(t.preventDefault(),r=i.data.minData?{minData:!0}:void 0,p=!0,d.auth(r).then((function(){return p=!1,n.go(i.name,a)})).catch((function(e){if(p=!1,"CANCELLED"===e&&!n.current.name)return n.go("app.home")}))):i.data.login&&!d.isLogin()?(t.preventDefault(),r=i.data.minData?{minData:!0}:void 0,p=!0,d.login(r).then((function(){return p=!1,n.go(i.name,a)})).catch((function(e){if(p=!1,"CANCELLED"===e&&!n.current.name)return n.go("app.home")}))):!i.data.login&&!i.data.auth||(r=i.data.minData?{minData:!0}:void 0,l.isDataLoaded(r))?void 0:(t.preventDefault(),r&&r.minData||s.loading.show(),l.loadData(r).then((function(){return p=!1,n.go(i.name,a)})))}t.preventDefault()}})),d.api.data.on.unauth(e,(function(){n.current&&n.current.data&&n.current.data.auth&&n.go("app.home")})),e.$on("$locationChangeSuccess",(function(e,t,i){n.current.data&&!0===n.current.data.silentLocationChange&&i&&i.split("?")[0]===t.split("?")[0]&&e.preventDefault()})),a.listen(),c.start(),o().then((function(){ionic.Platform.isIOS()&&window.StatusBar&&StatusBar.styleLightContent()}))}]),window.ionic.Platform.ready((function(){angular.bootstrap(document,["cesium"])})),angular.module("cesium.components",[]).component("csBadgeCertification",{bindings:{requirements:"=",parameters:"<",csId:"@"},templateUrl:"templates/common/badge_certification_count.html"}).component("csBadgeGivenCertification",{bindings:{identity:"=",parameters:"<",csId:"@"},templateUrl:"templates/common/badge_given_certification_count.html"}).component("csSortIcon",{bindings:{asc:"=",sort:"=",toggle:"<"},template:'<i class="ion-chevron-up" ng-class="{gray: !$ctrl.asc || $ctrl.sort != $ctrl.toggle}" style="position: relative; left: 5px; top:-5px; font-size: 9px;"></i><i class="ion-chevron-down" ng-class="{gray : $ctrl.asc || $ctrl.sort != $ctrl.toggle}" style="position: relative; left: -2.6px; top: 3px; font-size: 9px;"></i>'}),angular.module("cesium.directives",[]).directive("compareTo",(function(){return{require:"?ngModel",link:function(e,t,n,i){i&&n.compareTo&&(i.$validators.compareTo=function(t){return t==e.$eval(n.compareTo)},e.$watch(n.compareTo,(function(){i.$validate()})))}}})).directive("differentTo",(function(){return{require:"?ngModel",link:function(e,t,n,i){i&&n.differentTo&&(i.$validators.differentTo=function(t){return t!=e.$eval(n.differentTo)},e.$watch(n.differentTo,(function(){i.$validate()})))}}})).directive("numberFloat",(function(){var e=new RegExp("^[0-9]+([.,][0-9]+)?$");return{require:"?ngModel",link:function(t,n,i,a){a&&(a.$validators.numberFloat=function(t){return a.$isEmpty(t)||e.test(t)})}}})).directive("numberInt",(function(){var e=new RegExp("^[0-9]+$");return{require:"ngModel",link:function(t,n,i,a){a&&(a.$validators.numberInt=function(t){return a.$isEmpty(t)||e.test(t)})}}})).directive("email",(function(){var e=new RegExp("^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$");return{require:"ngModel",link:function(t,n,i,a){a&&(a.$validators.email=function(t){return a.$isEmpty(t)||e.test(t)})}}})).directive("requiredIf",(function(){return{require:"?ngModel",link:function(e,t,n,i){i&&n.requiredIf&&(i.$validators.required=function(t){return!e.$eval(n.requiredIf)||!i.$isEmpty(t)},e.$watch(n.requiredIf,(function(){i.$validate()})))}}})).directive("geoPoint",(function(){return{require:"?ngModel",link:function(e,t,n,i){i&&(i.$validators.geoPoint=function(e){return i.$isEmpty(e)||angular.isDefined(e.lat)&&angular.isDefined(e.lon)||angular.isUndefined(e.lat)&&angular.isUndefined(e.lon)})}}})).directive("copyOnClick",["$window","Device","UIUtils",function(e,t,n){return{restrict:"A",link:function(e,i,a){var o=function(i){var o=a.copyOnClick;if(o&&t.clipboard.enable)t.clipboard.copy(o).then((function(){n.toast.show("INFO.COPY_TO_CLIPBOARD_DONE")})).catch(n.onError("ERROR.COPY_CLIPBOARD"));else if(o){var r=o&&o.indexOf("\n")>=0?o.split("\n").length:1;n.popover.show(i,{scope:e,templateUrl:"templates/common/popover_copy.html",bindings:{value:a.copyOnClick,rows:r},autoselect:".popover-copy "+(r<=1?"input":"textarea")})}};i.bind("click",o),i.bind("hold",o)}}}]).directive("selectOnClick",["$window",function(e){return{restrict:"A",link:function(t,n,i){n.bind("click",(function(){e.getSelection&&!e.getSelection().toString()&&this.value&&this.setSelectionRange(0,this.value.length)}))}}}]).directive("activeLink",["$location",function(e){return{restrict:"A",link:function(t,n,i,a){var o,r=i.activeLink;i.activeLinkPathPrefix?(o=i.activeLinkPathPrefix.substring(1),t.location=e,t.$watch("location.path()",(function(e){e&&0===e.indexOf(o)?n.addClass(r):n.removeClass(r)}))):i.href&&(o=i.href.substring(1),t.location=e,t.$watch("location.path()",(function(e){e&&e==o?n.addClass(r):n.removeClass(r)})))}}}]).directive("input",["$timeout",function(e){return{restrict:"E",scope:{returnClose:"=",onReturn:"&",onFocus:"&",onBlur:"&"},link:function(t,n,i){n.bind("focus",(function(n){t.onFocus&&e((function(){t.onFocus()}))})),n.bind("blur",(function(n){t.onBlur&&e((function(){t.onBlur()}))})),n.bind("keydown",(function(i){13==i.which&&(t.returnClose&&n[0].blur(),t.onReturn&&e((function(){t.onReturn()})))}))}}}]).directive("trustAsHtml",["$sce","$compile","$parse",function(e,t,n){return{restrict:"A",compile:function(i,a){var o=n(a.trustAsHtml),r=n(a.trustAsHtml,(function(e){return(e||"").toString()}));return t.$$addBindingClass(i),function(n,i,a){t.$$addBindingInfo(i,a.trustAsHtml),n.$watch(r,(function(){i.html(e.getTrustedHtml(e.trustAsHtml(o(n)))||""),t(i.contents())(n)}))}}}}]).directive("modalClose",["$ionicHistory","$timeout",function(e,t){return{restrict:"AC",link:function(n,i){i.bind("click",(function(){n.closeModal&&(e.nextViewOptions({historyRoot:!0,disableAnimate:!0,expire:300}),t((function(){e.nextViewOptions({historyRoot:!1,disableAnimate:!1})}),300),n.closeModal())}))}}}]).directive("csExtensionPoint",["$state","$compile","$controller","$templateCache","PluginService",function(e,t,n,i,a){return{restrict:"E",compile:function(e,t){if(angular.isDefined(t.name)){var n=a.extensions.points.getActivesByName(t.name);n.length>0&&(e.html(""),_.forEach(n,(function(t){e.append(function(e){var t=e.templateUrl?i.get(e.templateUrl):e.template;return t?(e.controller&&(t='<ng-controller ng-controller="'+e.controller+'">'+t+"</div>"),t):(console.error("[plugin] Could not found template for extension :"+(e.templateUrl?e.templateUrl:e.template)),"")}(t))})))}return{pre:function(e,t,n){a.extensions.points.current.set(n.name)},post:function(){a.extensions.points.current.set()}}},scope:{content:"="}}}]).directive("onReadFile",["$parse",function(e){return{restrict:"A",scope:!1,link:function(t,n,i){var a=e(i.onReadFile);n.on("change",(function(e){var n=new FileReader,i={name:this.files[0].name,size:this.files[0].size,type:this.files[0].type};n.onload=function(e){t.$applyAsync((function(){a(t,{file:{fileContent:e.target.result,fileData:i}})}))},n.readAsText((e.srcElement||e.target).files[0])}))}}}]).directive("dropzone",["$parse",function(e){return{restrict:"A",scope:!1,link:function(t,n,i){var a=e(i.dropzone);n.bind("dragover",(function(e){e.stopPropagation(),e.preventDefault()})),n.bind("dragenter",(function(e){e.stopPropagation(),e.preventDefault()})),n.bind("dragleave",(function(e){e.stopPropagation(),e.preventDefault()})),n.bind("drop",(function(e){e.stopPropagation(),e.preventDefault();var n={name:e.dataTransfer.files[0].name,size:e.dataTransfer.files[0].size,type:e.dataTransfer.files[0].type},i=new FileReader;i.onload=function(e){t.$apply((function(){a(t,{file:{fileContent:e.target.result,fileData:n}})}))},i.readAsText(e.dataTransfer.files[0])}))}}}]).directive("windowExitUnauth",["$window","csSettings","csWallet",function(e,t,n){return{restrict:"AE",link:function(i,a){(e.attachEvent||e.addEventListener)(e.attachEvent?"onunload":"unload",(function(e){if(t.data&&t.data.keepAuthIdle!=t.constants.KEEP_AUTH_IDLE_SESSION)return n.unauth()}))}}}]),angular.module("cesium.filters",["cesium.config","cesium.platform","pascalprecht.translate","cesium.translations"]).factory("filterTranslations",["$rootScope","$q","csPlatform","csSettings","csCurrency","$translate","$timeout",function(e,t,n,i,a,o,r){var s,l=!1,c=this;function u(){return console.debug("[filter] Loading translations for locale [{0}]".format(o.use())),o(["COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.UD","COMMON.DAYS"]).then((function(e){c.DATE_PATTERN=e["COMMON.DATE_PATTERN"],"COMMON.DATE_PATTERN"===c.DATE_PATTERN&&(c.DATE_PATTERN="YYYY-MM-DD HH:mm"),c.DATE_SHORT_PATTERN=e["COMMON.DATE_SHORT_PATTERN"],"COMMON.DATE_SHORT_PATTERN"===c.DATE_SHORT_PATTERN&&(c.DATE_SHORT_PATTERN="YYYY-MM-DD"),c.DATE_MONTH_YEAR_PATTERN=e["COMMON.DATE_MONTH_YEAR_PATTERN"],"COMMON.DATE_MONTH_YEAR_PATTERN"===c.DATE_MONTH_YEAR_PATTERN&&(c.DATE_MONTH_YEAR_PATTERN="MMM YY"),c.DAYS=e["COMMON.DAYS"],"COMMON.DAYS"===c.DAYS&&(c.DAYS="days"),c.UD=e["COMMON.UD"],"COMMON.UD"===c.UD&&(c.UD="UD")}))}function d(){console.debug("[filter] Computing constants from currency parameters"),c.MEDIAN_TIME_OFFSET=a.data.medianTimeOffset||c.MEDIAN_TIME_OFFSET}return c.MEDIAN_TIME_OFFSET=3600,c.ready=function(){return l?t.when():s||c.start()},c.start=function(){return s=n.ready().then(u).then((function(){d(),l=!0,i.api.locale.on.changed(e,u,this),a.api.data.on.ready(e,d,this)}))},r((function(){c.start()})),c}]).filter("formatInteger",(function(){return function(e){return e?e<1e7?numeral(e).format("0,0"):numeral(e).format("0,0.000 a"):"0"}})).filter("formatAmount",["csConfig","csSettings","csCurrency","$filter",function(e,t,n,i){var a="0,0.0"+Array(e.decimalCount||4).join("0"),o=i("currencySymbol"),r=a+"0",s=1/Math.pow(10,(e.decimalCount||4)+1);return function(e,i){if(void 0!==e)return(i&&angular.isDefined(i.useRelative)?i.useRelative:t.data.useRelative)?function(e,t){var i=t&&t.currentUD?t.currentUD:n.data.currentUD;if(i){var a=e/i;return a=Math.abs(e)<s&&0!==e?"~ 0":numeral(a).format(r),t&&t.currency?a+" "+o(t.currency,!0):a}console.warn("formatAmount: currentUD not defined")}(e,i):function(e,t){var n=numeral(e/100).format(e<-1e9||e>1e9?"0,0.000 a":a);return t&&t.currency?n+" "+o(t.currency,!1):n}(e,i)}}]).filter("formatAmountNoHtml",["csConfig","csSettings","csCurrency","$filter",function(e,t,n,i){var a=1/Math.pow(10,e.decimalCount||4),o="0,0.0"+Array(e.decimalCount||4).join("0"),r=i("currencySymbolNoHtml");return function(e,i){if(void 0!==e)return(i&&angular.isDefined(i.useRelative)?i.useRelative:t.data.useRelative)?function(e,t){var i=t&&t.currentUD?t.currentUD:n.data.currentUD;if(i){var s=e/i;return s=Math.abs(s)<a&&0!==e?"~ 0":numeral(s).format(o),t&&t.currency?s+" "+r(t.currency,!0):s}console.warn("formatAmount: currentUD not defined")}(e,i):function(e,t){var n=numeral(e/100).format(e>-1e9&&e<1e9?"0,0.00":"0,0.000 a");return t&&t.currency?n+" "+r(t.currency,!1):n}(e,i)}}]).filter("currencySymbol",["filterTranslations","$filter","csSettings",function(e,t,n){return function(i,a){return i?(angular.isDefined(a)?a:n.data.useRelative)?e.UD+"<sub>"+t("abbreviate")(i)+"</sub>":t("abbreviate")(i):""}}]).filter("currencySymbolNoHtml",["filterTranslations","$filter","csSettings",function(e,t,n){return function(i,a){return i?(angular.isDefined(a)?a:n.data.useRelative)?e.UD+" "+t("abbreviate")(i):t("abbreviate")(i):""}}]).filter("formatDecimal",["csConfig","csCurrency",function(e,t){var n=1/Math.pow(10,e.decimalCount||4),i="0,0.0"+Array(e.decimalCount||4).join("0");return function(e){return void 0===e?"0":e===1/0||e===-1/0?(console.warn("formatDecimal: division by zero ? (is currentUD defined ?) = "+t.data.currentUD),"error"):Math.abs(e)<n?"~ 0":numeral(e).format(i)}}]).filter("formatNumeral",(function(){return function(e,t){return void 0===e?"0":Math.abs(e)<1e-4?"~ 0":numeral(e).format(t)}})).filter("formatDate",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm"):""}}]).filter("formatDateShort",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_SHORT_PATTERN||"YYYY-MM-DD"):""}}]).filter("formatDateMonth",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_MONTH_YEAR_PATTERN||"MMM YY"):""}}]).filter("formatDateForFile",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_FILE_PATTERN||"YYYY-MM-DD"):""}}]).filter("formatTime",(function(){return function(e){return e?moment.unix(parseInt(e)).local().format("HH:mm"):""}})).filter("formatFromNow",(function(){return function(e){return e?moment.unix(parseInt(e)).fromNow():""}})).filter("formatFromNowAndDate",["filterTranslations",function(e){return function(t,n){var i=t&&moment.unix(parseInt(t));return i&&i.fromNow()+(n&&n.separator||" | ")+i.local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm")||""}}]).filter("formatDurationTo",(function(){return function(e){return e?moment.unix(moment().utc().unix()+parseInt(e)).fromNow():""}})).filter("formatDuration",(function(){return function(e){return e?moment(0).from(moment.unix(parseInt(e)),!0):""}})).filter("formatDurationTime",["filterTranslations",function(e){return function(t){if(!t)return"";var n=t&&t<0?"-":"+";t=Math.abs(t);var i=Math.trunc(t/3600/24),a=Math.trunc(t/3600-24*i),o=Math.trunc(t/60-24*i*60-60*a);return i>0?n+i+" "+e.DAYS+" "+a+"h "+o+"m":a>0?n+a+"h "+o+"m":n+o+"m"}}]).filter("formatDurationMs",(function(){return function(e){return e?e<1e3?e+"ms":e/1e3+"s":""}})).filter("formatPeriod",(function(){return function(e){return e?moment(0).from(moment.unix(parseInt(e)),!0).split(" ").slice(-1)[0]:null}})).filter("formatFromNowShort",(function(){return function(e){return e?moment.unix(parseInt(e)+offset).fromNow(!0):""}})).filter("medianDate",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm"):""}}]).filter("medianDateShort",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).local().format(e.DATE_SHORT_PATTERN||"YYYY-MM-DD"):""}}]).filter("medianTime",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).local().format("HH:mm"):""}}]).filter("medianFromNow",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).fromNow():""}}]).filter("medianFromNowShort",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).fromNow(!0):""}}]).filter("medianFromNowAndDate",["filterTranslations",function(e){return function(t,n){var i=t&&moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET);return i&&i.fromNow()+(n&&n.separator||" | ")+i.local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm")||""}}]).filter("capitalize",(function(){return function(e){return e?(e=e.toLowerCase()).length>1?e.substring(0,1).toUpperCase()+e.substring(1):e:""}})).filter("abbreviate",(function(){var e={};return function(t){var n=t||"";if(e[n])return e[n];if(n.length>3){for(var i="",a=["-","_"," "],o=0;o<n.length;o++){var r=n[o];0===o?i="g"===r||"G"===r?"Ğ":r:o>0&&-1!=a.indexOf(n[o-1])&&(i+=r)}n=i.toUpperCase()}else"G"===(n=n.toUpperCase()).charAt(0)&&(n="Ğ"+(n.length>1?n.substr(1):""));return e[t]=n,n}})).filter("upper",(function(){return function(e){return e?e.toUpperCase():""}})).filter("formatPubkey",(function(){return function(e){return e?e.substr(0,8):""}})).filter("formatHash",(function(){return function(e){return e?e.substr(0,4)+e.substr(e.length-4):""}})).filter("formatCategory",(function(){return function(e){return e&&e.length>28?e.substr(0,25)+"...":e}})).filter("formatSlug",(function(){return function(e){return e?encodeURIComponent(e.toLowerCase().replace(/<[^>]+>/g,"").replace(/[^\w ]+/g,"").replace(/ +/g,"-")):""}})).filter("formatEncodeURI",(function(){return function(e){return e?encodeURIComponent(e):""}})).filter("truncText",(function(){return function(e,t){return t=t||500,!e||e.length<=t?e:e.substr(0,t)+"..."}})).filter("truncUrl",(function(){return function(e,t){t=t||25;var n=e.startsWith("http://")?7:e.startsWith("https://")?8:0;return n=e.startsWith("www.",n)?n+4:n,!e||e.length-n<=t?e.substr(n):e.substr(n,t)+"..."}})).filter("trustAsHtml",["$sce",function(e){return function(t){return e.trustAsHtml(t)}}]),angular.module("cesium.platform",["ngIdle","cesium.config","cesium.services"]).config(["$translateProvider","csConfig",function(e,t){e.uniformLanguageTag("bcp47").determinePreferredLanguage().useSanitizeValueStrategy(null).fallbackLanguage([t.fallbackLanguage?t.fallbackLanguage:"en"]).useLoaderCache(!0)}]).config(["$httpProvider","csConfig",function(e,t){e.defaults.timeout=t.timeout?t.timeout:3e5,e.defaults.useXDomain=!0,delete e.defaults.headers.common["X-Requested-With"],e.useApplyAsync(!0)}]).config(["$compileProvider","csConfig",function(e,t){e.debugInfoEnabled(!0===t.debug)}]).config(["$animateProvider",function(e){e.classNameFilter(/\banimate-/)}]).config(["CacheFactoryProvider","csConfig",function(e,t){angular.extend(e.defaults,{maxAge:t.cacheTimeMs||6e4})}]).config(["screenmatchConfigProvider",function(e){e.config.rules="bootstrap"}]).config(["$ionicConfigProvider",function(e){var t=ionic.Platform.isIOS();e.scrolling.jsScrolling(t),e.views.maxCache(5)}]).config(["IdleProvider","csConfig",function(e,t){e.idle(t.logoutIdle||600),e.timeout(t.logoutTimeout||15)}]).factory("$exceptionHandler",["$log",function(e){return function(t,n){n?e.error(t,n):e.error(t)}}]).factory("csPlatform",["ionicReady","$rootScope","$q","$state","$translate","$timeout","UIUtils","BMA","Device","csHttp","csConfig","csCache","csSettings","csCurrency","csWallet",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){var b,g,f,T,h=0,v=!1;function I(){if(!T){var e=t.$on("$stateChangeStart",(function(e,t,n,a){e.defaultPrevented||"app.home"===t.name||"app.settings"===t.name||(e.preventDefault(),g?g.then((function(){i.go(t.name,n)})):r.loading.hide())}));T=e}}function N(){T&&T(),T=null}function O(e){if(e)return!0;b=b||p.data.node;var t=p.data.fallbackNodes&&h<p.data.fallbackNodes.length&&p.data.fallbackNodes[h++];if(!t)throw"ERROR.CHECK_NETWORK_CONNECTION";var n=t.host+(t.port||80==t.port||443==t.port?"":":"+t.port);return s.node.same(t.host,t.port)?(console.debug("[platform] Skipping fallback node [{0}]: same as actual node".format(n)),O()):c.get(t.host,t.port,"/node/summary",443==t.port||s.node.forceUseSsl)().catch((function(e){console.error("[platform] Could not reach fallback node [{0}]: skipping".format(n))})).then((function(e){if(!e)return O();var i={old:s.server,new:n};return i.old===i.new&&(s.port!=t.port?i.new+=":"+t.port:0!=s.useSsl||!t.useSsl&&443!=t.port||(i.new+=" (SSL)")),a("CONFIRM.USE_FALLBACK_NODE",i).then((function(e){return r.alert.confirm(e)})).then((function(e){if(e)return p.data.node=t,p.data.node.temporary=!0,c.cache.clear(),s.copy(t).then(O)}))}))}function R(){return console.debug("[platform] restarting csPlatform"),S().then((function(){return o(A,200)}))}function A(){return I(),g=e().then(n.all([l.ready(),p.ready()])).then((function(){return s.ready().then(O)})).then(m.ready).then(E.ready).then((function(){N(),function(){f=[s.api.node.on.restart(t,R,this)]}(),g=null,v=!0})).catch((function(e){throw g=null,v=!1,i.current.name!==t.errorState&&i.go(t.errorState,{error:"peer"}),e}))}function S(){return v?(_.forEach(f,(function(e){e()})),f=[],E.stop(),m.stop(),s.stop(),o((function(){N(),v=!1,g=null}),500)):n.when()}return{disableChangeState:I,isStarted:function(){return v},ready:function(){return v?n.when():g||A()},restart:R,start:A,stop:S,version:{latest:function(){var e=p.data.latestReleaseUrl&&c.uri.parse(p.data.latestReleaseUrl);return e?c.getWithCache(e.host,"https:"===e.protocol?443:e.port,"/"+e.pathname,void 0,d.constants.LONG)().then((function(e){if(e&&e.name&&e.tag_name&&e.html_url)return{version:e.name,url:e.html_url,isNewer:c.version.compare(u.version,e.name)<0}})).catch((function(e){console.error("[platform] Failed to get Cesium latest version",e)})):n.when()}}}}]).run(["$rootScope","$state","$window","$urlRouter","ionicReady","$ionicPlatform","$ionicHistory","Device","UIUtils","$ionicConfig","PluginService","csPlatform","csWallet","csSettings","csConfig","csCurrency",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){e.config=E,e.settings=m.data,e.currency=b.data,e.device=s,e.errorState="app.home",e.smallscreen=l.screen.isSmall();var g=n.location.href.indexOf("#");e.rootPath=-1!==g?n.location.href.substr(0,g):n.location.href,console.debug("[app] Root path is ["+e.rootPath+"]"),a().then((function(){return s.keyboard.enable&&(s.keyboard.hideKeyboardAccessoryBar(!0),ionic.Platform.isIOS()&&s.keyboard.disableScroll(!0)),"a"!==ionic.Platform.grade.toLowerCase()&&(console.info("[app] Disabling UI effects, because plateform's grade is ["+ionic.Platform.grade+"]"),l.setEffects(!1)),window.StatusBar&&console.debug("[app] Status bar plugin enable"),d.version.latest().then((function(t){t&&t.isNewer?(console.info("[app] New release detected [{0}]".format(t.version)),e.newRelease=t):console.info("[app] Current version [{0}] is the latest release".format(E.version))})),o.registerBackButtonAction((function(e){return r.backView()?r.goBack():(e.preventDefault(),l.alert.confirm("CONFIRM.EXIT_APP").then((function(e){e&&ionic.Platform.exitApp()})))}),100),d.ready()}))}]),"function"!=typeof String.prototype.startsWith&&(console.debug("Adding String.prototype.startsWith() -> was missing on this platform"),String.prototype.startsWith=function(e,t){return 0===this.indexOf(e,t)}),"function"!=typeof String.prototype.trim){console.debug("Adding String.prototype.trim() -> was missing on this platform");var lt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(lt,"")}}Math&&"function"!=typeof Math.trunc&&(console.debug("Adding Math.trunc() -> was missing on this platform"),Math.trunc=function(e){return(e-.5).toFixed()}),"function"!=typeof String.prototype.format&&(console.debug("Adding String.prototype.format() -> was missing on this platform"),String.prototype.format=function(){var e=arguments;return this.replace(/{(\d+)}/g,(function(t,n){return void 0!==e[n]?e[n]:t}))});
\ No newline at end of file
diff --git a/assets/www/dist_js/vendor-4db1ac7d45.js b/assets/www/dist_js/vendor-4db1ac7d45.js
deleted file mode 100644
index 5dd0cc24a5ecfbb73d0dcaa42c2307fde81ef691..0000000000000000000000000000000000000000
--- a/assets/www/dist_js/vendor-4db1ac7d45.js
+++ /dev/null
@@ -1,201 +0,0 @@
-/* minified */
-var e,t,n,r,o;!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,(function(){"use strict";var e,t;function n(){return e.apply(null,arguments)}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function r(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e){return void 0===e}function a(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function s(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function l(e,t){var n,i=[];for(n=0;n<e.length;++n)i.push(t(e[n],n));return i}function u(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function c(e,t){for(var n in t)u(t,n)&&(e[n]=t[n]);return u(t,"toString")&&(e.toString=t.toString),u(t,"valueOf")&&(e.valueOf=t.valueOf),e}function d(e,t,n,i){return St(e,t,n,i,!0).utc()}function h(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function f(e){if(null==e._isValid){var n=h(e),i=t.call(n.parsedDateParts,(function(e){return null!=e})),r=!isNaN(e._d.getTime())&&n.overflow<0&&!n.empty&&!n.invalidMonth&&!n.invalidWeekday&&!n.weekdayMismatch&&!n.nullInput&&!n.invalidFormat&&!n.userInvalidated&&(!n.meridiem||n.meridiem&&i);if(e._strict&&(r=r&&0===n.charsLeftOver&&0===n.unusedTokens.length&&void 0===n.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return r;e._isValid=r}return e._isValid}function p(e){var t=d(NaN);return null!=e?c(h(t),e):h(t).userInvalidated=!0,t}t=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,i=0;i<n;i++)if(i in t&&e.call(this,t[i],i,t))return!0;return!1};var m=n.momentProperties=[];function g(e,t){var n,i,r;if(o(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),o(t._i)||(e._i=t._i),o(t._f)||(e._f=t._f),o(t._l)||(e._l=t._l),o(t._strict)||(e._strict=t._strict),o(t._tzm)||(e._tzm=t._tzm),o(t._isUTC)||(e._isUTC=t._isUTC),o(t._offset)||(e._offset=t._offset),o(t._pf)||(e._pf=h(t)),o(t._locale)||(e._locale=t._locale),0<m.length)for(n=0;n<m.length;n++)o(r=t[i=m[n]])||(e[i]=r);return e}var v=!1;function _(e){g(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===v&&(v=!0,n.updateOffset(this),v=!1)}function y(e){return e instanceof _||null!=e&&null!=e._isAMomentObject}function b(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function w(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=b(t)),n}function L(e,t,n){var i,r=Math.min(e.length,t.length),o=Math.abs(e.length-t.length),a=0;for(i=0;i<r;i++)(n&&e[i]!==t[i]||!n&&w(e[i])!==w(t[i]))&&a++;return a+o}function M(e){!1===n.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function k(e,t){var i=!0;return c((function(){if(null!=n.deprecationHandler&&n.deprecationHandler(null,e),i){for(var r,o=[],a=0;a<arguments.length;a++){if(r="","object"==typeof arguments[a]){for(var s in r+="\n["+a+"] ",arguments[0])r+=s+": "+arguments[0][s]+", ";r=r.slice(0,-2)}else r=arguments[a];o.push(r)}M(e+"\nArguments: "+Array.prototype.slice.call(o).join("")+"\n"+(new Error).stack),i=!1}return t.apply(this,arguments)}),t)}var x,S={};function T(e,t){null!=n.deprecationHandler&&n.deprecationHandler(e,t),S[e]||(M(t),S[e]=!0)}function $(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function D(e,t){var n,i=c({},e);for(n in t)u(t,n)&&(r(e[n])&&r(t[n])?(i[n]={},c(i[n],e[n]),c(i[n],t[n])):null!=t[n]?i[n]=t[n]:delete i[n]);for(n in e)u(e,n)&&!u(t,n)&&r(e[n])&&(i[n]=c({},i[n]));return i}function C(e){null!=e&&this.set(e)}n.suppressDeprecationWarnings=!1,n.deprecationHandler=null,x=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)u(e,t)&&n.push(t);return n};var E={};function A(e,t){var n=e.toLowerCase();E[n]=E[n+"s"]=E[t]=e}function P(e){return"string"==typeof e?E[e]||E[e.toLowerCase()]:void 0}function Y(e){var t,n,i={};for(n in e)u(e,n)&&(t=P(n))&&(i[t]=e[n]);return i}var O={};function I(e,t){O[e]=t}function j(e,t,n){var i=""+Math.abs(e),r=t-i.length;return(0<=e?n?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+i}var H=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,B=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,N={},R={};function F(e,t,n,i){var r=i;"string"==typeof i&&(r=function(){return this[i]()}),e&&(R[e]=r),t&&(R[t[0]]=function(){return j(r.apply(this,arguments),t[1],t[2])}),n&&(R[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),e)})}function z(e,t){return e.isValid()?(t=V(t,e.localeData()),N[t]=N[t]||function(e){var t,n,i,r=e.match(H);for(t=0,n=r.length;t<n;t++)R[r[t]]?r[t]=R[r[t]]:r[t]=(i=r[t]).match(/\[[\s\S]/)?i.replace(/^\[|\]$/g,""):i.replace(/\\/g,"");return function(t){var i,o="";for(i=0;i<n;i++)o+=$(r[i])?r[i].call(t,e):r[i];return o}}(t),N[t](e)):e.localeData().invalidDate()}function V(e,t){var n=5;function i(e){return t.longDateFormat(e)||e}for(B.lastIndex=0;0<=n&&B.test(e);)e=e.replace(B,i),B.lastIndex=0,n-=1;return e}var U=/\d/,W=/\d\d/,q=/\d{3}/,G=/\d{4}/,Z=/[+-]?\d{6}/,J=/\d\d?/,X=/\d\d\d\d?/,K=/\d\d\d\d\d\d?/,Q=/\d{1,3}/,ee=/\d{1,4}/,te=/[+-]?\d{1,6}/,ne=/\d+/,ie=/[+-]?\d+/,re=/Z|[+-]\d\d:?\d\d/gi,oe=/Z|[+-]\d\d(?::?\d\d)?/gi,ae=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,se={};function le(e,t,n){se[e]=$(t)?t:function(e,i){return e&&n?n:t}}function ue(e,t){return u(se,e)?se[e](t._strict,t._locale):new RegExp(ce(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,i,r){return t||n||i||r}))))}function ce(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var de={};function he(e,t){var n,i=t;for("string"==typeof e&&(e=[e]),a(t)&&(i=function(e,n){n[t]=w(e)}),n=0;n<e.length;n++)de[e[n]]=i}function fe(e,t){he(e,(function(e,n,i,r){i._w=i._w||{},t(e,i._w,i,r)}))}var pe=0,me=1,ge=2,ve=3,_e=4,ye=5,be=6,we=7,Le=8;function Me(e){return ke(e)?366:365}function ke(e){return e%4==0&&e%100!=0||e%400==0}F("Y",0,0,(function(){var e=this.year();return e<=9999?""+e:"+"+e})),F(0,["YY",2],0,(function(){return this.year()%100})),F(0,["YYYY",4],0,"year"),F(0,["YYYYY",5],0,"year"),F(0,["YYYYYY",6,!0],0,"year"),A("year","y"),I("year",1),le("Y",ie),le("YY",J,W),le("YYYY",ee,G),le("YYYYY",te,Z),le("YYYYYY",te,Z),he(["YYYYY","YYYYYY"],pe),he("YYYY",(function(e,t){t[pe]=2===e.length?n.parseTwoDigitYear(e):w(e)})),he("YY",(function(e,t){t[pe]=n.parseTwoDigitYear(e)})),he("Y",(function(e,t){t[pe]=parseInt(e,10)})),n.parseTwoDigitYear=function(e){return w(e)+(68<w(e)?1900:2e3)};var xe,Se=Te("FullYear",!0);function Te(e,t){return function(i){return null!=i?(De(this,e,i),n.updateOffset(this,t),this):$e(this,e)}}function $e(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function De(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&ke(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Ce(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function Ce(e,t){if(isNaN(e)||isNaN(t))return NaN;var n=(t%12+12)%12;return e+=(t-n)/12,1===n?ke(e)?29:28:31-n%7%2}xe=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},F("M",["MM",2],"Mo",(function(){return this.month()+1})),F("MMM",0,0,(function(e){return this.localeData().monthsShort(this,e)})),F("MMMM",0,0,(function(e){return this.localeData().months(this,e)})),A("month","M"),I("month",8),le("M",J),le("MM",J,W),le("MMM",(function(e,t){return t.monthsShortRegex(e)})),le("MMMM",(function(e,t){return t.monthsRegex(e)})),he(["M","MM"],(function(e,t){t[me]=w(e)-1})),he(["MMM","MMMM"],(function(e,t,n,i){var r=n._locale.monthsParse(e,i,n._strict);null!=r?t[me]=r:h(n).invalidMonth=e}));var Ee=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Ae="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Pe="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Ye(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=w(t);else if(!a(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),Ce(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function Oe(e){return null!=e?(Ye(this,e),n.updateOffset(this,!0),this):$e(this,"Month")}var Ie=ae,je=ae;function He(){function e(e,t){return t.length-e.length}var t,n,i=[],r=[],o=[];for(t=0;t<12;t++)n=d([2e3,t]),i.push(this.monthsShort(n,"")),r.push(this.months(n,"")),o.push(this.months(n,"")),o.push(this.monthsShort(n,""));for(i.sort(e),r.sort(e),o.sort(e),t=0;t<12;t++)i[t]=ce(i[t]),r[t]=ce(r[t]);for(t=0;t<24;t++)o[t]=ce(o[t]);this._monthsRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+i.join("|")+")","i")}function Be(e){var t;if(e<100&&0<=e){var n=Array.prototype.slice.call(arguments);n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function Ne(e,t,n){var i=7+t-n;return-(7+Be(e,0,i).getUTCDay()-t)%7+i-1}function Re(e,t,n,i,r){var o,a,s=1+7*(t-1)+(7+n-i)%7+Ne(e,i,r);return a=s<=0?Me(o=e-1)+s:s>Me(e)?(o=e+1,s-Me(e)):(o=e,s),{year:o,dayOfYear:a}}function Fe(e,t,n){var i,r,o=Ne(e.year(),t,n),a=Math.floor((e.dayOfYear()-o-1)/7)+1;return a<1?i=a+ze(r=e.year()-1,t,n):a>ze(e.year(),t,n)?(i=a-ze(e.year(),t,n),r=e.year()+1):(r=e.year(),i=a),{week:i,year:r}}function ze(e,t,n){var i=Ne(e,t,n),r=Ne(e+1,t,n);return(Me(e)-i+r)/7}function Ve(e,t){return e.slice(t,7).concat(e.slice(0,t))}F("w",["ww",2],"wo","week"),F("W",["WW",2],"Wo","isoWeek"),A("week","w"),A("isoWeek","W"),I("week",5),I("isoWeek",5),le("w",J),le("ww",J,W),le("W",J),le("WW",J,W),fe(["w","ww","W","WW"],(function(e,t,n,i){t[i.substr(0,1)]=w(e)})),F("d",0,"do","day"),F("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),F("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),F("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),F("e",0,0,"weekday"),F("E",0,0,"isoWeekday"),A("day","d"),A("weekday","e"),A("isoWeekday","E"),I("day",11),I("weekday",11),I("isoWeekday",11),le("d",J),le("e",J),le("E",J),le("dd",(function(e,t){return t.weekdaysMinRegex(e)})),le("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),le("dddd",(function(e,t){return t.weekdaysRegex(e)})),fe(["dd","ddd","dddd"],(function(e,t,n,i){var r=n._locale.weekdaysParse(e,i,n._strict);null!=r?t.d=r:h(n).invalidWeekday=e})),fe(["d","e","E"],(function(e,t,n,i){t[i]=w(e)}));var Ue="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),We="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),qe="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ge=ae,Ze=ae,Je=ae;function Xe(){function e(e,t){return t.length-e.length}var t,n,i,r,o,a=[],s=[],l=[],u=[];for(t=0;t<7;t++)n=d([2e3,1]).day(t),i=this.weekdaysMin(n,""),r=this.weekdaysShort(n,""),o=this.weekdays(n,""),a.push(i),s.push(r),l.push(o),u.push(i),u.push(r),u.push(o);for(a.sort(e),s.sort(e),l.sort(e),u.sort(e),t=0;t<7;t++)s[t]=ce(s[t]),l[t]=ce(l[t]),u[t]=ce(u[t]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Ke(){return this.hours()%12||12}function Qe(e,t){F(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function et(e,t){return t._meridiemParse}F("H",["HH",2],0,"hour"),F("h",["hh",2],0,Ke),F("k",["kk",2],0,(function(){return this.hours()||24})),F("hmm",0,0,(function(){return""+Ke.apply(this)+j(this.minutes(),2)})),F("hmmss",0,0,(function(){return""+Ke.apply(this)+j(this.minutes(),2)+j(this.seconds(),2)})),F("Hmm",0,0,(function(){return""+this.hours()+j(this.minutes(),2)})),F("Hmmss",0,0,(function(){return""+this.hours()+j(this.minutes(),2)+j(this.seconds(),2)})),Qe("a",!0),Qe("A",!1),A("hour","h"),I("hour",13),le("a",et),le("A",et),le("H",J),le("h",J),le("k",J),le("HH",J,W),le("hh",J,W),le("kk",J,W),le("hmm",X),le("hmmss",K),le("Hmm",X),le("Hmmss",K),he(["H","HH"],ve),he(["k","kk"],(function(e,t,n){var i=w(e);t[ve]=24===i?0:i})),he(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),he(["h","hh"],(function(e,t,n){t[ve]=w(e),h(n).bigHour=!0})),he("hmm",(function(e,t,n){var i=e.length-2;t[ve]=w(e.substr(0,i)),t[_e]=w(e.substr(i)),h(n).bigHour=!0})),he("hmmss",(function(e,t,n){var i=e.length-4,r=e.length-2;t[ve]=w(e.substr(0,i)),t[_e]=w(e.substr(i,2)),t[ye]=w(e.substr(r)),h(n).bigHour=!0})),he("Hmm",(function(e,t,n){var i=e.length-2;t[ve]=w(e.substr(0,i)),t[_e]=w(e.substr(i))})),he("Hmmss",(function(e,t,n){var i=e.length-4,r=e.length-2;t[ve]=w(e.substr(0,i)),t[_e]=w(e.substr(i,2)),t[ye]=w(e.substr(r))}));var tt,nt=Te("Hours",!0),it={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ae,monthsShort:Pe,week:{dow:0,doy:6},weekdays:Ue,weekdaysMin:qe,weekdaysShort:We,meridiemParse:/[ap]\.?m?\.?/i},rt={},ot={};function at(e){return e?e.toLowerCase().replace("_","-"):e}function st(e){var t=null;if(!rt[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=tt._abbr,require("./locale/"+e),lt(t)}catch(e){}return rt[e]}function lt(e,t){var n;return e&&((n=o(t)?ct(e):ut(e,t))?tt=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),tt._abbr}function ut(e,t){if(null===t)return delete rt[e],null;var n,i=it;if(t.abbr=e,null!=rt[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=rt[e]._config;else if(null!=t.parentLocale)if(null!=rt[t.parentLocale])i=rt[t.parentLocale]._config;else{if(null==(n=st(t.parentLocale)))return ot[t.parentLocale]||(ot[t.parentLocale]=[]),ot[t.parentLocale].push({name:e,config:t}),null;i=n._config}return rt[e]=new C(D(i,t)),ot[e]&&ot[e].forEach((function(e){ut(e.name,e.config)})),lt(e),rt[e]}function ct(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return tt;if(!i(e)){if(t=st(e))return t;e=[e]}return function(e){for(var t,n,i,r,o=0;o<e.length;){for(t=(r=at(e[o]).split("-")).length,n=(n=at(e[o+1]))?n.split("-"):null;0<t;){if(i=st(r.slice(0,t).join("-")))return i;if(n&&n.length>=t&&L(r,n,!0)>=t-1)break;t--}o++}return tt}(e)}function dt(e){var t,n=e._a;return n&&-2===h(e).overflow&&(t=n[me]<0||11<n[me]?me:n[ge]<1||n[ge]>Ce(n[pe],n[me])?ge:n[ve]<0||24<n[ve]||24===n[ve]&&(0!==n[_e]||0!==n[ye]||0!==n[be])?ve:n[_e]<0||59<n[_e]?_e:n[ye]<0||59<n[ye]?ye:n[be]<0||999<n[be]?be:-1,h(e)._overflowDayOfYear&&(t<pe||ge<t)&&(t=ge),h(e)._overflowWeeks&&-1===t&&(t=we),h(e)._overflowWeekday&&-1===t&&(t=Le),h(e).overflow=t),e}function ht(e,t,n){return null!=e?e:null!=t?t:n}function ft(e){var t,i,r,o,a,s=[];if(!e._d){var l,u;for(l=e,u=new Date(n.now()),r=l._useUTC?[u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate()]:[u.getFullYear(),u.getMonth(),u.getDate()],e._w&&null==e._a[ge]&&null==e._a[me]&&function(e){var t,n,i,r,o,a,s,l;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)o=1,a=4,n=ht(t.GG,e._a[pe],Fe(Tt(),1,4).year),i=ht(t.W,1),((r=ht(t.E,1))<1||7<r)&&(l=!0);else{o=e._locale._week.dow,a=e._locale._week.doy;var u=Fe(Tt(),o,a);n=ht(t.gg,e._a[pe],u.year),i=ht(t.w,u.week),null!=t.d?((r=t.d)<0||6<r)&&(l=!0):null!=t.e?(r=t.e+o,(t.e<0||6<t.e)&&(l=!0)):r=o}i<1||i>ze(n,o,a)?h(e)._overflowWeeks=!0:null!=l?h(e)._overflowWeekday=!0:(s=Re(n,i,r,o,a),e._a[pe]=s.year,e._dayOfYear=s.dayOfYear)}(e),null!=e._dayOfYear&&(a=ht(e._a[pe],r[pe]),(e._dayOfYear>Me(a)||0===e._dayOfYear)&&(h(e)._overflowDayOfYear=!0),i=Be(a,0,e._dayOfYear),e._a[me]=i.getUTCMonth(),e._a[ge]=i.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=s[t]=r[t];for(;t<7;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ve]&&0===e._a[_e]&&0===e._a[ye]&&0===e._a[be]&&(e._nextDay=!0,e._a[ve]=0),e._d=(e._useUTC?Be:function(e,t,n,i,r,o,a){var s;return e<100&&0<=e?(s=new Date(e+400,t,n,i,r,o,a),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,n,i,r,o,a),s}).apply(null,s),o=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ve]=24),e._w&&void 0!==e._w.d&&e._w.d!==o&&(h(e).weekdayMismatch=!0)}}var pt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,mt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,gt=/Z|[+-]\d\d(?::?\d\d)?/,vt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],_t=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],yt=/^\/?Date\((\-?\d+)/i;function bt(e){var t,n,i,r,o,a,s=e._i,l=pt.exec(s)||mt.exec(s);if(l){for(h(e).iso=!0,t=0,n=vt.length;t<n;t++)if(vt[t][1].exec(l[1])){r=vt[t][0],i=!1!==vt[t][2];break}if(null==r)return void(e._isValid=!1);if(l[3]){for(t=0,n=_t.length;t<n;t++)if(_t[t][1].exec(l[3])){o=(l[2]||" ")+_t[t][0];break}if(null==o)return void(e._isValid=!1)}if(!i&&null!=o)return void(e._isValid=!1);if(l[4]){if(!gt.exec(l[4]))return void(e._isValid=!1);a="Z"}e._f=r+(o||"")+(a||""),kt(e)}else e._isValid=!1}var wt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Lt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Mt(e){var t,n,i,r=wt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(r){var o=function(e,t,n,i,r,o){var a=[function(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}(e),Pe.indexOf(t),parseInt(n,10),parseInt(i,10),parseInt(r,10)];return o&&a.push(parseInt(o,10)),a}(r[4],r[3],r[2],r[5],r[6],r[7]);if(n=o,i=e,(t=r[1])&&We.indexOf(t)!==new Date(n[0],n[1],n[2]).getDay()&&(h(i).weekdayMismatch=!0,!(i._isValid=!1)))return;e._a=o,e._tzm=function(e,t,n){if(e)return Lt[e];if(t)return 0;var i=parseInt(n,10),r=i%100;return(i-r)/100*60+r}(r[8],r[9],r[10]),e._d=Be.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),h(e).rfc2822=!0}else e._isValid=!1}function kt(e){if(e._f!==n.ISO_8601)if(e._f!==n.RFC_2822){e._a=[],h(e).empty=!0;var t,i,r,o,a,s,l,c,d=""+e._i,f=d.length,p=0;for(r=V(e._f,e._locale).match(H)||[],t=0;t<r.length;t++)o=r[t],(i=(d.match(ue(o,e))||[])[0])&&(0<(a=d.substr(0,d.indexOf(i))).length&&h(e).unusedInput.push(a),d=d.slice(d.indexOf(i)+i.length),p+=i.length),R[o]?(i?h(e).empty=!1:h(e).unusedTokens.push(o),s=o,c=e,null!=(l=i)&&u(de,s)&&de[s](l,c._a,c,s)):e._strict&&!i&&h(e).unusedTokens.push(o);h(e).charsLeftOver=f-p,0<d.length&&h(e).unusedInput.push(d),e._a[ve]<=12&&!0===h(e).bigHour&&0<e._a[ve]&&(h(e).bigHour=void 0),h(e).parsedDateParts=e._a.slice(0),h(e).meridiem=e._meridiem,e._a[ve]=function(e,t,n){var i;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):(null!=e.isPM&&((i=e.isPM(n))&&t<12&&(t+=12),i||12!==t||(t=0)),t)}(e._locale,e._a[ve],e._meridiem),ft(e),dt(e)}else Mt(e);else bt(e)}function xt(e){var t,u,d,m,v=e._i,b=e._f;return e._locale=e._locale||ct(e._l),null===v||void 0===b&&""===v?p({nullInput:!0}):("string"==typeof v&&(e._i=v=e._locale.preparse(v)),y(v)?new _(dt(v)):(s(v)?e._d=v:i(b)?function(e){var t,n,i,r,o;if(0===e._f.length)return h(e).invalidFormat=!0,e._d=new Date(NaN);for(r=0;r<e._f.length;r++)o=0,t=g({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[r],kt(t),f(t)&&(o+=h(t).charsLeftOver,o+=10*h(t).unusedTokens.length,h(t).score=o,(null==i||o<i)&&(i=o,n=t));c(e,n||t)}(e):b?kt(e):o(u=(t=e)._i)?t._d=new Date(n.now()):s(u)?t._d=new Date(u.valueOf()):"string"==typeof u?(d=t,null===(m=yt.exec(d._i))?(bt(d),!1===d._isValid&&(delete d._isValid,Mt(d),!1===d._isValid&&(delete d._isValid,n.createFromInputFallback(d)))):d._d=new Date(+m[1])):i(u)?(t._a=l(u.slice(0),(function(e){return parseInt(e,10)})),ft(t)):r(u)?function(e){if(!e._d){var t=Y(e._i);e._a=l([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],(function(e){return e&&parseInt(e,10)})),ft(e)}}(t):a(u)?t._d=new Date(u):n.createFromInputFallback(t),f(e)||(e._d=null),e))}function St(e,t,n,o,a){var s,l={};return!0!==n&&!1!==n||(o=n,n=void 0),(r(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||i(e)&&0===e.length)&&(e=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=a,l._l=n,l._i=e,l._f=t,l._strict=o,(s=new _(dt(xt(l))))._nextDay&&(s.add(1,"d"),s._nextDay=void 0),s}function Tt(e,t,n,i){return St(e,t,n,i,!1)}n.createFromInputFallback=k("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))})),n.ISO_8601=function(){},n.RFC_2822=function(){};var $t=k("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:p()})),Dt=k("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:p()}));function Ct(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return Tt();for(n=t[0],r=1;r<t.length;++r)t[r].isValid()&&!t[r][e](n)||(n=t[r]);return n}var Et=["year","quarter","month","week","day","hour","minute","second","millisecond"];function At(e){var t=Y(e),n=t.year||0,i=t.quarter||0,r=t.month||0,o=t.week||t.isoWeek||0,a=t.day||0,s=t.hour||0,l=t.minute||0,u=t.second||0,c=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===xe.call(Et,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,i=0;i<Et.length;++i)if(e[Et[i]]){if(n)return!1;parseFloat(e[Et[i]])!==w(e[Et[i]])&&(n=!0)}return!0}(t),this._milliseconds=+c+1e3*u+6e4*l+1e3*s*60*60,this._days=+a+7*o,this._months=+r+3*i+12*n,this._data={},this._locale=ct(),this._bubble()}function Pt(e){return e instanceof At}function Yt(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Ot(e,t){F(e,0,0,(function(){var e=this.utcOffset(),n="+";return e<0&&(e=-e,n="-"),n+j(~~(e/60),2)+t+j(~~e%60,2)}))}Ot("Z",":"),Ot("ZZ",""),le("Z",oe),le("ZZ",oe),he(["Z","ZZ"],(function(e,t,n){n._useUTC=!0,n._tzm=jt(oe,e)}));var It=/([\+\-]|\d\d)/gi;function jt(e,t){var n=(t||"").match(e);if(null===n)return null;var i=((n[n.length-1]||[])+"").match(It)||["-",0,0],r=60*i[1]+w(i[2]);return 0===r?0:"+"===i[0]?r:-r}function Ht(e,t){var i,r;return t._isUTC?(i=t.clone(),r=(y(e)||s(e)?e.valueOf():Tt(e).valueOf())-i.valueOf(),i._d.setTime(i._d.valueOf()+r),n.updateOffset(i,!1),i):Tt(e).local()}function Bt(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Nt(){return!!this.isValid()&&this._isUTC&&0===this._offset}n.updateOffset=function(){};var Rt=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ft=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function zt(e,t){var n,i,r,o=e,s=null;return Pt(e)?o={ms:e._milliseconds,d:e._days,M:e._months}:a(e)?(o={},t?o[t]=e:o.milliseconds=e):(s=Rt.exec(e))?(n="-"===s[1]?-1:1,o={y:0,d:w(s[ge])*n,h:w(s[ve])*n,m:w(s[_e])*n,s:w(s[ye])*n,ms:w(Yt(1e3*s[be]))*n}):(s=Ft.exec(e))?(n="-"===s[1]?-1:1,o={y:Vt(s[2],n),M:Vt(s[3],n),w:Vt(s[4],n),d:Vt(s[5],n),h:Vt(s[6],n),m:Vt(s[7],n),s:Vt(s[8],n)}):null==o?o={}:"object"==typeof o&&("from"in o||"to"in o)&&(r=function(e,t){var n;return e.isValid()&&t.isValid()?(t=Ht(t,e),e.isBefore(t)?n=Ut(e,t):((n=Ut(t,e)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}(Tt(o.from),Tt(o.to)),(o={}).ms=r.milliseconds,o.M=r.months),i=new At(o),Pt(e)&&u(e,"_locale")&&(i._locale=e._locale),i}function Vt(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Ut(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Wt(e,t){return function(n,i){var r;return null===i||isNaN(+i)||(T(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),r=n,n=i,i=r),qt(this,zt(n="string"==typeof n?+n:n,i),e),this}}function qt(e,t,i,r){var o=t._milliseconds,a=Yt(t._days),s=Yt(t._months);e.isValid()&&(r=null==r||r,s&&Ye(e,$e(e,"Month")+s*i),a&&De(e,"Date",$e(e,"Date")+a*i),o&&e._d.setTime(e._d.valueOf()+o*i),r&&n.updateOffset(e,a||s))}zt.fn=At.prototype,zt.invalid=function(){return zt(NaN)};var Gt=Wt(1,"add"),Zt=Wt(-1,"subtract");function Jt(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),i=e.clone().add(n,"months");return-(n+(t-i<0?(t-i)/(i-e.clone().add(n-1,"months")):(t-i)/(e.clone().add(n+1,"months")-i)))||0}function Xt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ct(e))&&(this._locale=t),this)}n.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",n.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Kt=k("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function Qt(){return this._locale}var en=126227808e5;function tn(e,t){return(e%t+t)%t}function nn(e,t,n){return e<100&&0<=e?new Date(e+400,t,n)-en:new Date(e,t,n).valueOf()}function rn(e,t,n){return e<100&&0<=e?Date.UTC(e+400,t,n)-en:Date.UTC(e,t,n)}function on(e,t){F(0,[e,e.length],0,t)}function an(e,t,n,i,r){var o;return null==e?Fe(this,i,r).year:((o=ze(e,i,r))<t&&(t=o),function(e,t,n,i,r){var o=Re(e,t,n,i,r),a=Be(o.year,0,o.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,i,r))}F(0,["gg",2],0,(function(){return this.weekYear()%100})),F(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),on("gggg","weekYear"),on("ggggg","weekYear"),on("GGGG","isoWeekYear"),on("GGGGG","isoWeekYear"),A("weekYear","gg"),A("isoWeekYear","GG"),I("weekYear",1),I("isoWeekYear",1),le("G",ie),le("g",ie),le("GG",J,W),le("gg",J,W),le("GGGG",ee,G),le("gggg",ee,G),le("GGGGG",te,Z),le("ggggg",te,Z),fe(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,i){t[i.substr(0,2)]=w(e)})),fe(["gg","GG"],(function(e,t,i,r){t[r]=n.parseTwoDigitYear(e)})),F("Q",0,"Qo","quarter"),A("quarter","Q"),I("quarter",7),le("Q",U),he("Q",(function(e,t){t[me]=3*(w(e)-1)})),F("D",["DD",2],"Do","date"),A("date","D"),I("date",9),le("D",J),le("DD",J,W),le("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),he(["D","DD"],ge),he("Do",(function(e,t){t[ge]=w(e.match(J)[0])}));var sn=Te("Date",!0);F("DDD",["DDDD",3],"DDDo","dayOfYear"),A("dayOfYear","DDD"),I("dayOfYear",4),le("DDD",Q),le("DDDD",q),he(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=w(e)})),F("m",["mm",2],0,"minute"),A("minute","m"),I("minute",14),le("m",J),le("mm",J,W),he(["m","mm"],_e);var ln=Te("Minutes",!1);F("s",["ss",2],0,"second"),A("second","s"),I("second",15),le("s",J),le("ss",J,W),he(["s","ss"],ye);var un,cn=Te("Seconds",!1);for(F("S",0,0,(function(){return~~(this.millisecond()/100)})),F(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),F(0,["SSS",3],0,"millisecond"),F(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),F(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),F(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),F(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),F(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),F(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),A("millisecond","ms"),I("millisecond",16),le("S",Q,U),le("SS",Q,W),le("SSS",Q,q),un="SSSS";un.length<=9;un+="S")le(un,ne);function dn(e,t){t[be]=w(1e3*("0."+e))}for(un="S";un.length<=9;un+="S")he(un,dn);var hn=Te("Milliseconds",!1);F("z",0,0,"zoneAbbr"),F("zz",0,0,"zoneName");var fn=_.prototype;function pn(e){return e}fn.add=Gt,fn.calendar=function(e,t){var i=e||Tt(),r=Ht(i,this).startOf("day"),o=n.calendarFormat(this,r)||"sameElse",a=t&&($(t[o])?t[o].call(this,i):t[o]);return this.format(a||this.localeData().calendar(o,this,Tt(i)))},fn.clone=function(){return new _(this)},fn.diff=function(e,t,n){var i,r,o;if(!this.isValid())return NaN;if(!(i=Ht(e,this)).isValid())return NaN;switch(r=6e4*(i.utcOffset()-this.utcOffset()),t=P(t)){case"year":o=Jt(this,i)/12;break;case"month":o=Jt(this,i);break;case"quarter":o=Jt(this,i)/3;break;case"second":o=(this-i)/1e3;break;case"minute":o=(this-i)/6e4;break;case"hour":o=(this-i)/36e5;break;case"day":o=(this-i-r)/864e5;break;case"week":o=(this-i-r)/6048e5;break;default:o=this-i}return n?o:b(o)},fn.endOf=function(e){var t;if(void 0===(e=P(e))||"millisecond"===e||!this.isValid())return this;var i=this._isUTC?rn:nn;switch(e){case"year":t=i(this.year()+1,0,1)-1;break;case"quarter":t=i(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=i(this.year(),this.month()+1,1)-1;break;case"week":t=i(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=i(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-tn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-tn(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-tn(t,1e3)-1}return this._d.setTime(t),n.updateOffset(this,!0),this},fn.format=function(e){e||(e=this.isUtc()?n.defaultFormatUtc:n.defaultFormat);var t=z(this,e);return this.localeData().postformat(t)},fn.from=function(e,t){return this.isValid()&&(y(e)&&e.isValid()||Tt(e).isValid())?zt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},fn.fromNow=function(e){return this.from(Tt(),e)},fn.to=function(e,t){return this.isValid()&&(y(e)&&e.isValid()||Tt(e).isValid())?zt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},fn.toNow=function(e){return this.to(Tt(),e)},fn.get=function(e){return $(this[e=P(e)])?this[e]():this},fn.invalidAt=function(){return h(this).overflow},fn.isAfter=function(e,t){var n=y(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=P(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},fn.isBefore=function(e,t){var n=y(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=P(t)||"millisecond")?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},fn.isBetween=function(e,t,n,i){var r=y(e)?e:Tt(e),o=y(t)?t:Tt(t);return!!(this.isValid()&&r.isValid()&&o.isValid())&&("("===(i=i||"()")[0]?this.isAfter(r,n):!this.isBefore(r,n))&&(")"===i[1]?this.isBefore(o,n):!this.isAfter(o,n))},fn.isSame=function(e,t){var n,i=y(e)?e:Tt(e);return!(!this.isValid()||!i.isValid())&&("millisecond"===(t=P(t)||"millisecond")?this.valueOf()===i.valueOf():(n=i.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},fn.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},fn.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},fn.isValid=function(){return f(this)},fn.lang=Kt,fn.locale=Xt,fn.localeData=Qt,fn.max=Dt,fn.min=$t,fn.parsingFlags=function(){return c({},h(this))},fn.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:O[n]});return t.sort((function(e,t){return e.priority-t.priority})),t}(e=Y(e)),i=0;i<n.length;i++)this[n[i].unit](e[n[i].unit]);else if($(this[e=P(e)]))return this[e](t);return this},fn.startOf=function(e){var t;if(void 0===(e=P(e))||"millisecond"===e||!this.isValid())return this;var i=this._isUTC?rn:nn;switch(e){case"year":t=i(this.year(),0,1);break;case"quarter":t=i(this.year(),this.month()-this.month()%3,1);break;case"month":t=i(this.year(),this.month(),1);break;case"week":t=i(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=i(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=tn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":t=this._d.valueOf(),t-=tn(t,6e4);break;case"second":t=this._d.valueOf(),t-=tn(t,1e3)}return this._d.setTime(t),n.updateOffset(this,!0),this},fn.subtract=Zt,fn.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},fn.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},fn.toDate=function(){return new Date(this.valueOf())},fn.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||9999<n.year()?z(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):$(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",z(n,"Z")):z(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},fn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",r=t+'[")]';return this.format(n+i+"-MM-DD[T]HH:mm:ss.SSS"+r)},fn.toJSON=function(){return this.isValid()?this.toISOString():null},fn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},fn.unix=function(){return Math.floor(this.valueOf()/1e3)},fn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},fn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},fn.year=Se,fn.isLeapYear=function(){return ke(this.year())},fn.weekYear=function(e){return an.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},fn.isoWeekYear=function(e){return an.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},fn.quarter=fn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},fn.month=Oe,fn.daysInMonth=function(){return Ce(this.year(),this.month())},fn.week=fn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},fn.isoWeek=fn.isoWeeks=function(e){var t=Fe(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},fn.weeksInYear=function(){var e=this.localeData()._week;return ze(this.year(),e.dow,e.doy)},fn.isoWeeksInYear=function(){return ze(this.year(),1,4)},fn.date=sn,fn.day=fn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t,n,i=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(t=e,n=this.localeData(),e="string"!=typeof t?t:isNaN(t)?"number"==typeof(t=n.weekdaysParse(t))?t:null:parseInt(t,10),this.add(e-i,"d")):i},fn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},fn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var t,n,i=(t=e,n=this.localeData(),"string"==typeof t?n.weekdaysParse(t)%7||7:isNaN(t)?null:t);return this.day(this.day()%7?i:i-7)},fn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},fn.hour=fn.hours=nt,fn.minute=fn.minutes=ln,fn.second=fn.seconds=cn,fn.millisecond=fn.milliseconds=hn,fn.utcOffset=function(e,t,i){var r,o=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null==e)return this._isUTC?o:Bt(this);if("string"==typeof e){if(null===(e=jt(oe,e)))return this}else Math.abs(e)<16&&!i&&(e*=60);return!this._isUTC&&t&&(r=Bt(this)),this._offset=e,this._isUTC=!0,null!=r&&this.add(r,"m"),o!==e&&(!t||this._changeInProgress?qt(this,zt(e-o,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,n.updateOffset(this,!0),this._changeInProgress=null)),this},fn.utc=function(e){return this.utcOffset(0,e)},fn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Bt(this),"m")),this},fn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=jt(re,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},fn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Tt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},fn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},fn.isLocal=function(){return!!this.isValid()&&!this._isUTC},fn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},fn.isUtc=Nt,fn.isUTC=Nt,fn.zoneAbbr=function(){return this._isUTC?"UTC":""},fn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},fn.dates=k("dates accessor is deprecated. Use date instead.",sn),fn.months=k("months accessor is deprecated. Use month instead",Oe),fn.years=k("years accessor is deprecated. Use year instead",Se),fn.zone=k("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),fn.isDSTShifted=k("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var e={};if(g(e,this),(e=xt(e))._a){var t=e._isUTC?d(e._a):Tt(e._a);this._isDSTShifted=this.isValid()&&0<L(e._a,t.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted}));var mn=C.prototype;function gn(e,t,n,i){var r=ct(),o=d().set(i,t);return r[n](o,e)}function vn(e,t,n){if(a(e)&&(t=e,e=void 0),e=e||"",null!=t)return gn(e,t,n,"month");var i,r=[];for(i=0;i<12;i++)r[i]=gn(e,i,n,"month");return r}function _n(e,t,n,i){"boolean"==typeof e?a(t)&&(n=t,t=void 0):(t=e,e=!1,a(n=t)&&(n=t,t=void 0)),t=t||"";var r,o=ct(),s=e?o._week.dow:0;if(null!=n)return gn(t,(n+s)%7,i,"day");var l=[];for(r=0;r<7;r++)l[r]=gn(t,(r+s)%7,i,"day");return l}mn.calendar=function(e,t,n){var i=this._calendar[e]||this._calendar.sameElse;return $(i)?i.call(t,n):i},mn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,(function(e){return e.slice(1)})),this._longDateFormat[e])},mn.invalidDate=function(){return this._invalidDate},mn.ordinal=function(e){return this._ordinal.replace("%d",e)},mn.preparse=pn,mn.postformat=pn,mn.relativeTime=function(e,t,n,i){var r=this._relativeTime[n];return $(r)?r(e,t,n,i):r.replace(/%d/i,e)},mn.pastFuture=function(e,t){var n=this._relativeTime[0<e?"future":"past"];return $(n)?n(t):n.replace(/%s/i,t)},mn.set=function(e){var t,n;for(n in e)$(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},mn.months=function(e,t){return e?i(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Ee).test(t)?"format":"standalone"][e.month()]:i(this._months)?this._months:this._months.standalone},mn.monthsShort=function(e,t){return e?i(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Ee.test(t)?"format":"standalone"][e.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},mn.monthsParse=function(e,t,n){var i,r,o;if(this._monthsParseExact)return function(e,t,n){var i,r,o,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;i<12;++i)o=d([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(o,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(o,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(r=xe.call(this._shortMonthsParse,a))?r:null:-1!==(r=xe.call(this._longMonthsParse,a))?r:null:"MMM"===t?-1!==(r=xe.call(this._shortMonthsParse,a))?r:-1!==(r=xe.call(this._longMonthsParse,a))?r:null:-1!==(r=xe.call(this._longMonthsParse,a))?r:-1!==(r=xe.call(this._shortMonthsParse,a))?r:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(r=d([2e3,i]),n&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(r,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(r,"").replace(".","")+"$","i")),n||this._monthsParse[i]||(o="^"+this.months(r,"")+"|^"+this.monthsShort(r,""),this._monthsParse[i]=new RegExp(o.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[i].test(e))return i;if(n&&"MMM"===t&&this._shortMonthsParse[i].test(e))return i;if(!n&&this._monthsParse[i].test(e))return i}},mn.monthsRegex=function(e){return this._monthsParseExact?(u(this,"_monthsRegex")||He.call(this),e?this._monthsStrictRegex:this._monthsRegex):(u(this,"_monthsRegex")||(this._monthsRegex=je),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},mn.monthsShortRegex=function(e){return this._monthsParseExact?(u(this,"_monthsRegex")||He.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(u(this,"_monthsShortRegex")||(this._monthsShortRegex=Ie),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},mn.week=function(e){return Fe(e,this._week.dow,this._week.doy).week},mn.firstDayOfYear=function(){return this._week.doy},mn.firstDayOfWeek=function(){return this._week.dow},mn.weekdays=function(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Ve(n,this._week.dow):e?n[e.day()]:n},mn.weekdaysMin=function(e){return!0===e?Ve(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},mn.weekdaysShort=function(e){return!0===e?Ve(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},mn.weekdaysParse=function(e,t,n){var i,r,o;if(this._weekdaysParseExact)return function(e,t,n){var i,r,o,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)o=d([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(r=xe.call(this._weekdaysParse,a))?r:null:"ddd"===t?-1!==(r=xe.call(this._shortWeekdaysParse,a))?r:null:-1!==(r=xe.call(this._minWeekdaysParse,a))?r:null:"dddd"===t?-1!==(r=xe.call(this._weekdaysParse,a))?r:-1!==(r=xe.call(this._shortWeekdaysParse,a))?r:-1!==(r=xe.call(this._minWeekdaysParse,a))?r:null:"ddd"===t?-1!==(r=xe.call(this._shortWeekdaysParse,a))?r:-1!==(r=xe.call(this._weekdaysParse,a))?r:-1!==(r=xe.call(this._minWeekdaysParse,a))?r:null:-1!==(r=xe.call(this._minWeekdaysParse,a))?r:-1!==(r=xe.call(this._weekdaysParse,a))?r:-1!==(r=xe.call(this._shortWeekdaysParse,a))?r:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(r=d([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(r,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(r,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(r,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(o="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[i]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[i].test(e))return i;if(n&&"ddd"===t&&this._shortWeekdaysParse[i].test(e))return i;if(n&&"dd"===t&&this._minWeekdaysParse[i].test(e))return i;if(!n&&this._weekdaysParse[i].test(e))return i}},mn.weekdaysRegex=function(e){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||Xe.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(u(this,"_weekdaysRegex")||(this._weekdaysRegex=Ge),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},mn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||Xe.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(u(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ze),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},mn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||Xe.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(u(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Je),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},mn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},mn.meridiem=function(e,t,n){return 11<e?n?"pm":"PM":n?"am":"AM"},lt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===w(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),n.lang=k("moment.lang is deprecated. Use moment.locale instead.",lt),n.langData=k("moment.langData is deprecated. Use moment.localeData instead.",ct);var yn=Math.abs;function bn(e,t,n,i){var r=zt(t,n);return e._milliseconds+=i*r._milliseconds,e._days+=i*r._days,e._months+=i*r._months,e._bubble()}function wn(e){return e<0?Math.floor(e):Math.ceil(e)}function Ln(e){return 4800*e/146097}function Mn(e){return 146097*e/4800}function kn(e){return function(){return this.as(e)}}var xn=kn("ms"),Sn=kn("s"),Tn=kn("m"),$n=kn("h"),Dn=kn("d"),Cn=kn("w"),En=kn("M"),An=kn("Q"),Pn=kn("y");function Yn(e){return function(){return this.isValid()?this._data[e]:NaN}}var On=Yn("milliseconds"),In=Yn("seconds"),jn=Yn("minutes"),Hn=Yn("hours"),Bn=Yn("days"),Nn=Yn("months"),Rn=Yn("years"),Fn=Math.round,zn={ss:44,s:45,m:45,h:22,d:26,M:11},Vn=Math.abs;function Un(e){return(0<e)-(e<0)||+e}function Wn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Vn(this._milliseconds)/1e3,i=Vn(this._days),r=Vn(this._months);t=b((e=b(n/60))/60),n%=60,e%=60;var o=b(r/12),a=r%=12,s=i,l=t,u=e,c=n?n.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var h=d<0?"-":"",f=Un(this._months)!==Un(d)?"-":"",p=Un(this._days)!==Un(d)?"-":"",m=Un(this._milliseconds)!==Un(d)?"-":"";return h+"P"+(o?f+o+"Y":"")+(a?f+a+"M":"")+(s?p+s+"D":"")+(l||u||c?"T":"")+(l?m+l+"H":"")+(u?m+u+"M":"")+(c?m+c+"S":"")}var qn=At.prototype;qn.isValid=function(){return this._isValid},qn.abs=function(){var e=this._data;return this._milliseconds=yn(this._milliseconds),this._days=yn(this._days),this._months=yn(this._months),e.milliseconds=yn(e.milliseconds),e.seconds=yn(e.seconds),e.minutes=yn(e.minutes),e.hours=yn(e.hours),e.months=yn(e.months),e.years=yn(e.years),this},qn.add=function(e,t){return bn(this,e,t,1)},qn.subtract=function(e,t){return bn(this,e,t,-1)},qn.as=function(e){if(!this.isValid())return NaN;var t,n,i=this._milliseconds;if("month"===(e=P(e))||"quarter"===e||"year"===e)switch(t=this._days+i/864e5,n=this._months+Ln(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Mn(this._months)),e){case"week":return t/7+i/6048e5;case"day":return t+i/864e5;case"hour":return 24*t+i/36e5;case"minute":return 1440*t+i/6e4;case"second":return 86400*t+i/1e3;case"millisecond":return Math.floor(864e5*t)+i;default:throw new Error("Unknown unit "+e)}},qn.asMilliseconds=xn,qn.asSeconds=Sn,qn.asMinutes=Tn,qn.asHours=$n,qn.asDays=Dn,qn.asWeeks=Cn,qn.asMonths=En,qn.asQuarters=An,qn.asYears=Pn,qn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12):NaN},qn._bubble=function(){var e,t,n,i,r,o=this._milliseconds,a=this._days,s=this._months,l=this._data;return 0<=o&&0<=a&&0<=s||o<=0&&a<=0&&s<=0||(o+=864e5*wn(Mn(s)+a),s=a=0),l.milliseconds=o%1e3,e=b(o/1e3),l.seconds=e%60,t=b(e/60),l.minutes=t%60,n=b(t/60),l.hours=n%24,s+=r=b(Ln(a+=b(n/24))),a-=wn(Mn(r)),i=b(s/12),s%=12,l.days=a,l.months=s,l.years=i,this},qn.clone=function(){return zt(this)},qn.get=function(e){return e=P(e),this.isValid()?this[e+"s"]():NaN},qn.milliseconds=On,qn.seconds=In,qn.minutes=jn,qn.hours=Hn,qn.days=Bn,qn.weeks=function(){return b(this.days()/7)},qn.months=Nn,qn.years=Rn,qn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t,n,i,r,o,a,s,l,u,c,d=this.localeData(),h=(t=!e,n=d,i=zt(this).abs(),r=Fn(i.as("s")),o=Fn(i.as("m")),a=Fn(i.as("h")),s=Fn(i.as("d")),l=Fn(i.as("M")),u=Fn(i.as("y")),(c=r<=zn.ss&&["s",r]||r<zn.s&&["ss",r]||o<=1&&["m"]||o<zn.m&&["mm",o]||a<=1&&["h"]||a<zn.h&&["hh",a]||s<=1&&["d"]||s<zn.d&&["dd",s]||l<=1&&["M"]||l<zn.M&&["MM",l]||u<=1&&["y"]||["yy",u])[2]=t,c[3]=0<+this,c[4]=n,function(e,t,n,i,r){return r.relativeTime(t||1,!!n,e,i)}.apply(null,c));return e&&(h=d.pastFuture(+this,h)),d.postformat(h)},qn.toISOString=Wn,qn.toString=Wn,qn.toJSON=Wn,qn.locale=Xt,qn.localeData=Qt,qn.toIsoString=k("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Wn),qn.lang=Kt,F("X",0,0,"unix"),F("x",0,0,"valueOf"),le("x",ie),le("X",/[+-]?\d+(\.\d{1,3})?/),he("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))})),he("x",(function(e,t,n){n._d=new Date(w(e))})),n.version="2.24.0",e=Tt,n.fn=fn,n.min=function(){return Ct("isBefore",[].slice.call(arguments,0))},n.max=function(){return Ct("isAfter",[].slice.call(arguments,0))},n.now=function(){return Date.now?Date.now():+new Date},n.utc=d,n.unix=function(e){return Tt(1e3*e)},n.months=function(e,t){return vn(e,t,"months")},n.isDate=s,n.locale=lt,n.invalid=p,n.duration=zt,n.isMoment=y,n.weekdays=function(e,t,n){return _n(e,t,n,"weekdays")},n.parseZone=function(){return Tt.apply(null,arguments).parseZone()},n.localeData=ct,n.isDuration=Pt,n.monthsShort=function(e,t){return vn(e,t,"monthsShort")},n.weekdaysMin=function(e,t,n){return _n(e,t,n,"weekdaysMin")},n.defineLocale=ut,n.updateLocale=function(e,t){if(null!=t){var n,i,r=it;null!=(i=st(e))&&(r=i._config),(n=new C(t=D(r,t))).parentLocale=rt[e],rt[e]=n,lt(e)}else null!=rt[e]&&(null!=rt[e].parentLocale?rt[e]=rt[e].parentLocale:null!=rt[e]&&delete rt[e]);return rt[e]},n.locales=function(){return x(rt)},n.weekdaysShort=function(e,t,n){return _n(e,t,n,"weekdaysShort")},n.normalizeUnits=P,n.relativeTimeRounding=function(e){return void 0===e?Fn:"function"==typeof e&&(Fn=e,!0)},n.relativeTimeThreshold=function(e,t){return void 0!==zn[e]&&(void 0===t?zn[e]:(zn[e]=t,"s"===e&&(zn.ss=t-1),!0))},n.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},n.prototype=fn,n.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},n.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),n.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:4}}),n.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}});var Gn={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},Zn=function(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5},Jn={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},Xn=function(e){return function(t,n,i,r){var o=Zn(t),a=Jn[e][Zn(t)];return 2===o&&(a=a[n?0:1]),a.replace(/%d/i,t)}},Kn=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];n.defineLocale("ar-ly",{months:Kn,monthsShort:Kn,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:Xn("s"),ss:Xn("s"),m:Xn("m"),mm:Xn("m"),h:Xn("h"),hh:Xn("h"),d:Xn("d"),dd:Xn("d"),M:Xn("M"),MM:Xn("M"),y:Xn("y"),yy:Xn("y")},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return Gn[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}}),n.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}});var Qn={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},ei={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};n.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(e){return ei[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return Qn[e]})).replace(/,/g,"،")},week:{dow:0,doy:6}}),n.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}});var ti={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},ni={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},ii=function(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5},ri={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},oi=function(e){return function(t,n,i,r){var o=ii(t),a=ri[e][ii(t)];return 2===o&&(a=a[n?0:1]),a.replace(/%d/i,t)}},ai=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];n.defineLocale("ar",{months:ai,monthsShort:ai,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:oi("s"),ss:oi("s"),m:oi("m"),mm:oi("m"),h:oi("h"),hh:oi("h"),d:oi("d"),dd:oi("d"),M:oi("M"),MM:oi("M"),y:oi("y"),yy:oi("y")},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(e){return ni[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return ti[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}});var si={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};function li(e,t,n){var i,r;return"m"===n?t?"хвіліна":"хвіліну":"h"===n?t?"гадзіна":"гадзіну":e+" "+(i=+e,r={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:t?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[n].split("_"),i%10==1&&i%100!=11?r[0]:2<=i%10&&i%10<=4&&(i%100<10||20<=i%100)?r[1]:r[2])}n.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(e){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(e)},meridiem:function(e,t,n){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var t=e%10;return e+(si[t]||si[e%100-t]||si[100<=e?100:null])},week:{dow:1,doy:7}}),n.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:li,mm:li,h:li,hh:li,d:"дзень",dd:li,M:"месяц",MM:li,y:"год",yy:li},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}}),n.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":10<n&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}}),n.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}});var ui={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},ci={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};n.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,(function(e){return ci[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return ui[e]}))},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&4<=e||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,n){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}});var di={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},hi={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};function fi(e,t,n){var i,r,o;return e+" "+(i={mm:"munutenn",MM:"miz",dd:"devezh"}[n],2!==e?i:void 0!==(o={m:"v",b:"v",d:"z"})[(r=i).charAt(0)]?o[r.charAt(0)]+r.substring(1):r)}function pi(e,t,n){var i=e+" ";switch(n){case"ss":return i+(1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi");case"m":return t?"jedna minuta":"jedne minute";case"mm":return i+(1===e?"minuta":2===e||3===e||4===e?"minute":"minuta");case"h":return t?"jedan sat":"jednog sata";case"hh":return i+(1===e?"sat":2===e||3===e||4===e?"sata":"sati");case"dd":return i+(1===e?"dan":"dana");case"MM":return i+(1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci");case"yy":return i+(1===e?"godina":2===e||3===e||4===e?"godine":"godina")}}n.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,(function(e){return hi[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return di[e]}))},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&4<=e||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,n){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}}),n.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:fi,h:"un eur",hh:"%d eur",d:"un devezh",dd:fi,M:"ur miz",MM:fi,y:"ur bloaz",yy:function(e){switch(function e(t){return 9<t?e(t%10):t}(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(e){return e+(1===e?"añ":"vet")},week:{dow:1,doy:4}}),n.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:pi,m:pi,mm:pi,h:pi,hh:pi,d:"dan",dd:pi,M:"mjesec",MM:pi,y:"godinu",yy:pi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),n.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}});var mi="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),gi="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),vi=[/^led/i,/^\xfano/i,/^b\u0159e/i,/^dub/i,/^kv\u011b/i,/^(\u010dvn|\u010derven$|\u010dervna)/i,/^(\u010dvc|\u010dervenec|\u010dervence)/i,/^srp/i,/^z\xe1\u0159/i,/^\u0159\xedj/i,/^lis/i,/^pro/i],_i=/^(leden|\xfanor|b\u0159ezen|duben|kv\u011bten|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|z\xe1\u0159\xed|\u0159\xedjen|listopad|prosinec|led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i;function yi(e){return 1<e&&e<5&&1!=~~(e/10)}function bi(e,t,n,i){var r=e+" ";switch(n){case"s":return t||i?"pár sekund":"pár sekundami";case"ss":return t||i?r+(yi(e)?"sekundy":"sekund"):r+"sekundami";case"m":return t?"minuta":i?"minutu":"minutou";case"mm":return t||i?r+(yi(e)?"minuty":"minut"):r+"minutami";case"h":return t?"hodina":i?"hodinu":"hodinou";case"hh":return t||i?r+(yi(e)?"hodiny":"hodin"):r+"hodinami";case"d":return t||i?"den":"dnem";case"dd":return t||i?r+(yi(e)?"dny":"dní"):r+"dny";case"M":return t||i?"měsíc":"měsícem";case"MM":return t||i?r+(yi(e)?"měsíce":"měsíců"):r+"měsíci";case"y":return t||i?"rok":"rokem";case"yy":return t||i?r+(yi(e)?"roky":"let"):r+"lety"}}function wi(e,t,n,i){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?r[n][0]:r[n][1]}function Li(e,t,n,i){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?r[n][0]:r[n][1]}function Mi(e,t,n,i){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?r[n][0]:r[n][1]}n.defineLocale("cs",{months:mi,monthsShort:gi,monthsRegex:_i,monthsShortRegex:_i,monthsStrictRegex:/^(leden|ledna|\xfanora|\xfanor|b\u0159ezen|b\u0159ezna|duben|dubna|kv\u011bten|kv\u011btna|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|srpna|z\xe1\u0159\xed|\u0159\xedjen|\u0159\xedjna|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i,monthsParse:vi,longMonthsParse:vi,shortMonthsParse:vi,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:bi,ss:bi,m:bi,mm:bi,h:bi,hh:bi,d:bi,dd:bi,M:bi,MM:bi,y:bi,yy:bi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){return e+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(e)?"рен":/\u04ab\u0443\u043b$/i.exec(e)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-мӗш",week:{dow:1,doy:7}}),n.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return 20<e?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":0<e&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}}),n.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:wi,mm:"%d Minuten",h:wi,hh:"%d Stunden",d:wi,dd:wi,M:wi,MM:wi,y:wi,yy:wi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:Li,mm:"%d Minuten",h:Li,hh:"%d Stunden",d:Li,dd:Li,M:Li,MM:Li,y:Li,yy:Li},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:Mi,mm:"%d Minuten",h:Mi,hh:"%d Stunden",d:Mi,dd:Mi,M:Mi,MM:Mi,y:Mi,yy:Mi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var ki=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],xi=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];n.defineLocale("dv",{months:ki,monthsShort:ki,weekdays:xi,weekdaysShort:xi,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0789\u0786|\u0789\u078a/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,n){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}}),n.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,n){return 11<e?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(e,t){var n=this._calendarEl[e],i=t&&t.hours();return $(n)&&(n=n.apply(t)),n.replace("{}",i%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%dη",week:{dow:1,doy:4}}),n.defineLocale("en-SG",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),n.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),n.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,n){return 11<e?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}});var Si="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Ti="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),$i=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],Di=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;n.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Ti[e.month()]:Si[e.month()]:Si},monthsRegex:Di,monthsShortRegex:Di,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:$i,longMonthsParse:$i,shortMonthsParse:$i,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}});var Ci="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Ei="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),Ai=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],Pi=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;n.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Ei[e.month()]:Ci[e.month()]:Ci},monthsRegex:Pi,monthsShortRegex:Pi,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:Ai,longMonthsParse:Ai,shortMonthsParse:Ai,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:0,doy:6}});var Yi="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Oi="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),Ii=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],ji=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;function Hi(e,t,n,i){var r={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?r[n][2]?r[n][2]:r[n][1]:i?r[n][0]:r[n][1]}n.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Oi[e.month()]:Yi[e.month()]:Yi},monthsRegex:ji,monthsShortRegex:ji,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:Ii,longMonthsParse:Ii,shortMonthsParse:Ii,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:Hi,ss:Hi,m:Hi,mm:Hi,h:Hi,hh:Hi,d:Hi,dd:"%d päeva",M:Hi,MM:Hi,y:Hi,yy:Hi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var Bi={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},Ni={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};n.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(e){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(e)},meridiem:function(e,t,n){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"ثانیه d%",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[\u06f0-\u06f9]/g,(function(e){return Ni[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return Bi[e]})).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%dم",week:{dow:6,doy:12}});var Ri="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),Fi=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",Ri[7],Ri[8],Ri[9]];function zi(e,t,n,i){var r,o="";switch(n){case"s":return i?"muutaman sekunnin":"muutama sekunti";case"ss":return i?"sekunnin":"sekuntia";case"m":return i?"minuutin":"minuutti";case"mm":o=i?"minuutin":"minuuttia";break;case"h":return i?"tunnin":"tunti";case"hh":o=i?"tunnin":"tuntia";break;case"d":return i?"päivän":"päivä";case"dd":o=i?"päivän":"päivää";break;case"M":return i?"kuukauden":"kuukausi";case"MM":o=i?"kuukauden":"kuukautta";break;case"y":return i?"vuoden":"vuosi";case"yy":o=i?"vuoden":"vuotta"}return((r=e)<10?i?Fi[r]:Ri[r]:r)+" "+o}n.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:zi,ss:zi,m:zi,mm:zi,h:zi,hh:zi,d:zi,dd:zi,M:zi,MM:zi,y:zi,yy:zi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}}),n.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}}),n.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,t){switch(t){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}});var Vi="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),Ui="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");function Wi(e,t,n,i){var r={s:["thodde secondanim","thodde second"],ss:[e+" secondanim",e+" second"],m:["eka mintan","ek minute"],mm:[e+" mintanim",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voranim",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disanim",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineanim",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsanim",e+" vorsam"]};return t?r[n][0]:r[n][1]}n.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Ui[e.month()]:Vi[e.month()]:Vi},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),n.defineLocale("ga",{months:["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Méitheamh","Iúil","Lúnasa","Meán Fómhair","Deaireadh Fómhair","Samhain","Nollaig"],monthsShort:["Eaná","Feab","Márt","Aibr","Beal","Méit","Iúil","Lúna","Meán","Deai","Samh","Noll"],monthsParseExact:!0,weekdays:["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Satharn"],weekdaysShort:["Dom","Lua","Mái","Céa","Déa","hAo","Sat"],weekdaysMin:["Do","Lu","Má","Ce","Dé","hA","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné aig] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d mí",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}}),n.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],monthsShort:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],monthsParseExact:!0,weekdays:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}}),n.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){
-return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:Wi,ss:Wi,m:Wi,mm:Wi,h:Wi,hh:Wi,d:Wi,dd:Wi,M:Wi,MM:Wi,y:Wi,yy:Wi},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){switch(t){case"D":return e+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokalli"===t?e:"donparam"===t?12<e?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"rati":e<12?"sokalli":e<16?"donparam":e<20?"sanje":"rati"}});var qi={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},Gi={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};n.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પેહલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,(function(e){return Gi[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return qi[e]}))},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?10<=e?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}}),n.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(e){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(e)},meridiem:function(e,t,n){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?n?'לפנה"צ':"לפני הצהריים":e<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}});var Zi={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},Ji={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function Xi(e,t,n){var i=e+" ";switch(n){case"ss":return i+(1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi");case"m":return t?"jedna minuta":"jedne minute";case"mm":return i+(1===e?"minuta":2===e||3===e||4===e?"minute":"minuta");case"h":return t?"jedan sat":"jednog sata";case"hh":return i+(1===e?"sat":2===e||3===e||4===e?"sata":"sati");case"dd":return i+(1===e?"dan":"dana");case"MM":return i+(1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci");case"yy":return i+(1===e?"godina":2===e||3===e||4===e?"godine":"godina")}}n.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,(function(e){return Ji[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return Zi[e]}))},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?10<=e?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}}),n.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:Xi,m:Xi,mm:Xi,h:Xi,hh:Xi,d:"dan",dd:Xi,M:"mjesec",MM:Xi,y:"godinu",yy:Xi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var Ki="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function Qi(e,t,n,i){var r=e;switch(n){case"s":return i||t?"néhány másodperc":"néhány másodperce";case"ss":return r+(i||t)?" másodperc":" másodperce";case"m":return"egy"+(i||t?" perc":" perce");case"mm":return r+(i||t?" perc":" perce");case"h":return"egy"+(i||t?" óra":" órája");case"hh":return r+(i||t?" óra":" órája");case"d":return"egy"+(i||t?" nap":" napja");case"dd":return r+(i||t?" nap":" napja");case"M":return"egy"+(i||t?" hónap":" hónapja");case"MM":return r+(i||t?" hónap":" hónapja");case"y":return"egy"+(i||t?" év":" éve");case"yy":return r+(i||t?" év":" éve")}return""}function er(e){return(e?"":"[múlt] ")+"["+Ki[this.day()]+"] LT[-kor]"}function tr(e){return e%100==11||e%10!=1}function nr(e,t,n,i){var r=e+" ";switch(n){case"s":return t||i?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return tr(e)?r+(t||i?"sekúndur":"sekúndum"):r+"sekúnda";case"m":return t?"mínúta":"mínútu";case"mm":return tr(e)?r+(t||i?"mínútur":"mínútum"):t?r+"mínúta":r+"mínútu";case"hh":return tr(e)?r+(t||i?"klukkustundir":"klukkustundum"):r+"klukkustund";case"d":return t?"dagur":i?"dag":"degi";case"dd":return tr(e)?t?r+"dagar":r+(i?"daga":"dögum"):t?r+"dagur":r+(i?"dag":"degi");case"M":return t?"mánuður":i?"mánuð":"mánuði";case"MM":return tr(e)?t?r+"mánuðir":r+(i?"mánuði":"mánuðum"):t?r+"mánuður":r+(i?"mánuð":"mánuði");case"y":return t||i?"ár":"ári";case"yy":return tr(e)?r+(t||i?"ár":"árum"):r+(t||i?"ár":"ári")}}n.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,n){return e<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return er.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return er.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:Qi,ss:Qi,m:Qi,mm:Qi,h:Qi,hh:Qi,d:Qi,dd:Qi,M:Qi,MM:Qi,y:Qi,yy:Qi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(e){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}}),n.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?11<=e?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),n.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:nr,ss:nr,m:nr,mm:nr,h:"klukkustund",hh:nr,d:nr,dd:nr,M:nr,MM:nr,y:nr,yy:nr},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("ja",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,n){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(e){return e.week()<this.week()?"[来週]dddd LT":"dddd LT"},lastDay:"[昨日] LT",lastWeek:function(e){return this.week()<e.week()?"[先週]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}\u65e5/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}}),n.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?11<=e?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}}),n.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10ec\u10d4\u10da\u10d8)/.test(e)?e.replace(/\u10d8$/,"ში"):e+"ში"},past:function(e){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(e)?e.replace(/(\u10d8|\u10d4)$/,"ის წინ"):/\u10ec\u10d4\u10da\u10d8/.test(e)?e.replace(/\u10ec\u10d4\u10da\u10d8$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}});var ir={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};n.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(e){return e+(ir[e]||ir[e%10]||ir[100<=e?100:null])},week:{dow:1,doy:7}});var rr={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},or={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};n.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,n){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,(function(e){return or[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return rr[e]}))},week:{dow:1,doy:4}});var ar={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},sr={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};n.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(e){return e.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,(function(e){return sr[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return ar[e]}))},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(e,t){return 12===e&&(e=0),"ರಾತ್ರಿ"===t?e<4?e:e+12:"ಬೆಳಿಗ್ಗೆ"===t?e:"ಮಧ್ಯಾಹ್ನ"===t?10<=e?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}}),n.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(e){return"오후"===e},meridiem:function(e,t,n){return e<12?"오전":"오후"}});var lr={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},ur={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},cr=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];n.defineLocale("ku",{months:cr,monthsShort:cr,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c|\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc/,isPM:function(e){return/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c/.test(e)},meridiem:function(e,t,n){return e<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(e){return ur[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return lr[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}});var dr={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};function hr(e,t,n,i){var r={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return t?r[n][0]:r[n][1]}function fr(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var t=e%10;return fr(0===t?e/10:t)}if(e<1e4){for(;10<=e;)e/=10;return fr(e)}return fr(e/=1e3)}n.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(e){return e+(dr[e]||dr[e%10]||dr[100<=e?100:null])},week:{dow:1,doy:7}}),n.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(e){return fr(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e},past:function(e){return fr(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e},s:"e puer Sekonnen",ss:"%d Sekonnen",m:hr,mm:"%d Minutten",h:hr,hh:"%d Stonnen",d:hr,dd:"%d Deeg",M:hr,MM:"%d Méint",y:hr,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(e){return"ຕອນແລງ"===e},meridiem:function(e,t,n){return e<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(e){return"ທີ່"+e}});var pr={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function mr(e,t,n,i){return t?vr(n)[0]:i?vr(n)[1]:vr(n)[2]}function gr(e){return e%10==0||10<e&&e<20}function vr(e){return pr[e].split("_")}function _r(e,t,n,i){var r=e+" ";return 1===e?r+mr(0,t,n[0],i):t?r+(gr(e)?vr(n)[1]:vr(n)[0]):i?r+vr(n)[1]:r+(gr(e)?vr(n)[1]:vr(n)[2])}n.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:function(e,t,n,i){return t?"kelios sekundės":i?"kelių sekundžių":"kelias sekundes"},ss:_r,m:mr,mm:_r,h:mr,hh:_r,d:mr,dd:_r,M:mr,MM:_r,y:mr,yy:_r},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}});var yr={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function br(e,t,n){return n?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function wr(e,t,n){return e+" "+br(yr[n],e,t)}function Lr(e,t,n){return br(yr[n],e,t)}n.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:function(e,t){return t?"dažas sekundes":"dažām sekundēm"},ss:wr,m:Lr,mm:wr,h:Lr,hh:wr,d:Lr,dd:wr,M:Lr,MM:wr,y:Lr,yy:wr},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var Mr={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:2<=e&&e<=4?t[1]:t[2]},translate:function(e,t,n){var i=Mr.words[n];return 1===n.length?t?i[0]:i[1]:e+" "+Mr.correctGrammaticalCase(e,i)}};function kr(e,t,n,i){switch(n){case"s":return t?"хэдхэн секунд":"хэдхэн секундын";case"ss":return e+(t?" секунд":" секундын");case"m":case"mm":return e+(t?" минут":" минутын");case"h":case"hh":return e+(t?" цаг":" цагийн");case"d":case"dd":return e+(t?" өдөр":" өдрийн");case"M":case"MM":return e+(t?" сар":" сарын");case"y":case"yy":return e+(t?" жил":" жилийн");default:return e}}n.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:Mr.translate,m:Mr.translate,mm:Mr.translate,h:Mr.translate,hh:Mr.translate,d:"dan",dd:Mr.translate,M:"mjesec",MM:Mr.translate,y:"godinu",yy:Mr.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),n.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":10<n&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}}),n.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&4<=e||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,n){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}}),n.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(e){return"ҮХ"===e},meridiem:function(e,t,n){return e<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:kr,ss:kr,m:kr,mm:kr,h:kr,hh:kr,d:kr,dd:kr,M:kr,MM:kr,y:kr,yy:kr},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" өдөр";default:return e}}});var xr={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},Sr={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function Tr(e,t,n,i){var r="";if(t)switch(n){case"s":r="काही सेकंद";break;case"ss":r="%d सेकंद";break;case"m":r="एक मिनिट";break;case"mm":r="%d मिनिटे";break;case"h":r="एक तास";break;case"hh":r="%d तास";break;case"d":r="एक दिवस";break;case"dd":r="%d दिवस";break;case"M":r="एक महिना";break;case"MM":r="%d महिने";break;case"y":r="एक वर्ष";break;case"yy":r="%d वर्षे"}else switch(n){case"s":r="काही सेकंदां";break;case"ss":r="%d सेकंदां";break;case"m":r="एका मिनिटा";break;case"mm":r="%d मिनिटां";break;case"h":r="एका तासा";break;case"hh":r="%d तासां";break;case"d":r="एका दिवसा";break;case"dd":r="%d दिवसां";break;case"M":r="एका महिन्या";break;case"MM":r="%d महिन्यां";break;case"y":r="एका वर्षा";break;case"yy":r="%d वर्षां"}return r.replace(/%d/i,e)}n.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:Tr,ss:Tr,m:Tr,mm:Tr,h:Tr,hh:Tr,d:Tr,dd:Tr,M:Tr,MM:Tr,y:Tr,yy:Tr},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,(function(e){return Sr[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return xr[e]}))},meridiemParse:/\u0930\u093e\u0924\u094d\u0930\u0940|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात्री"===t?e<4?e:e+12:"सकाळी"===t?e:"दुपारी"===t?10<=e?e:e+12:"सायंकाळी"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात्री":e<10?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}}),n.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?11<=e?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),n.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?11<=e?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),n.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}});var $r={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},Dr={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};n.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,(function(e){return Dr[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return $r[e]}))},week:{dow:1,doy:4}}),n.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var Cr={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},Er={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};n.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,(function(e){return Er[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return Cr[e]}))},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?10<=e?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,n){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}});var Ar="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),Pr="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),Yr=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],Or=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;n.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Pr[e.month()]:Ar[e.month()]:Ar},monthsRegex:Or,monthsShortRegex:Or,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:Yr,longMonthsParse:Yr,shortMonthsParse:Yr,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}});var Ir="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),jr="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),Hr=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],Br=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;n.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?jr[e.month()]:Ir[e.month()]:Ir},monthsRegex:Br,monthsShortRegex:Br,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:Hr,longMonthsParse:Hr,shortMonthsParse:Hr,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),n.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var Nr={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},Rr={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};n.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(e){return e.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,(function(e){return Rr[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return Nr[e]}))},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(e,t){return 12===e&&(e=0),"ਰਾਤ"===t?e<4?e:e+12:"ਸਵੇਰ"===t?e:"ਦੁਪਹਿਰ"===t?10<=e?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}});var Fr="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),zr="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");function Vr(e){return e%10<5&&1<e%10&&~~(e/10)%10!=1}function Ur(e,t,n){var i=e+" ";switch(n){case"ss":return i+(Vr(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return i+(Vr(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return i+(Vr(e)?"godziny":"godzin");case"MM":return i+(Vr(e)?"miesiące":"miesięcy");case"yy":return i+(Vr(e)?"lata":"lat")}}function Wr(e,t,n){var i=" ";return(20<=e%100||100<=e&&e%100==0)&&(i=" de "),e+i+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[n]}function qr(e,t,n){var i,r;return"m"===n?t?"минута":"минуту":e+" "+(i=+e,r={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[n].split("_"),i%10==1&&i%100!=11?r[0]:2<=i%10&&i%10<=4&&(i%100<10||20<=i%100)?r[1]:r[2])}n.defineLocale("pl",{months:function(e,t){return e?""===t?"("+zr[e.month()]+"|"+Fr[e.month()]+")":/D MMMM/.test(t)?zr[e.month()]:Fr[e.month()]:Fr},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:Ur,m:Ur,mm:Ur,h:Ur,hh:Ur,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:Ur,y:"rok",yy:Ur},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº"}),n.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:Wr,m:"un minut",mm:Wr,h:"o oră",hh:Wr,d:"o zi",dd:Wr,M:"o lună",MM:Wr,y:"un an",yy:Wr},week:{dow:1,doy:7}});var Gr=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];n.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:Gr,longMonthsParse:Gr,shortMonthsParse:Gr,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:qr,m:qr,mm:qr,h:"час",hh:qr,d:"день",dd:qr,M:"месяц",MM:qr,y:"год",yy:qr},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}});var Zr=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],Jr=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];n.defineLocale("sd",{months:Zr,monthsShort:Zr,weekdays:Jr,weekdaysShort:Jr,weekdaysMin:Jr,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}}),n.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(e){return e+" වැනි"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,n){return 11<e?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}});var Xr="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),Kr="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");function Qr(e){return 1<e&&e<5}function eo(e,t,n,i){var r=e+" ";switch(n){case"s":return t||i?"pár sekúnd":"pár sekundami";case"ss":return t||i?r+(Qr(e)?"sekundy":"sekúnd"):r+"sekundami";case"m":return t?"minúta":i?"minútu":"minútou";case"mm":return t||i?r+(Qr(e)?"minúty":"minút"):r+"minútami";case"h":return t?"hodina":i?"hodinu":"hodinou";case"hh":return t||i?r+(Qr(e)?"hodiny":"hodín"):r+"hodinami";case"d":return t||i?"deň":"dňom";case"dd":return t||i?r+(Qr(e)?"dni":"dní"):r+"dňami";case"M":return t||i?"mesiac":"mesiacom";case"MM":return t||i?r+(Qr(e)?"mesiace":"mesiacov"):r+"mesiacmi";case"y":return t||i?"rok":"rokom";case"yy":return t||i?r+(Qr(e)?"roky":"rokov"):r+"rokmi"}}function to(e,t,n,i){var r=e+" ";switch(n){case"s":return t||i?"nekaj sekund":"nekaj sekundami";case"ss":return r+(1===e?t?"sekundo":"sekundi":2===e?t||i?"sekundi":"sekundah":e<5?t||i?"sekunde":"sekundah":"sekund");case"m":return t?"ena minuta":"eno minuto";case"mm":return r+(1===e?t?"minuta":"minuto":2===e?t||i?"minuti":"minutama":e<5?t||i?"minute":"minutami":t||i?"minut":"minutami");case"h":return t?"ena ura":"eno uro";case"hh":return r+(1===e?t?"ura":"uro":2===e?t||i?"uri":"urama":e<5?t||i?"ure":"urami":t||i?"ur":"urami");case"d":return t||i?"en dan":"enim dnem";case"dd":return r+(1===e?t||i?"dan":"dnem":2===e?t||i?"dni":"dnevoma":t||i?"dni":"dnevi");case"M":return t||i?"en mesec":"enim mesecem";case"MM":return r+(1===e?t||i?"mesec":"mesecem":2===e?t||i?"meseca":"mesecema":e<5?t||i?"mesece":"meseci":t||i?"mesecev":"meseci");case"y":return t||i?"eno leto":"enim letom";case"yy":return r+(1===e?t||i?"leto":"letom":2===e?t||i?"leti":"letoma":e<5?t||i?"leta":"leti":t||i?"let":"leti")}}n.defineLocale("sk",{months:Xr,monthsShort:Kr,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:eo,ss:eo,m:eo,mm:eo,h:eo,hh:eo,d:eo,dd:eo,M:eo,MM:eo,y:eo,yy:eo},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:to,ss:to,m:to,mm:to,h:to,hh:to,d:to,dd:to,M:to,MM:to,y:to,yy:to},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),n.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,n){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var no={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:2<=e&&e<=4?t[1]:t[2]},translate:function(e,t,n){var i=no.words[n];return 1===n.length?t?i[0]:i[1]:e+" "+no.correctGrammaticalCase(e,i)}};n.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:no.translate,m:no.translate,mm:no.translate,h:no.translate,hh:no.translate,d:"дан",dd:no.translate,M:"месец",MM:no.translate,y:"годину",yy:no.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var io={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:2<=e&&e<=4?t[1]:t[2]},translate:function(e,t,n){var i=io.words[n];return 1===n.length?t?i[0]:i[1]:e+" "+io.correctGrammaticalCase(e,i)}};n.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:io.translate,m:io.translate,mm:io.translate,h:io.translate,hh:io.translate,d:"dan",dd:io.translate,M:"mesec",MM:io.translate,y:"godinu",yy:io.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),n.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,n){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?11<=e?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}}),n.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"e":1===t?"a":2===t?"a":"e")},week:{dow:1,doy:4}}),n.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}});var ro={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},oo={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};n.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,(function(e){return oo[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return ro[e]}))},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(e,t,n){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t?e:"நண்பகல்"===t&&10<=e?e:e+12},week:{dow:0,doy:6}}),n.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%dవ",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(e,t){return 12===e&&(e=0),"రాత్రి"===t?e<4?e:e+12:"ఉదయం"===t?e:"మధ్యాహ్నం"===t?10<=e?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}}),n.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}});var ao={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};n.defineLocale("tg",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Пагоҳ соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?11<=e?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(e){return e+(ao[e]||ao[e%10]||ao[100<=e?100:null])},week:{dow:1,doy:7}}),n.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,n){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}}),n.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}});var so="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function lo(e,t,n,i){var r=function(e){var t=Math.floor(e%1e3/100),n=Math.floor(e%100/10),i=e%10,r="";return 0<t&&(r+=so[t]+"vatlh"),0<n&&(r+=(""!==r?" ":"")+so[n]+"maH"),0<i&&(r+=(""!==r?" ":"")+so[i]),""===r?"pagh":r}(e);switch(n){case"ss":return r+" lup";case"mm":return r+" tup";case"hh":return r+" rep";case"dd":return r+" jaj";case"MM":return r+" jar";case"yy":return r+" DIS"}}n.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(e){var t=e;return-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"},past:function(e){var t=e;return-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"},s:"puS lup",ss:lo,m:"wa’ tup",mm:lo,h:"wa’ rep",hh:lo,d:"wa’ jaj",dd:lo,M:"wa’ jar",MM:lo,y:"wa’ DIS",yy:lo},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var uo={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};function co(e,t,n,i){var r={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return i?r[n][0]:t?r[n][0]:r[n][1]}function ho(e,t,n){var i,r;return"m"===n?t?"хвилина":"хвилину":"h"===n?t?"година":"годину":e+" "+(i=+e,r={ss:t?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:t?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:t?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[n].split("_"),i%10==1&&i%100!=11?r[0]:2<=i%10&&i%10<=4&&(i%100<10||20<=i%100)?r[1]:r[2])}function fo(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}n.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,t){switch(t){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var n=e%10;return e+(uo[n]||uo[e%100-n]||uo[100<=e?100:null])}},week:{dow:1,doy:7}}),n.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,n){return 11<e?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:co,ss:co,m:co,mm:co,h:co,hh:co,d:co,dd:co,M:co,MM:co,y:co,yy:co},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}}),n.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}}),n.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,meridiemHour:function(e,t){return 12===e&&(e=0),"يېرىم كېچە"===t||"سەھەر"===t||"چۈشتىن بۇرۇن"===t?e:"چۈشتىن كېيىن"===t||"كەچ"===t?e+12:11<=e?e:e+12},meridiem:function(e,t,n){var i=100*e+t;return i<600?"يېرىم كېچە":i<900?"سەھەر":i<1130?"چۈشتىن بۇرۇن":i<1230?"چۈش":i<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}}),n.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:function(e,t){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===e?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):e?n[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(t)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:n.nominative},weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:fo("[Сьогодні "),nextDay:fo("[Завтра "),lastDay:fo("[Вчора "),nextWeek:fo("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return fo("[Минулої] dddd [").call(this);case 1:case 2:case 4:return fo("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:ho,m:ho,mm:ho,h:"годину",hh:ho,d:"день",dd:ho,M:"місяць",MM:ho,y:"рік",yy:ho},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}});var po=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],mo=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];return n.defineLocale("ur",{months:po,monthsShort:po,weekdays:mo,weekdaysShort:mo,weekdaysMin:mo,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}}),n.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}}),n.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}}),n.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}}),n.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}}),n.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:11<=e?e:e+12},meridiem:function(e,t,n){var i=100*e+t;return i<600?"凌晨":i<900?"早上":i<1130?"上午":i<1230?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}}),n.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?11<=e?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var i=100*e+t;return i<600?"凌晨":i<900?"早上":i<1130?"上午":i<1230?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}}),n.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?11<=e?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var i=100*e+t;return i<600?"凌晨":i<900?"早上":i<1130?"上午":i<1230?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}}),n.locale("en"),n})),
-/*! @preserve
- * numeral.js
- * version : 1.5.6
- * author : Adam Draper
- * license : MIT
- * http://adamwdraper.github.com/Numeral-js/
- */
-function(){var e,t={},n={currentLanguage:"en",zeroFormat:null,nullFormat:null,defaultFormat:"0,0"},i={currentLanguage:n.currentLanguage,zeroFormat:n.zeroFormat,nullFormat:n.nullFormat,defaultFormat:n.defaultFormat},r={bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],iec:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]};function o(e){this._value=e}function a(e,t,n,i){var r,o,a,s,l=e.toString().split("."),u=t-(i||0);return r=2===l.length?Math.min(Math.max(l[1].length,u),t):u,s=(n(e*(a=Math.pow(10,r)))/a).toFixed(r),i>t-r&&(o=new RegExp("\\.?0{1,"+(i-(t-r))+"}$"),s=s.replace(o,"")),s}function s(e,n,r){var o,s,l,u,c=!1,d=!1,h=!1,f="",p=!1,m=!1,g=!1,v=!1,_=!1,y="",b=!1;return null===e&&(e=0),o=Math.abs(e),n.indexOf("(")>-1?(c=!0,n=n.slice(1,-1)):n.indexOf("+")>-1&&(d=!0,n=n.replace(/\+/g,"")),n.indexOf("a")>-1&&(p=n.indexOf("aK")>=0,m=n.indexOf("aM")>=0,g=n.indexOf("aB")>=0,v=n.indexOf("aT")>=0,_=p||m||g||v,n.indexOf(" a")>-1&&(f=" "),n=n.replace(new RegExp(f+"a[KMBT]?"),""),o>=Math.pow(10,12)&&!_||v?(f+=t[i.currentLanguage].abbreviations.trillion,e/=Math.pow(10,12)):o<Math.pow(10,12)&&o>=Math.pow(10,9)&&!_||g?(f+=t[i.currentLanguage].abbreviations.billion,e/=Math.pow(10,9)):o<Math.pow(10,9)&&o>=Math.pow(10,6)&&!_||m?(f+=t[i.currentLanguage].abbreviations.million,e/=Math.pow(10,6)):(o<Math.pow(10,6)&&o>=Math.pow(10,3)&&!_||p)&&(f+=t[i.currentLanguage].abbreviations.thousand,e/=Math.pow(10,3))),n.indexOf("[.]")>-1&&(h=!0,n=n.replace("[.]",".")),s=e.toString().split(".")[0],l=n.split(".")[1],u=n.indexOf(","),l?(s=(y=l.indexOf("[")>-1?a(e,(l=(l=l.replace("]","")).split("["))[0].length+l[1].length,r,l[1].length):a(e,l.length,r)).split(".")[0],y=y.indexOf(".")>-1?t[i.currentLanguage].delimiters.decimal+y.split(".")[1]:"",h&&0===Number(y.slice(1))&&(y="")):s=a(e,null,r),s.indexOf("-")>-1&&(s=s.slice(1),b=!0),u>-1&&(s=s.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1"+t[i.currentLanguage].delimiters.thousands)),0===n.indexOf(".")&&(s=""),(c&&b?"(":"")+(!c&&b?"-":"")+(!b&&d?"+":"")+s+y+(f||"")+(c&&b?")":"")}function l(e){var t=e.toString().split(".");return t.length<2?1:Math.pow(10,t[1].length)}function u(){return Array.prototype.slice.call(arguments).reduce((function(e,t){var n=l(e),i=l(t);return n>i?n:i}),-1/0)}(e=function(t){return new o(t=e.isNumeral(t)?t.value():0===t||void 0===t?0:null===t?null:Number(t)?Number(t):e.fn.unformat(t))}).version="1.5.6",e.isNumeral=function(e){return e instanceof o},e.language=function(n,r){if(!n)return i.currentLanguage;if((n=n.toLowerCase())&&!r){if(!t[n])throw new Error("Unknown language : "+n);i.currentLanguage=n}return!r&&t[n]||function(e,n){t[e]=n}(n,r),e},e.reset=function(){for(var e in n)i[e]=n[e]},e.languageData=function(e){if(!e)return t[i.currentLanguage];if(!t[e])throw new Error("Unknown language : "+e);return t[e]},e.language("en",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"$"}}),e.zeroFormat=function(e){i.zeroFormat="string"==typeof e?e:null},e.nullFormat=function(e){i.nullFormat="string"==typeof e?e:null},e.defaultFormat=function(e){i.defaultFormat="string"==typeof e?e:"0.0"},e.validate=function(t,n){var i,r,o,a,s,l,u,c;if("string"!=typeof t&&(t+="",console.warn&&console.warn("Numeral.js: Value is not string. It has been co-erced to: ",t)),(t=t.trim()).match(/^\d+$/))return!0;if(""===t)return!1;try{u=e.languageData(n)}catch(t){u=e.languageData(e.language())}return o=u.currency.symbol,s=u.abbreviations,i=u.delimiters.decimal,r="."===u.delimiters.thousands?"\\.":u.delimiters.thousands,!(null!==(c=t.match(/^[^\d]+/))&&(t=t.substr(1),c[0]!==o)||null!==(c=t.match(/[^\d]+$/))&&(t=t.slice(0,-1),c[0]!==s.thousand&&c[0]!==s.million&&c[0]!==s.billion&&c[0]!==s.trillion)||(l=new RegExp(r+"{2}"),t.match(/[^\d.,]/g)||(a=t.split(i)).length>2||(a.length<2?!a[0].match(/^\d+.*\d$/)||a[0].match(l):1===a[0].length?!a[0].match(/^\d+$/)||a[0].match(l)||!a[1].match(/^\d+$/):!a[0].match(/^\d+.*\d$/)||a[0].match(l)||!a[1].match(/^\d+$/))))},Array.prototype.reduce||(Array.prototype.reduce=function(e){"use strict";if(null===this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof e)throw new TypeError(e+" is not a function");var t,n=Object(this),i=n.length>>>0,r=0;if(2===arguments.length)t=arguments[1];else{for(;r<i&&!(r in n);)r++;if(r>=i)throw new TypeError("Reduce of empty array with no initial value");t=n[r++]}for(;r<i;r++)r in n&&(t=e(t,n[r],r,n));return t}),e.fn=o.prototype={clone:function(){return e(this)},format:function(e,n){return function(e,n,o){return 0===e._value&&null!==i.zeroFormat?i.zeroFormat:null===e._value&&null!==i.nullFormat?i.nullFormat:n.indexOf("$")>-1?function(e,n,r){var o,a,l=n.indexOf("$"),u=n.indexOf("("),c=n.indexOf("-"),d="";return n.indexOf(" $")>-1?(d=" ",n=n.replace(" $","")):n.indexOf("$ ")>-1?(d=" ",n=n.replace("$ ","")):n=n.replace("$",""),a=s(e._value,n,r),l<=1?a.indexOf("(")>-1||a.indexOf("-")>-1?(o=1,(l<u||l<c)&&(o=0),(a=a.split("")).splice(o,0,t[i.currentLanguage].currency.symbol+d),a=a.join("")):a=t[i.currentLanguage].currency.symbol+d+a:a.indexOf(")")>-1?((a=a.split("")).splice(-1,0,d+t[i.currentLanguage].currency.symbol),a=a.join("")):a=a+d+t[i.currentLanguage].currency.symbol,a}(e,n,o):n.indexOf("%")>-1?function(e,t,n){var i,r="",o=100*e._value;return t.indexOf(" %")>-1?(r=" ",t=t.replace(" %","")):t=t.replace("%",""),(i=s(o,t,n)).indexOf(")")>-1?((i=i.split("")).splice(-1,0,r+"%"),i=i.join("")):i=i+r+"%",i}(e,n,o):n.indexOf(":")>-1?function(e){var t=Math.floor(e._value/60/60),n=Math.floor((e._value-60*t*60)/60),i=Math.round(e._value-60*t*60-60*n);return t+":"+(n<10?"0"+n:n)+":"+(i<10?"0"+i:i)}(e):n.indexOf("b")>-1||n.indexOf("ib")>-1?function(e,t,n){var i,o,a,l=t.indexOf("ib")>-1?r.iec:r.bytes,u=e._value,c="";for(t.indexOf(" b")>-1||t.indexOf(" ib")>-1?(c=" ",t=t.replace(" ib","").replace(" b","")):t=t.replace("ib","").replace("b",""),i=0;i<=l.length;i++)if(o=Math.pow(1024,i),a=Math.pow(1024,i+1),null===u||0===u||u>=o&&u<a){c+=l[i],o>0&&(u/=o);break}return s(u,t,n)+c}(e,n,o):n.indexOf("o")>-1?function(e,n,r){var o="";return n.indexOf(" o")>-1?(o=" ",n=n.replace(" o","")):n=n.replace("o",""),o+=t[i.currentLanguage].ordinal(e._value),s(e._value,n,r)+o}(e,n,o):s(e._value,n,o)}(this,e||i.defaultFormat,void 0!==n?n:Math.round)},unformat:function(e){return"[object Number]"===Object.prototype.toString.call(e)?e:function(e,n){var o,a,s,l,u,c,d=n,h=!1;if(n.indexOf(":")>-1)c=function(e){var t=e.split(":"),n=0;return 3===t.length?(n+=60*Number(t[0])*60,n+=60*Number(t[1]),n+=Number(t[2])):2===t.length&&(n+=60*Number(t[0]),n+=Number(t[1])),Number(n)}(n);else if(n===i.zeroFormat||n===i.nullFormat)c=0;else{for("."!==t[i.currentLanguage].delimiters.decimal&&(n=n.replace(/\./g,"").replace(t[i.currentLanguage].delimiters.decimal,".")),o=new RegExp("[^a-zA-Z]"+t[i.currentLanguage].abbreviations.thousand+"(?:\\)|(\\"+t[i.currentLanguage].currency.symbol+")?(?:\\))?)?$"),a=new RegExp("[^a-zA-Z]"+t[i.currentLanguage].abbreviations.million+"(?:\\)|(\\"+t[i.currentLanguage].currency.symbol+")?(?:\\))?)?$"),s=new RegExp("[^a-zA-Z]"+t[i.currentLanguage].abbreviations.billion+"(?:\\)|(\\"+t[i.currentLanguage].currency.symbol+")?(?:\\))?)?$"),l=new RegExp("[^a-zA-Z]"+t[i.currentLanguage].abbreviations.trillion+"(?:\\)|(\\"+t[i.currentLanguage].currency.symbol+")?(?:\\))?)?$"),u=1;u<=r.bytes.length&&!(h=(n.indexOf(r.bytes[u])>-1||n.indexOf(r.iec[u])>-1)&&Math.pow(1024,u));u++);c=h||1,c*=d.match(o)?Math.pow(10,3):1,c*=d.match(a)?Math.pow(10,6):1,c*=d.match(s)?Math.pow(10,9):1,c*=d.match(l)?Math.pow(10,12):1,c*=n.indexOf("%")>-1?.01:1,c*=(n.split("-").length+Math.min(n.split("(").length-1,n.split(")").length-1))%2?1:-1,c*=Number(n.replace(/[^0-9\.]+/g,"")),c=h?Math.ceil(c):c}return e._value=c,e._value}(this,e||i.defaultFormat)},value:function(){return this._value},valueOf:function(){return this._value},set:function(e){return this._value=Number(e),this},add:function(e){var t=u.call(null,this._value,e);return this._value=[this._value,e].reduce((function(e,n,i,r){return e+t*n}),0)/t,this},subtract:function(e){var t=u.call(null,this._value,e);return this._value=[e].reduce((function(e,n,i,r){return e-t*n}),this._value*t)/t,this},multiply:function(e){return this._value=[this._value,e].reduce((function(e,t,n,i){var r=u(e,t);return e*r*(t*r)/(r*r)}),1),this},divide:function(e){return this._value=[this._value,e].reduce((function(e,t,n,i){var r=u(e,t);return e*r/(t*r)})),this},difference:function(t){return Math.abs(e(this._value).subtract(t).value())}},"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"==typeof ender&&(this.numeral=e),"function"==typeof define&&define.amd&&define([],(function(){return e}))}.call(this),
-/*! @preserve 
- * numeral.js language configuration
- * language : french (fr)
- * author : Adam Draper : https://github.com/adamwdraper
- */
-function(){var e={delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return 1===e?"er":"e"},currency:{symbol:"€"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("fr",e)}(),
-/*! @preserve 
- * numeral.js language configuration
- * language : english united kingdom (uk)
- * author : Dan Ristic : https://github.com/dristic
- */
-function(){var e={delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"£"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("en-gb",e)}(),
-/*! @preserve 
- * numeral.js language configuration
- * language : netherlands-dutch (nl-nl)
- * author : Dave Clayton : https://github.com/davedx
- */
-function(){var e={delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mln",billion:"mrd",trillion:"bln"},ordinal:function(e){var t=e%100;return 0!==e&&t<=1||8===t||t>=20?"ste":"de"},currency:{symbol:"€ "}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("nl-nl",e)}(),
-/*! @preserve 
- * numeral.js language configuration
- * language : spanish
- * author : Hernan Garcia : https://github.com/hgarcia
- */
-function(){var e={delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mm",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===t||3===t?"er":2===t?"do":7===t||0===t?"mo":8===t?"vo":9===t?"no":"to"},currency:{symbol:"$"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("es",e)}(),
-/*! @preserve 
- * numeral.js language configuration
- * language : italian Italy (it)
- * author : Giacomo Trombi : http://cinquepunti.it
- */
-function(){var e={delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"mila",million:"mil",billion:"b",trillion:"t"},ordinal:function(e){return"º"},currency:{symbol:"€"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("it",e)}(),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("../numeral")):"function"==typeof define&&define.amd?define(["numeral"],t):t(e.numeral)}(this,(function(e){"use strict";e.language("eo",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"x10^3",million:"x10^6",billion:"x10^9",trillion:"x10^12"},ordinal:function(e){return"a"},currency:{symbol:"X"}})})),e=function(){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return e[i].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e,t){"object"===(void 0===e?"undefined":r(e))&&(t=e,e=void 0),t=t||{};var n,i=o(e),a=i.source,c=i.id,d=i.path,h=u[c]&&d in u[c].nsps;return t.forceNew||t["force new connection"]||!1===t.multiplex||h?(l("ignoring socket cache for %s",a),n=s(a,t)):(u[c]||(l("new io instance for %s",a),u[c]=s(a,t)),n=u[c]),i.query&&!t.query?t.query=i.query:t&&"object"===r(t.query)&&(t.query=function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t.join("&")}(t.query)),n.socket(i.path,t)}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(1),a=n(7),s=n(17),l=n(3)("socket.io-client");e.exports=t=i;var u=t.managers={};t.protocol=a.protocol,t.connect=i,t.Manager=n(17),t.Socket=n(44)},function(e,t,n){(function(t){"use strict";var i=n(2),r=n(3)("socket.io-client:url");e.exports=function(e,n){var o=e;n=n||t.location,null==e&&(e=n.protocol+"//"+n.host),"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?n.protocol+e:n.host+e),/^(https?|wss?):\/\//.test(e)||(r("protocol-less url %s",e),e=void 0!==n?n.protocol+"//"+e:"https://"+e),r("parse %s",e),o=i(e)),o.port||(/^(http|ws)$/.test(o.protocol)?o.port="80":/^(http|ws)s$/.test(o.protocol)&&(o.port="443")),o.path=o.path||"/";var a=-1!==o.host.indexOf(":")?"["+o.host+"]":o.host;return o.id=o.protocol+"://"+a+":"+o.port,o.href=o.protocol+"://"+a+(n&&n.port===o.port?"":":"+o.port),o}}).call(t,function(){return this}())},function(e,t){var n=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,i=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];e.exports=function(e){var t=e,r=e.indexOf("["),o=e.indexOf("]");-1!=r&&-1!=o&&(e=e.substring(0,r)+e.substring(r,o).replace(/:/g,";")+e.substring(o,e.length));for(var a=n.exec(e||""),s={},l=14;l--;)s[i[l]]=a[l]||"";return-1!=r&&-1!=o&&(s.source=t,s.host=s.host.substring(1,s.host.length-1).replace(/;/g,":"),s.authority=s.authority.replace("[","").replace("]","").replace(/;/g,":"),s.ipv6uri=!0),s}},function(e,t,n){(function(i){function r(){try{return t.storage.debug}catch(e){}if(void 0!==i&&"env"in i)return i.env.DEBUG}(t=e.exports=n(5)).log=function(){return"object"==typeof console&&alert&&Function.prototype.apply.call(alert,console,arguments)},t.formatArgs=function(){var e=arguments,n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),!n)return e;var i="color: "+this.color;e=[e[0],i,"color: inherit"].concat(Array.prototype.slice.call(e,1));var r=0,o=0;return e[0].replace(/%[a-z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(o=r))})),e.splice(o,0,i),e},t.save=function(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}},t.load=r,t.useColors=function(){return"undefined"!=typeof document&&"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31},t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(r())}).call(t,n(4))},function(e,t){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function r(e){if(u===setTimeout)return setTimeout(e,0);if((u===n||!u)&&setTimeout)return u=setTimeout,setTimeout(e,0);try{return u(e,0)}catch(t){try{return u.call(null,e,0)}catch(t){return u.call(this,e,0)}}}function o(){p&&h&&(p=!1,h.length?f=h.concat(f):m=-1,f.length&&a())}function a(){if(!p){var e=r(o);p=!0;for(var t=f.length;t;){for(h=f,f=[];++m<t;)h&&h[m].run();m=-1,t=f.length}h=null,p=!1,function(e){if(c===clearTimeout)return clearTimeout(e);if((c===i||!c)&&clearTimeout)return c=clearTimeout,clearTimeout(e);try{c(e)}catch(t){try{return c.call(null,e)}catch(t){return c.call(this,e)}}}(e)}}function s(e,t){this.fun=e,this.array=t}function l(){}var u,c,d=e.exports={};!function(){try{u="function"==typeof setTimeout?setTimeout:n}catch(e){u=n}try{c="function"==typeof clearTimeout?clearTimeout:i}catch(e){c=i}}();var h,f=[],p=!1,m=-1;d.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];f.push(new s(e,t)),1!==f.length||p||r(a)},s.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=l,d.addListener=l,d.once=l,d.off=l,d.removeListener=l,d.removeAllListeners=l,d.emit=l,d.binding=function(e){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(e){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},function(e,t,n){function i(e){function n(){}function i(){var e=i,n=+new Date,a=n-(r||n);e.diff=a,e.prev=r,e.curr=n,r=n,null==e.useColors&&(e.useColors=t.useColors()),null==e.color&&e.useColors&&(e.color=t.colors[o++%t.colors.length]);for(var s=new Array(arguments.length),l=0;l<s.length;l++)s[l]=arguments[l];s[0]=t.coerce(s[0]),"string"!=typeof s[0]&&(s=["%o"].concat(s));var u=0;s[0]=s[0].replace(/%([a-z%])/g,(function(n,i){if("%%"===n)return n;u++;var r=t.formatters[i];if("function"==typeof r){var o=s[u];n=r.call(e,o),s.splice(u,1),u--}return n})),s=t.formatArgs.apply(e,s),(i.log||t.log||alert.bind(console)).apply(e,s)}n.enabled=!1,i.enabled=!0;var a=t.enabled(e)?i:n;return a.namespace=e,a}(t=e.exports=i.debug=i).coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){t.enable("")},t.enable=function(e){t.save(e);for(var n=(e||"").split(/[\s,]+/),i=n.length,r=0;r<i;r++)n[r]&&("-"===(e=n[r].replace(/[\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){var n,i;for(n=0,i=t.skips.length;n<i;n++)if(t.skips[n].test(e))return!1;for(n=0,i=t.names.length;n<i;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(6),t.names=[],t.skips=[],t.formatters={};var r,o=0},function(e,t){function n(e){return i(e,s,"day")||i(e,a,"hour")||i(e,o,"minute")||i(e,r,"second")||e+" ms"}function i(e,t,n){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}var r=1e3,o=60*r,a=60*o,s=24*a,l=365.25*s;e.exports=function(e,t){t=t||{};var i=typeof e;if("string"===i&&e.length>0)return function(e){if(!((e=String(e)).length>1e4)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n*l;case"days":case"day":case"d":return n*s;case"hours":case"hour":case"hrs":case"hr":case"h":return n*a;case"minutes":case"minute":case"mins":case"min":case"m":return n*o;case"seconds":case"second":case"secs":case"sec":case"s":return n*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}(e);if("number"===i&&!1===isNaN(e))return t.long?n(e):function(e){return e>=s?Math.round(e/s)+"d":e>=a?Math.round(e/a)+"h":e>=o?Math.round(e/o)+"m":e>=r?Math.round(e/r)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t,n){function i(){}function r(e){var n="",i=!1;return n+=e.type,t.BINARY_EVENT!=e.type&&t.BINARY_ACK!=e.type||(n+=e.attachments,n+="-"),e.nsp&&"/"!=e.nsp&&(i=!0,n+=e.nsp),null!=e.id&&(i&&(n+=",",i=!1),n+=e.id),null!=e.data&&(i&&(n+=","),n+=u.stringify(e.data)),l("encoded %j as %s",e,n),n}function o(){this.reconstructor=null}function a(e){this.reconPack=e,this.buffers=[]}function s(e){return{type:t.ERROR,data:"parser error"}}var l=n(8)("socket.io-parser"),u=n(11),c=n(13),d=n(14),h=n(16);t.protocol=4,t.types=["CONNECT","DISCONNECT","EVENT","ACK","ERROR","BINARY_EVENT","BINARY_ACK"],t.CONNECT=0,t.DISCONNECT=1,t.EVENT=2,t.ACK=3,t.ERROR=4,t.BINARY_EVENT=5,t.BINARY_ACK=6,t.Encoder=i,t.Decoder=o,i.prototype.encode=function(e,n){l("encoding packet %j",e),t.BINARY_EVENT==e.type||t.BINARY_ACK==e.type?function(e,t){d.removeBlobs(e,(function(e){var n=d.deconstructPacket(e),i=r(n.packet),o=n.buffers;o.unshift(i),t(o)}))}(e,n):n([r(e)])},c(o.prototype),o.prototype.add=function(e){var n;if("string"==typeof e)n=function(e){var n={},i=0;if(n.type=Number(e.charAt(0)),null==t.types[n.type])return s();if(t.BINARY_EVENT==n.type||t.BINARY_ACK==n.type){for(var r="";"-"!=e.charAt(++i)&&(r+=e.charAt(i),i!=e.length););if(r!=Number(r)||"-"!=e.charAt(i))throw new Error("Illegal attachments");n.attachments=Number(r)}if("/"==e.charAt(i+1))for(n.nsp="";++i&&","!=(a=e.charAt(i))&&(n.nsp+=a,i!=e.length););else n.nsp="/";var o=e.charAt(i+1);if(""!==o&&Number(o)==o){for(n.id="";++i;){var a;if(null==(a=e.charAt(i))||Number(a)!=a){--i;break}if(n.id+=e.charAt(i),i==e.length)break}n.id=Number(n.id)}return e.charAt(++i)&&(n=function(e,t){try{e.data=u.parse(t)}catch(e){return s()}return e}(n,e.substr(i))),l("decoded %s as %j",e,n),n}(e),t.BINARY_EVENT==n.type||t.BINARY_ACK==n.type?(this.reconstructor=new a(n),0===this.reconstructor.reconPack.attachments&&this.emit("decoded",n)):this.emit("decoded",n);else{if(!h(e)&&!e.base64)throw new Error("Unknown type: "+e);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");(n=this.reconstructor.takeBinaryData(e))&&(this.reconstructor=null,this.emit("decoded",n))}},o.prototype.destroy=function(){this.reconstructor&&this.reconstructor.finishedReconstruction()},a.prototype.takeBinaryData=function(e){if(this.buffers.push(e),this.buffers.length==this.reconPack.attachments){var t=d.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null},a.prototype.finishedReconstruction=function(){this.reconPack=null,this.buffers=[]}},function(e,t,n){function i(){var e;try{e=t.storage.debug}catch(e){}return e}(t=e.exports=n(9)).log=function(){return"object"==typeof console&&alert&&Function.prototype.apply.call(alert,console,arguments)},t.formatArgs=function(){var e=arguments,n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),!n)return e;var i="color: "+this.color;e=[e[0],i,"color: inherit"].concat(Array.prototype.slice.call(e,1));var r=0,o=0;return e[0].replace(/%[a-z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(o=r))})),e.splice(o,0,i),e},t.save=function(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}},t.load=i,t.useColors=function(){return"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31},t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){return JSON.stringify(e)},t.enable(i())},function(e,t,n){(t=e.exports=function(e){function n(){}function o(){var e=o,n=+new Date,a=n-(i||n);e.diff=a,e.prev=i,e.curr=n,i=n,null==e.useColors&&(e.useColors=t.useColors()),null==e.color&&e.useColors&&(e.color=t.colors[r++%t.colors.length]);var s=Array.prototype.slice.call(arguments);s[0]=t.coerce(s[0]),"string"!=typeof s[0]&&(s=["%o"].concat(s));var l=0;s[0]=s[0].replace(/%([a-z%])/g,(function(n,i){if("%%"===n)return n;l++;var r=t.formatters[i];if("function"==typeof r){var o=s[l];n=r.call(e,o),s.splice(l,1),l--}return n})),"function"==typeof t.formatArgs&&(s=t.formatArgs.apply(e,s)),(o.log||t.log||alert.bind(console)).apply(e,s)}n.enabled=!1,o.enabled=!0;var a=t.enabled(e)?o:n;return a.namespace=e,a}).coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){t.enable("")},t.enable=function(e){t.save(e);for(var n=(e||"").split(/[\s,]+/),i=n.length,r=0;r<i;r++)n[r]&&("-"===(e=n[r].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){var n,i;for(n=0,i=t.skips.length;n<i;n++)if(t.skips[n].test(e))return!1;for(n=0,i=t.names.length;n<i;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(10),t.names=[],t.skips=[],t.formatters={};var i,r=0},function(e,t){function n(e,t,n){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}var i=1e3,r=6e4,o=36e5,a=24*o;e.exports=function(e,t){return t=t||{},"string"==typeof e?function(e){if(!((e=""+e).length>1e4)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*n;case"days":case"day":case"d":return n*a;case"hours":case"hour":case"hrs":case"hr":case"h":return n*o;case"minutes":case"minute":case"mins":case"min":case"m":return n*r;case"seconds":case"second":case"secs":case"sec":case"s":return n*i;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n}}}}(e):t.long?function(e){return n(e,a,"day")||n(e,o,"hour")||n(e,r,"minute")||n(e,i,"second")||e+" ms"}(e):function(e){return e>=a?Math.round(e/a)+"d":e>=o?Math.round(e/o)+"h":e>=r?Math.round(e/r)+"m":e>=i?Math.round(e/i)+"s":e+"ms"}(e)}},function(e,t,n){(function(e,n){(function(){function i(e,t){function n(e){if(n[e]!==g)return n[e];var i;if("bug-string-char-index"==e)i="a"!="a"[0];else if("json"==e)i=n("json-stringify")&&n("json-parse");else{var r,a='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==e){var l=t.stringify,c="function"==typeof l&&y;if(c){(r=function(){return 1}).toJSON=r;try{c="0"===l(0)&&"0"===l(new o)&&'""'==l(new s)&&l(_)===g&&l(g)===g&&l()===g&&"1"===l(r)&&"[1]"==l([r])&&"[null]"==l([g])&&"null"==l(null)&&"[null,null,null]"==l([g,_,null])&&l({a:[r,!0,!1,null,"\0\b\n\f\r\t"]})==a&&"1"===l(null,r)&&"[\n 1,\n 2\n]"==l([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==l(new u(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==l(new u(864e13))&&'"-000001-01-01T00:00:00.000Z"'==l(new u(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==l(new u(-1))}catch(e){c=!1}}i=c}if("json-parse"==e){var d=t.parse;if("function"==typeof d)try{if(0===d("0")&&!d(!1)){var h=5==(r=d(a)).a.length&&1===r.a[0];if(h){try{h=!d('"\t"')}catch(e){}if(h)try{h=1!==d("01")}catch(e){}if(h)try{h=1!==d("1.")}catch(e){}}}}catch(e){h=!1}i=h}}return n[e]=!!i}e||(e=a.Object()),t||(t=a.Object());var o=e.Number||a.Number,s=e.String||a.String,l=e.Object||a.Object,u=e.Date||a.Date,c=e.SyntaxError||a.SyntaxError,d=e.TypeError||a.TypeError,h=e.Math||a.Math,f=e.JSON||a.JSON;"object"==typeof f&&f&&(t.stringify=f.stringify,t.parse=f.parse);var p,m,g,v=l.prototype,_=v.toString,y=new u(-0xc782b5b800cec);try{y=-109252==y.getUTCFullYear()&&0===y.getUTCMonth()&&1===y.getUTCDate()&&10==y.getUTCHours()&&37==y.getUTCMinutes()&&6==y.getUTCSeconds()&&708==y.getUTCMilliseconds()}catch(e){}if(!n("json")){var b="[object Function]",w="[object Number]",L="[object String]",M="[object Array]",k=n("bug-string-char-index");if(!y)var x=h.floor,S=[0,31,59,90,120,151,181,212,243,273,304,334],T=function(e,t){return S[t]+365*(e-1970)+x((e-1969+(t=+(t>1)))/4)-x((e-1901+t)/100)+x((e-1601+t)/400)};if((p=v.hasOwnProperty)||(p=function(e){var t,n={};return(n.__proto__=null,n.__proto__={toString:1},n).toString!=_?p=function(e){var t=this.__proto__,n=e in(this.__proto__=null,this);return this.__proto__=t,n}:(t=n.constructor,p=function(e){var n=(this.constructor||t).prototype;return e in this&&!(e in n&&this[e]===n[e])}),n=null,p.call(this,e)}),m=function(e,t){var n,i,o,a=0;for(o in(n=function(){this.valueOf=0}).prototype.valueOf=0,i=new n)p.call(i,o)&&a++;return n=i=null,a?m=2==a?function(e,t){var n,i={},r=_.call(e)==b;for(n in e)r&&"prototype"==n||p.call(i,n)||!(i[n]=1)||!p.call(e,n)||t(n)}:function(e,t){var n,i,r=_.call(e)==b;for(n in e)r&&"prototype"==n||!p.call(e,n)||(i="constructor"===n)||t(n);(i||p.call(e,n="constructor"))&&t(n)}:(i=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],m=function(e,t){var n,o,a=_.call(e)==b,s=!a&&"function"!=typeof e.constructor&&r[typeof e.hasOwnProperty]&&e.hasOwnProperty||p;for(n in e)a&&"prototype"==n||!s.call(e,n)||t(n);for(o=i.length;n=i[--o];s.call(e,n)&&t(n));}),m(e,t)},!n("json-stringify")){var $={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},D=function(e,t){return("000000"+(t||0)).slice(-e)},C=function(e){for(var t='"',n=0,i=e.length,r=!k||i>10,o=r&&(k?e.split(""):e);n<i;n++){var a=e.charCodeAt(n);switch(a){case 8:case 9:case 10:case 12:case 13:case 34:case 92:t+=$[a];break;default:if(a<32){t+="\\u00"+D(2,a.toString(16));break}t+=r?o[n]:e.charAt(n)}}return t+'"'},E=function(e,t,n,i,r,o,a){var s,l,u,c,h,f,v,y,b,k,S,$,A,P,Y,O;try{s=t[e]}catch(e){}if("object"==typeof s&&s)if("[object Date]"!=(l=_.call(s))||p.call(s,"toJSON"))"function"==typeof s.toJSON&&(l!=w&&l!=L&&l!=M||p.call(s,"toJSON"))&&(s=s.toJSON(e));else if(s>-1/0&&s<1/0){if(T){for(h=x(s/864e5),u=x(h/365.2425)+1970-1;T(u+1,0)<=h;u++);for(c=x((h-T(u,0))/30.42);T(u,c+1)<=h;c++);h=1+h-T(u,c),v=x((f=(s%864e5+864e5)%864e5)/36e5)%24,y=x(f/6e4)%60,b=x(f/1e3)%60,k=f%1e3}else u=s.getUTCFullYear(),c=s.getUTCMonth(),h=s.getUTCDate(),v=s.getUTCHours(),y=s.getUTCMinutes(),b=s.getUTCSeconds(),k=s.getUTCMilliseconds();s=(u<=0||u>=1e4?(u<0?"-":"+")+D(6,u<0?-u:u):D(4,u))+"-"+D(2,c+1)+"-"+D(2,h)+"T"+D(2,v)+":"+D(2,y)+":"+D(2,b)+"."+D(3,k)+"Z"}else s=null;if(n&&(s=n.call(t,e,s)),null===s)return"null";if("[object Boolean]"==(l=_.call(s)))return""+s;if(l==w)return s>-1/0&&s<1/0?""+s:"null";if(l==L)return C(""+s);if("object"==typeof s){for(P=a.length;P--;)if(a[P]===s)throw d();if(a.push(s),S=[],Y=o,o+=r,l==M){for(A=0,P=s.length;A<P;A++)$=E(A,s,n,i,r,o,a),S.push($===g?"null":$);O=S.length?r?"[\n"+o+S.join(",\n"+o)+"\n"+Y+"]":"["+S.join(",")+"]":"[]"}else m(i||s,(function(e){var t=E(e,s,n,i,r,o,a);t!==g&&S.push(C(e)+":"+(r?" ":"")+t)})),O=S.length?r?"{\n"+o+S.join(",\n"+o)+"\n"+Y+"}":"{"+S.join(",")+"}":"{}";return a.pop(),O}};t.stringify=function(e,t,n){var i,o,a,s;if(r[typeof t]&&t)if((s=_.call(t))==b)o=t;else if(s==M){a={};for(var l,u=0,c=t.length;u<c;l=t[u++],((s=_.call(l))==L||s==w)&&(a[l]=1));}if(n)if((s=_.call(n))==w){if((n-=n%1)>0)for(i="",n>10&&(n=10);i.length<n;i+=" ");}else s==L&&(i=n.length<=10?n:n.slice(0,10));return E("",((l={})[""]=e,l),o,a,i,"",[])}}if(!n("json-parse")){var A,P,Y=s.fromCharCode,O={92:"\\",34:'"',47:"/",98:"\b",116:"\t",110:"\n",102:"\f",114:"\r"},I=function(){throw A=P=null,c()},j=function(){for(var e,t,n,i,r,o=P,a=o.length;A<a;)switch(r=o.charCodeAt(A)){case 9:case 10:case 13:case 32:A++;break;case 123:case 125:case 91:case 93:case 58:case 44:return e=k?o.charAt(A):o[A],A++,e;case 34:for(e="@",A++;A<a;)if((r=o.charCodeAt(A))<32)I();else if(92==r)switch(r=o.charCodeAt(++A)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:e+=O[r],A++;break;case 117:for(t=++A,n=A+4;A<n;A++)(r=o.charCodeAt(A))>=48&&r<=57||r>=97&&r<=102||r>=65&&r<=70||I();e+=Y("0x"+o.slice(t,A));break;default:I()}else{if(34==r)break;for(r=o.charCodeAt(A),t=A;r>=32&&92!=r&&34!=r;)r=o.charCodeAt(++A);e+=o.slice(t,A)}if(34==o.charCodeAt(A))return A++,e;I();default:if(t=A,45==r&&(i=!0,r=o.charCodeAt(++A)),r>=48&&r<=57){for(48==r&&(r=o.charCodeAt(A+1))>=48&&r<=57&&I(),i=!1;A<a&&(r=o.charCodeAt(A))>=48&&r<=57;A++);if(46==o.charCodeAt(A)){for(n=++A;n<a&&(r=o.charCodeAt(n))>=48&&r<=57;n++);n==A&&I(),A=n}if(101==(r=o.charCodeAt(A))||69==r){for(43!=(r=o.charCodeAt(++A))&&45!=r||A++,n=A;n<a&&(r=o.charCodeAt(n))>=48&&r<=57;n++);n==A&&I(),A=n}return+o.slice(t,A)}if(i&&I(),"true"==o.slice(A,A+4))return A+=4,!0;if("false"==o.slice(A,A+5))return A+=5,!1;if("null"==o.slice(A,A+4))return A+=4,null;I()}return"$"},H=function(e){var t,n;if("$"==e&&I(),"string"==typeof e){if("@"==(k?e.charAt(0):e[0]))return e.slice(1);if("["==e){for(t=[];"]"!=(e=j());n||(n=!0))n&&(","==e?"]"==(e=j())&&I():I()),","==e&&I(),t.push(H(e));return t}if("{"==e){for(t={};"}"!=(e=j());n||(n=!0))n&&(","==e?"}"==(e=j())&&I():I()),","!=e&&"string"==typeof e&&"@"==(k?e.charAt(0):e[0])&&":"==j()||I(),t[e.slice(1)]=H(j());return t}I()}return e},B=function(e,t,n){var i=N(e,t,n);i===g?delete e[t]:e[t]=i},N=function(e,t,n){var i,r=e[t];if("object"==typeof r&&r)if(_.call(r)==M)for(i=r.length;i--;)B(r,i,n);else m(r,(function(e){B(r,e,n)}));return n.call(e,t,r)};t.parse=function(e,t){var n,i;return A=0,P=""+e,n=H(j()),"$"!=j()&&I(),A=P=null,t&&_.call(t)==b?N(((i={})[""]=n,i),"",t):n}}}return t.runInContext=i,t}var r={function:!0,object:!0},o=r[typeof t]&&t&&!t.nodeType&&t,a=r[typeof window]&&window||this,s=o&&r[typeof e]&&e&&!e.nodeType&&"object"==typeof n&&n;if(!s||s.global!==s&&s.window!==s&&s.self!==s||(a=s),o)i(a,o);else{var l=a.JSON,u=a.JSON3,c=!1,d=i(a,a.JSON3={noConflict:function(){return c||(c=!0,a.JSON=l,a.JSON3=u,l=u=null),d}});a.JSON={parse:d.parse,stringify:d.stringify}}}).call(this)}).call(t,n(12)(e),function(){return this}())},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t){function n(e){if(e)return function(e){for(var t in n.prototype)e[t]=n.prototype[t];return e}(e)}e.exports=n,n.prototype.on=n.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},n.prototype.once=function(e,t){function n(){i.off(e,n),t.apply(this,arguments)}var i=this;return this._callbacks=this._callbacks||{},n.fn=t,this.on(e,n),this},n.prototype.off=n.prototype.removeListener=n.prototype.removeAllListeners=n.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks[e];if(!n)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var i,r=0;r<n.length;r++)if((i=n[r])===t||i.fn===t){n.splice(r,1);break}return this},n.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=[].slice.call(arguments,1),n=this._callbacks[e];if(n)for(var i=0,r=(n=n.slice(0)).length;i<r;++i)n[i].apply(this,t);return this},n.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks[e]||[]},n.prototype.hasListeners=function(e){return!!this.listeners(e).length}},function(e,t,n){(function(e){var i=n(15),r=n(16);t.deconstructPacket=function(e){var t=[],n=e.data,o=e;return o.data=function e(n){if(!n)return n;if(r(n)){var o={_placeholder:!0,num:t.length};return t.push(n),o}if(i(n)){for(var a=new Array(n.length),s=0;s<n.length;s++)a[s]=e(n[s]);return a}if("object"==typeof n&&!(n instanceof Date)){for(var l in a={},n)a[l]=e(n[l]);return a}return n}(n),o.attachments=t.length,{packet:o,buffers:t}},t.reconstructPacket=function(e,t){return e.data=function e(n){if(n&&n._placeholder)return t[n.num];if(i(n)){for(var r=0;r<n.length;r++)n[r]=e(n[r]);return n}if(n&&"object"==typeof n){for(var o in n)n[o]=e(n[o]);return n}return n}(e.data),e.attachments=void 0,e},t.removeBlobs=function(t,n){var o=0,a=t;(function t(s,l,u){if(!s)return s;if(e.Blob&&s instanceof Blob||e.File&&s instanceof File){o++;var c=new FileReader;c.onload=function(){u?u[l]=this.result:a=this.result,--o||n(a)},c.readAsArrayBuffer(s)}else if(i(s))for(var d=0;d<s.length;d++)t(s[d],d,s);else if(s&&"object"==typeof s&&!r(s))for(var h in s)t(s[h],h,s)})(a),o||n(a)}}).call(t,function(){return this}())},function(e,t){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},function(e,t){(function(t){e.exports=function(e){return t.Buffer&&t.Buffer.isBuffer(e)||t.ArrayBuffer&&e instanceof ArrayBuffer}}).call(t,function(){return this}())},function(e,t,n){"use strict";function i(e,t){return this instanceof i?(e&&"object"===(void 0===e?"undefined":r(e))&&(t=e,e=void 0),(t=t||{}).path=t.path||"/socket.io",this.nsps={},this.subs=[],this.opts=t,this.reconnection(!1!==t.reconnection),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(t.randomizationFactor||.5),this.backoff=new f({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==t.timeout?2e4:t.timeout),this.readyState="closed",this.uri=e,this.connecting=[],this.lastPing=null,this.encoding=!1,this.packetBuffer=[],this.encoder=new l.Encoder,this.decoder=new l.Decoder,this.autoConnect=!1!==t.autoConnect,void(this.autoConnect&&this.open())):new i(e,t)}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(18),a=n(44),s=n(35),l=n(7),u=n(46),c=n(47),d=n(3)("socket.io-client:manager"),h=n(42),f=n(48),p=Object.prototype.hasOwnProperty;e.exports=i,i.prototype.emitAll=function(){for(var e in this.emit.apply(this,arguments),this.nsps)p.call(this.nsps,e)&&this.nsps[e].emit.apply(this.nsps[e],arguments)},i.prototype.updateSocketIds=function(){for(var e in this.nsps)p.call(this.nsps,e)&&(this.nsps[e].id=this.engine.id)},s(i.prototype),i.prototype.reconnection=function(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection},i.prototype.reconnectionAttempts=function(e){return arguments.length?(this._reconnectionAttempts=e,this):this._reconnectionAttempts},i.prototype.reconnectionDelay=function(e){return arguments.length?(this._reconnectionDelay=e,this.backoff&&this.backoff.setMin(e),this):this._reconnectionDelay},i.prototype.randomizationFactor=function(e){return arguments.length?(this._randomizationFactor=e,this.backoff&&this.backoff.setJitter(e),this):this._randomizationFactor},i.prototype.reconnectionDelayMax=function(e){return arguments.length?(this._reconnectionDelayMax=e,this.backoff&&this.backoff.setMax(e),this):this._reconnectionDelayMax},i.prototype.timeout=function(e){return arguments.length?(this._timeout=e,this):this._timeout},i.prototype.maybeReconnectOnOpen=function(){!this.reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()},i.prototype.open=i.prototype.connect=function(e,t){if(d("readyState %s",this.readyState),~this.readyState.indexOf("open"))return this;d("opening %s",this.uri),this.engine=o(this.uri,this.opts);var n=this.engine,i=this;this.readyState="opening",this.skipReconnect=!1;var r=u(n,"open",(function(){i.onopen(),e&&e()})),a=u(n,"error",(function(t){if(d("connect_error"),i.cleanup(),i.readyState="closed",i.emitAll("connect_error",t),e){var n=new Error("Connection error");n.data=t,e(n)}else i.maybeReconnectOnOpen()}));if(!1!==this._timeout){var s=this._timeout;d("connect attempt will timeout after %d",s);var l=setTimeout((function(){d("connect attempt timed out after %d",s),r.destroy(),n.close(),n.emit("error","timeout"),i.emitAll("connect_timeout",s)}),s);this.subs.push({destroy:function(){clearTimeout(l)}})}return this.subs.push(r),this.subs.push(a),this},i.prototype.onopen=function(){d("open"),this.cleanup(),this.readyState="open",this.emit("open");var e=this.engine;this.subs.push(u(e,"data",c(this,"ondata"))),this.subs.push(u(e,"ping",c(this,"onping"))),this.subs.push(u(e,"pong",c(this,"onpong"))),this.subs.push(u(e,"error",c(this,"onerror"))),this.subs.push(u(e,"close",c(this,"onclose"))),this.subs.push(u(this.decoder,"decoded",c(this,"ondecoded")))},i.prototype.onping=function(){this.lastPing=new Date,this.emitAll("ping")},i.prototype.onpong=function(){this.emitAll("pong",new Date-this.lastPing)},i.prototype.ondata=function(e){this.decoder.add(e)},i.prototype.ondecoded=function(e){this.emit("packet",e)},i.prototype.onerror=function(e){d("error",e),this.emitAll("error",e)},i.prototype.socket=function(e,t){function n(){~h(r.connecting,i)||r.connecting.push(i)}var i=this.nsps[e];if(!i){i=new a(this,e,t),this.nsps[e]=i;var r=this;i.on("connecting",n),i.on("connect",(function(){i.id=r.engine.id})),this.autoConnect&&n()}return i},i.prototype.destroy=function(e){var t=h(this.connecting,e);~t&&this.connecting.splice(t,1),this.connecting.length||this.close()},i.prototype.packet=function(e){d("writing packet %j",e);var t=this;e.query&&0===e.type&&(e.nsp+="?"+e.query),t.encoding?t.packetBuffer.push(e):(t.encoding=!0,this.encoder.encode(e,(function(n){for(var i=0;i<n.length;i++)t.engine.write(n[i],e.options);t.encoding=!1,t.processPacketQueue()})))},i.prototype.processPacketQueue=function(){if(this.packetBuffer.length>0&&!this.encoding){var e=this.packetBuffer.shift();this.packet(e)}},i.prototype.cleanup=function(){d("cleanup");for(var e=this.subs.length,t=0;t<e;t++)this.subs.shift().destroy();this.packetBuffer=[],this.encoding=!1,this.lastPing=null,this.decoder.destroy()},i.prototype.close=i.prototype.disconnect=function(){d("disconnect"),this.skipReconnect=!0,this.reconnecting=!1,"opening"===this.readyState&&this.cleanup(),this.backoff.reset(),this.readyState="closed",this.engine&&this.engine.close()},i.prototype.onclose=function(e){d("onclose"),this.cleanup(),this.backoff.reset(),this.readyState="closed",this.emit("close",e),this._reconnection&&!this.skipReconnect&&this.reconnect()},i.prototype.reconnect=function(){if(this.reconnecting||this.skipReconnect)return this;var e=this;if(this.backoff.attempts>=this._reconnectionAttempts)d("reconnect failed"),this.backoff.reset(),this.emitAll("reconnect_failed"),this.reconnecting=!1;else{var t=this.backoff.duration();d("will wait %dms before reconnect attempt",t),this.reconnecting=!0;var n=setTimeout((function(){e.skipReconnect||(d("attempting reconnect"),e.emitAll("reconnect_attempt",e.backoff.attempts),e.emitAll("reconnecting",e.backoff.attempts),e.skipReconnect||e.open((function(t){t?(d("reconnect attempt error"),e.reconnecting=!1,e.reconnect(),e.emitAll("reconnect_error",t.data)):(d("reconnect success"),e.onreconnect())})))}),t);this.subs.push({destroy:function(){clearTimeout(n)}})}},i.prototype.onreconnect=function(){var e=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll("reconnect",e)}},function(e,t,n){e.exports=n(19)},function(e,t,n){e.exports=n(20),e.exports.parser=n(27)},function(e,t,n){(function(t){function i(e,n){if(!(this instanceof i))return new i(e,n);n=n||{},e&&"object"==typeof e&&(n=e,e=null),e?(e=u(e),n.hostname=e.host,n.secure="https"===e.protocol||"wss"===e.protocol,n.port=e.port,e.query&&(n.query=e.query)):n.host&&(n.hostname=u(n.host).host),this.secure=null!=n.secure?n.secure:t.location&&"https:"===location.protocol,n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.agent=n.agent||!1,this.hostname=n.hostname||(t.location?location.hostname:"localhost"),this.port=n.port||(t.location&&location.port?location.port:this.secure?443:80),this.query=n.query||{},"string"==typeof this.query&&(this.query=d.decode(this.query)),this.upgrade=!1!==n.upgrade,this.path=(n.path||"/engine.io").replace(/\/$/,"")+"/",this.forceJSONP=!!n.forceJSONP,this.jsonp=!1!==n.jsonp,this.forceBase64=!!n.forceBase64,this.enablesXDR=!!n.enablesXDR,this.timestampParam=n.timestampParam||"t",this.timestampRequests=n.timestampRequests,this.transports=n.transports||["polling","websocket"],this.readyState="",this.writeBuffer=[],this.prevBufferLen=0,this.policyPort=n.policyPort||843,this.rememberUpgrade=n.rememberUpgrade||!1,this.binaryType=null,this.onlyBinaryUpgrades=n.onlyBinaryUpgrades,this.perMessageDeflate=!1!==n.perMessageDeflate&&(n.perMessageDeflate||{}),!0===this.perMessageDeflate&&(this.perMessageDeflate={}),this.perMessageDeflate&&null==this.perMessageDeflate.threshold&&(this.perMessageDeflate.threshold=1024),this.pfx=n.pfx||null,this.key=n.key||null,this.passphrase=n.passphrase||null,this.cert=n.cert||null,this.ca=n.ca||null,this.ciphers=n.ciphers||null,this.rejectUnauthorized=void 0===n.rejectUnauthorized?null:n.rejectUnauthorized,this.forceNode=!!n.forceNode;var r="object"==typeof t&&t;r.global===r&&(n.extraHeaders&&Object.keys(n.extraHeaders).length>0&&(this.extraHeaders=n.extraHeaders),n.localAddress&&(this.localAddress=n.localAddress)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingIntervalTimer=null,this.pingTimeoutTimer=null,this.open()}var r=n(21),o=n(35),a=n(3)("engine.io-client:socket"),s=n(42),l=n(27),u=n(2),c=n(43),d=n(36);e.exports=i,i.priorWebsocketSuccess=!1,o(i.prototype),i.protocol=l.protocol,i.Socket=i,i.Transport=n(26),i.transports=n(21),i.parser=n(27),i.prototype.createTransport=function(e){a('creating transport "%s"',e);var t=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}(this.query);return t.EIO=l.protocol,t.transport=e,this.id&&(t.sid=this.id),new r[e]({agent:this.agent,hostname:this.hostname,port:this.port,secure:this.secure,path:this.path,query:t,forceJSONP:this.forceJSONP,jsonp:this.jsonp,forceBase64:this.forceBase64,enablesXDR:this.enablesXDR,timestampRequests:this.timestampRequests,timestampParam:this.timestampParam,policyPort:this.policyPort,socket:this,pfx:this.pfx,key:this.key,passphrase:this.passphrase,cert:this.cert,ca:this.ca,ciphers:this.ciphers,rejectUnauthorized:this.rejectUnauthorized,perMessageDeflate:this.perMessageDeflate,extraHeaders:this.extraHeaders,forceNode:this.forceNode,localAddress:this.localAddress})},i.prototype.open=function(){var e;if(this.rememberUpgrade&&i.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length){var t=this;return void setTimeout((function(){t.emit("error","No transports available")}),0)}e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(e){return this.transports.shift(),void this.open()}e.open(),this.setTransport(e)},i.prototype.setTransport=function(e){a("setting transport %s",e.name);var t=this;this.transport&&(a("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=e,e.on("drain",(function(){t.onDrain()})).on("packet",(function(e){t.onPacket(e)})).on("error",(function(e){t.onError(e)})).on("close",(function(){t.onClose("transport close")}))},i.prototype.probe=function(e){function t(){if(h.onlyBinaryUpgrades){var t=!this.supportsBinary&&h.transport.supportsBinary;d=d||t}d||(a('probe transport "%s" opened',e),c.send([{type:"ping",data:"probe"}]),c.once("packet",(function(t){if(!d)if("pong"===t.type&&"probe"===t.data){if(a('probe transport "%s" pong',e),h.upgrading=!0,h.emit("upgrading",c),!c)return;i.priorWebsocketSuccess="websocket"===c.name,a('pausing current transport "%s"',h.transport.name),h.transport.pause((function(){d||"closed"!==h.readyState&&(a("changing transport and sending upgrade packet"),u(),h.setTransport(c),c.send([{type:"upgrade"}]),h.emit("upgrade",c),c=null,h.upgrading=!1,h.flush())}))}else{a('probe transport "%s" failed',e);var n=new Error("probe error");n.transport=c.name,h.emit("upgradeError",n)}})))}function n(){d||(d=!0,u(),c.close(),c=null)}function r(t){var i=new Error("probe error: "+t);i.transport=c.name,n(),a('probe transport "%s" failed because of error: %s',e,t),h.emit("upgradeError",i)}function o(){r("transport closed")}function s(){r("socket closed")}function l(e){c&&e.name!==c.name&&(a('"%s" works - aborting "%s"',e.name,c.name),n())}function u(){c.removeListener("open",t),c.removeListener("error",r),c.removeListener("close",o),h.removeListener("close",s),h.removeListener("upgrading",l)}a('probing transport "%s"',e);var c=this.createTransport(e,{probe:1}),d=!1,h=this;i.priorWebsocketSuccess=!1,c.once("open",t),c.once("error",r),c.once("close",o),this.once("close",s),this.once("upgrading",l),c.open()},i.prototype.onOpen=function(){if(a("socket open"),this.readyState="open",i.priorWebsocketSuccess="websocket"===this.transport.name,this.emit("open"),this.flush(),"open"===this.readyState&&this.upgrade&&this.transport.pause){a("starting upgrade probes");for(var e=0,t=this.upgrades.length;e<t;e++)this.probe(this.upgrades[e])}},i.prototype.onPacket=function(e){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(a('socket receive: type "%s", data "%s"',e.type,e.data),this.emit("packet",e),this.emit("heartbeat"),e.type){case"open":this.onHandshake(c(e.data));break;case"pong":this.setPing(),this.emit("pong");break;case"error":var t=new Error("server error");t.code=e.data,this.onError(t);break;case"message":this.emit("data",e.data),this.emit("message",e.data)}else a('packet received with socket readyState "%s"',this.readyState)},i.prototype.onHandshake=function(e){this.emit("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this.upgrades=this.filterUpgrades(e.upgrades),this.pingInterval=e.pingInterval,this.pingTimeout=e.pingTimeout,this.onOpen(),"closed"!==this.readyState&&(this.setPing(),this.removeListener("heartbeat",this.onHeartbeat),this.on("heartbeat",this.onHeartbeat))},i.prototype.onHeartbeat=function(e){clearTimeout(this.pingTimeoutTimer);var t=this;t.pingTimeoutTimer=setTimeout((function(){"closed"!==t.readyState&&t.onClose("ping timeout")}),e||t.pingInterval+t.pingTimeout)},i.prototype.setPing=function(){var e=this;clearTimeout(e.pingIntervalTimer),e.pingIntervalTimer=setTimeout((function(){a("writing ping packet - expecting pong within %sms",e.pingTimeout),e.ping(),e.onHeartbeat(e.pingTimeout)}),e.pingInterval)},i.prototype.ping=function(){var e=this;this.sendPacket("ping",(function(){e.emit("ping")}))},i.prototype.onDrain=function(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emit("drain"):this.flush()},i.prototype.flush=function(){"closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length&&(a("flushing %d packets in socket",this.writeBuffer.length),this.transport.send(this.writeBuffer),this.prevBufferLen=this.writeBuffer.length,this.emit("flush"))},i.prototype.write=i.prototype.send=function(e,t,n){return this.sendPacket("message",e,t,n),this},i.prototype.sendPacket=function(e,t,n,i){if("function"==typeof t&&(i=t,t=void 0),"function"==typeof n&&(i=n,n=null),"closing"!==this.readyState&&"closed"!==this.readyState){(n=n||{}).compress=!1!==n.compress;var r={type:e,data:t,options:n};this.emit("packetCreate",r),this.writeBuffer.push(r),i&&this.once("flush",i),this.flush()}},i.prototype.close=function(){function e(){i.onClose("forced close"),a("socket closing - telling transport to close"),i.transport.close()}function t(){i.removeListener("upgrade",t),i.removeListener("upgradeError",t),e()}function n(){i.once("upgrade",t),i.once("upgradeError",t)}if("opening"===this.readyState||"open"===this.readyState){this.readyState="closing";var i=this;this.writeBuffer.length?this.once("drain",(function(){this.upgrading?n():e()})):this.upgrading?n():e()}return this},i.prototype.onError=function(e){a("socket error %j",e),i.priorWebsocketSuccess=!1,this.emit("error",e),this.onClose("transport error",e)},i.prototype.onClose=function(e,t){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(a('socket close with reason: "%s"',e),clearTimeout(this.pingIntervalTimer),clearTimeout(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),this.readyState="closed",this.id=null,this.emit("close",e,t),this.writeBuffer=[],this.prevBufferLen=0)},i.prototype.filterUpgrades=function(e){for(var t=[],n=0,i=e.length;n<i;n++)~s(this.transports,e[n])&&t.push(e[n]);return t}}).call(t,function(){return this}())},function(e,t,n){(function(e){var i=n(22),r=n(24),o=n(39),a=n(40);t.polling=function(t){var n=!1,a=!1,s=!1!==t.jsonp;if(e.location){var l="https:"===location.protocol,u=location.port;u||(u=l?443:80),n=t.hostname!==location.hostname||u!==t.port,a=t.secure!==l}if(t.xdomain=n,t.xscheme=a,"open"in new i(t)&&!t.forceJSONP)return new r(t);if(!s)throw new Error("JSONP disabled");return new o(t)},t.websocket=a}).call(t,function(){return this}())},function(e,t,n){(function(t){var i=n(23);e.exports=function(e){var n=e.xdomain,r=e.xscheme,o=e.enablesXDR;try{if("undefined"!=typeof XMLHttpRequest&&(!n||i))return new XMLHttpRequest}catch(e){}try{if("undefined"!=typeof XDomainRequest&&!r&&o)return new XDomainRequest}catch(e){}if(!n)try{return new(t[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(e){}}}).call(t,function(){return this}())},function(e,t){try{e.exports="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(t){e.exports=!1}},function(e,t,n){(function(t){function i(){}function r(e){if(l.call(this,e),this.requestTimeout=e.requestTimeout,t.location){var n="https:"===location.protocol,i=location.port;i||(i=n?443:80),this.xd=e.hostname!==t.location.hostname||i!==e.port,this.xs=e.secure!==n}else this.extraHeaders=e.extraHeaders}function o(e){this.method=e.method||"GET",this.uri=e.uri,this.xd=!!e.xd,this.xs=!!e.xs,this.async=!1!==e.async,this.data=void 0!==e.data?e.data:null,this.agent=e.agent,this.isBinary=e.isBinary,this.supportsBinary=e.supportsBinary,this.enablesXDR=e.enablesXDR,this.requestTimeout=e.requestTimeout,this.pfx=e.pfx,this.key=e.key,this.passphrase=e.passphrase,this.cert=e.cert,this.ca=e.ca,this.ciphers=e.ciphers,this.rejectUnauthorized=e.rejectUnauthorized,this.extraHeaders=e.extraHeaders,this.create()}function a(){for(var e in o.requests)o.requests.hasOwnProperty(e)&&o.requests[e].abort()}var s=n(22),l=n(25),u=n(35),c=n(37),d=n(3)("engine.io-client:polling-xhr");e.exports=r,e.exports.Request=o,c(r,l),r.prototype.supportsBinary=!0,r.prototype.request=function(e){return(e=e||{}).uri=this.uri(),e.xd=this.xd,e.xs=this.xs,e.agent=this.agent||!1,e.supportsBinary=this.supportsBinary,e.enablesXDR=this.enablesXDR,e.pfx=this.pfx,e.key=this.key,e.passphrase=this.passphrase,e.cert=this.cert,e.ca=this.ca,e.ciphers=this.ciphers,e.rejectUnauthorized=this.rejectUnauthorized,e.requestTimeout=this.requestTimeout,e.extraHeaders=this.extraHeaders,new o(e)},r.prototype.doWrite=function(e,t){var n="string"!=typeof e&&void 0!==e,i=this.request({method:"POST",data:e,isBinary:n}),r=this;i.on("success",t),i.on("error",(function(e){r.onError("xhr post error",e)})),this.sendXhr=i},r.prototype.doPoll=function(){d("xhr poll");var e=this.request(),t=this;e.on("data",(function(e){t.onData(e)})),e.on("error",(function(e){t.onError("xhr poll error",e)})),this.pollXhr=e},u(o.prototype),o.prototype.create=function(){var e={agent:this.agent,xdomain:this.xd,xscheme:this.xs,enablesXDR:this.enablesXDR};e.pfx=this.pfx,e.key=this.key,e.passphrase=this.passphrase,e.cert=this.cert,e.ca=this.ca,e.ciphers=this.ciphers,e.rejectUnauthorized=this.rejectUnauthorized;var n=this.xhr=new s(e),i=this;try{d("xhr open %s: %s",this.method,this.uri),n.open(this.method,this.uri,this.async);try{if(this.extraHeaders)for(var r in n.setDisableHeaderCheck(!0),this.extraHeaders)this.extraHeaders.hasOwnProperty(r)&&n.setRequestHeader(r,this.extraHeaders[r])}catch(e){}if(this.supportsBinary&&(n.responseType="arraybuffer"),"POST"===this.method)try{this.isBinary?n.setRequestHeader("Content-type","application/octet-stream"):n.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(e){}try{n.setRequestHeader("Accept","*/*")}catch(e){}"withCredentials"in n&&(n.withCredentials=!0),this.requestTimeout&&(n.timeout=this.requestTimeout),this.hasXDR()?(n.onload=function(){i.onLoad()},n.onerror=function(){i.onError(n.responseText)}):n.onreadystatechange=function(){4===n.readyState&&(200===n.status||1223===n.status?i.onLoad():setTimeout((function(){i.onError(n.status)}),0))},d("xhr data %s",this.data),n.send(this.data)}catch(e){return void setTimeout((function(){i.onError(e)}),0)}t.document&&(this.index=o.requestsCount++,o.requests[this.index]=this)},o.prototype.onSuccess=function(){this.emit("success"),this.cleanup()},o.prototype.onData=function(e){this.emit("data",e),this.onSuccess()},o.prototype.onError=function(e){this.emit("error",e),this.cleanup(!0)},o.prototype.cleanup=function(e){if(void 0!==this.xhr&&null!==this.xhr){if(this.hasXDR()?this.xhr.onload=this.xhr.onerror=i:this.xhr.onreadystatechange=i,e)try{this.xhr.abort()}catch(e){}t.document&&delete o.requests[this.index],this.xhr=null}},o.prototype.onLoad=function(){var e;try{var t;try{t=this.xhr.getResponseHeader("Content-Type").split(";")[0]}catch(e){}if("application/octet-stream"===t)e=this.xhr.response||this.xhr.responseText;else if(this.supportsBinary)try{e=String.fromCharCode.apply(null,new Uint8Array(this.xhr.response))}catch(t){for(var n=new Uint8Array(this.xhr.response),i=[],r=0,o=n.length;r<o;r++)i.push(n[r]);e=String.fromCharCode.apply(null,i)}else e=this.xhr.responseText}catch(e){this.onError(e)}null!=e&&this.onData(e)},o.prototype.hasXDR=function(){return void 0!==t.XDomainRequest&&!this.xs&&this.enablesXDR},o.prototype.abort=function(){this.cleanup()},o.requestsCount=0,o.requests={},t.document&&(t.attachEvent?t.attachEvent("onunload",a):t.addEventListener&&t.addEventListener("beforeunload",a,!1))}).call(t,function(){return this}())},function(e,t,n){function i(e){var t=e&&e.forceBase64;c&&!t||(this.supportsBinary=!1),r.call(this,e)}var r=n(26),o=n(36),a=n(27),s=n(37),l=n(38),u=n(3)("engine.io-client:polling");e.exports=i;var c=null!=new(n(22))({xdomain:!1}).responseType;s(i,r),i.prototype.name="polling",i.prototype.doOpen=function(){this.poll()},i.prototype.pause=function(e){function t(){u("paused"),n.readyState="paused",e()}var n=this;if(this.readyState="pausing",this.polling||!this.writable){var i=0;this.polling&&(u("we are currently polling - waiting to pause"),i++,this.once("pollComplete",(function(){u("pre-pause polling complete"),--i||t()}))),this.writable||(u("we are currently writing - waiting to pause"),i++,this.once("drain",(function(){u("pre-pause writing complete"),--i||t()})))}else t()},i.prototype.poll=function(){u("polling"),this.polling=!0,this.doPoll(),this.emit("poll")},i.prototype.onData=function(e){var t=this;u("polling got data %s",e),a.decodePayload(e,this.socket.binaryType,(function(e,n,i){return"opening"===t.readyState&&t.onOpen(),"close"===e.type?(t.onClose(),!1):void t.onPacket(e)})),"closed"!==this.readyState&&(this.polling=!1,this.emit("pollComplete"),"open"===this.readyState?this.poll():u('ignoring poll - transport state "%s"',this.readyState))},i.prototype.doClose=function(){function e(){u("writing close packet"),t.write([{type:"close"}])}var t=this;"open"===this.readyState?(u("transport open - closing"),e()):(u("transport not open - deferring close"),this.once("open",e))},i.prototype.write=function(e){var t=this;this.writable=!1;var n=function(){t.writable=!0,t.emit("drain")};a.encodePayload(e,this.supportsBinary,(function(e){t.doWrite(e,n)}))},i.prototype.uri=function(){var e=this.query||{},t=this.secure?"https":"http",n="";return!1!==this.timestampRequests&&(e[this.timestampParam]=l()),this.supportsBinary||e.sid||(e.b64=1),e=o.encode(e),this.port&&("https"===t&&443!==Number(this.port)||"http"===t&&80!==Number(this.port))&&(n=":"+this.port),e.length&&(e="?"+e),t+"://"+(-1!==this.hostname.indexOf(":")?"["+this.hostname+"]":this.hostname)+n+this.path+e}},function(e,t,n){function i(e){this.path=e.path,this.hostname=e.hostname,this.port=e.port,this.secure=e.secure,this.query=e.query,this.timestampParam=e.timestampParam,this.timestampRequests=e.timestampRequests,this.readyState="",this.agent=e.agent||!1,this.socket=e.socket,this.enablesXDR=e.enablesXDR,this.pfx=e.pfx,this.key=e.key,this.passphrase=e.passphrase,this.cert=e.cert,this.ca=e.ca,this.ciphers=e.ciphers,this.rejectUnauthorized=e.rejectUnauthorized,this.forceNode=e.forceNode,this.extraHeaders=e.extraHeaders,this.localAddress=e.localAddress}var r=n(27),o=n(35);e.exports=i,o(i.prototype),i.prototype.onError=function(e,t){var n=new Error(e);return n.type="TransportError",n.description=t,this.emit("error",n),this},i.prototype.open=function(){return"closed"!==this.readyState&&""!==this.readyState||(this.readyState="opening",this.doOpen()),this},i.prototype.close=function(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this},i.prototype.send=function(e){if("open"!==this.readyState)throw new Error("Transport not open");this.write(e)},i.prototype.onOpen=function(){this.readyState="open",this.writable=!0,this.emit("open")},i.prototype.onData=function(e){var t=r.decodePacket(e,this.socket.binaryType);this.onPacket(t)},i.prototype.onPacket=function(e){this.emit("packet",e)},i.prototype.onClose=function(){this.readyState="closed",this.emit("close")}},function(e,t,n){(function(e){function i(e,n){return n("b"+t.packets[e.type]+e.data.data)}function r(e,n,i){if(!n)return t.encodeBase64Packet(e,i);var r=e.data,o=new Uint8Array(r),a=new Uint8Array(1+r.byteLength);a[0]=g[e.type];for(var s=0;s<o.length;s++)a[s+1]=o[s];return i(a.buffer)}function o(e,n,i){if(!n)return t.encodeBase64Packet(e,i);if(m)return function(e,n,i){if(!n)return t.encodeBase64Packet(e,i);var r=new FileReader;return r.onload=function(){e.data=r.result,t.encodePacket(e,n,!0,i)},r.readAsArrayBuffer(e.data)}(e,n,i);var r=new Uint8Array(1);return r[0]=g[e.type],i(new y([r.buffer,e.data]))}function a(e,t,n){for(var i=new Array(e.length),r=d(e.length,n),o=function(e,n,r){t(n,(function(t,n){i[e]=n,r(t,i)}))},a=0;a<e.length;a++)o(a,e[a],r)}var s,l=n(28),u=n(29),c=n(30),d=n(31),h=n(32);e&&e.ArrayBuffer&&(s=n(33));var f="undefined"!=typeof navigator&&/Android/i.test(navigator.userAgent),p="undefined"!=typeof navigator&&/PhantomJS/i.test(navigator.userAgent),m=f||p;t.protocol=3;var g=t.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6},v=l(g),_={type:"error",data:"parser error"},y=n(34);t.encodePacket=function(t,n,a,s){"function"==typeof n&&(s=n,n=!1),"function"==typeof a&&(s=a,a=null);var l=void 0===t.data?void 0:t.data.buffer||t.data;if(e.ArrayBuffer&&l instanceof ArrayBuffer)return r(t,n,s);if(y&&l instanceof e.Blob)return o(t,n,s);if(l&&l.base64)return i(t,s);var u=g[t.type];return void 0!==t.data&&(u+=a?h.encode(String(t.data)):String(t.data)),s(""+u)},t.encodeBase64Packet=function(n,i){var r,o="b"+t.packets[n.type];if(y&&n.data instanceof e.Blob){var a=new FileReader;return a.onload=function(){var e=a.result.split(",")[1];i(o+e)},a.readAsDataURL(n.data)}try{r=String.fromCharCode.apply(null,new Uint8Array(n.data))}catch(e){for(var s=new Uint8Array(n.data),l=new Array(s.length),u=0;u<s.length;u++)l[u]=s[u];r=String.fromCharCode.apply(null,l)}return o+=e.btoa(r),i(o)},t.decodePacket=function(e,n,i){if(void 0===e)return _;if("string"==typeof e){if("b"==e.charAt(0))return t.decodeBase64Packet(e.substr(1),n);if(i&&!1===(e=function(e){try{e=h.decode(e)}catch(e){return!1}return e}(e)))return _;var r=e.charAt(0);return Number(r)==r&&v[r]?e.length>1?{type:v[r],data:e.substring(1)}:{type:v[r]}:_}r=new Uint8Array(e)[0];var o=c(e,1);return y&&"blob"===n&&(o=new y([o])),{type:v[r],data:o}},t.decodeBase64Packet=function(e,t){var n=v[e.charAt(0)];if(!s)return{type:n,data:{base64:!0,data:e.substr(1)}};var i=s.decode(e.substr(1));return"blob"===t&&y&&(i=new y([i])),{type:n,data:i}},t.encodePayload=function(e,n,i){"function"==typeof n&&(i=n,n=null);var r=u(e);return n&&r?y&&!m?t.encodePayloadAsBlob(e,i):t.encodePayloadAsArrayBuffer(e,i):e.length?void a(e,(function(e,i){t.encodePacket(e,!!r&&n,!0,(function(e){i(null,function(e){return e.length+":"+e}(e))}))}),(function(e,t){return i(t.join(""))})):i("0:")},t.decodePayload=function(e,n,i){if("string"!=typeof e)return t.decodePayloadAsBinary(e,n,i);var r;if("function"==typeof n&&(i=n,n=null),""==e)return i(_,0,1);for(var o,a,s="",l=0,u=e.length;l<u;l++){var c=e.charAt(l);if(":"!=c)s+=c;else{if(""==s||s!=(o=Number(s)))return i(_,0,1);if(s!=(a=e.substr(l+1,o)).length)return i(_,0,1);if(a.length){if(r=t.decodePacket(a,n,!0),_.type==r.type&&_.data==r.data)return i(_,0,1);if(!1===i(r,l+o,u))return}l+=o,s=""}}return""!=s?i(_,0,1):void 0},t.encodePayloadAsArrayBuffer=function(e,n){return e.length?void a(e,(function(e,n){t.encodePacket(e,!0,!0,(function(e){return n(null,e)}))}),(function(e,t){var i=t.reduce((function(e,t){var n;return e+(n="string"==typeof t?t.length:t.byteLength).toString().length+n+2}),0),r=new Uint8Array(i),o=0;return t.forEach((function(e){var t="string"==typeof e,n=e;if(t){for(var i=new Uint8Array(e.length),a=0;a<e.length;a++)i[a]=e.charCodeAt(a);n=i.buffer}r[o++]=t?0:1;var s=n.byteLength.toString();for(a=0;a<s.length;a++)r[o++]=parseInt(s[a]);for(r[o++]=255,i=new Uint8Array(n),a=0;a<i.length;a++)r[o++]=i[a]})),n(r.buffer)})):n(new ArrayBuffer(0))},t.encodePayloadAsBlob=function(e,n){a(e,(function(e,n){t.encodePacket(e,!0,!0,(function(e){var t=new Uint8Array(1);if(t[0]=1,"string"==typeof e){for(var i=new Uint8Array(e.length),r=0;r<e.length;r++)i[r]=e.charCodeAt(r);e=i.buffer,t[0]=0}var o=(e instanceof ArrayBuffer?e.byteLength:e.size).toString(),a=new Uint8Array(o.length+1);for(r=0;r<o.length;r++)a[r]=parseInt(o[r]);if(a[o.length]=255,y){var s=new y([t.buffer,a.buffer,e]);n(null,s)}}))}),(function(e,t){return n(new y(t))}))},t.decodePayloadAsBinary=function(e,n,i){"function"==typeof n&&(i=n,n=null);for(var r=e,o=[],a=!1;r.byteLength>0;){for(var s=new Uint8Array(r),l=0===s[0],u="",d=1;255!=s[d];d++){if(u.length>310){a=!0;break}u+=s[d]}if(a)return i(_,0,1);r=c(r,2+u.length),u=parseInt(u);var h=c(r,0,u);if(l)try{h=String.fromCharCode.apply(null,new Uint8Array(h))}catch(e){var f=new Uint8Array(h);for(h="",d=0;d<f.length;d++)h+=String.fromCharCode(f[d])}o.push(h),r=c(r,u)}var p=o.length;o.forEach((function(e,r){i(t.decodePacket(e,n,!0),r,p)}))}}).call(t,function(){return this}())},function(e,t){e.exports=Object.keys||function(e){var t=[],n=Object.prototype.hasOwnProperty;for(var i in e)n.call(e,i)&&t.push(i);return t}},function(e,t,n){(function(t){var i=n(15);e.exports=function(e){return function e(n){if(!n)return!1;if(t.Buffer&&t.Buffer.isBuffer&&t.Buffer.isBuffer(n)||t.ArrayBuffer&&n instanceof ArrayBuffer||t.Blob&&n instanceof Blob||t.File&&n instanceof File)return!0;if(i(n)){for(var r=0;r<n.length;r++)if(e(n[r]))return!0}else if(n&&"object"==typeof n)for(var o in n.toJSON&&"function"==typeof n.toJSON&&(n=n.toJSON()),n)if(Object.prototype.hasOwnProperty.call(n,o)&&e(n[o]))return!0;return!1}(e)}}).call(t,function(){return this}())},function(e,t){e.exports=function(e,t,n){var i=e.byteLength;if(t=t||0,n=n||i,e.slice)return e.slice(t,n);if(t<0&&(t+=i),n<0&&(n+=i),n>i&&(n=i),t>=i||t>=n||0===i)return new ArrayBuffer(0);for(var r=new Uint8Array(e),o=new Uint8Array(n-t),a=t,s=0;a<n;a++,s++)o[s]=r[a];return o.buffer}},function(e,t){function n(){}e.exports=function(e,t,i){function r(e,n){if(r.count<=0)throw new Error("after called too many times");--r.count,e?(o=!0,t(e),t=i):0!==r.count||o||t(null,n)}var o=!1;return i=i||n,r.count=e,0===e?t():r}},function(e,t,n){var i;(function(e,r){!function(o){function a(e){for(var t,n,i=[],r=0,o=e.length;r<o;)(t=e.charCodeAt(r++))>=55296&&t<=56319&&r<o?56320==(64512&(n=e.charCodeAt(r++)))?i.push(((1023&t)<<10)+(1023&n)+65536):(i.push(t),r--):i.push(t);return i}function s(e,t){return m(e>>t&63|128)}function l(e){if(0==(4294967168&e))return m(e);var t="";return 0==(4294965248&e)?t=m(e>>6&31|192):0==(4294901760&e)?(t=m(e>>12&15|224),t+=s(e,6)):0==(4292870144&e)&&(t=m(e>>18&7|240),t+=s(e,12),t+=s(e,6)),t+m(63&e|128)}function u(){if(p>=f)throw Error("Invalid byte index");var e=255&h[p];if(p++,128==(192&e))return 63&e;throw Error("Invalid continuation byte")}function c(){var e,t;if(p>f)throw Error("Invalid byte index");if(p==f)return!1;if(e=255&h[p],p++,0==(128&e))return e;if(192==(224&e)){if((t=(31&e)<<6|u())>=128)return t;throw Error("Invalid continuation byte")}if(224==(240&e)){if((t=(15&e)<<12|u()<<6|u())>=2048)return t;throw Error("Invalid continuation byte")}if(240==(248&e)&&(t=(15&e)<<18|u()<<12|u()<<6|u())>=65536&&t<=1114111)return t;throw Error("Invalid WTF-8 detected")}var d=("object"==typeof e&&e&&e.exports,"object"==typeof r&&r);d.global!==d&&d.window;var h,f,p,m=String.fromCharCode,g={version:"1.0.0",encode:function(e){for(var t=a(e),n=t.length,i=-1,r="";++i<n;)r+=l(t[i]);return r},decode:function(e){h=a(e),f=h.length,p=0;for(var t,n=[];!1!==(t=c());)n.push(t);return function(e){for(var t,n=e.length,i=-1,r="";++i<n;)(t=e[i])>65535&&(r+=m((t-=65536)>>>10&1023|55296),t=56320|1023&t),r+=m(t);return r}(n)}};void 0===(i=function(){return g}.call(t,n,t,e))||(e.exports=i)}()}).call(t,n(12)(e),function(){return this}())},function(e,t){!function(){"use strict";for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=new Uint8Array(256),i=0;i<e.length;i++)n[e.charCodeAt(i)]=i;t.encode=function(t){var n,i=new Uint8Array(t),r=i.length,o="";for(n=0;n<r;n+=3)o+=e[i[n]>>2],o+=e[(3&i[n])<<4|i[n+1]>>4],o+=e[(15&i[n+1])<<2|i[n+2]>>6],o+=e[63&i[n+2]];return r%3==2?o=o.substring(0,o.length-1)+"=":r%3==1&&(o=o.substring(0,o.length-2)+"=="),o},t.decode=function(e){var t,i,r,o,a,s=.75*e.length,l=e.length,u=0;"="===e[e.length-1]&&(s--,"="===e[e.length-2]&&s--);var c=new ArrayBuffer(s),d=new Uint8Array(c);for(t=0;t<l;t+=4)i=n[e.charCodeAt(t)],r=n[e.charCodeAt(t+1)],o=n[e.charCodeAt(t+2)],a=n[e.charCodeAt(t+3)],d[u++]=i<<2|r>>4,d[u++]=(15&r)<<4|o>>2,d[u++]=(3&o)<<6|63&a;return c}}()},function(e,t){(function(t){function n(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.buffer instanceof ArrayBuffer){var i=n.buffer;if(n.byteLength!==i.byteLength){var r=new Uint8Array(n.byteLength);r.set(new Uint8Array(i,n.byteOffset,n.byteLength)),i=r.buffer}e[t]=i}}}var i=t.BlobBuilder||t.WebKitBlobBuilder||t.MSBlobBuilder||t.MozBlobBuilder,r=function(){try{return 2===new Blob(["hi"]).size}catch(e){return!1}}(),o=r&&function(){try{return 2===new Blob([new Uint8Array([1,2])]).size}catch(e){return!1}}(),a=i&&i.prototype.append&&i.prototype.getBlob;e.exports=r?o?t.Blob:function(e,t){return n(e),new Blob(e,t||{})}:a?function(e,t){t=t||{};var r=new i;n(e);for(var o=0;o<e.length;o++)r.append(e[o]);return t.type?r.getBlob(t.type):r.getBlob()}:void 0}).call(t,function(){return this}())},function(e,t,n){function i(e){if(e)return function(e){for(var t in i.prototype)e[t]=i.prototype[t];return e}(e)}e.exports=i,i.prototype.on=i.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},i.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var i,r=0;r<n.length;r++)if((i=n[r])===t||i.fn===t){n.splice(r,1);break}return this},i.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=[].slice.call(arguments,1),n=this._callbacks["$"+e];if(n)for(var i=0,r=(n=n.slice(0)).length;i<r;++i)n[i].apply(this,t);return this},i.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},i.prototype.hasListeners=function(e){return!!this.listeners(e).length}},function(e,t){t.encode=function(e){var t="";for(var n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t},t.decode=function(e){for(var t={},n=e.split("&"),i=0,r=n.length;i<r;i++){var o=n[i].split("=");t[decodeURIComponent(o[0])]=decodeURIComponent(o[1])}return t}},function(e,t){e.exports=function(e,t){var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t){"use strict";function n(e){var t="";do{t=o[e%a]+t,e=Math.floor(e/a)}while(e>0);return t}function i(){var e=n(+new Date);return e!==r?(l=0,r=e):e+"."+n(l++)}for(var r,o="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),a=64,s={},l=0,u=0;u<a;u++)s[o[u]]=u;i.encode=n,i.decode=function(e){var t=0;for(u=0;u<e.length;u++)t=t*a+s[e.charAt(u)];return t},e.exports=i},function(e,t,n){(function(t){function i(){}function r(e){o.call(this,e),this.query=this.query||{},s||(t.___eio||(t.___eio=[]),s=t.___eio),this.index=s.length;var n=this;s.push((function(e){n.onData(e)})),this.query.j=this.index,t.document&&t.addEventListener&&t.addEventListener("beforeunload",(function(){n.script&&(n.script.onerror=i)}),!1)}var o=n(25),a=n(37);e.exports=r;var s,l=/\n/g,u=/\\n/g;a(r,o),r.prototype.supportsBinary=!1,r.prototype.doClose=function(){this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),this.form&&(this.form.parentNode.removeChild(this.form),this.form=null,this.iframe=null),o.prototype.doClose.call(this)},r.prototype.doPoll=function(){var e=this,t=document.createElement("script");this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),t.async=!0,t.src=this.uri(),t.onerror=function(t){e.onError("jsonp poll error",t)};var n=document.getElementsByTagName("script")[0];n?n.parentNode.insertBefore(t,n):(document.head||document.body).appendChild(t),this.script=t,"undefined"!=typeof navigator&&/gecko/i.test(navigator.userAgent)&&setTimeout((function(){var e=document.createElement("iframe");document.body.appendChild(e),document.body.removeChild(e)}),100)},r.prototype.doWrite=function(e,t){function n(){i(),t()}function i(){if(r.iframe)try{r.form.removeChild(r.iframe)}catch(e){r.onError("jsonp polling iframe removal error",e)}try{var e='<iframe src="javascript:0" name="'+r.iframeId+'">';o=document.createElement(e)}catch(e){(o=document.createElement("iframe")).name=r.iframeId,o.src="javascript:0"}o.id=r.iframeId,r.form.appendChild(o),r.iframe=o}var r=this;if(!this.form){var o,a=document.createElement("form"),s=document.createElement("textarea"),c=this.iframeId="eio_iframe_"+this.index;a.className="socketio",a.style.position="absolute",a.style.top="-1000px",a.style.left="-1000px",a.target=c,a.method="POST",a.setAttribute("accept-charset","utf-8"),s.name="d",a.appendChild(s),document.body.appendChild(a),this.form=a,this.area=s}this.form.action=this.uri(),i(),e=e.replace(u,"\\\n"),this.area.value=e.replace(l,"\\n");try{this.form.submit()}catch(e){}this.iframe.attachEvent?this.iframe.onreadystatechange=function(){"complete"===r.iframe.readyState&&n()}:this.iframe.onload=n}}).call(t,function(){return this}())},function(e,t,n){(function(t){function i(e){e&&e.forceBase64&&(this.supportsBinary=!1),this.perMessageDeflate=e.perMessageDeflate,this.usingBrowserWebSocket=d&&!e.forceNode,this.usingBrowserWebSocket||(h=r),o.call(this,e)}var r,o=n(26),a=n(27),s=n(36),l=n(37),u=n(38),c=n(3)("engine.io-client:websocket"),d=t.WebSocket||t.MozWebSocket;if("undefined"==typeof window)try{r=n(41)}catch(e){}var h=d;h||"undefined"!=typeof window||(h=r),e.exports=i,l(i,o),i.prototype.name="websocket",i.prototype.supportsBinary=!0,i.prototype.doOpen=function(){if(this.check()){var e=this.uri(),t={agent:this.agent,perMessageDeflate:this.perMessageDeflate};t.pfx=this.pfx,t.key=this.key,t.passphrase=this.passphrase,t.cert=this.cert,t.ca=this.ca,t.ciphers=this.ciphers,t.rejectUnauthorized=this.rejectUnauthorized,this.extraHeaders&&(t.headers=this.extraHeaders),this.localAddress&&(t.localAddress=this.localAddress);try{this.ws=this.usingBrowserWebSocket?new h(e):new h(e,void 0,t)}catch(e){return this.emit("error",e)}void 0===this.ws.binaryType&&(this.supportsBinary=!1),this.ws.supports&&this.ws.supports.binary?(this.supportsBinary=!0,this.ws.binaryType="nodebuffer"):this.ws.binaryType="arraybuffer",this.addEventListeners()}},i.prototype.addEventListeners=function(){var e=this;this.ws.onopen=function(){e.onOpen()},this.ws.onclose=function(){e.onClose()},this.ws.onmessage=function(t){e.onData(t.data)},this.ws.onerror=function(t){e.onError("websocket error",t)}},i.prototype.write=function(e){var n=this;this.writable=!1;for(var i=e.length,r=0,o=i;r<o;r++)!function(e){a.encodePacket(e,n.supportsBinary,(function(r){if(!n.usingBrowserWebSocket){var o={};e.options&&(o.compress=e.options.compress),n.perMessageDeflate&&("string"==typeof r?t.Buffer.byteLength(r):r.length)<n.perMessageDeflate.threshold&&(o.compress=!1)}try{n.usingBrowserWebSocket?n.ws.send(r):n.ws.send(r,o)}catch(e){c("websocket closed before onclose event")}--i||(n.emit("flush"),setTimeout((function(){n.writable=!0,n.emit("drain")}),0))}))}(e[r])},i.prototype.onClose=function(){o.prototype.onClose.call(this)},i.prototype.doClose=function(){void 0!==this.ws&&this.ws.close()},i.prototype.uri=function(){var e=this.query||{},t=this.secure?"wss":"ws",n="";return this.port&&("wss"===t&&443!==Number(this.port)||"ws"===t&&80!==Number(this.port))&&(n=":"+this.port),this.timestampRequests&&(e[this.timestampParam]=u()),this.supportsBinary||(e.b64=1),(e=s.encode(e)).length&&(e="?"+e),t+"://"+(-1!==this.hostname.indexOf(":")?"["+this.hostname+"]":this.hostname)+n+this.path+e},i.prototype.check=function(){return!(!h||"__initialize"in h&&this.name===i.prototype.name)}}).call(t,function(){return this}())},function(e,t){},function(e,t){var n=[].indexOf;e.exports=function(e,t){if(n)return e.indexOf(t);for(var i=0;i<e.length;++i)if(e[i]===t)return i;return-1}},function(e,t){(function(t){var n=/^[\],:{}\s]*$/,i=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,r=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,o=/(?:^|:|,)(?:\s*\[)+/g,a=/^\s+/,s=/\s+$/;e.exports=function(e){return"string"==typeof e&&e?(e=e.replace(a,"").replace(s,""),t.JSON&&JSON.parse?JSON.parse(e):n.test(e.replace(i,"@").replace(r,"]").replace(o,""))?new Function("return "+e)():void 0):null}}).call(t,function(){return this}())},function(e,t,n){"use strict";function i(e,t,n){this.io=e,this.nsp=t,this.json=this,this.ids=0,this.acks={},this.receiveBuffer=[],this.sendBuffer=[],this.connected=!1,this.disconnected=!0,n&&n.query&&(this.query=n.query),this.io.autoConnect&&this.open()}var r=n(7),o=n(35),a=n(45),s=n(46),l=n(47),u=n(3)("socket.io-client:socket"),c=n(29);e.exports=i;var d={connect:1,connect_error:1,connect_timeout:1,connecting:1,disconnect:1,error:1,reconnect:1,reconnect_attempt:1,reconnect_failed:1,reconnect_error:1,reconnecting:1,ping:1,pong:1},h=o.prototype.emit;o(i.prototype),i.prototype.subEvents=function(){if(!this.subs){var e=this.io;this.subs=[s(e,"open",l(this,"onopen")),s(e,"packet",l(this,"onpacket")),s(e,"close",l(this,"onclose"))]}},i.prototype.open=i.prototype.connect=function(){return this.connected?this:(this.subEvents(),this.io.open(),"open"===this.io.readyState&&this.onopen(),this.emit("connecting"),this)},i.prototype.send=function(){var e=a(arguments);return e.unshift("message"),this.emit.apply(this,e),this},i.prototype.emit=function(e){if(d.hasOwnProperty(e))return h.apply(this,arguments),this;var t=a(arguments),n=r.EVENT;c(t)&&(n=r.BINARY_EVENT);var i={type:n,data:t,options:{}};return i.options.compress=!this.flags||!1!==this.flags.compress,"function"==typeof t[t.length-1]&&(u("emitting packet with ack id %d",this.ids),this.acks[this.ids]=t.pop(),i.id=this.ids++),this.connected?this.packet(i):this.sendBuffer.push(i),delete this.flags,this},i.prototype.packet=function(e){e.nsp=this.nsp,this.io.packet(e)},i.prototype.onopen=function(){u("transport is open - connecting"),"/"!==this.nsp&&(this.query?this.packet({type:r.CONNECT,query:this.query}):this.packet({type:r.CONNECT}))},i.prototype.onclose=function(e){u("close (%s)",e),this.connected=!1,this.disconnected=!0,delete this.id,this.emit("disconnect",e)},i.prototype.onpacket=function(e){if(e.nsp===this.nsp)switch(e.type){case r.CONNECT:this.onconnect();break;case r.EVENT:case r.BINARY_EVENT:this.onevent(e);break;case r.ACK:case r.BINARY_ACK:this.onack(e);break;case r.DISCONNECT:this.ondisconnect();break;case r.ERROR:this.emit("error",e.data)}},i.prototype.onevent=function(e){var t=e.data||[];u("emitting event %j",t),null!=e.id&&(u("attaching ack callback to event"),t.push(this.ack(e.id))),this.connected?h.apply(this,t):this.receiveBuffer.push(t)},i.prototype.ack=function(e){var t=this,n=!1;return function(){if(!n){n=!0;var i=a(arguments);u("sending ack %j",i);var o=c(i)?r.BINARY_ACK:r.ACK;t.packet({type:o,id:e,data:i})}}},i.prototype.onack=function(e){var t=this.acks[e.id];"function"==typeof t?(u("calling ack %s with %j",e.id,e.data),t.apply(this,e.data),delete this.acks[e.id]):u("bad ack %s",e.id)},i.prototype.onconnect=function(){this.connected=!0,this.disconnected=!1,this.emit("connect"),this.emitBuffered()},i.prototype.emitBuffered=function(){var e;for(e=0;e<this.receiveBuffer.length;e++)h.apply(this,this.receiveBuffer[e]);for(this.receiveBuffer=[],e=0;e<this.sendBuffer.length;e++)this.packet(this.sendBuffer[e]);this.sendBuffer=[]},i.prototype.ondisconnect=function(){u("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")},i.prototype.destroy=function(){if(this.subs){for(var e=0;e<this.subs.length;e++)this.subs[e].destroy();this.subs=null}this.io.destroy(this)},i.prototype.close=i.prototype.disconnect=function(){return this.connected&&(u("performing disconnect (%s)",this.nsp),this.packet({type:r.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this},i.prototype.compress=function(e){return this.flags=this.flags||{},this.flags.compress=e,this}},function(e,t){e.exports=function(e,t){for(var n=[],i=(t=t||0)||0;i<e.length;i++)n[i-t]=e[i];return n}},function(e,t){"use strict";e.exports=function(e,t,n){return e.on(t,n),{destroy:function(){e.removeListener(t,n)}}}},function(e,t){var n=[].slice;e.exports=function(e,t){if("string"==typeof t&&(t=e[t]),"function"!=typeof t)throw new Error("bind() requires a function");var i=n.call(arguments,2);return function(){return t.apply(e,i.concat(n.call(arguments)))}}},function(e,t){function n(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}e.exports=n,n.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=0==(1&Math.floor(10*t))?e-n:e+n}return 0|Math.min(e,this.max)},n.prototype.reset=function(){this.attempts=0},n.prototype.setMin=function(e){this.ms=e},n.prototype.setMax=function(e){this.max=e},n.prototype.setJitter=function(e){this.jitter=e}}])},"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.io=e():this.io=e(),function(){var e="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this||{},t=e._,n=Array.prototype,i=Object.prototype,r="undefined"!=typeof Symbol?Symbol.prototype:null,o=n.push,a=n.slice,s=i.toString,l=i.hasOwnProperty,u=Array.isArray,c=Object.keys,d=Object.create,h=function(){},f=function(e){return e instanceof f?e:this instanceof f?void(this._wrapped=e):new f(e)};"undefined"==typeof exports||exports.nodeType?e._=f:("undefined"!=typeof module&&!module.nodeType&&module.exports&&(exports=module.exports=f),exports._=f),f.VERSION="1.9.1";var p,m=function(e,t,n){if(void 0===t)return e;switch(null==n?3:n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,i,r){return e.call(t,n,i,r)};case 4:return function(n,i,r,o){return e.call(t,n,i,r,o)}}return function(){return e.apply(t,arguments)}},g=function(e,t,n){return f.iteratee!==p?f.iteratee(e,t):null==e?f.identity:f.isFunction(e)?m(e,t,n):f.isObject(e)&&!f.isArray(e)?f.matcher(e):f.property(e)};f.iteratee=p=function(e,t){return g(e,t,1/0)};var v=function(e,t){return t=null==t?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),i=Array(n),r=0;r<n;r++)i[r]=arguments[r+t];switch(t){case 0:return e.call(this,i);case 1:return e.call(this,arguments[0],i);case 2:return e.call(this,arguments[0],arguments[1],i)}var o=Array(t+1);for(r=0;r<t;r++)o[r]=arguments[r];return o[t]=i,e.apply(this,o)}},_=function(e){if(!f.isObject(e))return{};if(d)return d(e);h.prototype=e;var t=new h;return h.prototype=null,t},y=function(e){return function(t){return null==t?void 0:t[e]}},b=function(e,t){return null!=e&&l.call(e,t)},w=function(e,t){for(var n=t.length,i=0;i<n;i++){if(null==e)return;e=e[t[i]]}return n?e:void 0},L=Math.pow(2,53)-1,M=y("length"),k=function(e){var t=M(e);return"number"==typeof t&&0<=t&&t<=L};f.each=f.forEach=function(e,t,n){var i,r;if(t=m(t,n),k(e))for(i=0,r=e.length;i<r;i++)t(e[i],i,e);else{var o=f.keys(e);for(i=0,r=o.length;i<r;i++)t(e[o[i]],o[i],e)}return e},f.map=f.collect=function(e,t,n){t=g(t,n);for(var i=!k(e)&&f.keys(e),r=(i||e).length,o=Array(r),a=0;a<r;a++){var s=i?i[a]:a;o[a]=t(e[s],s,e)}return o};var x=function(e){return function(t,n,i,r){var o=3<=arguments.length;return function(t,n,i,r){var o=!k(t)&&f.keys(t),a=(o||t).length,s=0<e?0:a-1;for(r||(i=t[o?o[s]:s],s+=e);0<=s&&s<a;s+=e){var l=o?o[s]:s;i=n(i,t[l],l,t)}return i}(t,m(n,r,4),i,o)}};f.reduce=f.foldl=f.inject=x(1),f.reduceRight=f.foldr=x(-1),f.find=f.detect=function(e,t,n){var i=(k(e)?f.findIndex:f.findKey)(e,t,n);if(void 0!==i&&-1!==i)return e[i]},f.filter=f.select=function(e,t,n){var i=[];return t=g(t,n),f.each(e,(function(e,n,r){t(e,n,r)&&i.push(e)})),i},f.reject=function(e,t,n){return f.filter(e,f.negate(g(t)),n)},f.every=f.all=function(e,t,n){t=g(t,n);for(var i=!k(e)&&f.keys(e),r=(i||e).length,o=0;o<r;o++){var a=i?i[o]:o;if(!t(e[a],a,e))return!1}return!0},f.some=f.any=function(e,t,n){t=g(t,n);for(var i=!k(e)&&f.keys(e),r=(i||e).length,o=0;o<r;o++){var a=i?i[o]:o;if(t(e[a],a,e))return!0}return!1},f.contains=f.includes=f.include=function(e,t,n,i){return k(e)||(e=f.values(e)),("number"!=typeof n||i)&&(n=0),0<=f.indexOf(e,t,n)},f.invoke=v((function(e,t,n){var i,r;return f.isFunction(t)?r=t:f.isArray(t)&&(i=t.slice(0,-1),t=t[t.length-1]),f.map(e,(function(e){var o=r;if(!o){if(i&&i.length&&(e=w(e,i)),null==e)return;o=e[t]}return null==o?o:o.apply(e,n)}))})),f.pluck=function(e,t){return f.map(e,f.property(t))},f.where=function(e,t){return f.filter(e,f.matcher(t))},f.findWhere=function(e,t){return f.find(e,f.matcher(t))},f.max=function(e,t,n){var i,r,o=-1/0,a=-1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,l=(e=k(e)?e:f.values(e)).length;s<l;s++)null!=(i=e[s])&&o<i&&(o=i);else t=g(t,n),f.each(e,(function(e,n,i){r=t(e,n,i),(a<r||r===-1/0&&o===-1/0)&&(o=e,a=r)}));return o},f.min=function(e,t,n){var i,r,o=1/0,a=1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,l=(e=k(e)?e:f.values(e)).length;s<l;s++)null!=(i=e[s])&&i<o&&(o=i);else t=g(t,n),f.each(e,(function(e,n,i){((r=t(e,n,i))<a||r===1/0&&o===1/0)&&(o=e,a=r)}));return o},f.shuffle=function(e){return f.sample(e,1/0)},f.sample=function(e,t,n){if(null==t||n)return k(e)||(e=f.values(e)),e[f.random(e.length-1)];var i=k(e)?f.clone(e):f.values(e),r=M(i);t=Math.max(Math.min(t,r),0);for(var o=r-1,a=0;a<t;a++){var s=f.random(a,o),l=i[a];i[a]=i[s],i[s]=l}return i.slice(0,t)},f.sortBy=function(e,t,n){var i=0;return t=g(t,n),f.pluck(f.map(e,(function(e,n,r){return{value:e,index:i++,criteria:t(e,n,r)}})).sort((function(e,t){var n=e.criteria,i=t.criteria;if(n!==i){if(i<n||void 0===n)return 1;if(n<i||void 0===i)return-1}return e.index-t.index})),"value")};var S=function(e,t){return function(n,i,r){var o=t?[[],[]]:{};return i=g(i,r),f.each(n,(function(t,r){var a=i(t,r,n);e(o,t,a)})),o}};f.groupBy=S((function(e,t,n){b(e,n)?e[n].push(t):e[n]=[t]})),f.indexBy=S((function(e,t,n){e[n]=t})),f.countBy=S((function(e,t,n){b(e,n)?e[n]++:e[n]=1}));var T=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;f.toArray=function(e){return e?f.isArray(e)?a.call(e):f.isString(e)?e.match(T):k(e)?f.map(e,f.identity):f.values(e):[]},f.size=function(e){return null==e?0:k(e)?e.length:f.keys(e).length},f.partition=S((function(e,t,n){e[n?0:1].push(t)}),!0),f.first=f.head=f.take=function(e,t,n){return null==e||e.length<1?null==t?void 0:[]:null==t||n?e[0]:f.initial(e,e.length-t)},f.initial=function(e,t,n){return a.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))},f.last=function(e,t,n){return null==e||e.length<1?null==t?void 0:[]:null==t||n?e[e.length-1]:f.rest(e,Math.max(0,e.length-t))},f.rest=f.tail=f.drop=function(e,t,n){return a.call(e,null==t||n?1:t)},f.compact=function(e){return f.filter(e,Boolean)};var $=function(e,t,n,i){for(var r=(i=i||[]).length,o=0,a=M(e);o<a;o++){var s=e[o];if(k(s)&&(f.isArray(s)||f.isArguments(s)))if(t)for(var l=0,u=s.length;l<u;)i[r++]=s[l++];else $(s,t,n,i),r=i.length;else n||(i[r++]=s)}return i};f.flatten=function(e,t){return $(e,t,!1)},f.without=v((function(e,t){return f.difference(e,t)})),f.uniq=f.unique=function(e,t,n,i){f.isBoolean(t)||(i=n,n=t,t=!1),null!=n&&(n=g(n,i));for(var r=[],o=[],a=0,s=M(e);a<s;a++){var l=e[a],u=n?n(l,a,e):l;t&&!n?(a&&o===u||r.push(l),o=u):n?f.contains(o,u)||(o.push(u),r.push(l)):f.contains(r,l)||r.push(l)}return r},f.union=v((function(e){return f.uniq($(e,!0,!0))})),f.intersection=function(e){for(var t=[],n=arguments.length,i=0,r=M(e);i<r;i++){var o=e[i];if(!f.contains(t,o)){var a;for(a=1;a<n&&f.contains(arguments[a],o);a++);a===n&&t.push(o)}}return t},f.difference=v((function(e,t){return t=$(t,!0,!0),f.filter(e,(function(e){return!f.contains(t,e)}))})),f.unzip=function(e){for(var t=e&&f.max(e,M).length||0,n=Array(t),i=0;i<t;i++)n[i]=f.pluck(e,i);return n},f.zip=v(f.unzip),f.object=function(e,t){for(var n={},i=0,r=M(e);i<r;i++)t?n[e[i]]=t[i]:n[e[i][0]]=e[i][1];return n};var D=function(e){return function(t,n,i){n=g(n,i);for(var r=M(t),o=0<e?0:r-1;0<=o&&o<r;o+=e)if(n(t[o],o,t))return o;return-1}};f.findIndex=D(1),f.findLastIndex=D(-1),f.sortedIndex=function(e,t,n,i){for(var r=(n=g(n,i,1))(t),o=0,a=M(e);o<a;){var s=Math.floor((o+a)/2);n(e[s])<r?o=s+1:a=s}return o};var C=function(e,t,n){return function(i,r,o){var s=0,l=M(i);if("number"==typeof o)0<e?s=0<=o?o:Math.max(o+l,s):l=0<=o?Math.min(o+1,l):o+l+1;else if(n&&o&&l)return i[o=n(i,r)]===r?o:-1;if(r!=r)return 0<=(o=t(a.call(i,s,l),f.isNaN))?o+s:-1;for(o=0<e?s:l-1;0<=o&&o<l;o+=e)if(i[o]===r)return o;return-1}};f.indexOf=C(1,f.findIndex,f.sortedIndex),f.lastIndexOf=C(-1,f.findLastIndex),f.range=function(e,t,n){null==t&&(t=e||0,e=0),n||(n=t<e?-1:1);for(var i=Math.max(Math.ceil((t-e)/n),0),r=Array(i),o=0;o<i;o++,e+=n)r[o]=e;return r},f.chunk=function(e,t){if(null==t||t<1)return[];for(var n=[],i=0,r=e.length;i<r;)n.push(a.call(e,i,i+=t));return n};var E=function(e,t,n,i,r){if(!(i instanceof t))return e.apply(n,r);var o=_(e.prototype),a=e.apply(o,r);return f.isObject(a)?a:o};f.bind=v((function(e,t,n){if(!f.isFunction(e))throw new TypeError("Bind must be called on a function");var i=v((function(r){return E(e,i,t,this,n.concat(r))}));return i})),f.partial=v((function(e,t){var n=f.partial.placeholder,i=function(){for(var r=0,o=t.length,a=Array(o),s=0;s<o;s++)a[s]=t[s]===n?arguments[r++]:t[s];for(;r<arguments.length;)a.push(arguments[r++]);return E(e,i,this,this,a)};return i})),(f.partial.placeholder=f).bindAll=v((function(e,t){var n=(t=$(t,!1,!1)).length;if(n<1)throw new Error("bindAll must be passed function names");for(;n--;){var i=t[n];e[i]=f.bind(e[i],e)}})),f.memoize=function(e,t){var n=function(i){var r=n.cache,o=""+(t?t.apply(this,arguments):i);return b(r,o)||(r[o]=e.apply(this,arguments)),r[o]};return n.cache={},n},f.delay=v((function(e,t,n){return setTimeout((function(){return e.apply(null,n)}),t)})),f.defer=f.partial(f.delay,f,1),f.throttle=function(e,t,n){var i,r,o,a,s=0;n||(n={});var l=function(){s=!1===n.leading?0:f.now(),i=null,a=e.apply(r,o),i||(r=o=null)},u=function(){var u=f.now();s||!1!==n.leading||(s=u);var c=t-(u-s);return r=this,o=arguments,c<=0||t<c?(i&&(clearTimeout(i),i=null),s=u,a=e.apply(r,o),i||(r=o=null)):i||!1===n.trailing||(i=setTimeout(l,c)),a};return u.cancel=function(){clearTimeout(i),s=0,i=r=o=null},u},f.debounce=function(e,t,n){var i,r,o=function(t,n){i=null,n&&(r=e.apply(t,n))},a=v((function(a){if(i&&clearTimeout(i),n){var s=!i;i=setTimeout(o,t),s&&(r=e.apply(this,a))}else i=f.delay(o,t,this,a);return r}));return a.cancel=function(){clearTimeout(i),i=null},a},f.wrap=function(e,t){return f.partial(t,e)},f.negate=function(e){return function(){return!e.apply(this,arguments)}},f.compose=function(){var e=arguments,t=e.length-1;return function(){for(var n=t,i=e[t].apply(this,arguments);n--;)i=e[n].call(this,i);return i}},f.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},f.before=function(e,t){var n;return function(){return 0<--e&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}},f.once=f.partial(f.before,2),f.restArguments=v;var A=!{toString:null}.propertyIsEnumerable("toString"),P=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],Y=function(e,t){var n=P.length,r=e.constructor,o=f.isFunction(r)&&r.prototype||i,a="constructor";for(b(e,a)&&!f.contains(t,a)&&t.push(a);n--;)(a=P[n])in e&&e[a]!==o[a]&&!f.contains(t,a)&&t.push(a)};f.keys=function(e){if(!f.isObject(e))return[];if(c)return c(e);var t=[];for(var n in e)b(e,n)&&t.push(n);return A&&Y(e,t),t},f.allKeys=function(e){if(!f.isObject(e))return[];var t=[];for(var n in e)t.push(n);return A&&Y(e,t),t},f.values=function(e){for(var t=f.keys(e),n=t.length,i=Array(n),r=0;r<n;r++)i[r]=e[t[r]];return i},f.mapObject=function(e,t,n){t=g(t,n);for(var i=f.keys(e),r=i.length,o={},a=0;a<r;a++){var s=i[a];o[s]=t(e[s],s,e)}return o},f.pairs=function(e){for(var t=f.keys(e),n=t.length,i=Array(n),r=0;r<n;r++)i[r]=[t[r],e[t[r]]];return i},f.invert=function(e){for(var t={},n=f.keys(e),i=0,r=n.length;i<r;i++)t[e[n[i]]]=n[i];return t},f.functions=f.methods=function(e){var t=[];for(var n in e)f.isFunction(e[n])&&t.push(n);return t.sort()};var O=function(e,t){return function(n){var i=arguments.length;if(t&&(n=Object(n)),i<2||null==n)return n;for(var r=1;r<i;r++)for(var o=arguments[r],a=e(o),s=a.length,l=0;l<s;l++){var u=a[l];t&&void 0!==n[u]||(n[u]=o[u])}return n}};f.extend=O(f.allKeys),f.extendOwn=f.assign=O(f.keys),f.findKey=function(e,t,n){t=g(t,n);for(var i,r=f.keys(e),o=0,a=r.length;o<a;o++)if(t(e[i=r[o]],i,e))return i};var I,j,H=function(e,t,n){return t in n};f.pick=v((function(e,t){var n={},i=t[0];if(null==e)return n;f.isFunction(i)?(1<t.length&&(i=m(i,t[1])),t=f.allKeys(e)):(i=H,t=$(t,!1,!1),e=Object(e));for(var r=0,o=t.length;r<o;r++){var a=t[r],s=e[a];i(s,a,e)&&(n[a]=s)}return n})),f.omit=v((function(e,t){var n,i=t[0];return f.isFunction(i)?(i=f.negate(i),1<t.length&&(n=t[1])):(t=f.map($(t,!1,!1),String),i=function(e,n){return!f.contains(t,n)}),f.pick(e,i,n)})),f.defaults=O(f.allKeys,!0),f.create=function(e,t){var n=_(e);return t&&f.extendOwn(n,t),n},f.clone=function(e){return f.isObject(e)?f.isArray(e)?e.slice():f.extend({},e):e},f.tap=function(e,t){return t(e),e},f.isMatch=function(e,t){var n=f.keys(t),i=n.length;if(null==e)return!i;for(var r=Object(e),o=0;o<i;o++){var a=n[o];if(t[a]!==r[a]||!(a in r))return!1}return!0},I=function(e,t,n,i){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var r=typeof e;return("function"===r||"object"===r||"object"==typeof t)&&j(e,t,n,i)},j=function(e,t,n,i){e instanceof f&&(e=e._wrapped),t instanceof f&&(t=t._wrapped);var o=s.call(e);if(o!==s.call(t))return!1;switch(o){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":return+e!=+e?+t!=+t:0==+e?1/+e==1/t:+e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object Symbol]":return r.valueOf.call(e)===r.valueOf.call(t)}var a="[object Array]"===o;if(!a){if("object"!=typeof e||"object"!=typeof t)return!1;var l=e.constructor,u=t.constructor;if(l!==u&&!(f.isFunction(l)&&l instanceof l&&f.isFunction(u)&&u instanceof u)&&"constructor"in e&&"constructor"in t)return!1}i=i||[];for(var c=(n=n||[]).length;c--;)if(n[c]===e)return i[c]===t;if(n.push(e),i.push(t),a){if((c=e.length)!==t.length)return!1;for(;c--;)if(!I(e[c],t[c],n,i))return!1}else{var d,h=f.keys(e);if(c=h.length,f.keys(t).length!==c)return!1;for(;c--;)if(d=h[c],!b(t,d)||!I(e[d],t[d],n,i))return!1}return n.pop(),i.pop(),!0},f.isEqual=function(e,t){return I(e,t)},f.isEmpty=function(e){return null==e||(k(e)&&(f.isArray(e)||f.isString(e)||f.isArguments(e))?0===e.length:0===f.keys(e).length)},f.isElement=function(e){return!(!e||1!==e.nodeType)},f.isArray=u||function(e){return"[object Array]"===s.call(e)},f.isObject=function(e){var t=typeof e;return"function"===t||"object"===t&&!!e},f.each(["Arguments","Function","String","Number","Date","RegExp","Error","Symbol","Map","WeakMap","Set","WeakSet"],(function(e){f["is"+e]=function(t){return s.call(t)==="[object "+e+"]"}})),f.isArguments(arguments)||(f.isArguments=function(e){return b(e,"callee")});var B=e.document&&e.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof B&&(f.isFunction=function(e){return"function"==typeof e||!1}),f.isFinite=function(e){return!f.isSymbol(e)&&isFinite(e)&&!isNaN(parseFloat(e))},f.isNaN=function(e){return f.isNumber(e)&&isNaN(e)},f.isBoolean=function(e){return!0===e||!1===e||"[object Boolean]"===s.call(e)},f.isNull=function(e){return null===e},f.isUndefined=function(e){return void 0===e},f.has=function(e,t){if(!f.isArray(t))return b(e,t);for(var n=t.length,i=0;i<n;i++){var r=t[i];if(null==e||!l.call(e,r))return!1;e=e[r]}return!!n},f.noConflict=function(){return e._=t,this},f.identity=function(e){return e},f.constant=function(e){return function(){return e}},f.noop=function(){},f.property=function(e){return f.isArray(e)?function(t){return w(t,e)}:y(e)},f.propertyOf=function(e){return null==e?function(){}:function(t){return f.isArray(t)?w(e,t):e[t]}},f.matcher=f.matches=function(e){return e=f.extendOwn({},e),function(t){return f.isMatch(t,e)}},f.times=function(e,t,n){var i=Array(Math.max(0,e));t=m(t,n,1);for(var r=0;r<e;r++)i[r]=t(r);return i},f.random=function(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))},f.now=Date.now||function(){return(new Date).getTime()};var N={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},R=f.invert(N),F=function(e){var t=function(t){return e[t]},n="(?:"+f.keys(e).join("|")+")",i=RegExp(n),r=RegExp(n,"g");return function(e){return e=null==e?"":""+e,i.test(e)?e.replace(r,t):e}};f.escape=F(N),f.unescape=F(R),f.result=function(e,t,n){f.isArray(t)||(t=[t]);var i=t.length;if(!i)return f.isFunction(n)?n.call(e):n;for(var r=0;r<i;r++){var o=null==e?void 0:e[t[r]];void 0===o&&(o=n,r=i),e=f.isFunction(o)?o.call(e):o}return e};var z=0;f.uniqueId=function(e){var t=++z+"";return e?e+t:t},f.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var V=/(.)^/,U={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},W=/\\|'|\r|\n|\u2028|\u2029/g,q=function(e){return"\\"+U[e]};f.template=function(e,t,n){!t&&n&&(t=n),t=f.defaults({},t,f.templateSettings);var i,r=RegExp([(t.escape||V).source,(t.interpolate||V).source,(t.evaluate||V).source].join("|")+"|$","g"),o=0,a="__p+='";e.replace(r,(function(t,n,i,r,s){return a+=e.slice(o,s).replace(W,q),o=s+t.length,n?a+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":i?a+="'+\n((__t=("+i+"))==null?'':__t)+\n'":r&&(a+="';\n"+r+"\n__p+='"),t})),a+="';\n",t.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{i=new Function(t.variable||"obj","_",a)}catch(t){throw t.source=a,t}var s=function(e){return i.call(this,e,f)},l=t.variable||"obj";return s.source="function("+l+"){\n"+a+"}",s},f.chain=function(e){var t=f(e);return t._chain=!0,t};var G=function(e,t){return e._chain?f(t).chain():t};f.mixin=function(e){return f.each(f.functions(e),(function(t){var n=f[t]=e[t];f.prototype[t]=function(){var e=[this._wrapped];return o.apply(e,arguments),G(this,n.apply(f,e))}})),f},f.mixin(f),f.each(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=n[e];f.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),"shift"!==e&&"splice"!==e||0!==n.length||delete n[0],G(this,n)}})),f.each(["concat","join","slice"],(function(e){var t=n[e];f.prototype[e]=function(){return G(this,t.apply(this._wrapped,arguments))}})),f.prototype.value=function(){return this._wrapped},f.prototype.valueOf=f.prototype.toJSON=f.prototype.value,f.prototype.toString=function(){return String(this._wrapped)},"function"==typeof define&&define.amd&&define("underscore",[],(function(){return f}))}(),function(){function e(e){this.mode=i.MODE_8BIT_BYTE,this.data=e,this.parsedData=[];for(var t=0,n=this.data.length;t<n;t++){var r=[],o=this.data.charCodeAt(t);o>65536?(r[0]=240|(1835008&o)>>>18,r[1]=128|(258048&o)>>>12,r[2]=128|(4032&o)>>>6,r[3]=128|63&o):o>2048?(r[0]=224|(61440&o)>>>12,r[1]=128|(4032&o)>>>6,r[2]=128|63&o):o>128?(r[0]=192|(1984&o)>>>6,r[1]=128|63&o):r[0]=o,this.parsedData.push(r)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function n(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}e.prototype={getLength:function(e){return this.parsedData.length},write:function(e){for(var t=0,n=this.parsedData.length;t<n;t++)e.put(this.parsedData[t],8)}},n.prototype={addData:function(t){var n=new e(t);this.dataList.push(n),this.dataCache=null},isDark:function(e,t){if(e<0||this.moduleCount<=e||t<0||this.moduleCount<=t)throw new Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(e,t){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var i=0;i<this.moduleCount;i++){this.modules[i]=new Array(this.moduleCount);for(var r=0;r<this.moduleCount;r++)this.modules[i][r]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),this.typeNumber>=7&&this.setupTypeNumber(e),null==this.dataCache&&(this.dataCache=n.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},setupPositionProbePattern:function(e,t){for(var n=-1;n<=7;n++)if(!(e+n<=-1||this.moduleCount<=e+n))for(var i=-1;i<=7;i++)t+i<=-1||this.moduleCount<=t+i||(this.modules[e+n][t+i]=0<=n&&n<=6&&(0==i||6==i)||0<=i&&i<=6&&(0==n||6==n)||2<=n&&n<=4&&2<=i&&i<=4)},getBestMaskPattern:function(){for(var e=0,t=0,n=0;n<8;n++){this.makeImpl(!0,n);var i=o.getLostPoint(this);(0==n||e>i)&&(e=i,t=n)}return t},createMovieClip:function(e,t,n){var i=e.createEmptyMovieClip(t,n);this.make();for(var r=0;r<this.modules.length;r++)for(var o=1*r,a=0;a<this.modules[r].length;a++){var s=1*a;this.modules[r][a]&&(i.beginFill(0,100),i.moveTo(s,o),i.lineTo(s+1,o),i.lineTo(s+1,o+1),i.lineTo(s,o+1),i.endFill())}return i},setupTimingPattern:function(){for(var e=8;e<this.moduleCount-8;e++)null==this.modules[e][6]&&(this.modules[e][6]=e%2==0);for(var t=8;t<this.moduleCount-8;t++)null==this.modules[6][t]&&(this.modules[6][t]=t%2==0)},setupPositionAdjustPattern:function(){for(var e=o.getPatternPosition(this.typeNumber),t=0;t<e.length;t++)for(var n=0;n<e.length;n++){var i=e[t],r=e[n];if(null==this.modules[i][r])for(var a=-2;a<=2;a++)for(var s=-2;s<=2;s++)this.modules[i+a][r+s]=-2==a||2==a||-2==s||2==s||0==a&&0==s}},setupTypeNumber:function(e){for(var t=o.getBCHTypeNumber(this.typeNumber),n=0;n<18;n++){var i=!e&&1==(t>>n&1);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=i}for(n=0;n<18;n++)i=!e&&1==(t>>n&1),this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=i},setupTypeInfo:function(e,t){for(var n=this.errorCorrectLevel<<3|t,i=o.getBCHTypeInfo(n),r=0;r<15;r++){var a=!e&&1==(i>>r&1);r<6?this.modules[r][8]=a:r<8?this.modules[r+1][8]=a:this.modules[this.moduleCount-15+r][8]=a}for(r=0;r<15;r++)a=!e&&1==(i>>r&1),r<8?this.modules[8][this.moduleCount-r-1]=a:r<9?this.modules[8][15-r-1+1]=a:this.modules[8][15-r-1]=a;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var n=-1,i=this.moduleCount-1,r=7,a=0,s=this.moduleCount-1;s>0;s-=2)for(6==s&&s--;;){for(var l=0;l<2;l++)if(null==this.modules[i][s-l]){var u=!1;a<e.length&&(u=1==(e[a]>>>r&1)),o.getMask(t,i,s-l)&&(u=!u),this.modules[i][s-l]=u,-1==--r&&(a++,r=7)}if((i+=n)<0||this.moduleCount<=i){i-=n,n=-n;break}}}},n.PAD0=236,n.PAD1=17,n.createData=function(e,t,i){for(var r=u.getRSBlocks(e,t),a=new c,s=0;s<i.length;s++){var l=i[s];a.put(l.mode,4),a.put(l.getLength(),o.getLengthInBits(l.mode,e)),l.write(a)}var d=0;for(s=0;s<r.length;s++)d+=r[s].dataCount;if(a.getLengthInBits()>8*d)throw new Error("code length overflow. ("+a.getLengthInBits()+">"+8*d+")");for(a.getLengthInBits()+4<=8*d&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(!1);for(;!(a.getLengthInBits()>=8*d||(a.put(n.PAD0,8),a.getLengthInBits()>=8*d));)a.put(n.PAD1,8);return n.createBytes(a,r)},n.createBytes=function(e,t){for(var n=0,i=0,r=0,a=new Array(t.length),s=new Array(t.length),u=0;u<t.length;u++){var c=t[u].dataCount,d=t[u].totalCount-c;i=Math.max(i,c),r=Math.max(r,d),a[u]=new Array(c);for(var h=0;h<a[u].length;h++)a[u][h]=255&e.buffer[h+n];n+=c;var f=o.getErrorCorrectPolynomial(d),p=new l(a[u],f.getLength()-1).mod(f);for(s[u]=new Array(f.getLength()-1),h=0;h<s[u].length;h++){var m=h+p.getLength()-s[u].length;s[u][h]=m>=0?p.get(m):0}}var g=0;for(h=0;h<t.length;h++)g+=t[h].totalCount;var v=new Array(g),_=0;for(h=0;h<i;h++)for(u=0;u<t.length;u++)h<a[u].length&&(v[_++]=a[u][h]);for(h=0;h<r;h++)for(u=0;u<t.length;u++)h<s[u].length&&(v[_++]=s[u][h]);return v};for(var i={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},r={L:1,M:0,Q:3,H:2},o={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(e){for(var t=e<<10;o.getBCHDigit(t)-o.getBCHDigit(o.G15)>=0;)t^=o.G15<<o.getBCHDigit(t)-o.getBCHDigit(o.G15);return(e<<10|t)^o.G15_MASK},getBCHTypeNumber:function(e){for(var t=e<<12;o.getBCHDigit(t)-o.getBCHDigit(o.G18)>=0;)t^=o.G18<<o.getBCHDigit(t)-o.getBCHDigit(o.G18);return e<<12|t},getBCHDigit:function(e){for(var t=0;0!=e;)t++,e>>>=1;return t},getPatternPosition:function(e){return o.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case 0:return(t+n)%2==0;case 1:return t%2==0;case 2:return n%3==0;case 3:return(t+n)%3==0;case 4:return(Math.floor(t/2)+Math.floor(n/3))%2==0;case 5:return t*n%2+t*n%3==0;case 6:return(t*n%2+t*n%3)%2==0;case 7:return(t*n%3+(t+n)%2)%2==0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new l([1],0),n=0;n<e;n++)t=t.multiply(new l([1,a.gexp(n)],0));return t},getLengthInBits:function(e,t){if(1<=t&&t<10)switch(e){case i.MODE_NUMBER:return 10;case i.MODE_ALPHA_NUM:return 9;case i.MODE_8BIT_BYTE:case i.MODE_KANJI:return 8;default:throw new Error("mode:"+e)}else if(t<27)switch(e){case i.MODE_NUMBER:return 12;case i.MODE_ALPHA_NUM:return 11;case i.MODE_8BIT_BYTE:return 16;case i.MODE_KANJI:return 10;default:throw new Error("mode:"+e)}else{if(!(t<41))throw new Error("type:"+t);switch(e){case i.MODE_NUMBER:return 14;case i.MODE_ALPHA_NUM:return 13;case i.MODE_8BIT_BYTE:return 16;case i.MODE_KANJI:return 12;default:throw new Error("mode:"+e)}}},getLostPoint:function(e){for(var t=e.getModuleCount(),n=0,i=0;i<t;i++)for(var r=0;r<t;r++){for(var o=0,a=e.isDark(i,r),s=-1;s<=1;s++)if(!(i+s<0||t<=i+s))for(var l=-1;l<=1;l++)r+l<0||t<=r+l||0==s&&0==l||a==e.isDark(i+s,r+l)&&o++;o>5&&(n+=3+o-5)}for(i=0;i<t-1;i++)for(r=0;r<t-1;r++){var u=0;e.isDark(i,r)&&u++,e.isDark(i+1,r)&&u++,e.isDark(i,r+1)&&u++,e.isDark(i+1,r+1)&&u++,0!=u&&4!=u||(n+=3)}for(i=0;i<t;i++)for(r=0;r<t-6;r++)e.isDark(i,r)&&!e.isDark(i,r+1)&&e.isDark(i,r+2)&&e.isDark(i,r+3)&&e.isDark(i,r+4)&&!e.isDark(i,r+5)&&e.isDark(i,r+6)&&(n+=40);for(r=0;r<t;r++)for(i=0;i<t-6;i++)e.isDark(i,r)&&!e.isDark(i+1,r)&&e.isDark(i+2,r)&&e.isDark(i+3,r)&&e.isDark(i+4,r)&&!e.isDark(i+5,r)&&e.isDark(i+6,r)&&(n+=40);var c=0;for(r=0;r<t;r++)for(i=0;i<t;i++)e.isDark(i,r)&&c++;return n+Math.abs(100*c/t/t-50)/5*10}},a={glog:function(e){if(e<1)throw new Error("glog("+e+")");return a.LOG_TABLE[e]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return a.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},s=0;s<8;s++)a.EXP_TABLE[s]=1<<s;for(s=8;s<256;s++)a.EXP_TABLE[s]=a.EXP_TABLE[s-4]^a.EXP_TABLE[s-5]^a.EXP_TABLE[s-6]^a.EXP_TABLE[s-8];for(s=0;s<255;s++)a.LOG_TABLE[a.EXP_TABLE[s]]=s;function l(e,t){if(null==e.length)throw new Error(e.length+"/"+t);for(var n=0;n<e.length&&0==e[n];)n++;this.num=new Array(e.length-n+t);for(var i=0;i<e.length-n;i++)this.num[i]=e[i+n]}function u(e,t){this.totalCount=e,this.dataCount=t}function c(){this.buffer=[],this.length=0}l.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=new Array(this.getLength()+e.getLength()-1),n=0;n<this.getLength();n++)for(var i=0;i<e.getLength();i++)t[n+i]^=a.gexp(a.glog(this.get(n))+a.glog(e.get(i)));return new l(t,0)},mod:function(e){if(this.getLength()-e.getLength()<0)return this;for(var t=a.glog(this.get(0))-a.glog(e.get(0)),n=new Array(this.getLength()),i=0;i<this.getLength();i++)n[i]=this.get(i);for(i=0;i<e.getLength();i++)n[i]^=a.gexp(a.glog(e.get(i))+t);return new l(n,0).mod(e)}},u.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],u.getRSBlocks=function(e,t){var n=u.getRsBlockTable(e,t);if(null==n)throw new Error("bad rs block @ typeNumber:"+e+"/errorCorrectLevel:"+t);for(var i=n.length/3,r=[],o=0;o<i;o++)for(var a=n[3*o+0],s=n[3*o+1],l=n[3*o+2],c=0;c<a;c++)r.push(new u(s,l));return r},u.getRsBlockTable=function(e,t){switch(t){case r.L:return u.RS_BLOCK_TABLE[4*(e-1)+0];case r.M:return u.RS_BLOCK_TABLE[4*(e-1)+1];case r.Q:return u.RS_BLOCK_TABLE[4*(e-1)+2];case r.H:return u.RS_BLOCK_TABLE[4*(e-1)+3];default:return}},c.prototype={get:function(e){var t=Math.floor(e/8);return 1==(this.buffer[t]>>>7-e%8&1)},put:function(e,t){for(var n=0;n<t;n++)this.putBit(1==(e>>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};var d=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];function h(){var e=!1,t=navigator.userAgent;if(/android/i.test(t)){e=!0;var n=t.toString().match(/android ([0-9]\.[0-9])/i);n&&n[1]&&(e=parseFloat(n[1]))}return e}var f=function(){var e=function(e,t){this._el=e,this._htOption=t};return e.prototype.draw=function(e){var t=this._htOption,n=this._el,i=e.getModuleCount();function r(e,t){var n=document.createElementNS("http://www.w3.org/2000/svg",e);for(var i in t)t.hasOwnProperty(i)&&n.setAttribute(i,t[i]);return n}Math.floor(t.width/i),Math.floor(t.height/i),this.clear();var o=r("svg",{viewBox:"0 0 "+String(i)+" "+String(i),width:"100%",height:"100%",fill:t.colorLight});o.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),n.appendChild(o),o.appendChild(r("rect",{fill:t.colorLight,width:"100%",height:"100%"})),o.appendChild(r("rect",{fill:t.colorDark,width:"1",height:"1",id:"template"}));for(var a=0;a<i;a++)for(var s=0;s<i;s++)if(e.isDark(a,s)){var l=r("use",{x:String(s),y:String(a)});l.setAttributeNS("http://www.w3.org/1999/xlink","href","#template"),o.appendChild(l)}},e.prototype.clear=function(){for(;this._el.hasChildNodes();)this._el.removeChild(this._el.lastChild)},e}(),p="svg"===document.documentElement.tagName.toLowerCase()?f:"undefined"==typeof CanvasRenderingContext2D?function(){var e=function(e,t){this._el=e,this._htOption=t};return e.prototype.draw=function(e){for(var t=this._htOption,n=this._el,i=e.getModuleCount(),r=Math.floor(t.width/i),o=Math.floor(t.height/i),a=['<table style="border:0;border-collapse:collapse;">'],s=0;s<i;s++){a.push("<tr>");for(var l=0;l<i;l++)a.push('<td style="border:0;border-collapse:collapse;padding:0;margin:0;width:'+r+"px;height:"+o+"px;background-color:"+(e.isDark(s,l)?t.colorDark:t.colorLight)+';"></td>');a.push("</tr>")}a.push("</table>"),n.innerHTML=a.join("");var u=n.childNodes[0],c=(t.width-u.offsetWidth)/2,d=(t.height-u.offsetHeight)/2;c>0&&d>0&&(u.style.margin=d+"px "+c+"px")},e.prototype.clear=function(){this._el.innerHTML=""},e}():function(){function e(){this._elImage.src=this._elCanvas.toDataURL("image/png"),this._elImage.style.display="block",this._elCanvas.style.display="none"}if(this._android&&this._android<=2.1){var t=1/window.devicePixelRatio,n=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(e,i,r,o,a,s,l,u,c){if("nodeName"in e&&/img/i.test(e.nodeName))for(var d=arguments.length-1;d>=1;d--)arguments[d]=arguments[d]*t;else void 0===u&&(arguments[1]*=t,arguments[2]*=t,arguments[3]*=t,arguments[4]*=t);n.apply(this,arguments)}}function i(e,t){var n=this;if(n._fFail=t,n._fSuccess=e,null===n._bSupportDataURI){var i=document.createElement("img"),r=function(){n._bSupportDataURI=!1,n._fFail&&n._fFail.call(n)};return i.onabort=r,i.onerror=r,i.onload=function(){n._bSupportDataURI=!0,n._fSuccess&&n._fSuccess.call(n)},void(i.src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==")}!0===n._bSupportDataURI&&n._fSuccess?n._fSuccess.call(n):!1===n._bSupportDataURI&&n._fFail&&n._fFail.call(n)}var r=function(e,t){this._bIsPainted=!1,this._android=h(),this._htOption=t,this._elCanvas=document.createElement("canvas"),this._elCanvas.width=t.width,this._elCanvas.height=t.height,e.appendChild(this._elCanvas),this._el=e,this._oContext=this._elCanvas.getContext("2d"),this._bIsPainted=!1,this._elImage=document.createElement("img"),this._elImage.alt="Scan me!",this._elImage.style.display="none",this._el.appendChild(this._elImage),this._bSupportDataURI=null};return r.prototype.draw=function(e){var t=this._elImage,n=this._oContext,i=this._htOption,r=e.getModuleCount(),o=i.width/r,a=i.height/r,s=Math.round(o),l=Math.round(a);t.style.display="none",this.clear();for(var u=0;u<r;u++)for(var c=0;c<r;c++){var d=e.isDark(u,c),h=c*o,f=u*a;n.strokeStyle=d?i.colorDark:i.colorLight,n.lineWidth=1,n.fillStyle=d?i.colorDark:i.colorLight,n.fillRect(h,f,o,a),n.strokeRect(Math.floor(h)+.5,Math.floor(f)+.5,s,l),n.strokeRect(Math.ceil(h)-.5,Math.ceil(f)-.5,s,l)}this._bIsPainted=!0},r.prototype.makeImage=function(){this._bIsPainted&&i.call(this,e)},r.prototype.isPainted=function(){return this._bIsPainted},r.prototype.clear=function(){this._oContext.clearRect(0,0,this._elCanvas.width,this._elCanvas.height),this._bIsPainted=!1},r.prototype.round=function(e){return e?Math.floor(1e3*e)/1e3:e},r}();(t=function(e,t){if(this._htOption={width:256,height:256,typeNumber:4,colorDark:"#000000",colorLight:"#ffffff",correctLevel:r.H},"string"==typeof t&&(t={text:t}),t)for(var n in t)this._htOption[n]=t[n];"string"==typeof e&&(e=document.getElementById(e)),this._htOption.useSVG&&(p=f),this._android=h(),this._el=e,this._oQRCode=null,this._oDrawing=new p(this._el,this._htOption),this._htOption.text&&this.makeCode(this._htOption.text)}).prototype.makeCode=function(e){this._oQRCode=new n(function(e,t){for(var n=1,i=function(e){var t=encodeURI(e).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return t.length+(t.length!=e?3:0)}(e),o=0,a=d.length;o<=a;o++){var s=0;switch(t){case r.L:s=d[o][0];break;case r.M:s=d[o][1];break;case r.Q:s=d[o][2];break;case r.H:s=d[o][3]}if(i<=s)break;n++}if(n>d.length)throw new Error("Too long data");return n}(e,this._htOption.correctLevel),this._htOption.correctLevel),this._oQRCode.addData(e),this._oQRCode.make(),this._el.title=e,this._oDrawing.draw(this._oQRCode),this.makeImage()},t.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||this._android>=3)&&this._oDrawing.makeImage()},t.prototype.clear=function(){this._oDrawing.clear()},t.CorrectLevel=r}(),
-/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */
-function(e){"use strict";function t(e){return parseInt(e)===e}function n(e){if(!t(e.length))return!1;for(var n=0;n<e.length;n++)if(!t(e[n])||e[n]<0||e[n]>255)return!1;return!0}function i(e,i){if(e.buffer&&"Uint8Array"===e.name)return i&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!n(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(t(e.length)&&n(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function r(e){return new Uint8Array(e)}function o(e,t,n,i,r){null==i&&null==r||(e=e.slice?e.slice(i,r):Array.prototype.slice.call(e,i,r)),t.set(e,n)}var a,s={toBytes:function(e){var t=[],n=0;for(e=encodeURI(e);n<e.length;){var r=e.charCodeAt(n++);37===r?(t.push(parseInt(e.substr(n,2),16)),n+=2):t.push(r)}return i(t)},fromBytes:function(e){for(var t=[],n=0;n<e.length;){var i=e[n];i<128?(t.push(String.fromCharCode(i)),n++):i>191&&i<224?(t.push(String.fromCharCode((31&i)<<6|63&e[n+1])),n+=2):(t.push(String.fromCharCode((15&i)<<12|(63&e[n+1])<<6|63&e[n+2])),n+=3)}return t.join("")}},l=(a="0123456789abcdef",{toBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},fromBytes:function(e){for(var t=[],n=0;n<e.length;n++){var i=e[n];t.push(a[(240&i)>>4]+a[15&i])}return t.join("")}}),u={16:10,24:12,32:14},c=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],d=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],h=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],f=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],p=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],m=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],v=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],_=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],y=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],b=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],w=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],L=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],M=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],k=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function x(e){for(var t=[],n=0;n<e.length;n+=4)t.push(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3]);return t}var S=function(e){if(!(this instanceof S))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};S.prototype._prepare=function(){var e=u[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var n,i=4*(e+1),r=this.key.length/4,o=x(this.key);for(t=0;t<r;t++)n=t>>2,this._Ke[n][t%4]=o[t],this._Kd[e-n][t%4]=o[t];for(var a,s=0,l=r;l<i;){if(a=o[r-1],o[0]^=d[a>>16&255]<<24^d[a>>8&255]<<16^d[255&a]<<8^d[a>>24&255]^c[s]<<24,s+=1,8!=r)for(t=1;t<r;t++)o[t]^=o[t-1];else{for(t=1;t<r/2;t++)o[t]^=o[t-1];for(a=o[r/2-1],o[r/2]^=d[255&a]^d[a>>8&255]<<8^d[a>>16&255]<<16^d[a>>24&255]<<24,t=r/2+1;t<r;t++)o[t]^=o[t-1]}for(t=0;t<r&&l<i;)h=l>>2,f=l%4,this._Ke[h][f]=o[t],this._Kd[e-h][f]=o[t++],l++}for(var h=1;h<e;h++)for(var f=0;f<4;f++)a=this._Kd[h][f],this._Kd[h][f]=w[a>>24&255]^L[a>>16&255]^M[a>>8&255]^k[255&a]},S.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,n=[0,0,0,0],i=x(e),o=0;o<4;o++)i[o]^=this._Ke[0][o];for(var a=1;a<t;a++){for(o=0;o<4;o++)n[o]=f[i[o]>>24&255]^p[i[(o+1)%4]>>16&255]^m[i[(o+2)%4]>>8&255]^g[255&i[(o+3)%4]]^this._Ke[a][o];i=n.slice()}var s,l=r(16);for(o=0;o<4;o++)s=this._Ke[t][o],l[4*o]=255&(d[i[o]>>24&255]^s>>24),l[4*o+1]=255&(d[i[(o+1)%4]>>16&255]^s>>16),l[4*o+2]=255&(d[i[(o+2)%4]>>8&255]^s>>8),l[4*o+3]=255&(d[255&i[(o+3)%4]]^s);return l},S.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,n=[0,0,0,0],i=x(e),o=0;o<4;o++)i[o]^=this._Kd[0][o];for(var a=1;a<t;a++){for(o=0;o<4;o++)n[o]=v[i[o]>>24&255]^_[i[(o+3)%4]>>16&255]^y[i[(o+2)%4]>>8&255]^b[255&i[(o+1)%4]]^this._Kd[a][o];i=n.slice()}var s,l=r(16);for(o=0;o<4;o++)s=this._Kd[t][o],l[4*o]=255&(h[i[o]>>24&255]^s>>24),l[4*o+1]=255&(h[i[(o+3)%4]>>16&255]^s>>16),l[4*o+2]=255&(h[i[(o+2)%4]>>8&255]^s>>8),l[4*o+3]=255&(h[255&i[(o+1)%4]]^s);return l};var T=function(e){if(!(this instanceof T))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new S(e)};T.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=r(e.length),n=r(16),a=0;a<e.length;a+=16)o(e,n,0,a,a+16),o(n=this._aes.encrypt(n),t,a);return t},T.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=r(e.length),n=r(16),a=0;a<e.length;a+=16)o(e,n,0,a,a+16),o(n=this._aes.decrypt(n),t,a);return t};var $=function(e,t){if(!(this instanceof $))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=r(16);this._lastCipherblock=i(t,!0),this._aes=new S(e)};$.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=r(e.length),n=r(16),a=0;a<e.length;a+=16){o(e,n,0,a,a+16);for(var s=0;s<16;s++)n[s]^=this._lastCipherblock[s];this._lastCipherblock=this._aes.encrypt(n),o(this._lastCipherblock,t,a)}return t},$.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=r(e.length),n=r(16),a=0;a<e.length;a+=16){o(e,n,0,a,a+16),n=this._aes.decrypt(n);for(var s=0;s<16;s++)t[a+s]=n[s]^this._lastCipherblock[s];o(e,this._lastCipherblock,0,a,a+16)}return t};var D=function(e,t,n){if(!(this instanceof D))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=r(16);n||(n=1),this.segmentSize=n,this._shiftRegister=i(t,!0),this._aes=new S(e)};D.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(n,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n},D.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(e,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n};var C=function(e,t){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=r(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new S(e)};C.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[n]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},C.prototype.decrypt=C.prototype.encrypt;var E=function(e){if(!(this instanceof E))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=r(16),this.setValue(e)):this.setBytes(e)};E.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");if(e>Number.MAX_SAFE_INTEGER)throw new Error("integer value out of safe range");for(var t=15;t>=0;--t)this._counter[t]=e%256,e=parseInt(e/256)},E.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},E.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var A=function(e,t){if(!(this instanceof A))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof E||(t=new E(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new S(e)};A.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[n]^=this._remainingCounter[this._remainingCounterIndex++];return t},A.prototype.decrypt=A.prototype.encrypt;var P={AES:S,Counter:E,ModeOfOperation:{ecb:T,cbc:$,cfb:D,ofb:C,ctr:A},utils:{hex:l,utf8:s},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,n=r(e.length+t);o(e,n);for(var a=e.length;a<n.length;a++)n[a]=t;return n},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var n=e.length-t,a=0;a<t;a++)if(e[n+a]!==t)throw new Error("PKCS#7 invalid padding byte");var s=r(n);return o(e,s,0,0,n),s}}},_arrayTest:{coerceArray:i,createArray:r,copyArray:o}};"undefined"!=typeof exports?module.exports=P:"function"==typeof define&&define.amd?define([],(function(){return P})):(e.aesjs&&(P._aesjs=e.aesjs),e.aesjs=P)}(this),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(function(){try{return require("moment")}catch(e){}}()):"function"==typeof define&&define.amd?define(["require"],(function(e){return t(function(){try{return e("moment")}catch(e){}}())})):(e=e||self).Chart=t(e.moment)}(this,(function(e){"use strict";e=e&&e.hasOwnProperty("default")?e.default:e;var t={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},n=function(e,t){return e(t={exports:{}}),t.exports}((function(e){var n={};for(var i in t)t.hasOwnProperty(i)&&(n[t[i]]=i);var r=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var o in r)if(r.hasOwnProperty(o)){if(!("channels"in r[o]))throw new Error("missing channels property: "+o);if(!("labels"in r[o]))throw new Error("missing channel labels property: "+o);if(r[o].labels.length!==r[o].channels)throw new Error("channel and label counts mismatch: "+o);var a=r[o].channels,s=r[o].labels;delete r[o].channels,delete r[o].labels,Object.defineProperty(r[o],"channels",{value:a}),Object.defineProperty(r[o],"labels",{value:s})}r.rgb.hsl=function(e){var t,n,i=e[0]/255,r=e[1]/255,o=e[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),l=s-a;return s===a?t=0:i===s?t=(r-o)/l:r===s?t=2+(o-i)/l:o===s&&(t=4+(i-r)/l),(t=Math.min(60*t,360))<0&&(t+=360),n=(a+s)/2,[t,100*(s===a?0:n<=.5?l/(s+a):l/(2-s-a)),100*n]},r.rgb.hsv=function(e){var t,n,i,r,o,a=e[0]/255,s=e[1]/255,l=e[2]/255,u=Math.max(a,s,l),c=u-Math.min(a,s,l),d=function(e){return(u-e)/6/c+.5};return 0===c?r=o=0:(o=c/u,t=d(a),n=d(s),i=d(l),a===u?r=i-n:s===u?r=1/3+t-i:l===u&&(r=2/3+n-t),r<0?r+=1:r>1&&(r-=1)),[360*r,100*o,100*u]},r.rgb.hwb=function(e){var t=e[0],n=e[1],i=e[2];return[r.rgb.hsl(e)[0],1/255*Math.min(t,Math.min(n,i))*100,100*(i=1-1/255*Math.max(t,Math.max(n,i)))]},r.rgb.cmyk=function(e){var t,n=e[0]/255,i=e[1]/255,r=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-i,1-r)))/(1-t)||0),100*((1-i-t)/(1-t)||0),100*((1-r-t)/(1-t)||0),100*t]},r.rgb.keyword=function(e){var i=n[e];if(i)return i;var r,o,a,s=1/0;for(var l in t)if(t.hasOwnProperty(l)){var u=(o=e,a=t[l],Math.pow(o[0]-a[0],2)+Math.pow(o[1]-a[1],2)+Math.pow(o[2]-a[2],2));u<s&&(s=u,r=l)}return r},r.keyword.rgb=function(e){return t[e]},r.rgb.xyz=function(e){var t=e[0]/255,n=e[1]/255,i=e[2]/255;return[100*(.4124*(t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*t+.7152*n+.0722*i),100*(.0193*t+.1192*n+.9505*i)]},r.rgb.lab=function(e){var t=r.rgb.xyz(e),n=t[0],i=t[1],o=t[2];return i/=100,o/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(n-i),200*(i-(o=o>.008856?Math.pow(o,1/3):7.787*o+16/116))]},r.hsl.rgb=function(e){var t,n,i,r,o,a=e[0]/360,s=e[1]/100,l=e[2]/100;if(0===s)return[o=255*l,o,o];t=2*l-(n=l<.5?l*(1+s):l+s-l*s),r=[0,0,0];for(var u=0;u<3;u++)(i=a+1/3*-(u-1))<0&&i++,i>1&&i--,o=6*i<1?t+6*(n-t)*i:2*i<1?n:3*i<2?t+(n-t)*(2/3-i)*6:t,r[u]=255*o;return r},r.hsl.hsv=function(e){var t=e[0],n=e[1]/100,i=e[2]/100,r=n,o=Math.max(i,.01);return n*=(i*=2)<=1?i:2-i,r*=o<=1?o:2-o,[t,100*(0===i?2*r/(o+r):2*n/(i+n)),(i+n)/2*100]},r.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,i=e[2]/100,r=Math.floor(t)%6,o=t-Math.floor(t),a=255*i*(1-n),s=255*i*(1-n*o),l=255*i*(1-n*(1-o));switch(i*=255,r){case 0:return[i,l,a];case 1:return[s,i,a];case 2:return[a,i,l];case 3:return[a,s,i];case 4:return[l,a,i];case 5:return[i,a,s]}},r.hsv.hsl=function(e){var t,n,i,r=e[0],o=e[1]/100,a=e[2]/100,s=Math.max(a,.01);return i=(2-o)*a,n=o*s,[r,100*(n=(n/=(t=(2-o)*s)<=1?t:2-t)||0),100*(i/=2)]},r.hwb.rgb=function(e){var t,n,i,r,o,a,s,l=e[0]/360,u=e[1]/100,c=e[2]/100,d=u+c;switch(d>1&&(u/=d,c/=d),i=6*l-(t=Math.floor(6*l)),0!=(1&t)&&(i=1-i),r=u+i*((n=1-c)-u),t){default:case 6:case 0:o=n,a=r,s=u;break;case 1:o=r,a=n,s=u;break;case 2:o=u,a=n,s=r;break;case 3:o=u,a=r,s=n;break;case 4:o=r,a=u,s=n;break;case 5:o=n,a=u,s=r}return[255*o,255*a,255*s]},r.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,i=e[2]/100,r=e[3]/100;return[255*(1-Math.min(1,t*(1-r)+r)),255*(1-Math.min(1,n*(1-r)+r)),255*(1-Math.min(1,i*(1-r)+r))]},r.xyz.rgb=function(e){var t,n,i,r=e[0]/100,o=e[1]/100,a=e[2]/100;return n=-.9689*r+1.8758*o+.0415*a,i=.0557*r+-.204*o+1.057*a,t=(t=3.2406*r+-1.5372*o+-.4986*a)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:12.92*i,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(i=Math.min(Math.max(0,i),1))]},r.xyz.lab=function(e){var t=e[0],n=e[1],i=e[2];return n/=100,i/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},r.lab.xyz=function(e){var t,n,i,r=e[0];t=e[1]/500+(n=(r+16)/116),i=n-e[2]/200;var o=Math.pow(n,3),a=Math.pow(t,3),s=Math.pow(i,3);return n=o>.008856?o:(n-16/116)/7.787,t=a>.008856?a:(t-16/116)/7.787,i=s>.008856?s:(i-16/116)/7.787,[t*=95.047,n*=100,i*=108.883]},r.lab.lch=function(e){var t,n=e[0],i=e[1],r=e[2];return(t=360*Math.atan2(r,i)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(i*i+r*r),t]},r.lch.lab=function(e){var t,n=e[0],i=e[1];return t=e[2]/360*2*Math.PI,[n,i*Math.cos(t),i*Math.sin(t)]},r.rgb.ansi16=function(e){var t=e[0],n=e[1],i=e[2],o=1 in arguments?arguments[1]:r.rgb.hsv(e)[2];if(0===(o=Math.round(o/50)))return 30;var a=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===o&&(a+=60),a},r.hsv.ansi16=function(e){return r.rgb.ansi16(r.hsv.rgb(e),e[2])},r.rgb.ansi256=function(e){var t=e[0],n=e[1],i=e[2];return t===n&&n===i?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(i/255*5)},r.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},r.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},r.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},r.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map((function(e){return e+e})).join(""));var i=parseInt(n,16);return[i>>16&255,i>>8&255,255&i]},r.rgb.hcg=function(e){var t,n=e[0]/255,i=e[1]/255,r=e[2]/255,o=Math.max(Math.max(n,i),r),a=Math.min(Math.min(n,i),r),s=o-a;return t=s<=0?0:o===n?(i-r)/s%6:o===i?2+(r-n)/s:4+(n-i)/s+4,t/=6,[360*(t%=1),100*s,100*(s<1?a/(1-s):0)]},r.hsl.hcg=function(e){var t,n=e[1]/100,i=e[2]/100,r=0;return(t=i<.5?2*n*i:2*n*(1-i))<1&&(r=(i-.5*t)/(1-t)),[e[0],100*t,100*r]},r.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,i=t*n,r=0;return i<1&&(r=(n-i)/(1-i)),[e[0],100*i,100*r]},r.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,i=e[2]/100;if(0===n)return[255*i,255*i,255*i];var r,o=[0,0,0],a=t%1*6,s=a%1,l=1-s;switch(Math.floor(a)){case 0:o[0]=1,o[1]=s,o[2]=0;break;case 1:o[0]=l,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=s;break;case 3:o[0]=0,o[1]=l,o[2]=1;break;case 4:o[0]=s,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=l}return r=(1-n)*i,[255*(n*o[0]+r),255*(n*o[1]+r),255*(n*o[2]+r)]},r.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),i=0;return n>0&&(i=t/n),[e[0],100*i,100*n]},r.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,i=0;return n>0&&n<.5?i=t/(2*n):n>=.5&&n<1&&(i=t/(2*(1-n))),[e[0],100*i,100*n]},r.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},r.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,i=n-t,r=0;return i<1&&(r=(n-i)/(1-i)),[e[0],100*i,100*r]},r.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},r.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},r.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},r.gray.hsl=r.gray.hsv=function(e){return[0,0,e[0]]},r.gray.hwb=function(e){return[0,100,e[0]]},r.gray.cmyk=function(e){return[0,0,0,e[0]]},r.gray.lab=function(e){return[e[0],0,0]},r.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},r.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}));function i(e){var t=function(){for(var e={},t=Object.keys(n),i=t.length,r=0;r<i;r++)e[t[r]]={distance:-1,parent:null};return e}(),i=[e];for(t[e].distance=0;i.length;)for(var r=i.pop(),o=Object.keys(n[r]),a=o.length,s=0;s<a;s++){var l=o[s],u=t[l];-1===u.distance&&(u.distance=t[r].distance+1,u.parent=r,i.unshift(l))}return t}function r(e,t){return function(n){return t(e(n))}}function o(e,t){for(var i=[t[e].parent,e],o=n[t[e].parent][e],a=t[e].parent;t[a].parent;)i.unshift(t[a].parent),o=r(n[t[a].parent][a],o),a=t[a].parent;return o.conversion=i,o}n.rgb,n.hsl,n.hsv,n.hwb,n.cmyk,n.xyz,n.lab,n.lch,n.hex,n.keyword,n.ansi16,n.ansi256,n.hcg,n.apple,n.gray;var a={};Object.keys(n).forEach((function(e){a[e]={},Object.defineProperty(a[e],"channels",{value:n[e].channels}),Object.defineProperty(a[e],"labels",{value:n[e].labels});var t=function(e){for(var t=i(e),n={},r=Object.keys(t),a=r.length,s=0;s<a;s++){var l=r[s];null!==t[l].parent&&(n[l]=o(l,t))}return n}(e);Object.keys(t).forEach((function(n){var i=t[n];a[e][n]=function(e){var t=function(t){if(null==t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var i=n.length,r=0;r<i;r++)n[r]=Math.round(n[r]);return n};return"conversion"in e&&(t.conversion=e.conversion),t}(i),a[e][n].raw=function(e){var t=function(t){return null==t?t:(arguments.length>1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(i)}))}));var s=a,l={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},u={getRgba:c,getHsla:d,getRgb:function(e){var t=c(e);return t&&t.slice(0,3)},getHsl:function(e){var t=d(e);return t&&t.slice(0,3)},getHwb:h,getAlpha:function(e){var t=c(e);return t?t[3]:(t=d(e))?t[3]:(t=h(e))?t[3]:void 0},hexString:function(e,t){return t=void 0!==t&&3===e.length?t:e[3],"#"+v(e[0])+v(e[1])+v(e[2])+(t>=0&&t<1?v(Math.round(255*t)):"")},rgbString:function(e,t){return t<1||e[3]&&e[3]<1?f(e,t):"rgb("+e[0]+", "+e[1]+", "+e[2]+")"},rgbaString:f,percentString:function(e,t){return t<1||e[3]&&e[3]<1?p(e,t):"rgb("+Math.round(e[0]/255*100)+"%, "+Math.round(e[1]/255*100)+"%, "+Math.round(e[2]/255*100)+"%)"},percentaString:p,hslString:function(e,t){return t<1||e[3]&&e[3]<1?m(e,t):"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)"},hslaString:m,hwbString:function(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+(void 0!==t&&1!==t?", "+t:"")+")"},keyword:function(e){return _[e.slice(0,3)]}};function c(e){if(e){var t=[0,0,0],n=1,i=e.match(/^#([a-fA-F0-9]{3,4})$/i),r="";if(i){r=(i=i[1])[3];for(var o=0;o<t.length;o++)t[o]=parseInt(i[o]+i[o],16);r&&(n=Math.round(parseInt(r+r,16)/255*100)/100)}else if(i=e.match(/^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i)){for(r=i[2],i=i[1],o=0;o<t.length;o++)t[o]=parseInt(i.slice(2*o,2*o+2),16);r&&(n=Math.round(parseInt(r,16)/255*100)/100)}else if(i=e.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<t.length;o++)t[o]=parseInt(i[o+1]);n=parseFloat(i[4])}else if(i=e.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<t.length;o++)t[o]=Math.round(2.55*parseFloat(i[o+1]));n=parseFloat(i[4])}else if(i=e.match(/(\w+)/)){if("transparent"==i[1])return[0,0,0,0];if(!(t=l[i[1]]))return}for(o=0;o<t.length;o++)t[o]=g(t[o],0,255);return n=n||0==n?g(n,0,1):1,t[3]=n,t}}function d(e){if(e){var t=e.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(t){var n=parseFloat(t[4]);return[g(parseInt(t[1]),0,360),g(parseFloat(t[2]),0,100),g(parseFloat(t[3]),0,100),g(isNaN(n)?1:n,0,1)]}}}function h(e){if(e){var t=e.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(t){var n=parseFloat(t[4]);return[g(parseInt(t[1]),0,360),g(parseFloat(t[2]),0,100),g(parseFloat(t[3]),0,100),g(isNaN(n)?1:n,0,1)]}}}function f(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"rgba("+e[0]+", "+e[1]+", "+e[2]+", "+t+")"}function p(e,t){return"rgba("+Math.round(e[0]/255*100)+"%, "+Math.round(e[1]/255*100)+"%, "+Math.round(e[2]/255*100)+"%, "+(t||e[3]||1)+")"}function m(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+t+")"}function g(e,t,n){return Math.min(Math.max(t,e),n)}function v(e){var t=e.toString(16).toUpperCase();return t.length<2?"0"+t:t}var _={};for(var y in l)_[l[y]]=y;var b=function(e){return e instanceof b?e:this instanceof b?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof e?(t=u.getRgba(e))?this.setValues("rgb",t):(t=u.getHsla(e))?this.setValues("hsl",t):(t=u.getHwb(e))&&this.setValues("hwb",t):"object"==typeof e&&(void 0!==(t=e).r||void 0!==t.red?this.setValues("rgb",t):void 0!==t.l||void 0!==t.lightness?this.setValues("hsl",t):void 0!==t.v||void 0!==t.value?this.setValues("hsv",t):void 0!==t.w||void 0!==t.whiteness?this.setValues("hwb",t):void 0===t.c&&void 0===t.cyan||this.setValues("cmyk",t)))):new b(e);var t};b.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var e=this.values;return 1!==e.alpha?e.hwb.concat([e.alpha]):e.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var e=this.values;return e.rgb.concat([e.alpha])},hslaArray:function(){var e=this.values;return e.hsl.concat([e.alpha])},alpha:function(e){return void 0===e?this.values.alpha:(this.setValues("alpha",e),this)},red:function(e){return this.setChannel("rgb",0,e)},green:function(e){return this.setChannel("rgb",1,e)},blue:function(e){return this.setChannel("rgb",2,e)},hue:function(e){return e&&(e=(e%=360)<0?360+e:e),this.setChannel("hsl",0,e)},saturation:function(e){return this.setChannel("hsl",1,e)},lightness:function(e){return this.setChannel("hsl",2,e)},saturationv:function(e){return this.setChannel("hsv",1,e)},whiteness:function(e){return this.setChannel("hwb",1,e)},blackness:function(e){return this.setChannel("hwb",2,e)},value:function(e){return this.setChannel("hsv",2,e)},cyan:function(e){return this.setChannel("cmyk",0,e)},magenta:function(e){return this.setChannel("cmyk",1,e)},yellow:function(e){return this.setChannel("cmyk",2,e)},black:function(e){return this.setChannel("cmyk",3,e)},hexString:function(){return u.hexString(this.values.rgb)},rgbString:function(){return u.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return u.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return u.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return u.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return u.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return u.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return u.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var e=this.values.rgb;return e[0]<<16|e[1]<<8|e[2]},luminosity:function(){for(var e=this.values.rgb,t=[],n=0;n<e.length;n++){var i=e[n]/255;t[n]=i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4)}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrast:function(e){var t=this.luminosity(),n=e.luminosity();return t>n?(t+.05)/(n+.05):(n+.05)/(t+.05)},level:function(e){var t=this.contrast(e);return t>=7.1?"AAA":t>=4.5?"AA":""},dark:function(){var e=this.values.rgb;return(299*e[0]+587*e[1]+114*e[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var e=[],t=0;t<3;t++)e[t]=255-this.values.rgb[t];return this.setValues("rgb",e),this},lighten:function(e){var t=this.values.hsl;return t[2]+=t[2]*e,this.setValues("hsl",t),this},darken:function(e){var t=this.values.hsl;return t[2]-=t[2]*e,this.setValues("hsl",t),this},saturate:function(e){var t=this.values.hsl;return t[1]+=t[1]*e,this.setValues("hsl",t),this},desaturate:function(e){var t=this.values.hsl;return t[1]-=t[1]*e,this.setValues("hsl",t),this},whiten:function(e){var t=this.values.hwb;return t[1]+=t[1]*e,this.setValues("hwb",t),this},blacken:function(e){var t=this.values.hwb;return t[2]+=t[2]*e,this.setValues("hwb",t),this},greyscale:function(){var e=this.values.rgb,t=.3*e[0]+.59*e[1]+.11*e[2];return this.setValues("rgb",[t,t,t]),this},clearer:function(e){var t=this.values.alpha;return this.setValues("alpha",t-t*e),this},opaquer:function(e){var t=this.values.alpha;return this.setValues("alpha",t+t*e),this},rotate:function(e){var t=this.values.hsl,n=(t[0]+e)%360;return t[0]=n<0?360+n:n,this.setValues("hsl",t),this},mix:function(e,t){var n=e,i=void 0===t?.5:t,r=2*i-1,o=this.alpha()-n.alpha(),a=((r*o==-1?r:(r+o)/(1+r*o))+1)/2,s=1-a;return this.rgb(a*this.red()+s*n.red(),a*this.green()+s*n.green(),a*this.blue()+s*n.blue()).alpha(this.alpha()*i+n.alpha()*(1-i))},toJSON:function(){return this.rgb()},clone:function(){var e,t,n=new b,i=this.values,r=n.values;for(var o in i)i.hasOwnProperty(o)&&(e=i[o],"[object Array]"===(t={}.toString.call(e))?r[o]=e.slice(0):"[object Number]"===t?r[o]=e:console.error("unexpected color value:",e));return n}},b.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},b.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},b.prototype.getValues=function(e){for(var t=this.values,n={},i=0;i<e.length;i++)n[e.charAt(i)]=t[e][i];return 1!==t.alpha&&(n.a=t.alpha),n},b.prototype.setValues=function(e,t){var n,i,r=this.values,o=this.spaces,a=this.maxes,l=1;if(this.valid=!0,"alpha"===e)l=t;else if(t.length)r[e]=t.slice(0,e.length),l=t[e.length];else if(void 0!==t[e.charAt(0)]){for(n=0;n<e.length;n++)r[e][n]=t[e.charAt(n)];l=t.a}else if(void 0!==t[o[e][0]]){var u=o[e];for(n=0;n<e.length;n++)r[e][n]=t[u[n]];l=t.alpha}if(r.alpha=Math.max(0,Math.min(1,void 0===l?r.alpha:l)),"alpha"===e)return!1;for(n=0;n<e.length;n++)i=Math.max(0,Math.min(a[e][n],r[e][n])),r[e][n]=Math.round(i);for(var c in o)c!==e&&(r[c]=s[e][c](r[e]));return!0},b.prototype.setSpace=function(e,t){var n=t[0];return void 0===n?this.getValues(e):("number"==typeof n&&(n=Array.prototype.slice.call(t)),this.setValues(e,n),this)},b.prototype.setChannel=function(e,t,n){var i=this.values[e];return void 0===n?i[t]:n===i[t]?this:(i[t]=n,this.setValues(e,i),this)},"undefined"!=typeof window&&(window.Color=b);var w,L=b,M={noop:function(){},uid:(w=0,function(){return w++}),isNullOrUndef:function(e){return null==e},isArray:function(e){if(Array.isArray&&Array.isArray(e))return!0;var t=Object.prototype.toString.call(e);return"[object"===t.substr(0,7)&&"Array]"===t.substr(-6)},isObject:function(e){return null!==e&&"[object Object]"===Object.prototype.toString.call(e)},isFinite:function(e){return("number"==typeof e||e instanceof Number)&&isFinite(e)},valueOrDefault:function(e,t){return void 0===e?t:e},valueAtIndexOrDefault:function(e,t,n){return M.valueOrDefault(M.isArray(e)?e[t]:e,n)},callback:function(e,t,n){if(e&&"function"==typeof e.call)return e.apply(n,t)},each:function(e,t,n,i){var r,o,a;if(M.isArray(e))if(o=e.length,i)for(r=o-1;r>=0;r--)t.call(n,e[r],r);else for(r=0;r<o;r++)t.call(n,e[r],r);else if(M.isObject(e))for(o=(a=Object.keys(e)).length,r=0;r<o;r++)t.call(n,e[a[r]],a[r])},arrayEquals:function(e,t){var n,i,r,o;if(!e||!t||e.length!==t.length)return!1;for(n=0,i=e.length;n<i;++n)if(r=e[n],o=t[n],r instanceof Array&&o instanceof Array){if(!M.arrayEquals(r,o))return!1}else if(r!==o)return!1;return!0},clone:function(e){if(M.isArray(e))return e.map(M.clone);if(M.isObject(e)){for(var t={},n=Object.keys(e),i=n.length,r=0;r<i;++r)t[n[r]]=M.clone(e[n[r]]);return t}return e},_merger:function(e,t,n,i){var r=t[e],o=n[e];M.isObject(r)&&M.isObject(o)?M.merge(r,o,i):t[e]=M.clone(o)},_mergerIf:function(e,t,n){var i=t[e],r=n[e];M.isObject(i)&&M.isObject(r)?M.mergeIf(i,r):t.hasOwnProperty(e)||(t[e]=M.clone(r))},merge:function(e,t,n){var i,r,o,a,s,l=M.isArray(t)?t:[t],u=l.length;if(!M.isObject(e))return e;for(i=(n=n||{}).merger||M._merger,r=0;r<u;++r)if(t=l[r],M.isObject(t))for(s=0,a=(o=Object.keys(t)).length;s<a;++s)i(o[s],e,t,n);return e},mergeIf:function(e,t){return M.merge(e,t,{merger:M._mergerIf})},extend:Object.assign||function(e){return M.merge(e,[].slice.call(arguments,1),{merger:function(e,t,n){t[e]=n[e]}})},inherits:function(e){var t=this,n=e&&e.hasOwnProperty("constructor")?e.constructor:function(){return t.apply(this,arguments)},i=function(){this.constructor=n};return i.prototype=t.prototype,n.prototype=new i,n.extend=M.inherits,e&&M.extend(n.prototype,e),n.__super__=t.prototype,n},_deprecated:function(e,t,n,i){void 0!==t&&console.warn(e+': "'+n+'" is deprecated. Please use "'+i+'" instead')}},k=M;M.callCallback=M.callback,M.indexOf=function(e,t,n){return Array.prototype.indexOf.call(e,t,n)},M.getValueOrDefault=M.valueOrDefault,M.getValueAtIndexOrDefault=M.valueAtIndexOrDefault;var x={linear:function(e){return e},easeInQuad:function(e){return e*e},easeOutQuad:function(e){return-e*(e-2)},easeInOutQuad:function(e){return(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1)},easeInCubic:function(e){return e*e*e},easeOutCubic:function(e){return(e-=1)*e*e+1},easeInOutCubic:function(e){return(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},easeInQuart:function(e){return e*e*e*e},easeOutQuart:function(e){return-((e-=1)*e*e*e-1)},easeInOutQuart:function(e){return(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},easeInQuint:function(e){return e*e*e*e*e},easeOutQuint:function(e){return(e-=1)*e*e*e*e+1},easeInOutQuint:function(e){return(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},easeInSine:function(e){return 1-Math.cos(e*(Math.PI/2))},easeOutSine:function(e){return Math.sin(e*(Math.PI/2))},easeInOutSine:function(e){return-.5*(Math.cos(Math.PI*e)-1)},easeInExpo:function(e){return 0===e?0:Math.pow(2,10*(e-1))},easeOutExpo:function(e){return 1===e?1:1-Math.pow(2,-10*e)},easeInOutExpo:function(e){return 0===e?0:1===e?1:(e/=.5)<1?.5*Math.pow(2,10*(e-1)):.5*(2-Math.pow(2,-10*--e))},easeInCirc:function(e){return e>=1?e:-(Math.sqrt(1-e*e)-1)},easeOutCirc:function(e){return Math.sqrt(1-(e-=1)*e)},easeInOutCirc:function(e){return(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},easeInElastic:function(e){var t=1.70158,n=0,i=1;return 0===e?0:1===e?1:(n||(n=.3),i<1?(i=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n))},easeOutElastic:function(e){var t=1.70158,n=0,i=1;return 0===e?0:1===e?1:(n||(n=.3),i<1?(i=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},easeInOutElastic:function(e){var t=1.70158,n=0,i=1;return 0===e?0:2==(e/=.5)?1:(n||(n=.45),i<1?(i=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/i),e<1?i*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},easeInBack:function(e){var t=1.70158;return e*e*((t+1)*e-t)},easeOutBack:function(e){var t=1.70158;return(e-=1)*e*((t+1)*e+t)+1},easeInOutBack:function(e){var t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},easeInBounce:function(e){return 1-x.easeOutBounce(1-e)},easeOutBounce:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},easeInOutBounce:function(e){return e<.5?.5*x.easeInBounce(2*e):.5*x.easeOutBounce(2*e-1)+.5}},S={effects:x};k.easingEffects=x;var T=Math.PI,$=T/180,D=2*T,C=T/2,E=T/4,A=2*T/3,P={clear:function(e){e.ctx.clearRect(0,0,e.width,e.height)},roundedRect:function(e,t,n,i,r,o){if(o){var a=Math.min(o,r/2,i/2),s=t+a,l=n+a,u=t+i-a,c=n+r-a;e.moveTo(t,l),s<u&&l<c?(e.arc(s,l,a,-T,-C),e.arc(u,l,a,-C,0),e.arc(u,c,a,0,C),e.arc(s,c,a,C,T)):s<u?(e.moveTo(s,n),e.arc(u,l,a,-C,C),e.arc(s,l,a,C,T+C)):l<c?(e.arc(s,l,a,-T,0),e.arc(s,c,a,0,T)):e.arc(s,l,a,-T,T),e.closePath(),e.moveTo(t,n)}else e.rect(t,n,i,r)},drawPoint:function(e,t,n,i,r,o){var a,s,l,u,c,d=(o||0)*$;if(t&&"object"==typeof t&&("[object HTMLImageElement]"===(a=t.toString())||"[object HTMLCanvasElement]"===a))return e.save(),e.translate(i,r),e.rotate(d),e.drawImage(t,-t.width/2,-t.height/2,t.width,t.height),void e.restore();if(!(isNaN(n)||n<=0)){switch(e.beginPath(),t){default:e.arc(i,r,n,0,D),e.closePath();break;case"triangle":e.moveTo(i+Math.sin(d)*n,r-Math.cos(d)*n),d+=A,e.lineTo(i+Math.sin(d)*n,r-Math.cos(d)*n),d+=A,e.lineTo(i+Math.sin(d)*n,r-Math.cos(d)*n),e.closePath();break;case"rectRounded":u=n-(c=.516*n),s=Math.cos(d+E)*u,l=Math.sin(d+E)*u,e.arc(i-s,r-l,c,d-T,d-C),e.arc(i+l,r-s,c,d-C,d),e.arc(i+s,r+l,c,d,d+C),e.arc(i-l,r+s,c,d+C,d+T),e.closePath();break;case"rect":if(!o){u=Math.SQRT1_2*n,e.rect(i-u,r-u,2*u,2*u);break}d+=E;case"rectRot":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(i-s,r-l),e.lineTo(i+l,r-s),e.lineTo(i+s,r+l),e.lineTo(i-l,r+s),e.closePath();break;case"crossRot":d+=E;case"cross":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(i-s,r-l),e.lineTo(i+s,r+l),e.moveTo(i+l,r-s),e.lineTo(i-l,r+s);break;case"star":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(i-s,r-l),e.lineTo(i+s,r+l),e.moveTo(i+l,r-s),e.lineTo(i-l,r+s),d+=E,s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(i-s,r-l),e.lineTo(i+s,r+l),e.moveTo(i+l,r-s),e.lineTo(i-l,r+s);break;case"line":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(i-s,r-l),e.lineTo(i+s,r+l);break;case"dash":e.moveTo(i,r),e.lineTo(i+Math.cos(d)*n,r+Math.sin(d)*n)}e.fill(),e.stroke()}},_isPointInArea:function(e,t){return e.x>t.left-1e-6&&e.x<t.right+1e-6&&e.y>t.top-1e-6&&e.y<t.bottom+1e-6},clipArea:function(e,t){e.save(),e.beginPath(),e.rect(t.left,t.top,t.right-t.left,t.bottom-t.top),e.clip()},unclipArea:function(e){e.restore()},lineTo:function(e,t,n,i){var r=n.steppedLine;if(r){if("middle"===r){var o=(t.x+n.x)/2;e.lineTo(o,i?n.y:t.y),e.lineTo(o,i?t.y:n.y)}else"after"===r&&!i||"after"!==r&&i?e.lineTo(t.x,n.y):e.lineTo(n.x,t.y);e.lineTo(n.x,n.y)}else n.tension?e.bezierCurveTo(i?t.controlPointPreviousX:t.controlPointNextX,i?t.controlPointPreviousY:t.controlPointNextY,i?n.controlPointNextX:n.controlPointPreviousX,i?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):e.lineTo(n.x,n.y)}},Y=P;k.clear=P.clear,k.drawRoundedRectangle=function(e){e.beginPath(),P.roundedRect.apply(P,arguments)};var O={_set:function(e,t){return k.merge(this[e]||(this[e]={}),t)}};O._set("global",{defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",defaultLineHeight:1.2,showLines:!0});var I=O,j=k.valueOrDefault,H={toLineHeight:function(e,t){var n=(""+e).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*t;switch(e=+n[2],n[3]){case"px":return e;case"%":e/=100}return t*e},toPadding:function(e){var t,n,i,r;return k.isObject(e)?(t=+e.top||0,n=+e.right||0,i=+e.bottom||0,r=+e.left||0):t=n=i=r=+e||0,{top:t,right:n,bottom:i,left:r,height:t+i,width:r+n}},_parseFont:function(e){var t=I.global,n=j(e.fontSize,t.defaultFontSize),i={family:j(e.fontFamily,t.defaultFontFamily),lineHeight:k.options.toLineHeight(j(e.lineHeight,t.defaultLineHeight),n),size:n,style:j(e.fontStyle,t.defaultFontStyle),weight:null,string:""};return i.string=function(e){return!e||k.isNullOrUndef(e.size)||k.isNullOrUndef(e.family)?null:(e.style?e.style+" ":"")+(e.weight?e.weight+" ":"")+e.size+"px "+e.family}(i),i},resolve:function(e,t,n,i){var r,o,a,s=!0;for(r=0,o=e.length;r<o;++r)if(void 0!==(a=e[r])&&(void 0!==t&&"function"==typeof a&&(a=a(t),s=!1),void 0!==n&&k.isArray(a)&&(a=a[n],s=!1),void 0!==a))return i&&!s&&(i.cacheable=!1),a}},B={_factorize:function(e){var t,n=[],i=Math.sqrt(e);for(t=1;t<i;t++)e%t==0&&(n.push(t),n.push(e/t));return i===(0|i)&&n.push(i),n.sort((function(e,t){return e-t})).pop(),n},log10:Math.log10||function(e){var t=Math.log(e)*Math.LOG10E,n=Math.round(t);return e===Math.pow(10,n)?n:t}},N=B;k.log10=B.log10;var R=k,F=S,z=Y,V=H,U=N;R.easing=F,R.canvas=z,R.options=V,R.math=U,R.rtl={getRtlAdapter:function(e,t,n){return e?function(e,t){return{x:function(n){return e+e+t-n},setWidth:function(e){t=e},textAlign:function(e){return"center"===e?e:"right"===e?"left":"right"},xPlus:function(e,t){return e-t},leftForLtr:function(e,t){return e-t}}}(t,n):{x:function(e){return e},setWidth:function(e){},textAlign:function(e){return e},xPlus:function(e,t){return e+t},leftForLtr:function(e,t){return e}}},overrideTextDirection:function(e,t){var n,i;"ltr"!==t&&"rtl"!==t||(i=[(n=e.canvas.style).getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",t,"important"),e.prevTextDirection=i)},restoreTextDirection:function(e){var t=e.prevTextDirection;void 0!==t&&(delete e.prevTextDirection,e.canvas.style.setProperty("direction",t[0],t[1]))}};var W=function(e){R.extend(this,e),this.initialize.apply(this,arguments)};R.extend(W.prototype,{_type:void 0,initialize:function(){this.hidden=!1},pivot:function(){var e=this;return e._view||(e._view=R.extend({},e._model)),e._start={},e},transition:function(e){var t=this,n=t._model,i=t._start,r=t._view;return n&&1!==e?(r||(r=t._view={}),i||(i=t._start={}),function(e,t,n,i){var r,o,a,s,l,u,c,d,h,f=Object.keys(n);for(r=0,o=f.length;r<o;++r)if(u=n[a=f[r]],t.hasOwnProperty(a)||(t[a]=u),(s=t[a])!==u&&"_"!==a[0]){if(e.hasOwnProperty(a)||(e[a]=s),(c=typeof u)==typeof(l=e[a]))if("string"===c){if((d=L(l)).valid&&(h=L(u)).valid){t[a]=h.mix(d,i).rgbString();continue}}else if(R.isFinite(l)&&R.isFinite(u)){t[a]=l+(u-l)*i;continue}t[a]=u}}(i,r,n,e),t):(t._view=R.extend({},n),t._start=null,t)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return R.isNumber(this._model.x)&&R.isNumber(this._model.y)}}),W.extend=R.inherits;var q=W,G=q.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),Z=G;Object.defineProperty(G.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(G.prototype,"chartInstance",{get:function(){return this.chart},set:function(e){this.chart=e}}),I._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:R.noop,onComplete:R.noop}});var J={animations:[],request:null,addAnimation:function(e,t,n,i){var r,o,a=this.animations;for(t.chart=e,t.startTime=Date.now(),t.duration=n,i||(e.animating=!0),r=0,o=a.length;r<o;++r)if(a[r].chart===e)return void(a[r]=t);a.push(t),1===a.length&&this.requestAnimationFrame()},cancelAnimation:function(e){var t=R.findIndex(this.animations,(function(t){return t.chart===e}));-1!==t&&(this.animations.splice(t,1),e.animating=!1)},requestAnimationFrame:function(){var e=this;null===e.request&&(e.request=R.requestAnimFrame.call(window,(function(){e.request=null,e.startDigest()})))},startDigest:function(){this.advance(),this.animations.length>0&&this.requestAnimationFrame()},advance:function(){for(var e,t,n,i,r=this.animations,o=0;o<r.length;)t=(e=r[o]).chart,n=e.numSteps,i=Math.floor((Date.now()-e.startTime)/e.duration*n)+1,e.currentStep=Math.min(i,n),R.callback(e.render,[t,e],t),R.callback(e.onAnimationProgress,[e],t),e.currentStep>=n?(R.callback(e.onAnimationComplete,[e],t),t.animating=!1,r.splice(o,1)):++o}},X=R.options.resolve,K=["push","pop","shift","splice","unshift"];function Q(e,t){var n=e._chartjs;if(n){var i=n.listeners,r=i.indexOf(t);-1!==r&&i.splice(r,1),i.length>0||(K.forEach((function(t){delete e[t]})),delete e._chartjs)}}var ee=function(e,t){this.initialize(e,t)};R.extend(ee.prototype,{datasetElementType:null,dataElementType:null,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth"],_dataElementOptions:["backgroundColor","borderColor","borderWidth","pointStyle"],initialize:function(e,t){var n=this;n.chart=e,n.index=t,n.linkScales(),n.addElements(),n._type=n.getMeta().type},updateIndex:function(e){this.index=e},linkScales:function(){var e=this.getMeta(),t=this.chart,n=t.scales,i=this.getDataset(),r=t.options.scales;null!==e.xAxisID&&e.xAxisID in n&&!i.xAxisID||(e.xAxisID=i.xAxisID||r.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in n&&!i.yAxisID||(e.yAxisID=i.yAxisID||r.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(e){return this.chart.scales[e]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this._update(!0)},destroy:function(){this._data&&Q(this._data,this)},createMetaDataset:function(){var e=this.datasetElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(e){var t=this.dataElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index,_index:e})},addElements:function(){var e,t,n=this.getMeta(),i=this.getDataset().data||[],r=n.data;for(e=0,t=i.length;e<t;++e)r[e]=r[e]||this.createMetaData(e);n.dataset=n.dataset||this.createMetaDataset()},addElementAndReset:function(e){var t=this.createMetaData(e);this.getMeta().data.splice(e,0,t),this.updateElement(t,e,!0)},buildOrUpdateElements:function(){var e,t,n=this,i=n.getDataset(),r=i.data||(i.data=[]);n._data!==r&&(n._data&&Q(n._data,n),r&&Object.isExtensible(r)&&(t=n,(e=r)._chartjs?e._chartjs.listeners.push(t):(Object.defineProperty(e,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[t]}}),K.forEach((function(t){var n="onData"+t.charAt(0).toUpperCase()+t.slice(1),i=e[t];Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:function(){var t=Array.prototype.slice.call(arguments),r=i.apply(this,t);return R.each(e._chartjs.listeners,(function(e){"function"==typeof e[n]&&e[n].apply(e,t)})),r}})})))),n._data=r),n.resyncElements()},_configure:function(){this._config=R.merge({},[this.chart.options.datasets[this._type],this.getDataset()],{merger:function(e,t,n){"_meta"!==e&&"data"!==e&&R._merger(e,t,n)}})},_update:function(e){this._configure(),this._cachedDataOpts=null,this.update(e)},update:R.noop,transition:function(e){for(var t=this.getMeta(),n=t.data||[],i=n.length,r=0;r<i;++r)n[r].transition(e);t.dataset&&t.dataset.transition(e)},draw:function(){var e=this.getMeta(),t=e.data||[],n=t.length,i=0;for(e.dataset&&e.dataset.draw();i<n;++i)t[i].draw()},getStyle:function(e){var t,n=this.getMeta(),i=n.dataset;return this._configure(),i&&void 0===e?t=this._resolveDatasetElementOptions(i||{}):(e=e||0,t=this._resolveDataElementOptions(n.data[e]||{},e)),!1!==t.fill&&null!==t.fill||(t.backgroundColor=t.borderColor),t},_resolveDatasetElementOptions:function(e,t){var n,i,r,o,a=this,s=a.chart,l=a._config,u=e.custom||{},c=s.options.elements[a.datasetElementType.prototype._type]||{},d=a._datasetElementOptions,h={},f={chart:s,dataset:a.getDataset(),datasetIndex:a.index,hover:t};for(n=0,i=d.length;n<i;++n)r=d[n],o=t?"hover"+r.charAt(0).toUpperCase()+r.slice(1):r,h[r]=X([u[o],l[o],c[o]],f);return h},_resolveDataElementOptions:function(e,t){var n=this,i=e&&e.custom,r=n._cachedDataOpts;if(r&&!i)return r;var o,a,s,l,u=n.chart,c=n._config,d=u.options.elements[n.dataElementType.prototype._type]||{},h=n._dataElementOptions,f={},p={chart:u,dataIndex:t,dataset:n.getDataset(),datasetIndex:n.index},m={cacheable:!i};if(i=i||{},R.isArray(h))for(a=0,s=h.length;a<s;++a)f[l=h[a]]=X([i[l],c[l],d[l]],p,t,m);else for(a=0,s=(o=Object.keys(h)).length;a<s;++a)f[l=o[a]]=X([i[l],c[h[l]],c[l],d[l]],p,t,m);return m.cacheable&&(n._cachedDataOpts=Object.freeze(f)),f},removeHoverStyle:function(e){R.merge(e._model,e.$previousStyle||{}),delete e.$previousStyle},setHoverStyle:function(e){var t=this.chart.data.datasets[e._datasetIndex],n=e._index,i=e.custom||{},r=e._model,o=R.getHoverColor;e.$previousStyle={backgroundColor:r.backgroundColor,borderColor:r.borderColor,borderWidth:r.borderWidth},r.backgroundColor=X([i.hoverBackgroundColor,t.hoverBackgroundColor,o(r.backgroundColor)],void 0,n),r.borderColor=X([i.hoverBorderColor,t.hoverBorderColor,o(r.borderColor)],void 0,n),r.borderWidth=X([i.hoverBorderWidth,t.hoverBorderWidth,r.borderWidth],void 0,n)},_removeDatasetHoverStyle:function(){var e=this.getMeta().dataset;e&&this.removeHoverStyle(e)},_setDatasetHoverStyle:function(){var e,t,n,i,r,o,a=this.getMeta().dataset,s={};if(a){for(o=a._model,r=this._resolveDatasetElementOptions(a,!0),e=0,t=(i=Object.keys(r)).length;e<t;++e)s[n=i[e]]=o[n],o[n]=r[n];a.$previousStyle=s}},resyncElements:function(){var e=this.getMeta(),t=this.getDataset().data,n=e.data.length,i=t.length;i<n?e.data.splice(i,n-i):i>n&&this.insertElements(n,i-n)},insertElements:function(e,t){for(var n=0;n<t;++n)this.addElementAndReset(e+n)},onDataPush:function(){var e=arguments.length;this.insertElements(this.getDataset().data.length-e,e)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(e,t){this.getMeta().data.splice(e,t),this.insertElements(e,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),ee.extend=R.inherits;var te=ee,ne=2*Math.PI;function ie(e,t){var n=t.startAngle,i=t.endAngle,r=t.pixelMargin,o=r/t.outerRadius,a=t.x,s=t.y;e.beginPath(),e.arc(a,s,t.outerRadius,n-o,i+o),t.innerRadius>r?(o=r/t.innerRadius,e.arc(a,s,t.innerRadius-r,i+o,n-o,!0)):e.arc(a,s,r,i+Math.PI/2,n-Math.PI/2),e.closePath(),e.clip()}I._set("global",{elements:{arc:{backgroundColor:I.global.defaultColor,borderColor:"#fff",borderWidth:2,borderAlign:"center"}}});var re=q.extend({_type:"arc",inLabelRange:function(e){var t=this._view;return!!t&&Math.pow(e-t.x,2)<Math.pow(t.radius+t.hoverRadius,2)},inRange:function(e,t){var n=this._view;if(n){for(var i=R.getAngleFromPoint(n,{x:e,y:t}),r=i.angle,o=i.distance,a=n.startAngle,s=n.endAngle;s<a;)s+=ne;for(;r>s;)r-=ne;for(;r<a;)r+=ne;var l=r>=a&&r<=s,u=o>=n.innerRadius&&o<=n.outerRadius;return l&&u}return!1},getCenterPoint:function(){var e=this._view,t=(e.startAngle+e.endAngle)/2,n=(e.innerRadius+e.outerRadius)/2;return{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}},getArea:function(){var e=this._view;return Math.PI*((e.endAngle-e.startAngle)/(2*Math.PI))*(Math.pow(e.outerRadius,2)-Math.pow(e.innerRadius,2))},tooltipPosition:function(){var e=this._view,t=e.startAngle+(e.endAngle-e.startAngle)/2,n=(e.outerRadius-e.innerRadius)/2+e.innerRadius;return{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}},draw:function(){var e,t=this._chart.ctx,n=this._view,i="inner"===n.borderAlign?.33:0,r={x:n.x,y:n.y,innerRadius:n.innerRadius,outerRadius:Math.max(n.outerRadius-i,0),pixelMargin:i,startAngle:n.startAngle,endAngle:n.endAngle,fullCircles:Math.floor(n.circumference/ne)};if(t.save(),t.fillStyle=n.backgroundColor,t.strokeStyle=n.borderColor,r.fullCircles){for(r.endAngle=r.startAngle+ne,t.beginPath(),t.arc(r.x,r.y,r.outerRadius,r.startAngle,r.endAngle),t.arc(r.x,r.y,r.innerRadius,r.endAngle,r.startAngle,!0),t.closePath(),e=0;e<r.fullCircles;++e)t.fill();r.endAngle=r.startAngle+n.circumference%ne}t.beginPath(),t.arc(r.x,r.y,r.outerRadius,r.startAngle,r.endAngle),t.arc(r.x,r.y,r.innerRadius,r.endAngle,r.startAngle,!0),t.closePath(),t.fill(),n.borderWidth&&function(e,t,n){var i="inner"===t.borderAlign;i?(e.lineWidth=2*t.borderWidth,e.lineJoin="round"):(e.lineWidth=t.borderWidth,e.lineJoin="bevel"),n.fullCircles&&function(e,t,n,i){var r,o=n.endAngle;for(i&&(n.endAngle=n.startAngle+ne,ie(e,n),n.endAngle=o,n.endAngle===n.startAngle&&n.fullCircles&&(n.endAngle+=ne,n.fullCircles--)),e.beginPath(),e.arc(n.x,n.y,n.innerRadius,n.startAngle+ne,n.startAngle,!0),r=0;r<n.fullCircles;++r)e.stroke();for(e.beginPath(),e.arc(n.x,n.y,t.outerRadius,n.startAngle,n.startAngle+ne),r=0;r<n.fullCircles;++r)e.stroke()}(e,t,n,i),i&&ie(e,n),e.beginPath(),e.arc(n.x,n.y,t.outerRadius,n.startAngle,n.endAngle),e.arc(n.x,n.y,n.innerRadius,n.endAngle,n.startAngle,!0),e.closePath(),e.stroke()}(t,n,r),t.restore()}}),oe=R.valueOrDefault,ae=I.global.defaultColor;I._set("global",{elements:{line:{tension:.4,backgroundColor:ae,borderWidth:3,borderColor:ae,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}});var se=q.extend({_type:"line",draw:function(){var e,t,n,i=this,r=i._view,o=i._chart.ctx,a=r.spanGaps,s=i._children.slice(),l=I.global,u=l.elements.line,c=-1,d=i._loop;if(s.length){if(i._loop){for(e=0;e<s.length;++e)if(t=R.previousItem(s,e),!s[e]._view.skip&&t._view.skip){s=s.slice(e).concat(s.slice(0,e)),d=a;break}d&&s.push(s[0])}for(o.save(),o.lineCap=r.borderCapStyle||u.borderCapStyle,o.setLineDash&&o.setLineDash(r.borderDash||u.borderDash),o.lineDashOffset=oe(r.borderDashOffset,u.borderDashOffset),o.lineJoin=r.borderJoinStyle||u.borderJoinStyle,o.lineWidth=oe(r.borderWidth,u.borderWidth),o.strokeStyle=r.borderColor||l.defaultColor,o.beginPath(),(n=s[0]._view).skip||(o.moveTo(n.x,n.y),c=0),e=1;e<s.length;++e)n=s[e]._view,t=-1===c?R.previousItem(s,e):s[c],n.skip||(c!==e-1&&!a||-1===c?o.moveTo(n.x,n.y):R.canvas.lineTo(o,t._view,n),c=e);d&&o.closePath(),o.stroke(),o.restore()}}}),le=R.valueOrDefault,ue=I.global.defaultColor;function ce(e){var t=this._view;return!!t&&Math.abs(e-t.x)<t.radius+t.hitRadius}I._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:ue,borderColor:ue,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}});var de=q.extend({_type:"point",inRange:function(e,t){var n=this._view;return!!n&&Math.pow(e-n.x,2)+Math.pow(t-n.y,2)<Math.pow(n.hitRadius+n.radius,2)},inLabelRange:ce,inXRange:ce,inYRange:function(e){var t=this._view;return!!t&&Math.abs(e-t.y)<t.radius+t.hitRadius},getCenterPoint:function(){var e=this._view;return{x:e.x,y:e.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var e=this._view;return{x:e.x,y:e.y,padding:e.radius+e.borderWidth}},draw:function(e){var t=this._view,n=this._chart.ctx,i=t.pointStyle,r=t.rotation,o=t.radius,a=t.x,s=t.y,l=I.global,u=l.defaultColor;t.skip||(void 0===e||R.canvas._isPointInArea(t,e))&&(n.strokeStyle=t.borderColor||u,n.lineWidth=le(t.borderWidth,l.elements.point.borderWidth),n.fillStyle=t.backgroundColor||u,R.canvas.drawPoint(n,i,o,a,s,r))}}),he=I.global.defaultColor;function fe(e){return e&&void 0!==e.width}function pe(e){var t,n,i,r,o;return fe(e)?(o=e.width/2,t=e.x-o,n=e.x+o,i=Math.min(e.y,e.base),r=Math.max(e.y,e.base)):(o=e.height/2,t=Math.min(e.x,e.base),n=Math.max(e.x,e.base),i=e.y-o,r=e.y+o),{left:t,top:i,right:n,bottom:r}}function me(e,t,n){return e===t?n:e===n?t:e}function ge(e,t,n){var i=null===t,r=null===n,o=!(!e||i&&r)&&pe(e);return o&&(i||t>=o.left&&t<=o.right)&&(r||n>=o.top&&n<=o.bottom)}I._set("global",{elements:{rectangle:{backgroundColor:he,borderColor:he,borderSkipped:"bottom",borderWidth:0}}});var ve=q.extend({_type:"rectangle",draw:function(){var e=this._chart.ctx,t=this._view,n=function(e){var t=pe(e),n=t.right-t.left,i=t.bottom-t.top,r=function(e,t,n){var i,r,o,a,s=e.borderWidth,l=function(e){var t=e.borderSkipped,n={};return t?(e.horizontal?e.base>e.x&&(t=me(t,"left","right")):e.base<e.y&&(t=me(t,"bottom","top")),n[t]=!0,n):n}(e);return R.isObject(s)?(i=+s.top||0,r=+s.right||0,o=+s.bottom||0,a=+s.left||0):i=r=o=a=+s||0,{t:l.top||i<0?0:i>n?n:i,r:l.right||r<0?0:r>t?t:r,b:l.bottom||o<0?0:o>n?n:o,l:l.left||a<0?0:a>t?t:a}}(e,n/2,i/2);return{outer:{x:t.left,y:t.top,w:n,h:i},inner:{x:t.left+r.l,y:t.top+r.t,w:n-r.l-r.r,h:i-r.t-r.b}}}(t),i=n.outer,r=n.inner;e.fillStyle=t.backgroundColor,e.fillRect(i.x,i.y,i.w,i.h),i.w===r.w&&i.h===r.h||(e.save(),e.beginPath(),e.rect(i.x,i.y,i.w,i.h),e.clip(),e.fillStyle=t.borderColor,e.rect(r.x,r.y,r.w,r.h),e.fill("evenodd"),e.restore())},height:function(){var e=this._view;return e.base-e.y},inRange:function(e,t){return ge(this._view,e,t)},inLabelRange:function(e,t){var n=this._view;return fe(n)?ge(n,e,null):ge(n,null,t)},inXRange:function(e){return ge(this._view,e,null)},inYRange:function(e){return ge(this._view,null,e)},getCenterPoint:function(){var e,t,n=this._view;return fe(n)?(e=n.x,t=(n.y+n.base)/2):(e=(n.x+n.base)/2,t=n.y),{x:e,y:t}},getArea:function(){var e=this._view;return fe(e)?e.width*Math.abs(e.y-e.base):e.height*Math.abs(e.x-e.base)},tooltipPosition:function(){var e=this._view;return{x:e.x,y:e.y}}}),_e={},ye=re,be=se,we=de,Le=ve;_e.Arc=ye,_e.Line=be,_e.Point=we,_e.Rectangle=Le;var Me=R._deprecated,ke=R.valueOrDefault;I._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),I._set("global",{datasets:{bar:{categoryPercentage:.8,barPercentage:.9}}});var xe=te.extend({dataElementType:_e.Rectangle,_dataElementOptions:["backgroundColor","borderColor","borderSkipped","borderWidth","barPercentage","barThickness","categoryPercentage","maxBarThickness","minBarLength"],initialize:function(){var e,t,n=this;te.prototype.initialize.apply(n,arguments),(e=n.getMeta()).stack=n.getDataset().stack,e.bar=!0,t=n._getIndexScale().options,Me("bar chart",t.barPercentage,"scales.[x/y]Axes.barPercentage","dataset.barPercentage"),Me("bar chart",t.barThickness,"scales.[x/y]Axes.barThickness","dataset.barThickness"),Me("bar chart",t.categoryPercentage,"scales.[x/y]Axes.categoryPercentage","dataset.categoryPercentage"),Me("bar chart",n._getValueScale().options.minBarLength,"scales.[x/y]Axes.minBarLength","dataset.minBarLength"),Me("bar chart",t.maxBarThickness,"scales.[x/y]Axes.maxBarThickness","dataset.maxBarThickness")},update:function(e){var t,n,i=this.getMeta().data;for(this._ruler=this.getRuler(),t=0,n=i.length;t<n;++t)this.updateElement(i[t],t,e)},updateElement:function(e,t,n){var i=this,r=i.getMeta(),o=i.getDataset(),a=i._resolveDataElementOptions(e,t);e._xScale=i.getScaleForId(r.xAxisID),e._yScale=i.getScaleForId(r.yAxisID),e._datasetIndex=i.index,e._index=t,e._model={backgroundColor:a.backgroundColor,borderColor:a.borderColor,borderSkipped:a.borderSkipped,borderWidth:a.borderWidth,datasetLabel:o.label,label:i.chart.data.labels[t]},R.isArray(o.data[t])&&(e._model.borderSkipped=null),i._updateElementGeometry(e,t,n,a),e.pivot()},_updateElementGeometry:function(e,t,n,i){var r=this,o=e._model,a=r._getValueScale(),s=a.getBasePixel(),l=a.isHorizontal(),u=r._ruler||r.getRuler(),c=r.calculateBarValuePixels(r.index,t,i),d=r.calculateBarIndexPixels(r.index,t,u,i);o.horizontal=l,o.base=n?s:c.base,o.x=l?n?s:c.head:d.center,o.y=l?d.center:n?s:c.head,o.height=l?d.size:void 0,o.width=l?void 0:d.size},_getStacks:function(e){var t,n,i=this._getIndexScale(),r=i._getMatchingVisibleMetas(this._type),o=i.options.stacked,a=r.length,s=[];for(t=0;t<a&&(n=r[t],(!1===o||-1===s.indexOf(n.stack)||void 0===o&&void 0===n.stack)&&s.push(n.stack),n.index!==e);++t);return s},getStackCount:function(){return this._getStacks().length},getStackIndex:function(e,t){var n=this._getStacks(e),i=void 0!==t?n.indexOf(t):-1;return-1===i?n.length-1:i},getRuler:function(){var e,t,n=this._getIndexScale(),i=[];for(e=0,t=this.getMeta().data.length;e<t;++e)i.push(n.getPixelForValue(null,e,this.index));return{pixels:i,start:n._startPixel,end:n._endPixel,stackCount:this.getStackCount(),scale:n}},calculateBarValuePixels:function(e,t,n){var i,r,o,a,s,l,u,c=this.chart,d=this._getValueScale(),h=d.isHorizontal(),f=c.data.datasets,p=d._getMatchingVisibleMetas(this._type),m=d._parseValue(f[e].data[t]),g=n.minBarLength,v=d.options.stacked,_=this.getMeta().stack,y=void 0===m.start?0:m.max>=0&&m.min>=0?m.min:m.max,b=void 0===m.start?m.end:m.max>=0&&m.min>=0?m.max-m.min:m.min-m.max,w=p.length;if(v||void 0===v&&void 0!==_)for(i=0;i<w&&(r=p[i]).index!==e;++i)r.stack===_&&(o=void 0===(u=d._parseValue(f[r.index].data[t])).start?u.end:u.min>=0&&u.max>=0?u.max:u.min,(m.min<0&&o<0||m.max>=0&&o>0)&&(y+=o));return a=d.getPixelForValue(y),l=(s=d.getPixelForValue(y+b))-a,void 0!==g&&Math.abs(l)<g&&(l=g,s=b>=0&&!h||b<0&&h?a-g:a+g),{size:l,base:a,head:s,center:s+l/2}},calculateBarIndexPixels:function(e,t,n,i){var r="flex"===i.barThickness?function(e,t,n){var i,r=t.pixels,o=r[e],a=e>0?r[e-1]:null,s=e<r.length-1?r[e+1]:null,l=n.categoryPercentage;return null===a&&(a=o-(null===s?t.end-t.start:s-o)),null===s&&(s=o+o-a),i=o-(o-Math.min(a,s))/2*l,{chunk:Math.abs(s-a)/2*l/t.stackCount,ratio:n.barPercentage,start:i}}(t,n,i):function(e,t,n){var i,r,o=n.barThickness,a=t.stackCount,s=t.pixels[e],l=R.isNullOrUndef(o)?function(e,t){var n,i,r,o,a=e._length;for(r=1,o=t.length;r<o;++r)a=Math.min(a,Math.abs(t[r]-t[r-1]));for(r=0,o=e.getTicks().length;r<o;++r)i=e.getPixelForTick(r),a=r>0?Math.min(a,Math.abs(i-n)):a,n=i;return a}(t.scale,t.pixels):-1;return R.isNullOrUndef(o)?(i=l*n.categoryPercentage,r=n.barPercentage):(i=o*a,r=1),{chunk:i/a,ratio:r,start:s-i/2}}(t,n,i),o=this.getStackIndex(e,this.getMeta().stack),a=r.start+r.chunk*o+r.chunk/2,s=Math.min(ke(i.maxBarThickness,1/0),r.chunk*r.ratio);return{base:a-s/2,head:a+s/2,center:a,size:s}},draw:function(){var e=this.chart,t=this._getValueScale(),n=this.getMeta().data,i=this.getDataset(),r=n.length,o=0;for(R.canvas.clipArea(e.ctx,e.chartArea);o<r;++o){var a=t._parseValue(i.data[o]);isNaN(a.min)||isNaN(a.max)||n[o].draw()}R.canvas.unclipArea(e.ctx)},_resolveDataElementOptions:function(){var e=this,t=R.extend({},te.prototype._resolveDataElementOptions.apply(e,arguments)),n=e._getIndexScale().options,i=e._getValueScale().options;return t.barPercentage=ke(n.barPercentage,t.barPercentage),t.barThickness=ke(n.barThickness,t.barThickness),t.categoryPercentage=ke(n.categoryPercentage,t.categoryPercentage),t.maxBarThickness=ke(n.maxBarThickness,t.maxBarThickness),t.minBarLength=ke(i.minBarLength,t.minBarLength),t}}),Se=R.valueOrDefault,Te=R.options.resolve;I._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(e,t){var n=t.datasets[e.datasetIndex].label||"",i=t.datasets[e.datasetIndex].data[e.index];return n+": ("+e.xLabel+", "+e.yLabel+", "+i.r+")"}}}});var $e=te.extend({dataElementType:_e.Point,_dataElementOptions:["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"],update:function(e){var t=this,n=t.getMeta().data;R.each(n,(function(n,i){t.updateElement(n,i,e)}))},updateElement:function(e,t,n){var i=this,r=i.getMeta(),o=e.custom||{},a=i.getScaleForId(r.xAxisID),s=i.getScaleForId(r.yAxisID),l=i._resolveDataElementOptions(e,t),u=i.getDataset().data[t],c=i.index,d=n?a.getPixelForDecimal(.5):a.getPixelForValue("object"==typeof u?u:NaN,t,c),h=n?s.getBasePixel():s.getPixelForValue(u,t,c);e._xScale=a,e._yScale=s,e._options=l,e._datasetIndex=c,e._index=t,e._model={backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,hitRadius:l.hitRadius,pointStyle:l.pointStyle,rotation:l.rotation,radius:n?0:l.radius,skip:o.skip||isNaN(d)||isNaN(h),x:d,y:h},e.pivot()},setHoverStyle:function(e){var t=e._model,n=e._options,i=R.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth,radius:t.radius},t.backgroundColor=Se(n.hoverBackgroundColor,i(n.backgroundColor)),t.borderColor=Se(n.hoverBorderColor,i(n.borderColor)),t.borderWidth=Se(n.hoverBorderWidth,n.borderWidth),t.radius=n.radius+n.hoverRadius},_resolveDataElementOptions:function(e,t){var n=this,i=n.chart,r=n.getDataset(),o=e.custom||{},a=r.data[t]||{},s=te.prototype._resolveDataElementOptions.apply(n,arguments),l={chart:i,dataIndex:t,dataset:r,datasetIndex:n.index};return n._cachedDataOpts===s&&(s=R.extend({},s)),s.radius=Te([o.radius,a.r,n._config.radius,i.options.elements.point.radius],l,t),s}}),De=R.valueOrDefault,Ce=Math.PI,Ee=2*Ce,Ae=Ce/2;I._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(e){var t,n,i,r=document.createElement("ul"),o=e.data,a=o.datasets,s=o.labels;if(r.setAttribute("class",e.id+"-legend"),a.length)for(t=0,n=a[0].data.length;t<n;++t)(i=r.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor=a[0].backgroundColor[t],s[t]&&i.appendChild(document.createTextNode(s[t]));return r.outerHTML},legend:{labels:{generateLabels:function(e){var t=e.data;return t.labels.length&&t.datasets.length?t.labels.map((function(n,i){var r=e.getDatasetMeta(0),o=r.controller.getStyle(i);return{text:n,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,lineWidth:o.borderWidth,hidden:isNaN(t.datasets[0].data[i])||r.data[i].hidden,index:i}})):[]}},onClick:function(e,t){var n,i,r,o=t.index,a=this.chart;for(n=0,i=(a.data.datasets||[]).length;n<i;++n)(r=a.getDatasetMeta(n)).data[o]&&(r.data[o].hidden=!r.data[o].hidden);a.update()}},cutoutPercentage:50,rotation:-Ae,circumference:Ee,tooltips:{callbacks:{title:function(){return""},label:function(e,t){var n=t.labels[e.index],i=": "+t.datasets[e.datasetIndex].data[e.index];return R.isArray(n)?(n=n.slice())[0]+=i:n+=i,n}}}});var Pe=te.extend({dataElementType:_e.Arc,linkScales:R.noop,_dataElementOptions:["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"],getRingIndex:function(e){for(var t=0,n=0;n<e;++n)this.chart.isDatasetVisible(n)&&++t;return t},update:function(e){var t,n,i,r,o=this,a=o.chart,s=a.chartArea,l=a.options,u=1,c=1,d=0,h=0,f=o.getMeta(),p=f.data,m=l.cutoutPercentage/100||0,g=l.circumference,v=o._getRingWeight(o.index);if(g<Ee){var _=l.rotation%Ee,y=(_+=_>=Ce?-Ee:_<-Ce?Ee:0)+g,b=Math.cos(_),w=Math.sin(_),L=Math.cos(y),M=Math.sin(y),k=_<=0&&y>=0||y>=Ee,x=_<=Ae&&y>=Ae||y>=Ee+Ae,S=_<=-Ae&&y>=-Ae||y>=Ce+Ae,T=_===-Ce||y>=Ce?-1:Math.min(b,b*m,L,L*m),$=S?-1:Math.min(w,w*m,M,M*m),D=k?1:Math.max(b,b*m,L,L*m),C=x?1:Math.max(w,w*m,M,M*m);u=(D-T)/2,c=(C-$)/2,d=-(D+T)/2,h=-(C+$)/2}for(i=0,r=p.length;i<r;++i)p[i]._options=o._resolveDataElementOptions(p[i],i);for(a.borderWidth=o.getMaxBorderWidth(),t=(s.right-s.left-a.borderWidth)/u,n=(s.bottom-s.top-a.borderWidth)/c,a.outerRadius=Math.max(Math.min(t,n)/2,0),a.innerRadius=Math.max(a.outerRadius*m,0),a.radiusLength=(a.outerRadius-a.innerRadius)/(o._getVisibleDatasetWeightTotal()||1),a.offsetX=d*a.outerRadius,a.offsetY=h*a.outerRadius,f.total=o.calculateTotal(),o.outerRadius=a.outerRadius-a.radiusLength*o._getRingWeightOffset(o.index),o.innerRadius=Math.max(o.outerRadius-a.radiusLength*v,0),i=0,r=p.length;i<r;++i)o.updateElement(p[i],i,e)},updateElement:function(e,t,n){var i=this,r=i.chart,o=r.chartArea,a=r.options,s=a.animation,l=(o.left+o.right)/2,u=(o.top+o.bottom)/2,c=a.rotation,d=a.rotation,h=i.getDataset(),f=n&&s.animateRotate?0:e.hidden?0:i.calculateCircumference(h.data[t])*(a.circumference/Ee),p=n&&s.animateScale?0:i.innerRadius,m=n&&s.animateScale?0:i.outerRadius,g=e._options||{};R.extend(e,{_datasetIndex:i.index,_index:t,_model:{backgroundColor:g.backgroundColor,borderColor:g.borderColor,borderWidth:g.borderWidth,borderAlign:g.borderAlign,x:l+r.offsetX,y:u+r.offsetY,startAngle:c,endAngle:d,circumference:f,outerRadius:m,innerRadius:p,label:R.valueAtIndexOrDefault(h.label,t,r.data.labels[t])}});var v=e._model;n&&s.animateRotate||(v.startAngle=0===t?a.rotation:i.getMeta().data[t-1]._model.endAngle,v.endAngle=v.startAngle+v.circumference),e.pivot()},calculateTotal:function(){var e,t=this.getDataset(),n=this.getMeta(),i=0;return R.each(n.data,(function(n,r){e=t.data[r],isNaN(e)||n.hidden||(i+=Math.abs(e))})),i},calculateCircumference:function(e){var t=this.getMeta().total;return t>0&&!isNaN(e)?Ee*(Math.abs(e)/t):0},getMaxBorderWidth:function(e){var t,n,i,r,o,a,s,l,u=0,c=this.chart;if(!e)for(t=0,n=c.data.datasets.length;t<n;++t)if(c.isDatasetVisible(t)){e=(i=c.getDatasetMeta(t)).data,t!==this.index&&(o=i.controller);break}if(!e)return 0;for(t=0,n=e.length;t<n;++t)r=e[t],o?(o._configure(),a=o._resolveDataElementOptions(r,t)):a=r._options,"inner"!==a.borderAlign&&(s=a.borderWidth,u=(l=a.hoverBorderWidth)>(u=s>u?s:u)?l:u);return u},setHoverStyle:function(e){var t=e._model,n=e._options,i=R.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth},t.backgroundColor=De(n.hoverBackgroundColor,i(n.backgroundColor)),t.borderColor=De(n.hoverBorderColor,i(n.borderColor)),t.borderWidth=De(n.hoverBorderWidth,n.borderWidth)},_getRingWeightOffset:function(e){for(var t=0,n=0;n<e;++n)this.chart.isDatasetVisible(n)&&(t+=this._getRingWeight(n));return t},_getRingWeight:function(e){return Math.max(De(this.chart.data.datasets[e].weight,1),0)},_getVisibleDatasetWeightTotal:function(){return this._getRingWeightOffset(this.chart.data.datasets.length)}});I._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{type:"category",position:"left",offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{mode:"index",axis:"y"}}),I._set("global",{datasets:{horizontalBar:{categoryPercentage:.8,barPercentage:.9}}});var Ye=xe.extend({_getValueScaleId:function(){return this.getMeta().xAxisID},_getIndexScaleId:function(){return this.getMeta().yAxisID}}),Oe=R.valueOrDefault,Ie=R.options.resolve,je=R.canvas._isPointInArea;function He(e,t){var n=e&&e.options.ticks||{},i=n.reverse,r=void 0===n.min?t:0,o=void 0===n.max?t:0;return{start:i?o:r,end:i?r:o}}function Be(e,t,n){var i=n/2,r=He(e,i),o=He(t,i);return{top:o.end,right:r.end,bottom:o.start,left:r.start}}function Ne(e){var t,n,i,r;return R.isObject(e)?(t=e.top,n=e.right,i=e.bottom,r=e.left):t=n=i=r=e,{top:t,right:n,bottom:i,left:r}}I._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}});var Re=te.extend({datasetElementType:_e.Line,dataElementType:_e.Point,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth","cubicInterpolationMode","fill"],_dataElementOptions:{backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},update:function(e){var t,n,i=this,r=i.getMeta(),o=r.dataset,a=r.data||[],s=i.chart.options,l=i._config,u=i._showLine=Oe(l.showLine,s.showLines);for(i._xScale=i.getScaleForId(r.xAxisID),i._yScale=i.getScaleForId(r.yAxisID),u&&(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=i._yScale,o._datasetIndex=i.index,o._children=a,o._model=i._resolveDatasetElementOptions(o),o.pivot()),t=0,n=a.length;t<n;++t)i.updateElement(a[t],t,e);for(u&&0!==o._model.tension&&i.updateBezierControlPoints(),t=0,n=a.length;t<n;++t)a[t].pivot()},updateElement:function(e,t,n){var i,r,o=this,a=o.getMeta(),s=e.custom||{},l=o.getDataset(),u=o.index,c=l.data[t],d=o._xScale,h=o._yScale,f=a.dataset._model,p=o._resolveDataElementOptions(e,t);i=d.getPixelForValue("object"==typeof c?c:NaN,t,u),r=n?h.getBasePixel():o.calculatePointY(c,t,u),e._xScale=d,e._yScale=h,e._options=p,e._datasetIndex=u,e._index=t,e._model={x:i,y:r,skip:s.skip||isNaN(i)||isNaN(r),radius:p.radius,pointStyle:p.pointStyle,rotation:p.rotation,backgroundColor:p.backgroundColor,borderColor:p.borderColor,borderWidth:p.borderWidth,tension:Oe(s.tension,f?f.tension:0),steppedLine:!!f&&f.steppedLine,hitRadius:p.hitRadius}},_resolveDatasetElementOptions:function(e){var t=this,n=t._config,i=e.custom||{},r=t.chart.options,o=r.elements.line,a=te.prototype._resolveDatasetElementOptions.apply(t,arguments);return a.spanGaps=Oe(n.spanGaps,r.spanGaps),a.tension=Oe(n.lineTension,o.tension),a.steppedLine=Ie([i.steppedLine,n.steppedLine,o.stepped]),a.clip=Ne(Oe(n.clip,Be(t._xScale,t._yScale,a.borderWidth))),a},calculatePointY:function(e,t,n){var i,r,o,a,s,l,u,c=this.chart,d=this._yScale,h=0,f=0;if(d.options.stacked){for(s=+d.getRightValue(e),u=(l=c._getSortedVisibleDatasetMetas()).length,i=0;i<u&&(o=l[i]).index!==n;++i)r=c.data.datasets[o.index],"line"===o.type&&o.yAxisID===d.id&&((a=+d.getRightValue(r.data[t]))<0?f+=a||0:h+=a||0);return s<0?d.getPixelForValue(f+s):d.getPixelForValue(h+s)}return d.getPixelForValue(e)},updateBezierControlPoints:function(){var e,t,n,i,r=this.chart,o=this.getMeta(),a=o.dataset._model,s=r.chartArea,l=o.data||[];function u(e,t,n){return Math.max(Math.min(e,n),t)}if(a.spanGaps&&(l=l.filter((function(e){return!e._model.skip}))),"monotone"===a.cubicInterpolationMode)R.splineCurveMonotone(l);else for(e=0,t=l.length;e<t;++e)n=l[e]._model,i=R.splineCurve(R.previousItem(l,e)._model,n,R.nextItem(l,e)._model,a.tension),n.controlPointPreviousX=i.previous.x,n.controlPointPreviousY=i.previous.y,n.controlPointNextX=i.next.x,n.controlPointNextY=i.next.y;if(r.options.elements.line.capBezierPoints)for(e=0,t=l.length;e<t;++e)n=l[e]._model,je(n,s)&&(e>0&&je(l[e-1]._model,s)&&(n.controlPointPreviousX=u(n.controlPointPreviousX,s.left,s.right),n.controlPointPreviousY=u(n.controlPointPreviousY,s.top,s.bottom)),e<l.length-1&&je(l[e+1]._model,s)&&(n.controlPointNextX=u(n.controlPointNextX,s.left,s.right),n.controlPointNextY=u(n.controlPointNextY,s.top,s.bottom)))},draw:function(){var e,t=this.chart,n=this.getMeta(),i=n.data||[],r=t.chartArea,o=t.canvas,a=0,s=i.length;for(this._showLine&&(e=n.dataset._model.clip,R.canvas.clipArea(t.ctx,{left:!1===e.left?0:r.left-e.left,right:!1===e.right?o.width:r.right+e.right,top:!1===e.top?0:r.top-e.top,bottom:!1===e.bottom?o.height:r.bottom+e.bottom}),n.dataset.draw(),R.canvas.unclipArea(t.ctx));a<s;++a)i[a].draw(r)},setHoverStyle:function(e){var t=e._model,n=e._options,i=R.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth,radius:t.radius},t.backgroundColor=Oe(n.hoverBackgroundColor,i(n.backgroundColor)),t.borderColor=Oe(n.hoverBorderColor,i(n.borderColor)),t.borderWidth=Oe(n.hoverBorderWidth,n.borderWidth),t.radius=Oe(n.hoverRadius,n.radius)}}),Fe=R.options.resolve;I._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(e){var t,n,i,r=document.createElement("ul"),o=e.data,a=o.datasets,s=o.labels;if(r.setAttribute("class",e.id+"-legend"),a.length)for(t=0,n=a[0].data.length;t<n;++t)(i=r.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor=a[0].backgroundColor[t],s[t]&&i.appendChild(document.createTextNode(s[t]));return r.outerHTML},legend:{labels:{generateLabels:function(e){var t=e.data;return t.labels.length&&t.datasets.length?t.labels.map((function(n,i){var r=e.getDatasetMeta(0),o=r.controller.getStyle(i);return{text:n,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,lineWidth:o.borderWidth,hidden:isNaN(t.datasets[0].data[i])||r.data[i].hidden,index:i}})):[]}},onClick:function(e,t){var n,i,r,o=t.index,a=this.chart;for(n=0,i=(a.data.datasets||[]).length;n<i;++n)(r=a.getDatasetMeta(n)).data[o].hidden=!r.data[o].hidden;a.update()}},tooltips:{callbacks:{title:function(){return""},label:function(e,t){return t.labels[e.index]+": "+e.yLabel}}}});var ze=te.extend({dataElementType:_e.Arc,linkScales:R.noop,_dataElementOptions:["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"],_getIndexScaleId:function(){return this.chart.scale.id},_getValueScaleId:function(){return this.chart.scale.id},update:function(e){var t,n,i,r=this,o=r.getDataset(),a=r.getMeta(),s=r.chart.options.startAngle||0,l=r._starts=[],u=r._angles=[],c=a.data;for(r._updateRadius(),a.count=r.countVisibleElements(),t=0,n=o.data.length;t<n;t++)l[t]=s,i=r._computeAngle(t),u[t]=i,s+=i;for(t=0,n=c.length;t<n;++t)c[t]._options=r._resolveDataElementOptions(c[t],t),r.updateElement(c[t],t,e)},_updateRadius:function(){var e=this,t=e.chart,n=t.chartArea,i=t.options,r=Math.min(n.right-n.left,n.bottom-n.top);t.outerRadius=Math.max(r/2,0),t.innerRadius=Math.max(i.cutoutPercentage?t.outerRadius/100*i.cutoutPercentage:1,0),t.radiusLength=(t.outerRadius-t.innerRadius)/t.getVisibleDatasetCount(),e.outerRadius=t.outerRadius-t.radiusLength*e.index,e.innerRadius=e.outerRadius-t.radiusLength},updateElement:function(e,t,n){var i=this,r=i.chart,o=i.getDataset(),a=r.options,s=a.animation,l=r.scale,u=r.data.labels,c=l.xCenter,d=l.yCenter,h=a.startAngle,f=e.hidden?0:l.getDistanceFromCenterForValue(o.data[t]),p=i._starts[t],m=p+(e.hidden?0:i._angles[t]),g=s.animateScale?0:l.getDistanceFromCenterForValue(o.data[t]),v=e._options||{};R.extend(e,{_datasetIndex:i.index,_index:t,_scale:l,_model:{backgroundColor:v.backgroundColor,borderColor:v.borderColor,borderWidth:v.borderWidth,borderAlign:v.borderAlign,x:c,y:d,innerRadius:0,outerRadius:n?g:f,startAngle:n&&s.animateRotate?h:p,endAngle:n&&s.animateRotate?h:m,label:R.valueAtIndexOrDefault(u,t,u[t])}}),e.pivot()},countVisibleElements:function(){var e=this.getDataset(),t=this.getMeta(),n=0;return R.each(t.data,(function(t,i){isNaN(e.data[i])||t.hidden||n++})),n},setHoverStyle:function(e){var t=e._model,n=e._options,i=R.getHoverColor,r=R.valueOrDefault;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth},t.backgroundColor=r(n.hoverBackgroundColor,i(n.backgroundColor)),t.borderColor=r(n.hoverBorderColor,i(n.borderColor)),t.borderWidth=r(n.hoverBorderWidth,n.borderWidth)},_computeAngle:function(e){var t=this,n=this.getMeta().count,i=t.getDataset(),r=t.getMeta();if(isNaN(i.data[e])||r.data[e].hidden)return 0;var o={chart:t.chart,dataIndex:e,dataset:i,datasetIndex:t.index};return Fe([t.chart.options.elements.arc.angle,2*Math.PI/n],o,e)}});I._set("pie",R.clone(I.doughnut)),I._set("pie",{cutoutPercentage:0});var Ve=Pe,Ue=R.valueOrDefault;I._set("radar",{spanGaps:!1,scale:{type:"radialLinear"},elements:{line:{fill:"start",tension:0}}});var We=te.extend({datasetElementType:_e.Line,dataElementType:_e.Point,linkScales:R.noop,_datasetElementOptions:["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill"],_dataElementOptions:{backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},_getIndexScaleId:function(){return this.chart.scale.id},_getValueScaleId:function(){return this.chart.scale.id},update:function(e){var t,n,i=this,r=i.getMeta(),o=r.dataset,a=r.data||[],s=i.chart.scale,l=i._config;for(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=s,o._datasetIndex=i.index,o._children=a,o._loop=!0,o._model=i._resolveDatasetElementOptions(o),o.pivot(),t=0,n=a.length;t<n;++t)i.updateElement(a[t],t,e);for(i.updateBezierControlPoints(),t=0,n=a.length;t<n;++t)a[t].pivot()},updateElement:function(e,t,n){var i=this,r=e.custom||{},o=i.getDataset(),a=i.chart.scale,s=a.getPointPositionForValue(t,o.data[t]),l=i._resolveDataElementOptions(e,t),u=i.getMeta().dataset._model,c=n?a.xCenter:s.x,d=n?a.yCenter:s.y;e._scale=a,e._options=l,e._datasetIndex=i.index,e._index=t,e._model={x:c,y:d,skip:r.skip||isNaN(c)||isNaN(d),radius:l.radius,pointStyle:l.pointStyle,rotation:l.rotation,backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,tension:Ue(r.tension,u?u.tension:0),hitRadius:l.hitRadius}},_resolveDatasetElementOptions:function(){var e=this,t=e._config,n=e.chart.options,i=te.prototype._resolveDatasetElementOptions.apply(e,arguments);return i.spanGaps=Ue(t.spanGaps,n.spanGaps),i.tension=Ue(t.lineTension,n.elements.line.tension),i},updateBezierControlPoints:function(){
-var e,t,n,i,r=this.getMeta(),o=this.chart.chartArea,a=r.data||[];function s(e,t,n){return Math.max(Math.min(e,n),t)}for(r.dataset._model.spanGaps&&(a=a.filter((function(e){return!e._model.skip}))),e=0,t=a.length;e<t;++e)n=a[e]._model,i=R.splineCurve(R.previousItem(a,e,!0)._model,n,R.nextItem(a,e,!0)._model,n.tension),n.controlPointPreviousX=s(i.previous.x,o.left,o.right),n.controlPointPreviousY=s(i.previous.y,o.top,o.bottom),n.controlPointNextX=s(i.next.x,o.left,o.right),n.controlPointNextY=s(i.next.y,o.top,o.bottom)},setHoverStyle:function(e){var t=e._model,n=e._options,i=R.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth,radius:t.radius},t.backgroundColor=Ue(n.hoverBackgroundColor,i(n.backgroundColor)),t.borderColor=Ue(n.hoverBorderColor,i(n.borderColor)),t.borderWidth=Ue(n.hoverBorderWidth,n.borderWidth),t.radius=Ue(n.hoverRadius,n.radius)}});I._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},tooltips:{callbacks:{title:function(){return""},label:function(e){return"("+e.xLabel+", "+e.yLabel+")"}}}}),I._set("global",{datasets:{scatter:{showLine:!1}}});var qe={bar:xe,bubble:$e,doughnut:Pe,horizontalBar:Ye,line:Re,polarArea:ze,pie:Ve,radar:We,scatter:Re};function Ge(e,t){return e.native?{x:e.x,y:e.y}:R.getRelativePosition(e,t)}function Ze(e,t){var n,i,r,o,a,s,l=e._getSortedVisibleDatasetMetas();for(i=0,o=l.length;i<o;++i)for(r=0,a=(n=l[i].data).length;r<a;++r)(s=n[r])._view.skip||t(s)}function Je(e,t){var n=[];return Ze(e,(function(e){e.inRange(t.x,t.y)&&n.push(e)})),n}function Xe(e,t,n,i){var r=Number.POSITIVE_INFINITY,o=[];return Ze(e,(function(e){if(!n||e.inRange(t.x,t.y)){var a=e.getCenterPoint(),s=i(t,a);s<r?(o=[e],r=s):s===r&&o.push(e)}})),o}function Ke(e){var t=-1!==e.indexOf("x"),n=-1!==e.indexOf("y");return function(e,i){var r=t?Math.abs(e.x-i.x):0,o=n?Math.abs(e.y-i.y):0;return Math.sqrt(Math.pow(r,2)+Math.pow(o,2))}}function Qe(e,t,n){var i=Ge(t,e);n.axis=n.axis||"x";var r=Ke(n.axis),o=n.intersect?Je(e,i):Xe(e,i,!1,r),a=[];return o.length?(e._getSortedVisibleDatasetMetas().forEach((function(e){var t=e.data[o[0]._index];t&&!t._view.skip&&a.push(t)})),a):[]}var et={modes:{single:function(e,t){var n=Ge(t,e),i=[];return Ze(e,(function(e){if(e.inRange(n.x,n.y))return i.push(e),i})),i.slice(0,1)},label:Qe,index:Qe,dataset:function(e,t,n){var i=Ge(t,e);n.axis=n.axis||"xy";var r=Ke(n.axis),o=n.intersect?Je(e,i):Xe(e,i,!1,r);return o.length>0&&(o=e.getDatasetMeta(o[0]._datasetIndex).data),o},"x-axis":function(e,t){return Qe(e,t,{intersect:!1})},point:function(e,t){return Je(e,Ge(t,e))},nearest:function(e,t,n){var i=Ge(t,e);n.axis=n.axis||"xy";var r=Ke(n.axis);return Xe(e,i,n.intersect,r)},x:function(e,t,n){var i=Ge(t,e),r=[],o=!1;return Ze(e,(function(e){e.inXRange(i.x)&&r.push(e),e.inRange(i.x,i.y)&&(o=!0)})),n.intersect&&!o&&(r=[]),r},y:function(e,t,n){var i=Ge(t,e),r=[],o=!1;return Ze(e,(function(e){e.inYRange(i.y)&&r.push(e),e.inRange(i.x,i.y)&&(o=!0)})),n.intersect&&!o&&(r=[]),r}}},tt=R.extend;function nt(e,t){return R.where(e,(function(e){return e.pos===t}))}function it(e,t){return e.sort((function(e,n){var i=t?n:e,r=t?e:n;return i.weight===r.weight?i.index-r.index:i.weight-r.weight}))}function rt(e,t,n,i){return Math.max(e[n],t[n])+Math.max(e[i],t[i])}function ot(e,t,n){var i,r,o=n.box,a=e.maxPadding;if(n.size&&(e[n.pos]-=n.size),n.size=n.horizontal?o.height:o.width,e[n.pos]+=n.size,o.getPadding){var s=o.getPadding();a.top=Math.max(a.top,s.top),a.left=Math.max(a.left,s.left),a.bottom=Math.max(a.bottom,s.bottom),a.right=Math.max(a.right,s.right)}if(i=t.outerWidth-rt(a,e,"left","right"),r=t.outerHeight-rt(a,e,"top","bottom"),i!==e.w||r!==e.h)return e.w=i,e.h=r,n.horizontal?i!==e.w:r!==e.h}function at(e,t){var n=t.maxPadding;return function(e){var i={left:0,top:0,right:0,bottom:0};return e.forEach((function(e){i[e]=Math.max(t[e],n[e])})),i}(e?["left","right"]:["top","bottom"])}function st(e,t,n){var i,r,o,a,s,l,u=[];for(i=0,r=e.length;i<r;++i)(a=(o=e[i]).box).update(o.width||t.w,o.height||t.h,at(o.horizontal,t)),ot(t,n,o)&&(l=!0,u.length&&(s=!0)),a.fullWidth||u.push(o);return s&&st(u,t,n)||l}function lt(e,t,n){var i,r,o,a,s=n.padding,l=t.x,u=t.y;for(i=0,r=e.length;i<r;++i)a=(o=e[i]).box,o.horizontal?(a.left=a.fullWidth?s.left:t.left,a.right=a.fullWidth?n.outerWidth-s.right:t.left+t.w,a.top=u,a.bottom=u+a.height,a.width=a.right-a.left,u=a.bottom):(a.left=l,a.right=l+a.width,a.top=t.top,a.bottom=t.top+t.h,a.height=a.bottom-a.top,l=a.right);t.x=l,t.y=u}I._set("global",{layout:{padding:{top:0,right:0,bottom:0,left:0}}});var ut,ct={defaults:{},addBox:function(e,t){e.boxes||(e.boxes=[]),t.fullWidth=t.fullWidth||!1,t.position=t.position||"top",t.weight=t.weight||0,t._layers=t._layers||function(){return[{z:0,draw:function(){t.draw.apply(t,arguments)}}]},e.boxes.push(t)},removeBox:function(e,t){var n=e.boxes?e.boxes.indexOf(t):-1;-1!==n&&e.boxes.splice(n,1)},configure:function(e,t,n){for(var i,r=["fullWidth","position","weight"],o=r.length,a=0;a<o;++a)i=r[a],n.hasOwnProperty(i)&&(t[i]=n[i])},update:function(e,t,n){if(e){var i=e.options.layout||{},r=R.options.toPadding(i.padding),o=t-r.width,a=n-r.height,s=function(e){var t=function(e){var t,n,i,r=[];for(t=0,n=(e||[]).length;t<n;++t)i=e[t],r.push({index:t,box:i,pos:i.position,horizontal:i.isHorizontal(),weight:i.weight});return r}(e),n=it(nt(t,"left"),!0),i=it(nt(t,"right")),r=it(nt(t,"top"),!0),o=it(nt(t,"bottom"));return{leftAndTop:n.concat(r),rightAndBottom:i.concat(o),chartArea:nt(t,"chartArea"),vertical:n.concat(i),horizontal:r.concat(o)}}(e.boxes),l=s.vertical,u=s.horizontal,c=Object.freeze({outerWidth:t,outerHeight:n,padding:r,availableWidth:o,vBoxMaxWidth:o/2/l.length,hBoxMaxHeight:a/2}),d=tt({maxPadding:tt({},r),w:o,h:a,x:r.left,y:r.top},r);!function(e,t){var n,i,r;for(n=0,i=e.length;n<i;++n)(r=e[n]).width=r.horizontal?r.box.fullWidth&&t.availableWidth:t.vBoxMaxWidth,r.height=r.horizontal&&t.hBoxMaxHeight}(l.concat(u),c),st(l,d,c),st(u,d,c)&&st(l,d,c),function(e){var t=e.maxPadding;function n(n){var i=Math.max(t[n]-e[n],0);return e[n]+=i,i}e.y+=n("top"),e.x+=n("left"),n("right"),n("bottom")}(d),lt(s.leftAndTop,d,c),d.x+=d.w,d.y+=d.h,lt(s.rightAndBottom,d,c),e.chartArea={left:d.left,top:d.top,right:d.left+d.w,bottom:d.top+d.h},R.each(s.chartArea,(function(t){var n=t.box;tt(n,e.chartArea),n.update(d.w,d.h)}))}}},dt=(ut=Object.freeze({__proto__:null,default:"@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}"}))&&ut.default||ut,ht="$chartjs",ft="chartjs-size-monitor",pt="chartjs-render-monitor",mt=["animationstart","webkitAnimationStart"],gt={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function vt(e,t){var n=R.getStyle(e,t),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?Number(i[1]):void 0}var _t=!!function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("e",null,t)}catch(e){}return e}()&&{passive:!0};function yt(e,t,n){e.addEventListener(t,n,_t)}function bt(e,t,n){e.removeEventListener(t,n,_t)}function wt(e,t,n,i,r){return{type:e,chart:t,native:r||null,x:void 0!==n?n:null,y:void 0!==i?i:null}}function Lt(e){var t=document.createElement("div");return t.className=e||"",t}var Mt={disableCSSInjection:!1,_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,_ensureLoaded:function(e){if(!this.disableCSSInjection){var t=e.getRootNode?e.getRootNode():document;!function(e,t){var n=e[ht]||(e[ht]={});if(!n.containsStyles){n.containsStyles=!0,t="/* Chart.js */\n"+t;var i=document.createElement("style");i.setAttribute("type","text/css"),i.appendChild(document.createTextNode(t)),e.appendChild(i)}}(t.host?t:document.head,dt)}},acquireContext:function(e,t){"string"==typeof e?e=document.getElementById(e):e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas);var n=e&&e.getContext&&e.getContext("2d");return n&&n.canvas===e?(this._ensureLoaded(e),function(e,t){var n=e.style,i=e.getAttribute("height"),r=e.getAttribute("width");if(e[ht]={initial:{height:i,width:r,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",null===r||""===r){var o=vt(e,"width");void 0!==o&&(e.width=o)}if(null===i||""===i)if(""===e.style.height)e.height=e.width/(t.options.aspectRatio||2);else{var a=vt(e,"height");void 0!==o&&(e.height=a)}}(e,t),n):null},releaseContext:function(e){var t=e.canvas;if(t[ht]){var n=t[ht].initial;["height","width"].forEach((function(e){var i=n[e];R.isNullOrUndef(i)?t.removeAttribute(e):t.setAttribute(e,i)})),R.each(n.style||{},(function(e,n){t.style[n]=e})),t.width=t.width,delete t[ht]}},addEventListener:function(e,t,n){var i=e.canvas;if("resize"!==t){var r=n[ht]||(n[ht]={});yt(i,t,(r.proxies||(r.proxies={}))[e.id+"_"+t]=function(t){n(function(e,t){var n=gt[e.type]||e.type,i=R.getRelativePosition(e,t);return wt(n,t,i.x,i.y,e)}(t,e))})}else!function(e,t,n){var i,r,o,a,s=e[ht]||(e[ht]={}),l=s.resizer=function(e){var t=Lt(ft),n=Lt(ft+"-expand"),i=Lt(ft+"-shrink");n.appendChild(Lt()),i.appendChild(Lt()),t.appendChild(n),t.appendChild(i),t._reset=function(){n.scrollLeft=1e6,n.scrollTop=1e6,i.scrollLeft=1e6,i.scrollTop=1e6};var r=function(){t._reset(),e()};return yt(n,"scroll",r.bind(n,"expand")),yt(i,"scroll",r.bind(i,"shrink")),t}((i=function(){if(s.resizer){var i=n.options.maintainAspectRatio&&e.parentNode,r=i?i.clientWidth:0;t(wt("resize",n)),i&&i.clientWidth<r&&n.canvas&&t(wt("resize",n))}},o=!1,a=[],function(){a=Array.prototype.slice.call(arguments),r=r||this,o||(o=!0,R.requestAnimFrame.call(window,(function(){o=!1,i.apply(r,a)})))}));!function(e,t){var n=e[ht]||(e[ht]={}),i=n.renderProxy=function(e){"chartjs-render-animation"===e.animationName&&t()};R.each(mt,(function(t){yt(e,t,i)})),n.reflow=!!e.offsetParent,e.classList.add(pt)}(e,(function(){if(s.resizer){var t=e.parentNode;t&&t!==l.parentNode&&t.insertBefore(l,t.firstChild),l._reset()}}))}(i,n,e)},removeEventListener:function(e,t,n){var i=e.canvas;if("resize"!==t){var r=((n[ht]||{}).proxies||{})[e.id+"_"+t];r&&bt(i,t,r)}else!function(e){var t=e[ht]||{},n=t.resizer;delete t.resizer,function(e){var t=e[ht]||{},n=t.renderProxy;n&&(R.each(mt,(function(t){bt(e,t,n)})),delete t.renderProxy),e.classList.remove(pt)}(e),n&&n.parentNode&&n.parentNode.removeChild(n)}(i)}};R.addEvent=yt,R.removeEvent=bt;var kt=Mt._enabled?Mt:{acquireContext:function(e){return e&&e.canvas&&(e=e.canvas),e&&e.getContext("2d")||null}},xt=R.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},kt);I._set("global",{plugins:{}});var St={_plugins:[],_cacheId:0,register:function(e){var t=this._plugins;[].concat(e).forEach((function(e){-1===t.indexOf(e)&&t.push(e)})),this._cacheId++},unregister:function(e){var t=this._plugins;[].concat(e).forEach((function(e){var n=t.indexOf(e);-1!==n&&t.splice(n,1)})),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(e,t,n){var i,r,o,a,s,l=this.descriptors(e),u=l.length;for(i=0;i<u;++i)if("function"==typeof(s=(o=(r=l[i]).plugin)[t])&&((a=[e].concat(n||[])).push(r.options),!1===s.apply(o,a)))return!1;return!0},descriptors:function(e){var t=e.$plugins||(e.$plugins={});if(t.id===this._cacheId)return t.descriptors;var n=[],i=[],r=e&&e.config||{},o=r.options&&r.options.plugins||{};return this._plugins.concat(r.plugins||[]).forEach((function(e){if(-1===n.indexOf(e)){var t=e.id,r=o[t];!1!==r&&(!0===r&&(r=R.clone(I.global.plugins[t])),n.push(e),i.push({plugin:e,options:r||{}}))}})),t.descriptors=i,t.id=this._cacheId,i},_invalidate:function(e){delete e.$plugins}},Tt={constructors:{},defaults:{},registerScaleType:function(e,t,n){this.constructors[e]=t,this.defaults[e]=R.clone(n)},getScaleConstructor:function(e){return this.constructors.hasOwnProperty(e)?this.constructors[e]:void 0},getScaleDefaults:function(e){return this.defaults.hasOwnProperty(e)?R.merge({},[I.scale,this.defaults[e]]):{}},updateScaleDefaults:function(e,t){this.defaults.hasOwnProperty(e)&&(this.defaults[e]=R.extend(this.defaults[e],t))},addScalesToLayout:function(e){R.each(e.scales,(function(t){t.fullWidth=t.options.fullWidth,t.position=t.options.position,t.weight=t.options.weight,ct.addBox(e,t)}))}},$t=R.valueOrDefault,Dt=R.rtl.getRtlAdapter;I._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:R.noop,title:function(e,t){var n="",i=t.labels,r=i?i.length:0;if(e.length>0){var o=e[0];o.label?n=o.label:o.xLabel?n=o.xLabel:r>0&&o.index<r&&(n=i[o.index])}return n},afterTitle:R.noop,beforeBody:R.noop,beforeLabel:R.noop,label:function(e,t){var n=t.datasets[e.datasetIndex].label||"";return n&&(n+=": "),R.isNullOrUndef(e.value)?n+=e.yLabel:n+=e.value,n},labelColor:function(e,t){var n=t.getDatasetMeta(e.datasetIndex).data[e.index]._view;return{borderColor:n.borderColor,backgroundColor:n.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:R.noop,afterBody:R.noop,beforeFooter:R.noop,footer:R.noop,afterFooter:R.noop}}});var Ct={average:function(e){if(!e.length)return!1;var t,n,i=0,r=0,o=0;for(t=0,n=e.length;t<n;++t){var a=e[t];if(a&&a.hasValue()){var s=a.tooltipPosition();i+=s.x,r+=s.y,++o}}return{x:i/o,y:r/o}},nearest:function(e,t){var n,i,r,o=t.x,a=t.y,s=Number.POSITIVE_INFINITY;for(n=0,i=e.length;n<i;++n){var l=e[n];if(l&&l.hasValue()){var u=l.getCenterPoint(),c=R.distanceBetweenPoints(t,u);c<s&&(s=c,r=l)}}if(r){var d=r.tooltipPosition();o=d.x,a=d.y}return{x:o,y:a}}};function Et(e,t){return t&&(R.isArray(t)?Array.prototype.push.apply(e,t):e.push(t)),e}function At(e){return("string"==typeof e||e instanceof String)&&e.indexOf("\n")>-1?e.split("\n"):e}function Pt(e){var t=I.global;return{xPadding:e.xPadding,yPadding:e.yPadding,xAlign:e.xAlign,yAlign:e.yAlign,rtl:e.rtl,textDirection:e.textDirection,bodyFontColor:e.bodyFontColor,_bodyFontFamily:$t(e.bodyFontFamily,t.defaultFontFamily),_bodyFontStyle:$t(e.bodyFontStyle,t.defaultFontStyle),_bodyAlign:e.bodyAlign,bodyFontSize:$t(e.bodyFontSize,t.defaultFontSize),bodySpacing:e.bodySpacing,titleFontColor:e.titleFontColor,_titleFontFamily:$t(e.titleFontFamily,t.defaultFontFamily),_titleFontStyle:$t(e.titleFontStyle,t.defaultFontStyle),titleFontSize:$t(e.titleFontSize,t.defaultFontSize),_titleAlign:e.titleAlign,titleSpacing:e.titleSpacing,titleMarginBottom:e.titleMarginBottom,footerFontColor:e.footerFontColor,_footerFontFamily:$t(e.footerFontFamily,t.defaultFontFamily),_footerFontStyle:$t(e.footerFontStyle,t.defaultFontStyle),footerFontSize:$t(e.footerFontSize,t.defaultFontSize),_footerAlign:e.footerAlign,footerSpacing:e.footerSpacing,footerMarginTop:e.footerMarginTop,caretSize:e.caretSize,cornerRadius:e.cornerRadius,backgroundColor:e.backgroundColor,opacity:0,legendColorBackground:e.multiKeyBackground,displayColors:e.displayColors,borderColor:e.borderColor,borderWidth:e.borderWidth}}function Yt(e,t){return"center"===t?e.x+e.width/2:"right"===t?e.x+e.width-e.xPadding:e.x+e.xPadding}function Ot(e){return Et([],At(e))}var It=q.extend({initialize:function(){this._model=Pt(this._options),this._lastActive=[]},getTitle:function(){var e=this,t=e._options,n=t.callbacks,i=n.beforeTitle.apply(e,arguments),r=n.title.apply(e,arguments),o=n.afterTitle.apply(e,arguments),a=[];return a=Et(a,At(i)),a=Et(a,At(r)),Et(a,At(o))},getBeforeBody:function(){return Ot(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(e,t){var n=this,i=n._options.callbacks,r=[];return R.each(e,(function(e){var o={before:[],lines:[],after:[]};Et(o.before,At(i.beforeLabel.call(n,e,t))),Et(o.lines,i.label.call(n,e,t)),Et(o.after,At(i.afterLabel.call(n,e,t))),r.push(o)})),r},getAfterBody:function(){return Ot(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var e=this,t=e._options.callbacks,n=t.beforeFooter.apply(e,arguments),i=t.footer.apply(e,arguments),r=t.afterFooter.apply(e,arguments),o=[];return o=Et(o,At(n)),o=Et(o,At(i)),Et(o,At(r))},update:function(e){var t,n,i,r,o,a,s,l,u,c,d=this,h=d._options,f=d._model,p=d._model=Pt(h),m=d._active,g=d._data,v={xAlign:f.xAlign,yAlign:f.yAlign},_={x:f.x,y:f.y},y={width:f.width,height:f.height},b={x:f.caretX,y:f.caretY};if(m.length){p.opacity=1;var w=[],L=[];b=Ct[h.position].call(d,m,d._eventPosition);var M=[];for(t=0,n=m.length;t<n;++t)M.push((r=void 0,o=void 0,l=void 0,u=void 0,c=void 0,r=(i=m[t])._xScale,o=i._yScale||i._scale,a=i._index,s=i._datasetIndex,u=(l=i._chart.getDatasetMeta(s).controller)._getIndexScale(),c=l._getValueScale(),{xLabel:r?r.getLabelForIndex(a,s):"",yLabel:o?o.getLabelForIndex(a,s):"",label:u?""+u.getLabelForIndex(a,s):"",value:c?""+c.getLabelForIndex(a,s):"",index:a,datasetIndex:s,x:i._model.x,y:i._model.y}));h.filter&&(M=M.filter((function(e){return h.filter(e,g)}))),h.itemSort&&(M=M.sort((function(e,t){return h.itemSort(e,t,g)}))),R.each(M,(function(e){w.push(h.callbacks.labelColor.call(d,e,d._chart)),L.push(h.callbacks.labelTextColor.call(d,e,d._chart))})),p.title=d.getTitle(M,g),p.beforeBody=d.getBeforeBody(M,g),p.body=d.getBody(M,g),p.afterBody=d.getAfterBody(M,g),p.footer=d.getFooter(M,g),p.x=b.x,p.y=b.y,p.caretPadding=h.caretPadding,p.labelColors=w,p.labelTextColors=L,p.dataPoints=M,_=function(e,t,n,i){var r=e.x,o=e.y,a=e.caretSize,s=e.caretPadding,l=e.cornerRadius,u=n.xAlign,c=n.yAlign,d=a+s,h=l+s;return"right"===u?r-=t.width:"center"===u&&((r-=t.width/2)+t.width>i.width&&(r=i.width-t.width),r<0&&(r=0)),"top"===c?o+=d:o-="bottom"===c?t.height+d:t.height/2,"center"===c?"left"===u?r+=d:"right"===u&&(r-=d):"left"===u?r-=h:"right"===u&&(r+=h),{x:r,y:o}}(p,y=function(e,t){var n=e._chart.ctx,i=2*t.yPadding,r=0,o=t.body,a=o.reduce((function(e,t){return e+t.before.length+t.lines.length+t.after.length}),0);a+=t.beforeBody.length+t.afterBody.length;var s=t.title.length,l=t.footer.length,u=t.titleFontSize,c=t.bodyFontSize,d=t.footerFontSize;i+=s*u,i+=s?(s-1)*t.titleSpacing:0,i+=s?t.titleMarginBottom:0,i+=a*c,i+=a?(a-1)*t.bodySpacing:0,i+=l?t.footerMarginTop:0,i+=l*d,i+=l?(l-1)*t.footerSpacing:0;var h=0,f=function(e){r=Math.max(r,n.measureText(e).width+h)};return n.font=R.fontString(u,t._titleFontStyle,t._titleFontFamily),R.each(t.title,f),n.font=R.fontString(c,t._bodyFontStyle,t._bodyFontFamily),R.each(t.beforeBody.concat(t.afterBody),f),h=t.displayColors?c+2:0,R.each(o,(function(e){R.each(e.before,f),R.each(e.lines,f),R.each(e.after,f)})),h=0,n.font=R.fontString(d,t._footerFontStyle,t._footerFontFamily),R.each(t.footer,f),{width:r+=2*t.xPadding,height:i}}(this,p),v=function(e,t){var n,i,r,o,a,s=e._model,l=e._chart,u=e._chart.chartArea,c="center",d="center";s.y<t.height?d="top":s.y>l.height-t.height&&(d="bottom");var h=(u.left+u.right)/2,f=(u.top+u.bottom)/2;"center"===d?(n=function(e){return e<=h},i=function(e){return e>h}):(n=function(e){return e<=t.width/2},i=function(e){return e>=l.width-t.width/2}),r=function(e){return e+t.width+s.caretSize+s.caretPadding>l.width},o=function(e){return e-t.width-s.caretSize-s.caretPadding<0},a=function(e){return e<=f?"top":"bottom"},n(s.x)?(c="left",r(s.x)&&(c="center",d=a(s.y))):i(s.x)&&(c="right",o(s.x)&&(c="center",d=a(s.y)));var p=e._options;return{xAlign:p.xAlign?p.xAlign:c,yAlign:p.yAlign?p.yAlign:d}}(this,y),d._chart)}else p.opacity=0;return p.xAlign=v.xAlign,p.yAlign=v.yAlign,p.x=_.x,p.y=_.y,p.width=y.width,p.height=y.height,p.caretX=b.x,p.caretY=b.y,d._model=p,e&&h.custom&&h.custom.call(d,p),d},drawCaret:function(e,t){var n=this._chart.ctx,i=this._view,r=this.getCaretPosition(e,t,i);n.lineTo(r.x1,r.y1),n.lineTo(r.x2,r.y2),n.lineTo(r.x3,r.y3)},getCaretPosition:function(e,t,n){var i,r,o,a,s,l,u=n.caretSize,c=n.cornerRadius,d=n.xAlign,h=n.yAlign,f=e.x,p=e.y,m=t.width,g=t.height;if("center"===h)s=p+g/2,"left"===d?(r=(i=f)-u,o=i,a=s+u,l=s-u):(r=(i=f+m)+u,o=i,a=s-u,l=s+u);else if("left"===d?(i=(r=f+c+u)-u,o=r+u):"right"===d?(i=(r=f+m-c-u)-u,o=r+u):(i=(r=n.caretX)-u,o=r+u),"top"===h)s=(a=p)-u,l=a;else{s=(a=p+g)+u,l=a;var v=o;o=i,i=v}return{x1:i,x2:r,x3:o,y1:a,y2:s,y3:l}},drawTitle:function(e,t,n){var i,r,o,a=t.title,s=a.length;if(s){var l=Dt(t.rtl,t.x,t.width);for(e.x=Yt(t,t._titleAlign),n.textAlign=l.textAlign(t._titleAlign),n.textBaseline="middle",i=t.titleFontSize,r=t.titleSpacing,n.fillStyle=t.titleFontColor,n.font=R.fontString(i,t._titleFontStyle,t._titleFontFamily),o=0;o<s;++o)n.fillText(a[o],l.x(e.x),e.y+i/2),e.y+=i+r,o+1===s&&(e.y+=t.titleMarginBottom-r)}},drawBody:function(e,t,n){var i,r,o,a,s,l,u,c,d=t.bodyFontSize,h=t.bodySpacing,f=t._bodyAlign,p=t.body,m=t.displayColors,g=0,v=m?Yt(t,"left"):0,_=Dt(t.rtl,t.x,t.width),y=function(t){n.fillText(t,_.x(e.x+g),e.y+d/2),e.y+=d+h},b=_.textAlign(f);for(n.textAlign=f,n.textBaseline="middle",n.font=R.fontString(d,t._bodyFontStyle,t._bodyFontFamily),e.x=Yt(t,b),n.fillStyle=t.bodyFontColor,R.each(t.beforeBody,y),g=m&&"right"!==b?"center"===f?d/2+1:d+2:0,s=0,u=p.length;s<u;++s){for(i=p[s],r=t.labelTextColors[s],o=t.labelColors[s],n.fillStyle=r,R.each(i.before,y),l=0,c=(a=i.lines).length;l<c;++l){if(m){var w=_.x(v);n.fillStyle=t.legendColorBackground,n.fillRect(_.leftForLtr(w,d),e.y,d,d),n.lineWidth=1,n.strokeStyle=o.borderColor,n.strokeRect(_.leftForLtr(w,d),e.y,d,d),n.fillStyle=o.backgroundColor,n.fillRect(_.leftForLtr(_.xPlus(w,1),d-2),e.y+1,d-2,d-2),n.fillStyle=r}y(a[l])}R.each(i.after,y)}g=0,R.each(t.afterBody,y),e.y-=h},drawFooter:function(e,t,n){var i,r,o=t.footer,a=o.length;if(a){var s=Dt(t.rtl,t.x,t.width);for(e.x=Yt(t,t._footerAlign),e.y+=t.footerMarginTop,n.textAlign=s.textAlign(t._footerAlign),n.textBaseline="middle",i=t.footerFontSize,n.fillStyle=t.footerFontColor,n.font=R.fontString(i,t._footerFontStyle,t._footerFontFamily),r=0;r<a;++r)n.fillText(o[r],s.x(e.x),e.y+i/2),e.y+=i+t.footerSpacing}},drawBackground:function(e,t,n,i){n.fillStyle=t.backgroundColor,n.strokeStyle=t.borderColor,n.lineWidth=t.borderWidth;var r=t.xAlign,o=t.yAlign,a=e.x,s=e.y,l=i.width,u=i.height,c=t.cornerRadius;n.beginPath(),n.moveTo(a+c,s),"top"===o&&this.drawCaret(e,i),n.lineTo(a+l-c,s),n.quadraticCurveTo(a+l,s,a+l,s+c),"center"===o&&"right"===r&&this.drawCaret(e,i),n.lineTo(a+l,s+u-c),n.quadraticCurveTo(a+l,s+u,a+l-c,s+u),"bottom"===o&&this.drawCaret(e,i),n.lineTo(a+c,s+u),n.quadraticCurveTo(a,s+u,a,s+u-c),"center"===o&&"left"===r&&this.drawCaret(e,i),n.lineTo(a,s+c),n.quadraticCurveTo(a,s,a+c,s),n.closePath(),n.fill(),t.borderWidth>0&&n.stroke()},draw:function(){var e=this._chart.ctx,t=this._view;if(0!==t.opacity){var n={width:t.width,height:t.height},i={x:t.x,y:t.y},r=Math.abs(t.opacity<.001)?0:t.opacity,o=t.title.length||t.beforeBody.length||t.body.length||t.afterBody.length||t.footer.length;this._options.enabled&&o&&(e.save(),e.globalAlpha=r,this.drawBackground(i,t,e,n),i.y+=t.yPadding,R.rtl.overrideTextDirection(e,t.textDirection),this.drawTitle(i,t,e),this.drawBody(i,t,e),this.drawFooter(i,t,e),R.rtl.restoreTextDirection(e,t.textDirection),e.restore())}},handleEvent:function(e){var t,n=this,i=n._options;return n._lastActive=n._lastActive||[],"mouseout"===e.type?n._active=[]:(n._active=n._chart.getElementsAtEventForMode(e,i.mode,i),i.reverse&&n._active.reverse()),(t=!R.arrayEquals(n._active,n._lastActive))&&(n._lastActive=n._active,(i.enabled||i.custom)&&(n._eventPosition={x:e.x,y:e.y},n.update(!0),n.pivot())),t}}),jt=Ct,Ht=It;Ht.positioners=jt;var Bt=R.valueOrDefault;function Nt(){return R.merge({},[].slice.call(arguments),{merger:function(e,t,n,i){if("xAxes"===e||"yAxes"===e){var r,o,a,s=n[e].length;for(t[e]||(t[e]=[]),r=0;r<s;++r)a=n[e][r],o=Bt(a.type,"xAxes"===e?"category":"linear"),r>=t[e].length&&t[e].push({}),!t[e][r].type||a.type&&a.type!==t[e][r].type?R.merge(t[e][r],[Tt.getScaleDefaults(o),a]):R.merge(t[e][r],a)}else R._merger(e,t,n,i)}})}function Rt(){return R.merge({},[].slice.call(arguments),{merger:function(e,t,n,i){var r=t[e]||{},o=n[e];"scales"===e?t[e]=Nt(r,o):"scale"===e?t[e]=R.merge(r,[Tt.getScaleDefaults(o.type),o]):R._merger(e,t,n,i)}})}function Ft(e){var t=e.options;R.each(e.scales,(function(t){ct.removeBox(e,t)})),t=Rt(I.global,I[e.config.type],t),e.options=e.config.options=t,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=t.tooltips,e.tooltip.initialize()}function zt(e,t,n){var i,r=function(e){return e.id===i};do{i=t+n++}while(R.findIndex(e,r)>=0);return i}function Vt(e){return"top"===e||"bottom"===e}function Ut(e,t){return function(n,i){return n[e]===i[e]?n[t]-i[t]:n[e]-i[e]}}I._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var Wt=function(e,t){return this.construct(e,t),this};R.extend(Wt.prototype,{construct:function(e,t){var n=this;t=function(e){var t=(e=e||{}).data=e.data||{};return t.datasets=t.datasets||[],t.labels=t.labels||[],e.options=Rt(I.global,I[e.type],e.options||{}),e}(t);var i=xt.acquireContext(e,t),r=i&&i.canvas,o=r&&r.height,a=r&&r.width;n.id=R.uid(),n.ctx=i,n.canvas=r,n.config=t,n.width=a,n.height=o,n.aspectRatio=o?a/o:null,n.options=t.options,n._bufferedRender=!1,n._layers=[],n.chart=n,n.controller=n,Wt.instances[n.id]=n,Object.defineProperty(n,"data",{get:function(){return n.config.data},set:function(e){n.config.data=e}}),i&&r?(n.initialize(),n.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var e=this;return St.notify(e,"beforeInit"),R.retinaScale(e,e.options.devicePixelRatio),e.bindEvents(),e.options.responsive&&e.resize(!0),e.initToolTip(),St.notify(e,"afterInit"),e},clear:function(){return R.canvas.clear(this),this},stop:function(){return J.cancelAnimation(this),this},resize:function(e){var t=this,n=t.options,i=t.canvas,r=n.maintainAspectRatio&&t.aspectRatio||null,o=Math.max(0,Math.floor(R.getMaximumWidth(i))),a=Math.max(0,Math.floor(r?o/r:R.getMaximumHeight(i)));if((t.width!==o||t.height!==a)&&(i.width=t.width=o,i.height=t.height=a,i.style.width=o+"px",i.style.height=a+"px",R.retinaScale(t,n.devicePixelRatio),!e)){var s={width:o,height:a};St.notify(t,"resize",[s]),n.onResize&&n.onResize(t,s),t.stop(),t.update({duration:n.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var e=this.options,t=e.scales||{},n=e.scale;R.each(t.xAxes,(function(e,n){e.id||(e.id=zt(t.xAxes,"x-axis-",n))})),R.each(t.yAxes,(function(e,n){e.id||(e.id=zt(t.yAxes,"y-axis-",n))})),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var e=this,t=e.options,n=e.scales||{},i=[],r=Object.keys(n).reduce((function(e,t){return e[t]=!1,e}),{});t.scales&&(i=i.concat((t.scales.xAxes||[]).map((function(e){return{options:e,dtype:"category",dposition:"bottom"}})),(t.scales.yAxes||[]).map((function(e){return{options:e,dtype:"linear",dposition:"left"}})))),t.scale&&i.push({options:t.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),R.each(i,(function(t){var i=t.options,o=i.id,a=Bt(i.type,t.dtype);Vt(i.position)!==Vt(t.dposition)&&(i.position=t.dposition),r[o]=!0;var s=null;if(o in n&&n[o].type===a)(s=n[o]).options=i,s.ctx=e.ctx,s.chart=e;else{var l=Tt.getScaleConstructor(a);if(!l)return;s=new l({id:o,type:a,options:i,ctx:e.ctx,chart:e}),n[s.id]=s}s.mergeTicksOptions(),t.isDefault&&(e.scale=s)})),R.each(r,(function(e,t){e||delete n[t]})),e.scales=n,Tt.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e,t,n=this,i=[],r=n.data.datasets;for(e=0,t=r.length;e<t;e++){var o=r[e],a=n.getDatasetMeta(e),s=o.type||n.config.type;if(a.type&&a.type!==s&&(n.destroyDatasetMeta(e),a=n.getDatasetMeta(e)),a.type=s,a.order=o.order||0,a.index=e,a.controller)a.controller.updateIndex(e),a.controller.linkScales();else{var l=qe[a.type];if(void 0===l)throw new Error('"'+a.type+'" is not a chart type.');a.controller=new l(n,e),i.push(a.controller)}}return i},resetElements:function(){var e=this;R.each(e.data.datasets,(function(t,n){e.getDatasetMeta(n).controller.reset()}),e)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(e){var t,n,i=this;if(e&&"object"==typeof e||(e={duration:e,lazy:arguments[1]}),Ft(i),St._invalidate(i),!1!==St.notify(i,"beforeUpdate")){i.tooltip._data=i.data;var r=i.buildOrUpdateControllers();for(t=0,n=i.data.datasets.length;t<n;t++)i.getDatasetMeta(t).controller.buildOrUpdateElements();i.updateLayout(),i.options.animation&&i.options.animation.duration&&R.each(r,(function(e){e.reset()})),i.updateDatasets(),i.tooltip.initialize(),i.lastActive=[],St.notify(i,"afterUpdate"),i._layers.sort(Ut("z","_idx")),i._bufferedRender?i._bufferedRequest={duration:e.duration,easing:e.easing,lazy:e.lazy}:i.render(e)}},updateLayout:function(){var e=this;!1!==St.notify(e,"beforeLayout")&&(ct.update(this,this.width,this.height),e._layers=[],R.each(e.boxes,(function(t){t._configure&&t._configure(),e._layers.push.apply(e._layers,t._layers())}),e),e._layers.forEach((function(e,t){e._idx=t})),St.notify(e,"afterScaleUpdate"),St.notify(e,"afterLayout"))},updateDatasets:function(){if(!1!==St.notify(this,"beforeDatasetsUpdate")){for(var e=0,t=this.data.datasets.length;e<t;++e)this.updateDataset(e);St.notify(this,"afterDatasetsUpdate")}},updateDataset:function(e){var t=this.getDatasetMeta(e),n={meta:t,index:e};!1!==St.notify(this,"beforeDatasetUpdate",[n])&&(t.controller._update(),St.notify(this,"afterDatasetUpdate",[n]))},render:function(e){var t=this;e&&"object"==typeof e||(e={duration:e,lazy:arguments[1]});var n=t.options.animation,i=Bt(e.duration,n&&n.duration),r=e.lazy;if(!1!==St.notify(t,"beforeRender")){var o=function(e){St.notify(t,"afterRender"),R.callback(n&&n.onComplete,[e],t)};if(n&&i){var a=new Z({numSteps:i/16.66,easing:e.easing||n.easing,render:function(e,t){var n=R.easing.effects[t.easing],i=t.currentStep,r=i/t.numSteps;e.draw(n(r),r,i)},onAnimationProgress:n.onProgress,onAnimationComplete:o});J.addAnimation(t,a,i,r)}else t.draw(),o(new Z({numSteps:0,chart:t}));return t}},draw:function(e){var t,n,i=this;if(i.clear(),R.isNullOrUndef(e)&&(e=1),i.transition(e),!(i.width<=0||i.height<=0)&&!1!==St.notify(i,"beforeDraw",[e])){for(n=i._layers,t=0;t<n.length&&n[t].z<=0;++t)n[t].draw(i.chartArea);for(i.drawDatasets(e);t<n.length;++t)n[t].draw(i.chartArea);i._drawTooltip(e),St.notify(i,"afterDraw",[e])}},transition:function(e){for(var t=0,n=(this.data.datasets||[]).length;t<n;++t)this.isDatasetVisible(t)&&this.getDatasetMeta(t).controller.transition(e);this.tooltip.transition(e)},_getSortedDatasetMetas:function(e){var t,n,i=[];for(t=0,n=(this.data.datasets||[]).length;t<n;++t)e&&!this.isDatasetVisible(t)||i.push(this.getDatasetMeta(t));return i.sort(Ut("order","index")),i},_getSortedVisibleDatasetMetas:function(){return this._getSortedDatasetMetas(!0)},drawDatasets:function(e){var t,n;if(!1!==St.notify(this,"beforeDatasetsDraw",[e])){for(n=(t=this._getSortedVisibleDatasetMetas()).length-1;n>=0;--n)this.drawDataset(t[n],e);St.notify(this,"afterDatasetsDraw",[e])}},drawDataset:function(e,t){var n={meta:e,index:e.index,easingValue:t};!1!==St.notify(this,"beforeDatasetDraw",[n])&&(e.controller.draw(t),St.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(e){var t=this.tooltip,n={tooltip:t,easingValue:e};!1!==St.notify(this,"beforeTooltipDraw",[n])&&(t.draw(),St.notify(this,"afterTooltipDraw",[n]))},getElementAtEvent:function(e){return et.modes.single(this,e)},getElementsAtEvent:function(e){return et.modes.label(this,e,{intersect:!0})},getElementsAtXAxis:function(e){return et.modes["x-axis"](this,e,{intersect:!0})},getElementsAtEventForMode:function(e,t,n){var i=et.modes[t];return"function"==typeof i?i(this,e,n):[]},getDatasetAtEvent:function(e){return et.modes.dataset(this,e,{intersect:!0})},getDatasetMeta:function(e){var t=this.data.datasets[e];t._meta||(t._meta={});var n=t._meta[this.id];return n||(n=t._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:t.order||0,index:e}),n},getVisibleDatasetCount:function(){for(var e=0,t=0,n=this.data.datasets.length;t<n;++t)this.isDatasetVisible(t)&&e++;return e},isDatasetVisible:function(e){var t=this.getDatasetMeta(e);return"boolean"==typeof t.hidden?!t.hidden:!this.data.datasets[e].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(e){var t=this.id,n=this.data.datasets[e],i=n._meta&&n._meta[t];i&&(i.controller.destroy(),delete n._meta[t])},destroy:function(){var e,t,n=this,i=n.canvas;for(n.stop(),e=0,t=n.data.datasets.length;e<t;++e)n.destroyDatasetMeta(e);i&&(n.unbindEvents(),R.canvas.clear(n),xt.releaseContext(n.ctx),n.canvas=null,n.ctx=null),St.notify(n,"destroy"),delete Wt.instances[n.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var e=this;e.tooltip=new Ht({_chart:e,_chartInstance:e,_data:e.data,_options:e.options.tooltips},e)},bindEvents:function(){var e=this,t=e._listeners={},n=function(){e.eventHandler.apply(e,arguments)};R.each(e.options.events,(function(i){xt.addEventListener(e,i,n),t[i]=n})),e.options.responsive&&(n=function(){e.resize()},xt.addEventListener(e,"resize",n),t.resize=n)},unbindEvents:function(){var e=this,t=e._listeners;t&&(delete e._listeners,R.each(t,(function(t,n){xt.removeEventListener(e,n,t)})))},updateHoverStyle:function(e,t,n){var i,r,o,a=n?"set":"remove";for(r=0,o=e.length;r<o;++r)(i=e[r])&&this.getDatasetMeta(i._datasetIndex).controller[a+"HoverStyle"](i);"dataset"===t&&this.getDatasetMeta(e[0]._datasetIndex).controller["_"+a+"DatasetHoverStyle"]()},eventHandler:function(e){var t=this,n=t.tooltip;if(!1!==St.notify(t,"beforeEvent",[e])){t._bufferedRender=!0,t._bufferedRequest=null;var i=t.handleEvent(e);n&&(i=n._start?n.handleEvent(e):i|n.handleEvent(e)),St.notify(t,"afterEvent",[e]);var r=t._bufferedRequest;return r?t.render(r):i&&!t.animating&&(t.stop(),t.render({duration:t.options.hover.animationDuration,lazy:!0})),t._bufferedRender=!1,t._bufferedRequest=null,t}},handleEvent:function(e){var t,n=this,i=n.options||{},r=i.hover;return n.lastActive=n.lastActive||[],"mouseout"===e.type?n.active=[]:n.active=n.getElementsAtEventForMode(e,r.mode,r),R.callback(i.onHover||i.hover.onHover,[e.native,n.active],n),"mouseup"!==e.type&&"click"!==e.type||i.onClick&&i.onClick.call(n,e.native,n.active),n.lastActive.length&&n.updateHoverStyle(n.lastActive,r.mode,!1),n.active.length&&r.mode&&n.updateHoverStyle(n.active,r.mode,!0),t=!R.arrayEquals(n.active,n.lastActive),n.lastActive=n.active,t}}),Wt.instances={};var qt=Wt;function Gt(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function Zt(e){this.options=e||{}}Wt.Controller=Wt,Wt.types={},R.configMerge=Rt,R.scaleMerge=Nt,R.extend(Zt.prototype,{formats:Gt,parse:Gt,format:Gt,add:Gt,diff:Gt,startOf:Gt,endOf:Gt,_create:function(e){return e}}),Zt.override=function(e){R.extend(Zt.prototype,e)};var Jt={_date:Zt},Xt={formatters:{values:function(e){return R.isArray(e)?e:""+e},linear:function(e,t,n){var i=n.length>3?n[2]-n[1]:n[1]-n[0];Math.abs(i)>1&&e!==Math.floor(e)&&(i=e-Math.floor(e));var r=R.log10(Math.abs(i)),o="";if(0!==e)if(Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]))<1e-4){var a=R.log10(Math.abs(e)),s=Math.floor(a)-Math.floor(r);s=Math.max(Math.min(s,20),0),o=e.toExponential(s)}else{var l=-1*Math.floor(r);l=Math.max(Math.min(l,20),0),o=e.toFixed(l)}else o="0";return o},logarithmic:function(e,t,n){var i=e/Math.pow(10,Math.floor(R.log10(e)));return 0===e?"0":1===i||2===i||5===i||0===t||t===n.length-1?e.toExponential():""}}},Kt=R.isArray,Qt=R.isNullOrUndef,en=R.valueOrDefault,tn=R.valueAtIndexOrDefault;function nn(e,t,n){var i,r=e.getTicks().length,o=Math.min(t,r-1),a=e.getPixelForTick(o),s=e._startPixel,l=e._endPixel;if(!(n&&(i=1===r?Math.max(a-s,l-a):0===t?(e.getPixelForTick(1)-a)/2:(a-e.getPixelForTick(o-1))/2,(a+=o<t?i:-i)<s-1e-6||a>l+1e-6)))return a}function rn(e){return e.drawTicks?e.tickMarkLength:0}function on(e){var t,n;return e.display?(t=R.options._parseFont(e),n=R.options.toPadding(e.padding),t.lineHeight+n.height):0}function an(e,t){return R.extend(R.options._parseFont({fontFamily:en(t.fontFamily,e.fontFamily),fontSize:en(t.fontSize,e.fontSize),fontStyle:en(t.fontStyle,e.fontStyle),lineHeight:en(t.lineHeight,e.lineHeight)}),{color:R.options.resolve([t.fontColor,e.fontColor,I.global.defaultFontColor])})}function sn(e){var t=an(e,e.minor);return{minor:t,major:e.major.enabled?an(e,e.major):t}}function ln(e){var t,n,i,r=[];for(n=0,i=e.length;n<i;++n)void 0!==(t=e[n])._index&&r.push(t);return r}function un(e,t,n,i){var r,o,a,s,l=en(n,0),u=Math.min(en(i,e.length),e.length),c=0;for(t=Math.ceil(t),i&&(t=(r=i-n)/Math.floor(r/t)),s=l;s<0;)c++,s=Math.round(l+c*t);for(o=Math.max(l,0);o<u;o++)a=e[o],o===s?(a._index=o,c++,s=Math.round(l+c*t)):delete a.label}I._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:Xt.formatters.values,minor:{},major:{}}});var cn=q.extend({zeroLineIndex:0,getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},getTicks:function(){return this._ticks},_getLabels:function(){var e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]},mergeTicksOptions:function(){},beforeUpdate:function(){R.callback(this.options.beforeUpdate,[this])},update:function(e,t,n){var i,r,o,a,s,l=this,u=l.options.ticks,c=u.sampleSize;if(l.beforeUpdate(),l.maxWidth=e,l.maxHeight=t,l.margins=R.extend({left:0,right:0,top:0,bottom:0},n),l._ticks=null,l.ticks=null,l._labelSizes=null,l._maxLabelLines=0,l.longestLabelWidth=0,l.longestTextCache=l.longestTextCache||{},l._gridLineItems=null,l._labelItems=null,l.beforeSetDimensions(),l.setDimensions(),l.afterSetDimensions(),l.beforeDataLimits(),l.determineDataLimits(),l.afterDataLimits(),l.beforeBuildTicks(),a=l.buildTicks()||[],(!(a=l.afterBuildTicks(a)||a)||!a.length)&&l.ticks)for(a=[],i=0,r=l.ticks.length;i<r;++i)a.push({value:l.ticks[i],major:!1});return l._ticks=a,s=c<a.length,o=l._convertTicksToLabels(s?function(e,t){for(var n=[],i=e.length/t,r=0,o=e.length;r<o;r+=i)n.push(e[Math.floor(r)]);return n}(a,c):a),l._configure(),l.beforeCalculateTickRotation(),l.calculateTickRotation(),l.afterCalculateTickRotation(),l.beforeFit(),l.fit(),l.afterFit(),l._ticksToDraw=u.display&&(u.autoSkip||"auto"===u.source)?l._autoSkip(a):a,s&&(o=l._convertTicksToLabels(l._ticksToDraw)),l.ticks=o,l.afterUpdate(),l.minSize},_configure:function(){var e,t,n=this,i=n.options.ticks.reverse;n.isHorizontal()?(e=n.left,t=n.right):(e=n.top,t=n.bottom,i=!i),n._startPixel=e,n._endPixel=t,n._reversePixels=i,n._length=t-e},afterUpdate:function(){R.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){R.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0},afterSetDimensions:function(){R.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){R.callback(this.options.beforeDataLimits,[this])},determineDataLimits:R.noop,afterDataLimits:function(){R.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){R.callback(this.options.beforeBuildTicks,[this])},buildTicks:R.noop,afterBuildTicks:function(e){var t=this;return Kt(e)&&e.length?R.callback(t.options.afterBuildTicks,[t,e]):(t.ticks=R.callback(t.options.afterBuildTicks,[t,t.ticks])||t.ticks,e)},beforeTickToLabelConversion:function(){R.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var e=this.options.ticks;this.ticks=this.ticks.map(e.userCallback||e.callback,this)},afterTickToLabelConversion:function(){R.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){R.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var e,t,n,i,r,o,a,s=this,l=s.options,u=l.ticks,c=s.getTicks().length,d=u.minRotation||0,h=u.maxRotation,f=d;!s._isVisible()||!u.display||d>=h||c<=1||!s.isHorizontal()?s.labelRotation=d:(t=(e=s._getLabelSizes()).widest.width,n=e.highest.height-e.highest.offset,i=Math.min(s.maxWidth,s.chart.width-t),t+6>(r=l.offset?s.maxWidth/c:i/(c-1))&&(r=i/(c-(l.offset?.5:1)),o=s.maxHeight-rn(l.gridLines)-u.padding-on(l.scaleLabel),a=Math.sqrt(t*t+n*n),f=R.toDegrees(Math.min(Math.asin(Math.min((e.highest.height+6)/r,1)),Math.asin(Math.min(o/a,1))-Math.asin(n/a))),f=Math.max(d,Math.min(h,f))),s.labelRotation=f)},afterCalculateTickRotation:function(){R.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){R.callback(this.options.beforeFit,[this])},fit:function(){var e=this,t=e.minSize={width:0,height:0},n=e.chart,i=e.options,r=i.ticks,o=i.scaleLabel,a=i.gridLines,s=e._isVisible(),l="bottom"===i.position,u=e.isHorizontal();if(u?t.width=e.maxWidth:s&&(t.width=rn(a)+on(o)),u?s&&(t.height=rn(a)+on(o)):t.height=e.maxHeight,r.display&&s){var c=sn(r),d=e._getLabelSizes(),h=d.first,f=d.last,p=d.widest,m=d.highest,g=.4*c.minor.lineHeight,v=r.padding;if(u){var _=0!==e.labelRotation,y=R.toRadians(e.labelRotation),b=Math.cos(y),w=Math.sin(y),L=w*p.width+b*(m.height-(_?m.offset:0))+(_?0:g);t.height=Math.min(e.maxHeight,t.height+L+v);var M,k,x=e.getPixelForTick(0)-e.left,S=e.right-e.getPixelForTick(e.getTicks().length-1);_?(M=l?b*h.width+w*h.offset:w*(h.height-h.offset),k=l?w*(f.height-f.offset):b*f.width+w*f.offset):(M=h.width/2,k=f.width/2),e.paddingLeft=Math.max((M-x)*e.width/(e.width-x),0)+3,e.paddingRight=Math.max((k-S)*e.width/(e.width-S),0)+3}else{var T=r.mirror?0:p.width+v+g;t.width=Math.min(e.maxWidth,t.width+T),e.paddingTop=h.height/2,e.paddingBottom=f.height/2}}e.handleMargins(),u?(e.width=e._length=n.width-e.margins.left-e.margins.right,e.height=t.height):(e.width=t.width,e.height=e._length=n.height-e.margins.top-e.margins.bottom)},handleMargins:function(){var e=this;e.margins&&(e.margins.left=Math.max(e.paddingLeft,e.margins.left),e.margins.top=Math.max(e.paddingTop,e.margins.top),e.margins.right=Math.max(e.paddingRight,e.margins.right),e.margins.bottom=Math.max(e.paddingBottom,e.margins.bottom))},afterFit:function(){R.callback(this.options.afterFit,[this])},isHorizontal:function(){var e=this.options.position;return"top"===e||"bottom"===e},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(e){if(Qt(e))return NaN;if(("number"==typeof e||e instanceof Number)&&!isFinite(e))return NaN;if(e)if(this.isHorizontal()){if(void 0!==e.x)return this.getRightValue(e.x)}else if(void 0!==e.y)return this.getRightValue(e.y);return e},_convertTicksToLabels:function(e){var t,n,i,r=this;for(r.ticks=e.map((function(e){return e.value})),r.beforeTickToLabelConversion(),t=r.convertTicksToLabels(e)||r.ticks,r.afterTickToLabelConversion(),n=0,i=e.length;n<i;++n)e[n].label=t[n];return t},_getLabelSizes:function(){var e=this,t=e._labelSizes;return t||(e._labelSizes=t=function(e,t,n,i){var r,o,a,s,l,u,c,d,h,f,p,m,g,v=n.length,_=[],y=[],b=[];for(r=0;r<v;++r){if(s=n[r].label,l=n[r].major?t.major:t.minor,e.font=u=l.string,c=i[u]=i[u]||{data:{},gc:[]},d=l.lineHeight,h=f=0,Qt(s)||Kt(s)){if(Kt(s))for(o=0,a=s.length;o<a;++o)p=s[o],Qt(p)||Kt(p)||(h=R.measureText(e,c.data,c.gc,h,p),f+=d)}else h=R.measureText(e,c.data,c.gc,h,s),f=d;_.push(h),y.push(f),b.push(d/2)}function w(e){return{width:_[e]||0,height:y[e]||0,offset:b[e]||0}}return function(e,t){R.each(e,(function(e){var n,i=e.gc,r=i.length/2;if(r>t){for(n=0;n<r;++n)delete e.data[i[n]];i.splice(0,r)}}))}(i,v),m=_.indexOf(Math.max.apply(null,_)),g=y.indexOf(Math.max.apply(null,y)),{first:w(0),last:w(v-1),widest:w(m),highest:w(g)}}(e.ctx,sn(e.options.ticks),e.getTicks(),e.longestTextCache),e.longestLabelWidth=t.widest.width),t},_parseValue:function(e){var t,n,i,r;return Kt(e)?(t=+this.getRightValue(e[0]),n=+this.getRightValue(e[1]),i=Math.min(t,n),r=Math.max(t,n)):(t=void 0,n=e=+this.getRightValue(e),i=e,r=e),{min:i,max:r,start:t,end:n}},_getScaleLabel:function(e){var t=this._parseValue(e);return void 0!==t.start?"["+t.start+", "+t.end+"]":+this.getRightValue(e)},getLabelForIndex:R.noop,getPixelForValue:R.noop,getValueForPixel:R.noop,getPixelForTick:function(e){var t=this.options.offset,n=this._ticks.length,i=1/Math.max(n-(t?0:1),1);return e<0||e>n-1?null:this.getPixelForDecimal(e*i+(t?i/2:0))},getPixelForDecimal:function(e){return this._reversePixels&&(e=1-e),this._startPixel+e*this._length},getDecimalForPixel:function(e){var t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var e=this.min,t=this.max;return this.beginAtZero?0:e<0&&t<0?t:e>0&&t>0?e:0},_autoSkip:function(e){var t,n,i,r,o=this.options.ticks,a=this._length,s=o.maxTicksLimit||a/this._tickSize()+1,l=o.major.enabled?function(e){var t,n,i=[];for(t=0,n=e.length;t<n;t++)e[t].major&&i.push(t);return i}(e):[],u=l.length,c=l[0],d=l[u-1];if(u>s)return function(e,t,n){var i,r,o=0,a=t[0];for(n=Math.ceil(n),i=0;i<e.length;i++)r=e[i],i===a?(r._index=i,a=t[++o*n]):delete r.label}(e,l,u/s),ln(e);if(i=function(e,t,n,i){var r,o,a,s,l=function(e){var t,n,i=e.length;if(i<2)return!1;for(n=e[0],t=1;t<i;++t)if(e[t]-e[t-1]!==n)return!1;return n}(e),u=(t.length-1)/i;if(!l)return Math.max(u,1);for(a=0,s=(r=R.math._factorize(l)).length-1;a<s;a++)if((o=r[a])>u)return o;return Math.max(u,1)}(l,e,0,s),u>0){for(t=0,n=u-1;t<n;t++)un(e,i,l[t],l[t+1]);return r=u>1?(d-c)/(u-1):null,un(e,i,R.isNullOrUndef(r)?0:c-r,c),un(e,i,d,R.isNullOrUndef(r)?e.length:d+r),ln(e)}return un(e,i),ln(e)},_tickSize:function(){var e=this.options.ticks,t=R.toRadians(this.labelRotation),n=Math.abs(Math.cos(t)),i=Math.abs(Math.sin(t)),r=this._getLabelSizes(),o=e.autoSkipPadding||0,a=r?r.widest.width+o:0,s=r?r.highest.height+o:0;return this.isHorizontal()?s*n>a*i?a/n:s/i:s*i<a*n?s/n:a/i},_isVisible:function(){var e,t,n,i=this.chart,r=this.options.display;if("auto"!==r)return!!r;for(e=0,t=i.data.datasets.length;e<t;++e)if(i.isDatasetVisible(e)&&((n=i.getDatasetMeta(e)).xAxisID===this.id||n.yAxisID===this.id))return!0;return!1},_computeGridLineItems:function(e){var t,n,i,r,o,a,s,l,u,c,d,h,f,p,m,g,v,_=this,y=_.chart,b=_.options,w=b.gridLines,L=b.position,M=w.offsetGridLines,k=_.isHorizontal(),x=_._ticksToDraw,S=x.length+(M?1:0),T=rn(w),$=[],D=w.drawBorder?tn(w.lineWidth,0,0):0,C=D/2,E=R._alignPixel,A=function(e){return E(y,e,D)};for("top"===L?(t=A(_.bottom),s=_.bottom-T,u=t-C,d=A(e.top)+C,f=e.bottom):"bottom"===L?(t=A(_.top),d=e.top,f=A(e.bottom)-C,s=t+C,u=_.top+T):"left"===L?(t=A(_.right),a=_.right-T,l=t-C,c=A(e.left)+C,h=e.right):(t=A(_.left),c=e.left,h=A(e.right)-C,a=t+C,l=_.left+T),n=0;n<S;++n)i=x[n]||{},Qt(i.label)&&n<x.length||(n===_.zeroLineIndex&&b.offset===M?(p=w.zeroLineWidth,m=w.zeroLineColor,g=w.zeroLineBorderDash||[],v=w.zeroLineBorderDashOffset||0):(p=tn(w.lineWidth,n,1),m=tn(w.color,n,"rgba(0,0,0,0.1)"),g=w.borderDash||[],v=w.borderDashOffset||0),void 0!==(r=nn(_,i._index||n,M))&&(o=E(y,r,p),k?a=l=c=h=o:s=u=d=f=o,$.push({tx1:a,ty1:s,tx2:l,ty2:u,x1:c,y1:d,x2:h,y2:f,width:p,color:m,borderDash:g,borderDashOffset:v})));return $.ticksLength=S,$.borderValue=t,$},_computeLabelItems:function(){var e,t,n,i,r,o,a,s,l,u,c,d,h=this,f=h.options,p=f.ticks,m=f.position,g=p.mirror,v=h.isHorizontal(),_=h._ticksToDraw,y=sn(p),b=p.padding,w=rn(f.gridLines),L=-R.toRadians(h.labelRotation),M=[];for("top"===m?(o=h.bottom-w-b,a=L?"left":"center"):"bottom"===m?(o=h.top+w+b,a=L?"right":"center"):"left"===m?(r=h.right-(g?0:w)-b,a=g?"left":"right"):(r=h.left+(g?0:w)+b,a=g?"right":"left"),e=0,t=_.length;e<t;++e)i=(n=_[e]).label,Qt(i)||(s=h.getPixelForTick(n._index||e)+p.labelOffset,u=(l=n.major?y.major:y.minor).lineHeight,c=Kt(i)?i.length:1,v?(r=s,d="top"===m?((L?1:.5)-c)*u:(L?0:.5)*u):(o=s,d=(1-c)*u/2),M.push({x:r,y:o,rotation:L,label:i,font:l,textOffset:d,textAlign:a}));return M},_drawGrid:function(e){var t=this,n=t.options.gridLines;if(n.display){var i,r,o,a,s,l=t.ctx,u=t.chart,c=R._alignPixel,d=n.drawBorder?tn(n.lineWidth,0,0):0,h=t._gridLineItems||(t._gridLineItems=t._computeGridLineItems(e));for(o=0,a=h.length;o<a;++o)i=(s=h[o]).width,r=s.color,i&&r&&(l.save(),l.lineWidth=i,l.strokeStyle=r,l.setLineDash&&(l.setLineDash(s.borderDash),l.lineDashOffset=s.borderDashOffset),l.beginPath(),n.drawTicks&&(l.moveTo(s.tx1,s.ty1),l.lineTo(s.tx2,s.ty2)),n.drawOnChartArea&&(l.moveTo(s.x1,s.y1),l.lineTo(s.x2,s.y2)),l.stroke(),l.restore());if(d){var f,p,m,g,v=d,_=tn(n.lineWidth,h.ticksLength-1,1),y=h.borderValue;t.isHorizontal()?(f=c(u,t.left,v)-v/2,p=c(u,t.right,_)+_/2,m=g=y):(m=c(u,t.top,v)-v/2,g=c(u,t.bottom,_)+_/2,f=p=y),l.lineWidth=d,l.strokeStyle=tn(n.color,0),l.beginPath(),l.moveTo(f,m),l.lineTo(p,g),l.stroke()}}},_drawLabels:function(){var e=this;if(e.options.ticks.display){var t,n,i,r,o,a,s,l,u=e.ctx,c=e._labelItems||(e._labelItems=e._computeLabelItems());for(t=0,i=c.length;t<i;++t){if(a=(o=c[t]).font,u.save(),u.translate(o.x,o.y),u.rotate(o.rotation),u.font=a.string,u.fillStyle=a.color,u.textBaseline="middle",u.textAlign=o.textAlign,s=o.label,l=o.textOffset,Kt(s))for(n=0,r=s.length;n<r;++n)u.fillText(""+s[n],0,l),l+=a.lineHeight;else u.fillText(s,0,l);u.restore()}}},_drawTitle:function(){var e=this,t=e.ctx,n=e.options,i=n.scaleLabel;if(i.display){var r,o,a=en(i.fontColor,I.global.defaultFontColor),s=R.options._parseFont(i),l=R.options.toPadding(i.padding),u=s.lineHeight/2,c=n.position,d=0;if(e.isHorizontal())r=e.left+e.width/2,o="bottom"===c?e.bottom-u-l.bottom:e.top+u+l.top;else{var h="left"===c;r=h?e.left+u+l.top:e.right-u-l.top,o=e.top+e.height/2,d=h?-.5*Math.PI:.5*Math.PI}t.save(),t.translate(r,o),t.rotate(d),t.textAlign="center",t.textBaseline="middle",t.fillStyle=a,t.font=s.string,t.fillText(i.labelString,0,0),t.restore()}},draw:function(e){this._isVisible()&&(this._drawGrid(e),this._drawTitle(),this._drawLabels())},_layers:function(){var e=this,t=e.options,n=t.ticks&&t.ticks.z||0,i=t.gridLines&&t.gridLines.z||0;return e._isVisible()&&n!==i&&e.draw===e._draw?[{z:i,draw:function(){e._drawGrid.apply(e,arguments),e._drawTitle.apply(e,arguments)}},{z:n,draw:function(){e._drawLabels.apply(e,arguments)}}]:[{z:n,draw:function(){e.draw.apply(e,arguments)}}]},_getMatchingVisibleMetas:function(e){var t=this,n=t.isHorizontal();return t.chart._getSortedVisibleDatasetMetas().filter((function(i){return(!e||i.type===e)&&(n?i.xAxisID===t.id:i.yAxisID===t.id)}))}});cn.prototype._draw=cn.prototype.draw;var dn=cn,hn=R.isNullOrUndef,fn=dn.extend({determineDataLimits:function(){var e,t=this,n=t._getLabels(),i=t.options.ticks,r=i.min,o=i.max,a=0,s=n.length-1;void 0!==r&&(e=n.indexOf(r))>=0&&(a=e),void 0!==o&&(e=n.indexOf(o))>=0&&(s=e),t.minIndex=a,t.maxIndex=s,t.min=n[a],t.max=n[s]},buildTicks:function(){var e=this._getLabels(),t=this.minIndex,n=this.maxIndex;this.ticks=0===t&&n===e.length-1?e:e.slice(t,n+1)},getLabelForIndex:function(e,t){var n=this.chart;return n.getDatasetMeta(t).controller._getValueScaleId()===this.id?this.getRightValue(n.data.datasets[t].data[e]):this._getLabels()[e]},_configure:function(){var e=this,t=e.options.offset,n=e.ticks;dn.prototype._configure.call(e),e.isHorizontal()||(e._reversePixels=!e._reversePixels),n&&(e._startValue=e.minIndex-(t?.5:0),e._valueRange=Math.max(n.length-(t?0:1),1))},getPixelForValue:function(e,t,n){var i,r,o,a=this;return hn(t)||hn(n)||(e=a.chart.data.datasets[n].data[t]),hn(e)||(i=a.isHorizontal()?e.x:e.y),(void 0!==i||void 0!==e&&isNaN(t))&&(r=a._getLabels(),e=R.valueOrDefault(i,e),t=-1!==(o=r.indexOf(e))?o:t,isNaN(t)&&(t=e)),a.getPixelForDecimal((t-a._startValue)/a._valueRange)},getPixelForTick:function(e){var t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e],e+this.minIndex)},getValueForPixel:function(e){var t=Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange);return Math.min(Math.max(t,0),this.ticks.length-1)},getBasePixel:function(){return this.bottom}});fn._defaults={position:"bottom"};var pn=R.noop,mn=R.isNullOrUndef,gn=dn.extend({getRightValue:function(e){return"string"==typeof e?+e:dn.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var e=this,t=e.options.ticks;if(t.beginAtZero){var n=R.sign(e.min),i=R.sign(e.max);n<0&&i<0?e.max=0:n>0&&i>0&&(e.min=0)}var r=void 0!==t.min||void 0!==t.suggestedMin,o=void 0!==t.max||void 0!==t.suggestedMax;void 0!==t.min?e.min=t.min:void 0!==t.suggestedMin&&(null===e.min?e.min=t.suggestedMin:e.min=Math.min(e.min,t.suggestedMin)),void 0!==t.max?e.max=t.max:void 0!==t.suggestedMax&&(null===e.max?e.max=t.suggestedMax:e.max=Math.max(e.max,t.suggestedMax)),r!==o&&e.min>=e.max&&(r?e.max=e.min+1:e.min=e.max-1),e.min===e.max&&(e.max++,t.beginAtZero||e.min--)},getTickLimit:function(){var e,t=this.options.ticks,n=t.stepSize,i=t.maxTicksLimit;return n?e=Math.ceil(this.max/n)-Math.floor(this.min/n)+1:(e=this._computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:pn,buildTicks:function(){var e=this,t=e.options.ticks,n=e.getTickLimit(),i={maxTicks:n=Math.max(2,n),min:t.min,max:t.max,precision:t.precision,stepSize:R.valueOrDefault(t.fixedStepSize,t.stepSize)},r=e.ticks=function(e,t){var n,i,r,o,a=[],s=e.stepSize,l=s||1,u=e.maxTicks-1,c=e.min,d=e.max,h=e.precision,f=t.min,p=t.max,m=R.niceNum((p-f)/u/l)*l;if(m<1e-14&&mn(c)&&mn(d))return[f,p];(o=Math.ceil(p/m)-Math.floor(f/m))>u&&(m=R.niceNum(o*m/u/l)*l),s||mn(h)?n=Math.pow(10,R._decimalPlaces(m)):(n=Math.pow(10,h),m=Math.ceil(m*n)/n),i=Math.floor(f/m)*m,r=Math.ceil(p/m)*m,s&&(!mn(c)&&R.almostWhole(c/m,m/1e3)&&(i=c),!mn(d)&&R.almostWhole(d/m,m/1e3)&&(r=d)),o=(r-i)/m,o=R.almostEquals(o,Math.round(o),m/1e3)?Math.round(o):Math.ceil(o),i=Math.round(i*n)/n,r=Math.round(r*n)/n,a.push(mn(c)?i:c);for(var g=1;g<o;++g)a.push(Math.round((i+g*m)*n)/n);return a.push(mn(d)?r:d),a}(i,e);e.handleDirectionalChanges(),e.max=R.max(r),e.min=R.min(r),t.reverse?(r.reverse(),e.start=e.max,e.end=e.min):(e.start=e.min,e.end=e.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),dn.prototype.convertTicksToLabels.call(e)},_configure:function(){var e,t=this,n=t.getTicks(),i=t.min,r=t.max;dn.prototype._configure.call(t),t.options.offset&&n.length&&(i-=e=(r-i)/Math.max(n.length-1,1)/2,r+=e),t._startValue=i,t._endValue=r,t._valueRange=r-i}}),vn={position:"left",ticks:{callback:Xt.formatters.linear}};function _n(e,t,n,i){var r,o,a=e.options,s=function(e,t,n){var i=[n.type,void 0===t&&void 0===n.stack?n.index:"",n.stack].join(".");return void 0===e[i]&&(e[i]={pos:[],neg:[]}),e[i]}(t,a.stacked,n),l=s.pos,u=s.neg,c=i.length;for(r=0;r<c;++r)o=e._parseValue(i[r]),isNaN(o.min)||isNaN(o.max)||n.data[r].hidden||(l[r]=l[r]||0,u[r]=u[r]||0,a.relativePoints?l[r]=100:o.min<0||o.max<0?u[r]+=o.min:l[r]+=o.max)}function yn(e,t,n){var i,r,o=n.length;for(i=0;i<o;++i)r=e._parseValue(n[i]),isNaN(r.min)||isNaN(r.max)||t.data[i].hidden||(e.min=Math.min(e.min,r.min),e.max=Math.max(e.max,r.max))}var bn=gn.extend({determineDataLimits:function(){var e,t,n,i,r=this,o=r.options,a=r.chart.data.datasets,s=r._getMatchingVisibleMetas(),l=o.stacked,u={},c=s.length;if(r.min=Number.POSITIVE_INFINITY,r.max=Number.NEGATIVE_INFINITY,void 0===l)for(e=0;!l&&e<c;++e)l=void 0!==(t=s[e]).stack;for(e=0;e<c;++e)n=a[(t=s[e]).index].data,l?_n(r,u,t,n):yn(r,t,n);R.each(u,(function(e){i=e.pos.concat(e.neg),r.min=Math.min(r.min,R.min(i)),r.max=Math.max(r.max,R.max(i))})),r.min=R.isFinite(r.min)&&!isNaN(r.min)?r.min:0,r.max=R.isFinite(r.max)&&!isNaN(r.max)?r.max:1,r.handleTickRangeOptions()},_computeTickLimit:function(){var e;return this.isHorizontal()?Math.ceil(this.width/40):(e=R.options._parseFont(this.options.ticks),Math.ceil(this.height/e.lineHeight))},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(e,t){return this._getScaleLabel(this.chart.data.datasets[t].data[e])},getPixelForValue:function(e){return this.getPixelForDecimal((+this.getRightValue(e)-this._startValue)/this._valueRange)},getValueForPixel:function(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange},getPixelForTick:function(e){var t=this.ticksAsNumbers;return e<0||e>t.length-1?null:this.getPixelForValue(t[e])}}),wn=vn;bn._defaults=wn;var Ln=R.valueOrDefault,Mn=R.math.log10,kn={position:"left",ticks:{callback:Xt.formatters.logarithmic}};function xn(e,t){return R.isFinite(e)&&e>=0?e:t}var Sn=dn.extend({determineDataLimits:function(){var e,t,n,i,r,o,a=this,s=a.options,l=a.chart,u=l.data.datasets,c=a.isHorizontal();function d(e){return c?e.xAxisID===a.id:e.yAxisID===a.id}a.min=Number.POSITIVE_INFINITY,a.max=Number.NEGATIVE_INFINITY,a.minNotZero=Number.POSITIVE_INFINITY;var h=s.stacked;if(void 0===h)for(e=0;e<u.length;e++)if(t=l.getDatasetMeta(e),l.isDatasetVisible(e)&&d(t)&&void 0!==t.stack){h=!0;break}if(s.stacked||h){var f={};for(e=0;e<u.length;e++){var p=[(t=l.getDatasetMeta(e)).type,void 0===s.stacked&&void 0===t.stack?e:"",t.stack].join(".");if(l.isDatasetVisible(e)&&d(t))for(void 0===f[p]&&(f[p]=[]),r=0,o=(i=u[e].data).length;r<o;r++){var m=f[p];n=a._parseValue(i[r]),isNaN(n.min)||isNaN(n.max)||t.data[r].hidden||n.min<0||n.max<0||(m[r]=m[r]||0,m[r]+=n.max)}}R.each(f,(function(e){if(e.length>0){var t=R.min(e),n=R.max(e);a.min=Math.min(a.min,t),a.max=Math.max(a.max,n)}}))}else for(e=0;e<u.length;e++)if(t=l.getDatasetMeta(e),l.isDatasetVisible(e)&&d(t))for(r=0,o=(i=u[e].data).length;r<o;r++)n=a._parseValue(i[r]),isNaN(n.min)||isNaN(n.max)||t.data[r].hidden||n.min<0||n.max<0||(a.min=Math.min(n.min,a.min),a.max=Math.max(n.max,a.max),0!==n.min&&(a.minNotZero=Math.min(n.min,a.minNotZero)));a.min=R.isFinite(a.min)?a.min:null,a.max=R.isFinite(a.max)?a.max:null,a.minNotZero=R.isFinite(a.minNotZero)?a.minNotZero:null,this.handleTickRangeOptions()},handleTickRangeOptions:function(){var e=this,t=e.options.ticks;e.min=xn(t.min,e.min),e.max=xn(t.max,e.max),e.min===e.max&&(0!==e.min&&null!==e.min?(e.min=Math.pow(10,Math.floor(Mn(e.min))-1),e.max=Math.pow(10,Math.floor(Mn(e.max))+1)):(e.min=1,e.max=10)),null===e.min&&(e.min=Math.pow(10,Math.floor(Mn(e.max))-1)),null===e.max&&(e.max=0!==e.min?Math.pow(10,Math.floor(Mn(e.min))+1):10),null===e.minNotZero&&(e.min>0?e.minNotZero=e.min:e.max<1?e.minNotZero=Math.pow(10,Math.floor(Mn(e.max))):e.minNotZero=1)},buildTicks:function(){var e=this,t=e.options.ticks,n=!e.isHorizontal(),i={min:xn(t.min),max:xn(t.max)},r=e.ticks=function(e,t){var n,i,r=[],o=Ln(e.min,Math.pow(10,Math.floor(Mn(t.min)))),a=Math.floor(Mn(t.max)),s=Math.ceil(t.max/Math.pow(10,a));0===o?(n=Math.floor(Mn(t.minNotZero)),i=Math.floor(t.minNotZero/Math.pow(10,n)),r.push(o),o=i*Math.pow(10,n)):(n=Math.floor(Mn(o)),i=Math.floor(o/Math.pow(10,n)));var l=n<0?Math.pow(10,Math.abs(n)):1;do{r.push(o),10==++i&&(i=1,l=++n>=0?1:l),o=Math.round(i*Math.pow(10,n)*l)/l}while(n<a||n===a&&i<s);var u=Ln(e.max,o);return r.push(u),r}(i,e);e.max=R.max(r),e.min=R.min(r),t.reverse?(n=!n,e.start=e.max,e.end=e.min):(e.start=e.min,e.end=e.max),n&&r.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),dn.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(e,t){return this._getScaleLabel(this.chart.data.datasets[t].data[e])},getPixelForTick:function(e){var t=this.tickValues;return e<0||e>t.length-1?null:this.getPixelForValue(t[e])},_getFirstTickValue:function(e){var t=Math.floor(Mn(e));return Math.floor(e/Math.pow(10,t))*Math.pow(10,t)},_configure:function(){var e=this,t=e.min,n=0;dn.prototype._configure.call(e),0===t&&(t=e._getFirstTickValue(e.minNotZero),n=Ln(e.options.ticks.fontSize,I.global.defaultFontSize)/e._length),e._startValue=Mn(t),e._valueOffset=n,e._valueRange=(Mn(e.max)-Mn(t))/(1-n)},getPixelForValue:function(e){var t=this,n=0;return(e=+t.getRightValue(e))>t.min&&e>0&&(n=(Mn(e)-t._startValue)/t._valueRange+t._valueOffset),t.getPixelForDecimal(n)},getValueForPixel:function(e){var t=this,n=t.getDecimalForPixel(e);return 0===n&&0===t.min?0:Math.pow(10,t._startValue+(n-t._valueOffset)*t._valueRange)}}),Tn=kn;Sn._defaults=Tn;var $n=R.valueOrDefault,Dn=R.valueAtIndexOrDefault,Cn=R.options.resolve,En={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:Xt.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(e){return e}}};function An(e){var t=e.ticks;return t.display&&e.display?$n(t.fontSize,I.global.defaultFontSize)+2*t.backdropPaddingY:0}function Pn(e,t,n,i,r){return e===i||e===r?{start:t-n/2,end:t+n/2}:e<i||e>r?{start:t-n,end:t}:{start:t,end:t+n}}function Yn(e){return 0===e||180===e?"center":e<180?"left":"right"}function On(e,t,n,i){var r,o,a=n.y+i/2;if(R.isArray(t))for(r=0,o=t.length;r<o;++r)e.fillText(t[r],n.x,a),a+=i;else e.fillText(t,n.x,a)}function In(e,t,n){90===e||270===e?n.y-=t.h/2:(e>270||e<90)&&(n.y-=t.h)}function jn(e){return R.isNumber(e)?e:0}var Hn=gn.extend({setDimensions:function(){var e=this;e.width=e.maxWidth,e.height=e.maxHeight,e.paddingTop=An(e.options)/2,e.xCenter=Math.floor(e.width/2),e.yCenter=Math.floor((e.height-e.paddingTop)/2),e.drawingArea=Math.min(e.height-e.paddingTop,e.width)/2},determineDataLimits:function(){var e=this,t=e.chart,n=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;R.each(t.data.datasets,(function(r,o){if(t.isDatasetVisible(o)){var a=t.getDatasetMeta(o);R.each(r.data,(function(t,r){var o=+e.getRightValue(t);isNaN(o)||a.data[r].hidden||(n=Math.min(o,n),i=Math.max(o,i))}))}})),e.min=n===Number.POSITIVE_INFINITY?0:n,e.max=i===Number.NEGATIVE_INFINITY?0:i,e.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/An(this.options))},convertTicksToLabels:function(){var e=this;gn.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map((function(){var t=R.callback(e.options.pointLabels.callback,arguments,e);return t||0===t?t:""}))},getLabelForIndex:function(e,t){return+this.getRightValue(this.chart.data.datasets[t].data[e])},fit:function(){var e=this.options;e.display&&e.pointLabels.display?function(e){var t,n,i,r=R.options._parseFont(e.options.pointLabels),o={l:0,r:e.width,t:0,b:e.height-e.paddingTop},a={};e.ctx.font=r.string,e._pointLabelSizes=[];var s,l,u,c=e.chart.data.labels.length;for(t=0;t<c;t++){i=e.getPointPosition(t,e.drawingArea+5),s=e.ctx,l=r.lineHeight,u=e.pointLabels[t],n=R.isArray(u)?{w:R.longestText(s,s.font,u),h:u.length*l}:{w:s.measureText(u).width,h:l},e._pointLabelSizes[t]=n;var d=e.getIndexAngle(t),h=R.toDegrees(d)%360,f=Pn(h,i.x,n.w,0,180),p=Pn(h,i.y,n.h,90,270);f.start<o.l&&(o.l=f.start,a.l=d),f.end>o.r&&(o.r=f.end,a.r=d),p.start<o.t&&(o.t=p.start,a.t=d),p.end>o.b&&(o.b=p.end,a.b=d)}e.setReductions(e.drawingArea,o,a)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(e,t,n){var i=this,r=t.l/Math.sin(n.l),o=Math.max(t.r-i.width,0)/Math.sin(n.r),a=-t.t/Math.cos(n.t),s=-Math.max(t.b-(i.height-i.paddingTop),0)/Math.cos(n.b);r=jn(r),o=jn(o),a=jn(a),s=jn(s),i.drawingArea=Math.min(Math.floor(e-(r+o)/2),Math.floor(e-(a+s)/2)),i.setCenterPoint(r,o,a,s)},setCenterPoint:function(e,t,n,i){var r=this,o=r.width-t-r.drawingArea,a=e+r.drawingArea,s=n+r.drawingArea,l=r.height-r.paddingTop-i-r.drawingArea;r.xCenter=Math.floor((a+o)/2+r.left),r.yCenter=Math.floor((s+l)/2+r.top+r.paddingTop)},getIndexAngle:function(e){var t=this.chart,n=(e*(360/t.data.labels.length)+((t.options||{}).startAngle||0))%360;return(n<0?n+360:n)*Math.PI*2/360},getDistanceFromCenterForValue:function(e){var t=this;if(R.isNullOrUndef(e))return NaN;var n=t.drawingArea/(t.max-t.min);return t.options.ticks.reverse?(t.max-e)*n:(e-t.min)*n},getPointPosition:function(e,t){var n=this.getIndexAngle(e)-Math.PI/2;return{x:Math.cos(n)*t+this.xCenter,y:Math.sin(n)*t+this.yCenter}},getPointPositionForValue:function(e,t){return this.getPointPosition(e,this.getDistanceFromCenterForValue(t))},getBasePosition:function(e){var t=this.min,n=this.max;return this.getPointPositionForValue(e||0,this.beginAtZero?0:t<0&&n<0?n:t>0&&n>0?t:0)},_drawGrid:function(){var e,t,n,i=this,r=i.ctx,o=i.options,a=o.gridLines,s=o.angleLines,l=$n(s.lineWidth,a.lineWidth),u=$n(s.color,a.color);if(o.pointLabels.display&&function(e){var t=e.ctx,n=e.options,i=n.pointLabels,r=An(n),o=e.getDistanceFromCenterForValue(n.ticks.reverse?e.min:e.max),a=R.options._parseFont(i);t.save(),t.font=a.string,t.textBaseline="middle";for(var s=e.chart.data.labels.length-1;s>=0;s--){var l=0===s?r/2:0,u=e.getPointPosition(s,o+l+5),c=Dn(i.fontColor,s,I.global.defaultFontColor);t.fillStyle=c;var d=e.getIndexAngle(s),h=R.toDegrees(d);t.textAlign=Yn(h),In(h,e._pointLabelSizes[s],u),On(t,e.pointLabels[s],u,a.lineHeight)}t.restore()}(i),a.display&&R.each(i.ticks,(function(e,n){0!==n&&(t=i.getDistanceFromCenterForValue(i.ticksAsNumbers[n]),function(e,t,n,i){var r,o=e.ctx,a=t.circular,s=e.chart.data.labels.length,l=Dn(t.color,i-1),u=Dn(t.lineWidth,i-1);if((a||s)&&l&&u){if(o.save(),o.strokeStyle=l,o.lineWidth=u,o.setLineDash&&(o.setLineDash(t.borderDash||[]),o.lineDashOffset=t.borderDashOffset||0),o.beginPath(),a)o.arc(e.xCenter,e.yCenter,n,0,2*Math.PI);else{r=e.getPointPosition(0,n),o.moveTo(r.x,r.y);for(var c=1;c<s;c++)r=e.getPointPosition(c,n),o.lineTo(r.x,r.y)}o.closePath(),o.stroke(),o.restore()}}(i,a,t,n))})),s.display&&l&&u){for(r.save(),r.lineWidth=l,r.strokeStyle=u,r.setLineDash&&(r.setLineDash(Cn([s.borderDash,a.borderDash,[]])),r.lineDashOffset=Cn([s.borderDashOffset,a.borderDashOffset,0])),e=i.chart.data.labels.length-1;e>=0;e--)t=i.getDistanceFromCenterForValue(o.ticks.reverse?i.min:i.max),n=i.getPointPosition(e,t),r.beginPath(),r.moveTo(i.xCenter,i.yCenter),r.lineTo(n.x,n.y),r.stroke();r.restore()}},_drawLabels:function(){var e=this,t=e.ctx,n=e.options.ticks;if(n.display){var i,r,o=e.getIndexAngle(0),a=R.options._parseFont(n),s=$n(n.fontColor,I.global.defaultFontColor);t.save(),t.font=a.string,t.translate(e.xCenter,e.yCenter),t.rotate(o),t.textAlign="center",t.textBaseline="middle",R.each(e.ticks,(function(o,l){(0!==l||n.reverse)&&(i=e.getDistanceFromCenterForValue(e.ticksAsNumbers[l]),n.showLabelBackdrop&&(r=t.measureText(o).width,t.fillStyle=n.backdropColor,t.fillRect(-r/2-n.backdropPaddingX,-i-a.size/2-n.backdropPaddingY,r+2*n.backdropPaddingX,a.size+2*n.backdropPaddingY)),t.fillStyle=s,t.fillText(o,0,-i))})),t.restore()}},_drawTitle:R.noop}),Bn=En;Hn._defaults=Bn;var Nn=R._deprecated,Rn=R.options.resolve,Fn=R.valueOrDefault,zn=Number.MIN_SAFE_INTEGER||-9007199254740991,Vn=Number.MAX_SAFE_INTEGER||9007199254740991,Un={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Wn=Object.keys(Un);function qn(e,t){return e-t}function Gn(e){return R.valueOrDefault(e.time.min,e.ticks.min)}function Zn(e){return R.valueOrDefault(e.time.max,e.ticks.max)}function Jn(e,t,n,i){var r=function(e,t,n){for(var i,r,o,a=0,s=e.length-1;a>=0&&a<=s;){if(r=e[(i=a+s>>1)-1]||null,o=e[i],!r)return{lo:null,hi:o};if(o[t]<n)a=i+1;else{if(!(r[t]>n))return{lo:r,hi:o};s=i-1}}return{lo:o,hi:null}}(e,t,n),o=r.lo?r.hi?r.lo:e[e.length-2]:e[0],a=r.lo?r.hi?r.hi:e[e.length-1]:e[1],s=a[t]-o[t],l=s?(n-o[t])/s:0,u=(a[i]-o[i])*l;return o[i]+u}function Xn(e,t){var n=e._adapter,i=e.options.time,r=i.parser,o=r||i.format,a=t;return"function"==typeof r&&(a=r(a)),R.isFinite(a)||(a="string"==typeof o?n.parse(a,o):n.parse(a)),null!==a?+a:(r||"function"!=typeof o||(a=o(t),R.isFinite(a)||(a=n.parse(a))),a)}function Kn(e,t){if(R.isNullOrUndef(t))return null;var n=e.options.time,i=Xn(e,e.getRightValue(t));return null===i?i:(n.round&&(i=+e._adapter.startOf(i,n.round)),i)}function Qn(e,t,n,i){var r,o,a,s=Wn.length;for(r=Wn.indexOf(e);r<s-1;++r)if(a=(o=Un[Wn[r]]).steps?o.steps:Vn,o.common&&Math.ceil((n-t)/(a*o.size))<=i)return Wn[r];return Wn[s-1]}function ei(e,t,n){var i,r,o=[],a={},s=t.length;for(i=0;i<s;++i)a[r=t[i]]=i,o.push({value:r,major:!1});return 0!==s&&n?function(e,t,n,i){var r,o,a=e._adapter,s=+a.startOf(t[0].value,i),l=t[t.length-1].value;for(r=s;r<=l;r=+a.add(r,1,i))(o=n[r])>=0&&(t[o].major=!0);return t}(e,o,a,n):o}var ti=dn.extend({initialize:function(){this.mergeTicksOptions(),dn.prototype.initialize.call(this)},update:function(){var e=this,t=e.options,n=t.time||(t.time={}),i=e._adapter=new Jt._date(t.adapters.date);return Nn("time scale",n.format,"time.format","time.parser"),Nn("time scale",n.min,"time.min","ticks.min"),Nn("time scale",n.max,"time.max","ticks.max"),R.mergeIf(n.displayFormats,i.formats()),dn.prototype.update.apply(e,arguments)},getRightValue:function(e){return e&&void 0!==e.t&&(e=e.t),dn.prototype.getRightValue.call(this,e)},determineDataLimits:function(){var e,t,n,i,r,o,a,s=this,l=s.chart,u=s._adapter,c=s.options,d=c.time.unit||"day",h=Vn,f=zn,p=[],m=[],g=[],v=s._getLabels();for(e=0,n=v.length;e<n;++e)g.push(Kn(s,v[e]));for(e=0,n=(l.data.datasets||[]).length;e<n;++e)if(l.isDatasetVisible(e))if(r=l.data.datasets[e].data,R.isObject(r[0]))for(m[e]=[],t=0,i=r.length;t<i;++t)o=Kn(s,r[t]),p.push(o),m[e][t]=o;else m[e]=g.slice(0),a||(p=p.concat(g),a=!0);else m[e]=[];g.length&&(h=Math.min(h,g[0]),f=Math.max(f,g[g.length-1])),p.length&&(p=n>1?function(e){var t,n,i,r={},o=[];for(t=0,n=e.length;t<n;++t)r[i=e[t]]||(r[i]=!0,o.push(i));return o}(p).sort(qn):p.sort(qn),h=Math.min(h,p[0]),f=Math.max(f,p[p.length-1])),h=Kn(s,Gn(c))||h,f=Kn(s,Zn(c))||f,h=h===Vn?+u.startOf(Date.now(),d):h,f=f===zn?+u.endOf(Date.now(),d)+1:f,s.min=Math.min(h,f),s.max=Math.max(h+1,f),s._table=[],s._timestamps={data:p,datasets:m,labels:g}},buildTicks:function(){var e,t,n,i=this,r=i.min,o=i.max,a=i.options,s=a.ticks,l=a.time,u=i._timestamps,c=[],d=i.getLabelCapacity(r),h=s.source,f=a.distribution;for(u="data"===h||"auto"===h&&"series"===f?u.data:"labels"===h?u.labels:function(e,t,n,i){var r,o=e._adapter,a=e.options,s=a.time,l=s.unit||Qn(s.minUnit,t,n,i),u=Rn([s.stepSize,s.unitStepSize,1]),c="week"===l&&s.isoWeekday,d=t,h=[];if(c&&(d=+o.startOf(d,"isoWeek",c)),d=+o.startOf(d,c?"day":l),o.diff(n,t,l)>1e5*u)throw t+" and "+n+" are too far apart with stepSize of "+u+" "+l;for(r=d;r<n;r=+o.add(r,u,l))h.push(r);return r!==n&&"ticks"!==a.bounds||h.push(r),h}(i,r,o,d),"ticks"===a.bounds&&u.length&&(r=u[0],o=u[u.length-1]),r=Kn(i,Gn(a))||r,o=Kn(i,Zn(a))||o,e=0,t=u.length;e<t;++e)(n=u[e])>=r&&n<=o&&c.push(n);return i.min=r,i.max=o,i._unit=l.unit||(s.autoSkip?Qn(l.minUnit,i.min,i.max,d):function(e,t,n,i,r){var o,a;for(o=Wn.length-1;o>=Wn.indexOf(n);o--)if(a=Wn[o],Un[a].common&&e._adapter.diff(r,i,a)>=t-1)return a;return Wn[n?Wn.indexOf(n):0]}(i,c.length,l.minUnit,i.min,i.max)),i._majorUnit=s.major.enabled&&"year"!==i._unit?function(e){for(var t=Wn.indexOf(e)+1,n=Wn.length;t<n;++t)if(Un[Wn[t]].common)return Wn[t]}(i._unit):void 0,i._table=function(e,t,n,i){if("linear"===i||!e.length)return[{time:t,pos:0},{time:n,pos:1}];var r,o,a,s,l,u=[],c=[t];for(r=0,o=e.length;r<o;++r)(s=e[r])>t&&s<n&&c.push(s);for(c.push(n),r=0,o=c.length;r<o;++r)l=c[r+1],a=c[r-1],s=c[r],void 0!==a&&void 0!==l&&Math.round((l+a)/2)===s||u.push({time:s,pos:r/(o-1)});return u}(i._timestamps.data,r,o,f),i._offsets=function(e,t,n,i,r){var o,a,s=0,l=0;return r.offset&&t.length&&(o=Jn(e,"time",t[0],"pos"),s=1===t.length?1-o:(Jn(e,"time",t[1],"pos")-o)/2,a=Jn(e,"time",t[t.length-1],"pos"),l=1===t.length?a:(a-Jn(e,"time",t[t.length-2],"pos"))/2),{start:s,end:l,factor:1/(s+1+l)}}(i._table,c,0,0,a),s.reverse&&c.reverse(),ei(i,c,i._majorUnit)},getLabelForIndex:function(e,t){var n=this,i=n._adapter,r=n.chart.data,o=n.options.time,a=r.labels&&e<r.labels.length?r.labels[e]:"",s=r.datasets[t].data[e];return R.isObject(s)&&(a=n.getRightValue(s)),o.tooltipFormat?i.format(Xn(n,a),o.tooltipFormat):"string"==typeof a?a:i.format(Xn(n,a),o.displayFormats.datetime)},tickFormatFunction:function(e,t,n,i){var r=this._adapter,o=this.options,a=o.time.displayFormats,s=a[this._unit],l=this._majorUnit,u=a[l],c=n[t],d=o.ticks,h=l&&u&&c&&c.major,f=r.format(e,i||(h?u:s)),p=h?d.major:d.minor,m=Rn([p.callback,p.userCallback,d.callback,d.userCallback]);return m?m(f,t,n):f},convertTicksToLabels:function(e){var t,n,i=[];for(t=0,n=e.length;t<n;++t)i.push(this.tickFormatFunction(e[t].value,t,e));return i},getPixelForOffset:function(e){var t=this._offsets,n=Jn(this._table,"time",e,"pos");return this.getPixelForDecimal((t.start+n)*t.factor)},getPixelForValue:function(e,t,n){var i=null;if(void 0!==t&&void 0!==n&&(i=this._timestamps.datasets[n][t]),null===i&&(i=Kn(this,e)),null!==i)return this.getPixelForOffset(i)},getPixelForTick:function(e){var t=this.getTicks();return e>=0&&e<t.length?this.getPixelForOffset(t[e].value):null},getValueForPixel:function(e){var t=this._offsets,n=this.getDecimalForPixel(e)/t.factor-t.end,i=Jn(this._table,"pos",n,"time");return this._adapter._create(i)},_getLabelSize:function(e){var t=this.options.ticks,n=this.ctx.measureText(e).width,i=R.toRadians(this.isHorizontal()?t.maxRotation:t.minRotation),r=Math.cos(i),o=Math.sin(i),a=Fn(t.fontSize,I.global.defaultFontSize);return{w:n*r+a*o,h:n*o+a*r}},getLabelWidth:function(e){return this._getLabelSize(e).w},getLabelCapacity:function(e){var t=this,n=t.options.time,i=n.displayFormats,r=i[n.unit]||i.millisecond,o=t.tickFormatFunction(e,0,ei(t,[e],t._majorUnit),r),a=t._getLabelSize(o),s=Math.floor(t.isHorizontal()?t.width/a.w:t.height/a.h);return t.options.offset&&s--,s>0?s:1}});ti._defaults={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};var ni={category:fn,linear:bn,logarithmic:Sn,radialLinear:Hn,time:ti},ii={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};Jt._date.override("function"==typeof e?{_id:"moment",formats:function(){return ii},parse:function(t,n){return"string"==typeof t&&"string"==typeof n?t=e(t,n):t instanceof e||(t=e(t)),t.isValid()?t.valueOf():null},format:function(t,n){return e(t).format(n)},add:function(t,n,i){return e(t).add(n,i).valueOf()},diff:function(t,n,i){return e(t).diff(e(n),i)},startOf:function(t,n,i){return t=e(t),"isoWeek"===n?t.isoWeekday(i).valueOf():t.startOf(n).valueOf()},endOf:function(t,n){return e(t).endOf(n).valueOf()},_create:function(t){return e(t)}}:{}),I._set("global",{plugins:{filler:{propagate:!0}}});var ri={dataset:function(e){var t=e.fill,n=e.chart,i=n.getDatasetMeta(t),r=i&&n.isDatasetVisible(t)&&i.dataset._children||[],o=r.length||0;return o?function(e,t){return t<o&&r[t]._view||null}:null},boundary:function(e){var t=e.boundary,n=t?t.x:null,i=t?t.y:null;return R.isArray(t)?function(e,n){return t[n]}:function(e){return{x:null===n?e.x:n,y:null===i?e.y:i}}}};function oi(e,t,n){var i,r=e._model||{},o=r.fill;if(void 0===o&&(o=!!r.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(i=parseFloat(o,10),isFinite(i)&&Math.floor(i)===i)return"-"!==o[0]&&"+"!==o[0]||(i=t+i),!(i===t||i<0||i>=n)&&i;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function ai(e){return(e.el._scale||{}).getPointPositionForValue?function(e){var t,n,i,r,o,a=e.el._scale,s=a.options,l=a.chart.data.labels.length,u=e.fill,c=[];if(!l)return null;for(t=s.ticks.reverse?a.max:a.min,n=s.ticks.reverse?a.min:a.max,i=a.getPointPositionForValue(0,t),r=0;r<l;++r)o="start"===u||"end"===u?a.getPointPositionForValue(r,"start"===u?t:n):a.getBasePosition(r),s.gridLines.circular&&(o.cx=i.x,o.cy=i.y,o.angle=a.getIndexAngle(r)-Math.PI/2),c.push(o);return c}(e):function(e){var t,n=e.el._model||{},i=e.el._scale||{},r=e.fill,o=null;if(isFinite(r))return null;if("start"===r?o=void 0===n.scaleBottom?i.bottom:n.scaleBottom:"end"===r?o=void 0===n.scaleTop?i.top:n.scaleTop:void 0!==n.scaleZero?o=n.scaleZero:i.getBasePixel&&(o=i.getBasePixel()),null!=o){if(void 0!==o.x&&void 0!==o.y)return o;if(R.isFinite(o))return{x:(t=i.isHorizontal())?o:null,y:t?null:o}}return null}(e)}function si(e,t,n){var i,r=e[t].fill,o=[t];if(!n)return r;for(;!1!==r&&-1===o.indexOf(r);){if(!isFinite(r))return r;if(!(i=e[r]))return!1;if(i.visible)return r;o.push(r),r=i.fill}return!1}function li(e){var t=e.fill,n="dataset";return!1===t?null:(isFinite(t)||(n="boundary"),ri[n](e))}function ui(e){return e&&!e.skip}function ci(e,t,n,i,r){var o,a,s,l;if(i&&r){for(e.moveTo(t[0].x,t[0].y),o=1;o<i;++o)R.canvas.lineTo(e,t[o-1],t[o]);if(void 0===n[0].angle)for(e.lineTo(n[r-1].x,n[r-1].y),o=r-1;o>0;--o)R.canvas.lineTo(e,n[o],n[o-1],!0);else for(a=n[0].cx,s=n[0].cy,l=Math.sqrt(Math.pow(n[0].x-a,2)+Math.pow(n[0].y-s,2)),o=r-1;o>0;--o)e.arc(a,s,l,n[o].angle,n[o-1].angle,!0)}}function di(e,t,n,i,r,o){var a,s,l,u,c,d,h,f,p=t.length,m=i.spanGaps,g=[],v=[],_=0,y=0;for(e.beginPath(),a=0,s=p;a<s;++a)c=n(u=t[l=a%p]._view,l,i),d=ui(u),h=ui(c),o&&void 0===f&&d&&(s=p+(f=a+1)),d&&h?(_=g.push(u),y=v.push(c)):_&&y&&(m?(d&&g.push(u),h&&v.push(c)):(ci(e,g,v,_,y),_=y=0,g=[],v=[]));ci(e,g,v,_,y),e.closePath(),e.fillStyle=r,e.fill()}var hi={id:"filler",afterDatasetsUpdate:function(e,t){var n,i,r,o,a=(e.data.datasets||[]).length,s=t.propagate,l=[];for(i=0;i<a;++i)o=null,(r=(n=e.getDatasetMeta(i)).dataset)&&r._model&&r instanceof _e.Line&&(o={visible:e.isDatasetVisible(i),fill:oi(r,i,a),chart:e,el:r}),n.$filler=o,l.push(o);for(i=0;i<a;++i)(o=l[i])&&(o.fill=si(l,i,s),o.boundary=ai(o),o.mapper=li(o))},beforeDatasetsDraw:function(e){var t,n,i,r,o,a,s,l=e._getSortedVisibleDatasetMetas(),u=e.ctx;for(n=l.length-1;n>=0;--n)(t=l[n].$filler)&&t.visible&&(r=(i=t.el)._view,o=i._children||[],a=t.mapper,s=r.backgroundColor||I.global.defaultColor,a&&s&&o.length&&(R.canvas.clipArea(u,e.chartArea),di(u,o,a,r,s,i._loop),R.canvas.unclipArea(u)))}},fi=R.rtl.getRtlAdapter,pi=R.noop,mi=R.valueOrDefault;function gi(e,t){return e.usePointStyle&&e.boxWidth>t?t:e.boxWidth}I._set("global",{legend:{display:!0,position:"top",align:"center",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(e,t){var n=t.datasetIndex,i=this.chart,r=i.getDatasetMeta(n);r.hidden=null===r.hidden?!i.data.datasets[n].hidden:null,i.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(e){var t=e.data.datasets,n=e.options.legend||{},i=n.labels&&n.labels.usePointStyle;return e._getSortedDatasetMetas().map((function(n){var r=n.controller.getStyle(i?0:void 0);return{text:t[n.index].label,fillStyle:r.backgroundColor,hidden:!e.isDatasetVisible(n.index),lineCap:r.borderCapStyle,lineDash:r.borderDash,lineDashOffset:r.borderDashOffset,lineJoin:r.borderJoinStyle,lineWidth:r.borderWidth,strokeStyle:r.borderColor,pointStyle:r.pointStyle,rotation:r.rotation,datasetIndex:n.index}}),this)}}},legendCallback:function(e){var t,n,i,r=document.createElement("ul"),o=e.data.datasets;for(r.setAttribute("class",e.id+"-legend"),t=0,n=o.length;t<n;t++)(i=r.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor=o[t].backgroundColor,o[t].label&&i.appendChild(document.createTextNode(o[t].label));return r.outerHTML}});var vi=q.extend({initialize:function(e){R.extend(this,e),this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1},beforeUpdate:pi,update:function(e,t,n){var i=this;return i.beforeUpdate(),i.maxWidth=e,i.maxHeight=t,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:pi,beforeSetDimensions:pi,setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0,e.minSize={width:0,height:0}},afterSetDimensions:pi,beforeBuildLabels:pi,buildLabels:function(){var e=this,t=e.options.labels||{},n=R.callback(t.generateLabels,[e.chart],e)||[];t.filter&&(n=n.filter((function(n){return t.filter(n,e.chart.data)}))),e.options.reverse&&n.reverse(),e.legendItems=n},afterBuildLabels:pi,beforeFit:pi,fit:function(){var e=this,t=e.options,n=t.labels,i=t.display,r=e.ctx,o=R.options._parseFont(n),a=o.size,s=e.legendHitBoxes=[],l=e.minSize,u=e.isHorizontal();if(u?(l.width=e.maxWidth,l.height=i?10:0):(l.width=i?10:0,l.height=e.maxHeight),i){if(r.font=o.string,u){var c=e.lineWidths=[0],d=0;r.textAlign="left",r.textBaseline="middle",R.each(e.legendItems,(function(e,t){var i=gi(n,a)+a/2+r.measureText(e.text).width;(0===t||c[c.length-1]+i+2*n.padding>l.width)&&(d+=a+n.padding,c[c.length-(t>0?0:1)]=0),s[t]={left:0,top:0,width:i,height:a},c[c.length-1]+=i+n.padding})),l.height+=d}else{var h=n.padding,f=e.columnWidths=[],p=e.columnHeights=[],m=n.padding,g=0,v=0;R.each(e.legendItems,(function(e,t){var i=gi(n,a)+a/2+r.measureText(e.text).width;t>0&&v+a+2*h>l.height&&(m+=g+n.padding,f.push(g),p.push(v),g=0,v=0),g=Math.max(g,i),v+=a+h,s[t]={left:0,top:0,width:i,height:a}})),m+=g,f.push(g),p.push(v),l.width+=m}e.width=l.width,e.height=l.height}else e.width=l.width=e.height=l.height=0},afterFit:pi,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var e=this,t=e.options,n=t.labels,i=I.global,r=i.defaultColor,o=i.elements.line,a=e.height,s=e.columnHeights,l=e.width,u=e.lineWidths;if(t.display){var c,d=fi(t.rtl,e.left,e.minSize.width),h=e.ctx,f=mi(n.fontColor,i.defaultFontColor),p=R.options._parseFont(n),m=p.size;h.textAlign=d.textAlign("left"),h.textBaseline="middle",h.lineWidth=.5,h.strokeStyle=f,h.fillStyle=f,h.font=p.string;var g=gi(n,m),v=e.legendHitBoxes,_=function(e,i){switch(t.align){case"start":return n.padding;case"end":return e-i;default:return(e-i+n.padding)/2}},y=e.isHorizontal();c=y?{x:e.left+_(l,u[0]),y:e.top+n.padding,line:0}:{x:e.left+n.padding,y:e.top+_(a,s[0]),line:0},R.rtl.overrideTextDirection(e.ctx,t.textDirection);var b=m+n.padding;R.each(e.legendItems,(function(t,i){var f=h.measureText(t.text).width,p=g+m/2+f,w=c.x,L=c.y;d.setWidth(e.minSize.width),y?i>0&&w+p+n.padding>e.left+e.minSize.width&&(L=c.y+=b,c.line++,w=c.x=e.left+_(l,u[c.line])):i>0&&L+b>e.top+e.minSize.height&&(w=c.x=w+e.columnWidths[c.line]+n.padding,c.line++,L=c.y=e.top+_(a,s[c.line]));var M=d.x(w);!function(e,t,i){if(!(isNaN(g)||g<=0)){h.save();var a=mi(i.lineWidth,o.borderWidth);if(h.fillStyle=mi(i.fillStyle,r),h.lineCap=mi(i.lineCap,o.borderCapStyle),h.lineDashOffset=mi(i.lineDashOffset,o.borderDashOffset),h.lineJoin=mi(i.lineJoin,o.borderJoinStyle),h.lineWidth=a,h.strokeStyle=mi(i.strokeStyle,r),h.setLineDash&&h.setLineDash(mi(i.lineDash,o.borderDash)),n&&n.usePointStyle){var s=g*Math.SQRT2/2,l=d.xPlus(e,g/2),u=t+m/2;R.canvas.drawPoint(h,i.pointStyle,s,l,u,i.rotation)}else h.fillRect(d.leftForLtr(e,g),t,g,m),0!==a&&h.strokeRect(d.leftForLtr(e,g),t,g,m);h.restore()}}(M,L,t),v[i].left=d.leftForLtr(M,v[i].width),v[i].top=L,function(e,t,n,i){var r=m/2,o=d.xPlus(e,g+r),a=t+r;h.fillText(n.text,o,a),n.hidden&&(h.beginPath(),h.lineWidth=2,h.moveTo(o,a),h.lineTo(d.xPlus(o,i),a),h.stroke())}(M,L,t,f),y?c.x+=p+n.padding:c.y+=b})),R.rtl.restoreTextDirection(e.ctx,t.textDirection)}},_getLegendItemAt:function(e,t){var n,i,r,o=this;if(e>=o.left&&e<=o.right&&t>=o.top&&t<=o.bottom)for(r=o.legendHitBoxes,n=0;n<r.length;++n)if(e>=(i=r[n]).left&&e<=i.left+i.width&&t>=i.top&&t<=i.top+i.height)return o.legendItems[n];return null},handleEvent:function(e){var t,n=this,i=n.options,r="mouseup"===e.type?"click":e.type;if("mousemove"===r){if(!i.onHover&&!i.onLeave)return}else{if("click"!==r)return;if(!i.onClick)return}t=n._getLegendItemAt(e.x,e.y),"click"===r?t&&i.onClick&&i.onClick.call(n,e.native,t):(i.onLeave&&t!==n._hoveredItem&&(n._hoveredItem&&i.onLeave.call(n,e.native,n._hoveredItem),n._hoveredItem=t),i.onHover&&t&&i.onHover.call(n,e.native,t))}});function _i(e,t){var n=new vi({ctx:e.ctx,options:t,chart:e});ct.configure(e,n,t),ct.addBox(e,n),e.legend=n}var yi={id:"legend",_element:vi,beforeInit:function(e){var t=e.options.legend;t&&_i(e,t)},beforeUpdate:function(e){var t=e.options.legend,n=e.legend;t?(R.mergeIf(t,I.global.legend),n?(ct.configure(e,n,t),n.options=t):_i(e,t)):n&&(ct.removeBox(e,n),delete e.legend)},afterEvent:function(e,t){var n=e.legend;n&&n.handleEvent(t)}},bi=R.noop;I._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var wi=q.extend({initialize:function(e){R.extend(this,e),this.legendHitBoxes=[]},beforeUpdate:bi,update:function(e,t,n){var i=this;return i.beforeUpdate(),i.maxWidth=e,i.maxHeight=t,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:bi,beforeSetDimensions:bi,setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0,e.minSize={width:0,height:0}},afterSetDimensions:bi,beforeBuildLabels:bi,buildLabels:bi,afterBuildLabels:bi,beforeFit:bi,fit:function(){var e,t=this,n=t.options,i=t.minSize={},r=t.isHorizontal();n.display?(e=(R.isArray(n.text)?n.text.length:1)*R.options._parseFont(n).lineHeight+2*n.padding,t.width=i.width=r?t.maxWidth:e,t.height=i.height=r?e:t.maxHeight):t.width=i.width=t.height=i.height=0},afterFit:bi,isHorizontal:function(){var e=this.options.position;return"top"===e||"bottom"===e},draw:function(){var e=this,t=e.ctx,n=e.options;if(n.display){var i,r,o,a=R.options._parseFont(n),s=a.lineHeight,l=s/2+n.padding,u=0,c=e.top,d=e.left,h=e.bottom,f=e.right;t.fillStyle=R.valueOrDefault(n.fontColor,I.global.defaultFontColor),t.font=a.string,e.isHorizontal()?(r=d+(f-d)/2,o=c+l,i=f-d):(r="left"===n.position?d+l:f-l,o=c+(h-c)/2,i=h-c,u=Math.PI*("left"===n.position?-.5:.5)),t.save(),t.translate(r,o),t.rotate(u),t.textAlign="center",t.textBaseline="middle";var p=n.text;if(R.isArray(p))for(var m=0,g=0;g<p.length;++g)t.fillText(p[g],0,m,i),m+=s;else t.fillText(p,0,0,i);t.restore()}}});function Li(e,t){var n=new wi({ctx:e.ctx,options:t,chart:e});ct.configure(e,n,t),ct.addBox(e,n),e.titleBlock=n}var Mi={},ki=hi,xi=yi,Si={id:"title",_element:wi,beforeInit:function(e){var t=e.options.title;t&&Li(e,t)},beforeUpdate:function(e){var t=e.options.title,n=e.titleBlock;t?(R.mergeIf(t,I.global.title),n?(ct.configure(e,n,t),n.options=t):Li(e,t)):n&&(ct.removeBox(e,n),delete e.titleBlock)}};for(var Ti in Mi.filler=ki,Mi.legend=xi,Mi.title=Si,qt.helpers=R,function(){function e(e,t,n){var i;return"string"==typeof e?(i=parseInt(e,10),-1!==e.indexOf("%")&&(i=i/100*t.parentNode[n])):i=e,i}function t(e){return null!=e&&"none"!==e}function n(n,i,r){var o=document.defaultView,a=R._getParentNode(n),s=o.getComputedStyle(n)[i],l=o.getComputedStyle(a)[i],u=t(s),c=t(l),d=Number.POSITIVE_INFINITY;return u||c?Math.min(u?e(s,n,r):d,c?e(l,a,r):d):"none"}R.where=function(e,t){if(R.isArray(e)&&Array.prototype.filter)return e.filter(t);var n=[];return R.each(e,(function(e){t(e)&&n.push(e)})),n},R.findIndex=Array.prototype.findIndex?function(e,t,n){return e.findIndex(t,n)}:function(e,t,n){n=void 0===n?e:n;for(var i=0,r=e.length;i<r;++i)if(t.call(n,e[i],i,e))return i;return-1},R.findNextWhere=function(e,t,n){R.isNullOrUndef(n)&&(n=-1);for(var i=n+1;i<e.length;i++){var r=e[i];if(t(r))return r}},R.findPreviousWhere=function(e,t,n){R.isNullOrUndef(n)&&(n=e.length);for(var i=n-1;i>=0;i--){var r=e[i];if(t(r))return r}},R.isNumber=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},R.almostEquals=function(e,t,n){return Math.abs(e-t)<n},R.almostWhole=function(e,t){var n=Math.round(e);return n-t<=e&&n+t>=e},R.max=function(e){return e.reduce((function(e,t){return isNaN(t)?e:Math.max(e,t)}),Number.NEGATIVE_INFINITY)},R.min=function(e){return e.reduce((function(e,t){return isNaN(t)?e:Math.min(e,t)}),Number.POSITIVE_INFINITY)},R.sign=Math.sign?function(e){return Math.sign(e)}:function(e){return 0==(e=+e)||isNaN(e)?e:e>0?1:-1},R.toRadians=function(e){return e*(Math.PI/180)},R.toDegrees=function(e){return e*(180/Math.PI)},R._decimalPlaces=function(e){if(R.isFinite(e)){for(var t=1,n=0;Math.round(e*t)/t!==e;)t*=10,n++;return n}},R.getAngleFromPoint=function(e,t){var n=t.x-e.x,i=t.y-e.y,r=Math.sqrt(n*n+i*i),o=Math.atan2(i,n);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:r}},R.distanceBetweenPoints=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},R.aliasPixel=function(e){return e%2==0?0:.5},R._alignPixel=function(e,t,n){var i=e.currentDevicePixelRatio,r=n/2;return Math.round((t-r)*i)/i+r},R.splineCurve=function(e,t,n,i){var r=e.skip?t:e,o=t,a=n.skip?t:n,s=Math.sqrt(Math.pow(o.x-r.x,2)+Math.pow(o.y-r.y,2)),l=Math.sqrt(Math.pow(a.x-o.x,2)+Math.pow(a.y-o.y,2)),u=s/(s+l),c=l/(s+l),d=i*(u=isNaN(u)?0:u),h=i*(c=isNaN(c)?0:c);return{previous:{x:o.x-d*(a.x-r.x),y:o.y-d*(a.y-r.y)},next:{x:o.x+h*(a.x-r.x),y:o.y+h*(a.y-r.y)}}},R.EPSILON=Number.EPSILON||1e-14,R.splineCurveMonotone=function(e){var t,n,i,r,o,a,s,l,u,c=(e||[]).map((function(e){return{model:e._model,deltaK:0,mK:0}})),d=c.length;for(t=0;t<d;++t)if(!(i=c[t]).model.skip){if(n=t>0?c[t-1]:null,(r=t<d-1?c[t+1]:null)&&!r.model.skip){var h=r.model.x-i.model.x;i.deltaK=0!==h?(r.model.y-i.model.y)/h:0}!n||n.model.skip?i.mK=i.deltaK:!r||r.model.skip?i.mK=n.deltaK:this.sign(n.deltaK)!==this.sign(i.deltaK)?i.mK=0:i.mK=(n.deltaK+i.deltaK)/2}for(t=0;t<d-1;++t)i=c[t],r=c[t+1],i.model.skip||r.model.skip||(R.almostEquals(i.deltaK,0,this.EPSILON)?i.mK=r.mK=0:(o=i.mK/i.deltaK,a=r.mK/i.deltaK,(l=Math.pow(o,2)+Math.pow(a,2))<=9||(s=3/Math.sqrt(l),i.mK=o*s*i.deltaK,r.mK=a*s*i.deltaK)));for(t=0;t<d;++t)(i=c[t]).model.skip||(n=t>0?c[t-1]:null,r=t<d-1?c[t+1]:null,n&&!n.model.skip&&(u=(i.model.x-n.model.x)/3,i.model.controlPointPreviousX=i.model.x-u,i.model.controlPointPreviousY=i.model.y-u*i.mK),r&&!r.model.skip&&(u=(r.model.x-i.model.x)/3,i.model.controlPointNextX=i.model.x+u,i.model.controlPointNextY=i.model.y+u*i.mK))},R.nextItem=function(e,t,n){return n?t>=e.length-1?e[0]:e[t+1]:t>=e.length-1?e[e.length-1]:e[t+1]},R.previousItem=function(e,t,n){return n?t<=0?e[e.length-1]:e[t-1]:t<=0?e[0]:e[t-1]},R.niceNum=function(e,t){var n=Math.floor(R.log10(e)),i=e/Math.pow(10,n);return(t?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},R.requestAnimFrame="undefined"==typeof window?function(e){e()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){return window.setTimeout(e,1e3/60)},R.getRelativePosition=function(e,t){var n,i,r=e.originalEvent||e,o=e.target||e.srcElement,a=o.getBoundingClientRect(),s=r.touches;s&&s.length>0?(n=s[0].clientX,i=s[0].clientY):(n=r.clientX,i=r.clientY);var l=parseFloat(R.getStyle(o,"padding-left")),u=parseFloat(R.getStyle(o,"padding-top")),c=parseFloat(R.getStyle(o,"padding-right")),d=parseFloat(R.getStyle(o,"padding-bottom")),h=a.right-a.left-l-c,f=a.bottom-a.top-u-d;return{x:n=Math.round((n-a.left-l)/h*o.width/t.currentDevicePixelRatio),y:i=Math.round((i-a.top-u)/f*o.height/t.currentDevicePixelRatio)}},R.getConstraintWidth=function(e){return n(e,"max-width","clientWidth")},R.getConstraintHeight=function(e){return n(e,"max-height","clientHeight")},R._calculatePadding=function(e,t,n){return(t=R.getStyle(e,t)).indexOf("%")>-1?n*parseInt(t,10)/100:parseInt(t,10)},R._getParentNode=function(e){var t=e.parentNode;return t&&"[object ShadowRoot]"===t.toString()&&(t=t.host),t},R.getMaximumWidth=function(e){var t=R._getParentNode(e);if(!t)return e.clientWidth;var n=t.clientWidth,i=n-R._calculatePadding(t,"padding-left",n)-R._calculatePadding(t,"padding-right",n),r=R.getConstraintWidth(e);return isNaN(r)?i:Math.min(i,r)},R.getMaximumHeight=function(e){var t=R._getParentNode(e);if(!t)return e.clientHeight;var n=t.clientHeight,i=n-R._calculatePadding(t,"padding-top",n)-R._calculatePadding(t,"padding-bottom",n),r=R.getConstraintHeight(e);return isNaN(r)?i:Math.min(i,r)},R.getStyle=function(e,t){return e.currentStyle?e.currentStyle[t]:document.defaultView.getComputedStyle(e,null).getPropertyValue(t)},R.retinaScale=function(e,t){var n=e.currentDevicePixelRatio=t||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==n){var i=e.canvas,r=e.height,o=e.width;i.height=r*n,i.width=o*n,e.ctx.scale(n,n),i.style.height||i.style.width||(i.style.height=r+"px",i.style.width=o+"px")}},R.fontString=function(e,t,n){return t+" "+e+"px "+n},R.longestText=function(e,t,n,i){var r=(i=i||{}).data=i.data||{},o=i.garbageCollect=i.garbageCollect||[];i.font!==t&&(r=i.data={},o=i.garbageCollect=[],i.font=t),e.font=t;var a,s,l,u,c,d=0,h=n.length;for(a=0;a<h;a++)if(null!=(u=n[a])&&!0!==R.isArray(u))d=R.measureText(e,r,o,d,u);else if(R.isArray(u))for(s=0,l=u.length;s<l;s++)null==(c=u[s])||R.isArray(c)||(d=R.measureText(e,r,o,d,c));var f=o.length/2;if(f>n.length){for(a=0;a<f;a++)delete r[o[a]];o.splice(0,f)}return d},R.measureText=function(e,t,n,i,r){var o=t[r];return o||(o=t[r]=e.measureText(r).width,n.push(r)),o>i&&(i=o),i},R.numberOfLabelLines=function(e){var t=1;return R.each(e,(function(e){R.isArray(e)&&e.length>t&&(t=e.length)})),t},R.color=L?function(e){return e instanceof CanvasGradient&&(e=I.global.defaultColor),L(e)}:function(e){return console.error("Color.js not found!"),e},R.getHoverColor=function(e){return e instanceof CanvasPattern||e instanceof CanvasGradient?e:R.color(e).saturate(.5).darken(.1).rgbString()}}(),qt._adapters=Jt,qt.Animation=Z,qt.animationService=J,qt.controllers=qe,qt.DatasetController=te,qt.defaults=I,qt.Element=q,qt.elements=_e,qt.Interaction=et,qt.layouts=ct,qt.platform=xt,qt.plugins=St,qt.Scale=dn,qt.scaleService=Tt,qt.Ticks=Xt,qt.Tooltip=Ht,qt.helpers.each(ni,(function(e,t){qt.scaleService.registerScaleType(t,e,e._defaults)})),Mi)Mi.hasOwnProperty(Ti)&&qt.plugins.register(Mi[Ti]);qt.platform.initialize();var $i=qt;return"undefined"!=typeof window&&(window.Chart=qt),qt.Chart=qt,qt.Legend=Mi.legend._element,qt.Title=Mi.title._element,qt.pluginService=qt.plugins,qt.PluginBase=qt.Element.extend({}),qt.canvasHelpers=qt.helpers.canvas,qt.layoutService=qt.layouts,qt.LinearScaleBase=gn,qt.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],(function(e){qt[e]=function(t,n){return new qt(t,qt.helpers.merge(n||{},{type:e.charAt(0).toLowerCase()+e.slice(1)}))}})),$i})),
-/*!
- * Copyright 2015 Drifty Co.
- * http://drifty.com/
- *
- * Ionic, v1.3.5
- * A powerful HTML5 mobile app framework.
- * http://ionicframework.com/
- *
- * By @maxlynch, @benjsperry, @adamdbradley <3
- *
- * Licensed under the MIT license. Please see LICENSE for more information.
- *
- */
-function(){var e,t,n,i,r,o,a,s;window.ionic=window.ionic||{},window.ionic.views={},window.ionic.version="1.3.5",window.ionic.DelegateService=function(e){if(e.indexOf("$getByHandle")>-1)throw new Error("Method '$getByHandle' is implicitly added to each delegate service. Do not list it as a method.");function t(){return!0}return["$log",function(n){function i(e,t){this._instances=e,this.handle=t}function r(){this._instances=[]}return e.forEach((function(e){i.prototype[e]=function(e){return function(){var t,i=this.handle,r=arguments,o=0;return this._instances.forEach((function(n){if((!i||i==n.$$delegateHandle)&&n.$$filterFn(n)){o++;var a=n[e].apply(n,r);1===o&&(t=a)}})),!o&&i?n.warn('Delegate for handle "'+i+'" could not find a corresponding element with delegate-handle="'+i+'"! '+e+"() was not called!\nPossible cause: If you are calling "+e+'() immediately, and your element with delegate-handle="'+i+'" is a child of your controller, then your element may not be compiled yet. Put a $timeout around your call to '+e+"() and try again."):t}}(e)})),r.prototype=i.prototype,r.prototype._registerInstance=function(e,n,i){var r=this._instances;return e.$$delegateHandle=n,e.$$filterFn=i||t,r.push(e),function(){var t=r.indexOf(e);-1!==t&&r.splice(t,1)}},r.prototype.$getByHandle=function(e){return new i(this._instances,e)},new r}]},function(e,t,n){var i=[],r="complete"===t.readyState||"interactive"===t.readyState;r||t.addEventListener("DOMContentLoaded",(function e(){r=!0;for(var o=0;o<i.length;o++)n.requestAnimationFrame(i[o]);i=[],t.removeEventListener("DOMContentLoaded",e)})),e._rAF=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||function(t){e.setTimeout(t,16)};var o=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.mozCancelAnimationFrame||e.webkitCancelRequestAnimationFrame;n.DomUtil={requestAnimationFrame:function(t){return e._rAF(t)},cancelAnimationFrame:function(e){o(e)},animationFrameThrottle:function(e){var t,i,r;return function(){t=arguments,r=this,i||(i=!0,n.requestAnimationFrame((function(){e.apply(r,t),i=!1})))}},contains:function(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}},getPositionInParent:function(e){return{left:e.offsetLeft,top:e.offsetTop}},getOffsetTop:function(e){var t=0;if(e.offsetParent){do{t+=e.offsetTop,e=e.offsetParent}while(e);return t}},ready:function(e){r?n.requestAnimationFrame(e):i.push(e)},getTextBounds:function(n){if(t.createRange){var i=t.createRange();if(i.selectNodeContents(n),i.getBoundingClientRect){var r=i.getBoundingClientRect();if(r){var o=e.scrollX,a=e.scrollY;return{top:r.top+a,left:r.left+o,right:r.left+o+r.width,bottom:r.top+a+r.height,width:r.width,height:r.height}}}}return null},getChildIndex:function(e,t){if(t)for(var n,i=e.parentNode.children,r=0,o=0,a=i.length;r<a;r++)if((n=i[r]).nodeName&&n.nodeName.toLowerCase()==t){if(n==e)return o;o++}return Array.prototype.slice.call(e.parentNode.children).indexOf(e)},swapNodes:function(e,t){t.parentNode.insertBefore(e,t)},elementIsDescendant:function(e,t,n){var i=e;do{if(i===t)return!0;i=i.parentNode}while(i&&i!==n);return!1},getParentWithClass:function(e,t,n){for(n=n||10;e.parentNode&&n--;){if(e.parentNode.classList&&e.parentNode.classList.contains(t))return e.parentNode;e=e.parentNode}return null},getParentOrSelfWithClass:function(e,t,n){for(n=n||10;e&&n--;){if(e.classList&&e.classList.contains(t))return e;e=e.parentNode}return null},rectContains:function(e,t,n,i,r,o){return!(e<n||e>r||t<i||t>o)},blurAll:function(){return t.activeElement&&t.activeElement!=t.body?(t.activeElement.blur(),t.activeElement):null},cachedAttr:function(e,t,n){if((e=e&&e.length&&e[0]||e)&&e.setAttribute){var i="$attr-"+t;return arguments.length>2?e[i]!==n&&(e.setAttribute(t,n),e[i]=n):void 0===e[i]&&(e[i]=e.getAttribute(t)),e[i]}},cachedStyles:function(e,t){if((e=e&&e.length&&e[0]||e)&&e.style)for(var n in t)e["$style-"+n]!==t[n]&&(e.style[n]=e["$style-"+n]=t[n])}},n.requestAnimationFrame=n.DomUtil.requestAnimationFrame,n.cancelAnimationFrame=n.DomUtil.cancelAnimationFrame,n.animationFrameThrottle=n.DomUtil.animationFrameThrottle}(window,document,ionic),function(e){e.CustomEvent=function(){if("function"==typeof window.CustomEvent)return CustomEvent;var e=function(e,t){var n;t=t||{bubbles:!1,cancelable:!1,detail:void 0};try{(n=document.createEvent("CustomEvent")).initCustomEvent(e,t.bubbles,t.cancelable,t.detail)}catch(r){for(var i in n=document.createEvent("Event"),t)n[i]=t[i];n.initEvent(e,t.bubbles,t.cancelable)}return n};return e.prototype=window.Event.prototype,e}(),e.EventController={VIRTUALIZED_EVENTS:["tap","swipe","swiperight","swipeleft","drag","hold","release"],trigger:function(t,n,i,r){var o=new e.CustomEvent(t,{detail:n,bubbles:!!i,cancelable:!!r});n&&n.target&&n.target.dispatchEvent&&n.target.dispatchEvent(o)||window.dispatchEvent(o)},on:function(t,n,i){for(var r=i||window,o=0,a=this.VIRTUALIZED_EVENTS.length;o<a;o++)if(t==this.VIRTUALIZED_EVENTS[o]){var s=new e.Gesture(i);return s.on(t,n),s}r.addEventListener(t,n)},off:function(e,t,n){n.removeEventListener(e,t)},onGesture:function(t,n,i,r){var o=new e.Gesture(i,r);return o.on(t,n),o},offGesture:function(e,t,n){e&&e.off(t,n)},handlePopState:function(){}},e.on=function(){e.EventController.on.apply(e.EventController,arguments)},e.off=function(){e.EventController.off.apply(e.EventController,arguments)},e.trigger=e.EventController.trigger,e.onGesture=function(){return e.EventController.onGesture.apply(e.EventController.onGesture,arguments)},e.offGesture=function(){return e.EventController.offGesture.apply(e.EventController.offGesture,arguments)}}(window.ionic),function(e){e.Gesture=function(t,n){return new e.Gestures.Instance(t,n||{})},e.Gestures={},e.Gestures.defaults={stop_browser_behavior:"disable-user-behavior"},e.Gestures.HAS_POINTEREVENTS=window.navigator.pointerEnabled||window.navigator.msPointerEnabled,e.Gestures.HAS_TOUCHEVENTS="ontouchstart"in window,e.Gestures.MOBILE_REGEX=/mobile|tablet|ip(ad|hone|od)|android|silk/i,e.Gestures.NO_MOUSEEVENTS=e.Gestures.HAS_TOUCHEVENTS&&window.navigator.userAgent.match(e.Gestures.MOBILE_REGEX),e.Gestures.EVENT_TYPES={},e.Gestures.DIRECTION_DOWN="down",e.Gestures.DIRECTION_LEFT="left",e.Gestures.DIRECTION_UP="up",e.Gestures.DIRECTION_RIGHT="right",e.Gestures.POINTER_MOUSE="mouse",e.Gestures.POINTER_TOUCH="touch",e.Gestures.POINTER_PEN="pen",e.Gestures.EVENT_START="start",e.Gestures.EVENT_MOVE="move",e.Gestures.EVENT_END="end",e.Gestures.DOCUMENT=window.document,e.Gestures.plugins={},e.Gestures.READY=!1,e.Gestures.Instance=function(t,n){var i=this;return null===t?this:(function(){if(!e.Gestures.READY){for(var t in e.Gestures.event.determineEventTypes(),e.Gestures.gestures)e.Gestures.gestures.hasOwnProperty(t)&&e.Gestures.detection.register(e.Gestures.gestures[t]);e.Gestures.event.onTouch(e.Gestures.DOCUMENT,e.Gestures.EVENT_MOVE,e.Gestures.detection.detect),e.Gestures.event.onTouch(e.Gestures.DOCUMENT,e.Gestures.EVENT_END,e.Gestures.detection.detect),e.Gestures.READY=!0}}(),this.element=t,this.enabled=!0,this.options=e.Gestures.utils.extend(e.Gestures.utils.extend({},e.Gestures.defaults),n||{}),this.options.stop_browser_behavior&&e.Gestures.utils.stopDefaultBrowserBehavior(this.element,this.options.stop_browser_behavior),e.Gestures.event.onTouch(t,e.Gestures.EVENT_START,(function(t){i.enabled&&e.Gestures.detection.startDetect(i,t)})),this)},e.Gestures.Instance.prototype={on:function(e,t){for(var n=e.split(" "),i=0;i<n.length;i++)this.element.addEventListener(n[i],t,!1);return this},off:function(e,t){for(var n=e.split(" "),i=0;i<n.length;i++)this.element.removeEventListener(n[i],t,!1);return this},trigger:function(t,n){var i=e.Gestures.DOCUMENT.createEvent("Event");i.initEvent(t,!0,!0),i.gesture=n;var r=this.element;return e.Gestures.utils.hasParent(n.target,r)&&(r=n.target),r.dispatchEvent(i),this},enable:function(e){return this.enabled=e,this}};var t=null,n=!1,i=!1;e.Gestures.event={bindDom:function(e,t,n){for(var i=t.split(" "),r=0;r<i.length;r++)e.addEventListener(i[r],n,!1)},onTouch:function(r,o,a){var s=this;this.bindDom(r,e.Gestures.EVENT_TYPES[o],(function(l){var u=l.type.toLowerCase();if(!u.match(/mouse/)||!i){u.match(/touch/)||u.match(/pointerdown/)||u.match(/mouse/)&&1===l.which?n=!0:u.match(/mouse/)&&1!==l.which&&(n=!1),u.match(/touch|pointer/)&&(i=!0);var c=0;n&&(e.Gestures.HAS_POINTEREVENTS&&o!=e.Gestures.EVENT_END?c=e.Gestures.PointerEvent.updatePointer(o,l):u.match(/touch/)?c=l.touches.length:i||(c=u.match(/up/)?0:1),c>0&&o==e.Gestures.EVENT_END?o=e.Gestures.EVENT_MOVE:c||(o=e.Gestures.EVENT_END),(c||null===t)&&(t=l),a.call(e.Gestures.detection,s.collectEventData(r,o,s.getTouchList(t,o),l)),e.Gestures.HAS_POINTEREVENTS&&o==e.Gestures.EVENT_END&&(c=e.Gestures.PointerEvent.updatePointer(o,l))),c||(t=null,n=!1,i=!1,e.Gestures.PointerEvent.reset())}}))},determineEventTypes:function(){var t;t=e.Gestures.HAS_POINTEREVENTS?e.Gestures.PointerEvent.getEvents():e.Gestures.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],e.Gestures.EVENT_TYPES[e.Gestures.EVENT_START]=t[0],e.Gestures.EVENT_TYPES[e.Gestures.EVENT_MOVE]=t[1],e.Gestures.EVENT_TYPES[e.Gestures.EVENT_END]=t[2]},getTouchList:function(t){return e.Gestures.HAS_POINTEREVENTS?e.Gestures.PointerEvent.getTouchList():t.touches?t.touches:(t.identifier=1,[t])},collectEventData:function(t,n,i,r){var o=e.Gestures.POINTER_TOUCH;return(r.type.match(/mouse/)||e.Gestures.PointerEvent.matchType(e.Gestures.POINTER_MOUSE,r))&&(o=e.Gestures.POINTER_MOUSE),{center:e.Gestures.utils.getCenter(i),timeStamp:(new Date).getTime(),target:r.target,touches:i,eventType:n,pointerType:o,srcEvent:r,preventDefault:function(){this.srcEvent.preventManipulation&&this.srcEvent.preventManipulation(),this.srcEvent.preventDefault},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return e.Gestures.detection.stopDetect()}}}},e.Gestures.PointerEvent={pointers:{},getTouchList:function(){var e=this,t=[];return Object.keys(e.pointers).sort().forEach((function(n){t.push(e.pointers[n])})),t},updatePointer:function(t,n){return t==e.Gestures.EVENT_END?this.pointers={}:(n.identifier=n.pointerId,this.pointers[n.pointerId]=n),Object.keys(this.pointers).length},matchType:function(t,n){if(!n.pointerType)return!1;var i={};return i[e.Gestures.POINTER_MOUSE]=n.pointerType==n.MSPOINTER_TYPE_MOUSE||n.pointerType==e.Gestures.POINTER_MOUSE,i[e.Gestures.POINTER_TOUCH]=n.pointerType==n.MSPOINTER_TYPE_TOUCH||n.pointerType==e.Gestures.POINTER_TOUCH,i[e.Gestures.POINTER_PEN]=n.pointerType==n.MSPOINTER_TYPE_PEN||n.pointerType==e.Gestures.POINTER_PEN,i[t]},getEvents:function(){return["pointerdown MSPointerDown","pointermove MSPointerMove","pointerup pointercancel MSPointerUp MSPointerCancel"]},reset:function(){this.pointers={}}},e.Gestures.utils={extend:function(e,t,n){for(var i in t)void 0!==e[i]&&n||(e[i]=t[i]);return e},hasParent:function(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1},getCenter:function(e){for(var t=[],n=[],i=0,r=e.length;i<r;i++)t.push(e[i].pageX),n.push(e[i].pageY);return{pageX:(Math.min.apply(Math,t)+Math.max.apply(Math,t))/2,pageY:(Math.min.apply(Math,n)+Math.max.apply(Math,n))/2}},getVelocity:function(e,t,n){return{x:Math.abs(t/e)||0,y:Math.abs(n/e)||0}},getAngle:function(e,t){var n=t.pageY-e.pageY,i=t.pageX-e.pageX;return 180*Math.atan2(n,i)/Math.PI},getDirection:function(t,n){return Math.abs(t.pageX-n.pageX)>=Math.abs(t.pageY-n.pageY)?t.pageX-n.pageX>0?e.Gestures.DIRECTION_LEFT:e.Gestures.DIRECTION_RIGHT:t.pageY-n.pageY>0?e.Gestures.DIRECTION_UP:e.Gestures.DIRECTION_DOWN},getDistance:function(e,t){var n=t.pageX-e.pageX,i=t.pageY-e.pageY;return Math.sqrt(n*n+i*i)},getScale:function(e,t){return e.length>=2&&t.length>=2?this.getDistance(t[0],t[1])/this.getDistance(e[0],e[1]):1},getRotation:function(e,t){return e.length>=2&&t.length>=2?this.getAngle(t[1],t[0])-this.getAngle(e[1],e[0]):0},isVertical:function(t){return t==e.Gestures.DIRECTION_UP||t==e.Gestures.DIRECTION_DOWN},stopDefaultBrowserBehavior:function(e,t){e&&e.classList&&(e.classList.add(t),e.onselectstart=function(){return!1})}},e.Gestures.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(t,n){this.current||(this.stopped=!1,this.current={inst:t,startEvent:e.Gestures.utils.extend({},n),lastEvent:!1,name:""},this.detect(n))},detect:function(t){if(!this.current||this.stopped)return null;t=this.extendEventData(t);for(var n=this.current.inst.options,i=0,r=this.gestures.length;i<r;i++){var o=this.gestures[i];if(!this.stopped&&!1!==n[o.name]&&!1===o.handler.call(o,t,this.current.inst)){this.stopDetect();break}}return this.current&&(this.current.lastEvent=t),t.eventType==e.Gestures.EVENT_END&&!t.touches.length-1&&this.stopDetect(),t},stopDetect:function(){this.previous=e.Gestures.utils.extend({},this.current),this.current=null,this.stopped=!0},extendEventData:function(t){var n=this.current.startEvent;if(n&&(t.touches.length!=n.touches.length||t.touches===n.touches)){n.touches=[];for(var i=0,r=t.touches.length;i<r;i++)n.touches.push(e.Gestures.utils.extend({},t.touches[i]))}var o=t.timeStamp-n.timeStamp,a=t.center.pageX-n.center.pageX,s=t.center.pageY-n.center.pageY,l=e.Gestures.utils.getVelocity(o,a,s);return e.Gestures.utils.extend(t,{deltaTime:o,deltaX:a,deltaY:s,velocityX:l.x,velocityY:l.y,distance:e.Gestures.utils.getDistance(n.center,t.center),angle:e.Gestures.utils.getAngle(n.center,t.center),direction:e.Gestures.utils.getDirection(n.center,t.center),scale:e.Gestures.utils.getScale(n.touches,t.touches),rotation:e.Gestures.utils.getRotation(n.touches,t.touches),startEvent:n}),t},register:function(t){var n=t.defaults||{};return void 0===n[t.name]&&(n[t.name]=!0),e.Gestures.utils.extend(e.Gestures.defaults,n,!0),t.index=t.index||1e3,this.gestures.push(t),this.gestures.sort((function(e,t){return e.index<t.index?-1:e.index>t.index?1:0})),this.gestures}},e.Gestures.gestures=e.Gestures.gestures||{},e.Gestures.gestures.Hold={name:"hold",index:10,defaults:{hold_timeout:500,hold_threshold:9},timer:null,handler:function(t,n){switch(t.eventType){case e.Gestures.EVENT_START:clearTimeout(this.timer),e.Gestures.detection.current.name=this.name,this.timer=setTimeout((function(){"hold"==e.Gestures.detection.current.name&&(e.tap.cancelClick(),n.trigger("hold",t))}),n.options.hold_timeout);break;case e.Gestures.EVENT_MOVE:t.distance>n.options.hold_threshold&&clearTimeout(this.timer);break;case e.Gestures.EVENT_END:clearTimeout(this.timer)}}},e.Gestures.gestures.Tap={name:"tap",index:100,defaults:{tap_max_touchtime:250,tap_max_distance:10,tap_always:!0,doubletap_distance:20,doubletap_interval:300},handler:function(t,n){if(t.eventType==e.Gestures.EVENT_END&&"touchcancel"!=t.srcEvent.type){var i=e.Gestures.detection.previous,r=!1;if(t.deltaTime>n.options.tap_max_touchtime||t.distance>n.options.tap_max_distance)return;i&&"tap"==i.name&&t.timeStamp-i.lastEvent.timeStamp<n.options.doubletap_interval&&t.distance<n.options.doubletap_distance&&(n.trigger("doubletap",t),r=!0),r&&!n.options.tap_always||(e.Gestures.detection.current.name="tap",n.trigger("tap",t))}}},e.Gestures.gestures.Swipe={name:"swipe",index:40,defaults:{swipe_max_touches:1,swipe_velocity:.4},handler:function(t,n){if(t.eventType==e.Gestures.EVENT_END){if(n.options.swipe_max_touches>0&&t.touches.length>n.options.swipe_max_touches)return;(t.velocityX>n.options.swipe_velocity||t.velocityY>n.options.swipe_velocity)&&(n.trigger(this.name,t),n.trigger(this.name+t.direction,t))}}},e.Gestures.gestures.Drag={name:"drag",index:50,defaults:{drag_min_distance:10,correct_for_drag_min_distance:!0,drag_max_touches:1,drag_block_horizontal:!0,drag_block_vertical:!0,drag_lock_to_axis:!1,drag_lock_min_distance:25,prevent_default_directions:[]},triggered:!1,handler:function(t,n){if("touchstart"==t.srcEvent.type||"touchend"==t.srcEvent.type?this.preventedFirstMove=!1:this.preventedFirstMove||"touchmove"!=t.srcEvent.type||(n.options.prevent_default_directions.length>0&&-1!=n.options.prevent_default_directions.indexOf(t.direction)&&t.srcEvent.preventDefault(),this.preventedFirstMove=!0),e.Gestures.detection.current.name!=this.name&&this.triggered)return n.trigger(this.name+"end",t),void(this.triggered=!1);if(!(n.options.drag_max_touches>0&&t.touches.length>n.options.drag_max_touches))switch(t.eventType){case e.Gestures.EVENT_START:this.triggered=!1;break;case e.Gestures.EVENT_MOVE:if(t.distance<n.options.drag_min_distance&&e.Gestures.detection.current.name!=this.name)return;if(e.Gestures.detection.current.name!=this.name&&(e.Gestures.detection.current.name=this.name,n.options.correct_for_drag_min_distance)){var i=Math.abs(n.options.drag_min_distance/t.distance);e.Gestures.detection.current.startEvent.center.pageX+=t.deltaX*i,e.Gestures.detection.current.startEvent.center.pageY+=t.deltaY*i,t=e.Gestures.detection.extendEventData(t)}(e.Gestures.detection.current.lastEvent.drag_locked_to_axis||n.options.drag_lock_to_axis&&n.options.drag_lock_min_distance<=t.distance)&&(t.drag_locked_to_axis=!0);var r=e.Gestures.detection.current.lastEvent.direction;t.drag_locked_to_axis&&r!==t.direction&&(e.Gestures.utils.isVertical(r)?t.direction=t.deltaY<0?e.Gestures.DIRECTION_UP:e.Gestures.DIRECTION_DOWN:t.direction=t.deltaX<0?e.Gestures.DIRECTION_LEFT:e.Gestures.DIRECTION_RIGHT),this.triggered||(n.trigger(this.name+"start",t),this.triggered=!0),n.trigger(this.name,t),n.trigger(this.name+t.direction,t),(n.options.drag_block_vertical&&e.Gestures.utils.isVertical(t.direction)||n.options.drag_block_horizontal&&!e.Gestures.utils.isVertical(t.direction))&&t.preventDefault();break;case e.Gestures.EVENT_END:this.triggered&&n.trigger(this.name+"end",t),this.triggered=!1}}},e.Gestures.gestures.Transform={name:"transform",index:45,defaults:{transform_min_scale:.01,transform_min_rotation:1,transform_always_block:!1},triggered:!1,handler:function(t,n){if(e.Gestures.detection.current.name!=this.name&&this.triggered)return n.trigger(this.name+"end",t),void(this.triggered=!1);if(!(t.touches.length<2))switch(n.options.transform_always_block&&t.preventDefault(),t.eventType){case e.Gestures.EVENT_START:this.triggered=!1;break;case e.Gestures.EVENT_MOVE:var i=Math.abs(1-t.scale),r=Math.abs(t.rotation);if(i<n.options.transform_min_scale&&r<n.options.transform_min_rotation)return;e.Gestures.detection.current.name=this.name,this.triggered||(n.trigger(this.name+"start",t),this.triggered=!0),n.trigger(this.name,t),r>n.options.transform_min_rotation&&n.trigger("rotate",t),i>n.options.transform_min_scale&&(n.trigger("pinch",t),n.trigger("pinch"+(t.scale<1?"in":"out"),t));break;case e.Gestures.EVENT_END:this.triggered&&n.trigger(this.name+"end",t),this.triggered=!1}}},e.Gestures.gestures.Touch={name:"touch",index:-1/0,defaults:{prevent_default:!1,prevent_mouseevents:!1},handler:function(t,n){n.options.prevent_mouseevents&&t.pointerType==e.Gestures.POINTER_MOUSE?t.stopDetect():(n.options.prevent_default&&t.preventDefault(),t.eventType==e.Gestures.EVENT_START&&n.trigger(this.name,t))}},e.Gestures.gestures.Release={name:"release",index:1/0,handler:function(t,n){t.eventType==e.Gestures.EVENT_END&&n.trigger(this.name,t)}}}(window.ionic),function(e,t,n){function i(e){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var t=new RegExp("[\\?&]"+e+"=([^&#]*)").exec(location.search);return null===t?"":decodeURIComponent(t[1].replace(/\+/g," "))}var r,o=n.requestAnimationFrame,a=n.Platform={navigator:e.navigator,isReady:!1,isFullScreen:!1,platforms:null,grade:null,ua:navigator.userAgent,ready:function(e){a.isReady?e():u.push(e)},detect:function(){a._checkPlatforms(),o((function(){for(var e=0;e<a.platforms.length;e++)t.body.classList.add("platform-"+a.platforms[e])}))},setGrade:function(e){var n=a.grade;a.grade=e,o((function(){n&&t.body.classList.remove("grade-"+n),t.body.classList.add("grade-"+e)}))},device:function(){return e.device||{}},_checkPlatforms:function(){a.platforms=[];var t="a";a.isWebView()?(a.platforms.push("webview"),e.cordova||e.PhoneGap||e.phonegap?a.platforms.push("cordova"):"object"==typeof e.forge&&a.platforms.push("trigger")):a.platforms.push("browser"),a.isIPad()&&a.platforms.push("ipad");var n=a.platform();if(n){a.platforms.push(n);var i=a.version();if(i){var r=i.toString();r.indexOf(".")>0?r=r.replace(".","_"):r+="_0",a.platforms.push(n+r.split("_")[0]),a.platforms.push(n+r),a.isAndroid()&&i<4.4?t=i<4?"c":"b":a.isWindowsPhone()&&(t="b")}}a.setGrade(t)},isWebView:function(){return!(!e.cordova&&!e.PhoneGap&&!e.phonegap&&"object"!==e.forge)},isIPad:function(){return!!/iPad/i.test(a.navigator.platform)||/iPad/i.test(a.ua)},isIOS:function(){return a.is("ios")},isAndroid:function(){return a.is("android")},isWindowsPhone:function(){return a.is("windowsphone")},isEdge:function(){return a.is("edge")},isCrosswalk:function(){return a.is("crosswalk")},platform:function(){return null===s&&a.setPlatform(a.device().platform),s},setPlatform:function(e){s=null!=e&&e.length?e.toLowerCase():i("ionicplatform")?i("ionicplatform"):a.ua.indexOf("Edge")>-1?"edge":a.ua.indexOf("Windows Phone")>-1?"windowsphone":a.ua.indexOf("Android")>0?"android":/iPhone|iPad|iPod/.test(a.ua)?"ios":a.navigator.platform&&navigator.platform.toLowerCase().split(" ")[0]||""},version:function(){return null===l&&a.setVersion(a.device().version),l},setVersion:function(e){if(null==e||(e=e.split("."),e=parseFloat(e[0]+"."+(e.length>1?e[1]:0)),isNaN(e))){l=0;var t=a.platform(),n={android:/Android (\d+).(\d+)?/,ios:/OS (\d+)_(\d+)?/,windowsphone:/Windows Phone (\d+).(\d+)?/};n[t]&&(e=a.ua.match(n[t]))&&e.length>2&&(l=parseFloat(e[1]+"."+e[2]))}else l=e},is:function(e){if(e=e.toLowerCase(),a.platforms)for(var t=0;t<a.platforms.length;t++)if(a.platforms[t]===e)return!0;var n=a.platform();return n?n===e.toLowerCase():a.ua.toLowerCase().indexOf(e)>=0},exitApp:function(){a.ready((function(){navigator.app&&navigator.app.exitApp&&navigator.app.exitApp()}))},showStatusBar:function(n){a._showStatusBar=n,a.ready((function(){o((function(){a._showStatusBar?(e.StatusBar&&e.StatusBar.show(),t.body.classList.remove("status-bar-hide")):(e.StatusBar&&e.StatusBar.hide(),t.body.classList.add("status-bar-hide"))}))}))},fullScreen:function(e,i){a.isFullScreen=!1!==e,n.DomUtil.ready((function(){o((function(){a.isFullScreen?t.body.classList.add("fullscreen"):t.body.classList.remove("fullscreen")})),a.showStatusBar(!0===i)}))}},s=null,l=null,u=[];function c(){a.isWebView()?t.addEventListener("deviceready",d,!1):d(),r&&e.removeEventListener("load",c,!1)}function d(){a.isReady=!0,a.detect();for(var e=0;e<u.length;e++)u[e]();u=[],n.trigger("platformready",{target:t}),o((function(){t.body.classList.add("platform-ready")}))}setTimeout((function(){!a.isReady&&a.isWebView()}),2e3),"complete"===t.readyState?c():(r=!0,e.addEventListener("load",c,!1))}(window,document,ionic),function(e,t){"use strict";var n,i,r,o;t.CSS={},t.CSS.TRANSITION=[],t.CSS.TRANSFORM=[],t.EVENTS={},function(){var n,i=["webkitTransform","transform","-webkit-transform","webkit-transform","-moz-transform","moz-transform","MozTransform","mozTransform","msTransform"];for(n=0;n<i.length;n++)if(void 0!==e.documentElement.style[i[n]]){t.CSS.TRANSFORM=i[n];break}for(i=["webkitTransition","mozTransition","msTransition","transition"],n=0;n<i.length;n++)if(void 0!==e.documentElement.style[i[n]]){t.CSS.TRANSITION=i[n];break}t.CSS.TRANSITION=t.CSS.TRANSITION||"transition";var r=t.CSS.TRANSITION.indexOf("webkit")>-1;t.CSS.TRANSITION_DURATION=(r?"-webkit-":"")+"transition-duration",t.CSS.TRANSITIONEND=(r?"webkitTransitionEnd ":"")+"transitionend"}(),n="touchstart",i="touchmove",r="touchend",o="touchcancel",window.navigator.pointerEnabled?(n="pointerdown",i="pointermove",r="pointerup",o="pointercancel"):window.navigator.msPointerEnabled&&(n="MSPointerDown",i="MSPointerMove",r="MSPointerUp",o="MSPointerCancel"),t.EVENTS.touchstart=n,t.EVENTS.touchmove=i,t.EVENTS.touchend=r,t.EVENTS.touchcancel=o,"classList"in e.documentElement||!Object.defineProperty||"undefined"==typeof HTMLElement||Object.defineProperty(HTMLElement.prototype,"classList",{get:function(){var e=this;function t(t){return function(){var n,i=e.className.split(/\s+/);for(n=0;n<arguments.length;n++)t(i,i.indexOf(arguments[n]),arguments[n]);e.className=i.join(" ")}}return{add:t((function(e,t,n){~t||e.push(n)})),remove:t((function(e,t){~t&&e.splice(t,1)})),toggle:t((function(e,t,n){~t?e.splice(t,1):e.push(n)})),contains:function(t){return!!~e.className.split(/\s+/).indexOf(t)},item:function(t){return e.className.split(/\s+/)[t]||null}}}})}(document,ionic);var l="touchmove",u=12,c=50,d={click:function(e){return"submit"==e.target.type&&0===e.detail?null:ionic.scroll.isScrolling&&ionic.tap.containsOrIsTextInput(e.target)||!e.isIonicTap&&!ionic.tap.requiresNativeClick(e.target)?(e.stopPropagation(),ionic.tap.isLabelWithTextInput(e.target)||e.preventDefault(),!1):void 0},mousedown:function(e){return e.isIonicTap||b(e)?null:n?(e.stopPropagation(),ionic.Platform.isEdge()||ionic.tap.isTextInput(e.target)&&s===e.target||x(e.target.tagName)||e.target.isContentEditable||ionic.tap.isVideo(e.target)||e.preventDefault(),!1):(r=!1,o=ionic.tap.pointerCoord(e),h("mousemove"),void ionic.activator.start(e))},mouseup:function(e){return n?(e.stopPropagation(),e.preventDefault(),!1):!b(e)&&!x(e.target.tagName)&&(L(e)||f(e),h("mousemove",!1),ionic.activator.end(),void(r=!1))},mousemove:function(e){if(L(e))return h("mousemove",!1),ionic.activator.end(),r=!0,!1},touchstart:m,touchend:g,touchcancel:_,touchmove:v,pointerdown:m,pointerup:g,pointercancel:_,pointermove:v,MSPointerDown:m,MSPointerUp:g,MSPointerCancel:_,MSPointerMove:v,focusin:function(e){n&&ionic.tap.isTextInput(w())&&ionic.tap.isTextInput(a)&&a!==e.target&&(a.focus(),a=null),ionic.scroll.isScrolling=!1},focusout:function(){w(null)}};function h(t,n,i){!1!==n?e.addEventListener(t,d[t],i):e.removeEventListener(t,d[t])}function f(e){var t=k(M(e.target));if(ionic.tap.requiresNativeClick(t)||r)return!1;var i=ionic.tap.pointerCoord(e);p("click",t,i.x,i.y),function(e){a=null;var t=!1;"SELECT"==e.tagName?(p("mousedown",e,0,0),e.focus&&e.focus(),t=!0):w()===e?t=!0:/^(input|textarea|ion-label)$/i.test(e.tagName)||e.isContentEditable?(t=!0,e.focus&&e.focus(),e.value=e.value,n&&(a=e)):function(){var e=w();e&&(/^(input|textarea|select)$/i.test(e.tagName)||e.isContentEditable)&&e.blur(),w(null)}(),t&&(w(e),ionic.trigger("ionic.focusin",{target:e},!0))}(t)}function p(e,t,n,i){var r=document.createEvent("MouseEvents");r.initMouseEvent(e,!0,!0,window,1,0,0,n,i,!1,!1,!1,!1,0,null),r.isIonicTap=!0,t.dispatchEvent(r)}function m(e){b(e)||(r=!1,y(),o=ionic.tap.pointerCoord(e),h(l),ionic.activator.start(e),ionic.Platform.isIOS()&&ionic.tap.isLabelWithTextInput(e.target)&&k(M(e.target))!==t&&e.preventDefault())}function g(e){b(e)||(y(),L(e)||(f(e),x(e.target.tagName)&&e.preventDefault()),s=e.target,_())}function v(e){if(L(e))return r=!0,h(l,!1),ionic.activator.end(),!1}function _(){h(l,!1),ionic.activator.end(),r=!1}function y(){n=!0,clearTimeout(i),i=setTimeout((function(){n=!1}),600)}function b(e){return!!e.isTapHandled||(e.isTapHandled=!0,!!ionic.tap.isElementTapDisabled(e.target)||"SELECT"==e.target.tagName||(ionic.scroll.isScrolling&&ionic.tap.containsOrIsTextInput(e.target)?(e.preventDefault(),!0):void 0))}function w(e){return arguments.length&&(t=e),t||document.activeElement}function L(e){if(!e||1!==e.target.nodeType||!o||0===o.x&&0===o.y)return!1;var t=ionic.tap.pointerCoord(e),n=e.target.classList&&e.target.classList.contains&&"function"==typeof e.target.classList.contains&&e.target.classList.contains("button")?c:u;return Math.abs(o.x-t.x)>n||Math.abs(o.y-t.y)>n}function M(e,t){for(var n=e,i=0;i<6&&n;i++){if("LABEL"===n.tagName)return n;n=n.parentElement}if(!1!==t)return e}function k(e){if(e&&"LABEL"===e.tagName){if(e.control)return e.control;if(e.querySelector){var t=e.querySelector("input,textarea,select");if(t)return t}}return e}function x(e){return/^(select|option)$/i.test(e)}ionic.tap={register:function(i){return e=i,h("click",!0,!0),h("mouseup"),h("mousedown"),window.navigator.pointerEnabled?(h("pointerdown"),h("pointerup"),h("pointercancel"),l="pointermove"):window.navigator.msPointerEnabled?(h("MSPointerDown"),h("MSPointerUp"),h("MSPointerCancel"),l="MSPointerMove"):(h("touchstart"),h("touchend"),h("touchcancel")),h("focusin"),h("focusout"),function(){for(var i in d)h(i,!1);e=null,t=null,n=!1,r=!1,o=null}},ignoreScrollStart:function(e){return e.defaultPrevented||/^(file|range)$/i.test(e.target.type)||"true"==(e.target.dataset?e.target.dataset.preventScroll:e.target.getAttribute("data-prevent-scroll"))||!!/^(object|embed)$/i.test(e.target.tagName)||ionic.tap.isElementTapDisabled(e.target)},isTextInput:function(e){return!!e&&("TEXTAREA"==e.tagName||"true"===e.contentEditable||"INPUT"==e.tagName&&!/^(radio|checkbox|range|file|submit|reset|color|image|button)$/i.test(e.type))},isDateInput:function(e){return!!e&&"INPUT"==e.tagName&&/^(date|time|datetime-local|month|week)$/i.test(e.type)},isVideo:function(e){return!!e&&"VIDEO"==e.tagName},isKeyboardElement:function(e){return!ionic.Platform.isIOS()||ionic.Platform.isIPad()?ionic.tap.isTextInput(e)&&!ionic.tap.isDateInput(e):ionic.tap.isTextInput(e)||!!e&&"SELECT"==e.tagName},isLabelWithTextInput:function(e){var t=M(e,!1);return!!t&&ionic.tap.isTextInput(k(t))},containsOrIsTextInput:function(e){return ionic.tap.isTextInput(e)||ionic.tap.isLabelWithTextInput(e)},cloneFocusedInput:function(e){ionic.tap.hasCheckedClone||(ionic.tap.hasCheckedClone=!0,ionic.requestAnimationFrame((function(){var t=e.querySelector(":focus");if(ionic.tap.isTextInput(t)&&!ionic.tap.isDateInput(t)){var n=t.cloneNode(!0);n.value=t.value,n.classList.add("cloned-text-input"),n.readOnly=!0,t.isContentEditable&&(n.contentEditable=t.contentEditable,n.innerHTML=t.innerHTML),t.parentElement.insertBefore(n,t),t.classList.add("previous-input-focus"),n.scrollTop=t.scrollTop}})))},hasCheckedClone:!1,removeClonedInputs:function(e){ionic.tap.hasCheckedClone=!1,ionic.requestAnimationFrame((function(){var t,n=e.querySelectorAll(".cloned-text-input"),i=e.querySelectorAll(".previous-input-focus");for(t=0;t<n.length;t++)n[t].parentElement.removeChild(n[t]);for(t=0;t<i.length;t++)i[t].classList.remove("previous-input-focus"),i[t].style.top="",ionic.keyboard.isOpen&&!ionic.keyboard.isClosing&&i[t].focus()}))},requiresNativeClick:function(e){return!(!ionic.Platform.isWindowsPhone()||"A"!=e.tagName&&"BUTTON"!=e.tagName&&!e.hasAttribute("ng-click")&&("INPUT"!=e.tagName||"button"!=e.type&&"submit"!=e.type))||!!(!e||e.disabled||/^(file|range)$/i.test(e.type)||/^(object|video)$/i.test(e.tagName)||ionic.tap.isLabelContainingFileInput(e))||ionic.tap.isElementTapDisabled(e)},isLabelContainingFileInput:function(e){var t=M(e);if("LABEL"!==t.tagName)return!1;var n=t.querySelector("input[type=file]");return!(!n||!1!==n.disabled)},isElementTapDisabled:function(e){if(e&&1===e.nodeType)for(var t=e;t;){if(t.getAttribute&&"true"==t.getAttribute("data-tap-disabled"))return!0;t=t.parentElement}return!1},setTolerance:function(e,t){u=e,c=t},cancelClick:function(){r=!0},pointerCoord:function(e){var t={x:0,y:0};if(e){var n=e.touches&&e.touches.length?e.touches:[e],i=e.changedTouches&&e.changedTouches[0]||n[0];i&&(t.x=i.clientX||i.pageX||0,t.y=i.clientY||i.pageY||0)}return t}},ionic.DomUtil.ready((function(){var e="undefined"!=typeof angular?angular:null;(!e||e&&!e.scenario)&&ionic.tap.register(document)})),function(e,t){"use strict";var n={},i={},r=0,o="activated";function a(){n={},t.requestAnimationFrame(l)}function s(){for(var e in n)n[e]&&(n[e].classList.add(o),i[e]=n[e]);n={}}function l(){if(t.transition&&t.transition.isActive)setTimeout(l,400);else for(var e in i)i[e]&&(i[e].classList.remove(o),delete i[e])}t.activator={start:function(e){var i=t.tap.pointerCoord(e).x;i>0&&i<30||t.requestAnimationFrame((function(){if(!(t.scroll&&t.scroll.isScrolling||t.tap.requiresNativeClick(e.target))){for(var i,o=e.target,a=0;a<6&&o&&1===o.nodeType;a++){if(i&&o.classList&&o.classList.contains("item")){i=o;break}if("A"==o.tagName||"BUTTON"==o.tagName||o.hasAttribute("ng-click")){i=o;break}if(o.classList&&o.classList.contains("button")){i=o;break}if("ION-CONTENT"==o.tagName||o.classList&&o.classList.contains("pane")||"BODY"==o.tagName)break;o=o.parentElement}i&&(n[r]=i,t.requestAnimationFrame(s),r=r>29?0:r+1)}}))},end:function(){setTimeout(a,200)}}}(document,ionic),function(e){var t=0;e.Utils={arrayMove:function(e,t,n){if(n>=e.length)for(var i=n-e.length;1+i--;)e.push(void 0);return e.splice(n,0,e.splice(t,1)[0]),e},proxy:function(e,t){var n=Array.prototype.slice.call(arguments,2);return function(){return e.apply(t,n.concat(Array.prototype.slice.call(arguments)))}},debounce:function(e,t,n){var i,r,o,a,s;return function(){o=this,r=arguments,a=new Date;var l=function(){var u=new Date-a;u<t?i=setTimeout(l,t-u):(i=null,n||(s=e.apply(o,r)))},u=n&&!i;return i||(i=setTimeout(l,t)),u&&(s=e.apply(o,r)),s}},throttle:function(e,t,n){var i,r,o,a=null,s=0;n||(n={});var l=function(){s=!1===n.leading?0:Date.now(),a=null,o=e.apply(i,r)};return function(){var u=Date.now();s||!1!==n.leading||(s=u);var c=t-(u-s);return i=this,r=arguments,c<=0?(clearTimeout(a),a=null,s=u,o=e.apply(i,r)):a||!1===n.trailing||(a=setTimeout(l,c)),o}},inherit:function(t,n){var i,r=this;i=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return r.apply(this,arguments)},e.extend(i,r,n);var o=function(){this.constructor=i};return o.prototype=r.prototype,i.prototype=new o,t&&e.extend(i.prototype,t),i.__super__=r.prototype,i},extend:function(e){for(var t=Array.prototype.slice.call(arguments,1),n=0;n<t.length;n++){var i=t[n];if(i)for(var r in i)e[r]=i[r]}return e},nextUid:function(){return"ion"+t++},disconnectScope:function(e){if(e&&e.$root!==e){var t=e.$parent;e.$$disconnected=!0,e.$broadcast("$ionic.disconnectScope",e),t.$$childHead===e&&(t.$$childHead=e.$$nextSibling),t.$$childTail===e&&(t.$$childTail=e.$$prevSibling),e.$$prevSibling&&(e.$$prevSibling.$$nextSibling=e.$$nextSibling),e.$$nextSibling&&(e.$$nextSibling.$$prevSibling=e.$$prevSibling),e.$$nextSibling=e.$$prevSibling=null}},reconnectScope:function(e){if(e&&e.$root!==e&&e.$$disconnected){var t=e.$parent;e.$$disconnected=!1,e.$broadcast("$ionic.reconnectScope",e),e.$$prevSibling=t.$$childTail,t.$$childHead?(t.$$childTail.$$nextSibling=e,t.$$childTail=e):t.$$childHead=t.$$childTail=e}},isScopeDisconnected:function(e){for(var t=e;t;){if(t.$$disconnected)return!0;t=t.$parent}return!1}},e.inherit=e.Utils.inherit,e.extend=e.Utils.extend,e.throttle=e.Utils.throttle,e.proxy=e.Utils.proxy,e.debounce=e.Utils.debounce}(window.ionic);var S,T,$,D,C,E,A=0,P=0,Y=0,O=!1,I="keyboard-open",j=ionic.debounce((function(e){if(clearTimeout(C),!e.target||e.target.readOnly||!ionic.tap.isKeyboardElement(e.target)||!($=ionic.DomUtil.getParentWithClass(e.target,"scroll-content")))return S&&(T=S),void(S=null);S=e.target,$.classList.contains("overflow-scroll")||(document.body.scrollTop=0,$.scrollTop=0,ionic.requestAnimationFrame((function(){document.body.scrollTop=0,$.scrollTop=0})),window.navigator.msPointerEnabled?document.addEventListener("MSPointerMove",z,!1):document.addEventListener("touchmove",z,!1)),ionic.keyboard.isOpen&&!ionic.keyboard.isClosing||(ionic.keyboard.isOpening=!0,ionic.keyboard.isClosing=!1),document.addEventListener("keydown",F,!1),ionic.keyboard.isOpen||X()?ionic.keyboard.isOpen&&W():V(W,!0)}),200,!0),H=ionic.debounce((function(e){clearTimeout(C),(!ionic.keyboard.isOpen||ionic.keyboard.isClosing)&&(ionic.keyboard.isOpening=!0,ionic.keyboard.isClosing=!1),ionic.keyboard.height=e.keyboardHeight,V(O?G:W,!0)}),100,!0);function B(){ionic.keyboard.isInitialized||(X()?(window.addEventListener("native.keyboardshow",H),window.addEventListener("native.keyboardhide",N)):document.body.addEventListener("focusout",N),document.body.addEventListener("ionic.focusin",j),document.body.addEventListener("focusin",j),window.navigator.msPointerEnabled?document.removeEventListener("MSPointerDown",B):document.removeEventListener("touchstart",B),ionic.keyboard.isInitialized=!0)}function N(){clearTimeout(C),(ionic.keyboard.isOpen||ionic.keyboard.isOpening)&&(ionic.keyboard.isClosing=!0,ionic.keyboard.isOpening=!1),C=setTimeout((function(){ionic.requestAnimationFrame((function(){V(O?function(){G(),U()}:U,!1)}))}),50)}function R(){ionic.keyboard.isLandscape=!ionic.keyboard.isLandscape,ionic.Platform.isIOS()&&G(),ionic.Platform.isAndroid()&&(ionic.keyboard.isOpen&&X()?O=!0:V(G,!1))}function F(e){ionic.scroll.isScrolling&&z(e)}function z(e){"TEXTAREA"!==e.target.tagName&&e.preventDefault()}function V(e,t){clearInterval(D);var n,i=0,r=J(),o=r;return n=ionic.Platform.isAndroid()&&ionic.Platform.version()<4.4?30:ionic.Platform.isAndroid()?10:1,D=setInterval((function(){o=J(),++i<n&&(!function(e){return!!(!ionic.keyboard.isLandscape&&P&&Math.abs(P-e)<2)}(o)&&!function(e){return!!(ionic.keyboard.isLandscape&&Y&&Math.abs(Y-e)<2)}(o)||!ionic.keyboard.height)||(X()||(ionic.keyboard.height=Math.abs(r-window.innerHeight)),ionic.keyboard.isOpen=t,clearInterval(D),e())}),50),n}function U(){clearTimeout(C),ionic.keyboard.isOpen=!1,ionic.keyboard.isClosing=!1,(S||T)&&ionic.trigger("resetScrollView",{target:S||T},!0),ionic.requestAnimationFrame((function(){document.body.classList.remove(I)})),window.navigator.msPointerEnabled?document.removeEventListener("MSPointerMove",z):document.removeEventListener("touchmove",z),document.removeEventListener("keydown",F),ionic.Platform.isAndroid()&&(X()&&cordova.plugins.Keyboard.close(),S&&S.blur()),S=null,T=null}function W(){ionic.keyboard.isOpen=!0,ionic.keyboard.isOpening=!1;var e={keyboardHeight:q(),viewportHeight:A};if(S){e.target=S;var t=S.getBoundingClientRect();e.elementTop=Math.round(t.top),e.elementBottom=Math.round(t.bottom),e.windowHeight=e.viewportHeight-e.keyboardHeight,e.isElementUnderKeyboard=e.elementBottom>e.windowHeight,ionic.trigger("scrollChildIntoView",e,!0)}return setTimeout((function(){document.body.classList.add(I)}),400),e}function q(){if(ionic.keyboard.height)return ionic.keyboard.height;if(ionic.Platform.isAndroid()){if(ionic.Platform.isFullScreen)return 275;var e=window.innerHeight;return e<A?A-e:0}return ionic.Platform.isIOS()?ionic.keyboard.isLandscape?206:ionic.Platform.isWebView()?260:216:275}function G(){O=!1,A=J(),ionic.keyboard.isLandscape&&!Y?Y=A:ionic.keyboard.isLandscape||P||(P=A),S&&ionic.trigger("resetScrollView",{target:S},!0),ionic.keyboard.isOpen&&ionic.tap.isTextInput(S)&&W()}function Z(){var e=J();e/window.innerWidth<1&&(ionic.keyboard.isLandscape=!0),A=e,ionic.keyboard.isLandscape&&!Y?Y=A:ionic.keyboard.isLandscape||P||(P=A)}function J(){var e=window.innerHeight;return ionic.Platform.isAndroid()&&ionic.Platform.isFullScreen||!ionic.keyboard.isOpen&&!ionic.keyboard.isOpening||ionic.keyboard.isClosing?e:e+q()}function X(){return!!(window.cordova&&cordova.plugins&&cordova.plugins.Keyboard)}ionic.keyboard={isOpen:!1,isClosing:!1,isOpening:!1,height:0,isLandscape:!1,isInitialized:!1,hide:function(){X()&&cordova.plugins.Keyboard.close(),S&&S.blur()},show:function(){X()&&cordova.plugins.Keyboard.show()},disable:function(){X()?(window.removeEventListener("native.keyboardshow",H),window.removeEventListener("native.keyboardhide",N)):document.body.removeEventListener("focusout",N),document.body.removeEventListener("ionic.focusin",j),document.body.removeEventListener("focusin",j),window.removeEventListener("orientationchange",R),window.navigator.msPointerEnabled?document.removeEventListener("MSPointerDown",B):document.removeEventListener("touchstart",B),ionic.keyboard.isInitialized=!1},enable:function(){B()}},A=J(),ionic.Platform.ready((function(){Z(),window.addEventListener("orientationchange",R),setTimeout(Z,999),window.navigator.msPointerEnabled?document.addEventListener("MSPointerDown",B,!1):document.addEventListener("touchstart",B,!1)}));var K={};function Q(){var e=K.width,t=K.height,n=ionic.Platform,i=n.version(),r=ionic.viewport.orientation();delete K.height,K.width="device-width",n.isIPad()?i>7?delete K.width:n.isWebView()?90==r?K.height="0":7==i&&(K.height="device-height"):i<7&&(K.height="0"):n.isIOS()&&(n.isWebView()?i>7?delete K.width:i<7?t&&(K.height="0"):7==i&&(K.height="device-height"):i<7&&t&&(K.height="0")),e===K.width&&t===K.height||function(){var e,t=[];for(e in K)K[e]&&t.push(e+("_"==K[e]?"":"="+K[e]));E.content=t.join(", ")}()}ionic.viewport={orientation:function(){return window.innerWidth>window.innerHeight?90:0}},ionic.Platform.ready((function(){!function(){var e;for(e=0;e<document.head.children.length;e++)if("viewport"==document.head.children[e].name){E=document.head.children[e];break}if(E){var t,n=E.content.toLowerCase().replace(/\s+/g,"").split(",");for(e=0;e<n.length;e++)n[e]&&(t=n[e].split("="),K[t[0]]=t.length>1?t[1]:"_");Q()}}(),window.addEventListener("orientationchange",(function(){setTimeout(Q,1e3)}),!1)})),function(e){"use strict";e.views.View=function(){this.initialize.apply(this,arguments)},e.views.View.inherit=e.inherit,e.extend(e.views.View.prototype,{initialize:function(){}})}(window.ionic);var ee={effect:{}};!function(e){var t=Date.now||function(){return+new Date},n={},i=1;ee.effect.Animate={requestAnimationFrame:function(){var t=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame,n=!!t;if(t&&!/requestAnimationFrame\(\)\s*\{\s*\[native code\]\s*\}/i.test(t.toString())&&(n=!1),n)return function(e,n){t(e,n)};var i={},r=1,o=null,a=+new Date;return function(e){var t=r++;return i[t]=e,null===o&&(o=setInterval((function(){var e=+new Date,t=i;for(var n in i={},t)t.hasOwnProperty(n)&&(t[n](e),a=e);e-a>2500&&(clearInterval(o),o=null)}),1e3/60)),t}}(),stop:function(e){var t=null!=n[e];return t&&(n[e]=null),t},isRunning:function(e){return null!=n[e]},start:function(e,r,o,a,s,l){var u=t(),c=u,d=0,h=0,f=i++;if(l||(l=document.body),f%20==0){var p={};for(var m in n)p[m]=!0;n=p}var g=function(i){var p=!0!==i,m=t();if(!n[f]||r&&!r(f))return n[f]=null,void(o&&o(60-h/((m-u)/1e3),f,!1));if(p)for(var v=Math.round((m-c)/(1e3/60))-1,_=0;_<Math.min(v,4);_++)g(!0),h++;a&&(d=(m-u)/a)>1&&(d=1);var y=s?s(d):d;!1!==e(y,m,p)&&1!==d||!p?p&&(c=m,ee.effect.Animate.requestAnimationFrame(g,l)):(n[f]=null,o&&o(60-h/((m-u)/1e3),f,1===d||null==a))};return n[f]=!0,ee.effect.Animate.requestAnimationFrame(g,l),f}}}(window),function(e){var t=function(){},n=function(e){return Math.pow(e-1,3)+1},i=function(e){return(e/=.5)<1?.5*Math.pow(e,3):.5*(Math.pow(e-2,3)+2)};e.views.Scroll=e.views.View.inherit({initialize:function(n){var i=this;for(var r in i.__container=n.el,i.__content=n.el.firstElementChild,setTimeout((function(){i.__container&&i.__content&&(i.__container.scrollTop=0,i.__content.scrollTop=0)})),i.options={scrollingX:!1,scrollbarX:!0,scrollingY:!0,scrollbarY:!0,startX:0,startY:0,wheelDampen:6,minScrollbarSizeX:5,minScrollbarSizeY:5,scrollbarsFade:!0,scrollbarFadeDelay:300,scrollbarResizeFadeDelay:1e3,animating:!0,animationDuration:250,decelVelocityThreshold:4,decelVelocityThresholdPaging:4,bouncing:!0,locking:!0,paging:!1,snapping:!1,zooming:!1,minZoom:.5,maxZoom:3,speedMultiplier:1,deceleration:.97,preventDefault:!1,scrollingComplete:t,penetrationDeceleration:.03,penetrationAcceleration:.08,scrollEventInterval:10,freeze:!1,getContentWidth:function(){return Math.max(i.__content.scrollWidth,i.__content.offsetWidth)},getContentHeight:function(){return Math.max(i.__content.scrollHeight,i.__content.offsetHeight+2*i.__content.offsetTop)}},n)i.options[r]=n[r];i.hintResize=e.debounce((function(){i.resize()}),1e3,!0),i.onScroll=function(){e.scroll.isScrolling?(clearTimeout(i.scrollTimer),i.scrollTimer=setTimeout(i.setScrollStop,80)):setTimeout(i.setScrollStart,50)},i.freeze=function(e){return arguments.length&&(i.options.freeze=e),i.options.freeze},i.freezeShut=i.freeze,i.setScrollStart=function(){e.scroll.isScrolling=Math.abs(e.scroll.lastTop-i.__scrollTop)>1,clearTimeout(i.scrollTimer),i.scrollTimer=setTimeout(i.setScrollStop,80)},i.setScrollStop=function(){e.scroll.isScrolling=!1,e.scroll.lastTop=i.__scrollTop},i.triggerScrollEvent=e.throttle((function(){i.onScroll(),e.trigger("scroll",{scrollTop:i.__scrollTop,scrollLeft:i.__scrollLeft,target:i.__container})}),i.options.scrollEventInterval),i.triggerScrollEndEvent=function(){e.trigger("scrollend",{scrollTop:i.__scrollTop,scrollLeft:i.__scrollLeft,target:i.__container})},i.__scrollLeft=i.options.startX,i.__scrollTop=i.options.startY,i.__callback=i.getRenderFn(),i.__initEventHandlers(),i.__createScrollbars()},run:function(){this.resize(),this.__fadeScrollbars("out",this.options.scrollbarResizeFadeDelay)},__isSingleTouch:!1,__isTracking:!1,__didDecelerationComplete:!1,__isGesturing:!1,__isDragging:!1,__isDecelerating:!1,__isAnimating:!1,__clientLeft:0,__clientTop:0,__clientWidth:0,__clientHeight:0,__contentWidth:0,__contentHeight:0,__snapWidth:100,__snapHeight:100,__refreshHeight:null,__refreshActive:!1,__refreshActivate:null,__refreshDeactivate:null,__refreshStart:null,__zoomLevel:1,__scrollLeft:0,__scrollTop:0,__maxScrollLeft:0,__maxScrollTop:0,__scheduledLeft:0,__scheduledTop:0,__scheduledZoom:0,__lastTouchLeft:null,__lastTouchTop:null,__lastTouchMove:null,__positions:null,__minDecelerationScrollLeft:null,__minDecelerationScrollTop:null,__maxDecelerationScrollLeft:null,__maxDecelerationScrollTop:null,__decelerationVelocityX:null,__decelerationVelocityY:null,__transformProperty:null,__perspectiveProperty:null,__indicatorX:null,__indicatorY:null,__scrollbarFadeTimeout:null,__didWaitForSize:null,__sizerTimeout:null,__initEventHandlers:function(){var t,n=this,i=n.__container;function r(e){return e.touches&&e.touches.length?e.touches:[{pageX:e.pageX,pageY:e.pageY}]}if(n.scrollChildIntoView=function(r){var o=i.getBoundingClientRect().bottom;t=i.offsetHeight;var a=n.isShrunkForKeyboard,s=i.parentNode.classList.contains("modal")&&window.innerWidth>=680;if(!a){if(e.Platform.isIOS()||e.Platform.isFullScreen||s){var l=r.detail.viewportHeight-o,u=Math.max(0,r.detail.keyboardHeight-l);e.requestAnimationFrame((function(){t-=u,i.style.height=t+"px",i.style.overflow="visible",n.resize()}))}n.isShrunkForKeyboard=!0}r.detail.isElementUnderKeyboard&&e.requestAnimationFrame((function(){i.scrollTop=0,n.isShrunkForKeyboard&&!a&&(o=i.getBoundingClientRect().bottom);var s=.5*t,l=(r.detail.elementBottom+r.detail.elementTop)/2-o+s;l>0&&(e.Platform.isIOS()&&e.tap.cloneFocusedInput(i,n),n.scrollBy(0,l,!0),n.onScroll())})),r.stopPropagation()},n.resetScrollView=function(){n.isShrunkForKeyboard&&(n.isShrunkForKeyboard=!1,i.style.height="",i.style.overflow=""),n.resize()},i.addEventListener("scrollChildIntoView",n.scrollChildIntoView),document.addEventListener("resetScrollView",n.resetScrollView),n.touchStart=function(t){n.startCoordinates=e.tap.pointerCoord(t),e.tap.ignoreScrollStart(t)||(n.__isDown=!0,e.tap.containsOrIsTextInput(t.target)||"SELECT"===t.target.tagName?n.__hasStarted=!1:(n.__isSelectable=!0,n.__enableScrollY=!0,n.__hasStarted=!0,n.doTouchStart(r(t),t.timeStamp),t.preventDefault()))},n.touchMove=function(t){if(!(n.options.freeze||!n.__isDown||!n.__isDown&&t.defaultPrevented||"TEXTAREA"===t.target.tagName&&t.target.parentElement.querySelector(":focus"))){if(!n.__hasStarted&&(e.tap.containsOrIsTextInput(t.target)||"SELECT"===t.target.tagName))return n.__hasStarted=!0,n.doTouchStart(r(t),t.timeStamp),void t.preventDefault();if(n.startCoordinates){var o=e.tap.pointerCoord(t);n.__isSelectable&&e.tap.isTextInput(t.target)&&Math.abs(n.startCoordinates.x-o.x)>20&&(n.__enableScrollY=!1,n.__isSelectable=!0),n.__enableScrollY&&Math.abs(n.startCoordinates.y-o.y)>10&&(n.__isSelectable=!1,e.tap.cloneFocusedInput(i,n))}n.doTouchMove(r(t),t.timeStamp,t.scale),n.__isDown=!0}},n.touchMoveBubble=function(e){n.__isDown&&n.options.preventDefault&&e.preventDefault()},n.touchEnd=function(t){n.__isDown&&(n.doTouchEnd(t,t.timeStamp),n.__isDown=!1,n.__hasStarted=!1,n.__isSelectable=!0,n.__enableScrollY=!0,n.__isDragging||n.__isDecelerating||n.__isAnimating||e.tap.removeClonedInputs(i,n))},n.mouseWheel=e.animationFrameThrottle((function(t){var i=e.DomUtil.getParentOrSelfWithClass(t.target,"ionic-scroll");n.options.freeze||i!==n.__container||(n.hintResize(),n.scrollBy((t.wheelDeltaX||t.deltaX||0)/n.options.wheelDampen,(-t.wheelDeltaY||t.deltaY||0)/n.options.wheelDampen),n.__fadeScrollbars("in"),clearTimeout(n.__wheelHideBarTimeout),n.__wheelHideBarTimeout=setTimeout((function(){n.__fadeScrollbars("out")}),100))})),"ontouchstart"in window)i.addEventListener("touchstart",n.touchStart,!1),n.options.preventDefault&&i.addEventListener("touchmove",n.touchMoveBubble,!1),document.addEventListener("touchmove",n.touchMove,!1),document.addEventListener("touchend",n.touchEnd,!1),document.addEventListener("touchcancel",n.touchEnd,!1),document.addEventListener("wheel",n.mouseWheel,!1);else if(window.navigator.pointerEnabled)i.addEventListener("pointerdown",n.touchStart,!1),n.options.preventDefault&&i.addEventListener("pointermove",n.touchMoveBubble,!1),document.addEventListener("pointermove",n.touchMove,!1),document.addEventListener("pointerup",n.touchEnd,!1),document.addEventListener("pointercancel",n.touchEnd,!1),document.addEventListener("wheel",n.mouseWheel,!1);else if(window.navigator.msPointerEnabled)i.addEventListener("MSPointerDown",n.touchStart,!1),n.options.preventDefault&&i.addEventListener("MSPointerMove",n.touchMoveBubble,!1),document.addEventListener("MSPointerMove",n.touchMove,!1),document.addEventListener("MSPointerUp",n.touchEnd,!1),document.addEventListener("MSPointerCancel",n.touchEnd,!1),document.addEventListener("wheel",n.mouseWheel,!1);else{var o=!1;n.mouseDown=function(t){e.tap.ignoreScrollStart(t)||"SELECT"===t.target.tagName||(n.doTouchStart(r(t),t.timeStamp),e.tap.isTextInput(t.target)||t.preventDefault(),o=!0)},n.mouseMove=function(e){n.options.freeze||!o||!o&&e.defaultPrevented||(n.doTouchMove(r(e),e.timeStamp),o=!0)},n.mouseMoveBubble=function(e){o&&n.options.preventDefault&&e.preventDefault()},n.mouseUp=function(e){o&&(n.doTouchEnd(e,e.timeStamp),o=!1)},i.addEventListener("mousedown",n.mouseDown,!1),n.options.preventDefault&&i.addEventListener("mousemove",n.mouseMoveBubble,!1),document.addEventListener("mousemove",n.mouseMove,!1),document.addEventListener("mouseup",n.mouseUp,!1),document.addEventListener("mousewheel",n.mouseWheel,!1),document.addEventListener("wheel",n.mouseWheel,!1)}},__cleanup:function(){var n=this.__container;n.removeEventListener("touchstart",this.touchStart),n.removeEventListener("touchmove",this.touchMoveBubble),document.removeEventListener("touchmove",this.touchMove),document.removeEventListener("touchend",this.touchEnd),document.removeEventListener("touchcancel",this.touchEnd),n.removeEventListener("pointerdown",this.touchStart),n.removeEventListener("pointermove",this.touchMoveBubble),document.removeEventListener("pointermove",this.touchMove),document.removeEventListener("pointerup",this.touchEnd),document.removeEventListener("pointercancel",this.touchEnd),n.removeEventListener("MSPointerDown",this.touchStart),n.removeEventListener("MSPointerMove",this.touchMoveBubble),document.removeEventListener("MSPointerMove",this.touchMove),document.removeEventListener("MSPointerUp",this.touchEnd),document.removeEventListener("MSPointerCancel",this.touchEnd),n.removeEventListener("mousedown",this.mouseDown),n.removeEventListener("mousemove",this.mouseMoveBubble),document.removeEventListener("mousemove",this.mouseMove),document.removeEventListener("mouseup",this.mouseUp),document.removeEventListener("mousewheel",this.mouseWheel),document.removeEventListener("wheel",this.mouseWheel),n.removeEventListener("scrollChildIntoView",this.scrollChildIntoView),document.removeEventListener("resetScrollView",this.resetScrollView),e.tap.removeClonedInputs(n,this),delete this.__container,delete this.__content,delete this.__indicatorX,delete this.__indicatorY,delete this.options.el,this.__callback=this.scrollChildIntoView=this.resetScrollView=t,this.mouseMove=this.mouseDown=this.mouseUp=this.mouseWheel=this.touchStart=this.touchMove=this.touchEnd=this.touchCancel=t,this.resize=this.scrollTo=this.zoomTo=this.__scrollingComplete=t,n=null},__createScrollbar:function(e){var t=document.createElement("div"),n=document.createElement("div");return n.className="scroll-bar-indicator scroll-bar-fade-out",t.className="h"==e?"scroll-bar scroll-bar-h":"scroll-bar scroll-bar-v",t.appendChild(n),t},__createScrollbars:function(){var e,t;this.options.scrollingX&&((e={el:this.__createScrollbar("h"),sizeRatio:1}).indicator=e.el.children[0],this.options.scrollbarX&&this.__container.appendChild(e.el),this.__indicatorX=e),this.options.scrollingY&&((t={el:this.__createScrollbar("v"),sizeRatio:1}).indicator=t.el.children[0],this.options.scrollbarY&&this.__container.appendChild(t.el),this.__indicatorY=t)},__resizeScrollbars:function(){var t=this;if(t.__indicatorX){var n=Math.max(Math.round(t.__clientWidth*t.__clientWidth/t.__contentWidth),20);n>t.__contentWidth&&(n=0),n!==t.__indicatorX.size&&e.requestAnimationFrame((function(){t.__indicatorX.indicator.style.width=n+"px"})),t.__indicatorX.size=n,t.__indicatorX.minScale=t.options.minScrollbarSizeX/n,t.__indicatorX.maxPos=t.__clientWidth-n,t.__indicatorX.sizeRatio=t.__maxScrollLeft?t.__indicatorX.maxPos/t.__maxScrollLeft:1}if(t.__indicatorY){var i=Math.max(Math.round(t.__clientHeight*t.__clientHeight/t.__contentHeight),20);i>t.__contentHeight&&(i=0),i!==t.__indicatorY.size&&e.requestAnimationFrame((function(){t.__indicatorY&&(t.__indicatorY.indicator.style.height=i+"px")})),t.__indicatorY.size=i,t.__indicatorY.minScale=t.options.minScrollbarSizeY/i,t.__indicatorY.maxPos=t.__clientHeight-i,t.__indicatorY.sizeRatio=t.__maxScrollTop?t.__indicatorY.maxPos/t.__maxScrollTop:1}},__repositionScrollbars:function(){var e,t,n,i,r,o,a=0,s=0;if(this.__indicatorX){this.__indicatorY&&(a=10),r=Math.round(this.__indicatorX.sizeRatio*this.__scrollLeft)||0,n=this.__scrollLeft-(this.__maxScrollLeft-a),this.__scrollLeft<0?(t=Math.max(this.__indicatorX.minScale,(this.__indicatorX.size-Math.abs(this.__scrollLeft))/this.__indicatorX.size),r=0,this.__indicatorX.indicator.style[this.__transformOriginProperty]="left center"):n>0?(t=Math.max(this.__indicatorX.minScale,(this.__indicatorX.size-n)/this.__indicatorX.size),r=this.__indicatorX.maxPos-a,this.__indicatorX.indicator.style[this.__transformOriginProperty]="right center"):(r=Math.min(this.__maxScrollLeft,Math.max(0,r)),t=1);var l="translate3d("+r+"px, 0, 0) scaleX("+t+")";this.__indicatorX.transformProp!==l&&(this.__indicatorX.indicator.style[this.__transformProperty]=l,this.__indicatorX.transformProp=l)}if(this.__indicatorY){o=Math.round(this.__indicatorY.sizeRatio*this.__scrollTop)||0,this.__indicatorX&&(s=10),i=this.__scrollTop-(this.__maxScrollTop-s),this.__scrollTop<0?(e=Math.max(this.__indicatorY.minScale,(this.__indicatorY.size-Math.abs(this.__scrollTop))/this.__indicatorY.size),o=0,"center top"!==this.__indicatorY.originProp&&(this.__indicatorY.indicator.style[this.__transformOriginProperty]="center top",this.__indicatorY.originProp="center top")):i>0?(e=Math.max(this.__indicatorY.minScale,(this.__indicatorY.size-i)/this.__indicatorY.size),o=this.__indicatorY.maxPos-s,"center bottom"!==this.__indicatorY.originProp&&(this.__indicatorY.indicator.style[this.__transformOriginProperty]="center bottom",this.__indicatorY.originProp="center bottom")):(o=Math.min(this.__maxScrollTop,Math.max(0,o)),e=1);var u="translate3d(0,"+o+"px, 0) scaleY("+e+")";this.__indicatorY.transformProp!==u&&(this.__indicatorY.indicator.style[this.__transformProperty]=u,this.__indicatorY.transformProp=u)}},__fadeScrollbars:function(e,t){var n=this;if(n.options.scrollbarsFade){var i="scroll-bar-fade-out";!0===n.options.scrollbarsFade&&(clearTimeout(n.__scrollbarFadeTimeout),"in"==e?(n.__indicatorX&&n.__indicatorX.indicator.classList.remove(i),n.__indicatorY&&n.__indicatorY.indicator.classList.remove(i)):n.__scrollbarFadeTimeout=setTimeout((function(){n.__indicatorX&&n.__indicatorX.indicator.classList.add(i),n.__indicatorY&&n.__indicatorY.indicator.classList.add(i)}),t||n.options.scrollbarFadeDelay))}},__scrollingComplete:function(){this.options.scrollingComplete(),e.tap.removeClonedInputs(this.__container,this),this.__fadeScrollbars("out")},resize:function(e){this.__container&&this.options&&this.setDimensions(this.__container.clientWidth,this.__container.clientHeight,this.options.getContentWidth(),this.options.getContentHeight(),e)},getRenderFn:function(){var e,t=this,n=t.__content,i=document.documentElement.style;"MozAppearance"in i?e="gecko":"WebkitAppearance"in i?e="webkit":"string"==typeof navigator.cpuClass&&(e="trident");var r={trident:"ms",gecko:"Moz",webkit:"Webkit",presto:"O"}[e],o=document.createElement("div"),a=r+"Perspective",s=r+"Transform",l=r+"TransformOrigin";return t.__perspectiveProperty=s,t.__transformProperty=s,t.__transformOriginProperty=l,void 0!==o.style[a]?function(e,i,r,o){var a="translate3d("+-e+"px,"+-i+"px,0) scale("+r+")";a!==t.contentTransform&&(n.style[s]=a,t.contentTransform=a),t.__repositionScrollbars(),o||t.triggerScrollEvent()}:void 0!==o.style[s]?function(e,i,r,o){n.style[s]="translate("+-e+"px,"+-i+"px) scale("+r+")",t.__repositionScrollbars(),o||t.triggerScrollEvent()}:function(e,i,r,o){n.style.marginLeft=e?-e/r+"px":"",n.style.marginTop=i?-i/r+"px":"",n.style.zoom=r||"",t.__repositionScrollbars(),o||t.triggerScrollEvent()}},setDimensions:function(e,t,n,i,r){(e||t||n||i)&&(e===+e&&(this.__clientWidth=e),t===+t&&(this.__clientHeight=t),n===+n&&(this.__contentWidth=n),i===+i&&(this.__contentHeight=i),this.__computeScrollMax(),this.__resizeScrollbars(),r||this.scrollTo(this.__scrollLeft,this.__scrollTop,!0,null,!0))},setPosition:function(e,t){this.__clientLeft=e||0,this.__clientTop=t||0},setSnapSize:function(e,t){this.__snapWidth=e,this.__snapHeight=t},activatePullToRefresh:function(t,n){this.__refreshHeight=t,this.__refreshActivate=function(){e.requestAnimationFrame(n.activate)},this.__refreshDeactivate=function(){e.requestAnimationFrame(n.deactivate)},this.__refreshStart=function(){e.requestAnimationFrame(n.start)},this.__refreshShow=function(){e.requestAnimationFrame(n.show)},this.__refreshHide=function(){e.requestAnimationFrame(n.hide)},this.__refreshTail=function(){e.requestAnimationFrame(n.tail)},this.__refreshTailTime=100,this.__minSpinTime=600},triggerPullToRefresh:function(){this.__publish(this.__scrollLeft,-this.__refreshHeight,this.__zoomLevel,!0);var e=new Date;this.refreshStartTime=e.getTime(),this.__refreshStart&&this.__refreshStart()},finishPullToRefresh:function(){var e=this,t=new Date,n=0;e.refreshStartTime+e.__minSpinTime>t.getTime()&&(n=e.refreshStartTime+e.__minSpinTime-t.getTime()),setTimeout((function(){e.__refreshTail&&e.__refreshTail(),setTimeout((function(){e.__refreshActive=!1,e.__refreshDeactivate&&e.__refreshDeactivate(),e.__refreshHide&&e.__refreshHide(),e.scrollTo(e.__scrollLeft,e.__scrollTop,!0)}),e.__refreshTailTime)}),n)},getValues:function(){return{left:this.__scrollLeft,top:this.__scrollTop,zoom:this.__zoomLevel}},getScrollMax:function(){return{left:this.__maxScrollLeft,top:this.__maxScrollTop}},zoomTo:function(e,t,n,i){if(!this.options.zooming)throw new Error("Zooming is not enabled!");this.__isDecelerating&&(ee.effect.Animate.stop(this.__isDecelerating),this.__isDecelerating=!1);var r=this.__zoomLevel;null==n&&(n=this.__clientWidth/2),null==i&&(i=this.__clientHeight/2),e=Math.max(Math.min(e,this.options.maxZoom),this.options.minZoom),this.__computeScrollMax(e);var o=(n+this.__scrollLeft)*e/r-n,a=(i+this.__scrollTop)*e/r-i;o>this.__maxScrollLeft?o=this.__maxScrollLeft:o<0&&(o=0),a>this.__maxScrollTop?a=this.__maxScrollTop:a<0&&(a=0),this.__publish(o,a,e,t)},zoomBy:function(e,t,n,i){this.zoomTo(this.__zoomLevel*e,t,n,i)},scrollTo:function(e,t,n,i,r){if(this.__isDecelerating&&(ee.effect.Animate.stop(this.__isDecelerating),this.__isDecelerating=!1),null!=i&&i!==this.__zoomLevel){if(!this.options.zooming)throw new Error("Zooming is not enabled!");e*=i,t*=i,this.__computeScrollMax(i)}else i=this.__zoomLevel;this.options.scrollingX?this.options.paging?e=Math.round(e/this.__clientWidth)*this.__clientWidth:this.options.snapping&&(e=Math.round(e/this.__snapWidth)*this.__snapWidth):e=this.__scrollLeft,this.options.scrollingY?this.options.paging?t=Math.round(t/this.__clientHeight)*this.__clientHeight:this.options.snapping&&(t=Math.round(t/this.__snapHeight)*this.__snapHeight):t=this.__scrollTop,e=Math.max(Math.min(this.__maxScrollLeft,e),0),t=Math.max(Math.min(this.__maxScrollTop,t),0),e===this.__scrollLeft&&t===this.__scrollTop&&(n=!1),this.__publish(e,t,i,n,r)},scrollBy:function(e,t,n){var i=this.__isAnimating?this.__scheduledLeft:this.__scrollLeft,r=this.__isAnimating?this.__scheduledTop:this.__scrollTop;this.scrollTo(i+(e||0),r+(t||0),n)},doMouseZoom:function(e,t,n,i){var r=e>0?.97:1.03;return this.zoomTo(this.__zoomLevel*r,!1,n-this.__clientLeft,i-this.__clientTop)},doTouchStart:function(e,t){var n,i;this.__decStopped=!(!this.__isDecelerating&&!this.__isAnimating),this.hintResize(),t instanceof Date&&(t=t.valueOf()),"number"!=typeof t&&(t=Date.now()),this.__interruptedAnimation=!0,this.__isDecelerating&&(ee.effect.Animate.stop(this.__isDecelerating),this.__isDecelerating=!1,this.__interruptedAnimation=!0),this.__isAnimating&&(ee.effect.Animate.stop(this.__isAnimating),this.__isAnimating=!1,this.__interruptedAnimation=!0);var r=1===e.length;r?(n=e[0].pageX,i=e[0].pageY):(n=Math.abs(e[0].pageX+e[1].pageX)/2,i=Math.abs(e[0].pageY+e[1].pageY)/2),this.__initialTouchLeft=n,this.__initialTouchTop=i,this.__initialTouches=e,this.__zoomLevelStart=this.__zoomLevel,this.__lastTouchLeft=n,this.__lastTouchTop=i,this.__lastTouchMove=t,this.__lastScale=1,this.__enableScrollX=!r&&this.options.scrollingX,this.__enableScrollY=!r&&this.options.scrollingY,this.__isTracking=!0,this.__didDecelerationComplete=!1,this.__isDragging=!r,this.__isSingleTouch=r,this.__positions=[]},doTouchMove:function(e,t,n){if(t instanceof Date&&(t=t.valueOf()),"number"!=typeof t&&(t=Date.now()),this.__isTracking){var i,r;2===e.length?(i=Math.abs(e[0].pageX+e[1].pageX)/2,r=Math.abs(e[0].pageY+e[1].pageY)/2,!n&&this.options.zooming&&(n=this.__getScale(this.__initialTouches,e))):(i=e[0].pageX,r=e[0].pageY);var o=this.__positions;if(this.__isDragging){this.__decStopped=!1;var a=i-this.__lastTouchLeft,s=r-this.__lastTouchTop,l=this.__scrollLeft,u=this.__scrollTop,c=this.__zoomLevel;if(null!=n&&this.options.zooming){var d=c;if(c=c/this.__lastScale*n,d!==(c=Math.max(Math.min(c,this.options.maxZoom),this.options.minZoom))){var h=i-this.__clientLeft,f=r-this.__clientTop;l=(h+l)*c/d-h,u=(f+u)*c/d-f,this.__computeScrollMax(c)}}if(this.__enableScrollX){l-=a*this.options.speedMultiplier;var p=this.__maxScrollLeft;(l>p||l<0)&&(this.options.bouncing?l+=a/2*this.options.speedMultiplier:l=l>p?p:0)}if(this.__enableScrollY){u-=s*this.options.speedMultiplier;var m=this.__maxScrollTop;u>m||u<0?this.options.bouncing||this.__refreshHeight&&u<0?(u+=s/2*this.options.speedMultiplier,this.__enableScrollX||null==this.__refreshHeight||(u<0?(this.__refreshHidden=!1,this.__refreshShow()):(this.__refreshHide(),this.__refreshHidden=!0),!this.__refreshActive&&u<=-this.__refreshHeight?(this.__refreshActive=!0,this.__refreshActivate&&this.__refreshActivate()):this.__refreshActive&&u>-this.__refreshHeight&&(this.__refreshActive=!1,this.__refreshDeactivate&&this.__refreshDeactivate()))):u=u>m?m:0:this.__refreshHeight&&!this.__refreshHidden&&(this.__refreshHide(),this.__refreshHidden=!0)}o.length>60&&o.splice(0,30),o.push(l,u,t),this.__publish(l,u,c)}else{var g=this.options.locking?3:0,v=Math.abs(i-this.__initialTouchLeft),_=Math.abs(r-this.__initialTouchTop);this.__enableScrollX=this.options.scrollingX&&v>=g,this.__enableScrollY=this.options.scrollingY&&_>=g,o.push(this.__scrollLeft,this.__scrollTop,t),this.__isDragging=(this.__enableScrollX||this.__enableScrollY)&&(v>=5||_>=5),this.__isDragging&&(this.__interruptedAnimation=!1,this.__fadeScrollbars("in"))}this.__lastTouchLeft=i,this.__lastTouchTop=r,this.__lastTouchMove=t,this.__lastScale=n}},doTouchEnd:function(t,n){if(n instanceof Date&&(n=n.valueOf()),"number"!=typeof n&&(n=Date.now()),this.__isTracking){if(this.__isTracking=!1,this.__isDragging)if(this.__isDragging=!1,this.__isSingleTouch&&this.options.animating&&n-this.__lastTouchMove<=100){for(var i=this.__positions,r=i.length-1,o=r,a=r;a>0&&i[a]>this.__lastTouchMove-100;a-=3)o=a;if(o!==r){var s=i[r]-i[o],l=this.__scrollLeft-i[o-2],u=this.__scrollTop-i[o-1];this.__decelerationVelocityX=l/s*(1e3/60),this.__decelerationVelocityY=u/s*(1e3/60);var c=this.options.paging||this.options.snapping?this.options.decelVelocityThresholdPaging:this.options.decelVelocityThreshold;(Math.abs(this.__decelerationVelocityX)>c||Math.abs(this.__decelerationVelocityY)>c)&&(this.__refreshActive||this.__startDeceleration(n))}else this.__scrollingComplete()}else n-this.__lastTouchMove>100&&this.__scrollingComplete();else this.__decStopped&&(t.isTapHandled=!0,this.__decStopped=!1);if(!this.__isDecelerating)if(this.__refreshActive&&this.__refreshStart){this.__publish(this.__scrollLeft,-this.__refreshHeight,this.__zoomLevel,!0);var d=new Date;this.refreshStartTime=d.getTime(),this.__refreshStart&&this.__refreshStart(),e.Platform.isAndroid()||this.__startDeceleration()}else(this.__interruptedAnimation||this.__isDragging)&&this.__scrollingComplete(),this.scrollTo(this.__scrollLeft,this.__scrollTop,!0,this.__zoomLevel),this.__refreshActive&&(this.__refreshActive=!1,this.__refreshDeactivate&&this.__refreshDeactivate());this.__positions.length=0}},__publish:function(e,t,r,o,a){var s=this,l=s.__isAnimating;if(l&&(ee.effect.Animate.stop(l),s.__isAnimating=!1),o&&s.options.animating){s.__scheduledLeft=e,s.__scheduledTop=t,s.__scheduledZoom=r;var u=s.__scrollLeft,c=s.__scrollTop,d=s.__zoomLevel,h=e-u,f=t-c,p=r-d;s.__isAnimating=ee.effect.Animate.start((function(e,t,n){n&&(s.__scrollLeft=u+h*e,s.__scrollTop=c+f*e,s.__zoomLevel=d+p*e,s.__callback&&s.__callback(s.__scrollLeft,s.__scrollTop,s.__zoomLevel,a))}),(function(e){return s.__isAnimating===e}),(function(e,t,n){t===s.__isAnimating&&(s.__isAnimating=!1),(s.__didDecelerationComplete||n)&&s.__scrollingComplete(),s.options.zooming&&s.__computeScrollMax()}),s.options.animationDuration,l?n:i)}else s.__scheduledLeft=s.__scrollLeft=e,s.__scheduledTop=s.__scrollTop=t,s.__scheduledZoom=s.__zoomLevel=r,s.__callback&&s.__callback(e,t,r,a),s.options.zooming&&s.__computeScrollMax()},__computeScrollMax:function(e){null==e&&(e=this.__zoomLevel),this.__maxScrollLeft=Math.max(this.__contentWidth*e-this.__clientWidth,0),this.__maxScrollTop=Math.max(this.__contentHeight*e-this.__clientHeight,0),this.__didWaitForSize||this.__maxScrollLeft||this.__maxScrollTop||(this.__didWaitForSize=!0,this.__waitForSize())},__waitForSize:function(){var e=this;clearTimeout(e.__sizerTimeout);var t=function(){e.resize(!0)};t(),e.__sizerTimeout=setTimeout(t,500)},__startDeceleration:function(){var e=this;if(e.options.paging){var t=Math.max(Math.min(e.__scrollLeft,e.__maxScrollLeft),0),n=Math.max(Math.min(e.__scrollTop,e.__maxScrollTop),0),i=e.__clientWidth,r=e.__clientHeight;e.__minDecelerationScrollLeft=Math.floor(t/i)*i,e.__minDecelerationScrollTop=Math.floor(n/r)*r,e.__maxDecelerationScrollLeft=Math.ceil(t/i)*i,e.__maxDecelerationScrollTop=Math.ceil(n/r)*r}else e.__minDecelerationScrollLeft=0,e.__minDecelerationScrollTop=0,e.__maxDecelerationScrollLeft=e.__maxScrollLeft,e.__maxDecelerationScrollTop=e.__maxScrollTop,e.__refreshActive&&(e.__minDecelerationScrollTop=-1*e.__refreshHeight);e.__minVelocityToKeepDecelerating=e.options.snapping?4:.1,e.__isDecelerating=ee.effect.Animate.start((function(t,n,i){e.__stepThroughDeceleration(i)}),(function(){var t=Math.abs(e.__decelerationVelocityX)>=e.__minVelocityToKeepDecelerating||Math.abs(e.__decelerationVelocityY)>=e.__minVelocityToKeepDecelerating;return t||(e.__didDecelerationComplete=!0,e.options.bouncing&&!e.__refreshActive&&e.scrollTo(Math.min(Math.max(e.__scrollLeft,0),e.__maxScrollLeft),Math.min(Math.max(e.__scrollTop,0),e.__maxScrollTop),e.__refreshActive)),t}),(function(){e.__isDecelerating=!1,e.__didDecelerationComplete&&e.__scrollingComplete(),e.options.paging&&e.scrollTo(e.__scrollLeft,e.__scrollTop,e.options.snapping)}))},__stepThroughDeceleration:function(e){var t=this.__scrollLeft+this.__decelerationVelocityX,n=this.__scrollTop+this.__decelerationVelocityY;if(!this.options.bouncing){var i=Math.max(Math.min(this.__maxDecelerationScrollLeft,t),this.__minDecelerationScrollLeft);i!==t&&(t=i,this.__decelerationVelocityX=0);var r=Math.max(Math.min(this.__maxDecelerationScrollTop,n),this.__minDecelerationScrollTop);r!==n&&(n=r,this.__decelerationVelocityY=0)}if(e?this.__publish(t,n,this.__zoomLevel):(this.__scrollLeft=t,this.__scrollTop=n),!this.options.paging){var o=this.options.deceleration;this.__decelerationVelocityX*=o,this.__decelerationVelocityY*=o}if(this.options.bouncing){var a=0,s=0,l=this.options.penetrationDeceleration,u=this.options.penetrationAcceleration;if(t<this.__minDecelerationScrollLeft?a=this.__minDecelerationScrollLeft-t:t>this.__maxDecelerationScrollLeft&&(a=this.__maxDecelerationScrollLeft-t),n<this.__minDecelerationScrollTop?s=this.__minDecelerationScrollTop-n:n>this.__maxDecelerationScrollTop&&(s=this.__maxDecelerationScrollTop-n),0!==a){var c=a*this.__decelerationVelocityX<=this.__minDecelerationScrollLeft;c&&(this.__decelerationVelocityX+=a*l);var d=Math.abs(this.__decelerationVelocityX)<=this.__minVelocityToKeepDecelerating;c&&!d||(this.__decelerationVelocityX=a*u)}if(0!==s){var h=s*this.__decelerationVelocityY<=this.__minDecelerationScrollTop;h&&(this.__decelerationVelocityY+=s*l);var f=Math.abs(this.__decelerationVelocityY)<=this.__minVelocityToKeepDecelerating;h&&!f||(this.__decelerationVelocityY=s*u)}}},__getDistance:function(e,t){var n=t.pageX-e.pageX,i=t.pageY-e.pageY;return Math.sqrt(n*n+i*i)},__getScale:function(e,t){return e.length>=2&&t.length>=2?this.__getDistance(t[0],t[1])/this.__getDistance(e[0],e[1]):1}}),e.scroll={isScrolling:!1,lastTop:0}}(ionic),function(e){var t=function(){};e.views.ScrollNative=e.views.View.inherit({initialize:function(t){var n=this;for(var i in n.__container=n.el=t.el,n.__content=t.el.firstElementChild,n.__frozen=!1,n.isNative=!0,n.__scrollTop=n.el.scrollTop,n.__scrollLeft=n.el.scrollLeft,n.__clientHeight=n.__content.clientHeight,n.__clientWidth=n.__content.clientWidth,n.__maxScrollTop=Math.max(n.__contentHeight-n.__clientHeight,0),n.__maxScrollLeft=Math.max(n.__contentWidth-n.__clientWidth,0),(t.startY>=0||t.startX>=0)&&e.requestAnimationFrame((function(){n.__originalContainerHeight=n.el.getBoundingClientRect().height,n.el.scrollTop=t.startY||0,n.el.scrollLeft=t.startX||0,n.__scrollTop=n.el.scrollTop,n.__scrollLeft=n.el.scrollLeft})),n.options={freeze:!1,getContentWidth:function(){return Math.max(n.__content.scrollWidth,n.__content.offsetWidth)},getContentHeight:function(){return Math.max(n.__content.scrollHeight,n.__content.offsetHeight+2*n.__content.offsetTop)}},t)n.options[i]=t[i];n.onScroll=function(){e.scroll.isScrolling||(e.scroll.isScrolling=!0),clearTimeout(n.scrollTimer),n.scrollTimer=setTimeout((function(){e.scroll.isScrolling=!1}),80)},n.freeze=function(e){n.__frozen=e},n.freezeShut=function(e){n.__frozenShut=e},n.__initEventHandlers()},__callback:function(){},zoomTo:function(){},zoomBy:function(){},activatePullToRefresh:function(){},resize:function(e){this.__container&&this.options&&this.setDimensions(this.__container.clientWidth,this.__container.clientHeight,this.options.getContentWidth(),this.options.getContentHeight(),e)},run:function(){this.resize()},getValues:function(){return this.update(),{left:this.__scrollLeft,top:this.__scrollTop,zoom:1}},update:function(){this.__scrollLeft=this.el.scrollLeft,this.__scrollTop=this.el.scrollTop},setDimensions:function(e,t,n,i){(e||t||n||i)&&(e===+e&&(this.__clientWidth=e),t===+t&&(this.__clientHeight=t),n===+n&&(this.__contentWidth=n),i===+i&&(this.__contentHeight=i),this.__computeScrollMax())},getScrollMax:function(){return{left:this.__maxScrollLeft,top:this.__maxScrollTop}},scrollBy:function(e,t,n){this.update();var i=this.__isAnimating?this.__scheduledLeft:this.__scrollLeft,r=this.__isAnimating?this.__scheduledTop:this.__scrollTop;this.scrollTo(i+(e||0),r+(t||0),n)},scrollTo:function(t,n,i){var r=this;if(!i)return r.el.scrollTop=n,r.el.scrollLeft=t,void r.resize();var o=r.el.style.overflowX,a=r.el.style.overflowY;clearTimeout(r.__scrollToCleanupTimeout),r.__scrollToCleanupTimeout=setTimeout((function(){r.el.style.overflowX=o,r.el.style.overflowY=a}),500),r.el.style.overflowY="hidden",r.el.style.overflowX="hidden",function(t,n){var i=Date.now(),s=r.el.scrollTop,l=r.el.scrollLeft;if(s===t&&l===n)return r.el.style.overflowX=o,r.el.style.overflowY=a,void r.resize();e.requestAnimationFrame((function u(){var c=Date.now(),d=Math.min(1,(c-i)/250),h=function(e){return--e*e*e+1}(d);s!=t&&(r.el.scrollTop=parseInt(h*(t-s)+s,10)),l!=n&&(r.el.scrollLeft=parseInt(h*(n-l)+l,10)),d<1?e.requestAnimationFrame(u):(e.tap.removeClonedInputs(r.__container,r),r.el.style.overflowX=o,r.el.style.overflowY=a,r.resize())}))}(n,t)},__waitForSize:function(){var e=this;clearTimeout(e.__sizerTimeout);var t=function(){e.resize(!0)};t(),e.__sizerTimeout=setTimeout(t,500)},__computeScrollMax:function(){this.__maxScrollLeft=Math.max(this.__contentWidth-this.__clientWidth,0),this.__maxScrollTop=Math.max(this.__contentHeight-this.__clientHeight,0),this.__didWaitForSize||this.__maxScrollLeft||this.__maxScrollTop||(this.__didWaitForSize=!0,this.__waitForSize())},__initEventHandlers:function(){var t,n,i=this,r=i.__container;i.scrollChildIntoView=function(o){var a=r.getBoundingClientRect();i.__originalContainerHeight||(i.__originalContainerHeight=a.height),t=i.__originalContainerHeight;var s=i.isShrunkForKeyboard,l=r.parentNode.classList.contains("modal"),u=r.parentNode.classList.contains("popover"),c=l&&window.innerWidth>=680,d=n&&n!==o.detail.keyboardHeight;s&&!d||(!u&&(e.Platform.isIOS()||e.Platform.isFullScreen||c)&&e.requestAnimationFrame((function(){t=Math.max(0,Math.min(i.__originalContainerHeight,i.__originalContainerHeight-(o.detail.keyboardHeight-43))),r.style.height=t+"px",r.classList.add("keyboard-up"),i.resize()})),i.isShrunkForKeyboard=!0),n=o.detail.keyboardHeight,o.detail.isElementUnderKeyboard&&e.requestAnimationFrame((function(){var t=e.DomUtil.getOffsetTop(o.detail.target);setTimeout((function(){e.Platform.isIOS()&&e.tap.cloneFocusedInput(r,i),i.scrollTo(0,t-(a.top+100),!0),i.onScroll()}),32)})),o.stopPropagation()},i.resetScrollView=function(){i.isShrunkForKeyboard&&(i.isShrunkForKeyboard=!1,r.style.height="",i.__originalContainerHeight=r.getBoundingClientRect().height,e.Platform.isIOS()&&e.requestAnimationFrame((function(){r.classList.remove("keyboard-up")}))),i.resize()},i.handleTouchMove=function(e){return i.__frozenShut?(e.preventDefault(),e.stopPropagation(),!1):!i.__frozen||(e.preventDefault(),!1)},r.addEventListener("scroll",i.onScroll),r.addEventListener("scrollChildIntoView",i.scrollChildIntoView),r.addEventListener(e.EVENTS.touchstart,i.handleTouchMove),r.addEventListener(e.EVENTS.touchmove,i.handleTouchMove),document.addEventListener("resetScrollView",i.resetScrollView)},__cleanup:function(){var n=this.__container;n.removeEventListener("scroll",this.onScroll),n.removeEventListener("scrollChildIntoView",this.scrollChildIntoView),n.removeEventListener(e.EVENTS.touchstart,this.handleTouchMove),n.removeEventListener(e.EVENTS.touchmove,this.handleTouchMove),document.removeEventListener("resetScrollView",this.resetScrollView),e.tap.removeClonedInputs(n,this),delete this.__container,delete this.__content,delete this.__indicatorX,delete this.__indicatorY,delete this.options.el,this.resize=this.scrollTo=this.onScroll=this.resetScrollView=t,this.scrollChildIntoView=t,n=null}})}(ionic),function(e){"use strict";var t=function(){};t.prototype={start:function(){},drag:function(){},end:function(){},isSameItem:function(){return!1}};var n=function(e){this.dragThresholdX=e.dragThresholdX||10,this.el=e.el,this.item=e.item,this.canSwipe=e.canSwipe};(n.prototype=new t).start=function(t){var n,i,r,o;this.canSwipe()&&(n=t.target.classList.contains("item-content")?t.target:t.target.classList.contains("item")?t.target.querySelector(".item-content"):e.DomUtil.getParentWithClass(t.target,"item-content"))&&(n.classList.remove("item-sliding"),r=parseFloat(n.style[e.CSS.TRANSFORM].replace("translate3d(","").split(",")[0])||0,(i=n.parentNode.querySelector(".item-options"))&&(i.classList.remove("invisible"),o=i.offsetWidth,this._currentDrag={buttons:i,buttonsWidth:o,content:n,startOffsetX:r}))},n.prototype.isSameItem=function(e){return!(!e._lastDrag||!this._currentDrag)&&this._currentDrag.content==e._lastDrag.content},n.prototype.clean=function(t){var n=this._lastDrag;function i(){n.buttons&&n.buttons.classList.add("invisible")}n&&n.content&&(n.content.style[e.CSS.TRANSITION]="",n.content.style[e.CSS.TRANSFORM]="",t?(n.content.style[e.CSS.TRANSITION]="none",i(),e.requestAnimationFrame((function(){n.content.style[e.CSS.TRANSITION]=""}))):e.requestAnimationFrame((function(){setTimeout(i,250)})))},n.prototype.drag=e.animationFrameThrottle((function(t){var n;if(this._currentDrag&&(!this._isDragging&&(Math.abs(t.gesture.deltaX)>this.dragThresholdX||Math.abs(this._currentDrag.startOffsetX)>0)&&(this._isDragging=!0),this._isDragging)){n=this._currentDrag.buttonsWidth;var i=Math.min(0,this._currentDrag.startOffsetX+t.gesture.deltaX);i<-n&&(i=Math.min(-n,-n+.4*(t.gesture.deltaX+n))),this._currentDrag.content.$$ionicOptionsOpen=0!==i,this._currentDrag.content.style[e.CSS.TRANSFORM]="translate3d("+i+"px, 0, 0)",this._currentDrag.content.style[e.CSS.TRANSITION]="none"}})),n.prototype.end=function(t,n){var i=this;if(i._currentDrag){var r=-i._currentDrag.buttonsWidth;t.gesture.deltaX>-i._currentDrag.buttonsWidth/2&&("left"==t.gesture.direction&&Math.abs(t.gesture.velocityX)<.3?r=0:"right"==t.gesture.direction&&(r=0)),e.requestAnimationFrame((function(){if(0===r){i._currentDrag.content.style[e.CSS.TRANSFORM]="";var t=i._currentDrag.buttons;setTimeout((function(){t&&t.classList.add("invisible")}),250)}else i._currentDrag.content.style[e.CSS.TRANSFORM]="translate3d("+r+"px,0,0)";i._currentDrag.content.style[e.CSS.TRANSITION]="",i._lastDrag||(i._lastDrag={}),e.extend(i._lastDrag,i._currentDrag),i._currentDrag&&(i._currentDrag.buttons=null,i._currentDrag.content=null),i._currentDrag=null,n&&n()}))}else n&&n()};var i=function(e){if(this.dragThresholdY=e.dragThresholdY||0,this.onReorder=e.onReorder,this.listEl=e.listEl,this.el=this.item=e.el,this.scrollEl=e.scrollEl,this.scrollView=e.scrollView,this.listElTrueTop=0,this.listEl.offsetParent){var t=this.listEl;do{this.listElTrueTop+=t.offsetTop,t=t.offsetParent}while(t)}};(i.prototype=new t)._moveElement=function(t){var n=t.gesture.center.pageY+this.scrollView.getValues().top-this._currentDrag.elementHeight/2-this.listElTrueTop;this.el.style[e.CSS.TRANSFORM]="translate3d(0, "+n+"px, 0)"},i.prototype.deregister=function(){this.listEl=this.el=this.scrollEl=this.scrollView=null},i.prototype.start=function(t){var n=e.DomUtil.getChildIndex(this.el,this.el.nodeName.toLowerCase()),i=this.el.scrollHeight,r=this.el.cloneNode(!0);r.classList.add("item-placeholder"),this.el.parentNode.insertBefore(r,this.el),this.el.classList.add("item-reordering"),this._currentDrag={elementHeight:i,startIndex:n,placeholder:r,scrollHeight:scroll,list:r.parentNode},this._moveElement(t)},i.prototype.drag=e.animationFrameThrottle((function(t){var n=this;if(this._currentDrag){var i=0,r=t.gesture.center.pageY,o=this.listElTrueTop;if(this.scrollView){var a=this.scrollView.__container;i=this.scrollView.getValues().top;var s=a.offsetTop,l=s-r+this._currentDrag.elementHeight/2,u=r+this._currentDrag.elementHeight/2-s-a.offsetHeight;t.gesture.deltaY<0&&l>0&&i>0&&(this.scrollView.scrollBy(null,-l),e.requestAnimationFrame((function(){n.drag(t)}))),t.gesture.deltaY>0&&u>0&&i<this.scrollView.getScrollMax().top&&(this.scrollView.scrollBy(null,u),e.requestAnimationFrame((function(){n.drag(t)})))}!this._isDragging&&Math.abs(t.gesture.deltaY)>this.dragThresholdY&&(this._isDragging=!0),this._isDragging&&(this._moveElement(t),this._currentDrag.currentY=i+r-o)}})),i.prototype._getReorderIndex=function(){for(var e,t=this,n=Array.prototype.slice.call(t._currentDrag.placeholder.parentNode.children).filter((function(e){return e.nodeName===t.el.nodeName&&e!==t.el})),i=t._currentDrag.currentY,r=0,o=n.length;r<o;r++)if(e=n[r],r===o-1){if(i>e.offsetTop)return r}else if(0===r){if(i<e.offsetTop+e.offsetHeight)return r}else if(i>e.offsetTop-e.offsetHeight/2&&i<e.offsetTop+e.offsetHeight)return r;return t._currentDrag.startIndex},i.prototype.end=function(t,n){if(this._currentDrag){var i=this._currentDrag.placeholder,r=this._getReorderIndex();this.el.classList.remove("item-reordering"),this.el.style[e.CSS.TRANSFORM]="",i.parentNode.insertBefore(this.el,i),i.parentNode.removeChild(i),this.onReorder&&this.onReorder(this.el,this._currentDrag.startIndex,r),this._currentDrag={placeholder:null,content:null},this._currentDrag=null,n&&n()}else n&&n()},e.views.ListView=e.views.View.inherit({initialize:function(t){var n=this;t=e.extend({onReorder:function(){},virtualRemoveThreshold:-200,virtualAddThreshold:200,canSwipe:function(){return!0}},t),e.extend(n,t),!n.itemHeight&&n.listEl&&(n.itemHeight=n.listEl.children[0]&&parseInt(n.listEl.children[0].style.height,10)),n.onRefresh=t.onRefresh||function(){},n.onRefreshOpening=t.onRefreshOpening||function(){},n.onRefreshHolding=t.onRefreshHolding||function(){};var i={};e.DomUtil.getParentOrSelfWithClass(n.el,"overflow-scroll")&&(i.prevent_default_directions=["left","right"]),window.ionic.onGesture("release",(function(e){n._handleEndDrag(e)}),n.el,i),window.ionic.onGesture("drag",(function(e){n._handleDrag(e)}),n.el,i),n._initDrag()},deregister:function(){this.el=this.listEl=this.scrollEl=this.scrollView=null,this.isScrollFreeze&&self.scrollView.freeze(!1)},stopRefreshing:function(){this.el.querySelector(".list-refresher").style.height="0"},didScroll:function(e){if(this.isVirtual){var t=this.itemHeight,n=e.target.scrollHeight,i=this.el.parentNode.offsetHeight,r=Math.max(0,e.scrollTop+this.virtualRemoveThreshold),o=Math.min(n,Math.abs(e.scrollTop)+i+this.virtualAddThreshold),a=parseInt(Math.abs(r/t),10),s=parseInt(Math.abs(o/t),10);this._virtualItemsToRemove=Array.prototype.slice.call(this.listEl.children,0,a),this.renderViewport&&this.renderViewport(r,o,a,s)}},didStopScrolling:function(){if(this.isVirtual)for(var e=0;e<this._virtualItemsToRemove.length;e++)this.didHideItem&&this.didHideItem(e)},clearDragEffects:function(e){this._lastDragOp&&(this._lastDragOp.clean&&this._lastDragOp.clean(e),this._lastDragOp.deregister&&this._lastDragOp.deregister(),this._lastDragOp=null)},_initDrag:function(){this._lastDragOp&&this._lastDragOp.deregister&&this._lastDragOp.deregister(),this._lastDragOp=this._dragOp,this._dragOp=null},_getItem:function(e){for(;e;){if(e.classList&&e.classList.contains("item"))return e;e=e.parentNode}return null},_startDrag:function(t){var r=this;r._isDragging=!1;var o,a=r._lastDragOp;r._didDragUpOrDown&&a instanceof n&&a.clean&&a.clean(),!e.DomUtil.getParentOrSelfWithClass(t.target,"item-reorder")||"up"!=t.gesture.direction&&"down"!=t.gesture.direction?!r._didDragUpOrDown&&("left"==t.gesture.direction||"right"==t.gesture.direction)&&Math.abs(t.gesture.deltaX)>5&&(o=r._getItem(t.target))&&o.querySelector(".item-options")&&(r._dragOp=new n({el:r.el,item:o,canSwipe:r.canSwipe}),r._dragOp.start(t),t.preventDefault(),r.isScrollFreeze=r.scrollView.freeze(!0)):(o=r._getItem(t.target))&&(r._dragOp=new i({listEl:r.el,el:o,scrollEl:r.scrollEl,scrollView:r.scrollView,onReorder:function(e,t,n){r.onReorder&&r.onReorder(e,t,n)}}),r._dragOp.start(t),t.preventDefault()),a&&r._dragOp&&!r._dragOp.isSameItem(a)&&t.defaultPrevented&&a.clean&&a.clean()},_handleEndDrag:function(e){var t=this;t.scrollView&&(t.isScrollFreeze=t.scrollView.freeze(!1)),t._didDragUpOrDown=!1,t._dragOp&&t._dragOp.end(e,(function(){t._initDrag()}))},_handleDrag:function(e){Math.abs(e.gesture.deltaY)>5&&(this._didDragUpOrDown=!0),this.isDragging||this._dragOp||this._startDrag(e),this._dragOp&&(e.gesture.srcEvent.preventDefault(),this._dragOp.drag(e))}})}(ionic),function(e){"use strict";e.views.Modal=e.views.View.inherit({initialize:function(t){t=e.extend({focusFirstInput:!1,unfocusOnHide:!0,focusFirstDelay:600,backdropClickToClose:!0,hardwareBackButtonClose:!0},t),e.extend(this,t),this.el=t.el},show:function(){var e=this;e.focusFirstInput&&window.setTimeout((function(){var t=e.el.querySelector("input, textarea");t&&t.focus&&t.focus()}),e.focusFirstDelay)},hide:function(){if(this.unfocusOnHide){var e=this.el.querySelectorAll("input, textarea");window.setTimeout((function(){for(var t=0;t<e.length;t++)e[t].blur&&e[t].blur()}))}}})}(ionic),function(e){"use strict";e.views.SideMenu=e.views.View.inherit({initialize:function(e){this.el=e.el,this.isEnabled=void 0===e.isEnabled||e.isEnabled,this.setWidth(e.width)},getFullWidth:function(){return this.width},setWidth:function(e){this.width=e,this.el.style.width=e+"px"},setIsEnabled:function(e){this.isEnabled=e},bringUp:function(){"0"!==this.el.style.zIndex&&(this.el.style.zIndex="0")},pushDown:function(){"-1"!==this.el.style.zIndex&&(this.el.style.zIndex="-1")}}),e.views.SideMenuContent=e.views.View.inherit({initialize:function(t){e.extend(this,{animationClass:"menu-animated",onDrag:function(){},onEndDrag:function(){}},t),e.onGesture("drag",e.proxy(this._onDrag,this),this.el),e.onGesture("release",e.proxy(this._onEndDrag,this),this.el)},_onDrag:function(e){this.onDrag&&this.onDrag(e)},_onEndDrag:function(e){this.onEndDrag&&this.onEndDrag(e)},disableAnimation:function(){this.el.classList.remove(this.animationClass)},enableAnimation:function(){this.el.classList.add(this.animationClass)},getTranslateX:function(){return parseFloat(this.el.style[e.CSS.TRANSFORM].replace("translate3d(","").split(",")[0])},setTranslateX:e.animationFrameThrottle((function(t){this.el.style[e.CSS.TRANSFORM]="translate3d("+t+"px, 0, 0)"}))})}(ionic),function(e){"use strict";e.views.Slider=e.views.View.inherit({initialize:function(e){var t,n,i,r=this;window.navigator.pointerEnabled?(t="pointerdown",n="pointermove",i="pointerup"):window.navigator.msPointerEnabled?(t="MSPointerDown",n="MSPointerMove",i="MSPointerUp"):(t="touchstart",n="touchmove",i="touchend");var o=function(){},a=function(e){setTimeout(e||o,0)},s={addEventListener:!!window.addEventListener,transitions:function(e){var t=["transitionProperty","WebkitTransition","MozTransition","OTransition","msTransition"];for(var n in t)if(void 0!==e.style[t[n]])return!0;return!1}(document.createElement("swipe"))},l=e.el;if(l){var u,c,d,h,f=l.children[0];e=e||{};var p=parseInt(e.startSlide,10)||0,m=e.speed||300;e.continuous=void 0===e.continuous||e.continuous;var g,v,_=e.auto||0,y={},b={},w={handleEvent:function(r){switch(!r.touches&&r.pageX&&r.pageY&&(r.touches=[{pageX:r.pageX,pageY:r.pageY}]),r.type){case t:case"mousedown":this.start(r);break;case n:case"mousemove":this.touchmove(r);break;case i:case"mouseup":a(this.end(r));break;case"webkitTransitionEnd":case"msTransitionEnd":case"oTransitionEnd":case"otransitionend":case"transitionend":a(this.transitionEnd(r));break;case"resize":a(L)}e.stopPropagation&&r.stopPropagation()},start:function(e){if(e.touches){var t=e.touches[0];y={x:t.pageX,y:t.pageY,time:+new Date},v=void 0,b={},f.addEventListener(n,this,!1),f.addEventListener("mousemove",this,!1),f.addEventListener(i,this,!1),f.addEventListener("mouseup",this,!1),document.addEventListener(i,this,!1),document.addEventListener("mouseup",this,!1)}},touchmove:function(t){if(!(!t.touches||t.touches.length>1||t.scale&&1!==t.scale||r.slideIsDisabled)){e.disableScroll&&t.preventDefault();var n=t.touches[0];b={x:n.pageX-y.x,y:n.pageY-y.y},void 0===v&&(v=!!(v||Math.abs(b.x)<Math.abs(b.y))),v||(t.preventDefault(),D(),e.continuous?(T(k(p-1),b.x+c[k(p-1)],0),T(p,b.x+c[p],0),T(k(p+1),b.x+c[k(p+1)],0)):(e.bouncing?b.x=b.x/(!p&&b.x>0||p==u.length-1&&b.x<0?Math.abs(b.x)/d+1:1):(d*p-b.x<0&&(b.x=Math.min(b.x,d*p)),Math.abs(b.x)>d*(u.length-p-1)&&(b.x=Math.max(-d*(u.length-p-1),b.x))),T(p-1,b.x+c[p-1],0),T(p,b.x+c[p],0),T(p+1,b.x+c[p+1],0)),e.onDrag&&e.onDrag())}},end:function(){var t=+new Date-y.time,r=Number(t)<250&&Math.abs(b.x)>20||Math.abs(b.x)>d/2,o=!p&&b.x>0||p==u.length-1&&b.x<0;e.continuous&&(o=!1);var a=b.x<0;v||(r&&!o?(a?(e.continuous?(S(k(p-1),-d,0),S(k(p+2),d,0)):S(p-1,-d,0),S(p,c[p]-d,m),S(k(p+1),c[k(p+1)]-d,m),p=k(p+1)):(e.continuous?(S(k(p+1),d,0),S(k(p-2),-d,0)):S(p+1,d,0),S(p,c[p]+d,m),S(k(p-1),c[k(p-1)]+d,m),p=k(p-1)),e.callback&&e.callback(p,u[p])):e.continuous?(S(k(p-1),-d,m),S(p,0,m),S(k(p+1),d,m)):(S(p-1,-d,m),S(p,0,m),S(p+1,d,m))),f.removeEventListener(n,w,!1),f.removeEventListener("mousemove",w,!1),f.removeEventListener(i,w,!1),f.removeEventListener("mouseup",w,!1),document.removeEventListener(i,w,!1),document.removeEventListener("mouseup",w,!1),e.onDragEnd&&e.onDragEnd()},transitionEnd:function(t){parseInt(t.target.getAttribute("data-index"),10)==p&&(_&&$(),e.transitionEnd&&e.transitionEnd.call(t,p,u[p]))}};this.update=function(){setTimeout(L)},this.setup=function(){L()},this.loop=function(t){return arguments.length&&(e.continuous=!!t),e.continuous},this.enableSlide=function(e){return arguments.length&&(this.slideIsDisabled=!e),!this.slideIsDisabled},this.slide=this.select=function(e,t){D(),x(e,t)},this.prev=this.previous=function(){D(),e.continuous?x(p-1,void 0):p&&x(p-1,void 0)},this.next=function(){D(),M()},this.stop=function(){D()},this.start=function(){$()},this.autoPlay=function(e){!_||_<0?D():(_=e,$())},this.currentIndex=this.selected=function(){return p},this.slidesCount=this.count=function(){return h},this.kill=function(){D(),f.style.width="",f.style.left="",u&&(u=[]),s.addEventListener?(f.removeEventListener(t,w,!1),f.removeEventListener("mousedown",w,!1),f.removeEventListener("webkitTransitionEnd",w,!1),f.removeEventListener("msTransitionEnd",w,!1),f.removeEventListener("oTransitionEnd",w,!1),f.removeEventListener("otransitionend",w,!1),f.removeEventListener("transitionend",w,!1),window.removeEventListener("resize",w,!1)):window.onresize=null},this.load=function(){L(),_&&$(),s.addEventListener?(f.addEventListener(t,w,!1),f.addEventListener("mousedown",w,!1),s.transitions&&(f.addEventListener("webkitTransitionEnd",w,!1),f.addEventListener("msTransitionEnd",w,!1),f.addEventListener("oTransitionEnd",w,!1),f.addEventListener("otransitionend",w,!1),f.addEventListener("transitionend",w,!1)),window.addEventListener("resize",w,!1)):window.onresize=function(){L()}}}function L(){if(l.offsetWidth){u=f.children,h=u.length,u.length<2&&(e.continuous=!1),s.transitions&&e.continuous&&u.length<3&&(f.appendChild(u[0].cloneNode(!0)),f.appendChild(f.children[1].cloneNode(!0)),u=f.children),c=new Array(u.length),d=l.offsetWidth||l.getBoundingClientRect().width,f.style.width=u.length*d+"px";for(var t=u.length;t--;){var n=u[t];n.style.width=d+"px",n.setAttribute("data-index",t),s.transitions&&(n.style.left=t*-d+"px",S(t,p>t?-d:p<t?d:0,0))}e.continuous&&s.transitions&&(S(k(p-1),-d,0),S(k(p+1),d,0)),s.transitions||(f.style.left=p*-d+"px"),l.style.visibility="visible",e.slidesChanged&&e.slidesChanged()}}function M(t){e.continuous?x(p+1,t):p<u.length-1&&x(p+1,t)}function k(e){return(u.length+e%u.length)%u.length}function x(t,n){if(p!=t)if(u){if(s.transitions){var i=Math.abs(p-t)/(p-t);if(e.continuous){var r=i;(i=-c[k(t)]/d)!==r&&(t=-i*u.length+t)}for(var o=Math.abs(p-t)-1;o--;)S(k((t>p?t:p)-o-1),d*i,0);t=k(t),S(p,d*i,n||m),S(t,0,n||m),e.continuous&&S(k(t-i),-d*i,0)}else t=k(t),function(t,n,i){if(i)var r=+new Date,o=setInterval((function(){var a=+new Date-r;if(a>i)return f.style.left=n+"px",_&&$(),e.transitionEnd&&e.transitionEnd.call(event,p,u[p]),void clearInterval(o);f.style.left=(n-t)*(Math.floor(a/i*100)/100)+t+"px"}),4);else f.style.left=n+"px"}(p*-d,t*-d,n||m);p=t,a(e.callback&&e.callback(p,u[p]))}else p=t}function S(e,t,n){T(e,t,n),c[e]=t}function T(e,t,n){var i=u[e],r=i&&i.style;r&&(r.webkitTransitionDuration=r.MozTransitionDuration=r.msTransitionDuration=r.OTransitionDuration=r.transitionDuration=n+"ms",r.webkitTransform="translate("+t+"px,0)translateZ(0)",r.msTransform=r.MozTransform=r.OTransform="translateX("+t+"px)")}function $(){g=setTimeout(M,_)}function D(){_=e.auto||0,clearTimeout(g)}}})}(ionic),function(){"use strict";var e,t,n,i=function(t,n,r,a){if(!(this instanceof i))return new i(t,n);var s={direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,autoplay:!1,autoplayDisableOnInteraction:!0,iOSEdgeSwipeDetection:!1,iOSEdgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",coverflow:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0},cube:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94},fade:{crossFade:!1},parallax:!1,scrollbar:null,scrollbarHide:!0,scrollbarDraggable:!1,scrollbarSnapOnRelease:!1,keyboardControl:!1,mousewheelControl:!1,mousewheelReleaseOnEdges:!1,mousewheelInvert:!1,mousewheelForceToAxis:!1,mousewheelSensitivity:1,hashnav:!1,breakpoints:void 0,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,onlyExternal:!1,threshold:0,touchMoveStopPropagation:!0,pagination:null,paginationElement:"span",paginationClickable:!1,paginationHide:!1,paginationBulletRender:null,resistance:!0,resistanceRatio:.85,nextButton:null,prevButton:null,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,lazyLoading:!1,lazyLoadingInPrevNext:!1,lazyLoadingOnTransitionStart:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,control:void 0,controlInverse:!1,controlBy:"slide",allowSwipeToPrev:!0,allowSwipeToNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",buttonDisabledClass:"swiper-button-disabled",paginationHiddenClass:"swiper-pagination-hidden",observer:!1,observeParents:!1,a11y:!1,prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",runCallbacksOnInit:!0},l=n&&n.virtualTranslate;n=n||{};var u={};for(var c in n)if("object"!=typeof n[c]||n[c].nodeType||n[c]===window||n[c]===document||void 0!==o&&n[c]instanceof o||"undefined"!=typeof jQuery&&n[c]instanceof jQuery)u[c]=n[c];else for(var d in u[c]={},n[c])u[c][d]=n[c][d];for(var h in s)if(void 0===n[h])n[h]=s[h];else if("object"==typeof n[h])for(var f in s[h])void 0===n[h][f]&&(n[h][f]=s[h][f]);var p=this;if(p.params=n,p.originalParams=u,p.classNames=[],void 0!==e&&void 0!==o&&(e=o),(void 0!==e||(e=void 0===o?window.Dom7||window.Zepto||window.jQuery:o))&&(p.$=e,p.currentBreakpoint=void 0,p.getActiveBreakpoint=function(){if(!p.params.breakpoints)return!1;var e,t=!1,n=[];for(e in p.params.breakpoints)p.params.breakpoints.hasOwnProperty(e)&&n.push(e);n.sort((function(e,t){return parseInt(e,10)>parseInt(t,10)}));for(var i=0;i<n.length;i++)(e=n[i])>=window.innerWidth&&!t&&(t=e);return t||"max"},p.setBreakpoint=function(){var e=p.getActiveBreakpoint();if(e&&p.currentBreakpoint!==e){var t=e in p.params.breakpoints?p.params.breakpoints[e]:p.originalParams;for(var n in t)p.params[n]=t[n];p.currentBreakpoint=e}},p.params.breakpoints&&p.setBreakpoint(),p.container=e(t),0!==p.container.length)){if(!(p.container.length>1)){p.container[0].swiper=p,p.container.data("swiper",p),p.classNames.push("swiper-container-"+p.params.direction),p.params.freeMode&&p.classNames.push("swiper-container-free-mode"),p.support.flexbox||(p.classNames.push("swiper-container-no-flexbox"),p.params.slidesPerColumn=1),p.params.autoHeight&&p.classNames.push("swiper-container-autoheight"),(p.params.parallax||p.params.watchSlidesVisibility)&&(p.params.watchSlidesProgress=!0),["cube","coverflow"].indexOf(p.params.effect)>=0&&(p.support.transforms3d?(p.params.watchSlidesProgress=!0,p.classNames.push("swiper-container-3d")):p.params.effect="slide"),"slide"!==p.params.effect&&p.classNames.push("swiper-container-"+p.params.effect),"cube"===p.params.effect&&(p.params.resistanceRatio=0,p.params.slidesPerView=1,p.params.slidesPerColumn=1,p.params.slidesPerGroup=1,p.params.centeredSlides=!1,p.params.spaceBetween=0,p.params.virtualTranslate=!0,p.params.setWrapperSize=!1),"fade"===p.params.effect&&(p.params.slidesPerView=1,p.params.slidesPerColumn=1,p.params.slidesPerGroup=1,p.params.watchSlidesProgress=!0,p.params.spaceBetween=0,void 0===l&&(p.params.virtualTranslate=!0)),p.params.grabCursor&&p.support.touch&&(p.params.grabCursor=!1),p.wrapper=p.container.children("."+p.params.wrapperClass),p.params.pagination&&(p.paginationContainer=e(p.params.pagination),p.params.paginationClickable&&p.paginationContainer.addClass("swiper-pagination-clickable")),p.rtl=P()&&("rtl"===p.container[0].dir.toLowerCase()||"rtl"===p.container.css("direction")),p.rtl&&p.classNames.push("swiper-container-rtl"),p.rtl&&(p.wrongRTL="-webkit-box"===p.wrapper.css("display")),p.params.slidesPerColumn>1&&p.classNames.push("swiper-container-multirow"),p.device.android&&p.classNames.push("swiper-container-android"),p.container.addClass(p.classNames.join(" ")),p.translate=0,p.progress=0,p.velocity=0,p.lockSwipeToNext=function(){p.params.allowSwipeToNext=!1},p.lockSwipeToPrev=function(){p.params.allowSwipeToPrev=!1},p.lockSwipes=function(){p.params.allowSwipeToNext=p.params.allowSwipeToPrev=!1},p.unlockSwipeToNext=function(){p.params.allowSwipeToNext=!0},p.unlockSwipeToPrev=function(){p.params.allowSwipeToPrev=!0},p.unlockSwipes=function(){p.params.allowSwipeToNext=p.params.allowSwipeToPrev=!0},p.params.grabCursor&&(p.container[0].style.cursor="move",p.container[0].style.cursor="-webkit-grab",p.container[0].style.cursor="-moz-grab",p.container[0].style.cursor="grab"),p.imagesToLoad=[],p.imagesLoaded=0,p.loadImage=function(e,t,n,i,r){var o;function a(){r&&r()}e.complete&&i?a():t?((o=new window.Image).onload=a,o.onerror=a,n&&(o.srcset=n),t&&(o.src=t)):a()},p.preloadImages=function(){function e(){null!=p&&(void 0!==p.imagesLoaded&&p.imagesLoaded++,p.imagesLoaded===p.imagesToLoad.length&&(p.params.updateOnImagesReady&&p.update(),p.emit("onImagesReady",p)))}p.imagesToLoad=p.container.find("img");for(var t=0;t<p.imagesToLoad.length;t++)p.loadImage(p.imagesToLoad[t],p.imagesToLoad[t].currentSrc||p.imagesToLoad[t].getAttribute("src"),p.imagesToLoad[t].srcset||p.imagesToLoad[t].getAttribute("srcset"),!0,e)},p.autoplayTimeoutId=void 0,p.autoplaying=!1,p.autoplayPaused=!1,p.startAutoplay=function(){return void 0===p.autoplayTimeoutId&&!!p.params.autoplay&&!p.autoplaying&&(p.autoplaying=!0,p.emit("onAutoplayStart",p),void O())},p.stopAutoplay=function(e){p.autoplayTimeoutId&&(p.autoplayTimeoutId&&clearTimeout(p.autoplayTimeoutId),p.autoplaying=!1,p.autoplayTimeoutId=void 0,p.emit("onAutoplayStop",p))},p.pauseAutoplay=function(e){p.autoplayPaused||(p.autoplayTimeoutId&&clearTimeout(p.autoplayTimeoutId),p.autoplayPaused=!0,0===e?(p.autoplayPaused=!1,O()):p.wrapper.transitionEnd((function(){p&&(p.autoplayPaused=!1,p.autoplaying?O():p.stopAutoplay())})))},p.minTranslate=function(){return-p.snapGrid[0]},p.maxTranslate=function(){return-p.snapGrid[p.snapGrid.length-1]},p.updateAutoHeight=function(){p.slides.eq(p.activeIndex)[0].offsetHeight&&p.wrapper.css("height",p.slides.eq(p.activeIndex)[0].offsetHeight+"px")},p.updateContainerSize=function(){var e,t;e=void 0!==p.params.width?p.params.width:p.container[0].clientWidth,t=void 0!==p.params.height?p.params.height:p.container[0].clientHeight,0===e&&P()||0===t&&!P()||(e=e-parseInt(p.container.css("padding-left"),10)-parseInt(p.container.css("padding-right"),10),t=t-parseInt(p.container.css("padding-top"),10)-parseInt(p.container.css("padding-bottom"),10),p.width=e,p.height=t,p.size=P()?p.width:p.height)},p.updateSlidesSize=function(){p.slides=p.wrapper.children("."+p.params.slideClass),p.snapGrid=[],p.slidesGrid=[],p.slidesSizesGrid=[];var e,t,n,i=p.params.spaceBetween,r=-p.params.slidesOffsetBefore,o=0,a=0;"string"==typeof i&&i.indexOf("%")>=0&&(i=parseFloat(i.replace("%",""))/100*p.size),p.virtualSize=-i,p.rtl?p.slides.css({marginLeft:"",marginTop:""}):p.slides.css({marginRight:"",marginBottom:""}),p.params.slidesPerColumn>1&&(t=Math.floor(p.slides.length/p.params.slidesPerColumn)===p.slides.length/p.params.slidesPerColumn?p.slides.length:Math.ceil(p.slides.length/p.params.slidesPerColumn)*p.params.slidesPerColumn,"auto"!==p.params.slidesPerView&&"row"===p.params.slidesPerColumnFill&&(t=Math.max(t,p.params.slidesPerView*p.params.slidesPerColumn)));var s,l=p.params.slidesPerColumn,u=t/l,c=u-(p.params.slidesPerColumn*u-p.slides.length);for(e=0;e<p.slides.length;e++){n=0;var d,h,f,m=p.slides.eq(e);p.params.slidesPerColumn>1&&("column"===p.params.slidesPerColumnFill?(f=e-(h=Math.floor(e/l))*l,(h>c||h===c&&f===l-1)&&++f>=l&&(f=0,h++),d=h+f*t/l,m.css({"-webkit-box-ordinal-group":d,"-moz-box-ordinal-group":d,"-ms-flex-order":d,"-webkit-order":d,order:d})):h=e-(f=Math.floor(e/u))*u,m.css({"margin-top":0!==f&&p.params.spaceBetween&&p.params.spaceBetween+"px"}).attr("data-swiper-column",h).attr("data-swiper-row",f)),"none"!==m.css("display")&&("auto"===p.params.slidesPerView?(n=P()?m.outerWidth(!0):m.outerHeight(!0),p.params.roundLengths&&(n=Y(n))):(n=(p.size-(p.params.slidesPerView-1)*i)/p.params.slidesPerView,p.params.roundLengths&&(n=Y(n)),P()?p.slides[e].style.width=n+"px":p.slides[e].style.height=n+"px"),p.slides[e].swiperSlideSize=n,p.slidesSizesGrid.push(n),p.params.centeredSlides?(r=r+n/2+o/2+i,0===e&&(r=r-p.size/2-i),Math.abs(r)<.001&&(r=0),a%p.params.slidesPerGroup==0&&p.snapGrid.push(r),p.slidesGrid.push(r)):(a%p.params.slidesPerGroup==0&&p.snapGrid.push(r),p.slidesGrid.push(r),r=r+n+i),p.virtualSize+=n+i,o=n,a++)}if(p.virtualSize=Math.max(p.virtualSize,p.size)+p.params.slidesOffsetAfter,p.rtl&&p.wrongRTL&&("slide"===p.params.effect||"coverflow"===p.params.effect)&&p.wrapper.css({width:p.virtualSize+p.params.spaceBetween+"px"}),p.support.flexbox&&!p.params.setWrapperSize||(P()?p.wrapper.css({width:p.virtualSize+p.params.spaceBetween+"px"}):p.wrapper.css({height:p.virtualSize+p.params.spaceBetween+"px"})),p.params.slidesPerColumn>1&&(p.virtualSize=(n+p.params.spaceBetween)*t,p.virtualSize=Math.ceil(p.virtualSize/p.params.slidesPerColumn)-p.params.spaceBetween,p.wrapper.css({width:p.virtualSize+p.params.spaceBetween+"px"}),p.params.centeredSlides)){for(s=[],e=0;e<p.snapGrid.length;e++)p.snapGrid[e]<p.virtualSize+p.snapGrid[0]&&s.push(p.snapGrid[e]);p.snapGrid=s}if(!p.params.centeredSlides){for(s=[],e=0;e<p.snapGrid.length;e++)p.snapGrid[e]<=p.virtualSize-p.size&&s.push(p.snapGrid[e]);p.snapGrid=s,Math.floor(p.virtualSize-p.size)>Math.floor(p.snapGrid[p.snapGrid.length-1])&&p.snapGrid.push(p.virtualSize-p.size)}0===p.snapGrid.length&&(p.snapGrid=[0]),0!==p.params.spaceBetween&&(P()?p.rtl?p.slides.css({marginLeft:i+"px"}):p.slides.css({marginRight:i+"px"}):p.slides.css({marginBottom:i+"px"})),p.params.watchSlidesProgress&&p.updateSlidesOffset()},p.updateSlidesOffset=function(){for(var e=0;e<p.slides.length;e++)p.slides[e].swiperSlideOffset=P()?p.slides[e].offsetLeft:p.slides[e].offsetTop},p.updateSlidesProgress=function(e){if(void 0===e&&(e=p.translate||0),0!==p.slides.length){void 0===p.slides[0].swiperSlideOffset&&p.updateSlidesOffset();var t=-e;p.rtl&&(t=e),p.slides.removeClass(p.params.slideVisibleClass);for(var n=0;n<p.slides.length;n++){var i=p.slides[n],r=(t-i.swiperSlideOffset)/(i.swiperSlideSize+p.params.spaceBetween);if(p.params.watchSlidesVisibility){var o=-(t-i.swiperSlideOffset),a=o+p.slidesSizesGrid[n];(o>=0&&o<p.size||a>0&&a<=p.size||o<=0&&a>=p.size)&&p.slides.eq(n).addClass(p.params.slideVisibleClass)}i.progress=p.rtl?-r:r}}},p.updateProgress=function(e){void 0===e&&(e=p.translate||0);var t=p.maxTranslate()-p.minTranslate(),n=p.isBeginning,i=p.isEnd;0===t?(p.progress=0,p.isBeginning=p.isEnd=!0):(p.progress=(e-p.minTranslate())/t,p.isBeginning=p.progress<=0,p.isEnd=p.progress>=1),p.isBeginning&&!n&&p.emit("onReachBeginning",p),p.isEnd&&!i&&p.emit("onReachEnd",p),p.params.watchSlidesProgress&&p.updateSlidesProgress(e),p.emit("onProgress",p,p.progress)},p.updateActiveIndex=function(){var e,t,n,i=p.rtl?p.translate:-p.translate;for(t=0;t<p.slidesGrid.length;t++)void 0!==p.slidesGrid[t+1]?i>=p.slidesGrid[t]&&i<p.slidesGrid[t+1]-(p.slidesGrid[t+1]-p.slidesGrid[t])/2?e=t:i>=p.slidesGrid[t]&&i<p.slidesGrid[t+1]&&(e=t+1):i>=p.slidesGrid[t]&&(e=t);(e<0||void 0===e)&&(e=0),(n=Math.floor(e/p.params.slidesPerGroup))>=p.snapGrid.length&&(n=p.snapGrid.length-1),e!==p.activeIndex&&(p.snapIndex=n,p.previousIndex=p.activeIndex,p.activeIndex=e,p.updateClasses())},p.updateClasses=function(){p.slides.removeClass(p.params.slideActiveClass+" "+p.params.slideNextClass+" "+p.params.slidePrevClass);var t,n=p.slides.eq(p.activeIndex);n.addClass(p.params.slideActiveClass),n.next("."+p.params.slideClass).addClass(p.params.slideNextClass),n.prev("."+p.params.slideClass).addClass(p.params.slidePrevClass),p.bullets&&p.bullets.length>0&&(p.bullets.removeClass(p.params.bulletActiveClass),p.params.loop?((t=Math.ceil(p.activeIndex-p.loopedSlides)/p.params.slidesPerGroup)>p.slides.length-1-2*p.loopedSlides&&(t-=p.slides.length-2*p.loopedSlides),t>p.bullets.length-1&&(t-=p.bullets.length)):t=void 0!==p.snapIndex?p.snapIndex:p.activeIndex||0,p.paginationContainer.length>1?p.bullets.each((function(){e(this).index()===t&&e(this).addClass(p.params.bulletActiveClass)})):p.bullets.eq(t).addClass(p.params.bulletActiveClass)),p.params.loop||(p.params.prevButton&&(p.isBeginning?(e(p.params.prevButton).addClass(p.params.buttonDisabledClass),p.params.a11y&&p.a11y&&p.a11y.disable(e(p.params.prevButton))):(e(p.params.prevButton).removeClass(p.params.buttonDisabledClass),p.params.a11y&&p.a11y&&p.a11y.enable(e(p.params.prevButton)))),p.params.nextButton&&(p.isEnd?(e(p.params.nextButton).addClass(p.params.buttonDisabledClass),p.params.a11y&&p.a11y&&p.a11y.disable(e(p.params.nextButton))):(e(p.params.nextButton).removeClass(p.params.buttonDisabledClass),p.params.a11y&&p.a11y&&p.a11y.enable(e(p.params.nextButton)))))},p.updatePagination=function(){if(p.params.pagination&&p.paginationContainer&&p.paginationContainer.length>0){for(var e="",t=p.params.loop?Math.ceil((p.slides.length-2*p.loopedSlides)/p.params.slidesPerGroup):p.snapGrid.length,n=0;n<t;n++)p.params.paginationBulletRender?e+=p.params.paginationBulletRender(n,p.params.bulletClass):e+="<"+p.params.paginationElement+' class="'+p.params.bulletClass+'"></'+p.params.paginationElement+">";p.paginationContainer.html(e),p.bullets=p.paginationContainer.find("."+p.params.bulletClass),p.params.paginationClickable&&p.params.a11y&&p.a11y&&p.a11y.initPagination()}},p.update=function(e){function t(){n=Math.min(Math.max(p.translate,p.maxTranslate()),p.minTranslate()),p.setWrapperTranslate(n),p.updateActiveIndex(),p.updateClasses()}var n;p.updateContainerSize(),p.updateSlidesSize(),p.updateProgress(),p.updatePagination(),p.updateClasses(),p.params.scrollbar&&p.scrollbar&&p.scrollbar.set(),e?(p.controller&&p.controller.spline&&(p.controller.spline=void 0),p.params.freeMode?(t(),p.params.autoHeight&&p.updateAutoHeight()):(("auto"===p.params.slidesPerView||p.params.slidesPerView>1)&&p.isEnd&&!p.params.centeredSlides?p.slideTo(p.slides.length-1,0,!1,!0):p.slideTo(p.activeIndex,0,!1,!0))||t()):p.params.autoHeight&&p.updateAutoHeight()},p.onResize=function(e){p.params.breakpoints&&p.setBreakpoint();var t=p.params.allowSwipeToPrev,n=p.params.allowSwipeToNext;if(p.params.allowSwipeToPrev=p.params.allowSwipeToNext=!0,p.updateContainerSize(),p.updateSlidesSize(),("auto"===p.params.slidesPerView||p.params.freeMode||e)&&p.updatePagination(),p.params.scrollbar&&p.scrollbar&&p.scrollbar.set(),p.controller&&p.controller.spline&&(p.controller.spline=void 0),p.params.freeMode){var i=Math.min(Math.max(p.translate,p.maxTranslate()),p.minTranslate());p.setWrapperTranslate(i),p.updateActiveIndex(),p.updateClasses(),p.params.autoHeight&&p.updateAutoHeight()}else p.updateClasses(),("auto"===p.params.slidesPerView||p.params.slidesPerView>1)&&p.isEnd&&!p.params.centeredSlides?p.slideTo(p.slides.length-1,0,!1,!0):p.slideTo(p.activeIndex,0,!1,!0);p.params.allowSwipeToPrev=t,p.params.allowSwipeToNext=n};var m=["mousedown","mousemove","mouseup"];window.navigator.pointerEnabled?m=["pointerdown","pointermove","pointerup"]:window.navigator.msPointerEnabled&&(m=["MSPointerDown","MSPointerMove","MSPointerUp"]),p.touchEvents={start:p.support.touch||!p.params.simulateTouch?"touchstart":m[0],move:p.support.touch||!p.params.simulateTouch?"touchmove":m[1],end:p.support.touch||!p.params.simulateTouch?"touchend":m[2]},(window.navigator.pointerEnabled||window.navigator.msPointerEnabled)&&("container"===p.params.touchEventsTarget?p.container:p.wrapper).addClass("swiper-wp8-"+p.params.direction),p.initEvents=function(t){var i=t?"off":"on",r=t?"removeEventListener":"addEventListener",o="container"===p.params.touchEventsTarget?p.container[0]:p.wrapper[0],a=p.support.touch?o:document,s=!!p.params.nested;p.browser.ie?(o[r](p.touchEvents.start,p.onTouchStart,!1),a[r](p.touchEvents.move,p.onTouchMove,s),a[r](p.touchEvents.end,p.onTouchEnd,!1)):(p.support.touch&&(o[r](p.touchEvents.start,p.onTouchStart,!1),o[r](p.touchEvents.move,p.onTouchMove,s),o[r](p.touchEvents.end,p.onTouchEnd,!1)),!n.simulateTouch||p.device.ios||p.device.android||(o[r]("mousedown",p.onTouchStart,!1),document[r]("mousemove",p.onTouchMove,s),document[r]("mouseup",p.onTouchEnd,!1))),window[r]("resize",p.onResize),p.params.nextButton&&(e(p.params.nextButton)[i]("click",p.onClickNext),p.params.a11y&&p.a11y&&e(p.params.nextButton)[i]("keydown",p.a11y.onEnterKey)),p.params.prevButton&&(e(p.params.prevButton)[i]("click",p.onClickPrev),p.params.a11y&&p.a11y&&e(p.params.prevButton)[i]("keydown",p.a11y.onEnterKey)),p.params.pagination&&p.params.paginationClickable&&(e(p.paginationContainer)[i]("click","."+p.params.bulletClass,p.onClickIndex),p.params.a11y&&p.a11y&&e(p.paginationContainer)[i]("keydown","."+p.params.bulletClass,p.a11y.onEnterKey)),(p.params.preventClicks||p.params.preventClicksPropagation)&&o[r]("click",p.preventClicks,!0)},p.attachEvents=function(e){p.initEvents()},p.detachEvents=function(){p.initEvents(!0)},p.allowClick=!0,p.preventClicks=function(e){p.allowClick||(p.params.preventClicks&&e.preventDefault(),p.params.preventClicksPropagation&&p.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))},p.onClickNext=function(e){e.preventDefault(),p.isEnd&&!p.params.loop||p.slideNext()},p.onClickPrev=function(e){e.preventDefault(),p.isBeginning&&!p.params.loop||p.slidePrev()},p.onClickIndex=function(t){t.preventDefault();var n=e(this).index()*p.params.slidesPerGroup;p.params.loop&&(n+=p.loopedSlides),p.slideTo(n)},p.updateClickedSlide=function(t){var n=I(t,"."+p.params.slideClass),i=!1;if(n)for(var r=0;r<p.slides.length;r++)p.slides[r]===n&&(i=!0);if(!n||!i)return p.clickedSlide=void 0,void(p.clickedIndex=void 0);if(p.clickedSlide=n,p.clickedIndex=e(n).index(),p.params.slideToClickedSlide&&void 0!==p.clickedIndex&&p.clickedIndex!==p.activeIndex){var o,a=p.clickedIndex;if(p.params.loop){if(p.animating)return;o=e(p.clickedSlide).attr("data-swiper-slide-index"),p.params.centeredSlides?a<p.loopedSlides-p.params.slidesPerView/2||a>p.slides.length-p.loopedSlides+p.params.slidesPerView/2?(p.fixLoop(),a=p.wrapper.children("."+p.params.slideClass+'[data-swiper-slide-index="'+o+'"]:not(.swiper-slide-duplicate)').eq(0).index(),setTimeout((function(){p.slideTo(a)}),0)):p.slideTo(a):a>p.slides.length-p.params.slidesPerView?(p.fixLoop(),a=p.wrapper.children("."+p.params.slideClass+'[data-swiper-slide-index="'+o+'"]:not(.swiper-slide-duplicate)').eq(0).index(),setTimeout((function(){p.slideTo(a)}),0)):p.slideTo(a)}else p.slideTo(a)}};var g,v,_,y,b,w,L,M,k,x,S,T,$="input, select, textarea, button",D=Date.now(),C=[];if(p.animating=!1,p.touches={startX:0,startY:0,currentX:0,currentY:0,diff:0},p.onTouchStart=function(t){if(t.originalEvent&&(t=t.originalEvent),(S="touchstart"===t.type)||!("which"in t)||3!==t.which)if(p.params.noSwiping&&I(t,"."+p.params.noSwipingClass))p.allowClick=!0;else if(!p.params.swipeHandler||I(t,p.params.swipeHandler)){var n=p.touches.currentX="touchstart"===t.type?t.targetTouches[0].pageX:t.pageX,i=p.touches.currentY="touchstart"===t.type?t.targetTouches[0].pageY:t.pageY;if(!(p.device.ios&&p.params.iOSEdgeSwipeDetection&&n<=p.params.iOSEdgeSwipeThreshold)){if(g=!0,v=!1,_=!0,b=void 0,T=void 0,p.touches.startX=n,p.touches.startY=i,y=Date.now(),p.allowClick=!0,p.updateContainerSize(),p.swipeDirection=void 0,p.params.threshold>0&&(M=!1),"touchstart"!==t.type){var r=!0;e(t.target).is($)&&(r=!1),document.activeElement&&e(document.activeElement).is($)&&document.activeElement.blur(),r&&t.preventDefault()}p.emit("onTouchStart",p,t)}}},p.onTouchMove=function(t){if(t.originalEvent&&(t=t.originalEvent),!(S&&"mousemove"===t.type||t.preventedByNestedSwiper)){if(p.params.onlyExternal)return p.allowClick=!1,void(g&&(p.touches.startX=p.touches.currentX="touchmove"===t.type?t.targetTouches[0].pageX:t.pageX,p.touches.startY=p.touches.currentY="touchmove"===t.type?t.targetTouches[0].pageY:t.pageY,y=Date.now()));if(S&&document.activeElement&&t.target===document.activeElement&&e(t.target).is($))return v=!0,void(p.allowClick=!1);if(_&&p.emit("onTouchMove",p,t),!(t.targetTouches&&t.targetTouches.length>1)){if(p.touches.currentX="touchmove"===t.type?t.targetTouches[0].pageX:t.pageX,p.touches.currentY="touchmove"===t.type?t.targetTouches[0].pageY:t.pageY,void 0===b){var i=180*Math.atan2(Math.abs(p.touches.currentY-p.touches.startY),Math.abs(p.touches.currentX-p.touches.startX))/Math.PI;b=P()?i>p.params.touchAngle:90-i>p.params.touchAngle}if(b&&p.emit("onTouchMoveOpposite",p,t),void 0===T&&p.browser.ieTouch&&(p.touches.currentX===p.touches.startX&&p.touches.currentY===p.touches.startY||(T=!0)),g)if(b)g=!1;else if(T||!p.browser.ieTouch){p.allowClick=!1,p.emit("onSliderMove",p,t),t.preventDefault(),p.params.touchMoveStopPropagation&&!p.params.nested&&t.stopPropagation(),v||(n.loop&&p.fixLoop(),L=p.getWrapperTranslate(),p.setWrapperTransition(0),p.animating&&p.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"),p.params.autoplay&&p.autoplaying&&(p.params.autoplayDisableOnInteraction?p.stopAutoplay():p.pauseAutoplay()),x=!1,p.params.grabCursor&&(p.container[0].style.cursor="move",p.container[0].style.cursor="-webkit-grabbing",p.container[0].style.cursor="-moz-grabbin",p.container[0].style.cursor="grabbing")),v=!0;var r=p.touches.diff=P()?p.touches.currentX-p.touches.startX:p.touches.currentY-p.touches.startY;r*=p.params.touchRatio,p.rtl&&(r=-r),p.swipeDirection=r>0?"prev":"next",w=r+L;var o=!0;if(r>0&&w>p.minTranslate()?(o=!1,p.params.resistance&&(w=p.minTranslate()-1+Math.pow(-p.minTranslate()+L+r,p.params.resistanceRatio))):r<0&&w<p.maxTranslate()&&(o=!1,p.params.resistance&&(w=p.maxTranslate()+1-Math.pow(p.maxTranslate()-L-r,p.params.resistanceRatio))),o&&(t.preventedByNestedSwiper=!0),!p.params.allowSwipeToNext&&"next"===p.swipeDirection&&w<L&&(w=L),!p.params.allowSwipeToPrev&&"prev"===p.swipeDirection&&w>L&&(w=L),p.params.followFinger){if(p.params.threshold>0){if(!(Math.abs(r)>p.params.threshold||M))return void(w=L);if(!M)return M=!0,p.touches.startX=p.touches.currentX,p.touches.startY=p.touches.currentY,w=L,void(p.touches.diff=P()?p.touches.currentX-p.touches.startX:p.touches.currentY-p.touches.startY)}(p.params.freeMode||p.params.watchSlidesProgress)&&p.updateActiveIndex(),p.params.freeMode&&(0===C.length&&C.push({position:p.touches[P()?"startX":"startY"],time:y}),C.push({position:p.touches[P()?"currentX":"currentY"],time:(new window.Date).getTime()})),p.updateProgress(w),p.setWrapperTranslate(w)}}}}},p.onTouchEnd=function(t){if(t.originalEvent&&(t=t.originalEvent),_&&p.emit("onTouchEnd",p,t),_=!1,g){p.params.grabCursor&&v&&g&&(p.container[0].style.cursor="move",p.container[0].style.cursor="-webkit-grab",p.container[0].style.cursor="-moz-grab",p.container[0].style.cursor="grab");var n,i=Date.now(),r=i-y;if(p.allowClick&&(p.updateClickedSlide(t),p.emit("onTap",p,t),r<300&&i-D>300&&(k&&clearTimeout(k),k=setTimeout((function(){p&&(p.params.paginationHide&&p.paginationContainer.length>0&&!e(t.target).hasClass(p.params.bulletClass)&&p.paginationContainer.toggleClass(p.params.paginationHiddenClass),p.emit("onClick",p,t))}),300)),r<300&&i-D<300&&(k&&clearTimeout(k),p.emit("onDoubleTap",p,t))),D=Date.now(),setTimeout((function(){p&&(p.allowClick=!0)}),0),g&&v&&p.swipeDirection&&0!==p.touches.diff&&w!==L)if(g=v=!1,n=p.params.followFinger?p.rtl?p.translate:-p.translate:-w,p.params.freeMode){if(n<-p.minTranslate())return void p.slideTo(p.activeIndex);if(n>-p.maxTranslate())return void(p.slides.length<p.snapGrid.length?p.slideTo(p.snapGrid.length-1):p.slideTo(p.slides.length-1));if(p.params.freeModeMomentum){if(C.length>1){var o=C.pop(),a=C.pop(),s=o.position-a.position,l=o.time-a.time;p.velocity=s/l,p.velocity=p.velocity/2,Math.abs(p.velocity)<p.params.freeModeMinimumVelocity&&(p.velocity=0),(l>150||(new window.Date).getTime()-o.time>300)&&(p.velocity=0)}else p.velocity=0;C.length=0;var u=1e3*p.params.freeModeMomentumRatio,c=p.velocity*u,d=p.translate+c;p.rtl&&(d=-d);var h,f=!1,m=20*Math.abs(p.velocity)*p.params.freeModeMomentumBounceRatio;if(d<p.maxTranslate())p.params.freeModeMomentumBounce?(d+p.maxTranslate()<-m&&(d=p.maxTranslate()-m),h=p.maxTranslate(),f=!0,x=!0):d=p.maxTranslate();else if(d>p.minTranslate())p.params.freeModeMomentumBounce?(d-p.minTranslate()>m&&(d=p.minTranslate()+m),h=p.minTranslate(),f=!0,x=!0):d=p.minTranslate();else if(p.params.freeModeSticky){var b,M=0;for(M=0;M<p.snapGrid.length;M+=1)if(p.snapGrid[M]>-d){b=M;break}d=Math.abs(p.snapGrid[b]-d)<Math.abs(p.snapGrid[b-1]-d)||"next"===p.swipeDirection?p.snapGrid[b]:p.snapGrid[b-1],p.rtl||(d=-d)}if(0!==p.velocity)u=p.rtl?Math.abs((-d-p.translate)/p.velocity):Math.abs((d-p.translate)/p.velocity);else if(p.params.freeModeSticky)return void p.slideReset();p.params.freeModeMomentumBounce&&f?(p.updateProgress(h),p.setWrapperTransition(u),p.setWrapperTranslate(d),p.onTransitionStart(),p.animating=!0,p.wrapper.transitionEnd((function(){p&&x&&(p.emit("onMomentumBounce",p),p.setWrapperTransition(p.params.speed),p.setWrapperTranslate(h),p.wrapper.transitionEnd((function(){p&&p.onTransitionEnd()})))}))):p.velocity?(p.updateProgress(d),p.setWrapperTransition(u),p.setWrapperTranslate(d),p.onTransitionStart(),p.animating||(p.animating=!0,p.wrapper.transitionEnd((function(){p&&p.onTransitionEnd()})))):p.updateProgress(d),p.updateActiveIndex()}(!p.params.freeModeMomentum||r>=p.params.longSwipesMs)&&(p.updateProgress(),p.updateActiveIndex())}else{var S,T=0,$=p.slidesSizesGrid[0];for(S=0;S<p.slidesGrid.length;S+=p.params.slidesPerGroup)void 0!==p.slidesGrid[S+p.params.slidesPerGroup]?n>=p.slidesGrid[S]&&n<p.slidesGrid[S+p.params.slidesPerGroup]&&(T=S,
-$=p.slidesGrid[S+p.params.slidesPerGroup]-p.slidesGrid[S]):n>=p.slidesGrid[S]&&(T=S,$=p.slidesGrid[p.slidesGrid.length-1]-p.slidesGrid[p.slidesGrid.length-2]);var E=(n-p.slidesGrid[T])/$;if(r>p.params.longSwipesMs){if(!p.params.longSwipes)return void p.slideTo(p.activeIndex);"next"===p.swipeDirection&&(E>=p.params.longSwipesRatio?p.slideTo(T+p.params.slidesPerGroup):p.slideTo(T)),"prev"===p.swipeDirection&&(E>1-p.params.longSwipesRatio?p.slideTo(T+p.params.slidesPerGroup):p.slideTo(T))}else{if(!p.params.shortSwipes)return void p.slideTo(p.activeIndex);"next"===p.swipeDirection&&p.slideTo(T+p.params.slidesPerGroup),"prev"===p.swipeDirection&&p.slideTo(T)}}else g=v=!1}},p._slideTo=function(e,t){return p.slideTo(e,t,!0,!0)},p.slideTo=function(e,t,n,i){void 0===n&&(n=!0),void 0===e&&(e=0),e<0&&(e=0),p.snapIndex=Math.floor(e/p.params.slidesPerGroup),p.snapIndex>=p.snapGrid.length&&(p.snapIndex=p.snapGrid.length-1);var r=-p.snapGrid[p.snapIndex];p.params.autoplay&&p.autoplaying&&(i||!p.params.autoplayDisableOnInteraction?p.pauseAutoplay(t):p.stopAutoplay()),p.updateProgress(r);for(var o=0;o<p.slidesGrid.length;o++)-Math.floor(100*r)>=Math.floor(100*p.slidesGrid[o])&&(e=o);return!(!p.params.allowSwipeToNext&&r<p.translate&&r<p.minTranslate()||!p.params.allowSwipeToPrev&&r>p.translate&&r>p.maxTranslate()&&(p.activeIndex||0)!==e||(void 0===t&&(t=p.params.speed),p.previousIndex=p.activeIndex||0,p.activeIndex=e,p.rtl&&-r===p.translate||!p.rtl&&r===p.translate?(p.params.autoHeight&&p.updateAutoHeight(),p.updateClasses(),"slide"!==p.params.effect&&p.setWrapperTranslate(r),1):(p.updateClasses(),p.onTransitionStart(n),0===t?(p.setWrapperTranslate(r),p.setWrapperTransition(0),p.onTransitionEnd(n)):(p.setWrapperTranslate(r),p.setWrapperTransition(t),p.animating||(p.animating=!0,p.wrapper.transitionEnd((function(){p&&p.onTransitionEnd(n)})))),0)))},p.onTransitionStart=function(e){void 0===e&&(e=!0),p.params.autoHeight&&p.updateAutoHeight(),p.lazy&&p.lazy.onTransitionStart(),e&&(p.emit("onTransitionStart",p),p.activeIndex!==p.previousIndex&&(p.emit("onSlideChangeStart",p),r.$emit("$ionicSlides.slideChangeStart",{slider:p,activeIndex:p.getSlideDataIndex(p.activeIndex),previousIndex:p.getSlideDataIndex(p.previousIndex)}),p.activeIndex>p.previousIndex?p.emit("onSlideNextStart",p):p.emit("onSlidePrevStart",p)))},p.onTransitionEnd=function(e){p.animating=!1,p.setWrapperTransition(0),void 0===e&&(e=!0),p.lazy&&p.lazy.onTransitionEnd(),e&&(p.emit("onTransitionEnd",p),p.activeIndex!==p.previousIndex&&(p.emit("onSlideChangeEnd",p),r.$emit("$ionicSlides.slideChangeEnd",{slider:p,activeIndex:p.getSlideDataIndex(p.activeIndex),previousIndex:p.getSlideDataIndex(p.previousIndex)}),p.activeIndex>p.previousIndex?p.emit("onSlideNextEnd",p):p.emit("onSlidePrevEnd",p))),p.params.hashnav&&p.hashnav&&p.hashnav.setHash()},p.slideNext=function(e,t,n){return p.params.loop?!p.animating&&(p.fixLoop(),p.container[0].clientLeft,p.slideTo(p.activeIndex+p.params.slidesPerGroup,t,e,n)):p.slideTo(p.activeIndex+p.params.slidesPerGroup,t,e,n)},p._slideNext=function(e){return p.slideNext(!0,e,!0)},p.slidePrev=function(e,t,n){return p.params.loop?!p.animating&&(p.fixLoop(),p.container[0].clientLeft,p.slideTo(p.activeIndex-1,t,e,n)):p.slideTo(p.activeIndex-1,t,e,n)},p._slidePrev=function(e){return p.slidePrev(!0,e,!0)},p.slideReset=function(e,t,n){return p.slideTo(p.activeIndex,t,e)},p.setWrapperTransition=function(e,t){p.wrapper.transition(e),"slide"!==p.params.effect&&p.effects[p.params.effect]&&p.effects[p.params.effect].setTransition(e),p.params.parallax&&p.parallax&&p.parallax.setTransition(e),p.params.scrollbar&&p.scrollbar&&p.scrollbar.setTransition(e),p.params.control&&p.controller&&p.controller.setTransition(e,t),p.emit("onSetTransition",p,e)},p.setWrapperTranslate=function(e,t,n){var i=0,r=0;P()?i=p.rtl?-e:e:r=e,p.params.roundLengths&&(i=Y(i),r=Y(r)),p.params.virtualTranslate||(p.support.transforms3d?p.wrapper.transform("translate3d("+i+"px, "+r+"px, 0px)"):p.wrapper.transform("translate("+i+"px, "+r+"px)")),p.translate=P()?i:r;var o=p.maxTranslate()-p.minTranslate();(0===o?0:(e-p.minTranslate())/o)!==p.progress&&p.updateProgress(e),t&&p.updateActiveIndex(),"slide"!==p.params.effect&&p.effects[p.params.effect]&&p.effects[p.params.effect].setTranslate(p.translate),p.params.parallax&&p.parallax&&p.parallax.setTranslate(p.translate),p.params.scrollbar&&p.scrollbar&&p.scrollbar.setTranslate(p.translate),p.params.control&&p.controller&&p.controller.setTranslate(p.translate,n),p.emit("onSetTranslate",p,p.translate)},p.getTranslate=function(e,t){var n,i,r,o;return void 0===t&&(t="x"),p.params.virtualTranslate?p.rtl?-p.translate:p.translate:(r=window.getComputedStyle(e,null),window.WebKitCSSMatrix?((i=r.transform||r.webkitTransform).split(",").length>6&&(i=i.split(", ").map((function(e){return e.replace(",",".")})).join(", ")),o=new window.WebKitCSSMatrix("none"===i?"":i)):n=(o=r.MozTransform||r.OTransform||r.MsTransform||r.msTransform||r.transform||r.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,")).toString().split(","),"x"===t&&(i=window.WebKitCSSMatrix?o.m41:16===n.length?parseFloat(n[12]):parseFloat(n[4])),"y"===t&&(i=window.WebKitCSSMatrix?o.m42:16===n.length?parseFloat(n[13]):parseFloat(n[5])),p.rtl&&i&&(i=-i),i||0)},p.getWrapperTranslate=function(e){return void 0===e&&(e=P()?"x":"y"),p.getTranslate(p.wrapper[0],e)},p.observers=[],p.initObservers=function(){if(p.params.observeParents)for(var e=p.container.parents(),t=0;t<e.length;t++)j(e[t]);j(p.container[0],{childList:!1}),j(p.wrapper[0],{attributes:!1})},p.disconnectObservers=function(){for(var e=0;e<p.observers.length;e++)p.observers[e].disconnect();p.observers=[]},p.updateLoop=function(){var e=p.slides.eq(p.activeIndex);if(angular.element(e).hasClass(p.params.slideDuplicateClass)){for(var t=angular.element(e).attr("data-swiper-slide-index"),n=p.wrapper.children("."+p.params.slideClass),i=0;i<n.length;i++)if(!angular.element(n[i]).hasClass(p.params.slideDuplicateClass)&&angular.element(n[i]).attr("data-swiper-slide-index")===t){p.slideTo(i,0,!1,!0);break}setTimeout((function(){p.createLoop()}),50)}},p.getSlideDataIndex=function(e){var t=p.slides.eq(e),n=angular.element(t).attr("data-swiper-slide-index");return parseInt(n)},p.createLoop=function(){p.wrapper.children("."+p.params.slideClass+"."+p.params.slideDuplicateClass).remove();var t=p.wrapper.children("."+p.params.slideClass);"auto"!==p.params.slidesPerView||p.params.loopedSlides||(p.params.loopedSlides=t.length),p.loopedSlides=parseInt(p.params.loopedSlides||p.params.slidesPerView,10),p.loopedSlides=p.loopedSlides+p.params.loopAdditionalSlides,p.loopedSlides>t.length&&(p.loopedSlides=t.length);var n,i,r,o=[],s=[];for(t.each((function(n,i){var r=e(this);n<p.loopedSlides&&s.push(i),n<t.length&&n>=t.length-p.loopedSlides&&o.push(i),r.attr("data-swiper-slide-index",n)})),n=0;n<s.length;n++)(r=angular.element(s[n]).clone().addClass(p.params.slideDuplicateClass)).removeAttr("ng-transclude"),r.removeAttr("ng-repeat"),i=angular.element(s[n]).scope(),r=a(r)(i),angular.element(p.wrapper).append(r);for(n=o.length-1;n>=0;n--)(r=angular.element(o[n]).clone().addClass(p.params.slideDuplicateClass)).removeAttr("ng-transclude"),r.removeAttr("ng-repeat"),i=angular.element(o[n]).scope(),r=a(r)(i),angular.element(p.wrapper).prepend(r)},p.destroyLoop=function(){p.wrapper.children("."+p.params.slideClass+"."+p.params.slideDuplicateClass).remove(),p.slides.removeAttr("data-swiper-slide-index")},p.fixLoop=function(){var e;p.activeIndex<p.loopedSlides?(e=p.slides.length-3*p.loopedSlides+p.activeIndex,e+=p.loopedSlides,p.slideTo(e,0,!1,!0)):("auto"===p.params.slidesPerView&&p.activeIndex>=2*p.loopedSlides||p.activeIndex>p.slides.length-2*p.params.slidesPerView)&&(e=-p.slides.length+p.activeIndex+p.loopedSlides,e+=p.loopedSlides,p.slideTo(e,0,!1,!0))},p.appendSlide=function(e){if(p.params.loop&&p.destroyLoop(),"object"==typeof e&&e.length)for(var t=0;t<e.length;t++)e[t]&&p.wrapper.append(e[t]);else p.wrapper.append(e);p.params.loop&&p.createLoop(),p.params.observer&&p.support.observer||p.update(!0)},p.prependSlide=function(e){p.params.loop&&p.destroyLoop();var t=p.activeIndex+1;if("object"==typeof e&&e.length){for(var n=0;n<e.length;n++)e[n]&&p.wrapper.prepend(e[n]);t=p.activeIndex+e.length}else p.wrapper.prepend(e);p.params.loop&&p.createLoop(),p.params.observer&&p.support.observer||p.update(!0),p.slideTo(t,0,!1)},p.removeSlide=function(e){p.params.loop&&(p.destroyLoop(),p.slides=p.wrapper.children("."+p.params.slideClass));var t,n=p.activeIndex;if("object"==typeof e&&e.length){for(var i=0;i<e.length;i++)t=e[i],p.slides[t]&&p.slides.eq(t).remove(),t<n&&n--;n=Math.max(n,0)}else t=e,p.slides[t]&&p.slides.eq(t).remove(),t<n&&n--,n=Math.max(n,0);p.params.loop&&p.createLoop(),p.params.observer&&p.support.observer||p.update(!0),p.params.loop?p.slideTo(n+p.loopedSlides,0,!1):p.slideTo(n,0,!1)},p.removeAllSlides=function(){for(var e=[],t=0;t<p.slides.length;t++)e.push(t);p.removeSlide(e)},p.effects={fade:{setTranslate:function(){for(var e=0;e<p.slides.length;e++){var t=p.slides.eq(e),n=-t[0].swiperSlideOffset;p.params.virtualTranslate||(n-=p.translate);var i=0;P()||(i=n,n=0);var r=p.params.fade.crossFade?Math.max(1-Math.abs(t[0].progress),0):1+Math.min(Math.max(t[0].progress,-1),0);t.css({opacity:r}).transform("translate3d("+n+"px, "+i+"px, 0px)")}},setTransition:function(e){if(p.slides.transition(e),p.params.virtualTranslate&&0!==e){var t=!1;p.slides.transitionEnd((function(){if(!t&&p){t=!0,p.animating=!1;for(var e=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],n=0;n<e.length;n++)p.wrapper.trigger(e[n])}}))}}},cube:{setTranslate:function(){var t,n=0;p.params.cube.shadow&&(P()?(0===(t=p.wrapper.find(".swiper-cube-shadow")).length&&(t=e('<div class="swiper-cube-shadow"></div>'),p.wrapper.append(t)),t.css({height:p.width+"px"})):0===(t=p.container.find(".swiper-cube-shadow")).length&&(t=e('<div class="swiper-cube-shadow"></div>'),p.container.append(t)));for(var i=0;i<p.slides.length;i++){var r=p.slides.eq(i),o=90*i,a=Math.floor(o/360);p.rtl&&(o=-o,a=Math.floor(-o/360));var s=Math.max(Math.min(r[0].progress,1),-1),l=0,u=0,c=0;i%4==0?(l=4*-a*p.size,c=0):(i-1)%4==0?(l=0,c=4*-a*p.size):(i-2)%4==0?(l=p.size+4*a*p.size,c=p.size):(i-3)%4==0&&(l=-p.size,c=3*p.size+4*p.size*a),p.rtl&&(l=-l),P()||(u=l,l=0);var d="rotateX("+(P()?0:-o)+"deg) rotateY("+(P()?o:0)+"deg) translate3d("+l+"px, "+u+"px, "+c+"px)";if(s<=1&&s>-1&&(n=90*i+90*s,p.rtl&&(n=90*-i-90*s)),r.transform(d),p.params.cube.slideShadows){var h=P()?r.find(".swiper-slide-shadow-left"):r.find(".swiper-slide-shadow-top"),f=P()?r.find(".swiper-slide-shadow-right"):r.find(".swiper-slide-shadow-bottom");0===h.length&&(h=e('<div class="swiper-slide-shadow-'+(P()?"left":"top")+'"></div>'),r.append(h)),0===f.length&&(f=e('<div class="swiper-slide-shadow-'+(P()?"right":"bottom")+'"></div>'),r.append(f)),r[0].progress,h.length&&(h[0].style.opacity=-r[0].progress),f.length&&(f[0].style.opacity=r[0].progress)}}if(p.wrapper.css({"-webkit-transform-origin":"50% 50% -"+p.size/2+"px","-moz-transform-origin":"50% 50% -"+p.size/2+"px","-ms-transform-origin":"50% 50% -"+p.size/2+"px","transform-origin":"50% 50% -"+p.size/2+"px"}),p.params.cube.shadow)if(P())t.transform("translate3d(0px, "+(p.width/2+p.params.cube.shadowOffset)+"px, "+-p.width/2+"px) rotateX(90deg) rotateZ(0deg) scale("+p.params.cube.shadowScale+")");else{var m=Math.abs(n)-90*Math.floor(Math.abs(n)/90),g=1.5-(Math.sin(2*m*Math.PI/360)/2+Math.cos(2*m*Math.PI/360)/2),v=p.params.cube.shadowScale,_=p.params.cube.shadowScale/g,y=p.params.cube.shadowOffset;t.transform("scale3d("+v+", 1, "+_+") translate3d(0px, "+(p.height/2+y)+"px, "+-p.height/2/_+"px) rotateX(-90deg)")}var b=p.isSafari||p.isUiWebView?-p.size/2:0;p.wrapper.transform("translate3d(0px,0,"+b+"px) rotateX("+(P()?0:n)+"deg) rotateY("+(P()?-n:0)+"deg)")},setTransition:function(e){p.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),p.params.cube.shadow&&!P()&&p.container.find(".swiper-cube-shadow").transition(e)}},coverflow:{setTranslate:function(){for(var t=p.translate,n=P()?-t+p.width/2:-t+p.height/2,i=P()?p.params.coverflow.rotate:-p.params.coverflow.rotate,r=p.params.coverflow.depth,o=0,a=p.slides.length;o<a;o++){var s=p.slides.eq(o),l=p.slidesSizesGrid[o],u=(n-s[0].swiperSlideOffset-l/2)/l*p.params.coverflow.modifier,c=P()?i*u:0,d=P()?0:i*u,h=-r*Math.abs(u),f=P()?0:p.params.coverflow.stretch*u,m=P()?p.params.coverflow.stretch*u:0;Math.abs(m)<.001&&(m=0),Math.abs(f)<.001&&(f=0),Math.abs(h)<.001&&(h=0),Math.abs(c)<.001&&(c=0),Math.abs(d)<.001&&(d=0);var g="translate3d("+m+"px,"+f+"px,"+h+"px)  rotateX("+d+"deg) rotateY("+c+"deg)";if(s.transform(g),s[0].style.zIndex=1-Math.abs(Math.round(u)),p.params.coverflow.slideShadows){var v=P()?s.find(".swiper-slide-shadow-left"):s.find(".swiper-slide-shadow-top"),_=P()?s.find(".swiper-slide-shadow-right"):s.find(".swiper-slide-shadow-bottom");0===v.length&&(v=e('<div class="swiper-slide-shadow-'+(P()?"left":"top")+'"></div>'),s.append(v)),0===_.length&&(_=e('<div class="swiper-slide-shadow-'+(P()?"right":"bottom")+'"></div>'),s.append(_)),v.length&&(v[0].style.opacity=u>0?u:0),_.length&&(_[0].style.opacity=-u>0?-u:0)}}p.browser.ie&&(p.wrapper[0].style.perspectiveOrigin=n+"px 50%")},setTransition:function(e){p.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}}},p.lazy={initialImageLoaded:!1,loadImageInSlide:function(t,n){if(void 0!==t&&(void 0===n&&(n=!0),0!==p.slides.length)){var i=p.slides.eq(t),r=i.find(".swiper-lazy:not(.swiper-lazy-loaded):not(.swiper-lazy-loading)");!i.hasClass("swiper-lazy")||i.hasClass("swiper-lazy-loaded")||i.hasClass("swiper-lazy-loading")||(r=r.add(i[0])),0!==r.length&&r.each((function(){var t=e(this);t.addClass("swiper-lazy-loading");var r=t.attr("data-background"),o=t.attr("data-src"),a=t.attr("data-srcset");p.loadImage(t[0],o||r,a,!1,(function(){if(r?(t.css("background-image","url("+r+")"),t.removeAttr("data-background")):(a&&(t.attr("srcset",a),t.removeAttr("data-srcset")),o&&(t.attr("src",o),t.removeAttr("data-src"))),t.addClass("swiper-lazy-loaded").removeClass("swiper-lazy-loading"),i.find(".swiper-lazy-preloader, .preloader").remove(),p.params.loop&&n){var e=i.attr("data-swiper-slide-index");if(i.hasClass(p.params.slideDuplicateClass)){var s=p.wrapper.children('[data-swiper-slide-index="'+e+'"]:not(.'+p.params.slideDuplicateClass+")");p.lazy.loadImageInSlide(s.index(),!1)}else{var l=p.wrapper.children("."+p.params.slideDuplicateClass+'[data-swiper-slide-index="'+e+'"]');p.lazy.loadImageInSlide(l.index(),!1)}}p.emit("onLazyImageReady",p,i[0],t[0])})),p.emit("onLazyImageLoad",p,i[0],t[0])}))}},load:function(){var t;if(p.params.watchSlidesVisibility)p.wrapper.children("."+p.params.slideVisibleClass).each((function(){p.lazy.loadImageInSlide(e(this).index())}));else if(p.params.slidesPerView>1)for(t=p.activeIndex;t<p.activeIndex+p.params.slidesPerView;t++)p.slides[t]&&p.lazy.loadImageInSlide(t);else p.lazy.loadImageInSlide(p.activeIndex);if(p.params.lazyLoadingInPrevNext)if(p.params.slidesPerView>1){for(t=p.activeIndex+p.params.slidesPerView;t<p.activeIndex+p.params.slidesPerView+p.params.slidesPerView;t++)p.slides[t]&&p.lazy.loadImageInSlide(t);for(t=p.activeIndex-p.params.slidesPerView;t<p.activeIndex;t++)p.slides[t]&&p.lazy.loadImageInSlide(t)}else{var n=p.wrapper.children("."+p.params.slideNextClass);n.length>0&&p.lazy.loadImageInSlide(n.index());var i=p.wrapper.children("."+p.params.slidePrevClass);i.length>0&&p.lazy.loadImageInSlide(i.index())}},onTransitionStart:function(){p.params.lazyLoading&&(p.params.lazyLoadingOnTransitionStart||!p.params.lazyLoadingOnTransitionStart&&!p.lazy.initialImageLoaded)&&p.lazy.load()},onTransitionEnd:function(){p.params.lazyLoading&&!p.params.lazyLoadingOnTransitionStart&&p.lazy.load()}},p.scrollbar={isTouched:!1,setDragPosition:function(e){var t=p.scrollbar,n=(P()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageX:e.pageX||e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageY:e.pageY||e.clientY)-t.track.offset()[P()?"left":"top"]-t.dragSize/2,i=-p.minTranslate()*t.moveDivider,r=-p.maxTranslate()*t.moveDivider;n<i?n=i:n>r&&(n=r),n=-n/t.moveDivider,p.updateProgress(n),p.setWrapperTranslate(n,!0)},dragStart:function(e){var t=p.scrollbar;t.isTouched=!0,e.preventDefault(),e.stopPropagation(),t.setDragPosition(e),clearTimeout(t.dragTimeout),t.track.transition(0),p.params.scrollbarHide&&t.track.css("opacity",1),p.wrapper.transition(100),t.drag.transition(100),p.emit("onScrollbarDragStart",p)},dragMove:function(e){var t=p.scrollbar;t.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,t.setDragPosition(e),p.wrapper.transition(0),t.track.transition(0),t.drag.transition(0),p.emit("onScrollbarDragMove",p))},dragEnd:function(e){var t=p.scrollbar;t.isTouched&&(t.isTouched=!1,p.params.scrollbarHide&&(clearTimeout(t.dragTimeout),t.dragTimeout=setTimeout((function(){t.track.css("opacity",0),t.track.transition(400)}),1e3)),p.emit("onScrollbarDragEnd",p),p.params.scrollbarSnapOnRelease&&p.slideReset())},enableDraggable:function(){var t=p.scrollbar,n=p.support.touch?t.track:document;e(t.track).on(p.touchEvents.start,t.dragStart),e(n).on(p.touchEvents.move,t.dragMove),e(n).on(p.touchEvents.end,t.dragEnd)},disableDraggable:function(){var t=p.scrollbar,n=p.support.touch?t.track:document;e(t.track).off(p.touchEvents.start,t.dragStart),e(n).off(p.touchEvents.move,t.dragMove),e(n).off(p.touchEvents.end,t.dragEnd)},set:function(){if(p.params.scrollbar){var t=p.scrollbar;t.track=e(p.params.scrollbar),t.drag=t.track.find(".swiper-scrollbar-drag"),0===t.drag.length&&(t.drag=e('<div class="swiper-scrollbar-drag"></div>'),t.track.append(t.drag)),t.drag[0].style.width="",t.drag[0].style.height="",t.trackSize=P()?t.track[0].offsetWidth:t.track[0].offsetHeight,t.divider=p.size/p.virtualSize,t.moveDivider=t.divider*(t.trackSize/p.size),t.dragSize=t.trackSize*t.divider,P()?t.drag[0].style.width=t.dragSize+"px":t.drag[0].style.height=t.dragSize+"px",t.divider>=1?t.track[0].style.display="none":t.track[0].style.display="",p.params.scrollbarHide&&(t.track[0].style.opacity=0)}},setTranslate:function(){if(p.params.scrollbar){var e,t=p.scrollbar,n=(p.translate,t.dragSize);e=(t.trackSize-t.dragSize)*p.progress,p.rtl&&P()?(e=-e)>0?(n=t.dragSize-e,e=0):-e+t.dragSize>t.trackSize&&(n=t.trackSize+e):e<0?(n=t.dragSize+e,e=0):e+t.dragSize>t.trackSize&&(n=t.trackSize-e),P()?(p.support.transforms3d?t.drag.transform("translate3d("+e+"px, 0, 0)"):t.drag.transform("translateX("+e+"px)"),t.drag[0].style.width=n+"px"):(p.support.transforms3d?t.drag.transform("translate3d(0px, "+e+"px, 0)"):t.drag.transform("translateY("+e+"px)"),t.drag[0].style.height=n+"px"),p.params.scrollbarHide&&(clearTimeout(t.timeout),t.track[0].style.opacity=1,t.timeout=setTimeout((function(){t.track[0].style.opacity=0,t.track.transition(400)}),1e3))}},setTransition:function(e){p.params.scrollbar&&p.scrollbar.drag.transition(e)}},p.controller={LinearSpline:function(e,t){var n,i;this.x=e,this.y=t,this.lastIndex=e.length-1,this.x.length,this.interpolate=function(e){return e?(i=s(this.x,e),n=i-1,(e-this.x[n])*(this.y[i]-this.y[n])/(this.x[i]-this.x[n])+this.y[n]):0};var r,o,a,s=function(e,t){for(o=-1,r=e.length;r-o>1;)e[a=r+o>>1]<=t?o=a:r=a;return r}},getInterpolateFunction:function(e){p.controller.spline||(p.controller.spline=p.params.loop?new p.controller.LinearSpline(p.slidesGrid,e.slidesGrid):new p.controller.LinearSpline(p.snapGrid,e.snapGrid))},setTranslate:function(e,t){var n,r,o=p.params.control;function a(t){e=t.rtl&&"horizontal"===t.params.direction?-p.translate:p.translate,"slide"===p.params.controlBy&&(p.controller.getInterpolateFunction(t),r=-p.controller.spline.interpolate(-e)),r&&"container"!==p.params.controlBy||(n=(t.maxTranslate()-t.minTranslate())/(p.maxTranslate()-p.minTranslate()),r=(e-p.minTranslate())*n+t.minTranslate()),p.params.controlInverse&&(r=t.maxTranslate()-r),t.updateProgress(r),t.setWrapperTranslate(r,!1,p),t.updateActiveIndex()}if(p.isArray(o))for(var s=0;s<o.length;s++)o[s]!==t&&o[s]instanceof i&&a(o[s]);else o instanceof i&&t!==o&&a(o)},setTransition:function(e,t){var n,r=p.params.control;function o(t){t.setWrapperTransition(e,p),0!==e&&(t.onTransitionStart(),t.wrapper.transitionEnd((function(){r&&(t.params.loop&&"slide"===p.params.controlBy&&t.fixLoop(),t.onTransitionEnd())})))}if(p.isArray(r))for(n=0;n<r.length;n++)r[n]!==t&&r[n]instanceof i&&o(r[n]);else r instanceof i&&t!==r&&o(r)}},p.hashnav={init:function(){if(p.params.hashnav){p.hashnav.initialized=!0;var e=document.location.hash.replace("#","");if(e)for(var t=0,n=p.slides.length;t<n;t++){var i=p.slides.eq(t);if(i.attr("data-hash")===e&&!i.hasClass(p.params.slideDuplicateClass)){var r=i.index();p.slideTo(r,0,p.params.runCallbacksOnInit,!0)}}}},setHash:function(){p.hashnav.initialized&&p.params.hashnav&&(document.location.hash=p.slides.eq(p.activeIndex).attr("data-hash")||"")}},p.disableKeyboardControl=function(){p.params.keyboardControl=!1,e(document).off("keydown",H)},p.enableKeyboardControl=function(){p.params.keyboardControl=!0,e(document).on("keydown",H)},p.mousewheel={event:!1,lastScrollTime:(new window.Date).getTime()},p.params.mousewheelControl){try{new window.WheelEvent("wheel"),p.mousewheel.event="wheel"}catch(e){}p.mousewheel.event||void 0===document.onmousewheel||(p.mousewheel.event="mousewheel"),p.mousewheel.event||(p.mousewheel.event="DOMMouseScroll")}for(var E in p.disableMousewheelControl=function(){return!!p.mousewheel.event&&(p.container.off(p.mousewheel.event,B),!0)},p.enableMousewheelControl=function(){return!!p.mousewheel.event&&(p.container.on(p.mousewheel.event,B),!0)},p.parallax={setTranslate:function(){p.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each((function(){N(this,p.progress)})),p.slides.each((function(){var t=e(this);t.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each((function(){N(this,Math.min(Math.max(t[0].progress,-1),1))}))}))},setTransition:function(t){void 0===t&&(t=p.params.speed),p.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each((function(){var n=e(this),i=parseInt(n.attr("data-swiper-parallax-duration"),10)||t;0===t&&(i=0),n.transition(i)}))}},p._plugins=[],p.plugins){var A=p.plugins[E](p,p.params[E]);A&&p._plugins.push(A)}return p.callPlugins=function(e){for(var t=0;t<p._plugins.length;t++)e in p._plugins[t]&&p._plugins[t][e](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])},p.emitterEventListeners={},p.emit=function(e){var t;if(p.params[e]&&p.params[e](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]),p.emitterEventListeners[e])for(t=0;t<p.emitterEventListeners[e].length;t++)p.emitterEventListeners[e][t](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);p.callPlugins&&p.callPlugins(e,arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])},p.on=function(e,t){return e=R(e),p.emitterEventListeners[e]||(p.emitterEventListeners[e]=[]),p.emitterEventListeners[e].push(t),p},p.off=function(e,t){var n;if(e=R(e),void 0===t)return p.emitterEventListeners[e]=[],p;if(p.emitterEventListeners[e]&&0!==p.emitterEventListeners[e].length){for(n=0;n<p.emitterEventListeners[e].length;n++)p.emitterEventListeners[e][n]===t&&p.emitterEventListeners[e].splice(n,1);return p}},p.once=function(e,t){e=R(e);var n=function(){t(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]),p.off(e,n)};return p.on(e,n),p},p.a11y={makeFocusable:function(e){return e.attr("tabIndex","0"),e},addRole:function(e,t){return e.attr("role",t),e},addLabel:function(e,t){return e.attr("aria-label",t),e},disable:function(e){return e.attr("aria-disabled",!0),e},enable:function(e){return e.attr("aria-disabled",!1),e},onEnterKey:function(t){13===t.keyCode&&(e(t.target).is(p.params.nextButton)?(p.onClickNext(t),p.isEnd?p.a11y.notify(p.params.lastSlideMessage):p.a11y.notify(p.params.nextSlideMessage)):e(t.target).is(p.params.prevButton)&&(p.onClickPrev(t),p.isBeginning?p.a11y.notify(p.params.firstSlideMessage):p.a11y.notify(p.params.prevSlideMessage)),e(t.target).is("."+p.params.bulletClass)&&e(t.target)[0].click())},liveRegion:e('<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>'),notify:function(e){var t=p.a11y.liveRegion;0!==t.length&&(t.html(""),t.html(e))},init:function(){if(p.params.nextButton){var t=e(p.params.nextButton);p.a11y.makeFocusable(t),p.a11y.addRole(t,"button"),p.a11y.addLabel(t,p.params.nextSlideMessage)}if(p.params.prevButton){var n=e(p.params.prevButton);p.a11y.makeFocusable(n),p.a11y.addRole(n,"button"),p.a11y.addLabel(n,p.params.prevSlideMessage)}e(p.container).append(p.a11y.liveRegion)},initPagination:function(){p.params.pagination&&p.params.paginationClickable&&p.bullets&&p.bullets.length&&p.bullets.each((function(){var t=e(this);p.a11y.makeFocusable(t),p.a11y.addRole(t,"button"),p.a11y.addLabel(t,p.params.paginationBulletMessage.replace(/{{index}}/,t.index()+1))}))},destroy:function(){p.a11y.liveRegion&&p.a11y.liveRegion.length>0&&p.a11y.liveRegion.remove()}},p.init=function(){p.params.loop&&p.createLoop(),p.updateContainerSize(),p.updateSlidesSize(),p.updatePagination(),p.params.scrollbar&&p.scrollbar&&(p.scrollbar.set(),p.params.scrollbarDraggable&&p.scrollbar.enableDraggable()),"slide"!==p.params.effect&&p.effects[p.params.effect]&&(p.params.loop||p.updateProgress(),p.effects[p.params.effect].setTranslate()),p.params.loop?p.slideTo(p.params.initialSlide+p.loopedSlides,0,p.params.runCallbacksOnInit):(p.slideTo(p.params.initialSlide,0,p.params.runCallbacksOnInit),0===p.params.initialSlide&&(p.parallax&&p.params.parallax&&p.parallax.setTranslate(),p.lazy&&p.params.lazyLoading&&(p.lazy.load(),p.lazy.initialImageLoaded=!0))),p.attachEvents(),p.params.observer&&p.support.observer&&p.initObservers(),p.params.preloadImages&&!p.params.lazyLoading&&p.preloadImages(),p.params.autoplay&&p.startAutoplay(),p.params.keyboardControl&&p.enableKeyboardControl&&p.enableKeyboardControl(),p.params.mousewheelControl&&p.enableMousewheelControl&&p.enableMousewheelControl(),p.params.hashnav&&p.hashnav&&p.hashnav.init(),p.params.a11y&&p.a11y&&p.a11y.init(),p.emit("onInit",p)},p.cleanupStyles=function(){p.container.removeClass(p.classNames.join(" ")).removeAttr("style"),p.wrapper.removeAttr("style"),p.slides&&p.slides.length&&p.slides.removeClass([p.params.slideVisibleClass,p.params.slideActiveClass,p.params.slideNextClass,p.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"),p.paginationContainer&&p.paginationContainer.length&&p.paginationContainer.removeClass(p.params.paginationHiddenClass),p.bullets&&p.bullets.length&&p.bullets.removeClass(p.params.bulletActiveClass),p.params.prevButton&&e(p.params.prevButton).removeClass(p.params.buttonDisabledClass),p.params.nextButton&&e(p.params.nextButton).removeClass(p.params.buttonDisabledClass),p.params.scrollbar&&p.scrollbar&&(p.scrollbar.track&&p.scrollbar.track.length&&p.scrollbar.track.removeAttr("style"),p.scrollbar.drag&&p.scrollbar.drag.length&&p.scrollbar.drag.removeAttr("style"))},p.destroy=function(e,t){p.detachEvents(),p.stopAutoplay(),p.params.scrollbar&&p.scrollbar&&p.params.scrollbarDraggable&&p.scrollbar.disableDraggable(),p.params.loop&&p.destroyLoop(),t&&p.cleanupStyles(),p.disconnectObservers(),p.params.keyboardControl&&p.disableKeyboardControl&&p.disableKeyboardControl(),p.params.mousewheelControl&&p.disableMousewheelControl&&p.disableMousewheelControl(),p.params.a11y&&p.a11y&&p.a11y.destroy(),p.emit("onDestroy"),!1!==e&&(p=null)},p.init(),p}p.container.each((function(){new i(this,n)}))}function P(){return"horizontal"===p.params.direction}function Y(e){return Math.floor(e)}function O(){p.autoplayTimeoutId=setTimeout((function(){p.params.loop?(p.fixLoop(),p._slideNext()):p.isEnd?n.autoplayStopOnLast?p.stopAutoplay():p._slideTo(0):p._slideNext()}),p.params.autoplay)}function I(t,n){var i=e(t.target);if(!i.is(n))if("string"==typeof n)i=i.parents(n);else if(n.nodeType){var r;return i.parents().each((function(e,t){t===n&&(r=n)})),r?n:void 0}if(0!==i.length)return i[0]}function j(e,t){t=t||{};var n=new(window.MutationObserver||window.WebkitMutationObserver)((function(e){e.forEach((function(e){p.onResize(!0),p.emit("onObserverUpdate",p,e)}))}));n.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),p.observers.push(n)}function H(e){e.originalEvent&&(e=e.originalEvent);var t=e.keyCode||e.charCode;if(!p.params.allowSwipeToNext&&(P()&&39===t||!P()&&40===t))return!1;if(!p.params.allowSwipeToPrev&&(P()&&37===t||!P()&&38===t))return!1;if(!(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey||document.activeElement&&document.activeElement.nodeName&&("input"===document.activeElement.nodeName.toLowerCase()||"textarea"===document.activeElement.nodeName.toLowerCase()))){if(37===t||39===t||38===t||40===t){var n=!1;if(p.container.parents(".swiper-slide").length>0&&0===p.container.parents(".swiper-slide-active").length)return;var i={left:window.pageXOffset,top:window.pageYOffset},r=window.innerWidth,o=window.innerHeight,a=p.container.offset();p.rtl&&(a.left=a.left-p.container[0].scrollLeft);for(var s=[[a.left,a.top],[a.left+p.width,a.top],[a.left,a.top+p.height],[a.left+p.width,a.top+p.height]],l=0;l<s.length;l++){var u=s[l];u[0]>=i.left&&u[0]<=i.left+r&&u[1]>=i.top&&u[1]<=i.top+o&&(n=!0)}if(!n)return}P()?(37!==t&&39!==t||(e.preventDefault?e.preventDefault():e.returnValue=!1),(39===t&&!p.rtl||37===t&&p.rtl)&&p.slideNext(),(37===t&&!p.rtl||39===t&&p.rtl)&&p.slidePrev()):(38!==t&&40!==t||(e.preventDefault?e.preventDefault():e.returnValue=!1),40===t&&p.slideNext(),38===t&&p.slidePrev())}}function B(e){e.originalEvent&&(e=e.originalEvent);var t=p.mousewheel.event,n=0,i=p.rtl?-1:1;if(e.detail)n=-e.detail;else if("mousewheel"===t)if(p.params.mousewheelForceToAxis)if(P()){if(!(Math.abs(e.wheelDeltaX)>Math.abs(e.wheelDeltaY)))return;n=e.wheelDeltaX*i}else{if(!(Math.abs(e.wheelDeltaY)>Math.abs(e.wheelDeltaX)))return;n=e.wheelDeltaY}else n=Math.abs(e.wheelDeltaX)>Math.abs(e.wheelDeltaY)?-e.wheelDeltaX*i:-e.wheelDeltaY;else if("DOMMouseScroll"===t)n=-e.detail;else if("wheel"===t)if(p.params.mousewheelForceToAxis)if(P()){if(!(Math.abs(e.deltaX)>Math.abs(e.deltaY)))return;n=-e.deltaX*i}else{if(!(Math.abs(e.deltaY)>Math.abs(e.deltaX)))return;n=-e.deltaY}else n=Math.abs(e.deltaX)>Math.abs(e.deltaY)?-e.deltaX*i:-e.deltaY;if(0!==n){if(p.params.mousewheelInvert&&(n=-n),p.params.freeMode){var r=p.getWrapperTranslate()+n*p.params.mousewheelSensitivity,o=p.isBeginning,a=p.isEnd;if(r>=p.minTranslate()&&(r=p.minTranslate()),r<=p.maxTranslate()&&(r=p.maxTranslate()),p.setWrapperTransition(0),p.setWrapperTranslate(r),p.updateProgress(),p.updateActiveIndex(),(!o&&p.isBeginning||!a&&p.isEnd)&&p.updateClasses(),p.params.freeModeSticky&&(clearTimeout(p.mousewheel.timeout),p.mousewheel.timeout=setTimeout((function(){p.slideReset()}),300)),0===r||r===p.maxTranslate())return}else{if((new window.Date).getTime()-p.mousewheel.lastScrollTime>60)if(n<0)if(p.isEnd&&!p.params.loop||p.animating){if(p.params.mousewheelReleaseOnEdges)return!0}else p.slideNext();else if(p.isBeginning&&!p.params.loop||p.animating){if(p.params.mousewheelReleaseOnEdges)return!0}else p.slidePrev();p.mousewheel.lastScrollTime=(new window.Date).getTime()}return p.params.autoplay&&p.stopAutoplay(),e.preventDefault?e.preventDefault():e.returnValue=!1,!1}}function N(t,n){var i,r,o;t=e(t);var a=p.rtl?-1:1;i=t.attr("data-swiper-parallax")||"0",r=t.attr("data-swiper-parallax-x"),o=t.attr("data-swiper-parallax-y"),r||o?(r=r||"0",o=o||"0"):P()?(r=i,o="0"):(o=i,r="0"),r=r.indexOf("%")>=0?parseInt(r,10)*n*a+"%":r*n*a+"px",o=o.indexOf("%")>=0?parseInt(o,10)*n+"%":o*n+"px",t.transform("translate3d("+r+", "+o+",0px)")}function R(e){return 0!==e.indexOf("on")&&(e=e[0]!==e[0].toUpperCase()?"on"+e[0].toUpperCase()+e.substring(1):"on"+e),e}};i.prototype={isSafari:(n=navigator.userAgent.toLowerCase(),n.indexOf("safari")>=0&&n.indexOf("chrome")<0&&n.indexOf("android")<0),isUiWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent),isArray:function(e){return"[object Array]"===Object.prototype.toString.apply(e)},browser:{ie:window.navigator.pointerEnabled||window.navigator.msPointerEnabled,ieTouch:window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>1||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>1},device:function(){var e=navigator.userAgent,t=e.match(/(Android);?[\s\/]+([\d.]+)?/),n=e.match(/(iPad).*OS\s([\d_]+)/),i=e.match(/(iPod)(.*OS\s([\d_]+))?/),r=!n&&e.match(/(iPhone\sOS)\s([\d_]+)/);return{ios:n||r||i,android:t}}(),support:{touch:window.Modernizr&&!0===Modernizr.touch||!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch),transforms3d:window.Modernizr&&!0===Modernizr.csstransforms3d||(t=document.createElement("div").style,"webkitPerspective"in t||"MozPerspective"in t||"OPerspective"in t||"MsPerspective"in t||"perspective"in t),flexbox:function(){for(var e=document.createElement("div").style,t="alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "),n=0;n<t.length;n++)if(t[n]in e)return!0}(),observer:"MutationObserver"in window||"WebkitMutationObserver"in window},plugins:{}};for(var r,o=function(){var e=function(e){var t=0;for(t=0;t<e.length;t++)this[t]=e[t];return this.length=e.length,this},t=function(t,n){var i=[],r=0;if(t&&!n&&t instanceof e)return t;if(t)if("string"==typeof t){var o,a,s=t.trim();if(s.indexOf("<")>=0&&s.indexOf(">")>=0){var l="div";for(0===s.indexOf("<li")&&(l="ul"),0===s.indexOf("<tr")&&(l="tbody"),0!==s.indexOf("<td")&&0!==s.indexOf("<th")||(l="tr"),0===s.indexOf("<tbody")&&(l="table"),0===s.indexOf("<option")&&(l="select"),(a=document.createElement(l)).innerHTML=t,r=0;r<a.childNodes.length;r++)i.push(a.childNodes[r])}else for(o=n||"#"!==t[0]||t.match(/[ .<>:~]/)?(n||document).querySelectorAll(t):[document.getElementById(t.split("#")[1])],r=0;r<o.length;r++)o[r]&&i.push(o[r])}else if(t.nodeType||t===window||t===document)i.push(t);else if(t.length>0&&t[0].nodeType)for(r=0;r<t.length;r++)i.push(t[r]);return new e(i)};return e.prototype={addClass:function(e){if(void 0===e)return this;for(var t=e.split(" "),n=0;n<t.length;n++)for(var i=0;i<this.length;i++)this[i].classList.add(t[n]);return this},removeClass:function(e){for(var t=e.split(" "),n=0;n<t.length;n++)for(var i=0;i<this.length;i++)this[i].classList.remove(t[n]);return this},hasClass:function(e){return!!this[0]&&this[0].classList.contains(e)},toggleClass:function(e){for(var t=e.split(" "),n=0;n<t.length;n++)for(var i=0;i<this.length;i++)this[i].classList.toggle(t[n]);return this},attr:function(e,t){if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(var n=0;n<this.length;n++)if(2===arguments.length)this[n].setAttribute(e,t);else for(var i in e)this[n][i]=e[i],this[n].setAttribute(i,e[i]);return this},removeAttr:function(e){for(var t=0;t<this.length;t++)this[t].removeAttribute(e);return this},data:function(e,t){if(void 0!==t){for(var n=0;n<this.length;n++){var i=this[n];i.dom7ElementDataStorage||(i.dom7ElementDataStorage={}),i.dom7ElementDataStorage[e]=t}return this}if(this[0])return this[0].getAttribute("data-"+e)||(this[0].dom7ElementDataStorage&&e in this[0].dom7ElementDataStorage?this[0].dom7ElementDataStorage[e]:void 0)},transform:function(e){for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransform=n.MsTransform=n.msTransform=n.MozTransform=n.OTransform=n.transform=e}return this},transition:function(e){"string"!=typeof e&&(e+="ms");for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransitionDuration=n.MsTransitionDuration=n.msTransitionDuration=n.MozTransitionDuration=n.OTransitionDuration=n.transitionDuration=e}return this},on:function(e,n,i,r){function o(e){var r=e.target;if(t(r).is(n))i.call(r,e);else for(var o=t(r).parents(),a=0;a<o.length;a++)t(o[a]).is(n)&&i.call(o[a],e)}var a,s,l=e.split(" ");for(a=0;a<this.length;a++)if("function"==typeof n||!1===n)for("function"==typeof n&&(i=arguments[1],r=arguments[2]||!1),s=0;s<l.length;s++)this[a].addEventListener(l[s],i,r);else for(s=0;s<l.length;s++)this[a].dom7LiveListeners||(this[a].dom7LiveListeners=[]),this[a].dom7LiveListeners.push({listener:i,liveListener:o}),this[a].addEventListener(l[s],o,r);return this},off:function(e,t,n,i){for(var r=e.split(" "),o=0;o<r.length;o++)for(var a=0;a<this.length;a++)if("function"==typeof t||!1===t)"function"==typeof t&&(n=arguments[1],i=arguments[2]||!1),this[a].removeEventListener(r[o],n,i);else if(this[a].dom7LiveListeners)for(var s=0;s<this[a].dom7LiveListeners.length;s++)this[a].dom7LiveListeners[s].listener===n&&this[a].removeEventListener(r[o],this[a].dom7LiveListeners[s].liveListener,i);return this},once:function(e,t,n,i){var r=this;function o(a){n(a),r.off(e,t,o,i)}"function"==typeof t&&(t=!1,n=arguments[1],i=arguments[2]),r.on(e,t,o,i)},trigger:function(e,t){for(var n=0;n<this.length;n++){var i;try{i=new window.CustomEvent(e,{detail:t,bubbles:!0,cancelable:!0})}catch(n){(i=document.createEvent("Event")).initEvent(e,!0,!0),i.detail=t}this[n].dispatchEvent(i)}return this},transitionEnd:function(e){var t,n=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],i=this;function r(o){if(o.target===this)for(e.call(this,o),t=0;t<n.length;t++)i.off(n[t],r)}if(e)for(t=0;t<n.length;t++)i.on(n[t],r);return this},width:function(){return this[0]===window?window.innerWidth:this.length>0?parseFloat(this.css("width")):null},outerWidth:function(e){return this.length>0?e?this[0].offsetWidth+parseFloat(this.css("margin-right"))+parseFloat(this.css("margin-left")):this[0].offsetWidth:null},height:function(){return this[0]===window?window.innerHeight:this.length>0?parseFloat(this.css("height")):null},outerHeight:function(e){return this.length>0?e?this[0].offsetHeight+parseFloat(this.css("margin-top"))+parseFloat(this.css("margin-bottom")):this[0].offsetHeight:null},offset:function(){if(this.length>0){var e=this[0],t=e.getBoundingClientRect(),n=document.body,i=e.clientTop||n.clientTop||0,r=e.clientLeft||n.clientLeft||0,o=window.pageYOffset||e.scrollTop,a=window.pageXOffset||e.scrollLeft;return{top:t.top+o-i,left:t.left+a-r}}return null},css:function(e,t){var n;if(1===arguments.length){if("string"!=typeof e){for(n=0;n<this.length;n++)for(var i in e)this[n].style[i]=e[i];return this}if(this[0])return window.getComputedStyle(this[0],null).getPropertyValue(e)}if(2===arguments.length&&"string"==typeof e){for(n=0;n<this.length;n++)this[n].style[e]=t;return this}return this},each:function(e){for(var t=0;t<this.length;t++)e.call(this[t],t,this[t]);return this},html:function(e){if(void 0===e)return this[0]?this[0].innerHTML:void 0;for(var t=0;t<this.length;t++)this[t].innerHTML=e;return this},is:function(n){if(!this[0])return!1;var i,r;if("string"==typeof n){var o=this[0];if(o===document)return n===document;if(o===window)return n===window;if(o.matches)return o.matches(n);if(o.webkitMatchesSelector)return o.webkitMatchesSelector(n);if(o.mozMatchesSelector)return o.mozMatchesSelector(n);if(o.msMatchesSelector)return o.msMatchesSelector(n);for(i=t(n),r=0;r<i.length;r++)if(i[r]===this[0])return!0;return!1}if(n===document)return this[0]===document;if(n===window)return this[0]===window;if(n.nodeType||n instanceof e){for(i=n.nodeType?[n]:n,r=0;r<i.length;r++)if(i[r]===this[0])return!0;return!1}return!1},index:function(){if(this[0]){for(var e=this[0],t=0;null!==(e=e.previousSibling);)1===e.nodeType&&t++;return t}},eq:function(t){if(void 0===t)return this;var n,i=this.length;return new e(t>i-1?[]:t<0?(n=i+t)<0?[]:[this[n]]:[this[t]])},append:function(t){var n,i;for(n=0;n<this.length;n++)if("string"==typeof t){var r=document.createElement("div");for(r.innerHTML=t;r.firstChild;)this[n].appendChild(r.firstChild)}else if(t instanceof e)for(i=0;i<t.length;i++)this[n].appendChild(t[i]);else this[n].appendChild(t);return this},prepend:function(t){var n,i;for(n=0;n<this.length;n++)if("string"==typeof t){var r=document.createElement("div");for(r.innerHTML=t,i=r.childNodes.length-1;i>=0;i--)this[n].insertBefore(r.childNodes[i],this[n].childNodes[0])}else if(t instanceof e)for(i=0;i<t.length;i++)this[n].insertBefore(t[i],this[n].childNodes[0]);else this[n].insertBefore(t,this[n].childNodes[0]);return this},insertBefore:function(e){for(var n=t(e),i=0;i<this.length;i++)if(1===n.length)n[0].parentNode.insertBefore(this[i],n[0]);else if(n.length>1)for(var r=0;r<n.length;r++)n[r].parentNode.insertBefore(this[i].cloneNode(!0),n[r])},insertAfter:function(e){for(var n=t(e),i=0;i<this.length;i++)if(1===n.length)n[0].parentNode.insertBefore(this[i],n[0].nextSibling);else if(n.length>1)for(var r=0;r<n.length;r++)n[r].parentNode.insertBefore(this[i].cloneNode(!0),n[r].nextSibling)},next:function(n){return this.length>0?n?this[0].nextElementSibling&&t(this[0].nextElementSibling).is(n)?new e([this[0].nextElementSibling]):new e([]):this[0].nextElementSibling?new e([this[0].nextElementSibling]):new e([]):new e([])},nextAll:function(n){var i=[],r=this[0];if(!r)return new e([]);for(;r.nextElementSibling;){var o=r.nextElementSibling;n?t(o).is(n)&&i.push(o):i.push(o),r=o}return new e(i)},prev:function(n){return this.length>0?n?this[0].previousElementSibling&&t(this[0].previousElementSibling).is(n)?new e([this[0].previousElementSibling]):new e([]):this[0].previousElementSibling?new e([this[0].previousElementSibling]):new e([]):new e([])},prevAll:function(n){var i=[],r=this[0];if(!r)return new e([]);for(;r.previousElementSibling;){var o=r.previousElementSibling;n?t(o).is(n)&&i.push(o):i.push(o),r=o}return new e(i)},parent:function(e){for(var n=[],i=0;i<this.length;i++)e?t(this[i].parentNode).is(e)&&n.push(this[i].parentNode):n.push(this[i].parentNode);return t(t.unique(n))},parents:function(e){for(var n=[],i=0;i<this.length;i++)for(var r=this[i].parentNode;r;)e?t(r).is(e)&&n.push(r):n.push(r),r=r.parentNode;return t(t.unique(n))},find:function(t){for(var n=[],i=0;i<this.length;i++)for(var r=this[i].querySelectorAll(t),o=0;o<r.length;o++)n.push(r[o]);return new e(n)},children:function(n){for(var i=[],r=0;r<this.length;r++)for(var o=this[r].childNodes,a=0;a<o.length;a++)n?1===o[a].nodeType&&t(o[a]).is(n)&&i.push(o[a]):1===o[a].nodeType&&i.push(o[a]);return new e(t.unique(i))},remove:function(){for(var e=0;e<this.length;e++)this[e].parentNode&&this[e].parentNode.removeChild(this[e]);return this},add:function(){var e,n,i=this;for(e=0;e<arguments.length;e++){var r=t(arguments[e]);for(n=0;n<r.length;n++)i[i.length]=r[n],i.length++}return i}},t.fn=e.prototype,t.unique=function(e){for(var t=[],n=0;n<e.length;n++)-1===t.indexOf(e[n])&&t.push(e[n]);return t},t}(),a=["jQuery","Zepto","Dom7"],s=0;s<a.length;s++)window[a[s]]&&l(window[a[s]]);function l(e){e.fn.swiper=function(t){var n;return e(this).each((function(){var e=new i(this,t);n||(n=e)})),n}}(r=void 0===o?window.Dom7||window.Zepto||window.jQuery:o)&&("transitionEnd"in r.fn||(r.fn.transitionEnd=function(e){var t,n=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],i=this;function r(o){if(o.target===this)for(e.call(this,o),t=0;t<n.length;t++)i.off(n[t],r)}if(e)for(t=0;t<n.length;t++)i.on(n[t],r);return this}),"transform"in r.fn||(r.fn.transform=function(e){for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransform=n.MsTransform=n.msTransform=n.MozTransform=n.OTransform=n.transform=e}return this}),"transition"in r.fn||(r.fn.transition=function(e){"string"!=typeof e&&(e+="ms");for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransitionDuration=n.MsTransitionDuration=n.msTransitionDuration=n.MozTransitionDuration=n.OTransitionDuration=n.transitionDuration=e}return this})),ionic.views.Swiper=i}(),function(e){"use strict";e.views.Toggle=e.views.View.inherit({initialize:function(t){var n=this;this.el=t.el,this.checkbox=t.checkbox,this.track=t.track,this.handle=t.handle,this.openPercent=-1,this.onChange=t.onChange||function(){},this.triggerThreshold=t.triggerThreshold||20,this.dragStartHandler=function(e){n.dragStart(e)},this.dragHandler=function(e){n.drag(e)},this.holdHandler=function(e){n.hold(e)},this.releaseHandler=function(e){n.release(e)},this.dragStartGesture=e.onGesture("dragstart",this.dragStartHandler,this.el),this.dragGesture=e.onGesture("drag",this.dragHandler,this.el),this.dragHoldGesture=e.onGesture("hold",this.holdHandler,this.el),this.dragReleaseGesture=e.onGesture("release",this.releaseHandler,this.el)},destroy:function(){e.offGesture(this.dragStartGesture,"dragstart",this.dragStartGesture),e.offGesture(this.dragGesture,"drag",this.dragGesture),e.offGesture(this.dragHoldGesture,"hold",this.holdHandler),e.offGesture(this.dragReleaseGesture,"release",this.releaseHandler)},tap:function(){"disabled"!==this.el.getAttribute("disabled")&&this.val(!this.checkbox.checked)},dragStart:function(e){this.checkbox.disabled||(this._dragInfo={width:this.el.offsetWidth,left:this.el.offsetLeft,right:this.el.offsetLeft+this.el.offsetWidth,triggerX:this.el.offsetWidth/2,initialState:this.checkbox.checked},e.gesture.srcEvent.preventDefault(),this.hold(e))},drag:function(t){var n=this;this._dragInfo&&(t.gesture.srcEvent.preventDefault(),e.requestAnimationFrame((function(){if(n._dragInfo){var e=t.gesture.touches[0].pageX-n._dragInfo.left,i=n._dragInfo.width-n.triggerThreshold;n._dragInfo.initialState?e<n.triggerThreshold?n.setOpenPercent(0):e>n._dragInfo.triggerX&&n.setOpenPercent(100):e<n._dragInfo.triggerX?n.setOpenPercent(0):e>i&&n.setOpenPercent(100)}})))},endDrag:function(){this._dragInfo=null},hold:function(){this.el.classList.add("dragging")},release:function(e){this.el.classList.remove("dragging"),this.endDrag(e)},setOpenPercent:function(t){if(this.openPercent<0||t<this.openPercent-3||t>this.openPercent+3)if(this.openPercent=t,0===t)this.val(!1);else if(100===t)this.val(!0);else{var n=Math.round(t/100*this.track.offsetWidth-this.handle.offsetWidth);n=n<1?0:n,this.handle.style[e.CSS.TRANSFORM]="translate3d("+n+"px,0,0)"}},val:function(t){return!0!==t&&!1!==t||(""!==this.handle.style[e.CSS.TRANSFORM]&&(this.handle.style[e.CSS.TRANSFORM]=""),this.checkbox.checked=t,this.openPercent=t?100:0,this.onChange&&this.onChange()),this.checkbox.checked}})}(ionic)}(),
-/**
- * @license AngularJS v1.5.11
- * (c) 2010-2017 Google, Inc. http://angularjs.org
- * License: MIT
- */
-function(e){"use strict";function t(e,t){return t=t||Error,function(){var n,i,r=2,o=arguments,a=o[0],s="["+(e?e+":":"")+a+"] ",l=o[1];for(s+=l.replace(/\{\d+\}/g,(function(e){var t=+e.slice(1,-1)+r;return t<o.length?Ne(o[t]):e})),s+="\nhttp://errors.angularjs.org/1.5.11/"+(e?e+"/":"")+a,i=r,n="?";i<o.length;i++,n="&")s+=n+"p"+(i-r)+"="+encodeURIComponent(Ne(o[i]));return new t(s)}}var n=/^\/(.+)\/([a-z]*)$/,i="validity",r=Object.prototype.hasOwnProperty,o=function(e){return B(e)?e.toLowerCase():e},a=function(e){return B(e)?e.toUpperCase():e};"i"!=="I".toLowerCase()&&(o=function(e){return B(e)?e.replace(/[A-Z]/g,(function(e){return String.fromCharCode(32|e.charCodeAt(0))})):e},a=function(e){return B(e)?e.replace(/[a-z]/g,(function(e){return String.fromCharCode(-33&e.charCodeAt(0))})):e});var s,l,u,c,d=[].slice,h=[].splice,f=[].push,p=Object.prototype.toString,m=Object.getPrototypeOf,g=t("ng"),v=e.angular||(e.angular={}),_=0;function y(e){if(null==e||U(e))return!1;if(F(e)||B(e)||l&&e instanceof l)return!0;var t="length"in Object(e)&&e.length;return N(t)&&(t>=0&&(t-1 in e||e instanceof Array)||"function"==typeof e.item)}function b(e,t,n){var i,o;if(e)if(z(e))for(i in e)"prototype"===i||"length"===i||"name"===i||e.hasOwnProperty&&!e.hasOwnProperty(i)||t.call(n,e[i],i,e);else if(F(e)||y(e)){var a="object"!=typeof e;for(i=0,o=e.length;i<o;i++)(a||i in e)&&t.call(n,e[i],i,e)}else if(e.forEach&&e.forEach!==b)e.forEach(t,n,e);else if(H(e))for(i in e)t.call(n,e[i],i,e);else if("function"==typeof e.hasOwnProperty)for(i in e)e.hasOwnProperty(i)&&t.call(n,e[i],i,e);else for(i in e)r.call(e,i)&&t.call(n,e[i],i,e);return e}function w(e,t,n){for(var i=Object.keys(e).sort(),r=0;r<i.length;r++)t.call(n,e[i[r]],i[r]);return i}function L(e){return function(t,n){e(n,t)}}function M(){return++_}function k(e,t){t?e.$$hashKey=t:delete e.$$hashKey}function x(e,t,n){for(var i=e.$$hashKey,r=0,o=t.length;r<o;++r){var a=t[r];if(j(a)||z(a))for(var s=Object.keys(a),l=0,u=s.length;l<u;l++){var c=s[l],d=a[c];n&&j(d)?R(d)?e[c]=new Date(d.valueOf()):V(d)?e[c]=new RegExp(d):d.nodeName?e[c]=d.cloneNode(!0):K(d)?e[c]=d.clone():(j(e[c])||(e[c]=F(d)?[]:{}),x(e[c],[d],!0)):e[c]=d}}return k(e,i),e}function S(e){return x(e,d.call(arguments,1),!1)}function T(e){return x(e,d.call(arguments,1),!0)}function $(e){return parseInt(e,10)}s=e.document.documentMode;var D=Number.isNaN||function(e){return e!=e};function C(e,t){return S(Object.create(e),t)}function E(){}function A(e){return e}function P(e){return function(){return e}}function Y(e){return z(e.toString)&&e.toString!==p}function O(e){return void 0===e}function I(e){return void 0!==e}function j(e){return null!==e&&"object"==typeof e}function H(e){return null!==e&&"object"==typeof e&&!m(e)}function B(e){return"string"==typeof e}function N(e){return"number"==typeof e}function R(e){return"[object Date]"===p.call(e)}E.$inject=[],A.$inject=[];var F=Array.isArray;function z(e){return"function"==typeof e}function V(e){return"[object RegExp]"===p.call(e)}function U(e){return e&&e.window===e}function W(e){return e&&e.$evalAsync&&e.$watch}function q(e){return"boolean"==typeof e}function G(e){return e&&z(e.then)}var Z=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/,J=function(e){return B(e)?e.trim():e},X=function(e){return e.replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};function K(e){return!(!e||!(e.nodeName||e.prop&&e.attr&&e.find))}function Q(e){return o(e.nodeName||e[0]&&e[0].nodeName)}function ee(e,t){var n=e.indexOf(t);return n>=0&&e.splice(n,1),n}function te(e,t){var n,i=[],o=[];if(t){if(function(e){return e&&N(e.length)&&Z.test(p.call(e))}(t)||(n=t,"[object ArrayBuffer]"===p.call(n)))throw g("cpta","Can't copy! TypedArray destination cannot be mutated.");if(e===t)throw g("cpi","Can't copy! Source and destination are identical.");return F(t)?t.length=0:b(t,(function(e,n){"$$hashKey"!==n&&delete t[n]})),i.push(e),o.push(t),a(e,t)}return s(e);function a(e,t){var n,i=t.$$hashKey;if(F(e))for(var o=0,a=e.length;o<a;o++)t.push(s(e[o]));else if(H(e))for(n in e)t[n]=s(e[n]);else if(e&&"function"==typeof e.hasOwnProperty)for(n in e)e.hasOwnProperty(n)&&(t[n]=s(e[n]));else for(n in e)r.call(e,n)&&(t[n]=s(e[n]));return k(t,i),t}function s(e){if(!j(e))return e;var t=i.indexOf(e);if(-1!==t)return o[t];if(U(e)||W(e))throw g("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");var n=!1,r=function(e){switch(p.call(e)){case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Float32Array]":case"[object Float64Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return new e.constructor(s(e.buffer),e.byteOffset,e.length);case"[object ArrayBuffer]":if(!e.slice){var t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t}return e.slice(0);case"[object Boolean]":case"[object Number]":case"[object String]":case"[object Date]":return new e.constructor(e.valueOf());case"[object RegExp]":var n=new RegExp(e.source,e.toString().match(/[^/]*$/)[0]);return n.lastIndex=e.lastIndex,n;case"[object Blob]":return new e.constructor([e],{type:e.type})}if(z(e.cloneNode))return e.cloneNode(!0)}(e);return void 0===r&&(r=F(e)?[]:Object.create(m(e)),n=!0),i.push(e),o.push(r),n?a(e,r):r}}function ne(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!=e&&t!=t)return!0;var n,i,r,o=typeof e;if(o===typeof t&&"object"===o){if(!F(e)){if(R(e))return!!R(t)&&ne(e.getTime(),t.getTime());if(V(e))return!!V(t)&&e.toString()===t.toString();if(W(e)||W(t)||U(e)||U(t)||F(t)||R(t)||V(t))return!1;for(i in r=Pe(),e)if("$"!==i.charAt(0)&&!z(e[i])){if(!ne(e[i],t[i]))return!1;r[i]=!0}for(i in t)if(!(i in r)&&"$"!==i.charAt(0)&&I(t[i])&&!z(t[i]))return!1;return!0}if(!F(t))return!1;if((n=e.length)===t.length){for(i=0;i<n;i++)if(!ne(e[i],t[i]))return!1;return!0}}return!1}var ie=function(){if(!I(ie.rules)){var t=e.document.querySelector("[ng-csp]")||e.document.querySelector("[data-ng-csp]");if(t){var n=t.getAttribute("ng-csp")||t.getAttribute("data-ng-csp");ie.rules={noUnsafeEval:!n||-1!==n.indexOf("no-unsafe-eval"),noInlineStyle:!n||-1!==n.indexOf("no-inline-style")}}else ie.rules={noUnsafeEval:function(){try{return new Function(""),!1}catch(e){return!0}}(),noInlineStyle:!1}}return ie.rules},re=function(){if(I(re.name_))return re.name_;var t,n,i,r,o=be.length;for(n=0;n<o;++n)if(i=be[n],t=e.document.querySelector("["+i.replace(":","\\:")+"jq]")){r=t.getAttribute(i+"jq");break}return re.name_=r};function oe(e,t,n){return e.concat(d.call(t,n))}function ae(e,t){return d.call(e,t||0)}function se(e,t){var n=arguments.length>2?ae(arguments,2):[];return!z(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,oe(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function le(t,n){var i=n;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?i=void 0:U(n)?i="$WINDOW":n&&e.document===n?i="$DOCUMENT":W(n)&&(i="$SCOPE"),i}function ue(e,t){if(!O(e))return N(t)||(t=t?2:null),JSON.stringify(e,le,t)}function ce(e){return B(e)?JSON.parse(e):e}var de=/:/g;function he(e,t){e=e.replace(de,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return D(n)?t:n}function fe(e,t,n){n=n?-1:1;var i=e.getTimezoneOffset();return function(e,t){return(e=new Date(e.getTime())).setMinutes(e.getMinutes()+t),e}(e,n*(he(t,i)-i))}function pe(e){e=l(e).clone();try{e.empty()}catch(e){}var t=l("<div>").append(e).html();try{return e[0].nodeType===Oe?o(t):t.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,(function(e,t){return"<"+o(t)}))}catch(e){return o(t)}}function me(e){try{return decodeURIComponent(e)}catch(e){}}function ge(e){var t={};return b((e||"").split("&"),(function(e){var n,i,o;e&&(i=e=e.replace(/\+/g,"%20"),-1!==(n=e.indexOf("="))&&(i=e.substring(0,n),o=e.substring(n+1)),I(i=me(i))&&(o=!I(o)||me(o),r.call(t,i)?F(t[i])?t[i].push(o):t[i]=[t[i],o]:t[i]=o))})),t}function ve(e){var t=[];return b(e,(function(e,n){F(e)?b(e,(function(e){t.push(ye(n,!0)+(!0===e?"":"="+ye(e,!0)))})):t.push(ye(n,!0)+(!0===e?"":"="+ye(e,!0)))})),t.length?t.join("&"):""}function _e(e){return ye(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ye(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}var be=["ng-","data-ng-","ng:","x-ng-"],we=function(e){var t=e.currentScript,n=t&&t.getAttribute("src");if(!n)return!0;var i=e.createElement("a");if(i.href=n,e.location.origin===i.origin)return!0;switch(i.protocol){case"http:":case"https:":case"ftp:":case"blob:":case"file:":case"data:":return!0;default:return!1}}(e.document);function Le(t,n,i){j(i)||(i={}),i=S({strictDi:!1},i);var r=function(){if((t=l(t)).injector()){var r=t[0]===e.document?"document":pe(t);throw g("btstrpd","App already bootstrapped with this element '{0}'",r.replace(/</,"&lt;").replace(/>/,"&gt;"))}(n=n||[]).unshift(["$provide",function(e){e.value("$rootElement",t)}]),i.debugInfoEnabled&&n.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),n.unshift("ng");var o=Rt(n,i.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,i){e.$apply((function(){t.data("$injector",i),n(t)(e)}))}]),o},o=/^NG_ENABLE_DEBUG_INFO!/,a=/^NG_DEFER_BOOTSTRAP!/;if(e&&o.test(e.name)&&(i.debugInfoEnabled=!0,e.name=e.name.replace(o,"")),e&&!a.test(e.name))return r();e.name=e.name.replace(a,""),v.resumeBootstrap=function(e){return b(e,(function(e){n.push(e)})),r()},z(v.resumeDeferredBootstrap)&&v.resumeDeferredBootstrap()}function Me(){e.name="NG_ENABLE_DEBUG_INFO!"+e.name,e.location.reload()}function ke(e){var t=v.element(e).injector();if(!t)throw g("test","no injector found for element argument to getTestability");return t.get("$$testability")}var xe=/[A-Z]/g;function Se(e,t){return t=t||"_",e.replace(xe,(function(e,n){return(n?t:"")+e.toLowerCase()}))}var Te=!1;function $e(e,t,n){if(!e)throw g("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function De(e,t,n){return n&&F(e)&&(e=e[e.length-1]),$e(z(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function Ce(e,t){if("hasOwnProperty"===e)throw g("badname","hasOwnProperty is not a valid {0} name",t)}function Ee(e,t,n){if(!t)return e;for(var i,r=t.split("."),o=e,a=r.length,s=0;s<a;s++)i=r[s],e&&(e=(o=e)[i]);return!n&&z(e)?se(o,e):e}function Ae(e){for(var t,n=e[0],i=e[e.length-1],r=1;n!==i&&(n=n.nextSibling);r++)(t||e[r]!==n)&&(t||(t=l(d.call(e,0,r))),t.push(n));return t||e}function Pe(){return Object.create(null)}var Ye=1,Oe=3,Ie=8,je=9,He=11;function Be(e,t){if(F(e)){t=t||[];for(var n=0,i=e.length;n<i;n++)t[n]=e[n]}else if(j(e))for(var r in t=t||{},e)"$"===r.charAt(0)&&"$"===r.charAt(1)||(t[r]=e[r]);return t||e}function Ne(e){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):O(e)?"undefined":"string"!=typeof e?function(e){var t=[];return JSON.stringify(e,(function(e,n){if(j(n=le(e,n))){if(t.indexOf(n)>=0)return"...";t.push(n)}return n}))}(e):e}var Re={full:"1.5.11",major:1,minor:5,dot:11,codeName:"princely-quest"};st.expando="ng339";var Fe=st.cache={},ze=1,Ve=function(e,t,n){e.addEventListener(t,n,!1)},Ue=function(e,t,n){e.removeEventListener(t,n,!1)};st._data=function(e){return this.cache[e[this.expando]]||{}};var We=/([:\-_]+(.))/g,qe=/^moz([A-Z])/,Ge={mouseleave:"mouseout",mouseenter:"mouseover"},Ze=t("jqLite");function Je(e){return e.replace(We,(function(e,t,n,i){return i?n.toUpperCase():n})).replace(qe,"Moz$1")}var Xe=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Ke=/<|&#?\w+;/,Qe=/<([\w:-]+)/,et=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,tt={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function nt(e){return!Ke.test(e)}function it(e){var t=e.nodeType;return t===Ye||!t||t===je}function rt(e,t){var n,i,r,o,a=t.createDocumentFragment(),s=[];if(nt(e))s.push(t.createTextNode(e));else{for(n=a.appendChild(t.createElement("div")),i=(Qe.exec(e)||["",""])[1].toLowerCase(),r=tt[i]||tt._default,n.innerHTML=r[1]+e.replace(et,"<$1></$2>")+r[2],o=r[0];o--;)n=n.lastChild;s=oe(s,n.childNodes),(n=a.firstChild).textContent=""}return a.textContent="",a.innerHTML="",b(s,(function(e){a.appendChild(e)})),a}function ot(e,t){var n=e.parentNode;n&&n.replaceChild(t,e),t.appendChild(e)}tt.optgroup=tt.option,tt.tbody=tt.tfoot=tt.colgroup=tt.caption=tt.thead,tt.th=tt.td;var at=e.Node.prototype.contains||function(e){return!!(16&this.compareDocumentPosition(e))};function st(t){if(t instanceof st)return t;var n,i,r,o;if(B(t)&&(t=J(t),n=!0),!(this instanceof st)){if(n&&"<"!==t.charAt(0))throw Ze("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new st(t)}vt(this,n?(i=t,r=r||e.document,(o=Xe.exec(i))?[r.createElement(o[1])]:(o=rt(i,r))?o.childNodes:[]):t)}function lt(e){return e.cloneNode(!0)}function ut(e,t){if(t||dt(e),e.querySelectorAll)for(var n=e.querySelectorAll("*"),i=0,r=n.length;i<r;i++)dt(n[i])}function ct(e,t,n,i){if(I(i))throw Ze("offargs","jqLite#off() does not support the `selector` argument");var r=ht(e),o=r&&r.events,a=r&&r.handle;if(a)if(t){var s=function(t){var i=o[t];I(n)&&ee(i||[],n),I(n)&&i&&i.length>0||(Ue(e,t,a),delete o[t])};b(t.split(" "),(function(e){s(e),Ge[e]&&s(Ge[e])}))}else for(t in o)"$destroy"!==t&&Ue(e,t,a),delete o[t]}function dt(e,t){var n=e.ng339,i=n&&Fe[n];if(i){if(t)return void delete i.data[t];i.handle&&(i.events.$destroy&&i.handle({},"$destroy"),ct(e)),delete Fe[n],e.ng339=void 0}}function ht(e,t){var n=e.ng339,i=n&&Fe[n];return t&&!i&&(e.ng339=n=++ze,i=Fe[n]={events:{},data:{},handle:void 0}),i}function ft(e,t,n){if(it(e)){var i=I(n),r=!i&&t&&!j(t),o=!t,a=ht(e,!r),s=a&&a.data;if(i)s[t]=n;else{if(o)return s;if(r)return s&&s[t];S(s,t)}}}function pt(e,t){return!!e.getAttribute&&(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")>-1}function mt(e,t){t&&e.setAttribute&&b(t.split(" "),(function(t){e.setAttribute("class",J((" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+J(t)+" "," ")))}))}function gt(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");b(t.split(" "),(function(e){e=J(e),-1===n.indexOf(" "+e+" ")&&(n+=e+" ")})),e.setAttribute("class",J(n))}}function vt(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&&t.window!==t){if(n)for(var i=0;i<n;i++)e[e.length++]=t[i]}else e[e.length++]=t}}function _t(e,t){return yt(e,"$"+(t||"ngController")+"Controller")}function yt(e,t,n){e.nodeType===je&&(e=e.documentElement);for(var i=F(t)?t:[t];e;){for(var r=0,o=i.length;r<o;r++)if(I(n=l.data(e,i[r])))return n;e=e.parentNode||e.nodeType===He&&e.host}}function bt(e){for(ut(e,!0);e.firstChild;)e.removeChild(e.firstChild)}function wt(e,t){t||ut(e);var n=e.parentNode;n&&n.removeChild(e)}var Lt=st.prototype={ready:function(t){var n=!1;function i(){n||(n=!0,t())}"complete"===e.document.readyState?e.setTimeout(i):(this.on("DOMContentLoaded",i),st(e).on("load",i))},toString:function(){var e=[];return b(this,(function(t){e.push(""+t)})),"["+e.join(", ")+"]"},eq:function(e){return l(e>=0?this[e]:this[this.length+e])},length:0,push:f,sort:[].sort,splice:[].splice},Mt={};b("multiple,selected,checked,disabled,readOnly,required,open".split(","),(function(e){Mt[o(e)]=e}));var kt={};b("input,select,option,textarea,button,form,details".split(","),(function(e){kt[e]=!0}));var xt={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};function St(e,t){var n=Mt[t.toLowerCase()];return n&&kt[Q(e)]&&n}function Tt(e,t,n){n.call(e,t)}function $t(e,t,n){var i=t.relatedTarget;i&&(i===e||at.call(e,i))||n.call(e,t)}function Dt(){this.$get=function(){return S(st,{hasClass:function(e,t){return e.attr&&(e=e[0]),pt(e,t)},addClass:function(e,t){return e.attr&&(e=e[0]),gt(e,t)},removeClass:function(e,t){return e.attr&&(e=e[0]),mt(e,t)}})}}function Ct(e,t){var n=e&&e.$$hashKey;if(n)return"function"==typeof n&&(n=e.$$hashKey()),n;var i=typeof e;return"function"===i||"object"===i&&null!==e?e.$$hashKey=i+":"+(t||M)():i+":"+e}function Et(e,t){if(t){var n=0;this.nextUid=function(){return++n}}b(e,this.put,this)}b({data:ft,removeData:dt,hasData:function(e){for(var t in Fe[e.ng339])return!0;return!1},cleanData:function(e){for(var t=0,n=e.length;t<n;t++)dt(e[t])}},(function(e,t){st[t]=e})),b({data:ft,inheritedData:yt,scope:function(e){return l.data(e,"$scope")||yt(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return l.data(e,"$isolateScope")||l.data(e,"$isolateScopeNoTemplate")},controller:_t,injector:function(e){return yt(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:pt,css:function(e,t,n){if(t=Je(t),!I(n))return e.style[t];e.style[t]=n},attr:function(e,t,n){var i=e.nodeType;if(i!==Oe&&2!==i&&i!==Ie){var r=o(t);if(Mt[r]){if(!I(n))return e[t]||(e.attributes.getNamedItem(t)||E).specified?r:void 0;n?(e[t]=!0,e.setAttribute(t,r)):(e[t]=!1,e.removeAttribute(r))}else if(I(n))e.setAttribute(t,n);else if(e.getAttribute){var a=e.getAttribute(t,2);return null===a?void 0:a}}},prop:function(e,t,n){if(!I(n))return e[t];e[t]=n},text:function(){return e.$dv="",e;function e(e,t){if(O(t)){var n=e.nodeType;return n===Ye||n===Oe?e.textContent:""}e.textContent=t}}(),val:function(e,t){if(O(t)){if(e.multiple&&"select"===Q(e)){var n=[];return b(e.options,(function(e){e.selected&&n.push(e.value||e.text)})),0===n.length?null:n}return e.value}e.value=t},html:function(e,t){if(O(t))return e.innerHTML;ut(e,!0),e.innerHTML=t},empty:bt},(function(e,t){st.prototype[t]=function(t,n){var i,r,o=this.length;if(e!==bt&&O(2===e.length&&e!==pt&&e!==_t?t:n)){if(j(t)){for(i=0;i<o;i++)if(e===ft)e(this[i],t);else for(r in t)e(this[i],r,t[r]);return this}for(var a=e.$dv,s=O(a)?Math.min(o,1):o,l=0;l<s;l++){var u=e(this[l],t,n);a=a?a+u:u}return a}for(i=0;i<o;i++)e(this[i],t,n);return this}})),b({removeData:dt,on:function(e,t,n,i){if(I(i))throw Ze("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(it(e)){var r=ht(e,!0),o=r.events,a=r.handle;a||(a=r.handle=function(e,t){var n=function(n,i){n.isDefaultPrevented=function(){return n.defaultPrevented};var r=t[i||n.type],o=r?r.length:0;if(o){if(O(n.immediatePropagationStopped)){var a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),a&&a.call(n)}}n.isImmediatePropagationStopped=function(){return!0===n.immediatePropagationStopped};var s=r.specialHandlerWrapper||Tt;o>1&&(r=Be(r));for(var l=0;l<o;l++)n.isImmediatePropagationStopped()||s(e,n,r[l])}};return n.elem=e,n}(e,o));for(var s=t.indexOf(" ")>=0?t.split(" "):[t],l=s.length,u=function(t,i,r){var s=o[t];s||((s=o[t]=[]).specialHandlerWrapper=i,"$destroy"===t||r||Ve(e,t,a)),s.push(n)};l--;)t=s[l],Ge[t]?(u(Ge[t],$t),u(t,void 0,!0)):u(t)}},off:ct,one:function(e,t,n){(e=l(e)).on(t,(function i(){e.off(t,n),e.off(t,i)})),e.on(t,n)},replaceWith:function(e,t){var n,i=e.parentNode;ut(e),b(new st(t),(function(t){n?i.insertBefore(t,n.nextSibling):i.replaceChild(t,e),n=t}))},children:function(e){var t=[];return b(e.childNodes,(function(e){e.nodeType===Ye&&t.push(e)})),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(n===Ye||n===He)for(var i=0,r=(t=new st(t)).length;i<r;i++){var o=t[i];e.appendChild(o)}},prepend:function(e,t){if(e.nodeType===Ye){var n=e.firstChild;b(new st(t),(function(t){e.insertBefore(t,n)}))}},wrap:function(e,t){ot(e,l(t).eq(0).clone()[0])},remove:wt,detach:function(e){wt(e,!0)},after:function(e,t){var n=e,i=e.parentNode;if(i)for(var r=0,o=(t=new st(t)).length;r<o;r++){var a=t[r];i.insertBefore(a,n.nextSibling),n=a}},addClass:gt,removeClass:mt,toggleClass:function(e,t,n){t&&b(t.split(" "),(function(t){var i=n;O(i)&&(i=!pt(e,t)),(i?gt:mt)(e,t)}))},parent:function(e){var t=e.parentNode;return t&&t.nodeType!==He?t:null},next:function(e){return e.nextElementSibling},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:lt,triggerHandler:function(e,t,n){var i,r,o,a=t.type||t,s=ht(e),l=s&&s.events,u=l&&l[a];u&&(i={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:E,type:a,target:e},t.type&&(i=S(i,t)),r=Be(u),o=n?[i].concat(n):[i],b(r,(function(t){i.isImmediatePropagationStopped()||t.apply(e,o)})))}},(function(e,t){st.prototype[t]=function(t,n,i){for(var r,o=0,a=this.length;o<a;o++)O(r)?I(r=e(this[o],t,n,i))&&(r=l(r)):vt(r,e(this[o],t,n,i));return I(r)?r:this}})),st.prototype.bind=st.prototype.on,st.prototype.unbind=st.prototype.off,Et.prototype={put:function(e,t){this[Ct(e,this.nextUid)]=t},get:function(e){return this[Ct(e,this.nextUid)]},remove:function(e){var t=this[e=Ct(e,this.nextUid)];return delete this[e],t}};var At=[function(){this.$get=[function(){return Et}]}],Pt=/^([^(]+?)=>/,Yt=/^[^(]*\(\s*([^)]*)\)/m,Ot=/,/,It=/^\s*(_?)(\S+?)\1\s*$/,jt=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Ht=t("$injector");function Bt(e){return Function.prototype.toString.call(e)+" "}function Nt(e){var t=Bt(e).replace(jt,"");return t.match(Pt)||t.match(Yt)}function Rt(e,t){t=!0===t;var n={},i="Provider",r=[],o=new Et([],!0),a={$provide:{provider:p(m),factory:p(_),service:p((function(e,t){return _(e,["$injector",function(e){return e.instantiate(t)}])})),value:p((function(e,t){return _(e,P(t),!1)})),constant:p((function(e,t){Ce(e,"constant"),a[e]=t,u[e]=t})),decorator:function(e,t){var n=l.get(e+i),r=n.$get;n.$get=function(){var e=h.invoke(r,n);return h.invoke(t,null,{$delegate:e})}}}},l=a.$injector=y(a,(function(e,t){throw v.isString(t)&&r.push(t),Ht("unpr","Unknown provider: {0}",r.join(" <- "))})),u={},d=y(u,(function(e,t){var n=l.get(e+i,t);return h.invoke(n.$get,n,void 0,e)})),h=d;a["$injector"+i]={$get:P(d)};var f=function e(t){$e(O(t)||F(t),"modulesToLoad","not an array");var n,i=[];return b(t,(function(t){if(!o.get(t)){o.put(t,!0);try{B(t)?(n=c(t),i=i.concat(e(n.requires)).concat(n._runBlocks),r(n._invokeQueue),r(n._configBlocks)):z(t)?i.push(l.invoke(t)):F(t)?i.push(l.invoke(t)):De(t,"module")}catch(e){throw F(t)&&(t=t[t.length-1]),e.message&&e.stack&&-1===e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),Ht("modulerr","Failed to instantiate module {0} due to:\n{1}",t,e.stack||e.message||e)}}function r(e){var t,n;for(t=0,n=e.length;t<n;t++){var i=e[t],r=l.get(i[0]);r[i[1]].apply(r,i[2])}}})),i}(e);return(h=d.get("$injector")).strictDi=t,b(f,(function(e){e&&h.invoke(e)})),h;function p(e){return function(t,n){if(!j(t))return e(t,n);b(t,L(e))}}function m(e,t){if(Ce(e,"service"),(z(t)||F(t))&&(t=l.instantiate(t)),!t.$get)throw Ht("pget","Provider '{0}' must define $get factory method.",e);return a[e+i]=t}function g(e,t){return function(){var n=h.invoke(t,this);if(O(n))throw Ht("undef","Provider '{0}' must return a value from $get factory method.",e);return n}}function _(e,t,n){return m(e,{$get:!1!==n?g(e,t):t})}function y(e,o){function l(t,i){if(e.hasOwnProperty(t)){if(e[t]===n)throw Ht("cdep","Circular dependency found: {0}",t+" <- "+r.join(" <- "));return e[t]}try{return r.unshift(t),e[t]=n,e[t]=o(t,i),e[t]}catch(i){throw e[t]===n&&delete e[t],i}finally{r.shift()}}function u(e,n,i){for(var r=[],o=Rt.$$annotate(e,t,i),a=0,s=o.length;a<s;a++){var u=o[a];if("string"!=typeof u)throw Ht("itkn","Incorrect injection token! Expected service name as string, got {0}",u);r.push(n&&n.hasOwnProperty(u)?n[u]:l(u,i))}return r}return{invoke:function(e,t,n,i){"string"==typeof n&&(i=n,n=null);var r,o=u(e,n,i);return F(e)&&(e=e[e.length-1]),r=e,s<=11||"function"!=typeof r||!/^(?:class\b|constructor\()/.test(Bt(r))?e.apply(t,o):(o.unshift(null),new(Function.prototype.bind.apply(e,o)))},instantiate:function(e,t,n){var i=F(e)?e[e.length-1]:e,r=u(e,t,n);return r.unshift(null),new(Function.prototype.bind.apply(i,r))},get:l,annotate:Rt.$$annotate,has:function(t){return a.hasOwnProperty(t+i)||e.hasOwnProperty(t)}}}}function Ft(){var t=!0;this.disableAutoScrolling=function(){t=!1},this.$get=["$window","$location","$rootScope",function(n,i,r){var o=n.document;function a(e){if(e){e.scrollIntoView();var t=function(){var e=s.yOffset;if(z(e))e=e();else if(K(e)){var t=e[0];e="fixed"!==n.getComputedStyle(t).position?0:t.getBoundingClientRect().bottom}else N(e)||(e=0);return e}();if(t){var i=e.getBoundingClientRect().top;n.scrollBy(0,i-t)}}else n.scrollTo(0,0)}function s(e){var t,n,r;(e=B(e)?e:N(e)?e.toString():i.hash())?(t=o.getElementById(e))?a(t):(n=o.getElementsByName(e),r=null,Array.prototype.some.call(n,(function(e){if("a"===Q(e))return r=e,!0})),(t=r)?a(t):"top"===e&&a(null)):a(null)}return t&&r.$watch((function(){return i.hash()}),(function(t,n){var i,o;t===n&&""===t||(i=function(){r.$evalAsync(s)},"complete"===(o=o||e).document.readyState?o.setTimeout(i):l(o).on("load",i))})),s}]}Rt.$$annotate=function(e,t,n){var i,r;if("function"==typeof e){if(!(i=e.$inject)){if(i=[],e.length){if(t)throw B(n)&&n||(n=e.name||function(e){var t=Nt(e);return t?"function("+(t[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}(e)),Ht("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);b(Nt(e)[1].split(Ot),(function(e){e.replace(It,(function(e,t,n){i.push(n)}))}))}e.$inject=i}}else F(e)?(De(e[r=e.length-1],"fn"),i=e.slice(0,r)):De(e,"fn",!0);return i};var zt=t("$animate"),Vt=1;function Ut(e,t){return e||t?e?t?(F(e)&&(e=e.join(" ")),F(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function Wt(e){return j(e)?e:{}}var qt=function(){this.$get=E},Gt=function(){var e=new Et,t=[];this.$get=["$$AnimateRunner","$rootScope",function(n,i){return{enabled:E,on:E,off:E,pin:E,push:function(a,s,l,u){u&&u(),(l=l||{}).from&&a.css(l.from),l.to&&a.css(l.to),(l.addClass||l.removeClass)&&function(n,a,s){var l=e.get(n)||{},u=r(l,a,!0),c=r(l,s,!1);(u||c)&&(e.put(n,l),t.push(n),1===t.length&&i.$$postDigest(o))}(a,l.addClass,l.removeClass);var c=new n;return c.complete(),c}};function r(e,t,n){var i=!1;return t&&b(t=B(t)?t.split(" "):F(t)?t:[],(function(t){t&&(i=!0,e[t]=n)})),i}function o(){b(t,(function(t){var n=e.get(t);if(n){var i=function(e){B(e)&&(e=e.split(" "));var t=Pe();return b(e,(function(e){e.length&&(t[e]=!0)})),t}(t.attr("class")),r="",o="";b(n,(function(e,t){e!==!!i[t]&&(e?r+=(r.length?" ":"")+t:o+=(o.length?" ":"")+t)})),b(t,(function(e){r&&gt(e,r),o&&mt(e,o)})),e.remove(t)}})),t.length=0}}]},Zt=["$provide",function(e){var t=this;this.$$registeredAnimations=Object.create(null),this.register=function(n,i){if(n&&"."!==n.charAt(0))throw zt("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var r=n+"-animation";t.$$registeredAnimations[n.substr(1)]=r,e.factory(r,i)},this.classNameFilter=function(e){if(1===arguments.length&&(this.$$classNameFilter=e instanceof RegExp?e:null,this.$$classNameFilter)){var t=new RegExp("(\\s+|\\/)ng-animate(\\s+|\\/)");if(t.test(this.$$classNameFilter.toString()))throw zt("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',"ng-animate")}return this.$$classNameFilter},this.$get=["$$animateQueue",function(e){function t(e,t,n){if(n){var i=function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType===Vt)return n}}(n);!i||i.parentNode||i.previousElementSibling||(n=null)}n?n.after(e):t.prepend(e)}return{on:e.on,off:e.off,pin:e.pin,enabled:e.enabled,cancel:function(e){e.end&&e.end()},enter:function(n,i,r,o){return i=i&&l(i),r=r&&l(r),t(n,i=i||r.parent(),r),e.push(n,"enter",Wt(o))},move:function(n,i,r,o){return i=i&&l(i),r=r&&l(r),t(n,i=i||r.parent(),r),e.push(n,"move",Wt(o))},leave:function(t,n){return e.push(t,"leave",Wt(n),(function(){t.remove()}))},addClass:function(t,n,i){return(i=Wt(i)).addClass=Ut(i.addclass,n),e.push(t,"addClass",i)},removeClass:function(t,n,i){return(i=Wt(i)).removeClass=Ut(i.removeClass,n),e.push(t,"removeClass",i)},setClass:function(t,n,i,r){return(r=Wt(r)).addClass=Ut(r.addClass,n),r.removeClass=Ut(r.removeClass,i),e.push(t,"setClass",r)},animate:function(t,n,i,r,o){return(o=Wt(o)).from=o.from?S(o.from,n):n,o.to=o.to?S(o.to,i):i,r=r||"ng-inline-animate",o.tempClasses=Ut(o.tempClasses,r),e.push(t,"animate",o)}}}]}],Jt=function(){this.$get=["$$rAF",function(e){var t=[];function n(n){t.push(n),t.length>1||e((function(){for(var e=0;e<t.length;e++)t[e]();t=[]}))}return function(){var e=!1;return n((function(){e=!0})),function(t){e?t():n(t)}}}]},Xt=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$document","$timeout",function(e,t,n,i,r){function o(e){this.setHost(e);var t=n();this._doneCallbacks=[],this._tick=function(e){var n=i[0];n&&n.hidden?function(e){r(e,0,!1)}(e):t(e)},this._state=0}return o.chain=function(e,t){var n=0;!function i(){n!==e.length?e[n]((function(e){!1!==e?(n++,i()):t(!1)})):t(!0)}()},o.all=function(e,t){var n=0,i=!0;function r(r){i=i&&r,++n===e.length&&t(i)}b(e,(function(e){e.done(r)}))},o.prototype={setHost:function(e){this.host=e||{}},done:function(e){2===this._state?e():this._doneCallbacks.push(e)},progress:E,getPromise:function(){if(!this.promise){var t=this;this.promise=e((function(e,n){t.done((function(t){!1===t?n():e()}))}))}return this.promise},then:function(e,t){return this.getPromise().then(e,t)},catch:function(e){return this.getPromise().catch(e)},finally:function(e){return this.getPromise().finally(e)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(e){var t=this;0===t._state&&(t._state=1,t._tick((function(){t._resolve(e)})))},_resolve:function(e){2!==this._state&&(b(this._doneCallbacks,(function(t){t(e)})),this._doneCallbacks.length=0,this._state=2)}},o}]},Kt=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(e,t,n){return function(t,i){var r=i||{};r.$$prepared||(r=te(r)),r.cleanupStyles&&(r.from=r.to=null),r.from&&(t.css(r.from),r.from=null);var o,a=new n;return{start:s,end:s};function s(){return e((function(){r.addClass&&(t.addClass(r.addClass),r.addClass=null),r.removeClass&&(t.removeClass(r.removeClass),r.removeClass=null),r.to&&(t.css(r.to),r.to=null),o||a.complete(),o=!0})),a}}}]};function Qt(e,t,n,i){var r=this,o=e.location,a=e.history,s=e.setTimeout,u=e.clearTimeout,c={};r.isMock=!1;var d=0,h=[];function f(e){try{e.apply(null,ae(arguments,1))}finally{if(0==--d)for(;h.length;)try{h.pop()()}catch(e){n.error(e)}}}r.$$completeOutstandingRequest=f,r.$$incOutstandingRequestCount=function(){d++},r.notifyWhenNoOutstandingRequests=function(e){0===d?e():h.push(e)};var p,m,g=o.href,v=t.find("base"),_=null,y=i.history?function(){try{return a.state}catch(e){}}:E;x(),m=p,r.url=function(t,n,s){if(O(s)&&(s=null),o!==e.location&&(o=e.location),a!==e.history&&(a=e.history),t){var l=m===s;if(g===t&&(!i.history||l))return r;var u=g&&Jn(g)===Jn(t);return g=t,m=s,!i.history||u&&l?(u||(_=t),n?o.replace(t):u?o.hash=function(e){var t=e.indexOf("#");return-1===t?"":e.substr(t)}(t):o.href=t,o.href!==t&&(_=t)):(a[n?"replaceState":"pushState"](s,"",t),x(),m=p),_&&(_=t),r}return _||o.href.replace(/%27/g,"'")},r.state=function(){return p};var w=[],L=!1;function M(){_=null,x(),S()}var k=null;function x(){ne(p=O(p=y())?null:p,k)&&(p=k),k=p}function S(){g===r.url()&&m===p||(g=r.url(),m=p,b(w,(function(e){e(r.url(),p)})))}r.onUrlChange=function(t){return L||(i.history&&l(e).on("popstate",M),l(e).on("hashchange",M),L=!0),w.push(t),t},r.$$applicationDestroyed=function(){l(e).off("hashchange popstate",M)},r.$$checkUrlChange=S,r.baseHref=function(){var e=v.attr("href");return e?e.replace(/^(https?:)?\/\/[^/]*/,""):""},r.defer=function(e,t){var n;return d++,n=s((function(){delete c[n],f(e)}),t||0),c[n]=!0,n},r.defer.cancel=function(e){return!!c[e]&&(delete c[e],u(e),f(E),!0)}}function en(){this.$get=["$window","$log","$sniffer","$document",function(e,t,n,i){return new Qt(e,i,t,n)}]}function tn(){this.$get=function(){var e={};function n(n,i){if(n in e)throw t("$cacheFactory")("iid","CacheId '{0}' is already taken!",n);var r=0,o=S({},i,{id:n}),a=Pe(),s=i&&i.capacity||Number.MAX_VALUE,l=Pe(),u=null,c=null;return e[n]={put:function(e,t){if(!O(t))return s<Number.MAX_VALUE&&d(l[e]||(l[e]={key:e})),e in a||r++,a[e]=t,r>s&&this.remove(c.key),t},get:function(e){if(s<Number.MAX_VALUE){var t=l[e];if(!t)return;d(t)}return a[e]},remove:function(e){if(s<Number.MAX_VALUE){var t=l[e];if(!t)return;t===u&&(u=t.p),t===c&&(c=t.n),h(t.n,t.p),delete l[e]}e in a&&(delete a[e],r--)},removeAll:function(){a=Pe(),r=0,l=Pe(),u=c=null},destroy:function(){a=null,o=null,l=null,delete e[n]},info:function(){return S({},o,{size:r})}};function d(e){e!==u&&(c?c===e&&(c=e.n):c=e,h(e.n,e.p),h(e,u),(u=e).n=null)}function h(e,t){e!==t&&(e&&(e.p=t),t&&(t.n=e))}}return n.info=function(){var t={};return b(e,(function(e,n){t[n]=e.info()})),t},n.get=function(t){return e[t]},n}}function nn(){this.$get=["$cacheFactory",function(e){return e("templates")}]}var rn=t("$compile"),on=new function(){};function an(t,n){var i={},a="Directive",u=/^\s*directive:\s*([\w-]+)\s+(.*)$/,c=/(([\w-]+)(?::([^;]+))?;?)/,d=function(e){var t,n={},i="ngSrc,ngSrcset,src,srcset".split(",");for(t=0;t<i.length;t++)n[i[t]]=!0;return n}(),h=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,f=/^(on[a-z]+|formaction)$/,m=Pe();function g(e,t,n){var i=/^\s*([@&<]|=(\*?))(\??)\s*([\w$]*)\s*$/,r=Pe();return b(e,(function(e,o){if(e in m)r[o]=m[e];else{var a=e.match(i);if(!a)throw rn("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",t,o,e,n?"controller bindings definition":"isolate scope definition");r[o]={mode:a[1][0],collection:"*"===a[2],optional:"?"===a[3],attrName:a[4]||o},a[4]&&(m[e]=r[o])}})),r}function v(e,t){var n={isolateScope:null,bindToController:null};if(j(e.scope)&&(!0===e.bindToController?(n.bindToController=g(e.scope,t,!0),n.isolateScope={}):n.isolateScope=g(e.scope,t,!1)),j(e.bindToController)&&(n.bindToController=g(e.bindToController,t,!0)),n.bindToController&&!e.controller)throw rn("noctrl","Cannot bind to controller without directive '{0}'s controller.",t);return n}this.directive=function e(n,r){return $e(n,"name"),Ce(n,"directive"),B(n)?(function(e){var t=e.charAt(0);if(!t||t!==o(t))throw rn("baddir","Directive/Component name '{0}' is invalid. The first character must be a lowercase letter",e);if(e!==e.trim())throw rn("baddir","Directive/Component name '{0}' is invalid. The name should not contain leading or trailing whitespaces",e)}(n),$e(r,"directiveFactory"),i.hasOwnProperty(n)||(i[n]=[],t.factory(n+a,["$injector","$exceptionHandler",function(e,t){var r=[];return b(i[n],(function(i,o){try{var a=e.invoke(i);z(a)?a={compile:P(a)}:!a.compile&&a.link&&(a.compile=P(a.link)),a.priority=a.priority||0,a.index=o,a.name=a.name||n,a.require=function(e){var t=e.require||e.controller&&e.name;return!F(t)&&j(t)&&b(t,(function(e,n){var i=e.match(h);e.substring(i[0].length)||(t[n]=i[0]+n)})),t}(a),a.restrict=function(e,t){if(e&&(!B(e)||!/[EACM]/.test(e)))throw rn("badrestrict","Restrict property '{0}' of directive '{1}' is invalid",e,t);return e||"EA"}(a.restrict,n),a.$$moduleName=i.$$moduleName,r.push(a)}catch(e){t(e)}})),r}])),i[n].push(r)):b(n,L(e)),this},this.component=function(e,t){var n=t.controller||function(){};function i(e){function i(t){return z(t)||F(t)?function(n,i){return e.invoke(t,this,{$element:n,$attrs:i})}:t}var r=t.template||t.templateUrl?t.template:"",o={controller:n,controllerAs:pn(t.controller)||t.controllerAs||"$ctrl",template:i(r),templateUrl:i(t.templateUrl),transclude:t.transclude,scope:{},bindToController:t.bindings||{},restrict:"E",require:t.require};return b(t,(function(e,t){"$"===t.charAt(0)&&(o[t]=e)})),o}return b(t,(function(e,t){"$"===t.charAt(0)&&(i[t]=e,z(n)&&(n[t]=e))})),i.$inject=["$injector"],this.directive(e,i)},this.aHrefSanitizationWhitelist=function(e){return I(e)?(n.aHrefSanitizationWhitelist(e),this):n.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(e){return I(e)?(n.imgSrcSanitizationWhitelist(e),this):n.imgSrcSanitizationWhitelist()};var _=!0;this.debugInfoEnabled=function(e){return I(e)?(_=e,this):_};var y=!0;this.preAssignBindingsEnabled=function(e){return I(e)?(y=e,this):y};var w=10;this.onChangesTtl=function(e){return arguments.length?(w=e,this):w};var M=!0;this.commentDirectivesEnabled=function(e){return arguments.length?(M=e,this):M};var k=!0;this.cssClassDirectivesEnabled=function(e){return arguments.length?(k=e,this):k},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate","$$sanitizeUri",function(t,n,m,g,L,x,T,$,D,P){var Y,H=/^\w/,N=e.document.createElement("div"),R=M,V=k,U=w;function G(){try{if(!--U)throw Y=void 0,rn("infchng","{0} $onChanges() iterations reached. Aborting!\n",w);T.$apply((function(){for(var e=[],t=0,n=Y.length;t<n;++t)try{Y[t]()}catch(t){e.push(t)}if(Y=void 0,e.length)throw e}))}finally{U++}}function Z(e,t){if(t){var n,i,r,o=Object.keys(t);for(n=0,i=o.length;n<i;n++)this[r=o[n]]=t[r]}else this.$attr={};this.$$element=e}function X(e,t){try{e.addClass(t)}catch(e){}}Z.prototype={$normalize:un,$addClass:function(e){e&&e.length>0&&D.addClass(this.$$element,e)},$removeClass:function(e){e&&e.length>0&&D.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=cn(e,t);n&&n.length&&D.addClass(this.$$element,n);var i=cn(t,e);i&&i.length&&D.removeClass(this.$$element,i)},$set:function(e,t,n,i){var r,o=St(this.$$element[0],e),a=xt[e],s=e;if(o?(this.$$element.prop(e,t),i=o):a&&(this[a]=t,s=a),this[e]=t,i?this.$attr[e]=i:(i=this.$attr[e])||(this.$attr[e]=i=Se(e,"-")),"a"===(r=Q(this.$$element))&&("href"===e||"xlinkHref"===e)||"img"===r&&"src"===e)this[e]=t=P(t,"src"===e);else if("img"===r&&"srcset"===e&&I(t)){for(var l="",u=J(t),c=/\s/.test(u)?/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/:/(,)/,d=u.split(c),h=Math.floor(d.length/2),f=0;f<h;f++){var p=2*f;l+=P(J(d[p]),!0),l+=" "+J(d[p+1])}var g=J(d[2*f]).split(/\s/);l+=P(J(g[0]),!0),2===g.length&&(l+=" "+J(g[1])),this[e]=t=l}!1!==n&&(null===t||O(t)?this.$$element.removeAttr(i):H.test(i)?this.$$element.attr(i,t):function(e,t,n){N.innerHTML="<span "+t+">";var i=N.firstChild.attributes,r=i[0];i.removeNamedItem(r.name),r.value=n,e.attributes.setNamedItem(r)}(this.$$element[0],i,t));var v=this.$$observers;v&&b(v[s],(function(e){try{e(t)}catch(e){m(e)}}))},$observe:function(e,t){var n=this,i=n.$$observers||(n.$$observers=Pe()),r=i[e]||(i[e]=[]);return r.push(t),T.$evalAsync((function(){r.$$inter||!n.hasOwnProperty(e)||O(n[e])||t(n[e])})),function(){ee(r,t)}}};var K=n.startSymbol(),te=n.endSymbol(),ie="{{"===K&&"}}"===te?A:function(e){return e.replace(/\{\{/g,K).replace(/}}/g,te)},re=/^ngAttr[A-Z]/,oe=/^(.+)Start$/;return le.$$addBindingInfo=_?function(e,t){var n=e.data("$binding")||[];F(t)?n=n.concat(t):n.push(t),e.data("$binding",n)}:E,le.$$addBindingClass=_?function(e){X(e,"ng-binding")}:E,le.$$addScopeInfo=_?function(e,t,n,i){var r=n?i?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(r,t)}:E,le.$$addScopeClass=_?function(e,t){X(e,t?"ng-isolate-scope":"ng-scope")}:E,le.$$createComment=function(t,n){var i="";return _&&(i=" "+(t||"")+": ",n&&(i+=n+" ")),e.document.createComment(i)},le;function le(t,n,i,r,o){t instanceof l||(t=l(t));for(var a=/\S+/,s=0,u=t.length;s<u;s++){var c=t[s];c.nodeType===Oe&&c.nodeValue.match(a)&&ot(c,t[s]=e.document.createElement("span"))}var d=ue(t,n,t,i,r,o);le.$$addScopeClass(t);var h=null;return function(e,n,i){$e(e,"scope"),o&&o.needsNewScope&&(e=e.$parent.$new());var r,a,s,u=(i=i||{}).parentBoundTranscludeFn,c=i.transcludeControllers,f=i.futureParentElement;if(u&&u.$$boundTransclude&&(u=u.$$boundTransclude),h||(a=(r=f)&&r[0],h=a&&"foreignobject"!==Q(a)&&p.call(a).match(/SVG/)?"svg":"html"),s="html"!==h?l(xe(h,l("<div>").append(t).html())):n?Lt.clone.call(t):t,c)for(var m in c)s.data("$"+m+"Controller",c[m].instance);return le.$$addScopeInfo(s,e),n&&n(s,e),d&&d(e,s,s,u),s}}function ue(e,t,n,i,r,o){for(var a,s,u,c,d,h,f,p=[],m=0;m<e.length;m++)a=new Z,(u=(s=de(e[m],[],a,0===m?i:void 0,r)).length?ge(s,e[m],a,t,n,null,[],[],o):null)&&u.scope&&le.$$addScopeClass(a.$$element),d=u&&u.terminal||!(c=e[m].childNodes)||!c.length?null:ue(c,u?(u.transcludeOnThisElement||!u.templateOnThisElement)&&u.transclude:t),(u||d)&&(p.push(m,u,d),h=!0,f=f||u),o=null;return h?function(e,n,i,r){var o,a,s,u,c,d,h,m;if(f){var g=n.length;for(m=new Array(g),c=0;c<p.length;c+=3)m[h=p[c]]=n[h]}else m=n;for(c=0,d=p.length;c<d;)s=m[p[c++]],o=p[c++],a=p[c++],o?(o.scope?(u=e.$new(),le.$$addScopeInfo(l(s),u)):u=e,o(a,u,s,i,o.transcludeOnThisElement?ce(e,o.transclude,r):!o.templateOnThisElement&&r?r:!r&&t?ce(e,t):null)):a&&a(e,s.childNodes,void 0,r)}:null}function ce(e,t,n){function i(i,r,o,a,s){return i||((i=e.$new(!1,s)).$$transcluded=!0),t(i,r,{parentBoundTranscludeFn:n,transcludeControllers:o,futureParentElement:a})}var r=i.$$slots=Pe();for(var o in t.$$slots)t.$$slots[o]?r[o]=ce(e,t.$$slots[o],n):r[o]=null;return i}function de(e,t,i,r,o){var a,l,d,h=e.nodeType,f=i.$attr;switch(h){case Ye:ye(t,un(l=Q(e)),"E",r,o);for(var p,m,g,v,_,y,b=e.attributes,w=0,L=b&&b.length;w<L;w++){var M=!1,k=!1;m=(p=b[w]).name,_=J(p.value),v=un(m),(y=re.test(v))&&(m=m.replace(ln,"").substr(8).replace(/_(.)/g,(function(e,t){return t.toUpperCase()})));var x=v.match(oe);x&&be(x[1])&&(M=m,k=m.substr(0,m.length-5)+"end",m=m.substr(0,m.length-6)),f[g=un(m.toLowerCase())]=m,!y&&i.hasOwnProperty(g)||(i[g]=_,St(e,g)&&(i[g]=!0)),Te(e,t,_,g,y),ye(t,g,"A",r,o,M,k)}if("input"===l&&"hidden"===e.getAttribute("type")&&e.setAttribute("autocomplete","off"),!V)break;if(j(d=e.className)&&(d=d.animVal),B(d)&&""!==d)for(;a=c.exec(d);)ye(t,g=un(a[2]),"C",r,o)&&(i[g]=J(a[3])),d=d.substr(a.index+a[0].length);break;case Oe:if(11===s)for(;e.parentNode&&e.nextSibling&&e.nextSibling.nodeType===Oe;)e.nodeValue=e.nodeValue+e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);!function(e,t){var i=n(t,!0);i&&e.push({priority:0,compile:function(e){var t=e.parent(),n=!!t.length;return n&&le.$$addBindingClass(t),function(e,t){var r=t.parent();n||le.$$addBindingClass(r),le.$$addBindingInfo(r,i.expressions),e.$watch(i,(function(e){t[0].nodeValue=e}))}}})}(t,e.nodeValue);break;case Ie:if(!R)break;!function(e,t,n,i,r){try{var o=u.exec(e.nodeValue);if(o){var a=un(o[1]);ye(t,a,"M",i,r)&&(n[a]=J(o[2]))}}catch(e){}}(e,t,i,r,o)}return t.sort(Me),t}function he(e,t,n){var i=[],r=0;if(t&&e.hasAttribute&&e.hasAttribute(t))do{if(!e)throw rn("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",t,n);e.nodeType===Ye&&(e.hasAttribute(t)&&r++,e.hasAttribute(n)&&r--),i.push(e),e=e.nextSibling}while(r>0);else i.push(e);return l(i)}function fe(e,t,n){return function(i,r,o,a,s){return r=he(r[0],t,n),e(i,r,o,a,s)}}function me(e,t,n,i,r,o){var a;return e?le(t,n,i,r,o):function(){return a||(a=le(t,n,i,r,o),t=n=o=null),a.apply(this,arguments)}}function ge(e,t,n,i,r,o,a,s,u){u=u||{};for(var c,d,h,f,p,g=-Number.MAX_VALUE,v=u.newScopeDirective,_=u.controllerDirectives,w=u.newIsolateScopeDirective,L=u.templateDirective,M=u.nonTlbTranscludeDirective,k=!1,T=!1,$=u.hasElementTranscludeDirective,D=n.$$element=l(t),C=o,E=i,A=!1,P=!1,Y=0,I=e.length;Y<I;Y++){var H=(c=e[Y]).$$start,B=c.$$end;if(H&&(D=he(t,H,B)),h=void 0,g>c.priority)break;if((p=c.scope)&&(c.templateUrl||(j(p)?(ke("new/isolated scope",w||v,c,D),w=c):ke("new/isolated scope",w,c,D)),v=v||c),d=c.name,!A&&(c.replace&&(c.templateUrl||c.template)||c.transclude&&!c.$$tlb)){for(var N,R=Y+1;N=e[R++];)if(N.transclude&&!N.$$tlb||N.replace&&(N.templateUrl||N.template)){P=!0;break}A=!0}if(!c.templateUrl&&c.controller&&(_=_||Pe(),ke("'"+d+"' controller",_[d],c,D),_[d]=c),p=c.transclude)if(k=!0,c.$$tlb||(ke("transclusion",M,c,D),M=c),"element"===p)$=!0,g=c.priority,h=D,D=n.$$element=l(le.$$createComment(d,n[d])),t=D[0],De(r,ae(h),t),h[0].$$parentNode=h[0].parentNode,E=me(P,h,i,g,C&&C.name,{nonTlbTranscludeDirective:M});else{var V=Pe();if(h=l(lt(t)).contents(),j(p)){h=[];var U=Pe(),q=Pe();for(var G in b(p,(function(e,t){var n="?"===e.charAt(0);e=n?e.substring(1):e,U[e]=t,V[t]=null,q[t]=n})),b(D.contents(),(function(e){var t=U[un(Q(e))];t?(q[t]=!0,V[t]=V[t]||[],V[t].push(e)):h.push(e)})),b(q,(function(e,t){if(!e)throw rn("reqslot","Required transclusion slot `{0}` was not filled.",t)})),V)V[G]&&(V[G]=me(P,V[G],i))}D.empty(),(E=me(P,h,i,void 0,void 0,{needsNewScope:c.$$isolateScope||c.$$newScope})).$$slots=V}if(c.template)if(T=!0,ke("template",L,c,D),L=c,p=z(c.template)?c.template(D,n):c.template,p=ie(p),c.replace){if(C=c,h=nt(p)?[]:dn(xe(c.templateNamespace,J(p))),t=h[0],1!==h.length||t.nodeType!==Ye)throw rn("tplrt","Template for directive '{0}' must have exactly one root element. {1}",d,"");De(r,D,t);var X={$attr:{}},K=de(t,[],X),ee=e.splice(Y+1,e.length-(Y+1));(w||v)&&_e(K,w,v),e=e.concat(K).concat(ee),we(n,X),I=e.length}else D.html(p);if(c.templateUrl)T=!0,ke("template",L,c,D),L=c,c.replace&&(C=c),re=Le(e.splice(Y,e.length-Y),D,n,r,k&&E,a,s,{controllerDirectives:_,newScopeDirective:v!==c&&v,newIsolateScopeDirective:w,templateDirective:L,nonTlbTranscludeDirective:M}),I=e.length;else if(c.compile)try{f=c.compile(D,n,E);var te=c.$$originalDirective||c;z(f)?ne(null,se(te,f),H,B):f&&ne(se(te,f.pre),se(te,f.post),H,B)}catch(e){m(e,pe(D))}c.terminal&&(re.terminal=!0,g=Math.max(g,c.priority))}return re.scope=v&&!0===v.scope,re.transcludeOnThisElement=k,re.templateOnThisElement=T,re.transclude=E,u.hasElementTranscludeDirective=$,re;function ne(e,t,n,i){e&&(n&&(e=fe(e,n,i)),e.require=c.require,e.directiveName=d,(w===c||c.$$isolateScope)&&(e=Ce(e,{isolateScope:!0})),a.push(e)),t&&(n&&(t=fe(t,n,i)),t.require=c.require,t.directiveName=d,(w===c||c.$$isolateScope)&&(t=Ce(t,{isolateScope:!0})),s.push(t))}function re(e,i,r,o,u){var c,d,h,f,p,g,M,k,T,D;for(var C in t===r?(T=n,k=n.$$element):T=new Z(k=l(r),n),p=i,w?f=i.$new(!0):v&&(p=i.$parent),u&&((M=function(e,t,n,i){var r;if(W(e)||(i=n,n=t,t=e,e=void 0),$&&(r=g),n||(n=$?k.parent():k),!i)return u(e,t,r,n,I);var o=u.$$slots[i];if(o)return o(e,t,r,n,I);if(O(o))throw rn("noslot",'No parent directive that requires a transclusion with slot name "{0}". Element: {1}',i,pe(k))}).$$boundTransclude=u,M.isSlotFilled=function(e){return!!u.$$slots[e]}),_&&(g=function(e,t,n,i,r,o,a){var s=Pe();for(var l in i){var u=i[l],c={$scope:u===a||u.$$isolateScope?r:o,$element:e,$attrs:t,$transclude:n},d=u.controller;"@"===d&&(d=t[u.name]);var h=x(d,c,!0,u.controllerAs);s[u.name]=h,e.data("$"+u.name+"Controller",h.instance)}return s}(k,T,M,_,f,i,w)),w&&(le.$$addScopeInfo(k,f,!0,!(L&&(L===w||L===w.$$originalDirective))),le.$$addScopeClass(k,!0),f.$$isolateBindings=w.$$isolateBindings,(D=Ae(i,T,f,f.$$isolateBindings,w)).removeWatches&&f.$on("$destroy",D.removeWatches)),g){var E=_[C],A=g[C],P=E.$$bindings.bindToController;if(y){A.bindingInfo=P?Ae(p,T,A.instance,P,E):{};var Y=A();Y!==A.instance&&(A.instance=Y,k.data("$"+E.name+"Controller",Y),A.bindingInfo.removeWatches&&A.bindingInfo.removeWatches(),A.bindingInfo=Ae(p,T,A.instance,P,E))}else A.instance=A(),k.data("$"+E.name+"Controller",A.instance),A.bindingInfo=Ae(p,T,A.instance,P,E)}for(b(_,(function(e,t){var n=e.require;e.bindToController&&!F(n)&&j(n)&&S(g[t].instance,ve(t,n,k,g))})),b(g,(function(e){var t=e.instance;if(z(t.$onChanges))try{t.$onChanges(e.bindingInfo.initialChanges)}catch(e){m(e)}if(z(t.$onInit))try{t.$onInit()}catch(e){m(e)}z(t.$doCheck)&&(p.$watch((function(){t.$doCheck()})),t.$doCheck()),z(t.$onDestroy)&&p.$on("$destroy",(function(){t.$onDestroy()}))})),c=0,d=a.length;c<d;c++)Ee(h=a[c],h.isolateScope?f:i,k,T,h.require&&ve(h.directiveName,h.require,k,g),M);var I=i;for(w&&(w.template||null===w.templateUrl)&&(I=f),e&&e(I,r.childNodes,void 0,u),c=s.length-1;c>=0;c--)Ee(h=s[c],h.isolateScope?f:i,k,T,h.require&&ve(h.directiveName,h.require,k,g),M);b(g,(function(e){var t=e.instance;z(t.$postLink)&&t.$postLink()}))}}function ve(e,t,n,i){var r;if(B(t)){var o=t.match(h),a=t.substring(o[0].length),s=o[1]||o[3],l="?"===o[2];if("^^"===s?n=n.parent():r=(r=i&&i[a])&&r.instance,!r){var u="$"+a+"Controller";r=s?n.inheritedData(u):n.data(u)}if(!r&&!l)throw rn("ctreq","Controller '{0}', required by directive '{1}', can't be found!",a,e)}else if(F(t)){r=[];for(var c=0,d=t.length;c<d;c++)r[c]=ve(e,t[c],n,i)}else j(t)&&(r={},b(t,(function(t,o){r[o]=ve(e,t,n,i)})));return r||null}function _e(e,t,n){for(var i=0,r=e.length;i<r;i++)e[i]=C(e[i],{$$isolateScope:t,$$newScope:n})}function ye(e,n,r,o,s,l,u){if(n===s)return null;var c=null;if(i.hasOwnProperty(n))for(var d,h=t.get(n+a),f=0,p=h.length;f<p;f++)if(d=h[f],(O(o)||o>d.priority)&&-1!==d.restrict.indexOf(r)){if(l&&(d=C(d,{$$start:l,$$end:u})),!d.$$bindings){var m=d.$$bindings=v(d,d.name);j(m.isolateScope)&&(d.$$isolateBindings=m.isolateScope)}e.push(d),c=d}return c}function be(e){if(i.hasOwnProperty(e))for(var n=t.get(e+a),r=0,o=n.length;r<o;r++)if(n[r].multiElement)return!0;return!1}function we(e,t){var n=t.$attr,i=e.$attr;b(e,(function(i,r){"$"!==r.charAt(0)&&(t[r]&&t[r]!==i&&(i+=("style"===r?";":" ")+t[r]),e.$set(r,i,!0,n[r]))})),b(t,(function(t,r){e.hasOwnProperty(r)||"$"===r.charAt(0)||(e[r]=t,"class"!==r&&"style"!==r&&(i[r]=n[r]))}))}function Le(e,t,n,i,r,o,a,s){var u,c,d=[],h=t[0],f=e.shift(),p=C(f,{templateUrl:null,transclude:null,replace:null,$$originalDirective:f}),m=z(f.templateUrl)?f.templateUrl(t,n):f.templateUrl,v=f.templateNamespace;return t.empty(),g(m).then((function(g){var _,y,w,L;if(g=ie(g),f.replace){if(w=nt(g)?[]:dn(xe(v,J(g))),_=w[0],1!==w.length||_.nodeType!==Ye)throw rn("tplrt","Template for directive '{0}' must have exactly one root element. {1}",f.name,m);y={$attr:{}},De(i,t,_);var M=de(_,[],y);j(f.scope)&&_e(M,!0),e=M.concat(e),we(n,y)}else _=h,t.html(g);for(e.unshift(p),u=ge(e,_,n,r,t,f,o,a,s),b(i,(function(e,n){e===_&&(i[n]=t[0])})),c=ue(t[0].childNodes,r);d.length;){var k=d.shift(),x=d.shift(),S=d.shift(),T=d.shift(),$=t[0];if(!k.$$destroyed){if(x!==h){var D=x.className;s.hasElementTranscludeDirective&&f.replace||($=lt(_)),De(S,l(x),$),X(l($),D)}L=u.transcludeOnThisElement?ce(k,u.transclude,T):T,u(c,k,$,i,L)}}d=null})),function(e,t,n,i,r){var o=r;t.$$destroyed||(d?d.push(t,n,i,o):(u.transcludeOnThisElement&&(o=ce(t,u.transclude,r)),u(c,t,n,i,o)))}}function Me(e,t){var n=t.priority-e.priority;return 0!==n?n:e.name!==t.name?e.name<t.name?-1:1:e.index-t.index}function ke(e,t,n,i){function r(e){return e?" (module: "+e+")":""}if(t)throw rn("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",t.name,r(t.$$moduleName),n.name,r(n.$$moduleName),e,pe(i))}function xe(t,n){switch(t=o(t||"html")){case"svg":case"math":var i=e.document.createElement("div");return i.innerHTML="<"+t+">"+n+"</"+t+">",i.childNodes[0].childNodes;default:return n}}function Te(e,t,i,r,o){var a=function(e,t){if("srcdoc"===t)return $.HTML;var n=Q(e);if("src"===t||"ngSrc"===t){if(-1===["img","video","audio","source","track"].indexOf(n))return $.RESOURCE_URL}else if("xlinkHref"===t||"form"===n&&"action"===t)return $.RESOURCE_URL}(e,r),s=!o,l=d[r]||o,u=n(i,s,a,l);if(u){if("multiple"===r&&"select"===Q(e))throw rn("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",pe(e));t.push({priority:100,compile:function(){return{pre:function(e,t,o){var s=o.$$observers||(o.$$observers=Pe());if(f.test(r))throw rn("nodomevents","Interpolations for HTML DOM event attributes are disallowed.  Please use the ng- versions (such as ng-click instead of onclick) instead.");var c=o[r];c!==i&&(u=c&&n(c,!0,a,l),i=c),u&&(o[r]=u(e),(s[r]||(s[r]=[])).$$inter=!0,(o.$$observers&&o.$$observers[r].$$scope||e).$watch(u,(function(e,t){"class"===r&&e!==t?o.$updateClass(e,t):o.$set(r,e)})))}}}})}}function De(t,n,i){var r,o,a=n[0],s=n.length,u=a.parentNode;if(t)for(r=0,o=t.length;r<o;r++)if(t[r]===a){t[r++]=i;for(var c=r,d=c+s-1,h=t.length;c<h;c++,d++)d<h?t[c]=t[d]:delete t[c];t.length-=s-1,t.context===a&&(t.context=i);break}u&&u.replaceChild(i,a);var f=e.document.createDocumentFragment();for(r=0;r<s;r++)f.appendChild(n[r]);for(l.hasData(a)&&(l.data(i,l.data(a)),l(a).off("$destroy")),l.cleanData(f.querySelectorAll("*")),r=1;r<s;r++)delete n[r];n[0]=i,n.length=1}function Ce(e,t){return S((function(){return e.apply(null,arguments)}),e,t)}function Ee(e,t,n,i,r,o){try{e(t,n,i,r,o)}catch(e){m(e,pe(n))}}function Ae(e,t,i,o,a){var s,l=[],u={};function c(t,n,r){!z(i.$onChanges)||n===r||n!=n&&r!=r||(Y||(e.$$postDigest(G),Y=[]),s||(s={},Y.push(d)),s[t]&&(r=s[t].previousValue),s[t]=new sn(r,n))}function d(){i.$onChanges(s),s=void 0}return b(o,(function(o,s){var d,h,f,p,m,g=o.attrName,v=o.optional;switch(o.mode){case"@":v||r.call(t,g)||(i[s]=t[g]=void 0),m=t.$observe(g,(function(e){if(B(e)||q(e)){var t=i[s];c(s,e,t),i[s]=e}})),t.$$observers[g].$$scope=e,B(d=t[g])?i[s]=n(d)(e):q(d)&&(i[s]=d),u[s]=new sn(on,i[s]),l.push(m);break;case"=":if(!r.call(t,g)){if(v)break;t[g]=void 0}if(v&&!t[g])break;h=L(t[g]),p=h.literal?ne:function(e,t){return e===t||e!=e&&t!=t},f=h.assign||function(){throw d=i[s]=h(e),rn("nonassign","Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!",t[g],g,a.name)},d=i[s]=h(e);var _=function(t){return p(t,i[s])||(p(t,d)?f(e,t=i[s]):i[s]=t),d=t};_.$stateful=!0,m=o.collection?e.$watchCollection(t[g],_):e.$watch(L(t[g],_),null,h.literal),l.push(m);break;case"<":if(!r.call(t,g)){if(v)break;t[g]=void 0}if(v&&!t[g])break;var y=(h=L(t[g])).literal,b=i[s]=h(e);u[s]=new sn(on,i[s]),m=e.$watch(h,(function(e,t){if(t===e){if(t===b||y&&ne(t,b))return;t=b}c(s,e,t),i[s]=e}),y),l.push(m);break;case"&":if((h=t.hasOwnProperty(g)?L(t[g]):E)===E&&v)break;i[s]=function(t){return h(e,t)}}})),{initialChanges:u,removeWatches:l.length&&function(){for(var e=0,t=l.length;e<t;++e)l[e]()}}}}]}function sn(e,t){this.previousValue=e,this.currentValue=t}an.$inject=["$provide","$$sanitizeUriProvider"],sn.prototype.isFirstChange=function(){return this.previousValue===on};var ln=/^((?:x|data)[:\-_])/i;function un(e){return Je(e.replace(ln,""))}function cn(e,t){var n="",i=e.split(/\s+/),r=t.split(/\s+/);e:for(var o=0;o<i.length;o++){for(var a=i[o],s=0;s<r.length;s++)if(a===r[s])continue e;n+=(n.length>0?" ":"")+a}return n}function dn(e){var t=(e=l(e)).length;if(t<=1)return e;for(;t--;){var n=e[t];(n.nodeType===Ie||n.nodeType===Oe&&""===n.nodeValue.trim())&&h.call(e,t,1)}return e}var hn=t("$controller"),fn=/^(\S+)(\s+as\s+([\w$]+))?$/;function pn(e,t){if(t&&B(t))return t;if(B(e)){var n=fn.exec(e);if(n)return n[3]}}function mn(){var e={},n=!1;this.has=function(t){return e.hasOwnProperty(t)},this.register=function(t,n){Ce(t,"controller"),j(t)?S(e,t):e[t]=n},this.allowGlobals=function(){n=!0},this.$get=["$injector","$window",function(i,r){return function(t,a,s,l){var u,c,d,h;if(s=!0===s,l&&B(l)&&(h=l),B(t)){if(!(c=t.match(fn)))throw hn("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",t);if(d=c[1],h=h||c[3],!(t=e.hasOwnProperty(d)?e[d]:Ee(a.$scope,d,!0)||(n?Ee(r,d,!0):void 0)))throw hn("ctrlreg","The controller with the name '{0}' is not registered.",d);De(t,d,!0)}if(s){var f=(F(t)?t[t.length-1]:t).prototype;return u=Object.create(f||null),h&&o(a,h,u,d||t.name),S((function(){var e=i.invoke(t,u,a,d);return e!==u&&(j(e)||z(e))&&(u=e,h&&o(a,h,u,d||t.name)),u}),{instance:u,identifier:h})}return u=i.instantiate(t,a,d),h&&o(a,h,u,d||t.name),u};function o(e,n,i,r){if(!e||!j(e.$scope))throw t("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",r,n);e.$scope[n]=i}}]}function gn(){this.$get=["$window",function(e){return l(e.document)}]}function vn(){this.$get=["$log",function(e){return function(t,n){e.error.apply(e,arguments)}}]}var _n=function(){this.$get=["$document",function(e){return function(t){return t?!t.nodeType&&t instanceof l&&(t=t[0]):t=e[0].body,t.offsetWidth+1}}]},yn="application/json",bn={"Content-Type":yn+";charset=utf-8"},wn=/^\[|^\{(?!\{)/,Ln={"[":/]$/,"{":/}$/},Mn=/^\)]\}',?\n/,kn=t("$http"),xn=function(e){return function(){throw kn("legacy","The method `{0}` on the promise returned from `$http` has been disabled.",e)}};function Sn(e){return j(e)?R(e)?e.toISOString():ue(e):e}function Tn(){this.$get=function(){return function(e){if(!e)return"";var t=[];return w(e,(function(e,n){null===e||O(e)||(F(e)?b(e,(function(e){t.push(ye(n)+"="+ye(Sn(e)))})):t.push(ye(n)+"="+ye(Sn(e))))})),t.join("&")}}}function $n(){this.$get=function(){return function(e){if(!e)return"";var t=[];return function e(n,i,r){null===n||O(n)||(F(n)?b(n,(function(t,n){e(t,i+"["+(j(t)?n:"")+"]")})):j(n)&&!R(n)?w(n,(function(t,n){e(t,i+(r?"":"[")+n+(r?"":"]"))})):t.push(ye(i)+"="+ye(Sn(n))))}(e,"",!0),t.join("&")}}}function Dn(e,t){if(B(e)){var n=e.replace(Mn,"").trim();if(n){var i=t("Content-Type");(i&&0===i.indexOf(yn)||(o=(r=n).match(wn))&&Ln[o[0]].test(r))&&(e=ce(n))}}var r,o;return e}function Cn(e){var t,n=Pe();function i(e,t){e&&(n[e]=n[e]?n[e]+", "+t:t)}return B(e)?b(e.split("\n"),(function(e){t=e.indexOf(":"),i(o(J(e.substr(0,t))),J(e.substr(t+1)))})):j(e)&&b(e,(function(e,t){i(o(t),J(e))})),n}function En(e){var t;return function(n){if(t||(t=Cn(e)),n){var i=t[o(n)];return void 0===i&&(i=null),i}return t}}function An(e,t,n,i){return z(i)?i(e,t,n):(b(i,(function(i){e=i(e,t,n)})),e)}function Pn(e){return 200<=e&&e<300}function Yn(){var e=this.defaults={transformResponse:[Dn],transformRequest:[function(e){return!j(e)||(t=e,"[object File]"===p.call(t))||function(e){return"[object Blob]"===p.call(e)}(e)||function(e){return"[object FormData]"===p.call(e)}(e)?e:ue(e);var t}],headers:{common:{Accept:"application/json, text/plain, */*"},post:Be(bn),put:Be(bn),patch:Be(bn)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},n=!1;this.useApplyAsync=function(e){return I(e)?(n=!!e,this):n};var i=!0;this.useLegacyPromiseExtensions=function(e){return I(e)?(i=!!e,this):i};var r=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(s,l,u,c,d,h){var f=u("$http");e.paramSerializer=B(e.paramSerializer)?h.get(e.paramSerializer):e.paramSerializer;var p=[];function m(r){if(!j(r))throw t("$http")("badreq","Http request configuration must be an object.  Received: {0}",r);if(!B(r.url))throw t("$http")("badreq","Http request configuration url must be a string.  Received: {0}",r.url);var u=S({method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse,paramSerializer:e.paramSerializer},r);u.headers=function(t){var n,i,r,a=e.headers,s=S({},t.headers);a=S({},a.common,a[o(t.method)]);e:for(n in a){for(r in i=o(n),s)if(o(r)===i)continue e;s[n]=a[n]}return function(e,t){var n,i={};return b(e,(function(e,r){z(e)?null!=(n=e(t))&&(i[r]=n):i[r]=e})),i}(s,Be(t))}(r),u.method=a(u.method),u.paramSerializer=B(u.paramSerializer)?h.get(u.paramSerializer):u.paramSerializer;var g=[],v=[],_=d.when(u);return b(p,(function(e){(e.request||e.requestError)&&g.unshift(e.request,e.requestError),(e.response||e.responseError)&&v.push(e.response,e.responseError)})),_=y(_,g),_=y(_=_.then((function(t){var i=t.headers,r=An(t.data,En(i),void 0,t.transformRequest);return O(r)&&b(i,(function(e,t){"content-type"===o(t)&&delete i[t]})),O(t.withCredentials)&&!O(e.withCredentials)&&(t.withCredentials=e.withCredentials),function(t,i){var r,o,a=d.defer(),u=a.promise,h=t.headers,p=function(e,t){return t.length>0&&(e+=(-1===e.indexOf("?")?"?":"&")+t),e}(t.url,t.paramSerializer(t.params));if(m.pendingRequests.push(t),u.then(w,w),!t.cache&&!e.cache||!1===t.cache||"GET"!==t.method&&"JSONP"!==t.method||(r=j(t.cache)?t.cache:j(e.cache)?e.cache:f),r&&(I(o=r.get(p))?G(o)?o.then(y,y):F(o)?_(o[1],o[0],Be(o[2]),o[3]):_(o,200,{},"OK"):r.put(p,u)),O(o)){var g=dr(t.url)?l()[t.xsrfCookieName||e.xsrfCookieName]:void 0;g&&(h[t.xsrfHeaderName||e.xsrfHeaderName]=g),s(t.method,p,i,(function(e,t,i,o){function a(){_(t,e,i,o)}r&&(Pn(e)?r.put(p,[e,t,Cn(i),o]):r.remove(p)),n?c.$applyAsync(a):(a(),c.$$phase||c.$apply())}),h,t.timeout,t.withCredentials,t.responseType,v(t.eventHandlers),v(t.uploadEventHandlers))}return u;function v(e){if(e){var t={};return b(e,(function(e,i){t[i]=function(t){function i(){e(t)}n?c.$applyAsync(i):c.$$phase?i():c.$apply(i)}})),t}}function _(e,n,i,r){(Pn(n=n>=-1?n:0)?a.resolve:a.reject)({data:e,status:n,headers:En(i),config:t,statusText:r})}function y(e){_(e.data,e.status,Be(e.headers()),e.statusText)}function w(){var e=m.pendingRequests.indexOf(t);-1!==e&&m.pendingRequests.splice(e,1)}}(t,r).then(w,w)})),v),i?(_.success=function(e){return De(e,"fn"),_.then((function(t){e(t.data,t.status,t.headers,u)})),_},_.error=function(e){return De(e,"fn"),_.then(null,(function(t){e(t.data,t.status,t.headers,u)})),_}):(_.success=xn("success"),_.error=xn("error")),_;function y(e,t){for(var n=0,i=t.length;n<i;){var r=t[n++],o=t[n++];e=e.then(r,o)}return t.length=0,e}function w(e){var t=S({},e);return t.data=An(e.data,e.headers,e.status,u.transformResponse),Pn(e.status)?t:d.reject(t)}}return b(r,(function(e){p.unshift(B(e)?h.get(e):h.invoke(e))})),m.pendingRequests=[],function(e){b(arguments,(function(e){m[e]=function(t,n){return m(S({},n||{},{method:e,url:t}))}}))}("get","delete","head","jsonp"),function(e){b(arguments,(function(e){m[e]=function(t,n,i){return m(S({},i||{},{method:e,url:t,data:n}))}}))}("post","put","patch"),m.defaults=e,m}]}function On(){this.$get=function(){return function(){return new e.XMLHttpRequest}}}function In(){this.$get=["$browser","$jsonpCallbacks","$document","$xhrFactory",function(e,t,n,i){return function(e,t,n,i,r){return function(a,s,l,u,c,d,h,f,p,m){if(e.$$incOutstandingRequestCount(),s=s||e.url(),"jsonp"===o(a))var g=i.createCallback(s),v=function(e,t,n){e=e.replace("JSON_CALLBACK",t);var o=r.createElement("script"),a=null;return o.type="text/javascript",o.src=e,o.async=!0,a=function(e){Ue(o,"load",a),Ue(o,"error",a),r.body.removeChild(o),o=null;var s=-1,l="unknown";e&&("load"!==e.type||i.wasCalled(t)||(e={type:"error"}),l=e.type,s="error"===e.type?404:200),n&&n(s,l)},Ve(o,"load",a),Ve(o,"error",a),r.body.appendChild(o),a}(s,g,(function(e,t){var n=200===e&&i.getResponse(g);M(u,e,n,"",t),i.removeCallback(g)}));else{var _=t(a,s);_.open(a,s,!0),b(c,(function(e,t){I(e)&&_.setRequestHeader(t,e)})),_.onload=function(){var e=_.statusText||"",t="response"in _?_.response:_.responseText,n=1223===_.status?204:_.status;0===n&&(n=t?200:"file"===cr(s).protocol?404:0),M(u,n,t,_.getAllResponseHeaders(),e)};var y=function(){M(u,-1,null,null,"")};if(_.onerror=y,_.onabort=y,_.ontimeout=y,b(p,(function(e,t){_.addEventListener(t,e)})),b(m,(function(e,t){_.upload.addEventListener(t,e)})),h&&(_.withCredentials=!0),f)try{_.responseType=f}catch(e){if("json"!==f)throw e}_.send(O(l)?null:l)}if(d>0)var w=n(L,d);else G(d)&&d.then(L);function L(){v&&v(),_&&_.abort()}function M(t,i,r,o,a){I(w)&&n.cancel(w),v=_=null,t(i,r,o,a),e.$$completeOutstandingRequest(E)}}}(e,i,e.defer,t,n[0])}]}var jn=v.$interpolateMinErr=t("$interpolate");function Hn(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,i,r){var o=e.length,a=t.length,s=new RegExp(e.replace(/./g,u),"g"),l=new RegExp(t.replace(/./g,u),"g");function u(e){return"\\\\\\"+e}function c(n){return n.replace(s,e).replace(l,t)}function d(e,t,n,i){var r=e.$watch((function(e){return r(),i(e)}),t,n);return r}function h(s,l,u,h){var f;if(!s.length||-1===s.indexOf(e))return l||((f=P(c(s))).exp=s,f.expressions=[],f.$$watchDelegate=d),f;h=!!h;for(var p,m,g,v=0,_=[],y=[],b=s.length,w=[],L=[];v<b;){if(-1===(p=s.indexOf(e,v))||-1===(m=s.indexOf(t,p+o))){v!==b&&w.push(c(s.substring(v)));break}v!==p&&w.push(c(s.substring(v,p))),g=s.substring(p+o,m),_.push(g),y.push(n(g,x)),v=m+a,L.push(w.length),w.push("")}if(u&&w.length>1&&jn.throwNoconcat(s),!l||_.length){var M=function(e){for(var t=0,n=_.length;t<n;t++){if(h&&O(e[t]))return;w[L[t]]=e[t]}return w.join("")},k=function(e){return u?r.getTrusted(u,e):r.valueOf(e)};return S((function(e){var t=0,n=_.length,r=new Array(n);try{for(;t<n;t++)r[t]=y[t](e);return M(r)}catch(e){i(jn.interr(s,e))}}),{exp:s,expressions:_,$$watchDelegate:function(e,t){var n;return e.$watchGroup(y,(function(i,r){var o=M(i);z(t)&&t.call(this,o,i!==r?n:o,e),n=o}))}})}function x(e){try{return e=k(e),h&&!I(e)?e:function(e){if(null==e)return"";switch(typeof e){case"string":break;case"number":e=""+e;break;default:e=ue(e)}return e}(e)}catch(e){i(jn.interr(s,e))}}}return h.startSymbol=function(){return e},h.endSymbol=function(){return t},h}]}function Bn(){this.$get=["$rootScope","$window","$q","$$q","$browser",function(e,t,n,i,r){var o={};function a(a,s,l,u){var c=arguments.length>4,d=c?ae(arguments,4):[],h=t.setInterval,f=t.clearInterval,p=0,m=I(u)&&!u,g=(m?i:n).defer(),v=g.promise;return l=I(l)?l:0,v.$$intervalId=h((function(){m?r.defer(_):e.$evalAsync(_),g.notify(p++),l>0&&p>=l&&(g.resolve(p),f(v.$$intervalId),delete o[v.$$intervalId]),m||e.$apply()}),s),o[v.$$intervalId]=g,v;function _(){c?a.apply(null,d):a(p)}}return a.cancel=function(e){return!!(e&&e.$$intervalId in o)&&(o[e.$$intervalId].reject("canceled"),t.clearInterval(e.$$intervalId),delete o[e.$$intervalId],!0)},a}]}jn.throwNoconcat=function(e){throw jn("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required.  See http://docs.angularjs.org/api/ng.$sce",e)},jn.interr=function(e,t){return jn("interr","Can't interpolate: {0}\n{1}",e,t.toString())};var Nn=function(){this.$get=["$window",function(e){var t=e.angular.callbacks,n={};return{createCallback:function(e){var i="_"+(t.$$counter++).toString(36),r="angular.callbacks."+i,o=function(e){var t=function(e){t.data=e,t.called=!0};return t.id=e,t}(i);return n[r]=t[i]=o,r},wasCalled:function(e){return n[e].called},getResponse:function(e){return n[e].data},removeCallback:function(e){var i=n[e];delete t[i.id],delete n[e]}}}]},Rn=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,Fn={http:80,https:443,ftp:21},zn=t("$location");function Vn(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=_e(t[n]);return t.join("/")}function Un(e,t){var n=cr(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=$(n.port)||Fn[n.protocol]||null}var Wn=/^\s*[\\/]{2,}/;function qn(e,t){if(Wn.test(e))throw zn("badpath",'Invalid url "{0}".',e);var n="/"!==e.charAt(0);n&&(e="/"+e);var i=cr(e);t.$$path=decodeURIComponent(n&&"/"===i.pathname.charAt(0)?i.pathname.substring(1):i.pathname),t.$$search=ge(i.search),t.$$hash=decodeURIComponent(i.hash),t.$$path&&"/"!==t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function Gn(e,t){return e.slice(0,t.length)===t}function Zn(e,t){if(Gn(t,e))return t.substr(e.length)}function Jn(e){var t=e.indexOf("#");return-1===t?e:e.substr(0,t)}function Xn(e){return e.replace(/(#.+)|#$/,"$1")}function Kn(e,t,n){this.$$html5=!0,n=n||"",Un(e,this),this.$$parse=function(e){var n=Zn(t,e);if(!B(n))throw zn("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',e,t);qn(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var e=ve(this.$$search),n=this.$$hash?"#"+_e(this.$$hash):"";this.$$url=Vn(this.$$path)+(e?"?"+e:"")+n,this.$$absUrl=t+this.$$url.substr(1)},this.$$parseLinkUrl=function(i,r){return r&&"#"===r[0]?(this.hash(r.slice(1)),!0):(I(o=Zn(e,i))?(a=o,s=n&&I(o=Zn(n,o))?t+(Zn("/",o)||o):e+a):I(o=Zn(t,i))?s=t+o:t===i+"/"&&(s=t),s&&this.$$parse(s),!!s);var o,a,s}}function Qn(e,t,n){Un(e,this),this.$$parse=function(i){var r,o=Zn(e,i)||Zn(t,i);O(o)||"#"!==o.charAt(0)?this.$$html5?r=o:(r="",O(o)&&(e=i,this.replace())):O(r=Zn(n,o))&&(r=o),qn(r,this),this.$$path=function(e,t,n){var i,r=/^\/[A-Z]:(\/.*)/;return Gn(t,n)&&(t=t.replace(n,"")),r.exec(t)?e:(i=r.exec(e))?i[1]:e}(this.$$path,r,e),this.$$compose()},this.$$compose=function(){var t=ve(this.$$search),i=this.$$hash?"#"+_e(this.$$hash):"";this.$$url=Vn(this.$$path)+(t?"?"+t:"")+i,this.$$absUrl=e+(this.$$url?n+this.$$url:"")},this.$$parseLinkUrl=function(t,n){return Jn(e)===Jn(t)&&(this.$$parse(t),!0)}}function ei(e,t,n){this.$$html5=!0,Qn.apply(this,arguments),this.$$parseLinkUrl=function(i,r){return r&&"#"===r[0]?(this.hash(r.slice(1)),!0):(e===Jn(i)?o=i:(a=Zn(t,i))?o=e+n+a:t===i+"/"&&(o=t),o&&this.$$parse(o),!!o);var o,a},this.$$compose=function(){var t=ve(this.$$search),i=this.$$hash?"#"+_e(this.$$hash):"";this.$$url=Vn(this.$$path)+(t?"?"+t:"")+i,this.$$absUrl=e+n+this.$$url}}var ti={$$absUrl:"",$$html5:!1,$$replace:!1,absUrl:ni("$$absUrl"),url:function(e){if(O(e))return this.$$url;var t=Rn.exec(e);return(t[1]||""===e)&&this.path(decodeURIComponent(t[1])),(t[2]||t[1]||""===e)&&this.search(t[3]||""),this.hash(t[5]||""),this},protocol:ni("$$protocol"),host:ni("$$host"),port:ni("$$port"),path:ii("$$path",(function(e){return"/"===(e=null!==e?e.toString():"").charAt(0)?e:"/"+e})),search:function(e,t){switch(arguments.length){case 0:return this.$$search;case 1:if(B(e)||N(e))e=e.toString(),this.$$search=ge(e);else{if(!j(e))throw zn("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");b(e=te(e,{}),(function(t,n){null==t&&delete e[n]})),this.$$search=e}break;default:O(t)||null===t?delete this.$$search[e]:this.$$search[e]=t}return this.$$compose(),this},hash:ii("$$hash",(function(e){return null!==e?e.toString():""})),replace:function(){return this.$$replace=!0,this}};function ni(e){return function(){return this[e]}}function ii(e,t){return function(n){return O(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function ri(){var e="",t={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(t){return I(t)?(e=t,this):e},this.html5Mode=function(e){return q(e)?(t.enabled=e,this):j(e)?(q(e.enabled)&&(t.enabled=e.enabled),q(e.requireBase)&&(t.requireBase=e.requireBase),(q(e.rewriteLinks)||B(e.rewriteLinks))&&(t.rewriteLinks=e.rewriteLinks),this):t},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,i,r,o,a){var s,u,c,d,h=i.baseHref(),f=i.url();if(t.enabled){if(!h&&t.requireBase)throw zn("nobase","$location in HTML5 mode requires a <base> tag to be present!");c=(d=f).substring(0,d.indexOf("/",d.indexOf("//")+2))+(h||"/"),u=r.history?Kn:ei}else c=Jn(f),u=Qn;var p=function(e){return e.substr(0,Jn(e).lastIndexOf("/")+1)}(c);(s=new u(c,p,"#"+e)).$$parseLinkUrl(f,f),s.$$state=i.state();var m=/^\s*(javascript|mailto):/i;function g(e,t,n){var r=s.url(),o=s.$$state;try{i.url(e,t,n),s.$$state=i.state()}catch(e){throw s.url(r),s.$$state=o,e}}o.on("click",(function(e){var r=t.rewriteLinks;if(r&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&2!==e.which&&2!==e.button){for(var u=l(e.target);"a"!==Q(u[0]);)if(u[0]===o[0]||!(u=u.parent())[0])return;if(!B(r)||!O(u.attr(r))){var c=u.prop("href"),d=u.attr("href")||u.attr("xlink:href");j(c)&&"[object SVGAnimatedString]"===c.toString()&&(c=cr(c.animVal).href),m.test(c)||!c||u.attr("target")||e.isDefaultPrevented()||s.$$parseLinkUrl(c,d)&&(e.preventDefault(),s.absUrl()!==i.url()&&(n.$apply(),a.angular["ff-684208-preventDefault"]=!0))}}})),Xn(s.absUrl())!==Xn(f)&&i.url(s.absUrl(),!0);var v=!0;return i.onUrlChange((function(e,t){O(Zn(p,e))?a.location.href=e:(n.$evalAsync((function(){var i,r=s.absUrl(),o=s.$$state;e=Xn(e),s.$$parse(e),s.$$state=t,i=n.$broadcast("$locationChangeStart",e,r,t,o).defaultPrevented,s.absUrl()===e&&(i?(s.$$parse(r),s.$$state=o,g(r,!1,o)):(v=!1,_(r,o)))})),n.$$phase||n.$digest())})),n.$watch((function(){var e=Xn(i.url()),t=Xn(s.absUrl()),o=i.state(),a=s.$$replace,l=e!==t||s.$$html5&&r.history&&o!==s.$$state;(v||l)&&(v=!1,n.$evalAsync((function(){var t=s.absUrl(),i=n.$broadcast("$locationChangeStart",t,e,s.$$state,o).defaultPrevented;s.absUrl()===t&&(i?(s.$$parse(e),s.$$state=o):(l&&g(t,a,o===s.$$state?null:s.$$state),_(e,o)))}))),s.$$replace=!1})),s;function _(e,t){n.$broadcast("$locationChangeSuccess",s.absUrl(),e,s.$$state,t)}}]}function oi(){var e=!0,t=this;this.debugEnabled=function(t){return I(t)?(e=t,this):e},this.$get=["$window",function(n){return{log:o("log"),info:o("info"),warn:o("warn"),error:o("error"),debug:(i=o("debug"),function(){e&&i.apply(t,arguments)})};var i;function r(e){return e instanceof Error&&(e.stack?e=e.message&&-1===e.stack.indexOf(e.message)?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function o(e){var t=n.console||{},i=t[e]||t.log||E,o=!1;try{o=!!i.apply}catch(e){}return o?function(){var e=[];return b(arguments,(function(t){e.push(r(t))})),i.apply(t,e)}:function(e,t){i(e,null==t?"":t)}}}]}b([ei,Qn,Kn],(function(e){e.prototype=Object.create(ti),e.prototype.state=function(t){if(!arguments.length)return this.$$state;if(e!==Kn||!this.$$html5)throw zn("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=O(t)?null:t,this}}));var ai=t("$parse"),si=[].constructor,li=(!1).constructor,ui=Function.constructor,ci=(0).constructor,di={}.constructor,hi="".constructor,fi=si.prototype,pi=li.prototype,mi=ui.prototype,gi=ci.prototype,vi=di.prototype,_i=hi.prototype,yi=mi.call,bi=mi.apply,wi=mi.bind,Li=vi.valueOf;function Mi(e,t){if("__defineGetter__"===e||"__defineSetter__"===e||"__lookupGetter__"===e||"__lookupSetter__"===e||"__proto__"===e)throw ai("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",t);return e}function ki(e){return e+""}function xi(e,t){if(e){if(e.constructor===e)throw ai("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e.window===e)throw ai("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",t);if(e.children&&(e.nodeName||e.prop&&e.attr&&e.find))throw ai("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",t);if(e===Object)throw ai("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",t)}return e}function Si(e,t){if(e){if(e.constructor===e)throw ai("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e===yi||e===bi||e===wi)throw ai("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",t)}}function Ti(e,t){if(e&&(e===si||e===li||e===ui||e===ci||e===di||e===hi||e===fi||e===pi||e===mi||e===gi||e===vi||e===_i))throw ai("isecaf","Assigning to a constructor or its prototype is disallowed! Expression: {0}",t)}var $i=Pe();b("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),(function(e){$i[e]=!0}));var Di={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},Ci=function(e){this.options=e};Ci.prototype={constructor:Ci,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index<this.text.length;){var t=this.text.charAt(this.index);if('"'===t||"'"===t)this.readString(t);else if(this.isNumber(t)||"."===t&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(t,"(){}[].,;:?"))this.tokens.push({index:this.index,text:t}),this.index++;else if(this.isWhitespace(t))this.index++;else{var n=t+this.peek(),i=n+this.peek(2),r=$i[t],o=$i[n],a=$i[i];if(r||o||a){var s=a?i:o?n:t;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(e,t){return-1!==t.indexOf(e)},peek:function(e){var t=e||1;return this.index+t<this.text.length&&this.text.charAt(this.index+t)},isNumber:function(e){return"0"<=e&&e<="9"&&"string"==typeof e},isWhitespace:function(e){return" "===e||"\r"===e||"\t"===e||"\n"===e||"\v"===e||" "===e},isIdentifierStart:function(e){return this.options.isIdentifierStart?this.options.isIdentifierStart(e,this.codePointAt(e)):this.isValidIdentifierStart(e)},isValidIdentifierStart:function(e){return"a"<=e&&e<="z"||"A"<=e&&e<="Z"||"_"===e||"$"===e},isIdentifierContinue:function(e){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(e,this.codePointAt(e)):this.isValidIdentifierContinue(e)},isValidIdentifierContinue:function(e,t){return this.isValidIdentifierStart(e,t)||this.isNumber(e)},codePointAt:function(e){return 1===e.length?e.charCodeAt(0):(e.charCodeAt(0)<<10)+e.charCodeAt(1)-56613888},peekMultichar:function(){var e=this.text.charAt(this.index),t=this.peek();if(!t)return e;var n=e.charCodeAt(0),i=t.charCodeAt(0);return n>=55296&&n<=56319&&i>=56320&&i<=57343?e+t:e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var i=I(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw ai("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,i,this.text)},readNumber:function(){for(var e="",t=this.index;this.index<this.text.length;){var n=o(this.text.charAt(this.index));if("."===n||this.isNumber(n))e+=n;else{var i=this.peek();if("e"===n&&this.isExpOperator(i))e+=n;else if(this.isExpOperator(n)&&i&&this.isNumber(i)&&"e"===e.charAt(e.length-1))e+=n;else{if(!this.isExpOperator(n)||i&&this.isNumber(i)||"e"!==e.charAt(e.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:t,text:e,constant:!0,value:Number(e)})},readIdent:function(){var e=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var t=this.peekMultichar();if(!this.isIdentifierContinue(t))break;this.index+=t.length}this.tokens.push({index:e,text:this.text.slice(e,this.index),identifier:!0})},readString:function(e){var t=this.index;this.index++;for(var n="",i=e,r=!1;this.index<this.text.length;){var o=this.text.charAt(this.index);if(i+=o,r){if("u"===o){var a=this.text.substring(this.index+1,this.index+5);a.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+a+"]"),this.index+=4,n+=String.fromCharCode(parseInt(a,16))}else n+=Di[o]||o;r=!1}else if("\\"===o)r=!0;else{if(o===e)return this.index++,void this.tokens.push({index:t,text:i,constant:!0,value:n});n+=o}this.index++}this.throwError("Unterminated quote",t)}};var Ei=function(e,t){this.lexer=e,this.options=t};function Ai(e,t){return void 0!==e?e:t}function Pi(e,t){return void 0===e?t:void 0===t?e:e+t}function Yi(e,t){var n,i,r;switch(e.type){case Ei.Program:n=!0,b(e.body,(function(e){Yi(e.expression,t),n=n&&e.expression.constant})),e.constant=n;break;case Ei.Literal:e.constant=!0,e.toWatch=[];break;case Ei.UnaryExpression:Yi(e.argument,t),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case Ei.BinaryExpression:Yi(e.left,t),Yi(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case Ei.LogicalExpression:Yi(e.left,t),Yi(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.constant?[]:[e];break;case Ei.ConditionalExpression:Yi(e.test,t),Yi(e.alternate,t),Yi(e.consequent,t),e.constant=e.test.constant&&e.alternate.constant&&e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case Ei.Identifier:e.constant=!1,e.toWatch=[e];break;case Ei.MemberExpression:Yi(e.object,t),e.computed&&Yi(e.property,t),e.constant=e.object.constant&&(!e.computed||e.property.constant),e.toWatch=[e];break;case Ei.CallExpression:r=!!e.filter&&function(e,t){return!e(t).$stateful}(t,e.callee.name),n=r,i=[],b(e.arguments,(function(e){Yi(e,t),n=n&&e.constant,e.constant||i.push.apply(i,e.toWatch)})),e.constant=n,e.toWatch=r?i:[e];break;case Ei.AssignmentExpression:Yi(e.left,t),Yi(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=[e];break;case Ei.ArrayExpression:n=!0,i=[],b(e.elements,(function(e){Yi(e,t),n=n&&e.constant,e.constant||i.push.apply(i,e.toWatch)})),e.constant=n,e.toWatch=i;break;case Ei.ObjectExpression:n=!0,i=[],b(e.properties,(function(e){Yi(e.value,t),n=n&&e.value.constant&&!e.computed,e.value.constant||i.push.apply(i,e.value.toWatch)})),e.constant=n,e.toWatch=i;break;case Ei.ThisExpression:case Ei.LocalsExpression:e.constant=!1,e.toWatch=[]}}function Oi(e){if(1===e.length){var t=e[0].expression,n=t.toWatch;return 1!==n.length?n:n[0]!==t?n:void 0}}function Ii(e){return e.type===Ei.Identifier||e.type===Ei.MemberExpression}function ji(e){if(1===e.body.length&&Ii(e.body[0].expression))return{type:Ei.AssignmentExpression,left:e.body[0].expression,right:{type:Ei.NGValueParameter},operator:"="}}function Hi(e){return 0===e.body.length||1===e.body.length&&(e.body[0].expression.type===Ei.Literal||e.body[0].expression.type===Ei.ArrayExpression||e.body[0].expression.type===Ei.ObjectExpression)}function Bi(e){return e.constant}function Ni(e,t){this.astBuilder=e,this.$filter=t}function Ri(e,t){this.astBuilder=e,this.$filter=t}Ei.Program="Program",Ei.ExpressionStatement="ExpressionStatement",Ei.AssignmentExpression="AssignmentExpression",Ei.ConditionalExpression="ConditionalExpression",Ei.LogicalExpression="LogicalExpression",Ei.BinaryExpression="BinaryExpression",Ei.UnaryExpression="UnaryExpression",Ei.CallExpression="CallExpression",Ei.MemberExpression="MemberExpression",Ei.Identifier="Identifier",Ei.Literal="Literal",Ei.ArrayExpression="ArrayExpression",Ei.Property="Property",Ei.ObjectExpression="ObjectExpression",Ei.ThisExpression="ThisExpression",Ei.LocalsExpression="LocalsExpression",Ei.NGValueParameter="NGValueParameter",Ei.prototype={ast:function(e){this.text=e,this.tokens=this.lexer.lex(e);var t=this.program();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),t},program:function(){for(var e=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&e.push(this.expressionStatement()),!this.expect(";"))return{type:Ei.Program,body:e}},expressionStatement:function(){return{type:Ei.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e=this.expression();this.expect("|");)e=this.filter(e);return e},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();if(this.expect("=")){if(!Ii(e))throw ai("lval","Trying to assign a value to a non l-value");e={type:Ei.AssignmentExpression,left:e,right:this.assignment(),operator:"="}}return e},ternary:function(){var e,t,n=this.logicalOR();return this.expect("?")&&(e=this.expression(),this.consume(":"))?(t=this.expression(),{type:Ei.ConditionalExpression,test:n,alternate:e,consequent:t}):n},logicalOR:function(){for(var e=this.logicalAND();this.expect("||");)e={type:Ei.LogicalExpression,operator:"||",left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect("&&");)e={type:Ei.LogicalExpression,operator:"&&",left:e,right:this.equality()};return e},equality:function(){for(var e,t=this.relational();e=this.expect("==","!=","===","!==");)t={type:Ei.BinaryExpression,operator:e.text,left:t,right:this.relational()};return t},relational:function(){for(var e,t=this.additive();e=this.expect("<",">","<=",">=");)t={type:Ei.BinaryExpression,operator:e.text,left:t,right:this.additive()};return t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t={type:Ei.BinaryExpression,operator:e.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t={type:Ei.BinaryExpression,operator:e.text,left:t,right:this.unary()};return t},unary:function(){var e;return(e=this.expect("+","-","!"))?{type:Ei.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e,t;for(this.expect("(")?(e=this.filterChain(),this.consume(")")):this.expect("[")?e=this.arrayDeclaration():this.expect("{")?e=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?e=te(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?e={type:Ei.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError("not a primary expression",this.peek());t=this.expect("(","[",".");)"("===t.text?(e={type:Ei.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(")")):"["===t.text?(e={type:Ei.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume("]")):"."===t.text?e={type:Ei.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return e},filter:function(e){for(var t=[e],n={type:Ei.CallExpression,callee:this.identifier(),arguments:t,filter:!0};this.expect(":");)t.push(this.expression());return n},parseArguments:function(){var e=[];if(")"!==this.peekToken().text)do{e.push(this.filterChain())}while(this.expect(","));return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError("is not a valid identifier",e),{type:Ei.Identifier,name:e.text}},constant:function(){return{type:Ei.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;e.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:Ei.ArrayExpression,elements:e}},object:function(){var e,t=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;e={type:Ei.Property,kind:"init"},this.peek().constant?(e.key=this.constant(),e.computed=!1,this.consume(":"),e.value=this.expression()):this.peek().identifier?(e.key=this.identifier(),e.computed=!1,this.peek(":")?(this.consume(":"),e.value=this.expression()):e.value=e.key):this.peek("[")?(this.consume("["),e.key=this.expression(),this.consume("]"),e.computed=!0,this.consume(":"),e.value=this.expression()):this.throwError("invalid key",this.peek()),t.push(e)}while(this.expect(","));return this.consume("}"),{type:Ei.ObjectExpression,properties:t}},throwError:function(e,t){throw ai("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(0===this.tokens.length)throw ai("ueoe","Unexpected end of expression: {0}",this.text);var t=this.expect(e);return t||this.throwError("is unexpected, expecting ["+e+"]",this.peek()),t},peekToken:function(){if(0===this.tokens.length)throw ai("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,i){return this.peekAhead(0,e,t,n,i)},peekAhead:function(e,t,n,i,r){if(this.tokens.length>e){var o=this.tokens[e],a=o.text;if(a===t||a===n||a===i||a===r||!t&&!n&&!i&&!r)return o}return!1},expect:function(e,t,n,i){var r=this.peek(e,t,n,i);return!!r&&(this.tokens.shift(),r)},selfReferential:{this:{type:Ei.ThisExpression},$locals:{type:Ei.LocalsExpression}}},Ni.prototype={compile:function(e,t){var n=this,i=this.astBuilder.ast(e);this.state={nextId:0,filters:{},expensiveChecks:t,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},Yi(i,n.$filter);var r,o="";if(this.stage="assign",r=ji(i)){this.state.computing="assign";var a=this.nextId();this.recurse(r,a),this.return_(a),o="fn.assign="+this.generateFunction("assign","s,v,l")}var s=Oi(i.body);n.stage="inputs",b(s,(function(e,t){var i="fn"+t;n.state[i]={vars:[],body:[],own:{}},n.state.computing=i;var r=n.nextId();n.recurse(e,r),n.return_(r),n.state.inputs.push(i),e.watchId=t})),this.state.computing="fn",this.stage="main",this.recurse(i);var l='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+o+this.watchFns()+"return fn;",u=new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext","ifDefined","plus","text",l)(this.$filter,Mi,xi,Si,ki,Ti,Ai,Pi,e);return this.state=this.stage=void 0,u.literal=Hi(i),u.constant=Bi(i),u},USE:"use",STRICT:"strict",watchFns:function(){var e=[],t=this.state.inputs,n=this;return b(t,(function(t){e.push("var "+t+"="+n.generateFunction(t,"s"))})),t.length&&e.push("fn.inputs=["+t.join(",")+"];"),e.join("")},generateFunction:function(e,t){return"function("+t+"){"+this.varsPrefix(e)+this.body(e)+"};"},filterPrefix:function(){var e=[],t=this;return b(this.state.filters,(function(n,i){e.push(n+"=$filter("+t.escape(i)+")")})),e.length?"var "+e.join(",")+";":""},varsPrefix:function(e){return this.state[e].vars.length?"var "+this.state[e].vars.join(",")+";":""},body:function(e){return this.state[e].body.join("")},recurse:function(e,t,n,i,r,o){var a,s,l,u,c,d=this;if(i=i||E,!o&&I(e.watchId))return t=t||this.nextId(),void this.if_("i",this.lazyAssign(t,this.computedMember("i",e.watchId)),this.lazyRecurse(e,t,n,i,r,!0));switch(e.type){case Ei.Program:b(e.body,(function(t,n){d.recurse(t.expression,void 0,void 0,(function(e){s=e})),n!==e.body.length-1?d.current().body.push(s,";"):d.return_(s)}));break;case Ei.Literal:u=this.escape(e.value),this.assign(t,u),i(u);break;case Ei.UnaryExpression:this.recurse(e.argument,void 0,void 0,(function(e){s=e})),u=e.operator+"("+this.ifDefined(s,0)+")",this.assign(t,u),i(u);break;case Ei.BinaryExpression:this.recurse(e.left,void 0,void 0,(function(e){a=e})),this.recurse(e.right,void 0,void 0,(function(e){s=e})),u="+"===e.operator?this.plus(a,s):"-"===e.operator?this.ifDefined(a,0)+e.operator+this.ifDefined(s,0):"("+a+")"+e.operator+"("+s+")",this.assign(t,u),i(u);break;case Ei.LogicalExpression:t=t||this.nextId(),d.recurse(e.left,t),d.if_("&&"===e.operator?t:d.not(t),d.lazyRecurse(e.right,t)),i(t);break;case Ei.ConditionalExpression:t=t||this.nextId(),d.recurse(e.test,t),d.if_(t,d.lazyRecurse(e.alternate,t),d.lazyRecurse(e.consequent,t)),i(t);break;case Ei.Identifier:t=t||this.nextId(),n&&(n.context="inputs"===d.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",e.name)+"?l:s"),n.computed=!1,n.name=e.name),Mi(e.name),d.if_("inputs"===d.stage||d.not(d.getHasOwnProperty("l",e.name)),(function(){d.if_("inputs"===d.stage||"s",(function(){r&&1!==r&&d.if_(d.not(d.nonComputedMember("s",e.name)),d.lazyAssign(d.nonComputedMember("s",e.name),"{}")),d.assign(t,d.nonComputedMember("s",e.name))}))}),t&&d.lazyAssign(t,d.nonComputedMember("l",e.name))),(d.state.expensiveChecks||zi(e.name))&&d.addEnsureSafeObject(t),i(t);break;case Ei.MemberExpression:a=n&&(n.context=this.nextId())||this.nextId(),t=t||this.nextId(),d.recurse(e.object,a,void 0,(function(){d.if_(d.notNull(a),(function(){r&&1!==r&&d.addEnsureSafeAssignContext(a),e.computed?(s=d.nextId(),d.recurse(e.property,s),d.getStringValue(s),d.addEnsureSafeMemberName(s),r&&1!==r&&d.if_(d.not(d.computedMember(a,s)),d.lazyAssign(d.computedMember(a,s),"{}")),u=d.ensureSafeObject(d.computedMember(a,s)),d.assign(t,u),n&&(n.computed=!0,n.name=s)):(Mi(e.property.name),r&&1!==r&&d.if_(d.not(d.nonComputedMember(a,e.property.name)),d.lazyAssign(d.nonComputedMember(a,e.property.name),"{}")),u=d.nonComputedMember(a,e.property.name),(d.state.expensiveChecks||zi(e.property.name))&&(u=d.ensureSafeObject(u)),d.assign(t,u),n&&(n.computed=!1,n.name=e.property.name))}),(function(){d.assign(t,"undefined")})),i(t)}),!!r);break;case Ei.CallExpression:t=t||this.nextId(),e.filter?(s=d.filter(e.callee.name),l=[],b(e.arguments,(function(e){var t=d.nextId();d.recurse(e,t),l.push(t)})),u=s+"("+l.join(",")+")",d.assign(t,u),i(t)):(s=d.nextId(),a={},l=[],d.recurse(e.callee,s,a,(function(){d.if_(d.notNull(s),(function(){d.addEnsureSafeFunction(s),b(e.arguments,(function(e){d.recurse(e,d.nextId(),void 0,(function(e){l.push(d.ensureSafeObject(e))}))})),a.name?(d.state.expensiveChecks||d.addEnsureSafeObject(a.context),u=d.member(a.context,a.name,a.computed)+"("+l.join(",")+")"):u=s+"("+l.join(",")+")",u=d.ensureSafeObject(u),d.assign(t,u)}),(function(){d.assign(t,"undefined")})),i(t)})));break;case Ei.AssignmentExpression:s=this.nextId(),a={},this.recurse(e.left,void 0,a,(function(){d.if_(d.notNull(a.context),(function(){d.recurse(e.right,s),d.addEnsureSafeObject(d.member(a.context,a.name,a.computed)),d.addEnsureSafeAssignContext(a.context),u=d.member(a.context,a.name,a.computed)+e.operator+s,d.assign(t,u),i(t||u)}))}),1);break;case Ei.ArrayExpression:l=[],b(e.elements,(function(e){d.recurse(e,d.nextId(),void 0,(function(e){l.push(e)}))})),u="["+l.join(",")+"]",this.assign(t,u),i(u);break;case Ei.ObjectExpression:l=[],c=!1,b(e.properties,(function(e){e.computed&&(c=!0)})),c?(t=t||this.nextId(),this.assign(t,"{}"),b(e.properties,(function(e){e.computed?(a=d.nextId(),d.recurse(e.key,a)):a=e.key.type===Ei.Identifier?e.key.name:""+e.key.value,s=d.nextId(),d.recurse(e.value,s),d.assign(d.member(t,a,e.computed),s)}))):(b(e.properties,(function(t){d.recurse(t.value,e.constant?void 0:d.nextId(),void 0,(function(e){l.push(d.escape(t.key.type===Ei.Identifier?t.key.name:""+t.key.value)+":"+e)}))})),u="{"+l.join(",")+"}",this.assign(t,u)),i(t||u);break;case Ei.ThisExpression:this.assign(t,"s"),i("s");break;case Ei.LocalsExpression:this.assign(t,"l"),i("l");break;case Ei.NGValueParameter:this.assign(t,"v"),i("v")}},getHasOwnProperty:function(e,t){var n=e+"."+t,i=this.current().own;return i.hasOwnProperty(n)||(i[n]=this.nextId(!1,e+"&&("+this.escape(t)+" in "+e+")")),i[n]},assign:function(e,t){if(e)return this.current().body.push(e,"=",t,";"),e},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e]},ifDefined:function(e,t){return"ifDefined("+e+","+this.escape(t)+")"},plus:function(e,t){return"plus("+e+","+t+")"},return_:function(e){this.current().body.push("return ",e,";")},if_:function(e,t,n){if(!0===e)t();else{var i=this.current().body;i.push("if(",e,"){"),t(),i.push("}"),n&&(i.push("else{"),n(),i.push("}"))}},not:function(e){return"!("+e+")"},notNull:function(e){return e+"!=null"},nonComputedMember:function(e,t){return/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(t)?e+"."+t:e+'["'+t.replace(/[^$_a-zA-Z0-9]/g,this.stringEscapeFn)+'"]'},computedMember:function(e,t){return e+"["+t+"]"},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},addEnsureSafeObject:function(e){this.current().body.push(this.ensureSafeObject(e),";")},addEnsureSafeMemberName:function(e){this.current().body.push(this.ensureSafeMemberName(e),";")},addEnsureSafeFunction:function(e){this.current().body.push(this.ensureSafeFunction(e),";")},addEnsureSafeAssignContext:function(e){this.current().body.push(this.ensureSafeAssignContext(e),";")},ensureSafeObject:function(e){return"ensureSafeObject("+e+",text)"},ensureSafeMemberName:function(e){return"ensureSafeMemberName("+e+",text)"},ensureSafeFunction:function(e){return"ensureSafeFunction("+e+",text)"},getStringValue:function(e){this.assign(e,"getStringValue("+e+")")},ensureSafeAssignContext:function(e){return"ensureSafeAssignContext("+e+",text)"},lazyRecurse:function(e,t,n,i,r,o){var a=this;return function(){a.recurse(e,t,n,i,r,o)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(B(e))return"'"+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(N(e))return e.toString();if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(void 0===e)return"undefined";throw ai("esc","IMPOSSIBLE")},nextId:function(e,t){var n="v"+this.state.nextId++;return e||this.current().vars.push(n+(t?"="+t:"")),n},current:function(){return this.state[this.state.computing]}},Ri.prototype={compile:function(e,t){var n,i,r=this,o=this.astBuilder.ast(e);this.expression=e,this.expensiveChecks=t,Yi(o,r.$filter),(n=ji(o))&&(i=this.recurse(n));var a,s=Oi(o.body);s&&(a=[],b(s,(function(e,t){var n=r.recurse(e);e.input=n,a.push(n),e.watchId=t})));var l=[];b(o.body,(function(e){l.push(r.recurse(e.expression))}));var u=0===o.body.length?E:1===o.body.length?l[0]:function(e,t){var n;return b(l,(function(i){n=i(e,t)})),n};return i&&(u.assign=function(e,t,n){return i(e,n,t)}),a&&(u.inputs=a),u.literal=Hi(o),u.constant=Bi(o),u},recurse:function(e,t,n){var i,r,o,a=this;if(e.input)return this.inputs(e.input,e.watchId);switch(e.type){case Ei.Literal:return this.value(e.value,t);case Ei.UnaryExpression:return r=this.recurse(e.argument),this["unary"+e.operator](r,t);case Ei.BinaryExpression:case Ei.LogicalExpression:return i=this.recurse(e.left),r=this.recurse(e.right),this["binary"+e.operator](i,r,t);case Ei.ConditionalExpression:return this["ternary?:"](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),t);case Ei.Identifier:return Mi(e.name,a.expression),a.identifier(e.name,a.expensiveChecks||zi(e.name),t,n,a.expression);case Ei.MemberExpression:return i=this.recurse(e.object,!1,!!n),e.computed||(Mi(e.property.name,a.expression),r=e.property.name),e.computed&&(r=this.recurse(e.property)),e.computed?this.computedMember(i,r,t,n,a.expression):this.nonComputedMember(i,r,a.expensiveChecks,t,n,a.expression);case Ei.CallExpression:return o=[],b(e.arguments,(function(e){o.push(a.recurse(e))})),e.filter&&(r=this.$filter(e.callee.name)),e.filter||(r=this.recurse(e.callee,!0)),e.filter?function(e,n,i,a){for(var s=[],l=0;l<o.length;++l)s.push(o[l](e,n,i,a));var u=r.apply(void 0,s,a);return t?{context:void 0,name:void 0,value:u}:u}:function(e,n,i,s){var l,u=r(e,n,i,s);if(null!=u.value){xi(u.context,a.expression),Si(u.value,a.expression);for(var c=[],d=0;d<o.length;++d)c.push(xi(o[d](e,n,i,s),a.expression));l=xi(u.value.apply(u.context,c),a.expression)}return t?{value:l}:l};case Ei.AssignmentExpression:return i=this.recurse(e.left,!0,1),r=this.recurse(e.right),function(e,n,o,s){var l=i(e,n,o,s),u=r(e,n,o,s);return xi(l.value,a.expression),Ti(l.context),l.context[l.name]=u,t?{value:u}:u};case Ei.ArrayExpression:return o=[],b(e.elements,(function(e){o.push(a.recurse(e))})),function(e,n,i,r){for(var a=[],s=0;s<o.length;++s)a.push(o[s](e,n,i,r));return t?{value:a}:a};case Ei.ObjectExpression:return o=[],b(e.properties,(function(e){e.computed?o.push({key:a.recurse(e.key),computed:!0,value:a.recurse(e.value)}):o.push({key:e.key.type===Ei.Identifier?e.key.name:""+e.key.value,computed:!1,value:a.recurse(e.value)})})),function(e,n,i,r){for(var a={},s=0;s<o.length;++s)o[s].computed?a[o[s].key(e,n,i,r)]=o[s].value(e,n,i,r):a[o[s].key]=o[s].value(e,n,i,r);return t?{value:a}:a};case Ei.ThisExpression:return function(e){return t?{value:e}:e};case Ei.LocalsExpression:return function(e,n){return t?{value:n}:n};case Ei.NGValueParameter:return function(e,n,i){return t?{value:i}:i}}},"unary+":function(e,t){return function(n,i,r,o){var a=e(n,i,r,o);return a=I(a)?+a:0,t?{value:a}:a}},"unary-":function(e,t){return function(n,i,r,o){var a=e(n,i,r,o);return a=I(a)?-a:0,t?{value:a}:a}},"unary!":function(e,t){return function(n,i,r,o){var a=!e(n,i,r,o);return t?{value:a}:a}},"binary+":function(e,t,n){return function(i,r,o,a){var s=Pi(e(i,r,o,a),t(i,r,o,a));return n?{value:s}:s}},"binary-":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a),l=t(i,r,o,a),u=(I(s)?s:0)-(I(l)?l:0);return n?{value:u}:u}},"binary*":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)*t(i,r,o,a);return n?{value:s}:s}},"binary/":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)/t(i,r,o,a);return n?{value:s}:s}},"binary%":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)%t(i,r,o,a);return n?{value:s}:s}},"binary===":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)===t(i,r,o,a);return n?{value:s}:s}},"binary!==":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)!==t(i,r,o,a);return n?{value:s}:s}},"binary==":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)==t(i,r,o,a);return n?{value:s}:s}},"binary!=":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)!=t(i,r,o,a);return n?{value:s}:s}},"binary<":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)<t(i,r,o,a);return n?{value:s}:s}},"binary>":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)>t(i,r,o,a);return n?{value:s}:s}},"binary<=":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)<=t(i,r,o,a);return n?{value:s}:s}},"binary>=":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)>=t(i,r,o,a);return n?{value:s}:s}},"binary&&":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)&&t(i,r,o,a);return n?{value:s}:s}},"binary||":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)||t(i,r,o,a);return n?{value:s}:s}},"ternary?:":function(e,t,n,i){return function(r,o,a,s){var l=e(r,o,a,s)?t(r,o,a,s):n(r,o,a,s);return i?{value:l}:l}},value:function(e,t){return function(){return t?{context:void 0,name:void 0,value:e}:e}},identifier:function(e,t,n,i,r){return function(o,a,s,l){var u=a&&e in a?a:o;i&&1!==i&&u&&!u[e]&&(u[e]={});var c=u?u[e]:void 0;return t&&xi(c,r),n?{context:u,name:e,value:c}:c}},computedMember:function(e,t,n,i,r){return function(o,a,s,l){var u,c,d=e(o,a,s,l);return null!=d&&(Mi(u=ki(u=t(o,a,s,l)),r),i&&1!==i&&(Ti(d),d&&!d[u]&&(d[u]={})),xi(c=d[u],r)),n?{context:d,name:u,value:c}:c}},nonComputedMember:function(e,t,n,i,r,o){return function(a,s,l,u){var c=e(a,s,l,u);r&&1!==r&&(Ti(c),c&&!c[t]&&(c[t]={}));var d=null!=c?c[t]:void 0;return(n||zi(t))&&xi(d,o),i?{context:c,name:t,value:d}:d}},inputs:function(e,t){return function(n,i,r,o){return o?o[t]:e(n,i,r)}}};var Fi=function(e,t,n){this.lexer=e,this.$filter=t,this.options=n,this.ast=new Ei(e,n),this.astCompiler=n.csp?new Ri(this.ast,t):new Ni(this.ast,t)};function zi(e){return"constructor"===e}function Vi(e){return z(e.valueOf)?e.valueOf():Li.call(e)}function Ui(){var e,t,n=Pe(),i=Pe(),r={true:!0,false:!1,null:null,undefined:void 0};this.addLiteral=function(e,t){r[e]=t},this.setIdentifierFns=function(n,i){return e=n,t=i,this},this.$get=["$filter",function(o){var a=ie().noUnsafeEval,s={csp:a,expensiveChecks:!1,literals:te(r),isIdentifierStart:z(e)&&e,isIdentifierContinue:z(t)&&t},l={csp:a,expensiveChecks:!0,literals:te(r),isIdentifierStart:z(e)&&e,isIdentifierContinue:z(t)&&t},u=!1;return c.$$runningExpensiveChecks=function(){return u},c;function c(e,t,r){var a,c,d;switch(r=r||u,typeof e){case"string":e=e.trim();var v=r?i:n;if(!(a=v[d=e])){":"===e.charAt(0)&&":"===e.charAt(1)&&(c=!0,e=e.substring(2));var _=r?l:s,y=new Ci(_);(a=new Fi(y,o,_).parse(e)).constant?a.$$watchDelegate=m:c?a.$$watchDelegate=a.literal?p:f:a.inputs&&(a.$$watchDelegate=h),r&&(a=function e(t){if(!t)return t;i.$$watchDelegate=t.$$watchDelegate,i.assign=e(t.assign),i.constant=t.constant,i.literal=t.literal;for(var n=0;t.inputs&&n<t.inputs.length;++n)t.inputs[n]=e(t.inputs[n]);return i.inputs=t.inputs,i;function i(e,n,i,r){var o=u;u=!0;try{return t(e,n,i,r)}finally{u=o}}}(a)),v[d]=a}return g(a,t);case"function":return g(e,t);default:return g(E,t)}}function d(e,t){return null==e||null==t?e===t:("object"!=typeof e||"object"!=typeof(e=Vi(e)))&&(e===t||e!=e&&t!=t)}function h(e,t,n,i,r){var o,a=i.inputs;if(1===a.length){var s=d;return a=a[0],e.$watch((function(e){var t=a(e);return d(t,s)||(o=i(e,void 0,void 0,[t]),s=t&&Vi(t)),o}),t,n,r)}for(var l=[],u=[],c=0,h=a.length;c<h;c++)l[c]=d,u[c]=null;return e.$watch((function(e){for(var t=!1,n=0,r=a.length;n<r;n++){var s=a[n](e);(t||(t=!d(s,l[n])))&&(u[n]=s,l[n]=s&&Vi(s))}return t&&(o=i(e,void 0,void 0,u)),o}),t,n,r)}function f(e,t,n,i){var r,o;return r=e.$watch((function(e){return i(e)}),(function(e,n,i){o=e,z(t)&&t.apply(this,arguments),I(e)&&i.$$postDigest((function(){I(o)&&r()}))}),n)}function p(e,t,n,i){var r,o;return r=e.$watch((function(e){return i(e)}),(function(e,n,i){o=e,z(t)&&t.call(this,e,n,i),a(e)&&i.$$postDigest((function(){a(o)&&r()}))}),n);function a(e){var t=!0;return b(e,(function(e){I(e)||(t=!1)})),t}}function m(e,t,n,i){var r=e.$watch((function(e){return r(),i(e)}),t,n);return r}function g(e,t){if(!t)return e;var n=e.$$watchDelegate,i=!1,r=n!==p&&n!==f?function(n,r,o,a){var s=i&&a?a[0]:e(n,r,o,a);return t(s,n,r)}:function(n,i,r,o){var a=e(n,i,r,o),s=t(a,n,i);return I(a)?s:a};return e.$$watchDelegate&&e.$$watchDelegate!==h?r.$$watchDelegate=e.$$watchDelegate:t.$stateful||(r.$$watchDelegate=h,i=!e.inputs,r.inputs=e.inputs?e.inputs:[e]),r}}]}function Wi(){this.$get=["$rootScope","$exceptionHandler",function(e,t){return Gi((function(t){e.$evalAsync(t)}),t)}]}function qi(){this.$get=["$browser","$exceptionHandler",function(e,t){return Gi((function(t){e.defer(t)}),t)}]}function Gi(e,n){var i=t("$q",TypeError);function r(){var e=new l;return e.resolve=a(e,e.resolve),e.reject=a(e,e.reject),e.notify=a(e,e.notify),e}function o(){this.$$state={status:0}}function a(e,t){return function(n){t.call(e,n)}}function s(t){!t.processScheduled&&t.pending&&(t.processScheduled=!0,e((function(){!function(e){var t,i,r;r=e.pending,e.processScheduled=!1,e.pending=void 0;for(var o=0,a=r.length;o<a;++o){i=r[o][0],t=r[o][e.status];try{z(t)?i.resolve(t(e.value)):1===e.status?i.resolve(e.value):i.reject(e.value)}catch(e){i.reject(e),n(e)}}}(t)})))}function l(){this.promise=new o}function u(e){var t=new l;return t.reject(e),t.promise}function c(e,t,n){var i=null;try{z(n)&&(i=n())}catch(e){return u(e)}return G(i)?i.then((function(){return t(e)}),u):t(e)}function d(e,t,n,i){var r=new l;return r.resolve(e),r.promise.then(t,n,i)}S(o.prototype,{then:function(e,t,n){if(O(e)&&O(t)&&O(n))return this;var i=new l;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([i,e,t,n]),this.$$state.status>0&&s(this.$$state),i.promise},catch:function(e){return this.then(null,e)},finally:function(e,t){return this.then((function(t){return c(t,h,e)}),(function(t){return c(t,u,e)}),t)}}),S(l.prototype,{resolve:function(e){this.promise.$$state.status||(e===this.promise?this.$$reject(i("qcycle","Expected promise to be resolved with value other than itself '{0}'",e)):this.$$resolve(e))},$$resolve:function(e){var t,i=this,r=!1;try{(j(e)||z(e))&&(t=e&&e.then),z(t)?(this.promise.$$state.status=-1,t.call(e,(function(e){r||(r=!0,i.$$resolve(e))}),o,a(this,this.notify))):(this.promise.$$state.value=e,this.promise.$$state.status=1,s(this.promise.$$state))}catch(e){o(e),n(e)}function o(e){r||(r=!0,i.$$reject(e))}},reject:function(e){this.promise.$$state.status||this.$$reject(e)},$$reject:function(e){this.promise.$$state.value=e,this.promise.$$state.status=2,s(this.promise.$$state)},notify:function(t){var i=this.promise.$$state.pending;this.promise.$$state.status<=0&&i&&i.length&&e((function(){for(var e,r,o=0,a=i.length;o<a;o++){r=i[o][0],e=i[o][3];try{r.notify(z(e)?e(t):t)}catch(e){n(e)}}}))}});var h=d;function f(e){if(!z(e))throw i("norslvr","Expected resolverFn, got '{0}'",e);var t=new l;return e((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise}return f.prototype=o.prototype,f.defer=r,f.reject=u,f.when=d,f.resolve=h,f.all=function(e){var t=new l,n=0,i=F(e)?[]:{};return b(e,(function(e,r){n++,d(e).then((function(e){i[r]=e,--n||t.resolve(i)}),(function(e){t.reject(e)}))})),0===n&&t.resolve(i),t.promise},f.race=function(e){var t=r();return b(e,(function(e){d(e).then(t.resolve,t.reject)})),t.promise},f}function Zi(){this.$get=["$window","$timeout",function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame,i=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,r=!!n,o=r?function(e){var t=n(e);return function(){i(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return o.supported=r,o}]}function Ji(){var e=10,n=t("$rootScope"),i=null,o=null;this.digestTtl=function(t){return arguments.length&&(e=t),e},this.$get=["$exceptionHandler","$parse","$browser",function(t,a,l){function u(e){e.currentScope.$$destroyed=!0}function c(){this.$id=M(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}c.prototype={constructor:c,$new:function(e,t){var n;return t=t||this,e?(n=new c).$root=this.$root:(this.$$ChildScope||(this.$$ChildScope=function(e){function t(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=M(),this.$$ChildScope=null}return t.prototype=e,t}(this)),n=new this.$$ChildScope),n.$parent=t,n.$$prevSibling=t.$$childTail,t.$$childHead?(t.$$childTail.$$nextSibling=n,t.$$childTail=n):t.$$childHead=t.$$childTail=n,(e||t!==this)&&n.$on("$destroy",u),n},$watch:function(e,t,n,r){var o=a(e);if(o.$$watchDelegate)return o.$$watchDelegate(this,t,n,o,e);var s=this,l=s.$$watchers,u={fn:t,last:L,get:o,exp:r||e,eq:!!n};return i=null,z(t)||(u.fn=E),l||((l=s.$$watchers=[]).$$digestWatchIndex=-1),l.unshift(u),l.$$digestWatchIndex++,_(this,1),function(){var e=ee(l,u);e>=0&&(_(s,-1),e<l.$$digestWatchIndex&&l.$$digestWatchIndex--),i=null}},$watchGroup:function(e,t){var n=new Array(e.length),i=new Array(e.length),r=[],o=this,a=!1,s=!0;if(!e.length){var l=!0;return o.$evalAsync((function(){l&&t(i,i,o)})),function(){l=!1}}if(1===e.length)return this.$watch(e[0],(function(e,r,o){i[0]=e,n[0]=r,t(i,e===r?i:n,o)}));function u(){a=!1,s?(s=!1,t(i,i,o)):t(i,n,o)}return b(e,(function(e,t){var s=o.$watch(e,(function(e,r){i[t]=e,n[t]=r,a||(a=!0,o.$evalAsync(u))}));r.push(s)})),function(){for(;r.length;)r.shift()()}},$watchCollection:function(e,t){m.$stateful=!0;var n,i,o,s=this,l=t.length>1,u=0,c=a(e,m),d=[],h={},f=!0,p=0;function m(e){var t,o,a,s;if(!O(n=e)){if(j(n))if(y(n)){i!==d&&(p=(i=d).length=0,u++),t=n.length,p!==t&&(u++,i.length=p=t);for(var l=0;l<t;l++)s=i[l],a=n[l],s!=s&&a!=a||s===a||(u++,i[l]=a)}else{for(o in i!==h&&(i=h={},p=0,u++),t=0,n)r.call(n,o)&&(t++,a=n[o],s=i[o],o in i?s!=s&&a!=a||s===a||(u++,i[o]=a):(p++,i[o]=a,u++));if(p>t)for(o in u++,i)r.call(n,o)||(p--,delete i[o])}else i!==n&&(i=n,u++);return u}}return this.$watch(c,(function(){if(f?(f=!1,t(n,n,s)):t(n,o,s),l)if(j(n))if(y(n)){o=new Array(n.length);for(var e=0;e<n.length;e++)o[e]=n[e]}else for(var i in o={},n)r.call(n,i)&&(o[i]=n[i]);else o=n}))},$digest:function(){var r,a,s,u,c,p,_,y,b,w=e,M=[];g("$digest"),l.$$checkUrlChange(),this===d&&null!==o&&(l.defer.cancel(o),k()),i=null;do{c=!1,_=this;for(var x=0;x<h.length;x++){try{(b=h[x]).scope.$eval(b.expression,b.locals)}catch(e){t(e)}i=null}h.length=0;e:do{if(u=_.$$watchers)for(u.$$digestWatchIndex=u.length;u.$$digestWatchIndex--;)try{if(r=u[u.$$digestWatchIndex])if((a=(0,r.get)(_))===(s=r.last)||(r.eq?ne(a,s):D(a)&&D(s))){if(r===i){c=!1;break e}}else c=!0,i=r,r.last=r.eq?te(a,null):a,(0,r.fn)(a,s===L?a:s,_),w<5&&(M[y=4-w]||(M[y]=[]),M[y].push({msg:z(r.exp)?"fn: "+(r.exp.name||r.exp.toString()):r.exp,newVal:a,oldVal:s}))}catch(e){t(e)}if(!(p=_.$$watchersCount&&_.$$childHead||_!==this&&_.$$nextSibling))for(;_!==this&&!(p=_.$$nextSibling);)_=_.$parent}while(_=p);if((c||h.length)&&!w--)throw v(),n("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",e,M)}while(c||h.length);for(v();m<f.length;)try{f[m++]()}catch(e){t(e)}f.length=m=0},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;for(var t in this.$broadcast("$destroy"),this.$$destroyed=!0,this===d&&l.$$applicationDestroyed(),_(this,-this.$$watchersCount),this.$$listenerCount)w(this,this.$$listenerCount[t],t);e&&e.$$childHead===this&&(e.$$childHead=this.$$nextSibling),e&&e.$$childTail===this&&(e.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=E,this.$on=this.$watch=this.$watchGroup=function(){return E},this.$$listeners={},this.$$nextSibling=null,function e(t){9===s&&(t.$$childHead&&e(t.$$childHead),t.$$nextSibling&&e(t.$$nextSibling)),t.$parent=t.$$nextSibling=t.$$prevSibling=t.$$childHead=t.$$childTail=t.$root=t.$$watchers=null}(this)}},$eval:function(e,t){return a(e)(this,t)},$evalAsync:function(e,t){d.$$phase||h.length||l.defer((function(){h.length&&d.$digest()})),h.push({scope:this,expression:a(e),locals:t})},$$postDigest:function(e){f.push(e)},$apply:function(e){try{g("$apply");try{return this.$eval(e)}finally{v()}}catch(e){t(e)}finally{try{d.$digest()}catch(e){throw t(e),e}}},$applyAsync:function(e){var t=this;e&&p.push((function(){t.$eval(e)})),e=a(e),null===o&&(o=l.defer((function(){d.$apply(k)})))},$on:function(e,t){var n=this.$$listeners[e];n||(this.$$listeners[e]=n=[]),n.push(t);var i=this;do{i.$$listenerCount[e]||(i.$$listenerCount[e]=0),i.$$listenerCount[e]++}while(i=i.$parent);var r=this;return function(){var i=n.indexOf(t);-1!==i&&(n[i]=null,w(r,1,e))}},$emit:function(e,n){var i,r,o,a=[],s=this,l=!1,u={name:e,targetScope:s,stopPropagation:function(){l=!0},preventDefault:function(){u.defaultPrevented=!0},defaultPrevented:!1},c=oe([u],arguments,1);do{for(i=s.$$listeners[e]||a,u.currentScope=s,r=0,o=i.length;r<o;r++)if(i[r])try{i[r].apply(null,c)}catch(e){t(e)}else i.splice(r,1),r--,o--;if(l)return u.currentScope=null,u;s=s.$parent}while(s);return u.currentScope=null,u},$broadcast:function(e,n){var i=this,r=i,o=i,a={name:e,targetScope:i,preventDefault:function(){a.defaultPrevented=!0},defaultPrevented:!1};if(!i.$$listenerCount[e])return a;for(var s,l,u,c=oe([a],arguments,1);r=o;){for(a.currentScope=r,l=0,u=(s=r.$$listeners[e]||[]).length;l<u;l++)if(s[l])try{s[l].apply(null,c)}catch(e){t(e)}else s.splice(l,1),l--,u--;if(!(o=r.$$listenerCount[e]&&r.$$childHead||r!==i&&r.$$nextSibling))for(;r!==i&&!(o=r.$$nextSibling);)r=r.$parent}return a.currentScope=null,a}};var d=new c,h=d.$$asyncQueue=[],f=d.$$postDigestQueue=[],p=d.$$applyAsyncQueue=[],m=0;return d;function g(e){if(d.$$phase)throw n("inprog","{0} already in progress",d.$$phase);d.$$phase=e}function v(){d.$$phase=null}function _(e,t){do{e.$$watchersCount+=t}while(e=e.$parent)}function w(e,t,n){do{e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&&delete e.$$listenerCount[n]}while(e=e.$parent)}function L(){}function k(){for(;p.length;)try{p.shift()()}catch(e){t(e)}o=null}}]}function Xi(){var e=/^\s*(https?|ftp|mailto|tel|file):/,t=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(t){return I(t)?(e=t,this):e},this.imgSrcSanitizationWhitelist=function(e){return I(e)?(t=e,this):t},this.$get=function(){return function(n,i){var r,o=i?t:e;return""===(r=cr(n).href)||r.match(o)?n:"unsafe:"+r}}}Fi.prototype={constructor:Fi,parse:function(e){return this.astCompiler.compile(e,this.options.expensiveChecks)}};var Ki=t("$sce"),Qi={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"};function er(e){var t=[];return I(e)&&b(e,(function(e){t.push(function(e){if("self"===e)return e;if(B(e)){if(e.indexOf("***")>-1)throw Ki("iwcard","Illegal sequence *** in string matcher.  String: {0}",e);return e=X(e).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&;]*"),new RegExp("^"+e+"$")}if(V(e))return new RegExp("^"+e.source+"$");throw Ki("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}(e))})),t}function tr(){this.SCE_CONTEXTS=Qi;var e=["self"],t=[];this.resourceUrlWhitelist=function(t){return arguments.length&&(e=er(t)),e},this.resourceUrlBlacklist=function(e){return arguments.length&&(t=er(e)),t},this.$get=["$injector",function(n){var i=function(e){throw Ki("unsafe","Attempting to use an unsafe value in a safe context.")};function r(e,t){return"self"===e?dr(t):!!e.exec(t.href)}function o(e){var t=function(e){this.$$unwrapTrustedValue=function(){return e}};return e&&(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}n.has("$sanitize")&&(i=n.get("$sanitize"));var a=o(),s={};return s[Qi.HTML]=o(a),s[Qi.CSS]=o(a),s[Qi.URL]=o(a),s[Qi.JS]=o(a),s[Qi.RESOURCE_URL]=o(s[Qi.URL]),{trustAs:function(e,t){var n=s.hasOwnProperty(e)?s[e]:null;if(!n)throw Ki("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",e,t);if(null===t||O(t)||""===t)return t;if("string"!=typeof t)throw Ki("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",e);return new n(t)},getTrusted:function(n,o){if(null===o||O(o)||""===o)return o;var a=s.hasOwnProperty(n)?s[n]:null;if(a&&o instanceof a)return o.$$unwrapTrustedValue();if(n===Qi.RESOURCE_URL){if(function(n){var i,o,a=cr(n.toString()),s=!1;for(i=0,o=e.length;i<o;i++)if(r(e[i],a)){s=!0;break}if(s)for(i=0,o=t.length;i<o;i++)if(r(t[i],a)){s=!1;break}return s}(o))return o;throw Ki("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}",o.toString())}if(n===Qi.HTML)return i(o);throw Ki("unsafe","Attempting to use an unsafe value in a safe context.")},valueOf:function(e){return e instanceof a?e.$$unwrapTrustedValue():e}}}]}function nr(){var e=!0;this.enabled=function(t){return arguments.length&&(e=!!t),e},this.$get=["$parse","$sceDelegate",function(t,n){if(e&&s<8)throw Ki("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode.  You can fix this by adding the text <!doctype html> to the top of your HTML document.  See http://docs.angularjs.org/api/ng.$sce for more information.");var i=Be(Qi);i.isEnabled=function(){return e},i.trustAs=n.trustAs,i.getTrusted=n.getTrusted,i.valueOf=n.valueOf,e||(i.trustAs=i.getTrusted=function(e,t){return t},i.valueOf=A),i.parseAs=function(e,n){var r=t(n);return r.literal&&r.constant?r:t(n,(function(t){return i.getTrusted(e,t)}))};var r=i.parseAs,a=i.getTrusted,l=i.trustAs;return b(Qi,(function(e,t){var n=o(t);i[Je("parse_as_"+n)]=function(t){return r(e,t)},i[Je("get_trusted_"+n)]=function(t){return a(e,t)},i[Je("trust_as_"+n)]=function(t){return l(e,t)}})),i}]}function ir(){this.$get=["$window","$document",function(e,t){var n,i,r={},a=!(e.chrome&&(e.chrome.app&&e.chrome.app.runtime||!e.chrome.app&&e.chrome.runtime&&e.chrome.runtime.id))&&e.history&&e.history.pushState,l=$((/android (\d+)/.exec(o((e.navigator||{}).userAgent))||[])[1]),u=/Boxee/i.test((e.navigator||{}).userAgent),c=t[0]||{},d=/^(Moz|webkit|ms)(?=[A-Z])/,h=c.body&&c.body.style,f=!1,p=!1;if(h){for(var m in h)if(i=d.exec(m)){n=(n=i[0])[0].toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in h&&"webkit"),f=!!("transition"in h||n+"Transition"in h),p=!!("animation"in h||n+"Animation"in h),!l||f&&p||(f=B(h.webkitTransition),p=B(h.webkitAnimation))}return{history:!(!a||l<4||u),hasEvent:function(e){if("input"===e&&s<=11)return!1;if(O(r[e])){var t=c.createElement("div");r[e]="on"+e in t}return r[e]},csp:ie(),vendorPrefix:n,transitions:f,animations:p,android:l}}]}var rr=t("$compile");function or(){var e;this.httpOptions=function(t){return t?(e=t,this):e},this.$get=["$templateCache","$http","$q","$sce",function(t,n,i,r){function o(a,s){o.totalPendingRequests++,B(a)&&!O(t.get(a))||(a=r.getTrustedResourceUrl(a));var l=n.defaults&&n.defaults.transformResponse;return F(l)?l=l.filter((function(e){return e!==Dn})):l===Dn&&(l=null),n.get(a,S({cache:t,transformResponse:l},e)).finally((function(){o.totalPendingRequests--})).then((function(e){return t.put(a,e.data),e.data}),(function(e){if(!s)throw rr("tpload","Failed to load template: {0} (HTTP status: {1} {2})",a,e.status,e.statusText);return i.reject(e)}))}return o.totalPendingRequests=0,o}]}function ar(){this.$get=["$rootScope","$browser","$location",function(e,t,n){return{findBindings:function(e,t,n){var i=e.getElementsByClassName("ng-binding"),r=[];return b(i,(function(e){var i=v.element(e).data("$binding");i&&b(i,(function(i){n?new RegExp("(^|\\s)"+X(t)+"(\\s|\\||$)").test(i)&&r.push(e):-1!==i.indexOf(t)&&r.push(e)}))})),r},findModels:function(e,t,n){
-for(var i=["ng-","data-ng-","ng\\:"],r=0;r<i.length;++r){var o="["+i[r]+"model"+(n?"=":"*=")+'"'+t+'"]',a=e.querySelectorAll(o);if(a.length)return a}},getLocation:function(){return n.url()},setLocation:function(t){t!==n.url()&&(n.url(t),e.$digest())},whenStable:function(e){t.notifyWhenNoOutstandingRequests(e)}}}]}function sr(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(e,t,n,i,r){var o={};function a(a,s,l){z(a)||(l=s,s=a,a=E);var u,c=ae(arguments,3),d=I(l)&&!l,h=(d?i:n).defer(),f=h.promise;return u=t.defer((function(){try{h.resolve(a.apply(null,c))}catch(e){h.reject(e),r(e)}finally{delete o[f.$$timeoutId]}d||e.$apply()}),s),f.$$timeoutId=u,o[u]=h,f}return a.cancel=function(e){return!!(e&&e.$$timeoutId in o)&&(o[e.$$timeoutId].reject("canceled"),delete o[e.$$timeoutId],t.defer.cancel(e.$$timeoutId))},a}]}var lr=e.document.createElement("a"),ur=cr(e.location.href);function cr(e){var t=e;return s&&(lr.setAttribute("href",t),t=lr.href),lr.setAttribute("href",t),{href:lr.href,protocol:lr.protocol?lr.protocol.replace(/:$/,""):"",host:lr.host,search:lr.search?lr.search.replace(/^\?/,""):"",hash:lr.hash?lr.hash.replace(/^#/,""):"",hostname:lr.hostname,port:lr.port,pathname:"/"===lr.pathname.charAt(0)?lr.pathname:"/"+lr.pathname}}function dr(e){var t=B(e)?cr(e):e;return t.protocol===ur.protocol&&t.host===ur.host}function hr(){this.$get=P(e)}function fr(e){var t=e[0]||{},n={},i="";function r(e){try{return decodeURIComponent(e)}catch(t){return e}}return function(){var e,o,a,s,l,u=function(e){try{return e.cookie||""}catch(e){return""}}(t);if(u!==i)for(e=(i=u).split("; "),n={},a=0;a<e.length;a++)(s=(o=e[a]).indexOf("="))>0&&(l=r(o.substring(0,s)),O(n[l])&&(n[l]=r(o.substring(s+1))));return n}}function pr(){this.$get=fr}function mr(e){var t="Filter";function n(i,r){if(j(i)){var o={};return b(i,(function(e,t){o[t]=n(t,e)})),o}return e.factory(i+t,r)}this.register=n,this.$get=["$injector",function(e){return function(n){return e.get(n+t)}}],n("currency",Lr),n("date",Yr),n("filter",gr),n("json",Or),n("limitTo",Hr),n("lowercase",Ir),n("number",Mr),n("orderBy",Nr),n("uppercase",jr)}function gr(){return function(e,n,i,r){if(!y(e)){if(null==e)return e;throw t("filter")("notarray","Expected array but received: {0}",e)}var a,s;switch(r=r||"$",_r(n)){case"function":a=n;break;case"boolean":case"null":case"number":case"string":s=!0;case"object":a=function(e,t,n,i){var r=j(e)&&n in e;return!0===t?t=ne:z(t)||(t=function(e,t){return!(O(e)||(null===e||null===t?e!==t:j(t)||j(e)&&!Y(e)||(e=o(""+e),t=o(""+t),-1===e.indexOf(t))))}),function(o){return r&&!j(o)?vr(o,e[n],t,n,!1):vr(o,e,t,n,i)}}(n,i,r,s);break;default:return e}return Array.prototype.filter.call(e,a)}}function vr(e,t,n,i,r,o){var a=_r(e),s=_r(t);if("string"===s&&"!"===t.charAt(0))return!vr(e,t.substring(1),n,i,r);if(F(e))return e.some((function(e){return vr(e,t,n,i,r)}));switch(a){case"object":var l;if(r){for(l in e)if("$"!==l.charAt(0)&&vr(e[l],t,n,i,!0))return!0;return!o&&vr(e,t,n,i,!1)}if("object"===s){for(l in t){var u=t[l];if(!z(u)&&!O(u)){var c=l===i;if(!vr(c?e:e[l],u,n,i,c,c))return!1}}return!0}return n(e,t);case"function":return!1;default:return n(e,t)}}function _r(e){return null===e?"null":typeof e}fr.$inject=["$document"],mr.$inject=["$provide"];var yr=22,br=".",wr="0";function Lr(e){var t=e.NUMBER_FORMATS;return function(e,n,i){return O(n)&&(n=t.CURRENCY_SYM),O(i)&&(i=t.PATTERNS[1].maxFrac),null==e?e:kr(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,i).replace(/\u00A4/g,n)}}function Mr(e){var t=e.NUMBER_FORMATS;return function(e,n){return null==e?e:kr(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function kr(e,t,n,i,r){if(!B(e)&&!N(e)||isNaN(e))return"";var o,a=!isFinite(e),s=!1,l=Math.abs(e)+"",u="";if(a)u="∞";else{!function(e,t,n,i){var r=e.d,o=r.length-e.i,a=(t=O(t)?Math.min(Math.max(n,o),i):+t)+e.i,s=r[a];if(a>0){r.splice(Math.max(e.i,a));for(var l=a;l<r.length;l++)r[l]=0}else{o=Math.max(0,o),e.i=1,r.length=Math.max(1,a=t+1),r[0]=0;for(var u=1;u<a;u++)r[u]=0}if(s>=5)if(a-1<0){for(var c=0;c>a;c--)r.unshift(0),e.i++;r.unshift(1),e.i++}else r[a-1]++;for(;o<Math.max(0,t);o++)r.push(0);var d=r.reduceRight((function(e,t,n,i){return t+=e,i[n]=t%10,Math.floor(t/10)}),0);d&&(r.unshift(d),e.i++)}(o=function(e){var t,n,i,r,o,a=0;for((n=e.indexOf(br))>-1&&(e=e.replace(br,"")),(i=e.search(/e/i))>0?(n<0&&(n=i),n+=+e.slice(i+1),e=e.substring(0,i)):n<0&&(n=e.length),i=0;e.charAt(i)===wr;i++);if(i===(o=e.length))t=[0],n=1;else{for(o--;e.charAt(o)===wr;)o--;for(n-=i,t=[],r=0;i<=o;i++,r++)t[r]=+e.charAt(i)}return n>yr&&(t=t.splice(0,yr-1),a=n-1,n=1),{d:t,e:a,i:n}}(l),r,t.minFrac,t.maxFrac);var c=o.d,d=o.i,h=o.e,f=[];for(s=c.reduce((function(e,t){return e&&!t}),!0);d<0;)c.unshift(0),d++;d>0?f=c.splice(d,c.length):(f=c,c=[0]);var p=[];for(c.length>=t.lgSize&&p.unshift(c.splice(-t.lgSize,c.length).join(""));c.length>t.gSize;)p.unshift(c.splice(-t.gSize,c.length).join(""));c.length&&p.unshift(c.join("")),u=p.join(n),f.length&&(u+=i+f.join("")),h&&(u+="e+"+h)}return e<0&&!s?t.negPre+u+t.negSuf:t.posPre+u+t.posSuf}function xr(e,t,n,i){var r="";for((e<0||i&&e<=0)&&(i?e=1-e:(e=-e,r="-")),e=""+e;e.length<t;)e=wr+e;return n&&(e=e.substr(e.length-t)),r+e}function Sr(e,t,n,i,r){return n=n||0,function(o){var a=o["get"+e]();return(n>0||a>-n)&&(a+=n),0===a&&-12===n&&(a=12),xr(a,t,i,r)}}function Tr(e,t,n){return function(i,r){var o=i["get"+e]();return r[a((n?"STANDALONE":"")+(t?"SHORT":"")+e)][o]}}function $r(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(t<=4?5:12)-t)}function Dr(e){return function(t){var n,i=$r(t.getFullYear()),r=(n=t,+new Date(n.getFullYear(),n.getMonth(),n.getDate()+(4-n.getDay()))-+i);return xr(1+Math.round(r/6048e5),e)}}function Cr(e,t){return e.getFullYear()<=0?t.ERAS[0]:t.ERAS[1]}Lr.$inject=["$locale"],Mr.$inject=["$locale"];var Er={yyyy:Sr("FullYear",4,0,!1,!0),yy:Sr("FullYear",2,0,!0,!0),y:Sr("FullYear",1,0,!1,!0),MMMM:Tr("Month"),MMM:Tr("Month",!0),MM:Sr("Month",2,1),M:Sr("Month",1,1),LLLL:Tr("Month",!1,!0),dd:Sr("Date",2),d:Sr("Date",1),HH:Sr("Hours",2),H:Sr("Hours",1),hh:Sr("Hours",2,-12),h:Sr("Hours",1,-12),mm:Sr("Minutes",2),m:Sr("Minutes",1),ss:Sr("Seconds",2),s:Sr("Seconds",1),sss:Sr("Milliseconds",3),EEEE:Tr("Day"),EEE:Tr("Day",!0),a:function(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]},Z:function(e,t,n){var i=-1*n;return(i>=0?"+":"")+(xr(Math[i>0?"floor":"ceil"](i/60),2)+xr(Math.abs(i%60),2))},ww:Dr(2),w:Dr(1),G:Cr,GG:Cr,GGG:Cr,GGGG:function(e,t){return e.getFullYear()<=0?t.ERANAMES[0]:t.ERANAMES[1]}},Ar=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,Pr=/^-?\d+$/;function Yr(e){var t=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,i,r){var o,a,s="",l=[];if(i=i||"mediumDate",i=e.DATETIME_FORMATS[i]||i,B(n)&&(n=Pr.test(n)?$(n):function(e){var n;if(n=e.match(t)){var i=new Date(0),r=0,o=0,a=n[8]?i.setUTCFullYear:i.setFullYear,s=n[8]?i.setUTCHours:i.setHours;n[9]&&(r=$(n[9]+n[10]),o=$(n[9]+n[11])),a.call(i,$(n[1]),$(n[2])-1,$(n[3]));var l=$(n[4]||0)-r,u=$(n[5]||0)-o,c=$(n[6]||0),d=Math.round(1e3*parseFloat("0."+(n[7]||0)));return s.call(i,l,u,c,d),i}return e}(n)),N(n)&&(n=new Date(n)),!R(n)||!isFinite(n.getTime()))return n;for(;i;)(a=Ar.exec(i))?i=(l=oe(l,a,1)).pop():(l.push(i),i=null);var u=n.getTimezoneOffset();return r&&(u=he(r,u),n=fe(n,r,!0)),b(l,(function(t){o=Er[t],s+=o?o(n,e.DATETIME_FORMATS,u):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")})),s}}function Or(){return function(e,t){return O(t)&&(t=2),ue(e,t)}}Yr.$inject=["$locale"];var Ir=P(o),jr=P(a);function Hr(){return function(e,t,n){return t=Math.abs(Number(t))===1/0?Number(t):$(t),D(t)?e:(N(e)&&(e=e.toString()),y(e)?(n=(n=!n||isNaN(n)?0:$(n))<0?Math.max(0,e.length+n):n,t>=0?Br(e,n,n+t):0===n?Br(e,t,e.length):Br(e,Math.max(0,n+t),n)):e)}}function Br(e,t,n){return B(e)?e.slice(t,n):d.call(e,t,n)}function Nr(e){return function(r,o,a,s){if(null==r)return r;if(!y(r))throw t("orderBy")("notarray","Expected array but received: {0}",r);F(o)||(o=[o]),0===o.length&&(o=["+"]);var l=o.map((function(t){var n=1,i=A;if(z(t))i=t;else if(B(t)&&("+"!==t.charAt(0)&&"-"!==t.charAt(0)||(n="-"===t.charAt(0)?-1:1,t=t.substring(1)),""!==t&&(i=e(t)).constant)){var r=i();i=function(e){return e[r]}}return{get:i,descending:n}})),u=a?-1:1,c=z(s)?s:i,d=Array.prototype.map.call(r,(function(e,t){return{value:e,tieBreaker:{value:t,type:"number",index:t},predicateValues:l.map((function(i){return function(e,t){var i=typeof e;return null===e?(i="string",e="null"):"object"===i&&(e=function(e){return z(e.valueOf)&&n(e=e.valueOf())?e:(Y(e)&&n(e=e.toString()),e)}(e)),{value:e,type:i,index:t}}(i.get(e),t)}))}}));return d.sort((function(e,t){for(var n=0,i=l.length;n<i;n++){var r=c(e.predicateValues[n],t.predicateValues[n]);if(r)return r*l[n].descending*u}return c(e.tieBreaker,t.tieBreaker)*u})),d.map((function(e){return e.value}))};function n(e){switch(typeof e){case"number":case"boolean":case"string":return!0;default:return!1}}function i(e,t){var n=0,i=e.type,r=t.type;if(i===r){var o=e.value,a=t.value;"string"===i?(o=o.toLowerCase(),a=a.toLowerCase()):"object"===i&&(j(o)&&(o=e.index),j(a)&&(a=t.index)),o!==a&&(n=o<a?-1:1)}else n=i<r?-1:1;return n}}function Rr(e){return z(e)&&(e={link:e}),e.restrict=e.restrict||"AC",P(e)}Nr.$inject=["$parse"];var Fr=P({restrict:"E",compile:function(e,t){if(!t.href&&!t.xlinkHref)return function(e,t){if("a"===t[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===p.call(t.prop("href"))?"xlink:href":"href";t.on("click",(function(e){t.attr(n)||e.preventDefault()}))}}}}),zr={};b(Mt,(function(e,t){if("multiple"!==e){var n=un("ng-"+t),i=r;"checked"===e&&(i=function(e,t,i){i.ngModel!==i[n]&&r(e,0,i)}),zr[n]=function(){return{restrict:"A",priority:100,link:i}}}function r(e,i,r){e.$watch(r[n],(function(e){r.$set(t,!!e)}))}})),b(xt,(function(e,t){zr[t]=function(){return{priority:100,link:function(e,i,r){if("ngPattern"===t&&"/"===r.ngPattern.charAt(0)){var o=r.ngPattern.match(n);if(o)return void r.$set("ngPattern",new RegExp(o[1],o[2]))}e.$watch(r[t],(function(e){r.$set(t,e)}))}}}})),b(["src","srcset","href"],(function(e){var t=un("ng-"+e);zr[t]=function(){return{priority:99,link:function(n,i,r){var o=e,a=e;"href"===e&&"[object SVGAnimatedString]"===p.call(i.prop("href"))&&(a="xlinkHref",r.$attr[a]="xlink:href",o=null),r.$observe(t,(function(t){t?(r.$set(a,t),s&&o&&i.prop(o,r[a])):"href"===e&&r.$set(a,null)}))}}}}));var Vr={$addControl:E,$$renameControl:function(e,t){e.$name=t},$removeControl:E,$setValidity:E,$setDirty:E,$setPristine:E,$setSubmitted:E},Ur="ng-submitted";function Wr(e,t,n,i,r){var o=this,a=[];o.$error={},o.$$success={},o.$pending=void 0,o.$name=r(t.name||t.ngForm||"")(n),o.$dirty=!1,o.$pristine=!0,o.$valid=!0,o.$invalid=!1,o.$submitted=!1,o.$$parentForm=Vr,o.$rollbackViewValue=function(){b(a,(function(e){e.$rollbackViewValue()}))},o.$commitViewValue=function(){b(a,(function(e){e.$commitViewValue()}))},o.$addControl=function(e){Ce(e.$name,"input"),a.push(e),e.$name&&(o[e.$name]=e),e.$$parentForm=o},o.$$renameControl=function(e,t){var n=e.$name;o[n]===e&&delete o[n],o[t]=e,e.$name=t},o.$removeControl=function(e){e.$name&&o[e.$name]===e&&delete o[e.$name],b(o.$pending,(function(t,n){o.$setValidity(n,null,e)})),b(o.$error,(function(t,n){o.$setValidity(n,null,e)})),b(o.$$success,(function(t,n){o.$setValidity(n,null,e)})),ee(a,e),e.$$parentForm=Vr},Zo({ctrl:this,$element:e,set:function(e,t,n){var i=e[t];i?-1===i.indexOf(n)&&i.push(n):e[t]=[n]},unset:function(e,t,n){var i=e[t];i&&(ee(i,n),0===i.length&&delete e[t])},$animate:i}),o.$setDirty=function(){i.removeClass(e,Ro),i.addClass(e,Fo),o.$dirty=!0,o.$pristine=!1,o.$$parentForm.$setDirty()},o.$setPristine=function(){i.setClass(e,Ro,Fo+" "+Ur),o.$dirty=!1,o.$pristine=!0,o.$submitted=!1,b(a,(function(e){e.$setPristine()}))},o.$setUntouched=function(){b(a,(function(e){e.$setUntouched()}))},o.$setSubmitted=function(){i.addClass(e,Ur),o.$submitted=!0,o.$$parentForm.$setSubmitted()}}Wr.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var qr=function(e){return["$timeout","$parse",function(t,n){return{name:"form",restrict:e?"EAC":"E",require:["form","^^?form"],controller:Wr,compile:function(n,r){n.addClass(Ro).addClass(Bo);var o=r.name?"name":!(!e||!r.ngForm)&&"ngForm";return{pre:function(e,n,r,a){var s=a[0];if(!("action"in r)){var l=function(t){e.$apply((function(){s.$commitViewValue(),s.$setSubmitted()})),t.preventDefault()};Ve(n[0],"submit",l),n.on("$destroy",(function(){t((function(){Ue(n[0],"submit",l)}),0,!1)}))}(a[1]||s.$$parentForm).$addControl(s);var u=o?i(s.$name):E;o&&(u(e,s),r.$observe(o,(function(t){s.$name!==t&&(u(e,void 0),s.$$parentForm.$$renameControl(s,t),(u=i(s.$name))(e,s))}))),n.on("$destroy",(function(){s.$$parentForm.$removeControl(s),u(e,void 0),S(s,Vr)}))}}}};function i(e){return""===e?n('this[""]').assign:n(e).assign||E}}]},Gr=qr(),Zr=qr(!0),Jr=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,Xr=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,Kr=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,Qr=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,eo=/^(\d{4,})-(\d{2})-(\d{2})$/,to=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,no=/^(\d{4,})-W(\d\d)$/,io=/^(\d{4,})-(\d\d)$/,ro=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,oo="keydown wheel mousedown",ao=Pe();b("date,datetime-local,month,time,week".split(","),(function(e){ao[e]=!0}));var so={text:function(e,t,n,i,r,o){uo(0,t,n,i,r,o),lo(i)},date:ho("date",eo,co(eo,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":ho("datetimelocal",to,co(to,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:ho("time",ro,co(ro,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:ho("week",no,(function(e,t){if(R(e))return e;if(B(e)){no.lastIndex=0;var n=no.exec(e);if(n){var i=+n[1],r=+n[2],o=0,a=0,s=0,l=0,u=$r(i),c=7*(r-1);return t&&(o=t.getHours(),a=t.getMinutes(),s=t.getSeconds(),l=t.getMilliseconds()),new Date(i,0,u.getDate()+c,o,a,s,l)}}return NaN}),"yyyy-Www"),month:ho("month",io,co(io,["yyyy","MM"]),"yyyy-MM"),number:function(e,t,n,i,r,o){var a,s;fo(0,t,0,i),uo(0,t,n,i,r,o),po(i),(I(n.min)||n.ngMin)&&(i.$validators.min=function(e){return i.$isEmpty(e)||O(a)||e>=a},n.$observe("min",(function(e){a=mo(e),i.$validate()}))),(I(n.max)||n.ngMax)&&(i.$validators.max=function(e){return i.$isEmpty(e)||O(s)||e<=s},n.$observe("max",(function(e){s=mo(e),i.$validate()})))},url:function(e,t,n,i,r,o){uo(0,t,n,i,r,o),lo(i),i.$$parserName="url",i.$validators.url=function(e,t){var n=e||t;return i.$isEmpty(n)||Xr.test(n)}},email:function(e,t,n,i,r,o){uo(0,t,n,i,r,o),lo(i),i.$$parserName="email",i.$validators.email=function(e,t){var n=e||t;return i.$isEmpty(n)||Kr.test(n)}},radio:function(e,t,n,i){O(n.name)&&t.attr("name",M()),t.on("click",(function(e){t[0].checked&&i.$setViewValue(n.value,e&&e.type)})),i.$render=function(){var e=n.value;t[0].checked=e==i.$viewValue},n.$observe("value",i.$render)},range:function(e,t,n,i,r,o){fo(0,t,0,i),po(i),uo(0,t,n,i,r,o);var a=i.$$hasNativeValidators&&"range"===t[0].type,s=a?0:void 0,l=a?100:void 0,u=a?1:void 0,c=t[0].validity,d=I(n.min),h=I(n.max),f=I(n.step),p=i.$render;function m(e,i){t.attr(e,n[e]),n.$observe(e,i)}i.$render=a&&I(c.rangeUnderflow)&&I(c.rangeOverflow)?function(){p(),i.$setViewValue(t.val())}:p,d&&(i.$validators.min=a?function(){return!0}:function(e,t){return i.$isEmpty(t)||O(s)||t>=s},m("min",(function(e){if(s=mo(e),!D(i.$modelValue))if(a){var n=t.val();s>n&&(n=s,t.val(n)),i.$setViewValue(n)}else i.$validate()}))),h&&(i.$validators.max=a?function(){return!0}:function(e,t){return i.$isEmpty(t)||O(l)||t<=l},m("max",(function(e){if(l=mo(e),!D(i.$modelValue))if(a){var n=t.val();l<n&&(t.val(l),n=l<s?s:l),i.$setViewValue(n)}else i.$validate()}))),f&&(i.$validators.step=a?function(){return!c.stepMismatch}:function(e,t){return i.$isEmpty(t)||O(u)||function(e,t,n){var i=Number(e);if(!go(i)||!go(t)||!go(n)){var r=Math.max(vo(i),vo(t),vo(n)),o=Math.pow(10,r);i*=o,t*=o,n*=o}return(i-t)%n==0}(t,s||0,u)},m("step",(function(e){u=mo(e),D(i.$modelValue)||(a&&i.$viewValue!==t.val()?i.$setViewValue(t.val()):i.$validate())})))},checkbox:function(e,t,n,i,r,o,a,s){var l=_o(s,e,"ngTrueValue",n.ngTrueValue,!0),u=_o(s,e,"ngFalseValue",n.ngFalseValue,!1);t.on("click",(function(e){i.$setViewValue(t[0].checked,e&&e.type)})),i.$render=function(){t[0].checked=i.$viewValue},i.$isEmpty=function(e){return!1===e},i.$formatters.push((function(e){return ne(e,l)})),i.$parsers.push((function(e){return e?l:u}))},hidden:E,button:E,submit:E,reset:E,file:E};function lo(e){e.$formatters.push((function(t){return e.$isEmpty(t)?t:t.toString()}))}function uo(e,t,n,r,a,s){var l,u=o(t[0].type);if(!a.android){var c=!1;t.on("compositionstart",(function(){c=!0})),t.on("compositionend",(function(){c=!1,d()}))}var d=function(e){if(l&&(s.defer.cancel(l),l=null),!c){var i=t.val(),o=e&&e.type;"password"===u||n.ngTrim&&"false"===n.ngTrim||(i=J(i)),(r.$viewValue!==i||""===i&&r.$$hasNativeValidators)&&r.$setViewValue(i,o)}};if(a.hasEvent("input"))t.on("input",d);else{var h=function(e,t,n){l||(l=s.defer((function(){l=null,t&&t.value===n||d(e)})))};t.on("keydown",(function(e){var t=e.keyCode;91===t||15<t&&t<19||37<=t&&t<=40||h(e,this,this.value)})),a.hasEvent("paste")&&t.on("paste cut",h)}t.on("change",d),ao[u]&&r.$$hasNativeValidators&&u===n.type&&t.on(oo,(function(e){if(!l){var t=this[i],n=t.badInput,r=t.typeMismatch;l=s.defer((function(){l=null,t.badInput===n&&t.typeMismatch===r||d(e)}))}})),r.$render=function(){var e=r.$isEmpty(r.$viewValue)?"":r.$viewValue;t.val()!==e&&t.val(e)}}function co(e,t){return function(n,i){var r,o;if(R(n))return n;if(B(n)){if('"'===n.charAt(0)&&'"'===n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),Jr.test(n))return new Date(n);if(e.lastIndex=0,r=e.exec(n))return r.shift(),o=i?{yyyy:i.getFullYear(),MM:i.getMonth()+1,dd:i.getDate(),HH:i.getHours(),mm:i.getMinutes(),ss:i.getSeconds(),sss:i.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},b(r,(function(e,n){n<t.length&&(o[t[n]]=+e)})),new Date(o.yyyy,o.MM-1,o.dd,o.HH,o.mm,o.ss||0,1e3*o.sss||0)}return NaN}}function ho(e,t,n,i){return function(r,o,a,s,l,u,c){fo(0,o,0,s),uo(0,o,a,s,l,u);var d,h,f,p=s&&s.$options&&s.$options.timezone;function m(e){return e&&!(e.getTime&&e.getTime()!=e.getTime())}function g(e){return I(e)&&!R(e)?n(e)||void 0:e}s.$$parserName=e,s.$parsers.push((function(e){if(s.$isEmpty(e))return null;if(t.test(e)){var i=n(e,d);return p&&(i=fe(i,p)),i}})),s.$formatters.push((function(e){if(e&&!R(e))throw Vo("datefmt","Expected `{0}` to be a date",e);return m(e)?((d=e)&&p&&(d=fe(d,p,!0)),c("date")(e,i,p)):(d=null,"")})),(I(a.min)||a.ngMin)&&(s.$validators.min=function(e){return!m(e)||O(h)||n(e)>=h},a.$observe("min",(function(e){h=g(e),s.$validate()}))),(I(a.max)||a.ngMax)&&(s.$validators.max=function(e){return!m(e)||O(f)||n(e)<=f},a.$observe("max",(function(e){f=g(e),s.$validate()})))}}function fo(e,t,n,r){var o=t[0];(r.$$hasNativeValidators=j(o.validity))&&r.$parsers.push((function(e){var n=t.prop(i)||{};return n.badInput||n.typeMismatch?void 0:e}))}function po(e){e.$$parserName="number",e.$parsers.push((function(t){return e.$isEmpty(t)?null:Qr.test(t)?parseFloat(t):void 0})),e.$formatters.push((function(t){if(!e.$isEmpty(t)){if(!N(t))throw Vo("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t}))}function mo(e){return I(e)&&!N(e)&&(e=parseFloat(e)),D(e)?void 0:e}function go(e){return(0|e)===e}function vo(e){var t=e.toString(),n=t.indexOf(".");if(-1===n){if(-1<e&&e<1){var i=/e-(\d+)$/.exec(t);if(i)return Number(i[1])}return 0}return t.length-n-1}function _o(e,t,n,i,r){var o;if(I(i)){if(!(o=e(i)).constant)throw Vo("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,i);return o(t)}return r}var yo=["$browser","$sniffer","$filter","$parse",function(e,t,n,i){return{restrict:"E",require:["?ngModel"],link:{pre:function(r,a,s,l){if(l[0]){var u=o(s.type);"range"!==u||s.hasOwnProperty("ngInputRange")||(u="text"),(so[u]||so.text)(r,a,s,l[0],t,e,n,i)}}}}}],bo=/^(true|false|\d+)$/,wo=function(){return{restrict:"A",priority:100,compile:function(e,t){return bo.test(t.ngValue)?function(e,t,n){n.$set("value",e.$eval(n.ngValue))}:function(e,t,n){e.$watch(n.ngValue,(function(e){n.$set("value",e)}))}}}},Lo=["$compile",function(e){return{restrict:"AC",compile:function(t){return e.$$addBindingClass(t),function(t,n,i){e.$$addBindingInfo(n,i.ngBind),n=n[0],t.$watch(i.ngBind,(function(e){n.textContent=O(e)?"":e}))}}}}],Mo=["$interpolate","$compile",function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,i,r){var o=e(i.attr(r.$attr.ngBindTemplate));t.$$addBindingInfo(i,o.expressions),i=i[0],r.$observe("ngBindTemplate",(function(e){i.textContent=O(e)?"":e}))}}}}],ko=["$sce","$parse","$compile",function(e,t,n){return{restrict:"A",compile:function(i,r){var o=t(r.ngBindHtml),a=t(r.ngBindHtml,(function(t){return e.valueOf(t)}));return n.$$addBindingClass(i),function(t,i,r){n.$$addBindingInfo(i,r.ngBindHtml),t.$watch(a,(function(){var n=o(t);i.html(e.getTrustedHtml(n)||"")}))}}}}],xo=P({restrict:"A",require:"ngModel",link:function(e,t,n,i){i.$viewChangeListeners.push((function(){e.$eval(n.ngChange)}))}});function So(e,t){return e="ngClass"+e,["$animate",function(n){return{restrict:"AC",link:function(o,a,s){var l;function u(e){var t=c(e,1);s.$addClass(t)}function c(e,t){var n=a.data("$classCounts")||Pe(),i=[];return b(e,(function(e){(t>0||n[e])&&(n[e]=(n[e]||0)+t,n[e]===+(t>0)&&i.push(e))})),a.data("$classCounts",n),i.join(" ")}function d(e){if(!0===t||(1&o.$index)===t){var s=r(e||[]);l?ne(e,l)||function(e,t){var r=i(t,e),o=i(e,t);r=c(r,1),o=c(o,-1),r&&r.length&&n.addClass(a,r),o&&o.length&&n.removeClass(a,o)}(r(l),s):u(s)}l=F(e)?e.map((function(e){return Be(e)})):Be(e)}s.$observe("class",(function(t){d(o.$eval(s[e]))})),"ngClass"!==e&&o.$watch("$index",(function(e,n){var i=1&e;if(i!==(1&n)){var o=r(l);i===t?u(o):function(e){var t=c(e,-1);s.$removeClass(t)}(o)}})),o.$watch(s[e],d,!0)}};function i(e,t){var n=[];e:for(var i=0;i<e.length;i++){for(var r=e[i],o=0;o<t.length;o++)if(r===t[o])continue e;n.push(r)}return n}function r(e){var t=[];return F(e)?(b(e,(function(e){t=t.concat(r(e))})),t):B(e)?e.split(" "):j(e)?(b(e,(function(e,n){e&&(t=t.concat(n.split(" ")))})),t):e}}]}var To=So("",!0),$o=So("Odd",0),Do=So("Even",1),Co=Rr({compile:function(e,t){t.$set("ngCloak",void 0),e.removeClass("ng-cloak")}}),Eo=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Ao={},Po={blur:!0,focus:!0};b("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),(function(e){var t=un("ng-"+e);Ao[t]=["$parse","$rootScope",function(n,i){return{restrict:"A",compile:function(r,o){var a=n(o[t],null,!0);return function(t,n){n.on(e,(function(n){var r=function(){a(t,{$event:n})};Po[e]&&i.$$phase?t.$evalAsync(r):t.$apply(r)}))}}}}]}));var Yo=["$animate","$compile",function(e,t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,i,r,o,a){var s,l,u;n.$watch(r.ngIf,(function(n){n?l||a((function(n,o){l=o,n[n.length++]=t.$$createComment("end ngIf",r.ngIf),s={clone:n},e.enter(n,i.parent(),i)})):(u&&(u.remove(),u=null),l&&(l.$destroy(),l=null),s&&(u=Ae(s.clone),e.leave(u).done((function(e){!1!==e&&(u=null)})),s=null))}))}}}],Oo=["$templateRequest","$anchorScroll","$animate",function(e,t,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:v.noop,compile:function(i,r){var o=r.ngInclude||r.src,a=r.onload||"",s=r.autoscroll;return function(i,r,l,u,c){var d,h,f,p=0,m=function(){h&&(h.remove(),h=null),d&&(d.$destroy(),d=null),f&&(n.leave(f).done((function(e){!1!==e&&(h=null)})),h=f,f=null)};i.$watch(o,(function(o){var l=function(e){!1===e||!I(s)||s&&!i.$eval(s)||t()},h=++p;o?(e(o,!0).then((function(e){if(!i.$$destroyed&&h===p){var t=i.$new();u.template=e;var s=c(t,(function(e){m(),n.enter(e,null,r).done(l)}));f=s,(d=t).$emit("$includeContentLoaded",o),i.$eval(a)}}),(function(){i.$$destroyed||h===p&&(m(),i.$emit("$includeContentError",o))})),i.$emit("$includeContentRequested",o)):(m(),u.template=null)}))}}}}],Io=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,i,r,o){if(p.call(i[0]).match(/SVG/))return i.empty(),void t(rt(o.template,e.document).childNodes)(n,(function(e){i.append(e)}),{futureParentElement:i});i.html(o.template),t(i.contents())(n)}}}],jo=Rr({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),Ho=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,n,i){var r=t.attr(n.$attr.ngList)||", ",o="false"!==n.ngTrim,a=o?J(r):r;i.$parsers.push((function(e){if(!O(e)){var t=[];return e&&b(e.split(a),(function(e){e&&t.push(o?J(e):e)})),t}})),i.$formatters.push((function(e){if(F(e))return e.join(r)})),i.$isEmpty=function(e){return!e||!e.length}}}},Bo="ng-valid",No="ng-invalid",Ro="ng-pristine",Fo="ng-dirty",zo="ng-pending",Vo=t("ngModel"),Uo=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(e,t,n,i,r,o,a,s,l,u){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=void 0,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=void 0,this.$name=u(n.name||"",!1)(e),this.$$parentForm=Vr;var c,d=r(n.ngModel),h=d.assign,f=d,p=h,m=null,g=this;this.$$setOptions=function(e){if(g.$options=e,e&&e.getterSetter){var t=r(n.ngModel+"()"),o=r(n.ngModel+"($$$p)");f=function(e){var n=d(e);return z(n)&&(n=t(e)),n},p=function(e,t){z(d(e))?o(e,{$$$p:t}):h(e,t)}}else if(!d.assign)throw Vo("nonassign","Expression '{0}' is non-assignable. Element: {1}",n.ngModel,pe(i))},this.$render=E,this.$isEmpty=function(e){return O(e)||""===e||null===e||e!=e},this.$$updateEmptyClasses=function(e){g.$isEmpty(e)?(o.removeClass(i,"ng-not-empty"),o.addClass(i,"ng-empty")):(o.removeClass(i,"ng-empty"),o.addClass(i,"ng-not-empty"))};var v=0;Zo({ctrl:this,$element:i,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]},$animate:o}),this.$setPristine=function(){g.$dirty=!1,g.$pristine=!0,o.removeClass(i,Fo),o.addClass(i,Ro)},this.$setDirty=function(){g.$dirty=!0,g.$pristine=!1,o.removeClass(i,Ro),o.addClass(i,Fo),g.$$parentForm.$setDirty()},this.$setUntouched=function(){g.$touched=!1,g.$untouched=!0,o.setClass(i,"ng-untouched","ng-touched")},this.$setTouched=function(){g.$touched=!0,g.$untouched=!1,o.setClass(i,"ng-touched","ng-untouched")},this.$rollbackViewValue=function(){a.cancel(m),g.$viewValue=g.$$lastCommittedViewValue,g.$render()},this.$validate=function(){if(!D(g.$modelValue)){var e=g.$$lastCommittedViewValue,t=g.$$rawModelValue,n=g.$valid,i=g.$modelValue,r=g.$options&&g.$options.allowInvalid;g.$$runValidators(t,e,(function(e){r||n===e||(g.$modelValue=e?t:void 0,g.$modelValue!==i&&g.$$writeModelToScope())}))}},this.$$runValidators=function(e,t,n){var i,r,o,a,s=++v;function u(e,t){s===v&&g.$setValidity(e,t)}function d(e){s===v&&n(e)}a=g.$$parserName||"parse",(O(c)?(u(a,null),1):(c||(b(g.$validators,(function(e,t){u(t,null)})),b(g.$asyncValidators,(function(e,t){u(t,null)}))),u(a,c),c))?(o=!0,b(g.$validators,(function(n,i){var r=n(e,t);o=o&&r,u(i,r)})),!o&&(b(g.$asyncValidators,(function(e,t){u(t,null)})),1)?d(!1):(i=[],r=!0,b(g.$asyncValidators,(function(n,o){var a=n(e,t);if(!G(a))throw Vo("nopromise","Expected asynchronous validator to return a promise but got '{0}' instead.",a);u(o,void 0),i.push(a.then((function(){u(o,!0)}),(function(){r=!1,u(o,!1)})))})),i.length?l.all(i).then((function(){d(r)}),E):d(!0))):d(!1)},this.$commitViewValue=function(){var e=g.$viewValue;a.cancel(m),(g.$$lastCommittedViewValue!==e||""===e&&g.$$hasNativeValidators)&&(g.$$updateEmptyClasses(e),g.$$lastCommittedViewValue=e,g.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){var t=g.$$lastCommittedViewValue;if(c=!O(t)||void 0)for(var n=0;n<g.$parsers.length;n++)if(O(t=g.$parsers[n](t))){c=!1;break}D(g.$modelValue)&&(g.$modelValue=f(e));var i=g.$modelValue,r=g.$options&&g.$options.allowInvalid;function o(){g.$modelValue!==i&&g.$$writeModelToScope()}g.$$rawModelValue=t,r&&(g.$modelValue=t,o()),g.$$runValidators(t,g.$$lastCommittedViewValue,(function(e){r||(g.$modelValue=e?t:void 0,o())}))},this.$$writeModelToScope=function(){p(e,g.$modelValue),b(g.$viewChangeListeners,(function(e){try{e()}catch(e){t(e)}}))},this.$setViewValue=function(e,t){g.$viewValue=e,g.$options&&!g.$options.updateOnDefault||g.$$debounceViewValueCommit(t)},this.$$debounceViewValueCommit=function(t){var n,i=0,r=g.$options;r&&I(r.debounce)&&(N(n=r.debounce)?i=n:N(n[t])?i=n[t]:N(n.default)&&(i=n.default)),a.cancel(m),i?m=a((function(){g.$commitViewValue()}),i):s.$$phase?g.$commitViewValue():e.$apply((function(){g.$commitViewValue()}))},e.$watch((function(){var t=f(e);if(t!==g.$modelValue&&(g.$modelValue==g.$modelValue||t==t)){g.$modelValue=g.$$rawModelValue=t,c=void 0;for(var n=g.$formatters,i=n.length,r=t;i--;)r=n[i](r);g.$viewValue!==r&&(g.$$updateEmptyClasses(r),g.$viewValue=g.$$lastCommittedViewValue=r,g.$render(),g.$$runValidators(g.$modelValue,g.$viewValue,E))}return t}))}],Wo=["$rootScope",function(e){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:Uo,priority:1,compile:function(t){return t.addClass(Ro).addClass("ng-untouched").addClass(Bo),{pre:function(e,t,n,i){var r=i[0],o=i[1]||r.$$parentForm;r.$$setOptions(i[2]&&i[2].$options),o.$addControl(r),n.$observe("name",(function(e){r.$name!==e&&r.$$parentForm.$$renameControl(r,e)})),e.$on("$destroy",(function(){r.$$parentForm.$removeControl(r)}))},post:function(t,n,i,r){var o=r[0];o.$options&&o.$options.updateOn&&n.on(o.$options.updateOn,(function(e){o.$$debounceViewValueCommit(e&&e.type)})),n.on("blur",(function(){o.$touched||(e.$$phase?t.$evalAsync(o.$setTouched):t.$apply(o.$setTouched))}))}}}}}],qo=/(\s+|^)default(\s+|$)/,Go=function(){return{restrict:"A",controller:["$scope","$attrs",function(e,t){var n=this;this.$options=te(e.$eval(t.ngModelOptions)),I(this.$options.updateOn)?(this.$options.updateOnDefault=!1,this.$options.updateOn=J(this.$options.updateOn.replace(qo,(function(){return n.$options.updateOnDefault=!0," "})))):this.$options.updateOnDefault=!0}]}};function Zo(e){var t=e.ctrl,n=e.$element,i={},r=e.set,o=e.unset,a=e.$animate;function s(e,t){t&&!i[e]?(a.addClass(n,e),i[e]=!0):!t&&i[e]&&(a.removeClass(n,e),i[e]=!1)}function l(e,t){e=e?"-"+Se(e,"-"):"",s(Bo+e,!0===t),s(No+e,!1===t)}i[No]=!(i[Bo]=n.hasClass(Bo)),t.$setValidity=function(e,n,i){var a;O(n)?function(e,n,i){t[e]||(t[e]={}),r(t[e],n,i)}("$pending",e,i):function(e,n,i){t[e]&&o(t[e],n,i),Jo(t[e])&&(t[e]=void 0)}("$pending",e,i),q(n)?n?(o(t.$error,e,i),r(t.$$success,e,i)):(r(t.$error,e,i),o(t.$$success,e,i)):(o(t.$error,e,i),o(t.$$success,e,i)),t.$pending?(s(zo,!0),t.$valid=t.$invalid=void 0,l("",null)):(s(zo,!1),t.$valid=Jo(t.$error),t.$invalid=!t.$valid,l("",t.$valid)),l(e,a=t.$pending&&t.$pending[e]?void 0:!t.$error[e]&&(!!t.$$success[e]||null)),t.$$parentForm.$setValidity(e,a,t)}}function Jo(e){if(e)for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}var Xo=Rr({terminal:!0,priority:1e3}),Ko=t("ngOptions"),Qo=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,ea=["$compile","$document","$parse",function(t,n,i){var r=e.document.createElement("option"),o=e.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(e,t,n,i){i[0].registerOption=E},post:function(e,a,s,u){for(var c,d=u[0],h=u[1],f=s.multiple,p=0,m=a.children(),g=m.length;p<g;p++)if(""===m[p].value){c=m.eq(p);break}var v,_=!!c,w=!1,L=l(r.cloneNode(!1));L.val("?");var M=function(e,t,n){var r=e.match(Qo);if(!r)throw Ko("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",e,pe(t));var o=r[5]||r[7],a=r[6],s=/ as /.test(r[0])&&r[1],l=r[9],u=i(r[2]?r[1]:o),c=s&&i(s)||u,d=l&&i(l),h=l?function(e,t){return d(n,t)}:function(e){return Ct(e)},f=function(e,t){return h(e,b(e,t))},p=i(r[2]||r[1]),m=i(r[3]||""),g=i(r[4]||""),v=i(r[8]),_={},b=a?function(e,t){return _[a]=t,_[o]=e,_}:function(e){return _[o]=e,_};function w(e,t,n,i,r){this.selectValue=e,this.viewValue=t,this.label=n,this.group=i,this.disabled=r}function L(e){var t;if(!a&&y(e))t=e;else for(var n in t=[],e)e.hasOwnProperty(n)&&"$"!==n.charAt(0)&&t.push(n);return t}return{trackBy:l,getTrackByValue:f,getWatchables:i(v,(function(e){for(var t=[],i=L(e=e||[]),o=i.length,a=0;a<o;a++){var s=e===i?a:i[a],l=e[s],u=b(l,s),c=h(l,u);if(t.push(c),r[2]||r[1]){var d=p(n,u);t.push(d)}if(r[4]){var f=g(n,u);t.push(f)}}return t})),getOptions:function(){for(var e=[],t={},i=v(n)||[],r=L(i),o=r.length,a=0;a<o;a++){var s=i===r?a:r[a],u=i[s],d=b(u,s),_=c(n,d),y=h(_,d),M=new w(y,_,p(n,d),m(n,d),g(n,d));e.push(M),t[y]=M}return{items:e,selectValueMap:t,getOptionFromViewValue:function(e){return t[f(e)]},getViewValueFromOption:function(e){return l?te(e.viewValue):e.viewValue}}}}}(s.ngOptions,a,e),k=n[0].createDocumentFragment(),x=function(){_?w&&c.removeAttr("selected"):c.remove()},S=function(){L.remove()};function T(e,t){var n=r.cloneNode(!1);t.appendChild(n),function(e,t){e.element=t,t.disabled=e.disabled,e.label!==t.label&&(t.label=e.label,t.textContent=e.label),t.value=e.selectValue}(e,n)}function $(){var e=v&&d.readValue();if(v)for(var t=v.items.length-1;t>=0;t--){var n=v.items[t];I(n.group)?wt(n.element.parentNode):wt(n.element)}v=M.getOptions();var i={};if(_&&a.prepend(c),v.items.forEach((function(e){var t;I(e.group)?((t=i[e.group])||(t=o.cloneNode(!1),k.appendChild(t),t.label=null===e.group?"null":e.group,i[e.group]=t),T(e,t)):T(e,k)})),a[0].appendChild(k),h.$render(),!h.$isEmpty(e)){var r=d.readValue();(M.trackBy||f?ne(e,r):e===r)||(h.$setViewValue(r),h.$render())}}f?(h.$isEmpty=function(e){return!e||0===e.length},d.writeValue=function(e){v.items.forEach((function(e){e.element.selected=!1})),e&&e.forEach((function(e){var t=v.getOptionFromViewValue(e);t&&(t.element.selected=!0)}))},d.readValue=function(){var e=a.val()||[],t=[];return b(e,(function(e){var n=v.selectValueMap[e];n&&!n.disabled&&t.push(v.getViewValueFromOption(n))})),t},M.trackBy&&e.$watchCollection((function(){if(F(h.$viewValue))return h.$viewValue.map((function(e){return M.getTrackByValue(e)}))}),(function(){h.$render()}))):(d.writeValue=function(e){var t=v.selectValueMap[a.val()],n=v.getOptionFromViewValue(e);t&&t.element.removeAttribute("selected"),n?(a[0].value!==n.selectValue&&(S(),x(),a[0].value=n.selectValue,n.element.selected=!0),n.element.setAttribute("selected","selected")):null===e||_?(S(),_||a.prepend(c),a.val(""),w&&(c.prop("selected",!0),c.attr("selected",!0))):(x(),a.prepend(L),a.val("?"),L.prop("selected",!0),L.attr("selected",!0))},d.readValue=function(){var e=v.selectValueMap[a.val()];return e&&!e.disabled?(x(),S(),v.getViewValueFromOption(e)):null},M.trackBy&&e.$watch((function(){return M.getTrackByValue(h.$viewValue)}),(function(){h.$render()}))),_?(c.remove(),t(c)(e),c[0].nodeType===Ie?(w=!1,d.registerOption=function(e,t){""===t.val()&&(w=!0,(c=t).removeClass("ng-scope"),h.$render(),t.on("$destroy",(function(){c=void 0,w=!1})))}):(c.removeClass("ng-scope"),w=!0)):c=l(r.cloneNode(!1)),a.empty(),$(),e.$watchCollection(M.getWatchables,$)}}}}],ta=["$locale","$interpolate","$log",function(e,t,n){var i=/{}/g,r=/^when(Minus)?(.+)$/;return{link:function(a,s,l){var u,c=l.count,d=l.$attr.when&&s.attr(l.$attr.when),h=l.offset||0,f=a.$eval(d)||{},p={},m=t.startSymbol(),g=t.endSymbol(),_=m+c+"-"+h+g,y=v.noop;function w(e){s.text(e||"")}b(l,(function(e,t){var n=r.exec(t);if(n){var i=(n[1]?"-":"")+o(n[2]);f[i]=s.attr(l.$attr[t])}})),b(f,(function(e,n){p[n]=t(e.replace(i,_))})),a.$watch(c,(function(t){var i=parseFloat(t),r=D(i);if(r||i in f||(i=e.pluralCat(i-h)),!(i===u||r&&D(u))){y();var o=p[i];O(o)?(null!=t&&n.debug("ngPluralize: no rule defined for '"+i+"' in "+d),y=E,w()):y=a.$watch(o,w),u=i}}))}}}],na=["$parse","$animate","$compile",function(e,n,i){var o=t("ngRepeat"),a=function(e,t,n,i,r,o,a){e[n]=i,r&&(e[r]=o),e.$index=t,e.$first=0===t,e.$last=t===a-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=0==(1&t))},s=function(e){return e.clone[0]},l=function(e){return e.clone[e.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(t,u){var c=u.ngRepeat,d=i.$$createComment("end ngRepeat",c),h=c.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!h)throw o("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",c);var f=h[1],p=h[2],m=h[3],g=h[4];if(!(h=f.match(/^(?:(\s*[$\w]+)|\(\s*([$\w]+)\s*,\s*([$\w]+)\s*\))$/)))throw o("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",f);var v,_,w,L,M=h[3]||h[1],k=h[2];if(m&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(m)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(m)))throw o("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",m);var x={$id:Ct};return g?v=e(g):(w=function(e,t){return Ct(t)},L=function(e){return e}),function(e,t,i,u,h){v&&(_=function(t,n,i){return k&&(x[k]=t),x[M]=n,x.$index=i,v(e,x)});var f=Pe();e.$watchCollection(p,(function(i){var u,p,g,v,x,S,T,$,D,C,E,A,P=t[0],Y=Pe();if(m&&(e[m]=i),y(i))D=i,$=_||w;else for(var O in $=_||L,D=[],i)r.call(i,O)&&"$"!==O.charAt(0)&&D.push(O);for(v=D.length,E=new Array(v),u=0;u<v;u++)if(x=i===D?u:D[u],S=i[x],T=$(x,S,u),f[T])C=f[T],delete f[T],Y[T]=C,E[u]=C;else{if(Y[T])throw b(E,(function(e){e&&e.scope&&(f[e.id]=e)})),o("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",c,T,S);E[u]={id:T,scope:void 0,clone:void 0},Y[T]=!0}for(var I in f){if(A=Ae((C=f[I]).clone),n.leave(A),A[0].parentNode)for(u=0,p=A.length;u<p;u++)A[u].$$NG_REMOVED=!0;C.scope.$destroy()}for(u=0;u<v;u++)if(x=i===D?u:D[u],S=i[x],(C=E[u]).scope){g=P;do{g=g.nextSibling}while(g&&g.$$NG_REMOVED);s(C)!==g&&n.move(Ae(C.clone),null,P),P=l(C),a(C.scope,u,M,S,k,x,v)}else h((function(e,t){C.scope=t;var i=d.cloneNode(!1);e[e.length++]=i,n.enter(e,null,P),P=i,C.clone=e,Y[C.id]=C,a(C.scope,u,M,S,k,x,v)}));f=Y}))}}}}],ia=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,i){t.$watch(i.ngShow,(function(t){e[t?"removeClass":"addClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})}))}}}],ra=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,i){t.$watch(i.ngHide,(function(t){e[t?"addClass":"removeClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})}))}}}],oa=Rr((function(e,t,n){e.$watch(n.ngStyle,(function(e,n){n&&e!==n&&b(n,(function(e,n){t.css(n,"")})),e&&t.css(e)}),!0)})),aa=["$animate","$compile",function(e,t){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,i,r,o){var a=r.ngSwitch||r.on,s=[],l=[],u=[],c=[],d=function(e,t){return function(n){!1!==n&&e.splice(t,1)}};n.$watch(a,(function(n){for(var i,r;u.length;)e.cancel(u.pop());for(i=0,r=c.length;i<r;++i){var a=Ae(l[i].clone);c[i].$destroy(),(u[i]=e.leave(a)).done(d(u,i))}l.length=0,c.length=0,(s=o.cases["!"+n]||o.cases["?"])&&b(s,(function(n){n.transclude((function(i,r){c.push(r);var o=n.element;i[i.length++]=t.$$createComment("end ngSwitchWhen");var a={clone:i};l.push(a),e.enter(i,o.parent(),o)}))}))}))}}}],sa=Rr({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,i,r){b(n.ngSwitchWhen.split(n.ngSwitchWhenSeparator).sort().filter((function(e,t,n){return n[t-1]!==e})),(function(e){i.cases["!"+e]=i.cases["!"+e]||[],i.cases["!"+e].push({transclude:r,element:t})}))}}),la=Rr({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,i,r){i.cases["?"]=i.cases["?"]||[],i.cases["?"].push({transclude:r,element:t})}}),ua=t("ngTransclude"),ca=["$compile",function(e){return{restrict:"EAC",terminal:!0,compile:function(t){var n=e(t.contents());return t.empty(),function(e,t,i,r,o){if(!o)throw ua("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",pe(t));i.ngTransclude===i.$attr.ngTransclude&&(i.ngTransclude="");var a=i.ngTransclude||i.ngTranscludeSlot;function s(){n(e,(function(e){t.append(e)}))}o((function(e,n){e.length?t.append(e):(s(),n.$destroy())}),null,a),a&&!o.isSlotFilled(a)&&s()}}}}],da=["$templateCache",function(e){return{restrict:"E",terminal:!0,compile:function(t,n){if("text/ng-template"===n.type){var i=n.id,r=t[0].text;e.put(i,r)}}}}],ha={$setViewValue:E,$render:E},fa=["$element","$scope",function(t,n){var i=this,r=new Et;i.ngModelCtrl=ha,i.unknownOption=l(e.document.createElement("option")),i.renderUnknownOption=function(e){var n="? "+Ct(e)+" ?";i.unknownOption.val(n),t.prepend(i.unknownOption),t.val(n)},n.$on("$destroy",(function(){i.renderUnknownOption=E})),i.removeUnknownOption=function(){i.unknownOption.parent()&&i.unknownOption.remove()},i.readValue=function(){return i.removeUnknownOption(),t.val()},i.writeValue=function(e){i.hasOption(e)?(i.removeUnknownOption(),t.val(e),""===e&&i.emptyOption.prop("selected",!0)):null==e&&i.emptyOption?(i.removeUnknownOption(),t.val("")):i.renderUnknownOption(e)},i.addOption=function(e,t){if(t[0].nodeType!==Ie){Ce(e,'"option value"'),""===e&&(i.emptyOption=t);var n,o=r.get(e)||0;r.put(e,o+1),i.ngModelCtrl.$render(),(n=t)[0].hasAttribute("selected")&&(n[0].selected=!0)}},i.removeOption=function(e){var t=r.get(e);t&&(1===t?(r.remove(e),""===e&&(i.emptyOption=void 0)):r.put(e,t-1))},i.hasOption=function(e){return!!r.get(e)},i.registerOption=function(e,t,n,r,o){var a;r?n.$observe("value",(function(e){I(a)&&i.removeOption(a),a=e,i.addOption(e,t)})):o?e.$watch(o,(function(e,r){n.$set("value",e),r!==e&&i.removeOption(r),i.addOption(e,t)})):i.addOption(n.value,t),t.on("$destroy",(function(){i.removeOption(n.value),i.ngModelCtrl.$render()}))}}],pa=function(){return{restrict:"E",require:["select","?ngModel"],controller:fa,priority:1,link:{pre:function(e,t,n,i){var r=i[1];if(r){var o=i[0];if(o.ngModelCtrl=r,t.on("change",(function(){e.$apply((function(){r.$setViewValue(o.readValue())}))})),n.multiple){o.readValue=function(){var e=[];return b(t.find("option"),(function(t){t.selected&&e.push(t.value)})),e},o.writeValue=function(e){var n=new Et(e);b(t.find("option"),(function(e){e.selected=I(n.get(e.value))}))};var a,s=NaN;e.$watch((function(){s!==r.$viewValue||ne(a,r.$viewValue)||(a=Be(r.$viewValue),r.$render()),s=r.$viewValue})),r.$isEmpty=function(e){return!e||0===e.length}}}},post:function(e,t,n,i){var r=i[1];if(r){var o=i[0];r.$render=function(){o.writeValue(r.$viewValue)}}}}}},ma=["$interpolate",function(e){return{restrict:"E",priority:100,compile:function(t,n){var i,r;return I(n.ngValue)?i=!0:I(n.value)?i=e(n.value,!0):(r=e(t.text(),!0))||n.$set("value",t.text()),function(e,t,n){var o=t.parent(),a=o.data("$selectController")||o.parent().data("$selectController");a&&a.registerOption(e,t,n,i,r)}}}}],ga=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){i&&(n.required=!0,i.$validators.required=function(e,t){return!n.required||!i.$isEmpty(t)},n.$observe("required",(function(){i.$validate()})))}}},va=function(){return{restrict:"A",require:"?ngModel",link:function(e,n,i,r){if(r){var o,a=i.ngPattern||i.pattern;i.$observe("pattern",(function(e){if(B(e)&&e.length>0&&(e=new RegExp("^"+e+"$")),e&&!e.test)throw t("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",a,e,pe(n));o=e||void 0,r.$validate()})),r.$validators.pattern=function(e,t){return r.$isEmpty(t)||O(o)||o.test(t)}}}}},_a=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){if(i){var r=-1;n.$observe("maxlength",(function(e){var t=$(e);r=D(t)?-1:t,i.$validate()})),i.$validators.maxlength=function(e,t){return r<0||i.$isEmpty(t)||t.length<=r}}}}},ya=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){if(i){var r=0;n.$observe("minlength",(function(e){r=$(e)||0,i.$validate()})),i.$validators.minlength=function(e,t){return i.$isEmpty(t)||t.length>=r}}}}};e.angular.bootstrap?e.console&&alert("WARNING: Tried to load angular more than once."):(function(){var t;if(!Te){var n=re();(u=O(n)?e.jQuery:n?e[n]:void 0)&&u.fn.on?(l=u,S(u.fn,{scope:Lt.scope,isolateScope:Lt.isolateScope,controller:Lt.controller,injector:Lt.injector,inheritedData:Lt.inheritedData}),t=u.cleanData,u.cleanData=function(e){for(var n,i,r=0;null!=(i=e[r]);r++)(n=u._data(i,"events"))&&n.$destroy&&u(i).triggerHandler("$destroy");t(e)}):l=st,v.element=l,Te=!0}}(),function(n){S(n,{bootstrap:Le,copy:te,extend:S,merge:T,equals:ne,element:l,forEach:b,injector:Rt,noop:E,bind:se,toJson:ue,fromJson:ce,identity:A,isUndefined:O,isDefined:I,isString:B,isFunction:z,isObject:j,isNumber:N,isElement:K,isArray:F,version:Re,isDate:R,lowercase:o,uppercase:a,callbacks:{$$counter:0},getTestability:ke,$$minErr:t,$$csp:ie,reloadWithDebugInfo:Me}),(c=function(e){var n=t("$injector"),i=t("ng");function r(e,t,n){return e[t]||(e[t]=n())}var o=r(e,"angular",Object);return o.$$minErr=o.$$minErr||t,r(o,"module",(function(){var e={};return function(t,o,a){return function(e,t){if("hasOwnProperty"===e)throw i("badname","hasOwnProperty is not a valid {0} name","module")}(t),o&&e.hasOwnProperty(t)&&(e[t]=null),r(e,t,(function(){if(!o)throw n("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",t);var e=[],i=[],r=[],s=u("$injector","invoke","push",i),l={_invokeQueue:e,_configBlocks:i,_runBlocks:r,requires:o,name:t,provider:c("$provide","provider"),factory:c("$provide","factory"),service:c("$provide","service"),value:u("$provide","value"),constant:u("$provide","constant","unshift"),decorator:c("$provide","decorator"),animation:c("$animateProvider","register"),filter:c("$filterProvider","register"),controller:c("$controllerProvider","register"),directive:c("$compileProvider","directive"),component:c("$compileProvider","component"),config:s,run:function(e){return r.push(e),this}};return a&&s(a),l;function u(t,n,i,r){return r||(r=e),function(){return r[i||"push"]([t,n,arguments]),l}}function c(n,i){return function(r,o){return o&&z(o)&&(o.$$moduleName=t),e.push([n,i,arguments]),l}}}))}}))}(e))("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:Xi}),e.provider("$compile",an).directive({a:Fr,input:yo,textarea:yo,form:Gr,script:da,select:pa,option:ma,ngBind:Lo,ngBindHtml:ko,ngBindTemplate:Mo,ngClass:To,ngClassEven:Do,ngClassOdd:$o,ngCloak:Co,ngController:Eo,ngForm:Zr,ngHide:ra,ngIf:Yo,ngInclude:Oo,ngInit:jo,ngNonBindable:Xo,ngPluralize:ta,ngRepeat:na,ngShow:ia,ngStyle:oa,ngSwitch:aa,ngSwitchWhen:sa,ngSwitchDefault:la,ngOptions:ea,ngTransclude:ca,ngModel:Wo,ngList:Ho,ngChange:xo,pattern:va,ngPattern:va,required:ga,ngRequired:ga,minlength:ya,ngMinlength:ya,maxlength:_a,ngMaxlength:_a,ngValue:wo,ngModelOptions:Go}).directive({ngInclude:Io}).directive(zr).directive(Ao),e.provider({$anchorScroll:Ft,$animate:Zt,$animateCss:Kt,$$animateJs:qt,$$animateQueue:Gt,$$AnimateRunner:Xt,$$animateAsyncRun:Jt,$browser:en,$cacheFactory:tn,$controller:mn,$document:gn,$exceptionHandler:vn,$filter:mr,$$forceReflow:_n,$interpolate:Hn,$interval:Bn,$http:Yn,$httpParamSerializer:Tn,$httpParamSerializerJQLike:$n,$httpBackend:In,$xhrFactory:On,$jsonpCallbacks:Nn,$location:ri,$log:oi,$parse:Ui,$rootScope:Ji,$q:Wi,$$q:qi,$sce:nr,$sceDelegate:tr,$sniffer:ir,$templateCache:nn,$templateRequest:or,$$testability:ar,$timeout:sr,$window:hr,$$rAF:Zi,$$jqLite:Dt,$$HashMap:At,$$cookieReader:pr})}])}(v),v.module("ngLocale",[],["$provide",function(e){e.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],STANDALONEMONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a",short:"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(e,t){var n=0|e,i=function(e,t){var n=t;void 0===n&&(n=Math.min(function(e){var t=(e+="").indexOf(".");return-1==t?0:e.length-t-1}(e),3));var i=Math.pow(10,n);return{v:n,f:(e*i|0)%i}}(e,t);return 1==n&&0==i.v?"one":"other"}})}]),l(e.document).ready((function(){!function(t,n){var i,r,o={};if(b(be,(function(e){var n=e+"app";!i&&t.hasAttribute&&t.hasAttribute(n)&&(i=t,r=t.getAttribute(n))})),b(be,(function(e){var n,o=e+"app";!i&&(n=t.querySelector("["+o.replace(":","\\:")+"]"))&&(i=n,r=n.getAttribute(o))})),i){if(!we)return void e.console.error("Angular: disabling automatic bootstrap. <script> protocol indicates an extension, document.location.href does not match.");o.strictDi=null!==function(e,t){var n,i,r=be.length;for(i=0;i<r;++i)if(n=be[i]+"strict-di",B(n=e.getAttribute(n)))return n;return null}(i),n(i,r?[r]:[],o)}}(e.document,Le)})))}(window),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>'),
-/**
- * @license AngularJS v1.5.11
- * (c) 2010-2017 Google, Inc. http://angularjs.org
- * License: MIT
- */
-function(e,t){"use strict";var n,i,r,o,a=1,s="-add",l="-remove",u="ng-animate",c="$$ngAnimateChildren";void 0===e.ontransitionend&&void 0!==e.onwebkittransitionend?(n="WebkitTransition",i="webkitTransitionEnd transitionend"):(n="transition",i="transitionend"),void 0===e.onanimationend&&void 0!==e.onwebkitanimationend?(r="WebkitAnimation",o="webkitAnimationEnd animationend"):(r="animation",o="animationend");var d="Duration",h="TimingFunction",f="PlayState",p=r+"Delay",m=r+d,g=n+"Delay",v=n+d,_=t.$$minErr("ng");function y(e,t,n){if(!e)throw _("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function b(e,t){return e||t?e?t?(J(e)&&(e=e.join(" ")),J(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function w(e,t,n){var i="";return e=J(e)?e:e&&te(e)&&e.length?e.split(/\s+/):[],Z(e,(function(e,r){e&&e.length>0&&(i+=r>0?" ":"",i+=n?t+e:e+t)})),i}function L(e){if(!e[0])return e;for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType===a)return n}}function M(e){return function(t,n){n.addClass&&(function(e,t,n){Z(t,(function(t){e.addClass(t,n)}))}(e,t,n.addClass),n.addClass=null),n.removeClass&&(function(e,t,n){Z(t,(function(t){e.removeClass(t,n)}))}(e,t,n.removeClass),n.removeClass=null)}}function k(e){if(!(e=e||{}).$$prepared){var t=e.domOperation||re;e.domOperation=function(){e.$$domOperationFired=!0,t(),t=re},e.$$prepared=!0}return e}function x(e,t){S(e,t),T(e,t)}function S(e,t){t.from&&(e.css(t.from),t.from=null)}function T(e,t){t.to&&(e.css(t.to),t.to=null)}function $(e,t,n){var i=t.options||{},r=n.options||{},o=(i.addClass||"")+" "+(r.addClass||""),a=(i.removeClass||"")+" "+(r.removeClass||""),u=function(e,t,n){var i={};e=o(e),t=o(t),Z(t,(function(e,t){i[t]=1})),n=o(n),Z(n,(function(e,t){i[t]=1===i[t]?null:-1}));var r={addClass:"",removeClass:""};function o(e){te(e)&&(e=e.split(" "));var t={};return Z(e,(function(e){e.length&&(t[e]=!0)})),t}return Z(i,(function(t,n){var i,o;1===t?(i="addClass",o=!e[n]||e[n+l]):-1===t&&(i="removeClass",o=e[n]||e[n+s]),o&&(r[i].length&&(r[i]+=" "),r[i]+=n)})),r}(e.attr("class"),o,a);r.preparationClasses&&(i.preparationClasses=P(r.preparationClasses,i.preparationClasses),delete r.preparationClasses);var c=i.domOperation!==re?i.domOperation:null;return G(i,r),c&&(i.domOperation=c),u.addClass?i.addClass=u.addClass:i.addClass=null,u.removeClass?i.removeClass=u.removeClass:i.removeClass=null,t.addClass=i.addClass,t.removeClass=i.removeClass,i}function D(e){return e instanceof ie?e[0]:e}function C(e,t){var n=t?"-"+t+"s":"";return A(e,[g,n]),[g,n]}function E(e,t){var n=t?"paused":"",i=r+f;return A(e,[i,n]),[i,n]}function A(e,t){var n=t[0],i=t[1];e.style[n]=i}function P(e,t){return e?t?e+" "+t:e:t}var Y=["$interpolate",function(e){return{link:function(t,n,i){var r=i.ngAnimateChildren;function o(e){e="on"===e||"true"===e,n.data(c,e)}te(r)&&0===r.length?n.data(c,!0):(o(e(r)(t)),i.$observe("ngAnimateChildren",o))}}}],O="$$animateCss",I=1e3,j=3,H=1.5,B={transitionDuration:v,transitionDelay:g,transitionProperty:n+"Property",animationDuration:m,animationDelay:p,animationIterationCount:r+"IterationCount"},N={transitionDuration:v,transitionDelay:g,animationDuration:m,animationDelay:p};function R(e,t){return[t?p:g,e+"s"]}function F(e,t,n){var i=Object.create(null),r=e.getComputedStyle(t)||{};return Z(n,(function(e,t){var n,o,a=r[e];if(a){var s=a.charAt(0);("-"===s||"+"===s||s>=0)&&(n=0,o=a.split(/\s*,\s*/),Z(o,(function(e){"s"===e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),e=parseFloat(e)||0,n=n?Math.max(e,n):e})),a=n),0===a&&(a=null),i[t]=a}})),i}function z(e){return 0===e||null!=e}function V(e,t){var i=n,r=e+"s";return t?i+=d:r+=" linear all",[i,r]}function U(){var e=Object.create(null);return{flush:function(){e=Object.create(null)},count:function(t){var n=e[t];return n?n.total:0},get:function(t){var n=e[t];return n&&n.value},put:function(t,n){e[t]?e[t].total++:e[t]={total:1,value:n}}}}function W(e,t,n){Z(n,(function(n){e[n]=X(e[n])?e[n]:t.style.getPropertyValue(n)}))}var q,G,Z,J,X,K,Q,ee,te,ne,ie,re,oe=["$animateProvider",function(e){var t=U(),a=U();this.$get=["$window","$$jqLite","$$AnimateRunner","$timeout","$$forceReflow","$sniffer","$$rAFScheduler","$$animateQueue",function(e,u,c,d,f,p,g,v){var _=M(u),y=0;function b(e,t){var n="$$ngAnimateParentKey",i=e.parentNode;return(i[n]||(i[n]=++y))+"-"+e.getAttribute("class")+"-"+t}var L=[];function $(e){L.push(e),g.waitUntilQuiet((function(){t.flush(),a.flush();for(var e=f(),n=0;n<L.length;n++)L[n](e);L.length=0}))}function P(n,i,r){var o=function(n,i,r,o){var a=t.get(r);return a||"infinite"===(a=F(e,n,o)).animationIterationCount&&(a.animationIterationCount=1),t.put(r,a),a}(n,0,r,B),a=o.animationDelay,s=o.transitionDelay;return o.maxDelay=a&&s?Math.max(a,s):a||s,o.maxDuration=Math.max(o.animationDuration*o.animationIterationCount,o.transitionDuration),o}return function(f,g){var y=g||{};y.$$prepared||(y=k(q(y)));var L={},M=D(f);if(!M||!M.parentNode||!v.enabled())return Ae();var Y,B,U,G,X,K,Q,ee,te,ne,ie=[],oe=f.attr("class"),ae=function(e){var t={};return e&&(e.to||e.from)&&(t.to=e.to,t.from=e.from),t}(y),se=[];if(0===y.duration||!p.animations&&!p.transitions)return Ae();var le=y.event&&J(y.event)?y.event.join(" "):y.event,ue="",ce="";le&&y.structural?ue=w(le,"ng-",!0):le&&(ue=le),y.addClass&&(ce+=w(y.addClass,s)),y.removeClass&&(ce.length&&(ce+=" "),ce+=w(y.removeClass,l)),y.applyClassesEarly&&ce.length&&_(f,y);var de,he,fe,pe=[ue,ce].join(" ").trim(),me=oe+" "+pe,ge=w(pe,"-active"),ve=ae.to&&Object.keys(ae.to).length>0;if(!((y.keyframeStyle||"").length>0||ve||pe))return Ae();if(y.stagger>0){var _e=parseFloat(y.stagger);he={transitionDelay:_e,animationDelay:_e,transitionDuration:0,animationDuration:0}}else de=b(M,me),he=function(n,i,r,o){var s;if(t.count(r)>0&&!(s=a.get(r))){var l=w(i,"-stagger");u.addClass(n,l),(s=F(e,n,o)).animationDuration=Math.max(s.animationDuration,0),s.transitionDuration=Math.max(s.transitionDuration,0),u.removeClass(n,l),a.put(r,s)}return s||{}}(M,pe,de,N);if(y.$$skipPreparationClasses||u.addClass(f,pe),y.transitionStyle){var ye=[n,y.transitionStyle];A(M,ye),ie.push(ye)}if(y.duration>=0){fe=M.style[n].length>0;var be=V(y.duration,fe);A(M,be),ie.push(be)}if(y.keyframeStyle){var we=[r,y.keyframeStyle];A(M,we),ie.push(we)}var Le=he?y.staggerIndex>=0?y.staggerIndex:t.count(de):0,Me=0===Le;Me&&!y.skipBlocking&&C(M,9999);var ke=P(M,0,de),xe=ke.maxDelay;K=Math.max(xe,0),ee=ke.maxDuration;var Se,Te={};return Te.hasTransitions=ke.transitionDuration>0,Te.hasAnimations=ke.animationDuration>0,Te.hasTransitionAll=Te.hasTransitions&&"all"===ke.transitionProperty,Te.applyTransitionDuration=ve&&(Te.hasTransitions&&!Te.hasTransitionAll||Te.hasAnimations&&!Te.hasTransitions),Te.applyAnimationDuration=y.duration&&Te.hasAnimations,Te.applyTransitionDelay=z(y.delay)&&(Te.applyTransitionDuration||Te.hasTransitions),Te.applyAnimationDelay=z(y.delay)&&Te.hasAnimations,Te.recalculateTimingStyles=ce.length>0,(Te.applyTransitionDuration||Te.applyAnimationDuration)&&(ee=y.duration?parseFloat(y.duration):ee,Te.applyTransitionDuration&&(Te.hasTransitions=!0,ke.transitionDuration=ee,fe=M.style[n+"Property"].length>0,ie.push(V(ee,fe))),Te.applyAnimationDuration&&(Te.hasAnimations=!0,ke.animationDuration=ee,ie.push([m,ee+"s"]))),0!==ee||Te.recalculateTimingStyles?(null!=y.delay&&("boolean"!=typeof y.delay&&(Se=parseFloat(y.delay),K=Math.max(Se,0)),Te.applyTransitionDelay&&ie.push(R(Se)),Te.applyAnimationDelay&&ie.push(R(Se,!0))),null==y.duration&&ke.transitionDuration>0&&(Te.recalculateTimingStyles=Te.recalculateTimingStyles||Me),Q=K*I,te=ee*I,y.skipBlocking||(Te.blockTransition=ke.transitionDuration>0,Te.blockKeyframeAnimation=ke.animationDuration>0&&he.animationDelay>0&&0===he.animationDuration),y.from&&(y.cleanupStyles&&W(L,M,Object.keys(y.from)),S(f,y)),Te.blockTransition||Te.blockKeyframeAnimation?Ee(ee):y.skipBlocking||C(M,!1),{$$willAnimate:!0,end:$e,start:function(){if(!Y)return G=new c(X={end:$e,cancel:De,resume:null,pause:null}),$(Ye),G}}):Ae();function $e(){Ce()}function De(){Ce(!0)}function Ce(e){if(!(Y||U&&B)){Y=!0,B=!1,y.$$skipPreparationClasses||u.removeClass(f,pe),u.removeClass(f,ge),E(M,!1),C(M,!1),Z(ie,(function(e){M.style[e[0]]=""})),_(f,y),x(f,y),Object.keys(L).length&&Z(L,(function(e,t){e?M.style.setProperty(t,e):M.style.removeProperty(t)})),y.onDone&&y.onDone(),se&&se.length&&f.off(se.join(" "),Pe);var t=f.data(O);t&&(d.cancel(t[0].timer),f.removeData(O)),G&&G.complete(!e)}}function Ee(e){Te.blockTransition&&C(M,e),Te.blockKeyframeAnimation&&E(M,!!e)}function Ae(){return G=new c({end:$e,cancel:De}),$(re),Ce(),{$$willAnimate:!1,start:function(){return G},end:$e}}function Pe(e){e.stopPropagation();var t=e.originalEvent||e,n=t.$manualTimeStamp||Date.now(),i=parseFloat(t.elapsedTime.toFixed(j));Math.max(n-ne,0)>=Q&&i>=ee&&(U=!0,Ce())}function Ye(){if(!Y)if(M.parentNode){var e=function(e){if(U)B&&e&&(B=!1,Ce());else if(B=!e,ke.animationDuration){var t=E(M,B);B?ie.push(t):(i=t,r=(n=ie).indexOf(i),i>=0&&n.splice(r,1))}var n,i,r},t=Le>0&&(ke.transitionDuration&&0===he.transitionDuration||ke.animationDuration&&0===he.animationDuration)&&Math.max(he.animationDelay,he.transitionDelay);t?d(a,Math.floor(t*Le*I),!1):a(),X.resume=function(){e(!0)},X.pause=function(){e(!1)}}else Ce();function a(){if(!Y){if(Ee(!1),Z(ie,(function(e){var t=e[0],n=e[1];M.style[t]=n})),_(f,y),u.addClass(f,ge),Te.recalculateTimingStyles){if(me=M.className+" "+pe,de=b(M,me),ke=P(M,0,de),xe=ke.maxDelay,K=Math.max(xe,0),0===(ee=ke.maxDuration))return void Ce();Te.hasTransitions=ke.transitionDuration>0,Te.hasAnimations=ke.animationDuration>0}if(Te.applyAnimationDelay&&(xe="boolean"!=typeof y.delay&&z(y.delay)?parseFloat(y.delay):xe,K=Math.max(xe,0),ke.animationDelay=xe,Se=R(xe,!0),ie.push(Se),M.style[Se[0]]=Se[1]),Q=K*I,te=ee*I,y.easing){var e,t=y.easing;Te.hasTransitions&&(e=n+h,ie.push([e,t]),M.style[e]=t),Te.hasAnimations&&(e=r+h,ie.push([e,t]),M.style[e]=t)}ke.transitionDuration&&se.push(i),ke.animationDuration&&se.push(o),ne=Date.now();var a=Q+H*te,l=ne+a,c=f.data(O)||[],p=!0;if(c.length){var m=c[0];(p=l>m.expectedEndTime)?d.cancel(m.timer):c.push(Ce)}if(p){var g=d(s,a,!1);c[0]={timer:g,expectedEndTime:l},c.push(Ce),f.data(O,c)}se.length&&f.on(se.join(" "),Pe),y.to&&(y.cleanupStyles&&W(L,M,Object.keys(y.to)),T(f,y))}}function s(){var e=f.data(O);if(e){for(var t=1;t<e.length;t++)e[t]();f.removeData(O)}}}}}]}],ae=["$$animationProvider",function(e){e.drivers.push("$$animateCssDriver");var t="ng-animate-shim",n="ng-anchor-out",i="ng-anchor-in";this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(e,r,o,a,s,l,u){if(!s.animations&&!s.transitions)return re;var c,d=u[0].body,h=D(a),f=ie((c=h).parentNode&&11===c.parentNode.nodeType||d.contains(h)?h:d);return function(r){return r.from&&r.to?function(r,a,s,l){var u=g(r),c=g(a),h=[];if(Z(l,(function(r){var a=function(r,a,s){var l=ie(D(a).cloneNode(!0)),u=p(_(l));a.addClass(t),s.addClass(t),l.addClass("ng-anchor"),f.append(l);var c,h=function(){var t=e(l,{addClass:n,delay:!0,from:v(a)});return t.$$willAnimate?t:null}();if(!h&&!(c=y()))return b();var g=h||c;return{start:function(){var e,t=g.start();return t.done((function(){if(t=null,!c&&(c=y()))return(t=c.start()).done((function(){t=null,b(),e.complete()})),t;b(),e.complete()})),e=new o({end:n,cancel:n});function n(){t&&t.end()}}};function v(e){var t={},n=D(e).getBoundingClientRect();return Z(["width","height","top","left"],(function(e){var i=n[e];switch(e){case"top":i+=d.scrollTop;break;case"left":i+=d.scrollLeft}t[e]=Math.floor(i)+"px"})),t}function _(e){return e.attr("class")||""}function y(){var t=p(_(s)),r=m(t,u),o=m(u,t),a=e(l,{to:v(s),addClass:i+" "+r,removeClass:n+" "+o,delay:!0});return a.$$willAnimate?a:null}function b(){l.remove(),a.removeClass(t),s.removeClass(t)}}(0,r.out,r.in);a&&h.push(a)})),u||c||0!==h.length)return{start:function(){var e=[];u&&e.push(u.start()),c&&e.push(c.start()),Z(h,(function(t){e.push(t.start())}));var t=new o({end:n,cancel:n});return o.all(e,(function(e){t.complete(e)})),t;function n(){Z(e,(function(e){e.end()}))}}}}(r.from,r.to,r.classes,r.anchors):g(r)};function p(e){return e.replace(/\bng-\S+\b/g,"")}function m(e,t){return te(e)&&(e=e.split(" ")),te(t)&&(t=t.split(" ")),e.filter((function(e){return-1===t.indexOf(e)})).join(" ")}function g(t){var n=t.element,i=t.options||{};t.structural&&(i.event=t.event,i.structural=!0,i.applyClassesEarly=!0,"leave"===t.event&&(i.onDone=i.domOperation)),i.preparationClasses&&(i.event=P(i.event,i.preparationClasses));var r=e(n,i);return r.$$willAnimate?r:null}}]}],se=["$animateProvider",function(e){this.$get=["$injector","$$AnimateRunner","$$jqLite",function(t,n,i){var r=M(i);return function(e,t,i,a){var s=!1;3===arguments.length&&ee(i)&&(a=i,i=null),a=k(a),i||(i=e.attr("class")||"",a.addClass&&(i+=" "+a.addClass),a.removeClass&&(i+=" "+a.removeClass));var l,u,c,d,h,f=a.addClass,p=a.removeClass,m=o(i);if(m.length&&("leave"===t?(d="leave",c="afterLeave"):(d="before"+t.charAt(0).toUpperCase()+t.substr(1),c=t),"enter"!==t&&"move"!==t&&(l=b(e,t,a,m,d)),u=b(e,t,a,m,c)),l||u)return{$$willAnimate:!0,end:function(){return h?h.end():(v(),(h=new n).complete(!0)),h},start:function(){if(h)return h;var e;h=new n;var t=[];return l&&t.push((function(t){e=l(t)})),t.length?t.push((function(e){g(),e(!0)})):g(),u&&t.push((function(t){e=u(t)})),h.setHost({end:function(){r()},cancel:function(){r(!0)}}),n.chain(t,i),h;function i(e){v(),h.complete(e)}function r(t){s||((e||re)(t),i(t))}}};function g(){a.domOperation(),r(e,a)}function v(){s=!0,g(),x(e,a)}function _(e,t,i,r,o){var a;switch(i){case"animate":a=[t,r.from,r.to,o];break;case"setClass":a=[t,f,p,o];break;case"addClass":a=[t,f,o];break;case"removeClass":a=[t,p,o];break;default:a=[t,o]}a.push(r);var s=e.apply(e,a);if(s)if(Q(s.start)&&(s=s.start()),s instanceof n)s.done(o);else if(Q(s))return s;return re}function y(e,t,i,r,o){var a=[];return Z(r,(function(r){var s=r[o];s&&a.push((function(){var r,o,a=!1,l=function(e){a||(a=!0,(o||re)(e),r.complete(!e))};return r=new n({end:function(){l()},cancel:function(){l(!0)}}),o=_(s,e,t,i,(function(e){l(!1===e)})),r}))})),a}function b(e,t,i,r,o){var a,s,l=y(e,t,i,r,o);if(0===l.length&&("beforeSetClass"===o?(a=y(e,"removeClass",i,r,"beforeRemoveClass"),s=y(e,"addClass",i,r,"beforeAddClass")):"setClass"===o&&(a=y(e,"removeClass",i,r,"removeClass"),s=y(e,"addClass",i,r,"addClass")),a&&(l=l.concat(a)),s&&(l=l.concat(s))),0!==l.length)return function(e){var t=[];return l.length&&Z(l,(function(e){t.push(e())})),t.length?n.all(t,e):e(),function(e){Z(t,(function(t){e?t.cancel():t.end()}))}}}};function o(n){n=J(n)?n:n.split(" ");for(var i=[],r={},o=0;o<n.length;o++){var a=n[o],s=e.$$registeredAnimations[a];s&&!r[a]&&(i.push(t.get(s)),r[a]=!0)}return i}}]}],le=["$$animationProvider",function(e){e.drivers.push("$$animateJsDriver"),this.$get=["$$animateJs","$$AnimateRunner",function(e,t){return function(e){if(e.from&&e.to){var i=n(e.from),r=n(e.to);if(!i&&!r)return;return{start:function(){var e=[];i&&e.push(i.start()),r&&e.push(r.start()),t.all(e,(function(e){n.complete(e)}));var n=new t({end:o(),cancel:o()});return n;function o(){return function(){Z(e,(function(e){e.end()}))}}}}}return n(e)};function n(t){var n=t.element,i=t.event,r=t.options,o=t.classes;return e(n,i,o,r)}}]}],ue="data-ng-animate",ce=["$animateProvider",function(t){var n=" ",i=this.rules={skip:[],cancel:[],join:[]};function r(e,t){if(e&&t){var i=function(e){if(!e)return null;var t=e.split(n),i=Object.create(null);return Z(t,(function(e){i[e]=!0})),i}(t);return e.split(n).some((function(e){return i[e]}))}}function o(e,t,n,r){return i[e].some((function(e){return e(t,n,r)}))}function u(e,t){var n=(e.addClass||"").length>0,i=(e.removeClass||"").length>0;return t?n&&i:n||i}i.join.push((function(e,t,n){return!t.structural&&u(t)})),i.skip.push((function(e,t,n){return!t.structural&&!u(t)})),i.skip.push((function(e,t,n){return"leave"===n.event&&t.structural})),i.skip.push((function(e,t,n){return n.structural&&2===n.state&&!t.structural})),i.cancel.push((function(e,t,n){return n.structural&&t.structural})),i.cancel.push((function(e,t,n){return 2===n.state&&t.structural})),i.cancel.push((function(e,t,n){if(n.structural)return!1;var i=t.addClass,o=t.removeClass,a=n.addClass,s=n.removeClass;return!(ne(i)&&ne(o)||ne(a)&&ne(s))&&(r(i,s)||r(o,a))})),this.$get=["$$rAF","$rootScope","$rootElement","$document","$$HashMap","$$animation","$$AnimateRunner","$templateRequest","$$jqLite","$$forceReflow",function(n,i,r,d,h,f,p,m,g,v){var _=new h,b=new h,S=null,T=i.$watch((function(){return 0===m.totalPendingRequests}),(function(e){e&&(T(),i.$$postDigest((function(){i.$$postDigest((function(){null===S&&(S=!0)}))})))})),C=Object.create(null),E=t.classNameFilter(),A=E?function(e){return E.test(e)}:function(){return!0},Y=M(g);function O(e,t){return $(e,t,{})}var I=e.Node.prototype.contains||function(e){return this===e||!!(16&this.compareDocumentPosition(e))};function j(e,t,n){var i=L(t);return e.filter((function(e){return!(e.node===i&&(!n||e.callback===n))}))}function H(e,t){"close"!==e||t[0].parentNode||B.off(t)}var B={on:function(e,t,n){var i=L(t);C[e]=C[e]||[],C[e].push({node:i,callback:n}),ie(t).on("$destroy",(function(){_.get(i)||B.off(e,t,n)}))},off:function(e,t,n){if(1!==arguments.length||te(arguments[0])){var i=C[e];i&&(C[e]=1===arguments.length?null:j(i,t,n))}else for(var r in t=arguments[0],C)C[r]=j(C[r],t)},pin:function(e,t){y(K(e),"element","not an element"),y(K(t),"parentElement","not an element"),e.data("$ngAnimatePin",t)},push:function(e,t,h,m){return(h=h||{}).domOperation=m,function(e,t,h){var m,g,v=q(h);(e=function(e){if(e instanceof ie)switch(e.length){case 0:return e;case 1:if(e[0].nodeType===a)return e;break;default:return ie(L(e))}if(e.nodeType===a)return ie(e)}(e))&&(m=D(e),g=e.parent()),v=k(v);var y,M=new p,T=(y=!1,function(e){y?e():i.$$postDigest((function(){y=!0,e()}))});if(J(v.addClass)&&(v.addClass=v.addClass.join(" ")),v.addClass&&!te(v.addClass)&&(v.addClass=null),J(v.removeClass)&&(v.removeClass=v.removeClass.join(" ")),v.removeClass&&!te(v.removeClass)&&(v.removeClass=null),v.from&&!ee(v.from)&&(v.from=null),v.to&&!ee(v.to)&&(v.to=null),!m)return re(),M;var E=[m.className,v.addClass,v.removeClass].join(" ");if(!A(E))return re(),M;var j=["enter","move","leave"].indexOf(t)>=0,B=d[0].hidden,z=!S||B||b.get(m),V=!z&&_.get(m)||{},U=!!V.state;if(z||U&&1===V.state||(z=!function(e,t,n){var i,o=ie(d[0].body),s=R(e,o)||"HTML"===e[0].nodeName,l=R(e,r),u=!1,h=b.get(D(e)),f=ie.data(e[0],"$ngAnimatePin");for(f&&(t=f),t=D(t);t&&(l||(l=R(t,r)),t.nodeType===a);){var p=_.get(t)||{};if(!u){var m=b.get(t);if(!0===m&&!1!==h){h=!0;break}!1===m&&(h=!1),u=p.structural}if(ne(i)||!0===i){var g=ie.data(t,c);X(g)&&(i=g)}if(u&&!1===i)break;if(s||(s=R(t,o)),s&&l)break;t=l||!(f=ie.data(t,"$ngAnimatePin"))?t.parentNode:D(f)}return(!u||i)&&!0!==h&&l&&s}(e,g)),z)return B&&Q(M,t,"start"),re(),B&&Q(M,t,"close"),M;j&&function(e){var t=D(e).querySelectorAll("["+ue+"]");Z(t,(function(e){var t=parseInt(e.getAttribute(ue),10),n=_.get(e);if(n)switch(t){case 2:n.runner.end();case 1:_.remove(e)}}))}(e);var W={structural:j,element:e,event:t,addClass:v.addClass,removeClass:v.removeClass,close:re,options:v,runner:M};if(U){if(o("skip",e,W,V))return 2===V.state?(re(),M):($(e,V,W),V.runner);if(o("cancel",e,W,V))if(2===V.state)V.runner.end();else{if(!V.structural)return $(e,V,W),V.runner;V.close()}else if(o("join",e,W,V)){if(2!==V.state)return function(e,t,n){var i="";t&&(i=w(t,"ng-",!0)),n.addClass&&(i=P(i,w(n.addClass,s))),n.removeClass&&(i=P(i,w(n.removeClass,l))),i.length&&(n.preparationClasses=i,e.addClass(i))}(e,j?t:null,v),t=W.event=V.event,v=$(e,V,W),V.runner;O(e,W)}}else O(e,W);var G=W.structural;if(G||(G="animate"===W.event&&Object.keys(W.options.to||{}).length>0||u(W)),!G)return re(),N(e),M;var K=(V.counter||0)+1;return W.counter=K,F(e,1,W),i.$$postDigest((function(){var n=_.get(m),i=!n;n=n||{};var r=(e.parent()||[]).length>0&&("animate"===n.event||n.structural||u(n));if(i||n.counter!==K||!r)return i&&(Y(e,v),x(e,v)),(i||j&&n.event!==t)&&(v.domOperation(),M.end()),void(r||N(e));t=!n.structural&&u(n,!0)?"setClass":n.event,F(e,2);var o=f(e,t,n.options);M.setHost(o),Q(M,t,"start",{}),o.done((function(n){re(!n);var i=_.get(m);i&&i.counter===K&&N(D(e)),Q(M,t,"close",{})}))})),M;function Q(t,i,r,o){T((function(){var t=function(e,t,n){var i=D(t),r=D(e),o=[],a=C[n];return a&&Z(a,(function(e){I.call(e.node,i)?o.push(e.callback):"leave"===n&&I.call(e.node,r)&&o.push(e.callback)})),o}(g,e,i);t.length?n((function(){Z(t,(function(t){t(e,r,o)})),H(r,e)})):H(r,e)})),t.progress(i,r,o)}function re(t){!function(e,t){t.preparationClasses&&(e.removeClass(t.preparationClasses),t.preparationClasses=null),t.activeClasses&&(e.removeClass(t.activeClasses),t.activeClasses=null)}(e,v),Y(e,v),x(e,v),v.domOperation(),M.complete(!t)}}(e,t,h)},enabled:function(e,t){var n=arguments.length;if(0===n)t=!!S;else{var i=K(e);if(i){var r=D(e);1===n?t=!b.get(r):b.put(r,!t)}else t=S=!!e}return t}};return B;function N(e){var t=D(e);t.removeAttribute(ue),_.remove(t)}function R(e,t){return D(e)===D(t)}function F(e,t,n){(n=n||{}).state=t;var i=D(e);i.setAttribute(ue,t);var r=_.get(i),o=r?G(r,n):n;_.put(i,o)}}]}],de=["$animateProvider",function(e){var t=this.drivers=[],n="$$animationRunner";function i(e){return e.data(n)}this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$HashMap","$$rAFScheduler",function(e,r,o,a,s,l){var c=[],d=M(e);return function(h,f,p){p=k(p);var m=["enter","move","leave"].indexOf(f)>=0,g=new a({end:function(){M()},cancel:function(){M(!0)}});if(!t.length)return M(),g;!function(e,t){e.data(n,t)}(h,g);var v,_=b(h.attr("class"),b(p.addClass,p.removeClass)),y=p.tempClasses;return y&&(_+=" "+y,p.tempClasses=null),m&&(v="ng-"+f+"-prepare",e.addClass(h,v)),c.push({element:h,classes:_,event:f,structural:m,options:p,beforeStart:function(){h.addClass(u),y&&e.addClass(h,y),v&&(e.removeClass(h,v),v=null)},close:M}),h.on("$destroy",L),c.length>1?g:(r.$$postDigest((function(){var e=[];Z(c,(function(t){i(t.element)?e.push(t):t.close()})),c.length=0;var n=function(e){var t=[],n={};Z(e,(function(e,i){var r=D(e.element),o=e.event,a=["enter","move"].indexOf(o)>=0,s=e.structural?function(e){var t=e.hasAttribute("ng-animate-ref")?[e]:e.querySelectorAll("[ng-animate-ref]"),n=[];return Z(t,(function(e){var t=e.getAttribute("ng-animate-ref");t&&t.length&&n.push(e)})),n}(r):[];if(s.length){var l=a?"to":"from";Z(s,(function(e){var t=e.getAttribute("ng-animate-ref");n[t]=n[t]||{},n[t][l]={animationID:i,element:ie(e)}}))}else t.push(e)}));var i={},r={};return Z(n,(function(n,o){var a=n.from,s=n.to;if(a&&s){var l=e[a.animationID],u=e[s.animationID],c=a.animationID.toString();if(!r[c]){var d=r[c]={structural:!0,beforeStart:function(){l.beforeStart(),u.beforeStart()},close:function(){l.close(),u.close()},classes:w(l.classes,u.classes),from:l,to:u,anchors:[]};d.classes.length?t.push(d):(t.push(l),t.push(u))}r[c].anchors.push({out:a.element,in:s.element})}else{var h=a?a.animationID:s.animationID,f=h.toString();i[f]||(i[f]=!0,t.push(e[h]))}})),t}(e),r=[];Z(n,(function(e){r.push({domNode:D(e.from?e.from.element:e.element),fn:function(){e.beforeStart();var n,r=e.close;if(i(e.anchors?e.from.element||e.to.element:e.element)){var a=function(e){for(var n=t.length-1;n>=0;n--){var i=t[n],r=o.get(i)(e);if(r)return r}}(e);a&&(n=a.start)}if(n){var s=n();s.done((function(e){r(!e)})),function(e,t){function n(e){var n=i(e);n&&n.setHost(t)}e.from&&e.to?(n(e.from.element),n(e.to.element)):n(e.element)}(e,s)}else r()}})})),l(function(e){var t,n={children:[]},i=new s;for(t=0;t<e.length;t++){var r=e[t];i.put(r.domNode,e[t]={domNode:r.domNode,fn:r.fn,children:[]})}for(t=0;t<e.length;t++)o(e[t]);return function(e){var t,n=[],i=[];for(t=0;t<e.children.length;t++)i.push(e.children[t]);var r=i.length,o=0,a=[];for(t=0;t<i.length;t++){var s=i[t];r<=0&&(r=o,o=0,n.push(a),a=[]),a.push(s.fn),s.children.forEach((function(e){o++,i.push(e)})),r--}return a.length&&n.push(a),n}(n);function o(e){if(e.processed)return e;e.processed=!0;var t,r=e.domNode,a=r.parentNode;for(i.put(r,e);a;){if(t=i.get(a)){t.processed||(t=o(t));break}a=a.parentNode}return(t||n).children.push(e),e}}(r))})),g);function w(e,t){e=e.split(" "),t=t.split(" ");for(var n=[],i=0;i<e.length;i++){var r=e[i];if("ng-"!==r.substring(0,3))for(var o=0;o<t.length;o++)if(r===t[o]){n.push(r);break}}return n.join(" ")}function L(){var e=i(h);!e||"leave"===f&&p.$$domOperationFired||e.end()}function M(t){h.off("$destroy",L),function(e){e.removeData(n)}(h),d(h,p),x(h,p),p.domOperation(),y&&e.removeClass(h,y),h.removeClass(u),g.complete(!t)}}}]}];t.module("ngAnimate",[],(function(){re=t.noop,q=t.copy,G=t.extend,ie=t.element,Z=t.forEach,J=t.isArray,te=t.isString,ee=t.isObject,ne=t.isUndefined,X=t.isDefined,Q=t.isFunction,K=t.isElement})).directive("ngAnimateSwap",["$animate","$rootScope",function(e,t){return{restrict:"A",transclude:"element",terminal:!0,priority:600,link:function(t,n,i,r,o){var a,s;t.$watchCollection(i.ngAnimateSwap||i.for,(function(i){a&&e.leave(a),s&&(s.$destroy(),s=null),(i||0===i)&&(s=t.$new(),o(s,(function(t){a=t,e.enter(t,null,n)})))}))}}}]).directive("ngAnimateChildren",Y).factory("$$rAFScheduler",["$$rAF",function(e){var t,n;function i(e){t=t.concat(e),r()}return t=i.queue=[],i.waitUntilQuiet=function(t){n&&n(),n=e((function(){n=null,t(),r()}))},i;function r(){if(t.length){for(var i=t.shift(),o=0;o<i.length;o++)i[o]();n||e((function(){n||r()}))}}}]).provider("$$animateQueue",ce).provider("$$animation",de).provider("$animateCss",oe).provider("$$animateCssDriver",ae).provider("$$animateJs",se).provider("$$animateJsDriver",le)}(window,window.angular),
-/**
- * @license AngularJS v1.5.11
- * (c) 2010-2017 Google, Inc. http://angularjs.org
- * License: MIT
- */
-function(e,t){"use strict";var n,i,r,o,a,s,l,u,c=t.$$minErr("$sanitize");t.module("ngSanitize",[]).provider("$sanitize",(function(){var d=!1;this.$get=["$$sanitizeUri",function(e){return d&&i(M,w),function(t){var n=[];return l(t,u(n,(function(t,n){return!/^unsafe:/.test(e(t,n))}))),n.join("")}}],this.enableSvg=function(e){return o(e)?(d=e,this):d},n=t.bind,i=t.extend,r=t.forEach,o=t.isDefined,a=t.lowercase,s=t.noop,l=function(t,n){null==t?t="":"string"!=typeof t&&(t=""+t),h.innerHTML=t;var i=5;do{if(0===i)throw c("uinput","Failed to sanitize html because the input is unstable");i--,e.document.documentMode&&E(h),t=h.innerHTML,h.innerHTML=t}while(t!==h.innerHTML);for(var r=h.firstChild;r;){switch(r.nodeType){case 1:n.start(r.nodeName.toLowerCase(),D(r.attributes));break;case 3:n.chars(r.textContent)}var o;if(!((o=r.firstChild)||(1===r.nodeType&&n.end(r.nodeName.toLowerCase()),o=r.nextSibling)))for(;null==o&&(r=r.parentNode)!==h;)o=r.nextSibling,1===r.nodeType&&n.end(r.nodeName.toLowerCase());r=o}for(;r=h.firstChild;)h.removeChild(r)},u=function(e,t){var i=!1,o=n(e,e.push);return{start:function(e,n){e=a(e),!i&&L[e]&&(i=e),i||!0!==M[e]||(o("<"),o(e),r(n,(function(n,i){var r=a(i),s="img"===e&&"src"===r||"background"===r;!0!==T[r]||!0===k[r]&&!t(n,s)||(o(" "),o(i),o('="'),o(C(n)),o('"'))})),o(">"))},end:function(e){e=a(e),i||!0!==M[e]||!0===m[e]||(o("</"),o(e),o(">")),e==i&&(i=!1)},chars:function(e){i||o(C(e))}}};var h,f=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,p=/([^#-~ |!])/g,m=$("area,br,col,hr,img,wbr"),g=$("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),v=$("rp,rt"),_=i({},v,g),y=i({},g,$("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul")),b=i({},v,$("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),w=$("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan"),L=$("script,style"),M=i({},m,y,b,_),k=$("background,cite,href,longdesc,src,xlink:href"),x=$("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"),S=$("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan",!0),T=i({},k,S,x);function $(e,t){var n,i={},r=e.split(",");for(n=0;n<r.length;n++)i[t?a(r[n]):r[n]]=!0;return i}function D(e){for(var t={},n=0,i=e.length;n<i;n++){var r=e[n];t[r.name]=r.value}return t}function C(e){return e.replace(/&/g,"&amp;").replace(f,(function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";"})).replace(p,(function(e){return"&#"+e.charCodeAt(0)+";"})).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function E(t){for(;t;){if(t.nodeType===e.Node.ELEMENT_NODE)for(var n=t.attributes,i=0,r=n.length;i<r;i++){var o=n[i],a=o.name.toLowerCase();"xmlns:ns1"!==a&&0!==a.lastIndexOf("ns1:",0)||(t.removeAttributeNode(o),i--,r--)}var s=t.firstChild;s&&E(s),t=t.nextSibling}}!function(e){var t;if(!e.document||!e.document.implementation)throw c("noinert","Can't create an inert html document");var n=((t=e.document.implementation.createHTMLDocument("inert")).documentElement||t.getDocumentElement()).getElementsByTagName("body");if(1===n.length)h=n[0];else{var i=t.createElement("html");h=t.createElement("body"),i.appendChild(h),t.appendChild(i)}}(e)})),t.module("ngSanitize").filter("linky",["$sanitize",function(e){var n=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i,i=/^mailto:/i,r=t.$$minErr("linky"),o=t.isDefined,a=t.isFunction,l=t.isObject,c=t.isString;return function(t,d,h){if(null==t||""===t)return t;if(!c(t))throw r("notstring","Expected string but received: {0}",t);for(var f,p,m,g=a(h)?h:l(h)?function(){return h}:function(){return{}},v=t,_=[];f=v.match(n);)p=f[0],f[2]||f[4]||(p=(f[3]?"http://":"mailto:")+p),m=f.index,y(v.substr(0,m)),b(p,f[0].replace(i,"")),v=v.substring(m+f[0].length);return y(v),e(_.join(""));function y(e){var t,n;e&&_.push((t=e,u(n=[],s).chars(t),n.join("")))}function b(e,t){var n,i=g(e);for(n in _.push("<a "),i)_.push(n+'="'+i[n]+'" ');!o(d)||"target"in i||_.push('target="',d,'" '),_.push('href="',e.replace(/"/g,"&quot;"),'">'),y(t),_.push("</a>")}}}])}(window,window.angular),
-/**
- * State-based routing for AngularJS
- * @version v0.2.18
- * @link http://angular-ui.github.com/
- * @license MIT License, http://www.opensource.org/licenses/MIT
- */
-"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ui.router"),function(e,t,n){"use strict";var i,r=t.isDefined,o=t.isFunction,a=t.isString,s=t.isObject,l=t.isArray,u=t.forEach,c=t.extend,d=t.copy,h=t.toJson;function f(e,t){return c(new(c((function(){}),{prototype:e})),t)}function p(e){return u(arguments,(function(t){t!==e&&u(t,(function(t,n){e.hasOwnProperty(n)||(e[n]=t)}))})),e}function m(e){if(Object.keys)return Object.keys(e);var t=[];return u(e,(function(e,n){t.push(n)})),t}function g(e,t){if(Array.prototype.indexOf)return e.indexOf(t,Number(arguments[2])||0);var n=e.length>>>0,i=Number(arguments[2])||0;for((i=i<0?Math.ceil(i):Math.floor(i))<0&&(i+=n);i<n;i++)if(i in e&&e[i]===t)return i;return-1}function v(e,t,n,i){var r,o=function(e,t){var n=[];for(var i in e.path){if(e.path[i]!==t.path[i])break;n.push(e.path[i])}return n}(n,i),a={},s=[];for(var l in o)if(o[l]&&o[l].params&&(r=m(o[l].params)).length)for(var u in r)g(s,r[u])>=0||(s.push(r[u]),a[r[u]]=e[r[u]]);return c({},a,t)}function _(e,t,n){if(!n)for(var i in n=[],e)n.push(i);for(var r=0;r<n.length;r++){var o=n[r];if(e[o]!=t[o])return!1}return!0}function y(e,t){var n={};return u(e,(function(e){n[e]=t[e]})),n}function b(e){var t={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));return u(n,(function(n){n in e&&(t[n]=e[n])})),t}function w(e){var t={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));for(var i in e)-1==g(n,i)&&(t[i]=e[i]);return t}function L(e,t){var n=l(e),i=n?[]:{};return u(e,(function(e,r){t(e,r)&&(i[n?i.length:r]=e)})),i}function M(e,t){var n=l(e)?[]:{};return u(e,(function(e,i){n[i]=t(e,i)})),n}function k(e,t){var i={},o=[],l=i,d=c(e.when(i),{$$promises:i,$$values:i});this.study=function(i){if(!s(i))throw new Error("'invocables' must be an object");var h=m(i||{}),f=[],v=[],_={};function y(e){return s(e)&&e.then&&e.$$promises}return u(i,(function e(n,r){if(2!==_[r]){if(v.push(r),1===_[r])throw v.splice(0,g(v,r)),new Error("Cyclic dependency: "+v.join(" -> "));if(_[r]=1,a(n))f.push(r,[function(){return t.get(n)}],o);else{var s=t.annotate(n);u(s,(function(t){t!==r&&i.hasOwnProperty(t)&&e(i[t],t)})),f.push(r,n,s)}v.pop(),_[r]=2}})),i=v=_=null,function(i,o,a){if(y(i)&&a===n&&(a=o,o=i,i=null),i){if(!s(i))throw new Error("'locals' must be an object")}else i=l;if(o){if(!y(o))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else o=d;var m=e.defer(),g=m.promise,v=g.$$promises={},_=c({},i),b=1+f.length/3,L=!1;function M(){--b||(L||p(_,o.$$values),g.$$values=_,g.$$promises=g.$$promises||!0,delete g.$$inheritedValues,m.resolve(_))}function k(e){g.$$failure=e,m.reject(e)}if(r(o.$$failure))return k(o.$$failure),g;o.$$inheritedValues&&p(_,w(o.$$inheritedValues,h)),c(v,o.$$promises),o.$$values?(L=p(_,w(o.$$values,h)),g.$$inheritedValues=w(o.$$values,h),M()):(o.$$inheritedValues&&(g.$$inheritedValues=w(o.$$inheritedValues,h)),o.then(M,k));for(var x=0,S=f.length;x<S;x+=3)i.hasOwnProperty(f[x])?M():T(f[x],f[x+1],f[x+2]);function T(n,o,s){var l=e.defer(),c=0;function d(e){l.reject(e),k(e)}function h(){if(!r(g.$$failure))try{l.resolve(t.invoke(o,a,_)),l.promise.then((function(e){_[n]=e,M()}),d)}catch(e){d(e)}}u(s,(function(e){v.hasOwnProperty(e)&&!i.hasOwnProperty(e)&&(c++,v[e].then((function(t){_[e]=t,--c||h()}),d))})),c||h(),v[n]=l.promise}return g}},this.resolve=function(e,t,n,i){return this.study(e)(t,n,i)}}function x(e,t,n){this.fromConfig=function(e,t,n){return r(e.template)?this.fromString(e.template,t):r(e.templateUrl)?this.fromUrl(e.templateUrl,t):r(e.templateProvider)?this.fromProvider(e.templateProvider,t,n):null},this.fromString=function(e,t){return o(e)?e(t):e},this.fromUrl=function(n,i){return o(n)&&(n=n(i)),null==n?null:e.get(n,{cache:t,headers:{Accept:"text/html"}}).then((function(e){return e.data}))},this.fromProvider=function(e,t,i){return n.invoke(e,null,i||{params:t})}}function S(e,t,r){t=c({params:{}},s(t)?t:{});var o,a,l,u,d=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,h=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,p="^",m=0,g=this.segments=[],v=r?r.params:{},_=this.params=r?r.params.$$new():new i.ParamSet,y=[];function b(t,n,r,o){if(y.push(t),v[t])return v[t];if(!/^\w+([-.]+\w+)*(?:\[\])?$/.test(t))throw new Error("Invalid parameter name '"+t+"' in pattern '"+e+"'");if(_[t])throw new Error("Duplicate parameter name '"+t+"' in pattern '"+e+"'");return _[t]=new i.Param(t,n,r,o),_[t]}function w(e,t,n,i){var r=["",""],o=e.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!t)return o;switch(n){case!1:r=["(",")"+(i?"?":"")];break;case!0:o=o.replace(/\/$/,""),r=["(?:/(",")|/)?"];break;default:r=["("+n+"|",")?"]}return o+r[0]+t+r[1]}function L(r,o){var a,s,l,u,c;return a=r[2]||r[3],c=t.params[a],l=e.substring(m,r.index),(s=o?r[4]:r[4]||("*"==r[1]?".*":null))&&(u=i.type(s)||f(i.type("string"),{pattern:new RegExp(s,t.caseInsensitive?"i":n)})),{id:a,regexp:s,segment:l,type:u,cfg:c}}for(this.source=e;(o=d.exec(e))&&!((a=L(o,!1)).segment.indexOf("?")>=0);)l=b(a.id,a.type,a.cfg,"path"),p+=w(a.segment,l.type.pattern.source,l.squash,l.isOptional),g.push(a.segment),m=d.lastIndex;var M=(u=e.substring(m)).indexOf("?");if(M>=0){var k=this.sourceSearch=u.substring(M);if(u=u.substring(0,M),this.sourcePath=e.substring(0,m+M),k.length>0)for(m=0;o=h.exec(k);)l=b((a=L(o,!0)).id,a.type,a.cfg,"search"),m=d.lastIndex}else this.sourcePath=e,this.sourceSearch="";p+=w(u)+(!1===t.strict?"/?":"")+"$",g.push(u),this.regexp=new RegExp(p,t.caseInsensitive?"i":n),this.prefix=g[0],this.$$paramNames=y}function T(e){c(this,e)}function $(e,i){var s,u=[],d=null,h=!1;function f(e,t,n){if(!n)return!1;var i=e.invoke(t,t,{$match:n});return!r(i)||i}function p(i,r,o,l,c){var f,p=l.baseHref(),m=i.url();function g(e){if(!e||!e.defaultPrevented){f&&i.url(),f=n;var t,r=u.length;for(t=0;t<r;t++)if(s(u[t]))return;d&&s(d)}function s(e){var t=e(o,i);return!!t&&(a(t)&&i.replace().url(t),!0)}}function v(){return s=s||r.$on("$locationChangeSuccess",g)}return h||v(),{sync:function(){g()},listen:function(){return v()},update:function(e){e?m=i.url():i.url()!==m&&(i.url(m),i.replace())},push:function(e,t,r){var o=e.format(t||{});null!==o&&t&&t["#"]&&(o+="#"+t["#"]),i.url(o),f=r&&r.$$avoidResync?i.url():n,r&&r.replace&&i.replace()},href:function(n,r,o){if(!n.validates(r))return null;var a=e.html5Mode();t.isObject(a)&&(a=a.enabled),a=a&&c.history;var s=n.format(r);if(o=o||{},a||null===s||(s="#"+e.hashPrefix()+s),null!==s&&r&&r["#"]&&(s+="#"+r["#"]),s=function(e,t,n){return"/"===p?e:t?p.slice(0,-1)+e:n?p.slice(1)+e:e}(s,a,o.absolute),!o.absolute||!s)return s;var l=!a&&s?"/":"",u=i.port();return u=80===u||443===u?"":":"+u,[i.protocol(),"://",i.host(),u,l,s].join("")}}}this.rule=function(e){if(!o(e))throw new Error("'rule' must be a function");return u.push(e),this},this.otherwise=function(e){if(a(e)){var t=e;e=function(){return t}}else if(!o(e))throw new Error("'rule' must be a function");return d=e,this},this.when=function(e,t){var n,r=a(t);if(a(e)&&(e=i.compile(e)),!r&&!o(t)&&!l(t))throw new Error("invalid 'handler' in when()");var s={matcher:function(e,t){return r&&(n=i.compile(t),t=["$match",function(e){return n.format(e)}]),c((function(n,i){return f(n,t,e.exec(i.path(),i.search()))}),{prefix:a(e.prefix)?e.prefix:""})},regex:function(e,t){if(e.global||e.sticky)throw new Error("when() RegExp must not be global or sticky");return r&&(n=t,t=["$match",function(e){return t=e,n.replace(/\$(\$|\d{1,2})/,(function(e,n){return t["$"===n?0:Number(n)]}));var t}]),c((function(n,i){return f(n,t,e.exec(i.path()))}),{prefix:(i=e,o=/^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(i.source),null!=o?o[1].replace(/\\(.)/g,"$1"):"")});var i,o}},u={matcher:i.isMatcher(e),regex:e instanceof RegExp};for(var d in u)if(u[d])return this.rule(s[d](e,t));throw new Error("invalid 'what' in when()")},this.deferIntercept=function(e){e===n&&(e=!0),h=e},this.$get=p,p.$inject=["$location","$rootScope","$injector","$browser","$sniffer"]}function D(e,h){var p,w,L={},k={},x="abstract",S={parent:function(e){if(r(e.parent)&&e.parent)return T(e.parent);var t=/^(.+)\.[^.]+$/.exec(e.name);return t?T(t[1]):p},data:function(e){return e.parent&&e.parent.data&&(e.data=e.self.data=f(e.parent.data,e.data)),e.data},url:function(e){var t=e.url,n={params:e.params||{}};if(a(t))return"^"==t.charAt(0)?h.compile(t.substring(1),n):(e.parent.navigable||p).url.concat(t,n);if(!t||h.isMatcher(t))return t;throw new Error("Invalid url '"+t+"' in state '"+e+"'")},navigable:function(e){return e.url?e:e.parent?e.parent.navigable:null},ownParams:function(e){var t=e.url&&e.url.params||new i.ParamSet;return u(e.params||{},(function(e,n){t[n]||(t[n]=new i.Param(n,null,e,"config"))})),t},params:function(e){var t=b(e.ownParams,e.ownParams.$$keys());return e.parent&&e.parent.params?c(e.parent.params.$$new(),t):new i.ParamSet},views:function(e){var t={};return u(r(e.views)?e.views:{"":e},(function(n,i){i.indexOf("@")<0&&(i+="@"+e.parent.name),t[i]=n})),t},path:function(e){return e.parent?e.parent.path.concat(e):[]},includes:function(e){var t=e.parent?c({},e.parent.includes):{};return t[e.name]=!0,t},$delegates:{}};function T(e,t){if(!e)return n;var i,r=a(e),o=r?e:e.name;if(0===(i=o).indexOf(".")||0===i.indexOf("^")){if(!t)throw new Error("No reference point given for path '"+o+"'");t=T(t);for(var s=o.split("."),l=0,u=s.length,c=t;l<u;l++)if(""!==s[l]||0!==l){if("^"!==s[l])break;if(!c.parent)throw new Error("Path '"+o+"' not valid for state '"+t.name+"'");c=c.parent}else c=t;s=s.slice(l).join("."),o=c.name+(c.name&&s?".":"")+s}var d=L[o];return!d||!r&&(r||d!==e&&d.self!==e)?n:d}function $(t){var n=(t=f(t,{self:t,resolve:t.resolve||{},toString:function(){return this.name}})).name;if(!a(n)||n.indexOf("@")>=0)throw new Error("State must have a valid name");if(L.hasOwnProperty(n))throw new Error("State '"+n+"' is already defined");var i=-1!==n.indexOf(".")?n.substring(0,n.lastIndexOf(".")):a(t.parent)?t.parent:s(t.parent)&&a(t.parent.name)?t.parent.name:"";if(i&&!L[i])return function(e,t){k[e]||(k[e]=[]),k[e].push(t)}(i,t.self);for(var r in S)o(S[r])&&(t[r]=S[r](t,S.$delegates[r]));return L[n]=t,!t[x]&&t.url&&e.when(t.url,["$match","$stateParams",function(e,n){w.$current.navigable==t&&_(e,n)||w.transitionTo(t,e,{inherit:!0,location:!1})}]),function(e){for(var t=k[e]||[];t.length;)$(t.shift())}(n),t}function D(e,h,k,S,$,D,C,E,A){var P=h.reject(new Error("transition superseded")),Y=h.reject(new Error("transition prevented")),O=h.reject(new Error("transition aborted")),I=h.reject(new Error("transition failed"));function j(e,n,i,r,a,s){var c=i?n:y(e.params.$$keys(),n),d={$stateParams:c};a.resolve=$.resolve(e.resolve,d,a.resolve,e);var f=[a.resolve.then((function(e){a.globals=e}))];return r&&f.push(r),h.all(f).then((function(){var n=[];return u(e.views,(function(i,r){var u=i.resolve&&i.resolve!==e.resolve?i.resolve:{};u.$template=[function(){return k.load(r,{view:i,locals:a.globals,params:c,notify:s.notify})||""}],n.push($.resolve(u,a.globals,a.resolve,e).then((function(n){if(o(i.controllerProvider)||l(i.controllerProvider)){var s=t.extend({},u,a.globals);n.$$controller=S.invoke(i.controllerProvider,null,s)}else n.$$controller=i.controller;n.$$state=e,n.$$controllerAs=i.controllerAs,a[r]=n})))})),h.all(n).then((function(){return a.globals}))})).then((function(e){return a}))}return p.locals={resolve:null,globals:{$stateParams:{}}},(w={params:{},current:p.self,$current:p,transition:null}).reload=function(e){return w.transitionTo(w.current,D,{reload:e||!0,inherit:!1,notify:!0})},w.go=function(e,t,n){return w.transitionTo(e,t,c({inherit:!0,relative:w.$current},n))},w.transitionTo=function(t,n,o){n=n||{},o=c({location:!0,inherit:!1,relative:null,notify:!0,reload:!1,$retry:!1},o||{});var l=w.$current,u=w.params,m=l.path,g=T(t,o.relative),_=n["#"];if(!r(g)){var L={to:t,toParams:n,options:o},M=function(t,n,i,r){var o=e.$broadcast("$stateNotFound",t,n,i);if(o.defaultPrevented)return C.update(),O;if(!o.retry)return null;if(r.$retry)return C.update(),I;var a=w.transition=h.when(o.retry);return a.then((function(){return a!==w.transition?P:(t.options.$retry=!0,w.transitionTo(t.to,t.toParams,t.options))}),(function(){return O})),C.update(),a}(L,l.self,u,o);if(M)return M;if(n=L.toParams,g=T(t=L.to,(o=L.options).relative),!r(g)){if(!o.relative)throw new Error("No such state '"+t+"'");throw new Error("Could not resolve '"+t+"' from state '"+o.relative+"'")}}if(g[x])throw new Error("Cannot transition to abstract state '"+t+"'");if(o.inherit&&(n=v(D,n||{},w.$current,g)),!g.params.$$validates(n))return I;n=g.params.$$values(n);var k=(t=g).path,$=0,E=k[$],A=p.locals,H=[];if(o.reload){if(a(o.reload)||s(o.reload)){if(s(o.reload)&&!o.reload.name)throw new Error("Invalid reload state object");var B=!0===o.reload?m[0]:T(o.reload);if(o.reload&&!B)throw new Error("No such reload state '"+(a(o.reload)?o.reload:o.reload.name)+"'");for(;E&&E===m[$]&&E!==B;)A=H[$]=E.locals,$++,E=k[$]}}else for(;E&&E===m[$]&&E.ownParams.$$equals(n,u);)A=H[$]=E.locals,$++,E=k[$];if(function(e,t,n,r,o,a){if(!a.reload&&e===n&&(o===n.locals||!1===e.self.reloadOnSearch&&function(e,t,n){var r=e.params.$$keys().filter((function(t){return"search"!=e.params[t].location})),o=b.apply({},[e.params].concat(r));return new i.ParamSet(o).$$equals(t,n)}(n,r,t)))return!0}(t,n,l,u,A,o))return _&&(n["#"]=_),w.params=n,d(w.params,D),d(y(t.params.$$keys(),D),t.locals.globals.$stateParams),o.location&&t.navigable&&t.navigable.url&&(C.push(t.navigable.url,n,{$$avoidResync:!0,replace:"replace"===o.location}),C.update(!0)),w.transition=null,h.when(w.current);if(n=y(t.params.$$keys(),n||{}),_&&(n["#"]=_),o.notify&&e.$broadcast("$stateChangeStart",t.self,n,l.self,u,o).defaultPrevented)return e.$broadcast("$stateChangeCancel",t.self,n,l.self,u),null==w.transition&&C.update(),Y;for(var N=h.when(A),R=$;R<k.length;R++,E=k[R])A=H[R]=f(A),N=j(E,n,E===t,N,A,o);var F=w.transition=N.then((function(){var i,r,a;if(w.transition!==F)return P;for(i=m.length-1;i>=$;i--)(a=m[i]).self.onExit&&S.invoke(a.self.onExit,a.self,a.locals.globals),a.locals=null;for(i=$;i<k.length;i++)(r=k[i]).locals=H[i],r.self.onEnter&&S.invoke(r.self.onEnter,r.self,r.locals.globals);return w.transition!==F?P:(w.$current=t,w.current=t.self,w.params=n,d(w.params,D),w.transition=null,o.location&&t.navigable&&C.push(t.navigable.url,t.navigable.locals.globals.$stateParams,{$$avoidResync:!0,replace:"replace"===o.location}),o.notify&&e.$broadcast("$stateChangeSuccess",t.self,n,l.self,u),C.update(!0),w.current)}),(function(i){return w.transition!==F?P:(w.transition=null,e.$broadcast("$stateChangeError",t.self,n,l.self,u,i).defaultPrevented||C.update(),h.reject(i))}));return F},w.is=function(e,t,i){var o=T(e,(i=c({relative:w.$current},i||{})).relative);return r(o)?w.$current===o&&(!t||_(o.params.$$values(t),D)):n},w.includes=function(e,t,i){if(i=c({relative:w.$current},i||{}),a(e)&&e.indexOf("*")>-1){if(!function(e){for(var t=e.split("."),n=w.$current.name.split("."),i=0,r=t.length;i<r;i++)"*"===t[i]&&(n[i]="*");return"**"===t[0]&&(n=n.slice(g(n,t[1]))).unshift("**"),"**"===t[t.length-1]&&(n.splice(g(n,t[t.length-2])+1,Number.MAX_VALUE),n.push("**")),t.length==n.length&&n.join("")===t.join("")}(e))return!1;e=w.$current.name}var o=T(e,i.relative);return r(o)?!!r(w.$current.includes[o.name])&&(!t||_(o.params.$$values(t),D,m(t))):n},w.href=function(e,t,i){var o=T(e,(i=c({lossy:!0,inherit:!0,absolute:!1,relative:w.$current},i||{})).relative);if(!r(o))return null;i.inherit&&(t=v(D,t||{},w.$current,o));var a=o&&i.lossy?o.navigable:o;return a&&a.url!==n&&null!==a.url?C.href(a.url,y(o.params.$$keys().concat("#"),t||{}),{absolute:i.absolute}):null},w.get=function(e,t){if(0===arguments.length)return M(m(L),(function(e){return L[e].self}));var n=T(e,t||w.$current);return n&&n.self?n.self:null},w}(p=$({name:"",url:"^",views:null,abstract:!0})).navigable=null,this.decorator=function(e,t){return a(e)&&!r(t)?S[e]:o(t)&&a(e)?(S[e]&&!S.$delegates[e]&&(S.$delegates[e]=S[e]),S[e]=t,this):this},this.state=function(e,t){return s(e)?t=e:t.name=e,$(t),this},this.$get=D,D.$inject=["$rootScope","$q","$view","$injector","$resolve","$stateParams","$urlRouter","$location","$urlMatcherFactory"]}function C(){function e(e,t){return{load:function(e,n){var i;return(n=c({template:null,controller:null,view:null,locals:null,notify:!0,async:!0,params:{}},n)).view&&(i=t.fromConfig(n.view,n.params,n.locals)),i}}}this.$get=e,e.$inject=["$rootScope","$templateFactory"]}t.module("ui.router.util",["ng"]),t.module("ui.router.router",["ui.router.util"]),t.module("ui.router.state",["ui.router.router","ui.router.util"]),t.module("ui.router",["ui.router.state"]),t.module("ui.router.compat",["ui.router"]),k.$inject=["$q","$injector"],t.module("ui.router.util").service("$resolve",k),x.$inject=["$http","$templateCache","$injector"],t.module("ui.router.util").service("$templateFactory",x),S.prototype.concat=function(e,t){var n={caseInsensitive:i.caseInsensitive(),strict:i.strictMode(),squash:i.defaultSquashPolicy()};return new S(this.sourcePath+e+this.sourceSearch,c(n,t),this)},S.prototype.toString=function(){return this.source},S.prototype.exec=function(e,t){var n=this.regexp.exec(e);if(!n)return null;t=t||{};var i,o,a,s,l,u=this.parameters(),c=u.length,d=this.segments.length-1,h={};if(d!==n.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");function f(e){function t(e){return e.split("").reverse().join("")}var n=M(t(e).split(/-(?!\\)/),t);return M(n,(function(e){return e.replace(/\\-/g,"-")})).reverse()}for(i=0;i<d;i++){for(a=u[i],s=this.params[a],l=n[i+1],o=0;o<s.replace.length;o++)s.replace[o].from===l&&(l=s.replace[o].to);l&&!0===s.array&&(l=f(l)),r(l)&&(l=s.type.decode(l)),h[a]=s.value(l)}for(;i<c;i++){for(h[a=u[i]]=this.params[a].value(t[a]),s=this.params[a],l=t[a],o=0;o<s.replace.length;o++)s.replace[o].from===l&&(l=s.replace[o].to);r(l)&&(l=s.type.decode(l)),h[a]=s.value(l)}return h},S.prototype.parameters=function(e){return r(e)?this.params[e]||null:this.$$paramNames},S.prototype.validates=function(e){return this.params.$$validates(e)},S.prototype.format=function(e){e=e||{};var t=this.segments,n=this.parameters(),i=this.params;if(!this.validates(e))return null;var r,o=!1,s=t.length-1,u=n.length,c=t[0];function d(e){return encodeURIComponent(e).replace(/-/g,(function(e){return"%5C%"+e.charCodeAt(0).toString(16).toUpperCase()}))}for(r=0;r<u;r++){var h=r<s,f=n[r],p=i[f],m=p.value(e[f]),g=p.isOptional&&p.type.equals(p.value(),m),v=!!g&&p.squash,_=p.type.encode(m);if(h){var y=t[r+1],b=r+1===s;if(!1===v)null!=_&&(l(_)?c+=M(_,d).join("-"):c+=encodeURIComponent(_)),c+=y;else if(!0===v){var w=c.match(/\/$/)?/\/?(.*)/:/(.*)/;c+=y.match(w)[1]}else a(v)&&(c+=v+y);b&&!0===p.squash&&"/"===c.slice(-1)&&(c=c.slice(0,-1))}else{if(null==_||g&&!1!==v)continue;if(l(_)||(_=[_]),0===_.length)continue;c+=(o?"&":"?")+f+"="+(_=M(_,encodeURIComponent).join("&"+f+"=")),o=!0}}return c},T.prototype.is=function(e,t){return!0},T.prototype.encode=function(e,t){return e},T.prototype.decode=function(e,t){return e},T.prototype.equals=function(e,t){return e==t},T.prototype.$subPattern=function(){var e=this.pattern.toString();return e.substr(1,e.length-2)},T.prototype.pattern=/.*/,T.prototype.toString=function(){return"{Type:"+this.name+"}"},T.prototype.$normalize=function(e){return this.is(e)?e:this.decode(e)},T.prototype.$asArray=function(e,t){if(!e)return this;if("auto"===e&&!t)throw new Error("'auto' array mode is for query parameters only");return new function(e,t){function i(e,t){return function(){return e[t].apply(e,arguments)}}function o(e){return l(e)?e:r(e)?[e]:[]}function a(e){return!e}function s(e,i){return function(r){if(l(r)&&0===r.length)return r;var s=M(r=o(r),e);return!0===i?0===L(s,a).length:function(e){switch(e.length){case 0:return n;case 1:return"auto"===t?e[0]:e;default:return e}}(s)}}var u;this.encode=s(i(e,"encode")),this.decode=s(i(e,"decode")),this.is=s(i(e,"is"),!0),this.equals=(u=i(e,"equals"),function(e,t){var n=o(e),i=o(t);if(n.length!==i.length)return!1;for(var r=0;r<n.length;r++)if(!u(n[r],i[r]))return!1;return!0}),this.pattern=e.pattern,this.$normalize=s(i(e,"$normalize")),this.name=e.name,this.$arrayMode=t}(this,e)},t.module("ui.router.util").provider("$urlMatcherFactory",(function e(){i=this;var d=!1,h=!0,p=!1;function v(e){return null!=e?e.toString().replace(/~/g,"~~").replace(/\//g,"~2F"):e}var _,y={},b=!0,w=[],k={string:{encode:v,decode:function(e){return null!=e?e.toString().replace(/~2F/g,"/").replace(/~~/g,"~"):e},is:function(e){return null==e||!r(e)||"string"==typeof e},pattern:/[^/]*/},int:{encode:v,decode:function(e){return parseInt(e,10)},is:function(e){return r(e)&&this.decode(e.toString())===e},pattern:/\d+/},bool:{encode:function(e){return e?1:0},decode:function(e){return 0!==parseInt(e,10)},is:function(e){return!0===e||!1===e},pattern:/0|1/},date:{encode:function(e){return this.is(e)?[e.getFullYear(),("0"+(e.getMonth()+1)).slice(-2),("0"+e.getDate()).slice(-2)].join("-"):n},decode:function(e){if(this.is(e))return e;var t=this.capture.exec(e);return t?new Date(t[1],t[2]-1,t[3]):n},is:function(e){return e instanceof Date&&!isNaN(e.valueOf())},equals:function(e,t){return this.is(e)&&this.is(t)&&e.toISOString()===t.toISOString()},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:t.toJson,decode:t.fromJson,is:t.isObject,equals:t.equals,pattern:/[^/]*/},any:{encode:t.identity,decode:t.identity,equals:t.equals,pattern:/.*/}};function x(e){return o(e)||l(e)&&o(e[e.length-1])}function $(){for(;w.length;){var e=w.shift();if(e.pattern)throw new Error("You cannot override a type's .pattern at runtime.");t.extend(y[e.name],_.invoke(e.def))}}function D(e){c(this,e||{})}e.$$getDefaultValue=function(e){if(!x(e.value))return e.value;if(!_)throw new Error("Injectable functions cannot be called at configuration time");return _.invoke(e.value)},this.caseInsensitive=function(e){return r(e)&&(d=e),d},this.strictMode=function(e){return r(e)&&(h=e),h},this.defaultSquashPolicy=function(e){if(!r(e))return p;if(!0!==e&&!1!==e&&!a(e))throw new Error("Invalid squash policy: "+e+". Valid policies: false, true, arbitrary-string");return p=e,e},this.compile=function(e,t){return new S(e,c({strict:h,caseInsensitive:d},t))},this.isMatcher=function(e){if(!s(e))return!1;var t=!0;return u(S.prototype,(function(n,i){o(n)&&(t=t&&r(e[i])&&o(e[i]))})),t},this.type=function(e,t,n){if(!r(t))return y[e];if(y.hasOwnProperty(e))throw new Error("A type named '"+e+"' has already been defined.");return y[e]=new T(c({name:e},t)),n&&(w.push({name:e,def:n}),b||$()),this},u(k,(function(e,t){y[t]=new T(c({name:t},e))})),y=f(y,{}),this.$get=["$injector",function(e){return _=e,b=!1,$(),u(k,(function(e,t){y[t]||(y[t]=new T(e))})),this}],this.Param=function(e,i,o,u){var d=this;o=function(e){var t=s(e)?m(e):[];return-1===g(t,"value")&&-1===g(t,"type")&&-1===g(t,"squash")&&-1===g(t,"array")&&(e={value:e}),e.$$fn=x(e.value)?e.value:function(){return e.value},e}(o),i=function(n,i,r){if(n.type&&i)throw new Error("Param '"+e+"' has two type configurations.");return i||(n.type?t.isString(n.type)?y[n.type]:n.type instanceof T?n.type:new T(n.type):"config"===r?y.any:y.string)}(o,i,u);var h,f,v=(h={array:"search"===u&&"auto"},f=e.match(/\[\]$/)?{array:!0}:{},c(h,f,o).array);"string"!==(i=v?i.$asArray(v,"search"===u):i).name||v||"path"!==u||o.value!==n||(o.value="");var b=o.value!==n,w=function(e,t){var n=e.squash;if(!t||!1===n)return!1;if(!r(n)||null==n)return p;if(!0===n||a(n))return n;throw new Error("Invalid squash policy: '"+n+"'. Valid policies: false, true, or arbitrary string")}(o,b),k=function(e,t,i,r){var o,s,u=[{from:"",to:i||t?n:""},{from:null,to:i||t?n:""}];return o=l(e.replace)?e.replace:[],a(r)&&o.push({from:r,to:n}),s=M(o,(function(e){return e.from})),L(u,(function(e){return-1===g(s,e.from)})).concat(o)}(o,v,b,w);c(this,{id:e,type:i,location:u,array:v,squash:w,replace:k,isOptional:b,value:function(e){return e=function(e){var t,n=M(L(d.replace,(t=e,function(e){return e.from===t})),(function(e){return e.to}));return n.length?n[0]:e}(e),r(e)?d.type.$normalize(e):function(){if(!_)throw new Error("Injectable functions cannot be called at configuration time");var e=_.invoke(o.$$fn);if(null!==e&&e!==n&&!d.type.is(e))throw new Error("Default value ("+e+") for parameter '"+d.id+"' is not an instance of Type ("+d.type.name+")");return e}()},dynamic:n,config:o,toString:function(){return"{Param:"+e+" "+i+" squash: '"+w+"' optional: "+b+"}"}})},D.prototype={$$new:function(){return f(this,c(new D,{$$parent:this}))},$$keys:function(){for(var e=[],t=[],n=this,i=m(D.prototype);n;)t.push(n),n=n.$$parent;return t.reverse(),u(t,(function(t){u(m(t),(function(t){-1===g(e,t)&&-1===g(i,t)&&e.push(t)}))})),e},$$values:function(e){var t={},n=this;return u(n.$$keys(),(function(i){t[i]=n[i].value(e&&e[i])})),t},$$equals:function(e,t){var n=!0,i=this;return u(i.$$keys(),(function(r){var o=e&&e[r],a=t&&t[r];i[r].type.equals(o,a)||(n=!1)})),n},$$validates:function(e){var i,r,o,a,s,l=this.$$keys();for(i=0;i<l.length&&(r=this[l[i]],(o=e[l[i]])!==n&&null!==o||!r.isOptional);i++){if(a=r.type.$normalize(o),!r.type.is(a))return!1;if(s=r.type.encode(a),t.isString(s)&&!r.type.pattern.exec(s))return!1}return!0},$$parent:n},this.ParamSet=D})),t.module("ui.router.util").run(["$urlMatcherFactory",function(e){}]),$.$inject=["$locationProvider","$urlMatcherFactoryProvider"],t.module("ui.router.router").provider("$urlRouter",$),D.$inject=["$urlRouterProvider","$urlMatcherFactoryProvider"],t.module("ui.router.state").factory("$stateParams",(function(){return{}})).provider("$state",D),C.$inject=[],t.module("ui.router.state").provider("$view",C),t.module("ui.router.state").provider("$uiViewScroll",(function(){var e=!1;this.useAnchorScroll=function(){e=!0},this.$get=["$anchorScroll","$timeout",function(t,n){return e?t:function(e){return n((function(){e[0].scrollIntoView()}),0,!1)}}]}));var E=t.version.major,A=t.version.minor;function P(e,n,i,r){var o=n.has?function(e){return n.has(e)?n.get(e):null}:function(e){try{return n.get(e)}catch(e){return null}},a=o("$animator"),s=o("$animate");return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(n,o,l){return function(n,o,u){var c,d,h,f,p=u.onload||"",m=u.autoscroll,g=function(e,n){var i={enter:function(e,t,n){t.after(e),n()},leave:function(e,t){e.remove(),t()}};if(e.noanimation)return i;function r(e){return 1===E&&A>=4?!!s.enabled(e):1===E&&A>=2?!!s.enabled():!!a}if(s)return{enter:function(e,n,o){r(e)?t.version.minor>2?s.enter(e,null,n).then(o):s.enter(e,null,n,o):i.enter(e,n,o)},leave:function(e,n){r(e)?t.version.minor>2?s.leave(e).then(n):s.leave(e,n):i.leave(e,n)}};if(a){var o=a&&a(n,e);return{enter:function(e,t,n){o.enter(e,null,t),n()},leave:function(e,t){o.leave(e),t()}}}return i}(u,n);function v(a){var s,v=O(n,u,o,r),_=v&&e.$current&&e.$current.locals[v];if((a||_!==f)&&!n._willBeDestroyed){s=n.$new(),f=e.$current.locals[v],s.$emit("$viewContentLoading",v);var y=l(s,(function(e){g.enter(e,o,(function(){h&&h.$emit("$viewContentAnimationEnded"),(t.isDefined(m)&&!m||n.$eval(m))&&i(e)})),function(){var e=c,t=h;function n(){e&&e.remove(),t&&t.$destroy()}t&&(t._willBeDestroyed=!0),d?(g.leave(d,(function(){n(),c=null})),c=d):(n(),c=null),d=null,h=null}()}));d=y,(h=s).$emit("$viewContentLoaded",v),h.$eval(p)}}n.$on("$stateChangeSuccess",(function(){v(!1)})),v(!0)}}}}function Y(e,t,n,i){return{restrict:"ECA",priority:-400,compile:function(r){var o=r.html();return function(r,a,s){var l=n.$current,u=O(r,s,a,i),c=l&&l.locals[u];if(c){a.data("$uiView",{name:u,state:c.$$state}),a.html(c.$template?c.$template:o);var d=e(a.contents());if(c.$$controller){c.$scope=r,c.$element=a;var h=t(c.$$controller,c);c.$$controllerAs&&(r[c.$$controllerAs]=h),a.data("$ngControllerController",h),a.children().data("$ngControllerController",h)}d(r)}}}}}function O(e,t,n,i){var r=i(t.uiView||t.name||"")(e),o=n.inheritedData("$uiView");return r.indexOf("@")>=0?r:r+"@"+(o?o.state.name:"")}function I(e,t){var n,i=e.match(/^\s*({[^}]*})\s*$/);if(i&&(e=t+"("+i[1]+")"),!(n=e.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/))||4!==n.length)throw new Error("Invalid state ref '"+e+"'");return{state:n[1],paramExpr:n[3]||null}}function j(e){var t=e.parent().inheritedData("$uiView");if(t&&t.state&&t.state.name)return t.state}function H(e){var t="[object SVGAnimatedString]"===Object.prototype.toString.call(e.prop("href")),n="FORM"===e[0].nodeName;return{attr:n?"action":t?"xlink:href":"href",isAnchor:"A"===e.prop("tagName").toUpperCase(),clickable:!n}}function B(e,t,n,i,r){return function(o){var a=o.which||o.button,s=r();if(!(a>1||o.ctrlKey||o.metaKey||o.shiftKey||e.attr("target"))){var l=n((function(){t.go(s.state,s.params,s.options)}));o.preventDefault();var u=i.isAnchor&&!s.href?1:0;o.preventDefault=function(){u--<=0&&n.cancel(l)}}}}function N(e,n){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(i,r,o,a){var s=I(o.uiSref,e.current.name),l={state:s.state,href:null,params:null},u=H(r),d=a[1]||a[0];l.options=c(function(e,t){return{relative:j(e)||t.$current,inherit:!0}}(r,e),o.uiSrefOpts?i.$eval(o.uiSrefOpts):{});var h=function(n){n&&(l.params=t.copy(n)),l.href=e.href(s.state,l.params,l.options),d&&d.$$addStateInfo(s.state,l.params),null!==l.href&&o.$set(u.attr,l.href)};s.paramExpr&&(i.$watch(s.paramExpr,(function(e){e!==l.params&&h(e)}),!0),l.params=t.copy(i.$eval(s.paramExpr))),h(),u.clickable&&r.bind("click",B(r,e,n,u,(function(){return l})))}}}function R(e,t){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(n,i,r,o){var a=H(i),s=o[1]||o[0],l="["+[r.uiState,r.uiStateParams||null,r.uiStateOpts||null].map((function(e){return e||"null"})).join(", ")+"]",u={state:null,params:null,options:null,href:null};function c(t){u.state=t[0],u.params=t[1],u.options=t[2],u.href=e.href(u.state,u.params,u.options),s&&s.$$addStateInfo(u.state,u.params),u.href&&r.$set(a.attr,u.href)}n.$watch(l,c,!0),c(n.$eval(l)),a.clickable&&i.bind("click",B(i,e,t,a,(function(){return u})))}}}function F(e,t,n){return{restrict:"A",controller:["$scope","$element","$attrs","$timeout",function(t,i,r,o){var l,c,d=[],f={};l=n(r.uiSrefActiveEq||"",!1)(t);try{c=t.$eval(r.uiSrefActive)}catch(e){}function p(n,r,o){var l=e.get(n,j(i)),u=function(e,n){if(!a(e))throw new Error("state should be a string");return s(n)?e+h(n):(n=t.$eval(n),s(n)?e+h(n):e)}(n,r);d.push({state:l||{name:n},params:r,hash:u}),f[u]=o}function m(){for(var t=0;t<d.length;t++)n=d[t].state,r=d[t].params,e.includes(n.name,r)?g(i,f[d[t].hash]):v(i,f[d[t].hash]),_(d[t].state,d[t].params)?g(i,l):v(i,l);var n,r}function g(e,t){o((function(){e.addClass(t)}))}function v(e,t){e.removeClass(t)}function _(t,n){return e.is(t.name,n)}c=c||n(r.uiSrefActive||"",!1)(t),s(c)&&u(c,(function(n,i){if(a(n)){var r=I(n,e.current.name);p(r.state,t.$eval(r.paramExpr),i)}})),this.$$addStateInfo=function(e,t){s(c)&&d.length>0||(p(e,t,c),m())},t.$on("$stateChangeSuccess",m),m()}]}}function z(e){var t=function(t,n){return e.is(t,n)};return t.$stateful=!0,t}function V(e){var t=function(t,n,i){return e.includes(t,n,i)};return t.$stateful=!0,t}P.$inject=["$state","$injector","$uiViewScroll","$interpolate"],Y.$inject=["$compile","$controller","$state","$interpolate"],t.module("ui.router.state").directive("uiView",P),t.module("ui.router.state").directive("uiView",Y),N.$inject=["$state","$timeout"],R.$inject=["$state","$timeout"],F.$inject=["$state","$stateParams","$interpolate"],t.module("ui.router.state").directive("uiSref",N).directive("uiSrefActive",F).directive("uiSrefActiveEq",F).directive("uiState",R),z.$inject=["$state"],V.$inject=["$state"],t.module("ui.router.state").filter("isState",z).filter("includedByState",V)}(window,window.angular),
-/*!
- * Copyright 2015 Drifty Co.
- * http://drifty.com/
- *
- * Ionic, v1.3.5
- * A powerful HTML5 mobile app framework.
- * http://ionicframework.com/
- *
- * By @maxlynch, @benjsperry, @adamdbradley <3
- *
- * Licensed under the MIT license. Please see LICENSE for more information.
- *
- */
-function(){var e=angular.module("ionic",["ngAnimate","ngSanitize","ui.router","ngIOS9UIWebViewPatch"]),t=angular.extend,n=angular.forEach,i=angular.isDefined,r=angular.isNumber,o=angular.isString,a=angular.element,s=angular.noop;e.factory("$ionicActionSheet",["$rootScope","$compile","$animate","$timeout","$ionicTemplateLoader","$ionicPlatform","$ionicBody","IONIC_BACK_PRIORITY",function(e,n,i,r,o,l,u,c){return{show:function(o){var d=e.$new(!0);function h(e){e&&/icon/.test(e)&&(d.$actionSheetHasIcon=!0)}t(d,{cancel:s,destructiveButtonClicked:s,buttonClicked:s,$deregisterBackButton:s,buttons:[],cancelOnStateChange:!0},o||{});for(var f=0;f<d.buttons.length;f++)h(d.buttons[f].text);h(d.cancelText),h(d.destructiveText);var p=d.element=n('<ion-action-sheet ng-class="cssClass" buttons="buttons"></ion-action-sheet>')(d),m=a(p[0].querySelector(".action-sheet-wrapper")),g=d.cancelOnStateChange?e.$on("$stateChangeSuccess",(function(){d.cancel()})):s;return d.removeSheet=function(e){d.removed||(d.removed=!0,m.removeClass("action-sheet-up"),r((function(){u.removeClass("action-sheet-open")}),400),d.$deregisterBackButton(),g(),i.removeClass(p,"active").then((function(){d.$destroy(),p.remove(),d.cancel.$scope=m=null,(e||s)(o.buttons)})))},d.showSheet=function(e){d.removed||(u.append(p).addClass("action-sheet-open"),i.addClass(p,"active").then((function(){d.removed||(e||s)()})),r((function(){d.removed||m.addClass("action-sheet-up")}),20,!1))},d.$deregisterBackButton=l.registerBackButtonAction((function(){r(d.cancel)}),c.actionSheet),d.cancel=function(){d.removeSheet(o.cancel)},d.buttonClicked=function(e){!0===o.buttonClicked(e,o.buttons[e])&&d.removeSheet()},d.destructiveButtonClicked=function(){!0===o.destructiveButtonClicked()&&d.removeSheet()},d.showSheet(),d.cancel.$scope=d,d.cancel}}}]),a.prototype.addClass=function(e){var t,n,i,r,o,a;if(e&&"ng-scope"!=e&&"ng-isolate-scope"!=e)for(t=0;t<this.length;t++)if((r=this[t]).setAttribute)if(e.indexOf(" ")<0&&r.classList.add)r.classList.add(e);else{for(a=(" "+(r.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),o=e.split(" "),n=0;n<o.length;n++)i=o[n].trim(),-1===a.indexOf(" "+i+" ")&&(a+=i+" ");r.setAttribute("class",a.trim())}return this},a.prototype.removeClass=function(e){var t,n,i,r,o;if(e)for(t=0;t<this.length;t++)if((o=this[t]).getAttribute)if(e.indexOf(" ")<0&&o.classList.remove)o.classList.remove(e);else for(i=e.split(" "),n=0;n<i.length;n++)r=i[n],o.setAttribute("class",(" "+(o.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+r.trim()+" "," ").trim());return this},e.factory("$ionicBackdrop",["$document","$timeout","$$rAF","$rootScope",function(e,t,n,i){var r=a('<div class="backdrop">'),o=0;return e[0].body.appendChild(r[0]),{retain:function(){1==++o&&(r.addClass("visible"),i.$broadcast("backdrop.shown"),n((function(){o>=1&&r.addClass("active")})))},release:function(){1===o&&(r.removeClass("active"),i.$broadcast("backdrop.hidden"),t((function(){0===o&&r.removeClass("visible")}),400,!1)),o=Math.max(0,o-1)},getElement:function(){return r},_element:r}}]),e.factory("$ionicBind",["$parse","$interpolate",function(e,t){var i=/^\s*([@=&])(\??)\s*(\w*)\s*$/;return function(r,o,a){n(a||{},(function(n,a){var s,l,u=n.match(i)||[],c=u[3]||a;switch(u[1]){case"@":if(!o[c])return;o.$observe(c,(function(e){r[a]=e})),o[c]&&(r[a]=t(o[c])(r));break;case"=":if(!o[c])return;l=r.$watch(o[c],(function(e){r[a]=e})),r.$on("$destroy",l);break;case"&":if(o[c]&&o[c].match(RegExp(a+"(.*?)")))throw new Error('& expression binding "'+a+'" looks like it will recursively call "'+o[c]+'" and cause a stack overflow! Please choose a different scopeName.');s=e(o[c]),r[a]=function(e){return s(r,e)}}}))}}]),e.factory("$ionicBody",["$document",function(e){return{addClass:function(){for(var t=0;t<arguments.length;t++)e[0].body.classList.add(arguments[t]);return this},removeClass:function(){for(var t=0;t<arguments.length;t++)e[0].body.classList.remove(arguments[t]);return this},enableClass:function(e){var t=Array.prototype.slice.call(arguments).slice(1);return e?this.addClass.apply(this,t):this.removeClass.apply(this,t),this},append:function(t){return e[0].body.appendChild(t.length?t[0]:t),this},get:function(){return e[0].body}}}]),e.factory("$ionicClickBlock",["$document","$ionicBody","$timeout",function(e,t,n){var i,r,o;function a(e){e.preventDefault(),e.stopPropagation()}return{show:function(s){o=!0,n.cancel(r),r=n(this.hide,s||310,!1),o&&(i?i.classList.remove("click-block-hide"):((i=e[0].createElement("div")).className="click-block",t.append(i),i.addEventListener("touchstart",a),i.addEventListener("mousedown",a)),o=!1)},hide:function(){o=!1,n.cancel(r),i&&i.classList.add("click-block-hide")}}}]),e.factory("$ionicGesture",[function(){return{on:function(e,t,n,i){return window.ionic.onGesture(e,t,n[0],i)},off:function(e,t,n){return window.ionic.offGesture(e,t,n)}}}]),e.factory("$ionicHistory",["$rootScope","$state","$location","$window","$timeout","$ionicViewSwitcher","$ionicNavViewDelegate",function(e,n,r,o,a,s,l){var u,c,d,h,f,p=0,m={histories:{root:{historyId:"root",parentHistoryId:null,stack:[],cursor:-1}},views:{},backView:null,forwardView:null,currentView:null},g=function(){};function v(e){return e?m.views[e]:null}function _(e){return e?v(e.backViewId):null}function y(e){return e?m.histories[e]:null}function b(t){for(var n=t;n;){if(n.hasOwnProperty("$historyId"))return{historyId:n.$historyId,scope:n};n=n.$parent}return{historyId:"root",scope:e}}function w(e){var t;m.currentView=v(e),m.backView=_(m.currentView),m.forwardView=(t=m.currentView)?v(t.forwardViewId):null}function L(){var e;if(n&&n.params)for(var t in n.params)n.params.hasOwnProperty(t)&&((e=e||{})[t]=n.params[t]);return e}return g.prototype.initialize=function(e){if(e){for(var t in e)this[t]=e[t];return this}return null},g.prototype.go=function(){if(this.stateName)return n.go(this.stateName,this.stateParams);if(this.url&&this.url!==r.url()){if(m.backView===this)return o.history.go(-1);if(m.forwardView===this)return o.history.go(1);r.url(this.url)}return null},g.prototype.destroy=function(){this.scope&&(this.scope.$destroy&&this.scope.$destroy(),this.scope=null)},{register:function(e,t){var i,o,l,g,M=function(){var e;if(n&&n.current&&n.current.name){if(e=n.current.name,n.params)for(var t in n.params)n.params.hasOwnProperty(t)&&n.params[t]&&(e+="_"+t+"="+n.params[t]);return e}return ionic.Utils.nextUid()}(),x=(g=b(e),m.histories[g.historyId]||(m.histories[g.historyId]={historyId:g.historyId,parentHistoryId:b(g.scope.$parent).historyId,stack:[],cursor:-1}),y(g.historyId)),S=m.currentView,T=m.backView,$=m.forwardView,D=null,C=null,E="none",A=x.historyId,P=r.url();if(u!==M&&(u=M,p++),f)D=f.viewId,C=f.action,E=f.direction,f=null;else if(T&&T.stateId===M)D=T.viewId,A=T.historyId,C="moveBack",T.historyId===S.historyId?E="back":S&&(E="exit",(i=y(T.historyId))&&i.parentHistoryId===S.historyId?E="enter":(i=y(S.historyId))&&i.parentHistoryId===x.parentHistoryId&&(E="swap"));else if($&&$.stateId===M)D=$.viewId,A=$.historyId,C="moveForward",$.historyId===S.historyId?E="forward":S&&(E="exit",S.historyId===x.parentHistoryId?E="enter":(i=y(S.historyId))&&i.parentHistoryId===x.parentHistoryId&&(E="swap")),i=b(e),$.historyId&&i.scope&&(i.scope.$historyId=$.historyId,A=$.historyId);else if(S&&S.historyId!==A&&x.cursor>-1&&x.stack.length>0&&x.cursor<x.stack.length&&x.stack[x.cursor].stateId===M){var Y=x.stack[x.cursor];D=Y.viewId,A=Y.historyId,C="moveBack",E="swap",(i=y(S.historyId))&&i.parentHistoryId===A?E="exit":(i=y(A))&&i.parentHistoryId===S.historyId&&(E="enter"),(i=v(Y.backViewId))&&Y.historyId!==i.historyId&&(Object.keys(m.views).forEach((function(e){var t=m.views[e];t.backViewId===Y.viewId&&t.historyId!==Y.historyId&&(t.backViewId=null)})),x.stack[x.cursor].backViewId=S.viewId)}else{if(l=s.createViewEle(t),this.isAbstractEle(l,t))return{action:"abstractView",direction:"none",ele:l};if(D=ionic.Utils.nextUid(),S){if(S.forwardViewId=D,C="newView",$&&S.stateId!==$.stateId&&S.historyId===$.historyId&&(i=y($.historyId))){for(o=i.stack.length-1;o>=$.index;o--){var O=i.stack[o];O&&O.destroy&&O.destroy(),i.stack.splice(o)}A=$.historyId}x.historyId===S.historyId?E="forward":S.historyId!==x.historyId&&(E="enter",(i=y(S.historyId))&&i.parentHistoryId===x.parentHistoryId?E="swap":(i=y(i.parentHistoryId))&&i.historyId===x.historyId&&(E="exit"))}else C="initialView";p<2&&(E="none"),m.views[D]=this.createView({viewId:D,index:x.stack.length,historyId:x.historyId,backViewId:S&&S.viewId?S.viewId:null,forwardViewId:null,stateId:M,stateName:this.currentStateName(),stateParams:L(),url:P,canSwipeBack:k(l,t)}),x.stack.push(m.views[D])}if(d&&d(),a.cancel(h),c){if(c.disableAnimate&&(E="none"),c.disableBack&&(m.views[D].backViewId=null),c.historyRoot){for(o=0;o<x.stack.length;o++)x.stack[o].viewId===D?(x.stack[o].index=0,x.stack[o].backViewId=x.stack[o].forwardViewId=null):delete m.views[x.stack[o].viewId];x.stack=[m.views[D]]}c=null}if(w(D),m.backView&&A==m.backView.historyId&&M==m.backView.stateId&&P==m.backView.url)for(o=0;o<x.stack.length;o++)if(x.stack[o].viewId==D){C="dupNav",E="none",o>0&&(x.stack[o-1].forwardViewId=null),m.forwardView=null,m.currentView.index=m.backView.index,m.currentView.backViewId=m.backView.backViewId,m.backView=_(m.backView),x.stack.splice(o,1);break}return x.cursor=m.currentView.index,{viewId:D,action:C,direction:E,historyId:A,enableBack:this.enabledBack(m.currentView),isHistoryRoot:0===m.currentView.index,ele:l}},registerHistory:function(e){e.$historyId=ionic.Utils.nextUid()},createView:function(e){return(new g).initialize(e)},getViewById:v,viewHistory:function(){return m},currentView:function(e){return arguments.length&&(m.currentView=e),m.currentView},currentHistoryId:function(){return m.currentView?m.currentView.historyId:null},currentTitle:function(e){if(m.currentView)return arguments.length&&(m.currentView.title=e),m.currentView.title},backView:function(e){return arguments.length&&(m.backView=e),m.backView},backTitle:function(e){var t=e&&v(e.backViewId)||m.backView;return t&&t.title},forwardView:function(e){return arguments.length&&(m.forwardView=e),m.forwardView},currentStateName:function(){return n&&n.current?n.current.name:null},isCurrentStateNavView:function(e){return!!(n&&n.current&&n.current.views&&n.current.views[e])},goToHistoryRoot:function(e){if(e){var t=y(e);if(t&&t.stack.length){if(m.currentView&&m.currentView.viewId===t.stack[0].viewId)return;f={viewId:t.stack[0].viewId,action:"moveBack",direction:"back"},t.stack[0].go()}}},goBack:function(e){if(i(e)&&-1!==e){if(e>-1)return;var t=m.histories[this.currentHistoryId()],n=t.cursor+e+1;n<1&&(n=1),t.cursor=n,w(t.stack[n].viewId);for(var r=n-1,o=[],s=v(t.stack[r].forwardViewId);s&&(o.push(s.stateId||s.viewId),!(++r>=t.stack.length));)s=v(t.stack[r].forwardViewId);var l=this;o.length&&a((function(){l.clearCache(o)}),300)}m.backView&&m.backView.go()},removeBackView:function(){var e=m.histories[this.currentHistoryId()],t=e.cursor,n=e.stack[t],i=e.stack[t-1],r=e.stack[t-2];i&&r&&(e.stack.splice(t-1,1),this.clearCache([i.viewId]),n.backViewId=r.viewId,n.index=n.index-1,r.forwardViewId=n.viewId,m.backView=r,e.currentCursor+=-1)},enabledBack:function(e){var t=_(e);return!(!t||t.historyId!==e.historyId)},clearHistory:function(){var e=m.histories,t=m.currentView;if(e)for(var n in e)e[n].stack&&(e[n].stack=[],e[n].cursor=-1),t&&t.historyId===n?(t.backViewId=t.forwardViewId=null,e[n].stack.push(t)):e[n].destroy&&e[n].destroy();for(var i in m.views)i!==t.viewId&&delete m.views[i];t&&w(t.viewId)},clearCache:function(e){return a((function(){l._instances.forEach((function(t){t.clearCache(e)}))}))},nextViewOptions:function(n){return d&&d(),arguments.length&&(a.cancel(h),null===n?c=n:(t(c=c||{},n),c.expire&&(d=e.$on("$stateChangeSuccess",(function(){h=a((function(){c=null}),c.expire)}))))),c},isAbstractEle:function(e,t){return!!(t&&t.$$state&&t.$$state.self.abstract)||!(!e||!M(e)&&!M(e.children()))},isActiveScope:function(e){if(!e)return!1;for(var t,n=e,i=this.currentHistoryId();n;){if(n.$$disconnected)return!1;if(!t&&n.hasOwnProperty("$historyId")&&(t=!0),i){if(n.hasOwnProperty("$historyId")&&i==n.$historyId)return!0;if(n.hasOwnProperty("$activeHistoryId")&&i==n.$activeHistoryId){if(n.hasOwnProperty("$historyId"))return!0;if(!t)return!0}}t&&n.hasOwnProperty("$activeHistoryId")&&(t=!1),n=n.$parent}return!i||"root"==i}};function M(e){return e&&e.length&&/ion-side-menus|ion-tabs/i.test(e[0].tagName)}function k(e,t){if(t&&t.$$state&&!1===t.$$state.self.canSwipeBack)return!1;if(e&&"false"===e.attr("can-swipe-back"))return!1;var n=e.find("ion-view");return!n||"false"!==n.attr("can-swipe-back")}}]).run(["$rootScope","$state","$location","$document","$ionicPlatform","$ionicHistory","IONIC_BACK_PRIORITY",function(e,t,n,i,r,o,a){e.$on("$ionicView.beforeEnter",(function(){ionic.keyboard&&ionic.keyboard.hide&&ionic.keyboard.hide()})),e.$on("$ionicHistory.change",(function(e,i){if(!i)return null;var r=o.viewHistory(),a=i.historyId?r.histories[i.historyId]:null;if(a&&a.cursor>-1&&a.cursor<a.stack.length)return a.stack[a.cursor].go(i);!i.url&&i.uiSref&&(i.url=t.href(i.uiSref)),i.url&&(0===i.url.indexOf("#")&&(i.url=i.url.replace("#","")),i.url!==n.url()&&n.url(i.url))})),e.$ionicGoBack=function(e){o.goBack(e)},e.$on("$ionicView.afterEnter",(function(e,t){t&&t.title&&(i[0].title=t.title)})),r.registerBackButtonAction((function(e){var t=o.backView();return t?t.go():ionic.Platform.exitApp(),e.preventDefault(),!1}),a.view)}]),e.provider("$ionicConfig",(function(){var e=this;e.platform={};var t="platform",r={views:{maxCache:t,forwardCache:t,transition:t,swipeBackEnabled:t,swipeBackHitWidth:t},navBar:{alignTitle:t,positionPrimaryButtons:t,positionSecondaryButtons:t,transition:t},backButton:{icon:t,text:t,previousTitleText:t},form:{checkbox:t,toggle:t},scrolling:{jsScrolling:t},spinner:{icon:t},tabs:{style:t,position:t},templates:{maxPrefetch:t},platform:{}};function o(n,o){r.platform[n]=o,e.platform[n]={},function e(n,r){for(var o in n)o!=t&&n.hasOwnProperty(o)&&(angular.isObject(n[o])?(i(r[o])||(r[o]={}),e(n[o],r[o])):i(r[o])||(r[o]=null))}(r,r.platform[n]),a(r.platform[n],e.platform[n],"")}function a(e,i,o){n(e,(function(n,l){angular.isObject(e[l])?(i[l]={},a(e[l],i[l],o+"."+l)):i[l]=function(n){if(arguments.length)return e[l]=n,i;if(e[l]==t){var a=s(r.platform,ionic.Platform.platform()+o+"."+l);return a||!1===a?a:s(r.platform,"default"+o+"."+l)}return e[l]}}))}function s(e,t){t=t.split(".");for(var n=0;n<t.length;n++){if(!e||!i(e[t[n]]))return null;e=e[t[n]]}return e}a(r,e,""),o("default",{views:{maxCache:10,forwardCache:!1,transition:"ios",swipeBackEnabled:!0,swipeBackHitWidth:45},navBar:{alignTitle:"center",positionPrimaryButtons:"left",positionSecondaryButtons:"right",transition:"view"},backButton:{icon:"ion-ios-arrow-back",text:"Back",previousTitleText:!0},form:{checkbox:"circle",toggle:"large"},scrolling:{jsScrolling:!0},spinner:{icon:"ios"},tabs:{style:"standard",position:"bottom"},templates:{maxPrefetch:30}}),o("ios",{}),o("android",{views:{transition:"android",swipeBackEnabled:!1},navBar:{alignTitle:"left",positionPrimaryButtons:"right",positionSecondaryButtons:"right"},backButton:{icon:"ion-android-arrow-back",text:!1,previousTitleText:!1},form:{checkbox:"square",toggle:"small"},spinner:{icon:"android"},tabs:{style:"striped",position:"top"},scrolling:{jsScrolling:!1}}),o("windowsphone",{spinner:{icon:"android"}}),e.transitions={views:{},navBar:{}},e.transitions.views.ios=function(e,t,n,i){function r(e,t,n,i){var r={};r[ionic.CSS.TRANSITION_DURATION]=o.shouldAnimate?"":0,r.opacity=t,i>-1&&(r.boxShadow="0 0 10px rgba(0,0,0,"+(o.shouldAnimate?.45*i:.3)+")"),r[ionic.CSS.TRANSFORM]="translate3d("+n+"%,0,0)",ionic.DomUtil.cachedStyles(e,r)}var o={run:function(i){"forward"==n?(r(e,1,99*(1-i),1-i),r(t,1-.1*i,-33*i,-1)):"back"==n?(r(e,1-.1*(1-i),-33*(1-i),-1),r(t,1,100*i,1-i)):(r(e,1,0,-1),r(t,0,0,-1))},shouldAnimate:i&&("forward"==n||"back"==n)};return o},e.transitions.navBar.ios=function(e,t,n,i){function r(e,t,n,i){var r={};r[ionic.CSS.TRANSITION_DURATION]=s.shouldAnimate?"":"0ms",r.opacity=1===t?"":t,e.setCss("buttons-left",r),e.setCss("buttons-right",r),e.setCss("back-button",r),r[ionic.CSS.TRANSFORM]="translate3d("+i+"px,0,0)",e.setCss("back-text",r),r[ionic.CSS.TRANSFORM]="translate3d("+n+"px,0,0)",e.setCss("title",r)}function o(e,t,n){if(e&&t){var i=(e.titleTextX()+e.titleWidth())*(1-n),o=t&&(t.titleTextX()-e.backButtonTextLeft())*(1-n)||0;r(e,n,i,o)}}function a(e,t,n){if(e&&t){var i=(-(e.titleTextX()-t.backButtonTextLeft())-e.titleLeftRight())*n;r(e,1-n,i,0)}}var s={run:function(n){var i=e.controller(),r=t&&t.controller();"back"==s.direction?(a(i,r,1-n),o(r,i,1-n)):(o(i,r,n),a(r,i,n))},direction:n,shouldAnimate:i&&("forward"==n||"back"==n)};return s},e.transitions.views.android=function(e,t,n,i){function r(e,t,n){var i={};i[ionic.CSS.TRANSITION_DURATION]=o.shouldAnimate?"":0,i[ionic.CSS.TRANSFORM]="translate3d("+t+"%,0,0)",i.opacity=n,ionic.DomUtil.cachedStyles(e,i)}var o={run:function(i){"forward"==n?(r(e,99*(1-i),1),r(t,-100*i,1)):"back"==n?(r(e,-100*(1-i),1),r(t,100*i,1)):(r(e,0,1),r(t,0,0))},shouldAnimate:i=i&&("forward"==n||"back"==n)};return o},e.transitions.navBar.android=function(e,t,n,i){function r(e,t){if(e){var n={};n.opacity=1===t?"":t,e.setCss("buttons-left",n),e.setCss("buttons-right",n),e.setCss("back-button",n),e.setCss("back-text",n),e.setCss("title",n)}}return{run:function(n){r(e.controller(),n),r(t&&t.controller(),1-n)},shouldAnimate:i&&("forward"==n||"back"==n)}},e.transitions.views.none=function(t,n){return{run:function(i){e.transitions.views.android(t,n,!1,!1).run(i)},shouldAnimate:!1}},e.transitions.navBar.none=function(t,n){return{run:function(i){e.transitions.navBar.ios(t,n,!1,!1).run(i),e.transitions.navBar.android(t,n,!1,!1).run(i)},shouldAnimate:!1}},e.setPlatformConfig=o,e.$get=function(){return e}})).config(["$compileProvider",function(e){e.aHrefSanitizationWhitelist(/^\s*(https?|sms|tel|geo|ftp|mailto|file|ghttps?|ms-appx-web|ms-appx|x-wmapp0):/),e.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|content|blob|ms-appx|ms-appx-web|x-wmapp0):|data:image\//)}]);var l='<div class="loading-container"><div class="loading"></div></div>';e.constant("$ionicLoadingConfig",{template:"<ion-spinner></ion-spinner>"}).factory("$ionicLoading",["$ionicLoadingConfig","$ionicBody","$ionicTemplateLoader","$ionicBackdrop","$timeout","$q","$log","$compile","$ionicPlatform","$rootScope","IONIC_BACK_PRIORITY",function(e,n,i,r,o,a,u,c,d,h,f){var p,m=s,g=s,v=s,_=a.when();return{show:function(n){var i=(n=t({},e||{},n||{})).delay||n.showDelay||0;return g(),v(),n.hideOnStateChange&&(g=h.$on("$stateChangeSuccess",b),v=h.$on("$stateChangeError",b)),o.cancel(_),(_=o(s,i)).then(y).then((function(e){return e.show(n)}))},hide:b,_getLoader:y};function y(){return p||(p=i.compile({template:l,appendTo:n.get()}).then((function(e){return e.show=function(t){var l=t.templateUrl?i.load(t.templateUrl):a.when(t.template||t.content||"");e.scope=t.scope||e.scope,e.isShown||(e.hasBackdrop=!t.noBackdrop&&!1!==t.showBackdrop,e.hasBackdrop&&(r.retain(),r.getElement().addClass("backdrop-loading"))),t.duration&&(o.cancel(e.durationTimeout),e.durationTimeout=o(angular.bind(e,e.hide),+t.duration)),m(),m=d.registerBackButtonAction(s,f.loading),l.then((function(t){if(t){var i=e.element.children();i.html(t),c(i.contents())(e.scope)}e.isShown&&(e.element.addClass("visible"),ionic.requestAnimationFrame((function(){e.isShown&&(e.element.addClass("active"),n.addClass("loading-active"))})))})),e.isShown=!0},e.hide=function(){m(),e.isShown&&(e.hasBackdrop&&(r.release(),r.getElement().removeClass("backdrop-loading")),e.element.removeClass("active"),n.removeClass("loading-active"),e.element.removeClass("visible"),ionic.requestAnimationFrame((function(){!e.isShown&&e.element.removeClass("visible")}))),o.cancel(e.durationTimeout),e.isShown=!1,e.element.children().html("")},e}))),p}function b(){return g(),v(),o.cancel(_),y().then((function(e){return e.hide()}))}}]),e.factory("$ionicModal",["$rootScope","$ionicBody","$compile","$timeout","$ionicPlatform","$ionicTemplateLoader","$$q","$log","$ionicClickBlock","$window","IONIC_BACK_PRIORITY",function(e,n,i,r,o,l,u,c,d,h,f){var p=ionic.views.Modal.inherit({initialize:function(e){ionic.views.Modal.prototype.initialize.call(this,e),this.animation=e.animation||"slide-in-up"},show:function(e){var t=this;if(t.scope.$$destroyed)return c.error("Cannot call "+t.viewType+".show() after remove(). Please create a new "+t.viewType+" instance."),u.when();d.show(600),v.add(t);var i=a(t.modalEl);t.el.classList.remove("hide"),r((function(){t._isShown&&n.addClass(t.viewType+"-open")}),400,!1),t.el.parentElement||(i.addClass(t.animation),n.append(t.el));var l=i.data("$$ionicScrollController");return l&&l.resize(),e&&t.positionView&&(t.positionView(e,i),t._onWindowResize=function(){t._isShown&&t.positionView(e,i)},ionic.on("resize",t._onWindowResize,window)),i.addClass("ng-enter active").removeClass("ng-leave ng-leave-active"),t._isShown=!0,t._deregisterBackButton=o.registerBackButtonAction(t.hardwareBackButtonClose?angular.bind(t,t.hide):s,f.modal),ionic.views.Modal.prototype.show.call(t),r((function(){t._isShown&&(i.addClass("ng-enter-active"),ionic.trigger("resize"),t.scope.$parent&&t.scope.$parent.$broadcast(t.viewType+".shown",t),t.el.classList.add("active"),t.scope.$broadcast("$ionicHeader.align"),t.scope.$broadcast("$ionicFooter.align"),t.scope.$broadcast("$ionic.modalPresented"))}),20),r((function(){t._isShown&&(t.$el.on("touchmove",(function(e){ionic.DomUtil.getParentOrSelfWithClass(e.target,"scroll")||e.preventDefault()})),t.$el.on("click",(function(e){t.backdropClickToClose&&e.target===t.el&&v.isHighest(t)&&t.hide()})))}),400)},hide:function(){var e=this,t=a(e.modalEl);return d.show(600),v.remove(e),e.el.classList.remove("active"),t.addClass("ng-leave"),r((function(){e._isShown||(t.addClass("ng-leave-active").removeClass("ng-enter ng-enter-active active"),e.scope.$broadcast("$ionic.modalRemoved"))}),20,!1),e.$el.off("click"),e._isShown=!1,e.scope.$parent&&e.scope.$parent.$broadcast(e.viewType+".hidden",e),e._deregisterBackButton&&e._deregisterBackButton(),ionic.views.Modal.prototype.hide.call(e),e.positionView&&ionic.off("resize",e._onWindowResize,window),r((function(){g.length||n.removeClass(e.viewType+"-open"),e.el.classList.add("hide")}),e.hideDelay||320)},remove:function(){var e,t,n=this;return n.scope.$parent&&n.scope.$parent.$broadcast(n.viewType+".removed",n),n._isShown?t=n.hide():((e=u.defer()).resolve(),t=e.promise),t.then((function(){n.scope.$destroy(),n.$el.remove()}))},isShown:function(){return!!this._isShown}}),m=function(n,r){var o=r.scope&&r.scope.$new()||e.$new(!0);r.viewType=r.viewType||"modal",t(o,{$hasHeader:!1,$hasSubheader:!1,$hasFooter:!1,$hasSubfooter:!1,$hasTabs:!1,$hasTabsTop:!1});var a=i("<ion-"+r.viewType+">"+n+"</ion-"+r.viewType+">")(o);r.$el=a,r.el=a[0],r.modalEl=r.el.querySelector("."+r.viewType);var s=new p(r);return s.scope=o,r.scope||(o[r.viewType]=s),s},g=[],v={add:function(e){g.push(e)},remove:function(e){var t=g.indexOf(e);t>-1&&t<g.length&&g.splice(t,1)},isHighest:function(e){var t=g.indexOf(e);return t>-1&&t===g.length-1}};return{fromTemplate:function(e,t){return m(e,t||{})},fromTemplateUrl:function(e,t,n){var i;return angular.isFunction(t)&&(i=t,t=n),l.load(e).then((function(e){var n=m(e,t||{});return i&&i(n),n}))},stack:v}}]),e.service("$ionicNavBarDelegate",ionic.DelegateService(["align","showBackButton","showBar","title","changeTitle","setTitle","getTitle","back","getPreviousTitle"])),e.service("$ionicNavViewDelegate",ionic.DelegateService(["clearCache"])),e.constant("IONIC_BACK_PRIORITY",{view:100,sideMenu:150,modal:200,actionSheet:300,popup:400,loading:500}).provider("$ionicPlatform",(function(){return{$get:["$q","$ionicScrollDelegate",function(e,t){var n={onHardwareBackButton:function(e){ionic.Platform.ready((function(){document.addEventListener("backbutton",e,!1)}))},offHardwareBackButton:function(e){ionic.Platform.ready((function(){document.removeEventListener("backbutton",e)}))},$backButtonActions:{},registerBackButtonAction:function(e,t,i){n._hasBackButtonHandler||(n.$backButtonActions={},n.onHardwareBackButton(n.hardwareBackButtonClick),n._hasBackButtonHandler=!0);var r={id:i||ionic.Utils.nextUid(),priority:t||0,fn:e};return n.$backButtonActions[r.id]=r,function(){delete n.$backButtonActions[r.id]}},hardwareBackButtonClick:function(e){var t,i;for(i in n.$backButtonActions)(!t||n.$backButtonActions[i].priority>=t.priority)&&(t=n.$backButtonActions[i]);if(t)return t.fn(e),t},is:function(e){return ionic.Platform.is(e)},on:function(e,t){return ionic.Platform.ready((function(){document.addEventListener(e,t,!1)})),function(){ionic.Platform.ready((function(){document.removeEventListener(e,t)}))}},ready:function(n){var i=e.defer();return ionic.Platform.ready((function(){window.addEventListener("statusTap",(function(){t.scrollTop(!0)})),i.resolve(),n&&n()})),i.promise}};return n}]}})),e.factory("$ionicPopover",["$ionicModal","$ionicPosition","$document","$window",function(e,t,n,i){var r={viewType:"popover",hideDelay:1,animation:"none",positionView:function(e,n){var r=a(e.target||e),o=t.offset(r),s=n.prop("offsetWidth"),l=n.prop("offsetHeight"),u=i.innerWidth,c=i.innerHeight,d={left:o.left+o.width/2-s/2},h=a(n[0].querySelector(".popover-arrow"));d.left<6?d.left=6:d.left+s+6>u&&(d.left=u-s-6),o.top+o.height+l>c&&o.top-l>0?(d.top=o.top-l,n.addClass("popover-bottom")):(d.top=o.top+o.height,n.removeClass("popover-bottom")),h.css({left:o.left+o.width/2-h.prop("offsetWidth")/2-d.left+"px"}),n.css({top:d.top+"px",left:d.left+"px",marginLeft:"0",opacity:"1"})}};return{fromTemplate:function(t,n){return e.fromTemplate(t,ionic.Utils.extend({},r,n))},fromTemplateUrl:function(t,n){return e.fromTemplateUrl(t,ionic.Utils.extend({},r,n))}}}]);var u;e.factory("$ionicPopup",["$ionicTemplateLoader","$ionicBackdrop","$q","$timeout","$rootScope","$ionicBody","$compile","$ionicPlatform","$ionicModal","IONIC_BACK_PRIORITY",function(e,n,i,r,o,l,u,c,d,h){var f={stackPushDelay:75},p=[],m={show:v,alert:function(e){return v(t({buttons:[{text:e.okText||"OK",type:e.okType||"button-positive",onTap:function(){return!0}}]},e||{}))},confirm:function(e){return v(t({buttons:[{text:e.cancelText||"Cancel",type:e.cancelType||"button-default",onTap:function(){return!1}},{text:e.okText||"OK",type:e.okType||"button-positive",onTap:function(){return!0}}]},e||{}))},prompt:function(e){var n=o.$new(!0);n.data={},n.data.fieldtype=e.inputType?e.inputType:"text",n.data.response=e.defaultText?e.defaultText:"",n.data.placeholder=e.inputPlaceholder?e.inputPlaceholder:"",n.data.maxlength=e.maxLength?parseInt(e.maxLength):"";var i="";return e.template&&!1===/<[a-z][\s\S]*>/i.test(e.template)&&(i="<span>"+e.template+"</span>",delete e.template),v(t({template:i+'<input ng-model="data.response" type="{{ data.fieldtype }}"maxlength="{{ data.maxlength }}"placeholder="{{ data.placeholder }}">',scope:n,buttons:[{text:e.cancelText||"Cancel",type:e.cancelType||"button-default",onTap:function(){}},{text:e.okText||"OK",type:e.okType||"button-positive",onTap:function(){return n.data.response||""}}]},e||{}))},_createPopup:function(n){n=t({scope:null,title:"",buttons:[]},n||{});var c={};return c.scope=(n.scope||o).$new(),c.element=a('<div class="popup-container" ng-class="cssClass"><div class="popup"><div class="popup-head"><h3 class="popup-title" ng-bind-html="title"></h3><h5 class="popup-sub-title" ng-bind-html="subTitle" ng-if="subTitle"></h5></div><div class="popup-body"></div><div class="popup-buttons" ng-show="buttons.length"><button ng-repeat="button in buttons" ng-click="$buttonTapped(button, $event)" class="button" ng-class="button.type || \'button-default\'" ng-bind-html="button.text"></button></div></div></div>'),c.responseDeferred=i.defer(),l.get().appendChild(c.element[0]),u(c.element)(c.scope),t(c.scope,{title:n.title,buttons:n.buttons,subTitle:n.subTitle,cssClass:n.cssClass,$buttonTapped:function(e,t){var n=(e.onTap||s).apply(c,[t]);(t=t.originalEvent||t).defaultPrevented||c.responseDeferred.resolve(n)}}),i.when(n.templateUrl?e.load(n.templateUrl):n.template||n.content||"").then((function(e){var t=a(c.element[0].querySelector(".popup-body"));e?(t.html(e),u(t.contents())(c.scope)):t.remove()})),c.show=function(){c.isShown||c.removed||(d.stack.add(c),c.isShown=!0,ionic.requestAnimationFrame((function(){var e;c.isShown&&(c.element.removeClass("popup-hidden"),c.element.addClass("popup-showing active"),(e=c.element[0].querySelector("[autofocus]"))&&e.focus())})))},c.hide=function(e){if(e=e||s,!c.isShown)return e();d.stack.remove(c),c.isShown=!1,c.element.removeClass("active"),c.element.addClass("popup-hidden"),r(e,250,!1)},c.remove=function(){c.removed||(c.hide((function(){c.element.remove(),c.scope.$destroy()})),c.removed=!0)},c},_popupStack:p};return m;function g(){var e=p[p.length-1];e&&e.responseDeferred.resolve()}function v(e){var t=m._createPopup(e),i=0;return p.length>0?(i=f.stackPushDelay,r(p[p.length-1].hide,i,!1)):(l.addClass("popup-open"),n.retain(),m._backButtonActionDone=c.registerBackButtonAction(g,h.popup)),t.responseDeferred.promise.close=function(e){t.removed||t.responseDeferred.resolve(e)},t.responseDeferred.notify({close:t.responseDeferred.close}),p.push(t),r(t.show,i,!1),t.responseDeferred.promise.then((function(e){var i=p.indexOf(t);return-1!==i&&p.splice(i,1),t.remove(),p.length>0?p[p.length-1].show():(n.release(),r((function(){p.length||l.removeClass("popup-open")}),400,!1),(m._backButtonActionDone||s)()),e})),t.responseDeferred.promise}}]),e.factory("$ionicPosition",["$document","$window",function(e,t){function n(e){return"static"===("position",((n=e).currentStyle?n.currentStyle.position:t.getComputedStyle?t.getComputedStyle(n).position:n.style.position)||"static");var n}return{position:function(t){var i=this.offset(t),r={top:0,left:0},o=function(t){for(var i=e[0],r=t.offsetParent||i;r&&r!==i&&n(r);)r=r.offsetParent;return r||i}(t[0]);o!=e[0]&&((r=this.offset(a(o))).top+=o.clientTop-o.scrollTop,r.left+=o.clientLeft-o.scrollLeft);var s=t[0].getBoundingClientRect();return{width:s.width||t.prop("offsetWidth"),height:s.height||t.prop("offsetHeight"),top:i.top-r.top,left:i.left-r.left}},offset:function(n){var i=n[0].getBoundingClientRect();return{width:i.width||n.prop("offsetWidth"),height:i.height||n.prop("offsetHeight"),top:i.top+(t.pageYOffset||e[0].documentElement.scrollTop),left:i.left+(t.pageXOffset||e[0].documentElement.scrollLeft)}}}}]),e.service("$ionicScrollDelegate",ionic.DelegateService(["resize","scrollTop","scrollBottom","scrollTo","scrollBy","zoomTo","zoomBy","getScrollPosition","anchorScroll","freezeScroll","freezeAllScrolls","getScrollView"])),e.service("$ionicSideMenuDelegate",ionic.DelegateService(["toggleLeft","toggleRight","getOpenRatio","isOpen","isOpenLeft","isOpenRight","canDragContent","edgeDragThreshold"])),e.service("$ionicSlideBoxDelegate",ionic.DelegateService(["update","slide","select","enableSlide","previous","next","stop","autoPlay","start","currentIndex","selected","slidesCount","count","loop"])),e.service("$ionicTabsDelegate",ionic.DelegateService(["select","selectedIndex","showBar"])),u=[],e.factory("$ionicTemplateCache",["$http","$templateCache","$timeout",function(e,t,i){var r,a=u;function s(e){if(void 0===e)return l();o(e)&&(e=[e]),n(e,(function(e){a.push(e)})),r&&l()}function l(){var n;if(s._runCount++,r=!0,0!==a.length){for(var u=0;u<4&&(n=a.pop());)o(n)&&e.get(n,{cache:t}),u++;a.length&&i(l,1e3)}}return s._runCount=0,s}]).config(["$stateProvider","$ionicConfigProvider",function(e,t){var n=e.state;e.state=function(i,r){if("object"==typeof r){var a=!1!==r.prefetchTemplate&&u.length<t.templates.maxPrefetch();if(a&&o(r.templateUrl)&&u.push(r.templateUrl),angular.isObject(r.views))for(var s in r.views)(a=!1!==r.views[s].prefetchTemplate&&u.length<t.templates.maxPrefetch())&&o(r.views[s].templateUrl)&&u.push(r.views[s].templateUrl)}return n.call(e,i,r)}}]).run(["$ionicTemplateCache",function(e){e()}]),e.factory("$ionicTemplateLoader",["$compile","$controller","$http","$q","$rootScope","$templateCache",function(e,n,i,r,o,s){return{load:function(e){return i.get(e,{cache:s}).then((function(e){return e.data&&e.data.trim()}))},compile:function(i){return((i=t({template:"",templateUrl:"",scope:null,controller:null,locals:{},appendTo:null},i||{})).templateUrl?this.load(i.templateUrl):r.when(i.template)).then((function(r){var s,l=i.scope||o.$new(),u=a("<div>").html(r).contents();return i.controller&&(s=n(i.controller,t(i.locals,{$scope:l})),u.children().data("$ngControllerController",s)),i.appendTo&&a(i.appendTo).append(u),e(u)(l),{element:u,scope:l}}))}}}]),e.factory("$ionicViewService",["$ionicHistory","$log",function(e,t){function i(e,n){t.warn("$ionicViewService"+e+" is deprecated, please use $ionicHistory"+n+" instead: http://ionicframework.com/docs/nightly/api/service/$ionicHistory/")}i("","");var r={getCurrentView:"currentView",getBackView:"backView",getForwardView:"forwardView",getCurrentStateName:"currentStateName",nextViewOptions:"nextViewOptions",clearHistory:"clearHistory"};return n(r,(function(t,n){r[n]=function(){return i("."+n,"."+t),e[t].apply(this,arguments)}})),r}]),e.factory("$ionicViewSwitcher",["$timeout","$document","$q","$ionicClickBlock","$ionicConfig","$ionicNavBarDelegate",function(e,r,o,s,l,u){var c,d,h,f="webkitTransitionEnd transitionend",p="$fallbackTimer",m="$viewData",g="nav-view",v="active",_="cached",y=0;ionic.transition=ionic.transition||{},ionic.transition.isActive=!1;var b=ionic.DomUtil.cachedAttr,w=[],L={create:function(n,r,a,h,g,C){var E,A,P,Y=++y,O={init:function(e,t){L.isTransitioning(!0),O.loadViewElements(e),O.render(e,(function(){t&&t()}))},loadViewElements:function(e){var t,o,s,l,u,c=n.getViewElements(),d=(u=a,M(l=r).abstract?M(l).name:u?u.stateId||u.viewId:ionic.Utils.nextUid()),h=n.activeEleId();for(t=0,o=c.length;t<o&&((s=c.eq(t)).data("$eleId")===d?s.data("$noCache")?(s.data("$eleId",d+ionic.Utils.nextUid()),s.data("$destroyEle",!0)):E=s:i(h)&&s.data("$eleId")===h&&(A=s),!E||!A);t++);(P=!!E)||(E=e.ele||L.createViewEle(r)).data("$eleId",d),C&&n.activeEleId(d),e.ele=null},render:function(e,t){if(P)ionic.Utils.reconnectScope(E.scope());else{S(E,"stage");var i=k(r,E,e.direction,a);(l.transitions.views[i.transition]||l.transitions.views.none)(E,null,i.direction,!0).run(0),E.data(m,{viewId:i.viewId,historyId:i.historyId,stateName:i.stateName,stateParams:i.stateParams}),!1!==M(r).cache&&"false"!==M(r).cache&&"false"!=E.attr("cache-view")&&0!==l.views.maxCache()||E.data("$noCache",!0);var o=n.appendViewElement(E,r);delete i.direction,delete i.transition,o.$emit("$ionicView.loaded",i)}E.data("$accessed",Date.now()),t&&t()},transition:function(i,m,M){var T,$=k(r,E,i,a),D=t(t({},$),x(h));$.transitionId=D.transitionId=Y,$.fromCache=!!P,$.enableBack=!!m,$.renderStart=g,$.renderEnd=C,b(E.parent(),"nav-view-transition",$.transition),b(E.parent(),"nav-view-direction",$.direction),e.cancel(E.data(p));var I=(l.transitions.views[$.transition]||l.transitions.views.none)(E,A,$.direction,$.shouldAnimate&&M&&C);if(I.shouldAnimate&&(E.on(f,H),E.data(p,e(B,1100)),s.show(1100)),g&&(O.emit("before",$,D),S(E,"stage"),I.run(0)),C&&(T=o.defer(),w.push(T.promise)),g&&C)e((function(){ionic.requestAnimationFrame(j)}));else{if(!C)return S(E,"entering"),S(A,"leaving"),{run:I.run,cancel:function(t){t?(E.on(f,N),E.data(p,e(R,1100)),s.show(1100)):R(),I.shouldAnimate=t,I.run(0),I=null}};C&&j()}function j(){S(E,I.shouldAnimate?"entering":v),S(A,I.shouldAnimate?"leaving":_),I.run(1),u._instances.forEach((function(e){e.triggerTransitionStart(Y)})),I.shouldAnimate||B()}function H(e){e.target===this&&B()}function B(){B.x||(B.x=!0,E.off(f,H),e.cancel(E.data(p)),A&&e.cancel(A.data(p)),T&&T.resolve(n),Y===y&&(o.all(w).then(L.transitionEnd),O.emit("after",$,D),O.cleanup($)),u._instances.forEach((function(e){e.triggerTransitionEnd()})),c=d=a=h=E=A=null)}function N(e){e.target===this&&R()}function R(){S(E,_),S(A,v),E.off(f,N),e.cancel(E.data(p)),L.transitionEnd([n])}},emit:function(e,t,n){var i=D(E,t),r=D(A,n);!t.viewId||t.abstractView?r&&(r.$emit("$ionicView.beforeLeave",n),r.$emit("$ionicView.leave",n),r.$emit("$ionicView.afterLeave",n),r.$broadcast("$ionicParentView.beforeLeave",n),r.$broadcast("$ionicParentView.leave",n),r.$broadcast("$ionicParentView.afterLeave",n)):("after"==e&&(i&&(i.$emit("$ionicView.enter",t),i.$broadcast("$ionicParentView.enter",t)),r?(r.$emit("$ionicView.leave",n),r.$broadcast("$ionicParentView.leave",n)):i&&n&&n.viewId&&t.stateName!==n.stateName&&$(t.stateName,n.stateName)&&i.$emit("$ionicNavView.leave",n)),i&&(i.$emit("$ionicView."+e+"Enter",t),i.$broadcast("$ionicParentView."+e+"Enter",t)),r?(r.$emit("$ionicView."+e+"Leave",n),r.$broadcast("$ionicParentView."+e+"Leave",n)):i&&n&&n.viewId&&t.stateName!==n.stateName&&$(t.stateName,n.stateName)&&i.$emit("$ionicNavView."+e+"Leave",n))},cleanup:function(e){A&&"back"==e.direction&&!l.views.forwardCache()&&T(A);var t,i,r,o=n.getViewElements(),a=o.length,s=a-1>l.views.maxCache(),u=Date.now();for(t=0;t<a;t++)i=o.eq(t),s&&i.data("$accessed")<u?(u=i.data("$accessed"),r=o.eq(t)):i.data("$destroyEle")&&S(i)!=v&&T(i);T(r),E.data("$noCache")&&E.data("$destroyEle",!0)},enteringEle:function(){return E},leavingEle:function(){return A}};return O},transitionEnd:function(e){n(e,(function(e){e.transitionEnd()})),L.isTransitioning(!1),s.hide(),w=[]},nextTransition:function(e){c=e},nextDirection:function(e){d=e},isTransitioning:function(t){return arguments.length&&(ionic.transition.isActive=!!t,e.cancel(h),t&&(h=e((function(){L.isTransitioning(!1)}),999))),ionic.transition.isActive},createViewEle:function(e){var t=r[0].createElement("div");return e&&e.$template&&(t.innerHTML=e.$template,1===t.children.length)?(t.children[0].classList.add("pane"),e.$$state&&e.$$state.self&&e.$$state.self.abstract?angular.element(t.children[0]).attr("abstract","true"):e.$$state&&e.$$state.self&&angular.element(t.children[0]).attr("state",e.$$state.self.name),a(t.children[0])):(t.className="pane",a(t))},viewEleIsActive:function(e,t){S(e,t?v:_)},getTransitionData:k,navViewAttr:S,destroyViewEle:T};return L;function M(e){return e&&e.$$state&&e.$$state.self||{}}function k(e,n,i,r){var o=M(e),a=c||b(n,"view-transition")||o.viewTransition||l.views.transition()||"ios",s=l.navBar.transition();return i=d||b(n,"view-direction")||o.viewDirection||i||"none",t(x(r),{transition:a,navBarTransition:"view"===s?a:s,direction:i,shouldAnimate:"none"!==a&&"none"!==i})}function x(e){return{viewId:(e=e||{}).viewId,historyId:e.historyId,stateId:e.stateId,stateName:e.stateName,stateParams:e.stateParams}}function S(e,t){if(!(arguments.length>1))return b(e,g);b(e,g,t)}function T(e){if(e&&e.length){var t=e.scope();t&&(t.$emit("$ionicView.unloaded",e.data(m)),t.$destroy()),e.remove()}}function $(e,t){var n=e.lastIndexOf("."),i=t.lastIndexOf(".");return!(n<0||i<0)&&e.substring(0,n)===t.substring(0,i)}function D(e,t){if(!e)return null;var n=angular.element(e).attr("abstract"),i=angular.element(e).attr("state");if("true"!==n)return i===t.stateName?angular.element(e).scope():null;for(var r=function(e){for(var t=[],n=angular.element(e).find("ion-nav-view"),i=0;i<n.length;i++){for(var r=angular.element(n[i]).children(),o=[],a=0;a<r.length;a++)o=o.concat(r[a]);t=t.concat(o)}return t}(e),o=0;o<r.length;o++)if(angular.element(r[o]).attr("state")===t.stateName)return t.abstractView=!0,angular.element(r[o]).scope();return null}}]),
-/**
- * ==================  angular-ios9-uiwebview.patch.js v1.1.1 ==================
- *
- * This patch works around iOS9 UIWebView regression that causes infinite digest
- * errors in Angular.
- *
- * The patch can be applied to Angular 1.2.0 – 1.4.5. Newer versions of Angular
- * have the workaround baked in.
- *
- * To apply this patch load/bundle this file with your application and add a
- * dependency on the "ngIOS9UIWebViewPatch" module to your main app module.
- *
- * For example:
- *
- * ```
- * angular.module('myApp', ['ngRoute'])`
- * ```
- *
- * becomes
- *
- * ```
- * angular.module('myApp', ['ngRoute', 'ngIOS9UIWebViewPatch'])
- * ```
- *
- *
- * More info:
- * - https://openradar.appspot.com/22186109
- * - https://github.com/angular/angular.js/issues/12241
- * - https://github.com/ionic-team/ionic/issues/4082
- *
- *
- * @license AngularJS
- * (c) 2010-2015 Google, Inc. http://angularjs.org
- * License: MIT
- */
-angular.module("ngIOS9UIWebViewPatch",["ng"]).config(["$provide",function(e){"use strict";e.decorator("$browser",["$delegate","$window",function(e,t){return n=t.navigator.userAgent,/(iPhone|iPad|iPod).* OS 9_\d/.test(n)&&!/Version\/9\./.test(n)?function(e){var t=null,n=e.url;function i(){t=null}return e.url=function(){return arguments.length?(t=arguments[0],n.apply(e,arguments)):t||n.apply(e,arguments)},window.addEventListener("popstate",i,!1),window.addEventListener("hashchange",i,!1),e}(e):e;var n}])}]),e.config(["$provide",function(e){e.decorator("$compile",["$delegate",function(e){return e.$$addScopeInfo=function(e,t,n,i){var r=n?i?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(r,t)},e}])}]),e.config(["$provide",function(e){e.decorator("$location",["$delegate","$timeout",function(e,t){return e.__hash=e.hash,e.hash=function(n){return i(n)&&n.length>0&&t((function(){var e=document.querySelector(".scroll-content");e&&(e.scrollTop=0)}),0,!1),e.__hash(n)},e}])}]),e.controller("$ionicHeaderBar",["$scope","$element","$attrs","$q","$ionicConfig","$ionicHistory",function(e,t,n,i,r,o){var a=this,s="",l="",u=0,c=0,d="",h=!1,f=!0,p=!0,m=!1;a.beforeEnter=function(t){e.$broadcast("$ionicView.beforeEnter",t)},a.title=function(e){return arguments.length&&e!==s&&(v("title").innerHTML=e,s=e),s},a.enableBack=function(e,t){return arguments.length&&(h=e,t||a.updateBackButton()),h},a.showBack=function(e,t){return arguments.length&&(f=e,t||a.updateBackButton()),f},a.showNavBack=function(e){p=e,a.updateBackButton()},a.updateBackButton=function(){var e;(f&&p&&h)!==m&&(m=f&&p&&h,(e=v("back-button"))&&e.classList[m?"remove":"add"]("hide")),h&&(e=e||v("back-button"))&&(a.backButtonIcon!==r.backButton.icon()&&(e=v("back-button .icon"))&&(a.backButtonIcon=r.backButton.icon(),e.className="icon "+a.backButtonIcon),a.backButtonText!==r.backButton.text()&&(e=v("back-button .back-text"))&&(e.textContent=a.backButtonText=r.backButton.text()))},a.titleTextWidth=function(){var e=v("title");if(e)for(var t=angular.element(e).children(),n=0;n<t.length;n++)if(angular.element(t[n]).hasClass("nav-bar-title")){e=t[n];break}var i=ionic.DomUtil.getTextBounds(e);return Math.min(i&&i.width||30)},a.titleWidth=function(){var e=a.titleTextWidth(),t=v("title").offsetWidth;return t<e&&(e=t+(u-c-5)),e},a.titleTextX=function(){return t[0].offsetWidth/2-a.titleWidth()/2},a.titleLeftRight=function(){return u-c},a.backButtonTextLeft=function(){for(var e=0,t=v("back-text");t;)e+=t.offsetLeft,t=t.parentElement;return e},a.resetBackButton=function(e){if(r.backButton.previousTitleText()){var t=v("previous-title");if(t){t.classList.remove("hide");var n=e&&o.getViewById(e.viewId),i=o.backTitle(n);i!==l&&(l=t.innerHTML=i)}var a=v("default-title");a&&a.classList.remove("hide")}},a.align=function(e){var i=v("title");e=e||n.alignTitle||r.navBar.alignTitle();var o=a.calcWidths(e,!1);if(f&&l&&r.backButton.previousTitleText()){var s=a.calcWidths(e,!0),u=t[0].offsetWidth-s.titleLeft-s.titleRight;a.titleTextWidth()<=u&&(o=s)}return a.updatePositions(i,o.titleLeft,o.titleRight,o.buttonsLeft,o.buttonsRight,o.css,o.showPrevTitle)},a.calcWidths=function(e,n){var i,r,o,a,s,l,u,c,d,h=v("title"),p=v("back-button"),m=t[0].childNodes,g=0,_=0,y=0,b=0,w="",L=0;for(i=0;i<m.length;i++){if(u=0,1==(s=m[i]).nodeType){if(s===h){d=!0;continue}if(s.classList.contains("hide"))continue;if(f&&s===p){for(r=0;r<s.childNodes.length;r++)if(1==(a=s.childNodes[r]).nodeType)if(a.classList.contains("back-text"))for(o=0;o<a.children.length;o++)if(l=a.children[o],n){if(l.classList.contains("default-title"))continue;L+=l.offsetWidth}else{if(l.classList.contains("previous-title"))continue;L+=l.offsetWidth}else L+=a.offsetWidth;else 3==a.nodeType&&a.nodeValue.trim()&&(L+=(c=ionic.DomUtil.getTextBounds(a))&&c.width||0);u=L||s.offsetWidth}else u=s.offsetWidth}else 3==s.nodeType&&s.nodeValue.trim()&&(u=(c=ionic.DomUtil.getTextBounds(s))&&c.width||0);d?_+=u:g+=u}if("left"==e)w="title-left",g&&(y=g+15),_&&(b=_+15);else if("right"==e)w="title-right",g&&(y=g+15),_&&(b=_+15);else{var M=Math.max(g,_)+10;M>10&&(y=b=M)}return{backButtonWidth:L,buttonsLeft:g,buttonsRight:_,titleLeft:y,titleRight:b,showPrevTitle:n,css:w}},a.updatePositions=function(e,n,o,s,l,h,f){var p=i.defer();if(e&&(n!==u&&(e.style.left=n?n+"px":"",u=n),o!==c&&(e.style.right=o?o+"px":"",c=o),h!==d&&(h&&e.classList.add(h),d&&e.classList.remove(d),d=h)),r.backButton.previousTitleText()){var m=v("previous-title"),g=v("default-title");m&&m.classList[f?"remove":"add"]("hide"),g&&g.classList[f?"add":"remove"]("hide")}return ionic.requestAnimationFrame((function(){if(e&&e.offsetWidth+10<e.scrollWidth){var n=l+5,i=t[0].offsetWidth-u-a.titleTextWidth()-20;(o=i<n?n:i)!==c&&(e.style.right=o+"px",c=o)}p.resolve()})),p.promise},a.setCss=function(e,t){ionic.DomUtil.cachedStyles(v(e),t)};var g={};function v(e){return g[e]||(g[e]=t[0].querySelector("."+e)),g[e]}e.$on("$destroy",(function(){for(var e in g)g[e]=null}))}]),e.controller("$ionInfiniteScroll",["$scope","$attrs","$element","$timeout",function(e,t,n,r){var o=this;function a(){ionic.requestAnimationFrame((function(){n[0].classList.add("active")})),o.isLoading=!0,e.$parent&&e.$parent.$apply(t.onInfinite||"")}function s(){ionic.requestAnimationFrame((function(){n[0].classList.remove("active")})),r((function(){o.jsScrolling&&o.scrollView.resize(),(o.jsScrolling&&o.scrollView.__container&&o.scrollView.__container.offsetHeight>0||!o.jsScrolling)&&o.checkBounds()}),30,!1),o.isLoading=!1}function l(e){var n=(t.distance||"2.5%").trim();return-1!==n.indexOf("%")?e*(1-parseFloat(n)/100):e-parseFloat(n)}o.isLoading=!1,e.icon=function(){return i(t.icon)?t.icon:"ion-load-d"},e.spinner=function(){return i(t.spinner)?t.spinner:""},e.$on("scroll.infiniteScrollComplete",(function(){s()})),e.$on("$destroy",(function(){o.scrollCtrl&&o.scrollCtrl.$element&&o.scrollCtrl.$element.off("scroll",o.checkBounds),o.scrollEl&&o.scrollEl.removeEventListener&&o.scrollEl.removeEventListener("scroll",o.checkBounds)})),o.checkBounds=ionic.Utils.throttle((function(){if(!o.isLoading){var e={};if(o.jsScrolling){e=o.getJSMaxScroll();var t=o.scrollView.getValues();(-1!==e.left&&t.left>=e.left||-1!==e.top&&t.top>=e.top)&&a()}else(-1!==(e=o.getNativeMaxScroll()).left&&o.scrollEl.scrollLeft>=e.left-o.scrollEl.clientWidth||-1!==e.top&&o.scrollEl.scrollTop>=e.top-o.scrollEl.clientHeight)&&a()}}),300),o.getJSMaxScroll=function(){var e=o.scrollView.getScrollMax();return{left:o.scrollView.options.scrollingX?l(e.left):-1,top:o.scrollView.options.scrollingY?l(e.top):-1}},o.getNativeMaxScroll=function(){var e={left:o.scrollEl.scrollWidth,top:o.scrollEl.scrollHeight},t=window.getComputedStyle(o.scrollEl)||{};return{left:!e.left||"scroll"!==t.overflowX&&"auto"!==t.overflowX&&"scroll"!==o.scrollEl.style["overflow-x"]?-1:l(e.left),top:!e.top||"scroll"!==t.overflowY&&"auto"!==t.overflowY&&"scroll"!==o.scrollEl.style["overflow-y"]?-1:l(e.top)}},o.__finishInfiniteScroll=s}]),e.service("$ionicListDelegate",ionic.DelegateService(["showReorder","showDelete","canSwipeItems","closeOptionButtons"])).controller("$ionicList",["$scope","$attrs","$ionicListDelegate","$ionicHistory",function(e,t,n,i){var r=this,o=!0,a=!1,s=!1,l=n._registerInstance(r,t.delegateHandle,(function(){return i.isActiveScope(e)}));e.$on("$destroy",l),r.showReorder=function(e){return arguments.length&&(a=!!e),a},r.showDelete=function(e){return arguments.length&&(s=!!e),s},r.canSwipeItems=function(e){return arguments.length&&(o=!!e),o},r.closeOptionButtons=function(){r.listView&&r.listView.clearDragEffects()}}]),e.controller("$ionicNavBar",["$scope","$element","$attrs","$compile","$timeout","$ionicNavBarDelegate","$ionicConfig","$ionicHistory",function(e,t,r,o,s,l,u,c){var d,h,f,p="primaryButtons",m="secondaryButtons",g="backButton",v="primaryButtons secondaryButtons leftButtons rightButtons title".split(" "),_=this,y=[],b={},w=!0;t.parent().data("$ionNavBarController",_);var L=r.delegateHandle||"navBar"+ionic.Utils.nextUid(),M=l._registerInstance(_,L);function k(e,t){var n=console.warn||alert;n&&n.call(console,"navBarController."+e+" is deprecated, please use "+t+" instead")}function x(e){if(b[e])return a(b[e])}function S(){for(var e=0;e<y.length;e++)if(y[e].isActive)return y[e]}function T(e,t){e&&ionic.DomUtil.cachedAttr(e.containerEle(),"nav-bar",t)}function $(e){ionic.DomUtil.cachedAttr(t,"nav-swipe",e)}_.init=function(){t.addClass("nav-bar-container"),ionic.DomUtil.cachedAttr(t,"nav-bar-transition",u.views.transition()),_.createHeaderBar(!1),_.createHeaderBar(!0),e.$emit("ionNavBar.init",L)},_.createHeaderBar=function(s){var l=a('<div class="nav-bar-block">');ionic.DomUtil.cachedAttr(l,"nav-bar",s?"active":"cached");var c=r.alignTitle||u.navBar.alignTitle(),d=a("<ion-header-bar>").addClass(r.class).attr("align-title",c);i(r.noTapScroll)&&d.attr("no-tap-scroll",r.noTapScroll);var h,f,_=a('<div class="title title-'+c+'">'),b={},w={};b[g]=x(g),b[g]&&d.append(b[g]),d.append(_),n(v,(function(e){b[e]=x(e),S(b[e],e)}));for(var L=0;L<d[0].children.length;L++)d[0].children[L].classList.add("header-item");l.append(d),t.append(o(l)(e.$new()));var M=d.data("$ionHeaderBarController");M.backButtonIcon=u.backButton.icon(),M.backButtonText=u.backButton.text();var k={isActive:s,title:function(e){M.title(e)},setItem:function(e,t){k.removeItem(t),e?("title"===t&&k.title(""),S(e,t),b[t]&&b[t].addClass("hide"),w[t]=e):b[t]&&b[t].removeClass("hide")},removeItem:function(e){w[e]&&(w[e].scope().$destroy(),w[e].remove(),w[e]=null)},containerEle:function(){return l},headerBarEle:function(){return d},afterLeave:function(){n(v,(function(e){k.removeItem(e)})),M.resetBackButton()},controller:function(){return M},destroy:function(){for(var e in n(v,(function(e){k.removeItem(e)})),l.scope().$destroy(),b)b[e]&&(b[e].removeData(),b[e]=null);h&&h.removeData(),f&&f.removeData(),_.removeData(),d.removeData(),l.remove(),l=d=_=h=f=null}};function S(e,t){e&&("title"===t?_.append(e):"rightButtons"==t||t==m&&"left"!=u.navBar.positionSecondaryButtons()||t==p&&"right"==u.navBar.positionPrimaryButtons()?(f||(f=a('<div class="buttons buttons-right">'),d.append(f)),t==m?f.append(e):f.prepend(e)):(h||(h=a('<div class="buttons buttons-left">'),b[g]?b[g].after(h):d.prepend(h)),t==m?h.append(e):h.prepend(e)))}return y.push(k),k},_.navElement=function(e,t){return i(t)&&(b[e]=t),b[e]},_.update=function(e){var t=!e.hasHeaderBar&&e.showNavBar;e.transition=u.views.transition(),t||(e.direction="none"),_.enable(t);var i=_.isInitialized?function(){for(var e=0;e<y.length;e++)if(!y[e].isActive)return y[e]}():S(),r=_.isInitialized?S():null,o=i.controller();o.enableBack(e.enableBack,!0),o.showBack(e.showBack,!0),o.updateBackButton(),_.title(e.title,i),_.showBar(t),e.navBarItems&&n(v,(function(t){i.setItem(e.navBarItems[t],t)})),_.transition(i,r,e),_.isInitialized=!0,$("")},_.transition=function(e,n,i){var r=e.controller(),o=u.transitions.navBar[i.navBarTransition]||u.transitions.navBar.none,a=i.transitionId;r.beforeEnter(i);var l=o(e,n,i.direction,i.shouldAnimate&&_.isInitialized);function c(){for(var t=0;t<y.length;t++)y[t].isActive=!1;e.isActive=!0,T(e,"active"),T(n,"cached"),_.activeTransition=l=h=null}ionic.DomUtil.cachedAttr(t,"nav-bar-transition",i.navBarTransition),ionic.DomUtil.cachedAttr(t,"nav-bar-direction",i.direction),l.shouldAnimate&&i.renderEnd?T(e,"stage"):(T(e,"entering"),T(n,"leaving")),r.resetBackButton(i),l.run(0),_.activeTransition={run:function(e){l.shouldAnimate=!1,l.direction="back",l.run(e)},cancel:function(t,i,r){$(i),T(n,"active"),T(e,"cached"),l.shouldAnimate=t,l.run(0),_.activeTransition=l=null,r.showBar!==_.showBar()&&_.showBar(r.showBar),r.showBackButton!==_.showBackButton()&&_.showBackButton(r.showBackButton)},complete:function(e,t){$(t),l.shouldAnimate=e,l.run(1),h=c}},s(r.align,16),(d=function(){f===a&&(T(e,"entering"),T(n,"leaving"),l.run(1),h=function(){f!=a&&l.shouldAnimate||c()},d=null)})()},_.triggerTransitionStart=function(e){f=e,d&&d()},_.triggerTransitionEnd=function(){h&&h()},_.showBar=function(t){return arguments.length&&(_.visibleBar(t),e.$parent.$hasHeader=!!t),!!e.$parent.$hasHeader},_.visibleBar=function(e){e&&!w?(t.removeClass("hide"),_.align()):!e&&w&&t.addClass("hide"),w=e},_.enable=function(e){_.visibleBar(e);for(var t=0;t<l._instances.length;t++)l._instances[t]!==_&&l._instances[t].visibleBar(!1)},_.showBackButton=function(t){if(arguments.length){for(var n=0;n<y.length;n++)y[n].controller().showNavBack(!!t);e.$isBackButtonShown=!!t}return e.$isBackButtonShown},_.showActiveBackButton=function(e){var t=S();if(t)return arguments.length?t.controller().showBack(e):t.controller().showBack()},_.title=function(t,n){return i(t)&&(t=t||"",(n=n||S())&&n.title(t),e.$title=t,c.currentTitle(t)),e.$title},_.align=function(e,t){(t=t||S())&&t.controller().align(e)},_.hasTabsTop=function(e){t[e?"addClass":"removeClass"]("nav-bar-tabs-top")},_.hasBarSubheader=function(e){t[e?"addClass":"removeClass"]("nav-bar-has-subheader")},_.changeTitle=function(e){k("changeTitle(val)","title(val)"),_.title(e)},_.setTitle=function(e){k("setTitle(val)","title(val)"),_.title(e)},_.getTitle=function(){return k("getTitle()","title()"),_.title()},_.back=function(){k("back()","$ionicHistory.goBack()"),c.goBack()},_.getPreviousTitle=function(){k("getPreviousTitle()","$ionicHistory.backTitle()"),c.goBack()},e.$on("$destroy",(function(){e.$parent.$hasHeader=!1,t.parent().removeData("$ionNavBarController");for(var n=0;n<y.length;n++)y[n].destroy();t.remove(),t=y=null,M()}))}]),e.controller("$ionicNavView",["$scope","$element","$attrs","$compile","$controller","$ionicNavBarDelegate","$ionicNavViewDelegate","$ionicHistory","$ionicViewSwitcher","$ionicConfig","$ionicScrollDelegate","$ionicSideMenuDelegate",function(e,n,i,r,o,a,s,l,u,c,d,h){var f,p,m,g,v,_="active",y=this,b=!1,w=u.navViewAttr;function L(e,t){for(var i,r,o=n.children(),a=0,s=o.length;a<s;a++)if(i=o.eq(a),w(i)==_){(r=i.scope())&&r.$emit(e.name.replace("Tabs","View"),t),r&&r.$broadcast(e.name.replace("Tabs","ParentView"),t);break}}function M(e){ionic.DomUtil.cachedAttr(n,"nav-swipe",e)}function k(e,t){var n=S();n&&n.hasTabsTop(t)}function x(e,t){var n=S();n&&n.hasBarSubheader(t)}function S(){if(p)for(var e=0;e<a._instances.length;e++)if(a._instances[e].$$delegateHandle==p)return a._instances[e];return n.inheritedData("$ionNavBarController")}y.scope=e,y.element=n,y.init=function(){var t=i.name||"",r=n.parent().inheritedData("$uiView"),o=r&&r.state?r.state.name:"";t.indexOf("@")<0&&(t=t+"@"+o);var a={name:t,state:null};n.data("$uiView",a);var l=s._registerInstance(y,i.delegateHandle);return e.$on("$destroy",(function(){l(),y.isSwipeFreeze&&d.freezeAllScrolls(!1)})),e.$on("$ionicHistory.deselect",y.cacheCleanup),e.$on("$ionicTabs.top",k),e.$on("$ionicSubheader",x),e.$on("$ionicTabs.beforeLeave",L),e.$on("$ionicTabs.afterLeave",L),e.$on("$ionicTabs.leave",L),ionic.Platform.ready((function(){ionic.Platform.isWebView()&&ionic.Platform.isIOS()&&y.initSwipeBack()})),a},y.register=function(n){var i=t({},l.currentView()),r=l.register(e,n);y.update(r);var o=l.getViewById(r.viewId)||{},a=g!==r.viewId;y.render(r,n,o,i,a,!0)},y.update=function(e){b=!0,f=e.direction;var t=n.parent().inheritedData("$ionNavViewController");t&&(t.isPrimary(!1),"enter"!==f&&"exit"!==f||(t.direction(f),"enter"===f&&(f="none")))},y.render=function(e,t,n,i,r,o){var a=u.create(y,t,n,i,r,o);a.init(e,(function(){a.transition(y.direction(),e.enableBack,!v),g=v=null}))},y.beforeEnter=function(e){if(b){p=e.navBarDelegate;var t=S();t&&t.update(e),M("")}},y.activeEleId=function(e){return arguments.length&&(m=e),m},y.transitionEnd=function(){var e,t,i,r=n.children();for(e=0,t=r.length;e<t;e++)(i=r.eq(e)).data("$eleId")===m?w(i,_):"leaving"!==w(i)&&w(i)!==_&&"cached"!==w(i)||(i.data("$destroyEle")||i.data("$noCache")?u.destroyViewEle(i):(w(i,"cached"),ionic.Utils.disconnectScope(i.scope())));M(""),y.isSwipeFreeze&&d.freezeAllScrolls(!1)},y.cacheCleanup=function(){for(var e=n.children(),t=0,i=e.length;t<i;t++)e.eq(t).data("$destroyEle")&&u.destroyViewEle(e.eq(t))},y.clearCache=function(e){var t,i,r,o,a,s,l=n.children();for(r=0,o=l.length;r<o;r++)if(t=l.eq(r),e)for(s=t.data("$eleId"),a=0;a<e.length;a++)s===e[a]&&u.destroyViewEle(t);else"cached"==w(t)?u.destroyViewEle(t):w(t)==_&&(i=t.scope())&&i.$broadcast("$ionicView.clearCache")},y.getViewElements=function(){return n.children()},y.appendViewElement=function(t,i){var a=r(t);n.append(t);var s=e.$new();if(i&&i.$$controller){i.$scope=s;var l=o(i.$$controller,i);i.$$controllerAs&&(s[i.$$controllerAs]=l),n.children().data("$ngControllerController",l)}return a(s),s},y.title=function(e){var t=S();t&&t.title(e)},y.enableBackButton=function(e){var t=S();t&&t.enableBackButton(e)},y.showBackButton=function(e){var t=S();return!t||(arguments.length?t.showActiveBackButton(e):t.showActiveBackButton())},y.showBar=function(e){var t=S();return!t||(arguments.length?t.showBar(e):t.showBar())},y.isPrimary=function(e){return arguments.length&&(b=e),b},y.direction=function(e){return arguments.length&&(f=e),f},y.initSwipeBack=function(){var t,i,r,o,a,s,f,p,m,_=c.views.swipeBackHitWidth(),w={};function L(e){if(b&&c.views.swipeBackEnabled()&&!h.isOpenRight()&&!((p=T(e))>_)){r=l.backView();var o=l.currentView();if(r&&r.historyId===o.historyId&&!1!==o.canSwipeBack){f||(f=window.innerWidth),y.isSwipeFreeze=d.freezeAllScrolls(!0);var g={direction:"back"};m=[],w={showBar:y.showBar(),showBackButton:y.showBackButton()};var v=u.create(y,g,r,o,!0,!1);v.loadViewElements(g),v.render(g),t=v.transition("back",l.enabledBack(r),!0),i=S(),a=ionic.onGesture("drag",k,n[0]),s=ionic.onGesture("release",x,n[0])}}}function k(e){if(b&&t){var n=T(e);if(m.push({t:Date.now(),x:n}),n>=f-15)x(e);else{var r=Math.min(Math.max($(n),0),1);t.run(r),i&&i.activeTransition&&i.activeTransition.run(r)}}}function x(e){if(b&&t&&m&&m.length>1){for(var n=Date.now(),o=T(e),l=m[m.length-1],u=m.length-2;u>=0&&!(n-l.t>200);u--)l=m[u];var c=o>=m[m.length-2].x,h=$(o),p=Math.abs(l.x-o)/(n-l.t);if(g=r.viewId,v=h<.03||h>.97,c&&(h>.5||p>.1)){var _=p>.5||p<.05||o>f-45?"fast":"slow";M(v?"":_),r.go(),i&&i.activeTransition&&i.activeTransition.complete(!v,_)}else M(v?"":"fast"),g=null,t.cancel(!v),i&&i.activeTransition&&i.activeTransition.cancel(!v,"fast",w),v=null}ionic.offGesture(a,"drag",k),ionic.offGesture(s,"release",x),f=t=m=null,y.isSwipeFreeze=d.freezeAllScrolls(!1)}function T(e){return ionic.tap.pointerCoord(e.gesture.srcEvent).x}function $(e){return(e-p)/f}o=ionic.onGesture("dragstart",L,n[0]),e.$on("$destroy",(function(){ionic.offGesture(o,"dragstart",L),ionic.offGesture(a,"drag",k),ionic.offGesture(s,"release",x),y.element=t=i=null}))}}]),e.controller("$ionicRefresher",["$scope","$attrs","$element","$ionicBind","$timeout",function(e,t,n,r,o){var a,s,l,u,c,d=!1,h=!1,f=0,p=0,m=60,g=!1,v=500,_=null,y=null,b=!0;function w(e){e.touches=e.touches||[{screenX:e.screenX,screenY:e.screenY}],_=Math.floor(e.touches[0].screenY)}function L(e){e.touches=e.touches||[{screenX:e.screenX,screenY:e.screenY}],_=e.touches[0].screenY}function M(){_=null,(b||d)&&(d?(d=!1,f=0,p>m?(A(),$(m,v)):($(0,v,E),h=!1)):(f=0,h=!1,T(!1)))}function k(e){if(e.touches=e.touches||[{screenX:e.screenX,screenY:e.screenY}],(_||"mousemove"!=e.type)&&b&&!(e.touches.length>1)){if(null===_&&(_=e.touches[0].screenY),y=e.touches[0].screenY-_,ionic.Platform.isAndroid()&&4.4===ionic.Platform.version()&&!ionic.Platform.isCrosswalk()&&0===a.scrollTop&&y>0&&(d=!0,e.preventDefault()),y-f<=0||0!==a.scrollTop)return h&&(h=!1,T(!1)),d&&function(e,t){e.scrollTop=t;var n=document.createEvent("UIEvents");n.initUIEvent("scroll",!0,!0,window,1),e.dispatchEvent(n)}(a,y- -1*f),void(0!==p&&S(0));y>0&&0===a.scrollTop&&!h&&(f=y),e.preventDefault(),h||(h=!0,T(!0)),d=!0,S((y-f)/3),!g&&p>m?(g=!0,ionic.requestAnimationFrame(C)):g&&p<m&&(g=!1,ionic.requestAnimationFrame(E))}}function x(e){b=0===e.target.scrollTop||d}function S(e){s.style[ionic.CSS.TRANSFORM]="translate3d(0px, "+e+"px, 0px)",p=e}function T(e){e?ionic.requestAnimationFrame((function(){s.classList.add("overscroll"),P()})):ionic.requestAnimationFrame((function(){s.classList.remove("overscroll"),Y(),E()}))}function $(e,t,n){var i=Date.now(),r=p;r!==e?ionic.requestAnimationFrame((function o(){var a=Date.now(),s=Math.min(1,(a-i)/t),l=function(e){return--e*e*e+1}(s);S(Math.floor(l*(e-r)+r)),s<1?ionic.requestAnimationFrame(o):(e<5&&e>-5&&(h=!1,T(!1)),n&&n())})):n()}function D(){s&&(ionic.off(l,L,s),ionic.off(u,k,s),ionic.off(c,M,s),ionic.off("mousedown",w,s),ionic.off("mousemove",k,s),ionic.off("mouseup",M,s)),a&&ionic.off("scroll",x,a),a=null,s=null}function C(){n[0].classList.add("active"),e.$onPulling()}function E(){o((function(){n.removeClass("active refreshing refreshing-tail"),g&&(g=!1)}),150)}function A(){n[0].classList.add("refreshing");var t=e.$onRefresh();t&&t.then&&t.finally((function(){e.$broadcast("scroll.refreshComplete")}))}function P(){n[0].classList.remove("invisible")}function Y(){n[0].classList.add("invisible")}function O(){n[0].classList.add("refreshing-tail")}i(t.pullingIcon)||t.$set("pullingIcon","ion-android-arrow-down"),e.showSpinner=!i(t.refreshingIcon)&&"none"!=t.spinner,e.showIcon=i(t.refreshingIcon),r(e,t,{pullingIcon:"@",pullingText:"@",refreshingIcon:"@",refreshingText:"@",spinner:"@",disablePullingRotation:"@",$onRefresh:"&onRefresh",$onPulling:"&onPulling"}),e.$on("scroll.refreshComplete",(function(){o((function(){ionic.requestAnimationFrame(O),$(0,v,E),o((function(){h&&(h=!1,T(!1))}),v)}),v)})),window.navigator.pointerEnabled?(l="pointerdown",u="pointermove",c="pointerup"):window.navigator.msPointerEnabled?(l="MSPointerDown",u="MSPointerMove",c="MSPointerUp"):(l="touchstart",u="touchmove",c="touchend"),this.init=function(){if(a=n.parent().parent()[0],s=n.parent()[0],!(a&&a.classList.contains("ionic-scroll")&&s&&s.classList.contains("scroll")))throw new Error("Refresher must be immediate child of ion-content or ion-scroll");ionic.on(l,L,s),ionic.on(u,k,s),ionic.on(c,M,s),ionic.on("mousedown",w,s),ionic.on("mousemove",k,s),ionic.on("mouseup",M,s),ionic.on("scroll",x,a),e.$on("$destroy",D)},this.getRefresherDomMethods=function(){return{activate:C,deactivate:E,start:A,show:P,hide:Y,tail:O}},this.__handleTouchmove=k,this.__getScrollChild=function(){return s},this.__getScrollParent=function(){return a}}]),e.controller("$ionicScroll",["$scope","scrollViewOptions","$timeout","$window","$location","$document","$ionicScrollDelegate","$ionicHistory",function(e,t,n,r,o,s,l,u){var c=this;c.__timeout=n,c._scrollViewOptions=t,c.isNative=function(){return!!t.nativeScrolling};var d,h=c.element=t.el,f=c.$element=a(h);d=c.isNative()?c.scrollView=new ionic.views.ScrollNative(t):c.scrollView=new ionic.views.Scroll(t),(f.parent().length?f.parent():f).data("$$ionicScrollController",c);var p=l._registerInstance(c,t.delegateHandle,(function(){return u.isActiveScope(e)}));i(t.bouncing)||ionic.Platform.ready((function(){d&&d.options&&(d.options.bouncing=!0,ionic.Platform.isAndroid()&&(d.options.bouncing=!1,d.options.deceleration=.95))}));var m=angular.bind(d,d.resize);angular.element(r).on("resize",m);var g=function(t){var n=(t.originalEvent||t).detail||{};e.$onScroll&&e.$onScroll({event:t,scrollTop:n.scrollTop||0,scrollLeft:n.scrollLeft||0})};f.on("scroll",g),e.$on("$destroy",(function(){p(),d&&d.__cleanup&&d.__cleanup(),angular.element(r).off("resize",m),f&&f.off("scroll",g),c._scrollViewOptions&&(c._scrollViewOptions.el=null),t&&(t.el=null),d=c.scrollView=t=c._scrollViewOptions=h=c.$element=f=null})),n((function(){d&&d.run&&d.run()})),c.getScrollView=function(){return d},c.getScrollPosition=function(){return d.getValues()},c.resize=function(){return n(m,0,!1).then((function(){f&&f.triggerHandler("scroll-resize")}))},c.scrollTop=function(e){c.resize().then((function(){d&&d.scrollTo(0,0,!!e)}))},c.scrollBottom=function(e){c.resize().then((function(){if(d){var t=d.getScrollMax();d.scrollTo(t.left,t.top,!!e)}}))},c.scrollTo=function(e,t,n){c.resize().then((function(){d&&d.scrollTo(e,t,!!n)}))},c.zoomTo=function(e,t,n,i){c.resize().then((function(){d&&d.zoomTo(e,!!t,n,i)}))},c.zoomBy=function(e,t,n,i){c.resize().then((function(){d&&d.zoomBy(e,!!t,n,i)}))},c.scrollBy=function(e,t,n){c.resize().then((function(){d&&d.scrollBy(e,t,!!n)}))},c.anchorScroll=function(e){c.resize().then((function(){if(d){var t=o.hash(),n=t&&s[0].getElementById(t);if(t&&n){var i=n,r=0,a=0;do{null!==i&&(r+=i.offsetLeft),null!==i&&(a+=i.offsetTop),i=i.offsetParent}while(i.attributes!=c.element.attributes&&i.offsetParent);d.scrollTo(r,a,!!e)}else d.scrollTo(0,0,!!e)}}))},c.freezeScroll=d.freeze,c.freezeScrollShut=d.freezeShut,c.freezeAllScrolls=function(e){for(var t=0;t<l._instances.length;t++)l._instances[t].freezeScroll(e)},c._setRefresher=function(e,t,n){c.refresher=t;var i=c.refresher.clientHeight||60;d.activatePullToRefresh(i,n)}}]),e.controller("$ionicSideMenus",["$scope","$attrs","$ionicSideMenuDelegate","$ionicPlatform","$ionicBody","$ionicHistory","$ionicScrollDelegate","IONIC_BACK_PRIORITY","$rootScope",function(e,t,n,i,o,a,l,u,c){var d,h,f,p,m,g,v,_=this,y=!0;_.$scope=e,_.initialize=function(e){_.left=e.left,_.right=e.right,_.setContent(e.content),_.dragThresholdX=e.dragThresholdX||10,a.registerHistory(_.$scope)},_.setContent=function(e){e&&(_.content=e,_.content.onDrag=function(e){_._handleDrag(e)},_.content.endDrag=function(e){_._endDrag(e)})},_.isOpenLeft=function(){return _.getOpenAmount()>0},_.isOpenRight=function(){return _.getOpenAmount()<0},_.toggleLeft=function(e){if(!v&&_.left.isEnabled){var t=_.getOpenAmount();0===arguments.length&&(e=t<=0),_.content.enableAnimation(),e?(_.openPercentage(100),c.$emit("$ionicSideMenuOpen","left")):(_.openPercentage(0),c.$emit("$ionicSideMenuClose","left"))}},_.toggleRight=function(e){if(!v&&_.right.isEnabled){var t=_.getOpenAmount();0===arguments.length&&(e=t>=0),_.content.enableAnimation(),e?(_.openPercentage(-100),c.$emit("$ionicSideMenuOpen","right")):(_.openPercentage(0),c.$emit("$ionicSideMenuClose","right"))}},_.toggle=function(e){"right"==e?_.toggleRight():_.toggleLeft()},_.close=function(){_.openPercentage(0),c.$emit("$ionicSideMenuClose","left"),c.$emit("$ionicSideMenuClose","right")},_.getOpenAmount=function(){return _.content&&_.content.getTranslateX()||0},_.getOpenRatio=function(){var e=_.getOpenAmount();return e>=0?e/_.left.width:e/_.right.width},_.isOpen=function(){return 0!==_.getOpenAmount()},_.getOpenPercentage=function(){return 100*_.getOpenRatio()},_.openPercentage=function(e){var t=e/100;_.left&&e>=0?_.openAmount(_.left.width*t):_.right&&e<0&&_.openAmount(_.right.width*t),o.enableClass(0!==e,"menu-open"),_.content.setCanScroll(0==e)},_.openAmount=function(e){var t=_.left&&_.left.width||0,n=_.right&&_.right.width||0;(!_.left||!_.left.isEnabled)&&e>0||(!_.right||!_.right.isEnabled)&&e<0?_.content.setTranslateX(0):h&&e>t?_.content.setTranslateX(t):d&&e<-n?_.content.setTranslateX(-n):(_.content.setTranslateX(e),h=e>0,d=e<0,e>0?(_.right&&_.right.pushDown&&_.right.pushDown(),_.left&&_.left.bringUp&&_.left.bringUp()):(_.right&&_.right.bringUp&&_.right.bringUp(),_.left&&_.left.pushDown&&_.left.pushDown()))},_.snapToRest=function(e){_.content.enableAnimation(),f=!1;var t=_.getOpenRatio();if(0!==t){var n=e.gesture.velocityX,i=e.gesture.direction;t>0&&t<.5&&"right"==i&&n<.3?_.openPercentage(0):t>.5&&"left"==i&&n<.3?_.openPercentage(100):t<0&&t>-.5&&"left"==i&&n<.3?_.openPercentage(0):t<.5&&"right"==i&&n<.3?_.openPercentage(-100):"right"==i&&t>=0&&(t>=.5||n>.3)?_.openPercentage(100):"left"==i&&t<=0&&(t<=-.5||n>.3)?_.openPercentage(-100):_.openPercentage(0)}else _.openPercentage(0)},_.enableMenuWithBackViews=function(e){return arguments.length&&(y=!!e),y},_.isAsideExposed=function(){return!!v},_.exposeAside=function(e){(_.left&&_.left.isEnabled||_.right&&_.right.isEnabled)&&(_.close(),v=e,_.left&&_.left.isEnabled&&_.right&&_.right.isEnabled?_.content.setMarginLeftAndRight(v?_.left.width:0,v?_.right.width:0):_.left&&_.left.isEnabled?_.content.setMarginLeft(v?_.left.width:0):_.right&&_.right.isEnabled&&_.content.setMarginRight(v?_.right.width:0),_.$scope.$emit("$ionicExposeAside",v))},_.activeAsideResizing=function(e){o.enableClass(e,"aside-resizing")},_._endDrag=function(e){v||(f&&_.snapToRest(e),p=null,m=null,g=null)},_._handleDrag=function(t){!v&&e.dragContent&&(p?m=t.gesture.touches[0].pageX:(p=t.gesture.touches[0].pageX,m=p),!f&&Math.abs(m-p)>_.dragThresholdX&&(p=m,f=!0,_.content.disableAnimation(),g=_.getOpenAmount()),f&&_.openAmount(g+(m-p)))},_.canDragContent=function(t){return arguments.length&&(e.dragContent=!!t),e.dragContent},_.edgeThreshold=25,_.edgeThresholdEnabled=!1,_.edgeDragThreshold=function(e){return arguments.length&&(r(e)&&e>0?(_.edgeThreshold=e,_.edgeThresholdEnabled=!0):_.edgeThresholdEnabled=!!e),_.edgeThresholdEnabled},_.isDraggableTarget=function(t){var n=_.edgeThresholdEnabled&&!_.isOpen(),i=t.gesture.startEvent&&t.gesture.startEvent.center&&t.gesture.startEvent.center.pageX,r=!n||i<=_.edgeThreshold||i>=_.content.element.offsetWidth-_.edgeThreshold,o=a.backView(),s=!!y||!o;if(!s){var l=a.currentView()||{};return r&&o.historyId!==l.historyId}return(e.dragContent||_.isOpen())&&r&&!t.gesture.srcEvent.defaultPrevented&&s&&!t.target.tagName.match(/input|textarea|select|object|embed/i)&&!t.target.isContentEditable&&!(t.target.dataset?t.target.dataset.preventScroll:"true"==t.target.getAttribute("data-prevent-scroll"))},e.sideMenuContentTranslateX=0;var b=s,w=angular.bind(_,_.close);e.$watch((function(){return 0!==_.getOpenAmount()}),(function(e){b(),e&&(b=i.registerBackButtonAction(w,u.sideMenu))}));var L=n._registerInstance(_,t.delegateHandle,(function(){return a.isActiveScope(e)}));e.$on("$destroy",(function(){L(),b(),_.$scope=null,_.content&&(_.content.setCanScroll(!0),_.content.element=null,_.content=null)})),_.initialize({left:{width:275},right:{width:275}})}]),function(t){var n={a:"animate",an:"attributeName",at:"animateTransform",c:"circle",da:"stroke-dasharray",os:"stroke-dashoffset",f:"fill",lc:"stroke-linecap",rc:"repeatCount",sw:"stroke-width",t:"transform",v:"values"},i={v:"0,32,32;360,32,32",an:"transform",type:"rotate",rc:"indefinite",dur:"750ms"};function r(e,t,i){e.setAttribute(n[t]||t,i)}function o(e,t){var n=e.split(";"),i=n.slice(t),r=n.slice(0,n.length-i.length);return(n=i.concat(r).reverse()).join(";")+";"+n[0]}var a={sw:4,lc:"round",line:[{fn:function(e,t){return{y1:"ios"==t?17:12,y2:"ios"==t?29:20,t:"translate(32,32) rotate("+(30*e+(e<6?180:-180))+")",a:[{fn:function(){return{an:"stroke-opacity",dur:"750ms",v:o("0;.1;.15;.25;.35;.45;.55;.65;.7;.85;1",e),rc:"indefinite"}},t:1}]}},t:12}]},s={android:{c:[{sw:6,da:128,os:82,r:26,cx:32,cy:32,f:"none"}]},ios:a,"ios-small":a,bubbles:{sw:0,c:[{fn:function(e){return{cx:24*Math.cos(2*Math.PI*e/8),cy:24*Math.sin(2*Math.PI*e/8),t:"translate(32,32)",a:[{fn:function(){return{an:"r",dur:"750ms",v:o("1;2;3;4;5;6;7;8",e),rc:"indefinite"}},t:1}]}},t:8}]},circles:{c:[{fn:function(e){return{r:5,cx:24*Math.cos(2*Math.PI*e/8),cy:24*Math.sin(2*Math.PI*e/8),t:"translate(32,32)",sw:0,a:[{fn:function(){return{an:"fill-opacity",dur:"750ms",v:o(".3;.3;.3;.4;.7;.85;.9;1",e),rc:"indefinite"}},t:1}]}},t:8}]},crescent:{c:[{sw:4,da:128,os:82,r:26,cx:32,cy:32,f:"none",at:[i]}]},dots:{c:[{fn:function(e){return{cx:16+16*e,cy:32,sw:0,a:[{fn:function(){return{an:"fill-opacity",dur:"750ms",v:o(".5;.6;.8;1;.8;.6;.5",e),rc:"indefinite"}},t:1},{fn:function(){return{an:"r",dur:"750ms",v:o("4;5;6;5;4;3;3",e),rc:"indefinite"}},t:1}]}},t:3}]},lines:{sw:7,lc:"round",line:[{fn:function(e){return{x1:10+14*e,x2:10+14*e,a:[{fn:function(){return{an:"y1",dur:"750ms",v:o("16;18;28;18;16",e),rc:"indefinite"}},t:1},{fn:function(){return{an:"y2",dur:"750ms",v:o("48;44;36;46;48",e),rc:"indefinite"}},t:1},{fn:function(){return{an:"stroke-opacity",dur:"750ms",v:o("1;.8;.5;.4;1",e),rc:"indefinite"}},t:1}]}},t:4}]},ripple:{f:"none","fill-rule":"evenodd",sw:3,circle:[{fn:function(e){return{cx:32,cy:32,a:[{fn:function(){return{an:"r",begin:-1*e+"s",dur:"2s",v:"0;24",keyTimes:"0;1",keySplines:"0.1,0.2,0.3,1",calcMode:"spline",rc:"indefinite"}},t:1},{fn:function(){return{an:"stroke-opacity",begin:-1*e+"s",dur:"2s",v:".2;1;.2;0",rc:"indefinite"}},t:1}]}},t:2}]},spiral:{defs:[{linearGradient:[{id:"sGD",gradientUnits:"userSpaceOnUse",x1:55,y1:46,x2:2,y2:46,stop:[{offset:.1,class:"stop1"},{offset:1,class:"stop2"}]}]}],g:[{sw:4,lc:"round",f:"none",path:[{stroke:"url(#sGD)",d:"M4,32 c0,15,12,28,28,28c8,0,16-4,21-9"},{d:"M60,32 C60,16,47.464,4,32,4S4,16,4,32"}],at:[i]}]}},l={android:function(e){var n={};this.stop=!1;var i,o=0,a=0,s=e.querySelector("g"),l=e.querySelector("circle");function u(){if(!n.stop){var e=function(e,t){return(e/=325)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}(Date.now()-i),c=1,d=0,h=188-58*e,f=182-182*e;o%2&&(c=-1,d=-64,h=128- -58*e,f=182*e);var p=[0,-101,-90,-11,-180,79,-270,-191][o];r(l,"da",Math.max(Math.min(h,188),128)),r(l,"os",Math.max(Math.min(f,182),0)),r(l,"t","scale("+c+",1) translate("+d+",0) rotate("+p+",32,32)"),(a+=4.1)>359&&(a=0),r(s,"t","rotate("+a+",32,32)"),e>=1&&(++o>7&&(o=0),i=Date.now()),t.requestAnimationFrame(u)}}return function(){return i=Date.now(),u(),n}}};e.controller("$ionicSpinner",["$element","$attrs","$ionicConfig",function(e,t,i){var o,a;this.init=function(){o=t.icon||i.spinner.icon();var a=document.createElement("div");return function e(t,i,o,a){var s,l,u,c=document.createElement(n[t]||t);for(s in i)if(angular.isArray(i[s]))for(l=0;l<i[s].length;l++)if(i[s][l].fn)for(u=0;u<i[s][l].t;u++)e(s,i[s][l].fn(u,a),c,a);else e(s,i[s][l],c,a);else r(c,s,i[s]);o.appendChild(c)}("svg",{viewBox:"0 0 64 64",g:[s[o]]},a,o),e.html(a.innerHTML),this.start(),o},this.start=function(){l[o]&&(a=l[o](e[0])())},this.stop=function(){l[o]&&(a.stop=!0)}}])}(ionic),e.controller("$ionicTab",["$scope","$ionicHistory","$attrs","$location","$state",function(e,t,n,i,r){this.$scope=e,this.hrefMatchesState=function(){return n.href&&0===i.path().indexOf(n.href.replace(/^#/,"").replace(/\/$/,""))},this.srefMatchesState=function(){return n.uiSref&&r.includes(n.uiSref.split("(")[0])},this.navNameMatchesState=function(){return this.navViewName&&t.isCurrentStateNavView(this.navViewName)},this.tabMatchesState=function(){return this.hrefMatchesState()||this.srefMatchesState()||this.navNameMatchesState()}}]),e.controller("$ionicTabs",["$scope","$element","$ionicHistory",function(e,t,i){var o,a=this,l=null,u=null,c=!0;a.tabs=[],a.selectedIndex=function(){return a.tabs.indexOf(l)},a.selectedTab=function(){return l},a.previousSelectedTab=function(){return u},a.add=function(e){i.registerHistory(e),a.tabs.push(e)},a.remove=function(e){var t=a.tabs.indexOf(e);if(-1!==t){if(e.$tabSelected)if(a.deselect(e),1===a.tabs.length);else{var n=t===a.tabs.length-1?t-1:t+1;a.select(a.tabs[n])}a.tabs.splice(t,1)}},a.deselect=function(e){e.$tabSelected&&(u=l,l=o=null,e.$tabSelected=!1,(e.onDeselect||s)(),e.$broadcast&&e.$broadcast("$ionicHistory.deselect"))},a.select=function(t,u){var c;if(r(t)){if((c=t)>=a.tabs.length)return;t=a.tabs[c]}else c=a.tabs.indexOf(t);1===arguments.length&&(u=!(!t.navViewName&&!t.uiSref)),l&&l.$historyId==t.$historyId?u&&i.goToHistoryRoot(t.$historyId):o!==c&&(n(a.tabs,(function(e){a.deselect(e)})),l=t,o=c,a.$scope&&a.$scope.$parent&&(a.$scope.$parent.$activeHistoryId=t.$historyId),t.$tabSelected=!0,(t.onSelect||s)(),u&&e.$emit("$ionicHistory.change",{type:"tab",tabIndex:c,historyId:t.$historyId,navViewName:t.navViewName,hasNavView:!!t.navViewName,title:t.title,url:t.href,uiSref:t.uiSref}),e.$broadcast("tabSelected",{selectedTab:t,selectedTabIndex:c}))},a.hasActiveScope=function(){for(var e=0;e<a.tabs.length;e++)if(i.isActiveScope(a.tabs[e]))return!0;return!1},a.showBar=function(e){return arguments.length&&(e?t.removeClass("tabs-item-hide"):t.addClass("tabs-item-hide"),c=!!e),c}}]),e.controller("$ionicView",["$scope","$element","$attrs","$compile","$rootScope",function(e,n,r,o,a){var s,l,u,c=this,d={},h=[],f=e.$on("ionNavBar.init",(function(e,t){e.stopPropagation(),l=t}));function p(){var t=i(r.viewTitle)?"viewTitle":i(r.title)&&"title";t&&(m(r[t]),h.push(r.$observe(t,m))),i(r.hideBackButton)&&h.push(e.$watch(r.hideBackButton,(function(e){s.showBackButton(!e)}))),i(r.hideNavBar)&&h.push(e.$watch(r.hideNavBar,(function(e){s.showBar(!e)})))}function m(e){i(e)&&e!==u&&(u=e,s.title(u))}function g(){for(var e=0;e<h.length;e++)h[e]();h=[]}function v(t){if(t)return o(t)(e.$new())}function _(t){return!!e.$eval(r[t])}c.init=function(){f();var t=n.inheritedData("$ionModalController");(s=n.inheritedData("$ionNavViewController"))&&!t&&(e.$on("$ionicView.beforeEnter",c.beforeEnter),e.$on("$ionicView.afterEnter",p),e.$on("$ionicView.beforeLeave",g))},c.beforeEnter=function(n,o){if(o&&!o.viewNotified){o.viewNotified=!0,a.$$phase||e.$digest(),u=i(r.viewTitle)?r.viewTitle:r.title;var c={};for(var h in d)c[h]=v(d[h]);s.beforeEnter(t(o,{title:u,showBack:!_("hideBackButton"),navBarItems:c,navBarDelegate:l||null,showNavBar:!_("hideNavBar"),hasHeaderBar:!1})),g()}},c.navElement=function(e,t){d[e]=t}}]),e.directive("ionActionSheet",["$document",function(e){return{restrict:"E",scope:!0,replace:!0,link:function(t,n){var i=function(e){27==e.which&&(t.cancel(),t.$apply())};t.$on("$destroy",(function(){n.remove(),e.unbind("keyup",i)})),e.bind("keyup",i),n.bind("click",(function(e){e.target==n[0]&&(t.cancel(),t.$apply())}))},template:'<div class="action-sheet-backdrop"><div class="action-sheet-wrapper"><div class="action-sheet" ng-class="{\'action-sheet-has-icons\': $actionSheetHasIcon}"><div class="action-sheet-group action-sheet-options"><div class="action-sheet-title" ng-if="titleText" ng-bind-html="titleText"></div><button class="button action-sheet-option" ng-click="buttonClicked($index)" ng-class="b.className" ng-repeat="b in buttons" ng-bind-html="b.text"></button><button class="button destructive action-sheet-destructive" ng-if="destructiveText" ng-click="destructiveButtonClicked()" ng-bind-html="destructiveText"></button></div><div class="action-sheet-group action-sheet-cancel" ng-if="cancelText"><button class="button" ng-click="cancel()" ng-bind-html="cancelText"></button></div></div></div></div>'}}]),e.directive("ionCheckbox",["$ionicConfig",function(e){return{restrict:"E",replace:!0,require:"?ngModel",transclude:!0,template:'<label class="item item-checkbox"><div class="checkbox checkbox-input-hidden disable-pointer-events"><input type="checkbox"><i class="checkbox-icon"></i></div><div class="item-content disable-pointer-events" ng-transclude></div></label>',compile:function(t,r){var o=t.find("input");n({name:r.name,"ng-value":r.ngValue,"ng-model":r.ngModel,"ng-checked":r.ngChecked,"ng-disabled":r.ngDisabled,"ng-true-value":r.ngTrueValue,"ng-false-value":r.ngFalseValue,"ng-change":r.ngChange,"ng-required":r.ngRequired,required:r.required},(function(e,t){i(e)&&o.attr(t,e)})),t[0].querySelector(".checkbox").classList.add("checkbox-"+e.form.checkbox())}}}]),e.directive("collectionRepeat",f).factory("$ionicCollectionManager",p);var c="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",d=/height:.*?px;\s*width:.*?px/,h=3;function f(e,t,n,r,o,a){return{restrict:"A",priority:1e3,transclude:"element",$$tlb:!0,require:"^^$ionicScroll",link:function(r,s,l,u,c){var d=u.scrollView,f=s[0],p=angular.element('<div class="collection-repeat-container">')[0];if(f.parentNode.replaceChild(p,f),d.options.scrollingX&&d.options.scrollingY)throw new Error("collection-repeat expected a parent x or y scrollView, not an xy scrollView.");var m=l.collectionRepeat,g=m.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!g)throw new Error("collection-repeat expected expression in form of '_item_ in _collection_[ track by _id_]' but got '"+l.collectionRepeat+"'.");var v,_=g[1],y=g[2],b=t(y),w={},L={},M={},k=[],x=l.itemRenderBuffer||l.collectionBufferSize,S=angular.isDefined(x)?parseInt(x):h,T=l.itemHeight||l.collectionItemHeight,$=l.itemWidth||l.collectionItemWidth,D=function(){var e=angular.element(d.__content.querySelector(".collection-repeat-after-container"));if(!e.length){var t=!1,n=[].filter.call(d.__content.childNodes,(function(e){return ionic.DomUtil.contains(e,p)?(t=!0,!1):t}));e=angular.element('<span class="collection-repeat-after-container">'),d.options.scrollingX&&e.addClass("horizontal"),e.append(n),d.__content.appendChild(e[0])}return e}(),C=function(){var e;return e={dataLength:0,width:0,height:0,resizeRequiresRefresh:function(t,n){var i=e.dataLength&&t&&n&&(t!==e.width||n!==e.height);return e.width=t,e.height=n,!!i},dataChangeRequiresRefresh:function(t){var n=t.length>0||t.length<e.dataLength;return e.dataLength=t.length,!!n}}}();T?j(T,w):w.computed=!0,$?j($,L):L.computed=!0,u.$element.on("scroll-resize",I),angular.element(n).on("resize",Y);var E,A,P=o.$on("$ionicExposeAside",ionic.animationFrameThrottle((function(){u.scrollView.resize(),Y()})));function Y(){C.resizeRequiresRefresh(d.__clientWidth,d.__clientHeight)&&I()}function O(){return v||(v=new e({afterItemsNode:D[0],containerNode:p,heightData:w,widthData:L,forceRefreshImages:!(!i(l.forceRefreshImages)||"false"===l.forceRefreshImages),keyExpression:_,renderBuffer:S,scope:r,scrollView:u.scrollView,transclude:c}))}function I(){var e=k.length>0;if(e&&(w.computed||L.computed)&&function(){E||c(A=r.$new(),(function(e){e[0].removeAttribute("collection-repeat"),E=e[0]})),A[_]=(b(r)||[])[0],o.$$phase||A.$digest(),p.appendChild(E);var e=n.getComputedStyle(E);M.width=parseInt(e.width),M.height=parseInt(e.height),p.removeChild(E)}(),e&&w.computed){if(w.value=M.height,!w.value)throw new Error('collection-repeat tried to compute the height of repeated elements "'+m+'", but was unable to. Please provide the "item-height" attribute. http://ionicframework.com/docs/api/directive/collectionRepeat/')}else!w.dynamic&&w.getValue&&(w.value=w.getValue());if(e&&L.computed){if(L.value=M.width,!L.value)throw new Error('collection-repeat tried to compute the width of repeated elements "'+m+'", but was unable to. Please provide the "item-width" attribute. http://ionicframework.com/docs/api/directive/collectionRepeat/')}else!L.dynamic&&L.getValue&&(L.value=L.getValue());O().refreshLayout()}function j(e,n){if(e){var i;try{i=t(e)}catch(n){e.trim().match(/\d+(px|%)$/)&&(e='"'+e+'"'),i=t(e)}var r=e.replace(/(\'|\"|px|%)/g,"").trim(),o=r.length&&!/([a-zA-Z]|\$|:|\?)/.test(r);if(n.attrValue=e,o)if(e.indexOf("%")>-1){var a=parseFloat(i())/100;n.getValue=n===w?function(){return Math.floor(a*d.__clientHeight)}:function(){return Math.floor(a*d.__clientWidth)}}else n.value=parseInt(i());else n.dynamic=!0,n.getValue=n===w?function(e,t){var n=i(e,t);return n.charAt&&"%"===n.charAt(n.length-1)?Math.floor(parseFloat(n)/100*d.__clientHeight):parseInt(n)}:function(e,t){var n=i(e,t);return n.charAt&&"%"===n.charAt(n.length-1)?Math.floor(parseFloat(n)/100*d.__clientWidth):parseInt(n)}}}a(I,0,!1),r.$watchCollection(b,(function(e){if(k=e||(e=[]),!angular.isArray(e))throw new Error("collection-repeat expected an array for '"+y+"', but got a "+typeof value);r.$$postDigest((function(){O().setData(k),C.dataChangeRequiresRefresh(k)&&I()}))})),r.$on("$destroy",(function(){angular.element(n).off("resize",Y),P(),u.$element&&u.$element.off("scroll-resize",I),E&&E.parentNode&&E.parentNode.removeChild(E),A&&A.$destroy(),A=E=null,v&&v.destroy(),v=null}))}}}function p(e,t,n){var i={primaryPos:0,secondaryPos:0,primarySize:0,secondarySize:0,rowPrimarySize:0};return function(r){var o,a,s=r.afterItemsNode,l=r.containerNode,u=r.forceRefreshImages,h=r.heightData,f=r.widthData,p=r.keyExpression,m=r.renderBuffer,g=r.scope,v=r.scrollView,_=r.transclude,y=[],b={},w=h.getValue||function(){return h.value},L=function(e,t){return b[p]=t,b.$index=e,w(g,b)},M=f.getValue||function(){return f.value},k=function(e,t){return b[p]=t,b.$index=e,M(g,b)},x=!!v.options.scrollingY,S=x?f.dynamic||f.value!==v.__clientWidth:h.dynamic||h.value!==v.__clientHeight,T=!h.dynamic&&!f.dynamic,$="PRIMARY",D="SECONDARY",C=x?"translate3d(SECONDARYpx,PRIMARYpx,0)":"translate3d(PRIMARYpx,SECONDARYpx,0)",E=x?"height: PRIMARYpx; width: SECONDARYpx;":"height: SECONDARYpx; width: PRIMARYpx;",A=0,P=0,Y=-1,O=-1,I=-1,j=-1,H=[],B=[],N=[],R={},F=0,z=x?function(){v.setDimensions(null,null,null,V.getContentSize(),!0)}:function(){v.setDimensions(null,null,V.getContentSize(),null,!0)},V=x?new function(){this.getItemPrimarySize=L,this.getItemSecondarySize=k,this.getScrollValue=function(){return Math.max(0,Math.min(v.__scrollTop-A,v.__maxScrollTop-A-P))},this.refreshDirection=function(){this.scrollPrimarySize=v.__clientHeight,this.scrollSecondarySize=v.__clientWidth,this.estimatedPrimarySize=o,this.estimatedSecondarySize=a,this.estimatedItemsAcross=S&&Math.floor(v.__clientWidth/a)||1}}:new function(){this.getItemPrimarySize=k,this.getItemSecondarySize=L,this.getScrollValue=function(){return Math.max(0,Math.min(v.__scrollLeft-A,v.__maxScrollLeft-A-P))},this.refreshDirection=function(){this.scrollPrimarySize=v.__clientWidth,this.scrollSecondarySize=v.__clientHeight,this.estimatedPrimarySize=a,this.estimatedSecondarySize=o,this.estimatedItemsAcross=S&&Math.floor(v.__clientHeight/o)||1}};(S?function(){this.getEstimatedSecondaryPos=function(e){return e%this.estimatedItemsAcross*this.estimatedSecondarySize},this.getEstimatedPrimaryPos=function(e){return Math.floor(e/this.estimatedItemsAcross)*this.estimatedPrimarySize},this.getEstimatedIndex=function(e){return Math.floor(e/this.estimatedPrimarySize)*this.estimatedItemsAcross}}:function(){this.getEstimatedSecondaryPos=function(){return 0},this.getEstimatedPrimaryPos=function(e){return e*this.estimatedPrimarySize},this.getEstimatedIndex=function(e){return Math.floor(e/this.estimatedPrimarySize)}}).call(V),(T?function(){this.getContentSize=function(){return this.getEstimatedPrimaryPos(y.length-1)+this.estimatedPrimarySize+A+P};var e={};this.getDimensions=function(t){return e.primaryPos=this.getEstimatedPrimaryPos(t),e.secondaryPos=this.getEstimatedSecondaryPos(t),e.primarySize=this.estimatedPrimarySize,e.secondarySize=this.estimatedSecondarySize,e},this.updateRenderRange=function(e,t){Y=Math.max(0,this.getEstimatedIndex(e)),O=Math.min(y.length-1,this.getEstimatedIndex(t)+this.estimatedItemsAcross-1),j=Math.max(0,this.getEstimatedPrimaryPos(Y)),I=this.getEstimatedPrimaryPos(O)+this.estimatedPrimarySize}}:function(){var e,t=this,n=ionic.debounce(z,25,!0),r=S?function(n){var r,a,s;for(r=Math.max(e,0);r<=n&&(s=o[r]);r++)a=o[r-1]||i,s.secondarySize=Math.min(t.getItemSecondarySize(r,y[r]),t.scrollSecondarySize),s.secondaryPos=a.secondaryPos+a.secondarySize,0===r||s.secondaryPos+s.secondarySize>t.scrollSecondarySize?(s.secondaryPos=0,s.primarySize=t.getItemPrimarySize(r,y[r]),s.primaryPos=a.primaryPos+a.rowPrimarySize,s.rowStartIndex=r,s.rowPrimarySize=s.primarySize):(s.primarySize=t.getItemPrimarySize(r,y[r]),s.primaryPos=a.primaryPos,s.rowStartIndex=a.rowStartIndex,o[s.rowStartIndex].rowPrimarySize=s.rowPrimarySize=Math.max(o[s.rowStartIndex].rowPrimarySize,s.primarySize),s.rowPrimarySize=Math.max(s.primarySize,s.rowPrimarySize))}:function(n){var r,a,s;for(r=Math.max(0,e);r<=n&&(s=o[r]);r++)a=o[r-1]||i,s.primarySize=t.getItemPrimarySize(r,y[r]),s.secondarySize=t.scrollSecondarySize,s.primaryPos=a.primaryPos+a.primarySize,s.secondaryPos=0},o=[];this.getContentSize=function(){var t=o[e]||i;return(t.primaryPos+t.primarySize||0)+this.getEstimatedPrimaryPos(y.length-e-1)+A+P},this.onDestroy=function(){o.length=0},this.onRefreshData=function(){var t,n;for(t=o.length,n=y.length;t<n;t++)o.push({});e=-1},this.onRefreshLayout=function(){e=-1},this.getDimensions=function(t){return t=Math.min(t,y.length-1),e<t&&(t>.9*y.length?(r(y.length-1),e=y.length-1,z()):(r(t),e=t,n())),o[t]};var a=-1,s=-1;this.updateRenderRange=function(e,t){var n,i,r,o;if(this.getDimensions(2*this.getEstimatedIndex(t)),-1===a||0===e)n=0;else if(e>=s)for(n=a,i=y.length;n<i&&!((r=this.getDimensions(n))&&r.primaryPos+r.rowPrimarySize>=e);n++);else for(n=a;n>=0;n--)if((r=this.getDimensions(n))&&r.primaryPos<=e){n=S?r.rowStartIndex:n;break}for(Y=Math.min(Math.max(0,n),y.length-1),j=-1!==Y?this.getDimensions(Y).primaryPos:-1,n=Y+1,i=y.length;n<i;n++)if((r=this.getDimensions(n))&&r.primaryPos+r.rowPrimarySize>t){if(S)for(o=r;n<i-1&&(r=this.getDimensions(n+1)).primaryPos===o.primaryPos;)n++;break}O=Math.min(n,y.length-1),I=-1!==O?(r=this.getDimensions(O)).primaryPos+(r.rowPrimarySize||r.primarySize):-1,s=e,a=Y}}).call(V);var U=x?"getContentHeight":"getContentWidth",W=v.options[U];v.options[U]=angular.bind(V,V.getContentSize),v.__$callback=v.__callback,v.__callback=function(e,t,n,i){var r=V.getScrollValue();(-1===Y||r+V.scrollPrimarySize>I||r<j)&&Z(),v.__$callback(e,t,n,i)};var q=!1,G=!1;function Z(t){if(!Z.destroyed){var r,o,a,l,h,f=V.getScrollValue(),g=f+V.scrollPrimarySize;for(r in V.updateRenderRange(f,g),Y=Math.max(0,Y-m),O=Math.min(y.length-1,O+m),R)(r<Y||r>O)&&(a=R[r],delete R[r],B.push(a),a.isShown=!1);for(r=Y;r<=O;r++)r>=y.length||R[r]&&!t||(a=R[r]||(R[r]=B.length?B.pop():H.length?H.shift():new J),N.push(a),a.isShown=!0,(h=a.scope).$index=r,h[p]=y[r],h.$first=0===r,h.$last=r===y.length-1,h.$middle=!(h.$first||h.$last),h.$odd=!(h.$even=0==(1&r)),h.$$disconnected&&ionic.Utils.reconnectScope(a.scope),l=V.getDimensions(r),a.secondaryPos===l.secondaryPos&&a.primaryPos===l.primaryPos||(a.node.style[ionic.CSS.TRANSFORM]=C.replace($,a.primaryPos=l.primaryPos).replace(D,a.secondaryPos=l.secondaryPos)),a.secondarySize===l.secondarySize&&a.primarySize===l.primarySize||(a.node.style.cssText=a.node.style.cssText.replace(d,E.replace($,(a.primarySize=l.primarySize)+1).replace(D,a.secondarySize=l.secondarySize))));for(O===y.length-1&&(l=V.getDimensions(y.length-1)||i,s.style[ionic.CSS.TRANSFORM]=C.replace($,l.primaryPos+l.primarySize).replace(D,0));B.length;)(a=B.pop()).scope.$broadcast("$collectionRepeatLeave"),ionic.Utils.disconnectScope(a.scope),H.push(a),a.node.style[ionic.CSS.TRANSFORM]="translate3d(-9999px,-9999px,0)",a.primaryPos=a.secondaryPos=null;if(u)for(r=0,o=N.length;r<o&&(a=N[r]);r++)if(a.images)for(var v,_=0,b=a.images.length;_<b&&(v=a.images[_]);_++){var w=v.src;v.src=c,v.src=w}if(t)for(var L=e.$$phase;N.length;)a=N.pop(),L||a.scope.$digest();else!function t(){var i;t.running||(t.running=!0,n((function(){for(var n=e.$$phase;N.length;)(i=N.pop()).isShown&&(n||i.scope.$digest());t.running=!1})))}()}}function J(){var e=this;this.scope=g.$new(),this.id="item"+F++,_(this.scope,(function(t){e.element=t,e.element.data("$$collectionRepeatItem",e),e.node=t[0],e.node.style[ionic.CSS.TRANSFORM]="translate3d(-9999px,-9999px,0)",e.node.style.cssText+=" height: 0px; width: 0px;",ionic.Utils.disconnectScope(e.scope),l.appendChild(e.node),e.images=t[0].getElementsByTagName("img")}))}this.refreshLayout=function(){y.length?(o=L(0,y[0]),a=k(0,y[0])):(o=100,a=100);var e=getComputedStyle(s)||{},n=s.firstElementChild&&getComputedStyle(s.firstElementChild)||{},i=s.lastElementChild&&getComputedStyle(s.lastElementChild)||{};P=(parseInt(e[x?"height":"width"])||0)+(n&&parseInt(n[x?"marginTop":"marginLeft"])||0)+(i&&parseInt(i[x?"marginBottom":"marginRight"])||0),A=0;var r=l;do{A+=r[x?"offsetTop":"offsetLeft"]}while(ionic.DomUtil.contains(v.__content,r=r.offsetParent));var u=l.previousElementSibling,c=u?t.getComputedStyle(u):{},d=parseInt(c[x?"marginBottom":"marginRight"]||0);if(l.style[ionic.CSS.TRANSFORM]=C.replace($,-d).replace(D,0),A-=d,v.__clientHeight&&v.__clientWidth||(v.__clientWidth=v.__container.clientWidth,v.__clientHeight=v.__container.clientHeight),(V.onRefreshLayout||angular.noop)(),V.refreshDirection(),z(),!q)for(var h=Math.max(20,3*m),f=0;f<h;f++)H.push(new J);(q=!0)&&G&&((v.__scrollLeft>v.__maxScrollLeft||v.__scrollTop>v.__maxScrollTop)&&v.resize(),Z(!0))},this.setData=function(e){y=e,(V.onRefreshData||angular.noop)(),G=!0},this.destroy=function(){Z.destroyed=!0,H.forEach((function(e){e.scope.$destroy(),e.scope=e.element=e.node=e.images=null})),H.length=N.length=B.length=0,R={},v.options[U]=W,v.__callback=v.__$callback,v.resize(),(V.onDestroy||angular.noop)()}}}function m(e){return["$document","$timeout",function(t,n){return{restrict:"E",controller:"$ionicHeaderBar",compile:function(i){return i.addClass(e?"bar bar-header":"bar bar-footer"),n((function(){e&&t[0].getElementsByClassName("tabs-top").length&&i.addClass("has-tabs-top")})),{pre:function(t,n,i,r){e?(t.$watch((function(){return n[0].className}),(function(e){var n=-1===e.indexOf("ng-hide"),i=-1!==e.indexOf("bar-subheader");t.$hasHeader=n&&!i,t.$hasSubheader=n&&i,t.$emit("$ionicSubheader",t.$hasSubheader)})),t.$on("$destroy",(function(){delete t.$hasHeader,delete t.$hasSubheader})),r.align(),t.$on("$ionicHeader.align",(function(){ionic.requestAnimationFrame((function(){r.align()}))}))):(t.$watch((function(){return n[0].className}),(function(e){var n=-1===e.indexOf("ng-hide"),i=-1!==e.indexOf("bar-subfooter");t.$hasFooter=n&&!i,t.$hasSubfooter=n&&i})),t.$on("$destroy",(function(){delete t.$hasFooter,delete t.$hasSubfooter})),t.$watch("$hasTabs",(function(e){n.toggleClass("has-tabs",!!e)})),r.align(),t.$on("$ionicFooter.align",(function(){ionic.requestAnimationFrame((function(){r.align()}))})))}}}}}]}f.$inject=["$ionicCollectionManager","$parse","$window","$$rAF","$rootScope","$timeout"],p.$inject=["$rootScope","$window","$$rAF"],e.directive("ionContent",["$timeout","$controller","$ionicBind","$ionicConfig",function(e,t,n,r){return{restrict:"E",require:"^?ionNavView",scope:!0,priority:800,compile:function(e,o){var l,u;e.addClass("scroll-content ionic-scroll"),"false"!=o.scroll?((l=a('<div class="scroll"></div>')).append(e.contents()),e.append(l)):e.addClass("scroll-content-false");var c="false"!==o.overflowScroll&&("true"===o.overflowScroll||!r.scrolling.jsScrolling());return c&&(c=!e[0].querySelector("[collection-repeat]")),{pre:function(e,r,a){var d=e.$parent;if(e.$watch((function(){return(d.$hasHeader?" has-header":"")+(d.$hasSubheader?" has-subheader":"")+(d.$hasFooter?" has-footer":"")+(d.$hasSubfooter?" has-subfooter":"")+(d.$hasTabs?" has-tabs":"")+(d.$hasTabsTop?" has-tabs-top":"")}),(function(e,t){r.removeClass(t),r.addClass(e)})),e.$hasHeader=e.$hasSubheader=e.$hasFooter=e.$hasSubfooter=e.$hasTabs=e.$hasTabsTop=!1,n(e,a,{$onScroll:"&onScroll",$onScrollComplete:"&onScrollComplete",hasBouncing:"@",padding:"@",direction:"@",scrollbarX:"@",scrollbarY:"@",startX:"@",startY:"@",scrollEventInterval:"@"}),e.direction=e.direction||"y",i(a.padding)&&e.$watch(a.padding,(function(e){(l||r).toggleClass("padding",!!e)})),"false"===a.scroll);else{var h={};c?(r.addClass("overflow-scroll"),h={el:r[0],delegateHandle:o.delegateHandle,startX:e.$eval(e.startX)||0,startY:e.$eval(e.startY)||0,nativeScrolling:!0}):h={el:r[0],delegateHandle:o.delegateHandle,locking:"true"===(o.locking||"true"),bouncing:e.$eval(e.hasBouncing),startX:e.$eval(e.startX)||0,startY:e.$eval(e.startY)||0,scrollbarX:!1!==e.$eval(e.scrollbarX),scrollbarY:!1!==e.$eval(e.scrollbarY),scrollingX:e.direction.indexOf("x")>=0,scrollingY:e.direction.indexOf("y")>=0,scrollEventInterval:parseInt(e.scrollEventInterval,10)||10,scrollingComplete:function(){e.$onScrollComplete({scrollTop:u.scrollView.__scrollTop,scrollLeft:u.scrollView.__scrollLeft})}},u=t("$ionicScroll",{$scope:e,scrollViewOptions:h}),e.scrollCtrl=u,e.$on("$destroy",(function(){h&&(h.scrollingComplete=s,delete h.el),l=null,r=null,o.$$element=null}))}}}}}}]),e.directive("exposeAsideWhen",["$window",function(e){return{restrict:"A",require:"^ionSideMenus",link:function(t,n,i,r){var o=e.innerWidth,a=e.innerHeight;function s(){var t="large"==i.exposeAsideWhen?"(min-width:768px)":i.exposeAsideWhen;r.exposeAside(e.matchMedia(t).matches),r.activeAsideResizing(!1)}ionic.on("resize",(function(){o===e.innerWidth&&a===e.innerHeight||(o=e.innerWidth,a=e.innerHeight,r.activeAsideResizing(!0),l())}),e);var l=ionic.debounce((function(){t.$apply(s)}),300,!1);t.$evalAsync(s)}}}]),"onHold onTap onDoubleTap onTouch onRelease onDragStart onDrag onDragEnd onDragUp onDragRight onDragDown onDragLeft onSwipe onSwipeUp onSwipeRight onSwipeDown onSwipeLeft".split(" ").forEach((function(t){var n;e.directive(t,(n=t,["$ionicGesture","$parse",function(e,t){var i=n.substr(2).toLowerCase();return function(r,o,a){var s=t(a[n]),l=function(e){r.$apply((function(){s(r,{$event:e})}))},u=e.on(i,l,o);r.$on("$destroy",(function(){e.off(u,i,l)}))}}]))})),e.directive("ionHeaderBar",m(!0)).directive("ionFooterBar",m(!1)),e.directive("ionInfiniteScroll",["$timeout",function(e){return{restrict:"E",require:["?^$ionicScroll","ionInfiniteScroll"],template:function(e,t){return t.icon?'<i class="icon {{icon()}} icon-refreshing {{scrollingType}}"></i>':'<ion-spinner icon="{{spinner()}}"></ion-spinner>'},scope:!0,controller:"$ionInfiniteScroll",link:function(t,n,r,o){var a=o[1],s=a.scrollCtrl=o[0];if(a.jsScrolling=!s.isNative())a.scrollView=s.scrollView,t.scrollingType="js-scrolling",s.$element.on("scroll",a.checkBounds);else{var l=ionic.DomUtil.getParentOrSelfWithClass(n[0].parentNode,"overflow-scroll");if(a.scrollEl=l,!l)throw"Infinite scroll must be used inside a scrollable div";a.scrollEl.addEventListener("scroll",a.checkBounds)}(!i(r.immediateCheck)||t.$eval(r.immediateCheck))&&e((function(){a.checkBounds()}))}}}]);var g=-1;function v(e){e.stopPropagation()}e.directive("ionInput",[function(){return{restrict:"E",controller:["$scope","$element",function(e,t){this.$scope=e,this.$element=t,this.setInputAriaLabeledBy=function(e){var n=t[0].querySelectorAll("input,textarea");n.length&&n[0].setAttribute("aria-labelledby",e)},this.focus=function(){var e=t[0].querySelectorAll("input,textarea");e.length&&e[0].focus()}}]}}]),e.directive("ionLabel",[function(){return{restrict:"E",require:"?^ionInput",compile:function(){return function(e,t,n,i){var r=t[0];t.addClass("input-label"),t.attr("aria-label",t.text());var o=r.id||"_label-"+ ++g;r.id||t.attr("id",o),i&&(i.setInputAriaLabeledBy(o),t.on("click",(function(){i.focus()})))}}}}]),e.directive("inputLabel",[function(){return{restrict:"C",require:"?^ionInput",compile:function(){return function(e,t,n,i){var r=t[0];t.attr("aria-label",t.text());var o=r.id||"_label-"+ ++g;r.id||t.attr("id",o),i&&i.setInputAriaLabeledBy(o)}}}}]),e.directive("ionItem",["$$rAF",function(e){return{restrict:"E",controller:["$scope","$element",function(e,t){this.$scope=e,this.$element=t}],scope:!0,compile:function(t,n){var r=i(n.href)||i(n.ngHref)||i(n.uiSref);if(r||/ion-(delete|option|reorder)-button/i.test(t.html())){var o=a(r?"<a></a>":"<div></div>");o.addClass("item-content"),(i(n.href)||i(n.ngHref))&&(o.attr("ng-href","{{$href()}}"),i(n.target)&&o.attr("target","{{$target()}}")),o.append(t.contents()),t.addClass("item item-complex").append(o)}else t.addClass("item");return function(t,n,i){t.$href=function(){return i.href||i.ngHref},t.$target=function(){return i.target};var r=n[0].querySelector(".item-content");r&&t.$on("$collectionRepeatLeave",(function(){r&&r.$$ionicOptionsOpen&&(r.style[ionic.CSS.TRANSFORM]="",r.style[ionic.CSS.TRANSITION]="none",e((function(){r.style[ionic.CSS.TRANSITION]=""})),r.$$ionicOptionsOpen=!1)}))}}}}]),e.directive("ionDeleteButton",(function(){function e(e){e.stopPropagation()}return{restrict:"E",require:["^^ionItem","^?ionList"],priority:Number.MAX_VALUE,compile:function(t,n){return n.$set("class",(n.class||"")+" button icon button-icon",!0),function(t,n,i,r){var o=r[0],s=r[1],l=a('<div class="item-left-edit item-delete enable-pointer-events"></div>');function u(){(s=s||n.controller("ionList"))&&s.showDelete()&&l.addClass("visible active")}l.append(n),o.$element.append(l).addClass("item-left-editable"),n.on("click",e),u(),t.$on("$ionic.reconnectScope",u)}}}})),e.directive("itemFloatingLabel",(function(){return{restrict:"C",link:function(e,t){var n=t[0],i=n.querySelector("input, textarea"),r=n.querySelector(".input-label");if(i&&r){var o=function(){i.value?r.classList.add("has-input"):r.classList.remove("has-input")};i.addEventListener("input",o);var s=a(i).controller("ngModel");s&&(s.$render=function(){i.value=s.$viewValue||"",o()}),e.$on("$destroy",(function(){i.removeEventListener("input",o)}))}}}})),e.directive("ionOptionButton",[function(){function e(e){e.stopPropagation()}return{restrict:"E",require:"^ionItem",priority:Number.MAX_VALUE,compile:function(t,n){return n.$set("class",(n.class||"")+" button",!0),function(t,n,i,r){r.optionsContainer||(r.optionsContainer=a('<div class="item-options invisible"></div>'),r.$element.prepend(r.optionsContainer)),r.optionsContainer.prepend(n),r.$element.addClass("item-right-editable"),n.on("click",e)}}}}]),e.directive("ionReorderButton",["$parse",function(e){return{restrict:"E",require:["^ionItem","^?ionList"],priority:Number.MAX_VALUE,compile:function(t,n){return n.$set("class",(n.class||"")+" button icon button-icon",!0),t[0].setAttribute("data-prevent-scroll",!0),function(t,n,i,r){var o=r[0],s=r[1],l=e(i.onReorder);t.$onReorder=function(e,n){l(t,{$fromIndex:e,$toIndex:n})},i.ngClick||i.onClick||i.onclick||(n[0].onclick=function(e){return e.stopPropagation(),!1});var u=a('<div data-prevent-scroll="true" class="item-right-edit item-reorder enable-pointer-events"></div>');u.append(n),o.$element.append(u).addClass("item-right-editable"),s&&s.showReorder()&&u.addClass("visible active")}}}}]),e.directive("keyboardAttach",(function(){return function(e,t){var n;function i(e){if(!ionic.Platform.isAndroid()||ionic.Platform.isFullScreen){var i=e.keyboardHeight||e.detail&&e.detail.keyboardHeight;t.css("bottom",i+"px"),(n=t.controller("$ionicScroll"))&&(n.scrollView.__container.style.bottom=i+function(e){return e.clientHeight}(t[0])+"px")}}function r(){ionic.Platform.isAndroid()&&!ionic.Platform.isFullScreen||(t.css("bottom",""),n&&(n.scrollView.__container.style.bottom=""))}ionic.on("native.keyboardshow",i,window),ionic.on("native.keyboardhide",r,window),ionic.on("native.showkeyboard",i,window),ionic.on("native.hidekeyboard",r,window),e.$on("$destroy",(function(){ionic.off("native.keyboardshow",i,window),ionic.off("native.keyboardhide",r,window),ionic.off("native.showkeyboard",i,window),ionic.off("native.hidekeyboard",r,window)}))}})),e.directive("ionList",["$timeout",function(e){return{restrict:"E",require:["ionList","^?$ionicScroll"],controller:"$ionicList",compile:function(t,n){var r=a('<div class="list">').append(t.contents()).addClass(n.type);return t.append(r),function(t,r,o,s){var l=s[0],u=s[1];e((function(){var o=l.listView=new ionic.views.ListView({el:r[0],listEl:r.children()[0],scrollEl:u&&u.element,scrollView:u&&u.scrollView,onReorder:function(t,n,i){var r=a(t).scope();r&&r.$onReorder&&e((function(){r.$onReorder(n,i)}))},canSwipe:function(){return l.canSwipeItems()}});function s(e,t){t()&&e.addClass("visible")||e.removeClass("active"),ionic.requestAnimationFrame((function(){t()&&e.addClass("active")||e.removeClass("visible")}))}t.$on("$destroy",(function(){o&&(o.deregister&&o.deregister(),o=null)})),i(n.canSwipe)&&t.$watch("!!("+n.canSwipe+")",(function(e){l.canSwipeItems(e)})),i(n.showDelete)&&t.$watch("!!("+n.showDelete+")",(function(e){l.showDelete(e)})),i(n.showReorder)&&t.$watch("!!("+n.showReorder+")",(function(e){l.showReorder(e)})),t.$watch((function(){return l.showDelete()}),(function(e,t){(e||t)&&(e&&l.closeOptionButtons(),l.canSwipeItems(!e),r.children().toggleClass("list-left-editing",e),r.toggleClass("disable-pointer-events",e),s(a(r[0].getElementsByClassName("item-delete")),l.showDelete))})),t.$watch((function(){return l.showReorder()}),(function(e,t){(e||t)&&(e&&l.closeOptionButtons(),l.canSwipeItems(!e),r.children().toggleClass("list-right-editing",e),r.toggleClass("disable-pointer-events",e),s(a(r[0].getElementsByClassName("item-reorder")),l.showReorder))}))}))}}}}]),e.directive("menuClose",["$ionicHistory","$timeout",function(e,t){return{restrict:"AC",link:function(n,i){i.bind("click",(function(){var n=i.inheritedData("$ionSideMenusController");n&&(e.nextViewOptions({historyRoot:!0,disableAnimate:!0,expire:300}),t((function(){e.nextViewOptions({historyRoot:!1,disableAnimate:!1})}),300),n.close())}))}}}]),e.directive("menuToggle",(function(){return{restrict:"AC",link:function(e,t,n){e.$on("$ionicView.beforeEnter",(function(e,n){n.enableBack?t.inheritedData("$ionSideMenusController").enableMenuWithBackViews()||t.addClass("hide"):t.removeClass("hide")})),t.bind("click",(function(){var e=t.inheritedData("$ionSideMenusController");e&&e.toggle(n.menuToggle)}))}}})),e.directive("ionModal",[function(){return{restrict:"E",transclude:!0,replace:!0,controller:[function(){}],template:'<div class="modal-backdrop"><div class="modal-backdrop-bg"></div><div class="modal-wrapper" ng-transclude></div></div>'}}]),e.directive("ionModalView",(function(){return{restrict:"E",compile:function(e){e.addClass("modal")}}})),e.directive("ionNavBackButton",["$ionicConfig","$document",function(e,t){return{restrict:"E",require:"^ionNavBar",compile:function(n,i){var r,o=t[0].createElement("button");for(var a in i.$attr)o.setAttribute(i.$attr[a],i[a]);i.ngClick||o.setAttribute("ng-click","$ionicGoBack()"),o.className="button back-button hide buttons "+(n.attr("class")||""),o.innerHTML=n.html()||"";for(var s,l,u,c=h(n[0]),d=0;d<n[0].childNodes.length;d++)1===(r=n[0].childNodes[d]).nodeType?h(r)?c=!0:r.classList.contains("default-title")?l=!0:r.classList.contains("previous-title")&&(u=!0):s||3!==r.nodeType||(s=!!r.nodeValue.trim());function h(e){return/ion-|icon/.test(e.className)}var f=e.backButton.icon();if(!c&&f&&"none"!==f&&(o.innerHTML='<i class="icon '+f+'"></i> '+o.innerHTML,o.className+=" button-clear"),!s){var p=t[0].createElement("span");p.className="back-text",!l&&e.backButton.text()&&(p.innerHTML+='<span class="default-title">'+e.backButton.text()+"</span>"),!u&&e.backButton.previousTitleText()&&(p.innerHTML+='<span class="previous-title"></span>'),o.appendChild(p)}return n.attr("class","hide"),n.empty(),{pre:function(e,t,n,i){i.navElement("backButton",o.outerHTML),o=null}}}}}]),e.directive("ionNavBar",(function(){return{restrict:"E",controller:"$ionicNavBar",scope:!0,link:function(e,t,n,i){i.init()}}})),e.directive("ionNavButtons",["$document",function(e){return{require:"^ionNavBar",restrict:"E",compile:function(t,n){var i="left";/^primary|secondary|right$/i.test(n.side||"")&&(i=n.side.toLowerCase());var r=e[0].createElement("span");r.className=i+"-buttons",r.innerHTML=t.html();var o=i+"Buttons";return t.attr("class","hide"),t.empty(),{pre:function(e,t,n,i){var a=t.parent().data("$ionViewController");a?a.navElement(o,r.outerHTML):i.navElement(o,r.outerHTML),r=null}}}}}]),e.directive("navDirection",["$ionicViewSwitcher",function(e){return{restrict:"A",priority:1e3,link:function(t,n,i){n.bind("click",(function(){e.nextDirection(i.navDirection)}))}}}]),e.directive("ionNavTitle",["$document",function(e){return{require:"^ionNavBar",restrict:"E",compile:function(t,n){var i=e[0].createElement("span");for(var r in n.$attr)i.setAttribute(n.$attr[r],n[r]);return i.classList.add("nav-bar-title"),i.innerHTML=t.html(),t.attr("class","hide"),t.empty(),{pre:function(e,t,n,r){var o=t.parent().data("$ionViewController");o?o.navElement("title",i.outerHTML):r.navElement("title",i.outerHTML),i=null}}}}}]),e.directive("navTransition",["$ionicViewSwitcher",function(e){return{restrict:"A",priority:1e3,link:function(t,n,i){n.bind("click",(function(){e.nextTransition(i.navTransition)}))}}}]),e.directive("ionNavView",["$state","$ionicConfig",function(e,t){return{restrict:"E",terminal:!0,priority:2e3,transclude:!0,controller:"$ionicNavView",compile:function(n,i,r){return n.addClass("view-container"),ionic.DomUtil.cachedAttr(n,"nav-view-transition",t.views.transition()),function(t,n,i,o){var a;r(t,(function(e){n.append(e)}));var s=o.init();function l(t){var n=e.$current&&e.$current.locals[s.name];n&&(t||n!==a)&&(a=n,s.state=n.$$state,o.register(n))}t.$on("$stateChangeSuccess",(function(){l(!1)})),t.$on("$viewContentLoading",(function(){l(!1)})),l(!0)}}}}]),e.config(["$provide",function(e){e.decorator("ngClickDirective",["$delegate",function(e){return e.shift(),e}])}]).factory("$ionicNgClick",["$parse",function(e){return function(t,n,i){var r=angular.isFunction(i)?i:e(i);n.on("click",(function(e){t.$apply((function(){r(t,{$event:e})}))})),n.onclick=s}}]).directive("ngClick",["$ionicNgClick",function(e){return function(t,n,i){e(t,n,i.ngClick)}}]).directive("ionStopEvent",(function(){return{restrict:"A",link:function(e,t,n){t.bind(n.ionStopEvent,v)}}})),e.directive("ionPane",(function(){return{restrict:"E",link:function(e,t){t.addClass("pane")}}})),e.directive("ionPopover",[function(){return{restrict:"E",transclude:!0,replace:!0,controller:[function(){}],template:'<div class="popover-backdrop"><div class="popover-wrapper" ng-transclude></div></div>'}}]),e.directive("ionPopoverView",(function(){return{restrict:"E",compile:function(e){e.append(a('<div class="popover-arrow">')),e.addClass("popover")}}})),e.directive("ionRadio",(function(){return{restrict:"E",replace:!0,require:"?ngModel",transclude:!0,template:'<label class="item item-radio"><input type="radio" name="radio-group"><div class="radio-content"><div class="item-content disable-pointer-events" ng-transclude></div><i class="radio-icon disable-pointer-events icon ion-checkmark"></i></div></label>',compile:function(e,t){t.icon&&e.find("i").removeClass("ion-checkmark").addClass(t.icon);var r=e.find("input");return n({name:t.name,value:t.value,disabled:t.disabled,"ng-value":t.ngValue,"ng-model":t.ngModel,"ng-disabled":t.ngDisabled,"ng-change":t.ngChange,"ng-required":t.ngRequired,required:t.required},(function(e,t){i(e)&&r.attr(t,e)})),function(e,t,n){e.getValue=function(){return e.ngValue||n.value}}}}})),e.directive("ionRefresher",[function(){return{restrict:"E",replace:!0,require:["?^$ionicScroll","ionRefresher"],controller:"$ionicRefresher",template:'<div class="scroll-refresher invisible" collection-repeat-ignore><div class="ionic-refresher-content" ng-class="{\'ionic-refresher-with-text\': pullingText || refreshingText}"><div class="icon-pulling" ng-class="{\'pulling-rotation-disabled\':disablePullingRotation}"><i class="icon {{pullingIcon}}"></i></div><div class="text-pulling" ng-bind-html="pullingText"></div><div class="icon-refreshing"><ion-spinner ng-if="showSpinner" icon="{{spinner}}"></ion-spinner><i ng-if="showIcon" class="icon {{refreshingIcon}}"></i></div><div class="text-refreshing" ng-bind-html="refreshingText"></div></div></div>',link:function(e,t,n,i){var r=i[0],o=i[1];!r||r.isNative()?o.init():(t[0].classList.add("js-scrolling"),r._setRefresher(e,t[0],o.getRefresherDomMethods()),e.$on("scroll.refreshComplete",(function(){e.$evalAsync((function(){r.scrollView&&r.scrollView.finishPullToRefresh()}))})))}}}]),e.directive("ionScroll",["$timeout","$controller","$ionicBind","$ionicConfig",function(e,t,n,r){return{restrict:"E",scope:!0,controller:function(){},compile:function(e,o){e.addClass("scroll-view ionic-scroll");var s=a('<div class="scroll"></div>');s.append(e.contents()),e.append(s);var l="false"!==o.overflowScroll&&("true"===o.overflowScroll||!r.scrolling.jsScrolling());return{pre:function(e,r,o){n(e,o,{direction:"@",paging:"@",$onScroll:"&onScroll",$onScrollComplete:"&onScrollComplete",scroll:"@",scrollbarX:"@",scrollbarY:"@",zooming:"@",minZoom:"@",maxZoom:"@"}),e.direction=e.direction||"y",i(o.padding)&&e.$watch(o.padding,(function(e){s.toggleClass("padding",!!e)})),!0===e.$eval(e.paging)&&s.addClass("scroll-paging"),e.direction||(e.direction="y");var a=!0===e.$eval(e.paging);l&&r.addClass("overflow-scroll"),r.addClass("scroll-"+e.direction);var u={el:r[0],delegateHandle:o.delegateHandle,locking:"true"===(o.locking||"true"),bouncing:e.$eval(o.hasBouncing),paging:a,scrollbarX:!1!==e.$eval(e.scrollbarX),scrollbarY:!1!==e.$eval(e.scrollbarY),scrollingX:e.direction.indexOf("x")>=0,scrollingY:e.direction.indexOf("y")>=0,zooming:!0===e.$eval(e.zooming),maxZoom:e.$eval(e.maxZoom)||3,minZoom:e.$eval(e.minZoom)||.5,preventDefault:!0,nativeScrolling:l,scrollingComplete:function(){e.$onScrollComplete&&e.$onScrollComplete({scrollTop:c.scrollView.__scrollTop,scrollLeft:c.scrollView.__scrollLeft})}};a&&(u.speedMultiplier=.8,u.bouncing=!1);var c=t("$ionicScroll",{$scope:e,scrollViewOptions:u})}}}}}]),e.directive("ionSideMenu",(function(){return{restrict:"E",require:"^ionSideMenus",scope:!0,compile:function(e,t){return angular.isUndefined(t.isEnabled)&&t.$set("isEnabled","true"),angular.isUndefined(t.width)&&t.$set("width","275"),e.addClass("menu menu-"+t.side),function(e,n,i,r){e.side=i.side||"left";var o=r[e.side]=new ionic.views.SideMenu({width:t.width,el:n[0],isEnabled:!0});e.$watch(i.width,(function(e){var t=+e;t&&t==e&&o.setWidth(+e)})),e.$watch(i.isEnabled,(function(e){o.setIsEnabled(!!e)}))}}}})),e.directive("ionSideMenuContent",["$timeout","$ionicGesture","$window",function(e,t,n){return{restrict:"EA",require:"^ionSideMenus",scope:!0,compile:function(r,o){return r.addClass("menu-content pane"),{pre:function(a,s,l,u){var c=null,d=null;function h(e){0!==u.getOpenAmount()?(u.close(),e.gesture.srcEvent.preventDefault(),c=null,d=null):c||(c=ionic.tap.pointerCoord(e.gesture.srcEvent))}function f(e){u.isDraggableTarget(e)&&"x"==g(e)&&(u._handleDrag(e),e.gesture.srcEvent.preventDefault())}function p(e){"x"==g(e)&&e.gesture.srcEvent.preventDefault()}function m(e){u._endDrag(e),c=null,d=null}function g(e){if(d)return d;if(e&&e.gesture){if(c){var t=ionic.tap.pointerCoord(e.gesture.srcEvent),n=Math.abs(t.x-c.x),i=Math.abs(t.y-c.y),r=n<i?"y":"x";return Math.max(n,i)>30&&(d=r),r}c=ionic.tap.pointerCoord(e.gesture.srcEvent)}return"y"}i(o.dragContent)?a.$watch(o.dragContent,(function(e){u.canDragContent(e)})):u.canDragContent(!0),i(o.edgeDragThreshold)&&a.$watch(o.edgeDragThreshold,(function(e){u.edgeDragThreshold(e)}));var v={element:r[0],onDrag:function(){},endDrag:function(){},setCanScroll:function(e){var t=s[0].querySelector(".scroll");if(t){var n=angular.element(t.parentElement);if(n){var i=n.scope();i.scrollCtrl&&i.scrollCtrl.freezeScrollShut(!e)}}},getTranslateX:function(){return a.sideMenuContentTranslateX||0},setTranslateX:ionic.animationFrameThrottle((function(t){var n=v.offsetX+t;s[0].style[ionic.CSS.TRANSFORM]="translate3d("+n+"px,0,0)",e((function(){a.sideMenuContentTranslateX=t}))})),setMarginLeft:ionic.animationFrameThrottle((function(e){e?(e=parseInt(e,10),s[0].style[ionic.CSS.TRANSFORM]="translate3d("+e+"px,0,0)",s[0].style.width=n.innerWidth-e+"px",v.offsetX=e):(s[0].style[ionic.CSS.TRANSFORM]="translate3d(0,0,0)",s[0].style.width="",v.offsetX=0)})),setMarginRight:ionic.animationFrameThrottle((function(e){e?(e=parseInt(e,10),s[0].style.width=n.innerWidth-e+"px",v.offsetX=e):(s[0].style.width="",v.offsetX=0),s[0].style[ionic.CSS.TRANSFORM]="translate3d(0,0,0)"})),setMarginLeftAndRight:ionic.animationFrameThrottle((function(e,t){var i=(e=e&&parseInt(e,10)||0)+(t=t&&parseInt(t,10)||0);i>0?(s[0].style[ionic.CSS.TRANSFORM]="translate3d("+e+"px,0,0)",s[0].style.width=n.innerWidth-i+"px",v.offsetX=e):(s[0].style[ionic.CSS.TRANSFORM]="translate3d(0,0,0)",s[0].style.width="",v.offsetX=0)})),enableAnimation:function(){a.animationEnabled=!0,s[0].classList.add("menu-animated")},disableAnimation:function(){a.animationEnabled=!1,s[0].classList.remove("menu-animated")},offsetX:0};u.setContent(v);var _={stop_browser_behavior:!1,prevent_default_directions:["left","right"]},y=t.on("tap",h,s,_),b=t.on("dragright",f,s,_),w=t.on("dragleft",f,s,_),L=t.on("dragup",p,s,_),M=t.on("dragdown",p,s,_),k=t.on("release",m,s,_);a.$on("$destroy",(function(){v&&(v.element=null,v=null),t.off(w,"dragleft",f),t.off(b,"dragright",f),t.off(L,"dragup",p),t.off(M,"dragdown",p),t.off(k,"release",m),t.off(y,"tap",h)}))}}}}}]),e.directive("ionSideMenus",["$ionicBody",function(e){return{restrict:"ECA",controller:"$ionicSideMenus",compile:function(t,n){return n.$set("class",(n.class||"")+" view"),{pre:function(t,n,i,r){r.enableMenuWithBackViews(t.$eval(i.enableMenuWithBackViews)),t.$on("$ionicExposeAside",(function(n,i){t.$exposeAside||(t.$exposeAside={}),t.$exposeAside.active=i,e.enableClass(i,"aside-open")})),t.$on("$ionicView.beforeEnter",(function(e,n){n.historyId&&(t.$activeHistoryId=n.historyId)})),t.$on("$destroy",(function(){e.removeClass("menu-open","aside-open")}))}}}}}]),e.directive("ionSlideBox",["$animate","$timeout","$compile","$ionicSlideBoxDelegate","$ionicHistory","$ionicScrollDelegate",function(e,t,n,r,o,s){return{restrict:"E",replace:!0,transclude:!0,scope:{autoPlay:"=",doesContinue:"@",slideInterval:"@",showPager:"@",pagerClick:"&",disableScroll:"@",onSlideChanged:"&",activeSlide:"=?",bounce:"@"},controller:["$scope","$element","$attrs",function(e,n,a){var l=this,u=!0===e.$eval(e.doesContinue),c=!1!==e.$eval(e.bounce),d=i(a.autoPlay)&&e.autoPlay?e.$eval(e.slideInterval)||4e3:0,h=new ionic.views.Slider({el:n[0],auto:d,continuous:u,startSlide:e.activeSlide,bouncing:c,slidesChanged:function(){e.currentSlide=h.currentIndex(),t((function(){}))},callback:function(n){e.currentSlide=n,e.onSlideChanged({index:e.currentSlide,$index:e.currentSlide}),e.$parent.$broadcast("slideBox.slideChanged",n),e.activeSlide=n,t((function(){}))},onDrag:function(){f(!0)},onDragEnd:function(){f(!1)}});function f(e){e&&!l.isScrollFreeze?s.freezeAllScrolls(e):!e&&l.isScrollFreeze&&s.freezeAllScrolls(!1),l.isScrollFreeze=e}h.enableSlide(!0!==e.$eval(a.disableScroll)),e.$watch("activeSlide",(function(e){i(e)&&h.slide(e)})),e.$on("slideBox.nextSlide",(function(){h.next()})),e.$on("slideBox.prevSlide",(function(){h.prev()})),e.$on("slideBox.setSlide",(function(e,t){h.slide(t)})),this.__slider=h;var p=r._registerInstance(h,a.delegateHandle,(function(){return o.isActiveScope(e)}));e.$on("$destroy",(function(){p(),h.kill()})),this.slidesCount=function(){return h.slidesCount()},this.onPagerClick=function(t){e.pagerClick({index:t})},t((function(){h.load()}))}],template:'<div class="slider"><div class="slider-slides" ng-transclude></div></div>',link:function(t,r,o){var s;function l(){if(!s){var e=t.$new();s=a("<ion-pager></ion-pager>"),r.append(s),s=n(s)(e)}return s}e.enabled(r,!1),i(o.showPager)||(t.showPager=!0,l().toggleClass("hide",!1)),o.$observe("showPager",(function(e){void 0!==e&&(e=t.$eval(e),l().toggleClass("hide",!e))}))}}}]).directive("ionSlide",(function(){return{restrict:"E",require:"?^ionSlideBox",compile:function(e){e.addClass("slider-slide")}}})).directive("ionPager",(function(){return{restrict:"E",replace:!0,require:"^ionSlideBox",template:'<div class="slider-pager"><span class="slider-pager-page" ng-repeat="slide in numSlides() track by $index" ng-class="{active: $index == currentSlide}" ng-click="pagerClick($index)"><i class="icon ion-record"></i></span></div>',link:function(e,t,n,i){e.pagerClick=function(e){i.onPagerClick(e)},e.numSlides=function(){return new Array(i.slidesCount())},e.$watch("currentSlide",(function(e){!function(e){for(var n=t[0].children,i=n.length,r=0;r<i;r++)r==e?n[r].classList.add("active"):n[r].classList.remove("active")}(e)}))}}})),e.directive("ionSlides",["$animate","$timeout","$compile",function(e,t,n){return{restrict:"E",transclude:!0,scope:{options:"=",slider:"="},template:'<div class="swiper-container"><div class="swiper-wrapper" ng-transclude></div><div ng-hide="!showPager" class="swiper-pagination"></div></div>',controller:["$scope","$element",function(e,i){var r=this;this.update=function(){t((function(){if(r.__slider){r.__slider.update(),r._options.loop&&r.__slider.createLoop();var t=r.__slider.slides.length;t>10&&(e.showPager=!1),r.__slider.activeIndex>t-1&&r.__slider.slideTo(t-1)}}))},this.rapidUpdate=ionic.debounce((function(){r.update()}),50),this.getSlider=function(){return r.__slider};var o=e.options||{},a=angular.extend({pagination:i.children().children()[1],paginationClickable:!0,lazyLoading:!0,preloadImages:!1},o);this._options=a,t((function(){var t=new ionic.views.Swiper(i.children()[0],a,e,n);e.$emit("$ionicSlides.sliderInitialized",{slider:t}),r.__slider=t,e.slider=r.__slider,e.$on("$destroy",(function(){t.destroy(),r.__slider=null}))})),t((function(){r.rapidUpdate()}),200)}],link:function(e){e.showPager=!0}}}]).directive("ionSlidePage",[function(){return{restrict:"E",require:"?^ionSlides",transclude:!0,replace:!0,template:'<div class="swiper-slide" ng-transclude></div>',link:function(e,t,n,i){i.rapidUpdate(),e.$on("$destroy",(function(){i.rapidUpdate()}))}}}]),e.directive("ionSpinner",(function(){return{restrict:"E",controller:"$ionicSpinner",link:function(e,t,n,i){var r=i.init();t.addClass("spinner spinner-"+r),t.on("$destroy",(function(){i.stop()}))}}})),e.directive("ionTab",["$compile","$ionicConfig","$ionicBind","$ionicViewSwitcher",function(e,t,n,r){function o(e,t){return i(t)?" "+e+'="'+t+'"':""}return{restrict:"E",require:["^ionTabs","ionTab"],controller:"$ionicTab",scope:!0,compile:function(i,s){for(var l="<ion-tab-nav"+o("ng-click",s.ngClick)+o("title",s.title)+o("icon",s.icon)+o("icon-on",s.iconOn)+o("icon-off",s.iconOff)+o("badge",s.badge)+o("badge-style",s.badgeStyle)+o("hidden",s.hidden)+o("disabled",s.disabled)+o("class",s.class)+"></ion-tab-nav>",u=document.createElement("div"),c=0;c<i[0].children.length;c++)u.appendChild(i[0].children[c].cloneNode(!0));var d,h,f=u.childElementCount;return i.empty(),f&&("ION-NAV-VIEW"===u.children[0].tagName&&(d=u.children[0].getAttribute("name"),u.children[0].classList.add("view-container"),h=!0),1===f&&(u=u.children[0]),h||u.classList.add("pane"),u.classList.add("tab-content")),function(i,o,s,c){var h,p,m=c[0],g=c[1],v=!1;function _(){g.tabMatchesState()&&m.select(i,!1)}i.$tabSelected=!1,n(i,s,{onSelect:"&",onDeselect:"&",title:"@",uiSref:"@",href:"@"}),m.add(i),i.$on("$destroy",(function(){i.$tabsDestroy||m.remove(i),y.isolateScope().$destroy(),y.remove(),y=u=p=null})),o[0].removeAttribute("title"),d&&(g.navViewName=i.navViewName=d),i.$on("$stateChangeSuccess",_),_();var y=a(l);function b(){h&&h.$destroy(),v&&p&&p.remove(),u.innerHTML="",v=h=p=null}y.data("$ionTabsController",m),y.data("$ionTabController",g),m.$tabsElement.append(e(y)(i)),i.$watch("$tabSelected",(function(n){n&&f?(v||(h=i.$new(),p=a(u),r.viewEleIsActive(p,!0),m.$element.append(p),e(p)(h),v=!0),r.viewEleIsActive(p,!0)):v&&p&&(t.views.maxCache()>0?r.viewEleIsActive(p,!1):b())})),i.$on("$ionicView.afterEnter",(function(){r.viewEleIsActive(p,i.$tabSelected)})),i.$on("$ionicView.clearCache",(function(){i.$tabSelected||b()}))}}}}]),e.directive("ionTabNav",[function(){return{restrict:"E",replace:!0,require:["^ionTabs","^ionTab"],template:"<a ng-class=\"{'has-badge':badge, 'tab-hidden':isHidden(), 'tab-item-active': isTabActive()}\" "+' ng-disabled="disabled()" class="tab-item"><span class="badge {{badgeStyle}}" ng-if="badge">{{badge}}</span><i class="icon {{getIcon()}}" ng-if="getIcon()"></i><span class="tab-title" ng-bind-html="title"></span></a>',scope:{title:"@",icon:"@",iconOn:"@",iconOff:"@",badge:"=",hidden:"@",disabled:"&",badgeStyle:"@",class:"@"},link:function(e,t,n,i){var r=i[0],o=i[1];t[0].removeAttribute("title"),e.selectTab=function(e){e.preventDefault(),r.select(o.$scope,!0)},n.ngClick||t.on("click",(function(t){e.$apply((function(){e.selectTab(t)}))})),e.isHidden=function(){return"true"===n.hidden||!0===n.hidden},e.getIconOn=function(){return e.iconOn||e.icon},e.getIconOff=function(){return e.iconOff||e.icon},e.isTabActive=function(){return r.selectedTab()===o.$scope},e.getIcon=function(){return r.selectedTab()===o.$scope?e.iconOn||e.icon:e.iconOff||e.icon}}}}]),e.directive("ionTabs",["$ionicTabsDelegate","$ionicConfig",function(e,t){return{restrict:"E",scope:!0,controller:"$ionicTabs",compile:function(n){var i=a('<div class="tab-nav tabs">');return i.append(n.contents()),n.append(i).addClass("tabs-"+t.tabs.position()+" tabs-"+t.tabs.style()),{pre:function(t,n,r,o){var s=e._registerInstance(o,r.delegateHandle,o.hasActiveScope);function l(e,t){e.stopPropagation();var n=o.previousSelectedTab();n&&n.$broadcast(e.name.replace("NavView","Tabs"),t)}o.$scope=t,o.$element=n,o.$tabsElement=a(n[0].querySelector(".tabs")),t.$watch((function(){return n[0].className}),(function(e){var n=-1!==e.indexOf("tabs-top"),i=-1!==e.indexOf("tabs-item-hide");t.$hasTabs=!n&&!i,t.$hasTabsTop=n&&!i,t.$emit("$ionicTabs.top",t.$hasTabsTop)})),t.$on("$ionicNavView.beforeLeave",l),t.$on("$ionicNavView.afterLeave",l),t.$on("$ionicNavView.leave",l),t.$on("$destroy",(function(){t.$tabsDestroy=!0,s(),o.$tabsElement=o.$element=o.$scope=i=null,delete t.$hasTabs,delete t.$hasTabsTop}))},post:function(e,t,n,i){i.selectedTab()||i.select(0)}}}}}]),e.directive("ionTitle",[function(){return{restrict:"E",compile:function(e){e.addClass("title")}}}]),e.directive("ionToggle",["$timeout","$ionicConfig",function(e,t){return{restrict:"E",replace:!0,require:"?ngModel",transclude:!0,template:'<div class="item item-toggle"><div ng-transclude></div><label class="toggle"><input type="checkbox"><div class="track"><div class="handle"></div></div></label></div>',compile:function(e,r){var o=e.find("input");return n({name:r.name,"ng-value":r.ngValue,"ng-model":r.ngModel,"ng-checked":r.ngChecked,"ng-disabled":r.ngDisabled,"ng-true-value":r.ngTrueValue,"ng-false-value":r.ngFalseValue,"ng-change":r.ngChange,"ng-required":r.ngRequired,required:r.required},(function(e,t){i(e)&&o.attr(t,e)})),r.toggleClass&&e[0].getElementsByTagName("label")[0].classList.add(r.toggleClass),e.addClass("toggle-"+t.form.toggle()),function(e,t){var n=t[0].getElementsByTagName("label")[0],i=n.children[0],r=n.children[1],o=r.children[0],s=a(i).controller("ngModel");e.toggle=new ionic.views.Toggle({el:n,track:r,checkbox:i,handle:o,onChange:function(){s&&(s.$setViewValue(i.checked),e.$apply())}}),e.$on("$destroy",(function(){e.toggle.destroy()}))}}}}]),e.directive("ionView",(function(){return{restrict:"EA",priority:1e3,controller:"$ionicView",compile:function(e){return e.addClass("pane"),e[0].removeAttribute("title"),function(e,t,n,i){i.init()}}}}))}(),n=function(e){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={exports:{},id:i,loaded:!1};return e[i].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}return n.m=e,n.c=t,n.p="",n(0)}([function(e,t,n){"use strict";e.exports=function(){var e;try{e=n(1)}catch(e){}if(e&&e.version||(e=window.angular),!e||!e.version)throw new Error("ionic-material could not load angular module :(");var t=e.module("ionic-material",["ionic"]);return n(2)(t),n(3)(t),"ionic-material"}()},function(t,n,i){if(void 0===e){var r=new Error('Cannot find module "angular"');throw r.code="MODULE_NOT_FOUND",r}t.exports=e},function(e,t,n){"use strict";
-/*!
-	 * Fork by Zach Fitzgerald and other contributors of Ionic Material
-	 *
-	 * Waves v0.5.4
-	 * http://fian.my.id/Waves
-	 *
-	 * Copyright 2014 Alfiana E. Sibuea and other contributors
-	 *
-	 * Released under the MIT license
-	 * https://github.com/fians/Waves/blob/master/LICENSE
-	 *
-	 */e.exports=function(e){function t(){var e,t=t||{};if(document&&document.querySelectorAll&&document.querySelectorAll.bind)try{e=document.querySelectorAll.bind(document)}catch(e){}else if(window&&window.angular&&window.angular.element)e=window.angular.element;else{var n=function(e,t,n){var i=e.length;t=null==t?0:t<0?Math.max(i+t,0):Math.min(t,i),n=null==n?i:n<0?Math.max(i+n,0):Math.min(n,i);for(var r=[];t<n;)r.push(e[t++]);return r};e=function(e,t,i){var r=n(arguments,2);return function(){return e.apply(t,r.concat(n(arguments)))}}(document.querySelectorAll,document)}if(!e)throw new Error("ionic material ink module could not create reference of DOM nodes");function i(e){var t="";for(var n in e)e.hasOwnProperty(n)&&(t+=n+":"+e[n]+";");return t}var r={duration:500,show:function(e){if(2===e.button)return!1;var t=document.createElement("div"),n=this.dataset.inkColor,o=this.dataset.inkOpacity,a=n||o;t.className="ink-ripple",this.appendChild(t);var s,l,u,c,d=(u={top:0,left:0},s=(c=this&&this.ownerDocument).documentElement,void 0!==this.getBoundingClientRect&&(u=this.getBoundingClientRect()),l=function(e){return null!==(t=e)&&t===t.window?e:9===e.nodeType&&e.defaultView;var t}(c),{top:u.top+l.pageYOffset-s.clientTop,left:u.left+l.pageXOffset-s.clientLeft}),h=e.pageY-d.top,f=e.pageX-d.left,p="scale("+this.clientWidth/100*2.5+")";"touches"in e&&(h=e.touches[0].pageY-d.top,f=e.touches[0].pageX-d.left),t.setAttribute("data-hold",Date.now()),t.setAttribute("data-scale",p),t.setAttribute("data-x",f),t.setAttribute("data-y",h);var m,g={top:h+"px",left:f+"px"};if(t.className=t.className+" ink-notransition",a){var v;if(n){var _=(m=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n))?{r:parseInt(m[1],16),g:parseInt(m[2],16),b:parseInt(m[3],16)}:null;v=_.r+","+_.g+","+_.b}else v="0,0,0";o||(o=.2);var y="rgba("+v+","+o+")";g["background-color"]=y}t.setAttribute("style",i(g)),t.className=t.className.replace("ink-notransition",""),g["-webkit-transform"]=p,g["-moz-transform"]=p,g["-ms-transform"]=p,g["-o-transform"]=p,g.transform=p,g.opacity="1",g["-webkit-transition-duration"]=r.duration+"ms",g["-moz-transition-duration"]=r.duration+"ms",g["-o-transition-duration"]=r.duration+"ms",g["transition-duration"]=r.duration+"ms",t.setAttribute("style",i(g))},hide:function(){for(var e=this,t=(e.clientWidth,null),n=e.children.length,o=0;o<n;o++)-1===e.children[o].className.indexOf("ink-ripple")||(t=e.children[o]);if(!t)return!1;var a=t.getAttribute("data-x"),s=t.getAttribute("data-y"),l=t.getAttribute("data-scale"),u=500-(Date.now()-Number(t.getAttribute("data-hold")));u<0&&(u=0),setTimeout((function(){var n={top:s+"px",left:a+"px",opacity:"0","-webkit-transition-duration":r.duration+"ms","-moz-transition-duration":r.duration+"ms","-o-transition-duration":r.duration+"ms","transition-duration":r.duration+"ms","-webkit-transform":l,"-moz-transform":l,"-ms-transform":l,"-o-transform":l,transform:l};t.setAttribute("style",i(n)),setTimeout((function(){try{e.removeChild(t)}catch(e){return!1}}),r.duration)}),u)},wrapInput:function(e){for(var t=0;t<e.length;t++){var n=e[t];if("input"===n.tagName.toLowerCase()){var i=n.parentNode;if("i"===i.tagName.toLowerCase()&&-1!==i.className.indexOf("ink")&&-1!==i.className.indexOf("tab-item")&&-1!==i.className.indexOf("button-fab")&&-1!==i.className.indexOf("button-raised")&&-1!==i.className.indexOf("button-flat")&&-1!==i.className.indexOf("button-clear")&&-1!==i.className.indexOf("button")&&-1!==i.className.indexOf("item"))return!1;var r=document.createElement("i");r.className=n.className+" ink-input-wrapper";var o=n.getAttribute("style");o||(o=""),r.setAttribute("style",o),n.className="ink-button-input",n.removeAttribute("style"),i.replaceChild(r,n),r.appendChild(n)}}}};return t.displayEffect=function(t){"duration"in(t=t||{})&&(r.duration=t.duration);var n=".ink,.tab-item,.button-fab,.button-raised,.button-flat,.button-clear,a.item,.popup .button";r.wrapInput(e(n)),Array.prototype.forEach.call(e(n),(function(e){"ontouchstart"in window?(e.addEventListener("touchstart",r.show,!1),e.addEventListener("touchend",r.hide,!1),e.addEventListener("touchcancel",r.hide,!1)):(e.addEventListener("mousedown",r.show,!1),e.addEventListener("mouseup",r.hide,!1),e.addEventListener("mouseleave",r.hide,!1))}))},t}e.factory("ionicMaterialInk",t),t.inject=[]}},function(e,t,n){e.exports=function(e){function t(){"use strict";function e(){return window.innerHeight}function t(e,t){for(var n=0;n<t;n++){var i=e[n];i.className+=" in",i.className+=" done"}}return{blinds:function(n){var i=2,r=.5,o=.8,a=".animate-blinds .item",s=1100;if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||i,n.finishSpeedPercent=n.finishSpeedPercent||r,n.leftOffsetPercentage=n.leftOffsetPercentage||o,n.startVelocity=n.startVelocity||s,void 0===n.selector&&(n.selector=a),void 0===n.selector||""===n.selector)return alert("invalid blinds selector"),!1;for(var l=document.querySelectorAll(n.selector),u=l.length,c=0,d=e(),h=0;h<u&&l[h].offsetTop<d;h++)c+=1;var f=n.startVelocity;for(h=0;h<c;h++){var p=l[h],m=p.getBoundingClientRect(),g=m.left*n.leftOffsetPercentage+m.top,v=parseFloat(g/f).toFixed(2);p.style.webkitTransitionDelay=v+"s",p.style.transitionDelay=v+"s",p.className+=" in"}setTimeout((function(){for(var e=0;e<c;e++){var t=l[e].getBoundingClientRect(),i=t.left*n.leftOffsetPercentage+t.top;parseFloat(i/f/n.finishDelayThrottle).toFixed(2),l[e].className+=" done"}}),f*n.finishSpeedPercent),t(l,u)},fadeSlideIn:function(n){var i=2,r=.72,o=.8,a=".animate-fade-slide-in .item",s=1100;if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||i,n.finishSpeedPercent=n.finishSpeedPercent||r,n.leftOffsetPercentage=n.leftOffsetPercentage||o,n.startVelocity=n.startVelocity||s,void 0===n.selector&&(n.selector=a),void 0===n.selector||""===n.selector)return alert("invalid fadeSlideIn selector"),!1;for(var l=document.querySelectorAll(n.selector),u=l.length,c=0,d=e(),h=0;h<u&&l[h].offsetTop<d;h++)c+=1;var f=n.startVelocity;for(h=0;h<c;h++){var p=l[h],m=p.getBoundingClientRect(),g=m.left*n.leftOffsetPercentage+m.top,v=parseFloat(g/f).toFixed(2);p.style.webkitTransitionDelay=v+"s",p.style.transitionDelay=v+"s",p.className+=" in"}setTimeout((function(){for(var e=0;e<c;e++){var t=l[e].getBoundingClientRect(),i=(t.left*n.leftOffsetPercentage+t.top)/f/n.finishDelayThrottle;parseFloat(i).toFixed(2)}l[0].className+=" done"}),f*n.finishSpeedPercent),t(l,u)},fadeSlideInRight:function(n){var i=2,r=.72,o=.8,a=".animate-fade-slide-in-right .item",s=1100;if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||i,n.finishSpeedPercent=n.finishSpeedPercent||r,n.leftOffsetPercentage=n.leftOffsetPercentage||o,n.startVelocity=n.startVelocity||s,void 0===n.selector&&(n.selector=a),void 0===n.selector||""===n.selector)return alert("invalid fadeSlideInRight selector"),!1;for(var l=document.querySelectorAll(n.selector),u=l.length,c=0,d=e(),h=0;h<u&&l[h].offsetTop<d;h++)c+=1;var f=n.startVelocity;for(h=0;h<c;h++){var p=l[h],m=p.getBoundingClientRect(),g=m.left*n.leftOffsetPercentage+m.top,v=parseFloat(g/f).toFixed(2);p.style.webkitTransitionDelay=v+"s",p.style.transitionDelay=v+"s",p.className+=" in"}setTimeout((function(){for(var e=0;e<c;e++){var t=l[e].getBoundingClientRect(),i=(t.left*n.leftOffsetPercentage+t.top)/f/n.finishDelayThrottle;parseFloat(i).toFixed(2)}l[0].className+=" done"}),f*n.finishSpeedPercent),t(l,u)},panInLeft:function(e){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return alert("invalid pushDown selector"),!1;for(var t=document.querySelectorAll(e.selector),n=t.length,i=0;i<n;i++){var r=t[i],o=r.className.lastIndexOf("animate-pan-in-left");r.className=r.className.substr(0,o)}},pushDown:function(e){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return alert("invalid pushDown selector"),!1;for(var t=document.querySelectorAll(e.selector),n=t.length,i=0;i<n;i++){var r=t[i],o=e.selector.split(".")[1],a=r.className.lastIndexOf(o);r.className=r.className.substr(0,a)}},ripple:function(n){var i=2,r=.72,o=.8,a=".animate-ripple .item",s=1100;if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||i,n.finishSpeedPercent=n.finishSpeedPercent||r,n.leftOffsetPercentage=n.leftOffsetPercentage||o,n.startVelocity=n.startVelocity||s,void 0===n.selector&&(n.selector=a),void 0===n.selector||""===n.selector)return alert("invalid ripple selector"),!1;for(var l=document.querySelectorAll(n.selector),u=l.length,c=0,d=e(),h=0;h<l.length&&l[h].offsetTop<d;h++)c+=1;var f=n.startVelocity;for(h=0;h<c;h++){var p=l[h],m=p.getBoundingClientRect(),g=m.left*n.leftOffsetPercentage+m.top,v=parseFloat(g/f).toFixed(2);p.style.webkitTransitionDelay=v+"s",p.style.transitionDelay=v+"s",p.className+=" in"}setTimeout((function(){for(var e=0;e<c;e++){var t=l[e].getBoundingClientRect(),i=(t.left*n.leftOffsetPercentage+t.top)/f/n.finishDelayThrottle;parseFloat(i).toFixed(2)}l[0].className+=" done"}),f*n.finishSpeedPercent),t(l,u)},slideUp:function(e){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return alert("invalid pushDown selector"),!1;for(var t=document.querySelectorAll(e.selector),n=t.length,i=0;i<n;i++){var r=t[i],o=e.selector.split(".")[1],a=r.className.lastIndexOf(o);r.className=r.className.substr(0,a)}}}}e.factory("ionicMaterialMotion",t),t.$inject=[]}}])},"object"==typeof exports&&"object"==typeof module?module.exports=n(function(){try{return require("angular")}catch(e){}}()):"function"==typeof define&&define.amd?define(["angular"],n):"object"==typeof exports?exports.ionicMaterial=n(function(){try{return require("angular")}catch(e){}}()):this.ionicMaterial=n(this.angular),
-/**
- * @license AngularJS v1.5.11
- * (c) 2010-2017 Google, Inc. http://angularjs.org
- * License: MIT
- */
-function(e,t){"use strict";var n=t.$$minErr("$resource"),i=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;function r(e,n){for(var i in n=n||{},t.forEach(n,(function(e,t){delete n[t]})),e)!e.hasOwnProperty(i)||"$"===i.charAt(0)&&"$"===i.charAt(1)||(n[i]=e[i]);return n}t.module("ngResource",["ng"]).provider("$resource",(function(){var e=/^https?:\/\/[^/]*/,o=this;this.defaults={stripTrailingSlashes:!0,cancellable:!1,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},delete:{method:"DELETE"}}},this.$get=["$http","$log","$q","$timeout",function(a,s,l,u){var c=t.noop,d=t.forEach,h=t.extend,f=t.copy,p=t.isArray,m=t.isDefined,g=t.isFunction,v=t.isNumber;function _(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,t?"%20":"+")}function y(e,t){this.template=e,this.defaults=h({},o.defaults,t),this.urlParams={}}return y.prototype={setUrlParams:function(t,i,r){var o,a,s=this,l=r||s.template,u="",c=s.urlParams={};d(l.split(/\W/),(function(e){if("hasOwnProperty"===e)throw n("badname","hasOwnProperty is not a valid parameter name.");!new RegExp("^\\d+$").test(e)&&e&&new RegExp("(^|[^\\\\]):"+e+"(\\W|$)").test(l)&&(c[e]={isQueryParamValue:new RegExp("\\?.*=:"+e+"(?:\\W|$)").test(l)})})),l=(l=l.replace(/\\:/g,":")).replace(e,(function(e){return u=e,""})),i=i||{},d(s.urlParams,(function(e,t){o=i.hasOwnProperty(t)?i[t]:s.defaults[t],m(o)&&null!==o?(a=e.isQueryParamValue?_(o,!0):function(e){return _(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}(o),l=l.replace(new RegExp(":"+t+"(\\W|$)","g"),(function(e,t){return a+t}))):l=l.replace(new RegExp("(/?):"+t+"(\\W|$)","g"),(function(e,t,n){return"/"===n.charAt(0)?n:t+n}))})),s.defaults.stripTrailingSlashes&&(l=l.replace(/\/+$/,"")||"/"),l=l.replace(/\/\.(?=\w+($|\?))/,"."),t.url=u+l.replace(/\/\\\./,"/."),d(i,(function(e,n){s.urlParams[n]||(t.params=t.params||{},t.params[n]=e)}))}},function e(_,b,w,L){var M=new y(_,L);function k(e,r){var o={};return r=h({},b,r),d(r,(function(r,a){g(r)&&(r=r(e)),o[a]=r&&r.charAt&&"@"===r.charAt(0)?function(e,r){if(!function(e){return null!=e&&""!==e&&"hasOwnProperty"!==e&&i.test("."+e)}(r))throw n("badmember",'Dotted member path "@{0}" is invalid.',r);for(var o=r.split("."),a=0,s=o.length;a<s&&t.isDefined(e);a++){var l=o[a];e=null!==e?e[l]:void 0}return e}(e,r.substr(1)):r})),o}function x(e){return e.resource}function S(e){r(e||{},this)}return w=h({},o.defaults.actions,w),S.prototype.toJSON=function(){var e=h({},this);return delete e.$promise,delete e.$resolved,delete e.$cancelRequest,e},d(w,(function(e,t){var i=/^(POST|PUT|PATCH)$/i.test(e.method),o=e.timeout,_=m(e.cancellable)?e.cancellable:M.defaults.cancellable;o&&!v(o)&&(s.debug("ngResource:\n  Only numeric values are allowed as `timeout`.\n  Promises are not supported in $resource, because the same value would be used for multiple requests. If you are looking for a way to cancel requests, you should use the `cancellable` option."),delete e.timeout,o=null),S[t]=function(s,m,v,y){var b,w,L,T={};switch(arguments.length){case 4:L=y,w=v;case 3:case 2:if(!g(m)){T=s,b=m,w=v;break}if(g(s)){w=s,L=m;break}w=m,L=v;case 1:g(s)?w=s:i?b=s:T=s;break;case 0:break;default:throw n("badargs","Expected up to 4 arguments [params, data, success, error], got {0} arguments",arguments.length)}var $,D,C=this instanceof S,E=C?b:e.isArray?[]:new S(b),A={},P=e.interceptor&&e.interceptor.response||x,Y=e.interceptor&&e.interceptor.responseError||void 0;d(e,(function(e,t){switch(t){default:A[t]=f(e);break;case"params":case"isArray":case"interceptor":case"cancellable":}})),!C&&_&&($=l.defer(),A.timeout=$.promise,o&&(D=u($.resolve,o))),i&&(A.data=b),M.setUrlParams(A,h({},k(b,e.params||{}),T),e.url);var O=a(A).then((function(i){var o=i.data;if(o){if(p(o)!==!!e.isArray)throw n("badcfg","Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})",t,e.isArray?"array":"object",p(o)?"array":"object",A.method,A.url);if(e.isArray)E.length=0,d(o,(function(e){"object"==typeof e?E.push(new S(e)):E.push(e)}));else{var a=E.$promise;r(o,E),E.$promise=a}}return i.resource=E,i}),(function(e){return(L||c)(e),l.reject(e)}));return O.finally((function(){E.$resolved=!0,!C&&_&&(E.$cancelRequest=c,u.cancel(D),$=D=A.timeout=null)})),O=O.then((function(e){var t=P(e);return(w||c)(t,e.headers,e.status,e.statusText),t}),Y),C?O:(E.$promise=O,E.$resolved=!1,_&&(E.$cancelRequest=$.resolve),E)},S.prototype["$"+t]=function(e,n,i){g(e)&&(i=n,n=e,e={});var r=S[t].call(this,e,this,n,i);return r.$promise||r}})),S.bind=function(t){var n=h({},b,t);return e(_,n,w,L)},S}}]}))}(window,window.angular),
-/*!
- * angular-translate - v2.18.1 - 2018-05-19
- * 
- * Copyright (c) 2018 The angular-translate team, Pascal Precht; Licensed MIT
- */
-function(e,t){"function"==typeof define&&define.amd?define([],(function(){return t()})):"object"==typeof module&&module.exports?module.exports=t():t()}(0,(function(){function e(e){"use strict";var t=e.storageKey(),n=e.storage(),i=function(){var i=e.preferredLanguage();angular.isString(i)?e.use(i):n.put(t,e.use())};i.displayName="fallbackFromIncorrectStorageValue",n?n.get(t)?e.use(n.get(t)).catch(i):i():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function t(e,t,n,i){"use strict";var r,o,a,s,l,u,c,d,h,f,p,m,g,v,_,y,b={},w=[],L=e,M=[],k="translate-cloak",x=!1,S=!1,T=".",$=!1,D=!1,C=0,E=!0,A="default",P={default:function(e){return(e||"").split("-").join("_")},java:function(e){var t=(e||"").split("-").join("_"),n=t.split("_");return n.length>1?n[0].toLowerCase()+"_"+n[1].toUpperCase():t},bcp47:function(e){var t=(e||"").split("_").join("-"),n=t.split("-");switch(n.length){case 1:n[0]=n[0].toLowerCase();break;case 2:n[0]=n[0].toLowerCase(),4===n[1].length?n[1]=n[1].charAt(0).toUpperCase()+n[1].slice(1).toLowerCase():n[1]=n[1].toUpperCase();break;case 3:n[0]=n[0].toLowerCase(),n[1]=n[1].charAt(0).toUpperCase()+n[1].slice(1).toLowerCase(),n[2]=n[2].toUpperCase();break;default:return t}return n.join("-")},"iso639-1":function(e){return(e||"").split("_").join("-").split("-")[0].toLowerCase()}},Y=function(){if(angular.isFunction(i.getLocale))return i.getLocale();var e,n,r=t.$get().navigator,o=["language","browserLanguage","systemLanguage","userLanguage"];if(angular.isArray(r.languages))for(e=0;e<r.languages.length;e++)if((n=r.languages[e])&&n.length)return n;for(e=0;e<o.length;e++)if((n=r[o[e]])&&n.length)return n;return null};Y.displayName="angular-translate/service: getFirstBrowserLanguage";var O=function(){var e=Y()||"";return P[A]&&(e=P[A](e)),e};O.displayName="angular-translate/service: getLocale";var I=function(e,t){for(var n=0,i=e.length;n<i;n++)if(e[n]===t)return n;return-1},j=function(){return this.toString().replace(/^\s+|\s+$/g,"")},H=function(e){return angular.isString(e)?e.toLowerCase():e},B=function(e){if(e){for(var t,n=[],i=H(e),r=0,a=w.length;r<a;r++)n.push(H(w[r]));if((r=I(n,i))>-1)return w[r];if(o)for(var s in o)if(o.hasOwnProperty(s)){var l=!1,u=Object.prototype.hasOwnProperty.call(o,s)&&H(s)===H(e);if("*"===s.slice(-1)&&(l=H(s.slice(0,-1))===H(e.slice(0,s.length-1))),(u||l)&&(t=o[s],I(n,H(t))>-1))return t}var c=e.split("_");return c.length>1&&I(n,H(c[0]))>-1?c[0]:void 0}},N=function(e,t){if(!e&&!t)return b;if(e&&!t){if(angular.isString(e))return b[e]}else angular.isObject(b[e])||(b[e]={}),angular.extend(b[e],R(t));return this};this.translations=N,this.cloakClassName=function(e){return e?(k=e,this):k},this.nestedObjectDelimeter=function(e){return e?(T=e,this):T};var R=function(e,t,n,i){var r,o,a;for(r in t||(t=[]),n||(n={}),e)Object.prototype.hasOwnProperty.call(e,r)&&(a=e[r],angular.isObject(a)?R(a,t.concat(r),n,r):(o=t.length?""+t.join(T)+T+r:r,t.length&&r===i&&(n[""+t.join(T)]="@:"+o),n[o]=a));return n};R.displayName="flatObject",this.addInterpolation=function(e){return M.push(e),this},this.useMessageFormatInterpolation=function(){return this.useInterpolation("$translateMessageFormatInterpolation")},this.useInterpolation=function(e){return f=e,this},this.useSanitizeValueStrategy=function(e){return n.useStrategy(e),this},this.preferredLanguage=function(e){return e?(F(e),this):r};var F=function(e){return e&&(r=e),r};this.translationNotFoundIndicator=function(e){return this.translationNotFoundIndicatorLeft(e),this.translationNotFoundIndicatorRight(e),this},this.translationNotFoundIndicatorLeft=function(e){return e?(g=e,this):g},this.translationNotFoundIndicatorRight=function(e){return e?(v=e,this):v},this.fallbackLanguage=function(e){return z(e),this};var z=function(e){return e?(angular.isString(e)?(s=!0,a=[e]):angular.isArray(e)&&(s=!1,a=e),angular.isString(r)&&I(a,r)<0&&a.push(r),this):s?a[0]:a};this.use=function(e){if(e){if(!b[e]&&!p)throw new Error("$translateProvider couldn't find translationTable for langKey: '"+e+"'");return l=e,this}return l},this.resolveClientLocale=function(){return O()};var V=function(e){return e?(L=e,this):d?d+L:L};this.storageKey=V,this.useUrlLoader=function(e,t){return this.useLoader("$translateUrlLoader",angular.extend({url:e},t))},this.useStaticFilesLoader=function(e){return this.useLoader("$translateStaticFilesLoader",e)},this.useLoader=function(e,t){return p=e,m=t||{},this},this.useLocalStorage=function(){return this.useStorage("$translateLocalStorage")},this.useCookieStorage=function(){return this.useStorage("$translateCookieStorage")},this.useStorage=function(e){return c=e,this},this.storagePrefix=function(e){return e?(d=e,this):e},this.useMissingTranslationHandlerLog=function(){return this.useMissingTranslationHandler("$translateMissingTranslationHandlerLog")},this.useMissingTranslationHandler=function(e){return h=e,this},this.usePostCompiling=function(e){return x=!!e,this},this.forceAsyncReload=function(e){return S=!!e,this},this.uniformLanguageTag=function(e){return e?angular.isString(e)&&(e={standard:e}):e={},A=e.standard,this},this.determinePreferredLanguage=function(e){var t=e&&angular.isFunction(e)?e():O();return r=w.length&&B(t)||t,this},this.registerAvailableLanguageKeys=function(e,t){return e?(w=e,t&&(o=t),this):w},this.useLoaderCache=function(e){return!1===e?_=void 0:!0===e?_=!0:void 0===e?_="$translationCache":e&&(_=e),this},this.directivePriority=function(e){return void 0===e?C:(C=e,this)},this.statefulFilter=function(e){return void 0===e?E:(E=e,this)},this.postProcess=function(e){return y=e||void 0,this},this.keepContent=function(e){return D=!!e,this},this.$get=["$log","$injector","$rootScope","$q",function(e,t,n,i){var o,d,A,P=t.get(f||"$translateDefaultInterpolation"),Y=!1,H={},U={},W=function(e,t,n,s,u,h){!l&&r&&(l=r);var f=u&&u!==l?B(u)||u:l;if(u&&oe(u),angular.isArray(e))return function(e){for(var r={},o=[],a=function(e){var o=i.defer(),a=function(t){r[e]=t,o.resolve([e,t])};return W(e,t,n,s,u,h).then(a,a),o.promise},l=0,c=e.length;l<c;l++)o.push(a(e[l]));return i.all(o).then((function(){return r}))}(e);var p=i.defer();e&&(e=j.apply(e));var m=function(){var e=U[f]||U[r];if(d=0,c&&!e){var t=o.get(L);if(e=U[t],a&&a.length){var n=I(a,t);d=0===n?1:0,I(a,r)<0&&a.push(r)}}return e}();if(m){var g=function(){u||(f=l),ne(e,t,n,s,f,h).then(p.resolve,p.reject)};g.displayName="promiseResolved",m.finally(g).catch(angular.noop)}else ne(e,t,n,s,f,h).then(p.resolve,p.reject);return p.promise},q=function(e){return g&&(e=[g,e].join(" ")),v&&(e=[e,v].join(" ")),e},G=function(e){l=e,c&&o.put(W.storageKey(),l),n.$emit("$translateChangeSuccess",{language:e}),P.setLocale(l);var t=function(e,t){H[t].setLocale(l)};t.displayName="eachInterpolatorLocaleSetter",angular.forEach(H,t),n.$emit("$translateChangeEnd",{language:e})},Z=function(e){if(!e)throw"No language key specified for loading.";var r=i.defer();n.$emit("$translateLoadingStart",{language:e}),Y=!0;var o=_;"string"==typeof o&&(o=t.get(o));var a=angular.extend({},m,{key:e,$http:angular.extend({},{cache:o},m.$http)}),s=function(t){var i={};n.$emit("$translateLoadingSuccess",{language:e}),angular.isArray(t)?angular.forEach(t,(function(e){angular.extend(i,R(e))})):angular.extend(i,R(t)),Y=!1,r.resolve({key:e,table:i}),n.$emit("$translateLoadingEnd",{language:e})};s.displayName="onLoaderSuccess";var l=function(e){n.$emit("$translateLoadingError",{language:e}),r.reject(e),n.$emit("$translateLoadingEnd",{language:e})};return l.displayName="onLoaderError",t.get(p)(a).then(s,l),r.promise};if(c&&(!(o=t.get(c)).get||!o.put))throw new Error("Couldn't use storage '"+c+"', missing get() or put() method!");if(M.length){var J=function(e){var n=t.get(e);n.setLocale(r||l),H[n.getInterpolationIdentifier()]=n};J.displayName="interpolationFactoryAdder",angular.forEach(M,J)}var X=function(e,t,n,r,o){var a=i.defer(),s=function(i){if(Object.prototype.hasOwnProperty.call(i,t)&&null!==i[t]){r.setLocale(e);var s=i[t];if("@:"===s.substr(0,2))X(e,s.substr(2),n,r,o).then(a.resolve,a.reject);else{var u=r.interpolate(i[t],n,"service",o,t);u=re(t,i[t],u,n,e),a.resolve(u)}r.setLocale(l)}else a.reject()};return s.displayName="fallbackTranslationResolver",function(e){var t=i.defer();if(Object.prototype.hasOwnProperty.call(b,e))t.resolve(b[e]);else if(U[e]){var n=function(e){N(e.key,e.table),t.resolve(e.table)};n.displayName="translationTableResolver",U[e].then(n,t.reject)}else t.reject();return t.promise}(e).then(s,a.reject),a.promise},K=function(e,t,n,i,r){var o,a=b[e];if(a&&Object.prototype.hasOwnProperty.call(a,t)&&null!==a[t]){if(i.setLocale(e),o=i.interpolate(a[t],n,"filter",r,t),o=re(t,a[t],o,n,e,r),!angular.isString(o)&&angular.isFunction(o.$$unwrapTrustedValue)){var s=o.$$unwrapTrustedValue();if("@:"===s.substr(0,2))return K(e,s.substr(2),n,i,r)}else if("@:"===o.substr(0,2))return K(e,o.substr(2),n,i,r);i.setLocale(l)}return o},Q=function(e,n,i,r){return h?t.get(h)(e,l,n,i,r):e},ee=function(e,t,n,r,o,s){var l=i.defer();if(e<a.length){var u=a[e];X(u,t,n,r,s).then((function(e){l.resolve(e)}),(function(){return ee(e+1,t,n,r,o,s).then(l.resolve,l.reject)}))}else if(o)l.resolve(o);else{var c=Q(t,n,o);h&&c?l.resolve(c):l.reject(q(t))}return l.promise},te=function(e,t,n,i,r){var o;if(e<a.length){var s=a[e];(o=K(s,t,n,i,r))||""===o||(o=te(e+1,t,n,i))}return o},ne=function(e,t,n,r,o,s){var l=i.defer(),u=o?b[o]:b,c=n?H[n]:P;if(u&&Object.prototype.hasOwnProperty.call(u,e)&&null!==u[e]){var f=u[e];if("@:"===f.substr(0,2))W(f.substr(2),t,n,r,o,s).then(l.resolve,l.reject);else{var p=c.interpolate(f,t,"service",s,e);p=re(e,f,p,t,o),l.resolve(p)}}else{var m;h&&!Y&&(m=Q(e,t,r)),o&&a&&a.length?function(e,t,n,i,r){return ee(A>0?A:d,e,t,n,i,r)}(e,t,c,r,s).then((function(e){l.resolve(e)}),(function(e){l.reject(q(e))})):h&&!Y&&m?r?l.resolve(r):l.resolve(m):r?l.resolve(r):l.reject(q(e))}return l.promise},ie=function(e,t,n,i,r){var o,s=i?b[i]:b,l=P;if(H&&Object.prototype.hasOwnProperty.call(H,n)&&(l=H[n]),s&&Object.prototype.hasOwnProperty.call(s,e)&&null!==s[e]){var u=s[e];"@:"===u.substr(0,2)?o=ie(u.substr(2),t,n,i,r):(o=l.interpolate(u,t,"filter",r,e),o=re(e,u,o,t,i,r))}else{var c;h&&!Y&&(c=Q(e,t,r)),i&&a&&a.length?(d=0,o=function(e,t,n,i){return te(A>0?A:d,e,t,n,i)}(e,t,l,r)):o=h&&!Y&&c?c:q(e)}return o},re=function(e,n,i,r,o,a){var s=y;return s&&("string"==typeof s&&(s=t.get(s)),s)?s(e,n,i,r,o,a):i},oe=function(e){b[e]||!p||U[e]||(U[e]=Z(e).then((function(e){return N(e.key,e.table),e})))};W.preferredLanguage=function(e){return e&&F(e),r},W.cloakClassName=function(){return k},W.nestedObjectDelimeter=function(){return T},W.fallbackLanguage=function(e){if(null!=e){if(z(e),p&&a&&a.length)for(var t=0,n=a.length;t<n;t++)U[a[t]]||(U[a[t]]=Z(a[t]));W.use(W.use())}return s?a[0]:a},W.useFallbackLanguage=function(e){if(null!=e)if(e){var t=I(a,e);t>-1&&(A=t)}else A=0},W.proposedLanguage=function(){return u},W.storage=function(){return o},W.negotiateLocale=B,W.use=function(e){if(!e)return l;var t=i.defer();t.promise.then(null,angular.noop),n.$emit("$translateChangeStart",{language:e});var r=B(e);return w.length>0&&!r?i.reject(e):(r&&(e=r),u=e,!S&&b[e]||!p||U[e]?U[e]?U[e].then((function(e){return u===e.key&&G(e.key),t.resolve(e.key),e}),(function(e){return!l&&a&&a.length>0&&a[0]!==e?W.use(a[0]).then(t.resolve,t.reject):t.reject(e)})):(t.resolve(e),G(e)):(U[e]=Z(e).then((function(n){return N(n.key,n.table),t.resolve(n.key),u===e&&G(n.key),n}),(function(e){return n.$emit("$translateChangeError",{language:e}),t.reject(e),n.$emit("$translateChangeEnd",{language:e}),i.reject(e)})),U[e].finally((function(){!function(e){u===e&&(u=void 0),U[e]=void 0}(e)})).catch(angular.noop)),t.promise)},W.resolveClientLocale=function(){return O()},W.storageKey=function(){return V()},W.isPostCompilingEnabled=function(){return x},W.isForceAsyncReloadEnabled=function(){return S},W.isKeepContent=function(){return D},W.refresh=function(e){if(!p)throw new Error("Couldn't refresh translation table, no loader registered!");n.$emit("$translateRefreshStart",{language:e});var t=i.defer(),r={};function o(e){var t=Z(e);return U[e]=t,t.then((function(t){b[e]={},N(e,t.table),r[e]=!0}),angular.noop),t}if(t.promise.then((function(){for(var e in b)b.hasOwnProperty(e)&&(e in r||delete b[e]);l&&G(l)}),angular.noop).finally((function(){n.$emit("$translateRefreshEnd",{language:e})})),e)b[e]?o(e).then(t.resolve,t.reject):t.reject();else{var s=a&&a.slice()||[];l&&-1===s.indexOf(l)&&s.push(l),i.all(s.map(o)).then(t.resolve,t.reject)}return t.promise},W.instant=function(e,t,n,i,o){var s=i&&i!==l?B(i)||i:l;if(null===e||angular.isUndefined(e))return e;if(i&&oe(i),angular.isArray(e)){for(var u={},c=0,d=e.length;c<d;c++)u[e[c]]=W.instant(e[c],t,n,i,o);return u}if(angular.isString(e)&&e.length<1)return e;e&&(e=j.apply(e));var f,p,m=[];r&&m.push(r),s&&m.push(s),a&&a.length&&(m=m.concat(a));for(var _=0,y=m.length;_<y;_++){var w=m[_];if(b[w]&&void 0!==b[w][e]&&(f=ie(e,t,n,s,o)),void 0!==f)break}return f||""===f||(g||v?f=q(e):(f=P.interpolate(e,t,"filter",o),h&&!Y&&(p=Q(e,t,o)),h&&!Y&&p&&(f=p))),f},W.versionInfo=function(){return"2.18.1"},W.loaderCache=function(){return _},W.directivePriority=function(){return C},W.statefulFilter=function(){return E},W.isReady=function(){return $};var ae=i.defer();ae.promise.then((function(){$=!0})),W.onReady=function(e){var t=i.defer();return angular.isFunction(e)&&t.promise.then(e),$?t.resolve():ae.promise.then(t.resolve),t.promise},W.getAvailableLanguageKeys=function(){return w.length>0?w:null},W.getTranslationTable=function(e){return(e=e||W.use())&&b[e]?angular.copy(b[e]):null};var se=n.$on("$translateReady",(function(){ae.resolve(),se(),se=null})),le=n.$on("$translateChangeEnd",(function(){ae.resolve(),le(),le=null}));if(p){if(angular.equals(b,{})&&W.use()&&W.use(W.use()),a&&a.length)for(var ue=function(e){return N(e.key,e.table),n.$emit("$translateChangeEnd",{language:e.key}),e},ce=0,de=a.length;ce<de;ce++){var he=a[ce];!S&&b[he]||(U[he]=Z(he).then(ue))}}else n.$emit("$translateReady",{language:W.use()});return W}]}function n(e,t){"use strict";var n={setLocale:function(e){},getInterpolationIdentifier:function(){return"default"},useSanitizeValueStrategy:function(e){return t.useStrategy(e),this},interpolate:function(n,i,r,o,a){var s;return i=i||{},i=t.sanitize(i,"params",o,r),angular.isNumber(n)?s=""+n:angular.isString(n)?(s=e(n)(i),s=t.sanitize(s,"text",o,r)):s="",s}};return n}function i(e,t,n,i,r){"use strict";var o=function(){return this.toString().replace(/^\s+|\s+$/g,"")},a=function(e){return angular.isString(e)?e.toLowerCase():e};return{restrict:"AE",scope:!0,priority:e.directivePriority(),compile:function(s,l){var u=l.translateValues?l.translateValues:void 0,c=l.translateInterpolation?l.translateInterpolation:void 0,d=l.translateSanitizeStrategy?l.translateSanitizeStrategy:void 0,h=s[0].outerHTML.match(/translate-value-+/i),f="^(.*)("+t.startSymbol()+".*"+t.endSymbol()+")(.*)",p="^(.*)"+t.startSymbol()+"(.*)"+t.endSymbol()+"(.*)";return function(s,m,g){s.interpolateParams={},s.preText="",s.postText="",s.translateNamespace=function e(t){return t.translateNamespace?t.translateNamespace:t.$parent?e(t.$parent):void 0}(s);var v={},_=function(e){if(angular.isFunction(_._unwatchOld)&&(_._unwatchOld(),_._unwatchOld=void 0),angular.equals(e,"")||!angular.isDefined(e)){var n=o.apply(m.text()),i=n.match(f);if(angular.isArray(i)){s.preText=i[1],s.postText=i[3],v.translate=t(i[2])(s.$parent);var r=n.match(p);angular.isArray(r)&&r[2]&&r[2].length&&(_._unwatchOld=s.$watch(r[2],(function(e){v.translate=e,k()})))}else v.translate=n||void 0}else v.translate=e;k()},y=function(e){g.$observe(e,(function(t){v[e]=t,k()}))};!function(e,t,n){if(t.translateValues&&angular.extend(e,i(t.translateValues)(s.$parent)),h)for(var r in n)Object.prototype.hasOwnProperty.call(t,r)&&"translateValue"===r.substr(0,14)&&"translateValues"!==r&&(e[a(r.substr(14,1))+r.substr(15)]=n[r])}(s.interpolateParams,g,l);var b=!0;for(var w in g.$observe("translate",(function(e){void 0===e?_(""):""===e&&b||(v.translate=e,k()),b=!1})),g)g.hasOwnProperty(w)&&"translateAttr"===w.substr(0,13)&&w.length>13&&y(w);if(g.$observe("translateDefault",(function(e){s.defaultText=e,k()})),d&&g.$observe("translateSanitizeStrategy",(function(e){s.sanitizeStrategy=i(e)(s.$parent),k()})),u&&g.$observe("translateValues",(function(e){e&&s.$parent.$watch((function(){angular.extend(s.interpolateParams,i(e)(s.$parent))}))})),h){var L=function(e){g.$observe(e,(function(t){var n=a(e.substr(14,1))+e.substr(15);s.interpolateParams[n]=t}))};for(var M in g)Object.prototype.hasOwnProperty.call(g,M)&&"translateValue"===M.substr(0,14)&&"translateValues"!==M&&L(M)}var k=function(){for(var e in v)v.hasOwnProperty(e)&&void 0!==v[e]&&x(e,v[e],s,s.interpolateParams,s.defaultText,s.translateNamespace)},x=function(t,n,i,r,o,a){n?(a&&"."===n.charAt(0)&&(n=a+n),e(n,r,c,o,i.translateLanguage,i.sanitizeStrategy).then((function(e){S(e,i,!0,t)}),(function(e){S(e,i,!1,t)}))):S(n,i,!1,t)},S=function(t,i,r,o){if(r||void 0!==i.defaultText&&(t=i.defaultText),"translate"===o){(r||!r&&!e.isKeepContent()&&void 0===g.translateKeepContent)&&m.empty().append(i.preText+t+i.postText);var a=e.isPostCompilingEnabled(),s=void 0!==l.translateCompile,u=s&&"false"!==l.translateCompile;(a&&!s||u)&&n(m.contents())(i)}else{var c=g.$attr[o];"data-"===c.substr(0,5)&&(c=c.substr(5)),c=c.substr(15),m.attr(c,t)}};(u||h||g.translateDefault)&&s.$watch("interpolateParams",k,!0),s.$on("translateLanguageChanged",k);var T=r.$on("$translateChangeSuccess",k);m.text().length?g.translate?_(g.translate):_(""):g.translate&&_(g.translate),k(),s.$on("$destroy",T)}}}}function r(e,t){"use strict";return{restrict:"A",priority:e.directivePriority(),link:function(n,i,r){var a,s,l,u={},c=function(){angular.forEach(a,(function(t,o){t&&(u[o]=!0,n.translateNamespace&&"."===t.charAt(0)&&(t=n.translateNamespace+t),e(t,s,r.translateInterpolation,void 0,n.translateLanguage,l).then((function(e){i.attr(o,e)}),(function(e){i.attr(o,e)})))})),angular.forEach(u,(function(e,t){a[t]||(i.removeAttr(t),delete u[t])}))};o(n,r.translateAttr,(function(e){a=e}),c),o(n,r.translateValues,(function(e){s=e}),c),o(n,r.translateSanitizeStrategy,(function(e){l=e}),c),r.translateValues&&n.$watch(r.translateValues,c,!0),n.$on("translateLanguageChanged",c);var d=t.$on("$translateChangeSuccess",c);c(),n.$on("$destroy",d)}}}function o(e,t,n,i){"use strict";t&&("::"===t.substr(0,2)?t=t.substr(2):e.$watch(t,(function(e){n(e),i()}),!0),n(e.$eval(t)))}function a(e,t){"use strict";return{compile:function(n){var i=function(t){t.addClass(e.cloakClassName())},r=function(t){t.removeClass(e.cloakClassName())};return i(n),function(n,o,a){var s=r.bind(this,o),l=i.bind(this,o);a.translateCloak&&a.translateCloak.length?(a.$observe("translateCloak",(function(t){e(t).then(s,l)})),t.$on("$translateChangeSuccess",(function(){e(a.translateCloak).then(s,l)}))):e.onReady(s)}}}}function s(){"use strict";return{restrict:"A",scope:!0,compile:function(){return{pre:function(e,t,n){e.translateNamespace=function e(t){return t.translateNamespace?t.translateNamespace:t.$parent?e(t.$parent):void 0}(e),e.translateNamespace&&"."===n.translateNamespace.charAt(0)?e.translateNamespace+=n.translateNamespace:e.translateNamespace=n.translateNamespace}}}}}function l(){"use strict";return{restrict:"A",scope:!0,compile:function(){return function(e,t,n){n.$observe("translateLanguage",(function(t){e.translateLanguage=t})),e.$watch("translateLanguage",(function(){e.$broadcast("translateLanguageChanged")}))}}}}function u(e,t){"use strict";var n=function(n,i,r,o){if(!angular.isObject(i)){var a=this||{__SCOPE_IS_NOT_AVAILABLE:"More info at https://github.com/angular/angular.js/commit/8863b9d04c722b278fa93c5d66ad1e578ad6eb1f"};i=e(i)(a)}return t.instant(n,i,r,o)};return t.statefulFilter()&&(n.$stateful=!0),n}function c(e){"use strict";return e("translations")}return e.$inject=["$translate"],t.$inject=["$STORAGE_KEY","$windowProvider","$translateSanitizationProvider","pascalprechtTranslateOverrider"],n.$inject=["$interpolate","$translateSanitization"],i.$inject=["$translate","$interpolate","$compile","$parse","$rootScope"],r.$inject=["$translate","$rootScope"],a.$inject=["$translate","$rootScope"],u.$inject=["$parse","$translate"],c.$inject=["$cacheFactory"],angular.module("pascalprecht.translate",["ng"]).run(e),e.displayName="runTranslate",angular.module("pascalprecht.translate").provider("$translateSanitization",(function(){"use strict";var e,t,n,i=null,r=!1,o=!1;(n={sanitize:function(e,t){return"text"===t&&(e=s(e)),e},escape:function(e,t){return"text"===t&&(e=a(e)),e},sanitizeParameters:function(e,t){return"params"===t&&(e=u(e,s)),e},escapeParameters:function(e,t){return"params"===t&&(e=u(e,a)),e},sce:function(e,t,n){return"text"===t?e=l(e):"params"===t&&"filter"!==n&&(e=u(e,a)),e},sceParameters:function(e,t){return"params"===t&&(e=u(e,l)),e}}).escaped=n.escapeParameters,this.addStrategy=function(e,t){return n[e]=t,this},this.removeStrategy=function(e){return delete n[e],this},this.useStrategy=function(e){return r=!0,i=e,this},this.$get=["$injector","$log",function(a,s){var l={};return a.has("$sanitize")&&(e=a.get("$sanitize")),a.has("$sce")&&(t=a.get("$sce")),{useStrategy:function(e){return function(t){e.useStrategy(t)}}(this),sanitize:function(e,t,u,c){return i||r||o||(s.warn("pascalprecht.translate.$translateSanitization: No sanitization strategy has been configured. This can have serious security implications. See http://angular-translate.github.io/docs/#/guide/19_security for details."),o=!0),u||null===u||(u=i),u?(c||(c="service"),function(e,t,i,r){return angular.forEach(r,(function(r){if(angular.isFunction(r))e=r(e,t,i);else if(angular.isFunction(n[r]))e=n[r](e,t,i);else{if(!angular.isString(n[r]))throw new Error("pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '"+r+"'");if(!l[n[r]])try{l[n[r]]=a.get(n[r])}catch(e){throw l[n[r]]=function(){},new Error("pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '"+r+"'")}e=l[n[r]](e,t,i)}})),e}(e,t,c,angular.isArray(u)?u:[u])):e}}}];var a=function(e){var t=angular.element("<div></div>");return t.text(e),t.html()},s=function(t){if(!e)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return e(t)},l=function(e){if(!t)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return t.trustAsHtml(e)},u=function(e,t,n){if(angular.isDate(e))return e;if(angular.isObject(e)){var i=angular.isArray(e)?[]:{};if(n){if(n.indexOf(e)>-1)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot interpolate parameter due recursive object")}else n=[];return n.push(e),angular.forEach(e,(function(e,r){angular.isFunction(e)||(i[r]=u(e,t,n))})),n.splice(-1,1),i}return angular.isNumber(e)?e:!0===e||!1===e?e:angular.isUndefined(e)||null===e?e:t(e)}})),angular.module("pascalprecht.translate").constant("pascalprechtTranslateOverrider",{}).provider("$translate",t),t.displayName="displayName",angular.module("pascalprecht.translate").factory("$translateDefaultInterpolation",n),n.displayName="$translateDefaultInterpolation",angular.module("pascalprecht.translate").constant("$STORAGE_KEY","NG_TRANSLATE_LANG_KEY"),angular.module("pascalprecht.translate").directive("translate",i),i.displayName="translateDirective",angular.module("pascalprecht.translate").directive("translateAttr",r),r.displayName="translateAttrDirective",angular.module("pascalprecht.translate").directive("translateCloak",a),a.displayName="translateCloakDirective",angular.module("pascalprecht.translate").directive("translateNamespace",s),s.displayName="translateNamespaceDirective",angular.module("pascalprecht.translate").directive("translateLanguage",l),l.displayName="translateLanguageDirective",angular.module("pascalprecht.translate").filter("translate",u),u.displayName="translateFilterFactory",angular.module("pascalprecht.translate").factory("$translationCache",c),c.displayName="$translationCache","pascalprecht.translate"})),
-/**
- * @license AngularJS v1.5.11
- * (c) 2010-2017 Google, Inc. http://angularjs.org
- * License: MIT
- */
-function(e,t){"use strict";var n,i,r,o;function a(){return["$animate",function(e){return{restrict:"AE",transclude:"element",priority:1,terminal:!0,require:"^^ngMessages",link:function(t,n,r,o,a){var s,l,u,c=n[0],d=r.ngMessage||r.when,h=r.ngMessageExp||r.whenExp,f=function(e){s=e?i(e)?e:e.split(/[\s,]+/):null,o.reRender()};h?(f(t.$eval(h)),t.$watchCollection(h,f)):f(d),o.register(c,u={test:function(e){return function(e,t){if(e)return i(e)?e.indexOf(t)>=0:e.hasOwnProperty(t)}(s,e)},attach:function(){l||a((function(t,i){e.enter(t,null,n);var r=(l=t).$$attachId=o.getAttachId();l.on("$destroy",(function(){l&&l.$$attachId===r&&(o.deregister(c),u.detach()),i.$destroy()}))}))},detach:function(){if(l){var t=l;l=null,e.leave(t)}}})}}}]}t.module("ngMessages",[],(function(){n=t.forEach,i=t.isArray,r=t.isString,o=t.element})).directive("ngMessages",["$animate",function(e){return{require:"ngMessages",restrict:"AE",controller:["$element","$scope","$attrs",function(r,o,a){var s=this,l=0,u=0;this.getAttachId=function(){return u++};var c,d,h=this.messages={};function f(e,t){for(var n=t,i=[];n&&n!==e;){var r=n.$$ngMessageNode;if(r&&r.length)return h[r];n.childNodes.length&&-1===i.indexOf(n)?(i.push(n),n=n.childNodes[n.childNodes.length-1]):n.previousSibling?n=n.previousSibling:(n=n.parentNode,i.push(n))}}this.render=function(l){c=!1,d=l=l||{};for(var u=t(o,a.ngMessagesMultiple)||t(o,a.multiple),h=[],f={},p=s.head,m=!1,g=0;null!=p;){g++;var v=p.message,_=!1;m||n(l,(function(e,t){if(!_&&i(e)&&v.test(t)){if(f[t])return;f[t]=!0,_=!0,v.attach()}})),_?m=!u:h.push(v),p=p.next}n(h,(function(e){e.detach()})),h.length!==g?e.setClass(r,"ng-active","ng-inactive"):e.setClass(r,"ng-inactive","ng-active")},o.$watchCollection(a.ngMessages||a.for,s.render),r.on("$destroy",(function(){n(h,(function(e){e.message.detach()}))})),this.reRender=function(){c||(c=!0,o.$evalAsync((function(){c&&d&&s.render(d)})))},this.register=function(e,t){var n=l.toString();h[n]={message:t},function(e,t,n){var i=h[n];if(s.head){var r=f(e,t);r?(i.next=r.next,r.next=i):(i.next=s.head,s.head=i)}else s.head=i}(r[0],e,n),e.$$ngMessageNode=n,l++,s.reRender()},this.deregister=function(e){var t=e.$$ngMessageNode;delete e.$$ngMessageNode,function(e,t,n){var i=h[n],r=f(e,t);r?r.next=i.next:s.head=i.next}(r[0],e,t),delete h[t],s.reRender()}}]};function t(e,t){return r(t)&&0===t.length||i(e.$eval(t))}function i(e){return r(e)?e.length:!!e}}]).directive("ngMessagesInclude",["$templateRequest","$document","$compile",function(e,t,n){return{restrict:"AE",require:"^^ngMessages",link:function(t,o,a){var s=a.ngMessagesInclude||a.src;e(s).then((function(e){t.$$destroyed||(r(e)&&!e.trim()?i(o,s):n(e)(t,(function(e){o.after(e),i(o,s)})))}))}};function i(e,i){var r=n.$$createComment?n.$$createComment("ngMessagesInclude",i):t[0].createComment(" ngMessagesInclude: "+i+" "),a=o(r);e.after(a),e.remove()}}]).directive("ngMessage",a()).directive("ngMessageExp",a())}(window,window.angular),function(e,t,n){"use strict";t.module("ngApi",[]).factory("Api",["$q","$rootScope",function(e,n){var i=function(e,t){this.gantt=e,this.apiId=t,this.eventListeners=[]};function r(e,t,i,r){return n.$on(e,(function(){var e=Array.prototype.slice.call(arguments);e.splice(0,1),t.apply(r||i,e)}))}return i.prototype.suppressEvents=function(e,n){var i=this,o=t.isArray(e)?e:[e],a=[];o.forEach((function(e){a=i.eventListeners.filter((function(t){return e===t.handler}))})),a.forEach((function(e){e.dereg()})),n(),a.forEach((function(e){e.dereg=r(e.eventId,e.handler,i.gantt,e._this)}))},i.prototype.registerEvent=function(t,i){var o=this;o[t]||(o[t]={});var a=o[t];a.on||(a.on={},a.raise={},a.raisePromise={});var s="event:api:"+this.apiId+":"+t+":"+i;a.raise[i]=function(){n.$emit.apply(n,[s].concat(Array.prototype.slice.call(arguments)))},a.raisePromise[i]=function(){var t=n.$$listenerCount[s];if(!t)return e.when();var i=e.defer();t>1&&((i={promise:i.promise,notify:i.notify,raw:i,count:0,errors:[],results:[]}).checkFinish=function(){i.count<t||(i.count=0,i.errors.length?(1==i.errors.length?i.raw.reject(i.errors[0]):i.raw.reject(i.errors),i.errors=[]):(i.raw.resolve(i.results),i.results=[]))},i.resolve=function(e){i.results.push(e),i.count++,i.checkFinish()},i.reject=function(e){i.errors.push(e),i.count++,i.checkFinish()});var r=[s].concat(Array.prototype.slice.call(arguments)).concat([i]);return n.$emit.apply(n,r),i.promise},a.on[i]=function(e,t,n){var i={handler:t,dereg:r(s,t,o.gantt,n),eventId:s,scope:e,_this:n};o.eventListeners.push(i);var a=function(){i.dereg();var e=o.eventListeners.indexOf(i);o.eventListeners.splice(e,1)};return e.$on("$destroy",(function(){a()})),a}},i.prototype.hasListeners=function(e,n){var i=this,o=t.isArray(e)?e:[e],a=[];o.forEach((function(e){a=i.eventListeners.filter((function(t){return e===t.handler}))})),a.forEach((function(e){e.dereg()})),n(),a.forEach((function(e){e.dereg=r(e.eventId,e.handler,i.gantt,e._this)}))},i.prototype.registerMethod=function(e,t,n,i){this[e]||(this[e]={}),this[e][t]=function(){n.apply(i||this.app,arguments)}},i}])}(window,window.angular),
-/**
- * angular-cache
- * @version 4.6.0 - Homepage <https://github.com/jmdobry/angular-cache>
- * @copyright (c) 2013-2016 angular-cache project authors
- * @license MIT <https://github.com/jmdobry/angular-cache/blob/master/LICENSE>
- * @overview angular-cache is a very useful replacement for Angular's $cacheFactory.
- */
-function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t("undefined"==typeof angular?require("angular"):angular):"function"==typeof define&&define.amd?define("angular-cache",["angular"],t):e.angularCacheModuleName=t(e.angular)}(this,(function(e){"use strict";e="default"in e?e.default:e;var t={};t.typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};var n=function(e,t,n){for(var i=e[n],r=t(i);n>0;){var o=Math.floor((n+1)/2)-1,a=e[o];if(r>=t(a))break;e[o]=i,e[n]=a,n=o}},i=function(e,t,n){for(var i=e.length,r=e[n],o=t(r);;){var a=2*(n+1),s=a-1,l=null;if(s<i&&t(e[s])<o&&(l=s),a<i&&t(e[a])<(null===l?o:t(e[s]))&&(l=a),null===l)break;e[n]=e[l],e[l]=r,n=l}};function r(e,t){if(e||(e=function(e){return e}),t||(t=function(e,t){return e===t}),"function"!=typeof e)throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!');if("function"!=typeof t)throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!');this.weightFunc=e,this.compareFunc=t,this.heap=[]}var o=r.prototype;o.push=function(e){this.heap.push(e),n(this.heap,this.weightFunc,this.heap.length-1)},o.peek=function(){return this.heap[0]},o.pop=function(){var e=this.heap[0],t=this.heap.pop();return this.heap.length>0&&(this.heap[0]=t,i(this.heap,this.weightFunc,0)),e},o.remove=function(e){for(var t=this.heap.length,r=0;r<t;r++)if(this.compareFunc(this.heap[r],e)){var o=this.heap[r],a=this.heap.pop();return r!==t-1&&(this.heap[r]=a,n(this.heap,this.weightFunc,r),i(this.heap,this.weightFunc,r)),o}return null},o.removeAll=function(){this.heap=[]},o.size=function(){return this.heap.length};var a=null;try{a=window.Promise}catch(e){}var s={isNumber:function(e){return"number"==typeof e},isString:function(e){return"string"==typeof e},isObject:function(e){return null!==e&&"object"===(void 0===e?"undefined":t.typeof(e))},isFunction:function(e){return"function"==typeof e},fromJson:function(e){return JSON.parse(e)},equals:function(e,t){return e===t},Promise:a};function l(e){var t=[],n=void 0;if(!s.isObject(e))return t;for(n in e)e.hasOwnProperty(n)&&t.push(n);return t}function u(e){return e&&"function"==typeof e.then}function c(e){return s.isNumber(e)?e.toString():e}function d(e){var t={},n=void 0;if(!s.isObject(e))return t;for(n in e)e.hasOwnProperty(n)&&(t[n]=n);return t}var h={capacity:Number.MAX_VALUE,maxAge:Number.MAX_VALUE,deleteOnExpire:"none",onExpire:null,cacheFlushInterval:null,recycleFreq:1e3,storageMode:"memory",storageImpl:null,disabled:!1,storagePrefix:"cachefactory.caches.",storeOnResolve:!1,storeOnReject:!1},f={};function p(e,n){if(e in f)throw new Error(e+" already exists!");if(!s.isString(e))throw new Error("cacheId must be a string!");var i={},o={},a=null,p=new r((function(e){return e.expires}),s.equals),m=new r((function(e){return e.accessed}),s.equals),g=f[e]={$$id:e,destroy:function(){clearInterval(this.$$cacheFlushIntervalId),clearInterval(this.$$recycleFreqId),this.removeAll(),a&&(a().removeItem(this.$$prefix+".keys"),a().removeItem(this.$$prefix)),a=null,i=null,m=null,p=null,this.$$prefix=null,delete f[this.$$id]},disable:function(){this.$$disabled=!0},enable:function(){delete this.$$disabled},get:function(e,n){var r,l=this;if(Array.isArray(e)){var u=(r=[],e.forEach((function(e){var t=l.get(e,n);null!=t&&r.push(t)})),{v:r});if("object"===(void 0===u?"undefined":t.typeof(u)))return u.v}else if(e=c(e),this.$$disabled)return;if(n=n||{},!s.isString(e))throw new Error("key must be a string!");if(n&&!s.isObject(n))throw new Error("options must be an object!");if(n.onExpire&&!s.isFunction(n.onExpire))throw new Error("options.onExpire must be a function!");var d=void 0;if(a){if(o[e])return o[e];var h=a().getItem(this.$$prefix+".data."+e);if(!h)return;d=s.fromJson(h)}else if(s.isObject(i)){if(!(e in i))return;d=i[e]}var f=d.value,p=(new Date).getTime();return a?(m.remove({key:e,accessed:d.accessed}),d.accessed=p,m.push({key:e,accessed:p})):(m.remove(d),d.accessed=p,m.push(d)),"passive"===this.$$deleteOnExpire&&"expires"in d&&d.expires<p?(this.remove(e),this.$$onExpire?this.$$onExpire(e,d.value,n.onExpire):n.onExpire&&n.onExpire.call(this,e,d.value),f=void 0):a&&a().setItem(this.$$prefix+".data."+e,JSON.stringify(d)),f},info:function(e){if(e){var t=void 0;if(a){var n=a().getItem(this.$$prefix+".data."+e);return n?{created:(t=s.fromJson(n)).created,accessed:t.accessed,expires:t.expires,isExpired:(new Date).getTime()-t.created>(t.maxAge||this.$$maxAge)}:void 0}return s.isObject(i)&&e in i?{created:(t=i[e]).created,accessed:t.accessed,expires:t.expires,isExpired:(new Date).getTime()-t.created>(t.maxAge||this.$$maxAge)}:void 0}return{id:this.$$id,capacity:this.$$capacity,maxAge:this.$$maxAge,deleteOnExpire:this.$$deleteOnExpire,onExpire:this.$$onExpire,cacheFlushInterval:this.$$cacheFlushInterval,recycleFreq:this.$$recycleFreq,storageMode:this.$$storageMode,storageImpl:a?a():void 0,disabled:!!this.$$disabled,size:m&&m.size()||0}},keys:function(){if(a){var e=a().getItem(this.$$prefix+".keys");return e?s.fromJson(e):[]}return l(i)},keySet:function(){if(a){var e=a().getItem(this.$$prefix+".keys"),t={};if(e)for(var n=s.fromJson(e),r=0;r<n.length;r++)t[n[r]]=n[r];return t}return d(i)},put:function(e,t,n){var r=this;n||(n={});var l="storeOnResolve"in n?!!n.storeOnResolve:this.$$storeOnResolve,d="storeOnReject"in n?!!n.storeOnReject:this.$$storeOnReject,h=function(t,n){return function(i){if(t&&(delete o[e],s.isObject(i)&&"status"in i&&"data"in i?(i=[i.status,i.data,i.headers(),i.statusText],r.put(e,i)):r.put(e,i)),n){if(s.Promise)return s.Promise.reject(i);throw i}return i}};if(!this.$$disabled&&s.isObject(i)&&null!=t){if(e=c(e),!s.isString(e))throw new Error("key must be a string!");var f=(new Date).getTime(),g={key:e,value:u(t)?t.then(h(l,!1),h(d,!0)):t,created:void 0===n.created?f:n.created,accessed:void 0===n.accessed?f:n.accessed};if(n.maxAge&&(g.maxAge=n.maxAge),void 0===n.expires?g.expires=g.created+(g.maxAge||this.$$maxAge):g.expires=n.expires,a){if(u(g.value))return o[e]=g.value,o[e];var v=a().getItem(this.$$prefix+".keys"),_=v?s.fromJson(v):[];a().getItem(this.$$prefix+".data."+e)&&this.remove(e),p.push({key:e,expires:g.expires}),m.push({key:e,accessed:g.accessed}),a().setItem(this.$$prefix+".data."+e,JSON.stringify(g));for(var y=!1,b=0;b<_.length;b++)if(_[b]===e){y=!0;break}y||_.push(e),a().setItem(this.$$prefix+".keys",JSON.stringify(_))}else i[e]&&this.remove(e),p.push(g),m.push(g),i[e]=g,delete o[e];return m.size()>this.$$capacity&&this.remove(m.peek().key),t}},remove:function(e){if(delete o[e+=""],a){var t=a().getItem(this.$$prefix+".data."+e);if(t){var n=s.fromJson(t);m.remove({key:e,accessed:n.accessed}),p.remove({key:e,expires:n.expires}),a().removeItem(this.$$prefix+".data."+e);var r=a().getItem(this.$$prefix+".keys"),l=r?s.fromJson(r):[],u=l.indexOf(e);return u>=0&&l.splice(u,1),a().setItem(this.$$prefix+".keys",JSON.stringify(l)),n.value}}else if(s.isObject(i)){var c=i[e]?i[e].value:void 0;return m.remove(i[e]),p.remove(i[e]),i[e]=null,delete i[e],c}},removeAll:function(){if(a){m.removeAll(),p.removeAll();var e=a().getItem(this.$$prefix+".keys");if(e)for(var t=s.fromJson(e),n=0;n<t.length;n++)this.remove(t[n]);a().setItem(this.$$prefix+".keys",JSON.stringify([]))}else if(s.isObject(i)){for(var r in m.removeAll(),p.removeAll(),i)i[r]=null;i={}}else m.removeAll(),p.removeAll(),i={};o={}},removeExpired:function(){for(var e=(new Date).getTime(),t={},n=void 0,i=void 0;(i=p.peek())&&i.expires<=e;)t[i.key]=i.value?i.value:null,p.pop();if(a)for(n in t){var r=a().getItem(this.$$prefix+".data."+n);r&&(t[n]=s.fromJson(r).value,this.remove(n))}else for(n in t)this.remove(n);if(this.$$onExpire)for(n in t)this.$$onExpire(n,t[n]);return t},setCacheFlushInterval:function(e){var t=this;if(null===e)delete t.$$cacheFlushInterval;else{if(!s.isNumber(e))throw new Error("cacheFlushInterval must be a number!");if(e<0)throw new Error("cacheFlushInterval must be greater than zero!");e!==t.$$cacheFlushInterval&&(t.$$cacheFlushInterval=e,clearInterval(t.$$cacheFlushIntervalId),t.$$cacheFlushIntervalId=setInterval((function(){t.removeAll()}),t.$$cacheFlushInterval))}},setCapacity:function(e){if(null===e)delete this.$$capacity;else{if(!s.isNumber(e))throw new Error("capacity must be a number!");if(e<0)throw new Error("capacity must be greater than zero!");this.$$capacity=e}for(var t={};m.size()>this.$$capacity;)t[m.peek().key]=this.remove(m.peek().key);return t},setDeleteOnExpire:function(e,t){if(null===e)delete this.$$deleteOnExpire;else{if(!s.isString(e))throw new Error("deleteOnExpire must be a string!");if("none"!==e&&"passive"!==e&&"aggressive"!==e)throw new Error('deleteOnExpire must be "none", "passive" or "aggressive"!');this.$$deleteOnExpire=e}!1!==t&&this.setRecycleFreq(this.$$recycleFreq)},setMaxAge:function(e){if(null===e)this.$$maxAge=Number.MAX_VALUE;else{if(!s.isNumber(e))throw new Error("maxAge must be a number!");if(e<0)throw new Error("maxAge must be greater than zero!");this.$$maxAge=e}var t=void 0,n=void 0,r=void 0;if(p.removeAll(),a){var o=a().getItem(this.$$prefix+".keys");for(n=o?s.fromJson(o):[],t=0;t<n.length;t++){r=n[t];var u=a().getItem(this.$$prefix+".data."+r);if(u){var c=s.fromJson(u);this.$$maxAge===Number.MAX_VALUE?c.expires=Number.MAX_VALUE:c.expires=c.created+(c.maxAge||this.$$maxAge),p.push({key:r,expires:c.expires})}}}else for(n=l(i),t=0;t<n.length;t++)r=n[t],this.$$maxAge===Number.MAX_VALUE?i[r].expires=Number.MAX_VALUE:i[r].expires=i[r].created+(i[r].maxAge||this.$$maxAge),p.push(i[r]);return"aggressive"===this.$$deleteOnExpire?this.removeExpired():{}},setOnExpire:function(e){if(null===e)delete this.$$onExpire;else{if(!s.isFunction(e))throw new Error("onExpire must be a function!");this.$$onExpire=e}},setOptions:function(e,t){if(e=e||{},t=!!t,!s.isObject(e))throw new Error("cacheOptions must be an object!");"storagePrefix"in e?this.$$storagePrefix=e.storagePrefix:t&&(this.$$storagePrefix=h.storagePrefix),this.$$prefix=this.$$storagePrefix+this.$$id,"disabled"in e?this.$$disabled=!!e.disabled:t&&(this.$$disabled=h.disabled),"deleteOnExpire"in e?this.setDeleteOnExpire(e.deleteOnExpire,!1):t&&this.setDeleteOnExpire(h.deleteOnExpire,!1),"recycleFreq"in e?this.setRecycleFreq(e.recycleFreq):t&&this.setRecycleFreq(h.recycleFreq),"maxAge"in e?this.setMaxAge(e.maxAge):t&&this.setMaxAge(h.maxAge),"storeOnResolve"in e?this.$$storeOnResolve=!!e.storeOnResolve:t&&(this.$$storeOnResolve=h.storeOnResolve),"storeOnReject"in e?this.$$storeOnReject=!!e.storeOnReject:t&&(this.$$storeOnReject=h.storeOnReject),"capacity"in e?this.setCapacity(e.capacity):t&&this.setCapacity(h.capacity),"cacheFlushInterval"in e?this.setCacheFlushInterval(e.cacheFlushInterval):t&&this.setCacheFlushInterval(h.cacheFlushInterval),"onExpire"in e?this.setOnExpire(e.onExpire):t&&this.setOnExpire(h.onExpire),"storageMode"in e||"storageImpl"in e?this.setStorageMode(e.storageMode||h.storageMode,e.storageImpl||h.storageImpl):t&&this.setStorageMode(h.storageMode,h.storageImpl)},setRecycleFreq:function(e){if(null===e)delete this.$$recycleFreq;else{if(!s.isNumber(e))throw new Error("recycleFreq must be a number!");if(e<0)throw new Error("recycleFreq must be greater than zero!");this.$$recycleFreq=e}clearInterval(this.$$recycleFreqId),"aggressive"===this.$$deleteOnExpire?function(e){e.$$recycleFreqId=setInterval((function(){e.removeExpired()}),e.$$recycleFreq)}(this):delete this.$$recycleFreqId},setStorageMode:function(e,t){if(!s.isString(e))throw new Error("storageMode must be a string!");if("memory"!==e&&"localStorage"!==e&&"sessionStorage"!==e)throw new Error('storageMode must be "memory", "localStorage" or "sessionStorage"!');var n=a,r=i,o=!1,l={};function u(e,t){var n=this.keys(),i=n.length;if(i){for(var r=void 0,a=s.isObject(t),u=0;u<i;u++){if(r=n[u],e){var c=e().getItem(this.$$prefix+".data."+r);c&&(l[r]=s.fromJson(c))}else a&&(l[r]=t[r]);this.remove(r)}o=!0}}if(this.$$initializing||u.call(this,n,r),this.$$storageMode=e,t){if(!s.isObject(t))throw new Error("storageImpl must be an object!");if(!("setItem"in t&&"function"==typeof t.setItem))throw new Error('storageImpl must implement "setItem(key, value)"!');if(!("getItem"in t&&"function"==typeof t.getItem))throw new Error('storageImpl must implement "getItem(key)"!');if(!("removeItem"in t)||"function"!=typeof t.removeItem)throw new Error('storageImpl must implement "removeItem(key)"!');a=function(){return t}}else if("localStorage"===this.$$storageMode)try{localStorage.setItem("cachefactory","cachefactory"),localStorage.removeItem("cachefactory"),a=function(){return localStorage}}catch(e){a=null,this.$$storageMode="memory"}else if("sessionStorage"===this.$$storageMode)try{sessionStorage.setItem("cachefactory","cachefactory"),sessionStorage.removeItem("cachefactory"),a=function(){return sessionStorage}}catch(e){a=null,this.$$storageMode="memory"}else a=null,this.$$storageMode="memory";if(this.$$initializing&&u.call(this,a,i),o){var c=void 0;for(var d in l)c=l[d],this.put(d,c.value,{created:c.created,accessed:c.accessed,expires:c.expires})}},touch:function(e,t){var n=this;if(e){var i=this.get(e,{onExpire:function(e,t){return n.put(e,t)}});i&&this.put(e,i,t)}else for(var r=this.keys(),o=0;o<r.length;o++)this.touch(r[o],t)},values:function(){for(var e=this.keys(),t=[],n=0;n<e.length;n++)t.push(this.get(e[n]));return t}};return g.$$initializing=!0,g.setOptions(n,!0),g.$$initializing=!1,g}function m(e,t){return p(e,t)}return m.createCache=p,m.defaults=h,m.info=function(){var e=l(f),t={size:e.length,caches:{}};for(var n in h)h.hasOwnProperty(n)&&(t[n]=h[n]);for(var i=0;i<e.length;i++){var r=e[i];t.caches[r]=f[r].info()}return t},m.get=function(e){return f[e]},m.keySet=function(){return d(f)},m.keys=function(){return l(f)},m.destroy=function(e){f[e]&&(f[e].destroy(),delete f[e])},m.destroyAll=function(){for(var e in f)f[e].destroy();f={}},m.clearAll=function(){for(var e in f)f[e].removeAll()},m.removeExpiredFromAll=function(){var e={};for(var t in f)e[t]=f[t].removeExpired();return e},m.enableAll=function(){for(var e in f)f[e].$$disabled=!1},m.disableAll=function(){for(var e in f)f[e].$$disabled=!0},m.touchAll=function(){for(var e in f)f[e].touch()},m.utils=s,m.BinaryHeap=r,m.utils.equals=e.equals,m.utils.isObject=e.isObject,m.utils.fromJson=e.fromJson,e.module("angular-cache",[]).provider("BinaryHeap",(function(){this.$get=function(){return m.BinaryHeap}})).provider("CacheFactory",(function(){this.defaults=m.defaults,this.defaults.storagePrefix="angular-cache.caches.",this.$get=["$q",function(e){return m.utils.Promise=e,m}]})),"angular-cache"})),function(){"use strict";function e(e,t,n,i,r){function o(e){return angular.isString(e)?(e=e.split(/\s*,\s*/)).some((function(e){return!!t.matchMedia(d[e]).matches||void 0})):void 0}var a=r.config.rules,s=r.config.extraRules||{},l=r.config.nobind||!1,u=r.config.debounce||250,c={bootstrap:{lg:"(min-width: 1200px)",md:"(min-width: 992px) and (max-width: 1199px)",sm:"(min-width: 768px) and (max-width: 991px)",xs:"(max-width: 767px)"},matchmedia:{print:"print",screen:"screen",phone:"(max-width: 767px)",tablet:"(min-width: 768px) and (max-width: 991px)",desktop:"(min-width: 992px)",portrait:"(orientation: portrait)",landscape:"(orientation: landscape)"}},d={},h={is:o,bind:function(t,n){var i=null,r=o(t),a={active:r,unbind:null};if(!l){var s=(n=n||e).$on("screenmatch::resize",(function(){i=r,r=o(t),i!==r&&(a.active=r)}));a.unbind=function(){s()}}return a},once:function(t,n,r){var a=!1,s=null,u=o(t);if(angular.isFunction(n)&&(u&&(a=!0,i((function(){n()}))),!l&&!a))var c=(r=r||e).$on("screenmatch::resize",(function(){s=u,(u=o(t))&&s!==u&&(a=!0,i((function(){n()}))),a&&c()}))},when:function(t,n,r,a){var s=null,u=o(t);if(angular.isUndefined(a)&&!angular.isUndefined(r)&&(angular.isFunction(r)||(a=r,r=void 0)),angular.isFunction(n)&&(angular.isFunction(r)||angular.isUndefined(r))&&(u?i((function(){n()})):r&&i((function(){r()})),!l))return{cancel:(a=a||e).$on("screenmatch::resize",(function(){s=u,u=o(t),s!==u&&(u?i((function(){n()})):r&&i((function(){r()})))}))}}};return function(){if(d=angular.isObject(a)&&!angular.equals({},a)?a:c[a]||c.bootstrap,!angular.equals({},s)&&angular.isObject(s)){var e={};angular.forEach(s,(function(t,n){angular.isString(t)&&(e[n]=t)})),angular.extend(d,e)}}(),l||function(){var i=angular.element(t),r=!1;i.on("resize",(function(){if(!r)var t=n((function(){e.$broadcast("screenmatch::resize",!0),r&&(n.cancel(t),r=!1)}),u);r=!0}))}(),h}function t(e,t){var n=e[0];return{link:function(e,i,r){var o=r.asmScreen,a=t.bind(o,e);r.ngIf=function(){return a.active},n.link.apply(n,arguments)},terminal:n.terminal,transclude:n.transclude,priority:n.priority,restrict:n.restrict}}function n(e){(angular.isUndefined(e.matchMedia)||!angular.isFunction(e.matchMedia("all").addListener))&&(e.matchMedia=function(){var t=e.styleMedia||e.media;if(!t){var n,i=document.createElement("style"),r=document.getElementsByTagName("script")[0];i.type="text/css",i.id="matchmediajs-test",r.parentNode.insertBefore(i,r),n="getComputedStyle"in e&&e.getComputedStyle(i,null)||i.currentStyle,t={matchMedium:function(e){var t="@media "+e+"{ #matchmediajs-test { width: 1px; } }";return i.styleSheet?i.styleSheet.cssText=t:i.textContent=t,"1px"===n.width}}}return function(e){return{matches:t.matchMedium(e||"all"),media:e||"all"}}}())}angular.module("angular.screenmatch",[]).run(n).provider("screenmatchConfig",(function(){this.config={},this.$get=function(){return{config:this.config}}})).factory("screenmatch",e).directive("asmScreen",t),e.$inject=["$rootScope","$window","$interval","$timeout","screenmatchConfig"],t.$inject=["ngIfDirective","screenmatch"],n.$inject=["$window"]}(),function(){"use strict";function e(e,t){function n(t,n,i){n!==i&&e.$broadcast("$$rebind::"+t)}Object.keys(t).forEach((function(i){e.$watch(t[i],n.bind(null,i),"object"==typeof e[t[i]])}))}function t(e){function t(e,t,n){return function(e,i,r){var o,a,s,l,u;if("string"!=typeof i||!t.test(i))return e.call(this,i,r);for(o=i.split(":"),u=[];o.length;)if((a=o.shift())&&a.trim()){if(!n.test(a)){l=[a].concat(o).join(":");break}u.push(a)}return l||(l=u.splice(-1,1)[0]),(s=e.call(this,"::"+l,r)).$$watchDelegate=function(e,t){function n(e,n){t.forEach((function(t){e.$on("$$rebind::"+t,n)}))}if(e.$$watchDelegate.wrapped)return e.$$watchDelegate;var i=function(e,t,i,r,o){var a=e.bind(this,t,i,r,o);return n(t,a),a()}.bind(this,e.$$watchDelegate);return i.wrapped=!0,i}(s,u),s}.bind(null,e)}t.$inject=["$delegate","bindNotifierRegex","bindNotifierKeyRegex"],e.decorator("$parse",t)}t.$inject=["$provide"],angular.module("angular.bind.notifier",[]).constant("bindNotifierKeyRegex",/^[a-zA-Z0-9][\w-]*$/).constant("bindNotifierRegex",/^[\s]*:([a-zA-Z0-9][\w-]*):(.+\n?)+$/).factory("$Notifier",(function(){return function(t,n){if(!t)throw new Error("No $scope given");if(!n)throw new Error("No notifier object given");e(t,n)}})).directive("bindNotifier",(function(){return{restrict:"A",scope:!0,compile:function(t,n){var i={};return n.bindNotifier.replace(/[\{\}\s]/g,"").split(",").forEach((function(e){var t=e.split(":");i[t[0]]=t[1]})),function(t){e(t,i)}}}})).config(t)}(),r=function(e,t,n){var i=e,r=t||0,o=0;this.getRawData=function(){return i},"string"==typeof e?(o=n||i.length,this.getByteAt=function(e){return 255&i.charCodeAt(e+r)},this.getBytesAt=function(e,t){for(var n=[],o=0;o<t;o++)n[o]=255&i.charCodeAt(e+o+r);return n}):"unknown"==typeof e&&(o=n||IEBinary_getLength(i),this.getByteAt=function(e){return IEBinary_getByteAt(i,e+r)},this.getBytesAt=function(e,t){return new VBArray(IEBinary_getBytesAt(i,e+r,t)).toArray()}),this.getLength=function(){return o},this.getSByteAt=function(e){var t=this.getByteAt(e);return t>127?t-256:t},this.getShortAt=function(e,t){var n=t?(this.getByteAt(e)<<8)+this.getByteAt(e+1):(this.getByteAt(e+1)<<8)+this.getByteAt(e);return n<0&&(n+=65536),n},this.getSShortAt=function(e,t){var n=this.getShortAt(e,t);return n>32767?n-65536:n},this.getLongAt=function(e,t){var n=this.getByteAt(e),i=this.getByteAt(e+1),r=this.getByteAt(e+2),o=this.getByteAt(e+3),a=t?(((n<<8)+i<<8)+r<<8)+o:(((o<<8)+r<<8)+i<<8)+n;return a<0&&(a+=4294967296),a},this.getSLongAt=function(e,t){var n=this.getLongAt(e,t);return n>2147483647?n-4294967296:n},this.getStringAt=function(e,t){for(var n=[],i=this.getBytesAt(e,t),r=0;r<t;r++)n[r]=String.fromCharCode(i[r]);return n.join("")},this.getCharAt=function(e){return String.fromCharCode(this.getByteAt(e))},this.toBase64=function(){return window.btoa(i)},this.fromBase64=function(e){i=window.atob(e)}},o=function(){var e=!1,t={36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37520:"SubsecTime",37521:"SubsecTimeOriginal",37522:"SubsecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"ISOSpeedRatings",34856:"OECF",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRation",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",40965:"InteroperabilityIFDPointer",42016:"ImageUniqueID"},n={256:"ImageWidth",257:"ImageHeight",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer",40965:"InteroperabilityIFDPointer",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright"},i={0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential"},r={ExposureProgram:{0:"Not defined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Not defined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},Components:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"}};function o(e){return!!e.exifdata}function a(t){if(255!=t.getByteAt(0)||216!=t.getByteAt(1))return!1;for(var n,i=2,r=t.getLength();i<r;){if(255!=t.getByteAt(i))return e&&alert("Not a valid marker at offset "+i+", found: "+t.getByteAt(i)),!1;if(22400==(n=t.getByteAt(i+1)))return e&&alert("Found 0xFFE1 marker"),u(t,i+4,t.getShortAt(i+2,!0));if(225==n)return e&&alert("Found 0xFFE1 marker"),u(t,i+4,t.getShortAt(i+2,!0));i+=2+t.getShortAt(i+2,!0)}}function s(t,n,i,r,o){var a,s,u,c=t.getShortAt(i,o),d={};for(u=0;u<c;u++)a=i+12*u+2,!(s=r[t.getShortAt(a,o)])&&e&&alert("Unknown tag: "+t.getShortAt(a,o)),d[s]=l(t,a,n,0,o);return d}function l(e,t,n,i,r){var o,a,s,l,u,c=e.getShortAt(t+2,r),d=e.getLongAt(t+4,r),h=e.getLongAt(t+8,r)+n;switch(c){case 1:case 7:if(1==d)return e.getByteAt(t+8,r);for(o=d>4?h:t+8,a=[],f=0;f<d;f++)a[f]=e.getByteAt(o+f);return a;case 2:return o=d>4?h:t+8,e.getStringAt(o,d-1);case 3:if(1==d)return e.getShortAt(t+8,r);for(o=d>2?h:t+8,a=[],f=0;f<d;f++)a[f]=e.getShortAt(o+2*f,r);return a;case 4:if(1==d)return e.getLongAt(t+8,r);a=[];for(var f=0;f<d;f++)a[f]=e.getLongAt(h+4*f,r);return a;case 5:if(1==d)return l=e.getLongAt(h,r),u=e.getLongAt(h+4,r),(s=new Number(l/u)).numerator=l,s.denominator=u,s;for(a=[],f=0;f<d;f++)l=e.getLongAt(h+8*f,r),u=e.getLongAt(h+4+8*f,r),a[f]=new Number(l/u),a[f].numerator=l,a[f].denominator=u;return a;case 9:if(1==d)return e.getSLongAt(t+8,r);for(a=[],f=0;f<d;f++)a[f]=e.getSLongAt(h+4*f,r);return a;case 10:if(1==d)return e.getSLongAt(h,r)/e.getSLongAt(h+4,r);for(a=[],f=0;f<d;f++)a[f]=e.getSLongAt(h+8*f,r)/e.getSLongAt(h+4+8*f,r);return a}}function u(o,a){if("Exif"!=o.getStringAt(a,4))return e&&alert("Not valid EXIF data! "+o.getStringAt(a,4)),!1;var l,u,c,d,h,f=a+6;if(18761==o.getShortAt(f))l=!1;else{if(19789!=o.getShortAt(f))return e&&alert("Not valid TIFF data! (no 0x4949 or 0x4D4D)"),!1;l=!0}if(42!=o.getShortAt(f+2,l))return e&&alert("Not valid TIFF data! (no 0x002A)"),!1;if(8!=o.getLongAt(f+4,l))return e&&alert("Not valid TIFF data! (First offset not 8)",o.getShortAt(f+4,l)),!1;if((u=s(o,f,f+8,n,l)).ExifIFDPointer)for(c in d=s(o,f,f+u.ExifIFDPointer,t,l)){switch(c){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":d[c]=r[c][d[c]];break;case"ExifVersion":case"FlashpixVersion":d[c]=String.fromCharCode(d[c][0],d[c][1],d[c][2],d[c][3]);break;case"ComponentsConfiguration":d[c]=r.Components[d[c][0]]+r.Components[d[c][1]]+r.Components[d[c][2]]+r.Components[d[c][3]]}u[c]=d[c]}if(u.GPSInfoIFDPointer)for(c in h=s(o,f,f+u.GPSInfoIFDPointer,i,l)){switch(c){case"GPSVersionID":h[c]=h[c][0]+"."+h[c][1]+"."+h[c][2]+"."+h[c][3]}u[c]=h[c]}return u}return{readFromBinaryFile:function(e){return a(e)},pretty:function(e){if(!o(e))return"";var t,n=e.exifdata,i="";for(t in n)n.hasOwnProperty(t)&&("object"==typeof n[t]?n[t]instanceof Number?i+=t+" : "+n[t]+" ["+n[t].numerator+"/"+n[t].denominator+"]\r\n":i+=t+" : ["+n[t].length+" values]\r\n":i+=t+" : "+n[t]+"\r\n");return i},getTag:function(e,t){if(o(e))return e.exifdata[t]},getAllTags:function(e){if(!o(e))return{};var t,n=e.exifdata,i={};for(t in n)n.hasOwnProperty(t)&&(i[t]=n[t]);return i},getData:function(e,t){return!!e.complete&&(o(e)?t&&t.call(e):function(e,t){BinaryAjax(e.src,(function(n){var i=a(n.binaryResponse);e.exifdata=i||{},t&&t.call(e)}))}(e,t),!0)},Tags:t,TiffTags:n,GPSTags:i,StringValues:r}}(),angular.module("ImageCropper",[]).directive("imageCrop",(function(){return{template:'<div id="image-crop-{{ rand }}" class="ng-image-crop ng-image-crop--{{ shape }}" ng-style="moduleStyles"><section ng-style="sectionStyles" ng-show="step==1"></section><section ng-style="sectionStyles" ng-show="step==2"><canvas class="cropping-canvas" width="{{ canvasWidth }}" height="{{ canvasHeight }}" ng-mousemove="onCanvasMouseMove($event)" ng-mousedown="onCanvasMouseDown($event)"></canvas><div ng-style="croppingGuideStyles" class="cropping-guide"></div><div class="zoom-handle" ng-mousemove="onHandleMouseMove($event)" ng-mousedown="onHandleMouseDown($event)" ng-mouseup="onHandleMouseUp($event)"><span>&larr; zoom &rarr;</span></div></section><section ng-style="sectionStyles" class="image-crop-section-final" ng-show="step==3"><img class="image-crop-final" ng-src="{{ croppedDataUri }}" /></section></div>',replace:!0,restrict:"AE",scope:{crop:"=",width:"@",height:"@",shape:"@",src:"=",resultBlob:"=",result:"=",step:"=",padding:"@",maxSize:"@"},link:function(e,t,n){var i=e.padding?Number(e.padding):200;e.rand=Math.round(99999*Math.random()),e.step=e.step||1,e.shape=e.shape||"circle",e.width=parseInt(e.width,10)||300,e.height=parseInt(e.height,10)||300,e.canvasWidth=e.width+i,e.canvasHeight=e.height+i;var a=t[0],s=a.getElementsByClassName("cropping-canvas")[0],l=a.getElementsByClassName("zoom-handle")[0],u=a.getElementsByClassName("image-crop-final")[0],c=new Image,d=new FileReader,h=0,f=0,p=0,m=0,g=!1,v=0,_=0,y=!1,b=h,w=f,L=0,M=0,k=1,x=0,S=0,T=2,$=0,D=i/2,C=0,E=i/2,A=e.maxSize?Number(e.maxSize):null,P=s.getContext("2d"),Y=null;function O(e){var t=atob(e.split(",")[1]),n=new r(t,0,t.length);Y=o.readFromBinaryFile(n),function(e){return new Promise((function(t,n){if(!A)return t(e);var i=new Image;i.src=e,i.onload=function(){var n=i.height,r=i.width;if(n<=A&&r<=A)return t(e);var o=r/n;o>1?(r=A,n=A/o):(r=A*o,n=A),r=Math.round(r),n=Math.round(n);var a=document.createElement("canvas");a.width=r,a.height=n;var s=a.getContext("2d");s.drawImage(i,0,0,i.width,i.height,0,0,a.width,a.height),s.save();var l=a.toDataURL();t(l)}}))}(e).then((function(e){return Y&&Y.Orientation&&Y.Orientation>1?function(e,t){return new Promise((function(n,i){var r=new Image;r.src=e,r.onload=function(){var e=document.createElement("canvas");t.Orientation>=5?(e.width=r.height,e.height=r.width):(e.width=r.width,e.height=r.height);var i=e.getContext("2d");switch(t.Orientation){case 1:break;case 2:i.translate(r.width,0),i.scale(-1,1);break;case 3:i.translate(r.width,r.height),i.rotate(Math.PI);break;case 4:i.translate(0,r.height),i.scale(1,-1);break;case 5:i.rotate(.5*Math.PI),i.scale(1,-1);break;case 6:i.rotate(.5*Math.PI),i.translate(0,-r.height);break;case 7:i.rotate(.5*Math.PI),i.translate(r.width,-r.height),i.scale(-1,1);break;case 8:i.rotate(-.5*Math.PI),i.translate(-r.width,0)}i.drawImage(r,0,0),i.save();var o=e.toDataURL();n(o)}}))}(e,Y):e})).then((function(e){c.src=e})).catch((function(e){alert(e)}))}function I(e,t){return L=e=(e=e<$?$:e)>D?D:e,M=t=(t=t<C?C:t)>E?E:t,P.clearRect(0,0,s.width,s.height),P.drawImage(c,e,t,b,w),e==$||e==D||t==C||t==E}function j(e){return Math.round(1e3*e)/1e3}function H(){$=s.width-c.width*k-i/2,C=s.height-c.height*k-i/2}function B(e){if(e){var t=j(k+e);if(!(t<S||t>T)){k=t,H(),b=c.width*k,w=c.height*k;var n=p*k,i=m*k;n<$?n=$:n>D&&(n=D),i<C?i=C:i>E&&(i=E),P.clearRect(0,0,s.width,s.height),P.drawImage(c,n,i,b,w)}}}function N(e,t){document.documentElement.addEventListener(e,t,!1)}function R(e,t){document.documentElement.removeEventListener(e,t)}e.moduleStyles={width:e.width+i+"px",height:e.height+i+"px"},e.sectionStyles={width:e.width+i+"px",height:e.height+i+"px"},e.croppingGuideStyles={width:e.width+"px",height:e.height+"px",top:i/2+"px",left:i/2+"px"},d.onload=function(e){O(this.resultBlob)},c.onload=function(){e.step=2,e.$apply(),P.drawImage(c,0,0),h=c.width,f=c.height,e.width,this.width,e.height,this.height,b=h,w=f,S=h>=f?(s.height-i)/f:(s.width-i)/h,x=j(Math.sqrt(Math.pow(s.width,2)+Math.pow(s.height,2))),H(),I(Math.round(($+D)/2),Math.round((C+E)/2))},e.$watch("src",(function(){e.src?3!=e.step&&("Blob"==typeof e.src?d.readAsDataURL(e.src):O(e.src)):(e.step=1,k=1,p=0,m=0,g=!1,v=0,_=0,y=!1,P.clearRect(0,0,s.width,s.height),c.src="")})),e.$watch("crop",(function(){e.crop&&(e.doCrop(),e.crop=!1)})),u.onload=function(){var t=document.createElement("canvas");t.width=this.width-i,t.height=this.height-i,t.style.display="none",t.getContext("2d").drawImage(u,-i/2,-i/2),a.getElementsByClassName("image-crop-section-final")[0].appendChild(t);var n=t.toDataURL();e.result=n,e.resultBlob=function(e){var t,n;t=-1!==e.split(",")[0].indexOf("base64")?atob(e.split(",")[1]):decodeURI(e.split(",")[1]),n=e.split(",")[0].split(":")[1].split(";")[0];for(var i=new Array,r=0;r<t.length;r++)i[r]=t.charCodeAt(r);return new Blob([new Uint8Array(i)],{type:n})}(n),e.$apply()},e.doCrop=function(){e.croppedDataUri=s.toDataURL(),e.step=3},e.onCanvasMouseUp=function(t){g&&(t.preventDefault(),t.stopPropagation(),v=0,_=0,g=!1,p=L,m=M,R("mouseup",e.onCanvasMouseUp),R("touchend",e.onCanvasMouseUp),R("mousemove",e.onCanvasMouseMove),R("touchmove",e.onCanvasMouseMove))},s.addEventListener("touchend",e.onCanvasMouseUp,!1),e.onCanvasMouseDown=function(t){v="touchstart"===t.type?t.changedTouches[0].clientX:t.clientX,_="touchstart"===t.type?t.changedTouches[0].clientY:t.clientY,y=!1,g=!0,N("mouseup",e.onCanvasMouseUp),N("mousemove",e.onCanvasMouseMove)},s.addEventListener("touchstart",e.onCanvasMouseDown,!1),e.onHandleMouseDown=function(t){t.preventDefault(),t.stopPropagation(),v=F="touchstart"===t.type?t.changedTouches[0].clientX:t.clientX,_=z="touchstart"===t.type?t.changedTouches[0].clientY:t.clientY,g=!1,y=!0,N("mouseup",e.onHandleMouseUp),N("touchend",e.onHandleMouseUp),N("mousemove",e.onHandleMouseMove),N("touchmove",e.onHandleMouseMove)},l.addEventListener("touchstart",e.onHandleMouseDown,!1),e.onHandleMouseUp=function(t){y&&(t.preventDefault(),t.stopPropagation(),v=0,_=0,y=!1,p=L,m=M,R("mouseup",e.onHandleMouseUp),R("touchend",e.onHandleMouseUp),R("mousemove",e.onHandleMouseMove),R("touchmove",e.onHandleMouseMove))},l.addEventListener("touchend",e.onHandleMouseUp,!1),e.onCanvasMouseMove=function(e){if(e.preventDefault(),e.stopPropagation(),g){var t=v-("touchmove"===e.type?e.changedTouches[0].clientX:e.clientX),n=_-("touchmove"===e.type?e.changedTouches[0].clientY:e.clientY);I(p-t,m-n)}},s.addEventListener("touchmove",e.onCanvasMouseMove,!1);var F=null,z=null;e.onHandleMouseMove=function(e){if(e.stopPropagation(),e.preventDefault(),!y)return!1;var t=F-("touchmove"===e.type?e.changedTouches[0].clientX:e.clientX),n=z-("touchmove"===e.type?e.changedTouches[0].clientY:e.clientY);F="touchmove"===e.type?e.changedTouches[0].clientX:e.clientX,z="touchmove"===e.type?e.changedTouches[0].clientY:e.clientY,B(function(e,t){var n=j(Math.sqrt(Math.pow(e,2)+Math.pow(t,2))/x),i=j((T-S)*n*.6);return e>0?-i:i}(t,n))},l.addEventListener("touchmove",e.onHandleMouseMove,!1),e.onHandleMouseWheel=function(e){e.preventDefault(),B(e.deltaY>0?-.05:.05)},s.addEventListener("mousewheel",e.onHandleMouseWheel),l.addEventListener("mousewheel",e.onHandleMouseWheel)}}})),function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var i in n)("object"==typeof exports?exports:e)[i]=n[i]}}(this,(function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={exports:{},id:i,loaded:!1};return e[i].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}return n.m=e,n.c=t,n.p="",n(0)}([function(e,t,n){"use strict";e.exports="ngFileSaver",angular.module("ngFileSaver",[]).factory("FileSaver",["Blob","SaveAs","FileSaverUtils",n(1)]).factory("FileSaverUtils",[n(2)]).factory("Blob",["$window",n(3)]).factory("SaveAs",[n(5)])},function(e,t){"use strict";e.exports=function(e,t,n){return{saveAs:function(e,i,r){return n.isBlobInstance(e)||n.handleErrors("Data argument should be a blob instance"),n.isString(i)||n.handleErrors("Filename argument should be a string"),function(e,i,r){try{t(e,i,r)}catch(e){n.handleErrors(e.message)}}(e,i,r)}}}},function(e,t){"use strict";e.exports=function(){return{handleErrors:function(e){throw new Error(e)},isString:function(e){return"string"==typeof e||e instanceof String},isUndefined:function(e){return void 0===e},isBlobInstance:function(e){return e instanceof Blob}}}},function(e,t,n){"use strict";n(4),e.exports=function(e){return e.Blob}},function(e,t){
-/*! @source http://purl.eligrey.com/github/Blob.js/blob/master/Blob.js */
-!function(e){"use strict";if(e.URL=e.URL||e.webkitURL,e.Blob&&e.URL)try{return void new Blob}catch(e){}var t=e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder||function(e){var t=function(e){return Object.prototype.toString.call(e).match(/^\[object\s(.*)\]$/)[1]},n=function(){this.data=[]},i=function(e,t,n){this.data=e,this.size=e.length,this.type=t,this.encoding=n},r=n.prototype,o=i.prototype,a=e.FileReaderSync,s=function(e){this.code=this[this.name=e]},l="NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR".split(" "),u=l.length,c=e.URL||e.webkitURL||e,d=c.createObjectURL,h=c.revokeObjectURL,f=c,p=e.btoa,m=e.atob,g=e.ArrayBuffer,v=e.Uint8Array,_=/^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/;for(i.fake=o.fake=!0;u--;)s.prototype[l[u]]=u+1;return c.createObjectURL||(f=e.URL=function(e){var t,n=document.createElementNS("http://www.w3.org/1999/xhtml","a");return n.href=e,"origin"in n||("data:"===n.protocol.toLowerCase()?n.origin=null:(t=e.match(_),n.origin=t&&t[1])),n}),f.createObjectURL=function(e){var t,n=e.type;return null===n&&(n="application/octet-stream"),e instanceof i?(t="data:"+n,"base64"===e.encoding?t+";base64,"+e.data:"URI"===e.encoding?t+","+decodeURIComponent(e.data):p?t+";base64,"+p(e.data):t+","+encodeURIComponent(e.data)):d?d.call(c,e):void 0},f.revokeObjectURL=function(e){"data:"!==e.substring(0,5)&&h&&h.call(c,e)},r.append=function(e){var n=this.data;if(v&&(e instanceof g||e instanceof v)){for(var r="",o=new v(e),l=0,u=o.length;l<u;l++)r+=String.fromCharCode(o[l]);n.push(r)}else if("Blob"===t(e)||"File"===t(e)){if(!a)throw new s("NOT_READABLE_ERR");var c=new a;n.push(c.readAsBinaryString(e))}else e instanceof i?"base64"===e.encoding&&m?n.push(m(e.data)):"URI"===e.encoding?n.push(decodeURIComponent(e.data)):"raw"===e.encoding&&n.push(e.data):("string"!=typeof e&&(e+=""),n.push(unescape(encodeURIComponent(e))))},r.getBlob=function(e){return arguments.length||(e=null),new i(this.data.join(""),e,"raw")},r.toString=function(){return"[object BlobBuilder]"},o.slice=function(e,t,n){var r=arguments.length;return r<3&&(n=null),new i(this.data.slice(e,r>1?t:this.data.length),n,this.encoding)},o.toString=function(){return"[object Blob]"},o.close=function(){this.size=0,delete this.data},n}(e);e.Blob=function(e,n){var i=n&&n.type||"",r=new t;if(e)for(var o=0,a=e.length;o<a;o++)Uint8Array&&e[o]instanceof Uint8Array?r.append(e[o].buffer):r.append(e[o]);var s=r.getBlob(i);return!s.slice&&s.webkitSlice&&(s.slice=s.webkitSlice),s};var n=Object.getPrototypeOf||function(e){return e.__proto__};e.Blob.prototype=n(new e.Blob)}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content||this)},function(e,t,n){"use strict";e.exports=function(){return n(6).saveAs||function(){}}},function(e,t,n){var i,r=r||function(e){"use strict";if(!(void 0===e||"undefined"!=typeof navigator&&/MSIE [1-9]\./.test(navigator.userAgent))){var t=e.document,n=function(){return e.URL||e.webkitURL||e},i=t.createElementNS("http://www.w3.org/1999/xhtml","a"),r="download"in i,o=/constructor/i.test(e.HTMLElement)||e.safari,a=/CriOS\/[\d]+/.test(navigator.userAgent),s=function(t){(e.setImmediate||e.setTimeout)((function(){throw t}),0)},l=function(e){setTimeout((function(){"string"==typeof e?n().revokeObjectURL(e):e.remove()}),4e4)},u=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e},c=function(t,c,d){d||(t=u(t));var h,f=this,p="application/octet-stream"===t.type,m=function(){!function(e,t,n){for(var i=(t=[].concat(t)).length;i--;){var r=e["on"+t[i]];if("function"==typeof r)try{r.call(e,e)}catch(e){s(e)}}}(f,"writestart progress write writeend".split(" "))};if(f.readyState=f.INIT,r)return h=n().createObjectURL(t),void setTimeout((function(){i.href=h,i.download=c,function(e){var t=new MouseEvent("click");e.dispatchEvent(t)}(i),m(),l(h),f.readyState=f.DONE}));!function(){if((a||p&&o)&&e.FileReader){var i=new FileReader;return i.onloadend=function(){var t=a?i.result:i.result.replace(/^data:[^;]*;/,"data:attachment/file;");e.open(t,"_blank")||(e.location.href=t),t=void 0,f.readyState=f.DONE,m()},i.readAsDataURL(t),void(f.readyState=f.INIT)}h||(h=n().createObjectURL(t)),p?e.location.href=h:e.open(h,"_blank")||(e.location.href=h),f.readyState=f.DONE,m(),l(h)}()},d=c.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,n){return t=t||e.name||"download",n||(e=u(e)),navigator.msSaveOrOpenBlob(e,t)}:(d.abort=function(){},d.readyState=d.INIT=0,d.WRITING=1,d.DONE=2,d.error=d.onwritestart=d.onprogress=d.onwrite=d.onabort=d.onerror=d.onwriteend=null,function(e,t,n){return new c(e,t||e.name||"download",n)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);
-/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */void 0!==e&&e.exports?e.exports.saveAs=r:null!==n(7)&&null!==n(8)&&(void 0===(i=function(){return r}.call(t,n,t,e))||(e.exports=i))},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t){(function(t){e.exports=t}).call(t,{})}])})),
-/*** Directives and services for responding to idle users in AngularJS
-* @author Mike Grabski <me@mikegrabski.com>
-* @version v1.3.2
-* @link https://github.com/HackedByChinese/ng-idle.git
-* @license MIT
-*/
-function(e,t,n){"use strict";t.module("ngIdle",["ngIdle.keepalive","ngIdle.idle","ngIdle.countdown","ngIdle.title","ngIdle.localStorage"]),t.module("ngIdle.keepalive",[]).provider("Keepalive",(function(){var e={http:null,interval:600};this.http=function(n){if(!n)throw new Error("Argument must be a string containing a URL, or an object containing the HTTP request configuration.");t.isString(n)&&(n={url:n,method:"GET"}),n.cache=!1,e.http=n};var n=this.interval=function(t){if(t=parseInt(t),isNaN(t)||t<=0)throw new Error("Interval must be expressed in seconds and be greater than 0.");e.interval=t};this.$get=["$rootScope","$log","$interval","$http",function(i,r,o,a){var s={ping:null};function l(e){i.$broadcast("KeepaliveResponse",e.data,e.status)}function u(){i.$broadcast("Keepalive"),t.isObject(e.http)&&a(e.http).then(l).catch(l)}return{_options:function(){return e},setInterval:n,start:function(){return o.cancel(s.ping),s.ping=o(u,1e3*e.interval),s.ping},stop:function(){o.cancel(s.ping)},ping:function(){u()}}}]})),t.module("ngIdle.idle",["ngIdle.keepalive","ngIdle.localStorage"]).provider("Idle",(function(){var e={idle:1200,timeout:30,autoResume:"idle",interrupt:"mousemove keydown DOMMouseScroll mousewheel mousedown touchstart touchmove scroll",windowInterrupt:null,keepalive:!0},n=this.timeout=function(n){if(!1===n)e.timeout=0;else{if(!(t.isNumber(n)&&n>=0))throw new Error("Timeout must be zero or false to disable the feature, or a positive integer (in seconds) to enable it.");e.timeout=n}};this.interrupt=function(t){e.interrupt=t},this.windowInterrupt=function(t){e.windowInterrupt=t};var i=this.idle=function(t){if(t<=0)throw new Error("Idle must be a value in seconds, greater than 0.");e.idle=t};this.autoResume=function(t){e.autoResume=!0===t?"idle":!1===t?"off":t},this.keepalive=function(t){e.keepalive=!0===t},this.$get=["$interval","$log","$rootScope","$document","Keepalive","IdleLocalStorage","$window",function(r,o,a,s,l,u,c){var d={idle:null,timeout:null,idling:!1,running:!1,countdown:null},h=(new Date).getTime();function f(){e.keepalive&&(d.running&&l.ping(),l.start())}function p(){e.keepalive&&l.stop()}function m(){d.idling=!d.idling;var t=d.idling?"IdleStart":"IdleEnd";d.idling?(a.$broadcast(t),p(),e.timeout&&(d.countdown=e.timeout,g(),d.timeout=r(g,1e3,e.timeout,!1))):(f(),a.$broadcast(t)),r.cancel(d.idle)}function g(){d.idling&&(d.countdown<=0?v():(a.$broadcast("IdleWarn",d.countdown),d.countdown--))}function v(){p(),r.cancel(d.idle),r.cancel(d.timeout),d.idling=!0,d.running=!1,d.countdown=0,a.$broadcast("IdleTimeout")}function _(e,t,n){var i=e.running();e.unwatch(),t(n),i&&e.watch()}function y(e){e?u.set("expiry",{id:h,time:e}):u.remove("expiry")}var b={_options:function(){return e},_getNow:function(){return new Date},getIdle:function(){return e.idle},getTimeout:function(){return e.timeout},setIdle:function(e){_(this,i,e)},setTimeout:function(e){_(this,n,e)},isExpired:function(){var e,t=(e=u.get("expiry"))&&e.time?new Date(e.time):null;return null!==t&&t<=this._getNow()},running:function(){return d.running},idling:function(){return d.idling},watch:function(t){r.cancel(d.idle),r.cancel(d.timeout);var n=e.timeout?e.timeout:0;t||y(new Date((new Date).getTime()+1e3*(e.idle+n))),d.idling?m():d.running||f(),d.running=!0,d.idle=r(m,1e3*e.idle,0,!1)},unwatch:function(){r.cancel(d.idle),r.cancel(d.timeout),d.idling=!1,d.running=!1,y(null),p()},interrupt:function(t){d.running&&(e.timeout&&this.isExpired()?v():(function(e){a.$broadcast("IdleInterrupt",e)}(t),(t||"idle"===e.autoResume||"notIdle"===e.autoResume&&!d.idling)&&this.watch(t)))}},w={clientX:null,clientY:null,swap:function(e){var t={clientX:this.clientX,clientY:this.clientY};return this.clientX=e.clientX,this.clientY=e.clientY,t},hasMoved:function(e){var t=this.swap(e);return!(null!==this.clientX&&!e.movementX&&!e.movementY)||t.clientX!=e.clientX||t.clientY!=e.clientY}};if(s.find("html").on(e.interrupt,(function(e){"mousemove"===e.type&&e.originalEvent&&0===e.originalEvent.movementX&&0===e.originalEvent.movementY||("mousemove"!==e.type||w.hasMoved(e))&&b.interrupt()})),e.windowInterrupt)for(var L=e.windowInterrupt.split(" "),M=function(){b.interrupt()},k=0;k<L.length;k++)c.addEventListener?c.addEventListener(L[k],M,!1):c.attachEvent(L[k],M);var x=function(e){if("ngIdle.expiry"===e.key&&e.newValue&&e.newValue!==e.oldValue){if(t.fromJson(e.newValue).id===h)return;b.interrupt(!0)}};return c.addEventListener?c.addEventListener("storage",x,!1):c.attachEvent&&c.attachEvent("onstorage",x),b}]})),t.module("ngIdle.countdown",["ngIdle.idle"]).directive("idleCountdown",["Idle",function(e){return{restrict:"A",scope:{value:"=idleCountdown"},link:function(t){t.value=e.getTimeout(),t.$on("IdleWarn",(function(e,n){t.$evalAsync((function(){t.value=n}))})),t.$on("IdleTimeout",(function(){t.$evalAsync((function(){t.value=0}))}))}}}]),t.module("ngIdle.title",[]).provider("Title",(function(){var e={enabled:!0},n=this.enabled=function(t){e.enabled=!0===t};this.$get=["$document","$interpolate",function(i,r){var o={original:null,idle:"{{minutes}}:{{seconds}} until your session times out!",timedout:"Your session has expired."};return{setEnabled:n,isEnabled:function(){return e.enabled},original:function(e){if(t.isUndefined(e))return o.original;o.original=e},store:function(e){!e&&o.original||(o.original=this.value())},value:function(e){if(t.isUndefined(e))return i[0].title;i[0].title=e},idleMessage:function(e){if(t.isUndefined(e))return o.idle;o.idle=e},timedOutMessage:function(e){if(t.isUndefined(e))return o.timedout;o.timedout=e},setAsIdle:function(e){this.store();var t,n={totalSeconds:e};n.minutes=Math.floor(e/60),n.seconds=(t=e-60*n.minutes,new Array(2-String(t).length+1).join("0")+t),this.value(r(this.idleMessage())(n))},setAsTimedOut:function(){this.store(),this.value(this.timedOutMessage())},restore:function(){this.original()&&this.value(this.original())}}}]})).directive("title",["Title",function(e){return{restrict:"E",link:function(t,n,i){e.isEnabled()&&!i.idleDisabled&&(e.store(!0),t.$on("IdleStart",(function(){e.original(n[0].innerText)})),t.$on("IdleWarn",(function(t,n){e.setAsIdle(n)})),t.$on("IdleEnd",(function(){e.restore()})),t.$on("IdleTimeout",(function(){e.setAsTimedOut()})))}}}]),t.module("ngIdle.localStorage",[]).service("IdleStorageAccessor",["$window",function(e){return{get:function(){return e.localStorage}}}]).service("IdleLocalStorage",["IdleStorageAccessor",function(e){function i(){var e={};this.setItem=function(t,n){e[t]=n},this.getItem=function(t){return void 0!==e[t]?e[t]:null},this.removeItem=function(t){e[t]=n}}var r=function(){try{var t=e.get();return t.setItem("ngIdleStorage",""),t.removeItem("ngIdleStorage"),t}catch(e){return new i}}();return{set:function(e,n){r.setItem("ngIdle."+e,t.toJson(n))},get:function(e){return t.fromJson(r.getItem("ngIdle."+e))},remove:function(e){r.removeItem("ngIdle."+e)},_wrapped:function(){return r}}}])}(window,window.angular),
-/**
- *  angular-simple-logger
- *
- * @version: 0.1.7
- * @author: Nicholas McCready
- * @date: Tue Jan 26 2016 10:15:01 GMT-0500 (EST)
- * @license: MIT
- */
-function(e,t){t.module("nemLogging",[]),t.module("nemLogging").provider("nemDebug",(function(){return this.$get=function(){return null},this.debug=null,this}));var n=function(e,t){return function(){return e.apply(t,arguments)}},i=[].slice;t.module("nemLogging").provider("nemSimpleLogger",["nemDebugProvider",function(e){var t,r,o,a,s,l,u,c,d,h,f,p;for(f=e.debug,o={},t={},d=c=0,h=(a=["debug","info","warn","error","log"]).length;c<h;d=++c)p=a[d],t[p]=d;return l=function(e,t,n){if(e>=t)return n()},s=function(e){var t,n,i;if(t=!1,!e)return t;for(n=0,i=a.length;n<i&&(t=null!=e[p=a[n]]&&"function"==typeof e[p]);n++);return t},u=function(e,t){var n,i,r,s;for(null==o[e]&&(o[e]=f(e)),n=o[e],s={},i=0,r=a.length;i<r;i++)s[p=a[i]]="debug"===p?n:t[p];return s},r=function(){function e(e){var r,o,u,c,d;if(this.$log=e,this.spawn=n(this.spawn,this),!this.$log)throw"internalLogger undefined";if(!s(this.$log))throw"@$log is invalid";for(this.doLog=!0,c={},d=this,r=function(e){return c[e]=function(){var n;if(n=1<=arguments.length?i.call(arguments,0):[],d.doLog)return l(t[e],d.currentLevel,(function(){var t;return(t=d.$log)[e].apply(t,n)}))},d[e]=c[e]},o=0,u=a.length;o<u;o++)r(a[o]);this.LEVELS=t,this.currentLevel=t.error}return e.prototype.spawn=function(t){if("string"==typeof t){if(!s(this.$log))throw"@$log is invalid";if(!f)throw"nemDebug is undefined this is probably the light version of this library sep debug logggers is not supported!";return u(t,this.$log)}return new e(t||this.$log)},e}(),this.decorator=["$log",function(e){var n;return(n=new r(e)).currentLevel=t.debug,n}],this.$get=["$log",function(e){return new r(e)}],this}])}(window,angular),
-/*!
-*  ui-leaflet 2.0.0 2016-10-04
-*  ui-leaflet - An AngularJS directive to easily interact with Leaflet maps
-*  git: https://github.com/angular-ui/ui-leaflet
-*/
-function(e){"use strict";e.module("ui-leaflet",["nemLogging"]).directive("leaflet",["$q","leafletData","leafletMapDefaults","leafletHelpers","leafletMapEvents",function(e,t,n,i,r){return{restrict:"EA",replace:!0,scope:{center:"=",lfCenter:"=",defaults:"=",maxbounds:"=",bounds:"=",markers:"=",legend:"=",geojson:"=",paths:"=",tiles:"=",layers:"=",controls:"=",decorations:"=",eventBroadcast:"=",watchOptions:"=",id:"@"},transclude:!0,template:'<div class="angular-leaflet-map"><div ng-transclude></div></div>',controller:["$scope",function(t){this._leafletMap=e.defer(),this.getMap=function(){return this._leafletMap.promise},this.getLeafletScope=function(){return t}}],link:function(e,o,a,s){var l=i.isDefined,u=n.setDefaults(e.defaults,a.id),c=r.getAvailableMapEvents(),d=r.addEvents;function h(){isNaN(a.width)?o.css("width",a.width):o.css("width",a.width+"px")}function f(){isNaN(a.height)?o.css("height",a.height):o.css("height",a.height+"px")}e.mapId=a.id,t.setDirectiveControls({},a.id);var p=new L.Map(o[0],n.getMapCreationDefaults(a.id));if(s._leafletMap.resolve(p),l(a.width)&&(h(),e.$watch((function(){return o[0].getAttribute("width")}),(function(){h(),p.invalidateSize()}))),l(a.height)&&(f(),e.$watch((function(){return o[0].getAttribute("height")}),(function(){f(),p.invalidateSize()}))),l(a.center)||l(a.lfCenter)||p.setView([u.center.lat,u.center.lng],u.center.zoom),!l(a.tiles)&&!l(a.layers)){var m=L.tileLayer(u.tileLayer,u.tileLayerOptions);m.addTo(p),t.setTiles(m,a.id)}l(p.zoomControl)&&l(u.zoomControlPosition)&&p.zoomControl.setPosition(u.zoomControlPosition),l(p.zoomControl)&&!1===u.zoomControl&&p.zoomControl.removeFrom(p),l(p.zoomsliderControl)&&l(u.zoomsliderControl)&&!1===u.zoomsliderControl&&p.zoomsliderControl.removeFrom(p),l(a.eventBroadcast)||d(p,a.id,c,"eventName",e,"broadcast"),p.whenReady((function(){t.setMap(p,a.id)})),e.$on("$destroy",(function(){n.reset(),p.remove(),t.unresolveMap(a.id)})),e.$on("invalidateSize",(function(){p.invalidateSize()}))}}}]),e.module("ui-leaflet").factory("eventManager",[function(){var e=function(){this.listeners={}};return e.prototype={addEventListener:function(e,t,n){for(var i=[],r=arguments.length,o=0;o<r;o++)i.push(arguments[o]);i=i.length>3?i.splice(3,i.length-1):[],void 0!==this.listeners[e]?this.listeners[e].push({scope:n,callback:t,args:i}):this.listeners[e]=[{scope:n,callback:t,args:i}]},removeEventListener:function(e,t,n){if(void 0!==this.listeners[e]){for(var i=this.listeners[e].length,r=[],o=0;o<i;o++){var a=this.listeners[e][o];a.scope===n&&a.callback===t||r.push(a)}this.listeners[e]=r}},hasEventListener:function(e,t,n){if(void 0!==this.listeners[e]){var i=this.listeners[e].length;if(void 0===t&&void 0===n)return i>0;for(var r=0;r<i;r++){var o=this.listeners[e][r];if((!n||o.scope===n)&&o.callback===t)return!0}}return!1},dispatch:function(e,t){for(var n={type:e,target:t},i=[],r=arguments.length,o=0;o<r;o++)i.push(arguments[o]);if(i=i.length>2?i.splice(2,i.length-1):[],i=[n].concat(i),void 0!==this.listeners[e])for(var a=this.listeners[e].length,s=0;s<a;s++){var l=this.listeners[e][s];if(l&&l.callback){var u=i.concat(l.args);l.callback.apply(l.scope,u)}}},getEvents:function(){var e="";for(var t in this.listeners)for(var n=this.listeners[t].length,i=0;i<n;i++){var r=this.listeners[t][i];e+=r.scope&&r.scope.className?r.scope.className:"anonymous",e+=" listen for '"+t+"'\n"}return e}},e}]).service("eventManager",["EventManager",function(e){return new e}]),e.module("ui-leaflet").factory("leafletBoundsHelpers",["leafletLogger","leafletHelpers",function(t,n){var i=n.isArray,r=n.isNumber,o=n.isFunction,a=n.isDefined,s=t;function l(t){return e.isDefined(t)&&e.isDefined(t.southWest)&&e.isDefined(t.northEast)&&e.isNumber(t.southWest.lat)&&e.isNumber(t.southWest.lng)&&e.isNumber(t.northEast.lat)&&e.isNumber(t.northEast.lng)}return{createLeafletBounds:function(e){if(l(e))return L.latLngBounds([e.southWest.lat,e.southWest.lng],[e.northEast.lat,e.northEast.lng])},isValidBounds:l,createBoundsFromArray:function(e){if(i(e)&&2===e.length&&i(e[0])&&i(e[1])&&2===e[0].length&&2===e[1].length&&r(e[0][0])&&r(e[0][1])&&r(e[1][0])&&r(e[1][1]))return{northEast:{lat:e[0][0],lng:e[0][1]},southWest:{lat:e[1][0],lng:e[1][1]}};s.error("[AngularJS - Leaflet] The bounds array is not valid.")},createBoundsFromLeaflet:function(e){if(a(e)&&o(e.getNorthEast)&&o(e.getSouthWest)){var t=e.getNorthEast(),n=e.getSouthWest();return{northEast:{lat:t.lat,lng:t.lng},southWest:{lat:n.lat,lng:n.lng}}}s.error("[AngularJS - Leaflet] The leaflet bounds is not valid object.")}}}]),e.module("ui-leaflet").factory("leafletControlHelpers",["$rootScope","leafletLogger","leafletHelpers","leafletLayerHelpers","leafletMapDefaults",function(t,n,i,r,o){var a=i.isDefined,s=i.isObject,l=r.createLayer,u={},c=i.errorHeader+" [Controls] ",d=n,h=function(e,t,n){if(!o.getDefaults(n).controls.layers.visible)return!1;var i=!1;return s(e)&&Object.keys(e).forEach((function(t){var n=e[t];a(n.layerOptions)&&!1===n.layerOptions.showOnSelector||(i=!0)})),s(t)&&Object.keys(t).forEach((function(e){var n=t[e];a(n.layerParams)&&!1===n.layerParams.showOnSelector||(i=!0)})),i},f={draw:{isPluginLoaded:function(){return!!e.isDefined(L.Control.Draw)||(d.error(c+" Draw plugin is not loaded."),!1)},checkValidParams:function(){return!0},createControl:function(e){return new L.Control.Draw(e)}},scale:{isPluginLoaded:function(){return!0},checkValidParams:function(){return!0},createControl:function(e){return new L.control.scale(e)}},fullscreen:{isPluginLoaded:function(){return!!e.isDefined(L.Control.Fullscreen)||(d.error(c+" Fullscreen plugin is not loaded."),!1)},checkValidParams:function(){return!0},createControl:function(e){return new L.Control.Fullscreen(e)}},search:{isPluginLoaded:function(){return!!e.isDefined(L.Control.Search)||(d.error(c+" Search plugin is not loaded."),!1)},checkValidParams:function(){return!0},createControl:function(e){return new L.Control.Search(e)}},custom:{},minimap:{isPluginLoaded:function(){return!!e.isDefined(L.Control.MiniMap)||(d.error(c+" Minimap plugin is not loaded."),!1)},checkValidParams:function(e){return!!a(e.layer)||(d.warn(c+' minimap "layer" option should be defined.'),!1)},createControl:function(e){var t=l(e.layer);if(a(t))return new L.Control.MiniMap(t,e);d.warn(c+' minimap control "layer" could not be created.')}}};return{layersControlMustBeVisible:h,isValidControlType:function(e){return-1!==Object.keys(f).indexOf(e)},createControl:function(e,t){if(f[e].checkValidParams(t))return f[e].createControl(t)},updateLayersControl:function(t,n,i,r,s,l){var c,d=u[n],f=h(r,s,n);if(a(d)&&i){for(c in l.baselayers)d.removeLayer(l.baselayers[c]);for(c in l.overlays)d.removeLayer(l.overlays[c]);t.removeControl(d),delete u[n]}if(f){for(c in d=function(t){var n=o.getDefaults(t),i={collapsed:n.controls.layers.collapsed,position:n.controls.layers.position,autoZIndex:!1};return e.extend(i,n.controls.layers.options),n.controls.layers&&a(n.controls.layers.control)?n.controls.layers.control.apply(this,[[],[],i]):new L.control.layers([],[],i)}(n),u[n]=d,r)(!a(r[c].layerOptions)||!1!==r[c].layerOptions.showOnSelector)&&a(l.baselayers[c])&&d.addBaseLayer(l.baselayers[c],r[c].name);for(c in s)(!a(s[c].layerParams)||!1!==s[c].layerParams.showOnSelector)&&a(l.overlays[c])&&d.addOverlay(l.overlays[c],s[c].name);t.addControl(d)}return f},destroyMapLayersControl:function(e){delete u[e]}}}]),e.module("ui-leaflet").service("leafletData",["leafletLogger","$q","leafletHelpers",function(e,t,n){var i=n.getDefer,r=n.getUnresolvedDefer,o=n.setResolvedDefer,a={},s=this,l=["map","tiles","layers","paths","markers","geoJSON","UTFGrid","decorations","directiveControls"];l.forEach((function(e){a[e]={}})),this.unresolveMap=function(e){var t=n.obtainEffectiveMapId(a.map,e);l.forEach((function(e){a[e][t]=void 0}))},l.forEach((function(e){var t,n=(t=e).charAt(0).toUpperCase()+t.slice(1);s["set"+n]=function(t,n){r(a[e],n).resolve(t),o(a[e],n)},s["get"+n]=function(t){return i(a[e],t).promise}}))}]),e.module("ui-leaflet").service("leafletDirectiveControlsHelpers",["leafletLogger","leafletData","leafletHelpers",function(t,n,i){var r=i.isDefined,o=i.isString,a=i.isObject,s=i.errorHeader,l=t,u=s+"[leafletDirectiveControlsHelpers";return{extend:function(t,i,s,c){var d=u+".extend] ",h={};if(r(i)){if(o(i)&&r(s)&&r(c))h[i]={create:s,clean:c};else{if(!a(i)||r(s)||r(c))return void l.error(d+"incorrect arguments");h=i}n.getDirectiveControls().then((function(i){e.extend(i,h),n.setDirectiveControls(i,t)}))}else l.error(d+"thingToAddName cannot be undefined")}}}]),e.module("ui-leaflet").service("leafletGeoJsonHelpers",["leafletHelpers","leafletIterators",function(t,n){var i=t,r=n,o=function(e,t){return this.lat=e,this.lng=t,this},a=function(e){if(i.isUndefined(e))return!1;if(i.isArray(e)){if(2===e.length&&i.isNumber(e[0])&&i.isNumber(e[1]))return!0}else if(i.isDefined(e.type)&&"Point"===e.type&&i.isArray(e.coordinates)&&2===e.coordinates.length&&i.isNumber(e.coordinates[0])&&i.isNumber(e.coordinates[1]))return!0;return r.all(["lat","lng"],(function(t){return i.isDefined(e[t])&&i.isNumber(e[t])}))};return{getLat:function(e){return Array.isArray(e)&&2===e.length?e[1]:i.isDefined(e.type)&&"Point"===e.type?+e.coordinates[1]:+e.lat},getLng:function(e){return Array.isArray(e)&&2===e.length?e[0]:i.isDefined(e.type)&&"Point"===e.type?+e.coordinates[0]:+e.lng},validateCoords:a,getCoords:function(t){if(t&&a(t)){var n=null;if(Array.isArray(t)&&2===t.length)n=new o(t[1],t[0]);else{if(!i.isDefined(t.type)||"Point"!==t.type)return t;n=new o(t.coordinates[1],t.coordinates[0])}return e.extend(t,n)}}}}]),e.module("ui-leaflet").service("leafletHelpers",["$q","$log","$timeout",function(t,n,i){var r="[ui-leaflet] ",o=e.copy;function a(t,i){var o,a;if(e.isDefined(i))o=i;else if(0===Object.keys(t).length)o="main";else if(Object.keys(t).length>=1)for(a in t)t.hasOwnProperty(a)&&(o=a);else n.error(r+"- You have more than 1 map on the DOM, you must provide the map ID to the leafletData.getXXX call");return o}function s(n,i){var r,o=a(n,i);return e.isDefined(n[o])&&!0!==n[o].resolvedDefer?r=n[o].defer:(r=t.defer(),n[o]={defer:r,resolvedDefer:!1}),r}var l=function(t){return e.isDefined(t)&&null!==t},u=/([\:\-\_]+(.))/g,c=/^moz([A-Z])/,d=/^((?:x|data)[\:\-_])/i,h=function(e){return e.replace(u,(function(e,t,n,i){return i?n.toUpperCase():n})).replace(c,"Moz$1")};return{watchTrapDelayMilliSec:10,modelChangeInDirective:function(e,t,n){if(!e)throw new Error(r+"trapObj is undefined");if(!t)throw new Error(r+"trapField is undefined");e[t]=!0;var o=n();return i((function(){e[t]=!1}),10),o},camelCase:h,directiveNormalize:function(e){return h(e.replace(d,""))},copy:o,clone:o,errorHeader:r,getObjectValue:function(t,n){var i;if(t&&e.isObject(t))return null!==n&&e.isString(n)?(i=t,n.split(".").forEach((function(e){i&&(i=i[e])})),i):n},getObjectArrayPath:function(e){return e.split(".").reduce((function(e,t){return e+'["'+t+'"]'}))},getObjectDotPath:function(e){return e.reduce((function(e,t){return e+"."+t}))},defaultTo:function(e,t){return l(e)?e:t},isTruthy:function(e){return"true"===e||!0===e},isEmpty:function(e){return 0===Object.keys(e).length},isUndefinedOrEmpty:function(t){return e.isUndefined(t)||null===t||0===Object.keys(t).length},isDefined:l,isUndefined:function(e){return!l(e)},isNumber:e.isNumber,isString:e.isString,isArray:e.isArray,isObject:e.isObject,isFunction:e.isFunction,equals:e.equals,isValidCenter:function(t){return e.isDefined(t)&&e.isNumber(t.lat)&&e.isNumber(t.lng)&&e.isNumber(t.zoom)},isValidPoint:function(t){return!!e.isDefined(t)&&(e.isArray(t)?2===t.length&&e.isNumber(t[0])&&e.isNumber(t[1]):e.isNumber(t.lat)&&e.isNumber(t.lng))},isSameCenterOnMap:function(e,t){var n=t.getCenter(),i=t.getZoom();return!(!e.lat||!e.lng||n.lat.toFixed(4)!==e.lat.toFixed(4)||n.lng.toFixed(4)!==e.lng.toFixed(4)||i!==e.zoom)},safeApply:function(e,t){var n=e.$root.$$phase;"$apply"===n||"$digest"===n?e.$eval(t):e.$evalAsync(t)},obtainEffectiveMapId:a,getDefer:function(t,n){var i=a(t,n);return e.isDefined(t[i])&&!1!==t[i].resolvedDefer?t[i].defer:s(t,n)},getUnresolvedDefer:s,setResolvedDefer:function(e,t){e[a(e,t)].resolvedDefer=!0},rangeIsSupported:function(){var e=document.createElement("input");return e.setAttribute("type","range"),"range"===e.type},FullScreenControlPlugin:{isLoaded:function(){return e.isDefined(L.Control.Fullscreen)}},MiniMapControlPlugin:{isLoaded:function(){return e.isDefined(L.Control.MiniMap)}},AwesomeMarkersPlugin:{isLoaded:function(){return e.isDefined(L.AwesomeMarkers)&&e.isDefined(L.AwesomeMarkers.Icon)},is:function(e){return!!this.isLoaded()&&e instanceof L.AwesomeMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},VectorMarkersPlugin:{isLoaded:function(){return e.isDefined(L.VectorMarkers)&&e.isDefined(L.VectorMarkers.Icon)},is:function(e){return!!this.isLoaded()&&e instanceof L.VectorMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},DomMarkersPlugin:{isLoaded:function(){return!(!e.isDefined(L.DomMarkers)||!e.isDefined(L.DomMarkers.Icon))},is:function(e){return!!this.isLoaded()&&e instanceof L.DomMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},PolylineDecoratorPlugin:{isLoaded:function(){return!!e.isDefined(L.PolylineDecorator)},is:function(e){return!!this.isLoaded()&&e instanceof L.PolylineDecorator},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},MakiMarkersPlugin:{isLoaded:function(){return!(!e.isDefined(L.MakiMarkers)||!e.isDefined(L.MakiMarkers.Icon))},is:function(e){return!!this.isLoaded()&&e instanceof L.MakiMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},ExtraMarkersPlugin:{isLoaded:function(){return!(!e.isDefined(L.ExtraMarkers)||!e.isDefined(L.ExtraMarkers.Icon))},is:function(e){return!!this.isLoaded()&&e instanceof L.ExtraMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},LabelPlugin:{isLoaded:function(){return e.isDefined(L.Label)},is:function(e){return!!this.isLoaded()&&e instanceof L.MarkerClusterGroup}},MarkerClusterPlugin:{isLoaded:function(){return e.isDefined(L.MarkerClusterGroup)},is:function(e){return!!this.isLoaded()&&e instanceof L.MarkerClusterGroup}},GeoJSONPlugin:{isLoaded:function(){return e.isDefined(L.TileLayer.GeoJSON)},is:function(e){return!!this.isLoaded()&&e instanceof L.TileLayer.GeoJSON}},CartoDB:{isLoaded:function(){return cartodb},is:function(){return!0}},Leaflet:{DivIcon:{is:function(e){return e instanceof L.DivIcon},equal:function(t,n){return!!this.is(t)&&e.equals(t,n)}},Icon:{is:function(e){return e instanceof L.Icon},equal:function(t,n){return!!this.is(t)&&e.equals(t,n)}}},watchOptions:{type:"watchDeep",individual:{type:"watchDeep"}}}}]),e.module("ui-leaflet").service("leafletIterators",["leafletLogger","leafletHelpers",function(e,t){var n,i,r,o,a,s=t,l=t.errorHeader+"leafletIterators: ",u=Object.keys,c=s.isFunction,d=s.isObject,h=e,f=Math.pow(2,53)-1,p=function(e){return e};i=u,n=function(e){var t=arguments.length;if(t<2||null===e)return e;for(var n=1;n<t;n++)for(var r=arguments[n],o=i(r),a=o.length,s=0;s<a;s++){var l=o[s];e[l]=r[l]}return e},r=function(e){return e=n({},e),function(t){return function(e,t){var n=u(t),i=n.length;if(null===e)return!i;for(var r=Object(e),o=0;o<i;o++){var a=n[o];if(t[a]!==r[a]||!(a in r))return!1}return!0}(t,e)}},o=a=function(e,t,n){t=function(e,t,n){return null===e?p:c(e)?function(e,t,n){return void 0===t?e:function(){return e.apply(t,arguments)}}(e,t):d(e)?r(e):(i=e,function(e){return null===e?void 0:e[i]});var i}(t,n);for(var i=!function(e){var t=null!==e&&e.length;return s.isNumber(t)&&t>=0&&t<=f}(e)&&u(e),o=(i||e).length,a=0;a<o;a++){var l=i?i[a]:a;if(!t(e[l],l,e))return!1}return!0};var m=function(e,t,n,i){return!(n||s.isDefined(e)&&s.isDefined(t))||!s.isFunction(t)&&(i=s.defaultTo(t,"cb"),h.error(l+i+" is not a function"),!0)},g=function(e,t){!function(e,t,n){if(!m(void 0,n,!0,"internalCb")&&!m(e,t))for(var i in e)e.hasOwnProperty(i)&&n(e[i],i)}(e,t,(function(e,n){t(e,n)}))};return{each:g,forEach:g,every:o,all:a}}]),e.module("ui-leaflet").factory("leafletLayerHelpers",["$rootScope","$q","leafletLogger","leafletHelpers","leafletIterators",function(t,n,i,r,o){var a=r,s=r.isString,l=r.isObject,u=r.isArray,c=r.isDefined,d=r.errorHeader,h=o,f=i,p=function(n){if(a.UTFGridPlugin.isLoaded()){var i=new L.UtfGrid(n.url,n.pluginOptions),r={model:n.$parent};return i.on("mouseover",(function(n){e.extend(r,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridMouseover",r)})),i.on("mouseout",(function(n){e.extend(r,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridMouseout",r)})),i.on("click",(function(n){e.extend(r,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridClick",r)})),i.on("mousemove",(function(n){e.extend(r,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridMousemove",r)})),i}f.error("[AngularJS - Leaflet] The UTFGrid plugin is not loaded.")},m={xyz:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer(e.url,e.options)}},geoJSON:{mustHaveUrl:!0,createLayer:function(e){if(a.GeoJSONPlugin.isLoaded())return new L.TileLayer.GeoJSON(e.url,e.pluginOptions,e.options)}},geoJSONShape:{mustHaveUrl:!1,createLayer:function(e){return new L.GeoJSON(e.data,e.options)}},geoJSONAwesomeMarker:{mustHaveUrl:!1,createLayer:function(e){return new L.geoJson(e.data,{pointToLayer:function(t,n){return L.marker(n,{icon:L.AwesomeMarkers.icon(e.icon)})}})}},geoJSONVectorMarker:{mustHaveUrl:!1,createLayer:function(e){return new L.geoJson(e.data,{pointToLayer:function(t,n){return L.marker(n,{icon:L.VectorMarkers.icon(e.icon)})}})}},cartodbTiles:{mustHaveKey:!0,createLayer:function(e){var t=c(e.url)?e.url+"/"+e.user:"//"+e.user+".cartodb.com";return t+="/api/v1/map/"+e.key+"/{z}/{x}/{y}.png",L.tileLayer(t,e.options)}},cartodbUTFGrid:{mustHaveKey:!0,mustHaveLayer:!0,createLayer:function(e){var t=c(e.url)?e.url+"/"+e.user:"//"+e.user+".cartodb.com";return e.url=t+"/api/v1/map/"+e.key+"/"+e.layer+"/{z}/{x}/{y}.grid.json",p(e)}},cartodbInteractive:{mustHaveKey:!0,mustHaveLayer:!0,createLayer:function(t){var n=c(t.url)?t.url+"/"+t.user:"//"+t.user+".cartodb.com",i=n+"/api/v1/map/"+t.key+"/{z}/{x}/{y}.png",r=[L.tileLayer(i,t.options)],o=function(t,i,r){var o=e.copy(i);o.url=n+"/api/v1/map/"+o.key+"/"+r+"/{z}/{x}/{y}.grid.json",t.push(p(o))};if(u(t.layer))for(var a=0;a<t.layer.length;a++)o(r,t,t.layer[a]);else o(r,t,t.layer);return L.layerGroup(r)}},wms:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer.wms(e.url,e.options)}},wmts:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer.wmts(e.url,e.options)}},group:{mustHaveUrl:!1,createLayer:function(e){var t=[];return h.each(e.options.layers,(function(e){t.push(g(e))})),e.options.loadedDefer=function(){var t=[];if(c(e.options.layers))for(var n=0;n<e.options.layers.length;n++){var i=e.options.layers[n].layerOptions.loadedDefer;c(i)&&t.push(i)}return t},L.layerGroup(t)}},featureGroup:{mustHaveUrl:!1,createLayer:function(){return L.featureGroup()}},markercluster:{mustHaveUrl:!1,createLayer:function(e){if(a.MarkerClusterPlugin.isLoaded())return new L.MarkerClusterGroup(e.options);f.warn(d+" The markercluster plugin is not loaded.")}},imageOverlay:{mustHaveUrl:!0,mustHaveBounds:!0,createLayer:function(e){return L.imageOverlay(e.url,e.bounds,e.options)}},iip:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer.iip(e.url,e.options)}},custom:{createLayer:function(t){if(t.layer instanceof L.Class)return e.copy(t.layer);f.error("[AngularJS - Leaflet] A custom layer must be a leaflet Class")}},cartodb:{mustHaveUrl:!0,createLayer:function(e){return cartodb.createLayer(e.map,e.url)}}};function g(e){if(function(e){return s(e.type)?-1===Object.keys(m).indexOf(e.type)?(f.error("[AngularJS - Leaflet] A layer must have a valid type: "+Object.keys(m)),!1):m[e.type].mustHaveUrl&&!s(e.url)?(f.error("[AngularJS - Leaflet] A base layer must have an url"),!1):m[e.type].mustHaveData&&!c(e.data)?(f.error('[AngularJS - Leaflet] The base layer must have a "data" array attribute'),!1):m[e.type].mustHaveLayer&&!c(e.layer)?(f.error("[AngularJS - Leaflet] The type of layer "+e.type+" must have an layer defined"),!1):m[e.type].mustHaveBounds&&!c(e.bounds)?(f.error("[AngularJS - Leaflet] The type of layer "+e.type+" must have bounds defined"),!1):!(m[e.type].mustHaveKey&&!c(e.key)&&(f.error("[AngularJS - Leaflet] The type of layer "+e.type+" must have key defined"),1)):(f.error("[AngularJS - Leaflet] A layer must have a valid type defined."),!1)}(e)){if(s(e.name)){for(var t in l(e.layerParams)||(e.layerParams={}),l(e.layerOptions)||(e.layerOptions={}),e.layerParams)e.layerOptions[t]=e.layerParams[t];var n={url:e.url,data:e.data,options:e.layerOptions,layer:e.layer,icon:e.icon,type:e.layerType,bounds:e.bounds,key:e.key,apiKey:e.apiKey,pluginOptions:e.pluginOptions,user:e.user,$parent:e};return m[e.type].createLayer(n)}f.error("[AngularJS - Leaflet] A base layer must have a name")}}return{createLayer:g,layerTypes:m,safeAddLayer:function(e,t){t&&"function"==typeof t.addTo?t.addTo(e):e.addLayer(t)},safeRemoveLayer:function(t,n,i){if(c(i)&&c(i.loadedDefer))if(e.isFunction(i.loadedDefer)){var r=i.loadedDefer();f.debug("Loaded Deferred",r);var o=r.length;if(o>0)for(var a=function(){0==--o&&t.removeLayer(n)},s=0;s<r.length;s++)r[s].promise.then(a);else t.removeLayer(n)}else i.loadedDefer.promise.then((function(){t.removeLayer(n)}));else t.removeLayer(n)},changeOpacityListener:function(e){return function(t){c(t.setOpacity)&&t.setOpacity(e)}}}}]),e.module("ui-leaflet").factory("leafletLegendHelpers",["$http","$q","$log","leafletHelpers",function(e,t,n,i){var r={},o=i.isDefined,a=function(e,t,n,i){if(e.innerHTML="",t.error)e.innerHTML+='<div class="info-title alert alert-danger">'+t.error.message+"</div>";else if("arcgis"===n)for(var r=0;r<t.layers.length;r++){var o=t.layers[r];e.innerHTML+='<div class="info-title" data-layerid="'+o.layerId+'">'+o.layerName+"</div>";for(var a=0;a<o.legend.length;a++){var s=o.legend[a];e.innerHTML+='<div class="inline" data-layerid="'+o.layerId+'"><img src="data:'+s.contentType+";base64,"+s.imageData+'" /></div><div class="info-label" data-layerid="'+o.layerId+'">'+s.label+"</div>"}}else"image"===n&&(e.innerHTML='<img src="'+i+'"/>')};return{getOnAddLegend:function(e,t,n,i){return function(){var r=L.DomUtil.create("div",t);return L.Browser.touch?L.DomEvent.on(r,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(r),L.DomEvent.on(r,"mousewheel",L.DomEvent.stopPropagation)),a(r,e,n,i),r}},getOnAddArrayLegend:function(e,t){return function(){for(var n=L.DomUtil.create("div",t),i=0;i<e.colors.length;i++)n.innerHTML+='<div class="outline"><i style="background:'+e.colors[i]+'"></i></div><div class="info-label">'+e.labels[i]+"</div>";return L.Browser.touch?L.DomEvent.on(n,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(n),L.DomEvent.on(n,"mousewheel",L.DomEvent.stopPropagation)),n}},updateLegend:a,addLegendURL:function(n,i){var a=t.defer();return o(r[n])||(r[n]=[]),r[n].push({c:i,d:a}),1===r[n].length&&function t(n){var i=r[n],o=i[0];e(o.c).then((function(e){i.shift(),o.d.resolve(e),i.length>0&&t(n)}),(function(e){i.shift(),o.d.reject(e),i.length>0&&t(n)}))}(n),a.promise}}}]),e.module("ui-leaflet").factory("leafletMapDefaults",["$q","leafletHelpers",function(t,n){var i=n.isDefined,r=n.isObject,o=n.obtainEffectiveMapId,a={};return{reset:function(){a={}},getDefaults:function(e){var t=o(a,e);return a[t]},getMapCreationDefaults:function(e){var t=o(a,e),n=a[t],r={maxZoom:n.maxZoom,keyboard:n.keyboard,dragging:n.dragging,zoomControl:n.zoomControl,doubleClickZoom:n.doubleClickZoom,scrollWheelZoom:n.scrollWheelZoom,tap:n.tap,touchZoom:n.touchZoom,attributionControl:n.attributionControl,worldCopyJump:n.worldCopyJump,crs:n.crs,trackResize:n.trackResize};if(i(n.minZoom)&&(r.minZoom=n.minZoom),i(n.zoomAnimation)&&(r.zoomAnimation=n.zoomAnimation),i(n.fadeAnimation)&&(r.fadeAnimation=n.fadeAnimation),i(n.markerZoomAnimation)&&(r.markerZoomAnimation=n.markerZoomAnimation),n.map)for(var s in n.map)r[s]=n.map[s];return r},setDefaults:function(t,n){var s={keyboard:!0,dragging:!0,worldCopyJump:!1,doubleClickZoom:!0,scrollWheelZoom:!0,tap:!0,touchZoom:!0,zoomControl:!0,zoomsliderControl:!1,zoomControlPosition:"topleft",attributionControl:!0,controls:{layers:{visible:!0,position:"topright",collapsed:!0}},nominatim:{server:" http://nominatim.openstreetmap.org/search"},crs:L.CRS.EPSG3857,tileLayer:"//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",tileLayerOptions:{attribution:'&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'},path:{weight:10,opacity:1,color:"#0000ff"},center:{lat:0,lng:0,zoom:1},trackResize:!0};i(t)&&(s.doubleClickZoom=i(t.doubleClickZoom)?t.doubleClickZoom:s.doubleClickZoom,s.scrollWheelZoom=i(t.scrollWheelZoom)?t.scrollWheelZoom:s.doubleClickZoom,s.tap=i(t.tap)?t.tap:s.tap,s.touchZoom=i(t.touchZoom)?t.touchZoom:s.doubleClickZoom,s.zoomControl=i(t.zoomControl)?t.zoomControl:s.zoomControl,s.zoomsliderControl=i(t.zoomsliderControl)?t.zoomsliderControl:s.zoomsliderControl,s.attributionControl=i(t.attributionControl)?t.attributionControl:s.attributionControl,s.tileLayer=i(t.tileLayer)?t.tileLayer:s.tileLayer,s.zoomControlPosition=i(t.zoomControlPosition)?t.zoomControlPosition:s.zoomControlPosition,s.keyboard=i(t.keyboard)?t.keyboard:s.keyboard,s.dragging=i(t.dragging)?t.dragging:s.dragging,s.trackResize=i(t.trackResize)?t.trackResize:s.trackResize,i(t.controls)&&e.extend(s.controls,t.controls),r(t.crs)?s.crs=t.crs:i(L.CRS[t.crs])&&(s.crs=L.CRS[t.crs]),i(t.center)&&e.copy(t.center,s.center),i(t.tileLayerOptions)&&e.copy(t.tileLayerOptions,s.tileLayerOptions),i(t.maxZoom)&&(s.maxZoom=t.maxZoom),i(t.minZoom)&&(s.minZoom=t.minZoom),i(t.zoomAnimation)&&(s.zoomAnimation=t.zoomAnimation),i(t.fadeAnimation)&&(s.fadeAnimation=t.fadeAnimation),i(t.markerZoomAnimation)&&(s.markerZoomAnimation=t.markerZoomAnimation),i(t.worldCopyJump)&&(s.worldCopyJump=t.worldCopyJump),i(t.map)&&(s.map=t.map),i(t.path)&&(s.path=t.path));var l=o(a,n);return a[l]=s,s}}}]),e.module("ui-leaflet").service("leafletMarkersHelpers",["$rootScope","$timeout","leafletHelpers","leafletLogger","$compile","leafletGeoJsonHelpers","leafletWatchHelpers",function(t,n,i,r,o,a,s){var l=i.isDefined,u=i.defaultTo,c=i.MarkerClusterPlugin,d=i.AwesomeMarkersPlugin,h=i.VectorMarkersPlugin,f=i.MakiMarkersPlugin,p=i.ExtraMarkersPlugin,m=i.DomMarkersPlugin,g=i.safeApply,v=i,_=i.isString,y=i.isNumber,b=i.isObject,w={},M=a,k=i.errorHeader,x=s.maybeWatch,S=r,T=function(e){var t="";return["_icon","_latlng","_leaflet_id","_map","_shadow"].forEach((function(n){t+=n+": "+u(e[n],"undefined")+" \n"})),"[leafletMarker] : \n"+t},$=function(t){return e.element(w[t]._map._container).parent().length>0},D=function(n){if(l(n)&&l(n.type)&&"awesomeMarker"===n.type)return d.isLoaded()||S.error(k+" The AwesomeMarkers Plugin is not loaded."),new L.AwesomeMarkers.icon(n);if(l(n)&&l(n.type)&&"vectorMarker"===n.type)return h.isLoaded()||S.error(k+" The VectorMarkers Plugin is not loaded."),new L.VectorMarkers.icon(n);if(l(n)&&l(n.type)&&"makiMarker"===n.type)return f.isLoaded()||S.error(k+"The MakiMarkers Plugin is not loaded."),new L.MakiMarkers.icon(n);if(l(n)&&l(n.type)&&"extraMarker"===n.type)return p.isLoaded()||S.error(k+"The ExtraMarkers Plugin is not loaded."),new L.ExtraMarkers.icon(n);if(l(n)&&l(n.type)&&"div"===n.type)return new L.divIcon(n);if(l(n)&&l(n.type)&&"dom"===n.type){m.isLoaded()||S.error(k+"The DomMarkers Plugin is not loaded.");var i=e.isFunction(n.getMarkerScope)?n.getMarkerScope().$new():t,r=o(n.template)(i),a=e.copy(n);return a.ngElement=r,a.element=r[0],e.isFunction(n.getMarkerScope)&&(a.scope=i),new L.DomMarkers.icon(a)}return l(n)&&l(n.type)&&"icon"===n.type?n.icon:l(n)&&l(n.iconUrl)?new L.Icon(n):new L.Icon.Default({iconUrl:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAGmklEQVRYw7VXeUyTZxjvNnfELFuyIzOabermMZEeQC/OclkO49CpOHXOLJl/CAURuYbQi3KLgEhbrhZ1aDwmaoGqKII6odATmH/scDFbdC7LvFqOCc+e95s2VG50X/LLm/f4/Z7neY/ne18aANCmAr5E/xZf1uDOkTcGcWR6hl9247tT5U7Y6SNvWsKT63P58qbfeLJG8M5qcgTknrvvrdDbsT7Ml+tv82X6vVxJE33aRmgSyYtcWVMqX97Yv2JvW39UhRE2HuyBL+t+gK1116ly06EeWFNlAmHxlQE0OMiV6mQCScusKRlhS3QLeVJdl1+23h5dY4FNB3thrbYboqptEFlphTC1hSpJnbRvxP4NWgsE5Jyz86QNNi/5qSUTGuFk1gu54tN9wuK2wc3o+Wc13RCmsoBwEqzGcZsxsvCSy/9wJKf7UWf1mEY8JWfewc67UUoDbDjQC+FqK4QqLVMGGR9d2wurKzqBk3nqIT/9zLxRRjgZ9bqQgub+DdoeCC03Q8j+0QhFhBHR/eP3U/zCln7Uu+hihJ1+bBNffLIvmkyP0gpBZWYXhKussK6mBz5HT6M1Nqpcp+mBCPXosYQfrekGvrjewd59/GvKCE7TbK/04/ZV5QZYVWmDwH1mF3xa2Q3ra3DBC5vBT1oP7PTj4C0+CcL8c7C2CtejqhuCnuIQHaKHzvcRfZpnylFfXsYJx3pNLwhKzRAwAhEqG0SpusBHfAKkxw3w4627MPhoCH798z7s0ZnBJ/MEJbZSbXPhER2ih7p2ok/zSj2cEJDd4CAe+5WYnBCgR2uruyEw6zRoW6/DWJ/OeAP8pd/BGtzOZKpG8oke0SX6GMmRk6GFlyAc59K32OTEinILRJRchah8HQwND8N435Z9Z0FY1EqtxUg+0SO6RJ/mmXz4VuS+DpxXC3gXmZwIL7dBSH4zKE50wESf8qwVgrP1EIlTO5JP9Igu0aexdh28F1lmAEGJGfh7jE6ElyM5Rw/FDcYJjWhbeiBYoYNIpc2FT/SILivp0F1ipDWk4BIEo2VuodEJUifhbiltnNBIXPUFCMpthtAyqws/BPlEF/VbaIxErdxPphsU7rcCp8DohC+GvBIPJS/tW2jtvTmmAeuNO8BNOYQeG8G/2OzCJ3q+soYB5i6NhMaKr17FSal7GIHheuV3uSCY8qYVuEm1cOzqdWr7ku/R0BDoTT+DT+ohCM6/CCvKLKO4RI+dXPeAuaMqksaKrZ7L3FE5FIFbkIceeOZ2OcHO6wIhTkNo0ffgjRGxEqogXHYUPHfWAC/lADpwGcLRY3aeK4/oRGCKYcZXPVoeX/kelVYY8dUGf8V5EBRbgJXT5QIPhP9ePJi428JKOiEYhYXFBqou2Guh+p/mEB1/RfMw6rY7cxcjTrneI1FrDyuzUSRm9miwEJx8E/gUmqlyvHGkneiwErR21F3tNOK5Tf0yXaT+O7DgCvALTUBXdM4YhC/IawPU+2PduqMvuaR6eoxSwUk75ggqsYJ7VicsnwGIkZBSXKOUww73WGXyqP+J2/b9c+gi1YAg/xpwck3gJuucNrh5JvDPvQr0WFXf0piyt8f8/WI0hV4pRxxkQZdJDfDJNOAmM0Ag8jyT6hz0WGXWuP94Yh2jcfjmXAGvHCMslRimDHYuHuDsy2QtHuIavznhbYURq5R57KpzBBRZKPJi8eQg48h4j8SDdowifdIrEVdU+gbO6QNvRRt4ZBthUaZhUnjlYObNagV3keoeru3rU7rcuceqU1mJBxy+BWZYlNEBH+0eH4vRiB+OYybU2hnblYlTvkHinM4m54YnxSyaZYSF6R3jwgP7udKLGIX6r/lbNa9N6y5MFynjWDtrHd75ZvTYAPO/6RgF0k76mQla3FGq7dO+cH8sKn0Vo7nDllwAhqwLPkxrHwWmHJOo+AKJ4rab5OgrM7rVu8eWb2Pu0Dh4eDgXoOfvp7Y7QeqknRmvcTBEyq9m/HQQSCSz6LHq3z0yzsNySRfMS253wl2KyRDbcZPcfJKjZmSEOjcxyi+Y8dUOtsIEH6R2wNykdqrkYJ0RV92H0W58pkfQk7cKevsLK10Py8SdMGfXNXATY+pPbyJR/ET6n9nIfztNtZYRV9XniQu9IA2vOVgy4ir7GCLVmmd+zjkH0eAF9Po6K61pmCXHxU5rHMYd1ftc3owjwRSVRzLjKvqZEty6cRUD7jGqiOdu5HG6MdHjNcNYGqfDm5YRzLBBCCDl/2bk8a8gdbqcfwECu62Fg/HrggAAAABJRU5ErkJggg==",shadowUrl:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAYAAACoYAD2AAAC5ElEQVRYw+2YW4/TMBCF45S0S1luXZCABy5CgLQgwf//S4BYBLTdJLax0fFqmB07nnQfEGqkIydpVH85M+NLjPe++dcPc4Q8Qh4hj5D/AaQJx6H/4TMwB0PeBNwU7EGQAmAtsNfAzoZkgIa0ZgLMa4Aj6CxIAsjhjOCoL5z7Glg1JAOkaicgvQBXuncwJAWjksLtBTWZe04CnYRktUGdilALppZBOgHGZcBzL6OClABvMSVIzyBjazOgrvACf1ydC5mguqAVg6RhdkSWQFj2uxfaq/BrIZOLEWgZdALIDvcMcZLD8ZbLC9de4yR1sYMi4G20S4Q/PWeJYxTOZn5zJXANZHIxAd4JWhPIloTJZhzMQduM89WQ3MUVAE/RnhAXpTycqys3NZALOBbB7kFrgLesQl2h45Fcj8L1tTSohUwuxhy8H/Qg6K7gIs+3kkaigQCOcyEXCHN07wyQazhrmIulvKMQAwMcmLNqyCVyMAI+BuxSMeTk3OPikLY2J1uE+VHQk6ANrhds+tNARqBeaGc72cK550FP4WhXmFmcMGhTwAR1ifOe3EvPqIegFmF+C8gVy0OfAaWQPMR7gF1OQKqGoBjq90HPMP01BUjPOqGFksC4emE48tWQAH0YmvOgF3DST6xieJgHAWxPAHMuNhrImIdvoNOKNWIOcE+UXE0pYAnkX6uhWsgVXDxHdTfCmrEEmMB2zMFimLVOtiiajxiGWrbU52EeCdyOwPEQD8LqyPH9Ti2kgYMf4OhSKB7qYILbBv3CuVTJ11Y80oaseiMWOONc/Y7kJYe0xL2f0BaiFTxknHO5HaMGMublKwxFGzYdWsBF174H/QDknhTHmHHN39iWFnkZx8lPyM8WHfYELmlLKtgWNmFNzQcC1b47gJ4hL19i7o65dhH0Negbca8vONZoP7doIeOC9zXm8RjuL0Gf4d4OYaU5ljo3GYiqzrWQHfJxA6ALhDpVKv9qYeZA8eM3EhfPSCmpuD0AAAAASUVORK5CYII=",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]})},C=function(e){l(w[e])&&delete w[e]},E=function(e){e.options.icon.options.ngElement&&e.options.icon.options.ngElement.remove(),e.options.icon.options.scope&&e.options.icon.options.scope.$destroy()},A=function(e,t,n){if(e.closePopup(),e.options.icon&&e.options.icon.options&&"dom"===e.options.icon.options.type&&E(e),l(n)&&l(n.overlays))for(var i in n.overlays)if((n.overlays[i]instanceof L.LayerGroup||n.overlays[i]instanceof L.FeatureGroup)&&n.overlays[i].hasLayer(e))return void n.overlays[i].removeLayer(e);if(l(w))for(var r in w)w[r].hasLayer(e)&&w[r].removeLayer(e);t.hasLayer(e)&&t.removeLayer(e)},P=function(i,r,a){var s=e.isFunction(r.getMessageScope)?r.getMessageScope():t;if(!l(r.compileMessage)||r.compileMessage){if(!l(i._popup)||!l(i._popup._contentNode))return S.error(k+"Popup is invalid or does not have any content."),!1;!function(e,t){o(e._popup._contentNode)(t)}(i,s),function e(t,i,r){(t._popup._contentNode.innerText||t._popup._contentNode.textContent).length<1&&n((function(){e(t,i,r)}));var o=t._popup._contentNode.offsetWidth;return t._popup._updateLayout(),t._popup._updatePosition(),t._popup.options.autoPan&&function(e,t){var n=e._popup._container.offsetHeight,i=new L.Point(e._popup._containerLeft,-n-e._popup._containerBottom);null!==t.layerPointToContainerPoint(i)&&e._popup._adjustPan()}(t,r),o}(i,r,a)}},Y=function(n,i){var r=e.isFunction(i.getMessageScope)?i.getMessageScope():t,a=e.isFunction(i.getLabelScope)?i.getLabelScope():r,s=!l(i.compileMessage)||i.compileMessage;v.LabelPlugin.isLoaded()&&l(i.label)&&(l(i.label.options)&&!0===i.label.options.noHide&&n.showLabel(),s&&l(n.label)&&o(n.label._container)(a))},O=function(t,n,i,r,o,a,s){if(l(n)){if(!M.validateCoords(t))return S.warn("There are problems with lat-lng data, please verify your marker model"),void A(i,s,a);var u=t===n;if(l(t.iconAngle)&&n.iconAngle!==t.iconAngle&&i.setIconAngle(t.iconAngle),_(t.layer)||_(n.layer)&&(l(a.overlays[n.layer])&&a.overlays[n.layer].hasLayer(i)&&(a.overlays[n.layer].removeLayer(i),i.closePopup()),s.hasLayer(i)||s.addLayer(i)),(y(t.opacity)||y(parseFloat(t.opacity)))&&t.opacity!==n.opacity&&i.setOpacity(t.opacity),_(t.layer)&&n.layer!==t.layer){if(_(n.layer)&&l(a.overlays[n.layer])&&a.overlays[n.layer].hasLayer(i)&&a.overlays[n.layer].removeLayer(i),i.closePopup(),s.hasLayer(i)&&s.removeLayer(i),!l(a.overlays[t.layer]))return void S.error(k+"You must use a name of an existing layer");var c=a.overlays[t.layer];if(!(c instanceof L.LayerGroup||c instanceof L.FeatureGroup))return void S.error(k+'A marker can only be added to a layer of type "group" or "featureGroup"');c.addLayer(i),s.hasLayer(i)&&!0===t.focus&&i.openPopup()}if(!0!==t.draggable&&!0===n.draggable&&l(i.dragging)&&i.dragging.disable(),!0===t.draggable&&!0!==n.draggable&&(i.dragging?i.dragging.enable():L.Handler.MarkerDrag&&(i.dragging=new L.Handler.MarkerDrag(i),i.options.draggable=!0,i.dragging.enable())),b(t.icon)||b(n.icon)&&("dom"===n.icon.type&&E(i),i.setIcon(D()),i.closePopup(),i.unbindPopup(),_(t.message)&&i.bindPopup(t.message,t.popupOptions)),b(t.icon)&&b(n.icon)&&!e.equals(t.icon,n.icon)){var d=!1;i.dragging&&(d=i.dragging.enabled()),"dom"===n.icon.type&&E(i),i.setIcon(D(t.icon)),d&&i.dragging.enable(),i.closePopup(),i.unbindPopup(),_(t.message)&&(i.bindPopup(t.message,t.popupOptions),s.hasLayer(i)&&!0===t.focus&&i.openPopup())}!_(t.message)&&_(n.message)&&(i.closePopup(),i.unbindPopup()),v.LabelPlugin.isLoaded()&&(l(t.label)&&l(t.label.message)?"label"in n&&"message"in n.label&&!e.equals(t.label.message,n.label.message)?i.updateLabelContent(t.label.message):!e.isFunction(i.getLabel)||e.isFunction(i.getLabel)&&!l(i.getLabel())?(i.bindLabel(t.label.message,t.label.options),Y(i,t)):Y(i,t):"label"in t&&!("message"in t.label)||e.isFunction(i.unbindLabel)&&i.unbindLabel()),_(t.message)&&!_(n.message)&&i.bindPopup(t.message,t.popupOptions),_(t.message)&&_(n.message)&&t.message!==n.message&&i.setPopupContent(t.message);var h=!1;!0!==t.focus&&!0===n.focus&&(i.closePopup(),h=!0),(!0===t.focus&&(!l(n.focus)||!1===n.focus)||u&&!0===t.focus)&&(i.openPopup(),h=!0),n.zIndexOffset!==t.zIndexOffset&&i.setZIndexOffset(t.zIndexOffset);var f=i.getLatLng();_(t.layer)&&v.MarkerClusterPlugin.is(a.overlays[t.layer])?h?t.lat===n.lat&&t.lng===n.lng||(a.overlays[t.layer].removeLayer(i),i.setLatLng([t.lat,t.lng]),a.overlays[t.layer].addLayer(i)):f.lat!==t.lat||f.lng!==t.lng?(a.overlays[t.layer].removeLayer(i),i.setLatLng([t.lat,t.lng]),a.overlays[t.layer].addLayer(i)):t.lat!==n.lat||t.lng!==n.lng?(a.overlays[t.layer].removeLayer(i),i.setLatLng([t.lat,t.lng]),a.overlays[t.layer].addLayer(i)):b(t.icon)&&b(n.icon)&&!e.equals(t.icon,n.icon)&&(a.overlays[t.layer].removeLayer(i),a.overlays[t.layer].addLayer(i)):f.lat===t.lat&&f.lng===t.lng||i.setLatLng([t.lat,t.lng])}};return{resetMarkerGroup:C,resetMarkerGroups:function(){w={}},resetUnusedMarkerGroups:function(){for(var e in w)$(e)||C(e)},deleteMarker:A,manageOpenPopup:P,manageOpenLabel:Y,createMarker:function(e){if(l(e)&&M.validateCoords(e)){var t=M.getCoords(e);if(l(t)){var n={icon:D(e.icon),title:l(e.title)?e.title:"",draggable:!!l(e.draggable)&&e.draggable,clickable:!l(e.clickable)||e.clickable,riseOnHover:!!l(e.riseOnHover)&&e.riseOnHover,zIndexOffset:l(e.zIndexOffset)?e.zIndexOffset:0,iconAngle:l(e.iconAngle)?e.iconAngle:0};for(var i in e)e.hasOwnProperty(i)&&!n.hasOwnProperty(i)&&(n[i]=e[i]);var r=new L.marker(t,n);return _(e.message)||r.unbindPopup(),r}S.error(k+"Unable to get coordinates from markerData.")}else S.error(k+"The marker definition is not valid.")},addMarkerToGroup:function(e,t,n,i){_(t)?c.isLoaded()?(l(w[t])||(w[t]=new L.MarkerClusterGroup(n),i.addLayer(w[t])),w[t].addLayer(e)):S.error(k+"The MarkerCluster plugin is not loaded."):S.error(k+"The marker group you have specified is invalid.")},listenMarkerEvents:function(e,t,n,i,r){e.on("popupopen",(function(){g(n,(function(){(l(e._popup)||l(e._popup._contentNode))&&(t.focus=!0,P(e,t,r))}))})),e.on("popupclose",(function(){g(n,(function(){t.focus=!1}))})),e.on("add",(function(){g(n,(function(){"label"in t&&Y(e,t)}))}))},updateMarker:O,addMarkerWatcher:function(e,t,n,i,r,o){var a=v.getObjectArrayPath("markers."+t);x(n,a,o,(function(t,n,o){if(!l(t))return A(e,r,i),void o();O(t,n,e,0,0,i,r)}))},string:T,log:function(e,t){(t?console:S).debug(T(e))},getModelFromModels:function(e,t,n){if(l(e)){if(t)return n?e[n][t]:e[t];S.error(k+"marker id missing in getMarker")}},getLayerModels:function(e,t){if(l(e))return t?e[t]:e}}}]),e.module("ui-leaflet").factory("leafletPathsHelpers",["$rootScope","leafletLogger","leafletHelpers",function(e,t,n){var i=n.isDefined,r=n.isArray,o=n.isNumber,a=n.isValidPoint,s=t,l=["stroke","weight","color","opacity","fill","fillColor","fillOpacity","dashArray","lineCap","lineJoin","clickable","pointerEvents","className","smoothFactor","noClip"];function u(e){return e.filter((function(e){return a(e)})).map((function(e){return c(e)}))}function c(e){return r(e)?new L.LatLng(e[0],e[1]):new L.LatLng(e.lat,e.lng)}function d(e){return e.map((function(e){return u(e)}))}var h=function(e,t){for(var n={},r=0;r<l.length;r++){var o=l[r];i(t[o])&&(n[o]=t[o])}e.setStyle(t)},f=function(e){if(!r(e))return!1;for(var t=0;t<e.length;t++){var n=e[t];if(!a(n))return!1}return!0},p={polyline:{isValid:function(e){var t=e.latlngs;return f(t)},createPath:function(e){return new L.Polyline([],e)},setPath:function(e,t){e.setLatLngs(u(t.latlngs)),h(e,t)}},multiPolyline:{isValid:function(e){var t=e.latlngs;if(!r(t))return!1;for(var n in t){var i=t[n];if(!f(i))return!1}return!0},createPath:function(e){return new L.multiPolyline([[[0,0],[1,1]]],e)},setPath:function(e,t){e.setLatLngs(d(t.latlngs)),h(e,t)}},polygon:{isValid:function(e){var t=e.latlngs;return f(t)},createPath:function(e){return new L.Polygon([],e)},setPath:function(e,t){e.setLatLngs(u(t.latlngs)),h(e,t)}},multiPolygon:{isValid:function(e){var t=e.latlngs;if(!r(t))return!1;for(var n in t){var i=t[n];if(!f(i))return!1}return!0},createPath:function(e){return new L.MultiPolygon([[[0,0],[1,1],[0,1]]],e)},setPath:function(e,t){e.setLatLngs(d(t.latlngs)),h(e,t)}},rectangle:{isValid:function(e){var t=e.latlngs;if(!r(t)||2!==t.length)return!1;for(var n in t){var i=t[n];if(!a(i))return!1}return!0},createPath:function(e){return new L.Rectangle([[0,0],[1,1]],e)},setPath:function(e,t){e.setBounds(new L.LatLngBounds(u(t.latlngs))),h(e,t)}},circle:{isValid:function(e){var t=e.latlngs;return a(t)&&o(e.radius)},createPath:function(e){return new L.Circle([0,0],1,e)},setPath:function(e,t){e.setLatLng(c(t.latlngs)),i(t.radius)&&e.setRadius(t.radius),h(e,t)}},circleMarker:{isValid:function(e){var t=e.latlngs;return a(t)&&o(e.radius)},createPath:function(e){return new L.CircleMarker([0,0],e)},setPath:function(e,t){e.setLatLng(c(t.latlngs)),i(t.radius)&&e.setRadius(t.radius),h(e,t)}}};return{setPathOptions:function(e,t,n){i(t)||(t="polyline"),p[t].setPath(e,n)},createPath:function(e,t,n){i(t.type)||(t.type="polyline");var r=function(e,t){for(var n={},r=0;r<l.length;r++){var o=l[r];i(e[o])?n[o]=e[o]:i(t.path[o])&&(n[o]=t.path[o])}return n}(t,n),o=function(e){var t={};return e.latlngs&&(t.latlngs=e.latlngs),e.radius&&(t.radius=e.radius),t}(t);if(p[t.type].isValid(o))return p[t.type].createPath(r);s.error("[AngularJS - Leaflet] Invalid data passed to the "+t.type+" path")}}}]),e.module("ui-leaflet").service("leafletWatchHelpers",(function(){return{maybeWatch:function(e,t,n,i){return function(e,t,n,i,r){var o=e[t](n,(function(e,t){r(e,t,o),null===i.type&&o()}),"watchDeep"===i.type);return o}(e,"watchCollection"===n.type?"$watchCollection":"$watch",t,n,i)}}})),e.module("ui-leaflet").service("leafletLogger",["nemSimpleLogger",function(e){return e.spawn()}]),e.module("ui-leaflet").factory("nominatimService",["$q","$http","leafletHelpers","leafletMapDefaults",function(e,t,n,i){var r=n.isDefined;return{query:function(n,o){var a=i.getDefaults(o).nominatim.server,s=e.defer();return t.get(a,{params:{format:"json",limit:1,q:n}}).success((function(e){e.length>0&&r(e[0].boundingbox)?s.resolve(e[0]):s.reject("[Nominatim] Invalid address")})),s.promise}}}]),e.module("ui-leaflet").directive("bounds",["leafletLogger","$timeout","$http","leafletHelpers","nominatimService","leafletBoundsHelpers",function(t,n,i,r,o,a){var s=t;return{restrict:"A",scope:!1,replace:!1,require:["leaflet"],link:function(t,i,l,u){var c=r.isDefined,d=a.createLeafletBounds,h=u[0].getLeafletScope(),f=u[0],p=r.errorHeader+" [Bounds] ";f.getMap().then((function(i){var r;h.$on("boundsChanged",(function(t){var r=t.currentScope,o=i.getBounds();if(!function(e){return 0===e._southWest.lat&&0===e._southWest.lng&&0===e._northEast.lat&&0===e._northEast.lng}(o)&&!r.settingBoundsFromScope){r.settingBoundsFromLeaflet=!0;var a={northEast:{lat:o._northEast.lat,lng:o._northEast.lng},southWest:{lat:o._southWest.lat,lng:o._southWest.lng},options:o.options};e.equals(r.bounds,a)||(r.bounds=a),n((function(){r.settingBoundsFromLeaflet=!1}))}})),h.$watch("bounds",(function(e){if(!t.settingBoundsFromLeaflet){if(c(e.address)&&e.address!==r)return t.settingBoundsFromScope=!0,o.query(e.address,l.id).then((function(e){var t=e.boundingbox,n=[[t[0],t[2]],[t[1],t[3]]];i.fitBounds(n)}),(function(e){s.error(p+" "+e+".")})),r=e.address,void n((function(){t.settingBoundsFromScope=!1}));var a=d(e);a&&!i.getBounds().equals(a)&&(t.settingBoundsFromScope=!0,i.fitBounds(a,e.options),n((function(){t.settingBoundsFromScope=!1})))}}),!0)}))}}}]);var t=["center","lfCenter"],n={};t.forEach((function(t){n[t]=["leafletLogger","$q","$location","$timeout","leafletMapDefaults","leafletHelpers","leafletBoundsHelpers","leafletMapEvents",function(n,i,r,o,a,s,l,u){var c,d=s.isDefined,h=s.isNumber,f=s.isSameCenterOnMap,p=s.safeApply,m=s.isValidCenter,g=l.isValidBounds,v=s.isUndefinedOrEmpty,_=s.errorHeader,y=n;return{restrict:"A",scope:!1,replace:!1,require:"leaflet",controller:function(){c=i.defer(),this.getCenter=function(){return c.promise}},link:function(n,i,s,b){var w=b.getLeafletScope(),L=w[t];b.getMap().then((function(n){var i,b,M,k,x=a.getDefaults(s.id);if(-1!==s[t].search("-"))return y.error(_+' The "center" variable can\'t use a "-" on its key name: "'+s[t]+'".'),void n.setView([x.center.lat,x.center.lng],x.center.zoom);if(i=w.bounds,b=L,d(i)&&g(i)&&v(b))n.fitBounds(l.createLeafletBounds(w.bounds),w.bounds.options),L=n.getCenter(),p(w,(function(i){e.extend(i[t],{lat:n.getCenter().lat,lng:n.getCenter().lng,zoom:n.getZoom(),autoDiscover:!1})})),p(w,(function(e){var t=n.getBounds();e.bounds={northEast:{lat:t._northEast.lat,lng:t._northEast.lng},southWest:{lat:t._southWest.lat,lng:t._southWest.lng}}}));else{if(!d(L))return y.error(_+' The "center" property is not defined in the main scope'),void n.setView([x.center.lat,x.center.lng],x.center.zoom);d(L.lat)&&d(L.lng)||d(L.autoDiscover)||e.copy(x.center,L)}if("yes"===s.urlHashCenter){var S=function(){var e,t=r.search(),n=s.urlHashParam?s.urlHashParam:"c";if(d(t[n])){var i=t[n].split(":");3===i.length&&(e={lat:parseFloat(i[0]),lng:parseFloat(i[1]),zoom:parseInt(i[2],10)})}return e};M=S(),w.$on("$locationChangeSuccess",(function(i){var r=i.currentScope,o=S();d(o)&&!f(o,n)&&e.extend(r[t],{lat:o.lat,lng:o.lng,zoom:o.zoom})}))}w.$watch(t,(function(t){if(!w.settingCenterFromLeaflet){if(d(M)&&(e.copy(M,t),M=void 0),m(t)||!0===t.autoDiscover)return!0===t.autoDiscover?(h(t.zoom)||n.setView([x.center.lat,x.center.lng],x.center.zoom),void(h(t.zoom)&&t.zoom>x.center.zoom?n.locate({setView:!0,maxZoom:t.zoom}):d(x.maxZoom)?n.locate({setView:!0,maxZoom:x.maxZoom}):n.locate({setView:!0}))):void(k&&f(t,n)||(w.settingCenterFromScope=!0,n.setView([t.lat,t.lng],t.zoom),u.notifyCenterChangedToBounds(w,n),o((function(){w.settingCenterFromScope=!1}))));y.warn(_+" invalid 'center'")}}),!0),n.whenReady((function(){k=!0})),n.on("moveend",(function(){c.resolve(),u.notifyCenterUrlHashChanged(w,n,s,r.search()),f(L,n)||w.settingCenterFromScope||(w.settingCenterFromLeaflet=!0,p(w,(function(i){w.settingCenterFromScope||e.extend(i[t],{lat:n.getCenter().lat,lng:n.getCenter().lng,zoom:n.getZoom(),autoDiscover:!1}),u.notifyCenterChangedToBounds(w,n),o((function(){w.settingCenterFromLeaflet=!1}))})))})),!0===L.autoDiscover&&n.on("locationerror",(function(){y.warn(_+" The Geolocation API is unauthorized on this page."),m(L)?(n.setView([L.lat,L.lng],L.zoom),u.notifyCenterChangedToBounds(w,n)):(n.setView([x.center.lat,x.center.lng],x.center.zoom),u.notifyCenterChangedToBounds(w,n))}))}))}}}]})),t.forEach((function(t){e.module("ui-leaflet").directive(t,n[t])})),e.module("ui-leaflet").directive("controls",["leafletLogger","leafletHelpers","leafletControlHelpers",function(e,t,n){var i=e;return{restrict:"A",scope:!1,replace:!1,require:"?^leaflet",link:function(e,r,o,a){if(a){var s=n.createControl,l=n.isValidControlType,u=a.getLeafletScope(),c=t.isDefined,d=t.isArray,h={},f=t.errorHeader+" [Controls] ";e.$on("$destroy",(function(){n.destroyMapLayersControl(e.mapId)})),a.getMap().then((function(e){u.$watchCollection("controls",(function(t){for(var n in h)c(t[n])||(e.hasControl(h[n])&&e.removeControl(h[n]),delete h[n]);for(var r in t){var o,a=c(t[r].type)?t[r].type:r;if(!l(a))return void i.error(f+" Invalid control type: "+a+".");if("custom"!==a)o=s(a,t[r]),e.addControl(o),h[r]=o;else{var u=t[r];if(d(u))for(var p=0;p<u.length;p++){var m=u[p];e.addControl(m),h[r]=c(h[r])?h[r].concat([m]):[m]}else e.addControl(u),h[r]=u}}}))}))}}}}]),e.module("ui-leaflet").directive("decorations",["leafletLogger","leafletHelpers",function(t,n){var i=t;return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(t,r,o,a){var s=a.getLeafletScope(),l=n.PolylineDecoratorPlugin,u=n.isDefined,c={};function d(e,t){if(u(e)&&u(t)&&u(t.coordinates)&&u(t.patterns))return e.setPaths(t.coordinates),e.setPatterns(t.patterns),e}a.getMap().then((function(t){s.$watch("decorations",(function(n){for(var r in c)u(n[r])&&e.equals(n[r],c)||(t.removeLayer(c[r]),delete c[r]);for(var o in n){var a=n[o],s=(u(h=a)&&u(h.coordinates)&&(l.isLoaded()||i.error("[AngularJS - Leaflet] The PolylineDecorator Plugin is not loaded.")),L.polylineDecorator(h.coordinates));u(s)&&(c[o]=s,t.addLayer(s),d(s,a))}var h}),!0)}))}}}]),e.module("ui-leaflet").directive("eventBroadcast",["leafletLogger","$rootScope","leafletHelpers","leafletMapEvents","leafletIterators",function(e,t,n,i,r){var o=e;return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(e,t,a,s){var l=n.isObject,u=n.isDefined,c=s.getLeafletScope(),d=c.eventBroadcast,h=i.getAvailableMapEvents(),f=i.addEvents;s.getMap().then((function(e){var t=[],n="broadcast";u(d.map)?l(d.map)?("emit"!==d.map.logic&&"broadcast"!==d.map.logic?o.warn("[AngularJS - Leaflet] Available event propagation logic are: 'emit' or 'broadcast'."):n=d.map.logic,l(d.map.enable)&&d.map.enable.length>=0?r.each(d.map.enable,(function(e){-1===t.indexOf(e)&&-1!==h.indexOf(e)&&t.push(e)})):o.warn("[AngularJS - Leaflet] event-broadcast.map.enable must be an object check your model.")):o.warn("[AngularJS - Leaflet] event-broadcast.map must be an object check your model."):t=h,f(e,a.id,t,"eventName",c,n)}))}}}]),e.module("ui-leaflet").directive("geojson",["$timeout","leafletLogger","leafletData","leafletHelpers","leafletWatchHelpers","leafletDirectiveControlsHelpers","leafletIterators","leafletGeoJsonEvents",function(t,n,i,r,o,a,s,l){var u=o.maybeWatch,c=r.watchOptions,d=a.extend,h=r,f=s,p={changeFromDirective:!1};return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(t,n,o,a){var s=r.isDefined,m=a.getLeafletScope(),g={},v=!1;a.getMap().then((function(t){var n;n=m.watchOptions&&m.watchOptions.geojson?m.watchOptions.geojson:c;var a=h.isDefined(o.geojsonNested)&&h.isTruthy(o.geojsonNested),_=function(){if(g){var e=function(e){s(e)&&t.hasLayer(e)&&t.removeLayer(e)};a?f.each(g,(function(t){e(t)})):e(g)}},y=function(n,a){if(s(n)&&s(n.data)){var u=function(t,n){return e.isFunction(t.onEachFeature)?t.onEachFeature:function(e,i){r.LabelPlugin.isLoaded()&&s(e.properties.description)&&i.bindLabel(e.properties.description),l.bindEvents(o.id,i,null,e,m,n,{resetStyleOnMouseout:t.resetStyleOnMouseout,mapId:o.id})}}(n,a);s(n.options)||h.modelChangeInDirective(p,"changeFromDirective",(function(){n.options={style:n.style,filter:n.filter,onEachFeature:u,pointToLayer:n.pointToLayer}}));var c=L.geoJson(n.data,n.options);a&&h.isString(a)?g[a]=c:g=c,c.addTo(t),v||(v=!0,i.setGeoJSON(g,o.id))}},b=function(e){if(_(),a){if(!e||!Object.keys(e).length)return;f.each(e,(function(e,t){y(e,t)}))}else y(e)};d(o.id,"geojson",b,_),u(m,"geojson",n,(function(e){p.changeFromDirective||b(e)}))}))}}}]),e.module("ui-leaflet").directive("layercontrol",["$filter","leafletLogger","leafletData","leafletHelpers",function(t,n,i,r){var o=n;return{restrict:"E",scope:{icons:"=?",autoHideOpacity:"=?",showGroups:"=?",title:"@",baseTitle:"@",overlaysTitle:"@"},replace:!0,transclude:!1,require:"^leaflet",controller:["$scope","$element","$sce",function(t,n,a){o.debug("[Angular Directive - Layers] layers",t,n);var s=r.safeApply,l=r.isDefined;e.extend(t,{baselayer:"",oldGroup:"",layerProperties:{},groupProperties:{},rangeIsSupported:r.rangeIsSupported(),changeBaseLayer:function(e,n){r.safeApply(t,(function(n){n.baselayer=e,i.getMap().then((function(r){i.getLayers().then((function(i){if(!r.hasLayer(i.baselayers[e])){for(var o in n.layers.baselayers)n.layers.baselayers[o].icon=n.icons.unradio,r.hasLayer(i.baselayers[o])&&r.removeLayer(i.baselayers[o]);r.addLayer(i.baselayers[e]),n.layers.baselayers[e].icon=t.icons.radio}}))}))})),n.preventDefault()},moveLayer:function(e,n,i){var r=Object.keys(t.layers.baselayers).length;if(n>=1+r&&n<=t.overlaysArray.length+r){var o;for(var a in t.layers.overlays)if(t.layers.overlays[a].index===n){o=t.layers.overlays[a];break}o&&s(t,(function(){o.index=e.index,e.index=n}))}i.stopPropagation(),i.preventDefault()},initIndex:function(e,n){var i=Object.keys(t.layers.baselayers).length;e.index=l(e.index)?e.index:n+i+1},initGroup:function(e){t.groupProperties[e]=t.groupProperties[e]?t.groupProperties[e]:{}},toggleOpacity:function(e,n){if(n.visible){if(t.autoHideOpacity&&!t.layerProperties[n.name].opacityControl)for(var i in t.layerProperties)t.layerProperties[i].opacityControl=!1;t.layerProperties[n.name].opacityControl=!t.layerProperties[n.name].opacityControl}e.stopPropagation(),e.preventDefault()},toggleLegend:function(e){t.layerProperties[e.name].showLegend=!t.layerProperties[e.name].showLegend},showLegend:function(e){return e.legend&&t.layerProperties[e.name].showLegend},unsafeHTML:function(e){return a.trustAsHtml(e)},getOpacityIcon:function(e){return e.visible&&t.layerProperties[e.name].opacityControl?t.icons.close:t.icons.open},getGroupIcon:function(e){return e.visible?t.icons.check:t.icons.uncheck},changeGroupVisibility:function(e){if(l(t.groupProperties[e])){var n=t.groupProperties[e].visible;for(var i in t.layers.overlays){var r=t.layers.overlays[i];r.group===e&&(r.visible=n)}}}});var u=n.get(0);L.Browser.touch?L.DomEvent.on(u,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(u),L.DomEvent.on(u,"mousewheel",L.DomEvent.stopPropagation))}],template:'<div class="angular-leaflet-control-layers" ng-show="overlaysArray.length"><h4 ng-if="title">{{ title }}</h4><div class="lf-baselayers"><h5 class="lf-title" ng-if="baseTitle">{{ baseTitle }}</h5><div class="lf-row" ng-repeat="(key, layer) in baselayersArray"><label class="lf-icon-bl" ng-click="changeBaseLayer(key, $event)"><input class="leaflet-control-layers-selector" type="radio" name="lf-radio" ng-show="false" ng-checked="baselayer === key" ng-value="key" /> <i class="lf-icon lf-icon-radio" ng-class="layer.icon"></i><div class="lf-text">{{layer.name}}</div></label></div></div><div class="lf-overlays"><h5 class="lf-title" ng-if="overlaysTitle">{{ overlaysTitle }}</h5><div class="lf-container"><div class="lf-row" ng-repeat="layer in (o = (overlaysArray | orderBy:\'index\':order))" ng-init="initIndex(layer, $index)"><label class="lf-icon-ol-group" ng-if="showGroups &amp;&amp; layer.group &amp;&amp; layer.group != o[$index-1].group"><input class="lf-control-layers-selector" type="checkbox" ng-show="false" ng-change="changeGroupVisibility(layer.group)" ng-model="groupProperties[layer.group].visible"/> <i class="lf-icon lf-icon-check" ng-class="getGroupIcon(groupProperties[layer.group])"></i><div class="lf-text">{{ layer.group }}</div></label><label class="lf-icon-ol"><input class="lf-control-layers-selector" type="checkbox" ng-show="false" ng-model="layer.visible"/> <i class="lf-icon lf-icon-check" ng-class="layer.icon"></i><div class="lf-text">{{layer.name}}</div></label><div class="lf-icons"><i class="lf-icon lf-up" ng-class="icons.up" ng-click="moveLayer(layer, layer.index - orderNumber, $event)"></i> <i class="lf-icon lf-down" ng-class="icons.down" ng-click="moveLayer(layer, layer.index + orderNumber, $event)"></i> <i class="lf-icon lf-toggle-legend" ng-class="icons.toggleLegend" ng-if="layer.legend" ng-click="toggleLegend(layer)"></i> <i class="lf-icon lf-open" ng-class="getOpacityIcon(layer)" ng-click="toggleOpacity($event, layer)"></i></div><div class="lf-legend" ng-if="showLegend(layer)" ng-bind-html="unsafeHTML(layer.legend)"></div><div class="lf-opacity clearfix" ng-if="layer.visible &amp;&amp; layerProperties[layer.name].opacityControl"><label ng-if="rangeIsSupported" class="pull-left" style="width: 50%">0</label><label ng-if="rangeIsSupported" class="pull-left text-right" style="width: 50%">100</label><input ng-if="rangeIsSupported" class="clearfix" type="range" min="0" max="1" step="0.05" class="lf-opacity-control" ng-model="layerProperties[layer.name].layerOptions.opacity"/><h6 ng-if="!rangeIsSupported">Range is not supported in this browser</h6></div></div></div></div></div>',link:function(t,n,o,a){var s=r.isDefined,l=a.getLeafletScope(),u=l.layers;t.$watch("icons",(function(){var n={uncheck:"fa fa-square-o",check:"fa fa-check-square-o",radio:"fa fa-dot-circle-o",unradio:"fa fa-circle-o",up:"fa fa-angle-up",down:"fa fa-angle-down",open:"fa fa-angle-double-down",close:"fa fa-angle-double-up",toggleLegend:"fa fa-pencil-square-o"};s(t.icons)?(e.extend(n,t.icons),e.extend(t.icons,n)):t.icons=n})),o.order=!s(o.order)||"normal"!==o.order&&"reverse"!==o.order?"normal":o.order,t.order="normal"===o.order,t.orderNumber="normal"===o.order?-1:1,t.layers=u,a.getMap().then((function(e){l.$watch("layers.baselayers",(function(n){var r={};i.getLayers().then((function(i){var o;for(o in n){var a=n[o];a.icon=t.icons[e.hasLayer(i.baselayers[o])?"radio":"unradio"],r[o]=a}t.baselayersArray=r}))})),l.$watch("layers.overlays",(function(e){var n=[],r={};i.getLayers().then((function(){var i;for(i in e){var o=e[i];o.icon=t.icons[o.visible?"check":"uncheck"],n.push(o),s(t.layerProperties[o.name])||(s(o.layerOptions.opacity)&&(o.layerOptions.opacity=1),t.layerProperties[o.name]={opacityControl:!1,showLegend:!0,layerOptions:o.layerOptions}),s(o.group)&&(s(t.groupProperties[o.group])||(t.groupProperties[o.group]={visible:!1}),r[o.group]=s(r[o.group])?r[o.group]:{count:0,visibles:0},r[o.group].count++,o.visible&&r[o.group].visibles++)}for(i in r)t.groupProperties[i].visible=r[i].visibles===r[i].count;t.overlaysArray=n}))}),!0)}))}}}]),e.module("ui-leaflet").directive("layers",["leafletLogger","$q","leafletData","leafletHelpers","leafletLayerHelpers","leafletControlHelpers",function(t,n,i,r,o,a){return{restrict:"A",scope:!1,replace:!1,require:"leaflet",controller:["$scope",function(e){e._leafletLayers=n.defer(),this.getLayers=function(){return e._leafletLayers.promise}}],link:function(t,n,s,l){var u=r.isDefined,c={},d=l.getLeafletScope(),h=d.layers,f=o.createLayer,p=o.safeAddLayer,m=o.safeRemoveLayer,g=o.changeOpacityListener,v=a.updateLayersControl,_=!1;t.$on("$destroy",(function(){a.destroyMapLayersControl(t.mapId)})),l.getMap().then((function(n){t._leafletLayers.resolve(c),i.setLayers(c,s.id),c.baselayers={},c.overlays={};var r=s.id,o=!1;for(var a in h.baselayers){var l=f(h.baselayers[a]);u(l)?(c.baselayers[a]=l,!0===h.baselayers[a].top&&(p(n,c.baselayers[a]),o=!0)):delete h.baselayers[a]}for(a in!o&&Object.keys(c.baselayers).length>0&&p(n,c.baselayers[Object.keys(h.baselayers)[0]]),h.overlays){h.overlays[a].type;var y=f(h.overlays[a]);u(y)?(c.overlays[a]=y,!0===h.overlays[a].visible&&p(n,c.overlays[a])):delete h.overlays[a]}d.$watch("layers.baselayers",(function(t,i){if(e.equals(t,i))return _=v(n,r,_,t,h.overlays,c),!0;for(var o in c.baselayers)u(t[o])&&!t[o].doRefresh||(n.hasLayer(c.baselayers[o])&&n.removeLayer(c.baselayers[o]),delete c.baselayers[o],t[o]&&t[o].doRefresh&&(t[o].doRefresh=!1));for(var a in t)if(u(c.baselayers[a]))!0!==t[a].top||n.hasLayer(c.baselayers[a])?!1===t[a].top&&n.hasLayer(c.baselayers[a])&&n.removeLayer(c.baselayers[a]):p(n,c.baselayers[a]);else{var s=f(t[a]);u(s)&&(c.baselayers[a]=s,!0===t[a].top&&p(n,c.baselayers[a]))}var l=!1;for(var d in c.baselayers)if(n.hasLayer(c.baselayers[d])){l=!0;break}!l&&Object.keys(c.baselayers).length>0&&p(n,c.baselayers[Object.keys(c.baselayers)[0]]),_=v(n,r,_,t,h.overlays,c)}),!0),d.$watch("layers.overlays",(function(t,i){if(e.equals(t,i))return _=v(n,r,_,h.baselayers,t,c),!0;for(var o in c.overlays)if(!u(t[o])||t[o].doRefresh){if(n.hasLayer(c.overlays[o])){var a=u(t[o])?t[o].layerOptions:null;m(n,c.overlays[o],a)}delete c.overlays[o],t[o]&&t[o].doRefresh&&(t[o].doRefresh=!1)}for(var s in t){if(u(c.overlays[s])){t[s].visible&&!n.hasLayer(c.overlays[s])?p(n,c.overlays[s]):!1===t[s].visible&&n.hasLayer(c.overlays[s])&&m(n,c.overlays[s],t[s].layerOptions);var l=c.overlays[s];n.hasLayer(c.overlays[s])&&(t[s].layerOptions.opacity!==i[s].layerOptions.opacity&&(u(l.setOpacity)&&l.setOpacity(t[s].layerOptions.opacity),u(l.getLayers)&&u(l.eachLayer)&&l.eachLayer(g(t[s].layerOptions.opacity))),u(t[s].index)&&l.setZIndex&&t[s].index!==i[s].index&&l.setZIndex(t[s].index))}else{var d=f(t[s]);if(!u(d))continue;c.overlays[s]=d,!0===t[s].visible&&p(n,c.overlays[s]),u(t[s].index)&&c.overlays[s].setZIndex&&c.overlays[s].setZIndex(t[s].index)}t[s].visible&&n._loaded&&t[s].data&&"heatmap"===t[s].type&&(c.overlays[s].setData(t[s].data),c.overlays[s].update())}_=v(n,r,_,h.baselayers,t,c)}),!0)}))}}}]),e.module("ui-leaflet").directive("legend",["leafletLogger","$http","$timeout","leafletHelpers","leafletLegendHelpers",function(e,t,n,i,r){var o=e,a=i.errorHeader+" [Legend] ";return{restrict:"A",scope:!1,replace:!1,require:"leaflet",transclude:!1,link:function(e,t,n,s){var l,u,c,d,h=i.isArray,f=i.isString,p=i.isDefined,m=i.isFunction,g=s.getLeafletScope(),v=g.legend;g.$watch("legend",(function(e){p(e)&&(l=e.legendClass?e.legendClass:"legend",u=e.position||"bottomright",d=e.type||"arcgis")}),!0);var _=function(e,t,n){t&&t.layers&&t.layers.length>0&&(p(c)?r.updateLegend(c.getContainer(),t,d,n):((c=L.control({position:u})).onAdd=r.getOnAddLegend(t,l,d,n),c.addTo(e)),p(v.loadedData)&&m(v.loadedData)&&v.loadedData())};s.getMap().then((function(e){g.$watch("legend",(function(t){p(t)?p(t.url)||"arcgis"!==d||h(t.colors)&&h(t.labels)&&t.colors.length===t.labels.length?p(t.url)?o.info(a+" loading legend service."):(p(c)&&(c.removeFrom(e),c=null),c=L.control({position:u}),"arcgis"===d&&(c.onAdd=r.getOnAddArrayLegend(t,l)),c.addTo(e)):o.warn(a+" legend.colors and legend.labels must be set."):p(c)&&(c.removeFrom(e),c=null)})),g.$watch("legend.url",(function(t){if(p(t))if(h(t)||f(t))for(var i,s=f(t)?[t]:t,l=function(n,r){return function(l){p(l.data.error)?o.warn(a+"Error loadin legend from: "+r,l.data.error.message):i&&i.layers&&i.layers.length>0?i.layers=i.layers.concat(l.data.layers):i=l.data,n===s.length-1&&_(e,i,t)}},u=function(e){o.warn(a+" legend.url not loaded.",e)},c=0;c<s.length;c++)r.addLegendURL(n.id,{url:s[c],method:"GET"}).then(l(c)).catch(u);else o.warn(a+" legend.url must be an array or string.")})),g.$watch("legend.legendData",(function(t){o.debug("legendData",t),!p(g.legend.url)&&p(t)&&_(e,t)}),!0)}))}}}]),e.module("ui-leaflet").directive("markers",["leafletLogger","$rootScope","$q","leafletData","leafletHelpers","leafletMapDefaults","leafletMarkersHelpers","leafletMarkerEvents","leafletIterators","leafletWatchHelpers","leafletDirectiveControlsHelpers",function(t,n,i,r,o,a,s,l,u,c,d){var h=o.isDefined,f=o.errorHeader,p=o,m=o.isString,g=s.addMarkerWatcher,v=s.updateMarker,_=s.listenMarkerEvents,y=s.addMarkerToGroup,b=s.createMarker,w=s.deleteMarker,M=s.getModelFromModels,k=s.getLayerModels,x=s.resetUnusedMarkerGroups,S=u,T=o.watchOptions,$=c.maybeWatch,D=d.extend,C=t,E={changeFromDirective:!1},A=function(e,t,n,i,r,o,a,s,u,c){S.each(t,(function(t,d){if(!c[d])if(-1===d.search("-")){var w=p.getObjectDotPath(u?[u,d]:[d]),k=function(e,t,n){if(Object.keys(e).length){if(n&&m(n)){if(!e[n]||!Object.keys(e[n]).length)return;return e[n][t]}return e[t]}}(o,d,u);p.modelChangeInDirective(E,"changeFromDirective",(function(){if(h(k)){var c=M(n,d,u);v(t,c,k,w,a,r,i)}else{var x=b(t),S=(t?t.layer:void 0)||u;if(!h(x))return void C.error(f+" Received invalid data on the marker "+d+".");if(function(e,t,n,i){i&&m(i)?(h(t[i])||(t[i]={}),t[i][n]=e):t[n]=e}(x,o,d,u),h(t.message)&&x.bindPopup(t.message,t.popupOptions),h(t.group)){var T=h(t.groupOption)?t.groupOption:null;y(x,t.group,T,i)}if(p.LabelPlugin.isLoaded()&&h(t.label)&&h(t.label.message)&&x.bindLabel(t.label.message,t.label.options),h(t)&&(h(t.layer)||h(u))){if(!function(e,t,n,i,r,o){if(!m(e))return C.error(f+" A layername must be a string"),!1;if(!h(t))return C.error(f+" You must add layers to the directive if the markers are going to use this functionality."),!1;if(!h(t.overlays)||!h(t.overlays[e]))return C.error(f+' A marker can only be added to a layer of type "group"'),!1;var a=t.overlays[e];return a instanceof L.LayerGroup||a instanceof L.FeatureGroup?(a.addLayer(i),null===r&&o.hasLayer(i)&&!0===n.focus&&i.openPopup(),!0):(C.error(f+' Adding a marker to an overlay needs a overlay of the type "group" or "featureGroup"'),!1)}(S,r,t,x,s.individual.type,i))return}else h(t.group)||(i.addLayer(x),null===s.individual.type&&!0===t.focus&&x.openPopup());null!==s.individual.type&&g(x,w,a,r,i,s.individual),_(x,t,a,s.individual.type,i),l.bindEvents(e,x,w,t,a,S)}}))}else C.error('The marker can\'t use a "-" on his key name: "'+d+'".')}))},P=function(t,n,i,r,o){var a,s,l=!1,u=!1,c=h(n);for(var d in i)l||(C.debug(f+"[markers] destroy: "),l=!0),c&&(s=t[d],a=n[d],u=r&&e.equals(s,a)),h(t)&&Object.keys(t).length&&h(t[d])&&Object.keys(t[d]).length&&!u||o&&p.isFunction(o)&&o(s,a,d)},Y=function(e,t,n,i,r){P(e,t,n,!1,(function(e,t,o){C.debug(f+"[marker] is deleting marker: "+o),w(n[o],i,r),delete n[o]}))},O=function(e,t,n){var i={};return P(e,t,n,!0,(function(e,t,n){C.debug(f+"[marker] is already rendered, marker: "+n),i[n]=e})),i};return{restrict:"A",scope:!1,replace:!1,require:["leaflet","?layers"],link:function(e,t,n,o){var a=o[0],s=a.getLeafletScope();a.getMap().then((function(t){var a,l,u={};a=h(o[1])?o[1].getLayers:function(){var e=i.defer();return e.resolve(),e.promise},l=s.watchOptions&&s.watchOptions.markers?s.watchOptions.markers:T;var c=h(n.markersNested)&&p.isTruthy(n.markersNested);a().then((function(i){var o=function(e,n){x(),c?S.each(e,(function(e,r){var o=k(n,r);Y(e,o,u[r],t,i)})):Y(e,n,u,t,i)},a=function(e,r){o(e,r);var a=null;c?S.each(e,(function(o,c){var d=k(r,c),h=k(e,c);a=O(h,d,u[c]),A(n.id,o,r,t,i,u,s,l,c,a)})):(a=O(e,r,u),A(n.id,e,r,t,i,u,s,l,void 0,a))};D(n.id,"markers",a,o),r.setMarkers(u,n.id),$(s,"markers",l,(function(e,t){E.changeFromDirective||a(e,t)})),e.$on("$destroy",(function(){Y(s.markers,{},u,t,i)}))}))}))}}}]),e.module("ui-leaflet").directive("maxbounds",["leafletLogger","leafletMapDefaults","leafletBoundsHelpers","leafletHelpers",function(e,t,n,i){return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(e,t,r,o){var a=o.getLeafletScope(),s=n.isValidBounds,l=i.isNumber;o.getMap().then((function(e){a.$watch("maxbounds",(function(t){if(s(t)){var i=n.createLeafletBounds(t);l(t.pad)&&(i=i.pad(t.pad)),e.setMaxBounds(i),r.center||r.lfCenter||e.fitBounds(i)}else e.setMaxBounds()}))}))}}}]),e.module("ui-leaflet").directive("paths",["leafletLogger","$q","leafletData","leafletMapDefaults","leafletHelpers","leafletPathsHelpers","leafletPathEvents","leafletWatchHelpers",function(e,t,n,i,r,o,a,s){var l=e;return{restrict:"A",scope:!1,replace:!1,require:["leaflet","?layers"],link:function(e,u,c,d){var h=d[0],f=r.isDefined,p=r.isString,m=h.getLeafletScope(),g=m.paths,v=o.createPath,_=a.bindPathEvents,y=o.setPathOptions,b=s.maybeWatch;h.getMap().then((function(e){var o,a,s=i.getDefaults(c.id);(o=f(d[1])?d[1].getLayers:function(){var e=t.defer();return e.resolve(),e.promise},f(g))&&(a=m.watchOptions&&m.watchOptions.paths?m.watchOptions.paths:{type:"watchCollection",individual:{type:"watchDeep"}},o().then((function(t){var i={};n.setPaths(i,c.id);var o=function(n,i,r){b(m,'paths["'+i+'"]',r,(function(i,r,o){if(!f(i)){if(f(r.layer))for(var a in t.overlays)t.overlays[a].removeLayer(n);return e.removeLayer(n),void o()}y(n,i.type,i)}))};b(m,"paths",a,(function(n){!function(n){for(var u in function(t){for(var n in i)f(t[n])||(e.removeLayer(i[n]),delete i[n])}(n),n)if(0!==u.search("\\$"))if(-1===u.search("-")){if(!f(i[u])){var d=n[u],h=v(u,n[u],s);if(f(h)&&f(d.message)&&h.bindPopup(d.message,d.popupOptions),r.LabelPlugin.isLoaded()&&f(d.label)&&f(d.label.message)&&h.bindLabel(d.label.message,d.label.options),f(d)&&f(d.layer)){if(!p(d.layer)){l.error("[AngularJS - Leaflet] A layername must be a string");continue}if(!f(t)){l.error("[AngularJS - Leaflet] You must add layers to the directive if the markers are going to use this functionality.");continue}if(!f(t.overlays)||!f(t.overlays[d.layer])){l.error('[AngularJS - Leaflet] A path can only be added to a layer of type "group"');continue}var g=t.overlays[d.layer];if(!(g instanceof L.LayerGroup||g instanceof L.FeatureGroup)){l.error('[AngularJS - Leaflet] Adding a path to an overlay needs a overlay of the type "group" or "featureGroup"');continue}i[u]=h,g.addLayer(h),null!==a.individual.type?o(h,u,a.individual):y(h,d.type,d)}else f(h)&&(i[u]=h,e.addLayer(h),null!==a.individual.type?o(h,u,a.individual):y(h,d.type,d));_(c.id,h,u,d,m)}}else l.error('[AngularJS - Leaflet] The path name "'+u+'" is not valid. It must not include "-" and a number.')}(n)}))})))}))}}}]),e.module("ui-leaflet").directive("tiles",["leafletLogger","leafletData","leafletMapDefaults","leafletHelpers",function(t,n,i,r){var o=t;return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(t,a,s,l){var u=r.isDefined,c=l.getLeafletScope(),d=c.tiles;u(d)&&u(d.url)?l.getMap().then((function(t){var r,o=i.getDefaults(s.id);c.$watch("tiles",(function(i){var a=o.tileLayerOptions,l=o.tileLayer;if(u(i.url)||!u(r))return u(r)?u(i.url)&&u(i.options)&&!e.equals(i.options,a)?(t.removeLayer(r),a=o.tileLayerOptions,e.copy(i.options,a),l=i.url,(r=L.tileLayer(l,a)).addTo(t),void n.setTiles(r,s.id)):void(u(i.url)&&r.setUrl(i.url)):(u(i.options)&&e.copy(i.options,a),u(i.url)&&(l=i.url),(r=L.tileLayer(l,a)).addTo(t),void n.setTiles(r,s.id));t.removeLayer(r)}),!0)})):o.warn("[AngularJS - Leaflet] The 'tiles' definition doesn't have the 'url' property.")}}}]),e.module("ui-leaflet").directive("watchOptions",["$log","$rootScope","$q","leafletData","leafletHelpers",function(t,n,i,r,o){var a=o.isDefined,s=o.errorHeader,l=o.isObject,u=t;return{restrict:"A",scope:!1,replace:!1,require:["leaflet"],link:function(t,n,i,r){var o=r[0].getLeafletScope(),c=function(e){return"watch"===e||"watchCollection"===e||"watchDeep"===e||null===e};a(o.watchOptions)&&l(o.watchOptions)&&e.forEach(["markers","geojson","paths"],(function(e){a(o.watchOptions[e])&&(c(o.watchOptions[e].type)||u.error(s+" watchOptions."+e+".type is not a valid type."),a(o.watchOptions[e].individual)?c(o.watchOptions[e].individual.type)||u.error(s+" watchOptions."+e+".individual.type is not a valid type."):u.error(s+" watchOptions."+e+".type.individual must be defined."))}))}}}]),e.module("ui-leaflet").factory("leafletEventsHelpersFactory",["$rootScope","$q","leafletLogger","leafletHelpers",function(t,n,i,r){var o=r.safeApply,a=r.isDefined,s=r.isObject,l=r.isArray,u=r.errorHeader,c=i,d=function(e,t){this.rootBroadcastName=e,c.debug("leafletEventsHelpersFactory: lObjectType: "+t+"rootBroadcastName: "+e),this.lObjectType=t};return d.prototype.getAvailableEvents=function(){return[]},d.prototype.genDispatchEvent=function(e,t,n,i,r,o,a,s,l){var u=this;return(e=e||"")&&(e="."+e),function(d){var h=u.rootBroadcastName+e+"."+t;c.debug(h),u.fire(i,h,n,d,d.target||r,a,o,s,l)}},d.prototype.fire=function(n,i,r,s,l,u,c,d,h){o(n,(function(){var o={leafletEvent:s,leafletObject:l,modelName:c,model:u};a(d)&&e.extend(o,{layerName:d}),"emit"===r?n.$emit(i,o):t.$broadcast(i,o)}))},d.prototype.bindEvents=function(e,t,n,i,r,o,d){var h=[],f=this;if(a(r.eventBroadcast))if(s(r.eventBroadcast))if(a(r.eventBroadcast[f.lObjectType]))if(s(r.eventBroadcast[f.lObjectType])){a(r.eventBroadcast[this.lObjectType].logic)&&"emit"!==r.eventBroadcast[f.lObjectType].logic&&"broadcast"!==r.eventBroadcast[f.lObjectType].logic&&c.warn(u+"Available event propagation logic are: 'emit' or 'broadcast'.");var p=!1,m=!1;a(r.eventBroadcast[f.lObjectType].enable)&&l(r.eventBroadcast[f.lObjectType].enable)&&(p=!0),a(r.eventBroadcast[f.lObjectType].disable)&&l(r.eventBroadcast[f.lObjectType].disable)&&(m=!0),p&&m?c.warn(u+"can not enable and disable events at the same time"):p||m?p?r.eventBroadcast[this.lObjectType].enable.forEach((function(e){-1!==h.indexOf(e)?c.warn(u+"This event "+e+" is already enabled"):-1===f.getAvailableEvents().indexOf(e)?c.warn(u+"This event "+e+" does not exist"):h.push(e)})):(h=this.getAvailableEvents(),r.eventBroadcast[f.lObjectType].disable.forEach((function(e){var t=h.indexOf(e);-1===t?c.warn(u+"This event "+e+" does not exist or has been already disabled"):h.splice(t,1)}))):c.warn(u+"must enable or disable events")}else c.warn(u+"event-broadcast."+[f.lObjectType]+" must be an object check your model.");else h=this.getAvailableEvents();else c.error(u+"event-broadcast must be an object check your model.");else h=this.getAvailableEvents();return h.forEach((function(a){t.on(a,f.genDispatchEvent(e,a,"emit",r,t,n,i,o,d))})),"emit"},d}]).service("leafletEventsHelpers",["leafletEventsHelpersFactory",function(e){return new e}]),e.module("ui-leaflet").factory("leafletGeoJsonEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpersFactory","leafletData",function(e,t,n,i,r,o){var a=i.safeApply,s=r,l=function(){s.call(this,"leafletDirectiveGeoJson","geojson")};return(l.prototype=new s).genDispatchEvent=function(t,n,i,r,l,u,c,d,h){var f=s.prototype.genDispatchEvent.call(this,t,n,i,r,l,u,c,d),p=this;return function(t){"mouseout"===n&&(h.resetStyleOnMouseout&&o.getGeoJSON(h.mapId).then((function(e){(d?e[d]:e).resetStyle(t.target)})),a(r,(function(){e.$broadcast(p.rootBroadcastName+".mouseout",t)}))),f(t)}},l.prototype.getAvailableEvents=function(){return["click","dblclick","mouseover","mouseout"]},new l}]),e.module("ui-leaflet").factory("leafletLabelEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpersFactory",function(e,t,n,i,r){var o=i,a=r,s=function(){a.call(this,"leafletDirectiveLabel","markers")};return(s.prototype=new a).genDispatchEvent=function(e,t,n,i,r,o,s,l){var u=o.replace("markers.","");return a.prototype.genDispatchEvent.call(this,e,t,n,i,r,u,s,l)},s.prototype.getAvailableEvents=function(){return["click","dblclick","mousedown","mouseover","mouseout","contextmenu"]},s.prototype.genEvents=function(e,t,n,i,r,a,s,l){var u=this,c=this.getAvailableEvents(),d=o.getObjectArrayPath("markers."+a);c.forEach((function(t){r.label.on(t,u.genDispatchEvent(e,t,n,i,r.label,d,s,l))}))},s.prototype.bindEvents=function(e,t,n,i,r,o){},new s}]),e.module("ui-leaflet").factory("leafletMapEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpers","leafletIterators",function(e,t,n,i,r,o){var a=i.isDefined,s=r.fire,l=function(e,t,i,r){return r&&(r+="."),function(o){var a="leafletDirectiveMap."+r+t;n.debug(a),s(e,a,i,o,o.target,e)}};return{getAvailableMapEvents:function(){return["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","contextmenu","focus","blur","preclick","load","unload","viewreset","movestart","move","moveend","dragstart","drag","dragend","zoomstart","zoomanim","zoomend","zoomlevelschange","resize","autopanstart","layeradd","layerremove","baselayerchange","overlayadd","overlayremove","locationfound","locationerror","popupopen","popupclose","draw:created","draw:edited","draw:deleted","draw:drawstart","draw:drawstop","draw:editstart","draw:editstop","draw:deletestart","draw:deletestop"]},genDispatchMapEvent:l,notifyCenterChangedToBounds:function(e){e.$broadcast("boundsChanged")},notifyCenterUrlHashChanged:function(e,t,n,i){if(a(n.urlHashCenter)){var r=t.getCenter(),o=r.lat.toFixed(4)+":"+r.lng.toFixed(4)+":"+t.getZoom();a(i.c)&&i.c===o||e.$emit("centerUrlHash",o)}},addEvents:function(e,t,n,i,r,a){o.each(n,(function(n){var o={};o[i]=n,t||(t=e._container.id||""),e.on(n,l(r,n,a,t),o)}))}}}]),e.module("ui-leaflet").factory("leafletMarkerEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpersFactory","leafletLabelEvents",function(e,t,n,i,r,o){var a=i.safeApply,s=i.isDefined,l=i,u=o,c=r,d=function(){c.call(this,"leafletDirectiveMarker","markers")};return(d.prototype=new c).genDispatchEvent=function(t,n,i,r,o,s,l,u){var d=c.prototype.genDispatchEvent.call(this,t,n,i,r,o,s,l,u);return function(t){"click"===n?a(r,(function(){e.$broadcast("leafletDirectiveMarkersClick",s)})):"dragend"===n&&(a(r,(function(){l.lat=o.getLatLng().lat,l.lng=o.getLatLng().lng})),l.message&&!0===l.focus&&o.openPopup()),d(t)}},d.prototype.getAvailableEvents=function(){return["click","dblclick","mousedown","mouseover","mouseout","contextmenu","dragstart","drag","dragend","move","remove","popupopen","popupclose","touchend","touchstart","touchmove","touchcancel","touchleave"]},d.prototype.bindEvents=function(e,t,n,i,r,o){var a=c.prototype.bindEvents.call(this,e,t,n,i,r,o);l.LabelPlugin.isLoaded()&&s(t.label)&&u.genEvents(e,n,a,r,t,i,o)},new d}]);var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};e.module("ui-leaflet").factory("leafletPathEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletLabelEvents","leafletEventsHelpers",function(e,t,n,r,o,a){var s=r.isDefined,l=r.isObject,u=r,c=r.errorHeader,d=o,h=a.fire,f=n,p=function(e,t,n,i,r,o,a,s){return(e=e||"")&&(e="."+e),function(l){var u="leafletDirectivePath"+e+"."+t;f.debug(u),h(i,u,n,l,l.target||r,a,o,s)}},m=function(){return["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"]};return{getAvailablePathEvents:m,bindPathEvents:function(e,t,n,r,o){var a,h,m=[],g="broadcast";if(s(o.eventBroadcast))if(l(o.eventBroadcast))if(s(o.eventBroadcast.path))if(l(o.eventBroadcast.paths))f.warn(c+"event-broadcast.path must be an object check your model.");else{void 0!==o.eventBroadcast.path.logic&&null!==o.eventBroadcast.path.logic&&("emit"!==o.eventBroadcast.path.logic&&"broadcast"!==o.eventBroadcast.path.logic?f.warn(c+"Available event propagation logic are: 'emit' or 'broadcast'."):"emit"===o.eventBroadcast.path.logic&&(g="emit"));var v=!1,_=!1;if(void 0!==o.eventBroadcast.path.enable&&null!==o.eventBroadcast.path.enable&&"object"===i(o.eventBroadcast.path.enable)&&(v=!0),void 0!==o.eventBroadcast.path.disable&&null!==o.eventBroadcast.path.disable&&"object"===i(o.eventBroadcast.path.disable)&&(_=!0),v&&_)f.warn(c+"can not enable and disable events at the same time");else if(v||_)if(v)for(a=0;a<o.eventBroadcast.path.enable.length;a++)h=o.eventBroadcast.path.enable[a],-1!==m.indexOf(h)?f.warn(c+"This event "+h+" is already enabled"):-1===["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"].indexOf(h)?f.warn(c+"This event "+h+" does not exist"):m.push(h);else for(m=["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"],a=0;a<o.eventBroadcast.path.disable.length;a++){h=o.eventBroadcast.path.disable[a];var y=m.indexOf(h);-1===y?f.warn(c+"This event "+h+" does not exist or has been already disabled"):m.splice(y,1)}else f.warn(c+"must enable or disable events")}else m=["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"];else f.error(c+"event-broadcast must be an object check your model.");else m=["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"];for(a=0;a<m.length;a++)h=m[a],t.on(h,p(e,h,g,o,m,n));u.LabelPlugin.isLoaded()&&s(t.label)&&d.genEvents(e,n,g,o,t,r)}}}])}(angular),function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters.hidden,.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper.hidden{visibility:hidden}.digit-keyboard{position:absolute;left:0;right:0;bottom:0;background:0 0;font-size:24px;z-index:5000}.digit-keyboard *{box-sizing:border-box}.digit-keyboard .digit-keyboard-row{display:flex;flex-direction:row;border-bottom:1px solid #333}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper{flex:1;text-align:center;position:relative;height:60px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{display:block;margin:0 auto;position:absolute;left:0;top:0;right:0;bottom:0;border-right:1px solid #333;border-left:1px solid #333;line-height:60px;-webkit-transition:background-color .1s linear;-moz-transition:background-color .1s linear;-o-transition:background-color .1s linear;-ms-transition:background-color .1s linear;transition:background-color .1s linear}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{font-size:1em;vertical-align:middle;display:inline-block;line-height:normal;text-align:center;margin-top:-.4em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{font-size:9.6px;line-height:9.6px;height:9.6px;margin-top:-.25em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-action{position:absolute;left:0;top:0;right:0;bottom:0;line-height:60px;font-size:24px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:first-child .digit-keyboard-key{border-right:none}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:last-child .digit-keyboard-key{border-left:none}.digit-keyboard .digit-keyboard-row:first-child{border-top:1px solid #333}.digit-keyboard .digit-keyboard-row:last-child{border:none}.digit-keyboard .digit-keyboard-row:last-child .digit-keyboard-key-wrapper .digit-keyboard-key{border-bottom:1px solid #333}.digit-keyboard.align-center{margin:0 auto}.digit-keyboard.align-left{margin-right:auto}.digit-keyboard.align-right{margin-left:auto}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{margin-top:-.3em}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{display:none}.digit-keyboard.round-buttons .digit-keyboard-row{border:none}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper{margin:10px 0 0}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{width:60px;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;border:1px solid #333}.digit-keyboard.round-buttons .digit-keyboard-row:last-child .digit-keyboard-key-wrapper{margin-bottom:10px}.digit-keyboard.round-buttons.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{height:57.6px;line-height:57.6px}.digit-keyboard.keyboard-light *{border-color:#e6e6e6!important}.digit-keyboard.keyboard-light .digit-keyboard-key{background:#fff;color:#444}.digit-keyboard.keyboard-light .digit-keyboard-key.activated{background:#e6e6e6}.digit-keyboard.keyboard-stable *{border-color:#dfdfdf!important}.digit-keyboard.keyboard-stable .digit-keyboard-key{background:#f8f8f8;color:#444}.digit-keyboard.keyboard-stable .digit-keyboard-key.activated{background:#dfdfdf}.digit-keyboard.keyboard-positive *{border-color:#0c60ee!important}.digit-keyboard.keyboard-positive .digit-keyboard-key{background:#387ef5;color:#fff}.digit-keyboard.keyboard-positive .digit-keyboard-key.activated{background:#0c60ee}.digit-keyboard.keyboard-calm *{border-color:#0a9dc7!important}.digit-keyboard.keyboard-calm .digit-keyboard-key{background:#11c1f3;color:#fff}.digit-keyboard.keyboard-calm .digit-keyboard-key.activated{background:#0a9dc7}.digit-keyboard.keyboard-balanced *{border-color:#28a54c!important}.digit-keyboard.keyboard-balanced .digit-keyboard-key{background:#33cd5f;color:#fff}.digit-keyboard.keyboard-balanced .digit-keyboard-key.activated{background:#28a54c}.digit-keyboard.keyboard-energized *{border-color:#e6b500!important}.digit-keyboard.keyboard-energized .digit-keyboard-key{background:#ffc900;color:#fff}.digit-keyboard.keyboard-energized .digit-keyboard-key.activated{background:#e6b500}.digit-keyboard.keyboard-assertive *{border-color:#e42112!important}.digit-keyboard.keyboard-assertive .digit-keyboard-key{background:#ef473a;color:#fff}.digit-keyboard.keyboard-assertive .digit-keyboard-key.activated{background:#e42112}.digit-keyboard.keyboard-royal *{border-color:#6b46e5!important}.digit-keyboard.keyboard-royal .digit-keyboard-key{background:#886aea;color:#fff}.digit-keyboard.keyboard-royal .digit-keyboard-key.activated{background:#6b46e5}.digit-keyboard.keyboard-dark *{border-color:#2b2b2b!important}.digit-keyboard.keyboard-dark .digit-keyboard-key{background:#444;color:#fff}.digit-keyboard.keyboard-dark .digit-keyboard-key.activated{background:#2b2b2b}.digit-keyboard.keyboard-opaque-black *{border-color:rgba(0,0,0,.75)!important}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key{background:rgba(0,0,0,.15);color:rgba(0,0,0,.75)}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key.activated{background:rgba(0,0,0,.25)}.digit-keyboard.keyboard-opaque-white *{border-color:rgba(255,255,255,.75)!important}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key{background:rgba(255,255,255,.15);color:rgba(255,255,255,.75)}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key.activated{background:rgba(255,255,255,.25)}.digit-keyboard.animation-slide-up{-webkit-transition:transform linear 150ms;transition:transform linear 150ms;transform:translate3d(0,0,0)}.digit-keyboard.animation-slide-up.ng-hide{transform:translate3d(0,100%,0)}.digit-keyboard.animation-pop{-webkit-transition:transform linear 150ms;transition:transform linear 150ms;transform:scale3d(1,1,1)}.digit-keyboard.animation-pop.ng-hide{transform:scale3d(0,0,1)}"),function(e){try{e=angular.module("ion-digit-keyboard.templates")}catch(t){e=angular.module("ion-digit-keyboard.templates",[])}e.run(["$templateCache",function(e){e.put("keyboard.tpl.html","<div class=\"digit-keyboard align-{{align}} keyboard-{{theme}} animation-{{animation}} {{roundButtons ? 'round-buttons' : ''}} {{showLetters == false ? 'no-letters' : ''}} {{(ngShow == false || ngHide == true) ? 'ng-hide' : ''}}\" style=\"width: {{width}};\"><div class=digit-keyboard-row><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(1)><div class=digit-keyboard-key-number>1<div class=digit-keyboard-key-letters></div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(2)><div class=digit-keyboard-key-number>2<div class=digit-keyboard-key-letters>ABC</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(3)><div class=digit-keyboard-key-number>3<div class=digit-keyboard-key-letters>DEF</div></div></div></div></div><div class=digit-keyboard-row><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(4)><div class=digit-keyboard-key-number>4<div class=digit-keyboard-key-letters>GHI</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(5)><div class=digit-keyboard-key-number>5<div class=digit-keyboard-key-letters>JKL</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(6)><div class=digit-keyboard-key-number>6<div class=digit-keyboard-key-letters>MNO</div></div></div></div></div><div class=digit-keyboard-row><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(7)><div class=digit-keyboard-key-number>7<div class=digit-keyboard-key-letters>PQRS</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(8)><div class=digit-keyboard-key-number>8<div class=digit-keyboard-key-letters>TUV</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(9)><div class=digit-keyboard-key-number>9<div class=digit-keyboard-key-letters>WXYZ</div></div></div></div></div><div class=digit-keyboard-row><div class=\"digit-keyboard-key-wrapper {{showLeftAction == false ? 'hidden' : ''}}\"><div class=digit-keyboard-key ng-click=leftAction($event) style={{leftStyle}}><div class=digit-keyboard-key-action ng-bind-html=leftHtml style={{leftFontSize}}></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(0)><div class=digit-keyboard-key-number style=\"margin-top: -0.30em;\">0</div></div></div><div class=\"digit-keyboard-key-wrapper {{showRightAction == false ? 'hidden' : ''}}\"><div class=digit-keyboard-key ng-click=rightAction($event) style={{rightStyle}}><div class=digit-keyboard-key-action ng-bind-html=rightHtml style={{rightFontSize}}></div></div></div></div></div>")}])}(),angular.module("ion-digit-keyboard.directive",[]).directive("ionDigitKeyboard",["$timeout","$ionicScrollDelegate","$templateCache",function(e,t,n){var i=150;return{restrict:"EA",template:n.get("keyboard.tpl.html"),replace:!0,scope:{settings:"=settings",ngShow:"=",ngHide:"="},link:function(n,r,o){function a(){1==c&&(l.style.bottom="0px",l.style.height=u)}function s(){e((function(){if(1==c){var e=r[0].offsetHeight;u=l.style.height,l.style.height="auto",l.style.bottom=e+1+"px"}}),i+10)}void 0===n.settings&&(n.settings={});var l,u,c=!0,d="ion-content",h={},f={};n.leftStyle="",n.rightStyle="",n.leftFontSize="",n.rightFontSize="",n.showLetters=void 0!==n.settings.showLetters&&n.settings.showLetters,n.roundButtons=void 0!==n.settings.roundButtons&&n.settings.roundButtons,n.numberAction=n.settings.action||function(){},n.width=n.settings.width||"100%",n.align=n.settings.align||"center",n.animation=n.settings.animation||"slide-up",n.theme=n.settings.theme||"stable",void 0!==n.settings.leftButton&&"object"==typeof n.settings.leftButton.style&&(void 0!==n.settings.leftButton.style.color&&(n.leftStyle+="color: "+n.settings.leftButton.style.color+";"),void 0!==n.settings.leftButton.style.bgColor&&(h.default=n.settings.leftButton.style.bgColor,n.leftStyle+="background-color: "+h.default+";"),void 0!==n.settings.leftButton.style.activeBgColor&&(h.active=n.settings.leftButton.style.activeBgColor),void 0!==n.settings.leftButton.style.borderColor&&(n.leftStyle+="border-color: "+n.settings.leftButton.style.borderColor+" !important;"),void 0!==n.settings.leftButton.style.fontSize&&(n.leftFontSize="font-size: "+n.settings.leftButton.style.fontSize+" !important;")),void 0!==n.settings.rightButton&&"object"==typeof n.settings.rightButton.style&&(void 0!==n.settings.rightButton.style.color&&(n.rightStyle+="color: "+n.settings.rightButton.style.color+";"),void 0!==n.settings.rightButton.style.bgColor&&(f.default=n.settings.rightButton.style.bgColor,n.rightStyle+="background-color: "+f.default+";"),void 0!==n.settings.rightButton.style.activeBgColor&&(f.active=n.settings.rightButton.style.activeBgColor),void 0!==n.settings.rightButton.style.borderColor&&(n.rightStyle+="border-color: "+n.settings.rightButton.style.borderColor+" !important;"),void 0!==n.settings.rightButton.style.fontSize&&(n.rightFontSize="font-size: "+n.settings.rightButton.style.fontSize+" !important;")),n.showLeftAction=!1,void 0!==n.settings.leftButton&&(n.leftHtml=n.settings.leftButton.html,n.showLeftAction=!0,n.leftAction=function(e){if(h.active){var t=e.target;"I"==t.tagName?t=t.parentNode.parentNode:t.className.indexOf("digit-keyboard-key-action")>-1&&(t=t.parentNode),void 0===h.default&&(h.default=t.style.backgroundColor),t.style.backgroundColor=h.active,setTimeout((function(){t.style.backgroundColor=h.default}),100)}n.settings.leftButton.action()}),n.showRightAction=!1,void 0!==n.settings.rightButton&&(n.rightHtml=n.settings.rightButton.html,n.showRightAction=!0,n.rightAction=function(e){if(f.active){var t=e.target;"I"==t.tagName?t=t.parentNode.parentNode:t.className.indexOf("digit-keyboard-key-action")>-1&&(t=t.parentNode),void 0===f.default&&(f.default=t.style.backgroundColor),t.style.backgroundColor=f.active,setTimeout((function(){t.style.backgroundColor=f.default}),100)}n.settings.rightButton.action()}),("object"==typeof n.settings.resizeContent||"boolean"==typeof n.settings.resizeContent)&&("object"==typeof n.settings.resizeContent?(c=void 0===n.settings.resizeContent.enable||n.settings.resizeContent.enable,d=void 0===n.settings.resizeContent.element?"ion-content":n.settings.resizeContent.element):"boolean"==typeof n.settings.resizeContent&&(c=n.settings.resizeContent)),l=r[0].parentElement.querySelectorAll(d)[0],n.$watch("ngShow",(function(){!0===n.ngShow?s():!1===n.ngShow&&a(),t.resize()})),n.$watch("ngHide",(function(){!0===n.ngHide?a():!1===n.ngHide&&s(),t.resize()}))}}}]),angular.module("ion-digit-keyboard",["ionic","ion-digit-keyboard.templates","ion-digit-keyboard.directive"]),function(e){"use strict";if("object"==typeof exports)module.exports=e("undefined"!=typeof angular?angular:require("angular"),"undefined"!=typeof Chart?Chart:require("chart.js"));else if("function"==typeof define&&define.amd)define(["angular","chart"],e);else{if("undefined"==typeof angular)throw new Error("AngularJS framework needs to be included, see https://angularjs.org/");if("undefined"==typeof Chart)throw new Error("Chart.js library needs to be included, see http://jtblin.github.io/angular-chart.js/");e(angular,Chart)}}((function(e,t){"use strict";t.defaults.global.multiTooltipTemplate="<%if (datasetLabel){%><%=datasetLabel%>: <%}%><%= value %>",t.defaults.global.tooltips.mode="label",t.defaults.global.elements.line.borderWidth=2,t.defaults.global.elements.rectangle.borderWidth=2,t.defaults.global.legend.display=!1,t.defaults.global.colors=["#97BBCD","#DCDCDC","#F7464A","#46BFBD","#FDB45C","#949FB1","#4D5360"];var n="object"==typeof window.G_vmlCanvasManager&&null!==window.G_vmlCanvasManager&&"function"==typeof window.G_vmlCanvasManager.initElement;return n&&(t.defaults.global.animation=!1),e.module("chart.js",[]).provider("ChartJs",(function(){var n={responsive:!0},i={Chart:t,getOptions:function(t){var i=t&&n[t]||{};return e.extend({},n,i)}};this.setOptions=function(t,r){r?n[t]=e.merge(n[t]||{},r):(r=t,n=e.merge(n,r)),e.merge(i.Chart.defaults,n)},this.$get=function(){return i}})).factory("ChartJsFactory",["ChartJs","$timeout",function(i,r){function o(e,t,n){var r=v(e,t);if(function(e){return e.chartData&&e.chartData.length}(t)&&b(e,t,n,r)){var o=n[0],a=o.getContext("2d");t.chartGetColor=function(e){return"function"==typeof e.chartGetColor?e.chartGetColor:d}(t);var s=function(e,t){var n=u(e,t);return Array.isArray(t.chartData[0])?m(t.chartLabels,t.chartData,t.chartSeries||[],n,t.chartDatasetOverride):g(t.chartLabels,t.chartData,n,t.chartDatasetOverride)}(e,t);w(t),t.chart=new i.Chart(a,{type:e,data:s,options:r}),t.$emit("chart-create",t.chart),_(o,t)}}function a(e,t){return!!(e&&t&&e.length&&t.length)&&(Array.isArray(e[0])?e.length===t.length&&e.every((function(e,n){return e.length===t[n].length})):t.reduce(s,0)>0&&e.length===t.length)}function s(e,t){return e+t}function l(t,n,i){var r={point:void 0,points:void 0};return function(o){var a=t.chart.getElementAtEvent||t.chart.getPointAtEvent,s=t.chart.getElementsAtEvent||t.chart.getPointsAtEvent;if(s){var l=s.call(t.chart,o),u=a?a.call(t.chart,o)[0]:void 0;!1!==i&&(e.equals(r.points,l)||e.equals(r.point,u))||(r.point=u,r.points=l,t[n](l,o,u))}}}function u(n,r){for(var o=e.copy(r.chartColors||i.getOptions(n).chartColors||t.defaults.global.colors),a=o.length<r.chartData.length;o.length<r.chartData.length;)o.push(r.chartGetColor());return a&&(r.chartColors=o),o.map(c)}function c(e){return"string"==typeof e&&"r"===e[0]?h(function(e){var t=e.match(/^rgba?\(([\d,.]+)\)$/);if(!t)throw new Error("Cannot parse rgb value");return(e=t[1].split(",")).map(Number)}(e)):"string"==typeof e&&"#"===e[0]?h(function(e){var t=parseInt(e,16);return[t>>16&255,t>>8&255,255&t]}(e.substr(1))):"object"==typeof e&&null!==e?e:d()}function d(){return h([f(0,255),f(0,255),f(0,255)])}function h(e){var t=e[3]||1;return{backgroundColor:p(e=e.slice(0,3),.2),pointBackgroundColor:p(e,t),pointHoverBackgroundColor:p(e,.8),borderColor:p(e,t),pointBorderColor:"#fff",pointHoverBorderColor:p(e,t)}}function f(e,t){return Math.floor(Math.random()*(t-e+1))+e}function p(e,t){return n?"rgb("+e.join(",")+")":"rgba("+e.concat(t).join(",")+")"}function m(t,n,i,r,o){return{labels:t,datasets:n.map((function(t,n){var a=e.extend({},r[n],{label:i[n],data:t});return o&&o.length>=n&&e.merge(a,o[n]),a}))}}function g(t,n,i,r){var o={labels:t,datasets:[{data:n,backgroundColor:i.map((function(e){return e.pointBackgroundColor})),hoverBackgroundColor:i.map((function(e){return e.backgroundColor}))}]};return r&&e.merge(o.datasets[0],r),o}function v(t,n){return e.extend({},i.getOptions(t),n.chartOptions)}function _(t,n){t.onclick=n.chartClick?l(n,"chartClick",!1):e.noop,t.onmousemove=n.chartHover?l(n,"chartHover",!0):e.noop}function y(e){return!e||Array.isArray(e)&&!e.length||"object"==typeof e&&!Object.keys(e).length}function b(e,t,n,i){return!i.responsive||0!==n[0].clientHeight||(r((function(){o(e,t,n)}),50,!1),!1)}function w(e){e.chart&&(e.chart.destroy(),e.$emit("chart-destroy",e.chart))}return function(t){return{restrict:"CA",scope:{chartGetColor:"=?",chartType:"=",chartData:"=?",chartLabels:"=?",chartOptions:"=?",chartSeries:"=?",chartColors:"=?",chartClick:"=?",chartHover:"=?",chartDatasetOverride:"=?"},link:function(i,r){function s(n,a){if(!y(n)&&!e.equals(n,a)){var s=t||i.chartType;s&&o(s,i,r)}}n&&window.G_vmlCanvasManager.initElement(r[0]),i.$watch("chartData",(function(e,n){if(e&&e.length&&(!Array.isArray(e[0])||e[0].length)){var s=t||i.chartType;return s?i.chart&&a(e,n)?function(e,t){Array.isArray(t.chartData[0])?t.chart.data.datasets.forEach((function(t,n){t.data=e[n]})):t.chart.data.datasets[0].data=e,t.chart.update(),t.$emit("chart-update",t.chart)}(e,i):void o(s,i,r):void 0}w(i)}),!0),i.$watch("chartSeries",s,!0),i.$watch("chartLabels",s,!0),i.$watch("chartOptions",s,!0),i.$watch("chartColors",s,!0),i.$watch("chartDatasetOverride",s,!0),i.$watch("chartType",(function(t,n){y(t)||e.equals(t,n)||o(t,i,r)}),!1),i.$on("$destroy",(function(){w(i)})),i.$on("$resize",(function(){i.chart&&i.chart.resize()}))}}}}]).directive("chartBase",["ChartJsFactory",function(e){return new e}]).directive("chartLine",["ChartJsFactory",function(e){return new e("line")}]).directive("chartBar",["ChartJsFactory",function(e){return new e("bar")}]).directive("chartHorizontalBar",["ChartJsFactory",function(e){return new e("horizontalBar")}]).directive("chartRadar",["ChartJsFactory",function(e){return new e("radar")}]).directive("chartDoughnut",["ChartJsFactory",function(e){return new e("doughnut")}]).directive("chartPie",["ChartJsFactory",function(e){return new e("pie")}]).directive("chartPolarArea",["ChartJsFactory",function(e){return new e("polarArea")}]).directive("chartBubble",["ChartJsFactory",function(e){return new e("bubble")}]).name})),function(e){var t=function(e){var t=e.module("FBAngular",[]);return t.factory("Fullscreen",["$document","$rootScope",function(t,n){var i=t[0],r=n.$new();t.on("fullscreenchange webkitfullscreenchange mozfullscreenchange MSFullscreenChange",(function(){r.$emit("FBFullscreen.change",o.isEnabled())}));var o={$on:e.bind(r,r.$on),all:function(e){o.enable(i.documentElement,e)},enable:function(e,t){e.requestFullScreen?e.requestFullScreen(t):e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.msRequestFullscreen&&e.msRequestFullscreen()},cancel:function(){i.cancelFullScreen?i.cancelFullScreen():i.mozCancelFullScreen?i.mozCancelFullScreen():i.webkitExitFullscreen?i.webkitExitFullscreen():i.msExitFullscreen&&i.msExitFullscreen()},isEnabled:function(){return!!(i.fullscreenElement||i.mozFullScreenElement||i.webkitFullscreenElement||i.msFullscreenElement)},toggleAll:function(){o.isEnabled()?o.cancel():o.all()},isSupported:function(){var e=i.documentElement;return!!(e.requestFullScreen||e.mozRequestFullScreen||e.webkitRequestFullscreen||e.msRequestFullscreen)}};return o}]),t.directive("fullscreen",["Fullscreen",function(e){return{link:function(t,n,i){if(i.fullscreen){t.$watch(i.fullscreen,(function(t){var i=e.isEnabled();t&&!i?(e.enable(n[0]),n.addClass("isInFullScreen")):!t&&i&&(e.cancel(),n.removeClass("isInFullScreen"))}));var r=e.$on("FBFullscreen.change",(function(e,r){r||t.$evalAsync((function(){t.$eval(i.fullscreen+"= false"),n.removeClass("isInFullScreen")}))}));t.$on("$destroy",(function(){r()}))}else{if(void 0!==i.onlyWatchedProperty)return;n.on("click",(function(t){e.enable(n[0])}))}}}}]),t};"function"==typeof define&&define.amd?define("FBAngular",["angular"],(function(e){return t(e)})):"undefined"!=typeof module&&module.exports?module.exports=t(e.angular).name:t(e.angular)}(window),function(){var e=("undefined"!=typeof module&&null!==module?module.exports:void 0)||(window.Base58={});e.alphabet="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",e.alphabetMap={};for(var t=0;t<e.alphabet.length;t++)e.alphabetMap[e.alphabet.charAt(t)]=t;e.encode=function(n){var i,r,o;if(0===n.length)return"";for(t=void 0,o=void 0,r=[0],t=0;t<n.length;){for(o=0;o<r.length;)r[o]<<=8,o++;for(r[0]+=n[t],i=0,o=0;o<r.length;)r[o]+=i,i=r[o]/58|0,r[o]%=58,++o;for(;i;)r.push(i%58),i=i/58|0;t++}for(t=0;0===n[t]&&t<n.length-1;)r.push(0),t++;return r.reverse().map((function(t){return e.alphabet[t]})).join("")},e.decode=function(n){var i,r,o,a;if(0===n.length)return"undefined"!=typeof Uint8Array&&null!==Uint8Array?new Uint8Array(0):new Buffer(0);for(t=void 0,a=void 0,i=[0],t=0;t<n.length;){if(!((r=n[t])in e.alphabetMap))throw"Base58.decode received unacceptable input. Character '"+r+"' is not in the Base58 alphabet.";for(a=0;a<i.length;)i[a]*=58,a++;for(i[0]+=e.alphabetMap[r],o=0,a=0;a<i.length;)i[a]+=o,o=i[a]>>8,i[a]&=255,++a;for(;o;)i.push(255&o),o>>=8;t++}for(t=0;"1"===n[t]&&t<n.length-1;)i.push(0),t++;return"undefined"!=typeof Uint8Array&&null!==Uint8Array?new Uint8Array(i.reverse()):new Buffer(i.reverse())}}.call(this),function(){"use strict";function e(e,t){t?(d[0]=d[16]=d[1]=d[2]=d[3]=d[4]=d[5]=d[6]=d[7]=d[8]=d[9]=d[10]=d[11]=d[12]=d[13]=d[14]=d[15]=0,this.blocks=d):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=e}var t="object"==typeof window?window:{},n=!t.JS_SHA256_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;n&&(t=global);var i=!t.JS_SHA256_NO_COMMON_JS&&"object"==typeof module&&module.exports,r="function"==typeof define&&define.amd,o="undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),s=[-2147483648,8388608,32768,128],l=[24,16,8,0],u=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],c=["hex","array","digest","arrayBuffer"],d=[],h=function(t,n){return function(i){return new e(n,!0).update(i)[t]()}},f=function(t){var i=h("hex",t);n&&(i=p(i,t)),i.create=function(){return new e(t)},i.update=function(e){return i.create().update(e)};for(var r=0;r<c.length;++r){var o=c[r];i[o]=h(o,t)}return i},p=function(e,t){var n=require("crypto"),i=require("buffer").Buffer,r=t?"sha224":"sha256";return function(t){if("string"==typeof t)return n.createHash(r).update(t,"utf8").digest("hex");if(o&&t instanceof ArrayBuffer)t=new Uint8Array(t);else if(void 0===t.length)return e(t);return n.createHash(r).update(new i(t)).digest("hex")}};e.prototype.update=function(e){if(!this.finalized){var n="string"!=typeof e;n&&o&&e instanceof t.ArrayBuffer&&(e=new Uint8Array(e));for(var i,r,a=0,s=e.length||0,u=this.blocks;s>a;){if(this.hashed&&(this.hashed=!1,u[0]=this.block,u[16]=u[1]=u[2]=u[3]=u[4]=u[5]=u[6]=u[7]=u[8]=u[9]=u[10]=u[11]=u[12]=u[13]=u[14]=u[15]=0),n)for(r=this.start;s>a&&64>r;++a)u[r>>2]|=e[a]<<l[3&r++];else for(r=this.start;s>a&&64>r;++a)128>(i=e.charCodeAt(a))?u[r>>2]|=i<<l[3&r++]:2048>i?(u[r>>2]|=(192|i>>6)<<l[3&r++],u[r>>2]|=(128|63&i)<<l[3&r++]):55296>i||i>=57344?(u[r>>2]|=(224|i>>12)<<l[3&r++],u[r>>2]|=(128|i>>6&63)<<l[3&r++],u[r>>2]|=(128|63&i)<<l[3&r++]):(i=65536+((1023&i)<<10|1023&e.charCodeAt(++a)),u[r>>2]|=(240|i>>18)<<l[3&r++],u[r>>2]|=(128|i>>12&63)<<l[3&r++],u[r>>2]|=(128|i>>6&63)<<l[3&r++],u[r>>2]|=(128|63&i)<<l[3&r++]);this.lastByteIndex=r,this.bytes+=r-this.start,r>=64?(this.block=u[16],this.start=r-64,this.hash(),this.hashed=!0):this.start=r}return this}},e.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>2]|=s[3&t],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[15]=this.bytes<<3,this.hash()}},e.prototype.hash=function(){var e,t,n,i,r,o,a,s,l,c=this.h0,d=this.h1,h=this.h2,f=this.h3,p=this.h4,m=this.h5,g=this.h6,v=this.h7,_=this.blocks;for(e=16;64>e;++e)t=((r=_[e-15])>>>7|r<<25)^(r>>>18|r<<14)^r>>>3,n=((r=_[e-2])>>>17|r<<15)^(r>>>19|r<<13)^r>>>10,_[e]=_[e-16]+t+_[e-7]+n<<0;for(l=d&h,e=0;64>e;e+=4)this.first?(this.is224?(o=300032,v=(r=_[0]-1413257819)-150054599<<0,f=r+24177077<<0):(o=704751109,v=(r=_[0]-210244248)-1521486534<<0,f=r+143694565<<0),this.first=!1):(t=(c>>>2|c<<30)^(c>>>13|c<<19)^(c>>>22|c<<10),i=(o=c&d)^c&h^l,v=f+(r=v+(n=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7))+(p&m^~p&g)+u[e]+_[e])<<0,f=r+(t+i)<<0),t=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),i=(a=f&c)^f&d^o,g=h+(r=g+(n=(v>>>6|v<<26)^(v>>>11|v<<21)^(v>>>25|v<<7))+(v&p^~v&m)+u[e+1]+_[e+1])<<0,t=((h=r+(t+i)<<0)>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10),i=(s=h&f)^h&c^a,m=d+(r=m+(n=(g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7))+(g&v^~g&p)+u[e+2]+_[e+2])<<0,t=((d=r+(t+i)<<0)>>>2|d<<30)^(d>>>13|d<<19)^(d>>>22|d<<10),i=(l=d&h)^d&f^s,p=c+(r=p+(n=(m>>>6|m<<26)^(m>>>11|m<<21)^(m>>>25|m<<7))+(m&g^~m&v)+u[e+3]+_[e+3])<<0,c=r+(t+i)<<0;this.h0=this.h0+c<<0,this.h1=this.h1+d<<0,this.h2=this.h2+h<<0,this.h3=this.h3+f<<0,this.h4=this.h4+p<<0,this.h5=this.h5+m<<0,this.h6=this.h6+g<<0,this.h7=this.h7+v<<0},e.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,i=this.h3,r=this.h4,o=this.h5,s=this.h6,l=this.h7,u=a[e>>28&15]+a[e>>24&15]+a[e>>20&15]+a[e>>16&15]+a[e>>12&15]+a[e>>8&15]+a[e>>4&15]+a[15&e]+a[t>>28&15]+a[t>>24&15]+a[t>>20&15]+a[t>>16&15]+a[t>>12&15]+a[t>>8&15]+a[t>>4&15]+a[15&t]+a[n>>28&15]+a[n>>24&15]+a[n>>20&15]+a[n>>16&15]+a[n>>12&15]+a[n>>8&15]+a[n>>4&15]+a[15&n]+a[i>>28&15]+a[i>>24&15]+a[i>>20&15]+a[i>>16&15]+a[i>>12&15]+a[i>>8&15]+a[i>>4&15]+a[15&i]+a[r>>28&15]+a[r>>24&15]+a[r>>20&15]+a[r>>16&15]+a[r>>12&15]+a[r>>8&15]+a[r>>4&15]+a[15&r]+a[o>>28&15]+a[o>>24&15]+a[o>>20&15]+a[o>>16&15]+a[o>>12&15]+a[o>>8&15]+a[o>>4&15]+a[15&o]+a[s>>28&15]+a[s>>24&15]+a[s>>20&15]+a[s>>16&15]+a[s>>12&15]+a[s>>8&15]+a[s>>4&15]+a[15&s];return this.is224||(u+=a[l>>28&15]+a[l>>24&15]+a[l>>20&15]+a[l>>16&15]+a[l>>12&15]+a[l>>8&15]+a[l>>4&15]+a[15&l]),u},e.prototype.toString=e.prototype.hex,e.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,i=this.h3,r=this.h4,o=this.h5,a=this.h6,s=this.h7,l=[e>>24&255,e>>16&255,e>>8&255,255&e,t>>24&255,t>>16&255,t>>8&255,255&t,n>>24&255,n>>16&255,n>>8&255,255&n,i>>24&255,i>>16&255,i>>8&255,255&i,r>>24&255,r>>16&255,r>>8&255,255&r,o>>24&255,o>>16&255,o>>8&255,255&o,a>>24&255,a>>16&255,a>>8&255,255&a];return this.is224||l.push(s>>24&255,s>>16&255,s>>8&255,255&s),l},e.prototype.array=e.prototype.digest,e.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e};var m=f();m.sha256=m,m.sha224=f(!0),i?module.exports=m:(t.sha256=m.sha256,t.sha224=m.sha224,r&&define((function(){return m})))}(),angular.module("ngCordova",["ngCordova.plugins"]),angular.module("ngCordova.plugins.3dtouch",[]).factory("$cordova3DTouch",["$q",function(e){var t=[],n={},i=function(e){return function(t){for(var n in e)t.type===n&&e[n]()}};return{isAvailable:function(){var t=e.defer();return window.cordova?window.ThreeDeeTouch?window.ThreeDeeTouch.isAvailable((function(e){t.resolve(e)}),(function(e){t.reject(e)})):t.reject("Could not find 3D touch plugin"):t.reject("Not supported in browser"),t.promise},addQuickAction:function(r,o,a,s,l,u){var c=e.defer(),d={type:r,title:o,subtitle:l};return a&&(d.iconType=a),s&&(d.iconTemplate=s),this.isAvailable().then((function(){t.push(d),n[r]=u,window.ThreeDeeTouch.configureQuickActions(t),window.ThreeDeeTouch.onHomeIconPressed=i(n),c.resolve(t)}),(function(e){c.reject(e)})),c.promise},addQuickActionHandler:function(t,r){var o=e.defer();return this.isAvailable().then((function(){n[t]=r,window.ThreeDeeTouch.onHomeIconPressed=i(n),o.resolve(!0)}),(function(e){o.reject(e)})),o.promise},enableLinkPreview:function(){var t=e.defer();return this.isAvailable().then((function(){window.ThreeDeeTouch.enableLinkPreview(),t.resolve(!0)}),(function(e){t.reject(e)})),t.promise},addForceTouchHandler:function(t){var n=e.defer();return this.isAvailable().then((function(){window.ThreeDeeTouch.watchForceTouches(t),n.resolve(!0)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.actionSheet",[]).factory("$cordovaActionSheet",["$q","$window",function(e,t){return{show:function(n){var i=e.defer();return t.plugins.actionsheet.show(n,(function(e){i.resolve(e)})),i.promise},hide:function(){return t.plugins.actionsheet.hide()}}}]),angular.module("ngCordova.plugins.adMob",[]).factory("$cordovaAdMob",["$q","$window",function(e,t){return{createBannerView:function(n){var i=e.defer();return t.plugins.AdMob.createBannerView(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createInterstitialView:function(n){var i=e.defer();return t.plugins.AdMob.createInterstitialView(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},requestAd:function(n){var i=e.defer();return t.plugins.AdMob.requestAd(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showAd:function(n){var i=e.defer();return t.plugins.AdMob.showAd(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},requestInterstitialAd:function(n){var i=e.defer();return t.plugins.AdMob.requestInterstitialAd(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise}}}]),angular.module("ngCordova.plugins.appAvailability",[]).factory("$cordovaAppAvailability",["$q",function(e){return{check:function(t){var n=e.defer();return appAvailability.check(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.appRate",[]).provider("$cordovaAppRate",[function(){this.setPreferences=function(e){e&&angular.isObject(e)&&(AppRate.preferences.useLanguage=e.language||null,AppRate.preferences.displayAppName=e.appName||"",AppRate.preferences.promptAgainForEachNewVersion=e.promptForNewVersion||!0,AppRate.preferences.openStoreInApp=e.openStoreInApp||!1,AppRate.preferences.usesUntilPrompt=e.usesUntilPrompt||3,AppRate.preferences.useCustomRateDialog=e.useCustomRateDialog||!1,AppRate.preferences.storeAppURL.ios=e.iosURL||null,AppRate.preferences.storeAppURL.android=e.androidURL||null,AppRate.preferences.storeAppURL.blackberry=e.blackberryURL||null,AppRate.preferences.storeAppURL.windows8=e.windowsURL||null)},this.setCustomLocale=function(e){var t={title:"Rate %@",message:"If you enjoy using %@, would you mind taking a moment to rate it? It won’t take more than a minute. Thanks for your support!",cancelButtonLabel:"No, Thanks",laterButtonLabel:"Remind Me Later",rateButtonLabel:"Rate It Now"};t=angular.extend(t,e),AppRate.preferences.customLocale=t},this.$get=["$q",function(e){return{promptForRating:function(t){var n=e.defer(),i=AppRate.promptForRating(t);return n.resolve(i),n.promise},navigateToAppStore:function(){var t=e.defer(),n=AppRate.navigateToAppStore();return t.resolve(n),t.promise},onButtonClicked:function(e){AppRate.preferences.callbacks.onButtonClicked=e.bind(this)},onRateDialogShow:function(e){AppRate.preferences.callbacks.onRateDialogShow=e.bind(this)}}}]}]),angular.module("ngCordova.plugins.appVersion",[]).factory("$cordovaAppVersion",["$q",function(e){return{getAppName:function(){var t=e.defer();return cordova.getAppVersion.getAppName((function(e){t.resolve(e)})),t.promise},getPackageName:function(){var t=e.defer();return cordova.getAppVersion.getPackageName((function(e){t.resolve(e)})),t.promise},getVersionNumber:function(){var t=e.defer();return cordova.getAppVersion.getVersionNumber((function(e){t.resolve(e)})),t.promise},getVersionCode:function(){var t=e.defer();return cordova.getAppVersion.getVersionCode((function(e){t.resolve(e)})),t.promise}}}]),angular.module("ngCordova.plugins.backgroundGeolocation",[]).factory("$cordovaBackgroundGeolocation",["$q","$window",function(e,t){return{init:function(){t.navigator.geolocation.getCurrentPosition((function(e){return e}))},configure:function(n){this.init();var i=e.defer();return t.plugins.backgroundGeoLocation.configure((function(e){i.notify(e),t.plugins.backgroundGeoLocation.finish()}),(function(e){i.reject(e)}),n),this.start(),i.promise},start:function(){var n=e.defer();return t.plugins.backgroundGeoLocation.start((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},stop:function(){var n=e.defer();return t.plugins.backgroundGeoLocation.stop((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.badge",[]).factory("$cordovaBadge",["$q",function(e){return{hasPermission:function(){var t=e.defer();return cordova.plugins.notification.badge.hasPermission((function(e){e?t.resolve(!0):t.reject("You do not have permission")})),t.promise},promptForPermission:function(){return cordova.plugins.notification.badge.promptForPermission()},set:function(t,n,i){var r=e.defer();return cordova.plugins.notification.badge.hasPermission((function(e){e?r.resolve(cordova.plugins.notification.badge.set(t,n,i)):r.reject("You do not have permission to set Badge")})),r.promise},get:function(){var t=e.defer();return cordova.plugins.notification.badge.hasPermission((function(e){e?cordova.plugins.notification.badge.get((function(e){t.resolve(e)})):t.reject("You do not have permission to get Badge")})),t.promise},clear:function(t,n){var i=e.defer();return cordova.plugins.notification.badge.hasPermission((function(e){e?i.resolve(cordova.plugins.notification.badge.clear(t,n)):i.reject("You do not have permission to clear Badge")})),i.promise},increase:function(t,n,i){var r=e.defer();return this.hasPermission().then((function(){r.resolve(cordova.plugins.notification.badge.increase(t,n,i))}),(function(){r.reject("You do not have permission to increase Badge")})),r.promise},decrease:function(t,n,i){var r=e.defer();return this.hasPermission().then((function(){r.resolve(cordova.plugins.notification.badge.decrease(t,n,i))}),(function(){r.reject("You do not have permission to decrease Badge")})),r.promise},configure:function(e){return cordova.plugins.notification.badge.configure(e)}}}]),angular.module("ngCordova.plugins.barcodeScanner",[]).factory("$cordovaBarcodeScanner",["$q",function(e){return{scan:function(t){var n=e.defer();return cordova.plugins.barcodeScanner.scan((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},encode:function(t,n){var i=e.defer();return t=t||"TEXT_TYPE",cordova.plugins.barcodeScanner.encode(t,n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise}}}]),angular.module("ngCordova.plugins.batteryStatus",[]).factory("$cordovaBatteryStatus",["$rootScope","$window","$timeout",function(e,t,n){var i=function(t){n((function(){e.$broadcast("$cordovaBatteryStatus:status",t)}))},r=function(t){n((function(){e.$broadcast("$cordovaBatteryStatus:critical",t)}))},o=function(t){n((function(){e.$broadcast("$cordovaBatteryStatus:low",t)}))};return document.addEventListener("deviceready",(function(){navigator.battery&&(t.addEventListener("batterystatus",i,!1),t.addEventListener("batterycritical",r,!1),t.addEventListener("batterylow",o,!1))}),!1),!0}]).run(["$injector",function(e){e.get("$cordovaBatteryStatus")}]),angular.module("ngCordova.plugins.beacon",[]).factory("$cordovaBeacon",["$window","$rootScope","$timeout","$q",function(e,t,n,i){var r=null,o=null,a=null,s=null,l=null,u=null,c=null,d=null;return document.addEventListener("deviceready",(function(){if(e.cordova&&e.cordova.plugins&&e.cordova.plugins.locationManager){var i=new e.cordova.plugins.locationManager.Delegate;i.didDetermineStateForRegion=function(e){n((function(){t.$broadcast("$cordovaBeacon:didDetermineStateForRegion",e)})),r&&r(e)},i.didStartMonitoringForRegion=function(e){n((function(){t.$broadcast("$cordovaBeacon:didStartMonitoringForRegion",e)})),o&&o(e)},i.didExitRegion=function(e){n((function(){t.$broadcast("$cordovaBeacon:didExitRegion",e)})),a&&a(e)},i.didEnterRegion=function(e){n((function(){t.$broadcast("$cordovaBeacon:didEnterRegion",e)})),s&&s(e)},i.didRangeBeaconsInRegion=function(e){n((function(){t.$broadcast("$cordovaBeacon:didRangeBeaconsInRegion",e)})),l&&l(e)},i.peripheralManagerDidStartAdvertising=function(e){n((function(){t.$broadcast("$cordovaBeacon:peripheralManagerDidStartAdvertising",e)})),u&&u(e)},i.peripheralManagerDidUpdateState=function(e){n((function(){t.$broadcast("$cordovaBeacon:peripheralManagerDidUpdateState",e)})),c&&c(e)},i.didChangeAuthorizationStatus=function(e){n((function(){t.$broadcast("$cordovaBeacon:didChangeAuthorizationStatus",e)})),d&&d(e)},e.cordova.plugins.locationManager.setDelegate(i)}}),!1),{setCallbackDidDetermineStateForRegion:function(e){r=e},setCallbackDidStartMonitoringForRegion:function(e){o=e},setCallbackDidExitRegion:function(e){a=e},setCallbackDidEnterRegion:function(e){s=e},setCallbackDidRangeBeaconsInRegion:function(e){l=e},setCallbackPeripheralManagerDidStartAdvertising:function(e){u=e},setCallbackPeripheralManagerDidUpdateState:function(e){c=e},setCallbackDidChangeAuthorizationStatus:function(e){d=e},createBeaconRegion:function(t,n,i,r,o){return i=i||void 0,r=r||void 0,new e.cordova.plugins.locationManager.BeaconRegion(t,n,i,r,o)},isBluetoothEnabled:function(){return i.when(e.cordova.plugins.locationManager.isBluetoothEnabled())},enableBluetooth:function(){return i.when(e.cordova.plugins.locationManager.enableBluetooth())},disableBluetooth:function(){return i.when(e.cordova.plugins.locationManager.disableBluetooth())},startMonitoringForRegion:function(t){return i.when(e.cordova.plugins.locationManager.startMonitoringForRegion(t))},stopMonitoringForRegion:function(t){return i.when(e.cordova.plugins.locationManager.stopMonitoringForRegion(t))},requestStateForRegion:function(t){return i.when(e.cordova.plugins.locationManager.requestStateForRegion(t))},startRangingBeaconsInRegion:function(t){return i.when(e.cordova.plugins.locationManager.startRangingBeaconsInRegion(t))},stopRangingBeaconsInRegion:function(t){return i.when(e.cordova.plugins.locationManager.stopRangingBeaconsInRegion(t))},getAuthorizationStatus:function(){return i.when(e.cordova.plugins.locationManager.getAuthorizationStatus())},requestWhenInUseAuthorization:function(){return i.when(e.cordova.plugins.locationManager.requestWhenInUseAuthorization())},requestAlwaysAuthorization:function(){return i.when(e.cordova.plugins.locationManager.requestAlwaysAuthorization())},getMonitoredRegions:function(){return i.when(e.cordova.plugins.locationManager.getMonitoredRegions())},getRangedRegions:function(){return i.when(e.cordova.plugins.locationManager.getRangedRegions())},isRangingAvailable:function(){return i.when(e.cordova.plugins.locationManager.isRangingAvailable())},isMonitoringAvailableForClass:function(t){return i.when(e.cordova.plugins.locationManager.isMonitoringAvailableForClass(t))},
-startAdvertising:function(t,n){return i.when(e.cordova.plugins.locationManager.startAdvertising(t,n))},stopAdvertising:function(){return i.when(e.cordova.plugins.locationManager.stopAdvertising())},isAdvertisingAvailable:function(){return i.when(e.cordova.plugins.locationManager.isAdvertisingAvailable())},isAdvertising:function(){return i.when(e.cordova.plugins.locationManager.isAdvertising())},disableDebugLogs:function(){return i.when(e.cordova.plugins.locationManager.disableDebugLogs())},enableDebugNotifications:function(){return i.when(e.cordova.plugins.locationManager.enableDebugNotifications())},disableDebugNotifications:function(){return i.when(e.cordova.plugins.locationManager.disableDebugNotifications())},enableDebugLogs:function(){return i.when(e.cordova.plugins.locationManager.enableDebugLogs())},appendToDeviceLog:function(t){return i.when(e.cordova.plugins.locationManager.appendToDeviceLog(t))}}}]),angular.module("ngCordova.plugins.ble",[]).factory("$cordovaBLE",["$q","$timeout","$log",function(e,t,n){return{scan:function(n,i){var r=e.defer();return ble.startScan(n,(function(e){r.notify(e)}),(function(e){r.reject(e)})),t((function(){ble.stopScan((function(){r.resolve()}),(function(e){r.reject(e)}))}),1e3*i),r.promise},startScan:function(e,t,n){return ble.startScan(e,t,n)},stopScan:function(){var t=e.defer();return ble.stopScan((function(){t.resolve()}),(function(e){t.reject(e)})),t.promise},connect:function(t){var n=e.defer();return ble.connect(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},disconnect:function(t){var n=e.defer();return ble.disconnect(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},read:function(t,n,i){var r=e.defer();return ble.read(t,n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},write:function(t,n,i,r){var o=e.defer();return ble.write(t,n,i,r,(function(e){o.resolve(e)}),(function(e){o.reject(e)})),o.promise},writeWithoutResponse:function(t,n,i,r){var o=e.defer();return ble.writeWithoutResponse(t,n,i,r,(function(e){o.resolve(e)}),(function(e){o.reject(e)})),o.promise},writeCommand:function(e,t,i,r){return n.warning("writeCommand is deprecated, use writeWithoutResponse"),this.writeWithoutResponse(e,t,i,r)},startNotification:function(e,t,n,i,r){return ble.startNotification(e,t,n,i,r)},stopNotification:function(t,n,i){var r=e.defer();return ble.stopNotification(t,n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},isConnected:function(t){var n=e.defer();return ble.isConnected(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},enable:function(){var t=e.defer();return ble.enable((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},isEnabled:function(){var t=e.defer();return ble.isEnabled((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.bluetoothSerial",[]).factory("$cordovaBluetoothSerial",["$q","$window",function(e,t){return{connect:function(n){var i=e.defer(),r=e.defer(),o=!1;return t.bluetoothSerial.connect(n,(function(){o=!0,i.resolve(r)}),(function(e){!1===o&&r.reject(e),i.reject(e)})),i.promise},connectInsecure:function(n){var i=e.defer();return t.bluetoothSerial.connectInsecure(n,(function(){i.resolve()}),(function(e){i.reject(e)})),i.promise},disconnect:function(){var n=e.defer();return t.bluetoothSerial.disconnect((function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},list:function(){var n=e.defer();return t.bluetoothSerial.list((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},discoverUnpaired:function(){var n=e.defer();return t.bluetoothSerial.discoverUnpaired((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},setDeviceDiscoveredListener:function(){var n=e.defer();return t.bluetoothSerial.setDeviceDiscoveredListener((function(e){n.notify(e)})),n.promise},clearDeviceDiscoveredListener:function(){t.bluetoothSerial.clearDeviceDiscoveredListener()},showBluetoothSettings:function(){var n=e.defer();return t.bluetoothSerial.showBluetoothSettings((function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},isEnabled:function(){var n=e.defer();return t.bluetoothSerial.isEnabled((function(){n.resolve()}),(function(){n.reject()})),n.promise},enable:function(){var n=e.defer();return t.bluetoothSerial.enable((function(){n.resolve()}),(function(){n.reject()})),n.promise},isConnected:function(){var n=e.defer();return t.bluetoothSerial.isConnected((function(){n.resolve()}),(function(){n.reject()})),n.promise},available:function(){var n=e.defer();return t.bluetoothSerial.available((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},read:function(){var n=e.defer();return t.bluetoothSerial.read((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},readUntil:function(n){var i=e.defer();return t.bluetoothSerial.readUntil(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},write:function(n){var i=e.defer();return t.bluetoothSerial.write(n,(function(){i.resolve()}),(function(e){i.reject(e)})),i.promise},subscribe:function(n){var i=e.defer();return t.bluetoothSerial.subscribe(n,(function(e){i.notify(e)}),(function(e){i.reject(e)})),i.promise},subscribeRawData:function(){var n=e.defer();return t.bluetoothSerial.subscribeRawData((function(e){n.notify(e)}),(function(e){n.reject(e)})),n.promise},unsubscribe:function(){var n=e.defer();return t.bluetoothSerial.unsubscribe((function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},unsubscribeRawData:function(){var n=e.defer();return t.bluetoothSerial.unsubscribeRawData((function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},clear:function(){var n=e.defer();return t.bluetoothSerial.clear((function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},readRSSI:function(){var n=e.defer();return t.bluetoothSerial.readRSSI((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.brightness",[]).factory("$cordovaBrightness",["$q","$window",function(e,t){return{get:function(){var n=e.defer();return t.cordova?t.cordova.plugins.brightness.getBrightness((function(e){n.resolve(e)}),(function(e){n.reject(e)})):n.reject("Not supported without cordova.js"),n.promise},set:function(n){var i=e.defer();return t.cordova?t.cordova.plugins.brightness.setBrightness(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})):i.reject("Not supported without cordova.js"),i.promise},setKeepScreenOn:function(n){var i=e.defer();return t.cordova?t.cordova.plugins.brightness.setKeepScreenOn(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})):i.reject("Not supported without cordova.js"),i.promise}}}]),angular.module("ngCordova.plugins.calendar",[]).factory("$cordovaCalendar",["$q","$window",function(e,t){return{createCalendar:function(n){var i=e.defer(),r=t.plugins.calendar.getCreateCalendarOptions();return"string"==typeof n?r.calendarName=n:r=angular.extend(r,n),t.plugins.calendar.createCalendar(r,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},deleteCalendar:function(n){var i=e.defer();return t.plugins.calendar.deleteCalendar(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},createEvent:function(n){var i=e.defer(),r={title:null,location:null,notes:null,startDate:null,endDate:null};return r=angular.extend(r,n),t.plugins.calendar.createEvent(r.title,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},createEventWithOptions:function(n){var i=e.defer(),r=[],o=window.plugins.calendar.getCalendarOptions(),a={title:null,location:null,notes:null,startDate:null,endDate:null};for(var s in r=Object.keys(a),n)-1===r.indexOf(s)?o[s]=n[s]:a[s]=n[s];return t.plugins.calendar.createEventWithOptions(a.title,a.location,a.notes,new Date(a.startDate),new Date(a.endDate),o,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},createEventInteractively:function(n){var i=e.defer(),r={title:null,location:null,notes:null,startDate:null,endDate:null};return r=angular.extend(r,n),t.plugins.calendar.createEventInteractively(r.title,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},createEventInNamedCalendar:function(n){var i=e.defer(),r={title:null,location:null,notes:null,startDate:null,endDate:null,calendarName:null};return r=angular.extend(r,n),t.plugins.calendar.createEventInNamedCalendar(r.title,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),r.calendarName,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},findEvent:function(n){var i=e.defer(),r={title:null,location:null,notes:null,startDate:null,endDate:null};return r=angular.extend(r,n),t.plugins.calendar.findEvent(r.title,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},listEventsInRange:function(n,i){var r=e.defer();return t.plugins.calendar.listEventsInRange(n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},listCalendars:function(){var n=e.defer();return t.plugins.calendar.listCalendars((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},findAllEventsInNamedCalendar:function(n){var i=e.defer();return t.plugins.calendar.findAllEventsInNamedCalendar(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},modifyEvent:function(n){var i=e.defer(),r={title:null,location:null,notes:null,startDate:null,endDate:null,newTitle:null,newLocation:null,newNotes:null,newStartDate:null,newEndDate:null};return r=angular.extend(r,n),t.plugins.calendar.modifyEvent(r.title,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),r.newTitle,r.newLocation,r.newNotes,new Date(r.newStartDate),new Date(r.newEndDate),(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},deleteEvent:function(n){var i=e.defer(),r={newTitle:null,location:null,notes:null,startDate:null,endDate:null};return r=angular.extend(r,n),t.plugins.calendar.deleteEvent(r.newTitle,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise}}}]),angular.module("ngCordova.plugins.camera",[]).factory("$cordovaCamera",["$q",function(e){return{getPicture:function(t){var n=e.defer();return navigator.camera?(navigator.camera.getPicture((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise):(n.resolve(null),n.promise)},cleanup:function(){var t=e.defer();return navigator.camera.cleanup((function(){t.resolve()}),(function(e){t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.capture",[]).factory("$cordovaCapture",["$q",function(e){return{captureAudio:function(t){var n=e.defer();return navigator.device.capture?(navigator.device.capture.captureAudio((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise):(n.resolve(null),n.promise)},captureImage:function(t){var n=e.defer();return navigator.device.capture?(navigator.device.capture.captureImage((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise):(n.resolve(null),n.promise)},captureVideo:function(t){var n=e.defer();return navigator.device.capture?(navigator.device.capture.captureVideo((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise):(n.resolve(null),n.promise)}}}]),angular.module("ngCordova.plugins.cardIO",[]).provider("$cordovaNgCardIO",[function(){var e=["card_type","redacted_card_number","card_number","expiry_month","expiry_year","short_expiry_year","cvv","zip"],t={expiry:!0,cvv:!0,zip:!1,suppressManual:!1,suppressConfirm:!1,hideLogo:!0};this.setCardIOResponseFields=function(t){t&&angular.isArray(t)&&(e=t)},this.setScanerConfig=function(e){e&&angular.isObject(e)&&(t.expiry=e.expiry||!0,t.cvv=e.cvv||!0,t.zip=e.zip||!1,t.suppressManual=e.suppressManual||!1,t.suppressConfirm=e.suppressConfirm||!1,t.hideLogo=e.hideLogo||!0)},this.$get=["$q",function(n){return{scanCard:function(){var i=n.defer();return CardIO.scan(t,(function(t){if(null===t)i.reject(null);else{for(var n={},r=0,o=e.length;o>r;r++){var a=e[r];n[a]="short_expiry_year"===a?String(t.expiry_year).substr(2,2)||"":t[a]||""}i.resolve(n)}}),(function(){i.reject(null)})),i.promise}}}]}]),angular.module("ngCordova.plugins.clipboard",[]).factory("$cordovaClipboard",["$q","$window",function(e,t){return{copy:function(n){var i=e.defer();return t.cordova.plugins.clipboard.copy(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},paste:function(){var n=e.defer();return t.cordova.plugins.clipboard.paste((function(e){n.resolve(e)}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.contacts",[]).factory("$cordovaContacts",["$q",function(e){return{save:function(t){var n=e.defer();return navigator.contacts.create(t).save((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},remove:function(t){var n=e.defer();return navigator.contacts.create(t).remove((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},clone:function(e){return navigator.contacts.create(e).clone(e)},find:function(t){var n=e.defer(),i=t.fields||["id","displayName"];return delete t.fields,0===Object.keys(t).length?navigator.contacts.find(i,(function(e){n.resolve(e)}),(function(e){n.reject(e)})):navigator.contacts.find(i,(function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},pickContact:function(){var t=e.defer();return navigator.contacts.pickContact((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.datePicker",[]).factory("$cordovaDatePicker",["$window","$q",function(e,t){return{show:function(n){var i=t.defer();return n=n||{date:new Date,mode:"date"},e.datePicker.show(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise}}}]),angular.module("ngCordova.plugins.device",[]).factory("$cordovaDevice",[function(){return{getDevice:function(){return device},getCordova:function(){return device.cordova},getModel:function(){return device.model},getName:function(){return device.name},getPlatform:function(){return device.platform},getUUID:function(){return device.uuid},getVersion:function(){return device.version},getManufacturer:function(){return device.manufacturer}}}]),angular.module("ngCordova.plugins.deviceMotion",[]).factory("$cordovaDeviceMotion",["$q",function(e){return{getCurrentAcceleration:function(){var t=e.defer();return angular.isUndefined(navigator.accelerometer)||!angular.isFunction(navigator.accelerometer.getCurrentAcceleration)?(t.reject("Device do not support watchAcceleration"),t.promise):(navigator.accelerometer.getCurrentAcceleration((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise)},watchAcceleration:function(t){var n=e.defer();if(angular.isUndefined(navigator.accelerometer)||!angular.isFunction(navigator.accelerometer.watchAcceleration))return n.reject("Device do not support watchAcceleration"),n.promise;var i=navigator.accelerometer.watchAcceleration((function(e){n.notify(e)}),(function(e){n.reject(e)}),t);return n.promise.cancel=function(){navigator.accelerometer.clearWatch(i)},n.promise.clearWatch=function(e){navigator.accelerometer.clearWatch(e||i)},n.promise.watchID=i,n.promise},clearWatch:function(e){return navigator.accelerometer.clearWatch(e)}}}]),angular.module("ngCordova.plugins.deviceOrientation",[]).factory("$cordovaDeviceOrientation",["$q",function(e){var t={frequency:3e3};return{getCurrentHeading:function(){var t=e.defer();return navigator.compass?(navigator.compass.getCurrentHeading((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise):(t.reject("No compass on Device"),t.promise)},watchHeading:function(n){var i=e.defer();if(!navigator.compass)return i.reject("No compass on Device"),i.promise;var r=angular.extend(t,n),o=navigator.compass.watchHeading((function(e){i.notify(e)}),(function(e){i.reject(e)}),r);return i.promise.cancel=function(){navigator.compass.clearWatch(o)},i.promise.clearWatch=function(e){navigator.compass.clearWatch(e||o)},i.promise.watchID=o,i.promise},clearWatch:function(e){return navigator.compass.clearWatch(e)}}}]),angular.module("ngCordova.plugins.dialogs",[]).factory("$cordovaDialogs",["$q","$window",function(e,t){return{alert:function(n,i,r){var o=e.defer();return t.navigator.notification?navigator.notification.alert(n,(function(){o.resolve()}),i,r):(t.alert(n),o.resolve()),o.promise},confirm:function(n,i,r){var o=e.defer();return t.navigator.notification?navigator.notification.confirm(n,(function(e){o.resolve(e)}),i,r):t.confirm(n)?o.resolve(1):o.resolve(2),o.promise},prompt:function(n,i,r,o){var a=e.defer();if(t.navigator.notification)navigator.notification.prompt(n,(function(e){a.resolve(e)}),i,r,o);else{var s=t.prompt(n,o);null!==s?a.resolve({input1:s,buttonIndex:1}):a.resolve({input1:s,buttonIndex:2})}return a.promise},beep:function(e){return navigator.notification.beep(e)},activityStart:function(t,n){var i=e.defer();return"android"===cordova.platformId?(navigator.notification.activityStart(n,t),i.resolve()):i.reject(t,n),i.promise},activityStop:function(){var t=e.defer();return"android"===cordova.platformId?(navigator.notification.activityStop(),t.resolve()):t.reject(),t.promise},progressStart:function(t,n){var i=e.defer();return"android"===cordova.platformId?(navigator.notification.progressStart(n,t),i.resolve()):i.reject(t,n),i.promise},progressStop:function(){var t=e.defer();return"android"===cordova.platformId?(navigator.notification.progressStop(),t.resolve()):t.reject(),t.promise},progressValue:function(t){var n=e.defer();return"android"===cordova.platformId?(navigator.notification.progressValue(t),n.resolve()):n.reject(t),n.promise}}}]),angular.module("ngCordova.plugins.emailComposer",[]).factory("$cordovaEmailComposer",["$q",function(e){return{isAvailable:function(){var t=e.defer();return cordova.plugins.email.isAvailable((function(e){e?t.resolve():t.reject()})),t.promise},open:function(t){var n=e.defer();return cordova.plugins.email.open(t,(function(){n.reject()})),n.promise},addAlias:function(e,t){cordova.plugins.email.addAlias(e,t)}}}]),angular.module("ngCordova.plugins.facebook",[]).provider("$cordovaFacebook",[function(){this.browserInit=function(e,t){this.appID=e,this.appVersion=t||"v2.0",facebookConnectPlugin.browserInit(this.appID,this.appVersion)},this.$get=["$q",function(e){return{login:function(t){var n=e.defer();return facebookConnectPlugin.login(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},showDialog:function(t){var n=e.defer();return facebookConnectPlugin.showDialog(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},api:function(t,n){var i=e.defer();return facebookConnectPlugin.api(t,n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},getAccessToken:function(){var t=e.defer();return facebookConnectPlugin.getAccessToken((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},getLoginStatus:function(){var t=e.defer();return facebookConnectPlugin.getLoginStatus((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},logout:function(){var t=e.defer();return facebookConnectPlugin.logout((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise}}}]}]),angular.module("ngCordova.plugins.facebookAds",[]).factory("$cordovaFacebookAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.FacebookAds.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.FacebookAds.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.FacebookAds.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.FacebookAds.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.FacebookAds.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.FacebookAds.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.FacebookAds.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.FacebookAds.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.file",[]).constant("$cordovaFileError",{1:"NOT_FOUND_ERR",2:"SECURITY_ERR",3:"ABORT_ERR",4:"NOT_READABLE_ERR",5:"ENCODING_ERR",6:"NO_MODIFICATION_ALLOWED_ERR",7:"INVALID_STATE_ERR",8:"SYNTAX_ERR",9:"INVALID_MODIFICATION_ERR",10:"QUOTA_EXCEEDED_ERR",11:"TYPE_MISMATCH_ERR",12:"PATH_EXISTS_ERR"}).provider("$cordovaFile",[function(){this.$get=["$q","$window","$cordovaFileError",function(e,t,n){return{getFreeDiskSpace:function(){var t=e.defer();return cordova.exec((function(e){t.resolve(e)}),(function(e){t.reject(e)}),"File","getFreeDiskSpace",[]),t.promise},checkDir:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("directory cannot start with /");try{var a=i+r;t.resolveLocalFileSystemURL(a,(function(e){!0===e.isDirectory?o.resolve(e):o.reject({code:13,message:"input is not a directory"})}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},checkFile:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("directory cannot start with /");try{var a=i+r;t.resolveLocalFileSystemURL(a,(function(e){!0===e.isFile?o.resolve(e):o.reject({code:13,message:"input is not a file"})}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},createDir:function(i,r,o){var a=e.defer();/^\//.test(r)&&a.reject("directory cannot start with /");var s={create:!0,exclusive:o=!o};try{t.resolveLocalFileSystemURL(i,(function(e){e.getDirectory(r,s,(function(e){a.resolve(e)}),(function(e){e.message=n[e.code],a.reject(e)}))}),(function(e){e.message=n[e.code],a.reject(e)}))}catch(e){e.message=n[e.code],a.reject(e)}return a.promise},createFile:function(i,r,o){var a=e.defer();/^\//.test(r)&&a.reject("file-name cannot start with /");var s={create:!0,exclusive:o=!o};try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,s,(function(e){a.resolve(e)}),(function(e){e.message=n[e.code],a.reject(e)}))}),(function(e){e.message=n[e.code],a.reject(e)}))}catch(e){e.message=n[e.code],a.reject(e)}return a.promise},removeDir:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getDirectory(r,{create:!1},(function(e){e.remove((function(){o.resolve({success:!0,fileRemoved:e})}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},removeFile:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.remove((function(){o.resolve({success:!0,fileRemoved:e})}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},removeRecursively:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getDirectory(r,{create:!1},(function(e){e.removeRecursively((function(){o.resolve({success:!0,fileRemoved:e})}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},writeFile:function(i,r,o,a){var s=e.defer();/^\//.test(r)&&s.reject("file-name cannot start with /");var l={create:!0,exclusive:a=!a};try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,l,(function(e){e.createWriter((function(e){!0===l.append&&e.seek(e.length),l.truncate&&e.truncate(l.truncate),e.onwriteend=function(e){this.error?s.reject(this.error):s.resolve(e)},e.write(o),s.promise.abort=function(){e.abort()}}))}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}catch(e){e.message=n[e.code],s.reject(e)}return s.promise},writeExistingFile:function(i,r,o){var a=e.defer();/^\//.test(r)&&a.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.createWriter((function(e){e.seek(e.length),e.onwriteend=function(e){this.error?a.reject(this.error):a.resolve(e)},e.write(o),a.promise.abort=function(){e.abort()}}))}),(function(e){e.message=n[e.code],a.reject(e)}))}),(function(e){e.message=n[e.code],a.reject(e)}))}catch(e){e.message=n[e.code],a.reject(e)}return a.promise},readAsText:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.file((function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsText(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},readAsDataURL:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.file((function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsDataURL(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},readAsBinaryString:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.file((function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsBinaryString(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},readAsArrayBuffer:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.file((function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsArrayBuffer(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},moveFile:function(n,i,r,o){var a=e.defer();o=o||i,(/^\//.test(i)||/^\//.test(o))&&a.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(n,(function(e){e.getFile(i,{create:!1},(function(e){t.resolveLocalFileSystemURL(r,(function(t){e.moveTo(t,o,(function(e){a.resolve(e)}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}catch(e){a.reject(e)}return a.promise},moveDir:function(n,i,r,o){var a=e.defer();o=o||i,(/^\//.test(i)||/^\//.test(o))&&a.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(n,(function(e){e.getDirectory(i,{create:!1},(function(e){t.resolveLocalFileSystemURL(r,(function(t){e.moveTo(t,o,(function(e){a.resolve(e)}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}catch(e){a.reject(e)}return a.promise},copyDir:function(i,r,o,a){var s=e.defer();a=a||r,(/^\//.test(r)||/^\//.test(a))&&s.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getDirectory(r,{create:!1,exclusive:!1},(function(e){t.resolveLocalFileSystemURL(o,(function(t){e.copyTo(t,a,(function(e){s.resolve(e)}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}catch(e){e.message=n[e.code],s.reject(e)}return s.promise},copyFile:function(i,r,o,a){var s=e.defer();a=a||r,/^\//.test(r)&&s.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1,exclusive:!1},(function(e){t.resolveLocalFileSystemURL(o,(function(t){e.copyTo(t,a,(function(e){s.resolve(e)}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}catch(e){e.message=n[e.code],s.reject(e)}return s.promise},readFileMetadata:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("directory cannot start with /");try{var a=i+r;t.resolveLocalFileSystemURL(a,(function(e){e.file((function(e){o.resolve(e)}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise}}}]}]),angular.module("ngCordova.plugins.fileOpener2",[]).factory("$cordovaFileOpener2",["$q",function(e){return{open:function(t,n){var i=e.defer();return cordova.plugins.fileOpener2.open(t,n,{error:function(e){i.reject(e)},success:function(){i.resolve()}}),i.promise},uninstall:function(t){var n=e.defer();return cordova.plugins.fileOpener2.uninstall(t,{error:function(e){n.reject(e)},success:function(){n.resolve()}}),n.promise},appIsInstalled:function(t){var n=e.defer();return cordova.plugins.fileOpener2.appIsInstalled(t,{success:function(e){n.resolve(e)}}),n.promise}}}]),angular.module("ngCordova.plugins.fileTransfer",[]).factory("$cordovaFileTransfer",["$q","$timeout",function(e,t){return{download:function(n,i,r,o){var a=e.defer(),s=new FileTransfer,l=r&&!1===r.encodeURI?n:encodeURI(n);return r&&void 0!==r.timeout&&null!==r.timeout&&(t((function(){s.abort()}),r.timeout),r.timeout=null),s.onprogress=function(e){a.notify(e)},a.promise.abort=function(){s.abort()},s.download(l,i,a.resolve,a.reject,o,r),a.promise},upload:function(n,i,r,o){var a=e.defer(),s=new FileTransfer,l=r&&!1===r.encodeURI?n:encodeURI(n);return r&&void 0!==r.timeout&&null!==r.timeout&&(t((function(){s.abort()}),r.timeout),r.timeout=null),s.onprogress=function(e){a.notify(e)},a.promise.abort=function(){s.abort()},s.upload(i,l,a.resolve,a.reject,r,o),a.promise}}}]),angular.module("ngCordova.plugins.flashlight",[]).factory("$cordovaFlashlight",["$q","$window",function(e,t){return{available:function(){var n=e.defer();return t.plugins.flashlight.available((function(e){n.resolve(e)})),n.promise},switchOn:function(){var n=e.defer();return t.plugins.flashlight.switchOn((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},switchOff:function(){var n=e.defer();return t.plugins.flashlight.switchOff((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},toggle:function(){var n=e.defer();return t.plugins.flashlight.toggle((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.flurryAds",[]).factory("$cordovaFlurryAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.FlurryAds.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.FlurryAds.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.FlurryAds.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.FlurryAds.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.FlurryAds.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.FlurryAds.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.FlurryAds.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.FlurryAds.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.ga",[]).factory("$cordovaGA",["$q","$window",function(e,t){return{init:function(n,i){var r=e.defer();return i=i>=0?i:10,t.plugins.gaPlugin.init((function(e){r.resolve(e)}),(function(e){r.reject(e)}),n,i),r.promise},trackEvent:function(n,i,r,o,a,s){var l=e.defer();return t.plugins.gaPlugin.trackEvent((function(e){l.resolve(e)}),(function(e){l.reject(e)}),r,o,a,s),l.promise},trackPage:function(n,i,r){var o=e.defer();return t.plugins.gaPlugin.trackPage((function(e){o.resolve(e)}),(function(e){o.reject(e)}),r),o.promise},setVariable:function(n,i,r,o){var a=e.defer();return t.plugins.gaPlugin.setVariable((function(e){a.resolve(e)}),(function(e){a.reject(e)}),r,o),a.promise},exit:function(){var n=e.defer();return t.plugins.gaPlugin.exit((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.geolocation",[]).factory("$cordovaGeolocation",["$q",function(e){return{getCurrentPosition:function(t){var n=e.defer();return navigator.geolocation.getCurrentPosition((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},watchPosition:function(t){var n=e.defer(),i=navigator.geolocation.watchPosition((function(e){n.notify(e)}),(function(e){n.reject(e)}),t);return n.promise.cancel=function(){navigator.geolocation.clearWatch(i)},n.promise.clearWatch=function(e){navigator.geolocation.clearWatch(e||i)},n.promise.watchID=i,n.promise},clearWatch:function(e){return navigator.geolocation.clearWatch(e)}}}]),angular.module("ngCordova.plugins.globalization",[]).factory("$cordovaGlobalization",["$q",function(e){return{getPreferredLanguage:function(){var t=e.defer();return navigator.globalization.getPreferredLanguage((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},getLocaleName:function(){var t=e.defer();return navigator.globalization.getLocaleName((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},getFirstDayOfWeek:function(){var t=e.defer();return navigator.globalization.getFirstDayOfWeek((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},dateToString:function(t,n){var i=e.defer();return navigator.globalization.dateToString(t,(function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise},stringToDate:function(t,n){var i=e.defer();return navigator.globalization.stringToDate(t,(function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise},getDatePattern:function(t){var n=e.defer();return navigator.globalization.getDatePattern((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},getDateNames:function(t){var n=e.defer();return navigator.globalization.getDateNames((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},isDayLightSavingsTime:function(t){var n=e.defer();return navigator.globalization.isDayLightSavingsTime(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},numberToString:function(t,n){var i=e.defer();return navigator.globalization.numberToString(t,(function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise},stringToNumber:function(t,n){var i=e.defer();return navigator.globalization.stringToNumber(t,(function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise},getNumberPattern:function(t){var n=e.defer();return navigator.globalization.getNumberPattern((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},getCurrencyPattern:function(t){var n=e.defer();return navigator.globalization.getCurrencyPattern(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.googleAds",[]).factory("$cordovaGoogleAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.AdMob.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.AdMob.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.AdMob.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.AdMob.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.AdMob.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.AdMob.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.AdMob.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.AdMob.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.googleAnalytics",[]).factory("$cordovaGoogleAnalytics",["$q","$window",function(e,t){return{startTrackerWithId:function(n){var i=e.defer();return t.analytics.startTrackerWithId(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},setUserId:function(n){var i=e.defer();return t.analytics.setUserId(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},debugMode:function(){var n=e.defer();return t.analytics.debugMode((function(e){n.resolve(e)}),(function(){n.reject()})),n.promise},trackView:function(n){var i=e.defer();return t.analytics.trackView(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},addCustomDimension:function(n,i){var r=e.defer(),o=parseInt(n,10);return isNaN(o)&&r.reject('Parameter "key" must be an integer.'),t.analytics.addCustomDimension(o,i,(function(){r.resolve()}),(function(e){r.reject(e)})),r.promise},trackEvent:function(n,i,r,o){var a=e.defer();return t.analytics.trackEvent(n,i,r,o,(function(e){a.resolve(e)}),(function(e){a.reject(e)})),a.promise},trackException:function(n,i){var r=e.defer();return t.analytics.trackException(n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},trackTiming:function(n,i,r,o){var a=e.defer();return t.analytics.trackTiming(n,i,r,o,(function(e){a.resolve(e)}),(function(e){a.reject(e)})),a.promise},addTransaction:function(n,i,r,o,a,s){var l=e.defer();return t.analytics.addTransaction(n,i,r,o,a,s,(function(e){l.resolve(e)}),(function(e){l.reject(e)})),l.promise},addTransactionItem:function(n,i,r,o,a,s,l){var u=e.defer();return t.analytics.addTransactionItem(n,i,r,o,a,s,l,(function(e){u.resolve(e)}),(function(e){u.reject(e)})),u.promise}}}]),angular.module("ngCordova.plugins.googleMap",[]).factory("$cordovaGoogleMap",["$q","$window",function(e,t){var n=null;return{getMap:function(i){var r=e.defer();if(t.plugin.google.maps){var o=document.getElementById("map_canvas");(n=t.plugin.google.maps.Map.getMap(i)).setDiv(o),r.resolve(n)}else r.reject(null);return r.promise},isMapLoaded:function(){return!!n},addMarker:function(t){var i=e.defer();return n.addMarker(t,(function(e){i.resolve(e)})),i.promise},getMapTypeIds:function(){return t.plugin.google.maps.mapTypeId},setVisible:function(t){var i=e.defer();return n.setVisible(t),i.promise},cleanup:function(){n=null}}}]),angular.module("ngCordova.plugins.googlePlayGame",[]).factory("$cordovaGooglePlayGame",["$q",function(e){return{auth:function(){var t=e.defer();return googleplaygame.auth((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise},signout:function(){var t=e.defer();return googleplaygame.signout((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise},isSignedIn:function(){var t=e.defer();return googleplaygame.isSignedIn((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise},showPlayer:function(){var t=e.defer();return googleplaygame.showPlayer((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise},submitScore:function(t){var n=e.defer();return googleplaygame.submitScore(t,(function(e){return n.resolve(e)}),(function(e){return n.reject(e)})),n.promise},showAllLeaderboards:function(){var t=e.defer();return googleplaygame.showAllLeaderboards((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise},showLeaderboard:function(t){var n=e.defer();return googleplaygame.showLeaderboard(t,(function(e){return n.resolve(e)}),(function(e){return n.reject(e)})),n.promise},unlockAchievement:function(t){var n=e.defer();return googleplaygame.unlockAchievement(t,(function(e){return n.resolve(e)}),(function(e){return n.reject(e)})),n.promise},incrementAchievement:function(t){var n=e.defer();return googleplaygame.incrementAchievement(t,(function(e){return n.resolve(e)}),(function(e){return n.reject(e)})),n.promise},showAchievements:function(){var t=e.defer();return googleplaygame.showAchievements((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.googlePlus",[]).factory("$cordovaGooglePlus",["$q","$window",function(e,t){return{login:function(n){var i=e.defer();return void 0===n&&(n={}),t.plugins.googleplus.login({iOSApiKey:n},(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},silentLogin:function(n){var i=e.defer();return void 0===n&&(n={}),t.plugins.googleplus.trySilentLogin({iOSApiKey:n},(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},logout:function(){var n=e.defer();t.plugins.googleplus.logout((function(e){n.resolve(e)}))},disconnect:function(){var n=e.defer();t.plugins.googleplus.disconnect((function(e){n.resolve(e)}))},isAvailable:function(){var n=e.defer();return t.plugins.googleplus.isAvailable((function(e){e?n.resolve(e):n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.healthKit",[]).factory("$cordovaHealthKit",["$q","$window",function(e,t){return{isAvailable:function(){var n=e.defer();return t.plugins.healthkit.available((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},checkAuthStatus:function(n){var i=e.defer();return n=n||"HKQuantityTypeIdentifierHeight",t.plugins.healthkit.checkAuthStatus({type:n},(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},requestAuthorization:function(n,i){var r=e.defer();return n=n||["HKCharacteristicTypeIdentifierDateOfBirth","HKQuantityTypeIdentifierActiveEnergyBurned","HKQuantityTypeIdentifierHeight"],i=i||["HKQuantityTypeIdentifierActiveEnergyBurned","HKQuantityTypeIdentifierHeight","HKQuantityTypeIdentifierDistanceCycling"],t.plugins.healthkit.requestAuthorization({readTypes:n,writeTypes:i},(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},readDateOfBirth:function(){var n=e.defer();return t.plugins.healthkit.readDateOfBirth((function(e){n.resolve(e)}),(function(e){n.resolve(e)})),n.promise},readGender:function(){var n=e.defer();return t.plugins.healthkit.readGender((function(e){n.resolve(e)}),(function(e){n.resolve(e)})),n.promise},saveWeight:function(n,i,r){var o=e.defer();return t.plugins.healthkit.saveWeight({unit:i||"lb",amount:n,date:r||new Date},(function(e){o.resolve(e)}),(function(e){o.resolve(e)})),o.promise},readWeight:function(n){var i=e.defer();return t.plugins.healthkit.readWeight({unit:n||"lb"},(function(e){i.resolve(e)}),(function(e){i.resolve(e)})),i.promise},saveHeight:function(n,i,r){var o=e.defer();return t.plugins.healthkit.saveHeight({unit:i||"in",amount:n,date:r||new Date},(function(e){o.resolve(e)}),(function(e){o.resolve(e)})),o.promise},readHeight:function(n){var i=e.defer();return t.plugins.healthkit.readHeight({unit:n||"in"},(function(e){i.resolve(e)}),(function(e){i.resolve(e)})),i.promise},findWorkouts:function(){var n=e.defer();return t.plugins.healthkit.findWorkouts({},(function(e){n.resolve(e)}),(function(e){n.resolve(e)})),n.promise},saveWorkout:function(n){var i=e.defer();return t.plugins.healthkit.saveWorkout(n,(function(e){i.resolve(e)}),(function(e){i.resolve(e)})),i.promise},querySampleType:function(n){var i=e.defer();return t.plugins.healthkit.querySampleType(n,(function(e){i.resolve(e)}),(function(e){i.resolve(e)})),i.promise}}}]),angular.module("ngCordova.plugins.httpd",[]).factory("$cordovaHttpd",["$q",function(e){return{startServer:function(t){var n=e.defer();return cordova.plugins.CorHttpd.startServer(t,(function(){n.resolve()}),(function(){n.reject()})),n.promise},stopServer:function(){var t=e.defer();return cordova.plugins.CorHttpd.stopServer((function(){t.resolve()}),(function(){t.reject()})),t.promise},getURL:function(){var t=e.defer();return cordova.plugins.CorHttpd.getURL((function(e){t.resolve(e)}),(function(){t.reject()})),t.promise},getLocalPath:function(){var t=e.defer();return cordova.plugins.CorHttpd.getLocalPath((function(e){t.resolve(e)}),(function(){t.reject()})),t.promise}}}]),angular.module("ngCordova.plugins.iAd",[]).factory("$cordovaiAd",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.iAd.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.iAd.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.iAd.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.iAd.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.iAd.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.iAd.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.iAd.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.iAd.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.imagePicker",[]).factory("$cordovaImagePicker",["$q","$window",function(e,t){return{getPictures:function(n){var i=e.defer();return t.imagePicker.getPictures((function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise}}}]),angular.module("ngCordova.plugins.inAppBrowser",[]).provider("$cordovaInAppBrowser",[function(){var e,t=this.defaultOptions={};this.setDefaultOptions=function(e){t=angular.extend(t,e)},this.$get=["$rootScope","$q","$window","$timeout",function(n,i,r,o){return{open:function(a,s,l){var u=i.defer();if(l&&!angular.isObject(l))return u.reject("options must be an object"),u.promise;var c=angular.extend({},t,l),d=[];angular.forEach(c,(function(e,t){d.push(t+"="+e)}));var h=d.join();return(e=r.open(a,s,h)).addEventListener("loadstart",(function(e){o((function(){n.$broadcast("$cordovaInAppBrowser:loadstart",e)}))}),!1),e.addEventListener("loadstop",(function(e){u.resolve(e),o((function(){n.$broadcast("$cordovaInAppBrowser:loadstop",e)}))}),!1),e.addEventListener("loaderror",(function(e){u.reject(e),o((function(){n.$broadcast("$cordovaInAppBrowser:loaderror",e)}))}),!1),e.addEventListener("exit",(function(e){o((function(){n.$broadcast("$cordovaInAppBrowser:exit",e)}))}),!1),u.promise},close:function(){e.close(),e=null},show:function(){e.show()},executeScript:function(t){var n=i.defer();return e.executeScript(t,(function(e){n.resolve(e)})),n.promise},insertCSS:function(t){var n=i.defer();return e.insertCSS(t,(function(e){n.resolve(e)})),n.promise}}}]}]),angular.module("ngCordova.plugins.insomnia",[]).factory("$cordovaInsomnia",["$window",function(e){return{keepAwake:function(){return e.plugins.insomnia.keepAwake()},allowSleepAgain:function(){return e.plugins.insomnia.allowSleepAgain()}}}]),angular.module("ngCordova.plugins.instagram",[]).factory("$cordovaInstagram",["$q",function(e){return{share:function(t){var n=e.defer();return window.Instagram?(Instagram.share(t.image,t.caption,(function(e){e?n.reject(e):n.resolve(!0)})),n.promise):(console.error("Tried to call Instagram.share but the Instagram plugin isn't installed!"),n.resolve(null),n.promise)},isInstalled:function(){var t=e.defer();return window.Instagram?(Instagram.isInstalled((function(e,n){e?t.reject(e):t.resolve(n)})),t.promise):(console.error("Tried to call Instagram.isInstalled but the Instagram plugin isn't installed!"),t.resolve(null),t.promise)}}}]),angular.module("ngCordova.plugins.keyboard",[]).factory("$cordovaKeyboard",["$rootScope",function(e){var t=function(){e.$evalAsync((function(){e.$broadcast("$cordovaKeyboard:show")}))},n=function(){e.$evalAsync((function(){e.$broadcast("$cordovaKeyboard:hide")}))};return document.addEventListener("deviceready",(function(){cordova.plugins.Keyboard&&(window.addEventListener("native.keyboardshow",t,!1),window.addEventListener("native.keyboardhide",n,!1))})),{hideAccessoryBar:function(e){return cordova.plugins.Keyboard.hideKeyboardAccessoryBar(e)},close:function(){return cordova.plugins.Keyboard.close()},show:function(){return cordova.plugins.Keyboard.show()},disableScroll:function(e){return cordova.plugins.Keyboard.disableScroll(e)},isVisible:function(){return cordova.plugins.Keyboard.isVisible},clearShowWatch:function(){document.removeEventListener("native.keyboardshow",t),e.$$listeners["$cordovaKeyboard:show"]=[]},clearHideWatch:function(){document.removeEventListener("native.keyboardhide",n),e.$$listeners["$cordovaKeyboard:hide"]=[]}}}]),angular.module("ngCordova.plugins.keychain",[]).factory("$cordovaKeychain",["$q",function(e){return{getForKey:function(t,n){var i=e.defer();return(new Keychain).getForKey(i.resolve,i.reject,t,n),i.promise},setForKey:function(t,n,i){var r=e.defer();return(new Keychain).setForKey(r.resolve,r.reject,t,n,i),r.promise},removeForKey:function(t,n){var i=e.defer();return(new Keychain).removeForKey(i.resolve,i.reject,t,n),i.promise}}}]),angular.module("ngCordova.plugins.launchNavigator",[]).factory("$cordovaLaunchNavigator",["$q",function(e){return{navigate:function(t,n,i){var r=e.defer();return launchnavigator.navigate(t,n,(function(){r.resolve()}),(function(e){r.reject(e)}),i),r.promise}}}]),angular.module("ngCordova.plugins.localNotification",[]).factory("$cordovaLocalNotification",["$q","$window","$rootScope","$timeout",function(e,t,n,i){return document.addEventListener("deviceready",(function(){t.cordova&&t.cordova.plugins&&t.cordova.plugins.notification&&t.cordova.plugins.notification.local&&(t.cordova.plugins.notification.local.on("schedule",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:schedule",e,t)}))})),t.cordova.plugins.notification.local.on("trigger",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:trigger",e,t)}))})),t.cordova.plugins.notification.local.on("update",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:update",e,t)}))})),t.cordova.plugins.notification.local.on("clear",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:clear",e,t)}))})),t.cordova.plugins.notification.local.on("clearall",(function(e){i((function(){n.$broadcast("$cordovaLocalNotification:clearall",e)}))})),t.cordova.plugins.notification.local.on("cancel",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:cancel",e,t)}))})),t.cordova.plugins.notification.local.on("cancelall",(function(e){i((function(){n.$broadcast("$cordovaLocalNotification:cancelall",e)}))})),t.cordova.plugins.notification.local.on("click",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:click",e,t)}))})))}),!1),{schedule:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.schedule(n,(function(e){r.resolve(e)}),i),r.promise},add:function(n,i){console.warn('Deprecated: use "schedule" instead.');var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.schedule(n,(function(e){r.resolve(e)}),i),r.promise},update:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.update(n,(function(e){r.resolve(e)}),i),r.promise},clear:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.clear(n,(function(e){r.resolve(e)}),i),r.promise},clearAll:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.clearAll((function(e){i.resolve(e)}),n),i.promise},cancel:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.cancel(n,(function(e){r.resolve(e)}),i),r.promise},cancelAll:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.cancelAll((function(e){i.resolve(e)}),n),i.promise},isPresent:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.isPresent(n,(function(e){r.resolve(e)}),i),r.promise},isScheduled:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.isScheduled(n,(function(e){r.resolve(e)}),i),r.promise},isTriggered:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.isTriggered(n,(function(e){r.resolve(e)}),i),r.promise},hasPermission:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.hasPermission((function(e){e?i.resolve(e):i.reject(e)}),n),i.promise},registerPermission:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.registerPermission((function(e){e?i.resolve(e):i.reject(e)}),n),i.promise},promptForPermission:function(n){console.warn('Deprecated: use "registerPermission" instead.');var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.registerPermission((function(e){e?i.resolve(e):i.reject(e)}),n),i.promise},getAllIds:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAllIds((function(e){i.resolve(e)}),n),i.promise},getIds:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getIds((function(e){i.resolve(e)}),n),i.promise},getScheduledIds:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getScheduledIds((function(e){i.resolve(e)}),n),i.promise},getTriggeredIds:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getTriggeredIds((function(e){i.resolve(e)}),n),i.promise},get:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.get(n,(function(e){r.resolve(e)}),i),r.promise},getAll:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAll((function(e){i.resolve(e)}),n),i.promise},getScheduled:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.getScheduled(n,(function(e){r.resolve(e)}),i),r.promise},getAllScheduled:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAllScheduled((function(e){i.resolve(e)}),n),i.promise},getTriggered:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.getTriggered(n,(function(e){r.resolve(e)}),i),r.promise},getAllTriggered:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAllTriggered((function(e){i.resolve(e)}),n),i.promise},getDefaults:function(){return t.cordova.plugins.notification.local.getDefaults()},setDefaults:function(e){t.cordova.plugins.notification.local.setDefaults(e)}}}]),angular.module("ngCordova.plugins.mMediaAds",[]).factory("$cordovaMMediaAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.mMedia.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.mMedia.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.mMedia.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.mMedia.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.mMedia.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.mMedia.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.mMedia.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.mMedia.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.media",[]).service("NewMedia",["$q","$interval",function(e,t){function n(e){angular.isDefined(u)||(u=t((function(){0>h&&(h=e.getDuration(),a&&h>0&&a.notify({duration:h})),e.getCurrentPosition((function(e){e>-1&&(d=e)}),(function(e){alert("Error getting pos="+e)})),a&&a.notify({position:d})}),1e3))}function i(){angular.isDefined(u)&&(t.cancel(u),u=void 0)}function r(){d=-1,h=-1}function o(e){this.media=new Media(e,(function(e){i(),r(),a.resolve(e)}),(function(e){i(),r(),a.reject(e)}),(function(e){c=e,a.notify({status:c})}))}var a,s,l,u,c=null,d=-1,h=-1;return o.prototype.play=function(t){return a=e.defer(),"object"!=typeof t&&(t={}),this.media.play(t),n(this.media),a.promise},o.prototype.pause=function(){i(),this.media.pause()},o.prototype.stop=function(){this.media.stop()},o.prototype.release=function(){this.media.release(),this.media=void 0},o.prototype.seekTo=function(e){this.media.seekTo(e)},o.prototype.setVolume=function(e){this.media.setVolume(e)},o.prototype.startRecord=function(){this.media.startRecord()},o.prototype.stopRecord=function(){this.media.stopRecord()},o.prototype.currentTime=function(){return s=e.defer(),this.media.getCurrentPosition((function(e){s.resolve(e)})),s.promise},o.prototype.getDuration=function(){return l=e.defer(),this.media.getDuration((function(e){l.resolve(e)})),l.promise},o}]).factory("$cordovaMedia",["NewMedia",function(e){return{newMedia:function(t){return new e(t)}}}]),angular.module("ngCordova.plugins.mobfoxAds",[]).factory("$cordovaMobFoxAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.MobFox.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.MobFox.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.MobFox.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.MobFox.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.MobFox.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.MobFox.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.MobFox.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.MobFox.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins",["ngCordova.plugins.3dtouch","ngCordova.plugins.actionSheet","ngCordova.plugins.adMob","ngCordova.plugins.appAvailability","ngCordova.plugins.appRate","ngCordova.plugins.appVersion","ngCordova.plugins.backgroundGeolocation","ngCordova.plugins.badge","ngCordova.plugins.barcodeScanner","ngCordova.plugins.batteryStatus","ngCordova.plugins.beacon","ngCordova.plugins.ble","ngCordova.plugins.bluetoothSerial","ngCordova.plugins.brightness","ngCordova.plugins.calendar","ngCordova.plugins.camera","ngCordova.plugins.capture","ngCordova.plugins.clipboard","ngCordova.plugins.contacts","ngCordova.plugins.datePicker","ngCordova.plugins.device","ngCordova.plugins.deviceMotion","ngCordova.plugins.deviceOrientation","ngCordova.plugins.dialogs","ngCordova.plugins.emailComposer","ngCordova.plugins.facebook","ngCordova.plugins.facebookAds","ngCordova.plugins.file","ngCordova.plugins.fileTransfer","ngCordova.plugins.fileOpener2","ngCordova.plugins.flashlight","ngCordova.plugins.flurryAds","ngCordova.plugins.ga","ngCordova.plugins.geolocation","ngCordova.plugins.globalization","ngCordova.plugins.googleAds","ngCordova.plugins.googleAnalytics","ngCordova.plugins.googleMap","ngCordova.plugins.googlePlayGame","ngCordova.plugins.googlePlus","ngCordova.plugins.healthKit","ngCordova.plugins.httpd","ngCordova.plugins.iAd","ngCordova.plugins.imagePicker","ngCordova.plugins.inAppBrowser","ngCordova.plugins.instagram","ngCordova.plugins.keyboard","ngCordova.plugins.keychain","ngCordova.plugins.launchNavigator","ngCordova.plugins.localNotification","ngCordova.plugins.media","ngCordova.plugins.mMediaAds","ngCordova.plugins.mobfoxAds","ngCordova.plugins.mopubAds","ngCordova.plugins.nativeAudio","ngCordova.plugins.network","ngCordova.plugins.pinDialog","ngCordova.plugins.preferences","ngCordova.plugins.printer","ngCordova.plugins.progressIndicator","ngCordova.plugins.push","ngCordova.plugins.push_v5","ngCordova.plugins.sms","ngCordova.plugins.socialSharing","ngCordova.plugins.spinnerDialog","ngCordova.plugins.splashscreen","ngCordova.plugins.sqlite","ngCordova.plugins.statusbar","ngCordova.plugins.toast","ngCordova.plugins.touchid","ngCordova.plugins.vibration","ngCordova.plugins.videoCapturePlus","ngCordova.plugins.zip","ngCordova.plugins.insomnia"]),angular.module("ngCordova.plugins.mopubAds",[]).factory("$cordovaMoPubAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.MoPub.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.MoPub.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.MoPub.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.MoPub.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.MoPub.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.MoPub.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.MoPub.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.MoPub.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.nativeAudio",[]).factory("$cordovaNativeAudio",["$q","$window",function(e,t){return{preloadSimple:function(n,i){var r=e.defer();return t.plugins.NativeAudio.preloadSimple(n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},preloadComplex:function(n,i,r,o,a){var s=e.defer();return t.plugins.NativeAudio.preloadComplex(n,i,r,o,a,(function(e){s.resolve(e)}),(function(e){s.reject(e)})),s.promise},play:function(n,i){var r=e.defer();return t.plugins.NativeAudio.play(n,(function(e){r.resolve(e)}),(function(e){r.reject(e)}),i),r.promise},stop:function(n){var i=e.defer();return t.plugins.NativeAudio.stop(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},loop:function(n){var i=e.defer();return t.plugins.NativeAudio.loop(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},unload:function(n){var i=e.defer();return t.plugins.NativeAudio.unload(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},setVolumeForComplexAsset:function(n,i){var r=e.defer();return t.plugins.NativeAudio.setVolumeForComplexAsset(n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise}}}]),angular.module("ngCordova.plugins.network",[]).factory("$cordovaNetwork",["$rootScope","$timeout",function(e,t){var n=function(){var n=navigator.connection.type;t((function(){e.$broadcast("$cordovaNetwork:offline",n)}))},i=function(){var n=navigator.connection.type;t((function(){e.$broadcast("$cordovaNetwork:online",n)}))};return document.addEventListener("deviceready",(function(){navigator.connection&&(document.addEventListener("offline",n,!1),document.addEventListener("online",i,!1))})),{getNetwork:function(){return navigator.connection.type},isOnline:function(){var e=navigator.connection.type;return e!==Connection.UNKNOWN&&e!==Connection.NONE},isOffline:function(){var e=navigator.connection.type;return e===Connection.UNKNOWN||e===Connection.NONE},clearOfflineWatch:function(){document.removeEventListener("offline",n),e.$$listeners["$cordovaNetwork:offline"]=[]},clearOnlineWatch:function(){document.removeEventListener("online",i),e.$$listeners["$cordovaNetwork:online"]=[]}}}]).run(["$injector",function(e){e.get("$cordovaNetwork")}]),angular.module("ngCordova.plugins.pinDialog",[]).factory("$cordovaPinDialog",["$q","$window",function(e,t){return{prompt:function(n,i,r){var o=e.defer();return t.plugins.pinDialog.prompt(n,(function(e){o.resolve(e)}),i,r),o.promise}}}]),angular.module("ngCordova.plugins.preferences",[]).factory("$cordovaPreferences",["$window","$q",function(e,t){return{pluginNotEnabledMessage:"Plugin not enabled",decoratePromise:function(e){e.success=function(t){return e.then(t),e},e.error=function(t){return e.then(null,t),e}},store:function(n,i,r){function o(e){s.resolve(e)}function a(e){s.reject(new Error(e))}var s=t.defer(),l=s.promise;return e.plugins?(3===arguments.length?e.plugins.appPreferences.store(r,n,i):e.plugins.appPreferences.store(n,i)).then(o,a):s.reject(new Error(this.pluginNotEnabledMessage)),this.decoratePromise(l),l},fetch:function(n,i){function r(e){a.resolve(e)}function o(e){a.reject(new Error(e))}var a=t.defer(),s=a.promise;return e.plugins?(2===arguments.length?e.plugins.appPreferences.fetch(i,n):e.plugins.appPreferences.fetch(n)).then(r,o):a.reject(new Error(this.pluginNotEnabledMessage)),this.decoratePromise(s),s},remove:function(n,i){function r(e){a.resolve(e)}function o(e){a.reject(new Error(e))}var a=t.defer(),s=a.promise;return e.plugins?(2===arguments.length?e.plugins.appPreferences.remove(i,n):e.plugins.appPreferences.remove(n)).then(r,o):a.reject(new Error(this.pluginNotEnabledMessage)),this.decoratePromise(s),s},show:function(){var n=t.defer(),i=n.promise;return e.plugins?e.plugins.appPreferences.show().then((function(e){n.resolve(e)}),(function(e){n.reject(new Error(e))})):n.reject(new Error(this.pluginNotEnabledMessage)),this.decoratePromise(i),i}}}]),angular.module("ngCordova.plugins.printer",[]).factory("$cordovaPrinter",["$q","$window",function(e,t){return{isAvailable:function(){var n=e.defer();return t.plugin.printer.isAvailable((function(e){n.resolve(e)})),n.promise},print:function(n,i){var r=e.defer();return t.plugin.printer.print(n,i,(function(){r.resolve()})),r.promise}}}]),angular.module("ngCordova.plugins.progressIndicator",[]).factory("$cordovaProgress",[function(){return{show:function(e){var t=e||"Please wait...";return ProgressIndicator.show(t)},showSimple:function(e){var t=e||!1;return ProgressIndicator.showSimple(t)},showSimpleWithLabel:function(e,t){var n=e||!1,i=t||"Loading...";return ProgressIndicator.showSimpleWithLabel(n,i)},showSimpleWithLabelDetail:function(e,t,n){var i=e||!1,r=t||"Loading...",o=n||"Please wait";return ProgressIndicator.showSimpleWithLabelDetail(i,r,o)},showDeterminate:function(e,t){var n=e||!1,i=t||5e4;return ProgressIndicator.showDeterminate(n,i)},showDeterminateWithLabel:function(e,t,n){var i=e||!1,r=t||5e4,o=n||"Loading...";return ProgressIndicator.showDeterminateWithLabel(i,r,o)},showAnnular:function(e,t){var n=e||!1,i=t||5e4;return ProgressIndicator.showAnnular(n,i)},showAnnularWithLabel:function(e,t,n){var i=e||!1,r=t||5e4,o=n||"Loading...";return ProgressIndicator.showAnnularWithLabel(i,r,o)},showBar:function(e,t){var n=e||!1,i=t||5e4;return ProgressIndicator.showBar(n,i)},showBarWithLabel:function(e,t,n){var i=e||!1,r=t||5e4,o=n||"Loading...";return ProgressIndicator.showBarWithLabel(i,r,o)},showSuccess:function(e,t){var n=e||!1,i=t||"Success";return ProgressIndicator.showSuccess(n,i)},showText:function(e,t,n){var i=e||!1,r=t||"Warning",o=n||"center";return ProgressIndicator.showText(i,r,o)},hide:function(){return ProgressIndicator.hide()}}}]),angular.module("ngCordova.plugins.push",[]).factory("$cordovaPush",["$q","$window","$rootScope","$timeout",function(e,t,n,i){return{onNotification:function(e){i((function(){n.$broadcast("$cordovaPush:notificationReceived",e)}))},register:function(n){var i,r=e.defer();return void 0!==n&&void 0===n.ecb&&(i=null===document.querySelector("[ng-app]")?"document.body":"document.querySelector('[ng-app]')",n.ecb="angular.element("+i+").injector().get('$cordovaPush').onNotification"),t.plugins.pushNotification.register((function(e){r.resolve(e)}),(function(e){r.reject(e)}),n),r.promise},unregister:function(n){var i=e.defer();return t.plugins.pushNotification.unregister((function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise},setBadgeNumber:function(n){var i=e.defer();return t.plugins.pushNotification.setApplicationIconBadgeNumber((function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise}}}]),angular.module("ngCordova.plugins.push_v5",[]).factory("$cordovaPushV5",["$q","$rootScope","$timeout",function(e,t,n){var i;return{initialize:function(t){var n=e.defer();return i=PushNotification.init(t),n.resolve(i),n.promise},onNotification:function(){n((function(){i.on("notification",(function(e){t.$emit("$cordovaPushV5:notificationReceived",e)}))}))},onError:function(){n((function(){i.on("error",(function(e){t.$emit("$cordovaPushV5:errorOccurred",e)}))}))},register:function(){var t=e.defer();return void 0===i?t.reject(new Error("init must be called before any other operation")):i.on("registration",(function(e){t.resolve(e.registrationId)})),t.promise},unregister:function(){var t=e.defer();return void 0===i?t.reject(new Error("init must be called before any other operation")):i.unregister((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},getBadgeNumber:function(){var t=e.defer();return void 0===i?t.reject(new Error("init must be called before any other operation")):i.getApplicationIconBadgeNumber((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},setBadgeNumber:function(t){var n=e.defer();return void 0===i?n.reject(new Error("init must be called before any other operation")):i.setApplicationIconBadgeNumber((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},finish:function(){var t=e.defer();return void 0===i?t.reject(new Error("init must be called before any other operation")):i.finish((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.recentsControl",[]).factory("$cordovaRecents",(function(){return{setColor:function(e){return RecentsControl.setColor(e)},setDescription:function(e){return RecentsControl.setDescription(e)},setOptions:function(e,t){return RecentsControl.setOptions(e,t)}}})),angular.module("ngCordova.plugins.screenshot",[]).factory("$cordovaScreenshot",["$q",function(e){return{captureToFile:function(t){var n=t||{},i=n.extension||"jpg",r=n.quality||"100",o=e.defer();return navigator.screenshot?(navigator.screenshot.save((function(e,t){e?o.reject(e):o.resolve(t.filePath)}),i,r,n.filename),o.promise):(o.resolve(null),o.promise)},captureToUri:function(t){var n=t||{},i=n.extension||"jpg",r=n.quality||"100",o=e.defer();return navigator.screenshot?(navigator.screenshot.URI((function(e,t){e?o.reject(e):o.resolve(t.URI)}),i,r,n.filename),o.promise):(o.resolve(null),o.promise)}}}]),angular.module("ngCordova.plugins.serial",[]).factory("$cordovaSerial",["$q",function(e){return{requestPermission:function(t){var n=e.defer();return serial.requestPermission(t,(function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},open:function(t){var n=e.defer();return serial.open(t,(function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},write:function(t){var n=e.defer();return serial.write(t,(function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},writeHex:function(t){var n=e.defer();return serial.writeHex(t,(function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},read:function(){var t=e.defer();return serial.read((function(e){var n=new Uint8Array(e);t.resolve(n)}),(function(e){t.reject(e)})),t.promise},registerReadCallback:function(e,t){serial.registerReadCallback((function(t){var n=new Uint8Array(t);e(n)}),t)},close:function(){var t=e.defer();return serial.close((function(){t.resolve()}),(function(e){t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.sms",[]).factory("$cordovaSms",["$q",function(e){return{send:function(t,n,i){var r=e.defer();return sms.send(t,n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise}}}]),angular.module("ngCordova.plugins.socialSharing",[]).factory("$cordovaSocialSharing",["$q","$window",function(e,t){return{share:function(n,i,r,o){var a=e.defer();return i=i||null,r=r||null,o=o||null,t.plugins.socialsharing.share(n,i,r,o,(function(){a.resolve(!0)}),(function(){a.reject(!1)})),a.promise},shareWithOptions:function(n){var i=e.defer();return t.plugins.socialsharing.shareWithOptions(n,(function(){i.resolve(!0)}),(function(){i.reject(!1)})),i.promise},shareViaTwitter:function(n,i,r){var o=e.defer();return i=i||null,r=r||null,t.plugins.socialsharing.shareViaTwitter(n,i,r,(function(){o.resolve(!0)}),(function(){o.reject(!1)})),o.promise},shareViaWhatsApp:function(n,i,r){var o=e.defer();return i=i||null,r=r||null,t.plugins.socialsharing.shareViaWhatsApp(n,i,r,(function(){o.resolve(!0)}),(function(){o.reject(!1)})),o.promise},shareViaFacebook:function(n,i,r){var o=e.defer();return n=n||null,i=i||null,r=r||null,t.plugins.socialsharing.shareViaFacebook(n,i,r,(function(){o.resolve(!0)}),(function(){o.reject(!1)})),o.promise},shareViaFacebookWithPasteMessageHint:function(n,i,r,o){var a=e.defer();return i=i||null,r=r||null,t.plugins.socialsharing.shareViaFacebookWithPasteMessageHint(n,i,r,o,(function(){a.resolve(!0)}),(function(){a.reject(!1)})),a.promise},shareViaSMS:function(n,i){var r=e.defer();return t.plugins.socialsharing.shareViaSMS(n,i,(function(){r.resolve(!0)}),(function(){r.reject(!1)})),r.promise},shareViaEmail:function(n,i,r,o,a,s){var l=e.defer();return r=r||null,o=o||null,a=a||null,s=s||null,t.plugins.socialsharing.shareViaEmail(n,i,r,o,a,s,(function(){l.resolve(!0)}),(function(){l.reject(!1)})),l.promise},shareVia:function(n,i,r,o,a){var s=e.defer();return i=i||null,r=r||null,o=o||null,a=a||null,t.plugins.socialsharing.shareVia(n,i,r,o,a,(function(){s.resolve(!0)}),(function(){s.reject(!1)})),s.promise},canShareViaEmail:function(){var n=e.defer();return t.plugins.socialsharing.canShareViaEmail((function(){n.resolve(!0)}),(function(){n.reject(!1)})),n.promise},canShareVia:function(n,i,r,o,a){var s=e.defer();return t.plugins.socialsharing.canShareVia(n,i,r,o,a,(function(e){s.resolve(e)}),(function(e){s.reject(e)})),s.promise},available:function(){var t=e.defer();return window.plugins.socialsharing.available((function(e){e?t.resolve():t.reject()})),t.promise}}}]),angular.module("ngCordova.plugins.spinnerDialog",[]).factory("$cordovaSpinnerDialog",["$window",function(e){return{show:function(t,n,i,r){return i=i||!1,e.plugins.spinnerDialog.show(t,n,i,r)},hide:function(){return e.plugins.spinnerDialog.hide()}}}]),angular.module("ngCordova.plugins.splashscreen",[]).factory("$cordovaSplashscreen",[function(){return{hide:function(){return navigator.splashscreen.hide()},show:function(){return navigator.splashscreen.show()}}}]),angular.module("ngCordova.plugins.sqlite",[]).factory("$cordovaSQLite",["$q","$window",function(e,t){return{openDB:function(e,n){return angular.isObject(e)&&!angular.isString(e)?(void 0!==n&&(e.bgType=n),t.sqlitePlugin.openDatabase(e)):t.sqlitePlugin.openDatabase({name:e,bgType:n})},execute:function(t,n,i){var r=e.defer();return t.transaction((function(e){e.executeSql(n,i,(function(e,t){r.resolve(t)}),(function(e,t){r.reject(t)}))})),r.promise},insertCollection:function(t,n,i){var r=e.defer(),o=i.slice(0);return t.transaction((function(e){!function t(){var i=o.splice(0,1)[0];try{e.executeSql(n,i,(function(e,n){0===o.length?r.resolve(n):t()}),(function(e,t){r.reject(t)}))}catch(e){r.reject(e)}}()})),r.promise},nestedExecute:function(t,n,i,r,o){var a=e.defer();return t.transaction((function(e){e.executeSql(n,r,(function(e,t){a.resolve(t),e.executeSql(i,o,(function(e,t){a.resolve(t)}))}))}),(function(e,t){a.reject(t)})),a.promise},deleteDB:function(n){var i=e.defer();return t.sqlitePlugin.deleteDatabase(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise}}}]),angular.module("ngCordova.plugins.statusbar",[]).factory("$cordovaStatusbar",[function(){return{overlaysWebView:function(e){return StatusBar.overlaysWebView(!!e)},STYLES:{DEFAULT:0,LIGHT_CONTENT:1,BLACK_TRANSLUCENT:2,BLACK_OPAQUE:3},style:function(e){switch(e){case 0:return StatusBar.styleDefault();case 1:return StatusBar.styleLightContent();case 2:return StatusBar.styleBlackTranslucent();case 3:return StatusBar.styleBlackOpaque();default:return StatusBar.styleDefault()}},styleColor:function(e){return StatusBar.backgroundColorByName(e)},styleHex:function(e){return StatusBar.backgroundColorByHexString(e)},hide:function(){return StatusBar.hide()},show:function(){return StatusBar.show()},isVisible:function(){return StatusBar.isVisible}}}]),angular.module("ngCordova.plugins.toast",[]).factory("$cordovaToast",["$q","$window",function(e,t){return{showShortTop:function(n){var i=e.defer();return t.plugins.toast.showShortTop(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showShortCenter:function(n){var i=e.defer();return t.plugins.toast.showShortCenter(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showShortBottom:function(n){var i=e.defer();return t.plugins.toast.showShortBottom(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showLongTop:function(n){var i=e.defer();return t.plugins.toast.showLongTop(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showLongCenter:function(n){var i=e.defer();return t.plugins.toast.showLongCenter(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showLongBottom:function(n){var i=e.defer();return t.plugins.toast.showLongBottom(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showWithOptions:function(n){var i=e.defer();return t.plugins.toast.showWithOptions(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},show:function(n,i,r){var o=e.defer();return t.plugins.toast.show(n,i,r,(function(e){o.resolve(e)}),(function(e){o.reject(e)})),o.promise},hide:function(){var n=e.defer();try{t.plugins.toast.hide(),n.resolve()}catch(e){n.reject(e&&e.message)}return n.promise}}}]),angular.module("ngCordova.plugins.touchid",[]).factory("$cordovaTouchID",["$q",function(e){return{checkSupport:function(){var t=e.defer();return window.cordova?touchid.checkSupport((function(e){t.resolve(e)}),(function(e){t.reject(e)})):t.reject("Not supported without cordova.js"),t.promise},authenticate:function(t){var n=e.defer();return window.cordova?touchid.authenticate((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t):n.reject("Not supported without cordova.js"),n.promise}}}]),angular.module("ngCordova.plugins.tts",[]).factory("$cordovaTTS",(function(){return{speak:function(e,t,n){return TTS.speak(e,t,n)}}})),angular.module("ngCordova.plugins.upsPush",[]).factory("$cordovaUpsPush",["$q","$window","$rootScope","$timeout",function(e,t,n,i){return{register:function(r){var o=e.defer();return t.push.register((function(e){i((function(){n.$broadcast("$cordovaUpsPush:notificationReceived",e)}))}),(function(){o.resolve()}),(function(e){o.reject(e)}),r),o.promise},unregister:function(n){var i=e.defer();return t.push.unregister((function(){i.resolve()}),(function(e){i.reject(e)}),n),i.promise},setBadgeNumber:function(n){var i=e.defer();return t.push.setApplicationIconBadgeNumber((function(){i.resolve()}),n),i.promise}}}]),angular.module("ngCordova.plugins.vibration",[]).factory("$cordovaVibration",[function(){return{vibrate:function(e){return navigator.notification.vibrate(e)},vibrateWithPattern:function(e,t){return navigator.notification.vibrateWithPattern(e,t)},cancelVibration:function(){return navigator.notification.cancelVibration()}}}]),angular.module("ngCordova.plugins.videoCapturePlus",[]).provider("$cordovaVideoCapturePlus",[function(){var e={};this.setLimit=function(t){e.limit=t},this.setMaxDuration=function(t){e.duration=t},this.setHighQuality=function(t){e.highquality=t},this.useFrontCamera=function(t){e.frontcamera=t},this.setPortraitOverlay=function(t){e.portraitOverlay=t},this.setLandscapeOverlay=function(t){e.landscapeOverlay=t},this.setOverlayText=function(t){e.overlayText=t},this.$get=["$q","$window",function(t,n){return{captureVideo:function(i){var r=t.defer();return n.plugins.videocaptureplus?(n.plugins.videocaptureplus.captureVideo(r.resolve,r.reject,angular.extend({},e,i)),r.promise):(r.resolve(null),r.promise)}}}]}]),angular.module("ngCordova.plugins.zip",[]).factory("$cordovaZip",["$q","$window",function(e,t){return{unzip:function(n,i){var r=e.defer();return t.zip.unzip(n,i,(function(e){0===e?r.resolve():r.reject()}),(function(e){r.notify(e)})),r.promise}}}]),function(e,t,n){var i=e.L,r={version:"0.7.7"};"object"==typeof module&&"object"==typeof module.exports?module.exports=r:"function"==typeof define&&define.amd&&define(r),r.noConflict=function(){return e.L=i,this},e.L=r,r.Util={extend:function(e){var t,n,i,r,o=Array.prototype.slice.call(arguments,1);for(n=0,i=o.length;i>n;n++)for(t in r=o[n]||{})r.hasOwnProperty(t)&&(e[t]=r[t]);return e},bind:function(e,t){var n=arguments.length>2?Array.prototype.slice.call(arguments,2):null;return function(){return e.apply(t,n||arguments)}},stamp:function(){var e=0,t="_leaflet_id";return function(n){return n[t]=n[t]||++e,n[t]}}(),invokeEach:function(e,t,n){var i,r;if("object"==typeof e){for(i in r=Array.prototype.slice.call(arguments,3),e)t.apply(n,[i,e[i]].concat(r));return!0}return!1},limitExecByInterval:function(e,t,n){var i,r;return function o(){var a=arguments;return i?void(r=!0):(i=!0,setTimeout((function(){i=!1,r&&(o.apply(n,a),r=!1)}),t),void e.apply(n,a))}},falseFn:function(){return!1},formatNum:function(e,t){var n=Math.pow(10,t||5);return Math.round(e*n)/n},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},splitWords:function(e){return r.Util.trim(e).split(/\s+/)},setOptions:function(e,t){return e.options=r.extend({},e.options,t),e.options},getParamString:function(e,t,n){var i=[];for(var r in e)i.push(encodeURIComponent(n?r.toUpperCase():r)+"="+encodeURIComponent(e[r]));return(t&&-1!==t.indexOf("?")?"&":"?")+i.join("&")},template:function(e,t){return e.replace(/\{ *([\w_]+) *\}/g,(function(e,i){var r=t[i];if(r===n)throw new Error("No value provided for variable "+e);return"function"==typeof r&&(r=r(t)),r}))},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},emptyImageUrl:"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="},function(){function t(t){var n,i,r=["webkit","moz","o","ms"];for(n=0;n<r.length&&!i;n++)i=e[r[n]+t];return i}function n(t){var n=+new Date,r=Math.max(0,16-(n-i));return i=n+r,e.setTimeout(t,r)}var i=0,o=e.requestAnimationFrame||t("RequestAnimationFrame")||n,a=e.cancelAnimationFrame||t("CancelAnimationFrame")||t("CancelRequestAnimationFrame")||function(t){e.clearTimeout(t)};r.Util.requestAnimFrame=function(t,i,a,s){return t=r.bind(t,i),a&&o===n?void t():o.call(e,t,s)},r.Util.cancelAnimFrame=function(t){t&&a.call(e,t)}}(),r.extend=r.Util.extend,r.bind=r.Util.bind,r.stamp=r.Util.stamp,r.setOptions=r.Util.setOptions,r.Class=function(){},r.Class.extend=function(e){var t=function(){this.initialize&&this.initialize.apply(this,arguments),this._initHooks&&this.callInitHooks()},n=function(){};n.prototype=this.prototype;var i=new n;for(var o in i.constructor=t,t.prototype=i,this)this.hasOwnProperty(o)&&"prototype"!==o&&(t[o]=this[o]);e.statics&&(r.extend(t,e.statics),delete e.statics),e.includes&&(r.Util.extend.apply(null,[i].concat(e.includes)),delete e.includes),e.options&&i.options&&(e.options=r.extend({},i.options,e.options)),r.extend(i,e),i._initHooks=[];var a=this;return t.__super__=a.prototype,i.callInitHooks=function(){if(!this._initHooksCalled){a.prototype.callInitHooks&&a.prototype.callInitHooks.call(this),this._initHooksCalled=!0;for(var e=0,t=i._initHooks.length;t>e;e++)i._initHooks[e].call(this)}},t},r.Class.include=function(e){r.extend(this.prototype,e)},r.Class.mergeOptions=function(e){r.extend(this.prototype.options,e)},r.Class.addInitHook=function(e){var t=Array.prototype.slice.call(arguments,1),n="function"==typeof e?e:function(){this[e].apply(this,t)};this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(n)};var o="_leaflet_events";r.Mixin={},r.Mixin.Events={addEventListener:function(e,t,n){if(r.Util.invokeEach(e,this.addEventListener,this,t,n))return this;var i,a,s,l,u,c,d,h=this[o]=this[o]||{},f=n&&n!==this&&r.stamp(n);for(i=0,a=(e=r.Util.splitWords(e)).length;a>i;i++)s={action:t,context:n||this},l=e[i],f?(c=(u=l+"_idx")+"_len",(d=h[u]=h[u]||{})[f]||(d[f]=[],h[c]=(h[c]||0)+1),d[f].push(s)):(h[l]=h[l]||[],h[l].push(s));return this},hasEventListeners:function(e){var t=this[o];return!!t&&(e in t&&t[e].length>0||e+"_idx"in t&&t[e+"_idx_len"]>0)},removeEventListener:function(e,t,n){if(!this[o])return this;if(!e)return this.clearAllEventListeners();if(r.Util.invokeEach(e,this.removeEventListener,this,t,n))return this;var i,a,s,l,u,c,d,h,f=this[o],p=n&&n!==this&&r.stamp(n);for(i=0,a=(e=r.Util.splitWords(e)).length;a>i;i++)if(d=(c=(s=e[i])+"_idx")+"_len",h=f[c],t){if(l=p&&h?h[p]:f[s]){for(u=l.length-1;u>=0;u--)l[u].action!==t||n&&l[u].context!==n||(l.splice(u,1)[0].action=r.Util.falseFn);n&&h&&0===l.length&&(delete h[p],f[d]--)}}else delete f[s],delete f[c],delete f[d];return this},clearAllEventListeners:function(){return delete this[o],this},fireEvent:function(e,t){if(!this.hasEventListeners(e))return this;var n,i,a,s,l,u=r.Util.extend({},t,{type:e,target:this}),c=this[o];if(c[e])for(i=0,a=(n=c[e].slice()).length;a>i;i++)n[i].action.call(n[i].context,u);for(l in s=c[e+"_idx"])if(n=s[l].slice())for(i=0,a=n.length;a>i;i++)n[i].action.call(n[i].context,u);return this},addOneTimeEventListener:function(e,t,n){if(r.Util.invokeEach(e,this.addOneTimeEventListener,this,t,n))return this;var i=r.bind((function(){this.removeEventListener(e,t,n).removeEventListener(e,i,n)}),this);return this.addEventListener(e,t,n).addEventListener(e,i,n)}},r.Mixin.Events.on=r.Mixin.Events.addEventListener,r.Mixin.Events.off=r.Mixin.Events.removeEventListener,r.Mixin.Events.once=r.Mixin.Events.addOneTimeEventListener,r.Mixin.Events.fire=r.Mixin.Events.fireEvent,function(){var i="ActiveXObject"in e,o=i&&!t.addEventListener,a=navigator.userAgent.toLowerCase(),s=-1!==a.indexOf("webkit"),l=-1!==a.indexOf("chrome"),u=-1!==a.indexOf("phantom"),c=-1!==a.indexOf("android"),d=-1!==a.search("android [23]"),h=-1!==a.indexOf("gecko"),f=typeof orientation!=n+"",p=!e.PointerEvent&&e.MSPointerEvent,m=e.PointerEvent&&e.navigator.pointerEnabled||p,g="devicePixelRatio"in e&&e.devicePixelRatio>1||"matchMedia"in e&&e.matchMedia("(min-resolution:144dpi)")&&e.matchMedia("(min-resolution:144dpi)").matches,v=t.documentElement,_=i&&"transition"in v.style,y="WebKitCSSMatrix"in e&&"m11"in new e.WebKitCSSMatrix&&!d,b="MozPerspective"in v.style,w="OTransition"in v.style,L=!e.L_DISABLE_3D&&(_||y||b||w)&&!u,M=!e.L_NO_TOUCH&&!u&&(m||"ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch);r.Browser={ie:i,ielt9:o,webkit:s,gecko:h&&!s&&!e.opera&&!i,android:c,android23:d,chrome:l,ie3d:_,webkit3d:y,gecko3d:b,opera3d:w,any3d:L,mobile:f,mobileWebkit:f&&s,mobileWebkit3d:f&&y,mobileOpera:f&&e.opera,touch:M,msPointer:p,pointer:m,retina:g}}(),r.Point=function(e,t,n){this.x=n?Math.round(e):e,this.y=n?Math.round(t):t},r.Point.prototype={clone:function(){return new r.Point(this.x,this.y)},add:function(e){return this.clone()._add(r.point(e))},_add:function(e){return this.x+=e.x,this.y+=e.y,this},subtract:function(e){return this.clone()._subtract(r.point(e))},_subtract:function(e){return this.x-=e.x,this.y-=e.y,this},divideBy:function(e){return this.clone()._divideBy(e)},_divideBy:function(e){return this.x/=e,this.y/=e,this},multiplyBy:function(e){return this.clone()._multiplyBy(e)},_multiplyBy:function(e){return this.x*=e,this.y*=e,this},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},distanceTo:function(e){var t=(e=r.point(e)).x-this.x,n=e.y-this.y;return Math.sqrt(t*t+n*n)},equals:function(e){return(e=r.point(e)).x===this.x&&e.y===this.y},contains:function(e){return e=r.point(e),Math.abs(e.x)<=Math.abs(this.x)&&Math.abs(e.y)<=Math.abs(this.y)},toString:function(){return"Point("+r.Util.formatNum(this.x)+", "+r.Util.formatNum(this.y)+")"}},r.point=function(e,t,i){return e instanceof r.Point?e:r.Util.isArray(e)?new r.Point(e[0],e[1]):e===n||null===e?e:new r.Point(e,t,i)},r.Bounds=function(e,t){if(e)for(var n=t?[e,t]:e,i=0,r=n.length;r>i;i++)this.extend(n[i])},r.Bounds.prototype={extend:function(e){return e=r.point(e),this.min||this.max?(this.min.x=Math.min(e.x,this.min.x),this.max.x=Math.max(e.x,this.max.x),this.min.y=Math.min(e.y,this.min.y),this.max.y=Math.max(e.y,this.max.y)):(this.min=e.clone(),this.max=e.clone()),this},getCenter:function(e){return new r.Point((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,e)},getBottomLeft:function(){return new r.Point(this.min.x,this.max.y)},getTopRight:function(){return new r.Point(this.max.x,this.min.y)},getSize:function(){return this.max.subtract(this.min)},contains:function(e){var t,n;return(e="number"==typeof e[0]||e instanceof r.Point?r.point(e):r.bounds(e))instanceof r.Bounds?(t=e.min,n=e.max):t=n=e,t.x>=this.min.x&&n.x<=this.max.x&&t.y>=this.min.y&&n.y<=this.max.y},intersects:function(e){e=r.bounds(e);var t=this.min,n=this.max,i=e.min,o=e.max,a=o.x>=t.x&&i.x<=n.x,s=o.y>=t.y&&i.y<=n.y;return a&&s},isValid:function(){return!(!this.min||!this.max)}},r.bounds=function(e,t){return!e||e instanceof r.Bounds?e:new r.Bounds(e,t)},r.Transformation=function(e,t,n,i){this._a=e,this._b=t,this._c=n,this._d=i},r.Transformation.prototype={transform:function(e,t){return this._transform(e.clone(),t)},_transform:function(e,t){return t=t||1,e.x=t*(this._a*e.x+this._b),e.y=t*(this._c*e.y+this._d),e},untransform:function(e,t){return t=t||1,new r.Point((e.x/t-this._b)/this._a,(e.y/t-this._d)/this._c)}},r.DomUtil={get:function(e){return"string"==typeof e?t.getElementById(e):e},getStyle:function(e,n){var i=e.style[n];if(!i&&e.currentStyle&&(i=e.currentStyle[n]),(!i||"auto"===i)&&t.defaultView){var r=t.defaultView.getComputedStyle(e,null);i=r?r[n]:null}return"auto"===i?null:i},getViewportOffset:function(e){var n,i=0,o=0,a=e,s=t.body,l=t.documentElement;do{if(i+=a.offsetTop||0,o+=a.offsetLeft||0,i+=parseInt(r.DomUtil.getStyle(a,"borderTopWidth"),10)||0,o+=parseInt(r.DomUtil.getStyle(a,"borderLeftWidth"),10)||0,n=r.DomUtil.getStyle(a,"position"),a.offsetParent===s&&"absolute"===n)break;if("fixed"===n){i+=s.scrollTop||l.scrollTop||0,o+=s.scrollLeft||l.scrollLeft||0;break}if("relative"===n&&!a.offsetLeft){var u=r.DomUtil.getStyle(a,"width"),c=r.DomUtil.getStyle(a,"max-width"),d=a.getBoundingClientRect();("none"!==u||"none"!==c)&&(o+=d.left+a.clientLeft),i+=d.top+(s.scrollTop||l.scrollTop||0);break}a=a.offsetParent}while(a);a=e;do{if(a===s)break;i-=a.scrollTop||0,o-=a.scrollLeft||0,a=a.parentNode}while(a);return new r.Point(o,i)},documentIsLtr:function(){return r.DomUtil._docIsLtrCached||(r.DomUtil._docIsLtrCached=!0,r.DomUtil._docIsLtr="ltr"===r.DomUtil.getStyle(t.body,"direction")),r.DomUtil._docIsLtr},create:function(e,n,i){var r=t.createElement(e);return r.className=n,i&&i.appendChild(r),r},hasClass:function(e,t){if(e.classList!==n)return e.classList.contains(t);var i=r.DomUtil._getClass(e);return i.length>0&&new RegExp("(^|\\s)"+t+"(\\s|$)").test(i)},addClass:function(e,t){if(e.classList!==n)for(var i=r.Util.splitWords(t),o=0,a=i.length;a>o;o++)e.classList.add(i[o]);else if(!r.DomUtil.hasClass(e,t)){var s=r.DomUtil._getClass(e);r.DomUtil._setClass(e,(s?s+" ":"")+t)}},removeClass:function(e,t){e.classList!==n?e.classList.remove(t):r.DomUtil._setClass(e,r.Util.trim((" "+r.DomUtil._getClass(e)+" ").replace(" "+t+" "," ")))},_setClass:function(e,t){e.className.baseVal===n?e.className=t:e.className.baseVal=t},_getClass:function(e){return e.className.baseVal===n?e.className:e.className.baseVal},setOpacity:function(e,t){if("opacity"in e.style)e.style.opacity=t;else if("filter"in e.style){var n=!1,i="DXImageTransform.Microsoft.Alpha";try{n=e.filters.item(i)}catch(e){if(1===t)return}t=Math.round(100*t),n?(n.Enabled=100!==t,n.Opacity=t):e.style.filter+=" progid:"+i+"(opacity="+t+")"}},testProp:function(e){for(var n=t.documentElement.style,i=0;i<e.length;i++)if(e[i]in n)return e[i];return!1},getTranslateString:function(e){var t=r.Browser.webkit3d,n=(t?",0":"")+")";return"translate"+(t?"3d":"")+"("+e.x+"px,"+e.y+"px"+n},getScaleString:function(e,t){return r.DomUtil.getTranslateString(t.add(t.multiplyBy(-1*e)))+" scale("+e+") "},setPosition:function(e,t,n){e._leaflet_pos=t,!n&&r.Browser.any3d?e.style[r.DomUtil.TRANSFORM]=r.DomUtil.getTranslateString(t):(e.style.left=t.x+"px",e.style.top=t.y+"px")},getPosition:function(e){return e._leaflet_pos}},r.DomUtil.TRANSFORM=r.DomUtil.testProp(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]),r.DomUtil.TRANSITION=r.DomUtil.testProp(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),r.DomUtil.TRANSITION_END="webkitTransition"===r.DomUtil.TRANSITION||"OTransition"===r.DomUtil.TRANSITION?r.DomUtil.TRANSITION+"End":"transitionend",function(){if("onselectstart"in t)r.extend(r.DomUtil,{disableTextSelection:function(){r.DomEvent.on(e,"selectstart",r.DomEvent.preventDefault)},enableTextSelection:function(){r.DomEvent.off(e,"selectstart",r.DomEvent.preventDefault)}});else{var n=r.DomUtil.testProp(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);r.extend(r.DomUtil,{disableTextSelection:function(){if(n){var e=t.documentElement.style;this._userSelect=e[n],e[n]="none"}},enableTextSelection:function(){n&&(t.documentElement.style[n]=this._userSelect,delete this._userSelect)}})}r.extend(r.DomUtil,{disableImageDrag:function(){r.DomEvent.on(e,"dragstart",r.DomEvent.preventDefault)},enableImageDrag:function(){r.DomEvent.off(e,"dragstart",r.DomEvent.preventDefault)}})}(),r.LatLng=function(e,t,i){if(e=parseFloat(e),t=parseFloat(t),isNaN(e)||isNaN(t))throw new Error("Invalid LatLng object: ("+e+", "+t+")");this.lat=e,this.lng=t,i!==n&&(this.alt=parseFloat(i))},r.extend(r.LatLng,{DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI,MAX_MARGIN:1e-9}),r.LatLng.prototype={equals:function(e){return!!e&&(e=r.latLng(e),Math.max(Math.abs(this.lat-e.lat),Math.abs(this.lng-e.lng))<=r.LatLng.MAX_MARGIN)},toString:function(e){return"LatLng("+r.Util.formatNum(this.lat,e)+", "+r.Util.formatNum(this.lng,e)+")"},distanceTo:function(e){e=r.latLng(e);var t=r.LatLng.DEG_TO_RAD,n=(e.lat-this.lat)*t,i=(e.lng-this.lng)*t,o=this.lat*t,a=e.lat*t,s=Math.sin(n/2),l=Math.sin(i/2),u=s*s+l*l*Math.cos(o)*Math.cos(a);return 12756274*Math.atan2(Math.sqrt(u),Math.sqrt(1-u))},wrap:function(e,t){var n=this.lng;return n=(n+(t=t||180))%(t-(e=e||-180))+(e>n||n===t?t:e),new r.LatLng(this.lat,n)}},r.latLng=function(e,t){return e instanceof r.LatLng?e:r.Util.isArray(e)?"number"==typeof e[0]||"string"==typeof e[0]?new r.LatLng(e[0],e[1],e[2]):null:e===n||null===e?e:"object"==typeof e&&"lat"in e?new r.LatLng(e.lat,"lng"in e?e.lng:e.lon):t===n?null:new r.LatLng(e,t)},r.LatLngBounds=function(e,t){if(e)for(var n=t?[e,t]:e,i=0,r=n.length;r>i;i++)this.extend(n[i])},r.LatLngBounds.prototype={extend:function(e){if(!e)return this;var t=r.latLng(e);return(e=null!==t?t:r.latLngBounds(e))instanceof r.LatLng?this._southWest||this._northEast?(this._southWest.lat=Math.min(e.lat,this._southWest.lat),this._southWest.lng=Math.min(e.lng,this._southWest.lng),this._northEast.lat=Math.max(e.lat,this._northEast.lat),this._northEast.lng=Math.max(e.lng,this._northEast.lng)):(this._southWest=new r.LatLng(e.lat,e.lng),this._northEast=new r.LatLng(e.lat,e.lng)):e instanceof r.LatLngBounds&&(this.extend(e._southWest),this.extend(e._northEast)),this},pad:function(e){var t=this._southWest,n=this._northEast,i=Math.abs(t.lat-n.lat)*e,o=Math.abs(t.lng-n.lng)*e;return new r.LatLngBounds(new r.LatLng(t.lat-i,t.lng-o),new r.LatLng(n.lat+i,n.lng+o))},getCenter:function(){return new r.LatLng((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new r.LatLng(this.getNorth(),this.getWest())},getSouthEast:function(){return new r.LatLng(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(e){e="number"==typeof e[0]||e instanceof r.LatLng?r.latLng(e):r.latLngBounds(e);var t,n,i=this._southWest,o=this._northEast;return e instanceof r.LatLngBounds?(t=e.getSouthWest(),n=e.getNorthEast()):t=n=e,t.lat>=i.lat&&n.lat<=o.lat&&t.lng>=i.lng&&n.lng<=o.lng},intersects:function(e){e=r.latLngBounds(e);var t=this._southWest,n=this._northEast,i=e.getSouthWest(),o=e.getNorthEast(),a=o.lat>=t.lat&&i.lat<=n.lat,s=o.lng>=t.lng&&i.lng<=n.lng;return a&&s},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(e){return!!e&&(e=r.latLngBounds(e),this._southWest.equals(e.getSouthWest())&&this._northEast.equals(e.getNorthEast()))},isValid:function(){return!(!this._southWest||!this._northEast)}},r.latLngBounds=function(e,t){return!e||e instanceof r.LatLngBounds?e:new r.LatLngBounds(e,t)},r.Projection={},r.Projection.SphericalMercator={MAX_LATITUDE:85.0511287798,project:function(e){var t=r.LatLng.DEG_TO_RAD,n=this.MAX_LATITUDE,i=Math.max(Math.min(n,e.lat),-n),o=e.lng*t,a=i*t;return a=Math.log(Math.tan(Math.PI/4+a/2)),new r.Point(o,a)},unproject:function(e){var t=r.LatLng.RAD_TO_DEG,n=e.x*t,i=(2*Math.atan(Math.exp(e.y))-Math.PI/2)*t;return new r.LatLng(i,n)}},r.Projection.LonLat={project:function(e){return new r.Point(e.lng,e.lat)},unproject:function(e){return new r.LatLng(e.y,e.x)}},r.CRS={latLngToPoint:function(e,t){var n=this.projection.project(e),i=this.scale(t);return this.transformation._transform(n,i)},pointToLatLng:function(e,t){var n=this.scale(t),i=this.transformation.untransform(e,n);return this.projection.unproject(i)},project:function(e){return this.projection.project(e)},scale:function(e){return 256*Math.pow(2,e)},getSize:function(e){var t=this.scale(e);return r.point(t,t)}},r.CRS.Simple=r.extend({},r.CRS,{projection:r.Projection.LonLat,transformation:new r.Transformation(1,0,-1,0),scale:function(e){return Math.pow(2,e)}}),r.CRS.EPSG3857=r.extend({},r.CRS,{code:"EPSG:3857",projection:r.Projection.SphericalMercator,transformation:new r.Transformation(.5/Math.PI,.5,-.5/Math.PI,.5),project:function(e){return this.projection.project(e).multiplyBy(6378137)}}),r.CRS.EPSG900913=r.extend({},r.CRS.EPSG3857,{code:"EPSG:900913"}),r.CRS.EPSG4326=r.extend({},r.CRS,{code:"EPSG:4326",projection:r.Projection.LonLat,transformation:new r.Transformation(1/360,.5,-1/360,.5)}),r.Map=r.Class.extend({includes:r.Mixin.Events,options:{crs:r.CRS.EPSG3857,fadeAnimation:r.DomUtil.TRANSITION&&!r.Browser.android23,trackResize:!0,markerZoomAnimation:r.DomUtil.TRANSITION&&r.Browser.any3d},initialize:function(e,t){t=r.setOptions(this,t),this._initContainer(e),this._initLayout(),this._onResize=r.bind(this._onResize,this),this._initEvents(),t.maxBounds&&this.setMaxBounds(t.maxBounds),t.center&&t.zoom!==n&&this.setView(r.latLng(t.center),t.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._tileLayersNum=0,this.callInitHooks(),this._addLayers(t.layers)},setView:function(e,t){return t=t===n?this.getZoom():t,this._resetView(r.latLng(e),this._limitZoom(t)),this},setZoom:function(e,t){return this._loaded?this.setView(this.getCenter(),e,{zoom:t}):(this._zoom=this._limitZoom(e),this)},zoomIn:function(e,t){return this.setZoom(this._zoom+(e||1),t)},zoomOut:function(e,t){return this.setZoom(this._zoom-(e||1),t)},setZoomAround:function(e,t,n){var i=this.getZoomScale(t),o=this.getSize().divideBy(2),a=(e instanceof r.Point?e:this.latLngToContainerPoint(e)).subtract(o).multiplyBy(1-1/i),s=this.containerPointToLatLng(o.add(a));return this.setView(s,t,{zoom:n})},fitBounds:function(e,t){t=t||{},e=e.getBounds?e.getBounds():r.latLngBounds(e);var n=r.point(t.paddingTopLeft||t.padding||[0,0]),i=r.point(t.paddingBottomRight||t.padding||[0,0]),o=this.getBoundsZoom(e,!1,n.add(i));o=t.maxZoom?Math.min(t.maxZoom,o):o;var a=i.subtract(n).divideBy(2),s=this.project(e.getSouthWest(),o),l=this.project(e.getNorthEast(),o),u=this.unproject(s.add(l).divideBy(2).add(a),o);return this.setView(u,o,t)},fitWorld:function(e){return this.fitBounds([[-90,-180],[90,180]],e)},panTo:function(e,t){return this.setView(e,this._zoom,{pan:t})},panBy:function(e){return this.fire("movestart"),this._rawPanBy(r.point(e)),this.fire("move"),this.fire("moveend")},setMaxBounds:function(e){return e=r.latLngBounds(e),this.options.maxBounds=e,e?(this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds,this)):this.off("moveend",this._panInsideMaxBounds,this)},panInsideBounds:function(e,t){var n=this.getCenter(),i=this._limitCenter(n,this._zoom,e);return n.equals(i)?this:this.panTo(i,t)},addLayer:function(e){var t=r.stamp(e);return this._layers[t]?this:(this._layers[t]=e,!e.options||isNaN(e.options.maxZoom)&&isNaN(e.options.minZoom)||(this._zoomBoundLayers[t]=e,this._updateZoomLevels()),this.options.zoomAnimation&&r.TileLayer&&e instanceof r.TileLayer&&(this._tileLayersNum++,this._tileLayersToLoad++,e.on("load",this._onTileLayerLoad,this)),this._loaded&&this._layerAdd(e),this)},removeLayer:function(e){var t=r.stamp(e);return this._layers[t]?(this._loaded&&e.onRemove(this),delete this._layers[t],this._loaded&&this.fire("layerremove",{layer:e}),this._zoomBoundLayers[t]&&(delete this._zoomBoundLayers[t],this._updateZoomLevels()),this.options.zoomAnimation&&r.TileLayer&&e instanceof r.TileLayer&&(this._tileLayersNum--,this._tileLayersToLoad--,e.off("load",this._onTileLayerLoad,this)),this):this},hasLayer:function(e){return!!e&&r.stamp(e)in this._layers},eachLayer:function(e,t){for(var n in this._layers)e.call(t,this._layers[n]);return this},invalidateSize:function(e){if(!this._loaded)return this;e=r.extend({animate:!1,pan:!0},!0===e?{animate:!0}:e);var t=this.getSize();this._sizeChanged=!0,this._initialCenter=null;var n=this.getSize(),i=t.divideBy(2).round(),o=n.divideBy(2).round(),a=i.subtract(o);return a.x||a.y?(e.animate&&e.pan?this.panBy(a):(e.pan&&this._rawPanBy(a),this.fire("move"),e.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(r.bind(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:t,newSize:n})):this},addHandler:function(e,t){if(!t)return this;var n=this[e]=new t(this);return this._handlers.push(n),this.options[e]&&n.enable(),this},remove:function(){this._loaded&&this.fire("unload"),this._initEvents("off");try{delete this._container._leaflet}catch(e){this._container._leaflet=n}return this._clearPanes(),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this},getCenter:function(){return this._checkIfLoaded(),this._initialCenter&&!this._moved()?this._initialCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var e=this.getPixelBounds(),t=this.unproject(e.getBottomLeft()),n=this.unproject(e.getTopRight());return new r.LatLngBounds(t,n)},getMinZoom:function(){return this.options.minZoom===n?this._layersMinZoom===n?0:this._layersMinZoom:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===n?this._layersMaxZoom===n?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(e,t,n){e=r.latLngBounds(e);var i,o=this.getMinZoom()-(t?1:0),a=this.getMaxZoom(),s=this.getSize(),l=e.getNorthWest(),u=e.getSouthEast(),c=!0;n=r.point(n||[0,0]);do{o++,i=this.project(u,o).subtract(this.project(l,o)).add(n),c=t?i.x<s.x||i.y<s.y:s.contains(i)}while(c&&a>=o);return c&&t?null:t?o:o-1},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new r.Point(this._container.clientWidth,this._container.clientHeight),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(){var e=this._getTopLeftPoint();return new r.Bounds(e,e.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._initialTopLeftPoint},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(e){var t=this.options.crs;return t.scale(e)/t.scale(this._zoom)},getScaleZoom:function(e){return this._zoom+Math.log(e)/Math.LN2},project:function(e,t){return t=t===n?this._zoom:t,this.options.crs.latLngToPoint(r.latLng(e),t)},unproject:function(e,t){return t=t===n?this._zoom:t,this.options.crs.pointToLatLng(r.point(e),t)},layerPointToLatLng:function(e){var t=r.point(e).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(e){return this.project(r.latLng(e))._round()._subtract(this.getPixelOrigin())},containerPointToLayerPoint:function(e){return r.point(e).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(e){return r.point(e).add(this._getMapPanePos())},containerPointToLatLng:function(e){var t=this.containerPointToLayerPoint(r.point(e));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(e){return this.layerPointToContainerPoint(this.latLngToLayerPoint(r.latLng(e)))},mouseEventToContainerPoint:function(e){return r.DomEvent.getMousePosition(e,this._container)},mouseEventToLayerPoint:function(e){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(e))},mouseEventToLatLng:function(e){return this.layerPointToLatLng(this.mouseEventToLayerPoint(e))},_initContainer:function(e){var t=this._container=r.DomUtil.get(e);if(!t)throw new Error("Map container not found.");if(t._leaflet)throw new Error("Map container is already initialized.");t._leaflet=!0},_initLayout:function(){var e=this._container;r.DomUtil.addClass(e,"leaflet-container"+(r.Browser.touch?" leaflet-touch":"")+(r.Browser.retina?" leaflet-retina":"")+(r.Browser.ielt9?" leaflet-oldie":"")+(this.options.fadeAnimation?" leaflet-fade-anim":""));var t=r.DomUtil.getStyle(e,"position");"absolute"!==t&&"relative"!==t&&"fixed"!==t&&(e.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var e=this._panes={};this._mapPane=e.mapPane=this._createPane("leaflet-map-pane",this._container),this._tilePane=e.tilePane=this._createPane("leaflet-tile-pane",this._mapPane),e.objectsPane=this._createPane("leaflet-objects-pane",this._mapPane),e.shadowPane=this._createPane("leaflet-shadow-pane"),e.overlayPane=this._createPane("leaflet-overlay-pane"),e.markerPane=this._createPane("leaflet-marker-pane"),e.popupPane=this._createPane("leaflet-popup-pane");var t=" leaflet-zoom-hide";this.options.markerZoomAnimation||(r.DomUtil.addClass(e.markerPane,t),r.DomUtil.addClass(e.shadowPane,t),r.DomUtil.addClass(e.popupPane,t))},_createPane:function(e,t){return r.DomUtil.create("div",e,t||this._panes.objectsPane)},_clearPanes:function(){this._container.removeChild(this._mapPane)},_addLayers:function(e){for(var t=0,n=(e=e?r.Util.isArray(e)?e:[e]:[]).length;n>t;t++)this.addLayer(e[t])},_resetView:function(e,t,n,i){var o=this._zoom!==t;i||(this.fire("movestart"),o&&this.fire("zoomstart")),this._zoom=t,this._initialCenter=e,this._initialTopLeftPoint=this._getNewTopLeftPoint(e),n?this._initialTopLeftPoint._add(this._getMapPanePos()):r.DomUtil.setPosition(this._mapPane,new r.Point(0,0)),this._tileLayersToLoad=this._tileLayersNum;var a=!this._loaded;this._loaded=!0,this.fire("viewreset",{hard:!n}),a&&(this.fire("load"),this.eachLayer(this._layerAdd,this)),this.fire("move"),(o||i)&&this.fire("zoomend"),this.fire("moveend",{hard:!n})},_rawPanBy:function(e){r.DomUtil.setPosition(this._mapPane,this._getMapPanePos().subtract(e))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_updateZoomLevels:function(){var e,t=1/0,i=-1/0,r=this._getZoomSpan();for(e in this._zoomBoundLayers){var o=this._zoomBoundLayers[e];isNaN(o.options.minZoom)||(t=Math.min(t,o.options.minZoom)),isNaN(o.options.maxZoom)||(i=Math.max(i,o.options.maxZoom))}e===n?this._layersMaxZoom=this._layersMinZoom=n:(this._layersMaxZoom=i,this._layersMinZoom=t),r!==this._getZoomSpan()&&this.fire("zoomlevelschange")},_panInsideMaxBounds:function(){this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){if(r.DomEvent){t=t||"on",r.DomEvent[t](this._container,"click",this._onMouseClick,this);var n,i,o=["dblclick","mousedown","mouseup","mouseenter","mouseleave","mousemove","contextmenu"];for(n=0,i=o.length;i>n;n++)r.DomEvent[t](this._container,o[n],this._fireMouseEvent,this);this.options.trackResize&&r.DomEvent[t](e,"resize",this._onResize,this)}},_onResize:function(){r.Util.cancelAnimFrame(this._resizeRequest),this._resizeRequest=r.Util.requestAnimFrame((function(){this.invalidateSize({debounceMoveend:!0})}),this,!1,this._container)},_onMouseClick:function(e){!this._loaded||!e._simulated&&(this.dragging&&this.dragging.moved()||this.boxZoom&&this.boxZoom.moved())||r.DomEvent._skipped(e)||(this.fire("preclick"),this._fireMouseEvent(e))},_fireMouseEvent:function(e){if(this._loaded&&!r.DomEvent._skipped(e)){var t=e.type;if(t="mouseenter"===t?"mouseover":"mouseleave"===t?"mouseout":t,this.hasEventListeners(t)){"contextmenu"===t&&r.DomEvent.preventDefault(e);var n=this.mouseEventToContainerPoint(e),i=this.containerPointToLayerPoint(n),o=this.layerPointToLatLng(i);this.fire(t,{latlng:o,layerPoint:i,containerPoint:n,originalEvent:e})}}},_onTileLayerLoad:function(){this._tileLayersToLoad--,this._tileLayersNum&&!this._tileLayersToLoad&&this.fire("tilelayersload")},_clearHandlers:function(){for(var e=0,t=this._handlers.length;t>e;e++)this._handlers[e].disable()},whenReady:function(e,t){return this._loaded?e.call(t||this,this):this.on("load",e,t),this},_layerAdd:function(e){e.onAdd(this),this.fire("layeradd",{layer:e})},_getMapPanePos:function(){return r.DomUtil.getPosition(this._mapPane)},_moved:function(){var e=this._getMapPanePos();return e&&!e.equals([0,0])},_getTopLeftPoint:function(){return this.getPixelOrigin().subtract(this._getMapPanePos())},_getNewTopLeftPoint:function(e,t){var n=this.getSize()._divideBy(2);return this.project(e,t)._subtract(n)._round()},_latLngToNewLayerPoint:function(e,t,n){var i=this._getNewTopLeftPoint(n,t).add(this._getMapPanePos());return this.project(e,t)._subtract(i)},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(e){return this.latLngToLayerPoint(e).subtract(this._getCenterLayerPoint())},_limitCenter:function(e,t,n){if(!n)return e;var i=this.project(e,t),o=this.getSize().divideBy(2),a=new r.Bounds(i.subtract(o),i.add(o)),s=this._getBoundsOffset(a,n,t);return this.unproject(i.add(s),t)},_limitOffset:function(e,t){if(!t)return e;var n=this.getPixelBounds(),i=new r.Bounds(n.min.add(e),n.max.add(e));return e.add(this._getBoundsOffset(i,t))},_getBoundsOffset:function(e,t,n){var i=this.project(t.getNorthWest(),n).subtract(e.min),o=this.project(t.getSouthEast(),n).subtract(e.max),a=this._rebound(i.x,-o.x),s=this._rebound(i.y,-o.y);return new r.Point(a,s)},_rebound:function(e,t){return e+t>0?Math.round(e-t)/2:Math.max(0,Math.ceil(e))-Math.max(0,Math.floor(t))},_limitZoom:function(e){var t=this.getMinZoom(),n=this.getMaxZoom();return Math.max(t,Math.min(n,e))}}),r.map=function(e,t){return new r.Map(e,t)},r.Projection.Mercator={MAX_LATITUDE:85.0840591556,R_MINOR:6356752.314245179,R_MAJOR:6378137,project:function(e){var t=r.LatLng.DEG_TO_RAD,n=this.MAX_LATITUDE,i=Math.max(Math.min(n,e.lat),-n),o=this.R_MAJOR,a=this.R_MINOR,s=e.lng*t*o,l=i*t,u=a/o,c=Math.sqrt(1-u*u),d=c*Math.sin(l);d=Math.pow((1-d)/(1+d),.5*c);var h=Math.tan(.5*(.5*Math.PI-l))/d;return l=-o*Math.log(h),new r.Point(s,l)},unproject:function(e){for(var t,n=r.LatLng.RAD_TO_DEG,i=this.R_MAJOR,o=this.R_MINOR,a=e.x*n/i,s=o/i,l=Math.sqrt(1-s*s),u=Math.exp(-e.y/i),c=Math.PI/2-2*Math.atan(u),d=15,h=.1;Math.abs(h)>1e-7&&--d>0;)t=l*Math.sin(c),c+=h=Math.PI/2-2*Math.atan(u*Math.pow((1-t)/(1+t),.5*l))-c;return new r.LatLng(c*n,a)}},r.CRS.EPSG3395=r.extend({},r.CRS,{code:"EPSG:3395",projection:r.Projection.Mercator,transformation:function(){var e=r.Projection.Mercator.R_MAJOR,t=.5/(Math.PI*e);return new r.Transformation(t,.5,-t,.5)}()}),r.TileLayer=r.Class.extend({includes:r.Mixin.Events,options:{minZoom:0,maxZoom:18,tileSize:256,subdomains:"abc",errorTileUrl:"",attribution:"",zoomOffset:0,opacity:1,unloadInvisibleTiles:r.Browser.mobile,updateWhenIdle:r.Browser.mobile},initialize:function(e,t){(t=r.setOptions(this,t)).detectRetina&&r.Browser.retina&&t.maxZoom>0&&(t.tileSize=Math.floor(t.tileSize/2),t.zoomOffset++,t.minZoom>0&&t.minZoom--,this.options.maxZoom--),t.bounds&&(t.bounds=r.latLngBounds(t.bounds)),this._url=e;var n=this.options.subdomains;"string"==typeof n&&(this.options.subdomains=n.split(""))},onAdd:function(e){this._map=e,this._animated=e._zoomAnimated,this._initContainer(),e.on({viewreset:this._reset,moveend:this._update},this),this._animated&&e.on({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||(this._limitedUpdate=r.Util.limitExecByInterval(this._update,150,this),e.on("move",this._limitedUpdate,this)),this._reset(),this._update()},addTo:function(e){return e.addLayer(this),this},onRemove:function(e){this._container.parentNode.removeChild(this._container),e.off({viewreset:this._reset,moveend:this._update},this),this._animated&&e.off({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||e.off("move",this._limitedUpdate,this),this._container=null,this._map=null},bringToFront:function(){var e=this._map._panes.tilePane;return this._container&&(e.appendChild(this._container),this._setAutoZIndex(e,Math.max)),this},bringToBack:function(){var e=this._map._panes.tilePane;return this._container&&(e.insertBefore(this._container,e.firstChild),this._setAutoZIndex(e,Math.min)),this},getAttribution:function(){return this.options.attribution},getContainer:function(){return this._container},setOpacity:function(e){return this.options.opacity=e,this._map&&this._updateOpacity(),this},setZIndex:function(e){return this.options.zIndex=e,this._updateZIndex(),this},setUrl:function(e,t){return this._url=e,t||this.redraw(),this},redraw:function(){return this._map&&(this._reset({hard:!0}),this._update()),this},_updateZIndex:function(){this._container&&this.options.zIndex!==n&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(e,t){var n,i,r,o=e.children,a=-t(1/0,-1/0);for(i=0,r=o.length;r>i;i++)o[i]!==this._container&&(n=parseInt(o[i].style.zIndex,10),isNaN(n)||(a=t(a,n)));this.options.zIndex=this._container.style.zIndex=(isFinite(a)?a:0)+t(1,-1)},_updateOpacity:function(){var e,t=this._tiles;if(r.Browser.ielt9)for(e in t)r.DomUtil.setOpacity(t[e],this.options.opacity);else r.DomUtil.setOpacity(this._container,this.options.opacity)},_initContainer:function(){var e=this._map._panes.tilePane;if(!this._container){if(this._container=r.DomUtil.create("div","leaflet-layer"),this._updateZIndex(),this._animated){var t="leaflet-tile-container";this._bgBuffer=r.DomUtil.create("div",t,this._container),this._tileContainer=r.DomUtil.create("div",t,this._container)}else this._tileContainer=this._container;e.appendChild(this._container),this.options.opacity<1&&this._updateOpacity()}},_reset:function(e){for(var t in this._tiles)this.fire("tileunload",{tile:this._tiles[t]});this._tiles={},this._tilesToLoad=0,this.options.reuseTiles&&(this._unusedTiles=[]),this._tileContainer.innerHTML="",this._animated&&e&&e.hard&&this._clearBgBuffer(),this._initContainer()},_getTileSize:function(){var e=this._map,t=e.getZoom()+this.options.zoomOffset,n=this.options.maxNativeZoom,i=this.options.tileSize;return n&&t>n&&(i=Math.round(e.getZoomScale(t)/e.getZoomScale(n)*i)),i},_update:function(){if(this._map){var e=this._map,t=e.getPixelBounds(),n=e.getZoom(),i=this._getTileSize();if(!(n>this.options.maxZoom||n<this.options.minZoom)){var o=r.bounds(t.min.divideBy(i)._floor(),t.max.divideBy(i)._floor());this._addTilesFromCenterOut(o),(this.options.unloadInvisibleTiles||this.options.reuseTiles)&&this._removeOtherTiles(o)}}},_addTilesFromCenterOut:function(e){var n,i,o,a=[],s=e.getCenter();for(n=e.min.y;n<=e.max.y;n++)for(i=e.min.x;i<=e.max.x;i++)o=new r.Point(i,n),this._tileShouldBeLoaded(o)&&a.push(o);var l=a.length;if(0!==l){a.sort((function(e,t){return e.distanceTo(s)-t.distanceTo(s)}));var u=t.createDocumentFragment();for(this._tilesToLoad||this.fire("loading"),this._tilesToLoad+=l,i=0;l>i;i++)this._addTile(a[i],u);this._tileContainer.appendChild(u)}},_tileShouldBeLoaded:function(e){if(e.x+":"+e.y in this._tiles)return!1;var t=this.options;if(!t.continuousWorld){var n=this._getWrapTileNum();if(t.noWrap&&(e.x<0||e.x>=n.x)||e.y<0||e.y>=n.y)return!1}if(t.bounds){var i=this._getTileSize(),r=e.multiplyBy(i),o=r.add([i,i]),a=this._map.unproject(r),s=this._map.unproject(o);if(t.continuousWorld||t.noWrap||(a=a.wrap(),s=s.wrap()),!t.bounds.intersects([a,s]))return!1}return!0},_removeOtherTiles:function(e){var t,n,i,r;for(r in this._tiles)t=r.split(":"),n=parseInt(t[0],10),i=parseInt(t[1],10),(n<e.min.x||n>e.max.x||i<e.min.y||i>e.max.y)&&this._removeTile(r)},_removeTile:function(e){var t=this._tiles[e];this.fire("tileunload",{tile:t,url:t.src}),this.options.reuseTiles?(r.DomUtil.removeClass(t,"leaflet-tile-loaded"),this._unusedTiles.push(t)):t.parentNode===this._tileContainer&&this._tileContainer.removeChild(t),r.Browser.android||(t.onload=null,t.src=r.Util.emptyImageUrl),delete this._tiles[e]},_addTile:function(e,t){var n=this._getTilePos(e),i=this._getTile();r.DomUtil.setPosition(i,n,r.Browser.chrome),this._tiles[e.x+":"+e.y]=i,this._loadTile(i,e),
-i.parentNode!==this._tileContainer&&t.appendChild(i)},_getZoomForUrl:function(){var e=this.options,t=this._map.getZoom();return e.zoomReverse&&(t=e.maxZoom-t),t+=e.zoomOffset,e.maxNativeZoom?Math.min(t,e.maxNativeZoom):t},_getTilePos:function(e){var t=this._map.getPixelOrigin(),n=this._getTileSize();return e.multiplyBy(n).subtract(t)},getTileUrl:function(e){return r.Util.template(this._url,r.extend({s:this._getSubdomain(e),z:e.z,x:e.x,y:e.y},this.options))},_getWrapTileNum:function(){return this._map.options.crs.getSize(this._map.getZoom()).divideBy(this._getTileSize())._floor()},_adjustTilePoint:function(e){var t=this._getWrapTileNum();this.options.continuousWorld||this.options.noWrap||(e.x=(e.x%t.x+t.x)%t.x),this.options.tms&&(e.y=t.y-e.y-1),e.z=this._getZoomForUrl()},_getSubdomain:function(e){var t=Math.abs(e.x+e.y)%this.options.subdomains.length;return this.options.subdomains[t]},_getTile:function(){if(this.options.reuseTiles&&this._unusedTiles.length>0){var e=this._unusedTiles.pop();return this._resetTile(e),e}return this._createTile()},_resetTile:function(){},_createTile:function(){var e=r.DomUtil.create("img","leaflet-tile");return e.style.width=e.style.height=this._getTileSize()+"px",e.galleryimg="no",e.onselectstart=e.onmousemove=r.Util.falseFn,r.Browser.ielt9&&this.options.opacity!==n&&r.DomUtil.setOpacity(e,this.options.opacity),r.Browser.mobileWebkit3d&&(e.style.WebkitBackfaceVisibility="hidden"),e},_loadTile:function(e,t){e._layer=this,e.onload=this._tileOnLoad,e.onerror=this._tileOnError,this._adjustTilePoint(t),e.src=this.getTileUrl(t),this.fire("tileloadstart",{tile:e,url:e.src})},_tileLoaded:function(){this._tilesToLoad--,this._animated&&r.DomUtil.addClass(this._tileContainer,"leaflet-zoom-animated"),this._tilesToLoad||(this.fire("load"),this._animated&&(clearTimeout(this._clearBgBufferTimer),this._clearBgBufferTimer=setTimeout(r.bind(this._clearBgBuffer,this),500)))},_tileOnLoad:function(){var e=this._layer;this.src!==r.Util.emptyImageUrl&&(r.DomUtil.addClass(this,"leaflet-tile-loaded"),e.fire("tileload",{tile:this,url:this.src})),e._tileLoaded()},_tileOnError:function(){var e=this._layer;e.fire("tileerror",{tile:this,url:this.src});var t=e.options.errorTileUrl;t&&(this.src=t),e._tileLoaded()}}),r.tileLayer=function(e,t){return new r.TileLayer(e,t)},r.TileLayer.WMS=r.TileLayer.extend({defaultWmsParams:{service:"WMS",request:"GetMap",version:"1.1.1",layers:"",styles:"",format:"image/jpeg",transparent:!1},initialize:function(e,t){this._url=e;var n=r.extend({},this.defaultWmsParams),i=t.tileSize||this.options.tileSize;for(var o in t.detectRetina&&r.Browser.retina?n.width=n.height=2*i:n.width=n.height=i,t)this.options.hasOwnProperty(o)||"crs"===o||(n[o]=t[o]);this.wmsParams=n,r.setOptions(this,t)},onAdd:function(e){this._crs=this.options.crs||e.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var t=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[t]=this._crs.code,r.TileLayer.prototype.onAdd.call(this,e)},getTileUrl:function(e){var t=this._map,n=this.options.tileSize,i=e.multiplyBy(n),o=i.add([n,n]),a=this._crs.project(t.unproject(i,e.z)),s=this._crs.project(t.unproject(o,e.z)),l=this._wmsVersion>=1.3&&this._crs===r.CRS.EPSG4326?[s.y,a.x,a.y,s.x].join(","):[a.x,s.y,s.x,a.y].join(","),u=r.Util.template(this._url,{s:this._getSubdomain(e)});return u+r.Util.getParamString(this.wmsParams,u,!0)+"&BBOX="+l},setParams:function(e,t){return r.extend(this.wmsParams,e),t||this.redraw(),this}}),r.tileLayer.wms=function(e,t){return new r.TileLayer.WMS(e,t)},r.TileLayer.Canvas=r.TileLayer.extend({options:{async:!1},initialize:function(e){r.setOptions(this,e)},redraw:function(){for(var e in this._map&&(this._reset({hard:!0}),this._update()),this._tiles)this._redrawTile(this._tiles[e]);return this},_redrawTile:function(e){this.drawTile(e,e._tilePoint,this._map._zoom)},_createTile:function(){var e=r.DomUtil.create("canvas","leaflet-tile");return e.width=e.height=this.options.tileSize,e.onselectstart=e.onmousemove=r.Util.falseFn,e},_loadTile:function(e,t){e._layer=this,e._tilePoint=t,this._redrawTile(e),this.options.async||this.tileDrawn(e)},drawTile:function(){},tileDrawn:function(e){this._tileOnLoad.call(e)}}),r.tileLayer.canvas=function(e){return new r.TileLayer.Canvas(e)},r.ImageOverlay=r.Class.extend({includes:r.Mixin.Events,options:{opacity:1},initialize:function(e,t,n){this._url=e,this._bounds=r.latLngBounds(t),r.setOptions(this,n)},onAdd:function(e){this._map=e,this._image||this._initImage(),e._panes.overlayPane.appendChild(this._image),e.on("viewreset",this._reset,this),e.options.zoomAnimation&&r.Browser.any3d&&e.on("zoomanim",this._animateZoom,this),this._reset()},onRemove:function(e){e.getPanes().overlayPane.removeChild(this._image),e.off("viewreset",this._reset,this),e.options.zoomAnimation&&e.off("zoomanim",this._animateZoom,this)},addTo:function(e){return e.addLayer(this),this},setOpacity:function(e){return this.options.opacity=e,this._updateOpacity(),this},bringToFront:function(){return this._image&&this._map._panes.overlayPane.appendChild(this._image),this},bringToBack:function(){var e=this._map._panes.overlayPane;return this._image&&e.insertBefore(this._image,e.firstChild),this},setUrl:function(e){this._url=e,this._image.src=this._url},getAttribution:function(){return this.options.attribution},_initImage:function(){this._image=r.DomUtil.create("img","leaflet-image-layer"),this._map.options.zoomAnimation&&r.Browser.any3d?r.DomUtil.addClass(this._image,"leaflet-zoom-animated"):r.DomUtil.addClass(this._image,"leaflet-zoom-hide"),this._updateOpacity(),r.extend(this._image,{galleryimg:"no",onselectstart:r.Util.falseFn,onmousemove:r.Util.falseFn,onload:r.bind(this._onImageLoad,this),src:this._url})},_animateZoom:function(e){var t=this._map,n=this._image,i=t.getZoomScale(e.zoom),o=this._bounds.getNorthWest(),a=this._bounds.getSouthEast(),s=t._latLngToNewLayerPoint(o,e.zoom,e.center),l=t._latLngToNewLayerPoint(a,e.zoom,e.center)._subtract(s),u=s._add(l._multiplyBy(.5*(1-1/i)));n.style[r.DomUtil.TRANSFORM]=r.DomUtil.getTranslateString(u)+" scale("+i+") "},_reset:function(){var e=this._image,t=this._map.latLngToLayerPoint(this._bounds.getNorthWest()),n=this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(t);r.DomUtil.setPosition(e,t),e.style.width=n.x+"px",e.style.height=n.y+"px"},_onImageLoad:function(){this.fire("load")},_updateOpacity:function(){r.DomUtil.setOpacity(this._image,this.options.opacity)}}),r.imageOverlay=function(e,t,n){return new r.ImageOverlay(e,t,n)},r.Icon=r.Class.extend({options:{className:""},initialize:function(e){r.setOptions(this,e)},createIcon:function(e){return this._createIcon("icon",e)},createShadow:function(e){return this._createIcon("shadow",e)},_createIcon:function(e,t){var n,i=this._getIconUrl(e);if(!i){if("icon"===e)throw new Error("iconUrl not set in Icon options (see the docs).");return null}return n=t&&"IMG"===t.tagName?this._createImg(i,t):this._createImg(i),this._setIconStyles(n,e),n},_setIconStyles:function(e,t){var n,i=this.options,o=r.point(i[t+"Size"]);!(n="shadow"===t?r.point(i.shadowAnchor||i.iconAnchor):r.point(i.iconAnchor))&&o&&(n=o.divideBy(2,!0)),e.className="leaflet-marker-"+t+" "+i.className,n&&(e.style.marginLeft=-n.x+"px",e.style.marginTop=-n.y+"px"),o&&(e.style.width=o.x+"px",e.style.height=o.y+"px")},_createImg:function(e,n){return(n=n||t.createElement("img")).src=e,n},_getIconUrl:function(e){return r.Browser.retina&&this.options[e+"RetinaUrl"]?this.options[e+"RetinaUrl"]:this.options[e+"Url"]}}),r.icon=function(e){return new r.Icon(e)},r.Icon.Default=r.Icon.extend({options:{iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]},_getIconUrl:function(e){var t=e+"Url";if(this.options[t])return this.options[t];r.Browser.retina&&"icon"===e&&(e+="-2x");var n=r.Icon.Default.imagePath;if(!n)throw new Error("Couldn't autodetect L.Icon.Default.imagePath, set it manually.");return n+"/marker-"+e+".png"}}),r.Icon.Default.imagePath=function(){var e,n,i,r,o=t.getElementsByTagName("script"),a=/[\/^]leaflet[\-\._]?([\w\-\._]*)\.js\??/;for(e=0,n=o.length;n>e;e++)if((i=o[e].src).match(a))return((r=i.split(a)[0])?r+"/":"")+"images"}(),r.Marker=r.Class.extend({includes:r.Mixin.Events,options:{icon:new r.Icon.Default,title:"",alt:"",clickable:!0,draggable:!1,keyboard:!0,zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250},initialize:function(e,t){r.setOptions(this,t),this._latlng=r.latLng(e)},onAdd:function(e){this._map=e,e.on("viewreset",this.update,this),this._initIcon(),this.update(),this.fire("add"),e.options.zoomAnimation&&e.options.markerZoomAnimation&&e.on("zoomanim",this._animateZoom,this)},addTo:function(e){return e.addLayer(this),this},onRemove:function(e){this.dragging&&this.dragging.disable(),this._removeIcon(),this._removeShadow(),this.fire("remove"),e.off({viewreset:this.update,zoomanim:this._animateZoom},this),this._map=null},getLatLng:function(){return this._latlng},setLatLng:function(e){return this._latlng=r.latLng(e),this.update(),this.fire("move",{latlng:this._latlng})},setZIndexOffset:function(e){return this.options.zIndexOffset=e,this.update(),this},setIcon:function(e){return this.options.icon=e,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup),this},update:function(){return this._icon&&this._setPos(this._map.latLngToLayerPoint(this._latlng).round()),this},_initIcon:function(){var e=this.options,t=this._map,n=t.options.zoomAnimation&&t.options.markerZoomAnimation?"leaflet-zoom-animated":"leaflet-zoom-hide",i=e.icon.createIcon(this._icon),o=!1;i!==this._icon&&(this._icon&&this._removeIcon(),o=!0,e.title&&(i.title=e.title),e.alt&&(i.alt=e.alt)),r.DomUtil.addClass(i,n),e.keyboard&&(i.tabIndex="0"),this._icon=i,this._initInteraction(),e.riseOnHover&&r.DomEvent.on(i,"mouseover",this._bringToFront,this).on(i,"mouseout",this._resetZIndex,this);var a=e.icon.createShadow(this._shadow),s=!1;a!==this._shadow&&(this._removeShadow(),s=!0),a&&r.DomUtil.addClass(a,n),this._shadow=a,e.opacity<1&&this._updateOpacity();var l=this._map._panes;o&&l.markerPane.appendChild(this._icon),a&&s&&l.shadowPane.appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&r.DomEvent.off(this._icon,"mouseover",this._bringToFront).off(this._icon,"mouseout",this._resetZIndex),this._map._panes.markerPane.removeChild(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&this._map._panes.shadowPane.removeChild(this._shadow),this._shadow=null},_setPos:function(e){r.DomUtil.setPosition(this._icon,e),this._shadow&&r.DomUtil.setPosition(this._shadow,e),this._zIndex=e.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(e){this._icon.style.zIndex=this._zIndex+e},_animateZoom:function(e){var t=this._map._latLngToNewLayerPoint(this._latlng,e.zoom,e.center).round();this._setPos(t)},_initInteraction:function(){if(this.options.clickable){var e=this._icon,t=["dblclick","mousedown","mouseover","mouseout","contextmenu"];r.DomUtil.addClass(e,"leaflet-clickable"),r.DomEvent.on(e,"click",this._onMouseClick,this),r.DomEvent.on(e,"keypress",this._onKeyPress,this);for(var n=0;n<t.length;n++)r.DomEvent.on(e,t[n],this._fireMouseEvent,this);r.Handler.MarkerDrag&&(this.dragging=new r.Handler.MarkerDrag(this),this.options.draggable&&this.dragging.enable())}},_onMouseClick:function(e){var t=this.dragging&&this.dragging.moved();(this.hasEventListeners(e.type)||t)&&r.DomEvent.stopPropagation(e),t||(this.dragging&&this.dragging._enabled||!this._map.dragging||!this._map.dragging.moved())&&this.fire(e.type,{originalEvent:e,latlng:this._latlng})},_onKeyPress:function(e){13===e.keyCode&&this.fire("click",{originalEvent:e,latlng:this._latlng})},_fireMouseEvent:function(e){this.fire(e.type,{originalEvent:e,latlng:this._latlng}),"contextmenu"===e.type&&this.hasEventListeners(e.type)&&r.DomEvent.preventDefault(e),"mousedown"!==e.type?r.DomEvent.stopPropagation(e):r.DomEvent.preventDefault(e)},setOpacity:function(e){return this.options.opacity=e,this._map&&this._updateOpacity(),this},_updateOpacity:function(){r.DomUtil.setOpacity(this._icon,this.options.opacity),this._shadow&&r.DomUtil.setOpacity(this._shadow,this.options.opacity)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)}}),r.marker=function(e,t){return new r.Marker(e,t)},r.DivIcon=r.Icon.extend({options:{iconSize:[12,12],className:"leaflet-div-icon",html:!1},createIcon:function(e){var n=e&&"DIV"===e.tagName?e:t.createElement("div"),i=this.options;return!1!==i.html?n.innerHTML=i.html:n.innerHTML="",i.bgPos&&(n.style.backgroundPosition=-i.bgPos.x+"px "+-i.bgPos.y+"px"),this._setIconStyles(n,"icon"),n},createShadow:function(){return null}}),r.divIcon=function(e){return new r.DivIcon(e)},r.Map.mergeOptions({closePopupOnClick:!0}),r.Popup=r.Class.extend({includes:r.Mixin.Events,options:{minWidth:50,maxWidth:300,autoPan:!0,closeButton:!0,offset:[0,7],autoPanPadding:[5,5],keepInView:!1,className:"",zoomAnimation:!0},initialize:function(e,t){r.setOptions(this,e),this._source=t,this._animated=r.Browser.any3d&&this.options.zoomAnimation,this._isOpen=!1},onAdd:function(e){this._map=e,this._container||this._initLayout();var t=e.options.fadeAnimation;t&&r.DomUtil.setOpacity(this._container,0),e._panes.popupPane.appendChild(this._container),e.on(this._getEvents(),this),this.update(),t&&r.DomUtil.setOpacity(this._container,1),this.fire("open"),e.fire("popupopen",{popup:this}),this._source&&this._source.fire("popupopen",{popup:this})},addTo:function(e){return e.addLayer(this),this},openOn:function(e){return e.openPopup(this),this},onRemove:function(e){e._panes.popupPane.removeChild(this._container),r.Util.falseFn(this._container.offsetWidth),e.off(this._getEvents(),this),e.options.fadeAnimation&&r.DomUtil.setOpacity(this._container,0),this._map=null,this.fire("close"),e.fire("popupclose",{popup:this}),this._source&&this._source.fire("popupclose",{popup:this})},getLatLng:function(){return this._latlng},setLatLng:function(e){return this._latlng=r.latLng(e),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(e){return this._content=e,this.update(),this},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},_getEvents:function(){var e={viewreset:this._updatePosition};return this._animated&&(e.zoomanim=this._zoomAnimation),("closeOnClick"in this.options?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(e.preclick=this._close),this.options.keepInView&&(e.moveend=this._adjustPan),e},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var e,t="leaflet-popup",n=t+" "+this.options.className+" leaflet-zoom-"+(this._animated?"animated":"hide"),i=this._container=r.DomUtil.create("div",n);this.options.closeButton&&((e=this._closeButton=r.DomUtil.create("a",t+"-close-button",i)).href="#close",e.innerHTML="&#215;",r.DomEvent.disableClickPropagation(e),r.DomEvent.on(e,"click",this._onCloseButtonClick,this));var o=this._wrapper=r.DomUtil.create("div",t+"-content-wrapper",i);r.DomEvent.disableClickPropagation(o),this._contentNode=r.DomUtil.create("div",t+"-content",o),r.DomEvent.disableScrollPropagation(this._contentNode),r.DomEvent.on(o,"contextmenu",r.DomEvent.stopPropagation),this._tipContainer=r.DomUtil.create("div",t+"-tip-container",i),this._tip=r.DomUtil.create("div",t+"-tip",this._tipContainer)},_updateContent:function(){if(this._content){if("string"==typeof this._content)this._contentNode.innerHTML=this._content;else{for(;this._contentNode.hasChildNodes();)this._contentNode.removeChild(this._contentNode.firstChild);this._contentNode.appendChild(this._content)}this.fire("contentupdate")}},_updateLayout:function(){var e=this._contentNode,t=e.style;t.width="",t.whiteSpace="nowrap";var n=e.offsetWidth;n=Math.min(n,this.options.maxWidth),n=Math.max(n,this.options.minWidth),t.width=n+1+"px",t.whiteSpace="",t.height="";var i=e.offsetHeight,o=this.options.maxHeight,a="leaflet-popup-scrolled";o&&i>o?(t.height=o+"px",r.DomUtil.addClass(e,a)):r.DomUtil.removeClass(e,a),this._containerWidth=this._container.offsetWidth},_updatePosition:function(){if(this._map){var e=this._map.latLngToLayerPoint(this._latlng),t=this._animated,n=r.point(this.options.offset);t&&r.DomUtil.setPosition(this._container,e),this._containerBottom=-n.y-(t?0:e.y),this._containerLeft=-Math.round(this._containerWidth/2)+n.x+(t?0:e.x),this._container.style.bottom=this._containerBottom+"px",this._container.style.left=this._containerLeft+"px"}},_zoomAnimation:function(e){var t=this._map._latLngToNewLayerPoint(this._latlng,e.zoom,e.center);r.DomUtil.setPosition(this._container,t)},_adjustPan:function(){if(this.options.autoPan){var e=this._map,t=this._container.offsetHeight,n=this._containerWidth,i=new r.Point(this._containerLeft,-t-this._containerBottom);this._animated&&i._add(r.DomUtil.getPosition(this._container));var o=e.layerPointToContainerPoint(i),a=r.point(this.options.autoPanPadding),s=r.point(this.options.autoPanPaddingTopLeft||a),l=r.point(this.options.autoPanPaddingBottomRight||a),u=e.getSize(),c=0,d=0;o.x+n+l.x>u.x&&(c=o.x+n-u.x+l.x),o.x-c-s.x<0&&(c=o.x-s.x),o.y+t+l.y>u.y&&(d=o.y+t-u.y+l.y),o.y-d-s.y<0&&(d=o.y-s.y),(c||d)&&e.fire("autopanstart").panBy([c,d])}},_onCloseButtonClick:function(e){this._close(),r.DomEvent.stop(e)}}),r.popup=function(e,t){return new r.Popup(e,t)},r.Map.include({openPopup:function(e,t,n){if(this.closePopup(),!(e instanceof r.Popup)){var i=e;e=new r.Popup(n).setLatLng(t).setContent(i)}return e._isOpen=!0,this._popup=e,this.addLayer(e)},closePopup:function(e){return e&&e!==this._popup||(e=this._popup,this._popup=null),e&&(this.removeLayer(e),e._isOpen=!1),this}}),r.Marker.include({openPopup:function(){return this._popup&&this._map&&!this._map.hasLayer(this._popup)&&(this._popup.setLatLng(this._latlng),this._map.openPopup(this._popup)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(){return this._popup&&(this._popup._isOpen?this.closePopup():this.openPopup()),this},bindPopup:function(e,t){var n=r.point(this.options.icon.options.popupAnchor||[0,0]);return n=n.add(r.Popup.prototype.options.offset),t&&t.offset&&(n=n.add(t.offset)),t=r.extend({offset:n},t),this._popupHandlersAdded||(this.on("click",this.togglePopup,this).on("remove",this.closePopup,this).on("move",this._movePopup,this),this._popupHandlersAdded=!0),e instanceof r.Popup?(r.setOptions(e,t),this._popup=e,e._source=this):this._popup=new r.Popup(t,this).setContent(e),this},setPopupContent:function(e){return this._popup&&this._popup.setContent(e),this},unbindPopup:function(){return this._popup&&(this._popup=null,this.off("click",this.togglePopup,this).off("remove",this.closePopup,this).off("move",this._movePopup,this),this._popupHandlersAdded=!1),this},getPopup:function(){return this._popup},_movePopup:function(e){this._popup.setLatLng(e.latlng)}}),r.LayerGroup=r.Class.extend({initialize:function(e){var t,n;if(this._layers={},e)for(t=0,n=e.length;n>t;t++)this.addLayer(e[t])},addLayer:function(e){var t=this.getLayerId(e);return this._layers[t]=e,this._map&&this._map.addLayer(e),this},removeLayer:function(e){var t=e in this._layers?e:this.getLayerId(e);return this._map&&this._layers[t]&&this._map.removeLayer(this._layers[t]),delete this._layers[t],this},hasLayer:function(e){return!!e&&(e in this._layers||this.getLayerId(e)in this._layers)},clearLayers:function(){return this.eachLayer(this.removeLayer,this),this},invoke:function(e){var t,n,i=Array.prototype.slice.call(arguments,1);for(t in this._layers)(n=this._layers[t])[e]&&n[e].apply(n,i);return this},onAdd:function(e){this._map=e,this.eachLayer(e.addLayer,e)},onRemove:function(e){this.eachLayer(e.removeLayer,e),this._map=null},addTo:function(e){return e.addLayer(this),this},eachLayer:function(e,t){for(var n in this._layers)e.call(t,this._layers[n]);return this},getLayer:function(e){return this._layers[e]},getLayers:function(){var e=[];for(var t in this._layers)e.push(this._layers[t]);return e},setZIndex:function(e){return this.invoke("setZIndex",e)},getLayerId:function(e){return r.stamp(e)}}),r.layerGroup=function(e){return new r.LayerGroup(e)},r.FeatureGroup=r.LayerGroup.extend({includes:r.Mixin.Events,statics:{EVENTS:"click dblclick mouseover mouseout mousemove contextmenu popupopen popupclose"},addLayer:function(e){return this.hasLayer(e)?this:("on"in e&&e.on(r.FeatureGroup.EVENTS,this._propagateEvent,this),r.LayerGroup.prototype.addLayer.call(this,e),this._popupContent&&e.bindPopup&&e.bindPopup(this._popupContent,this._popupOptions),this.fire("layeradd",{layer:e}))},removeLayer:function(e){return this.hasLayer(e)?(e in this._layers&&(e=this._layers[e]),"off"in e&&e.off(r.FeatureGroup.EVENTS,this._propagateEvent,this),r.LayerGroup.prototype.removeLayer.call(this,e),this._popupContent&&this.invoke("unbindPopup"),this.fire("layerremove",{layer:e})):this},bindPopup:function(e,t){return this._popupContent=e,this._popupOptions=t,this.invoke("bindPopup",e,t)},openPopup:function(e){for(var t in this._layers){this._layers[t].openPopup(e);break}return this},setStyle:function(e){return this.invoke("setStyle",e)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var e=new r.LatLngBounds;return this.eachLayer((function(t){e.extend(t instanceof r.Marker?t.getLatLng():t.getBounds())})),e},_propagateEvent:function(e){e=r.extend({layer:e.target,target:this},e),this.fire(e.type,e)}}),r.featureGroup=function(e){return new r.FeatureGroup(e)},r.Path=r.Class.extend({includes:[r.Mixin.Events],statics:{CLIP_PADDING:function(){var t=((r.Browser.mobile?1280:2e3)/Math.max(e.outerWidth,e.outerHeight)-1)/2;return Math.max(0,Math.min(.5,t))}()},options:{stroke:!0,color:"#0033ff",dashArray:null,lineCap:null,lineJoin:null,weight:5,opacity:.5,fill:!1,fillColor:null,fillOpacity:.2,clickable:!0},initialize:function(e){r.setOptions(this,e)},onAdd:function(e){this._map=e,this._container||(this._initElements(),this._initEvents()),this.projectLatlngs(),this._updatePath(),this._container&&this._map._pathRoot.appendChild(this._container),this.fire("add"),e.on({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},addTo:function(e){return e.addLayer(this),this},onRemove:function(e){e._pathRoot.removeChild(this._container),this.fire("remove"),this._map=null,r.Browser.vml&&(this._container=null,this._stroke=null,this._fill=null),e.off({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},projectLatlngs:function(){},setStyle:function(e){return r.setOptions(this,e),this._container&&this._updateStyle(),this},redraw:function(){return this._map&&(this.projectLatlngs(),this._updatePath()),this}}),r.Map.include({_updatePathViewport:function(){var e=r.Path.CLIP_PADDING,t=this.getSize(),n=r.DomUtil.getPosition(this._mapPane).multiplyBy(-1)._subtract(t.multiplyBy(e)._round()),i=n.add(t.multiplyBy(1+2*e)._round());this._pathViewport=new r.Bounds(n,i)}}),r.Path.SVG_NS="http://www.w3.org/2000/svg",r.Browser.svg=!(!t.createElementNS||!t.createElementNS(r.Path.SVG_NS,"svg").createSVGRect),r.Path=r.Path.extend({statics:{SVG:r.Browser.svg},bringToFront:function(){var e=this._map._pathRoot,t=this._container;return t&&e.lastChild!==t&&e.appendChild(t),this},bringToBack:function(){var e=this._map._pathRoot,t=this._container,n=e.firstChild;return t&&n!==t&&e.insertBefore(t,n),this},getPathString:function(){},_createElement:function(e){return t.createElementNS(r.Path.SVG_NS,e)},_initElements:function(){this._map._initPathRoot(),this._initPath(),this._initStyle()},_initPath:function(){this._container=this._createElement("g"),this._path=this._createElement("path"),this.options.className&&r.DomUtil.addClass(this._path,this.options.className),this._container.appendChild(this._path)},_initStyle:function(){this.options.stroke&&(this._path.setAttribute("stroke-linejoin","round"),this._path.setAttribute("stroke-linecap","round")),this.options.fill&&this._path.setAttribute("fill-rule","evenodd"),this.options.pointerEvents&&this._path.setAttribute("pointer-events",this.options.pointerEvents),this.options.clickable||this.options.pointerEvents||this._path.setAttribute("pointer-events","none"),this._updateStyle()},_updateStyle:function(){this.options.stroke?(this._path.setAttribute("stroke",this.options.color),this._path.setAttribute("stroke-opacity",this.options.opacity),this._path.setAttribute("stroke-width",this.options.weight),this.options.dashArray?this._path.setAttribute("stroke-dasharray",this.options.dashArray):this._path.removeAttribute("stroke-dasharray"),this.options.lineCap&&this._path.setAttribute("stroke-linecap",this.options.lineCap),this.options.lineJoin&&this._path.setAttribute("stroke-linejoin",this.options.lineJoin)):this._path.setAttribute("stroke","none"),this.options.fill?(this._path.setAttribute("fill",this.options.fillColor||this.options.color),this._path.setAttribute("fill-opacity",this.options.fillOpacity)):this._path.setAttribute("fill","none")},_updatePath:function(){var e=this.getPathString();e||(e="M0 0"),this._path.setAttribute("d",e)},_initEvents:function(){if(this.options.clickable){(r.Browser.svg||!r.Browser.vml)&&r.DomUtil.addClass(this._path,"leaflet-clickable"),r.DomEvent.on(this._container,"click",this._onMouseClick,this);for(var e=["dblclick","mousedown","mouseover","mouseout","mousemove","contextmenu"],t=0;t<e.length;t++)r.DomEvent.on(this._container,e[t],this._fireMouseEvent,this)}},_onMouseClick:function(e){this._map.dragging&&this._map.dragging.moved()||this._fireMouseEvent(e)},_fireMouseEvent:function(e){if(this._map&&this.hasEventListeners(e.type)){var t=this._map,n=t.mouseEventToContainerPoint(e),i=t.containerPointToLayerPoint(n),o=t.layerPointToLatLng(i);this.fire(e.type,{latlng:o,layerPoint:i,containerPoint:n,originalEvent:e}),"contextmenu"===e.type&&r.DomEvent.preventDefault(e),"mousemove"!==e.type&&r.DomEvent.stopPropagation(e)}}}),r.Map.include({_initPathRoot:function(){this._pathRoot||(this._pathRoot=r.Path.prototype._createElement("svg"),this._panes.overlayPane.appendChild(this._pathRoot),this.options.zoomAnimation&&r.Browser.any3d?(r.DomUtil.addClass(this._pathRoot,"leaflet-zoom-animated"),this.on({zoomanim:this._animatePathZoom,zoomend:this._endPathZoom})):r.DomUtil.addClass(this._pathRoot,"leaflet-zoom-hide"),this.on("moveend",this._updateSvgViewport),this._updateSvgViewport())},_animatePathZoom:function(e){var t=this.getZoomScale(e.zoom),n=this._getCenterOffset(e.center)._multiplyBy(-t)._add(this._pathViewport.min);this._pathRoot.style[r.DomUtil.TRANSFORM]=r.DomUtil.getTranslateString(n)+" scale("+t+") ",this._pathZooming=!0},_endPathZoom:function(){this._pathZooming=!1},_updateSvgViewport:function(){if(!this._pathZooming){this._updatePathViewport();var e=this._pathViewport,t=e.min,n=e.max,i=n.x-t.x,o=n.y-t.y,a=this._pathRoot,s=this._panes.overlayPane;r.Browser.mobileWebkit&&s.removeChild(a),r.DomUtil.setPosition(a,t),a.setAttribute("width",i),a.setAttribute("height",o),a.setAttribute("viewBox",[t.x,t.y,i,o].join(" ")),r.Browser.mobileWebkit&&s.appendChild(a)}}}),r.Path.include({bindPopup:function(e,t){return e instanceof r.Popup?this._popup=e:((!this._popup||t)&&(this._popup=new r.Popup(t,this)),this._popup.setContent(e)),this._popupHandlersAdded||(this.on("click",this._openPopup,this).on("remove",this.closePopup,this),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this._popup=null,this.off("click",this._openPopup).off("remove",this.closePopup),this._popupHandlersAdded=!1),this},openPopup:function(e){return this._popup&&(e=e||this._latlng||this._latlngs[Math.floor(this._latlngs.length/2)],this._openPopup({latlng:e})),this},closePopup:function(){return this._popup&&this._popup._close(),this},_openPopup:function(e){this._popup.setLatLng(e.latlng),this._map.openPopup(this._popup)}}),r.Browser.vml=!r.Browser.svg&&function(){try{var e=t.createElement("div");e.innerHTML='<v:shape adj="1"/>';var n=e.firstChild;return n.style.behavior="url(#default#VML)",n&&"object"==typeof n.adj}catch(e){return!1}}(),r.Path=r.Browser.svg||!r.Browser.vml?r.Path:r.Path.extend({statics:{VML:!0,CLIP_PADDING:.02},_createElement:function(){try{return t.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(e){return t.createElement("<lvml:"+e+' class="lvml">')}}catch(e){return function(e){return t.createElement("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),_initPath:function(){var e=this._container=this._createElement("shape");r.DomUtil.addClass(e,"leaflet-vml-shape"+(this.options.className?" "+this.options.className:"")),this.options.clickable&&r.DomUtil.addClass(e,"leaflet-clickable"),e.coordsize="1 1",this._path=this._createElement("path"),e.appendChild(this._path),this._map._pathRoot.appendChild(e)},_initStyle:function(){this._updateStyle()},_updateStyle:function(){var e=this._stroke,t=this._fill,n=this.options,i=this._container;i.stroked=n.stroke,i.filled=n.fill,n.stroke?(e||((e=this._stroke=this._createElement("stroke")).endcap="round",i.appendChild(e)),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=r.Util.isArray(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",n.lineCap&&(e.endcap=n.lineCap.replace("butt","flat")),n.lineJoin&&(e.joinstyle=n.lineJoin)):e&&(i.removeChild(e),this._stroke=null),n.fill?(t||(t=this._fill=this._createElement("fill"),i.appendChild(t)),t.color=n.fillColor||n.color,t.opacity=n.fillOpacity):t&&(i.removeChild(t),this._fill=null)},_updatePath:function(){var e=this._container.style;e.display="none",this._path.v=this.getPathString()+" ",e.display=""}}),r.Map.include(r.Browser.svg||!r.Browser.vml?{}:{_initPathRoot:function(){if(!this._pathRoot){var e=this._pathRoot=t.createElement("div");e.className="leaflet-vml-container",this._panes.overlayPane.appendChild(e),this.on("moveend",this._updatePathViewport),this._updatePathViewport()}}}),r.Browser.canvas=!!t.createElement("canvas").getContext,r.Path=r.Path.SVG&&!e.L_PREFER_CANVAS||!r.Browser.canvas?r.Path:r.Path.extend({statics:{CANVAS:!0,SVG:!1},redraw:function(){return this._map&&(this.projectLatlngs(),this._requestUpdate()),this},setStyle:function(e){return r.setOptions(this,e),this._map&&(this._updateStyle(),this._requestUpdate()),this},onRemove:function(e){e.off("viewreset",this.projectLatlngs,this).off("moveend",this._updatePath,this),this.options.clickable&&(this._map.off("click",this._onClick,this),this._map.off("mousemove",this._onMouseMove,this)),this._requestUpdate(),this.fire("remove"),this._map=null},_requestUpdate:function(){this._map&&!r.Path._updateRequest&&(r.Path._updateRequest=r.Util.requestAnimFrame(this._fireMapMoveEnd,this._map))},_fireMapMoveEnd:function(){r.Path._updateRequest=null,this.fire("moveend")},_initElements:function(){this._map._initPathRoot(),this._ctx=this._map._canvasCtx},_updateStyle:function(){var e=this.options;e.stroke&&(this._ctx.lineWidth=e.weight,this._ctx.strokeStyle=e.color),e.fill&&(this._ctx.fillStyle=e.fillColor||e.color),e.lineCap&&(this._ctx.lineCap=e.lineCap),e.lineJoin&&(this._ctx.lineJoin=e.lineJoin)},_drawPath:function(){var e,t,n,i,o,a;for(this._ctx.beginPath(),e=0,n=this._parts.length;n>e;e++){for(t=0,i=this._parts[e].length;i>t;t++)o=this._parts[e][t],a=(0===t?"move":"line")+"To",this._ctx[a](o.x,o.y);this instanceof r.Polygon&&this._ctx.closePath()}},_checkIfEmpty:function(){return!this._parts.length},_updatePath:function(){if(!this._checkIfEmpty()){var e=this._ctx,t=this.options;this._drawPath(),e.save(),this._updateStyle(),t.fill&&(e.globalAlpha=t.fillOpacity,e.fill(t.fillRule||"evenodd")),t.stroke&&(e.globalAlpha=t.opacity,e.stroke()),e.restore()}},_initEvents:function(){this.options.clickable&&(this._map.on("mousemove",this._onMouseMove,this),this._map.on("click dblclick contextmenu",this._fireMouseEvent,this))},_fireMouseEvent:function(e){this._containsPoint(e.layerPoint)&&this.fire(e.type,e)},_onMouseMove:function(e){this._map&&!this._map._animatingZoom&&(this._containsPoint(e.layerPoint)?(this._ctx.canvas.style.cursor="pointer",this._mouseInside=!0,this.fire("mouseover",e)):this._mouseInside&&(this._ctx.canvas.style.cursor="",this._mouseInside=!1,this.fire("mouseout",e)))}}),r.Map.include(r.Path.SVG&&!e.L_PREFER_CANVAS||!r.Browser.canvas?{}:{_initPathRoot:function(){var e,n=this._pathRoot;n||((n=this._pathRoot=t.createElement("canvas")).style.position="absolute",(e=this._canvasCtx=n.getContext("2d")).lineCap="round",e.lineJoin="round",this._panes.overlayPane.appendChild(n),this.options.zoomAnimation&&(this._pathRoot.className="leaflet-zoom-animated",this.on("zoomanim",this._animatePathZoom),this.on("zoomend",this._endPathZoom)),this.on("moveend",this._updateCanvasViewport),this._updateCanvasViewport())},_updateCanvasViewport:function(){if(!this._pathZooming){this._updatePathViewport();var e=this._pathViewport,t=e.min,n=e.max.subtract(t),i=this._pathRoot;r.DomUtil.setPosition(i,t),i.width=n.x,i.height=n.y,i.getContext("2d").translate(-t.x,-t.y)}}}),r.LineUtil={simplify:function(e,t){if(!t||!e.length)return e.slice();var n=t*t;return e=this._reducePoints(e,n),this._simplifyDP(e,n)},pointToSegmentDistance:function(e,t,n){return Math.sqrt(this._sqClosestPointOnSegment(e,t,n,!0))},closestPointOnSegment:function(e,t,n){return this._sqClosestPointOnSegment(e,t,n)},_simplifyDP:function(e,t){var i=e.length,r=new(typeof Uint8Array!=n+""?Uint8Array:Array)(i);r[0]=r[i-1]=1,this._simplifyDPStep(e,r,t,0,i-1);var o,a=[];for(o=0;i>o;o++)r[o]&&a.push(e[o]);return a},_simplifyDPStep:function(e,t,n,i,r){var o,a,s,l=0;for(a=i+1;r-1>=a;a++)(s=this._sqClosestPointOnSegment(e[a],e[i],e[r],!0))>l&&(o=a,l=s);l>n&&(t[o]=1,this._simplifyDPStep(e,t,n,i,o),this._simplifyDPStep(e,t,n,o,r))},_reducePoints:function(e,t){for(var n=[e[0]],i=1,r=0,o=e.length;o>i;i++)this._sqDist(e[i],e[r])>t&&(n.push(e[i]),r=i);return o-1>r&&n.push(e[o-1]),n},clipSegment:function(e,t,n,i){var r,o,a,s=i?this._lastCode:this._getBitCode(e,n),l=this._getBitCode(t,n);for(this._lastCode=l;;){if(!(s|l))return[e,t];if(s&l)return!1;r=s||l,o=this._getEdgeIntersection(e,t,r,n),a=this._getBitCode(o,n),r===s?(e=o,s=a):(t=o,l=a)}},_getEdgeIntersection:function(e,t,n,i){var o=t.x-e.x,a=t.y-e.y,s=i.min,l=i.max;return 8&n?new r.Point(e.x+o*(l.y-e.y)/a,l.y):4&n?new r.Point(e.x+o*(s.y-e.y)/a,s.y):2&n?new r.Point(l.x,e.y+a*(l.x-e.x)/o):1&n?new r.Point(s.x,e.y+a*(s.x-e.x)/o):void 0},_getBitCode:function(e,t){var n=0;return e.x<t.min.x?n|=1:e.x>t.max.x&&(n|=2),e.y<t.min.y?n|=4:e.y>t.max.y&&(n|=8),n},_sqDist:function(e,t){var n=t.x-e.x,i=t.y-e.y;return n*n+i*i},_sqClosestPointOnSegment:function(e,t,n,i){var o,a=t.x,s=t.y,l=n.x-a,u=n.y-s,c=l*l+u*u;return c>0&&((o=((e.x-a)*l+(e.y-s)*u)/c)>1?(a=n.x,s=n.y):o>0&&(a+=l*o,s+=u*o)),l=e.x-a,u=e.y-s,i?l*l+u*u:new r.Point(a,s)}},r.Polyline=r.Path.extend({initialize:function(e,t){r.Path.prototype.initialize.call(this,t),this._latlngs=this._convertLatLngs(e)},options:{smoothFactor:1,noClip:!1},projectLatlngs:function(){this._originalPoints=[];for(var e=0,t=this._latlngs.length;t>e;e++)this._originalPoints[e]=this._map.latLngToLayerPoint(this._latlngs[e])},getPathString:function(){for(var e=0,t=this._parts.length,n="";t>e;e++)n+=this._getPathPartStr(this._parts[e]);return n},getLatLngs:function(){return this._latlngs},setLatLngs:function(e){return this._latlngs=this._convertLatLngs(e),this.redraw()},addLatLng:function(e){return this._latlngs.push(r.latLng(e)),this.redraw()},spliceLatLngs:function(){var e=[].splice.apply(this._latlngs,arguments);return this._convertLatLngs(this._latlngs,!0),this.redraw(),e},closestLayerPoint:function(e){for(var t,n,i=1/0,o=this._parts,a=null,s=0,l=o.length;l>s;s++)for(var u=o[s],c=1,d=u.length;d>c;c++){t=u[c-1],n=u[c];var h=r.LineUtil._sqClosestPointOnSegment(e,t,n,!0);i>h&&(i=h,a=r.LineUtil._sqClosestPointOnSegment(e,t,n))}return a&&(a.distance=Math.sqrt(i)),a},getBounds:function(){return new r.LatLngBounds(this.getLatLngs())},_convertLatLngs:function(e,t){var n,i,o=t?e:[];for(n=0,i=e.length;i>n;n++){if(r.Util.isArray(e[n])&&"number"!=typeof e[n][0])return;o[n]=r.latLng(e[n])}return o},_initEvents:function(){r.Path.prototype._initEvents.call(this)},_getPathPartStr:function(e){for(var t,n=r.Path.VML,i=0,o=e.length,a="";o>i;i++)t=e[i],n&&t._round(),a+=(i?"L":"M")+t.x+" "+t.y;return a},_clipPoints:function(){var e,t,n,i=this._originalPoints,o=i.length;if(this.options.noClip)this._parts=[i];else{this._parts=[];var a=this._parts,s=this._map._pathViewport,l=r.LineUtil;for(e=0,t=0;o-1>e;e++)(n=l.clipSegment(i[e],i[e+1],s,e))&&(a[t]=a[t]||[],a[t].push(n[0]),(n[1]!==i[e+1]||e===o-2)&&(a[t].push(n[1]),t++))}},_simplifyPoints:function(){for(var e=this._parts,t=r.LineUtil,n=0,i=e.length;i>n;n++)e[n]=t.simplify(e[n],this.options.smoothFactor)},_updatePath:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),r.Path.prototype._updatePath.call(this))}}),r.polyline=function(e,t){return new r.Polyline(e,t)},r.PolyUtil={},r.PolyUtil.clipPolygon=function(e,t){var n,i,o,a,s,l,u,c,d,h=[1,4,2,8],f=r.LineUtil;for(i=0,u=e.length;u>i;i++)e[i]._code=f._getBitCode(e[i],t);for(a=0;4>a;a++){for(c=h[a],n=[],i=0,o=(u=e.length)-1;u>i;o=i++)s=e[i],l=e[o],s._code&c?l._code&c||((d=f._getEdgeIntersection(l,s,c,t))._code=f._getBitCode(d,t),n.push(d)):(l._code&c&&((d=f._getEdgeIntersection(l,s,c,t))._code=f._getBitCode(d,t),n.push(d)),n.push(s));e=n}return e},r.Polygon=r.Polyline.extend({options:{fill:!0},initialize:function(e,t){r.Polyline.prototype.initialize.call(this,e,t),this._initWithHoles(e)},_initWithHoles:function(e){var t,n,i;if(e&&r.Util.isArray(e[0])&&"number"!=typeof e[0][0])for(this._latlngs=this._convertLatLngs(e[0]),this._holes=e.slice(1),t=0,n=this._holes.length;n>t;t++)(i=this._holes[t]=this._convertLatLngs(this._holes[t]))[0].equals(i[i.length-1])&&i.pop();(e=this._latlngs).length>=2&&e[0].equals(e[e.length-1])&&e.pop()},projectLatlngs:function(){var e,t,n,i;if(r.Polyline.prototype.projectLatlngs.call(this),this._holePoints=[],this._holes)for(e=0,n=this._holes.length;n>e;e++)for(this._holePoints[e]=[],t=0,i=this._holes[e].length;i>t;t++)this._holePoints[e][t]=this._map.latLngToLayerPoint(this._holes[e][t])},setLatLngs:function(e){return e&&r.Util.isArray(e[0])&&"number"!=typeof e[0][0]?(this._initWithHoles(e),this.redraw()):r.Polyline.prototype.setLatLngs.call(this,e)},_clipPoints:function(){var e=this._originalPoints,t=[];if(this._parts=[e].concat(this._holePoints),!this.options.noClip){for(var n=0,i=this._parts.length;i>n;n++){var o=r.PolyUtil.clipPolygon(this._parts[n],this._map._pathViewport);o.length&&t.push(o)}this._parts=t}},_getPathPartStr:function(e){return r.Polyline.prototype._getPathPartStr.call(this,e)+(r.Browser.svg?"z":"x")}}),r.polygon=function(e,t){return new r.Polygon(e,t)},function(){function e(e){return r.FeatureGroup.extend({initialize:function(e,t){this._layers={},this._options=t,this.setLatLngs(e)},setLatLngs:function(t){var n=0,i=t.length;for(this.eachLayer((function(e){i>n?e.setLatLngs(t[n++]):this.removeLayer(e)}),this);i>n;)this.addLayer(new e(t[n++],this._options));return this},getLatLngs:function(){var e=[];return this.eachLayer((function(t){e.push(t.getLatLngs())})),e}})}r.MultiPolyline=e(r.Polyline),r.MultiPolygon=e(r.Polygon),r.multiPolyline=function(e,t){return new r.MultiPolyline(e,t)},r.multiPolygon=function(e,t){return new r.MultiPolygon(e,t)}}(),r.Rectangle=r.Polygon.extend({initialize:function(e,t){r.Polygon.prototype.initialize.call(this,this._boundsToLatLngs(e),t)},setBounds:function(e){this.setLatLngs(this._boundsToLatLngs(e))},_boundsToLatLngs:function(e){return[(e=r.latLngBounds(e)).getSouthWest(),e.getNorthWest(),e.getNorthEast(),e.getSouthEast()]}}),r.rectangle=function(e,t){return new r.Rectangle(e,t)},r.Circle=r.Path.extend({initialize:function(e,t,n){r.Path.prototype.initialize.call(this,n),this._latlng=r.latLng(e),this._mRadius=t},options:{fill:!0},setLatLng:function(e){return this._latlng=r.latLng(e),this.redraw()},setRadius:function(e){return this._mRadius=e,this.redraw()},projectLatlngs:function(){var e=this._getLngRadius(),t=this._latlng,n=this._map.latLngToLayerPoint([t.lat,t.lng-e]);this._point=this._map.latLngToLayerPoint(t),this._radius=Math.max(this._point.x-n.x,1)},getBounds:function(){var e=this._getLngRadius(),t=this._mRadius/40075017*360,n=this._latlng;return new r.LatLngBounds([n.lat-t,n.lng-e],[n.lat+t,n.lng+e])},getLatLng:function(){return this._latlng},getPathString:function(){var e=this._point,t=this._radius;return this._checkIfEmpty()?"":r.Browser.svg?"M"+e.x+","+(e.y-t)+"A"+t+","+t+",0,1,1,"+(e.x-.1)+","+(e.y-t)+" z":(e._round(),t=Math.round(t),"AL "+e.x+","+e.y+" "+t+","+t+" 0,23592600")},getRadius:function(){return this._mRadius},_getLatRadius:function(){return this._mRadius/40075017*360},_getLngRadius:function(){return this._getLatRadius()/Math.cos(r.LatLng.DEG_TO_RAD*this._latlng.lat)},_checkIfEmpty:function(){if(!this._map)return!1;var e=this._map._pathViewport,t=this._radius,n=this._point;return n.x-t>e.max.x||n.y-t>e.max.y||n.x+t<e.min.x||n.y+t<e.min.y}}),r.circle=function(e,t,n){return new r.Circle(e,t,n)},r.CircleMarker=r.Circle.extend({options:{radius:10,weight:2},initialize:function(e,t){r.Circle.prototype.initialize.call(this,e,null,t),this._radius=this.options.radius},projectLatlngs:function(){this._point=this._map.latLngToLayerPoint(this._latlng)},_updateStyle:function(){r.Circle.prototype._updateStyle.call(this),this.setRadius(this.options.radius)},setLatLng:function(e){return r.Circle.prototype.setLatLng.call(this,e),this._popup&&this._popup._isOpen&&this._popup.setLatLng(e),this},setRadius:function(e){return this.options.radius=this._radius=e,this.redraw()},getRadius:function(){return this._radius}}),r.circleMarker=function(e,t){return new r.CircleMarker(e,t)},r.Polyline.include(r.Path.CANVAS?{_containsPoint:function(e,t){var n,i,o,a,s,l,u=this.options.weight/2;for(r.Browser.touch&&(u+=10),n=0,a=this._parts.length;a>n;n++)for(i=0,o=(s=(l=this._parts[n]).length)-1;s>i;o=i++)if((t||0!==i)&&u>=r.LineUtil.pointToSegmentDistance(e,l[o],l[i]))return!0;return!1}}:{}),r.Polygon.include(r.Path.CANVAS?{_containsPoint:function(e){var t,n,i,o,a,s,l,u,c=!1;if(r.Polyline.prototype._containsPoint.call(this,e,!0))return!0;for(o=0,l=this._parts.length;l>o;o++)for(a=0,s=(u=(t=this._parts[o]).length)-1;u>a;s=a++)n=t[a],i=t[s],n.y>e.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(c=!c);return c}}:{}),r.Circle.include(r.Path.CANVAS?{_drawPath:function(){var e=this._point;this._ctx.beginPath(),this._ctx.arc(e.x,e.y,this._radius,0,2*Math.PI,!1)},_containsPoint:function(e){var t=this._point,n=this.options.stroke?this.options.weight/2:0;return e.distanceTo(t)<=this._radius+n}}:{}),r.CircleMarker.include(r.Path.CANVAS?{_updateStyle:function(){r.Path.prototype._updateStyle.call(this)}}:{}),r.GeoJSON=r.FeatureGroup.extend({initialize:function(e,t){r.setOptions(this,t),this._layers={},e&&this.addData(e)},addData:function(e){var t,n,i,o=r.Util.isArray(e)?e:e.features;if(o){for(t=0,n=o.length;n>t;t++)((i=o[t]).geometries||i.geometry||i.features||i.coordinates)&&this.addData(o[t]);return this}var a=this.options;if(!a.filter||a.filter(e)){var s=r.GeoJSON.geometryToLayer(e,a.pointToLayer,a.coordsToLatLng,a);return s.feature=r.GeoJSON.asFeature(e),s.defaultOptions=s.options,this.resetStyle(s),a.onEachFeature&&a.onEachFeature(e,s),this.addLayer(s)}},resetStyle:function(e){var t=this.options.style;t&&(r.Util.extend(e.options,e.defaultOptions),this._setLayerStyle(e,t))},setStyle:function(e){this.eachLayer((function(t){this._setLayerStyle(t,e)}),this)},_setLayerStyle:function(e,t){"function"==typeof t&&(t=t(e.feature)),e.setStyle&&e.setStyle(t)}}),r.extend(r.GeoJSON,{geometryToLayer:function(e,t,n,i){var o,a,s,l,u="Feature"===e.type?e.geometry:e,c=u.coordinates,d=[];switch(n=n||this.coordsToLatLng,u.type){case"Point":return o=n(c),t?t(e,o):new r.Marker(o);case"MultiPoint":for(s=0,l=c.length;l>s;s++)o=n(c[s]),d.push(t?t(e,o):new r.Marker(o));return new r.FeatureGroup(d);case"LineString":return a=this.coordsToLatLngs(c,0,n),new r.Polyline(a,i);case"Polygon":if(2===c.length&&!c[1].length)throw new Error("Invalid GeoJSON object.");return a=this.coordsToLatLngs(c,1,n),new r.Polygon(a,i);case"MultiLineString":return a=this.coordsToLatLngs(c,1,n),new r.MultiPolyline(a,i);case"MultiPolygon":return a=this.coordsToLatLngs(c,2,n),new r.MultiPolygon(a,i);case"GeometryCollection":for(s=0,l=u.geometries.length;l>s;s++)d.push(this.geometryToLayer({geometry:u.geometries[s],type:"Feature",properties:e.properties},t,n,i));return new r.FeatureGroup(d);default:throw new Error("Invalid GeoJSON object.")}},coordsToLatLng:function(e){return new r.LatLng(e[1],e[0],e[2])},coordsToLatLngs:function(e,t,n){var i,r,o,a=[];for(r=0,o=e.length;o>r;r++)i=t?this.coordsToLatLngs(e[r],t-1,n):(n||this.coordsToLatLng)(e[r]),a.push(i);return a},latLngToCoords:function(e){var t=[e.lng,e.lat];return e.alt!==n&&t.push(e.alt),t},latLngsToCoords:function(e){for(var t=[],n=0,i=e.length;i>n;n++)t.push(r.GeoJSON.latLngToCoords(e[n]));return t},getFeature:function(e,t){return e.feature?r.extend({},e.feature,{geometry:t}):r.GeoJSON.asFeature(t)},asFeature:function(e){return"Feature"===e.type?e:{type:"Feature",properties:{},geometry:e}}});var a={toGeoJSON:function(){return r.GeoJSON.getFeature(this,{type:"Point",coordinates:r.GeoJSON.latLngToCoords(this.getLatLng())})}};r.Marker.include(a),r.Circle.include(a),r.CircleMarker.include(a),r.Polyline.include({toGeoJSON:function(){return r.GeoJSON.getFeature(this,{type:"LineString",coordinates:r.GeoJSON.latLngsToCoords(this.getLatLngs())})}}),r.Polygon.include({toGeoJSON:function(){var e,t,n,i=[r.GeoJSON.latLngsToCoords(this.getLatLngs())];if(i[0].push(i[0][0]),this._holes)for(e=0,t=this._holes.length;t>e;e++)(n=r.GeoJSON.latLngsToCoords(this._holes[e])).push(n[0]),i.push(n);return r.GeoJSON.getFeature(this,{type:"Polygon",coordinates:i})}}),function(){function e(e){return function(){var t=[];return this.eachLayer((function(e){t.push(e.toGeoJSON().geometry.coordinates)})),r.GeoJSON.getFeature(this,{type:e,coordinates:t})}}r.MultiPolyline.include({toGeoJSON:e("MultiLineString")}),r.MultiPolygon.include({toGeoJSON:e("MultiPolygon")}),r.LayerGroup.include({toGeoJSON:function(){var t,n=this.feature&&this.feature.geometry,i=[];if(n&&"MultiPoint"===n.type)return e("MultiPoint").call(this);var o=n&&"GeometryCollection"===n.type;return this.eachLayer((function(e){e.toGeoJSON&&(t=e.toGeoJSON(),i.push(o?t.geometry:r.GeoJSON.asFeature(t)))})),o?r.GeoJSON.getFeature(this,{geometries:i,type:"GeometryCollection"}):{type:"FeatureCollection",features:i}}})}(),r.geoJson=function(e,t){return new r.GeoJSON(e,t)},r.DomEvent={addListener:function(e,t,n,i){var o,a,s,l=r.stamp(n),u="_leaflet_"+t+l;return e[u]?this:(o=function(t){return n.call(i||e,t||r.DomEvent._getEvent())},r.Browser.pointer&&0===t.indexOf("touch")?this.addPointerListener(e,t,o,l):(r.Browser.touch&&"dblclick"===t&&this.addDoubleTapListener&&this.addDoubleTapListener(e,o,l),"addEventListener"in e?"mousewheel"===t?(e.addEventListener("DOMMouseScroll",o,!1),e.addEventListener(t,o,!1)):"mouseenter"===t||"mouseleave"===t?(a=o,s="mouseenter"===t?"mouseover":"mouseout",o=function(t){return r.DomEvent._checkMouse(e,t)?a(t):void 0},e.addEventListener(s,o,!1)):"click"===t&&r.Browser.android?(a=o,o=function(e){return r.DomEvent._filterClick(e,a)},e.addEventListener(t,o,!1)):e.addEventListener(t,o,!1):"attachEvent"in e&&e.attachEvent("on"+t,o),e[u]=o,this))},removeListener:function(e,t,n){var i=r.stamp(n),o="_leaflet_"+t+i,a=e[o];return a?(r.Browser.pointer&&0===t.indexOf("touch")?this.removePointerListener(e,t,i):r.Browser.touch&&"dblclick"===t&&this.removeDoubleTapListener?this.removeDoubleTapListener(e,i):"removeEventListener"in e?"mousewheel"===t?(e.removeEventListener("DOMMouseScroll",a,!1),e.removeEventListener(t,a,!1)):"mouseenter"===t||"mouseleave"===t?e.removeEventListener("mouseenter"===t?"mouseover":"mouseout",a,!1):e.removeEventListener(t,a,!1):"detachEvent"in e&&e.detachEvent("on"+t,a),e[o]=null,this):this},stopPropagation:function(e){return e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,r.DomEvent._skipped(e),this},disableScrollPropagation:function(e){var t=r.DomEvent.stopPropagation;return r.DomEvent.on(e,"mousewheel",t).on(e,"MozMousePixelScroll",t)},disableClickPropagation:function(e){for(var t=r.DomEvent.stopPropagation,n=r.Draggable.START.length-1;n>=0;n--)r.DomEvent.on(e,r.Draggable.START[n],t);return r.DomEvent.on(e,"click",r.DomEvent._fakeStop).on(e,"dblclick",t)},preventDefault:function(e){return e.preventDefault?e.preventDefault():e.returnValue=!1,this},stop:function(e){return r.DomEvent.preventDefault(e).stopPropagation(e)},getMousePosition:function(e,t){if(!t)return new r.Point(e.clientX,e.clientY);var n=t.getBoundingClientRect();return new r.Point(e.clientX-n.left-t.clientLeft,e.clientY-n.top-t.clientTop)},getWheelDelta:function(e){var t=0;return e.wheelDelta&&(t=e.wheelDelta/120),e.detail&&(t=-e.detail/3),t},_skipEvents:{},_fakeStop:function(e){r.DomEvent._skipEvents[e.type]=!0},_skipped:function(e){var t=this._skipEvents[e.type];return this._skipEvents[e.type]=!1,t},_checkMouse:function(e,t){var n=t.relatedTarget;if(!n)return!0;try{for(;n&&n!==e;)n=n.parentNode}catch(e){return!1}return n!==e},_getEvent:function(){var t=e.event;if(!t)for(var n=arguments.callee.caller;n&&(!(t=n.arguments[0])||e.Event!==t.constructor);)n=n.caller;return t},_filterClick:function(e,t){var n=e.timeStamp||e.originalEvent.timeStamp,i=r.DomEvent._lastClick&&n-r.DomEvent._lastClick;return i&&i>100&&500>i||e.target._simulatedClick&&!e._simulated?void r.DomEvent.stop(e):(r.DomEvent._lastClick=n,t(e))}},r.DomEvent.on=r.DomEvent.addListener,r.DomEvent.off=r.DomEvent.removeListener,r.Draggable=r.Class.extend({includes:r.Mixin.Events,statics:{START:r.Browser.touch?["touchstart","mousedown"]:["mousedown"],END:{mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},MOVE:{mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"}},initialize:function(e,t){this._element=e,this._dragStartTarget=t||e},enable:function(){if(!this._enabled){for(var e=r.Draggable.START.length-1;e>=0;e--)r.DomEvent.on(this._dragStartTarget,r.Draggable.START[e],this._onDown,this);this._enabled=!0}},disable:function(){if(this._enabled){for(var e=r.Draggable.START.length-1;e>=0;e--)r.DomEvent.off(this._dragStartTarget,r.Draggable.START[e],this._onDown,this);this._enabled=!1,this._moved=!1}},_onDown:function(e){if(this._moved=!1,!e.shiftKey&&(1===e.which||1===e.button||e.touches)&&(r.DomEvent.stopPropagation(e),!r.Draggable._disabled&&(r.DomUtil.disableImageDrag(),r.DomUtil.disableTextSelection(),!this._moving))){var n=e.touches?e.touches[0]:e;this._startPoint=new r.Point(n.clientX,n.clientY),this._startPos=this._newPos=r.DomUtil.getPosition(this._element),r.DomEvent.on(t,r.Draggable.MOVE[e.type],this._onMove,this).on(t,r.Draggable.END[e.type],this._onUp,this)}},_onMove:function(e){if(e.touches&&e.touches.length>1)this._moved=!0;else{var n=e.touches&&1===e.touches.length?e.touches[0]:e,i=new r.Point(n.clientX,n.clientY).subtract(this._startPoint);(i.x||i.y)&&(r.Browser.touch&&Math.abs(i.x)+Math.abs(i.y)<3||(r.DomEvent.preventDefault(e),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=r.DomUtil.getPosition(this._element).subtract(i),r.DomUtil.addClass(t.body,"leaflet-dragging"),this._lastTarget=e.target||e.srcElement,r.DomUtil.addClass(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(i),this._moving=!0,r.Util.cancelAnimFrame(this._animRequest),this._animRequest=r.Util.requestAnimFrame(this._updatePosition,this,!0,this._dragStartTarget)))}},_updatePosition:function(){this.fire("predrag"),r.DomUtil.setPosition(this._element,this._newPos),this.fire("drag")},_onUp:function(){for(var e in r.DomUtil.removeClass(t.body,"leaflet-dragging"),this._lastTarget&&(r.DomUtil.removeClass(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null),r.Draggable.MOVE)r.DomEvent.off(t,r.Draggable.MOVE[e],this._onMove).off(t,r.Draggable.END[e],this._onUp);r.DomUtil.enableImageDrag(),r.DomUtil.enableTextSelection(),this._moved&&this._moving&&(r.Util.cancelAnimFrame(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1}}),r.Handler=r.Class.extend({initialize:function(e){this._map=e},enable:function(){this._enabled||(this._enabled=!0,this.addHooks())},disable:function(){this._enabled&&(this._enabled=!1,this.removeHooks())},enabled:function(){return!!this._enabled}}),r.Map.mergeOptions({dragging:!0,inertia:!r.Browser.android23,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,inertiaThreshold:r.Browser.touch?32:18,easeLinearity:.25,worldCopyJump:!1}),r.Map.Drag=r.Handler.extend({addHooks:function(){if(!this._draggable){var e=this._map;this._draggable=new r.Draggable(e._mapPane,e._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),e.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDrag,this),e.on("viewreset",this._onViewReset,this),e.whenReady(this._onViewReset,this))}this._draggable.enable()},removeHooks:function(){this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){var e=this._map;e._panAnim&&e._panAnim.stop(),e.fire("movestart").fire("dragstart"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(){if(this._map.options.inertia){var e=this._lastTime=+new Date,t=this._lastPos=this._draggable._newPos;this._positions.push(t),this._times.push(e),e-this._times[0]>200&&(this._positions.shift(),this._times.shift())}this._map.fire("move").fire("drag")},_onViewReset:function(){var e=this._map.getSize()._divideBy(2),t=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=t.subtract(e).x,this._worldWidth=this._map.project([0,180]).x},_onPreDrag:function(){var e=this._worldWidth,t=Math.round(e/2),n=this._initialWorldOffset,i=this._draggable._newPos.x,r=(i-t+n)%e+t-n,o=(i+t+n)%e-t-n,a=Math.abs(r+n)<Math.abs(o+n)?r:o;this._draggable._newPos.x=a},_onDragEnd:function(e){var t=this._map,n=t.options,i=+new Date-this._lastTime,o=!n.inertia||i>n.inertiaThreshold||!this._positions[0];if(t.fire("dragend",e),o)t.fire("moveend");else{var a=this._lastPos.subtract(this._positions[0]),s=(this._lastTime+i-this._times[0])/1e3,l=n.easeLinearity,u=a.multiplyBy(l/s),c=u.distanceTo([0,0]),d=Math.min(n.inertiaMaxSpeed,c),h=u.multiplyBy(d/c),f=d/(n.inertiaDeceleration*l),p=h.multiplyBy(-f/2).round();p.x&&p.y?(p=t._limitOffset(p,t.options.maxBounds),r.Util.requestAnimFrame((function(){t.panBy(p,{duration:f,easeLinearity:l,noMoveStart:!0})}))):t.fire("moveend")}}}),r.Map.addInitHook("addHandler","dragging",r.Map.Drag),r.Map.mergeOptions({doubleClickZoom:!0}),r.Map.DoubleClickZoom=r.Handler.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(e){var t=this._map,n=t.getZoom()+(e.originalEvent.shiftKey?-1:1);"center"===t.options.doubleClickZoom?t.setZoom(n):t.setZoomAround(e.containerPoint,n)}}),r.Map.addInitHook("addHandler","doubleClickZoom",r.Map.DoubleClickZoom),r.Map.mergeOptions({scrollWheelZoom:!0}),r.Map.ScrollWheelZoom=r.Handler.extend({addHooks:function(){r.DomEvent.on(this._map._container,"mousewheel",this._onWheelScroll,this),r.DomEvent.on(this._map._container,"MozMousePixelScroll",r.DomEvent.preventDefault),this._delta=0},removeHooks:function(){r.DomEvent.off(this._map._container,"mousewheel",this._onWheelScroll),r.DomEvent.off(this._map._container,"MozMousePixelScroll",r.DomEvent.preventDefault)},_onWheelScroll:function(e){var t=r.DomEvent.getWheelDelta(e);this._delta+=t,this._lastMousePos=this._map.mouseEventToContainerPoint(e),this._startTime||(this._startTime=+new Date);var n=Math.max(40-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(r.bind(this._performZoom,this),n),r.DomEvent.preventDefault(e),r.DomEvent.stopPropagation(e)},_performZoom:function(){var e=this._map,t=this._delta,n=e.getZoom();t=t>0?Math.ceil(t):Math.floor(t),t=Math.max(Math.min(t,4),-4),t=e._limitZoom(n+t)-n,this._delta=0,this._startTime=null,t&&("center"===e.options.scrollWheelZoom?e.setZoom(n+t):e.setZoomAround(this._lastMousePos,n+t))}}),r.Map.addInitHook("addHandler","scrollWheelZoom",r.Map.ScrollWheelZoom),r.extend(r.DomEvent,{_touchstart:r.Browser.msPointer?"MSPointerDown":r.Browser.pointer?"pointerdown":"touchstart",_touchend:r.Browser.msPointer?"MSPointerUp":r.Browser.pointer?"pointerup":"touchend",addDoubleTapListener:function(e,n,i){function o(e){var t;if(r.Browser.pointer?(p.push(e.pointerId),t=p.length):t=e.touches.length,!(t>1)){var n=Date.now(),i=n-(s||n);l=e.touches?e.touches[0]:e,u=i>0&&c>=i,s=n}}function a(e){if(r.Browser.pointer){var t=p.indexOf(e.pointerId);if(-1===t)return;p.splice(t,1)}if(u){if(r.Browser.pointer){var i,o={};for(var a in l)i=l[a],o[a]="function"==typeof i?i.bind(l):i;l=o}l.type="dblclick",n(l),s=null}}var s,l,u=!1,c=250,d="_leaflet_",h=this._touchstart,f=this._touchend,p=[];e[d+h+i]=o,e[d+f+i]=a;var m=r.Browser.pointer?t.documentElement:e;return e.addEventListener(h,o,!1),m.addEventListener(f,a,!1),r.Browser.pointer&&m.addEventListener(r.DomEvent.POINTER_CANCEL,a,!1),this},removeDoubleTapListener:function(e,n){var i="_leaflet_";return e.removeEventListener(this._touchstart,e[i+this._touchstart+n],!1),(r.Browser.pointer?t.documentElement:e).removeEventListener(this._touchend,e[i+this._touchend+n],!1),r.Browser.pointer&&t.documentElement.removeEventListener(r.DomEvent.POINTER_CANCEL,e[i+this._touchend+n],!1),this}}),r.extend(r.DomEvent,{POINTER_DOWN:r.Browser.msPointer?"MSPointerDown":"pointerdown",POINTER_MOVE:r.Browser.msPointer?"MSPointerMove":"pointermove",POINTER_UP:r.Browser.msPointer?"MSPointerUp":"pointerup",POINTER_CANCEL:r.Browser.msPointer?"MSPointerCancel":"pointercancel",_pointers:[],_pointerDocumentListener:!1,addPointerListener:function(e,t,n,i){switch(t){case"touchstart":return this.addPointerListenerStart(e,t,n,i);case"touchend":return this.addPointerListenerEnd(e,t,n,i);case"touchmove":return this.addPointerListenerMove(e,t,n,i);default:throw"Unknown touch event type"}},addPointerListenerStart:function(e,n,i,o){var a=this._pointers,s=function(e){"mouse"!==e.pointerType&&e.pointerType!==e.MSPOINTER_TYPE_MOUSE&&r.DomEvent.preventDefault(e);for(var t=!1,n=0;n<a.length;n++)if(a[n].pointerId===e.pointerId){t=!0;break}t||a.push(e),e.touches=a.slice(),e.changedTouches=[e],i(e)};if(e["_leaflet_touchstart"+o]=s,e.addEventListener(this.POINTER_DOWN,s,!1),!this._pointerDocumentListener){var l=function(e){for(var t=0;t<a.length;t++)if(a[t].pointerId===e.pointerId){a.splice(t,1);break}};t.documentElement.addEventListener(this.POINTER_UP,l,!1),t.documentElement.addEventListener(this.POINTER_CANCEL,l,!1),this._pointerDocumentListener=!0}return this},addPointerListenerMove:function(e,t,n,i){function r(e){if(e.pointerType!==e.MSPOINTER_TYPE_MOUSE&&"mouse"!==e.pointerType||0!==e.buttons){for(var t=0;t<o.length;t++)if(o[t].pointerId===e.pointerId){o[t]=e;break}e.touches=o.slice(),e.changedTouches=[e],n(e)}}var o=this._pointers;return e["_leaflet_touchmove"+i]=r,e.addEventListener(this.POINTER_MOVE,r,!1),this},addPointerListenerEnd:function(e,t,n,i){var r=this._pointers,o=function(e){for(var t=0;t<r.length;t++)if(r[t].pointerId===e.pointerId){r.splice(t,1);break}e.touches=r.slice(),e.changedTouches=[e],n(e)};return e["_leaflet_touchend"+i]=o,e.addEventListener(this.POINTER_UP,o,!1),e.addEventListener(this.POINTER_CANCEL,o,!1),this},removePointerListener:function(e,t,n){var i=e["_leaflet_"+t+n];switch(t){case"touchstart":e.removeEventListener(this.POINTER_DOWN,i,!1);break;case"touchmove":e.removeEventListener(this.POINTER_MOVE,i,!1);break;case"touchend":e.removeEventListener(this.POINTER_UP,i,!1),e.removeEventListener(this.POINTER_CANCEL,i,!1)}return this}}),r.Map.mergeOptions({touchZoom:r.Browser.touch&&!r.Browser.android23,bounceAtZoomLimits:!0}),r.Map.TouchZoom=r.Handler.extend({addHooks:function(){r.DomEvent.on(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){r.DomEvent.off(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(e){var n=this._map;if(e.touches&&2===e.touches.length&&!n._animatingZoom&&!this._zooming){var i=n.mouseEventToLayerPoint(e.touches[0]),o=n.mouseEventToLayerPoint(e.touches[1]),a=n._getCenterLayerPoint();this._startCenter=i.add(o)._divideBy(2),this._startDist=i.distanceTo(o),this._moved=!1,this._zooming=!0,this._centerOffset=a.subtract(this._startCenter),n._panAnim&&n._panAnim.stop(),r.DomEvent.on(t,"touchmove",this._onTouchMove,this).on(t,"touchend",this._onTouchEnd,this),r.DomEvent.preventDefault(e)}},_onTouchMove:function(e){var t=this._map;if(e.touches&&2===e.touches.length&&this._zooming){var n=t.mouseEventToLayerPoint(e.touches[0]),i=t.mouseEventToLayerPoint(e.touches[1]);this._scale=n.distanceTo(i)/this._startDist,this._delta=n._add(i)._divideBy(2)._subtract(this._startCenter),1!==this._scale&&(t.options.bounceAtZoomLimits||!(t.getZoom()===t.getMinZoom()&&this._scale<1||t.getZoom()===t.getMaxZoom()&&this._scale>1))&&(this._moved||(r.DomUtil.addClass(t._mapPane,"leaflet-touching"),t.fire("movestart").fire("zoomstart"),this._moved=!0),r.Util.cancelAnimFrame(this._animRequest),this._animRequest=r.Util.requestAnimFrame(this._updateOnMove,this,!0,this._map._container),r.DomEvent.preventDefault(e))}},_updateOnMove:function(){var e=this._map,t=this._getScaleOrigin(),n=e.layerPointToLatLng(t),i=e.getScaleZoom(this._scale);e._animateZoom(n,i,this._startCenter,this._scale,this._delta,!1,!0)},_onTouchEnd:function(){if(this._moved&&this._zooming){var e=this._map;this._zooming=!1,r.DomUtil.removeClass(e._mapPane,"leaflet-touching"),r.Util.cancelAnimFrame(this._animRequest),r.DomEvent.off(t,"touchmove",this._onTouchMove).off(t,"touchend",this._onTouchEnd);var n=this._getScaleOrigin(),i=e.layerPointToLatLng(n),o=e.getZoom(),a=e.getScaleZoom(this._scale)-o,s=a>0?Math.ceil(a):Math.floor(a),l=e._limitZoom(o+s),u=e.getZoomScale(l)/this._scale;e._animateZoom(i,l,n,u)}else this._zooming=!1},_getScaleOrigin:function(){var e=this._centerOffset.subtract(this._delta).divideBy(this._scale);return this._startCenter.add(e)}}),r.Map.addInitHook("addHandler","touchZoom",r.Map.TouchZoom),r.Map.mergeOptions({tap:!0,tapTolerance:15}),r.Map.Tap=r.Handler.extend({addHooks:function(){r.DomEvent.on(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){r.DomEvent.off(this._map._container,"touchstart",this._onDown,this)},_onDown:function(e){if(e.touches){if(r.DomEvent.preventDefault(e),this._fireClick=!0,e.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var n=e.touches[0],i=n.target;this._startPos=this._newPos=new r.Point(n.clientX,n.clientY),i.tagName&&"a"===i.tagName.toLowerCase()&&r.DomUtil.addClass(i,"leaflet-active"),this._holdTimeout=setTimeout(r.bind((function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",n))}),this),1e3),r.DomEvent.on(t,"touchmove",this._onMove,this).on(t,"touchend",this._onUp,this)}},_onUp:function(e){if(clearTimeout(this._holdTimeout),r.DomEvent.off(t,"touchmove",this._onMove,this).off(t,"touchend",this._onUp,this),this._fireClick&&e&&e.changedTouches){var n=e.changedTouches[0],i=n.target;i&&i.tagName&&"a"===i.tagName.toLowerCase()&&r.DomUtil.removeClass(i,"leaflet-active"),this._isTapValid()&&this._simulateEvent("click",n)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(e){var t=e.touches[0];this._newPos=new r.Point(t.clientX,t.clientY)},_simulateEvent:function(n,i){var r=t.createEvent("MouseEvents");r._simulated=!0,i.target._simulatedClick=!0,r.initMouseEvent(n,!0,!0,e,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(r)}}),r.Browser.touch&&!r.Browser.pointer&&r.Map.addInitHook("addHandler","tap",r.Map.Tap),r.Map.mergeOptions({boxZoom:!0}),r.Map.BoxZoom=r.Handler.extend({initialize:function(e){this._map=e,this._container=e._container,this._pane=e._panes.overlayPane,this._moved=!1},addHooks:function(){r.DomEvent.on(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){r.DomEvent.off(this._container,"mousedown",this._onMouseDown),this._moved=!1},moved:function(){return this._moved},_onMouseDown:function(e){return this._moved=!1,!(!e.shiftKey||1!==e.which&&1!==e.button)&&(r.DomUtil.disableTextSelection(),r.DomUtil.disableImageDrag(),this._startLayerPoint=this._map.mouseEventToLayerPoint(e),void r.DomEvent.on(t,"mousemove",this._onMouseMove,this).on(t,"mouseup",this._onMouseUp,this).on(t,"keydown",this._onKeyDown,this))},_onMouseMove:function(e){this._moved||(this._box=r.DomUtil.create("div","leaflet-zoom-box",this._pane),r.DomUtil.setPosition(this._box,this._startLayerPoint),this._container.style.cursor="crosshair",this._map.fire("boxzoomstart"));var t=this._startLayerPoint,n=this._box,i=this._map.mouseEventToLayerPoint(e),o=i.subtract(t),a=new r.Point(Math.min(i.x,t.x),Math.min(i.y,t.y));r.DomUtil.setPosition(n,a),this._moved=!0,n.style.width=Math.max(0,Math.abs(o.x)-4)+"px",n.style.height=Math.max(0,Math.abs(o.y)-4)+"px"},_finish:function(){this._moved&&(this._pane.removeChild(this._box),this._container.style.cursor=""),r.DomUtil.enableTextSelection(),r.DomUtil.enableImageDrag(),r.DomEvent.off(t,"mousemove",this._onMouseMove).off(t,"mouseup",this._onMouseUp).off(t,"keydown",this._onKeyDown)},_onMouseUp:function(e){this._finish();var t=this._map,n=t.mouseEventToLayerPoint(e);if(!this._startLayerPoint.equals(n)){var i=new r.LatLngBounds(t.layerPointToLatLng(this._startLayerPoint),t.layerPointToLatLng(n));t.fitBounds(i),t.fire("boxzoomend",{boxZoomBounds:i})}},_onKeyDown:function(e){27===e.keyCode&&this._finish()}}),r.Map.addInitHook("addHandler","boxZoom",r.Map.BoxZoom),r.Map.mergeOptions({keyboard:!0,keyboardPanOffset:80,keyboardZoomOffset:1}),r.Map.Keyboard=r.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,173]},initialize:function(e){this._map=e,this._setPanOffset(e.options.keyboardPanOffset),this._setZoomOffset(e.options.keyboardZoomOffset)},addHooks:function(){var e=this._map._container;-1===e.tabIndex&&(e.tabIndex="0"),r.DomEvent.on(e,"focus",this._onFocus,this).on(e,"blur",this._onBlur,this).on(e,"mousedown",this._onMouseDown,this),this._map.on("focus",this._addHooks,this).on("blur",this._removeHooks,this)},removeHooks:function(){this._removeHooks();var e=this._map._container;r.DomEvent.off(e,"focus",this._onFocus,this).off(e,"blur",this._onBlur,this).off(e,"mousedown",this._onMouseDown,this),this._map.off("focus",this._addHooks,this).off("blur",this._removeHooks,this)},_onMouseDown:function(){if(!this._focused){var n=t.body,i=t.documentElement,r=n.scrollTop||i.scrollTop,o=n.scrollLeft||i.scrollLeft;this._map._container.focus(),e.scrollTo(o,r)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanOffset:function(e){var t,n,i=this._panKeys={},r=this.keyCodes;for(t=0,n=r.left.length;n>t;t++)i[r.left[t]]=[-1*e,0];for(t=0,n=r.right.length;n>t;t++)i[r.right[t]]=[e,0];for(t=0,n=r.down.length;n>t;t++)i[r.down[t]]=[0,e];for(t=0,n=r.up.length;n>t;t++)i[r.up[t]]=[0,-1*e]},_setZoomOffset:function(e){var t,n,i=this._zoomKeys={},r=this.keyCodes;for(t=0,n=r.zoomIn.length;n>t;t++)i[r.zoomIn[t]]=e;for(t=0,n=r.zoomOut.length;n>t;t++)i[r.zoomOut[t]]=-e},_addHooks:function(){r.DomEvent.on(t,"keydown",this._onKeyDown,this)},_removeHooks:function(){r.DomEvent.off(t,"keydown",this._onKeyDown,this)},_onKeyDown:function(e){var t=e.keyCode,n=this._map;if(t in this._panKeys){if(n._panAnim&&n._panAnim._inProgress)return;n.panBy(this._panKeys[t]),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds)}else{if(!(t in this._zoomKeys))return;n.setZoom(n.getZoom()+this._zoomKeys[t])}r.DomEvent.stop(e)}}),r.Map.addInitHook("addHandler","keyboard",r.Map.Keyboard),r.Handler.MarkerDrag=r.Handler.extend({initialize:function(e){this._marker=e},addHooks:function(){var e=this._marker._icon;this._draggable||(this._draggable=new r.Draggable(e,e)),this._draggable.on("dragstart",this._onDragStart,this).on("drag",this._onDrag,this).on("dragend",this._onDragEnd,this),this._draggable.enable(),r.DomUtil.addClass(this._marker._icon,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off("dragstart",this._onDragStart,this).off("drag",this._onDrag,this).off("dragend",this._onDragEnd,this),this._draggable.disable(),r.DomUtil.removeClass(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){this._marker.closePopup().fire("movestart").fire("dragstart")},_onDrag:function(){var e=this._marker,t=e._shadow,n=r.DomUtil.getPosition(e._icon),i=e._map.layerPointToLatLng(n);t&&r.DomUtil.setPosition(t,n),e._latlng=i,e.fire("move",{latlng:i}).fire("drag")},_onDragEnd:function(e){this._marker.fire("moveend").fire("dragend",e)}}),r.Control=r.Class.extend({options:{position:"topright"},initialize:function(e){r.setOptions(this,e)},getPosition:function(){return this.options.position},setPosition:function(e){var t=this._map;return t&&t.removeControl(this),this.options.position=e,t&&t.addControl(this),this},getContainer:function(){return this._container},addTo:function(e){this._map=e;var t=this._container=this.onAdd(e),n=this.getPosition(),i=e._controlCorners[n];return r.DomUtil.addClass(t,"leaflet-control"),-1!==n.indexOf("bottom")?i.insertBefore(t,i.firstChild):i.appendChild(t),this},removeFrom:function(e){var t=this.getPosition();return e._controlCorners[t].removeChild(this._container),this._map=null,this.onRemove&&this.onRemove(e),this},_refocusOnMap:function(){this._map&&this._map.getContainer().focus()}}),r.control=function(e){return new r.Control(e)},r.Map.include({addControl:function(e){return e.addTo(this),this},removeControl:function(e){return e.removeFrom(this),this},_initControlPos:function(){function e(e,o){var a=n+e+" "+n+o;t[e+o]=r.DomUtil.create("div",a,i)}var t=this._controlCorners={},n="leaflet-",i=this._controlContainer=r.DomUtil.create("div",n+"control-container",this._container);e("top","left"),e("top","right"),e("bottom","left"),e("bottom","right")},_clearControlPos:function(){this._container.removeChild(this._controlContainer)}}),r.Control.Zoom=r.Control.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"-",zoomOutTitle:"Zoom out"},onAdd:function(e){var t="leaflet-control-zoom",n=r.DomUtil.create("div",t+" leaflet-bar");return this._map=e,this._zoomInButton=this._createButton(this.options.zoomInText,this.options.zoomInTitle,t+"-in",n,this._zoomIn,this),this._zoomOutButton=this._createButton(this.options.zoomOutText,this.options.zoomOutTitle,t+"-out",n,this._zoomOut,this),this._updateDisabled(),e.on("zoomend zoomlevelschange",this._updateDisabled,this),n},onRemove:function(e){e.off("zoomend zoomlevelschange",this._updateDisabled,this)},_zoomIn:function(e){this._map.zoomIn(e.shiftKey?3:1)},_zoomOut:function(e){this._map.zoomOut(e.shiftKey?3:1)},_createButton:function(e,t,n,i,o,a){var s=r.DomUtil.create("a",n,i);s.innerHTML=e,s.href="#",s.title=t;var l=r.DomEvent.stopPropagation;return r.DomEvent.on(s,"click",l).on(s,"mousedown",l).on(s,"dblclick",l).on(s,"click",r.DomEvent.preventDefault).on(s,"click",o,a).on(s,"click",this._refocusOnMap,a),s},_updateDisabled:function(){var e=this._map,t="leaflet-disabled";r.DomUtil.removeClass(this._zoomInButton,t),r.DomUtil.removeClass(this._zoomOutButton,t),e._zoom===e.getMinZoom()&&r.DomUtil.addClass(this._zoomOutButton,t),e._zoom===e.getMaxZoom()&&r.DomUtil.addClass(this._zoomInButton,t)}}),r.Map.mergeOptions({zoomControl:!0}),r.Map.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new r.Control.Zoom,this.addControl(this.zoomControl))})),r.control.zoom=function(e){return new r.Control.Zoom(e)},r.Control.Attribution=r.Control.extend({options:{position:"bottomright",prefix:'<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>'},initialize:function(e){r.setOptions(this,e),this._attributions={}},onAdd:function(e){for(var t in this._container=r.DomUtil.create("div","leaflet-control-attribution"),r.DomEvent.disableClickPropagation(this._container),e._layers)e._layers[t].getAttribution&&this.addAttribution(e._layers[t].getAttribution());return e.on("layeradd",this._onLayerAdd,this).on("layerremove",this._onLayerRemove,this),this._update(),this._container},onRemove:function(e){e.off("layeradd",this._onLayerAdd).off("layerremove",this._onLayerRemove)},setPrefix:function(e){return this.options.prefix=e,this._update(),this},addAttribution:function(e){return e?(this._attributions[e]||(this._attributions[e]=0),this._attributions[e]++,this._update(),this):void 0},removeAttribution:function(e){return e?(this._attributions[e]&&(this._attributions[e]--,this._update()),this):void 0},_update:function(){if(this._map){var e=[];for(var t in this._attributions)this._attributions[t]&&e.push(t);var n=[];this.options.prefix&&n.push(this.options.prefix),e.length&&n.push(e.join(", ")),this._container.innerHTML=n.join(" | ")}},_onLayerAdd:function(e){e.layer.getAttribution&&this.addAttribution(e.layer.getAttribution())},_onLayerRemove:function(e){e.layer.getAttribution&&this.removeAttribution(e.layer.getAttribution())}}),r.Map.mergeOptions({attributionControl:!0}),r.Map.addInitHook((function(){this.options.attributionControl&&(this.attributionControl=(new r.Control.Attribution).addTo(this))})),r.control.attribution=function(e){return new r.Control.Attribution(e)},r.Control.Scale=r.Control.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0,updateWhenIdle:!1},onAdd:function(e){this._map=e;var t="leaflet-control-scale",n=r.DomUtil.create("div",t),i=this.options;return this._addScales(i,t,n),e.on(i.updateWhenIdle?"moveend":"move",this._update,this),e.whenReady(this._update,this),n},onRemove:function(e){e.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(e,t,n){e.metric&&(this._mScale=r.DomUtil.create("div",t+"-line",n)),e.imperial&&(this._iScale=r.DomUtil.create("div",t+"-line",n))},_update:function(){var e=this._map.getBounds(),t=e.getCenter().lat,n=6378137*Math.PI*Math.cos(t*Math.PI/180)*(e.getNorthEast().lng-e.getSouthWest().lng)/180,i=this._map.getSize(),r=this.options,o=0;i.x>0&&(o=n*(r.maxWidth/i.x)),this._updateScales(r,o)},_updateScales:function(e,t){e.metric&&t&&this._updateMetric(t),e.imperial&&t&&this._updateImperial(t)},_updateMetric:function(e){var t=this._getRoundNum(e);this._mScale.style.width=this._getScaleWidth(t/e)+"px",this._mScale.innerHTML=1e3>t?t+" m":t/1e3+" km"},_updateImperial:function(e){var t,n,i,r=3.2808399*e,o=this._iScale;r>5280?(t=r/5280,n=this._getRoundNum(t),o.style.width=this._getScaleWidth(n/t)+"px",o.innerHTML=n+" mi"):(i=this._getRoundNum(r),o.style.width=this._getScaleWidth(i/r)+"px",o.innerHTML=i+" ft")},_getScaleWidth:function(e){return Math.round(this.options.maxWidth*e)-10},_getRoundNum:function(e){var t=Math.pow(10,(Math.floor(e)+"").length-1),n=e/t;return t*(n>=10?10:n>=5?5:n>=3?3:n>=2?2:1)}}),r.control.scale=function(e){return new r.Control.Scale(e)},r.Control.Layers=r.Control.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0},initialize:function(e,t,n){for(var i in r.setOptions(this,n),this._layers={},this._lastZIndex=0,this._handlingClick=!1,e)this._addLayer(e[i],i);for(i in t)this._addLayer(t[i],i,!0)},onAdd:function(e){return this._initLayout(),this._update(),e.on("layeradd",this._onLayerChange,this).on("layerremove",this._onLayerChange,this),this._container},onRemove:function(e){e.off("layeradd",this._onLayerChange,this).off("layerremove",this._onLayerChange,this)},addBaseLayer:function(e,t){return this._addLayer(e,t),this._update(),this},addOverlay:function(e,t){return this._addLayer(e,t,!0),this._update(),this},removeLayer:function(e){var t=r.stamp(e);return delete this._layers[t],this._update(),this},_initLayout:function(){var e="leaflet-control-layers",t=this._container=r.DomUtil.create("div",e);t.setAttribute("aria-haspopup",!0),r.Browser.touch?r.DomEvent.on(t,"click",r.DomEvent.stopPropagation):r.DomEvent.disableClickPropagation(t).disableScrollPropagation(t);var n=this._form=r.DomUtil.create("form",e+"-list");if(this.options.collapsed){r.Browser.android||r.DomEvent.on(t,"mouseover",this._expand,this).on(t,"mouseout",this._collapse,this);var i=this._layersLink=r.DomUtil.create("a",e+"-toggle",t);i.href="#",i.title="Layers",r.Browser.touch?r.DomEvent.on(i,"click",r.DomEvent.stop).on(i,"click",this._expand,this):r.DomEvent.on(i,"focus",this._expand,this),r.DomEvent.on(n,"click",(function(){setTimeout(r.bind(this._onInputClick,this),0)}),this),this._map.on("click",this._collapse,this)}else this._expand();this._baseLayersList=r.DomUtil.create("div",e+"-base",n),this._separator=r.DomUtil.create("div",e+"-separator",n),this._overlaysList=r.DomUtil.create("div",e+"-overlays",n),t.appendChild(n)},_addLayer:function(e,t,n){var i=r.stamp(e);this._layers[i]={layer:e,name:t,overlay:n},this.options.autoZIndex&&e.setZIndex&&(this._lastZIndex++,e.setZIndex(this._lastZIndex))},_update:function(){if(this._container){this._baseLayersList.innerHTML="",this._overlaysList.innerHTML="";var e,t,n=!1,i=!1;for(e in this._layers)t=this._layers[e],this._addItem(t),i=i||t.overlay,n=n||!t.overlay;this._separator.style.display=i&&n?"":"none"}},_onLayerChange:function(e){var t=this._layers[r.stamp(e.layer)];if(t){this._handlingClick||this._update();var n=t.overlay?"layeradd"===e.type?"overlayadd":"overlayremove":"layeradd"===e.type?"baselayerchange":null;n&&this._map.fire(n,t)}},_createRadioElement:function(e,n){var i='<input type="radio" class="leaflet-control-layers-selector" name="'+e+'"';n&&(i+=' checked="checked"'),i+="/>";var r=t.createElement("div");return r.innerHTML=i,r.firstChild},_addItem:function(e){var n,i=t.createElement("label"),o=this._map.hasLayer(e.layer);e.overlay?((n=t.createElement("input")).type="checkbox",n.className="leaflet-control-layers-selector",n.defaultChecked=o):n=this._createRadioElement("leaflet-base-layers",o),n.layerId=r.stamp(e.layer),r.DomEvent.on(n,"click",this._onInputClick,this);var a=t.createElement("span");return a.innerHTML=" "+e.name,i.appendChild(n),i.appendChild(a),(e.overlay?this._overlaysList:this._baseLayersList).appendChild(i),i},_onInputClick:function(){var e,t,n,i=this._form.getElementsByTagName("input"),r=i.length;for(this._handlingClick=!0,e=0;r>e;e++)t=i[e],n=this._layers[t.layerId],t.checked&&!this._map.hasLayer(n.layer)?this._map.addLayer(n.layer):!t.checked&&this._map.hasLayer(n.layer)&&this._map.removeLayer(n.layer);this._handlingClick=!1,this._refocusOnMap()},_expand:function(){r.DomUtil.addClass(this._container,"leaflet-control-layers-expanded")},_collapse:function(){this._container.className=this._container.className.replace(" leaflet-control-layers-expanded","")}}),r.control.layers=function(e,t,n){return new r.Control.Layers(e,t,n)},r.PosAnimation=r.Class.extend({includes:r.Mixin.Events,run:function(e,t,n,i){this.stop(),this._el=e,this._inProgress=!0,this._newPos=t,this.fire("start"),e.style[r.DomUtil.TRANSITION]="all "+(n||.25)+"s cubic-bezier(0,0,"+(i||.5)+",1)",r.DomEvent.on(e,r.DomUtil.TRANSITION_END,this._onTransitionEnd,this),r.DomUtil.setPosition(e,t),r.Util.falseFn(e.offsetWidth),this._stepTimer=setInterval(r.bind(this._onStep,this),50)},stop:function(){this._inProgress&&(r.DomUtil.setPosition(this._el,this._getPos()),this._onTransitionEnd(),r.Util.falseFn(this._el.offsetWidth))},_onStep:function(){var e=this._getPos();return e?(this._el._leaflet_pos=e,void this.fire("step")):void this._onTransitionEnd()},_transformRe:/([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/,_getPos:function(){var t,n,i,o=this._el,a=e.getComputedStyle(o);if(r.Browser.any3d){if(!(i=a[r.DomUtil.TRANSFORM].match(this._transformRe)))return;t=parseFloat(i[1]),n=parseFloat(i[2])}else t=parseFloat(a.left),n=parseFloat(a.top);return new r.Point(t,n,!0)},_onTransitionEnd:function(){r.DomEvent.off(this._el,r.DomUtil.TRANSITION_END,this._onTransitionEnd,this),this._inProgress&&(this._inProgress=!1,this._el.style[r.DomUtil.TRANSITION]="",this._el._leaflet_pos=this._newPos,clearInterval(this._stepTimer),this.fire("step").fire("end"))}}),r.Map.include({setView:function(e,t,i){return t=t===n?this._zoom:this._limitZoom(t),e=this._limitCenter(r.latLng(e),t,this.options.maxBounds),i=i||{},this._panAnim&&this._panAnim.stop(),this._loaded&&!i.reset&&!0!==i&&(i.animate!==n&&(i.zoom=r.extend({animate:i.animate},i.zoom),i.pan=r.extend({animate:i.animate},i.pan)),this._zoom!==t?this._tryAnimatedZoom&&this._tryAnimatedZoom(e,t,i.zoom):this._tryAnimatedPan(e,i.pan))?(clearTimeout(this._sizeTimer),this):(this._resetView(e,t),this)},panBy:function(e,t){if(t=t||{},!(e=r.point(e).round()).x&&!e.y)return this;if(this._panAnim||(this._panAnim=new r.PosAnimation,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),t.noMoveStart||this.fire("movestart"),!1!==t.animate){r.DomUtil.addClass(this._mapPane,"leaflet-pan-anim");var n=this._getMapPanePos().subtract(e);this._panAnim.run(this._mapPane,n,t.duration||.25,t.easeLinearity)}else this._rawPanBy(e),this.fire("move").fire("moveend");return this},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){r.DomUtil.removeClass(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(e,t){var n=this._getCenterOffset(e)._floor();return!(!0!==(t&&t.animate)&&!this.getSize().contains(n)||(this.panBy(n,t),0))}}),r.PosAnimation=r.DomUtil.TRANSITION?r.PosAnimation:r.PosAnimation.extend({run:function(e,t,n,i){this.stop(),this._el=e,this._inProgress=!0,this._duration=n||.25,this._easeOutPower=1/Math.max(i||.5,.2),this._startPos=r.DomUtil.getPosition(e),this._offset=t.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(),this._complete())},_animate:function(){this._animId=r.Util.requestAnimFrame(this._animate,this),this._step()},_step:function(){var e=+new Date-this._startTime,t=1e3*this._duration;t>e?this._runFrame(this._easeOut(e/t)):(this._runFrame(1),this._complete())},_runFrame:function(e){var t=this._startPos.add(this._offset.multiplyBy(e));r.DomUtil.setPosition(this._el,t),this.fire("step")},_complete:function(){r.Util.cancelAnimFrame(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(e){return 1-Math.pow(1-e,this._easeOutPower)}}),r.Map.mergeOptions({zoomAnimation:!0,zoomAnimationThreshold:4}),r.DomUtil.TRANSITION&&r.Map.addInitHook((function(){this._zoomAnimated=this.options.zoomAnimation&&r.DomUtil.TRANSITION&&r.Browser.any3d&&!r.Browser.android23&&!r.Browser.mobileOpera,this._zoomAnimated&&r.DomEvent.on(this._mapPane,r.DomUtil.TRANSITION_END,this._catchTransitionEnd,this)})),r.Map.include(r.DomUtil.TRANSITION?{_catchTransitionEnd:function(e){this._animatingZoom&&e.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(e,t,n){if(this._animatingZoom)return!0;if(n=n||{},!this._zoomAnimated||!1===n.animate||this._nothingToAnimate()||Math.abs(t-this._zoom)>this.options.zoomAnimationThreshold)return!1;var i=this.getZoomScale(t),r=this._getCenterOffset(e)._divideBy(1-1/i),o=this._getCenterLayerPoint()._add(r);return!(!0!==n.animate&&!this.getSize().contains(r)||(this.fire("movestart").fire("zoomstart"),this._animateZoom(e,t,o,i,null,!0),0))},_animateZoom:function(e,t,n,i,o,a,s){s||(this._animatingZoom=!0),r.DomUtil.addClass(this._mapPane,"leaflet-zoom-anim"),this._animateToCenter=e,this._animateToZoom=t,r.Draggable&&(r.Draggable._disabled=!0),r.Util.requestAnimFrame((function(){this.fire("zoomanim",{center:e,zoom:t,origin:n,scale:i,delta:o,backwards:a}),setTimeout(r.bind(this._onZoomTransitionEnd,this),250)}),this)},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._animatingZoom=!1,r.DomUtil.removeClass(this._mapPane,"leaflet-zoom-anim"),r.Util.requestAnimFrame((function(){this._resetView(this._animateToCenter,this._animateToZoom,!0,!0),r.Draggable&&(r.Draggable._disabled=!1)}),this))}}:{}),r.TileLayer.include({_animateZoom:function(e){this._animating||(this._animating=!0,this._prepareBgBuffer());var t=this._bgBuffer,n=r.DomUtil.TRANSFORM,i=e.delta?r.DomUtil.getTranslateString(e.delta):t.style[n],o=r.DomUtil.getScaleString(e.scale,e.origin);t.style[n]=e.backwards?o+" "+i:i+" "+o},_endZoomAnim:function(){var e=this._tileContainer,t=this._bgBuffer;e.style.visibility="",e.parentNode.appendChild(e),r.Util.falseFn(t.offsetWidth);var n=this._map.getZoom();(n>this.options.maxZoom||n<this.options.minZoom)&&this._clearBgBuffer(),this._animating=!1},_clearBgBuffer:function(){var e=this._map;!e||e._animatingZoom||e.touchZoom._zooming||(this._bgBuffer.innerHTML="",this._bgBuffer.style[r.DomUtil.TRANSFORM]="")},_prepareBgBuffer:function(){var e=this._tileContainer,t=this._bgBuffer,n=this._getLoadedTilesPercentage(t),i=this._getLoadedTilesPercentage(e);return t&&n>.5&&.5>i?(e.style.visibility="hidden",void this._stopLoadingImages(e)):(t.style.visibility="hidden",t.style[r.DomUtil.TRANSFORM]="",this._tileContainer=t,t=this._bgBuffer=e,this._stopLoadingImages(t),void clearTimeout(this._clearBgBufferTimer))},_getLoadedTilesPercentage:function(e){var t,n,i=e.getElementsByTagName("img"),r=0;for(t=0,n=i.length;n>t;t++)i[t].complete&&r++;return r/n},_stopLoadingImages:function(e){var t,n,i,o=Array.prototype.slice.call(e.getElementsByTagName("img"));for(t=0,n=o.length;n>t;t++)(i=o[t]).complete||(i.onload=r.Util.falseFn,i.onerror=r.Util.falseFn,i.src=r.Util.emptyImageUrl,i.parentNode.removeChild(i))}}),r.Map.include({_defaultLocateOptions:{watch:!1,setView:!1,maxZoom:1/0,timeout:1e4,maximumAge:0,enableHighAccuracy:!1},locate:function(e){if(e=this._locateOptions=r.extend(this._defaultLocateOptions,e),!navigator.geolocation)return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var t=r.bind(this._handleGeolocationResponse,this),n=r.bind(this._handleGeolocationError,this);return e.watch?this._locationWatchId=navigator.geolocation.watchPosition(t,n,e):navigator.geolocation.getCurrentPosition(t,n,e),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(e){var t=e.code,n=e.message||(1===t?"permission denied":2===t?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:t,message:"Geolocation error: "+n+"."})},_handleGeolocationResponse:function(e){var t=e.coords.latitude,n=e.coords.longitude,i=new r.LatLng(t,n),o=180*e.coords.accuracy/40075017,a=o/Math.cos(r.LatLng.DEG_TO_RAD*t),s=r.latLngBounds([t-o,n-a],[t+o,n+a]),l=this._locateOptions;if(l.setView){var u=Math.min(this.getBoundsZoom(s),l.maxZoom);this.setView(i,u)}var c={latlng:i,bounds:s,timestamp:e.timestamp};for(var d in e.coords)"number"==typeof e.coords[d]&&(c[d]=e.coords[d]);this.fire("locationfound",c)}})}(window,document),function(e,t,n){"use strict";L.AwesomeMarkers={},L.AwesomeMarkers.version="2.0.1",L.AwesomeMarkers.Icon=L.Icon.extend({options:{iconSize:[35,45],iconAnchor:[17,42],popupAnchor:[1,-32],shadowAnchor:[10,12],shadowSize:[36,16],className:"awesome-marker",prefix:"glyphicon",spinClass:"fa-spin",icon:"home",markerColor:"blue",iconColor:"white"},initialize:function(e){e=L.Util.setOptions(this,e)},createIcon:function(){var e=t.createElement("div"),n=this.options;return n.icon&&(e.innerHTML=this._createInner()),n.bgPos&&(e.style.backgroundPosition=-n.bgPos.x+"px "+-n.bgPos.y+"px"),this._setIconStyles(e,"icon-"+n.markerColor),e},_createInner:function(){var e,t="",n="",i="",r=this.options;return e=r.icon.slice(0,r.prefix.length+1)===r.prefix+"-"?r.icon:r.prefix+"-"+r.icon,r.spin&&"string"==typeof r.spinClass&&(t=r.spinClass),r.iconColor&&("white"===r.iconColor||"black"===r.iconColor?n="icon-"+r.iconColor:i="style='color: "+r.iconColor+"' "),"<i "+i+"class='"+r.prefix+" "+e+" "+t+" "+n+"'></i>"},_setIconStyles:function(e,t){var n,i=this.options,r=L.point(i["shadow"===t?"shadowSize":"iconSize"]);!(n="shadow"===t?L.point(i.shadowAnchor||i.iconAnchor):L.point(i.iconAnchor))&&r&&(n=r.divideBy(2,!0)),e.className="awesome-marker-"+t+" "+i.className,n&&(e.style.marginLeft=-n.x+"px",e.style.marginTop=-n.y+"px"),r&&(e.style.width=r.x+"px",e.style.height=r.y+"px")},createShadow:function(){var e=t.createElement("div");return this._setIconStyles(e,"shadow"),e}}),L.AwesomeMarkers.icon=function(e){return new L.AwesomeMarkers.Icon(e)}}(0,document),function(e){if("function"==typeof define&&define.amd)define(["leaflet"],e);else if("undefined"!=typeof module)module.exports=e(require("leaflet"));else{if(void 0===window.L)throw"Leaflet must be loaded first";e(window.L)}}((function(e){function t(e,t){var n=t.split("."),i=n.pop(),r=n.length,o=n[0],a=1;if(r>0)for(;(e=e[o])&&a<r;)o=n[a++];if(e)return e[i]}function n(e){return"[object Object]"===Object.prototype.toString.call(e)}return e.Control.Search=e.Control.extend({includes:e.Mixin.Events,options:{url:"",layer:null,sourceData:null,jsonpParam:null,propertyLoc:"loc",propertyName:"title",formatData:null,filterData:null,moveToLocation:null,buildTip:null,container:"",zoom:null,minLength:1,initial:!0,casesensitive:!1,autoType:!0,delayType:400,tooltipLimit:-1,tipAutoSubmit:!0,firstTipSubmit:!1,autoResize:!0,collapsed:!0,autoCollapse:!1,autoCollapseTime:1200,textErr:"Location not found",textCancel:"Cancel",textPlaceholder:"Search...",position:"topleft",hideMarkerOnCollapse:!1,marker:{icon:!1,animate:!0,circle:{radius:10,weight:3,color:"#e03",stroke:!0,fill:!1}}},initialize:function(t){e.Util.setOptions(this,t||{}),this._inputMinSize=this.options.textPlaceholder?this.options.textPlaceholder.length:10,this._layer=this.options.layer||new e.LayerGroup,this._filterData=this.options.filterData||this._defaultFilterData,this._formatData=this.options.formatData||this._defaultFormatData,this._moveToLocation=this.options.moveToLocation||this._defaultMoveToLocation,this._autoTypeTmp=this.options.autoType,this._countertips=0,this._recordsCache={},this._curReq=null},onAdd:function(t){return this._map=t,this._container=e.DomUtil.create("div","leaflet-control-search"),this._input=this._createInput(this.options.textPlaceholder,"search-input"),this._tooltip=this._createTooltip("search-tooltip"),this._cancel=this._createCancel(this.options.textCancel,"search-cancel"),this._button=this._createButton(this.options.textPlaceholder,"search-button"),this._alert=this._createAlert("search-alert"),!1===this.options.collapsed&&this.expand(this.options.collapsed),this.options.marker&&(this.options.marker instanceof e.Marker||this.options.marker instanceof e.CircleMarker?this._markerSearch=this.options.marker:n(this.options.marker)&&(this._markerSearch=new e.Control.Search.Marker([0,0],this.options.marker)),this._markerSearch._isMarkerSearch=!0),this.setLayer(this._layer),t.on({resize:this._handleAutoresize},this),this._container},addTo:function(t){return this.options.container?(this._container=this.onAdd(t),this._wrapper=e.DomUtil.get(this.options.container),this._wrapper.style.position="relative",this._wrapper.appendChild(this._container)):e.Control.prototype.addTo.call(this,t),this},onRemove:function(e){this._recordsCache={}},setLayer:function(e){return this._layer=e,this._layer.addTo(this._map),this},showAlert:function(e){e=e||this.options.textErr,this._alert.style.display="block",this._alert.innerHTML=e,clearTimeout(this.timerAlert);var t=this;return this.timerAlert=setTimeout((function(){t.hideAlert()}),this.options.autoCollapseTime),this},hideAlert:function(){return this._alert.style.display="none",this},cancel:function(){return this._input.value="",this._handleKeypress({keyCode:8}),this._input.size=this._inputMinSize,this._input.focus(),this._cancel.style.display="none",this._hideTooltip(),this},expand:function(t){return t="boolean"!=typeof t||t,this._input.style.display="block",e.DomUtil.addClass(this._container,"search-exp"),!1!==t&&(this._input.focus(),this._map.on("dragstart click",this.collapse,this)),this.fire("search:expanded"),this},collapse:function(){return this._hideTooltip(),this.cancel(),this._alert.style.display="none",this._input.blur(),this.options.collapsed&&(this._input.style.display="none",this._cancel.style.display="none",e.DomUtil.removeClass(this._container,"search-exp"),this.options.hideMarkerOnCollapse&&this._map.removeLayer(this._markerSearch),this._map.off("dragstart click",this.collapse,this)),this.fire("search:collapsed"),this},collapseDelayed:function(){if(!this.options.autoCollapse)return this;var e=this;return clearTimeout(this.timerCollapse),this.timerCollapse=setTimeout((function(){e.collapse()}),this.options.autoCollapseTime),this},collapseDelayedStop:function(){return clearTimeout(this.timerCollapse),this},_createAlert:function(t){var n=e.DomUtil.create("div",t,this._container);return n.style.display="none",e.DomEvent.on(n,"click",e.DomEvent.stop,this).on(n,"click",this.hideAlert,this),n},_createInput:function(t,n){var i=e.DomUtil.create("label",n,this._container),r=e.DomUtil.create("input",n,this._container);return r.type="text",r.size=this._inputMinSize,r.value="",r.autocomplete="off",r.autocorrect="off",r.autocapitalize="off",r.placeholder=t,r.style.display="none",r.role="search",r.id=r.role+r.type+r.size,i.htmlFor=r.id,i.style.display="none",i.value=t,e.DomEvent.disableClickPropagation(r).on(r,"keydown",this._handleKeypress,this).on(r,"blur",this.collapseDelayed,this).on(r,"focus",this.collapseDelayedStop,this),r},_createCancel:function(t,n){var i=e.DomUtil.create("a",n,this._container);return i.href="#",i.title=t,i.style.display="none",i.innerHTML="<span>&otimes;</span>",e.DomEvent.on(i,"click",e.DomEvent.stop,this).on(i,"click",this.cancel,this),i},_createButton:function(t,n){var i=e.DomUtil.create("a",n,this._container);return i.href="#",i.title=t,e.DomEvent.on(i,"click",e.DomEvent.stop,this).on(i,"click",this._handleSubmit,this).on(i,"focus",this.collapseDelayedStop,this).on(i,"blur",this.collapseDelayed,this),i},_createTooltip:function(t){var n=e.DomUtil.create("ul",t,this._container);n.style.display="none";var i=this;return e.DomEvent.disableClickPropagation(n).on(n,"blur",this.collapseDelayed,this).on(n,"mousewheel",(function(t){i.collapseDelayedStop(),e.DomEvent.stopPropagation(t)}),this).on(n,"mouseover",(function(e){i.collapseDelayedStop()}),this),n},_createTip:function(t,n){var i;if(this.options.buildTip){if("string"==typeof(i=this.options.buildTip.call(this,t,n))){var r=e.DomUtil.create("div");r.innerHTML=i,i=r.firstChild}}else(i=e.DomUtil.create("li","")).innerHTML=t;return e.DomUtil.addClass(i,"search-tip"),i._text=t,this.options.tipAutoSubmit&&e.DomEvent.disableClickPropagation(i).on(i,"click",e.DomEvent.stop,this).on(i,"click",(function(e){this._input.value=t,this._handleAutoresize(),this._input.focus(),this._hideTooltip(),this._handleSubmit()}),this),i},_getUrl:function(e){return"function"==typeof this.options.url?this.options.url(e):this.options.url},_defaultFilterData:function(e,t){var n,i,r,o={};if(""===(e=e.replace(/[.*+?^${}()|[\]\\]/g,"")))return[];for(var a in n=this.options.initial?"^":"",i=this.options.casesensitive?void 0:"i",r=new RegExp(n+e,i),t)r.test(a)&&(o[a]=t[a]);return o},showTooltip:function(e){if(this._countertips=0,this._tooltip.innerHTML="",this._tooltip.currentSelection=-1,this.options.tooltipLimit)for(var t in e){if(this._countertips===this.options.tooltipLimit)break;this._countertips++,this._tooltip.appendChild(this._createTip(t,e[t]))}return this._countertips>0?(this._tooltip.style.display="block",this._autoTypeTmp&&this._autoType(),this._autoTypeTmp=this.options.autoType):this._hideTooltip(),this._tooltip.scrollTop=0,this._countertips},_hideTooltip:function(){return this._tooltip.style.display="none",this._tooltip.innerHTML="",0},_defaultFormatData:function(n){var i,r=this.options.propertyName,o=this.options.propertyLoc,a={};if(e.Util.isArray(o))for(i in n)a[t(n[i],r)]=e.latLng(n[i][o[0]],n[i][o[1]]);else for(i in n)a[t(n[i],r)]=e.latLng(t(n[i],o));return a},_recordsFromJsonp:function(t,n){e.Control.Search.callJsonp=n;var i=e.DomUtil.create("script","leaflet-search-jsonp",document.getElementsByTagName("body")[0]),r=e.Util.template(this._getUrl(t)+"&"+this.options.jsonpParam+"=L.Control.Search.callJsonp",{s:t});return i.type="text/javascript",i.src=r,{abort:function(){i.parentNode.removeChild(i)}}},_recordsFromAjax:function(t,n){void 0===window.XMLHttpRequest&&(window.XMLHttpRequest=function(){try{return new ActiveXObject("Microsoft.XMLHTTP.6.0")}catch(e){try{return new ActiveXObject("Microsoft.XMLHTTP.3.0")}catch(e){throw new Error("XMLHttpRequest is not supported")}}});var i=e.Browser.ie&&!window.atob&&document.querySelector?new XDomainRequest:new XMLHttpRequest,r=e.Util.template(this._getUrl(t),{s:t});return i.open("GET",r),i.onload=function(){n(JSON.parse(i.responseText))},i.onreadystatechange=function(){4===i.readyState&&200===i.status&&this.onload()},i.send(),i},_recordsFromLayer:function(){var n,i={},r=this.options.propertyName;return this._layer.eachLayer((function(o){if(!o.hasOwnProperty("_isMarkerSearch"))if(o instanceof e.Marker||o instanceof e.CircleMarker)try{if(t(o.options,r))(n=o.getLatLng()).layer=o,i[t(o.options,r)]=n;else{if(!t(o.feature.properties,r))throw new Error("propertyName '"+r+"' not found in marker");(n=o.getLatLng()).layer=o,i[t(o.feature.properties,r)]=n}}catch(e){console}else if(o.hasOwnProperty("feature"))try{if(!o.feature.properties.hasOwnProperty(r))throw new Error("propertyName '"+r+"' not found in feature");(n=o.getBounds().getCenter()).layer=o,i[o.feature.properties[r]]=n}catch(e){console}else o instanceof e.LayerGroup&&o.eachLayer((function(e){(n=e.getLatLng()).layer=e,i[e.feature.properties[r]]=n}))}),this),i},_autoType:function(){var e=this._input.value.length,t=this._tooltip.firstChild?this._tooltip.firstChild._text:"",n=t.length;if(0===t.indexOf(this._input.value))if(this._input.value=t,this._handleAutoresize(),this._input.createTextRange){var i=this._input.createTextRange();i.collapse(!0),i.moveStart("character",e),i.moveEnd("character",n),i.select()}else this._input.setSelectionRange?this._input.setSelectionRange(e,n):this._input.selectionStart&&(this._input.selectionStart=e,this._input.selectionEnd=n)},_hideAutoType:function(){var e;if((e=this._input.selection)&&e.empty)e.empty();else if(this._input.createTextRange){(e=this._input.createTextRange()).collapse(!0);var t=this._input.value.length;e.moveStart("character",t),e.moveEnd("character",t),e.select()}else this._input.getSelection&&this._input.getSelection().removeAllRanges(),this._input.selectionStart=this._input.selectionEnd},_handleKeypress:function(e){switch(e.keyCode){case 27:this.collapse();break;case 13:(1==this._countertips||this.options.firstTipSubmit&&this._countertips>0)&&this._handleArrowSelect(1),this._handleSubmit();break;case 38:this._handleArrowSelect(-1);break;case 40:this._handleArrowSelect(1);break;case 8:case 45:case 46:this._autoTypeTmp=!1;break;case 37:case 39:case 16:case 17:case 35:case 36:break;default:if(this._input.value.length?this._cancel.style.display="block":this._cancel.style.display="none",this._input.value.length>=this.options.minLength){var t=this;clearTimeout(this.timerKeypress),this.timerKeypress=setTimeout((function(){t._fillRecordsCache()}),this.options.delayType)}else this._hideTooltip()}this._handleAutoresize()},searchText:function(t){var n=t.charCodeAt(t.length);this._input.value=t,this._input.style.display="block",e.DomUtil.addClass(this._container,"search-exp"),this._autoTypeTmp=!1,this._handleKeypress({keyCode:n})},_fillRecordsCache:function(){var t,n=this._input.value,i=this;this._curReq&&this._curReq.abort&&this._curReq.abort(),e.DomUtil.addClass(this._container,"search-load"),this.options.layer?(this._recordsCache=this._recordsFromLayer(),t=this._filterData(this._input.value,this._recordsCache),this.showTooltip(t),e.DomUtil.removeClass(this._container,"search-load")):(this.options.sourceData?this._retrieveData=this.options.sourceData:this.options.url&&(this._retrieveData=this.options.jsonpParam?this._recordsFromJsonp:this._recordsFromAjax),this._curReq=this._retrieveData.call(this,n,(function(n){i._recordsCache=i._formatData(n),t=i.options.sourceData?i._filterData(i._input.value,i._recordsCache):i._recordsCache,i.showTooltip(t),e.DomUtil.removeClass(i._container,"search-load")})))},_handleAutoresize:function(){this._input.style.maxWidth!=this._map._container.offsetWidth&&(this._input.style.maxWidth=e.DomUtil.getStyle(this._map._container,"width")),this.options.autoResize&&this._container.offsetWidth+45<this._map._container.offsetWidth&&(this._input.size=this._input.value.length<this._inputMinSize?this._inputMinSize:this._input.value.length)},_handleArrowSelect:function(t){var n=this._tooltip.hasChildNodes()?this._tooltip.childNodes:[];for(i=0;i<n.length;i++)e.DomUtil.removeClass(n[i],"search-tip-select");if(1==t&&this._tooltip.currentSelection>=n.length-1)e.DomUtil.addClass(n[this._tooltip.currentSelection],"search-tip-select");else if(-1==t&&this._tooltip.currentSelection<=0)this._tooltip.currentSelection=-1;else if("none"!=this._tooltip.style.display){this._tooltip.currentSelection+=t,e.DomUtil.addClass(n[this._tooltip.currentSelection],"search-tip-select"),this._input.value=n[this._tooltip.currentSelection]._text;var r=n[this._tooltip.currentSelection].offsetTop;r+n[this._tooltip.currentSelection].clientHeight>=this._tooltip.scrollTop+this._tooltip.clientHeight?this._tooltip.scrollTop=r-this._tooltip.clientHeight+n[this._tooltip.currentSelection].clientHeight:r<=this._tooltip.scrollTop&&(this._tooltip.scrollTop=r)}},_handleSubmit:function(){if(this._hideAutoType(),this.hideAlert(),this._hideTooltip(),"none"==this._input.style.display)this.expand();else if(""===this._input.value)this.collapse();else{var e=this._getLocation(this._input.value);!1===e?this.showAlert():(this.showLocation(e,this._input.value),this.fire("search:locationfound",{latlng:e,text:this._input.value,layer:e.layer?e.layer:null}))}},_getLocation:function(e){return!!this._recordsCache.hasOwnProperty(e)&&this._recordsCache[e]},_defaultMoveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e)},showLocation:function(e,t){var n=this;return n._map.once("moveend zoomend",(function(t){n._markerSearch&&n._markerSearch.addTo(n._map).setLatLng(e)})),n._moveToLocation(e,t,n._map),n.options.autoCollapse&&n.collapse(),n}}),e.Control.Search.Marker=e.Marker.extend({includes:e.Mixin.Events,options:{icon:new e.Icon.Default,animate:!0,circle:{radius:10,weight:3,color:"#e03",stroke:!0,fill:!1}},initialize:function(t,i){e.setOptions(this,i),!0===i.icon&&(i.icon=new e.Icon.Default),e.Marker.prototype.initialize.call(this,t,i),n(this.options.circle)&&(this._circleLoc=new e.CircleMarker(t,this.options.circle))},onAdd:function(t){e.Marker.prototype.onAdd.call(this,t),this._circleLoc&&(t.addLayer(this._circleLoc),this.options.animate&&this.animate())},onRemove:function(t){e.Marker.prototype.onRemove.call(this,t),this._circleLoc&&t.removeLayer(this._circleLoc)},setLatLng:function(t){return e.Marker.prototype.setLatLng.call(this,t),this._circleLoc&&this._circleLoc.setLatLng(t),this},_initIcon:function(){this.options.icon&&e.Marker.prototype._initIcon.call(this)},_removeIcon:function(){this.options.icon&&e.Marker.prototype._removeIcon.call(this)},animate:function(){if(this._circleLoc){var e=this._circleLoc,t=parseInt(e._radius/5),n=this.options.circle.radius,i=2*e._radius,r=0;e._timerAnimLoc=setInterval((function(){i-=t+=r+=.5,e.setRadius(i),i<n&&(clearInterval(e._timerAnimLoc),e.setRadius(n))}),200)}return this}}),e.Map.addInitHook((function(){this.options.searchControl&&(this.searchControl=e.control.search(this.options.searchControl),this.addControl(this.searchControl))})),e.control.search=function(t){return new e.Control.Search(t)},e.Control.Search})),function(){function e(e,t){var n,i;this.title=e.title,this.stateName=e.stateName?e.stateName:"unnamed-state",this.icon=L.DomUtil.create("span",""),L.DomUtil.addClass(this.icon,"button-state state-"+this.stateName.replace(/(^\s*|\s*$)/g,"")),this.icon.innerHTML=((n=e.icon).match(/[&;=<>"']/)?i=n:(n=n.replace(/(^\s*|\s*$)/g,""),i=L.DomUtil.create("span",""),0===n.indexOf("fa-")?L.DomUtil.addClass(i,"fa "+n):0===n.indexOf("glyphicon-")?L.DomUtil.addClass(i,"glyphicon "+n):L.DomUtil.addClass(i,n),i=i.outerHTML),i),this.onClick=L.Util.bind(e.onClick?e.onClick:function(){},t)}L.Control.EasyBar=L.Control.extend({options:{position:"topleft",id:null,leafletClasses:!0},initialize:function(e,t){t&&L.Util.setOptions(this,t),this._buildContainer(),this._buttons=[];for(var n=0;n<e.length;n++)e[n]._bar=this,e[n]._container=e[n].button,this._buttons.push(e[n]),this.container.appendChild(e[n].button)},_buildContainer:function(){this._container=this.container=L.DomUtil.create("div",""),this.options.leafletClasses&&L.DomUtil.addClass(this.container,"leaflet-bar easy-button-container leaflet-control"),this.options.id&&(this.container.id=this.options.id)},enable:function(){return L.DomUtil.addClass(this.container,"enabled"),L.DomUtil.removeClass(this.container,"disabled"),this.container.setAttribute("aria-hidden","false"),this},disable:function(){return L.DomUtil.addClass(this.container,"disabled"),L.DomUtil.removeClass(this.container,"enabled"),this.container.setAttribute("aria-hidden","true"),this},onAdd:function(){return this.container},addTo:function(e){this._map=e;for(var t=0;t<this._buttons.length;t++)this._buttons[t]._map=e;var n=this._container=this.onAdd(e),i=this.getPosition(),r=e._controlCorners[i];return L.DomUtil.addClass(n,"leaflet-control"),-1!==i.indexOf("bottom")?r.insertBefore(n,r.firstChild):r.appendChild(n),this}}),L.easyBar=function(){for(var e=[L.Control.EasyBar],t=0;t<arguments.length;t++)e.push(arguments[t]);return new(Function.prototype.bind.apply(L.Control.EasyBar,e))},L.Control.EasyButton=L.Control.extend({options:{position:"topleft",id:null,type:"replace",states:[],leafletClasses:!0,tagName:"button"},initialize:function(t,n,i,r){this.options.states=[],null!=r&&(this.options.id=r),this.storage={},"object"==typeof arguments[arguments.length-1]&&L.Util.setOptions(this,arguments[arguments.length-1]),0===this.options.states.length&&"string"==typeof t&&"function"==typeof n&&this.options.states.push({icon:t,onClick:n,title:"string"==typeof i?i:""}),this._states=[];for(var o=0;o<this.options.states.length;o++)this._states.push(new e(this.options.states[o],this));this._buildButton(),this._activateState(this._states[0])},_buildButton:function(){if(this.button=L.DomUtil.create(this.options.tagName,""),"button"===this.options.tagName&&this.button.setAttribute("type","button"),this.options.id&&(this.button.id=this.options.id),this.options.leafletClasses&&L.DomUtil.addClass(this.button,"easy-button-button leaflet-bar-part leaflet-interactive"),L.DomEvent.addListener(this.button,"dblclick",L.DomEvent.stop),L.DomEvent.addListener(this.button,"mousedown",L.DomEvent.stop),L.DomEvent.addListener(this.button,"mouseup",L.DomEvent.stop),L.DomEvent.addListener(this.button,"click",(function(e){L.DomEvent.stop(e),this._currentState.onClick(this,this._map?this._map:null),this._map&&this._map.getContainer().focus()}),this),"replace"==this.options.type)this.button.appendChild(this._currentState.icon);else for(var e=0;e<this._states.length;e++)this.button.appendChild(this._states[e].icon)},_currentState:{stateName:"unnamed",icon:document.createElement("span")},_states:null,state:function(e){return 0===arguments.length?this._currentState.stateName:("string"==typeof e?this._activateStateNamed(e):"number"==typeof e&&this._activateState(this._states[e]),this)},_activateStateNamed:function(e){for(var t=0;t<this._states.length;t++)this._states[t].stateName==e&&this._activateState(this._states[t])},_activateState:function(e){if(e!==this._currentState){"replace"==this.options.type&&(this.button.appendChild(e.icon),this.button.removeChild(this._currentState.icon)),e.title?this.button.title=e.title:this.button.removeAttribute("title");for(var t=0;t<this._states.length;t++)L.DomUtil.removeClass(this._states[t].icon,this._currentState.stateName+"-active"),L.DomUtil.addClass(this._states[t].icon,e.stateName+"-active");L.DomUtil.removeClass(this.button,this._currentState.stateName+"-active"),L.DomUtil.addClass(this.button,e.stateName+"-active"),this._currentState=e}},enable:function(){return L.DomUtil.addClass(this.button,"enabled"),L.DomUtil.removeClass(this.button,"disabled"),this.button.setAttribute("aria-hidden","false"),this},disable:function(){return L.DomUtil.addClass(this.button,"disabled"),L.DomUtil.removeClass(this.button,"enabled"),this.button.setAttribute("aria-hidden","true"),this},onAdd:function(e){var t=L.easyBar([this],{position:this.options.position,leafletClasses:this.options.leafletClasses});return this._anonymousBar=t,this._container=t.container,this._anonymousBar.container},removeFrom:function(e){return this._map===e&&this.remove(),this}}),L.easyButton=function(){var e=Array.prototype.concat.apply([L.Control.EasyButton],arguments);return new(Function.prototype.bind.apply(L.Control.EasyButton,e))}}(),function(){var e=window.console||{error:function(){},warn:function(){}};function t(t){t.Control.Loading=t.Control.extend({options:{delayIndicator:null,position:"topleft",separate:!1,zoomControl:null,spinjs:!1,spin:{lines:7,length:3,width:3,radius:5,rotate:13,top:"83%"}},initialize:function(e){t.setOptions(this,e),this._dataLoaders={},null!==this.options.zoomControl&&(this.zoomControl=this.options.zoomControl)},onAdd:function(n){if(this.options.spinjs&&"function"!=typeof Spinner)return e.error("Leaflet.loading cannot load because you didn't load spin.js (http://fgnass.github.io/spin.js/), even though you set it in options.");this._addLayerListeners(n),this._addMapListeners(n),this.options.separate||this.zoomControl||(n.zoomControl?this.zoomControl=n.zoomControl:n.zoomsliderControl&&(this.zoomControl=n.zoomsliderControl));var i,r="leaflet-control-loading";return this.zoomControl&&!this.options.separate?(i=this.zoomControl._container,r+=" leaflet-bar-part-bottom leaflet-bar-part last",t.DomUtil.addClass(this._getLastControlButton(),"leaflet-bar-part-bottom")):i=t.DomUtil.create("div","leaflet-control-zoom leaflet-control-layer-container leaflet-bar"),this._indicatorContainer=i,this._indicator=t.DomUtil.create("a",r,i),this.options.spinjs&&(this._spinner=new Spinner(this.options.spin).spin(),this._indicator.appendChild(this._spinner.el)),i},onRemove:function(e){this._removeLayerListeners(e),this._removeMapListeners(e)},removeFrom:function(e){return this.zoomControl&&!this.options.separate?(this._container.removeChild(this._indicator),this._map=null,this.onRemove(e),this):t.Control.prototype.removeFrom.call(this,e)},addLoader:function(e){if(this._dataLoaders[e]=!0,this.options.delayIndicator&&!this.delayIndicatorTimeout){var t=this;this.delayIndicatorTimeout=setTimeout((function(){t.updateIndicator(),t.delayIndicatorTimeout=null}),this.options.delayIndicator)}else this.updateIndicator()},removeLoader:function(e){delete this._dataLoaders[e],this.updateIndicator(),this.options.delayIndicator&&this.delayIndicatorTimeout&&!this.isLoading()&&(clearTimeout(this.delayIndicatorTimeout),this.delayIndicatorTimeout=null)},updateIndicator:function(){this.isLoading()?this._showIndicator():this._hideIndicator()},isLoading:function(){return this._countLoaders()>0},_countLoaders:function(){var e,t=0;for(e in this._dataLoaders)this._dataLoaders.hasOwnProperty(e)&&t++;return t},_showIndicator:function(){t.DomUtil.addClass(this._indicator,"is-loading"),t.DomUtil.addClass(this._indicatorContainer,"is-loading"),this.options.separate||(this.zoomControl instanceof t.Control.Zoom?t.DomUtil.removeClass(this._getLastControlButton(),"leaflet-bar-part-bottom"):"function"==typeof t.Control.Zoomslider&&this.zoomControl instanceof t.Control.Zoomslider&&t.DomUtil.removeClass(this.zoomControl._ui.zoomOut,"leaflet-bar-part-bottom"))},_hideIndicator:function(){t.DomUtil.removeClass(this._indicator,"is-loading"),t.DomUtil.removeClass(this._indicatorContainer,"is-loading"),this.options.separate||(this.zoomControl instanceof t.Control.Zoom?t.DomUtil.addClass(this._getLastControlButton(),"leaflet-bar-part-bottom"):"function"==typeof t.Control.Zoomslider&&this.zoomControl instanceof t.Control.Zoomslider&&t.DomUtil.addClass(this.zoomControl._ui.zoomOut,"leaflet-bar-part-bottom"))},_getLastControlButton:function(){for(var e=this.zoomControl._container,t=e.children.length-1;t>0;){var n=e.children[t];if(this._indicator!==n&&0!==n.offsetWidth&&0!==n.offsetHeight)break;t--}return e.children[t]},_handleLoading:function(e){this.addLoader(this.getEventId(e))},_handleBaseLayerChange:function(e){var n=this;e.layer&&e.layer.eachLayer&&"function"==typeof e.layer.eachLayer?e.layer.eachLayer((function(e){n._handleBaseLayerChange({layer:e})})):t.TileLayer.Canvas&&e.layer instanceof t.TileLayer.Canvas||n._handleLoading(e)},_handleLoad:function(e){this.removeLoader(this.getEventId(e))},getEventId:function(e){return e.id?e.id:e.layer?e.layer._leaflet_id:e.target._leaflet_id},_layerAdd:function(t){if(t.layer&&t.layer.on)try{t.layer.on({loading:this._handleLoading,load:this._handleLoad},this)}catch(n){e.warn("L.Control.Loading: Tried and failed to add  event handlers to layer",t.layer),e.warn("L.Control.Loading: Full details",n)}},_layerRemove:function(t){if(t.layer&&t.layer.off)try{t.layer.off({loading:this._handleLoading,load:this._handleLoad},this)}catch(n){e.warn("L.Control.Loading: Tried and failed to remove event handlers from layer",t.layer),e.warn("L.Control.Loading: Full details",n)}},_addLayerListeners:function(e){e.eachLayer((function(e){e.on&&e.on({loading:this._handleLoading,load:this._handleLoad},this)}),this),e.on("layeradd",this._layerAdd,this),e.on("layerremove",this._layerRemove,this)},_removeLayerListeners:function(e){e.eachLayer((function(e){e.off&&e.off({loading:this._handleLoading,load:this._handleLoad},this)}),this),e.off("layeradd",this._layerAdd,this),e.off("layerremove",this._layerRemove,this)},_addMapListeners:function(e){e.on({baselayerchange:this._handleBaseLayerChange,dataloading:this._handleLoading,dataload:this._handleLoad,layerremove:this._handleLoad},this)},_removeMapListeners:function(e){e.off({baselayerchange:this._handleBaseLayerChange,dataloading:this._handleLoading,dataload:this._handleLoad,layerremove:this._handleLoad},this)}}),t.Map.addInitHook((function(){this.options.loadingControl&&(this.loadingControl=new t.Control.Loading,this.addControl(this.loadingControl))})),t.Control.loading=function(e){return new t.Control.Loading(e)}}"function"==typeof define&&define.amd?define(["leaflet"],(function(e){t(e)})):t(L)}(),function(e,t,n){L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animate:!0,animateAddingMarkers:!1,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:"#222",opacity:.5},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(e){L.Util.setOptions(this,e),this.options.iconCreateFunction||(this.options.iconCreateFunction=this._defaultIconCreateFunction),this._featureGroup=L.featureGroup(),this._featureGroup.on(L.FeatureGroup.EVENTS,this._propagateEvent,this),this._nonPointGroup=L.featureGroup(),this._nonPointGroup.on(L.FeatureGroup.EVENTS,this._propagateEvent,this),this._inZoomAnimation=0,this._needsClustering=[],this._needsRemoving=[],this._currentShownBounds=null,this._queue=[];var t=L.DomUtil.TRANSITION&&this.options.animate;L.extend(this,t?this._withAnimation:this._noAnimation),this._markerCluster=t?L.MarkerCluster:L.MarkerClusterNonAnimated},addLayer:function(e){if(e instanceof L.LayerGroup){var t=[];for(var n in e._layers)t.push(e._layers[n]);return this.addLayers(t)}if(!e.getLatLng)return this._nonPointGroup.addLayer(e),this;if(!this._map)return this._needsClustering.push(e),this;if(this.hasLayer(e))return this;this._unspiderfy&&this._unspiderfy(),this._addLayer(e,this._maxZoom),this._topClusterLevel._recalculateBounds();var i=e,r=this._map.getZoom();if(e.__parent)for(;i.__parent._zoom>=r;)i=i.__parent;return this._currentShownBounds.contains(i.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(e,i):this._animationAddLayerNonAnimated(e,i)),this},removeLayer:function(e){if(e instanceof L.LayerGroup){var t=[];for(var n in e._layers)t.push(e._layers[n]);return this.removeLayers(t)}return e.getLatLng?this._map?e.__parent?(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(e)),this._removeLayer(e,!0),this._topClusterLevel._recalculateBounds(),this._featureGroup.hasLayer(e)&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow()),this):this:(!this._arraySplice(this._needsClustering,e)&&this.hasLayer(e)&&this._needsRemoving.push(e),this):(this._nonPointGroup.removeLayer(e),this)},addLayers:function(e){var t,n,i,r,o=this._featureGroup,a=this._nonPointGroup,s=this.options.chunkedLoading,l=this.options.chunkInterval,u=this.options.chunkProgress;if(this._map){var c=0,d=(new Date).getTime(),h=L.bind((function(){for(var t=(new Date).getTime();c<e.length&&!(s&&0==c%200&&(new Date).getTime()-t>l);c++)if((r=e[c]).getLatLng){if(!this.hasLayer(r)&&(this._addLayer(r,this._maxZoom),r.__parent&&2===r.__parent.getChildCount())){var n=r.__parent.getAllChildMarkers(),i=n[0]===r?n[1]:n[0];o.removeLayer(i)}}else a.addLayer(r);u&&u(c,e.length,(new Date).getTime()-d),c===e.length?(this._topClusterLevel._recalculateBounds(),this._featureGroup.eachLayer((function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()})),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(h,this.options.chunkDelay)}),this);h()}else{for(t=[],n=0,i=e.length;i>n;n++)(r=e[n]).getLatLng?this.hasLayer(r)||t.push(r):a.addLayer(r);this._needsClustering=this._needsClustering.concat(t)}return this},removeLayers:function(e){var t,n,i,r=this._featureGroup,o=this._nonPointGroup;if(!this._map){for(t=0,n=e.length;n>t;t++)i=e[t],this._arraySplice(this._needsClustering,i),o.removeLayer(i),this.hasLayer(i)&&this._needsRemoving.push(i);return this}if(this._unspiderfy)for(this._unspiderfy(),t=0,n=e.length;n>t;t++)i=e[t],this._unspiderfyLayer(i);for(t=0,n=e.length;n>t;t++)(i=e[t]).__parent?(this._removeLayer(i,!0,!0),r.hasLayer(i)&&(r.removeLayer(i),i.clusterShow&&i.clusterShow())):o.removeLayer(i);return this._topClusterLevel._recalculateBounds(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),r.eachLayer((function(e){e instanceof L.MarkerCluster&&e._updateIcon()})),this},clearLayers:function(){return this._map||(this._needsClustering=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),
-this._nonPointGroup.clearLayers(),this.eachLayer((function(e){delete e.__parent})),this._map&&this._generateInitialClusters(),this},getBounds:function(){var e=new L.LatLngBounds;this._topClusterLevel&&e.extend(this._topClusterLevel._bounds);for(var t=this._needsClustering.length-1;t>=0;t--)e.extend(this._needsClustering[t].getLatLng());return e.extend(this._nonPointGroup.getBounds()),e},eachLayer:function(e,t){var n,i=this._needsClustering.slice();for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(i),n=i.length-1;n>=0;n--)e.call(t,i[n]);this._nonPointGroup.eachLayer(e,t)},getLayers:function(){var e=[];return this.eachLayer((function(t){e.push(t)})),e},getLayer:function(e){var t=null;return e=parseInt(e,10),this.eachLayer((function(n){L.stamp(n)===e&&(t=n)})),t},hasLayer:function(e){if(!e)return!1;var t,n=this._needsClustering;for(t=n.length-1;t>=0;t--)if(n[t]===e)return!0;for(t=(n=this._needsRemoving).length-1;t>=0;t--)if(n[t]===e)return!1;return!(!e.__parent||e.__parent._group!==this)||this._nonPointGroup.hasLayer(e)},zoomToShowLayer:function(e,t){"function"!=typeof t&&(t=function(){});var n=function(){!e._icon&&!e.__parent._icon||this._inZoomAnimation||(this._map.off("moveend",n,this),this.off("animationend",n,this),e._icon?t():e.__parent._icon&&(this.once("spiderfied",t,this),e.__parent.spiderfy()))};if(e._icon&&this._map.getBounds().contains(e.getLatLng()))t();else if(e.__parent._zoom<this._map.getZoom())this._map.on("moveend",n,this),this._map.panTo(e.getLatLng());else{var i=function(){this._map.off("movestart",i,this),i=null};this._map.on("movestart",i,this),this._map.on("moveend",n,this),this.on("animationend",n,this),e.__parent.zoomToBounds(),i&&n.call(this)}},onAdd:function(e){var t,n,i;if(this._map=e,!isFinite(this._map.getMaxZoom()))throw"Map has no maxZoom specified";for(this._featureGroup.onAdd(e),this._nonPointGroup.onAdd(e),this._gridClusters||this._generateInitialClusters(),this._maxLat=e.options.crs.projection.MAX_LATITUDE,t=0,n=this._needsRemoving.length;n>t;t++)i=this._needsRemoving[t],this._removeLayer(i,!0);this._needsRemoving=[],this._zoom=this._map.getZoom(),this._currentShownBounds=this._getExpandedVisibleBounds(),this._map.on("zoomend",this._zoomEnd,this),this._map.on("moveend",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),n=this._needsClustering,this._needsClustering=[],this.addLayers(n)},onRemove:function(e){e.off("zoomend",this._zoomEnd,this),e.off("moveend",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim",""),this._spiderfierOnRemove&&this._spiderfierOnRemove(),delete this._maxLat,this._hideCoverage(),this._featureGroup.onRemove(e),this._nonPointGroup.onRemove(e),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(e){for(var t=e;t&&!t._icon;)t=t.__parent;return t||null},_arraySplice:function(e,t){for(var n=e.length-1;n>=0;n--)if(e[n]===t)return e.splice(n,1),!0},_removeFromGridUnclustered:function(e,t){for(var n=this._map,i=this._gridUnclustered;t>=0&&i[t].removeObject(e,n.project(e.getLatLng(),t));t--);},_removeLayer:function(e,t,n){var i=this._gridClusters,r=this._gridUnclustered,o=this._featureGroup,a=this._map;t&&this._removeFromGridUnclustered(e,this._maxZoom);var s,l=e.__parent,u=l._markers;for(this._arraySplice(u,e);l&&(l._childCount--,l._boundsNeedUpdate=!0,!(l._zoom<0));)t&&l._childCount<=1?(s=l._markers[0]===e?l._markers[1]:l._markers[0],i[l._zoom].removeObject(l,a.project(l._cLatLng,l._zoom)),r[l._zoom].addObject(s,a.project(s.getLatLng(),l._zoom)),this._arraySplice(l.__parent._childClusters,l),l.__parent._markers.push(s),s.__parent=l.__parent,l._icon&&(o.removeLayer(l),n||o.addLayer(s))):n&&l._icon||l._updateIcon(),l=l.__parent;delete e.__parent},_isOrIsParent:function(e,t){for(;t;){if(e===t)return!0;t=t.parentNode}return!1},_propagateEvent:function(e){if(e.layer instanceof L.MarkerCluster){if(e.originalEvent&&this._isOrIsParent(e.layer._icon,e.originalEvent.relatedTarget))return;e.type="cluster"+e.type}this.fire(e.type,e)},_defaultIconCreateFunction:function(e){var t=e.getChildCount(),n=" marker-cluster-";return n+=10>t?"small":100>t?"medium":"large",new L.DivIcon({html:"<div><span>"+t+"</span></div>",className:"marker-cluster"+n,iconSize:new L.Point(40,40)})},_bindEvents:function(){var e=this._map,t=this.options.spiderfyOnMaxZoom,n=this.options.showCoverageOnHover,i=this.options.zoomToBoundsOnClick;(t||i)&&this.on("clusterclick",this._zoomOrSpiderfy,this),n&&(this.on("clustermouseover",this._showCoverage,this),this.on("clustermouseout",this._hideCoverage,this),e.on("zoomend",this._hideCoverage,this))},_zoomOrSpiderfy:function(e){for(var t=e.layer,n=t;1===n._childClusters.length;)n=n._childClusters[0];n._zoom===this._maxZoom&&n._childCount===t._childCount?this.options.spiderfyOnMaxZoom&&t.spiderfy():this.options.zoomToBoundsOnClick&&t.zoomToBounds(),e.originalEvent&&13===e.originalEvent.keyCode&&this._map._container.focus()},_showCoverage:function(e){var t=this._map;this._inZoomAnimation||(this._shownPolygon&&t.removeLayer(this._shownPolygon),e.layer.getChildCount()>2&&e.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(e.layer.getConvexHull(),this.options.polygonOptions),t.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var e=this.options.spiderfyOnMaxZoom,t=this.options.showCoverageOnHover,n=this.options.zoomToBoundsOnClick,i=this._map;(e||n)&&this.off("clusterclick",this._zoomOrSpiderfy,this),t&&(this.off("clustermouseover",this._showCoverage,this),this.off("clustermouseout",this._hideCoverage,this),i.off("zoomend",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=this._map._zoom,this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var e=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,this._zoom,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._map._zoom,e),this._currentShownBounds=e}},_generateInitialClusters:function(){var e=this._map.getMaxZoom(),t=this.options.maxClusterRadius,n=t;"function"!=typeof t&&(n=function(){return t}),this.options.disableClusteringAtZoom&&(e=this.options.disableClusteringAtZoom-1),this._maxZoom=e,this._gridClusters={},this._gridUnclustered={};for(var i=e;i>=0;i--)this._gridClusters[i]=new L.DistanceGrid(n(i)),this._gridUnclustered[i]=new L.DistanceGrid(n(i));this._topClusterLevel=new this._markerCluster(this,-1)},_addLayer:function(e,t){var n,i,r=this._gridClusters,o=this._gridUnclustered;for(this.options.singleMarkerMode&&this._overrideMarkerIcon(e);t>=0;t--){n=this._map.project(e.getLatLng(),t);var a=r[t].getNearObject(n);if(a)return a._addChild(e),void(e.__parent=a);if(a=o[t].getNearObject(n)){var s=a.__parent;s&&this._removeLayer(a,!1);var l=new this._markerCluster(this,t,a,e);r[t].addObject(l,this._map.project(l._cLatLng,t)),a.__parent=l,e.__parent=l;var u=l;for(i=t-1;i>s._zoom;i--)u=new this._markerCluster(this,i,u),r[i].addObject(u,this._map.project(a.getLatLng(),i));return s._addChild(u),void this._removeFromGridUnclustered(a,t)}o[t].addObject(e,n)}this._topClusterLevel._addChild(e),e.__parent=this._topClusterLevel},_enqueue:function(e){this._queue.push(e),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var e=0;e<this._queue.length;e++)this._queue[e].call(this);this._queue.length=0,clearTimeout(this._queueTimeout),this._queueTimeout=null},_mergeSplitClusters:function(){this._processQueue(),this._zoom<this._map._zoom&&this._currentShownBounds.intersects(this._getExpandedVisibleBounds())?(this._animationStart(),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,this._zoom,this._getExpandedVisibleBounds()),this._animationZoomIn(this._zoom,this._map._zoom)):this._zoom>this._map._zoom?(this._animationStart(),this._animationZoomOut(this._zoom,this._map._zoom)):this._moveEnd()},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(e){var t=this._maxLat;return t!==n&&(e.getNorth()>=t&&(e._northEast.lat=1/0),e.getSouth()<=-t&&(e._southWest.lat=-1/0)),e},_animationAddLayerNonAnimated:function(e,t){if(t===e)this._featureGroup.addLayer(e);else if(2===t._childCount){t._addToMap();var n=t.getAllChildMarkers();this._featureGroup.removeLayer(n[0]),this._featureGroup.removeLayer(n[1])}else t._updateIcon()},_overrideMarkerIcon:function(e){return e.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[e]}})}}),L.MarkerClusterGroup.include({_mapBoundsInfinite:new L.LatLngBounds(new L.LatLng(-1/0,-1/0),new L.LatLng(1/0,1/0))}),L.MarkerClusterGroup.include({_noAnimation:{_animationStart:function(){},_animationZoomIn:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationZoomOut:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationAddLayer:function(e,t){this._animationAddLayerNonAnimated(e,t)}},_withAnimation:{_animationStart:function(){this._map._mapPane.className+=" leaflet-cluster-anim",this._inZoomAnimation++},_animationZoomIn:function(e,t){var n,i=this._getExpandedVisibleBounds(),r=this._featureGroup;this._topClusterLevel._recursively(i,e,0,(function(o){var a,s=o._latlng,l=o._markers;for(i.contains(s)||(s=null),o._isSingleParent()&&e+1===t?(r.removeLayer(o),o._recursivelyAddChildrenToMap(null,t,i)):(o.clusterHide(),o._recursivelyAddChildrenToMap(s,t,i)),n=l.length-1;n>=0;n--)a=l[n],i.contains(a._latlng)||r.removeLayer(a)})),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(i,t),r.eachLayer((function(e){e instanceof L.MarkerCluster||!e._icon||e.clusterShow()})),this._topClusterLevel._recursively(i,e,t,(function(e){e._recursivelyRestoreChildPositions(t)})),this._enqueue((function(){this._topClusterLevel._recursively(i,e,0,(function(e){r.removeLayer(e),e.clusterShow()})),this._animationEnd()}))},_animationZoomOut:function(e,t){this._animationZoomOutSingle(this._topClusterLevel,e-1,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,e,this._getExpandedVisibleBounds())},_animationAddLayer:function(e,t){var n=this,i=this._featureGroup;i.addLayer(e),t!==e&&(t._childCount>2?(t._updateIcon(),this._forceLayout(),this._animationStart(),e._setPos(this._map.latLngToLayerPoint(t.getLatLng())),e.clusterHide(),this._enqueue((function(){i.removeLayer(e),e.clusterShow(),n._animationEnd()}))):(this._forceLayout(),n._animationStart(),n._animationZoomOutSingle(t,this._map.getMaxZoom(),this._map.getZoom())))}},_animationZoomOutSingle:function(e,t,n){var i=this._getExpandedVisibleBounds();e._recursivelyAnimateChildrenInAndAddSelfToMap(i,t+1,n);var r=this;this._forceLayout(),e._recursivelyBecomeVisible(i,n),this._enqueue((function(){if(1===e._childCount){var o=e._markers[0];o.setLatLng(o.getLatLng()),o.clusterShow&&o.clusterShow()}else e._recursively(i,n,0,(function(e){e._recursivelyRemoveChildrenFromMap(i,t+1)}));r._animationEnd()}))},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim","")),this._inZoomAnimation--,this.fire("animationend")},_forceLayout:function(){L.Util.falseFn(t.body.offsetWidth)}}),L.markerClusterGroup=function(e){return new L.MarkerClusterGroup(e)},L.MarkerCluster=L.Marker.extend({initialize:function(e,t,n,i){L.Marker.prototype.initialize.call(this,n?n._cLatLng||n.getLatLng():new L.LatLng(0,0),{icon:this}),this._group=e,this._zoom=t,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,n&&this._addChild(n),i&&this._addChild(i)},getAllChildMarkers:function(e){e=e||[];for(var t=this._childClusters.length-1;t>=0;t--)this._childClusters[t].getAllChildMarkers(e);for(var n=this._markers.length-1;n>=0;n--)e.push(this._markers[n]);return e},getChildCount:function(){return this._childCount},zoomToBounds:function(){for(var e,t=this._childClusters.slice(),n=this._group._map,i=n.getBoundsZoom(this._bounds),r=this._zoom+1,o=n.getZoom();t.length>0&&i>r;){r++;var a=[];for(e=0;e<t.length;e++)a=a.concat(t[e]._childClusters);t=a}i>r?this._group._map.setView(this._latlng,r):o>=i?this._group._map.setView(this._latlng,o+1):this._group._map.fitBounds(this._bounds)},getBounds:function(){var e=new L.LatLngBounds;return e.extend(this._bounds),e},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(e,t){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(e),e instanceof L.MarkerCluster?(t||(this._childClusters.push(e),e.__parent=this),this._childCount+=e._childCount):(t||this._markers.push(e),this._childCount++),this.__parent&&this.__parent._addChild(e,!0)},_setClusterCenter:function(e){this._cLatLng||(this._cLatLng=e._cLatLng||e._latlng)},_resetBounds:function(){var e=this._bounds;e._southWest&&(e._southWest.lat=1/0,e._southWest.lng=1/0),e._northEast&&(e._northEast.lat=-1/0,e._northEast.lng=-1/0)},_recalculateBounds:function(){var e,t,n,i,r=this._markers,o=this._childClusters,a=0,s=0,l=this._childCount;if(0!==l){for(this._resetBounds(),e=0;e<r.length;e++)n=r[e]._latlng,this._bounds.extend(n),a+=n.lat,s+=n.lng;for(e=0;e<o.length;e++)(t=o[e])._boundsNeedUpdate&&t._recalculateBounds(),this._bounds.extend(t._bounds),n=t._wLatLng,i=t._childCount,a+=n.lat*i,s+=n.lng*i;this._latlng=this._wLatLng=new L.LatLng(a/l,s/l),this._boundsNeedUpdate=!1}},_addToMap:function(e){e&&(this._backupLatlng=this._latlng,this.setLatLng(e)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(e,t,n){this._recursively(e,0,n-1,(function(e){var n,i,r=e._markers;for(n=r.length-1;n>=0;n--)(i=r[n])._icon&&(i._setPos(t),i.clusterHide())}),(function(e){var n,i,r=e._childClusters;for(n=r.length-1;n>=0;n--)(i=r[n])._icon&&(i._setPos(t),i.clusterHide())}))},_recursivelyAnimateChildrenInAndAddSelfToMap:function(e,t,n){this._recursively(e,n,0,(function(i){i._recursivelyAnimateChildrenIn(e,i._group._map.latLngToLayerPoint(i.getLatLng()).round(),t),i._isSingleParent()&&t-1===n?(i.clusterShow(),i._recursivelyRemoveChildrenFromMap(e,t)):i.clusterHide(),i._addToMap()}))},_recursivelyBecomeVisible:function(e,t){this._recursively(e,0,t,null,(function(e){e.clusterShow()}))},_recursivelyAddChildrenToMap:function(e,t,n){this._recursively(n,-1,t,(function(i){if(t!==i._zoom)for(var r=i._markers.length-1;r>=0;r--){var o=i._markers[r];n.contains(o._latlng)&&(e&&(o._backupLatlng=o.getLatLng(),o.setLatLng(e),o.clusterHide&&o.clusterHide()),i._group._featureGroup.addLayer(o))}}),(function(t){t._addToMap(e)}))},_recursivelyRestoreChildPositions:function(e){for(var t=this._markers.length-1;t>=0;t--){var n=this._markers[t];n._backupLatlng&&(n.setLatLng(n._backupLatlng),delete n._backupLatlng)}if(e-1===this._zoom)for(var i=this._childClusters.length-1;i>=0;i--)this._childClusters[i]._restorePosition();else for(var r=this._childClusters.length-1;r>=0;r--)this._childClusters[r]._recursivelyRestoreChildPositions(e)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(e,t,n){var i,r;this._recursively(e,-1,t-1,(function(e){for(r=e._markers.length-1;r>=0;r--)i=e._markers[r],n&&n.contains(i._latlng)||(e._group._featureGroup.removeLayer(i),i.clusterShow&&i.clusterShow())}),(function(e){for(r=e._childClusters.length-1;r>=0;r--)i=e._childClusters[r],n&&n.contains(i._latlng)||(e._group._featureGroup.removeLayer(i),i.clusterShow&&i.clusterShow())}))},_recursively:function(e,t,n,i,r){var o,a,s=this._childClusters,l=this._zoom;if(t>l)for(o=s.length-1;o>=0;o--)a=s[o],e.intersects(a._bounds)&&a._recursively(e,t,n,i,r);else if(i&&i(this),r&&this._zoom===n&&r(this),n>l)for(o=s.length-1;o>=0;o--)a=s[o],e.intersects(a._bounds)&&a._recursively(e,t,n,i,r)},_isSingleParent:function(){return this._childClusters.length>0&&this._childClusters[0]._childCount===this._childCount}}),L.Marker.include({clusterHide:function(){return this.options.opacityWhenUnclustered=this.options.opacity||1,this.setOpacity(0)},clusterShow:function(){var e=this.setOpacity(this.options.opacity||this.options.opacityWhenUnclustered);return delete this.options.opacityWhenUnclustered,e}}),L.DistanceGrid=function(e){this._cellSize=e,this._sqCellSize=e*e,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(e,t){var n=this._getCoord(t.x),i=this._getCoord(t.y),r=this._grid,o=r[i]=r[i]||{},a=o[n]=o[n]||[],s=L.Util.stamp(e);this._objectPoint[s]=t,a.push(e)},updateObject:function(e,t){this.removeObject(e),this.addObject(e,t)},removeObject:function(e,t){var n,i,r=this._getCoord(t.x),o=this._getCoord(t.y),a=this._grid,s=a[o]=a[o]||{},l=s[r]=s[r]||[];for(delete this._objectPoint[L.Util.stamp(e)],n=0,i=l.length;i>n;n++)if(l[n]===e)return l.splice(n,1),1===i&&delete s[r],!0},eachObject:function(e,t){var n,i,r,o,a,s,l=this._grid;for(n in l)for(i in a=l[n])for(r=0,o=(s=a[i]).length;o>r;r++)e.call(t,s[r])&&(r--,o--)},getNearObject:function(e){var t,n,i,r,o,a,s,l,u=this._getCoord(e.x),c=this._getCoord(e.y),d=this._objectPoint,h=this._sqCellSize,f=null;for(t=c-1;c+1>=t;t++)if(r=this._grid[t])for(n=u-1;u+1>=n;n++)if(o=r[n])for(i=0,a=o.length;a>i;i++)s=o[i],h>(l=this._sqDist(d[L.Util.stamp(s)],e))&&(h=l,f=s);return f},_getCoord:function(e){return Math.floor(e/this._cellSize)},_sqDist:function(e,t){var n=t.x-e.x,i=t.y-e.y;return n*n+i*i}},L.QuickHull={getDistant:function(e,t){var n=t[1].lat-t[0].lat;return(t[0].lng-t[1].lng)*(e.lat-t[0].lat)+n*(e.lng-t[0].lng)},findMostDistantPointFromBaseLine:function(e,t){var n,i,r,o=0,a=null,s=[];for(n=t.length-1;n>=0;n--)i=t[n],(r=this.getDistant(i,e))>0&&(s.push(i),r>o&&(o=r,a=i));return{maxPoint:a,newPoints:s}},buildConvexHull:function(e,t){var n=[],i=this.findMostDistantPointFromBaseLine(e,t);return i.maxPoint?n=(n=n.concat(this.buildConvexHull([e[0],i.maxPoint],i.newPoints))).concat(this.buildConvexHull([i.maxPoint,e[1]],i.newPoints)):[e[0]]},getConvexHull:function(e){var t,n=!1,i=!1,r=!1,o=!1,a=null,s=null,l=null,u=null,c=null,d=null;for(t=e.length-1;t>=0;t--){var h=e[t];(!1===n||h.lat>n)&&(a=h,n=h.lat),(!1===i||h.lat<i)&&(s=h,i=h.lat),(!1===r||h.lng>r)&&(l=h,r=h.lng),(!1===o||h.lng<o)&&(u=h,o=h.lng)}return i!==n?(d=s,c=a):(d=u,c=l),[].concat(this.buildConvexHull([d,c],e),this.buildConvexHull([c,d],e))}},L.MarkerCluster.include({getConvexHull:function(){var e,t,n=this.getAllChildMarkers(),i=[];for(t=n.length-1;t>=0;t--)e=n[t].getLatLng(),i.push(e);return L.QuickHull.getConvexHull(i)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:Math.PI/6,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var e,t=this.getAllChildMarkers(),n=this._group._map.latLngToLayerPoint(this._latlng);this._group._unspiderfy(),this._group._spiderfied=this,t.length>=this._circleSpiralSwitchover?e=this._generatePointsSpiral(t.length,n):(n.y+=10,e=this._generatePointsCircle(t.length,n)),this._animationSpiderfy(t,e)}},unspiderfy:function(e){this._group._inZoomAnimation||(this._animationUnspiderfy(e),this._group._spiderfied=null)},_generatePointsCircle:function(e,t){var n,i,r=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+e)/this._2PI,o=this._2PI/e,a=[];for(a.length=e,n=e-1;n>=0;n--)i=this._circleStartAngle+n*o,a[n]=new L.Point(t.x+r*Math.cos(i),t.y+r*Math.sin(i))._round();return a},_generatePointsSpiral:function(e,t){var n,i=this._group.options.spiderfyDistanceMultiplier,r=i*this._spiralLengthStart,o=i*this._spiralFootSeparation,a=i*this._spiralLengthFactor*this._2PI,s=0,l=[];for(l.length=e,n=e-1;n>=0;n--)s+=o/r+5e-4*n,l[n]=new L.Point(t.x+r*Math.cos(s),t.y+r*Math.sin(s))._round(),r+=a/s;return l},_noanimationUnspiderfy:function(){var e,t,n=this._group,i=n._map,r=n._featureGroup,o=this.getAllChildMarkers();for(this.setOpacity(1),t=o.length-1;t>=0;t--)e=o[t],r.removeLayer(e),e._preSpiderfyLatlng&&(e.setLatLng(e._preSpiderfyLatlng),delete e._preSpiderfyLatlng),e.setZIndexOffset&&e.setZIndexOffset(0),e._spiderLeg&&(i.removeLayer(e._spiderLeg),delete e._spiderLeg);n.fire("unspiderfied",{cluster:this,markers:o}),n._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(e,t){var n,i,r,o,a=this._group,s=a._map,l=a._featureGroup,u=this._group.options.spiderLegPolylineOptions;for(n=0;n<e.length;n++)o=s.layerPointToLatLng(t[n]),i=e[n],r=new L.Polyline([this._latlng,o],u),s.addLayer(r),i._spiderLeg=r,i._preSpiderfyLatlng=i._latlng,i.setLatLng(o),i.setZIndexOffset&&i.setZIndexOffset(1e6),l.addLayer(i);this.setOpacity(.3),a.fire("spiderfied",{cluster:this,markers:e})},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerCluster.include({_animationSpiderfy:function(e,t){var i,r,o,a,s,l,u=this,c=this._group,d=c._map,h=c._featureGroup,f=this._latlng,p=d.latLngToLayerPoint(f),m=L.Path.SVG,g=L.extend({},this._group.options.spiderLegPolylineOptions),v=g.opacity;for(v===n&&(v=L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity),m?(g.opacity=0,g.className=(g.className||"")+" leaflet-cluster-spider-leg"):g.opacity=v,i=0;i<e.length;i++)r=e[i],l=d.layerPointToLatLng(t[i]),o=new L.Polyline([f,l],g),d.addLayer(o),r._spiderLeg=o,m&&(s=(a=o._path).getTotalLength()+.1,a.style.strokeDasharray=s,a.style.strokeDashoffset=s),r.setZIndexOffset&&r.setZIndexOffset(1e6),r.clusterHide&&r.clusterHide(),h.addLayer(r),r._setPos&&r._setPos(p);for(c._forceLayout(),c._animationStart(),i=e.length-1;i>=0;i--)l=d.layerPointToLatLng(t[i]),(r=e[i])._preSpiderfyLatlng=r._latlng,r.setLatLng(l),r.clusterShow&&r.clusterShow(),m&&((a=(o=r._spiderLeg)._path).style.strokeDashoffset=0,o.setStyle({opacity:v}));this.setOpacity(.3),setTimeout((function(){c._animationEnd(),c.fire("spiderfied",{cluster:u,markers:e})}),200)},_animationUnspiderfy:function(e){var t,n,i,r,o,a,s=this,l=this._group,u=l._map,c=l._featureGroup,d=e?u._latLngToNewLayerPoint(this._latlng,e.zoom,e.center):u.latLngToLayerPoint(this._latlng),h=this.getAllChildMarkers(),f=L.Path.SVG;for(l._animationStart(),this.setOpacity(1),n=h.length-1;n>=0;n--)(t=h[n])._preSpiderfyLatlng&&(t.setLatLng(t._preSpiderfyLatlng),delete t._preSpiderfyLatlng,a=!0,t._setPos&&(t._setPos(d),a=!1),t.clusterHide&&(t.clusterHide(),a=!1),a&&c.removeLayer(t),f&&(o=(r=(i=t._spiderLeg)._path).getTotalLength()+.1,r.style.strokeDashoffset=o,i.setStyle({opacity:0})));setTimeout((function(){var e=0;for(n=h.length-1;n>=0;n--)(t=h[n])._spiderLeg&&e++;for(n=h.length-1;n>=0;n--)(t=h[n])._spiderLeg&&(t.clusterShow&&t.clusterShow(),t.setZIndexOffset&&t.setZIndexOffset(0),e>1&&c.removeLayer(t),u.removeLayer(t._spiderLeg),delete t._spiderLeg);l._animationEnd(),l.fire("unspiderfied",{cluster:s,markers:h})}),200)}}),L.MarkerClusterGroup.include({_spiderfied:null,_spiderfierOnAdd:function(){this._map.on("click",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on("zoomstart",this._unspiderfyZoomStart,this),this._map.on("zoomend",this._noanimationUnspiderfy,this)},_spiderfierOnRemove:function(){this._map.off("click",this._unspiderfyWrapper,this),this._map.off("zoomstart",this._unspiderfyZoomStart,this),this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._map.off("zoomend",this._noanimationUnspiderfy,this),this._noanimationUnspiderfy()},_unspiderfyZoomStart:function(){this._map&&this._map.on("zoomanim",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(e){L.DomUtil.hasClass(this._map._mapPane,"leaflet-touching")||(this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._unspiderfy(e))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(e){this._spiderfied&&this._spiderfied.unspiderfy(e)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(e){e._spiderLeg&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow(),e.setZIndexOffset&&e.setZIndexOffset(0),this._map.removeLayer(e._spiderLeg),delete e._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(e){return e?e instanceof L.MarkerClusterGroup?e=e._topClusterLevel.getAllChildMarkers():e instanceof L.LayerGroup?e=e._layers:e instanceof L.MarkerCluster?e=e.getAllChildMarkers():e instanceof L.Marker&&(e=[e]):e=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(e),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(e),this},_flagParentsIconsNeedUpdate:function(e){var t,n;for(t in e)for(n=e[t].__parent;n;)n._iconNeedsUpdate=!0,n=n.__parent},_refreshClustersIcons:function(){this._featureGroup.eachLayer((function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()}))},_refreshSingleMarkerModeMarkers:function(e){var t,n;for(t in e)n=e[t],this.hasLayer(n)&&n.setIcon(this._overrideMarkerIcon(n))}}),L.Marker.include({refreshIconOptions:function(e,t){var n=this.options.icon;return L.setOptions(n,e),this.setIcon(n),t&&this.__parent&&this.__parent._group.refreshClusters(this),this}})}(window,document),function(e,t){"function"==typeof define&&define.amd?define(["leaflet"],t):"object"==typeof module&&module.exports?t(require("leaflet")):t(e.L)}(this,(function(e){e.FeatureGroup.SubGroup=e.FeatureGroup.extend({statics:{version:"0.1.2"},initialize:function(t,n){e.FeatureGroup.prototype.initialize.call(this,n),this.setParentGroup(t)},setParentGroup:function(t){var n=t instanceof e.LayerGroup;return this._parentGroup=t,this.onAdd=n?"function"==typeof t.addLayers?this._onAddToGroupBatch:this._onAddToGroup:this._onAddToMap,this.onRemove=n?"function"==typeof t.removeLayers?this._onRemoveFromGroupBatch:this._onRemoveFromGroup:this._onRemoveFromMap,this.addLayer=n?this._addLayerToGroup:this._addLayerToMap,this.removeLayer=n?this._removeLayerFromGroup:this._removeLayerFromMap,this},setParentGroupSafe:function(e){var t=this._map;return t&&t.removeLayer(this),this.setParentGroup(e),t&&t.addLayer(this),this},getParentGroup:function(){return this._parentGroup},_onAddToGroupBatch:function(e){var t=this.getLayers();this._map=e,this._parentGroup.addLayers(t)},_onRemoveFromGroupBatch:function(){var e=this.getLayers();this._parentGroup.removeLayers(e),this._map=null},_onAddToGroup:function(e){var t=this._parentGroup;this._map=e,this.eachLayer(t.addLayer,t)},_onRemoveFromGroup:function(){var e=this._parentGroup;this.eachLayer(e.removeLayer,e),this._map=null},_onAddToMap:e.FeatureGroup.prototype.onAdd,_onRemoveFromMap:e.FeatureGroup.prototype.onRemove,_addLayerToGroup:function(t){if(this.hasLayer(t))return this;t.on&&t.on(e.FeatureGroup.EVENTS,this._propagateEvent,this);var n=this.getLayerId(t);return this._layers[n]=t,this._map&&this._parentGroup.addLayer(t),this._popupContent&&t.bindPopup&&t.bindPopup(this._popupContent,this._popupOptions),this.fire("layeradd",{layer:t})},_removeLayerFromGroup:function(t){if(!this.hasLayer(t))return this;t in this._layers&&(t=this._layers[t]),t.off&&t.off(e.FeatureGroup.EVENTS,this._propagateEvent,this);var n=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[n]&&this._parentGroup.removeLayer(n),delete this._layers[n],this._popupContent&&this.invoke("unbindPopup"),this.fire("layerremove",{layer:t})},_addLayerToMap:e.FeatureGroup.prototype.addLayer,_removeLayerFromMap:e.FeatureGroup.prototype.removeLayer}),e.featureGroup.subGroup=function(t,n){return new e.FeatureGroup.SubGroup(t,n)}}));
\ No newline at end of file
diff --git a/assets/www/dist_js/vendor-bad787f7cc.js b/assets/www/dist_js/vendor-bad787f7cc.js
new file mode 100644
index 0000000000000000000000000000000000000000..dcf750c7aef2f2f07a10d8d3bc1cac67d018396f
--- /dev/null
+++ b/assets/www/dist_js/vendor-bad787f7cc.js
@@ -0,0 +1,71 @@
+/* minified */
+var e,t,n,r,o;!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,(function(){"use strict";var e,t;function n(){return e.apply(null,arguments)}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function r(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e){return void 0===e}function a(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function s(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function l(e,t){var n,i=[];for(n=0;n<e.length;++n)i.push(t(e[n],n));return i}function u(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function c(e,t){for(var n in t)u(t,n)&&(e[n]=t[n]);return u(t,"toString")&&(e.toString=t.toString),u(t,"valueOf")&&(e.valueOf=t.valueOf),e}function d(e,t,n,i){return St(e,t,n,i,!0).utc()}function h(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function f(e){if(null==e._isValid){var n=h(e),i=t.call(n.parsedDateParts,(function(e){return null!=e})),r=!isNaN(e._d.getTime())&&n.overflow<0&&!n.empty&&!n.invalidMonth&&!n.invalidWeekday&&!n.weekdayMismatch&&!n.nullInput&&!n.invalidFormat&&!n.userInvalidated&&(!n.meridiem||n.meridiem&&i);if(e._strict&&(r=r&&0===n.charsLeftOver&&0===n.unusedTokens.length&&void 0===n.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return r;e._isValid=r}return e._isValid}function p(e){var t=d(NaN);return null!=e?c(h(t),e):h(t).userInvalidated=!0,t}t=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,i=0;i<n;i++)if(i in t&&e.call(this,t[i],i,t))return!0;return!1};var m=n.momentProperties=[];function g(e,t){var n,i,r;if(o(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),o(t._i)||(e._i=t._i),o(t._f)||(e._f=t._f),o(t._l)||(e._l=t._l),o(t._strict)||(e._strict=t._strict),o(t._tzm)||(e._tzm=t._tzm),o(t._isUTC)||(e._isUTC=t._isUTC),o(t._offset)||(e._offset=t._offset),o(t._pf)||(e._pf=h(t)),o(t._locale)||(e._locale=t._locale),0<m.length)for(n=0;n<m.length;n++)o(r=t[i=m[n]])||(e[i]=r);return e}var v=!1;function _(e){g(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===v&&(v=!0,n.updateOffset(this),v=!1)}function y(e){return e instanceof _||null!=e&&null!=e._isAMomentObject}function b(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function w(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=b(t)),n}function L(e,t,n){var i,r=Math.min(e.length,t.length),o=Math.abs(e.length-t.length),a=0;for(i=0;i<r;i++)(n&&e[i]!==t[i]||!n&&w(e[i])!==w(t[i]))&&a++;return a+o}function M(e){!1===n.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function k(e,t){var i=!0;return c((function(){if(null!=n.deprecationHandler&&n.deprecationHandler(null,e),i){for(var r,o=[],a=0;a<arguments.length;a++){if(r="","object"==typeof arguments[a]){for(var s in r+="\n["+a+"] ",arguments[0])r+=s+": "+arguments[0][s]+", ";r=r.slice(0,-2)}else r=arguments[a];o.push(r)}M(e+"\nArguments: "+Array.prototype.slice.call(o).join("")+"\n"+(new Error).stack),i=!1}return t.apply(this,arguments)}),t)}var x,S={};function T(e,t){null!=n.deprecationHandler&&n.deprecationHandler(e,t),S[e]||(M(t),S[e]=!0)}function $(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function D(e,t){var n,i=c({},e);for(n in t)u(t,n)&&(r(e[n])&&r(t[n])?(i[n]={},c(i[n],e[n]),c(i[n],t[n])):null!=t[n]?i[n]=t[n]:delete i[n]);for(n in e)u(e,n)&&!u(t,n)&&r(e[n])&&(i[n]=c({},i[n]));return i}function C(e){null!=e&&this.set(e)}n.suppressDeprecationWarnings=!1,n.deprecationHandler=null,x=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)u(e,t)&&n.push(t);return n};var E={};function A(e,t){var n=e.toLowerCase();E[n]=E[n+"s"]=E[t]=e}function P(e){return"string"==typeof e?E[e]||E[e.toLowerCase()]:void 0}function Y(e){var t,n,i={};for(n in e)u(e,n)&&(t=P(n))&&(i[t]=e[n]);return i}var O={};function I(e,t){O[e]=t}function j(e,t,n){var i=""+Math.abs(e),r=t-i.length;return(0<=e?n?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+i}var H=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,N=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,B={},R={};function F(e,t,n,i){var r=i;"string"==typeof i&&(r=function(){return this[i]()}),e&&(R[e]=r),t&&(R[t[0]]=function(){return j(r.apply(this,arguments),t[1],t[2])}),n&&(R[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),e)})}function z(e,t){return e.isValid()?(t=V(t,e.localeData()),B[t]=B[t]||function(e){var t,n,i,r=e.match(H);for(t=0,n=r.length;t<n;t++)R[r[t]]?r[t]=R[r[t]]:r[t]=(i=r[t]).match(/\[[\s\S]/)?i.replace(/^\[|\]$/g,""):i.replace(/\\/g,"");return function(t){var i,o="";for(i=0;i<n;i++)o+=$(r[i])?r[i].call(t,e):r[i];return o}}(t),B[t](e)):e.localeData().invalidDate()}function V(e,t){var n=5;function i(e){return t.longDateFormat(e)||e}for(N.lastIndex=0;0<=n&&N.test(e);)e=e.replace(N,i),N.lastIndex=0,n-=1;return e}var U=/\d/,W=/\d\d/,q=/\d{3}/,G=/\d{4}/,Z=/[+-]?\d{6}/,J=/\d\d?/,X=/\d\d\d\d?/,K=/\d\d\d\d\d\d?/,Q=/\d{1,3}/,ee=/\d{1,4}/,te=/[+-]?\d{1,6}/,ne=/\d+/,ie=/[+-]?\d+/,re=/Z|[+-]\d\d:?\d\d/gi,oe=/Z|[+-]\d\d(?::?\d\d)?/gi,ae=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,se={};function le(e,t,n){se[e]=$(t)?t:function(e,i){return e&&n?n:t}}function ue(e,t){return u(se,e)?se[e](t._strict,t._locale):new RegExp(ce(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,i,r){return t||n||i||r}))))}function ce(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var de={};function he(e,t){var n,i=t;for("string"==typeof e&&(e=[e]),a(t)&&(i=function(e,n){n[t]=w(e)}),n=0;n<e.length;n++)de[e[n]]=i}function fe(e,t){he(e,(function(e,n,i,r){i._w=i._w||{},t(e,i._w,i,r)}))}var pe=0,me=1,ge=2,ve=3,_e=4,ye=5,be=6,we=7,Le=8;function Me(e){return ke(e)?366:365}function ke(e){return e%4==0&&e%100!=0||e%400==0}F("Y",0,0,(function(){var e=this.year();return e<=9999?""+e:"+"+e})),F(0,["YY",2],0,(function(){return this.year()%100})),F(0,["YYYY",4],0,"year"),F(0,["YYYYY",5],0,"year"),F(0,["YYYYYY",6,!0],0,"year"),A("year","y"),I("year",1),le("Y",ie),le("YY",J,W),le("YYYY",ee,G),le("YYYYY",te,Z),le("YYYYYY",te,Z),he(["YYYYY","YYYYYY"],pe),he("YYYY",(function(e,t){t[pe]=2===e.length?n.parseTwoDigitYear(e):w(e)})),he("YY",(function(e,t){t[pe]=n.parseTwoDigitYear(e)})),he("Y",(function(e,t){t[pe]=parseInt(e,10)})),n.parseTwoDigitYear=function(e){return w(e)+(68<w(e)?1900:2e3)};var xe,Se=Te("FullYear",!0);function Te(e,t){return function(i){return null!=i?(De(this,e,i),n.updateOffset(this,t),this):$e(this,e)}}function $e(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function De(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&ke(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Ce(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function Ce(e,t){if(isNaN(e)||isNaN(t))return NaN;var n=(t%12+12)%12;return e+=(t-n)/12,1===n?ke(e)?29:28:31-n%7%2}xe=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},F("M",["MM",2],"Mo",(function(){return this.month()+1})),F("MMM",0,0,(function(e){return this.localeData().monthsShort(this,e)})),F("MMMM",0,0,(function(e){return this.localeData().months(this,e)})),A("month","M"),I("month",8),le("M",J),le("MM",J,W),le("MMM",(function(e,t){return t.monthsShortRegex(e)})),le("MMMM",(function(e,t){return t.monthsRegex(e)})),he(["M","MM"],(function(e,t){t[me]=w(e)-1})),he(["MMM","MMMM"],(function(e,t,n,i){var r=n._locale.monthsParse(e,i,n._strict);null!=r?t[me]=r:h(n).invalidMonth=e}));var Ee=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Ae="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Pe="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Ye(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=w(t);else if(!a(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),Ce(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function Oe(e){return null!=e?(Ye(this,e),n.updateOffset(this,!0),this):$e(this,"Month")}var Ie=ae,je=ae;function He(){function e(e,t){return t.length-e.length}var t,n,i=[],r=[],o=[];for(t=0;t<12;t++)n=d([2e3,t]),i.push(this.monthsShort(n,"")),r.push(this.months(n,"")),o.push(this.months(n,"")),o.push(this.monthsShort(n,""));for(i.sort(e),r.sort(e),o.sort(e),t=0;t<12;t++)i[t]=ce(i[t]),r[t]=ce(r[t]);for(t=0;t<24;t++)o[t]=ce(o[t]);this._monthsRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+i.join("|")+")","i")}function Ne(e){var t;if(e<100&&0<=e){var n=Array.prototype.slice.call(arguments);n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function Be(e,t,n){var i=7+t-n;return-(7+Ne(e,0,i).getUTCDay()-t)%7+i-1}function Re(e,t,n,i,r){var o,a,s=1+7*(t-1)+(7+n-i)%7+Be(e,i,r);return a=s<=0?Me(o=e-1)+s:s>Me(e)?(o=e+1,s-Me(e)):(o=e,s),{year:o,dayOfYear:a}}function Fe(e,t,n){var i,r,o=Be(e.year(),t,n),a=Math.floor((e.dayOfYear()-o-1)/7)+1;return a<1?i=a+ze(r=e.year()-1,t,n):a>ze(e.year(),t,n)?(i=a-ze(e.year(),t,n),r=e.year()+1):(r=e.year(),i=a),{week:i,year:r}}function ze(e,t,n){var i=Be(e,t,n),r=Be(e+1,t,n);return(Me(e)-i+r)/7}function Ve(e,t){return e.slice(t,7).concat(e.slice(0,t))}F("w",["ww",2],"wo","week"),F("W",["WW",2],"Wo","isoWeek"),A("week","w"),A("isoWeek","W"),I("week",5),I("isoWeek",5),le("w",J),le("ww",J,W),le("W",J),le("WW",J,W),fe(["w","ww","W","WW"],(function(e,t,n,i){t[i.substr(0,1)]=w(e)})),F("d",0,"do","day"),F("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),F("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),F("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),F("e",0,0,"weekday"),F("E",0,0,"isoWeekday"),A("day","d"),A("weekday","e"),A("isoWeekday","E"),I("day",11),I("weekday",11),I("isoWeekday",11),le("d",J),le("e",J),le("E",J),le("dd",(function(e,t){return t.weekdaysMinRegex(e)})),le("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),le("dddd",(function(e,t){return t.weekdaysRegex(e)})),fe(["dd","ddd","dddd"],(function(e,t,n,i){var r=n._locale.weekdaysParse(e,i,n._strict);null!=r?t.d=r:h(n).invalidWeekday=e})),fe(["d","e","E"],(function(e,t,n,i){t[i]=w(e)}));var Ue="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),We="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),qe="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ge=ae,Ze=ae,Je=ae;function Xe(){function e(e,t){return t.length-e.length}var t,n,i,r,o,a=[],s=[],l=[],u=[];for(t=0;t<7;t++)n=d([2e3,1]).day(t),i=this.weekdaysMin(n,""),r=this.weekdaysShort(n,""),o=this.weekdays(n,""),a.push(i),s.push(r),l.push(o),u.push(i),u.push(r),u.push(o);for(a.sort(e),s.sort(e),l.sort(e),u.sort(e),t=0;t<7;t++)s[t]=ce(s[t]),l[t]=ce(l[t]),u[t]=ce(u[t]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Ke(){return this.hours()%12||12}function Qe(e,t){F(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function et(e,t){return t._meridiemParse}F("H",["HH",2],0,"hour"),F("h",["hh",2],0,Ke),F("k",["kk",2],0,(function(){return this.hours()||24})),F("hmm",0,0,(function(){return""+Ke.apply(this)+j(this.minutes(),2)})),F("hmmss",0,0,(function(){return""+Ke.apply(this)+j(this.minutes(),2)+j(this.seconds(),2)})),F("Hmm",0,0,(function(){return""+this.hours()+j(this.minutes(),2)})),F("Hmmss",0,0,(function(){return""+this.hours()+j(this.minutes(),2)+j(this.seconds(),2)})),Qe("a",!0),Qe("A",!1),A("hour","h"),I("hour",13),le("a",et),le("A",et),le("H",J),le("h",J),le("k",J),le("HH",J,W),le("hh",J,W),le("kk",J,W),le("hmm",X),le("hmmss",K),le("Hmm",X),le("Hmmss",K),he(["H","HH"],ve),he(["k","kk"],(function(e,t,n){var i=w(e);t[ve]=24===i?0:i})),he(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),he(["h","hh"],(function(e,t,n){t[ve]=w(e),h(n).bigHour=!0})),he("hmm",(function(e,t,n){var i=e.length-2;t[ve]=w(e.substr(0,i)),t[_e]=w(e.substr(i)),h(n).bigHour=!0})),he("hmmss",(function(e,t,n){var i=e.length-4,r=e.length-2;t[ve]=w(e.substr(0,i)),t[_e]=w(e.substr(i,2)),t[ye]=w(e.substr(r)),h(n).bigHour=!0})),he("Hmm",(function(e,t,n){var i=e.length-2;t[ve]=w(e.substr(0,i)),t[_e]=w(e.substr(i))})),he("Hmmss",(function(e,t,n){var i=e.length-4,r=e.length-2;t[ve]=w(e.substr(0,i)),t[_e]=w(e.substr(i,2)),t[ye]=w(e.substr(r))}));var tt,nt=Te("Hours",!0),it={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ae,monthsShort:Pe,week:{dow:0,doy:6},weekdays:Ue,weekdaysMin:qe,weekdaysShort:We,meridiemParse:/[ap]\.?m?\.?/i},rt={},ot={};function at(e){return e?e.toLowerCase().replace("_","-"):e}function st(e){var t=null;if(!rt[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=tt._abbr,require("./locale/"+e),lt(t)}catch(e){}return rt[e]}function lt(e,t){var n;return e&&((n=o(t)?ct(e):ut(e,t))?tt=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),tt._abbr}function ut(e,t){if(null===t)return delete rt[e],null;var n,i=it;if(t.abbr=e,null!=rt[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=rt[e]._config;else if(null!=t.parentLocale)if(null!=rt[t.parentLocale])i=rt[t.parentLocale]._config;else{if(null==(n=st(t.parentLocale)))return ot[t.parentLocale]||(ot[t.parentLocale]=[]),ot[t.parentLocale].push({name:e,config:t}),null;i=n._config}return rt[e]=new C(D(i,t)),ot[e]&&ot[e].forEach((function(e){ut(e.name,e.config)})),lt(e),rt[e]}function ct(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return tt;if(!i(e)){if(t=st(e))return t;e=[e]}return function(e){for(var t,n,i,r,o=0;o<e.length;){for(t=(r=at(e[o]).split("-")).length,n=(n=at(e[o+1]))?n.split("-"):null;0<t;){if(i=st(r.slice(0,t).join("-")))return i;if(n&&n.length>=t&&L(r,n,!0)>=t-1)break;t--}o++}return tt}(e)}function dt(e){var t,n=e._a;return n&&-2===h(e).overflow&&(t=n[me]<0||11<n[me]?me:n[ge]<1||n[ge]>Ce(n[pe],n[me])?ge:n[ve]<0||24<n[ve]||24===n[ve]&&(0!==n[_e]||0!==n[ye]||0!==n[be])?ve:n[_e]<0||59<n[_e]?_e:n[ye]<0||59<n[ye]?ye:n[be]<0||999<n[be]?be:-1,h(e)._overflowDayOfYear&&(t<pe||ge<t)&&(t=ge),h(e)._overflowWeeks&&-1===t&&(t=we),h(e)._overflowWeekday&&-1===t&&(t=Le),h(e).overflow=t),e}function ht(e,t,n){return null!=e?e:null!=t?t:n}function ft(e){var t,i,r,o,a,s=[];if(!e._d){var l,u;for(l=e,u=new Date(n.now()),r=l._useUTC?[u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate()]:[u.getFullYear(),u.getMonth(),u.getDate()],e._w&&null==e._a[ge]&&null==e._a[me]&&function(e){var t,n,i,r,o,a,s,l;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)o=1,a=4,n=ht(t.GG,e._a[pe],Fe(Tt(),1,4).year),i=ht(t.W,1),((r=ht(t.E,1))<1||7<r)&&(l=!0);else{o=e._locale._week.dow,a=e._locale._week.doy;var u=Fe(Tt(),o,a);n=ht(t.gg,e._a[pe],u.year),i=ht(t.w,u.week),null!=t.d?((r=t.d)<0||6<r)&&(l=!0):null!=t.e?(r=t.e+o,(t.e<0||6<t.e)&&(l=!0)):r=o}i<1||i>ze(n,o,a)?h(e)._overflowWeeks=!0:null!=l?h(e)._overflowWeekday=!0:(s=Re(n,i,r,o,a),e._a[pe]=s.year,e._dayOfYear=s.dayOfYear)}(e),null!=e._dayOfYear&&(a=ht(e._a[pe],r[pe]),(e._dayOfYear>Me(a)||0===e._dayOfYear)&&(h(e)._overflowDayOfYear=!0),i=Ne(a,0,e._dayOfYear),e._a[me]=i.getUTCMonth(),e._a[ge]=i.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=s[t]=r[t];for(;t<7;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ve]&&0===e._a[_e]&&0===e._a[ye]&&0===e._a[be]&&(e._nextDay=!0,e._a[ve]=0),e._d=(e._useUTC?Ne:function(e,t,n,i,r,o,a){var s;return e<100&&0<=e?(s=new Date(e+400,t,n,i,r,o,a),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,n,i,r,o,a),s}).apply(null,s),o=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ve]=24),e._w&&void 0!==e._w.d&&e._w.d!==o&&(h(e).weekdayMismatch=!0)}}var pt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,mt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,gt=/Z|[+-]\d\d(?::?\d\d)?/,vt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],_t=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],yt=/^\/?Date\((\-?\d+)/i;function bt(e){var t,n,i,r,o,a,s=e._i,l=pt.exec(s)||mt.exec(s);if(l){for(h(e).iso=!0,t=0,n=vt.length;t<n;t++)if(vt[t][1].exec(l[1])){r=vt[t][0],i=!1!==vt[t][2];break}if(null==r)return void(e._isValid=!1);if(l[3]){for(t=0,n=_t.length;t<n;t++)if(_t[t][1].exec(l[3])){o=(l[2]||" ")+_t[t][0];break}if(null==o)return void(e._isValid=!1)}if(!i&&null!=o)return void(e._isValid=!1);if(l[4]){if(!gt.exec(l[4]))return void(e._isValid=!1);a="Z"}e._f=r+(o||"")+(a||""),kt(e)}else e._isValid=!1}var wt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Lt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Mt(e){var t,n,i,r=wt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(r){var o=function(e,t,n,i,r,o){var a=[function(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}(e),Pe.indexOf(t),parseInt(n,10),parseInt(i,10),parseInt(r,10)];return o&&a.push(parseInt(o,10)),a}(r[4],r[3],r[2],r[5],r[6],r[7]);if(n=o,i=e,(t=r[1])&&We.indexOf(t)!==new Date(n[0],n[1],n[2]).getDay()&&(h(i).weekdayMismatch=!0,!(i._isValid=!1)))return;e._a=o,e._tzm=function(e,t,n){if(e)return Lt[e];if(t)return 0;var i=parseInt(n,10),r=i%100;return(i-r)/100*60+r}(r[8],r[9],r[10]),e._d=Ne.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),h(e).rfc2822=!0}else e._isValid=!1}function kt(e){if(e._f!==n.ISO_8601)if(e._f!==n.RFC_2822){e._a=[],h(e).empty=!0;var t,i,r,o,a,s,l,c,d=""+e._i,f=d.length,p=0;for(r=V(e._f,e._locale).match(H)||[],t=0;t<r.length;t++)o=r[t],(i=(d.match(ue(o,e))||[])[0])&&(0<(a=d.substr(0,d.indexOf(i))).length&&h(e).unusedInput.push(a),d=d.slice(d.indexOf(i)+i.length),p+=i.length),R[o]?(i?h(e).empty=!1:h(e).unusedTokens.push(o),s=o,c=e,null!=(l=i)&&u(de,s)&&de[s](l,c._a,c,s)):e._strict&&!i&&h(e).unusedTokens.push(o);h(e).charsLeftOver=f-p,0<d.length&&h(e).unusedInput.push(d),e._a[ve]<=12&&!0===h(e).bigHour&&0<e._a[ve]&&(h(e).bigHour=void 0),h(e).parsedDateParts=e._a.slice(0),h(e).meridiem=e._meridiem,e._a[ve]=function(e,t,n){var i;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):(null!=e.isPM&&((i=e.isPM(n))&&t<12&&(t+=12),i||12!==t||(t=0)),t)}(e._locale,e._a[ve],e._meridiem),ft(e),dt(e)}else Mt(e);else bt(e)}function xt(e){var t,u,d,m,v=e._i,b=e._f;return e._locale=e._locale||ct(e._l),null===v||void 0===b&&""===v?p({nullInput:!0}):("string"==typeof v&&(e._i=v=e._locale.preparse(v)),y(v)?new _(dt(v)):(s(v)?e._d=v:i(b)?function(e){var t,n,i,r,o;if(0===e._f.length)return h(e).invalidFormat=!0,e._d=new Date(NaN);for(r=0;r<e._f.length;r++)o=0,t=g({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[r],kt(t),f(t)&&(o+=h(t).charsLeftOver,o+=10*h(t).unusedTokens.length,h(t).score=o,(null==i||o<i)&&(i=o,n=t));c(e,n||t)}(e):b?kt(e):o(u=(t=e)._i)?t._d=new Date(n.now()):s(u)?t._d=new Date(u.valueOf()):"string"==typeof u?(d=t,null===(m=yt.exec(d._i))?(bt(d),!1===d._isValid&&(delete d._isValid,Mt(d),!1===d._isValid&&(delete d._isValid,n.createFromInputFallback(d)))):d._d=new Date(+m[1])):i(u)?(t._a=l(u.slice(0),(function(e){return parseInt(e,10)})),ft(t)):r(u)?function(e){if(!e._d){var t=Y(e._i);e._a=l([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],(function(e){return e&&parseInt(e,10)})),ft(e)}}(t):a(u)?t._d=new Date(u):n.createFromInputFallback(t),f(e)||(e._d=null),e))}function St(e,t,n,o,a){var s,l={};return!0!==n&&!1!==n||(o=n,n=void 0),(r(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||i(e)&&0===e.length)&&(e=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=a,l._l=n,l._i=e,l._f=t,l._strict=o,(s=new _(dt(xt(l))))._nextDay&&(s.add(1,"d"),s._nextDay=void 0),s}function Tt(e,t,n,i){return St(e,t,n,i,!1)}n.createFromInputFallback=k("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))})),n.ISO_8601=function(){},n.RFC_2822=function(){};var $t=k("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:p()})),Dt=k("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:p()}));function Ct(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return Tt();for(n=t[0],r=1;r<t.length;++r)t[r].isValid()&&!t[r][e](n)||(n=t[r]);return n}var Et=["year","quarter","month","week","day","hour","minute","second","millisecond"];function At(e){var t=Y(e),n=t.year||0,i=t.quarter||0,r=t.month||0,o=t.week||t.isoWeek||0,a=t.day||0,s=t.hour||0,l=t.minute||0,u=t.second||0,c=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===xe.call(Et,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,i=0;i<Et.length;++i)if(e[Et[i]]){if(n)return!1;parseFloat(e[Et[i]])!==w(e[Et[i]])&&(n=!0)}return!0}(t),this._milliseconds=+c+1e3*u+6e4*l+1e3*s*60*60,this._days=+a+7*o,this._months=+r+3*i+12*n,this._data={},this._locale=ct(),this._bubble()}function Pt(e){return e instanceof At}function Yt(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Ot(e,t){F(e,0,0,(function(){var e=this.utcOffset(),n="+";return e<0&&(e=-e,n="-"),n+j(~~(e/60),2)+t+j(~~e%60,2)}))}Ot("Z",":"),Ot("ZZ",""),le("Z",oe),le("ZZ",oe),he(["Z","ZZ"],(function(e,t,n){n._useUTC=!0,n._tzm=jt(oe,e)}));var It=/([\+\-]|\d\d)/gi;function jt(e,t){var n=(t||"").match(e);if(null===n)return null;var i=((n[n.length-1]||[])+"").match(It)||["-",0,0],r=60*i[1]+w(i[2]);return 0===r?0:"+"===i[0]?r:-r}function Ht(e,t){var i,r;return t._isUTC?(i=t.clone(),r=(y(e)||s(e)?e.valueOf():Tt(e).valueOf())-i.valueOf(),i._d.setTime(i._d.valueOf()+r),n.updateOffset(i,!1),i):Tt(e).local()}function Nt(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Bt(){return!!this.isValid()&&this._isUTC&&0===this._offset}n.updateOffset=function(){};var Rt=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ft=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function zt(e,t){var n,i,r,o=e,s=null;return Pt(e)?o={ms:e._milliseconds,d:e._days,M:e._months}:a(e)?(o={},t?o[t]=e:o.milliseconds=e):(s=Rt.exec(e))?(n="-"===s[1]?-1:1,o={y:0,d:w(s[ge])*n,h:w(s[ve])*n,m:w(s[_e])*n,s:w(s[ye])*n,ms:w(Yt(1e3*s[be]))*n}):(s=Ft.exec(e))?(n="-"===s[1]?-1:1,o={y:Vt(s[2],n),M:Vt(s[3],n),w:Vt(s[4],n),d:Vt(s[5],n),h:Vt(s[6],n),m:Vt(s[7],n),s:Vt(s[8],n)}):null==o?o={}:"object"==typeof o&&("from"in o||"to"in o)&&(r=function(e,t){var n;return e.isValid()&&t.isValid()?(t=Ht(t,e),e.isBefore(t)?n=Ut(e,t):((n=Ut(t,e)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}(Tt(o.from),Tt(o.to)),(o={}).ms=r.milliseconds,o.M=r.months),i=new At(o),Pt(e)&&u(e,"_locale")&&(i._locale=e._locale),i}function Vt(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Ut(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Wt(e,t){return function(n,i){var r;return null===i||isNaN(+i)||(T(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),r=n,n=i,i=r),qt(this,zt(n="string"==typeof n?+n:n,i),e),this}}function qt(e,t,i,r){var o=t._milliseconds,a=Yt(t._days),s=Yt(t._months);e.isValid()&&(r=null==r||r,s&&Ye(e,$e(e,"Month")+s*i),a&&De(e,"Date",$e(e,"Date")+a*i),o&&e._d.setTime(e._d.valueOf()+o*i),r&&n.updateOffset(e,a||s))}zt.fn=At.prototype,zt.invalid=function(){return zt(NaN)};var Gt=Wt(1,"add"),Zt=Wt(-1,"subtract");function Jt(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),i=e.clone().add(n,"months");return-(n+(t-i<0?(t-i)/(i-e.clone().add(n-1,"months")):(t-i)/(e.clone().add(n+1,"months")-i)))||0}function Xt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ct(e))&&(this._locale=t),this)}n.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",n.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Kt=k("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function Qt(){return this._locale}var en=126227808e5;function tn(e,t){return(e%t+t)%t}function nn(e,t,n){return e<100&&0<=e?new Date(e+400,t,n)-en:new Date(e,t,n).valueOf()}function rn(e,t,n){return e<100&&0<=e?Date.UTC(e+400,t,n)-en:Date.UTC(e,t,n)}function on(e,t){F(0,[e,e.length],0,t)}function an(e,t,n,i,r){var o;return null==e?Fe(this,i,r).year:((o=ze(e,i,r))<t&&(t=o),function(e,t,n,i,r){var o=Re(e,t,n,i,r),a=Ne(o.year,0,o.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,i,r))}F(0,["gg",2],0,(function(){return this.weekYear()%100})),F(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),on("gggg","weekYear"),on("ggggg","weekYear"),on("GGGG","isoWeekYear"),on("GGGGG","isoWeekYear"),A("weekYear","gg"),A("isoWeekYear","GG"),I("weekYear",1),I("isoWeekYear",1),le("G",ie),le("g",ie),le("GG",J,W),le("gg",J,W),le("GGGG",ee,G),le("gggg",ee,G),le("GGGGG",te,Z),le("ggggg",te,Z),fe(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,i){t[i.substr(0,2)]=w(e)})),fe(["gg","GG"],(function(e,t,i,r){t[r]=n.parseTwoDigitYear(e)})),F("Q",0,"Qo","quarter"),A("quarter","Q"),I("quarter",7),le("Q",U),he("Q",(function(e,t){t[me]=3*(w(e)-1)})),F("D",["DD",2],"Do","date"),A("date","D"),I("date",9),le("D",J),le("DD",J,W),le("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),he(["D","DD"],ge),he("Do",(function(e,t){t[ge]=w(e.match(J)[0])}));var sn=Te("Date",!0);F("DDD",["DDDD",3],"DDDo","dayOfYear"),A("dayOfYear","DDD"),I("dayOfYear",4),le("DDD",Q),le("DDDD",q),he(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=w(e)})),F("m",["mm",2],0,"minute"),A("minute","m"),I("minute",14),le("m",J),le("mm",J,W),he(["m","mm"],_e);var ln=Te("Minutes",!1);F("s",["ss",2],0,"second"),A("second","s"),I("second",15),le("s",J),le("ss",J,W),he(["s","ss"],ye);var un,cn=Te("Seconds",!1);for(F("S",0,0,(function(){return~~(this.millisecond()/100)})),F(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),F(0,["SSS",3],0,"millisecond"),F(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),F(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),F(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),F(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),F(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),F(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),A("millisecond","ms"),I("millisecond",16),le("S",Q,U),le("SS",Q,W),le("SSS",Q,q),un="SSSS";un.length<=9;un+="S")le(un,ne);function dn(e,t){t[be]=w(1e3*("0."+e))}for(un="S";un.length<=9;un+="S")he(un,dn);var hn=Te("Milliseconds",!1);F("z",0,0,"zoneAbbr"),F("zz",0,0,"zoneName");var fn=_.prototype;function pn(e){return e}fn.add=Gt,fn.calendar=function(e,t){var i=e||Tt(),r=Ht(i,this).startOf("day"),o=n.calendarFormat(this,r)||"sameElse",a=t&&($(t[o])?t[o].call(this,i):t[o]);return this.format(a||this.localeData().calendar(o,this,Tt(i)))},fn.clone=function(){return new _(this)},fn.diff=function(e,t,n){var i,r,o;if(!this.isValid())return NaN;if(!(i=Ht(e,this)).isValid())return NaN;switch(r=6e4*(i.utcOffset()-this.utcOffset()),t=P(t)){case"year":o=Jt(this,i)/12;break;case"month":o=Jt(this,i);break;case"quarter":o=Jt(this,i)/3;break;case"second":o=(this-i)/1e3;break;case"minute":o=(this-i)/6e4;break;case"hour":o=(this-i)/36e5;break;case"day":o=(this-i-r)/864e5;break;case"week":o=(this-i-r)/6048e5;break;default:o=this-i}return n?o:b(o)},fn.endOf=function(e){var t;if(void 0===(e=P(e))||"millisecond"===e||!this.isValid())return this;var i=this._isUTC?rn:nn;switch(e){case"year":t=i(this.year()+1,0,1)-1;break;case"quarter":t=i(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=i(this.year(),this.month()+1,1)-1;break;case"week":t=i(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=i(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-tn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-tn(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-tn(t,1e3)-1}return this._d.setTime(t),n.updateOffset(this,!0),this},fn.format=function(e){e||(e=this.isUtc()?n.defaultFormatUtc:n.defaultFormat);var t=z(this,e);return this.localeData().postformat(t)},fn.from=function(e,t){return this.isValid()&&(y(e)&&e.isValid()||Tt(e).isValid())?zt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},fn.fromNow=function(e){return this.from(Tt(),e)},fn.to=function(e,t){return this.isValid()&&(y(e)&&e.isValid()||Tt(e).isValid())?zt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},fn.toNow=function(e){return this.to(Tt(),e)},fn.get=function(e){return $(this[e=P(e)])?this[e]():this},fn.invalidAt=function(){return h(this).overflow},fn.isAfter=function(e,t){var n=y(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=P(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},fn.isBefore=function(e,t){var n=y(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=P(t)||"millisecond")?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},fn.isBetween=function(e,t,n,i){var r=y(e)?e:Tt(e),o=y(t)?t:Tt(t);return!!(this.isValid()&&r.isValid()&&o.isValid())&&("("===(i=i||"()")[0]?this.isAfter(r,n):!this.isBefore(r,n))&&(")"===i[1]?this.isBefore(o,n):!this.isAfter(o,n))},fn.isSame=function(e,t){var n,i=y(e)?e:Tt(e);return!(!this.isValid()||!i.isValid())&&("millisecond"===(t=P(t)||"millisecond")?this.valueOf()===i.valueOf():(n=i.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},fn.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},fn.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},fn.isValid=function(){return f(this)},fn.lang=Kt,fn.locale=Xt,fn.localeData=Qt,fn.max=Dt,fn.min=$t,fn.parsingFlags=function(){return c({},h(this))},fn.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:O[n]});return t.sort((function(e,t){return e.priority-t.priority})),t}(e=Y(e)),i=0;i<n.length;i++)this[n[i].unit](e[n[i].unit]);else if($(this[e=P(e)]))return this[e](t);return this},fn.startOf=function(e){var t;if(void 0===(e=P(e))||"millisecond"===e||!this.isValid())return this;var i=this._isUTC?rn:nn;switch(e){case"year":t=i(this.year(),0,1);break;case"quarter":t=i(this.year(),this.month()-this.month()%3,1);break;case"month":t=i(this.year(),this.month(),1);break;case"week":t=i(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=i(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=tn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":t=this._d.valueOf(),t-=tn(t,6e4);break;case"second":t=this._d.valueOf(),t-=tn(t,1e3)}return this._d.setTime(t),n.updateOffset(this,!0),this},fn.subtract=Zt,fn.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},fn.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},fn.toDate=function(){return new Date(this.valueOf())},fn.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||9999<n.year()?z(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):$(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",z(n,"Z")):z(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},fn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",r=t+'[")]';return this.format(n+i+"-MM-DD[T]HH:mm:ss.SSS"+r)},fn.toJSON=function(){return this.isValid()?this.toISOString():null},fn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},fn.unix=function(){return Math.floor(this.valueOf()/1e3)},fn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},fn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},fn.year=Se,fn.isLeapYear=function(){return ke(this.year())},fn.weekYear=function(e){return an.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},fn.isoWeekYear=function(e){return an.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},fn.quarter=fn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},fn.month=Oe,fn.daysInMonth=function(){return Ce(this.year(),this.month())},fn.week=fn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},fn.isoWeek=fn.isoWeeks=function(e){var t=Fe(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},fn.weeksInYear=function(){var e=this.localeData()._week;return ze(this.year(),e.dow,e.doy)},fn.isoWeeksInYear=function(){return ze(this.year(),1,4)},fn.date=sn,fn.day=fn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t,n,i=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(t=e,n=this.localeData(),e="string"!=typeof t?t:isNaN(t)?"number"==typeof(t=n.weekdaysParse(t))?t:null:parseInt(t,10),this.add(e-i,"d")):i},fn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},fn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var t,n,i=(t=e,n=this.localeData(),"string"==typeof t?n.weekdaysParse(t)%7||7:isNaN(t)?null:t);return this.day(this.day()%7?i:i-7)},fn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},fn.hour=fn.hours=nt,fn.minute=fn.minutes=ln,fn.second=fn.seconds=cn,fn.millisecond=fn.milliseconds=hn,fn.utcOffset=function(e,t,i){var r,o=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null==e)return this._isUTC?o:Nt(this);if("string"==typeof e){if(null===(e=jt(oe,e)))return this}else Math.abs(e)<16&&!i&&(e*=60);return!this._isUTC&&t&&(r=Nt(this)),this._offset=e,this._isUTC=!0,null!=r&&this.add(r,"m"),o!==e&&(!t||this._changeInProgress?qt(this,zt(e-o,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,n.updateOffset(this,!0),this._changeInProgress=null)),this},fn.utc=function(e){return this.utcOffset(0,e)},fn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Nt(this),"m")),this},fn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=jt(re,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},fn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Tt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},fn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},fn.isLocal=function(){return!!this.isValid()&&!this._isUTC},fn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},fn.isUtc=Bt,fn.isUTC=Bt,fn.zoneAbbr=function(){return this._isUTC?"UTC":""},fn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},fn.dates=k("dates accessor is deprecated. Use date instead.",sn),fn.months=k("months accessor is deprecated. Use month instead",Oe),fn.years=k("years accessor is deprecated. Use year instead",Se),fn.zone=k("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),fn.isDSTShifted=k("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var e={};if(g(e,this),(e=xt(e))._a){var t=e._isUTC?d(e._a):Tt(e._a);this._isDSTShifted=this.isValid()&&0<L(e._a,t.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted}));var mn=C.prototype;function gn(e,t,n,i){var r=ct(),o=d().set(i,t);return r[n](o,e)}function vn(e,t,n){if(a(e)&&(t=e,e=void 0),e=e||"",null!=t)return gn(e,t,n,"month");var i,r=[];for(i=0;i<12;i++)r[i]=gn(e,i,n,"month");return r}function _n(e,t,n,i){"boolean"==typeof e?a(t)&&(n=t,t=void 0):(t=e,e=!1,a(n=t)&&(n=t,t=void 0)),t=t||"";var r,o=ct(),s=e?o._week.dow:0;if(null!=n)return gn(t,(n+s)%7,i,"day");var l=[];for(r=0;r<7;r++)l[r]=gn(t,(r+s)%7,i,"day");return l}mn.calendar=function(e,t,n){var i=this._calendar[e]||this._calendar.sameElse;return $(i)?i.call(t,n):i},mn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,(function(e){return e.slice(1)})),this._longDateFormat[e])},mn.invalidDate=function(){return this._invalidDate},mn.ordinal=function(e){return this._ordinal.replace("%d",e)},mn.preparse=pn,mn.postformat=pn,mn.relativeTime=function(e,t,n,i){var r=this._relativeTime[n];return $(r)?r(e,t,n,i):r.replace(/%d/i,e)},mn.pastFuture=function(e,t){var n=this._relativeTime[0<e?"future":"past"];return $(n)?n(t):n.replace(/%s/i,t)},mn.set=function(e){var t,n;for(n in e)$(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},mn.months=function(e,t){return e?i(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Ee).test(t)?"format":"standalone"][e.month()]:i(this._months)?this._months:this._months.standalone},mn.monthsShort=function(e,t){return e?i(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Ee.test(t)?"format":"standalone"][e.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},mn.monthsParse=function(e,t,n){var i,r,o;if(this._monthsParseExact)return function(e,t,n){var i,r,o,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;i<12;++i)o=d([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(o,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(o,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(r=xe.call(this._shortMonthsParse,a))?r:null:-1!==(r=xe.call(this._longMonthsParse,a))?r:null:"MMM"===t?-1!==(r=xe.call(this._shortMonthsParse,a))?r:-1!==(r=xe.call(this._longMonthsParse,a))?r:null:-1!==(r=xe.call(this._longMonthsParse,a))?r:-1!==(r=xe.call(this._shortMonthsParse,a))?r:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(r=d([2e3,i]),n&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(r,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(r,"").replace(".","")+"$","i")),n||this._monthsParse[i]||(o="^"+this.months(r,"")+"|^"+this.monthsShort(r,""),this._monthsParse[i]=new RegExp(o.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[i].test(e))return i;if(n&&"MMM"===t&&this._shortMonthsParse[i].test(e))return i;if(!n&&this._monthsParse[i].test(e))return i}},mn.monthsRegex=function(e){return this._monthsParseExact?(u(this,"_monthsRegex")||He.call(this),e?this._monthsStrictRegex:this._monthsRegex):(u(this,"_monthsRegex")||(this._monthsRegex=je),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},mn.monthsShortRegex=function(e){return this._monthsParseExact?(u(this,"_monthsRegex")||He.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(u(this,"_monthsShortRegex")||(this._monthsShortRegex=Ie),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},mn.week=function(e){return Fe(e,this._week.dow,this._week.doy).week},mn.firstDayOfYear=function(){return this._week.doy},mn.firstDayOfWeek=function(){return this._week.dow},mn.weekdays=function(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Ve(n,this._week.dow):e?n[e.day()]:n},mn.weekdaysMin=function(e){return!0===e?Ve(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},mn.weekdaysShort=function(e){return!0===e?Ve(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},mn.weekdaysParse=function(e,t,n){var i,r,o;if(this._weekdaysParseExact)return function(e,t,n){var i,r,o,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)o=d([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(r=xe.call(this._weekdaysParse,a))?r:null:"ddd"===t?-1!==(r=xe.call(this._shortWeekdaysParse,a))?r:null:-1!==(r=xe.call(this._minWeekdaysParse,a))?r:null:"dddd"===t?-1!==(r=xe.call(this._weekdaysParse,a))?r:-1!==(r=xe.call(this._shortWeekdaysParse,a))?r:-1!==(r=xe.call(this._minWeekdaysParse,a))?r:null:"ddd"===t?-1!==(r=xe.call(this._shortWeekdaysParse,a))?r:-1!==(r=xe.call(this._weekdaysParse,a))?r:-1!==(r=xe.call(this._minWeekdaysParse,a))?r:null:-1!==(r=xe.call(this._minWeekdaysParse,a))?r:-1!==(r=xe.call(this._weekdaysParse,a))?r:-1!==(r=xe.call(this._shortWeekdaysParse,a))?r:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(r=d([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(r,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(r,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(r,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(o="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[i]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[i].test(e))return i;if(n&&"ddd"===t&&this._shortWeekdaysParse[i].test(e))return i;if(n&&"dd"===t&&this._minWeekdaysParse[i].test(e))return i;if(!n&&this._weekdaysParse[i].test(e))return i}},mn.weekdaysRegex=function(e){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||Xe.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(u(this,"_weekdaysRegex")||(this._weekdaysRegex=Ge),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},mn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||Xe.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(u(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ze),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},mn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||Xe.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(u(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Je),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},mn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},mn.meridiem=function(e,t,n){return 11<e?n?"pm":"PM":n?"am":"AM"},lt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===w(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),n.lang=k("moment.lang is deprecated. Use moment.locale instead.",lt),n.langData=k("moment.langData is deprecated. Use moment.localeData instead.",ct);var yn=Math.abs;function bn(e,t,n,i){var r=zt(t,n);return e._milliseconds+=i*r._milliseconds,e._days+=i*r._days,e._months+=i*r._months,e._bubble()}function wn(e){return e<0?Math.floor(e):Math.ceil(e)}function Ln(e){return 4800*e/146097}function Mn(e){return 146097*e/4800}function kn(e){return function(){return this.as(e)}}var xn=kn("ms"),Sn=kn("s"),Tn=kn("m"),$n=kn("h"),Dn=kn("d"),Cn=kn("w"),En=kn("M"),An=kn("Q"),Pn=kn("y");function Yn(e){return function(){return this.isValid()?this._data[e]:NaN}}var On=Yn("milliseconds"),In=Yn("seconds"),jn=Yn("minutes"),Hn=Yn("hours"),Nn=Yn("days"),Bn=Yn("months"),Rn=Yn("years"),Fn=Math.round,zn={ss:44,s:45,m:45,h:22,d:26,M:11},Vn=Math.abs;function Un(e){return(0<e)-(e<0)||+e}function Wn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Vn(this._milliseconds)/1e3,i=Vn(this._days),r=Vn(this._months);t=b((e=b(n/60))/60),n%=60,e%=60;var o=b(r/12),a=r%=12,s=i,l=t,u=e,c=n?n.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var h=d<0?"-":"",f=Un(this._months)!==Un(d)?"-":"",p=Un(this._days)!==Un(d)?"-":"",m=Un(this._milliseconds)!==Un(d)?"-":"";return h+"P"+(o?f+o+"Y":"")+(a?f+a+"M":"")+(s?p+s+"D":"")+(l||u||c?"T":"")+(l?m+l+"H":"")+(u?m+u+"M":"")+(c?m+c+"S":"")}var qn=At.prototype;qn.isValid=function(){return this._isValid},qn.abs=function(){var e=this._data;return this._milliseconds=yn(this._milliseconds),this._days=yn(this._days),this._months=yn(this._months),e.milliseconds=yn(e.milliseconds),e.seconds=yn(e.seconds),e.minutes=yn(e.minutes),e.hours=yn(e.hours),e.months=yn(e.months),e.years=yn(e.years),this},qn.add=function(e,t){return bn(this,e,t,1)},qn.subtract=function(e,t){return bn(this,e,t,-1)},qn.as=function(e){if(!this.isValid())return NaN;var t,n,i=this._milliseconds;if("month"===(e=P(e))||"quarter"===e||"year"===e)switch(t=this._days+i/864e5,n=this._months+Ln(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Mn(this._months)),e){case"week":return t/7+i/6048e5;case"day":return t+i/864e5;case"hour":return 24*t+i/36e5;case"minute":return 1440*t+i/6e4;case"second":return 86400*t+i/1e3;case"millisecond":return Math.floor(864e5*t)+i;default:throw new Error("Unknown unit "+e)}},qn.asMilliseconds=xn,qn.asSeconds=Sn,qn.asMinutes=Tn,qn.asHours=$n,qn.asDays=Dn,qn.asWeeks=Cn,qn.asMonths=En,qn.asQuarters=An,qn.asYears=Pn,qn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12):NaN},qn._bubble=function(){var e,t,n,i,r,o=this._milliseconds,a=this._days,s=this._months,l=this._data;return 0<=o&&0<=a&&0<=s||o<=0&&a<=0&&s<=0||(o+=864e5*wn(Mn(s)+a),s=a=0),l.milliseconds=o%1e3,e=b(o/1e3),l.seconds=e%60,t=b(e/60),l.minutes=t%60,n=b(t/60),l.hours=n%24,s+=r=b(Ln(a+=b(n/24))),a-=wn(Mn(r)),i=b(s/12),s%=12,l.days=a,l.months=s,l.years=i,this},qn.clone=function(){return zt(this)},qn.get=function(e){return e=P(e),this.isValid()?this[e+"s"]():NaN},qn.milliseconds=On,qn.seconds=In,qn.minutes=jn,qn.hours=Hn,qn.days=Nn,qn.weeks=function(){return b(this.days()/7)},qn.months=Bn,qn.years=Rn,qn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t,n,i,r,o,a,s,l,u,c,d=this.localeData(),h=(t=!e,n=d,i=zt(this).abs(),r=Fn(i.as("s")),o=Fn(i.as("m")),a=Fn(i.as("h")),s=Fn(i.as("d")),l=Fn(i.as("M")),u=Fn(i.as("y")),(c=r<=zn.ss&&["s",r]||r<zn.s&&["ss",r]||o<=1&&["m"]||o<zn.m&&["mm",o]||a<=1&&["h"]||a<zn.h&&["hh",a]||s<=1&&["d"]||s<zn.d&&["dd",s]||l<=1&&["M"]||l<zn.M&&["MM",l]||u<=1&&["y"]||["yy",u])[2]=t,c[3]=0<+this,c[4]=n,function(e,t,n,i,r){return r.relativeTime(t||1,!!n,e,i)}.apply(null,c));return e&&(h=d.pastFuture(+this,h)),d.postformat(h)},qn.toISOString=Wn,qn.toString=Wn,qn.toJSON=Wn,qn.locale=Xt,qn.localeData=Qt,qn.toIsoString=k("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Wn),qn.lang=Kt,F("X",0,0,"unix"),F("x",0,0,"valueOf"),le("x",ie),le("X",/[+-]?\d+(\.\d{1,3})?/),he("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))})),he("x",(function(e,t,n){n._d=new Date(w(e))})),n.version="2.24.0",e=Tt,n.fn=fn,n.min=function(){return Ct("isBefore",[].slice.call(arguments,0))},n.max=function(){return Ct("isAfter",[].slice.call(arguments,0))},n.now=function(){return Date.now?Date.now():+new Date},n.utc=d,n.unix=function(e){return Tt(1e3*e)},n.months=function(e,t){return vn(e,t,"months")},n.isDate=s,n.locale=lt,n.invalid=p,n.duration=zt,n.isMoment=y,n.weekdays=function(e,t,n){return _n(e,t,n,"weekdays")},n.parseZone=function(){return Tt.apply(null,arguments).parseZone()},n.localeData=ct,n.isDuration=Pt,n.monthsShort=function(e,t){return vn(e,t,"monthsShort")},n.weekdaysMin=function(e,t,n){return _n(e,t,n,"weekdaysMin")},n.defineLocale=ut,n.updateLocale=function(e,t){if(null!=t){var n,i,r=it;null!=(i=st(e))&&(r=i._config),(n=new C(t=D(r,t))).parentLocale=rt[e],rt[e]=n,lt(e)}else null!=rt[e]&&(null!=rt[e].parentLocale?rt[e]=rt[e].parentLocale:null!=rt[e]&&delete rt[e]);return rt[e]},n.locales=function(){return x(rt)},n.weekdaysShort=function(e,t,n){return _n(e,t,n,"weekdaysShort")},n.normalizeUnits=P,n.relativeTimeRounding=function(e){return void 0===e?Fn:"function"==typeof e&&(Fn=e,!0)},n.relativeTimeThreshold=function(e,t){return void 0!==zn[e]&&(void 0===t?zn[e]:(zn[e]=t,"s"===e&&(zn.ss=t-1),!0))},n.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},n.prototype=fn,n.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},n.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),n.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:4}}),n.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}});var Gn={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},Zn=function(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5},Jn={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},Xn=function(e){return function(t,n,i,r){var o=Zn(t),a=Jn[e][Zn(t)];return 2===o&&(a=a[n?0:1]),a.replace(/%d/i,t)}},Kn=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];n.defineLocale("ar-ly",{months:Kn,monthsShort:Kn,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:Xn("s"),ss:Xn("s"),m:Xn("m"),mm:Xn("m"),h:Xn("h"),hh:Xn("h"),d:Xn("d"),dd:Xn("d"),M:Xn("M"),MM:Xn("M"),y:Xn("y"),yy:Xn("y")},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return Gn[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}}),n.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}});var Qn={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},ei={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};n.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(e){return ei[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return Qn[e]})).replace(/,/g,"،")},week:{dow:0,doy:6}}),n.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}});var ti={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},ni={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},ii=function(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5},ri={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},oi=function(e){return function(t,n,i,r){var o=ii(t),a=ri[e][ii(t)];return 2===o&&(a=a[n?0:1]),a.replace(/%d/i,t)}},ai=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];n.defineLocale("ar",{months:ai,monthsShort:ai,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:oi("s"),ss:oi("s"),m:oi("m"),mm:oi("m"),h:oi("h"),hh:oi("h"),d:oi("d"),dd:oi("d"),M:oi("M"),MM:oi("M"),y:oi("y"),yy:oi("y")},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(e){return ni[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return ti[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}});var si={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};function li(e,t,n){var i,r;return"m"===n?t?"хвіліна":"хвіліну":"h"===n?t?"гадзіна":"гадзіну":e+" "+(i=+e,r={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:t?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[n].split("_"),i%10==1&&i%100!=11?r[0]:2<=i%10&&i%10<=4&&(i%100<10||20<=i%100)?r[1]:r[2])}n.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(e){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(e)},meridiem:function(e,t,n){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var t=e%10;return e+(si[t]||si[e%100-t]||si[100<=e?100:null])},week:{dow:1,doy:7}}),n.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:li,mm:li,h:li,hh:li,d:"дзень",dd:li,M:"месяц",MM:li,y:"год",yy:li},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}}),n.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":10<n&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}}),n.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}});var ui={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},ci={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};n.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,(function(e){return ci[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return ui[e]}))},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&4<=e||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,n){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}});var di={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},hi={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};function fi(e,t,n){var i,r,o;return e+" "+(i={mm:"munutenn",MM:"miz",dd:"devezh"}[n],2!==e?i:void 0!==(o={m:"v",b:"v",d:"z"})[(r=i).charAt(0)]?o[r.charAt(0)]+r.substring(1):r)}function pi(e,t,n){var i=e+" ";switch(n){case"ss":return i+(1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi");case"m":return t?"jedna minuta":"jedne minute";case"mm":return i+(1===e?"minuta":2===e||3===e||4===e?"minute":"minuta");case"h":return t?"jedan sat":"jednog sata";case"hh":return i+(1===e?"sat":2===e||3===e||4===e?"sata":"sati");case"dd":return i+(1===e?"dan":"dana");case"MM":return i+(1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci");case"yy":return i+(1===e?"godina":2===e||3===e||4===e?"godine":"godina")}}n.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,(function(e){return hi[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return di[e]}))},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&4<=e||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,n){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}}),n.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:fi,h:"un eur",hh:"%d eur",d:"un devezh",dd:fi,M:"ur miz",MM:fi,y:"ur bloaz",yy:function(e){switch(function e(t){return 9<t?e(t%10):t}(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(e){return e+(1===e?"añ":"vet")},week:{dow:1,doy:4}}),n.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:pi,m:pi,mm:pi,h:pi,hh:pi,d:"dan",dd:pi,M:"mjesec",MM:pi,y:"godinu",yy:pi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),n.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}});var mi="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),gi="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),vi=[/^led/i,/^\xfano/i,/^b\u0159e/i,/^dub/i,/^kv\u011b/i,/^(\u010dvn|\u010derven$|\u010dervna)/i,/^(\u010dvc|\u010dervenec|\u010dervence)/i,/^srp/i,/^z\xe1\u0159/i,/^\u0159\xedj/i,/^lis/i,/^pro/i],_i=/^(leden|\xfanor|b\u0159ezen|duben|kv\u011bten|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|z\xe1\u0159\xed|\u0159\xedjen|listopad|prosinec|led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i;function yi(e){return 1<e&&e<5&&1!=~~(e/10)}function bi(e,t,n,i){var r=e+" ";switch(n){case"s":return t||i?"pár sekund":"pár sekundami";case"ss":return t||i?r+(yi(e)?"sekundy":"sekund"):r+"sekundami";case"m":return t?"minuta":i?"minutu":"minutou";case"mm":return t||i?r+(yi(e)?"minuty":"minut"):r+"minutami";case"h":return t?"hodina":i?"hodinu":"hodinou";case"hh":return t||i?r+(yi(e)?"hodiny":"hodin"):r+"hodinami";case"d":return t||i?"den":"dnem";case"dd":return t||i?r+(yi(e)?"dny":"dní"):r+"dny";case"M":return t||i?"měsíc":"měsícem";case"MM":return t||i?r+(yi(e)?"měsíce":"měsíců"):r+"měsíci";case"y":return t||i?"rok":"rokem";case"yy":return t||i?r+(yi(e)?"roky":"let"):r+"lety"}}function wi(e,t,n,i){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?r[n][0]:r[n][1]}function Li(e,t,n,i){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?r[n][0]:r[n][1]}function Mi(e,t,n,i){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?r[n][0]:r[n][1]}n.defineLocale("cs",{months:mi,monthsShort:gi,monthsRegex:_i,monthsShortRegex:_i,monthsStrictRegex:/^(leden|ledna|\xfanora|\xfanor|b\u0159ezen|b\u0159ezna|duben|dubna|kv\u011bten|kv\u011btna|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|srpna|z\xe1\u0159\xed|\u0159\xedjen|\u0159\xedjna|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i,monthsParse:vi,longMonthsParse:vi,shortMonthsParse:vi,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:bi,ss:bi,m:bi,mm:bi,h:bi,hh:bi,d:bi,dd:bi,M:bi,MM:bi,y:bi,yy:bi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){return e+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(e)?"рен":/\u04ab\u0443\u043b$/i.exec(e)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-мӗш",week:{dow:1,doy:7}}),n.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return 20<e?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":0<e&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}}),n.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:wi,mm:"%d Minuten",h:wi,hh:"%d Stunden",d:wi,dd:wi,M:wi,MM:wi,y:wi,yy:wi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:Li,mm:"%d Minuten",h:Li,hh:"%d Stunden",d:Li,dd:Li,M:Li,MM:Li,y:Li,yy:Li},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:Mi,mm:"%d Minuten",h:Mi,hh:"%d Stunden",d:Mi,dd:Mi,M:Mi,MM:Mi,y:Mi,yy:Mi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var ki=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],xi=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];n.defineLocale("dv",{months:ki,monthsShort:ki,weekdays:xi,weekdaysShort:xi,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0789\u0786|\u0789\u078a/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,n){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}}),n.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,n){return 11<e?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(e,t){var n=this._calendarEl[e],i=t&&t.hours();return $(n)&&(n=n.apply(t)),n.replace("{}",i%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%dη",week:{dow:1,doy:4}}),n.defineLocale("en-SG",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),n.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),n.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,n){return 11<e?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}});var Si="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Ti="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),$i=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],Di=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;n.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Ti[e.month()]:Si[e.month()]:Si},monthsRegex:Di,monthsShortRegex:Di,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:$i,longMonthsParse:$i,shortMonthsParse:$i,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}});var Ci="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Ei="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),Ai=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],Pi=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;n.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Ei[e.month()]:Ci[e.month()]:Ci},monthsRegex:Pi,monthsShortRegex:Pi,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:Ai,longMonthsParse:Ai,shortMonthsParse:Ai,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:0,doy:6}});var Yi="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Oi="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),Ii=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],ji=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;function Hi(e,t,n,i){var r={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?r[n][2]?r[n][2]:r[n][1]:i?r[n][0]:r[n][1]}n.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Oi[e.month()]:Yi[e.month()]:Yi},monthsRegex:ji,monthsShortRegex:ji,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:Ii,longMonthsParse:Ii,shortMonthsParse:Ii,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:Hi,ss:Hi,m:Hi,mm:Hi,h:Hi,hh:Hi,d:Hi,dd:"%d päeva",M:Hi,MM:Hi,y:Hi,yy:Hi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var Ni={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},Bi={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};n.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(e){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(e)},meridiem:function(e,t,n){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"ثانیه d%",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[\u06f0-\u06f9]/g,(function(e){return Bi[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return Ni[e]})).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%dم",week:{dow:6,doy:12}});var Ri="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),Fi=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",Ri[7],Ri[8],Ri[9]];function zi(e,t,n,i){var r,o="";switch(n){case"s":return i?"muutaman sekunnin":"muutama sekunti";case"ss":return i?"sekunnin":"sekuntia";case"m":return i?"minuutin":"minuutti";case"mm":o=i?"minuutin":"minuuttia";break;case"h":return i?"tunnin":"tunti";case"hh":o=i?"tunnin":"tuntia";break;case"d":return i?"päivän":"päivä";case"dd":o=i?"päivän":"päivää";break;case"M":return i?"kuukauden":"kuukausi";case"MM":o=i?"kuukauden":"kuukautta";break;case"y":return i?"vuoden":"vuosi";case"yy":o=i?"vuoden":"vuotta"}return((r=e)<10?i?Fi[r]:Ri[r]:r)+" "+o}n.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:zi,ss:zi,m:zi,mm:zi,h:zi,hh:zi,d:zi,dd:zi,M:zi,MM:zi,y:zi,yy:zi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}}),n.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}}),n.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,t){switch(t){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}});var Vi="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),Ui="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");function Wi(e,t,n,i){var r={s:["thodde secondanim","thodde second"],ss:[e+" secondanim",e+" second"],m:["eka mintan","ek minute"],mm:[e+" mintanim",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voranim",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disanim",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineanim",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsanim",e+" vorsam"]};return t?r[n][0]:r[n][1]}n.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Ui[e.month()]:Vi[e.month()]:Vi},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),n.defineLocale("ga",{months:["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Méitheamh","Iúil","Lúnasa","Meán Fómhair","Deaireadh Fómhair","Samhain","Nollaig"],monthsShort:["Eaná","Feab","Márt","Aibr","Beal","Méit","Iúil","Lúna","Meán","Deai","Samh","Noll"],monthsParseExact:!0,weekdays:["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Satharn"],weekdaysShort:["Dom","Lua","Mái","Céa","Déa","hAo","Sat"],weekdaysMin:["Do","Lu","Má","Ce","Dé","hA","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné aig] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d mí",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}}),n.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],monthsShort:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],monthsParseExact:!0,weekdays:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}}),n.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){
+return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:Wi,ss:Wi,m:Wi,mm:Wi,h:Wi,hh:Wi,d:Wi,dd:Wi,M:Wi,MM:Wi,y:Wi,yy:Wi},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){switch(t){case"D":return e+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokalli"===t?e:"donparam"===t?12<e?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"rati":e<12?"sokalli":e<16?"donparam":e<20?"sanje":"rati"}});var qi={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},Gi={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};n.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પેહલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,(function(e){return Gi[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return qi[e]}))},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?10<=e?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}}),n.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(e){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(e)},meridiem:function(e,t,n){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?n?'לפנה"צ':"לפני הצהריים":e<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}});var Zi={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},Ji={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function Xi(e,t,n){var i=e+" ";switch(n){case"ss":return i+(1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi");case"m":return t?"jedna minuta":"jedne minute";case"mm":return i+(1===e?"minuta":2===e||3===e||4===e?"minute":"minuta");case"h":return t?"jedan sat":"jednog sata";case"hh":return i+(1===e?"sat":2===e||3===e||4===e?"sata":"sati");case"dd":return i+(1===e?"dan":"dana");case"MM":return i+(1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci");case"yy":return i+(1===e?"godina":2===e||3===e||4===e?"godine":"godina")}}n.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,(function(e){return Ji[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return Zi[e]}))},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?10<=e?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}}),n.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:Xi,m:Xi,mm:Xi,h:Xi,hh:Xi,d:"dan",dd:Xi,M:"mjesec",MM:Xi,y:"godinu",yy:Xi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var Ki="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function Qi(e,t,n,i){var r=e;switch(n){case"s":return i||t?"néhány másodperc":"néhány másodperce";case"ss":return r+(i||t)?" másodperc":" másodperce";case"m":return"egy"+(i||t?" perc":" perce");case"mm":return r+(i||t?" perc":" perce");case"h":return"egy"+(i||t?" óra":" órája");case"hh":return r+(i||t?" óra":" órája");case"d":return"egy"+(i||t?" nap":" napja");case"dd":return r+(i||t?" nap":" napja");case"M":return"egy"+(i||t?" hónap":" hónapja");case"MM":return r+(i||t?" hónap":" hónapja");case"y":return"egy"+(i||t?" év":" éve");case"yy":return r+(i||t?" év":" éve")}return""}function er(e){return(e?"":"[múlt] ")+"["+Ki[this.day()]+"] LT[-kor]"}function tr(e){return e%100==11||e%10!=1}function nr(e,t,n,i){var r=e+" ";switch(n){case"s":return t||i?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return tr(e)?r+(t||i?"sekúndur":"sekúndum"):r+"sekúnda";case"m":return t?"mínúta":"mínútu";case"mm":return tr(e)?r+(t||i?"mínútur":"mínútum"):t?r+"mínúta":r+"mínútu";case"hh":return tr(e)?r+(t||i?"klukkustundir":"klukkustundum"):r+"klukkustund";case"d":return t?"dagur":i?"dag":"degi";case"dd":return tr(e)?t?r+"dagar":r+(i?"daga":"dögum"):t?r+"dagur":r+(i?"dag":"degi");case"M":return t?"mánuður":i?"mánuð":"mánuði";case"MM":return tr(e)?t?r+"mánuðir":r+(i?"mánuði":"mánuðum"):t?r+"mánuður":r+(i?"mánuð":"mánuði");case"y":return t||i?"ár":"ári";case"yy":return tr(e)?r+(t||i?"ár":"árum"):r+(t||i?"ár":"ári")}}n.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,n){return e<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return er.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return er.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:Qi,ss:Qi,m:Qi,mm:Qi,h:Qi,hh:Qi,d:Qi,dd:Qi,M:Qi,MM:Qi,y:Qi,yy:Qi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(e){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}}),n.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?11<=e?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),n.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:nr,ss:nr,m:nr,mm:nr,h:"klukkustund",hh:nr,d:nr,dd:nr,M:nr,MM:nr,y:nr,yy:nr},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("ja",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,n){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(e){return e.week()<this.week()?"[来週]dddd LT":"dddd LT"},lastDay:"[昨日] LT",lastWeek:function(e){return this.week()<e.week()?"[先週]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}\u65e5/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}}),n.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?11<=e?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}}),n.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10ec\u10d4\u10da\u10d8)/.test(e)?e.replace(/\u10d8$/,"ში"):e+"ში"},past:function(e){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(e)?e.replace(/(\u10d8|\u10d4)$/,"ის წინ"):/\u10ec\u10d4\u10da\u10d8/.test(e)?e.replace(/\u10ec\u10d4\u10da\u10d8$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}});var ir={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};n.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(e){return e+(ir[e]||ir[e%10]||ir[100<=e?100:null])},week:{dow:1,doy:7}});var rr={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},or={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};n.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,n){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,(function(e){return or[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return rr[e]}))},week:{dow:1,doy:4}});var ar={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},sr={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};n.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(e){return e.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,(function(e){return sr[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return ar[e]}))},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(e,t){return 12===e&&(e=0),"ರಾತ್ರಿ"===t?e<4?e:e+12:"ಬೆಳಿಗ್ಗೆ"===t?e:"ಮಧ್ಯಾಹ್ನ"===t?10<=e?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}}),n.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(e){return"오후"===e},meridiem:function(e,t,n){return e<12?"오전":"오후"}});var lr={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},ur={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},cr=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];n.defineLocale("ku",{months:cr,monthsShort:cr,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c|\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc/,isPM:function(e){return/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c/.test(e)},meridiem:function(e,t,n){return e<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(e){return ur[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return lr[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}});var dr={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};function hr(e,t,n,i){var r={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return t?r[n][0]:r[n][1]}function fr(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var t=e%10;return fr(0===t?e/10:t)}if(e<1e4){for(;10<=e;)e/=10;return fr(e)}return fr(e/=1e3)}n.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(e){return e+(dr[e]||dr[e%10]||dr[100<=e?100:null])},week:{dow:1,doy:7}}),n.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(e){return fr(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e},past:function(e){return fr(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e},s:"e puer Sekonnen",ss:"%d Sekonnen",m:hr,mm:"%d Minutten",h:hr,hh:"%d Stonnen",d:hr,dd:"%d Deeg",M:hr,MM:"%d Méint",y:hr,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(e){return"ຕອນແລງ"===e},meridiem:function(e,t,n){return e<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(e){return"ທີ່"+e}});var pr={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function mr(e,t,n,i){return t?vr(n)[0]:i?vr(n)[1]:vr(n)[2]}function gr(e){return e%10==0||10<e&&e<20}function vr(e){return pr[e].split("_")}function _r(e,t,n,i){var r=e+" ";return 1===e?r+mr(0,t,n[0],i):t?r+(gr(e)?vr(n)[1]:vr(n)[0]):i?r+vr(n)[1]:r+(gr(e)?vr(n)[1]:vr(n)[2])}n.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:function(e,t,n,i){return t?"kelios sekundės":i?"kelių sekundžių":"kelias sekundes"},ss:_r,m:mr,mm:_r,h:mr,hh:_r,d:mr,dd:_r,M:mr,MM:_r,y:mr,yy:_r},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}});var yr={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function br(e,t,n){return n?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function wr(e,t,n){return e+" "+br(yr[n],e,t)}function Lr(e,t,n){return br(yr[n],e,t)}n.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:function(e,t){return t?"dažas sekundes":"dažām sekundēm"},ss:wr,m:Lr,mm:wr,h:Lr,hh:wr,d:Lr,dd:wr,M:Lr,MM:wr,y:Lr,yy:wr},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var Mr={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:2<=e&&e<=4?t[1]:t[2]},translate:function(e,t,n){var i=Mr.words[n];return 1===n.length?t?i[0]:i[1]:e+" "+Mr.correctGrammaticalCase(e,i)}};function kr(e,t,n,i){switch(n){case"s":return t?"хэдхэн секунд":"хэдхэн секундын";case"ss":return e+(t?" секунд":" секундын");case"m":case"mm":return e+(t?" минут":" минутын");case"h":case"hh":return e+(t?" цаг":" цагийн");case"d":case"dd":return e+(t?" өдөр":" өдрийн");case"M":case"MM":return e+(t?" сар":" сарын");case"y":case"yy":return e+(t?" жил":" жилийн");default:return e}}n.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:Mr.translate,m:Mr.translate,mm:Mr.translate,h:Mr.translate,hh:Mr.translate,d:"dan",dd:Mr.translate,M:"mjesec",MM:Mr.translate,y:"godinu",yy:Mr.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),n.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":10<n&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}}),n.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&4<=e||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,n){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}}),n.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(e){return"ҮХ"===e},meridiem:function(e,t,n){return e<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:kr,ss:kr,m:kr,mm:kr,h:kr,hh:kr,d:kr,dd:kr,M:kr,MM:kr,y:kr,yy:kr},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" өдөр";default:return e}}});var xr={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},Sr={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function Tr(e,t,n,i){var r="";if(t)switch(n){case"s":r="काही सेकंद";break;case"ss":r="%d सेकंद";break;case"m":r="एक मिनिट";break;case"mm":r="%d मिनिटे";break;case"h":r="एक तास";break;case"hh":r="%d तास";break;case"d":r="एक दिवस";break;case"dd":r="%d दिवस";break;case"M":r="एक महिना";break;case"MM":r="%d महिने";break;case"y":r="एक वर्ष";break;case"yy":r="%d वर्षे"}else switch(n){case"s":r="काही सेकंदां";break;case"ss":r="%d सेकंदां";break;case"m":r="एका मिनिटा";break;case"mm":r="%d मिनिटां";break;case"h":r="एका तासा";break;case"hh":r="%d तासां";break;case"d":r="एका दिवसा";break;case"dd":r="%d दिवसां";break;case"M":r="एका महिन्या";break;case"MM":r="%d महिन्यां";break;case"y":r="एका वर्षा";break;case"yy":r="%d वर्षां"}return r.replace(/%d/i,e)}n.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:Tr,ss:Tr,m:Tr,mm:Tr,h:Tr,hh:Tr,d:Tr,dd:Tr,M:Tr,MM:Tr,y:Tr,yy:Tr},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,(function(e){return Sr[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return xr[e]}))},meridiemParse:/\u0930\u093e\u0924\u094d\u0930\u0940|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात्री"===t?e<4?e:e+12:"सकाळी"===t?e:"दुपारी"===t?10<=e?e:e+12:"सायंकाळी"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात्री":e<10?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}}),n.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?11<=e?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),n.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?11<=e?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),n.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}});var $r={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},Dr={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};n.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,(function(e){return Dr[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return $r[e]}))},week:{dow:1,doy:4}}),n.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var Cr={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},Er={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};n.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,(function(e){return Er[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return Cr[e]}))},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?10<=e?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,n){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}});var Ar="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),Pr="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),Yr=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],Or=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;n.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Pr[e.month()]:Ar[e.month()]:Ar},monthsRegex:Or,monthsShortRegex:Or,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:Yr,longMonthsParse:Yr,shortMonthsParse:Yr,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}});var Ir="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),jr="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),Hr=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],Nr=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;n.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?jr[e.month()]:Ir[e.month()]:Ir},monthsRegex:Nr,monthsShortRegex:Nr,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:Hr,longMonthsParse:Hr,shortMonthsParse:Hr,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),n.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var Br={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},Rr={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};n.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(e){return e.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,(function(e){return Rr[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return Br[e]}))},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(e,t){return 12===e&&(e=0),"ਰਾਤ"===t?e<4?e:e+12:"ਸਵੇਰ"===t?e:"ਦੁਪਹਿਰ"===t?10<=e?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}});var Fr="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),zr="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");function Vr(e){return e%10<5&&1<e%10&&~~(e/10)%10!=1}function Ur(e,t,n){var i=e+" ";switch(n){case"ss":return i+(Vr(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return i+(Vr(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return i+(Vr(e)?"godziny":"godzin");case"MM":return i+(Vr(e)?"miesiące":"miesięcy");case"yy":return i+(Vr(e)?"lata":"lat")}}function Wr(e,t,n){var i=" ";return(20<=e%100||100<=e&&e%100==0)&&(i=" de "),e+i+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[n]}function qr(e,t,n){var i,r;return"m"===n?t?"минута":"минуту":e+" "+(i=+e,r={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[n].split("_"),i%10==1&&i%100!=11?r[0]:2<=i%10&&i%10<=4&&(i%100<10||20<=i%100)?r[1]:r[2])}n.defineLocale("pl",{months:function(e,t){return e?""===t?"("+zr[e.month()]+"|"+Fr[e.month()]+")":/D MMMM/.test(t)?zr[e.month()]:Fr[e.month()]:Fr},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:Ur,m:Ur,mm:Ur,h:Ur,hh:Ur,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:Ur,y:"rok",yy:Ur},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº"}),n.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:Wr,m:"un minut",mm:Wr,h:"o oră",hh:Wr,d:"o zi",dd:Wr,M:"o lună",MM:Wr,y:"un an",yy:Wr},week:{dow:1,doy:7}});var Gr=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];n.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:Gr,longMonthsParse:Gr,shortMonthsParse:Gr,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:qr,m:qr,mm:qr,h:"час",hh:qr,d:"день",dd:qr,M:"месяц",MM:qr,y:"год",yy:qr},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}});var Zr=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],Jr=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];n.defineLocale("sd",{months:Zr,monthsShort:Zr,weekdays:Jr,weekdaysShort:Jr,weekdaysMin:Jr,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}}),n.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(e){return e+" වැනි"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,n){return 11<e?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}});var Xr="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),Kr="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");function Qr(e){return 1<e&&e<5}function eo(e,t,n,i){var r=e+" ";switch(n){case"s":return t||i?"pár sekúnd":"pár sekundami";case"ss":return t||i?r+(Qr(e)?"sekundy":"sekúnd"):r+"sekundami";case"m":return t?"minúta":i?"minútu":"minútou";case"mm":return t||i?r+(Qr(e)?"minúty":"minút"):r+"minútami";case"h":return t?"hodina":i?"hodinu":"hodinou";case"hh":return t||i?r+(Qr(e)?"hodiny":"hodín"):r+"hodinami";case"d":return t||i?"deň":"dňom";case"dd":return t||i?r+(Qr(e)?"dni":"dní"):r+"dňami";case"M":return t||i?"mesiac":"mesiacom";case"MM":return t||i?r+(Qr(e)?"mesiace":"mesiacov"):r+"mesiacmi";case"y":return t||i?"rok":"rokom";case"yy":return t||i?r+(Qr(e)?"roky":"rokov"):r+"rokmi"}}function to(e,t,n,i){var r=e+" ";switch(n){case"s":return t||i?"nekaj sekund":"nekaj sekundami";case"ss":return r+(1===e?t?"sekundo":"sekundi":2===e?t||i?"sekundi":"sekundah":e<5?t||i?"sekunde":"sekundah":"sekund");case"m":return t?"ena minuta":"eno minuto";case"mm":return r+(1===e?t?"minuta":"minuto":2===e?t||i?"minuti":"minutama":e<5?t||i?"minute":"minutami":t||i?"minut":"minutami");case"h":return t?"ena ura":"eno uro";case"hh":return r+(1===e?t?"ura":"uro":2===e?t||i?"uri":"urama":e<5?t||i?"ure":"urami":t||i?"ur":"urami");case"d":return t||i?"en dan":"enim dnem";case"dd":return r+(1===e?t||i?"dan":"dnem":2===e?t||i?"dni":"dnevoma":t||i?"dni":"dnevi");case"M":return t||i?"en mesec":"enim mesecem";case"MM":return r+(1===e?t||i?"mesec":"mesecem":2===e?t||i?"meseca":"mesecema":e<5?t||i?"mesece":"meseci":t||i?"mesecev":"meseci");case"y":return t||i?"eno leto":"enim letom";case"yy":return r+(1===e?t||i?"leto":"letom":2===e?t||i?"leti":"letoma":e<5?t||i?"leta":"leti":t||i?"let":"leti")}}n.defineLocale("sk",{months:Xr,monthsShort:Kr,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:eo,ss:eo,m:eo,mm:eo,h:eo,hh:eo,d:eo,dd:eo,M:eo,MM:eo,y:eo,yy:eo},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:to,ss:to,m:to,mm:to,h:to,hh:to,d:to,dd:to,M:to,MM:to,y:to,yy:to},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),n.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,n){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var no={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:2<=e&&e<=4?t[1]:t[2]},translate:function(e,t,n){var i=no.words[n];return 1===n.length?t?i[0]:i[1]:e+" "+no.correctGrammaticalCase(e,i)}};n.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:no.translate,m:no.translate,mm:no.translate,h:no.translate,hh:no.translate,d:"дан",dd:no.translate,M:"месец",MM:no.translate,y:"годину",yy:no.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var io={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:2<=e&&e<=4?t[1]:t[2]},translate:function(e,t,n){var i=io.words[n];return 1===n.length?t?i[0]:i[1]:e+" "+io.correctGrammaticalCase(e,i)}};n.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:io.translate,m:io.translate,mm:io.translate,h:io.translate,hh:io.translate,d:"dan",dd:io.translate,M:"mesec",MM:io.translate,y:"godinu",yy:io.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),n.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,n){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?11<=e?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}}),n.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"e":1===t?"a":2===t?"a":"e")},week:{dow:1,doy:4}}),n.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}});var ro={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},oo={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};n.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,(function(e){return oo[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return ro[e]}))},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(e,t,n){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t?e:"நண்பகல்"===t&&10<=e?e:e+12},week:{dow:0,doy:6}}),n.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%dవ",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(e,t){return 12===e&&(e=0),"రాత్రి"===t?e<4?e:e+12:"ఉదయం"===t?e:"మధ్యాహ్నం"===t?10<=e?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}}),n.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}});var ao={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};n.defineLocale("tg",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Пагоҳ соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?11<=e?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(e){return e+(ao[e]||ao[e%10]||ao[100<=e?100:null])},week:{dow:1,doy:7}}),n.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,n){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}}),n.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}});var so="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function lo(e,t,n,i){var r=function(e){var t=Math.floor(e%1e3/100),n=Math.floor(e%100/10),i=e%10,r="";return 0<t&&(r+=so[t]+"vatlh"),0<n&&(r+=(""!==r?" ":"")+so[n]+"maH"),0<i&&(r+=(""!==r?" ":"")+so[i]),""===r?"pagh":r}(e);switch(n){case"ss":return r+" lup";case"mm":return r+" tup";case"hh":return r+" rep";case"dd":return r+" jaj";case"MM":return r+" jar";case"yy":return r+" DIS"}}n.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(e){var t=e;return-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"},past:function(e){var t=e;return-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"},s:"puS lup",ss:lo,m:"wa’ tup",mm:lo,h:"wa’ rep",hh:lo,d:"wa’ jaj",dd:lo,M:"wa’ jar",MM:lo,y:"wa’ DIS",yy:lo},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var uo={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};function co(e,t,n,i){var r={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return i?r[n][0]:t?r[n][0]:r[n][1]}function ho(e,t,n){var i,r;return"m"===n?t?"хвилина":"хвилину":"h"===n?t?"година":"годину":e+" "+(i=+e,r={ss:t?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:t?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:t?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[n].split("_"),i%10==1&&i%100!=11?r[0]:2<=i%10&&i%10<=4&&(i%100<10||20<=i%100)?r[1]:r[2])}function fo(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}n.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,t){switch(t){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var n=e%10;return e+(uo[n]||uo[e%100-n]||uo[100<=e?100:null])}},week:{dow:1,doy:7}}),n.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,n){return 11<e?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:co,ss:co,m:co,mm:co,h:co,hh:co,d:co,dd:co,M:co,MM:co,y:co,yy:co},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}}),n.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}}),n.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,meridiemHour:function(e,t){return 12===e&&(e=0),"يېرىم كېچە"===t||"سەھەر"===t||"چۈشتىن بۇرۇن"===t?e:"چۈشتىن كېيىن"===t||"كەچ"===t?e+12:11<=e?e:e+12},meridiem:function(e,t,n){var i=100*e+t;return i<600?"يېرىم كېچە":i<900?"سەھەر":i<1130?"چۈشتىن بۇرۇن":i<1230?"چۈش":i<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}}),n.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:function(e,t){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===e?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):e?n[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(t)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:n.nominative},weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:fo("[Сьогодні "),nextDay:fo("[Завтра "),lastDay:fo("[Вчора "),nextWeek:fo("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return fo("[Минулої] dddd [").call(this);case 1:case 2:case 4:return fo("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:ho,m:ho,mm:ho,h:"годину",hh:ho,d:"день",dd:ho,M:"місяць",MM:ho,y:"рік",yy:ho},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}});var po=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],mo=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];return n.defineLocale("ur",{months:po,monthsShort:po,weekdays:mo,weekdaysShort:mo,weekdaysMin:mo,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}}),n.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}}),n.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}}),n.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}}),n.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}}),n.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:11<=e?e:e+12},meridiem:function(e,t,n){var i=100*e+t;return i<600?"凌晨":i<900?"早上":i<1130?"上午":i<1230?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}}),n.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?11<=e?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var i=100*e+t;return i<600?"凌晨":i<900?"早上":i<1130?"上午":i<1230?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}}),n.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?11<=e?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var i=100*e+t;return i<600?"凌晨":i<900?"早上":i<1130?"上午":i<1230?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}}),n.locale("en"),n})),
+/*! @preserve
+ * numeral.js
+ * version : 1.5.6
+ * author : Adam Draper
+ * license : MIT
+ * http://adamwdraper.github.com/Numeral-js/
+ */
+function(){var e,t={},n={currentLanguage:"en",zeroFormat:null,nullFormat:null,defaultFormat:"0,0"},i={currentLanguage:n.currentLanguage,zeroFormat:n.zeroFormat,nullFormat:n.nullFormat,defaultFormat:n.defaultFormat},r={bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],iec:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]};function o(e){this._value=e}function a(e,t,n,i){var r,o,a,s,l=e.toString().split("."),u=t-(i||0);return r=2===l.length?Math.min(Math.max(l[1].length,u),t):u,s=(n(e*(a=Math.pow(10,r)))/a).toFixed(r),i>t-r&&(o=new RegExp("\\.?0{1,"+(i-(t-r))+"}$"),s=s.replace(o,"")),s}function s(e,n,r){var o,s,l,u,c=!1,d=!1,h=!1,f="",p=!1,m=!1,g=!1,v=!1,_=!1,y="",b=!1;return null===e&&(e=0),o=Math.abs(e),n.indexOf("(")>-1?(c=!0,n=n.slice(1,-1)):n.indexOf("+")>-1&&(d=!0,n=n.replace(/\+/g,"")),n.indexOf("a")>-1&&(p=n.indexOf("aK")>=0,m=n.indexOf("aM")>=0,g=n.indexOf("aB")>=0,v=n.indexOf("aT")>=0,_=p||m||g||v,n.indexOf(" a")>-1&&(f=" "),n=n.replace(new RegExp(f+"a[KMBT]?"),""),o>=Math.pow(10,12)&&!_||v?(f+=t[i.currentLanguage].abbreviations.trillion,e/=Math.pow(10,12)):o<Math.pow(10,12)&&o>=Math.pow(10,9)&&!_||g?(f+=t[i.currentLanguage].abbreviations.billion,e/=Math.pow(10,9)):o<Math.pow(10,9)&&o>=Math.pow(10,6)&&!_||m?(f+=t[i.currentLanguage].abbreviations.million,e/=Math.pow(10,6)):(o<Math.pow(10,6)&&o>=Math.pow(10,3)&&!_||p)&&(f+=t[i.currentLanguage].abbreviations.thousand,e/=Math.pow(10,3))),n.indexOf("[.]")>-1&&(h=!0,n=n.replace("[.]",".")),s=e.toString().split(".")[0],l=n.split(".")[1],u=n.indexOf(","),l?(s=(y=l.indexOf("[")>-1?a(e,(l=(l=l.replace("]","")).split("["))[0].length+l[1].length,r,l[1].length):a(e,l.length,r)).split(".")[0],y=y.indexOf(".")>-1?t[i.currentLanguage].delimiters.decimal+y.split(".")[1]:"",h&&0===Number(y.slice(1))&&(y="")):s=a(e,null,r),s.indexOf("-")>-1&&(s=s.slice(1),b=!0),u>-1&&(s=s.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1"+t[i.currentLanguage].delimiters.thousands)),0===n.indexOf(".")&&(s=""),(c&&b?"(":"")+(!c&&b?"-":"")+(!b&&d?"+":"")+s+y+(f||"")+(c&&b?")":"")}function l(e){var t=e.toString().split(".");return t.length<2?1:Math.pow(10,t[1].length)}function u(){return Array.prototype.slice.call(arguments).reduce((function(e,t){var n=l(e),i=l(t);return n>i?n:i}),-1/0)}(e=function(t){return new o(t=e.isNumeral(t)?t.value():0===t||void 0===t?0:null===t?null:Number(t)?Number(t):e.fn.unformat(t))}).version="1.5.6",e.isNumeral=function(e){return e instanceof o},e.language=function(n,r){if(!n)return i.currentLanguage;if((n=n.toLowerCase())&&!r){if(!t[n])throw new Error("Unknown language : "+n);i.currentLanguage=n}return!r&&t[n]||function(e,n){t[e]=n}(n,r),e},e.reset=function(){for(var e in n)i[e]=n[e]},e.languageData=function(e){if(!e)return t[i.currentLanguage];if(!t[e])throw new Error("Unknown language : "+e);return t[e]},e.language("en",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"$"}}),e.zeroFormat=function(e){i.zeroFormat="string"==typeof e?e:null},e.nullFormat=function(e){i.nullFormat="string"==typeof e?e:null},e.defaultFormat=function(e){i.defaultFormat="string"==typeof e?e:"0.0"},e.validate=function(t,n){var i,r,o,a,s,l,u,c;if("string"!=typeof t&&(t+="",console.warn&&console.warn("Numeral.js: Value is not string. It has been co-erced to: ",t)),(t=t.trim()).match(/^\d+$/))return!0;if(""===t)return!1;try{u=e.languageData(n)}catch(t){u=e.languageData(e.language())}return o=u.currency.symbol,s=u.abbreviations,i=u.delimiters.decimal,r="."===u.delimiters.thousands?"\\.":u.delimiters.thousands,!(null!==(c=t.match(/^[^\d]+/))&&(t=t.substr(1),c[0]!==o)||null!==(c=t.match(/[^\d]+$/))&&(t=t.slice(0,-1),c[0]!==s.thousand&&c[0]!==s.million&&c[0]!==s.billion&&c[0]!==s.trillion)||(l=new RegExp(r+"{2}"),t.match(/[^\d.,]/g)||(a=t.split(i)).length>2||(a.length<2?!a[0].match(/^\d+.*\d$/)||a[0].match(l):1===a[0].length?!a[0].match(/^\d+$/)||a[0].match(l)||!a[1].match(/^\d+$/):!a[0].match(/^\d+.*\d$/)||a[0].match(l)||!a[1].match(/^\d+$/))))},Array.prototype.reduce||(Array.prototype.reduce=function(e){"use strict";if(null===this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof e)throw new TypeError(e+" is not a function");var t,n=Object(this),i=n.length>>>0,r=0;if(2===arguments.length)t=arguments[1];else{for(;r<i&&!(r in n);)r++;if(r>=i)throw new TypeError("Reduce of empty array with no initial value");t=n[r++]}for(;r<i;r++)r in n&&(t=e(t,n[r],r,n));return t}),e.fn=o.prototype={clone:function(){return e(this)},format:function(e,n){return function(e,n,o){return 0===e._value&&null!==i.zeroFormat?i.zeroFormat:null===e._value&&null!==i.nullFormat?i.nullFormat:n.indexOf("$")>-1?function(e,n,r){var o,a,l=n.indexOf("$"),u=n.indexOf("("),c=n.indexOf("-"),d="";return n.indexOf(" $")>-1?(d=" ",n=n.replace(" $","")):n.indexOf("$ ")>-1?(d=" ",n=n.replace("$ ","")):n=n.replace("$",""),a=s(e._value,n,r),l<=1?a.indexOf("(")>-1||a.indexOf("-")>-1?(o=1,(l<u||l<c)&&(o=0),(a=a.split("")).splice(o,0,t[i.currentLanguage].currency.symbol+d),a=a.join("")):a=t[i.currentLanguage].currency.symbol+d+a:a.indexOf(")")>-1?((a=a.split("")).splice(-1,0,d+t[i.currentLanguage].currency.symbol),a=a.join("")):a=a+d+t[i.currentLanguage].currency.symbol,a}(e,n,o):n.indexOf("%")>-1?function(e,t,n){var i,r="",o=100*e._value;return t.indexOf(" %")>-1?(r=" ",t=t.replace(" %","")):t=t.replace("%",""),(i=s(o,t,n)).indexOf(")")>-1?((i=i.split("")).splice(-1,0,r+"%"),i=i.join("")):i=i+r+"%",i}(e,n,o):n.indexOf(":")>-1?function(e){var t=Math.floor(e._value/60/60),n=Math.floor((e._value-60*t*60)/60),i=Math.round(e._value-60*t*60-60*n);return t+":"+(n<10?"0"+n:n)+":"+(i<10?"0"+i:i)}(e):n.indexOf("b")>-1||n.indexOf("ib")>-1?function(e,t,n){var i,o,a,l=t.indexOf("ib")>-1?r.iec:r.bytes,u=e._value,c="";for(t.indexOf(" b")>-1||t.indexOf(" ib")>-1?(c=" ",t=t.replace(" ib","").replace(" b","")):t=t.replace("ib","").replace("b",""),i=0;i<=l.length;i++)if(o=Math.pow(1024,i),a=Math.pow(1024,i+1),null===u||0===u||u>=o&&u<a){c+=l[i],o>0&&(u/=o);break}return s(u,t,n)+c}(e,n,o):n.indexOf("o")>-1?function(e,n,r){var o="";return n.indexOf(" o")>-1?(o=" ",n=n.replace(" o","")):n=n.replace("o",""),o+=t[i.currentLanguage].ordinal(e._value),s(e._value,n,r)+o}(e,n,o):s(e._value,n,o)}(this,e||i.defaultFormat,void 0!==n?n:Math.round)},unformat:function(e){return"[object Number]"===Object.prototype.toString.call(e)?e:function(e,n){var o,a,s,l,u,c,d=n,h=!1;if(n.indexOf(":")>-1)c=function(e){var t=e.split(":"),n=0;return 3===t.length?(n+=60*Number(t[0])*60,n+=60*Number(t[1]),n+=Number(t[2])):2===t.length&&(n+=60*Number(t[0]),n+=Number(t[1])),Number(n)}(n);else if(n===i.zeroFormat||n===i.nullFormat)c=0;else{for("."!==t[i.currentLanguage].delimiters.decimal&&(n=n.replace(/\./g,"").replace(t[i.currentLanguage].delimiters.decimal,".")),o=new RegExp("[^a-zA-Z]"+t[i.currentLanguage].abbreviations.thousand+"(?:\\)|(\\"+t[i.currentLanguage].currency.symbol+")?(?:\\))?)?$"),a=new RegExp("[^a-zA-Z]"+t[i.currentLanguage].abbreviations.million+"(?:\\)|(\\"+t[i.currentLanguage].currency.symbol+")?(?:\\))?)?$"),s=new RegExp("[^a-zA-Z]"+t[i.currentLanguage].abbreviations.billion+"(?:\\)|(\\"+t[i.currentLanguage].currency.symbol+")?(?:\\))?)?$"),l=new RegExp("[^a-zA-Z]"+t[i.currentLanguage].abbreviations.trillion+"(?:\\)|(\\"+t[i.currentLanguage].currency.symbol+")?(?:\\))?)?$"),u=1;u<=r.bytes.length&&!(h=(n.indexOf(r.bytes[u])>-1||n.indexOf(r.iec[u])>-1)&&Math.pow(1024,u));u++);c=h||1,c*=d.match(o)?Math.pow(10,3):1,c*=d.match(a)?Math.pow(10,6):1,c*=d.match(s)?Math.pow(10,9):1,c*=d.match(l)?Math.pow(10,12):1,c*=n.indexOf("%")>-1?.01:1,c*=(n.split("-").length+Math.min(n.split("(").length-1,n.split(")").length-1))%2?1:-1,c*=Number(n.replace(/[^0-9\.]+/g,"")),c=h?Math.ceil(c):c}return e._value=c,e._value}(this,e||i.defaultFormat)},value:function(){return this._value},valueOf:function(){return this._value},set:function(e){return this._value=Number(e),this},add:function(e){var t=u.call(null,this._value,e);return this._value=[this._value,e].reduce((function(e,n,i,r){return e+t*n}),0)/t,this},subtract:function(e){var t=u.call(null,this._value,e);return this._value=[e].reduce((function(e,n,i,r){return e-t*n}),this._value*t)/t,this},multiply:function(e){return this._value=[this._value,e].reduce((function(e,t,n,i){var r=u(e,t);return e*r*(t*r)/(r*r)}),1),this},divide:function(e){return this._value=[this._value,e].reduce((function(e,t,n,i){var r=u(e,t);return e*r/(t*r)})),this},difference:function(t){return Math.abs(e(this._value).subtract(t).value())}},"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"==typeof ender&&(this.numeral=e),"function"==typeof define&&define.amd&&define([],(function(){return e}))}.call(this),
+/*! @preserve 
+ * numeral.js language configuration
+ * language : french (fr)
+ * author : Adam Draper : https://github.com/adamwdraper
+ */
+function(){var e={delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return 1===e?"er":"e"},currency:{symbol:"€"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("fr",e)}(),
+/*! @preserve 
+ * numeral.js language configuration
+ * language : english united kingdom (uk)
+ * author : Dan Ristic : https://github.com/dristic
+ */
+function(){var e={delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"£"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("en-gb",e)}(),
+/*! @preserve 
+ * numeral.js language configuration
+ * language : netherlands-dutch (nl-nl)
+ * author : Dave Clayton : https://github.com/davedx
+ */
+function(){var e={delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mln",billion:"mrd",trillion:"bln"},ordinal:function(e){var t=e%100;return 0!==e&&t<=1||8===t||t>=20?"ste":"de"},currency:{symbol:"€ "}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("nl-nl",e)}(),
+/*! @preserve 
+ * numeral.js language configuration
+ * language : spanish
+ * author : Hernan Garcia : https://github.com/hgarcia
+ */
+function(){var e={delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mm",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===t||3===t?"er":2===t?"do":7===t||0===t?"mo":8===t?"vo":9===t?"no":"to"},currency:{symbol:"$"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("es",e)}(),
+/*! @preserve 
+ * numeral.js language configuration
+ * language : italian Italy (it)
+ * author : Giacomo Trombi : http://cinquepunti.it
+ */
+function(){var e={delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"mila",million:"mil",billion:"b",trillion:"t"},ordinal:function(e){return"º"},currency:{symbol:"€"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("it",e)}(),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("../numeral")):"function"==typeof define&&define.amd?define(["numeral"],t):t(e.numeral)}(this,(function(e){"use strict";e.language("eo",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"x10^3",million:"x10^6",billion:"x10^9",trillion:"x10^12"},ordinal:function(e){return"a"},currency:{symbol:"X"}})})),e=function(){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return e[i].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e,t){"object"===(void 0===e?"undefined":r(e))&&(t=e,e=void 0),t=t||{};var n,i=o(e),a=i.source,c=i.id,d=i.path,h=u[c]&&d in u[c].nsps;return t.forceNew||t["force new connection"]||!1===t.multiplex||h?(l("ignoring socket cache for %s",a),n=s(a,t)):(u[c]||(l("new io instance for %s",a),u[c]=s(a,t)),n=u[c]),i.query&&!t.query?t.query=i.query:t&&"object"===r(t.query)&&(t.query=function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t.join("&")}(t.query)),n.socket(i.path,t)}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(1),a=n(7),s=n(17),l=n(3)("socket.io-client");e.exports=t=i;var u=t.managers={};t.protocol=a.protocol,t.connect=i,t.Manager=n(17),t.Socket=n(44)},function(e,t,n){(function(t){"use strict";var i=n(2),r=n(3)("socket.io-client:url");e.exports=function(e,n){var o=e;n=n||t.location,null==e&&(e=n.protocol+"//"+n.host),"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?n.protocol+e:n.host+e),/^(https?|wss?):\/\//.test(e)||(r("protocol-less url %s",e),e=void 0!==n?n.protocol+"//"+e:"https://"+e),r("parse %s",e),o=i(e)),o.port||(/^(http|ws)$/.test(o.protocol)?o.port="80":/^(http|ws)s$/.test(o.protocol)&&(o.port="443")),o.path=o.path||"/";var a=-1!==o.host.indexOf(":")?"["+o.host+"]":o.host;return o.id=o.protocol+"://"+a+":"+o.port,o.href=o.protocol+"://"+a+(n&&n.port===o.port?"":":"+o.port),o}}).call(t,function(){return this}())},function(e,t){var n=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,i=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];e.exports=function(e){var t=e,r=e.indexOf("["),o=e.indexOf("]");-1!=r&&-1!=o&&(e=e.substring(0,r)+e.substring(r,o).replace(/:/g,";")+e.substring(o,e.length));for(var a=n.exec(e||""),s={},l=14;l--;)s[i[l]]=a[l]||"";return-1!=r&&-1!=o&&(s.source=t,s.host=s.host.substring(1,s.host.length-1).replace(/;/g,":"),s.authority=s.authority.replace("[","").replace("]","").replace(/;/g,":"),s.ipv6uri=!0),s}},function(e,t,n){(function(i){function r(){try{return t.storage.debug}catch(e){}if(void 0!==i&&"env"in i)return i.env.DEBUG}(t=e.exports=n(5)).log=function(){return"object"==typeof console&&alert&&Function.prototype.apply.call(alert,console,arguments)},t.formatArgs=function(){var e=arguments,n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),!n)return e;var i="color: "+this.color;e=[e[0],i,"color: inherit"].concat(Array.prototype.slice.call(e,1));var r=0,o=0;return e[0].replace(/%[a-z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(o=r))})),e.splice(o,0,i),e},t.save=function(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}},t.load=r,t.useColors=function(){return"undefined"!=typeof document&&"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31},t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(r())}).call(t,n(4))},function(e,t){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function r(e){if(u===setTimeout)return setTimeout(e,0);if((u===n||!u)&&setTimeout)return u=setTimeout,setTimeout(e,0);try{return u(e,0)}catch(t){try{return u.call(null,e,0)}catch(t){return u.call(this,e,0)}}}function o(){p&&h&&(p=!1,h.length?f=h.concat(f):m=-1,f.length&&a())}function a(){if(!p){var e=r(o);p=!0;for(var t=f.length;t;){for(h=f,f=[];++m<t;)h&&h[m].run();m=-1,t=f.length}h=null,p=!1,function(e){if(c===clearTimeout)return clearTimeout(e);if((c===i||!c)&&clearTimeout)return c=clearTimeout,clearTimeout(e);try{c(e)}catch(t){try{return c.call(null,e)}catch(t){return c.call(this,e)}}}(e)}}function s(e,t){this.fun=e,this.array=t}function l(){}var u,c,d=e.exports={};!function(){try{u="function"==typeof setTimeout?setTimeout:n}catch(e){u=n}try{c="function"==typeof clearTimeout?clearTimeout:i}catch(e){c=i}}();var h,f=[],p=!1,m=-1;d.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];f.push(new s(e,t)),1!==f.length||p||r(a)},s.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=l,d.addListener=l,d.once=l,d.off=l,d.removeListener=l,d.removeAllListeners=l,d.emit=l,d.binding=function(e){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(e){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},function(e,t,n){function i(e){function n(){}function i(){var e=i,n=+new Date,a=n-(r||n);e.diff=a,e.prev=r,e.curr=n,r=n,null==e.useColors&&(e.useColors=t.useColors()),null==e.color&&e.useColors&&(e.color=t.colors[o++%t.colors.length]);for(var s=new Array(arguments.length),l=0;l<s.length;l++)s[l]=arguments[l];s[0]=t.coerce(s[0]),"string"!=typeof s[0]&&(s=["%o"].concat(s));var u=0;s[0]=s[0].replace(/%([a-z%])/g,(function(n,i){if("%%"===n)return n;u++;var r=t.formatters[i];if("function"==typeof r){var o=s[u];n=r.call(e,o),s.splice(u,1),u--}return n})),s=t.formatArgs.apply(e,s),(i.log||t.log||alert.bind(console)).apply(e,s)}n.enabled=!1,i.enabled=!0;var a=t.enabled(e)?i:n;return a.namespace=e,a}(t=e.exports=i.debug=i).coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){t.enable("")},t.enable=function(e){t.save(e);for(var n=(e||"").split(/[\s,]+/),i=n.length,r=0;r<i;r++)n[r]&&("-"===(e=n[r].replace(/[\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){var n,i;for(n=0,i=t.skips.length;n<i;n++)if(t.skips[n].test(e))return!1;for(n=0,i=t.names.length;n<i;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(6),t.names=[],t.skips=[],t.formatters={};var r,o=0},function(e,t){function n(e){return i(e,s,"day")||i(e,a,"hour")||i(e,o,"minute")||i(e,r,"second")||e+" ms"}function i(e,t,n){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}var r=1e3,o=60*r,a=60*o,s=24*a,l=365.25*s;e.exports=function(e,t){t=t||{};var i=typeof e;if("string"===i&&e.length>0)return function(e){if(!((e=String(e)).length>1e4)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n*l;case"days":case"day":case"d":return n*s;case"hours":case"hour":case"hrs":case"hr":case"h":return n*a;case"minutes":case"minute":case"mins":case"min":case"m":return n*o;case"seconds":case"second":case"secs":case"sec":case"s":return n*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}(e);if("number"===i&&!1===isNaN(e))return t.long?n(e):function(e){return e>=s?Math.round(e/s)+"d":e>=a?Math.round(e/a)+"h":e>=o?Math.round(e/o)+"m":e>=r?Math.round(e/r)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t,n){function i(){}function r(e){var n="",i=!1;return n+=e.type,t.BINARY_EVENT!=e.type&&t.BINARY_ACK!=e.type||(n+=e.attachments,n+="-"),e.nsp&&"/"!=e.nsp&&(i=!0,n+=e.nsp),null!=e.id&&(i&&(n+=",",i=!1),n+=e.id),null!=e.data&&(i&&(n+=","),n+=u.stringify(e.data)),l("encoded %j as %s",e,n),n}function o(){this.reconstructor=null}function a(e){this.reconPack=e,this.buffers=[]}function s(e){return{type:t.ERROR,data:"parser error"}}var l=n(8)("socket.io-parser"),u=n(11),c=n(13),d=n(14),h=n(16);t.protocol=4,t.types=["CONNECT","DISCONNECT","EVENT","ACK","ERROR","BINARY_EVENT","BINARY_ACK"],t.CONNECT=0,t.DISCONNECT=1,t.EVENT=2,t.ACK=3,t.ERROR=4,t.BINARY_EVENT=5,t.BINARY_ACK=6,t.Encoder=i,t.Decoder=o,i.prototype.encode=function(e,n){l("encoding packet %j",e),t.BINARY_EVENT==e.type||t.BINARY_ACK==e.type?function(e,t){d.removeBlobs(e,(function(e){var n=d.deconstructPacket(e),i=r(n.packet),o=n.buffers;o.unshift(i),t(o)}))}(e,n):n([r(e)])},c(o.prototype),o.prototype.add=function(e){var n;if("string"==typeof e)n=function(e){var n={},i=0;if(n.type=Number(e.charAt(0)),null==t.types[n.type])return s();if(t.BINARY_EVENT==n.type||t.BINARY_ACK==n.type){for(var r="";"-"!=e.charAt(++i)&&(r+=e.charAt(i),i!=e.length););if(r!=Number(r)||"-"!=e.charAt(i))throw new Error("Illegal attachments");n.attachments=Number(r)}if("/"==e.charAt(i+1))for(n.nsp="";++i&&","!=(a=e.charAt(i))&&(n.nsp+=a,i!=e.length););else n.nsp="/";var o=e.charAt(i+1);if(""!==o&&Number(o)==o){for(n.id="";++i;){var a;if(null==(a=e.charAt(i))||Number(a)!=a){--i;break}if(n.id+=e.charAt(i),i==e.length)break}n.id=Number(n.id)}return e.charAt(++i)&&(n=function(e,t){try{e.data=u.parse(t)}catch(e){return s()}return e}(n,e.substr(i))),l("decoded %s as %j",e,n),n}(e),t.BINARY_EVENT==n.type||t.BINARY_ACK==n.type?(this.reconstructor=new a(n),0===this.reconstructor.reconPack.attachments&&this.emit("decoded",n)):this.emit("decoded",n);else{if(!h(e)&&!e.base64)throw new Error("Unknown type: "+e);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");(n=this.reconstructor.takeBinaryData(e))&&(this.reconstructor=null,this.emit("decoded",n))}},o.prototype.destroy=function(){this.reconstructor&&this.reconstructor.finishedReconstruction()},a.prototype.takeBinaryData=function(e){if(this.buffers.push(e),this.buffers.length==this.reconPack.attachments){var t=d.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null},a.prototype.finishedReconstruction=function(){this.reconPack=null,this.buffers=[]}},function(e,t,n){function i(){var e;try{e=t.storage.debug}catch(e){}return e}(t=e.exports=n(9)).log=function(){return"object"==typeof console&&alert&&Function.prototype.apply.call(alert,console,arguments)},t.formatArgs=function(){var e=arguments,n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),!n)return e;var i="color: "+this.color;e=[e[0],i,"color: inherit"].concat(Array.prototype.slice.call(e,1));var r=0,o=0;return e[0].replace(/%[a-z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(o=r))})),e.splice(o,0,i),e},t.save=function(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}},t.load=i,t.useColors=function(){return"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31},t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){return JSON.stringify(e)},t.enable(i())},function(e,t,n){(t=e.exports=function(e){function n(){}function o(){var e=o,n=+new Date,a=n-(i||n);e.diff=a,e.prev=i,e.curr=n,i=n,null==e.useColors&&(e.useColors=t.useColors()),null==e.color&&e.useColors&&(e.color=t.colors[r++%t.colors.length]);var s=Array.prototype.slice.call(arguments);s[0]=t.coerce(s[0]),"string"!=typeof s[0]&&(s=["%o"].concat(s));var l=0;s[0]=s[0].replace(/%([a-z%])/g,(function(n,i){if("%%"===n)return n;l++;var r=t.formatters[i];if("function"==typeof r){var o=s[l];n=r.call(e,o),s.splice(l,1),l--}return n})),"function"==typeof t.formatArgs&&(s=t.formatArgs.apply(e,s)),(o.log||t.log||alert.bind(console)).apply(e,s)}n.enabled=!1,o.enabled=!0;var a=t.enabled(e)?o:n;return a.namespace=e,a}).coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){t.enable("")},t.enable=function(e){t.save(e);for(var n=(e||"").split(/[\s,]+/),i=n.length,r=0;r<i;r++)n[r]&&("-"===(e=n[r].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){var n,i;for(n=0,i=t.skips.length;n<i;n++)if(t.skips[n].test(e))return!1;for(n=0,i=t.names.length;n<i;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(10),t.names=[],t.skips=[],t.formatters={};var i,r=0},function(e,t){function n(e,t,n){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}var i=1e3,r=6e4,o=36e5,a=24*o;e.exports=function(e,t){return t=t||{},"string"==typeof e?function(e){if(!((e=""+e).length>1e4)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*n;case"days":case"day":case"d":return n*a;case"hours":case"hour":case"hrs":case"hr":case"h":return n*o;case"minutes":case"minute":case"mins":case"min":case"m":return n*r;case"seconds":case"second":case"secs":case"sec":case"s":return n*i;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n}}}}(e):t.long?function(e){return n(e,a,"day")||n(e,o,"hour")||n(e,r,"minute")||n(e,i,"second")||e+" ms"}(e):function(e){return e>=a?Math.round(e/a)+"d":e>=o?Math.round(e/o)+"h":e>=r?Math.round(e/r)+"m":e>=i?Math.round(e/i)+"s":e+"ms"}(e)}},function(e,t,n){(function(e,n){(function(){function i(e,t){function n(e){if(n[e]!==g)return n[e];var i;if("bug-string-char-index"==e)i="a"!="a"[0];else if("json"==e)i=n("json-stringify")&&n("json-parse");else{var r,a='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==e){var l=t.stringify,c="function"==typeof l&&y;if(c){(r=function(){return 1}).toJSON=r;try{c="0"===l(0)&&"0"===l(new o)&&'""'==l(new s)&&l(_)===g&&l(g)===g&&l()===g&&"1"===l(r)&&"[1]"==l([r])&&"[null]"==l([g])&&"null"==l(null)&&"[null,null,null]"==l([g,_,null])&&l({a:[r,!0,!1,null,"\0\b\n\f\r\t"]})==a&&"1"===l(null,r)&&"[\n 1,\n 2\n]"==l([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==l(new u(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==l(new u(864e13))&&'"-000001-01-01T00:00:00.000Z"'==l(new u(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==l(new u(-1))}catch(e){c=!1}}i=c}if("json-parse"==e){var d=t.parse;if("function"==typeof d)try{if(0===d("0")&&!d(!1)){var h=5==(r=d(a)).a.length&&1===r.a[0];if(h){try{h=!d('"\t"')}catch(e){}if(h)try{h=1!==d("01")}catch(e){}if(h)try{h=1!==d("1.")}catch(e){}}}}catch(e){h=!1}i=h}}return n[e]=!!i}e||(e=a.Object()),t||(t=a.Object());var o=e.Number||a.Number,s=e.String||a.String,l=e.Object||a.Object,u=e.Date||a.Date,c=e.SyntaxError||a.SyntaxError,d=e.TypeError||a.TypeError,h=e.Math||a.Math,f=e.JSON||a.JSON;"object"==typeof f&&f&&(t.stringify=f.stringify,t.parse=f.parse);var p,m,g,v=l.prototype,_=v.toString,y=new u(-0xc782b5b800cec);try{y=-109252==y.getUTCFullYear()&&0===y.getUTCMonth()&&1===y.getUTCDate()&&10==y.getUTCHours()&&37==y.getUTCMinutes()&&6==y.getUTCSeconds()&&708==y.getUTCMilliseconds()}catch(e){}if(!n("json")){var b="[object Function]",w="[object Number]",L="[object String]",M="[object Array]",k=n("bug-string-char-index");if(!y)var x=h.floor,S=[0,31,59,90,120,151,181,212,243,273,304,334],T=function(e,t){return S[t]+365*(e-1970)+x((e-1969+(t=+(t>1)))/4)-x((e-1901+t)/100)+x((e-1601+t)/400)};if((p=v.hasOwnProperty)||(p=function(e){var t,n={};return(n.__proto__=null,n.__proto__={toString:1},n).toString!=_?p=function(e){var t=this.__proto__,n=e in(this.__proto__=null,this);return this.__proto__=t,n}:(t=n.constructor,p=function(e){var n=(this.constructor||t).prototype;return e in this&&!(e in n&&this[e]===n[e])}),n=null,p.call(this,e)}),m=function(e,t){var n,i,o,a=0;for(o in(n=function(){this.valueOf=0}).prototype.valueOf=0,i=new n)p.call(i,o)&&a++;return n=i=null,a?m=2==a?function(e,t){var n,i={},r=_.call(e)==b;for(n in e)r&&"prototype"==n||p.call(i,n)||!(i[n]=1)||!p.call(e,n)||t(n)}:function(e,t){var n,i,r=_.call(e)==b;for(n in e)r&&"prototype"==n||!p.call(e,n)||(i="constructor"===n)||t(n);(i||p.call(e,n="constructor"))&&t(n)}:(i=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],m=function(e,t){var n,o,a=_.call(e)==b,s=!a&&"function"!=typeof e.constructor&&r[typeof e.hasOwnProperty]&&e.hasOwnProperty||p;for(n in e)a&&"prototype"==n||!s.call(e,n)||t(n);for(o=i.length;n=i[--o];s.call(e,n)&&t(n));}),m(e,t)},!n("json-stringify")){var $={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},D=function(e,t){return("000000"+(t||0)).slice(-e)},C=function(e){for(var t='"',n=0,i=e.length,r=!k||i>10,o=r&&(k?e.split(""):e);n<i;n++){var a=e.charCodeAt(n);switch(a){case 8:case 9:case 10:case 12:case 13:case 34:case 92:t+=$[a];break;default:if(a<32){t+="\\u00"+D(2,a.toString(16));break}t+=r?o[n]:e.charAt(n)}}return t+'"'},E=function(e,t,n,i,r,o,a){var s,l,u,c,h,f,v,y,b,k,S,$,A,P,Y,O;try{s=t[e]}catch(e){}if("object"==typeof s&&s)if("[object Date]"!=(l=_.call(s))||p.call(s,"toJSON"))"function"==typeof s.toJSON&&(l!=w&&l!=L&&l!=M||p.call(s,"toJSON"))&&(s=s.toJSON(e));else if(s>-1/0&&s<1/0){if(T){for(h=x(s/864e5),u=x(h/365.2425)+1970-1;T(u+1,0)<=h;u++);for(c=x((h-T(u,0))/30.42);T(u,c+1)<=h;c++);h=1+h-T(u,c),v=x((f=(s%864e5+864e5)%864e5)/36e5)%24,y=x(f/6e4)%60,b=x(f/1e3)%60,k=f%1e3}else u=s.getUTCFullYear(),c=s.getUTCMonth(),h=s.getUTCDate(),v=s.getUTCHours(),y=s.getUTCMinutes(),b=s.getUTCSeconds(),k=s.getUTCMilliseconds();s=(u<=0||u>=1e4?(u<0?"-":"+")+D(6,u<0?-u:u):D(4,u))+"-"+D(2,c+1)+"-"+D(2,h)+"T"+D(2,v)+":"+D(2,y)+":"+D(2,b)+"."+D(3,k)+"Z"}else s=null;if(n&&(s=n.call(t,e,s)),null===s)return"null";if("[object Boolean]"==(l=_.call(s)))return""+s;if(l==w)return s>-1/0&&s<1/0?""+s:"null";if(l==L)return C(""+s);if("object"==typeof s){for(P=a.length;P--;)if(a[P]===s)throw d();if(a.push(s),S=[],Y=o,o+=r,l==M){for(A=0,P=s.length;A<P;A++)$=E(A,s,n,i,r,o,a),S.push($===g?"null":$);O=S.length?r?"[\n"+o+S.join(",\n"+o)+"\n"+Y+"]":"["+S.join(",")+"]":"[]"}else m(i||s,(function(e){var t=E(e,s,n,i,r,o,a);t!==g&&S.push(C(e)+":"+(r?" ":"")+t)})),O=S.length?r?"{\n"+o+S.join(",\n"+o)+"\n"+Y+"}":"{"+S.join(",")+"}":"{}";return a.pop(),O}};t.stringify=function(e,t,n){var i,o,a,s;if(r[typeof t]&&t)if((s=_.call(t))==b)o=t;else if(s==M){a={};for(var l,u=0,c=t.length;u<c;l=t[u++],((s=_.call(l))==L||s==w)&&(a[l]=1));}if(n)if((s=_.call(n))==w){if((n-=n%1)>0)for(i="",n>10&&(n=10);i.length<n;i+=" ");}else s==L&&(i=n.length<=10?n:n.slice(0,10));return E("",((l={})[""]=e,l),o,a,i,"",[])}}if(!n("json-parse")){var A,P,Y=s.fromCharCode,O={92:"\\",34:'"',47:"/",98:"\b",116:"\t",110:"\n",102:"\f",114:"\r"},I=function(){throw A=P=null,c()},j=function(){for(var e,t,n,i,r,o=P,a=o.length;A<a;)switch(r=o.charCodeAt(A)){case 9:case 10:case 13:case 32:A++;break;case 123:case 125:case 91:case 93:case 58:case 44:return e=k?o.charAt(A):o[A],A++,e;case 34:for(e="@",A++;A<a;)if((r=o.charCodeAt(A))<32)I();else if(92==r)switch(r=o.charCodeAt(++A)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:e+=O[r],A++;break;case 117:for(t=++A,n=A+4;A<n;A++)(r=o.charCodeAt(A))>=48&&r<=57||r>=97&&r<=102||r>=65&&r<=70||I();e+=Y("0x"+o.slice(t,A));break;default:I()}else{if(34==r)break;for(r=o.charCodeAt(A),t=A;r>=32&&92!=r&&34!=r;)r=o.charCodeAt(++A);e+=o.slice(t,A)}if(34==o.charCodeAt(A))return A++,e;I();default:if(t=A,45==r&&(i=!0,r=o.charCodeAt(++A)),r>=48&&r<=57){for(48==r&&(r=o.charCodeAt(A+1))>=48&&r<=57&&I(),i=!1;A<a&&(r=o.charCodeAt(A))>=48&&r<=57;A++);if(46==o.charCodeAt(A)){for(n=++A;n<a&&(r=o.charCodeAt(n))>=48&&r<=57;n++);n==A&&I(),A=n}if(101==(r=o.charCodeAt(A))||69==r){for(43!=(r=o.charCodeAt(++A))&&45!=r||A++,n=A;n<a&&(r=o.charCodeAt(n))>=48&&r<=57;n++);n==A&&I(),A=n}return+o.slice(t,A)}if(i&&I(),"true"==o.slice(A,A+4))return A+=4,!0;if("false"==o.slice(A,A+5))return A+=5,!1;if("null"==o.slice(A,A+4))return A+=4,null;I()}return"$"},H=function(e){var t,n;if("$"==e&&I(),"string"==typeof e){if("@"==(k?e.charAt(0):e[0]))return e.slice(1);if("["==e){for(t=[];"]"!=(e=j());n||(n=!0))n&&(","==e?"]"==(e=j())&&I():I()),","==e&&I(),t.push(H(e));return t}if("{"==e){for(t={};"}"!=(e=j());n||(n=!0))n&&(","==e?"}"==(e=j())&&I():I()),","!=e&&"string"==typeof e&&"@"==(k?e.charAt(0):e[0])&&":"==j()||I(),t[e.slice(1)]=H(j());return t}I()}return e},N=function(e,t,n){var i=B(e,t,n);i===g?delete e[t]:e[t]=i},B=function(e,t,n){var i,r=e[t];if("object"==typeof r&&r)if(_.call(r)==M)for(i=r.length;i--;)N(r,i,n);else m(r,(function(e){N(r,e,n)}));return n.call(e,t,r)};t.parse=function(e,t){var n,i;return A=0,P=""+e,n=H(j()),"$"!=j()&&I(),A=P=null,t&&_.call(t)==b?B(((i={})[""]=n,i),"",t):n}}}return t.runInContext=i,t}var r={function:!0,object:!0},o=r[typeof t]&&t&&!t.nodeType&&t,a=r[typeof window]&&window||this,s=o&&r[typeof e]&&e&&!e.nodeType&&"object"==typeof n&&n;if(!s||s.global!==s&&s.window!==s&&s.self!==s||(a=s),o)i(a,o);else{var l=a.JSON,u=a.JSON3,c=!1,d=i(a,a.JSON3={noConflict:function(){return c||(c=!0,a.JSON=l,a.JSON3=u,l=u=null),d}});a.JSON={parse:d.parse,stringify:d.stringify}}}).call(this)}).call(t,n(12)(e),function(){return this}())},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t){function n(e){if(e)return function(e){for(var t in n.prototype)e[t]=n.prototype[t];return e}(e)}e.exports=n,n.prototype.on=n.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},n.prototype.once=function(e,t){function n(){i.off(e,n),t.apply(this,arguments)}var i=this;return this._callbacks=this._callbacks||{},n.fn=t,this.on(e,n),this},n.prototype.off=n.prototype.removeListener=n.prototype.removeAllListeners=n.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks[e];if(!n)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var i,r=0;r<n.length;r++)if((i=n[r])===t||i.fn===t){n.splice(r,1);break}return this},n.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=[].slice.call(arguments,1),n=this._callbacks[e];if(n)for(var i=0,r=(n=n.slice(0)).length;i<r;++i)n[i].apply(this,t);return this},n.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks[e]||[]},n.prototype.hasListeners=function(e){return!!this.listeners(e).length}},function(e,t,n){(function(e){var i=n(15),r=n(16);t.deconstructPacket=function(e){var t=[],n=e.data,o=e;return o.data=function e(n){if(!n)return n;if(r(n)){var o={_placeholder:!0,num:t.length};return t.push(n),o}if(i(n)){for(var a=new Array(n.length),s=0;s<n.length;s++)a[s]=e(n[s]);return a}if("object"==typeof n&&!(n instanceof Date)){for(var l in a={},n)a[l]=e(n[l]);return a}return n}(n),o.attachments=t.length,{packet:o,buffers:t}},t.reconstructPacket=function(e,t){return e.data=function e(n){if(n&&n._placeholder)return t[n.num];if(i(n)){for(var r=0;r<n.length;r++)n[r]=e(n[r]);return n}if(n&&"object"==typeof n){for(var o in n)n[o]=e(n[o]);return n}return n}(e.data),e.attachments=void 0,e},t.removeBlobs=function(t,n){var o=0,a=t;(function t(s,l,u){if(!s)return s;if(e.Blob&&s instanceof Blob||e.File&&s instanceof File){o++;var c=new FileReader;c.onload=function(){u?u[l]=this.result:a=this.result,--o||n(a)},c.readAsArrayBuffer(s)}else if(i(s))for(var d=0;d<s.length;d++)t(s[d],d,s);else if(s&&"object"==typeof s&&!r(s))for(var h in s)t(s[h],h,s)})(a),o||n(a)}}).call(t,function(){return this}())},function(e,t){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},function(e,t){(function(t){e.exports=function(e){return t.Buffer&&t.Buffer.isBuffer(e)||t.ArrayBuffer&&e instanceof ArrayBuffer}}).call(t,function(){return this}())},function(e,t,n){"use strict";function i(e,t){return this instanceof i?(e&&"object"===(void 0===e?"undefined":r(e))&&(t=e,e=void 0),(t=t||{}).path=t.path||"/socket.io",this.nsps={},this.subs=[],this.opts=t,this.reconnection(!1!==t.reconnection),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(t.randomizationFactor||.5),this.backoff=new f({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==t.timeout?2e4:t.timeout),this.readyState="closed",this.uri=e,this.connecting=[],this.lastPing=null,this.encoding=!1,this.packetBuffer=[],this.encoder=new l.Encoder,this.decoder=new l.Decoder,this.autoConnect=!1!==t.autoConnect,void(this.autoConnect&&this.open())):new i(e,t)}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(18),a=n(44),s=n(35),l=n(7),u=n(46),c=n(47),d=n(3)("socket.io-client:manager"),h=n(42),f=n(48),p=Object.prototype.hasOwnProperty;e.exports=i,i.prototype.emitAll=function(){for(var e in this.emit.apply(this,arguments),this.nsps)p.call(this.nsps,e)&&this.nsps[e].emit.apply(this.nsps[e],arguments)},i.prototype.updateSocketIds=function(){for(var e in this.nsps)p.call(this.nsps,e)&&(this.nsps[e].id=this.engine.id)},s(i.prototype),i.prototype.reconnection=function(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection},i.prototype.reconnectionAttempts=function(e){return arguments.length?(this._reconnectionAttempts=e,this):this._reconnectionAttempts},i.prototype.reconnectionDelay=function(e){return arguments.length?(this._reconnectionDelay=e,this.backoff&&this.backoff.setMin(e),this):this._reconnectionDelay},i.prototype.randomizationFactor=function(e){return arguments.length?(this._randomizationFactor=e,this.backoff&&this.backoff.setJitter(e),this):this._randomizationFactor},i.prototype.reconnectionDelayMax=function(e){return arguments.length?(this._reconnectionDelayMax=e,this.backoff&&this.backoff.setMax(e),this):this._reconnectionDelayMax},i.prototype.timeout=function(e){return arguments.length?(this._timeout=e,this):this._timeout},i.prototype.maybeReconnectOnOpen=function(){!this.reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()},i.prototype.open=i.prototype.connect=function(e,t){if(d("readyState %s",this.readyState),~this.readyState.indexOf("open"))return this;d("opening %s",this.uri),this.engine=o(this.uri,this.opts);var n=this.engine,i=this;this.readyState="opening",this.skipReconnect=!1;var r=u(n,"open",(function(){i.onopen(),e&&e()})),a=u(n,"error",(function(t){if(d("connect_error"),i.cleanup(),i.readyState="closed",i.emitAll("connect_error",t),e){var n=new Error("Connection error");n.data=t,e(n)}else i.maybeReconnectOnOpen()}));if(!1!==this._timeout){var s=this._timeout;d("connect attempt will timeout after %d",s);var l=setTimeout((function(){d("connect attempt timed out after %d",s),r.destroy(),n.close(),n.emit("error","timeout"),i.emitAll("connect_timeout",s)}),s);this.subs.push({destroy:function(){clearTimeout(l)}})}return this.subs.push(r),this.subs.push(a),this},i.prototype.onopen=function(){d("open"),this.cleanup(),this.readyState="open",this.emit("open");var e=this.engine;this.subs.push(u(e,"data",c(this,"ondata"))),this.subs.push(u(e,"ping",c(this,"onping"))),this.subs.push(u(e,"pong",c(this,"onpong"))),this.subs.push(u(e,"error",c(this,"onerror"))),this.subs.push(u(e,"close",c(this,"onclose"))),this.subs.push(u(this.decoder,"decoded",c(this,"ondecoded")))},i.prototype.onping=function(){this.lastPing=new Date,this.emitAll("ping")},i.prototype.onpong=function(){this.emitAll("pong",new Date-this.lastPing)},i.prototype.ondata=function(e){this.decoder.add(e)},i.prototype.ondecoded=function(e){this.emit("packet",e)},i.prototype.onerror=function(e){d("error",e),this.emitAll("error",e)},i.prototype.socket=function(e,t){function n(){~h(r.connecting,i)||r.connecting.push(i)}var i=this.nsps[e];if(!i){i=new a(this,e,t),this.nsps[e]=i;var r=this;i.on("connecting",n),i.on("connect",(function(){i.id=r.engine.id})),this.autoConnect&&n()}return i},i.prototype.destroy=function(e){var t=h(this.connecting,e);~t&&this.connecting.splice(t,1),this.connecting.length||this.close()},i.prototype.packet=function(e){d("writing packet %j",e);var t=this;e.query&&0===e.type&&(e.nsp+="?"+e.query),t.encoding?t.packetBuffer.push(e):(t.encoding=!0,this.encoder.encode(e,(function(n){for(var i=0;i<n.length;i++)t.engine.write(n[i],e.options);t.encoding=!1,t.processPacketQueue()})))},i.prototype.processPacketQueue=function(){if(this.packetBuffer.length>0&&!this.encoding){var e=this.packetBuffer.shift();this.packet(e)}},i.prototype.cleanup=function(){d("cleanup");for(var e=this.subs.length,t=0;t<e;t++)this.subs.shift().destroy();this.packetBuffer=[],this.encoding=!1,this.lastPing=null,this.decoder.destroy()},i.prototype.close=i.prototype.disconnect=function(){d("disconnect"),this.skipReconnect=!0,this.reconnecting=!1,"opening"===this.readyState&&this.cleanup(),this.backoff.reset(),this.readyState="closed",this.engine&&this.engine.close()},i.prototype.onclose=function(e){d("onclose"),this.cleanup(),this.backoff.reset(),this.readyState="closed",this.emit("close",e),this._reconnection&&!this.skipReconnect&&this.reconnect()},i.prototype.reconnect=function(){if(this.reconnecting||this.skipReconnect)return this;var e=this;if(this.backoff.attempts>=this._reconnectionAttempts)d("reconnect failed"),this.backoff.reset(),this.emitAll("reconnect_failed"),this.reconnecting=!1;else{var t=this.backoff.duration();d("will wait %dms before reconnect attempt",t),this.reconnecting=!0;var n=setTimeout((function(){e.skipReconnect||(d("attempting reconnect"),e.emitAll("reconnect_attempt",e.backoff.attempts),e.emitAll("reconnecting",e.backoff.attempts),e.skipReconnect||e.open((function(t){t?(d("reconnect attempt error"),e.reconnecting=!1,e.reconnect(),e.emitAll("reconnect_error",t.data)):(d("reconnect success"),e.onreconnect())})))}),t);this.subs.push({destroy:function(){clearTimeout(n)}})}},i.prototype.onreconnect=function(){var e=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll("reconnect",e)}},function(e,t,n){e.exports=n(19)},function(e,t,n){e.exports=n(20),e.exports.parser=n(27)},function(e,t,n){(function(t){function i(e,n){if(!(this instanceof i))return new i(e,n);n=n||{},e&&"object"==typeof e&&(n=e,e=null),e?(e=u(e),n.hostname=e.host,n.secure="https"===e.protocol||"wss"===e.protocol,n.port=e.port,e.query&&(n.query=e.query)):n.host&&(n.hostname=u(n.host).host),this.secure=null!=n.secure?n.secure:t.location&&"https:"===location.protocol,n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.agent=n.agent||!1,this.hostname=n.hostname||(t.location?location.hostname:"localhost"),this.port=n.port||(t.location&&location.port?location.port:this.secure?443:80),this.query=n.query||{},"string"==typeof this.query&&(this.query=d.decode(this.query)),this.upgrade=!1!==n.upgrade,this.path=(n.path||"/engine.io").replace(/\/$/,"")+"/",this.forceJSONP=!!n.forceJSONP,this.jsonp=!1!==n.jsonp,this.forceBase64=!!n.forceBase64,this.enablesXDR=!!n.enablesXDR,this.timestampParam=n.timestampParam||"t",this.timestampRequests=n.timestampRequests,this.transports=n.transports||["polling","websocket"],this.readyState="",this.writeBuffer=[],this.prevBufferLen=0,this.policyPort=n.policyPort||843,this.rememberUpgrade=n.rememberUpgrade||!1,this.binaryType=null,this.onlyBinaryUpgrades=n.onlyBinaryUpgrades,this.perMessageDeflate=!1!==n.perMessageDeflate&&(n.perMessageDeflate||{}),!0===this.perMessageDeflate&&(this.perMessageDeflate={}),this.perMessageDeflate&&null==this.perMessageDeflate.threshold&&(this.perMessageDeflate.threshold=1024),this.pfx=n.pfx||null,this.key=n.key||null,this.passphrase=n.passphrase||null,this.cert=n.cert||null,this.ca=n.ca||null,this.ciphers=n.ciphers||null,this.rejectUnauthorized=void 0===n.rejectUnauthorized?null:n.rejectUnauthorized,this.forceNode=!!n.forceNode;var r="object"==typeof t&&t;r.global===r&&(n.extraHeaders&&Object.keys(n.extraHeaders).length>0&&(this.extraHeaders=n.extraHeaders),n.localAddress&&(this.localAddress=n.localAddress)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingIntervalTimer=null,this.pingTimeoutTimer=null,this.open()}var r=n(21),o=n(35),a=n(3)("engine.io-client:socket"),s=n(42),l=n(27),u=n(2),c=n(43),d=n(36);e.exports=i,i.priorWebsocketSuccess=!1,o(i.prototype),i.protocol=l.protocol,i.Socket=i,i.Transport=n(26),i.transports=n(21),i.parser=n(27),i.prototype.createTransport=function(e){a('creating transport "%s"',e);var t=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}(this.query);return t.EIO=l.protocol,t.transport=e,this.id&&(t.sid=this.id),new r[e]({agent:this.agent,hostname:this.hostname,port:this.port,secure:this.secure,path:this.path,query:t,forceJSONP:this.forceJSONP,jsonp:this.jsonp,forceBase64:this.forceBase64,enablesXDR:this.enablesXDR,timestampRequests:this.timestampRequests,timestampParam:this.timestampParam,policyPort:this.policyPort,socket:this,pfx:this.pfx,key:this.key,passphrase:this.passphrase,cert:this.cert,ca:this.ca,ciphers:this.ciphers,rejectUnauthorized:this.rejectUnauthorized,perMessageDeflate:this.perMessageDeflate,extraHeaders:this.extraHeaders,forceNode:this.forceNode,localAddress:this.localAddress})},i.prototype.open=function(){var e;if(this.rememberUpgrade&&i.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length){var t=this;return void setTimeout((function(){t.emit("error","No transports available")}),0)}e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(e){return this.transports.shift(),void this.open()}e.open(),this.setTransport(e)},i.prototype.setTransport=function(e){a("setting transport %s",e.name);var t=this;this.transport&&(a("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=e,e.on("drain",(function(){t.onDrain()})).on("packet",(function(e){t.onPacket(e)})).on("error",(function(e){t.onError(e)})).on("close",(function(){t.onClose("transport close")}))},i.prototype.probe=function(e){function t(){if(h.onlyBinaryUpgrades){var t=!this.supportsBinary&&h.transport.supportsBinary;d=d||t}d||(a('probe transport "%s" opened',e),c.send([{type:"ping",data:"probe"}]),c.once("packet",(function(t){if(!d)if("pong"===t.type&&"probe"===t.data){if(a('probe transport "%s" pong',e),h.upgrading=!0,h.emit("upgrading",c),!c)return;i.priorWebsocketSuccess="websocket"===c.name,a('pausing current transport "%s"',h.transport.name),h.transport.pause((function(){d||"closed"!==h.readyState&&(a("changing transport and sending upgrade packet"),u(),h.setTransport(c),c.send([{type:"upgrade"}]),h.emit("upgrade",c),c=null,h.upgrading=!1,h.flush())}))}else{a('probe transport "%s" failed',e);var n=new Error("probe error");n.transport=c.name,h.emit("upgradeError",n)}})))}function n(){d||(d=!0,u(),c.close(),c=null)}function r(t){var i=new Error("probe error: "+t);i.transport=c.name,n(),a('probe transport "%s" failed because of error: %s',e,t),h.emit("upgradeError",i)}function o(){r("transport closed")}function s(){r("socket closed")}function l(e){c&&e.name!==c.name&&(a('"%s" works - aborting "%s"',e.name,c.name),n())}function u(){c.removeListener("open",t),c.removeListener("error",r),c.removeListener("close",o),h.removeListener("close",s),h.removeListener("upgrading",l)}a('probing transport "%s"',e);var c=this.createTransport(e,{probe:1}),d=!1,h=this;i.priorWebsocketSuccess=!1,c.once("open",t),c.once("error",r),c.once("close",o),this.once("close",s),this.once("upgrading",l),c.open()},i.prototype.onOpen=function(){if(a("socket open"),this.readyState="open",i.priorWebsocketSuccess="websocket"===this.transport.name,this.emit("open"),this.flush(),"open"===this.readyState&&this.upgrade&&this.transport.pause){a("starting upgrade probes");for(var e=0,t=this.upgrades.length;e<t;e++)this.probe(this.upgrades[e])}},i.prototype.onPacket=function(e){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(a('socket receive: type "%s", data "%s"',e.type,e.data),this.emit("packet",e),this.emit("heartbeat"),e.type){case"open":this.onHandshake(c(e.data));break;case"pong":this.setPing(),this.emit("pong");break;case"error":var t=new Error("server error");t.code=e.data,this.onError(t);break;case"message":this.emit("data",e.data),this.emit("message",e.data)}else a('packet received with socket readyState "%s"',this.readyState)},i.prototype.onHandshake=function(e){this.emit("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this.upgrades=this.filterUpgrades(e.upgrades),this.pingInterval=e.pingInterval,this.pingTimeout=e.pingTimeout,this.onOpen(),"closed"!==this.readyState&&(this.setPing(),this.removeListener("heartbeat",this.onHeartbeat),this.on("heartbeat",this.onHeartbeat))},i.prototype.onHeartbeat=function(e){clearTimeout(this.pingTimeoutTimer);var t=this;t.pingTimeoutTimer=setTimeout((function(){"closed"!==t.readyState&&t.onClose("ping timeout")}),e||t.pingInterval+t.pingTimeout)},i.prototype.setPing=function(){var e=this;clearTimeout(e.pingIntervalTimer),e.pingIntervalTimer=setTimeout((function(){a("writing ping packet - expecting pong within %sms",e.pingTimeout),e.ping(),e.onHeartbeat(e.pingTimeout)}),e.pingInterval)},i.prototype.ping=function(){var e=this;this.sendPacket("ping",(function(){e.emit("ping")}))},i.prototype.onDrain=function(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emit("drain"):this.flush()},i.prototype.flush=function(){"closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length&&(a("flushing %d packets in socket",this.writeBuffer.length),this.transport.send(this.writeBuffer),this.prevBufferLen=this.writeBuffer.length,this.emit("flush"))},i.prototype.write=i.prototype.send=function(e,t,n){return this.sendPacket("message",e,t,n),this},i.prototype.sendPacket=function(e,t,n,i){if("function"==typeof t&&(i=t,t=void 0),"function"==typeof n&&(i=n,n=null),"closing"!==this.readyState&&"closed"!==this.readyState){(n=n||{}).compress=!1!==n.compress;var r={type:e,data:t,options:n};this.emit("packetCreate",r),this.writeBuffer.push(r),i&&this.once("flush",i),this.flush()}},i.prototype.close=function(){function e(){i.onClose("forced close"),a("socket closing - telling transport to close"),i.transport.close()}function t(){i.removeListener("upgrade",t),i.removeListener("upgradeError",t),e()}function n(){i.once("upgrade",t),i.once("upgradeError",t)}if("opening"===this.readyState||"open"===this.readyState){this.readyState="closing";var i=this;this.writeBuffer.length?this.once("drain",(function(){this.upgrading?n():e()})):this.upgrading?n():e()}return this},i.prototype.onError=function(e){a("socket error %j",e),i.priorWebsocketSuccess=!1,this.emit("error",e),this.onClose("transport error",e)},i.prototype.onClose=function(e,t){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(a('socket close with reason: "%s"',e),clearTimeout(this.pingIntervalTimer),clearTimeout(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),this.readyState="closed",this.id=null,this.emit("close",e,t),this.writeBuffer=[],this.prevBufferLen=0)},i.prototype.filterUpgrades=function(e){for(var t=[],n=0,i=e.length;n<i;n++)~s(this.transports,e[n])&&t.push(e[n]);return t}}).call(t,function(){return this}())},function(e,t,n){(function(e){var i=n(22),r=n(24),o=n(39),a=n(40);t.polling=function(t){var n=!1,a=!1,s=!1!==t.jsonp;if(e.location){var l="https:"===location.protocol,u=location.port;u||(u=l?443:80),n=t.hostname!==location.hostname||u!==t.port,a=t.secure!==l}if(t.xdomain=n,t.xscheme=a,"open"in new i(t)&&!t.forceJSONP)return new r(t);if(!s)throw new Error("JSONP disabled");return new o(t)},t.websocket=a}).call(t,function(){return this}())},function(e,t,n){(function(t){var i=n(23);e.exports=function(e){var n=e.xdomain,r=e.xscheme,o=e.enablesXDR;try{if("undefined"!=typeof XMLHttpRequest&&(!n||i))return new XMLHttpRequest}catch(e){}try{if("undefined"!=typeof XDomainRequest&&!r&&o)return new XDomainRequest}catch(e){}if(!n)try{return new(t[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(e){}}}).call(t,function(){return this}())},function(e,t){try{e.exports="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(t){e.exports=!1}},function(e,t,n){(function(t){function i(){}function r(e){if(l.call(this,e),this.requestTimeout=e.requestTimeout,t.location){var n="https:"===location.protocol,i=location.port;i||(i=n?443:80),this.xd=e.hostname!==t.location.hostname||i!==e.port,this.xs=e.secure!==n}else this.extraHeaders=e.extraHeaders}function o(e){this.method=e.method||"GET",this.uri=e.uri,this.xd=!!e.xd,this.xs=!!e.xs,this.async=!1!==e.async,this.data=void 0!==e.data?e.data:null,this.agent=e.agent,this.isBinary=e.isBinary,this.supportsBinary=e.supportsBinary,this.enablesXDR=e.enablesXDR,this.requestTimeout=e.requestTimeout,this.pfx=e.pfx,this.key=e.key,this.passphrase=e.passphrase,this.cert=e.cert,this.ca=e.ca,this.ciphers=e.ciphers,this.rejectUnauthorized=e.rejectUnauthorized,this.extraHeaders=e.extraHeaders,this.create()}function a(){for(var e in o.requests)o.requests.hasOwnProperty(e)&&o.requests[e].abort()}var s=n(22),l=n(25),u=n(35),c=n(37),d=n(3)("engine.io-client:polling-xhr");e.exports=r,e.exports.Request=o,c(r,l),r.prototype.supportsBinary=!0,r.prototype.request=function(e){return(e=e||{}).uri=this.uri(),e.xd=this.xd,e.xs=this.xs,e.agent=this.agent||!1,e.supportsBinary=this.supportsBinary,e.enablesXDR=this.enablesXDR,e.pfx=this.pfx,e.key=this.key,e.passphrase=this.passphrase,e.cert=this.cert,e.ca=this.ca,e.ciphers=this.ciphers,e.rejectUnauthorized=this.rejectUnauthorized,e.requestTimeout=this.requestTimeout,e.extraHeaders=this.extraHeaders,new o(e)},r.prototype.doWrite=function(e,t){var n="string"!=typeof e&&void 0!==e,i=this.request({method:"POST",data:e,isBinary:n}),r=this;i.on("success",t),i.on("error",(function(e){r.onError("xhr post error",e)})),this.sendXhr=i},r.prototype.doPoll=function(){d("xhr poll");var e=this.request(),t=this;e.on("data",(function(e){t.onData(e)})),e.on("error",(function(e){t.onError("xhr poll error",e)})),this.pollXhr=e},u(o.prototype),o.prototype.create=function(){var e={agent:this.agent,xdomain:this.xd,xscheme:this.xs,enablesXDR:this.enablesXDR};e.pfx=this.pfx,e.key=this.key,e.passphrase=this.passphrase,e.cert=this.cert,e.ca=this.ca,e.ciphers=this.ciphers,e.rejectUnauthorized=this.rejectUnauthorized;var n=this.xhr=new s(e),i=this;try{d("xhr open %s: %s",this.method,this.uri),n.open(this.method,this.uri,this.async);try{if(this.extraHeaders)for(var r in n.setDisableHeaderCheck(!0),this.extraHeaders)this.extraHeaders.hasOwnProperty(r)&&n.setRequestHeader(r,this.extraHeaders[r])}catch(e){}if(this.supportsBinary&&(n.responseType="arraybuffer"),"POST"===this.method)try{this.isBinary?n.setRequestHeader("Content-type","application/octet-stream"):n.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(e){}try{n.setRequestHeader("Accept","*/*")}catch(e){}"withCredentials"in n&&(n.withCredentials=!0),this.requestTimeout&&(n.timeout=this.requestTimeout),this.hasXDR()?(n.onload=function(){i.onLoad()},n.onerror=function(){i.onError(n.responseText)}):n.onreadystatechange=function(){4===n.readyState&&(200===n.status||1223===n.status?i.onLoad():setTimeout((function(){i.onError(n.status)}),0))},d("xhr data %s",this.data),n.send(this.data)}catch(e){return void setTimeout((function(){i.onError(e)}),0)}t.document&&(this.index=o.requestsCount++,o.requests[this.index]=this)},o.prototype.onSuccess=function(){this.emit("success"),this.cleanup()},o.prototype.onData=function(e){this.emit("data",e),this.onSuccess()},o.prototype.onError=function(e){this.emit("error",e),this.cleanup(!0)},o.prototype.cleanup=function(e){if(void 0!==this.xhr&&null!==this.xhr){if(this.hasXDR()?this.xhr.onload=this.xhr.onerror=i:this.xhr.onreadystatechange=i,e)try{this.xhr.abort()}catch(e){}t.document&&delete o.requests[this.index],this.xhr=null}},o.prototype.onLoad=function(){var e;try{var t;try{t=this.xhr.getResponseHeader("Content-Type").split(";")[0]}catch(e){}if("application/octet-stream"===t)e=this.xhr.response||this.xhr.responseText;else if(this.supportsBinary)try{e=String.fromCharCode.apply(null,new Uint8Array(this.xhr.response))}catch(t){for(var n=new Uint8Array(this.xhr.response),i=[],r=0,o=n.length;r<o;r++)i.push(n[r]);e=String.fromCharCode.apply(null,i)}else e=this.xhr.responseText}catch(e){this.onError(e)}null!=e&&this.onData(e)},o.prototype.hasXDR=function(){return void 0!==t.XDomainRequest&&!this.xs&&this.enablesXDR},o.prototype.abort=function(){this.cleanup()},o.requestsCount=0,o.requests={},t.document&&(t.attachEvent?t.attachEvent("onunload",a):t.addEventListener&&t.addEventListener("beforeunload",a,!1))}).call(t,function(){return this}())},function(e,t,n){function i(e){var t=e&&e.forceBase64;c&&!t||(this.supportsBinary=!1),r.call(this,e)}var r=n(26),o=n(36),a=n(27),s=n(37),l=n(38),u=n(3)("engine.io-client:polling");e.exports=i;var c=null!=new(n(22))({xdomain:!1}).responseType;s(i,r),i.prototype.name="polling",i.prototype.doOpen=function(){this.poll()},i.prototype.pause=function(e){function t(){u("paused"),n.readyState="paused",e()}var n=this;if(this.readyState="pausing",this.polling||!this.writable){var i=0;this.polling&&(u("we are currently polling - waiting to pause"),i++,this.once("pollComplete",(function(){u("pre-pause polling complete"),--i||t()}))),this.writable||(u("we are currently writing - waiting to pause"),i++,this.once("drain",(function(){u("pre-pause writing complete"),--i||t()})))}else t()},i.prototype.poll=function(){u("polling"),this.polling=!0,this.doPoll(),this.emit("poll")},i.prototype.onData=function(e){var t=this;u("polling got data %s",e),a.decodePayload(e,this.socket.binaryType,(function(e,n,i){return"opening"===t.readyState&&t.onOpen(),"close"===e.type?(t.onClose(),!1):void t.onPacket(e)})),"closed"!==this.readyState&&(this.polling=!1,this.emit("pollComplete"),"open"===this.readyState?this.poll():u('ignoring poll - transport state "%s"',this.readyState))},i.prototype.doClose=function(){function e(){u("writing close packet"),t.write([{type:"close"}])}var t=this;"open"===this.readyState?(u("transport open - closing"),e()):(u("transport not open - deferring close"),this.once("open",e))},i.prototype.write=function(e){var t=this;this.writable=!1;var n=function(){t.writable=!0,t.emit("drain")};a.encodePayload(e,this.supportsBinary,(function(e){t.doWrite(e,n)}))},i.prototype.uri=function(){var e=this.query||{},t=this.secure?"https":"http",n="";return!1!==this.timestampRequests&&(e[this.timestampParam]=l()),this.supportsBinary||e.sid||(e.b64=1),e=o.encode(e),this.port&&("https"===t&&443!==Number(this.port)||"http"===t&&80!==Number(this.port))&&(n=":"+this.port),e.length&&(e="?"+e),t+"://"+(-1!==this.hostname.indexOf(":")?"["+this.hostname+"]":this.hostname)+n+this.path+e}},function(e,t,n){function i(e){this.path=e.path,this.hostname=e.hostname,this.port=e.port,this.secure=e.secure,this.query=e.query,this.timestampParam=e.timestampParam,this.timestampRequests=e.timestampRequests,this.readyState="",this.agent=e.agent||!1,this.socket=e.socket,this.enablesXDR=e.enablesXDR,this.pfx=e.pfx,this.key=e.key,this.passphrase=e.passphrase,this.cert=e.cert,this.ca=e.ca,this.ciphers=e.ciphers,this.rejectUnauthorized=e.rejectUnauthorized,this.forceNode=e.forceNode,this.extraHeaders=e.extraHeaders,this.localAddress=e.localAddress}var r=n(27),o=n(35);e.exports=i,o(i.prototype),i.prototype.onError=function(e,t){var n=new Error(e);return n.type="TransportError",n.description=t,this.emit("error",n),this},i.prototype.open=function(){return"closed"!==this.readyState&&""!==this.readyState||(this.readyState="opening",this.doOpen()),this},i.prototype.close=function(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this},i.prototype.send=function(e){if("open"!==this.readyState)throw new Error("Transport not open");this.write(e)},i.prototype.onOpen=function(){this.readyState="open",this.writable=!0,this.emit("open")},i.prototype.onData=function(e){var t=r.decodePacket(e,this.socket.binaryType);this.onPacket(t)},i.prototype.onPacket=function(e){this.emit("packet",e)},i.prototype.onClose=function(){this.readyState="closed",this.emit("close")}},function(e,t,n){(function(e){function i(e,n){return n("b"+t.packets[e.type]+e.data.data)}function r(e,n,i){if(!n)return t.encodeBase64Packet(e,i);var r=e.data,o=new Uint8Array(r),a=new Uint8Array(1+r.byteLength);a[0]=g[e.type];for(var s=0;s<o.length;s++)a[s+1]=o[s];return i(a.buffer)}function o(e,n,i){if(!n)return t.encodeBase64Packet(e,i);if(m)return function(e,n,i){if(!n)return t.encodeBase64Packet(e,i);var r=new FileReader;return r.onload=function(){e.data=r.result,t.encodePacket(e,n,!0,i)},r.readAsArrayBuffer(e.data)}(e,n,i);var r=new Uint8Array(1);return r[0]=g[e.type],i(new y([r.buffer,e.data]))}function a(e,t,n){for(var i=new Array(e.length),r=d(e.length,n),o=function(e,n,r){t(n,(function(t,n){i[e]=n,r(t,i)}))},a=0;a<e.length;a++)o(a,e[a],r)}var s,l=n(28),u=n(29),c=n(30),d=n(31),h=n(32);e&&e.ArrayBuffer&&(s=n(33));var f="undefined"!=typeof navigator&&/Android/i.test(navigator.userAgent),p="undefined"!=typeof navigator&&/PhantomJS/i.test(navigator.userAgent),m=f||p;t.protocol=3;var g=t.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6},v=l(g),_={type:"error",data:"parser error"},y=n(34);t.encodePacket=function(t,n,a,s){"function"==typeof n&&(s=n,n=!1),"function"==typeof a&&(s=a,a=null);var l=void 0===t.data?void 0:t.data.buffer||t.data;if(e.ArrayBuffer&&l instanceof ArrayBuffer)return r(t,n,s);if(y&&l instanceof e.Blob)return o(t,n,s);if(l&&l.base64)return i(t,s);var u=g[t.type];return void 0!==t.data&&(u+=a?h.encode(String(t.data)):String(t.data)),s(""+u)},t.encodeBase64Packet=function(n,i){var r,o="b"+t.packets[n.type];if(y&&n.data instanceof e.Blob){var a=new FileReader;return a.onload=function(){var e=a.result.split(",")[1];i(o+e)},a.readAsDataURL(n.data)}try{r=String.fromCharCode.apply(null,new Uint8Array(n.data))}catch(e){for(var s=new Uint8Array(n.data),l=new Array(s.length),u=0;u<s.length;u++)l[u]=s[u];r=String.fromCharCode.apply(null,l)}return o+=e.btoa(r),i(o)},t.decodePacket=function(e,n,i){if(void 0===e)return _;if("string"==typeof e){if("b"==e.charAt(0))return t.decodeBase64Packet(e.substr(1),n);if(i&&!1===(e=function(e){try{e=h.decode(e)}catch(e){return!1}return e}(e)))return _;var r=e.charAt(0);return Number(r)==r&&v[r]?e.length>1?{type:v[r],data:e.substring(1)}:{type:v[r]}:_}r=new Uint8Array(e)[0];var o=c(e,1);return y&&"blob"===n&&(o=new y([o])),{type:v[r],data:o}},t.decodeBase64Packet=function(e,t){var n=v[e.charAt(0)];if(!s)return{type:n,data:{base64:!0,data:e.substr(1)}};var i=s.decode(e.substr(1));return"blob"===t&&y&&(i=new y([i])),{type:n,data:i}},t.encodePayload=function(e,n,i){"function"==typeof n&&(i=n,n=null);var r=u(e);return n&&r?y&&!m?t.encodePayloadAsBlob(e,i):t.encodePayloadAsArrayBuffer(e,i):e.length?void a(e,(function(e,i){t.encodePacket(e,!!r&&n,!0,(function(e){i(null,function(e){return e.length+":"+e}(e))}))}),(function(e,t){return i(t.join(""))})):i("0:")},t.decodePayload=function(e,n,i){if("string"!=typeof e)return t.decodePayloadAsBinary(e,n,i);var r;if("function"==typeof n&&(i=n,n=null),""==e)return i(_,0,1);for(var o,a,s="",l=0,u=e.length;l<u;l++){var c=e.charAt(l);if(":"!=c)s+=c;else{if(""==s||s!=(o=Number(s)))return i(_,0,1);if(s!=(a=e.substr(l+1,o)).length)return i(_,0,1);if(a.length){if(r=t.decodePacket(a,n,!0),_.type==r.type&&_.data==r.data)return i(_,0,1);if(!1===i(r,l+o,u))return}l+=o,s=""}}return""!=s?i(_,0,1):void 0},t.encodePayloadAsArrayBuffer=function(e,n){return e.length?void a(e,(function(e,n){t.encodePacket(e,!0,!0,(function(e){return n(null,e)}))}),(function(e,t){var i=t.reduce((function(e,t){var n;return e+(n="string"==typeof t?t.length:t.byteLength).toString().length+n+2}),0),r=new Uint8Array(i),o=0;return t.forEach((function(e){var t="string"==typeof e,n=e;if(t){for(var i=new Uint8Array(e.length),a=0;a<e.length;a++)i[a]=e.charCodeAt(a);n=i.buffer}r[o++]=t?0:1;var s=n.byteLength.toString();for(a=0;a<s.length;a++)r[o++]=parseInt(s[a]);for(r[o++]=255,i=new Uint8Array(n),a=0;a<i.length;a++)r[o++]=i[a]})),n(r.buffer)})):n(new ArrayBuffer(0))},t.encodePayloadAsBlob=function(e,n){a(e,(function(e,n){t.encodePacket(e,!0,!0,(function(e){var t=new Uint8Array(1);if(t[0]=1,"string"==typeof e){for(var i=new Uint8Array(e.length),r=0;r<e.length;r++)i[r]=e.charCodeAt(r);e=i.buffer,t[0]=0}var o=(e instanceof ArrayBuffer?e.byteLength:e.size).toString(),a=new Uint8Array(o.length+1);for(r=0;r<o.length;r++)a[r]=parseInt(o[r]);if(a[o.length]=255,y){var s=new y([t.buffer,a.buffer,e]);n(null,s)}}))}),(function(e,t){return n(new y(t))}))},t.decodePayloadAsBinary=function(e,n,i){"function"==typeof n&&(i=n,n=null);for(var r=e,o=[],a=!1;r.byteLength>0;){for(var s=new Uint8Array(r),l=0===s[0],u="",d=1;255!=s[d];d++){if(u.length>310){a=!0;break}u+=s[d]}if(a)return i(_,0,1);r=c(r,2+u.length),u=parseInt(u);var h=c(r,0,u);if(l)try{h=String.fromCharCode.apply(null,new Uint8Array(h))}catch(e){var f=new Uint8Array(h);for(h="",d=0;d<f.length;d++)h+=String.fromCharCode(f[d])}o.push(h),r=c(r,u)}var p=o.length;o.forEach((function(e,r){i(t.decodePacket(e,n,!0),r,p)}))}}).call(t,function(){return this}())},function(e,t){e.exports=Object.keys||function(e){var t=[],n=Object.prototype.hasOwnProperty;for(var i in e)n.call(e,i)&&t.push(i);return t}},function(e,t,n){(function(t){var i=n(15);e.exports=function(e){return function e(n){if(!n)return!1;if(t.Buffer&&t.Buffer.isBuffer&&t.Buffer.isBuffer(n)||t.ArrayBuffer&&n instanceof ArrayBuffer||t.Blob&&n instanceof Blob||t.File&&n instanceof File)return!0;if(i(n)){for(var r=0;r<n.length;r++)if(e(n[r]))return!0}else if(n&&"object"==typeof n)for(var o in n.toJSON&&"function"==typeof n.toJSON&&(n=n.toJSON()),n)if(Object.prototype.hasOwnProperty.call(n,o)&&e(n[o]))return!0;return!1}(e)}}).call(t,function(){return this}())},function(e,t){e.exports=function(e,t,n){var i=e.byteLength;if(t=t||0,n=n||i,e.slice)return e.slice(t,n);if(t<0&&(t+=i),n<0&&(n+=i),n>i&&(n=i),t>=i||t>=n||0===i)return new ArrayBuffer(0);for(var r=new Uint8Array(e),o=new Uint8Array(n-t),a=t,s=0;a<n;a++,s++)o[s]=r[a];return o.buffer}},function(e,t){function n(){}e.exports=function(e,t,i){function r(e,n){if(r.count<=0)throw new Error("after called too many times");--r.count,e?(o=!0,t(e),t=i):0!==r.count||o||t(null,n)}var o=!1;return i=i||n,r.count=e,0===e?t():r}},function(e,t,n){var i;(function(e,r){!function(o){function a(e){for(var t,n,i=[],r=0,o=e.length;r<o;)(t=e.charCodeAt(r++))>=55296&&t<=56319&&r<o?56320==(64512&(n=e.charCodeAt(r++)))?i.push(((1023&t)<<10)+(1023&n)+65536):(i.push(t),r--):i.push(t);return i}function s(e,t){return m(e>>t&63|128)}function l(e){if(0==(4294967168&e))return m(e);var t="";return 0==(4294965248&e)?t=m(e>>6&31|192):0==(4294901760&e)?(t=m(e>>12&15|224),t+=s(e,6)):0==(4292870144&e)&&(t=m(e>>18&7|240),t+=s(e,12),t+=s(e,6)),t+m(63&e|128)}function u(){if(p>=f)throw Error("Invalid byte index");var e=255&h[p];if(p++,128==(192&e))return 63&e;throw Error("Invalid continuation byte")}function c(){var e,t;if(p>f)throw Error("Invalid byte index");if(p==f)return!1;if(e=255&h[p],p++,0==(128&e))return e;if(192==(224&e)){if((t=(31&e)<<6|u())>=128)return t;throw Error("Invalid continuation byte")}if(224==(240&e)){if((t=(15&e)<<12|u()<<6|u())>=2048)return t;throw Error("Invalid continuation byte")}if(240==(248&e)&&(t=(15&e)<<18|u()<<12|u()<<6|u())>=65536&&t<=1114111)return t;throw Error("Invalid WTF-8 detected")}var d=("object"==typeof e&&e&&e.exports,"object"==typeof r&&r);d.global!==d&&d.window;var h,f,p,m=String.fromCharCode,g={version:"1.0.0",encode:function(e){for(var t=a(e),n=t.length,i=-1,r="";++i<n;)r+=l(t[i]);return r},decode:function(e){h=a(e),f=h.length,p=0;for(var t,n=[];!1!==(t=c());)n.push(t);return function(e){for(var t,n=e.length,i=-1,r="";++i<n;)(t=e[i])>65535&&(r+=m((t-=65536)>>>10&1023|55296),t=56320|1023&t),r+=m(t);return r}(n)}};void 0===(i=function(){return g}.call(t,n,t,e))||(e.exports=i)}()}).call(t,n(12)(e),function(){return this}())},function(e,t){!function(){"use strict";for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=new Uint8Array(256),i=0;i<e.length;i++)n[e.charCodeAt(i)]=i;t.encode=function(t){var n,i=new Uint8Array(t),r=i.length,o="";for(n=0;n<r;n+=3)o+=e[i[n]>>2],o+=e[(3&i[n])<<4|i[n+1]>>4],o+=e[(15&i[n+1])<<2|i[n+2]>>6],o+=e[63&i[n+2]];return r%3==2?o=o.substring(0,o.length-1)+"=":r%3==1&&(o=o.substring(0,o.length-2)+"=="),o},t.decode=function(e){var t,i,r,o,a,s=.75*e.length,l=e.length,u=0;"="===e[e.length-1]&&(s--,"="===e[e.length-2]&&s--);var c=new ArrayBuffer(s),d=new Uint8Array(c);for(t=0;t<l;t+=4)i=n[e.charCodeAt(t)],r=n[e.charCodeAt(t+1)],o=n[e.charCodeAt(t+2)],a=n[e.charCodeAt(t+3)],d[u++]=i<<2|r>>4,d[u++]=(15&r)<<4|o>>2,d[u++]=(3&o)<<6|63&a;return c}}()},function(e,t){(function(t){function n(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.buffer instanceof ArrayBuffer){var i=n.buffer;if(n.byteLength!==i.byteLength){var r=new Uint8Array(n.byteLength);r.set(new Uint8Array(i,n.byteOffset,n.byteLength)),i=r.buffer}e[t]=i}}}var i=t.BlobBuilder||t.WebKitBlobBuilder||t.MSBlobBuilder||t.MozBlobBuilder,r=function(){try{return 2===new Blob(["hi"]).size}catch(e){return!1}}(),o=r&&function(){try{return 2===new Blob([new Uint8Array([1,2])]).size}catch(e){return!1}}(),a=i&&i.prototype.append&&i.prototype.getBlob;e.exports=r?o?t.Blob:function(e,t){return n(e),new Blob(e,t||{})}:a?function(e,t){t=t||{};var r=new i;n(e);for(var o=0;o<e.length;o++)r.append(e[o]);return t.type?r.getBlob(t.type):r.getBlob()}:void 0}).call(t,function(){return this}())},function(e,t,n){function i(e){if(e)return function(e){for(var t in i.prototype)e[t]=i.prototype[t];return e}(e)}e.exports=i,i.prototype.on=i.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},i.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var i,r=0;r<n.length;r++)if((i=n[r])===t||i.fn===t){n.splice(r,1);break}return this},i.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=[].slice.call(arguments,1),n=this._callbacks["$"+e];if(n)for(var i=0,r=(n=n.slice(0)).length;i<r;++i)n[i].apply(this,t);return this},i.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},i.prototype.hasListeners=function(e){return!!this.listeners(e).length}},function(e,t){t.encode=function(e){var t="";for(var n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t},t.decode=function(e){for(var t={},n=e.split("&"),i=0,r=n.length;i<r;i++){var o=n[i].split("=");t[decodeURIComponent(o[0])]=decodeURIComponent(o[1])}return t}},function(e,t){e.exports=function(e,t){var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t){"use strict";function n(e){var t="";do{t=o[e%a]+t,e=Math.floor(e/a)}while(e>0);return t}function i(){var e=n(+new Date);return e!==r?(l=0,r=e):e+"."+n(l++)}for(var r,o="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),a=64,s={},l=0,u=0;u<a;u++)s[o[u]]=u;i.encode=n,i.decode=function(e){var t=0;for(u=0;u<e.length;u++)t=t*a+s[e.charAt(u)];return t},e.exports=i},function(e,t,n){(function(t){function i(){}function r(e){o.call(this,e),this.query=this.query||{},s||(t.___eio||(t.___eio=[]),s=t.___eio),this.index=s.length;var n=this;s.push((function(e){n.onData(e)})),this.query.j=this.index,t.document&&t.addEventListener&&t.addEventListener("beforeunload",(function(){n.script&&(n.script.onerror=i)}),!1)}var o=n(25),a=n(37);e.exports=r;var s,l=/\n/g,u=/\\n/g;a(r,o),r.prototype.supportsBinary=!1,r.prototype.doClose=function(){this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),this.form&&(this.form.parentNode.removeChild(this.form),this.form=null,this.iframe=null),o.prototype.doClose.call(this)},r.prototype.doPoll=function(){var e=this,t=document.createElement("script");this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),t.async=!0,t.src=this.uri(),t.onerror=function(t){e.onError("jsonp poll error",t)};var n=document.getElementsByTagName("script")[0];n?n.parentNode.insertBefore(t,n):(document.head||document.body).appendChild(t),this.script=t,"undefined"!=typeof navigator&&/gecko/i.test(navigator.userAgent)&&setTimeout((function(){var e=document.createElement("iframe");document.body.appendChild(e),document.body.removeChild(e)}),100)},r.prototype.doWrite=function(e,t){function n(){i(),t()}function i(){if(r.iframe)try{r.form.removeChild(r.iframe)}catch(e){r.onError("jsonp polling iframe removal error",e)}try{var e='<iframe src="javascript:0" name="'+r.iframeId+'">';o=document.createElement(e)}catch(e){(o=document.createElement("iframe")).name=r.iframeId,o.src="javascript:0"}o.id=r.iframeId,r.form.appendChild(o),r.iframe=o}var r=this;if(!this.form){var o,a=document.createElement("form"),s=document.createElement("textarea"),c=this.iframeId="eio_iframe_"+this.index;a.className="socketio",a.style.position="absolute",a.style.top="-1000px",a.style.left="-1000px",a.target=c,a.method="POST",a.setAttribute("accept-charset","utf-8"),s.name="d",a.appendChild(s),document.body.appendChild(a),this.form=a,this.area=s}this.form.action=this.uri(),i(),e=e.replace(u,"\\\n"),this.area.value=e.replace(l,"\\n");try{this.form.submit()}catch(e){}this.iframe.attachEvent?this.iframe.onreadystatechange=function(){"complete"===r.iframe.readyState&&n()}:this.iframe.onload=n}}).call(t,function(){return this}())},function(e,t,n){(function(t){function i(e){e&&e.forceBase64&&(this.supportsBinary=!1),this.perMessageDeflate=e.perMessageDeflate,this.usingBrowserWebSocket=d&&!e.forceNode,this.usingBrowserWebSocket||(h=r),o.call(this,e)}var r,o=n(26),a=n(27),s=n(36),l=n(37),u=n(38),c=n(3)("engine.io-client:websocket"),d=t.WebSocket||t.MozWebSocket;if("undefined"==typeof window)try{r=n(41)}catch(e){}var h=d;h||"undefined"!=typeof window||(h=r),e.exports=i,l(i,o),i.prototype.name="websocket",i.prototype.supportsBinary=!0,i.prototype.doOpen=function(){if(this.check()){var e=this.uri(),t={agent:this.agent,perMessageDeflate:this.perMessageDeflate};t.pfx=this.pfx,t.key=this.key,t.passphrase=this.passphrase,t.cert=this.cert,t.ca=this.ca,t.ciphers=this.ciphers,t.rejectUnauthorized=this.rejectUnauthorized,this.extraHeaders&&(t.headers=this.extraHeaders),this.localAddress&&(t.localAddress=this.localAddress);try{this.ws=this.usingBrowserWebSocket?new h(e):new h(e,void 0,t)}catch(e){return this.emit("error",e)}void 0===this.ws.binaryType&&(this.supportsBinary=!1),this.ws.supports&&this.ws.supports.binary?(this.supportsBinary=!0,this.ws.binaryType="nodebuffer"):this.ws.binaryType="arraybuffer",this.addEventListeners()}},i.prototype.addEventListeners=function(){var e=this;this.ws.onopen=function(){e.onOpen()},this.ws.onclose=function(){e.onClose()},this.ws.onmessage=function(t){e.onData(t.data)},this.ws.onerror=function(t){e.onError("websocket error",t)}},i.prototype.write=function(e){var n=this;this.writable=!1;for(var i=e.length,r=0,o=i;r<o;r++)!function(e){a.encodePacket(e,n.supportsBinary,(function(r){if(!n.usingBrowserWebSocket){var o={};e.options&&(o.compress=e.options.compress),n.perMessageDeflate&&("string"==typeof r?t.Buffer.byteLength(r):r.length)<n.perMessageDeflate.threshold&&(o.compress=!1)}try{n.usingBrowserWebSocket?n.ws.send(r):n.ws.send(r,o)}catch(e){c("websocket closed before onclose event")}--i||(n.emit("flush"),setTimeout((function(){n.writable=!0,n.emit("drain")}),0))}))}(e[r])},i.prototype.onClose=function(){o.prototype.onClose.call(this)},i.prototype.doClose=function(){void 0!==this.ws&&this.ws.close()},i.prototype.uri=function(){var e=this.query||{},t=this.secure?"wss":"ws",n="";return this.port&&("wss"===t&&443!==Number(this.port)||"ws"===t&&80!==Number(this.port))&&(n=":"+this.port),this.timestampRequests&&(e[this.timestampParam]=u()),this.supportsBinary||(e.b64=1),(e=s.encode(e)).length&&(e="?"+e),t+"://"+(-1!==this.hostname.indexOf(":")?"["+this.hostname+"]":this.hostname)+n+this.path+e},i.prototype.check=function(){return!(!h||"__initialize"in h&&this.name===i.prototype.name)}}).call(t,function(){return this}())},function(e,t){},function(e,t){var n=[].indexOf;e.exports=function(e,t){if(n)return e.indexOf(t);for(var i=0;i<e.length;++i)if(e[i]===t)return i;return-1}},function(e,t){(function(t){var n=/^[\],:{}\s]*$/,i=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,r=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,o=/(?:^|:|,)(?:\s*\[)+/g,a=/^\s+/,s=/\s+$/;e.exports=function(e){return"string"==typeof e&&e?(e=e.replace(a,"").replace(s,""),t.JSON&&JSON.parse?JSON.parse(e):n.test(e.replace(i,"@").replace(r,"]").replace(o,""))?new Function("return "+e)():void 0):null}}).call(t,function(){return this}())},function(e,t,n){"use strict";function i(e,t,n){this.io=e,this.nsp=t,this.json=this,this.ids=0,this.acks={},this.receiveBuffer=[],this.sendBuffer=[],this.connected=!1,this.disconnected=!0,n&&n.query&&(this.query=n.query),this.io.autoConnect&&this.open()}var r=n(7),o=n(35),a=n(45),s=n(46),l=n(47),u=n(3)("socket.io-client:socket"),c=n(29);e.exports=i;var d={connect:1,connect_error:1,connect_timeout:1,connecting:1,disconnect:1,error:1,reconnect:1,reconnect_attempt:1,reconnect_failed:1,reconnect_error:1,reconnecting:1,ping:1,pong:1},h=o.prototype.emit;o(i.prototype),i.prototype.subEvents=function(){if(!this.subs){var e=this.io;this.subs=[s(e,"open",l(this,"onopen")),s(e,"packet",l(this,"onpacket")),s(e,"close",l(this,"onclose"))]}},i.prototype.open=i.prototype.connect=function(){return this.connected?this:(this.subEvents(),this.io.open(),"open"===this.io.readyState&&this.onopen(),this.emit("connecting"),this)},i.prototype.send=function(){var e=a(arguments);return e.unshift("message"),this.emit.apply(this,e),this},i.prototype.emit=function(e){if(d.hasOwnProperty(e))return h.apply(this,arguments),this;var t=a(arguments),n=r.EVENT;c(t)&&(n=r.BINARY_EVENT);var i={type:n,data:t,options:{}};return i.options.compress=!this.flags||!1!==this.flags.compress,"function"==typeof t[t.length-1]&&(u("emitting packet with ack id %d",this.ids),this.acks[this.ids]=t.pop(),i.id=this.ids++),this.connected?this.packet(i):this.sendBuffer.push(i),delete this.flags,this},i.prototype.packet=function(e){e.nsp=this.nsp,this.io.packet(e)},i.prototype.onopen=function(){u("transport is open - connecting"),"/"!==this.nsp&&(this.query?this.packet({type:r.CONNECT,query:this.query}):this.packet({type:r.CONNECT}))},i.prototype.onclose=function(e){u("close (%s)",e),this.connected=!1,this.disconnected=!0,delete this.id,this.emit("disconnect",e)},i.prototype.onpacket=function(e){if(e.nsp===this.nsp)switch(e.type){case r.CONNECT:this.onconnect();break;case r.EVENT:case r.BINARY_EVENT:this.onevent(e);break;case r.ACK:case r.BINARY_ACK:this.onack(e);break;case r.DISCONNECT:this.ondisconnect();break;case r.ERROR:this.emit("error",e.data)}},i.prototype.onevent=function(e){var t=e.data||[];u("emitting event %j",t),null!=e.id&&(u("attaching ack callback to event"),t.push(this.ack(e.id))),this.connected?h.apply(this,t):this.receiveBuffer.push(t)},i.prototype.ack=function(e){var t=this,n=!1;return function(){if(!n){n=!0;var i=a(arguments);u("sending ack %j",i);var o=c(i)?r.BINARY_ACK:r.ACK;t.packet({type:o,id:e,data:i})}}},i.prototype.onack=function(e){var t=this.acks[e.id];"function"==typeof t?(u("calling ack %s with %j",e.id,e.data),t.apply(this,e.data),delete this.acks[e.id]):u("bad ack %s",e.id)},i.prototype.onconnect=function(){this.connected=!0,this.disconnected=!1,this.emit("connect"),this.emitBuffered()},i.prototype.emitBuffered=function(){var e;for(e=0;e<this.receiveBuffer.length;e++)h.apply(this,this.receiveBuffer[e]);for(this.receiveBuffer=[],e=0;e<this.sendBuffer.length;e++)this.packet(this.sendBuffer[e]);this.sendBuffer=[]},i.prototype.ondisconnect=function(){u("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")},i.prototype.destroy=function(){if(this.subs){for(var e=0;e<this.subs.length;e++)this.subs[e].destroy();this.subs=null}this.io.destroy(this)},i.prototype.close=i.prototype.disconnect=function(){return this.connected&&(u("performing disconnect (%s)",this.nsp),this.packet({type:r.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this},i.prototype.compress=function(e){return this.flags=this.flags||{},this.flags.compress=e,this}},function(e,t){e.exports=function(e,t){for(var n=[],i=(t=t||0)||0;i<e.length;i++)n[i-t]=e[i];return n}},function(e,t){"use strict";e.exports=function(e,t,n){return e.on(t,n),{destroy:function(){e.removeListener(t,n)}}}},function(e,t){var n=[].slice;e.exports=function(e,t){if("string"==typeof t&&(t=e[t]),"function"!=typeof t)throw new Error("bind() requires a function");var i=n.call(arguments,2);return function(){return t.apply(e,i.concat(n.call(arguments)))}}},function(e,t){function n(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}e.exports=n,n.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=0==(1&Math.floor(10*t))?e-n:e+n}return 0|Math.min(e,this.max)},n.prototype.reset=function(){this.attempts=0},n.prototype.setMin=function(e){this.ms=e},n.prototype.setMax=function(e){this.max=e},n.prototype.setJitter=function(e){this.jitter=e}}])},"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.io=e():this.io=e(),function(){var e="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this||{},t=e._,n=Array.prototype,i=Object.prototype,r="undefined"!=typeof Symbol?Symbol.prototype:null,o=n.push,a=n.slice,s=i.toString,l=i.hasOwnProperty,u=Array.isArray,c=Object.keys,d=Object.create,h=function(){},f=function(e){return e instanceof f?e:this instanceof f?void(this._wrapped=e):new f(e)};"undefined"==typeof exports||exports.nodeType?e._=f:("undefined"!=typeof module&&!module.nodeType&&module.exports&&(exports=module.exports=f),exports._=f),f.VERSION="1.9.1";var p,m=function(e,t,n){if(void 0===t)return e;switch(null==n?3:n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,i,r){return e.call(t,n,i,r)};case 4:return function(n,i,r,o){return e.call(t,n,i,r,o)}}return function(){return e.apply(t,arguments)}},g=function(e,t,n){return f.iteratee!==p?f.iteratee(e,t):null==e?f.identity:f.isFunction(e)?m(e,t,n):f.isObject(e)&&!f.isArray(e)?f.matcher(e):f.property(e)};f.iteratee=p=function(e,t){return g(e,t,1/0)};var v=function(e,t){return t=null==t?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),i=Array(n),r=0;r<n;r++)i[r]=arguments[r+t];switch(t){case 0:return e.call(this,i);case 1:return e.call(this,arguments[0],i);case 2:return e.call(this,arguments[0],arguments[1],i)}var o=Array(t+1);for(r=0;r<t;r++)o[r]=arguments[r];return o[t]=i,e.apply(this,o)}},_=function(e){if(!f.isObject(e))return{};if(d)return d(e);h.prototype=e;var t=new h;return h.prototype=null,t},y=function(e){return function(t){return null==t?void 0:t[e]}},b=function(e,t){return null!=e&&l.call(e,t)},w=function(e,t){for(var n=t.length,i=0;i<n;i++){if(null==e)return;e=e[t[i]]}return n?e:void 0},L=Math.pow(2,53)-1,M=y("length"),k=function(e){var t=M(e);return"number"==typeof t&&0<=t&&t<=L};f.each=f.forEach=function(e,t,n){var i,r;if(t=m(t,n),k(e))for(i=0,r=e.length;i<r;i++)t(e[i],i,e);else{var o=f.keys(e);for(i=0,r=o.length;i<r;i++)t(e[o[i]],o[i],e)}return e},f.map=f.collect=function(e,t,n){t=g(t,n);for(var i=!k(e)&&f.keys(e),r=(i||e).length,o=Array(r),a=0;a<r;a++){var s=i?i[a]:a;o[a]=t(e[s],s,e)}return o};var x=function(e){return function(t,n,i,r){var o=3<=arguments.length;return function(t,n,i,r){var o=!k(t)&&f.keys(t),a=(o||t).length,s=0<e?0:a-1;for(r||(i=t[o?o[s]:s],s+=e);0<=s&&s<a;s+=e){var l=o?o[s]:s;i=n(i,t[l],l,t)}return i}(t,m(n,r,4),i,o)}};f.reduce=f.foldl=f.inject=x(1),f.reduceRight=f.foldr=x(-1),f.find=f.detect=function(e,t,n){var i=(k(e)?f.findIndex:f.findKey)(e,t,n);if(void 0!==i&&-1!==i)return e[i]},f.filter=f.select=function(e,t,n){var i=[];return t=g(t,n),f.each(e,(function(e,n,r){t(e,n,r)&&i.push(e)})),i},f.reject=function(e,t,n){return f.filter(e,f.negate(g(t)),n)},f.every=f.all=function(e,t,n){t=g(t,n);for(var i=!k(e)&&f.keys(e),r=(i||e).length,o=0;o<r;o++){var a=i?i[o]:o;if(!t(e[a],a,e))return!1}return!0},f.some=f.any=function(e,t,n){t=g(t,n);for(var i=!k(e)&&f.keys(e),r=(i||e).length,o=0;o<r;o++){var a=i?i[o]:o;if(t(e[a],a,e))return!0}return!1},f.contains=f.includes=f.include=function(e,t,n,i){return k(e)||(e=f.values(e)),("number"!=typeof n||i)&&(n=0),0<=f.indexOf(e,t,n)},f.invoke=v((function(e,t,n){var i,r;return f.isFunction(t)?r=t:f.isArray(t)&&(i=t.slice(0,-1),t=t[t.length-1]),f.map(e,(function(e){var o=r;if(!o){if(i&&i.length&&(e=w(e,i)),null==e)return;o=e[t]}return null==o?o:o.apply(e,n)}))})),f.pluck=function(e,t){return f.map(e,f.property(t))},f.where=function(e,t){return f.filter(e,f.matcher(t))},f.findWhere=function(e,t){return f.find(e,f.matcher(t))},f.max=function(e,t,n){var i,r,o=-1/0,a=-1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,l=(e=k(e)?e:f.values(e)).length;s<l;s++)null!=(i=e[s])&&o<i&&(o=i);else t=g(t,n),f.each(e,(function(e,n,i){r=t(e,n,i),(a<r||r===-1/0&&o===-1/0)&&(o=e,a=r)}));return o},f.min=function(e,t,n){var i,r,o=1/0,a=1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,l=(e=k(e)?e:f.values(e)).length;s<l;s++)null!=(i=e[s])&&i<o&&(o=i);else t=g(t,n),f.each(e,(function(e,n,i){((r=t(e,n,i))<a||r===1/0&&o===1/0)&&(o=e,a=r)}));return o},f.shuffle=function(e){return f.sample(e,1/0)},f.sample=function(e,t,n){if(null==t||n)return k(e)||(e=f.values(e)),e[f.random(e.length-1)];var i=k(e)?f.clone(e):f.values(e),r=M(i);t=Math.max(Math.min(t,r),0);for(var o=r-1,a=0;a<t;a++){var s=f.random(a,o),l=i[a];i[a]=i[s],i[s]=l}return i.slice(0,t)},f.sortBy=function(e,t,n){var i=0;return t=g(t,n),f.pluck(f.map(e,(function(e,n,r){return{value:e,index:i++,criteria:t(e,n,r)}})).sort((function(e,t){var n=e.criteria,i=t.criteria;if(n!==i){if(i<n||void 0===n)return 1;if(n<i||void 0===i)return-1}return e.index-t.index})),"value")};var S=function(e,t){return function(n,i,r){var o=t?[[],[]]:{};return i=g(i,r),f.each(n,(function(t,r){var a=i(t,r,n);e(o,t,a)})),o}};f.groupBy=S((function(e,t,n){b(e,n)?e[n].push(t):e[n]=[t]})),f.indexBy=S((function(e,t,n){e[n]=t})),f.countBy=S((function(e,t,n){b(e,n)?e[n]++:e[n]=1}));var T=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;f.toArray=function(e){return e?f.isArray(e)?a.call(e):f.isString(e)?e.match(T):k(e)?f.map(e,f.identity):f.values(e):[]},f.size=function(e){return null==e?0:k(e)?e.length:f.keys(e).length},f.partition=S((function(e,t,n){e[n?0:1].push(t)}),!0),f.first=f.head=f.take=function(e,t,n){return null==e||e.length<1?null==t?void 0:[]:null==t||n?e[0]:f.initial(e,e.length-t)},f.initial=function(e,t,n){return a.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))},f.last=function(e,t,n){return null==e||e.length<1?null==t?void 0:[]:null==t||n?e[e.length-1]:f.rest(e,Math.max(0,e.length-t))},f.rest=f.tail=f.drop=function(e,t,n){return a.call(e,null==t||n?1:t)},f.compact=function(e){return f.filter(e,Boolean)};var $=function(e,t,n,i){for(var r=(i=i||[]).length,o=0,a=M(e);o<a;o++){var s=e[o];if(k(s)&&(f.isArray(s)||f.isArguments(s)))if(t)for(var l=0,u=s.length;l<u;)i[r++]=s[l++];else $(s,t,n,i),r=i.length;else n||(i[r++]=s)}return i};f.flatten=function(e,t){return $(e,t,!1)},f.without=v((function(e,t){return f.difference(e,t)})),f.uniq=f.unique=function(e,t,n,i){f.isBoolean(t)||(i=n,n=t,t=!1),null!=n&&(n=g(n,i));for(var r=[],o=[],a=0,s=M(e);a<s;a++){var l=e[a],u=n?n(l,a,e):l;t&&!n?(a&&o===u||r.push(l),o=u):n?f.contains(o,u)||(o.push(u),r.push(l)):f.contains(r,l)||r.push(l)}return r},f.union=v((function(e){return f.uniq($(e,!0,!0))})),f.intersection=function(e){for(var t=[],n=arguments.length,i=0,r=M(e);i<r;i++){var o=e[i];if(!f.contains(t,o)){var a;for(a=1;a<n&&f.contains(arguments[a],o);a++);a===n&&t.push(o)}}return t},f.difference=v((function(e,t){return t=$(t,!0,!0),f.filter(e,(function(e){return!f.contains(t,e)}))})),f.unzip=function(e){for(var t=e&&f.max(e,M).length||0,n=Array(t),i=0;i<t;i++)n[i]=f.pluck(e,i);return n},f.zip=v(f.unzip),f.object=function(e,t){for(var n={},i=0,r=M(e);i<r;i++)t?n[e[i]]=t[i]:n[e[i][0]]=e[i][1];return n};var D=function(e){return function(t,n,i){n=g(n,i);for(var r=M(t),o=0<e?0:r-1;0<=o&&o<r;o+=e)if(n(t[o],o,t))return o;return-1}};f.findIndex=D(1),f.findLastIndex=D(-1),f.sortedIndex=function(e,t,n,i){for(var r=(n=g(n,i,1))(t),o=0,a=M(e);o<a;){var s=Math.floor((o+a)/2);n(e[s])<r?o=s+1:a=s}return o};var C=function(e,t,n){return function(i,r,o){var s=0,l=M(i);if("number"==typeof o)0<e?s=0<=o?o:Math.max(o+l,s):l=0<=o?Math.min(o+1,l):o+l+1;else if(n&&o&&l)return i[o=n(i,r)]===r?o:-1;if(r!=r)return 0<=(o=t(a.call(i,s,l),f.isNaN))?o+s:-1;for(o=0<e?s:l-1;0<=o&&o<l;o+=e)if(i[o]===r)return o;return-1}};f.indexOf=C(1,f.findIndex,f.sortedIndex),f.lastIndexOf=C(-1,f.findLastIndex),f.range=function(e,t,n){null==t&&(t=e||0,e=0),n||(n=t<e?-1:1);for(var i=Math.max(Math.ceil((t-e)/n),0),r=Array(i),o=0;o<i;o++,e+=n)r[o]=e;return r},f.chunk=function(e,t){if(null==t||t<1)return[];for(var n=[],i=0,r=e.length;i<r;)n.push(a.call(e,i,i+=t));return n};var E=function(e,t,n,i,r){if(!(i instanceof t))return e.apply(n,r);var o=_(e.prototype),a=e.apply(o,r);return f.isObject(a)?a:o};f.bind=v((function(e,t,n){if(!f.isFunction(e))throw new TypeError("Bind must be called on a function");var i=v((function(r){return E(e,i,t,this,n.concat(r))}));return i})),f.partial=v((function(e,t){var n=f.partial.placeholder,i=function(){for(var r=0,o=t.length,a=Array(o),s=0;s<o;s++)a[s]=t[s]===n?arguments[r++]:t[s];for(;r<arguments.length;)a.push(arguments[r++]);return E(e,i,this,this,a)};return i})),(f.partial.placeholder=f).bindAll=v((function(e,t){var n=(t=$(t,!1,!1)).length;if(n<1)throw new Error("bindAll must be passed function names");for(;n--;){var i=t[n];e[i]=f.bind(e[i],e)}})),f.memoize=function(e,t){var n=function(i){var r=n.cache,o=""+(t?t.apply(this,arguments):i);return b(r,o)||(r[o]=e.apply(this,arguments)),r[o]};return n.cache={},n},f.delay=v((function(e,t,n){return setTimeout((function(){return e.apply(null,n)}),t)})),f.defer=f.partial(f.delay,f,1),f.throttle=function(e,t,n){var i,r,o,a,s=0;n||(n={});var l=function(){s=!1===n.leading?0:f.now(),i=null,a=e.apply(r,o),i||(r=o=null)},u=function(){var u=f.now();s||!1!==n.leading||(s=u);var c=t-(u-s);return r=this,o=arguments,c<=0||t<c?(i&&(clearTimeout(i),i=null),s=u,a=e.apply(r,o),i||(r=o=null)):i||!1===n.trailing||(i=setTimeout(l,c)),a};return u.cancel=function(){clearTimeout(i),s=0,i=r=o=null},u},f.debounce=function(e,t,n){var i,r,o=function(t,n){i=null,n&&(r=e.apply(t,n))},a=v((function(a){if(i&&clearTimeout(i),n){var s=!i;i=setTimeout(o,t),s&&(r=e.apply(this,a))}else i=f.delay(o,t,this,a);return r}));return a.cancel=function(){clearTimeout(i),i=null},a},f.wrap=function(e,t){return f.partial(t,e)},f.negate=function(e){return function(){return!e.apply(this,arguments)}},f.compose=function(){var e=arguments,t=e.length-1;return function(){for(var n=t,i=e[t].apply(this,arguments);n--;)i=e[n].call(this,i);return i}},f.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},f.before=function(e,t){var n;return function(){return 0<--e&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}},f.once=f.partial(f.before,2),f.restArguments=v;var A=!{toString:null}.propertyIsEnumerable("toString"),P=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],Y=function(e,t){var n=P.length,r=e.constructor,o=f.isFunction(r)&&r.prototype||i,a="constructor";for(b(e,a)&&!f.contains(t,a)&&t.push(a);n--;)(a=P[n])in e&&e[a]!==o[a]&&!f.contains(t,a)&&t.push(a)};f.keys=function(e){if(!f.isObject(e))return[];if(c)return c(e);var t=[];for(var n in e)b(e,n)&&t.push(n);return A&&Y(e,t),t},f.allKeys=function(e){if(!f.isObject(e))return[];var t=[];for(var n in e)t.push(n);return A&&Y(e,t),t},f.values=function(e){for(var t=f.keys(e),n=t.length,i=Array(n),r=0;r<n;r++)i[r]=e[t[r]];return i},f.mapObject=function(e,t,n){t=g(t,n);for(var i=f.keys(e),r=i.length,o={},a=0;a<r;a++){var s=i[a];o[s]=t(e[s],s,e)}return o},f.pairs=function(e){for(var t=f.keys(e),n=t.length,i=Array(n),r=0;r<n;r++)i[r]=[t[r],e[t[r]]];return i},f.invert=function(e){for(var t={},n=f.keys(e),i=0,r=n.length;i<r;i++)t[e[n[i]]]=n[i];return t},f.functions=f.methods=function(e){var t=[];for(var n in e)f.isFunction(e[n])&&t.push(n);return t.sort()};var O=function(e,t){return function(n){var i=arguments.length;if(t&&(n=Object(n)),i<2||null==n)return n;for(var r=1;r<i;r++)for(var o=arguments[r],a=e(o),s=a.length,l=0;l<s;l++){var u=a[l];t&&void 0!==n[u]||(n[u]=o[u])}return n}};f.extend=O(f.allKeys),f.extendOwn=f.assign=O(f.keys),f.findKey=function(e,t,n){t=g(t,n);for(var i,r=f.keys(e),o=0,a=r.length;o<a;o++)if(t(e[i=r[o]],i,e))return i};var I,j,H=function(e,t,n){return t in n};f.pick=v((function(e,t){var n={},i=t[0];if(null==e)return n;f.isFunction(i)?(1<t.length&&(i=m(i,t[1])),t=f.allKeys(e)):(i=H,t=$(t,!1,!1),e=Object(e));for(var r=0,o=t.length;r<o;r++){var a=t[r],s=e[a];i(s,a,e)&&(n[a]=s)}return n})),f.omit=v((function(e,t){var n,i=t[0];return f.isFunction(i)?(i=f.negate(i),1<t.length&&(n=t[1])):(t=f.map($(t,!1,!1),String),i=function(e,n){return!f.contains(t,n)}),f.pick(e,i,n)})),f.defaults=O(f.allKeys,!0),f.create=function(e,t){var n=_(e);return t&&f.extendOwn(n,t),n},f.clone=function(e){return f.isObject(e)?f.isArray(e)?e.slice():f.extend({},e):e},f.tap=function(e,t){return t(e),e},f.isMatch=function(e,t){var n=f.keys(t),i=n.length;if(null==e)return!i;for(var r=Object(e),o=0;o<i;o++){var a=n[o];if(t[a]!==r[a]||!(a in r))return!1}return!0},I=function(e,t,n,i){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var r=typeof e;return("function"===r||"object"===r||"object"==typeof t)&&j(e,t,n,i)},j=function(e,t,n,i){e instanceof f&&(e=e._wrapped),t instanceof f&&(t=t._wrapped);var o=s.call(e);if(o!==s.call(t))return!1;switch(o){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":return+e!=+e?+t!=+t:0==+e?1/+e==1/t:+e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object Symbol]":return r.valueOf.call(e)===r.valueOf.call(t)}var a="[object Array]"===o;if(!a){if("object"!=typeof e||"object"!=typeof t)return!1;var l=e.constructor,u=t.constructor;if(l!==u&&!(f.isFunction(l)&&l instanceof l&&f.isFunction(u)&&u instanceof u)&&"constructor"in e&&"constructor"in t)return!1}i=i||[];for(var c=(n=n||[]).length;c--;)if(n[c]===e)return i[c]===t;if(n.push(e),i.push(t),a){if((c=e.length)!==t.length)return!1;for(;c--;)if(!I(e[c],t[c],n,i))return!1}else{var d,h=f.keys(e);if(c=h.length,f.keys(t).length!==c)return!1;for(;c--;)if(d=h[c],!b(t,d)||!I(e[d],t[d],n,i))return!1}return n.pop(),i.pop(),!0},f.isEqual=function(e,t){return I(e,t)},f.isEmpty=function(e){return null==e||(k(e)&&(f.isArray(e)||f.isString(e)||f.isArguments(e))?0===e.length:0===f.keys(e).length)},f.isElement=function(e){return!(!e||1!==e.nodeType)},f.isArray=u||function(e){return"[object Array]"===s.call(e)},f.isObject=function(e){var t=typeof e;return"function"===t||"object"===t&&!!e},f.each(["Arguments","Function","String","Number","Date","RegExp","Error","Symbol","Map","WeakMap","Set","WeakSet"],(function(e){f["is"+e]=function(t){return s.call(t)==="[object "+e+"]"}})),f.isArguments(arguments)||(f.isArguments=function(e){return b(e,"callee")});var N=e.document&&e.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof N&&(f.isFunction=function(e){return"function"==typeof e||!1}),f.isFinite=function(e){return!f.isSymbol(e)&&isFinite(e)&&!isNaN(parseFloat(e))},f.isNaN=function(e){return f.isNumber(e)&&isNaN(e)},f.isBoolean=function(e){return!0===e||!1===e||"[object Boolean]"===s.call(e)},f.isNull=function(e){return null===e},f.isUndefined=function(e){return void 0===e},f.has=function(e,t){if(!f.isArray(t))return b(e,t);for(var n=t.length,i=0;i<n;i++){var r=t[i];if(null==e||!l.call(e,r))return!1;e=e[r]}return!!n},f.noConflict=function(){return e._=t,this},f.identity=function(e){return e},f.constant=function(e){return function(){return e}},f.noop=function(){},f.property=function(e){return f.isArray(e)?function(t){return w(t,e)}:y(e)},f.propertyOf=function(e){return null==e?function(){}:function(t){return f.isArray(t)?w(e,t):e[t]}},f.matcher=f.matches=function(e){return e=f.extendOwn({},e),function(t){return f.isMatch(t,e)}},f.times=function(e,t,n){var i=Array(Math.max(0,e));t=m(t,n,1);for(var r=0;r<e;r++)i[r]=t(r);return i},f.random=function(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))},f.now=Date.now||function(){return(new Date).getTime()};var B={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},R=f.invert(B),F=function(e){var t=function(t){return e[t]},n="(?:"+f.keys(e).join("|")+")",i=RegExp(n),r=RegExp(n,"g");return function(e){return e=null==e?"":""+e,i.test(e)?e.replace(r,t):e}};f.escape=F(B),f.unescape=F(R),f.result=function(e,t,n){f.isArray(t)||(t=[t]);var i=t.length;if(!i)return f.isFunction(n)?n.call(e):n;for(var r=0;r<i;r++){var o=null==e?void 0:e[t[r]];void 0===o&&(o=n,r=i),e=f.isFunction(o)?o.call(e):o}return e};var z=0;f.uniqueId=function(e){var t=++z+"";return e?e+t:t},f.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var V=/(.)^/,U={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},W=/\\|'|\r|\n|\u2028|\u2029/g,q=function(e){return"\\"+U[e]};f.template=function(e,t,n){!t&&n&&(t=n),t=f.defaults({},t,f.templateSettings);var i,r=RegExp([(t.escape||V).source,(t.interpolate||V).source,(t.evaluate||V).source].join("|")+"|$","g"),o=0,a="__p+='";e.replace(r,(function(t,n,i,r,s){return a+=e.slice(o,s).replace(W,q),o=s+t.length,n?a+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":i?a+="'+\n((__t=("+i+"))==null?'':__t)+\n'":r&&(a+="';\n"+r+"\n__p+='"),t})),a+="';\n",t.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{i=new Function(t.variable||"obj","_",a)}catch(t){throw t.source=a,t}var s=function(e){return i.call(this,e,f)},l=t.variable||"obj";return s.source="function("+l+"){\n"+a+"}",s},f.chain=function(e){var t=f(e);return t._chain=!0,t};var G=function(e,t){return e._chain?f(t).chain():t};f.mixin=function(e){return f.each(f.functions(e),(function(t){var n=f[t]=e[t];f.prototype[t]=function(){var e=[this._wrapped];return o.apply(e,arguments),G(this,n.apply(f,e))}})),f},f.mixin(f),f.each(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=n[e];f.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),"shift"!==e&&"splice"!==e||0!==n.length||delete n[0],G(this,n)}})),f.each(["concat","join","slice"],(function(e){var t=n[e];f.prototype[e]=function(){return G(this,t.apply(this._wrapped,arguments))}})),f.prototype.value=function(){return this._wrapped},f.prototype.valueOf=f.prototype.toJSON=f.prototype.value,f.prototype.toString=function(){return String(this._wrapped)},"function"==typeof define&&define.amd&&define("underscore",[],(function(){return f}))}(),function(){function e(e){this.mode=s.MODE_8BIT_BYTE,this.data=e,this.parsedData=[];for(var t=[],n=0,i=this.data.length;i>n;n++){var r=this.data.charCodeAt(n);r>65536?(t[0]=240|(1835008&r)>>>18,t[1]=128|(258048&r)>>>12,t[2]=128|(4032&r)>>>6,t[3]=128|63&r):r>2048?(t[0]=224|(61440&r)>>>12,t[1]=128|(4032&r)>>>6,t[2]=128|63&r):r>128?(t[0]=192|(1984&r)>>>6,t[1]=128|63&r):t[0]=r,this.parsedData=this.parsedData.concat(t)}this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function n(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function i(e,t){if(null==e.length)throw new Error(e.length+"/"+t);for(var n=0;n<e.length&&0==e[n];)n++;this.num=new Array(e.length-n+t);for(var i=0;i<e.length-n;i++)this.num[i]=e[i+n]}function r(e,t){this.totalCount=e,this.dataCount=t}function o(){this.buffer=[],this.length=0}function a(){var e=!1,t=navigator.userAgent;return/android/i.test(t)&&(e=!0,aMat=t.toString().match(/android ([0-9]\.[0-9])/i),aMat&&aMat[1]&&(e=parseFloat(aMat[1]))),e}e.prototype={getLength:function(){return this.parsedData.length},write:function(e){for(var t=0,n=this.parsedData.length;n>t;t++)e.put(this.parsedData[t],8)}},n.prototype={addData:function(t){var n=new e(t);this.dataList.push(n),this.dataCache=null},isDark:function(e,t){if(0>e||this.moduleCount<=e||0>t||this.moduleCount<=t)throw new Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(e,t){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var i=0;i<this.moduleCount;i++){this.modules[i]=new Array(this.moduleCount);for(var r=0;r<this.moduleCount;r++)this.modules[i][r]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),this.typeNumber>=7&&this.setupTypeNumber(e),null==this.dataCache&&(this.dataCache=n.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},setupPositionProbePattern:function(e,t){for(var n=-1;7>=n;n++)if(!(-1>=e+n||this.moduleCount<=e+n))for(var i=-1;7>=i;i++)-1>=t+i||this.moduleCount<=t+i||(this.modules[e+n][t+i]=n>=0&&6>=n&&(0==i||6==i)||i>=0&&6>=i&&(0==n||6==n)||n>=2&&4>=n&&i>=2&&4>=i)},getBestMaskPattern:function(){for(var e=0,t=0,n=0;8>n;n++){this.makeImpl(!0,n);var i=c.getLostPoint(this);(0==n||e>i)&&(e=i,t=n)}return t},createMovieClip:function(e,t,n){var i=e.createEmptyMovieClip(t,n);this.make();for(var r=0;r<this.modules.length;r++)for(var o=1*r,a=0;a<this.modules[r].length;a++){var s=1*a;this.modules[r][a]&&(i.beginFill(0,100),i.moveTo(s,o),i.lineTo(s+1,o),i.lineTo(s+1,o+1),i.lineTo(s,o+1),i.endFill())}return i},setupTimingPattern:function(){for(var e=8;e<this.moduleCount-8;e++)null==this.modules[e][6]&&(this.modules[e][6]=0==e%2);for(var t=8;t<this.moduleCount-8;t++)null==this.modules[6][t]&&(this.modules[6][t]=0==t%2)},setupPositionAdjustPattern:function(){for(var e=c.getPatternPosition(this.typeNumber),t=0;t<e.length;t++)for(var n=0;n<e.length;n++){var i=e[t],r=e[n];if(null==this.modules[i][r])for(var o=-2;2>=o;o++)for(var a=-2;2>=a;a++)this.modules[i+o][r+a]=-2==o||2==o||-2==a||2==a||0==o&&0==a}},setupTypeNumber:function(e){for(var t=c.getBCHTypeNumber(this.typeNumber),n=0;18>n;n++){var i=!e&&1==(1&t>>n);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=i}for(n=0;18>n;n++)i=!e&&1==(1&t>>n),this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=i},setupTypeInfo:function(e,t){for(var n=this.errorCorrectLevel<<3|t,i=c.getBCHTypeInfo(n),r=0;15>r;r++){var o=!e&&1==(1&i>>r);6>r?this.modules[r][8]=o:8>r?this.modules[r+1][8]=o:this.modules[this.moduleCount-15+r][8]=o}for(r=0;15>r;r++)o=!e&&1==(1&i>>r),8>r?this.modules[8][this.moduleCount-r-1]=o:9>r?this.modules[8][15-r-1+1]=o:this.modules[8][15-r-1]=o;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var n=-1,i=this.moduleCount-1,r=7,o=0,a=this.moduleCount-1;a>0;a-=2)for(6==a&&a--;;){for(var s=0;2>s;s++)if(null==this.modules[i][a-s]){var l=!1;o<e.length&&(l=1==(1&e[o]>>>r)),c.getMask(t,i,a-s)&&(l=!l),this.modules[i][a-s]=l,-1==--r&&(o++,r=7)}if(0>(i+=n)||this.moduleCount<=i){i-=n,n=-n;break}}}},n.PAD0=236,n.PAD1=17,n.createData=function(e,t,i){for(var a=r.getRSBlocks(e,t),s=new o,l=0;l<i.length;l++){var u=i[l];s.put(u.mode,4),s.put(u.getLength(),c.getLengthInBits(u.mode,e)),u.write(s)}var d=0;for(l=0;l<a.length;l++)d+=a[l].dataCount;if(s.getLengthInBits()>8*d)throw new Error("code length overflow. ("+s.getLengthInBits()+">"+8*d+")");for(s.getLengthInBits()+4<=8*d&&s.put(0,4);0!=s.getLengthInBits()%8;)s.putBit(!1);for(;!(s.getLengthInBits()>=8*d||(s.put(n.PAD0,8),s.getLengthInBits()>=8*d));)s.put(n.PAD1,8);return n.createBytes(s,a)},n.createBytes=function(e,t){for(var n=0,r=0,o=0,a=new Array(t.length),s=new Array(t.length),l=0;l<t.length;l++){var u=t[l].dataCount,d=t[l].totalCount-u;r=Math.max(r,u),o=Math.max(o,d),a[l]=new Array(u);for(var h=0;h<a[l].length;h++)a[l][h]=255&e.buffer[h+n];n+=u;var f=c.getErrorCorrectPolynomial(d),p=new i(a[l],f.getLength()-1).mod(f);for(s[l]=new Array(f.getLength()-1),h=0;h<s[l].length;h++){var m=h+p.getLength()-s[l].length;s[l][h]=m>=0?p.get(m):0}}var g=0;for(h=0;h<t.length;h++)g+=t[h].totalCount;var v=new Array(g),_=0;for(h=0;r>h;h++)for(l=0;l<t.length;l++)h<a[l].length&&(v[_++]=a[l][h]);for(h=0;o>h;h++)for(l=0;l<t.length;l++)h<s[l].length&&(v[_++]=s[l][h]);return v};for(var s={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},l={L:1,M:0,Q:3,H:2},u={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},c={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(e){for(var t=e<<10;c.getBCHDigit(t)-c.getBCHDigit(c.G15)>=0;)t^=c.G15<<c.getBCHDigit(t)-c.getBCHDigit(c.G15);return(e<<10|t)^c.G15_MASK},getBCHTypeNumber:function(e){for(var t=e<<12;c.getBCHDigit(t)-c.getBCHDigit(c.G18)>=0;)t^=c.G18<<c.getBCHDigit(t)-c.getBCHDigit(c.G18);return e<<12|t},getBCHDigit:function(e){for(var t=0;0!=e;)t++,e>>>=1;return t},getPatternPosition:function(e){return c.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case u.PATTERN000:return 0==(t+n)%2;case u.PATTERN001:return 0==t%2;case u.PATTERN010:return 0==n%3;case u.PATTERN011:return 0==(t+n)%3;case u.PATTERN100:return 0==(Math.floor(t/2)+Math.floor(n/3))%2;case u.PATTERN101:return 0==t*n%2+t*n%3;case u.PATTERN110:return 0==(t*n%2+t*n%3)%2;case u.PATTERN111:return 0==(t*n%3+(t+n)%2)%2;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new i([1],0),n=0;e>n;n++)t=t.multiply(new i([1,d.gexp(n)],0));return t},getLengthInBits:function(e,t){if(t>=1&&10>t)switch(e){case s.MODE_NUMBER:return 10;case s.MODE_ALPHA_NUM:return 9;case s.MODE_8BIT_BYTE:case s.MODE_KANJI:return 8;default:throw new Error("mode:"+e)}else if(27>t)switch(e){case s.MODE_NUMBER:return 12;case s.MODE_ALPHA_NUM:return 11;case s.MODE_8BIT_BYTE:return 16;case s.MODE_KANJI:return 10;default:throw new Error("mode:"+e)}else{if(!(41>t))throw new Error("type:"+t);switch(e){case s.MODE_NUMBER:return 14;case s.MODE_ALPHA_NUM:return 13;case s.MODE_8BIT_BYTE:return 16;case s.MODE_KANJI:return 12;default:throw new Error("mode:"+e)}}},getLostPoint:function(e){for(var t=e.getModuleCount(),n=0,i=0;t>i;i++)for(var r=0;t>r;r++){for(var o=0,a=e.isDark(i,r),s=-1;1>=s;s++)if(!(0>i+s||i+s>=t))for(var l=-1;1>=l;l++)0>r+l||r+l>=t||(0!=s||0!=l)&&a==e.isDark(i+s,r+l)&&o++;o>5&&(n+=3+o-5)}for(i=0;t-1>i;i++)for(r=0;t-1>r;r++){var u=0;e.isDark(i,r)&&u++,e.isDark(i+1,r)&&u++,e.isDark(i,r+1)&&u++,e.isDark(i+1,r+1)&&u++,(0==u||4==u)&&(n+=3)}for(i=0;t>i;i++)for(r=0;t-6>r;r++)e.isDark(i,r)&&!e.isDark(i,r+1)&&e.isDark(i,r+2)&&e.isDark(i,r+3)&&e.isDark(i,r+4)&&!e.isDark(i,r+5)&&e.isDark(i,r+6)&&(n+=40);for(r=0;t>r;r++)for(i=0;t-6>i;i++)e.isDark(i,r)&&!e.isDark(i+1,r)&&e.isDark(i+2,r)&&e.isDark(i+3,r)&&e.isDark(i+4,r)&&!e.isDark(i+5,r)&&e.isDark(i+6,r)&&(n+=40);var c=0;for(r=0;t>r;r++)for(i=0;t>i;i++)e.isDark(i,r)&&c++;return n+Math.abs(100*c/t/t-50)/5*10}},d={glog:function(e){if(1>e)throw new Error("glog("+e+")");return d.LOG_TABLE[e]},gexp:function(e){for(;0>e;)e+=255;for(;e>=256;)e-=255;return d.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},h=0;8>h;h++)d.EXP_TABLE[h]=1<<h;for(h=8;256>h;h++)d.EXP_TABLE[h]=d.EXP_TABLE[h-4]^d.EXP_TABLE[h-5]^d.EXP_TABLE[h-6]^d.EXP_TABLE[h-8];for(h=0;255>h;h++)d.LOG_TABLE[d.EXP_TABLE[h]]=h;i.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=new Array(this.getLength()+e.getLength()-1),n=0;n<this.getLength();n++)for(var r=0;r<e.getLength();r++)t[n+r]^=d.gexp(d.glog(this.get(n))+d.glog(e.get(r)));return new i(t,0)},mod:function(e){if(this.getLength()-e.getLength()<0)return this;for(var t=d.glog(this.get(0))-d.glog(e.get(0)),n=new Array(this.getLength()),r=0;r<this.getLength();r++)n[r]=this.get(r);for(r=0;r<e.getLength();r++)n[r]^=d.gexp(d.glog(e.get(r))+t);return new i(n,0).mod(e)}},r.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],r.getRSBlocks=function(e,t){var n=r.getRsBlockTable(e,t);if(null==n)throw new Error("bad rs block @ typeNumber:"+e+"/errorCorrectLevel:"+t);for(var i=n.length/3,o=[],a=0;i>a;a++)for(var s=n[3*a+0],l=n[3*a+1],u=n[3*a+2],c=0;s>c;c++)o.push(new r(l,u));return o},r.getRsBlockTable=function(e,t){switch(t){case l.L:return r.RS_BLOCK_TABLE[4*(e-1)+0];case l.M:return r.RS_BLOCK_TABLE[4*(e-1)+1];case l.Q:return r.RS_BLOCK_TABLE[4*(e-1)+2];case l.H:return r.RS_BLOCK_TABLE[4*(e-1)+3];default:return}},o.prototype={get:function(e){var t=Math.floor(e/8);return 1==(1&this.buffer[t]>>>7-e%8)},put:function(e,t){for(var n=0;t>n;n++)this.putBit(1==(1&e>>>t-n-1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};var f=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]],p=function(){var e=function(e,t){this._el=e,this._htOption=t};return e.prototype.draw=function(e){function t(e,t){var n=document.createElementNS("http://www.w3.org/2000/svg",e);for(var i in t)t.hasOwnProperty(i)&&n.setAttribute(i,t[i]);return n}var n=this._htOption,i=this._el,r=e.getModuleCount();Math.floor(n.width/r),Math.floor(n.height/r),this.clear();var o=t("svg",{viewBox:"0 0 "+String(r)+" "+String(r),width:"100%",height:"100%",fill:n.colorLight});o.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),i.appendChild(o),o.appendChild(t("rect",{fill:n.colorDark,width:"1",height:"1",id:"template"}));for(var a=0;r>a;a++)for(var s=0;r>s;s++)if(e.isDark(a,s)){var l=t("use",{x:String(a),y:String(s)});l.setAttributeNS("http://www.w3.org/1999/xlink","href","#template"),o.appendChild(l)}},e.prototype.clear=function(){for(;this._el.hasChildNodes();)this._el.removeChild(this._el.lastChild)},e}(),m="svg"===document.documentElement.tagName.toLowerCase()?p:"undefined"!=typeof CanvasRenderingContext2D?function(){function e(){this._elImage.src=this._elCanvas.toDataURL("image/png"),this._elImage.style.display="block",this._elCanvas.style.display="none"}function t(e,t){var n=this;if(n._fFail=t,n._fSuccess=e,null===n._bSupportDataURI){var i=document.createElement("img"),r=function(){n._bSupportDataURI=!1,n._fFail&&_fFail.call(n)};return i.onabort=r,i.onerror=r,i.onload=function(){n._bSupportDataURI=!0,n._fSuccess&&n._fSuccess.call(n)},void(i.src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==")}!0===n._bSupportDataURI&&n._fSuccess?n._fSuccess.call(n):!1===n._bSupportDataURI&&n._fFail&&n._fFail.call(n)}if(this._android&&this._android<=2.1){var n=1/window.devicePixelRatio,i=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(e,t,r,o,a,s,l,u){if("nodeName"in e&&/img/i.test(e.nodeName))for(var c=arguments.length-1;c>=1;c--)arguments[c]=arguments[c]*n;else void 0===u&&(arguments[1]*=n,arguments[2]*=n,arguments[3]*=n,arguments[4]*=n);i.apply(this,arguments)}}var r=function(e,t){this._bIsPainted=!1,this._android=a(),this._htOption=t,this._elCanvas=document.createElement("canvas"),this._elCanvas.width=t.width,this._elCanvas.height=t.height,e.appendChild(this._elCanvas),this._el=e,this._oContext=this._elCanvas.getContext("2d"),this._bIsPainted=!1,this._elImage=document.createElement("img"),this._elImage.style.display="none",this._el.appendChild(this._elImage),this._bSupportDataURI=null};return r.prototype.draw=function(e){var t=this._elImage,n=this._oContext,i=this._htOption,r=e.getModuleCount(),o=i.width/r,a=i.height/r,s=Math.round(o),l=Math.round(a);t.style.display="none",this.clear();for(var u=0;r>u;u++)for(var c=0;r>c;c++){var d=e.isDark(u,c),h=c*o,f=u*a;n.strokeStyle=d?i.colorDark:i.colorLight,n.lineWidth=1,n.fillStyle=d?i.colorDark:i.colorLight,n.fillRect(h,f,o,a),n.strokeRect(Math.floor(h)+.5,Math.floor(f)+.5,s,l),n.strokeRect(Math.ceil(h)-.5,Math.ceil(f)-.5,s,l)}this._bIsPainted=!0},r.prototype.makeImage=function(){this._bIsPainted&&t.call(this,e)},r.prototype.isPainted=function(){return this._bIsPainted},r.prototype.clear=function(){this._oContext.clearRect(0,0,this._elCanvas.width,this._elCanvas.height),this._bIsPainted=!1},r.prototype.round=function(e){return e?Math.floor(1e3*e)/1e3:e},r}():function(){var e=function(e,t){this._el=e,this._htOption=t};return e.prototype.draw=function(e){for(var t=this._htOption,n=this._el,i=e.getModuleCount(),r=Math.floor(t.width/i),o=Math.floor(t.height/i),a=['<table style="border:0;border-collapse:collapse;">'],s=0;i>s;s++){a.push("<tr>");for(var l=0;i>l;l++)a.push('<td style="border:0;border-collapse:collapse;padding:0;margin:0;width:'+r+"px;height:"+o+"px;background-color:"+(e.isDark(s,l)?t.colorDark:t.colorLight)+';"></td>');a.push("</tr>")}a.push("</table>"),n.innerHTML=a.join("");var u=n.childNodes[0],c=(t.width-u.offsetWidth)/2,d=(t.height-u.offsetHeight)/2;c>0&&d>0&&(u.style.margin=d+"px "+c+"px")},e.prototype.clear=function(){this._el.innerHTML=""},e}();(t=function(e,t){if(this._htOption={width:256,height:256,typeNumber:4,colorDark:"#000000",colorLight:"#ffffff",correctLevel:l.H},"string"==typeof t&&(t={text:t}),t)for(var n in t)this._htOption[n]=t[n];"string"==typeof e&&(e=document.getElementById(e)),this._android=a(),this._el=e,this._oQRCode=null,this._oDrawing=new m(this._el,this._htOption),this._htOption.text&&this.makeCode(this._htOption.text)}).prototype.makeCode=function(e){this._oQRCode=new n(function(e,t){for(var n=1,i=function(e){var t=encodeURI(e).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return t.length+(t.length!=e?3:0)}(e),r=0,o=f.length;o>=r;r++){var a=0;switch(t){case l.L:a=f[r][0];break;case l.M:a=f[r][1];break;case l.Q:a=f[r][2];break;case l.H:a=f[r][3]}if(a>=i)break;n++}if(n>f.length)throw new Error("Too long data");return n}(e,this._htOption.correctLevel),this._htOption.correctLevel),this._oQRCode.addData(e),this._oQRCode.make(),this._el.title=e,this._oDrawing.draw(this._oQRCode),this.makeImage()},t.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||this._android>=3)&&this._oDrawing.makeImage()},t.prototype.clear=function(){this._oDrawing.clear()},t.CorrectLevel=l}(),
+/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */
+function(e){"use strict";function t(e){return parseInt(e)===e}function n(e){if(!t(e.length))return!1;for(var n=0;n<e.length;n++)if(!t(e[n])||e[n]<0||e[n]>255)return!1;return!0}function i(e,i){if(e.buffer&&"Uint8Array"===e.name)return i&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!n(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(t(e.length)&&n(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function r(e){return new Uint8Array(e)}function o(e,t,n,i,r){null==i&&null==r||(e=e.slice?e.slice(i,r):Array.prototype.slice.call(e,i,r)),t.set(e,n)}var a,s={toBytes:function(e){var t=[],n=0;for(e=encodeURI(e);n<e.length;){var r=e.charCodeAt(n++);37===r?(t.push(parseInt(e.substr(n,2),16)),n+=2):t.push(r)}return i(t)},fromBytes:function(e){for(var t=[],n=0;n<e.length;){var i=e[n];i<128?(t.push(String.fromCharCode(i)),n++):i>191&&i<224?(t.push(String.fromCharCode((31&i)<<6|63&e[n+1])),n+=2):(t.push(String.fromCharCode((15&i)<<12|(63&e[n+1])<<6|63&e[n+2])),n+=3)}return t.join("")}},l=(a="0123456789abcdef",{toBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},fromBytes:function(e){for(var t=[],n=0;n<e.length;n++){var i=e[n];t.push(a[(240&i)>>4]+a[15&i])}return t.join("")}}),u={16:10,24:12,32:14},c=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],d=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],h=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],f=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],p=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],m=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],v=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],_=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],y=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],b=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],w=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],L=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],M=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],k=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function x(e){for(var t=[],n=0;n<e.length;n+=4)t.push(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3]);return t}var S=function(e){if(!(this instanceof S))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};S.prototype._prepare=function(){var e=u[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var n,i=4*(e+1),r=this.key.length/4,o=x(this.key);for(t=0;t<r;t++)n=t>>2,this._Ke[n][t%4]=o[t],this._Kd[e-n][t%4]=o[t];for(var a,s=0,l=r;l<i;){if(a=o[r-1],o[0]^=d[a>>16&255]<<24^d[a>>8&255]<<16^d[255&a]<<8^d[a>>24&255]^c[s]<<24,s+=1,8!=r)for(t=1;t<r;t++)o[t]^=o[t-1];else{for(t=1;t<r/2;t++)o[t]^=o[t-1];for(a=o[r/2-1],o[r/2]^=d[255&a]^d[a>>8&255]<<8^d[a>>16&255]<<16^d[a>>24&255]<<24,t=r/2+1;t<r;t++)o[t]^=o[t-1]}for(t=0;t<r&&l<i;)h=l>>2,f=l%4,this._Ke[h][f]=o[t],this._Kd[e-h][f]=o[t++],l++}for(var h=1;h<e;h++)for(var f=0;f<4;f++)a=this._Kd[h][f],this._Kd[h][f]=w[a>>24&255]^L[a>>16&255]^M[a>>8&255]^k[255&a]},S.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,n=[0,0,0,0],i=x(e),o=0;o<4;o++)i[o]^=this._Ke[0][o];for(var a=1;a<t;a++){for(o=0;o<4;o++)n[o]=f[i[o]>>24&255]^p[i[(o+1)%4]>>16&255]^m[i[(o+2)%4]>>8&255]^g[255&i[(o+3)%4]]^this._Ke[a][o];i=n.slice()}var s,l=r(16);for(o=0;o<4;o++)s=this._Ke[t][o],l[4*o]=255&(d[i[o]>>24&255]^s>>24),l[4*o+1]=255&(d[i[(o+1)%4]>>16&255]^s>>16),l[4*o+2]=255&(d[i[(o+2)%4]>>8&255]^s>>8),l[4*o+3]=255&(d[255&i[(o+3)%4]]^s);return l},S.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,n=[0,0,0,0],i=x(e),o=0;o<4;o++)i[o]^=this._Kd[0][o];for(var a=1;a<t;a++){for(o=0;o<4;o++)n[o]=v[i[o]>>24&255]^_[i[(o+3)%4]>>16&255]^y[i[(o+2)%4]>>8&255]^b[255&i[(o+1)%4]]^this._Kd[a][o];i=n.slice()}var s,l=r(16);for(o=0;o<4;o++)s=this._Kd[t][o],l[4*o]=255&(h[i[o]>>24&255]^s>>24),l[4*o+1]=255&(h[i[(o+3)%4]>>16&255]^s>>16),l[4*o+2]=255&(h[i[(o+2)%4]>>8&255]^s>>8),l[4*o+3]=255&(h[255&i[(o+1)%4]]^s);return l};var T=function(e){if(!(this instanceof T))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new S(e)};T.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=r(e.length),n=r(16),a=0;a<e.length;a+=16)o(e,n,0,a,a+16),o(n=this._aes.encrypt(n),t,a);return t},T.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=r(e.length),n=r(16),a=0;a<e.length;a+=16)o(e,n,0,a,a+16),o(n=this._aes.decrypt(n),t,a);return t};var $=function(e,t){if(!(this instanceof $))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=r(16);this._lastCipherblock=i(t,!0),this._aes=new S(e)};$.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=r(e.length),n=r(16),a=0;a<e.length;a+=16){o(e,n,0,a,a+16);for(var s=0;s<16;s++)n[s]^=this._lastCipherblock[s];this._lastCipherblock=this._aes.encrypt(n),o(this._lastCipherblock,t,a)}return t},$.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=r(e.length),n=r(16),a=0;a<e.length;a+=16){o(e,n,0,a,a+16),n=this._aes.decrypt(n);for(var s=0;s<16;s++)t[a+s]=n[s]^this._lastCipherblock[s];o(e,this._lastCipherblock,0,a,a+16)}return t};var D=function(e,t,n){if(!(this instanceof D))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=r(16);n||(n=1),this.segmentSize=n,this._shiftRegister=i(t,!0),this._aes=new S(e)};D.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(n,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n},D.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(e,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n};var C=function(e,t){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=r(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new S(e)};C.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[n]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},C.prototype.decrypt=C.prototype.encrypt;var E=function(e){if(!(this instanceof E))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=r(16),this.setValue(e)):this.setBytes(e)};E.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");if(e>Number.MAX_SAFE_INTEGER)throw new Error("integer value out of safe range");for(var t=15;t>=0;--t)this._counter[t]=e%256,e=parseInt(e/256)},E.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},E.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var A=function(e,t){if(!(this instanceof A))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof E||(t=new E(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new S(e)};A.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[n]^=this._remainingCounter[this._remainingCounterIndex++];return t},A.prototype.decrypt=A.prototype.encrypt;var P={AES:S,Counter:E,ModeOfOperation:{ecb:T,cbc:$,cfb:D,ofb:C,ctr:A},utils:{hex:l,utf8:s},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,n=r(e.length+t);o(e,n);for(var a=e.length;a<n.length;a++)n[a]=t;return n},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var n=e.length-t,a=0;a<t;a++)if(e[n+a]!==t)throw new Error("PKCS#7 invalid padding byte");var s=r(n);return o(e,s,0,0,n),s}}},_arrayTest:{coerceArray:i,createArray:r,copyArray:o}};"undefined"!=typeof exports?module.exports=P:"function"==typeof define&&define.amd?define([],(function(){return P})):(e.aesjs&&(P._aesjs=e.aesjs),e.aesjs=P)}(this),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(function(){try{return require("moment")}catch(e){}}()):"function"==typeof define&&define.amd?define(["require"],(function(e){return t(function(){try{return e("moment")}catch(e){}}())})):(e=e||self).Chart=t(e.moment)}(this,(function(e){"use strict";e=e&&e.hasOwnProperty("default")?e.default:e;var t={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},n=function(e,t){return e(t={exports:{}}),t.exports}((function(e){var n={};for(var i in t)t.hasOwnProperty(i)&&(n[t[i]]=i);var r=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var o in r)if(r.hasOwnProperty(o)){if(!("channels"in r[o]))throw new Error("missing channels property: "+o);if(!("labels"in r[o]))throw new Error("missing channel labels property: "+o);if(r[o].labels.length!==r[o].channels)throw new Error("channel and label counts mismatch: "+o);var a=r[o].channels,s=r[o].labels;delete r[o].channels,delete r[o].labels,Object.defineProperty(r[o],"channels",{value:a}),Object.defineProperty(r[o],"labels",{value:s})}r.rgb.hsl=function(e){var t,n,i=e[0]/255,r=e[1]/255,o=e[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),l=s-a;return s===a?t=0:i===s?t=(r-o)/l:r===s?t=2+(o-i)/l:o===s&&(t=4+(i-r)/l),(t=Math.min(60*t,360))<0&&(t+=360),n=(a+s)/2,[t,100*(s===a?0:n<=.5?l/(s+a):l/(2-s-a)),100*n]},r.rgb.hsv=function(e){var t,n,i,r,o,a=e[0]/255,s=e[1]/255,l=e[2]/255,u=Math.max(a,s,l),c=u-Math.min(a,s,l),d=function(e){return(u-e)/6/c+.5};return 0===c?r=o=0:(o=c/u,t=d(a),n=d(s),i=d(l),a===u?r=i-n:s===u?r=1/3+t-i:l===u&&(r=2/3+n-t),r<0?r+=1:r>1&&(r-=1)),[360*r,100*o,100*u]},r.rgb.hwb=function(e){var t=e[0],n=e[1],i=e[2];return[r.rgb.hsl(e)[0],1/255*Math.min(t,Math.min(n,i))*100,100*(i=1-1/255*Math.max(t,Math.max(n,i)))]},r.rgb.cmyk=function(e){var t,n=e[0]/255,i=e[1]/255,r=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-i,1-r)))/(1-t)||0),100*((1-i-t)/(1-t)||0),100*((1-r-t)/(1-t)||0),100*t]},r.rgb.keyword=function(e){var i=n[e];if(i)return i;var r,o,a,s=1/0;for(var l in t)if(t.hasOwnProperty(l)){var u=(o=e,a=t[l],Math.pow(o[0]-a[0],2)+Math.pow(o[1]-a[1],2)+Math.pow(o[2]-a[2],2));u<s&&(s=u,r=l)}return r},r.keyword.rgb=function(e){return t[e]},r.rgb.xyz=function(e){var t=e[0]/255,n=e[1]/255,i=e[2]/255;return[100*(.4124*(t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*t+.7152*n+.0722*i),100*(.0193*t+.1192*n+.9505*i)]},r.rgb.lab=function(e){var t=r.rgb.xyz(e),n=t[0],i=t[1],o=t[2];return i/=100,o/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(n-i),200*(i-(o=o>.008856?Math.pow(o,1/3):7.787*o+16/116))]},r.hsl.rgb=function(e){var t,n,i,r,o,a=e[0]/360,s=e[1]/100,l=e[2]/100;if(0===s)return[o=255*l,o,o];t=2*l-(n=l<.5?l*(1+s):l+s-l*s),r=[0,0,0];for(var u=0;u<3;u++)(i=a+1/3*-(u-1))<0&&i++,i>1&&i--,o=6*i<1?t+6*(n-t)*i:2*i<1?n:3*i<2?t+(n-t)*(2/3-i)*6:t,r[u]=255*o;return r},r.hsl.hsv=function(e){var t=e[0],n=e[1]/100,i=e[2]/100,r=n,o=Math.max(i,.01);return n*=(i*=2)<=1?i:2-i,r*=o<=1?o:2-o,[t,100*(0===i?2*r/(o+r):2*n/(i+n)),(i+n)/2*100]},r.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,i=e[2]/100,r=Math.floor(t)%6,o=t-Math.floor(t),a=255*i*(1-n),s=255*i*(1-n*o),l=255*i*(1-n*(1-o));switch(i*=255,r){case 0:return[i,l,a];case 1:return[s,i,a];case 2:return[a,i,l];case 3:return[a,s,i];case 4:return[l,a,i];case 5:return[i,a,s]}},r.hsv.hsl=function(e){var t,n,i,r=e[0],o=e[1]/100,a=e[2]/100,s=Math.max(a,.01);return i=(2-o)*a,n=o*s,[r,100*(n=(n/=(t=(2-o)*s)<=1?t:2-t)||0),100*(i/=2)]},r.hwb.rgb=function(e){var t,n,i,r,o,a,s,l=e[0]/360,u=e[1]/100,c=e[2]/100,d=u+c;switch(d>1&&(u/=d,c/=d),i=6*l-(t=Math.floor(6*l)),0!=(1&t)&&(i=1-i),r=u+i*((n=1-c)-u),t){default:case 6:case 0:o=n,a=r,s=u;break;case 1:o=r,a=n,s=u;break;case 2:o=u,a=n,s=r;break;case 3:o=u,a=r,s=n;break;case 4:o=r,a=u,s=n;break;case 5:o=n,a=u,s=r}return[255*o,255*a,255*s]},r.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,i=e[2]/100,r=e[3]/100;return[255*(1-Math.min(1,t*(1-r)+r)),255*(1-Math.min(1,n*(1-r)+r)),255*(1-Math.min(1,i*(1-r)+r))]},r.xyz.rgb=function(e){var t,n,i,r=e[0]/100,o=e[1]/100,a=e[2]/100;return n=-.9689*r+1.8758*o+.0415*a,i=.0557*r+-.204*o+1.057*a,t=(t=3.2406*r+-1.5372*o+-.4986*a)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:12.92*i,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(i=Math.min(Math.max(0,i),1))]},r.xyz.lab=function(e){var t=e[0],n=e[1],i=e[2];return n/=100,i/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},r.lab.xyz=function(e){var t,n,i,r=e[0];t=e[1]/500+(n=(r+16)/116),i=n-e[2]/200;var o=Math.pow(n,3),a=Math.pow(t,3),s=Math.pow(i,3);return n=o>.008856?o:(n-16/116)/7.787,t=a>.008856?a:(t-16/116)/7.787,i=s>.008856?s:(i-16/116)/7.787,[t*=95.047,n*=100,i*=108.883]},r.lab.lch=function(e){var t,n=e[0],i=e[1],r=e[2];return(t=360*Math.atan2(r,i)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(i*i+r*r),t]},r.lch.lab=function(e){var t,n=e[0],i=e[1];return t=e[2]/360*2*Math.PI,[n,i*Math.cos(t),i*Math.sin(t)]},r.rgb.ansi16=function(e){var t=e[0],n=e[1],i=e[2],o=1 in arguments?arguments[1]:r.rgb.hsv(e)[2];if(0===(o=Math.round(o/50)))return 30;var a=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===o&&(a+=60),a},r.hsv.ansi16=function(e){return r.rgb.ansi16(r.hsv.rgb(e),e[2])},r.rgb.ansi256=function(e){var t=e[0],n=e[1],i=e[2];return t===n&&n===i?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(i/255*5)},r.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},r.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},r.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},r.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map((function(e){return e+e})).join(""));var i=parseInt(n,16);return[i>>16&255,i>>8&255,255&i]},r.rgb.hcg=function(e){var t,n=e[0]/255,i=e[1]/255,r=e[2]/255,o=Math.max(Math.max(n,i),r),a=Math.min(Math.min(n,i),r),s=o-a;return t=s<=0?0:o===n?(i-r)/s%6:o===i?2+(r-n)/s:4+(n-i)/s+4,t/=6,[360*(t%=1),100*s,100*(s<1?a/(1-s):0)]},r.hsl.hcg=function(e){var t,n=e[1]/100,i=e[2]/100,r=0;return(t=i<.5?2*n*i:2*n*(1-i))<1&&(r=(i-.5*t)/(1-t)),[e[0],100*t,100*r]},r.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,i=t*n,r=0;return i<1&&(r=(n-i)/(1-i)),[e[0],100*i,100*r]},r.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,i=e[2]/100;if(0===n)return[255*i,255*i,255*i];var r,o=[0,0,0],a=t%1*6,s=a%1,l=1-s;switch(Math.floor(a)){case 0:o[0]=1,o[1]=s,o[2]=0;break;case 1:o[0]=l,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=s;break;case 3:o[0]=0,o[1]=l,o[2]=1;break;case 4:o[0]=s,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=l}return r=(1-n)*i,[255*(n*o[0]+r),255*(n*o[1]+r),255*(n*o[2]+r)]},r.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),i=0;return n>0&&(i=t/n),[e[0],100*i,100*n]},r.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,i=0;return n>0&&n<.5?i=t/(2*n):n>=.5&&n<1&&(i=t/(2*(1-n))),[e[0],100*i,100*n]},r.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},r.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,i=n-t,r=0;return i<1&&(r=(n-i)/(1-i)),[e[0],100*i,100*r]},r.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},r.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},r.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},r.gray.hsl=r.gray.hsv=function(e){return[0,0,e[0]]},r.gray.hwb=function(e){return[0,100,e[0]]},r.gray.cmyk=function(e){return[0,0,0,e[0]]},r.gray.lab=function(e){return[e[0],0,0]},r.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},r.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}));function i(e){var t=function(){for(var e={},t=Object.keys(n),i=t.length,r=0;r<i;r++)e[t[r]]={distance:-1,parent:null};return e}(),i=[e];for(t[e].distance=0;i.length;)for(var r=i.pop(),o=Object.keys(n[r]),a=o.length,s=0;s<a;s++){var l=o[s],u=t[l];-1===u.distance&&(u.distance=t[r].distance+1,u.parent=r,i.unshift(l))}return t}function r(e,t){return function(n){return t(e(n))}}function o(e,t){for(var i=[t[e].parent,e],o=n[t[e].parent][e],a=t[e].parent;t[a].parent;)i.unshift(t[a].parent),o=r(n[t[a].parent][a],o),a=t[a].parent;return o.conversion=i,o}n.rgb,n.hsl,n.hsv,n.hwb,n.cmyk,n.xyz,n.lab,n.lch,n.hex,n.keyword,n.ansi16,n.ansi256,n.hcg,n.apple,n.gray;var a={};Object.keys(n).forEach((function(e){a[e]={},Object.defineProperty(a[e],"channels",{value:n[e].channels}),Object.defineProperty(a[e],"labels",{value:n[e].labels});var t=function(e){for(var t=i(e),n={},r=Object.keys(t),a=r.length,s=0;s<a;s++){var l=r[s];null!==t[l].parent&&(n[l]=o(l,t))}return n}(e);Object.keys(t).forEach((function(n){var i=t[n];a[e][n]=function(e){var t=function(t){if(null==t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var i=n.length,r=0;r<i;r++)n[r]=Math.round(n[r]);return n};return"conversion"in e&&(t.conversion=e.conversion),t}(i),a[e][n].raw=function(e){var t=function(t){return null==t?t:(arguments.length>1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(i)}))}));var s=a,l={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},u={getRgba:c,getHsla:d,getRgb:function(e){var t=c(e);return t&&t.slice(0,3)},getHsl:function(e){var t=d(e);return t&&t.slice(0,3)},getHwb:h,getAlpha:function(e){var t=c(e);return t?t[3]:(t=d(e))?t[3]:(t=h(e))?t[3]:void 0},hexString:function(e,t){return t=void 0!==t&&3===e.length?t:e[3],"#"+v(e[0])+v(e[1])+v(e[2])+(t>=0&&t<1?v(Math.round(255*t)):"")},rgbString:function(e,t){return t<1||e[3]&&e[3]<1?f(e,t):"rgb("+e[0]+", "+e[1]+", "+e[2]+")"},rgbaString:f,percentString:function(e,t){return t<1||e[3]&&e[3]<1?p(e,t):"rgb("+Math.round(e[0]/255*100)+"%, "+Math.round(e[1]/255*100)+"%, "+Math.round(e[2]/255*100)+"%)"},percentaString:p,hslString:function(e,t){return t<1||e[3]&&e[3]<1?m(e,t):"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)"},hslaString:m,hwbString:function(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+(void 0!==t&&1!==t?", "+t:"")+")"},keyword:function(e){return _[e.slice(0,3)]}};function c(e){if(e){var t=[0,0,0],n=1,i=e.match(/^#([a-fA-F0-9]{3,4})$/i),r="";if(i){r=(i=i[1])[3];for(var o=0;o<t.length;o++)t[o]=parseInt(i[o]+i[o],16);r&&(n=Math.round(parseInt(r+r,16)/255*100)/100)}else if(i=e.match(/^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i)){for(r=i[2],i=i[1],o=0;o<t.length;o++)t[o]=parseInt(i.slice(2*o,2*o+2),16);r&&(n=Math.round(parseInt(r,16)/255*100)/100)}else if(i=e.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<t.length;o++)t[o]=parseInt(i[o+1]);n=parseFloat(i[4])}else if(i=e.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<t.length;o++)t[o]=Math.round(2.55*parseFloat(i[o+1]));n=parseFloat(i[4])}else if(i=e.match(/(\w+)/)){if("transparent"==i[1])return[0,0,0,0];if(!(t=l[i[1]]))return}for(o=0;o<t.length;o++)t[o]=g(t[o],0,255);return n=n||0==n?g(n,0,1):1,t[3]=n,t}}function d(e){if(e){var t=e.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(t){var n=parseFloat(t[4]);return[g(parseInt(t[1]),0,360),g(parseFloat(t[2]),0,100),g(parseFloat(t[3]),0,100),g(isNaN(n)?1:n,0,1)]}}}function h(e){if(e){var t=e.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(t){var n=parseFloat(t[4]);return[g(parseInt(t[1]),0,360),g(parseFloat(t[2]),0,100),g(parseFloat(t[3]),0,100),g(isNaN(n)?1:n,0,1)]}}}function f(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"rgba("+e[0]+", "+e[1]+", "+e[2]+", "+t+")"}function p(e,t){return"rgba("+Math.round(e[0]/255*100)+"%, "+Math.round(e[1]/255*100)+"%, "+Math.round(e[2]/255*100)+"%, "+(t||e[3]||1)+")"}function m(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+t+")"}function g(e,t,n){return Math.min(Math.max(t,e),n)}function v(e){var t=e.toString(16).toUpperCase();return t.length<2?"0"+t:t}var _={};for(var y in l)_[l[y]]=y;var b=function(e){return e instanceof b?e:this instanceof b?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof e?(t=u.getRgba(e))?this.setValues("rgb",t):(t=u.getHsla(e))?this.setValues("hsl",t):(t=u.getHwb(e))&&this.setValues("hwb",t):"object"==typeof e&&(void 0!==(t=e).r||void 0!==t.red?this.setValues("rgb",t):void 0!==t.l||void 0!==t.lightness?this.setValues("hsl",t):void 0!==t.v||void 0!==t.value?this.setValues("hsv",t):void 0!==t.w||void 0!==t.whiteness?this.setValues("hwb",t):void 0===t.c&&void 0===t.cyan||this.setValues("cmyk",t)))):new b(e);var t};b.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var e=this.values;return 1!==e.alpha?e.hwb.concat([e.alpha]):e.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var e=this.values;return e.rgb.concat([e.alpha])},hslaArray:function(){var e=this.values;return e.hsl.concat([e.alpha])},alpha:function(e){return void 0===e?this.values.alpha:(this.setValues("alpha",e),this)},red:function(e){return this.setChannel("rgb",0,e)},green:function(e){return this.setChannel("rgb",1,e)},blue:function(e){return this.setChannel("rgb",2,e)},hue:function(e){return e&&(e=(e%=360)<0?360+e:e),this.setChannel("hsl",0,e)},saturation:function(e){return this.setChannel("hsl",1,e)},lightness:function(e){return this.setChannel("hsl",2,e)},saturationv:function(e){return this.setChannel("hsv",1,e)},whiteness:function(e){return this.setChannel("hwb",1,e)},blackness:function(e){return this.setChannel("hwb",2,e)},value:function(e){return this.setChannel("hsv",2,e)},cyan:function(e){return this.setChannel("cmyk",0,e)},magenta:function(e){return this.setChannel("cmyk",1,e)},yellow:function(e){return this.setChannel("cmyk",2,e)},black:function(e){return this.setChannel("cmyk",3,e)},hexString:function(){return u.hexString(this.values.rgb)},rgbString:function(){return u.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return u.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return u.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return u.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return u.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return u.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return u.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var e=this.values.rgb;return e[0]<<16|e[1]<<8|e[2]},luminosity:function(){for(var e=this.values.rgb,t=[],n=0;n<e.length;n++){var i=e[n]/255;t[n]=i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4)}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrast:function(e){var t=this.luminosity(),n=e.luminosity();return t>n?(t+.05)/(n+.05):(n+.05)/(t+.05)},level:function(e){var t=this.contrast(e);return t>=7.1?"AAA":t>=4.5?"AA":""},dark:function(){var e=this.values.rgb;return(299*e[0]+587*e[1]+114*e[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var e=[],t=0;t<3;t++)e[t]=255-this.values.rgb[t];return this.setValues("rgb",e),this},lighten:function(e){var t=this.values.hsl;return t[2]+=t[2]*e,this.setValues("hsl",t),this},darken:function(e){var t=this.values.hsl;return t[2]-=t[2]*e,this.setValues("hsl",t),this},saturate:function(e){var t=this.values.hsl;return t[1]+=t[1]*e,this.setValues("hsl",t),this},desaturate:function(e){var t=this.values.hsl;return t[1]-=t[1]*e,this.setValues("hsl",t),this},whiten:function(e){var t=this.values.hwb;return t[1]+=t[1]*e,this.setValues("hwb",t),this},blacken:function(e){var t=this.values.hwb;return t[2]+=t[2]*e,this.setValues("hwb",t),this},greyscale:function(){var e=this.values.rgb,t=.3*e[0]+.59*e[1]+.11*e[2];return this.setValues("rgb",[t,t,t]),this},clearer:function(e){var t=this.values.alpha;return this.setValues("alpha",t-t*e),this},opaquer:function(e){var t=this.values.alpha;return this.setValues("alpha",t+t*e),this},rotate:function(e){var t=this.values.hsl,n=(t[0]+e)%360;return t[0]=n<0?360+n:n,this.setValues("hsl",t),this},mix:function(e,t){var n=e,i=void 0===t?.5:t,r=2*i-1,o=this.alpha()-n.alpha(),a=((r*o==-1?r:(r+o)/(1+r*o))+1)/2,s=1-a;return this.rgb(a*this.red()+s*n.red(),a*this.green()+s*n.green(),a*this.blue()+s*n.blue()).alpha(this.alpha()*i+n.alpha()*(1-i))},toJSON:function(){return this.rgb()},clone:function(){var e,t,n=new b,i=this.values,r=n.values;for(var o in i)i.hasOwnProperty(o)&&(e=i[o],"[object Array]"===(t={}.toString.call(e))?r[o]=e.slice(0):"[object Number]"===t?r[o]=e:console.error("unexpected color value:",e));return n}},b.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},b.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},b.prototype.getValues=function(e){for(var t=this.values,n={},i=0;i<e.length;i++)n[e.charAt(i)]=t[e][i];return 1!==t.alpha&&(n.a=t.alpha),n},b.prototype.setValues=function(e,t){var n,i,r=this.values,o=this.spaces,a=this.maxes,l=1;if(this.valid=!0,"alpha"===e)l=t;else if(t.length)r[e]=t.slice(0,e.length),l=t[e.length];else if(void 0!==t[e.charAt(0)]){for(n=0;n<e.length;n++)r[e][n]=t[e.charAt(n)];l=t.a}else if(void 0!==t[o[e][0]]){var u=o[e];for(n=0;n<e.length;n++)r[e][n]=t[u[n]];l=t.alpha}if(r.alpha=Math.max(0,Math.min(1,void 0===l?r.alpha:l)),"alpha"===e)return!1;for(n=0;n<e.length;n++)i=Math.max(0,Math.min(a[e][n],r[e][n])),r[e][n]=Math.round(i);for(var c in o)c!==e&&(r[c]=s[e][c](r[e]));return!0},b.prototype.setSpace=function(e,t){var n=t[0];return void 0===n?this.getValues(e):("number"==typeof n&&(n=Array.prototype.slice.call(t)),this.setValues(e,n),this)},b.prototype.setChannel=function(e,t,n){var i=this.values[e];return void 0===n?i[t]:n===i[t]?this:(i[t]=n,this.setValues(e,i),this)},"undefined"!=typeof window&&(window.Color=b);var w,L=b,M={noop:function(){},uid:(w=0,function(){return w++}),isNullOrUndef:function(e){return null==e},isArray:function(e){if(Array.isArray&&Array.isArray(e))return!0;var t=Object.prototype.toString.call(e);return"[object"===t.substr(0,7)&&"Array]"===t.substr(-6)},isObject:function(e){return null!==e&&"[object Object]"===Object.prototype.toString.call(e)},isFinite:function(e){return("number"==typeof e||e instanceof Number)&&isFinite(e)},valueOrDefault:function(e,t){return void 0===e?t:e},valueAtIndexOrDefault:function(e,t,n){return M.valueOrDefault(M.isArray(e)?e[t]:e,n)},callback:function(e,t,n){if(e&&"function"==typeof e.call)return e.apply(n,t)},each:function(e,t,n,i){var r,o,a;if(M.isArray(e))if(o=e.length,i)for(r=o-1;r>=0;r--)t.call(n,e[r],r);else for(r=0;r<o;r++)t.call(n,e[r],r);else if(M.isObject(e))for(o=(a=Object.keys(e)).length,r=0;r<o;r++)t.call(n,e[a[r]],a[r])},arrayEquals:function(e,t){var n,i,r,o;if(!e||!t||e.length!==t.length)return!1;for(n=0,i=e.length;n<i;++n)if(r=e[n],o=t[n],r instanceof Array&&o instanceof Array){if(!M.arrayEquals(r,o))return!1}else if(r!==o)return!1;return!0},clone:function(e){if(M.isArray(e))return e.map(M.clone);if(M.isObject(e)){for(var t={},n=Object.keys(e),i=n.length,r=0;r<i;++r)t[n[r]]=M.clone(e[n[r]]);return t}return e},_merger:function(e,t,n,i){var r=t[e],o=n[e];M.isObject(r)&&M.isObject(o)?M.merge(r,o,i):t[e]=M.clone(o)},_mergerIf:function(e,t,n){var i=t[e],r=n[e];M.isObject(i)&&M.isObject(r)?M.mergeIf(i,r):t.hasOwnProperty(e)||(t[e]=M.clone(r))},merge:function(e,t,n){var i,r,o,a,s,l=M.isArray(t)?t:[t],u=l.length;if(!M.isObject(e))return e;for(i=(n=n||{}).merger||M._merger,r=0;r<u;++r)if(t=l[r],M.isObject(t))for(s=0,a=(o=Object.keys(t)).length;s<a;++s)i(o[s],e,t,n);return e},mergeIf:function(e,t){return M.merge(e,t,{merger:M._mergerIf})},extend:Object.assign||function(e){return M.merge(e,[].slice.call(arguments,1),{merger:function(e,t,n){t[e]=n[e]}})},inherits:function(e){var t=this,n=e&&e.hasOwnProperty("constructor")?e.constructor:function(){return t.apply(this,arguments)},i=function(){this.constructor=n};return i.prototype=t.prototype,n.prototype=new i,n.extend=M.inherits,e&&M.extend(n.prototype,e),n.__super__=t.prototype,n},_deprecated:function(e,t,n,i){void 0!==t&&console.warn(e+': "'+n+'" is deprecated. Please use "'+i+'" instead')}},k=M;M.callCallback=M.callback,M.indexOf=function(e,t,n){return Array.prototype.indexOf.call(e,t,n)},M.getValueOrDefault=M.valueOrDefault,M.getValueAtIndexOrDefault=M.valueAtIndexOrDefault;var x={linear:function(e){return e},easeInQuad:function(e){return e*e},easeOutQuad:function(e){return-e*(e-2)},easeInOutQuad:function(e){return(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1)},easeInCubic:function(e){return e*e*e},easeOutCubic:function(e){return(e-=1)*e*e+1},easeInOutCubic:function(e){return(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},easeInQuart:function(e){return e*e*e*e},easeOutQuart:function(e){return-((e-=1)*e*e*e-1)},easeInOutQuart:function(e){return(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},easeInQuint:function(e){return e*e*e*e*e},easeOutQuint:function(e){return(e-=1)*e*e*e*e+1},easeInOutQuint:function(e){return(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},easeInSine:function(e){return 1-Math.cos(e*(Math.PI/2))},easeOutSine:function(e){return Math.sin(e*(Math.PI/2))},easeInOutSine:function(e){return-.5*(Math.cos(Math.PI*e)-1)},easeInExpo:function(e){return 0===e?0:Math.pow(2,10*(e-1))},easeOutExpo:function(e){return 1===e?1:1-Math.pow(2,-10*e)},easeInOutExpo:function(e){return 0===e?0:1===e?1:(e/=.5)<1?.5*Math.pow(2,10*(e-1)):.5*(2-Math.pow(2,-10*--e))},easeInCirc:function(e){return e>=1?e:-(Math.sqrt(1-e*e)-1)},easeOutCirc:function(e){return Math.sqrt(1-(e-=1)*e)},easeInOutCirc:function(e){return(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},easeInElastic:function(e){var t=1.70158,n=0,i=1;return 0===e?0:1===e?1:(n||(n=.3),i<1?(i=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n))},easeOutElastic:function(e){var t=1.70158,n=0,i=1;return 0===e?0:1===e?1:(n||(n=.3),i<1?(i=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},easeInOutElastic:function(e){var t=1.70158,n=0,i=1;return 0===e?0:2==(e/=.5)?1:(n||(n=.45),i<1?(i=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/i),e<1?i*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},easeInBack:function(e){var t=1.70158;return e*e*((t+1)*e-t)},easeOutBack:function(e){var t=1.70158;return(e-=1)*e*((t+1)*e+t)+1},easeInOutBack:function(e){var t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},easeInBounce:function(e){return 1-x.easeOutBounce(1-e)},easeOutBounce:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},easeInOutBounce:function(e){return e<.5?.5*x.easeInBounce(2*e):.5*x.easeOutBounce(2*e-1)+.5}},S={effects:x};k.easingEffects=x;var T=Math.PI,$=T/180,D=2*T,C=T/2,E=T/4,A=2*T/3,P={clear:function(e){e.ctx.clearRect(0,0,e.width,e.height)},roundedRect:function(e,t,n,i,r,o){if(o){var a=Math.min(o,r/2,i/2),s=t+a,l=n+a,u=t+i-a,c=n+r-a;e.moveTo(t,l),s<u&&l<c?(e.arc(s,l,a,-T,-C),e.arc(u,l,a,-C,0),e.arc(u,c,a,0,C),e.arc(s,c,a,C,T)):s<u?(e.moveTo(s,n),e.arc(u,l,a,-C,C),e.arc(s,l,a,C,T+C)):l<c?(e.arc(s,l,a,-T,0),e.arc(s,c,a,0,T)):e.arc(s,l,a,-T,T),e.closePath(),e.moveTo(t,n)}else e.rect(t,n,i,r)},drawPoint:function(e,t,n,i,r,o){var a,s,l,u,c,d=(o||0)*$;if(t&&"object"==typeof t&&("[object HTMLImageElement]"===(a=t.toString())||"[object HTMLCanvasElement]"===a))return e.save(),e.translate(i,r),e.rotate(d),e.drawImage(t,-t.width/2,-t.height/2,t.width,t.height),void e.restore();if(!(isNaN(n)||n<=0)){switch(e.beginPath(),t){default:e.arc(i,r,n,0,D),e.closePath();break;case"triangle":e.moveTo(i+Math.sin(d)*n,r-Math.cos(d)*n),d+=A,e.lineTo(i+Math.sin(d)*n,r-Math.cos(d)*n),d+=A,e.lineTo(i+Math.sin(d)*n,r-Math.cos(d)*n),e.closePath();break;case"rectRounded":u=n-(c=.516*n),s=Math.cos(d+E)*u,l=Math.sin(d+E)*u,e.arc(i-s,r-l,c,d-T,d-C),e.arc(i+l,r-s,c,d-C,d),e.arc(i+s,r+l,c,d,d+C),e.arc(i-l,r+s,c,d+C,d+T),e.closePath();break;case"rect":if(!o){u=Math.SQRT1_2*n,e.rect(i-u,r-u,2*u,2*u);break}d+=E;case"rectRot":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(i-s,r-l),e.lineTo(i+l,r-s),e.lineTo(i+s,r+l),e.lineTo(i-l,r+s),e.closePath();break;case"crossRot":d+=E;case"cross":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(i-s,r-l),e.lineTo(i+s,r+l),e.moveTo(i+l,r-s),e.lineTo(i-l,r+s);break;case"star":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(i-s,r-l),e.lineTo(i+s,r+l),e.moveTo(i+l,r-s),e.lineTo(i-l,r+s),d+=E,s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(i-s,r-l),e.lineTo(i+s,r+l),e.moveTo(i+l,r-s),e.lineTo(i-l,r+s);break;case"line":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(i-s,r-l),e.lineTo(i+s,r+l);break;case"dash":e.moveTo(i,r),e.lineTo(i+Math.cos(d)*n,r+Math.sin(d)*n)}e.fill(),e.stroke()}},_isPointInArea:function(e,t){return e.x>t.left-1e-6&&e.x<t.right+1e-6&&e.y>t.top-1e-6&&e.y<t.bottom+1e-6},clipArea:function(e,t){e.save(),e.beginPath(),e.rect(t.left,t.top,t.right-t.left,t.bottom-t.top),e.clip()},unclipArea:function(e){e.restore()},lineTo:function(e,t,n,i){var r=n.steppedLine;if(r){if("middle"===r){var o=(t.x+n.x)/2;e.lineTo(o,i?n.y:t.y),e.lineTo(o,i?t.y:n.y)}else"after"===r&&!i||"after"!==r&&i?e.lineTo(t.x,n.y):e.lineTo(n.x,t.y);e.lineTo(n.x,n.y)}else n.tension?e.bezierCurveTo(i?t.controlPointPreviousX:t.controlPointNextX,i?t.controlPointPreviousY:t.controlPointNextY,i?n.controlPointNextX:n.controlPointPreviousX,i?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):e.lineTo(n.x,n.y)}},Y=P;k.clear=P.clear,k.drawRoundedRectangle=function(e){e.beginPath(),P.roundedRect.apply(P,arguments)};var O={_set:function(e,t){return k.merge(this[e]||(this[e]={}),t)}};O._set("global",{defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",defaultLineHeight:1.2,showLines:!0});var I=O,j=k.valueOrDefault,H={toLineHeight:function(e,t){var n=(""+e).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*t;switch(e=+n[2],n[3]){case"px":return e;case"%":e/=100}return t*e},toPadding:function(e){var t,n,i,r;return k.isObject(e)?(t=+e.top||0,n=+e.right||0,i=+e.bottom||0,r=+e.left||0):t=n=i=r=+e||0,{top:t,right:n,bottom:i,left:r,height:t+i,width:r+n}},_parseFont:function(e){var t=I.global,n=j(e.fontSize,t.defaultFontSize),i={family:j(e.fontFamily,t.defaultFontFamily),lineHeight:k.options.toLineHeight(j(e.lineHeight,t.defaultLineHeight),n),size:n,style:j(e.fontStyle,t.defaultFontStyle),weight:null,string:""};return i.string=function(e){return!e||k.isNullOrUndef(e.size)||k.isNullOrUndef(e.family)?null:(e.style?e.style+" ":"")+(e.weight?e.weight+" ":"")+e.size+"px "+e.family}(i),i},resolve:function(e,t,n,i){var r,o,a,s=!0;for(r=0,o=e.length;r<o;++r)if(void 0!==(a=e[r])&&(void 0!==t&&"function"==typeof a&&(a=a(t),s=!1),void 0!==n&&k.isArray(a)&&(a=a[n],s=!1),void 0!==a))return i&&!s&&(i.cacheable=!1),a}},N={_factorize:function(e){var t,n=[],i=Math.sqrt(e);for(t=1;t<i;t++)e%t==0&&(n.push(t),n.push(e/t));return i===(0|i)&&n.push(i),n.sort((function(e,t){return e-t})).pop(),n},log10:Math.log10||function(e){var t=Math.log(e)*Math.LOG10E,n=Math.round(t);return e===Math.pow(10,n)?n:t}},B=N;k.log10=N.log10;var R=k,F=S,z=Y,V=H,U=B;R.easing=F,R.canvas=z,R.options=V,R.math=U,R.rtl={getRtlAdapter:function(e,t,n){return e?function(e,t){return{x:function(n){return e+e+t-n},setWidth:function(e){t=e},textAlign:function(e){return"center"===e?e:"right"===e?"left":"right"},xPlus:function(e,t){return e-t},leftForLtr:function(e,t){return e-t}}}(t,n):{x:function(e){return e},setWidth:function(e){},textAlign:function(e){return e},xPlus:function(e,t){return e+t},leftForLtr:function(e,t){return e}}},overrideTextDirection:function(e,t){var n,i;"ltr"!==t&&"rtl"!==t||(i=[(n=e.canvas.style).getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",t,"important"),e.prevTextDirection=i)},restoreTextDirection:function(e){var t=e.prevTextDirection;void 0!==t&&(delete e.prevTextDirection,e.canvas.style.setProperty("direction",t[0],t[1]))}};var W=function(e){R.extend(this,e),this.initialize.apply(this,arguments)};R.extend(W.prototype,{_type:void 0,initialize:function(){this.hidden=!1},pivot:function(){var e=this;return e._view||(e._view=R.extend({},e._model)),e._start={},e},transition:function(e){var t=this,n=t._model,i=t._start,r=t._view;return n&&1!==e?(r||(r=t._view={}),i||(i=t._start={}),function(e,t,n,i){var r,o,a,s,l,u,c,d,h,f=Object.keys(n);for(r=0,o=f.length;r<o;++r)if(u=n[a=f[r]],t.hasOwnProperty(a)||(t[a]=u),(s=t[a])!==u&&"_"!==a[0]){if(e.hasOwnProperty(a)||(e[a]=s),(c=typeof u)==typeof(l=e[a]))if("string"===c){if((d=L(l)).valid&&(h=L(u)).valid){t[a]=h.mix(d,i).rgbString();continue}}else if(R.isFinite(l)&&R.isFinite(u)){t[a]=l+(u-l)*i;continue}t[a]=u}}(i,r,n,e),t):(t._view=R.extend({},n),t._start=null,t)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return R.isNumber(this._model.x)&&R.isNumber(this._model.y)}}),W.extend=R.inherits;var q=W,G=q.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),Z=G;Object.defineProperty(G.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(G.prototype,"chartInstance",{get:function(){return this.chart},set:function(e){this.chart=e}}),I._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:R.noop,onComplete:R.noop}});var J={animations:[],request:null,addAnimation:function(e,t,n,i){var r,o,a=this.animations;for(t.chart=e,t.startTime=Date.now(),t.duration=n,i||(e.animating=!0),r=0,o=a.length;r<o;++r)if(a[r].chart===e)return void(a[r]=t);a.push(t),1===a.length&&this.requestAnimationFrame()},cancelAnimation:function(e){var t=R.findIndex(this.animations,(function(t){return t.chart===e}));-1!==t&&(this.animations.splice(t,1),e.animating=!1)},requestAnimationFrame:function(){var e=this;null===e.request&&(e.request=R.requestAnimFrame.call(window,(function(){e.request=null,e.startDigest()})))},startDigest:function(){this.advance(),this.animations.length>0&&this.requestAnimationFrame()},advance:function(){for(var e,t,n,i,r=this.animations,o=0;o<r.length;)t=(e=r[o]).chart,n=e.numSteps,i=Math.floor((Date.now()-e.startTime)/e.duration*n)+1,e.currentStep=Math.min(i,n),R.callback(e.render,[t,e],t),R.callback(e.onAnimationProgress,[e],t),e.currentStep>=n?(R.callback(e.onAnimationComplete,[e],t),t.animating=!1,r.splice(o,1)):++o}},X=R.options.resolve,K=["push","pop","shift","splice","unshift"];function Q(e,t){var n=e._chartjs;if(n){var i=n.listeners,r=i.indexOf(t);-1!==r&&i.splice(r,1),i.length>0||(K.forEach((function(t){delete e[t]})),delete e._chartjs)}}var ee=function(e,t){this.initialize(e,t)};R.extend(ee.prototype,{datasetElementType:null,dataElementType:null,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth"],_dataElementOptions:["backgroundColor","borderColor","borderWidth","pointStyle"],initialize:function(e,t){var n=this;n.chart=e,n.index=t,n.linkScales(),n.addElements(),n._type=n.getMeta().type},updateIndex:function(e){this.index=e},linkScales:function(){var e=this.getMeta(),t=this.chart,n=t.scales,i=this.getDataset(),r=t.options.scales;null!==e.xAxisID&&e.xAxisID in n&&!i.xAxisID||(e.xAxisID=i.xAxisID||r.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in n&&!i.yAxisID||(e.yAxisID=i.yAxisID||r.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(e){return this.chart.scales[e]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this._update(!0)},destroy:function(){this._data&&Q(this._data,this)},createMetaDataset:function(){var e=this.datasetElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(e){var t=this.dataElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index,_index:e})},addElements:function(){var e,t,n=this.getMeta(),i=this.getDataset().data||[],r=n.data;for(e=0,t=i.length;e<t;++e)r[e]=r[e]||this.createMetaData(e);n.dataset=n.dataset||this.createMetaDataset()},addElementAndReset:function(e){var t=this.createMetaData(e);this.getMeta().data.splice(e,0,t),this.updateElement(t,e,!0)},buildOrUpdateElements:function(){var e,t,n=this,i=n.getDataset(),r=i.data||(i.data=[]);n._data!==r&&(n._data&&Q(n._data,n),r&&Object.isExtensible(r)&&(t=n,(e=r)._chartjs?e._chartjs.listeners.push(t):(Object.defineProperty(e,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[t]}}),K.forEach((function(t){var n="onData"+t.charAt(0).toUpperCase()+t.slice(1),i=e[t];Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:function(){var t=Array.prototype.slice.call(arguments),r=i.apply(this,t);return R.each(e._chartjs.listeners,(function(e){"function"==typeof e[n]&&e[n].apply(e,t)})),r}})})))),n._data=r),n.resyncElements()},_configure:function(){this._config=R.merge({},[this.chart.options.datasets[this._type],this.getDataset()],{merger:function(e,t,n){"_meta"!==e&&"data"!==e&&R._merger(e,t,n)}})},_update:function(e){this._configure(),this._cachedDataOpts=null,this.update(e)},update:R.noop,transition:function(e){for(var t=this.getMeta(),n=t.data||[],i=n.length,r=0;r<i;++r)n[r].transition(e);t.dataset&&t.dataset.transition(e)},draw:function(){var e=this.getMeta(),t=e.data||[],n=t.length,i=0;for(e.dataset&&e.dataset.draw();i<n;++i)t[i].draw()},getStyle:function(e){var t,n=this.getMeta(),i=n.dataset;return this._configure(),i&&void 0===e?t=this._resolveDatasetElementOptions(i||{}):(e=e||0,t=this._resolveDataElementOptions(n.data[e]||{},e)),!1!==t.fill&&null!==t.fill||(t.backgroundColor=t.borderColor),t},_resolveDatasetElementOptions:function(e,t){var n,i,r,o,a=this,s=a.chart,l=a._config,u=e.custom||{},c=s.options.elements[a.datasetElementType.prototype._type]||{},d=a._datasetElementOptions,h={},f={chart:s,dataset:a.getDataset(),datasetIndex:a.index,hover:t};for(n=0,i=d.length;n<i;++n)r=d[n],o=t?"hover"+r.charAt(0).toUpperCase()+r.slice(1):r,h[r]=X([u[o],l[o],c[o]],f);return h},_resolveDataElementOptions:function(e,t){var n=this,i=e&&e.custom,r=n._cachedDataOpts;if(r&&!i)return r;var o,a,s,l,u=n.chart,c=n._config,d=u.options.elements[n.dataElementType.prototype._type]||{},h=n._dataElementOptions,f={},p={chart:u,dataIndex:t,dataset:n.getDataset(),datasetIndex:n.index},m={cacheable:!i};if(i=i||{},R.isArray(h))for(a=0,s=h.length;a<s;++a)f[l=h[a]]=X([i[l],c[l],d[l]],p,t,m);else for(a=0,s=(o=Object.keys(h)).length;a<s;++a)f[l=o[a]]=X([i[l],c[h[l]],c[l],d[l]],p,t,m);return m.cacheable&&(n._cachedDataOpts=Object.freeze(f)),f},removeHoverStyle:function(e){R.merge(e._model,e.$previousStyle||{}),delete e.$previousStyle},setHoverStyle:function(e){var t=this.chart.data.datasets[e._datasetIndex],n=e._index,i=e.custom||{},r=e._model,o=R.getHoverColor;e.$previousStyle={backgroundColor:r.backgroundColor,borderColor:r.borderColor,borderWidth:r.borderWidth},r.backgroundColor=X([i.hoverBackgroundColor,t.hoverBackgroundColor,o(r.backgroundColor)],void 0,n),r.borderColor=X([i.hoverBorderColor,t.hoverBorderColor,o(r.borderColor)],void 0,n),r.borderWidth=X([i.hoverBorderWidth,t.hoverBorderWidth,r.borderWidth],void 0,n)},_removeDatasetHoverStyle:function(){var e=this.getMeta().dataset;e&&this.removeHoverStyle(e)},_setDatasetHoverStyle:function(){var e,t,n,i,r,o,a=this.getMeta().dataset,s={};if(a){for(o=a._model,r=this._resolveDatasetElementOptions(a,!0),e=0,t=(i=Object.keys(r)).length;e<t;++e)s[n=i[e]]=o[n],o[n]=r[n];a.$previousStyle=s}},resyncElements:function(){var e=this.getMeta(),t=this.getDataset().data,n=e.data.length,i=t.length;i<n?e.data.splice(i,n-i):i>n&&this.insertElements(n,i-n)},insertElements:function(e,t){for(var n=0;n<t;++n)this.addElementAndReset(e+n)},onDataPush:function(){var e=arguments.length;this.insertElements(this.getDataset().data.length-e,e)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(e,t){this.getMeta().data.splice(e,t),this.insertElements(e,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),ee.extend=R.inherits;var te=ee,ne=2*Math.PI;function ie(e,t){var n=t.startAngle,i=t.endAngle,r=t.pixelMargin,o=r/t.outerRadius,a=t.x,s=t.y;e.beginPath(),e.arc(a,s,t.outerRadius,n-o,i+o),t.innerRadius>r?(o=r/t.innerRadius,e.arc(a,s,t.innerRadius-r,i+o,n-o,!0)):e.arc(a,s,r,i+Math.PI/2,n-Math.PI/2),e.closePath(),e.clip()}I._set("global",{elements:{arc:{backgroundColor:I.global.defaultColor,borderColor:"#fff",borderWidth:2,borderAlign:"center"}}});var re=q.extend({_type:"arc",inLabelRange:function(e){var t=this._view;return!!t&&Math.pow(e-t.x,2)<Math.pow(t.radius+t.hoverRadius,2)},inRange:function(e,t){var n=this._view;if(n){for(var i=R.getAngleFromPoint(n,{x:e,y:t}),r=i.angle,o=i.distance,a=n.startAngle,s=n.endAngle;s<a;)s+=ne;for(;r>s;)r-=ne;for(;r<a;)r+=ne;var l=r>=a&&r<=s,u=o>=n.innerRadius&&o<=n.outerRadius;return l&&u}return!1},getCenterPoint:function(){var e=this._view,t=(e.startAngle+e.endAngle)/2,n=(e.innerRadius+e.outerRadius)/2;return{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}},getArea:function(){var e=this._view;return Math.PI*((e.endAngle-e.startAngle)/(2*Math.PI))*(Math.pow(e.outerRadius,2)-Math.pow(e.innerRadius,2))},tooltipPosition:function(){var e=this._view,t=e.startAngle+(e.endAngle-e.startAngle)/2,n=(e.outerRadius-e.innerRadius)/2+e.innerRadius;return{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}},draw:function(){var e,t=this._chart.ctx,n=this._view,i="inner"===n.borderAlign?.33:0,r={x:n.x,y:n.y,innerRadius:n.innerRadius,outerRadius:Math.max(n.outerRadius-i,0),pixelMargin:i,startAngle:n.startAngle,endAngle:n.endAngle,fullCircles:Math.floor(n.circumference/ne)};if(t.save(),t.fillStyle=n.backgroundColor,t.strokeStyle=n.borderColor,r.fullCircles){for(r.endAngle=r.startAngle+ne,t.beginPath(),t.arc(r.x,r.y,r.outerRadius,r.startAngle,r.endAngle),t.arc(r.x,r.y,r.innerRadius,r.endAngle,r.startAngle,!0),t.closePath(),e=0;e<r.fullCircles;++e)t.fill();r.endAngle=r.startAngle+n.circumference%ne}t.beginPath(),t.arc(r.x,r.y,r.outerRadius,r.startAngle,r.endAngle),t.arc(r.x,r.y,r.innerRadius,r.endAngle,r.startAngle,!0),t.closePath(),t.fill(),n.borderWidth&&function(e,t,n){var i="inner"===t.borderAlign;i?(e.lineWidth=2*t.borderWidth,e.lineJoin="round"):(e.lineWidth=t.borderWidth,e.lineJoin="bevel"),n.fullCircles&&function(e,t,n,i){var r,o=n.endAngle;for(i&&(n.endAngle=n.startAngle+ne,ie(e,n),n.endAngle=o,n.endAngle===n.startAngle&&n.fullCircles&&(n.endAngle+=ne,n.fullCircles--)),e.beginPath(),e.arc(n.x,n.y,n.innerRadius,n.startAngle+ne,n.startAngle,!0),r=0;r<n.fullCircles;++r)e.stroke();for(e.beginPath(),e.arc(n.x,n.y,t.outerRadius,n.startAngle,n.startAngle+ne),r=0;r<n.fullCircles;++r)e.stroke()}(e,t,n,i),i&&ie(e,n),e.beginPath(),e.arc(n.x,n.y,t.outerRadius,n.startAngle,n.endAngle),e.arc(n.x,n.y,n.innerRadius,n.endAngle,n.startAngle,!0),e.closePath(),e.stroke()}(t,n,r),t.restore()}}),oe=R.valueOrDefault,ae=I.global.defaultColor;I._set("global",{elements:{line:{tension:.4,backgroundColor:ae,borderWidth:3,borderColor:ae,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}});var se=q.extend({_type:"line",draw:function(){var e,t,n,i=this,r=i._view,o=i._chart.ctx,a=r.spanGaps,s=i._children.slice(),l=I.global,u=l.elements.line,c=-1,d=i._loop;if(s.length){if(i._loop){for(e=0;e<s.length;++e)if(t=R.previousItem(s,e),!s[e]._view.skip&&t._view.skip){s=s.slice(e).concat(s.slice(0,e)),d=a;break}d&&s.push(s[0])}for(o.save(),o.lineCap=r.borderCapStyle||u.borderCapStyle,o.setLineDash&&o.setLineDash(r.borderDash||u.borderDash),o.lineDashOffset=oe(r.borderDashOffset,u.borderDashOffset),o.lineJoin=r.borderJoinStyle||u.borderJoinStyle,o.lineWidth=oe(r.borderWidth,u.borderWidth),o.strokeStyle=r.borderColor||l.defaultColor,o.beginPath(),(n=s[0]._view).skip||(o.moveTo(n.x,n.y),c=0),e=1;e<s.length;++e)n=s[e]._view,t=-1===c?R.previousItem(s,e):s[c],n.skip||(c!==e-1&&!a||-1===c?o.moveTo(n.x,n.y):R.canvas.lineTo(o,t._view,n),c=e);d&&o.closePath(),o.stroke(),o.restore()}}}),le=R.valueOrDefault,ue=I.global.defaultColor;function ce(e){var t=this._view;return!!t&&Math.abs(e-t.x)<t.radius+t.hitRadius}I._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:ue,borderColor:ue,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}});var de=q.extend({_type:"point",inRange:function(e,t){var n=this._view;return!!n&&Math.pow(e-n.x,2)+Math.pow(t-n.y,2)<Math.pow(n.hitRadius+n.radius,2)},inLabelRange:ce,inXRange:ce,inYRange:function(e){var t=this._view;return!!t&&Math.abs(e-t.y)<t.radius+t.hitRadius},getCenterPoint:function(){var e=this._view;return{x:e.x,y:e.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var e=this._view;return{x:e.x,y:e.y,padding:e.radius+e.borderWidth}},draw:function(e){var t=this._view,n=this._chart.ctx,i=t.pointStyle,r=t.rotation,o=t.radius,a=t.x,s=t.y,l=I.global,u=l.defaultColor;t.skip||(void 0===e||R.canvas._isPointInArea(t,e))&&(n.strokeStyle=t.borderColor||u,n.lineWidth=le(t.borderWidth,l.elements.point.borderWidth),n.fillStyle=t.backgroundColor||u,R.canvas.drawPoint(n,i,o,a,s,r))}}),he=I.global.defaultColor;function fe(e){return e&&void 0!==e.width}function pe(e){var t,n,i,r,o;return fe(e)?(o=e.width/2,t=e.x-o,n=e.x+o,i=Math.min(e.y,e.base),r=Math.max(e.y,e.base)):(o=e.height/2,t=Math.min(e.x,e.base),n=Math.max(e.x,e.base),i=e.y-o,r=e.y+o),{left:t,top:i,right:n,bottom:r}}function me(e,t,n){return e===t?n:e===n?t:e}function ge(e,t,n){var i=null===t,r=null===n,o=!(!e||i&&r)&&pe(e);return o&&(i||t>=o.left&&t<=o.right)&&(r||n>=o.top&&n<=o.bottom)}I._set("global",{elements:{rectangle:{backgroundColor:he,borderColor:he,borderSkipped:"bottom",borderWidth:0}}});var ve=q.extend({_type:"rectangle",draw:function(){var e=this._chart.ctx,t=this._view,n=function(e){var t=pe(e),n=t.right-t.left,i=t.bottom-t.top,r=function(e,t,n){var i,r,o,a,s=e.borderWidth,l=function(e){var t=e.borderSkipped,n={};return t?(e.horizontal?e.base>e.x&&(t=me(t,"left","right")):e.base<e.y&&(t=me(t,"bottom","top")),n[t]=!0,n):n}(e);return R.isObject(s)?(i=+s.top||0,r=+s.right||0,o=+s.bottom||0,a=+s.left||0):i=r=o=a=+s||0,{t:l.top||i<0?0:i>n?n:i,r:l.right||r<0?0:r>t?t:r,b:l.bottom||o<0?0:o>n?n:o,l:l.left||a<0?0:a>t?t:a}}(e,n/2,i/2);return{outer:{x:t.left,y:t.top,w:n,h:i},inner:{x:t.left+r.l,y:t.top+r.t,w:n-r.l-r.r,h:i-r.t-r.b}}}(t),i=n.outer,r=n.inner;e.fillStyle=t.backgroundColor,e.fillRect(i.x,i.y,i.w,i.h),i.w===r.w&&i.h===r.h||(e.save(),e.beginPath(),e.rect(i.x,i.y,i.w,i.h),e.clip(),e.fillStyle=t.borderColor,e.rect(r.x,r.y,r.w,r.h),e.fill("evenodd"),e.restore())},height:function(){var e=this._view;return e.base-e.y},inRange:function(e,t){return ge(this._view,e,t)},inLabelRange:function(e,t){var n=this._view;return fe(n)?ge(n,e,null):ge(n,null,t)},inXRange:function(e){return ge(this._view,e,null)},inYRange:function(e){return ge(this._view,null,e)},getCenterPoint:function(){var e,t,n=this._view;return fe(n)?(e=n.x,t=(n.y+n.base)/2):(e=(n.x+n.base)/2,t=n.y),{x:e,y:t}},getArea:function(){var e=this._view;return fe(e)?e.width*Math.abs(e.y-e.base):e.height*Math.abs(e.x-e.base)},tooltipPosition:function(){var e=this._view;return{x:e.x,y:e.y}}}),_e={},ye=re,be=se,we=de,Le=ve;_e.Arc=ye,_e.Line=be,_e.Point=we,_e.Rectangle=Le;var Me=R._deprecated,ke=R.valueOrDefault;I._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),I._set("global",{datasets:{bar:{categoryPercentage:.8,barPercentage:.9}}});var xe=te.extend({dataElementType:_e.Rectangle,_dataElementOptions:["backgroundColor","borderColor","borderSkipped","borderWidth","barPercentage","barThickness","categoryPercentage","maxBarThickness","minBarLength"],initialize:function(){var e,t,n=this;te.prototype.initialize.apply(n,arguments),(e=n.getMeta()).stack=n.getDataset().stack,e.bar=!0,t=n._getIndexScale().options,Me("bar chart",t.barPercentage,"scales.[x/y]Axes.barPercentage","dataset.barPercentage"),Me("bar chart",t.barThickness,"scales.[x/y]Axes.barThickness","dataset.barThickness"),Me("bar chart",t.categoryPercentage,"scales.[x/y]Axes.categoryPercentage","dataset.categoryPercentage"),Me("bar chart",n._getValueScale().options.minBarLength,"scales.[x/y]Axes.minBarLength","dataset.minBarLength"),Me("bar chart",t.maxBarThickness,"scales.[x/y]Axes.maxBarThickness","dataset.maxBarThickness")},update:function(e){var t,n,i=this.getMeta().data;for(this._ruler=this.getRuler(),t=0,n=i.length;t<n;++t)this.updateElement(i[t],t,e)},updateElement:function(e,t,n){var i=this,r=i.getMeta(),o=i.getDataset(),a=i._resolveDataElementOptions(e,t);e._xScale=i.getScaleForId(r.xAxisID),e._yScale=i.getScaleForId(r.yAxisID),e._datasetIndex=i.index,e._index=t,e._model={backgroundColor:a.backgroundColor,borderColor:a.borderColor,borderSkipped:a.borderSkipped,borderWidth:a.borderWidth,datasetLabel:o.label,label:i.chart.data.labels[t]},R.isArray(o.data[t])&&(e._model.borderSkipped=null),i._updateElementGeometry(e,t,n,a),e.pivot()},_updateElementGeometry:function(e,t,n,i){var r=this,o=e._model,a=r._getValueScale(),s=a.getBasePixel(),l=a.isHorizontal(),u=r._ruler||r.getRuler(),c=r.calculateBarValuePixels(r.index,t,i),d=r.calculateBarIndexPixels(r.index,t,u,i);o.horizontal=l,o.base=n?s:c.base,o.x=l?n?s:c.head:d.center,o.y=l?d.center:n?s:c.head,o.height=l?d.size:void 0,o.width=l?void 0:d.size},_getStacks:function(e){var t,n,i=this._getIndexScale(),r=i._getMatchingVisibleMetas(this._type),o=i.options.stacked,a=r.length,s=[];for(t=0;t<a&&(n=r[t],(!1===o||-1===s.indexOf(n.stack)||void 0===o&&void 0===n.stack)&&s.push(n.stack),n.index!==e);++t);return s},getStackCount:function(){return this._getStacks().length},getStackIndex:function(e,t){var n=this._getStacks(e),i=void 0!==t?n.indexOf(t):-1;return-1===i?n.length-1:i},getRuler:function(){var e,t,n=this._getIndexScale(),i=[];for(e=0,t=this.getMeta().data.length;e<t;++e)i.push(n.getPixelForValue(null,e,this.index));return{pixels:i,start:n._startPixel,end:n._endPixel,stackCount:this.getStackCount(),scale:n}},calculateBarValuePixels:function(e,t,n){var i,r,o,a,s,l,u,c=this.chart,d=this._getValueScale(),h=d.isHorizontal(),f=c.data.datasets,p=d._getMatchingVisibleMetas(this._type),m=d._parseValue(f[e].data[t]),g=n.minBarLength,v=d.options.stacked,_=this.getMeta().stack,y=void 0===m.start?0:m.max>=0&&m.min>=0?m.min:m.max,b=void 0===m.start?m.end:m.max>=0&&m.min>=0?m.max-m.min:m.min-m.max,w=p.length;if(v||void 0===v&&void 0!==_)for(i=0;i<w&&(r=p[i]).index!==e;++i)r.stack===_&&(o=void 0===(u=d._parseValue(f[r.index].data[t])).start?u.end:u.min>=0&&u.max>=0?u.max:u.min,(m.min<0&&o<0||m.max>=0&&o>0)&&(y+=o));return a=d.getPixelForValue(y),l=(s=d.getPixelForValue(y+b))-a,void 0!==g&&Math.abs(l)<g&&(l=g,s=b>=0&&!h||b<0&&h?a-g:a+g),{size:l,base:a,head:s,center:s+l/2}},calculateBarIndexPixels:function(e,t,n,i){var r="flex"===i.barThickness?function(e,t,n){var i,r=t.pixels,o=r[e],a=e>0?r[e-1]:null,s=e<r.length-1?r[e+1]:null,l=n.categoryPercentage;return null===a&&(a=o-(null===s?t.end-t.start:s-o)),null===s&&(s=o+o-a),i=o-(o-Math.min(a,s))/2*l,{chunk:Math.abs(s-a)/2*l/t.stackCount,ratio:n.barPercentage,start:i}}(t,n,i):function(e,t,n){var i,r,o=n.barThickness,a=t.stackCount,s=t.pixels[e],l=R.isNullOrUndef(o)?function(e,t){var n,i,r,o,a=e._length;for(r=1,o=t.length;r<o;++r)a=Math.min(a,Math.abs(t[r]-t[r-1]));for(r=0,o=e.getTicks().length;r<o;++r)i=e.getPixelForTick(r),a=r>0?Math.min(a,Math.abs(i-n)):a,n=i;return a}(t.scale,t.pixels):-1;return R.isNullOrUndef(o)?(i=l*n.categoryPercentage,r=n.barPercentage):(i=o*a,r=1),{chunk:i/a,ratio:r,start:s-i/2}}(t,n,i),o=this.getStackIndex(e,this.getMeta().stack),a=r.start+r.chunk*o+r.chunk/2,s=Math.min(ke(i.maxBarThickness,1/0),r.chunk*r.ratio);return{base:a-s/2,head:a+s/2,center:a,size:s}},draw:function(){var e=this.chart,t=this._getValueScale(),n=this.getMeta().data,i=this.getDataset(),r=n.length,o=0;for(R.canvas.clipArea(e.ctx,e.chartArea);o<r;++o){var a=t._parseValue(i.data[o]);isNaN(a.min)||isNaN(a.max)||n[o].draw()}R.canvas.unclipArea(e.ctx)},_resolveDataElementOptions:function(){var e=this,t=R.extend({},te.prototype._resolveDataElementOptions.apply(e,arguments)),n=e._getIndexScale().options,i=e._getValueScale().options;return t.barPercentage=ke(n.barPercentage,t.barPercentage),t.barThickness=ke(n.barThickness,t.barThickness),t.categoryPercentage=ke(n.categoryPercentage,t.categoryPercentage),t.maxBarThickness=ke(n.maxBarThickness,t.maxBarThickness),t.minBarLength=ke(i.minBarLength,t.minBarLength),t}}),Se=R.valueOrDefault,Te=R.options.resolve;I._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(e,t){var n=t.datasets[e.datasetIndex].label||"",i=t.datasets[e.datasetIndex].data[e.index];return n+": ("+e.xLabel+", "+e.yLabel+", "+i.r+")"}}}});var $e=te.extend({dataElementType:_e.Point,_dataElementOptions:["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"],update:function(e){var t=this,n=t.getMeta().data;R.each(n,(function(n,i){t.updateElement(n,i,e)}))},updateElement:function(e,t,n){var i=this,r=i.getMeta(),o=e.custom||{},a=i.getScaleForId(r.xAxisID),s=i.getScaleForId(r.yAxisID),l=i._resolveDataElementOptions(e,t),u=i.getDataset().data[t],c=i.index,d=n?a.getPixelForDecimal(.5):a.getPixelForValue("object"==typeof u?u:NaN,t,c),h=n?s.getBasePixel():s.getPixelForValue(u,t,c);e._xScale=a,e._yScale=s,e._options=l,e._datasetIndex=c,e._index=t,e._model={backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,hitRadius:l.hitRadius,pointStyle:l.pointStyle,rotation:l.rotation,radius:n?0:l.radius,skip:o.skip||isNaN(d)||isNaN(h),x:d,y:h},e.pivot()},setHoverStyle:function(e){var t=e._model,n=e._options,i=R.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth,radius:t.radius},t.backgroundColor=Se(n.hoverBackgroundColor,i(n.backgroundColor)),t.borderColor=Se(n.hoverBorderColor,i(n.borderColor)),t.borderWidth=Se(n.hoverBorderWidth,n.borderWidth),t.radius=n.radius+n.hoverRadius},_resolveDataElementOptions:function(e,t){var n=this,i=n.chart,r=n.getDataset(),o=e.custom||{},a=r.data[t]||{},s=te.prototype._resolveDataElementOptions.apply(n,arguments),l={chart:i,dataIndex:t,dataset:r,datasetIndex:n.index};return n._cachedDataOpts===s&&(s=R.extend({},s)),s.radius=Te([o.radius,a.r,n._config.radius,i.options.elements.point.radius],l,t),s}}),De=R.valueOrDefault,Ce=Math.PI,Ee=2*Ce,Ae=Ce/2;I._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(e){var t,n,i,r=document.createElement("ul"),o=e.data,a=o.datasets,s=o.labels;if(r.setAttribute("class",e.id+"-legend"),a.length)for(t=0,n=a[0].data.length;t<n;++t)(i=r.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor=a[0].backgroundColor[t],s[t]&&i.appendChild(document.createTextNode(s[t]));return r.outerHTML},legend:{labels:{generateLabels:function(e){var t=e.data;return t.labels.length&&t.datasets.length?t.labels.map((function(n,i){var r=e.getDatasetMeta(0),o=r.controller.getStyle(i);return{text:n,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,lineWidth:o.borderWidth,hidden:isNaN(t.datasets[0].data[i])||r.data[i].hidden,index:i}})):[]}},onClick:function(e,t){var n,i,r,o=t.index,a=this.chart;for(n=0,i=(a.data.datasets||[]).length;n<i;++n)(r=a.getDatasetMeta(n)).data[o]&&(r.data[o].hidden=!r.data[o].hidden);a.update()}},cutoutPercentage:50,rotation:-Ae,circumference:Ee,tooltips:{callbacks:{title:function(){return""},label:function(e,t){var n=t.labels[e.index],i=": "+t.datasets[e.datasetIndex].data[e.index];return R.isArray(n)?(n=n.slice())[0]+=i:n+=i,n}}}});var Pe=te.extend({dataElementType:_e.Arc,linkScales:R.noop,_dataElementOptions:["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"],getRingIndex:function(e){for(var t=0,n=0;n<e;++n)this.chart.isDatasetVisible(n)&&++t;return t},update:function(e){var t,n,i,r,o=this,a=o.chart,s=a.chartArea,l=a.options,u=1,c=1,d=0,h=0,f=o.getMeta(),p=f.data,m=l.cutoutPercentage/100||0,g=l.circumference,v=o._getRingWeight(o.index);if(g<Ee){var _=l.rotation%Ee,y=(_+=_>=Ce?-Ee:_<-Ce?Ee:0)+g,b=Math.cos(_),w=Math.sin(_),L=Math.cos(y),M=Math.sin(y),k=_<=0&&y>=0||y>=Ee,x=_<=Ae&&y>=Ae||y>=Ee+Ae,S=_<=-Ae&&y>=-Ae||y>=Ce+Ae,T=_===-Ce||y>=Ce?-1:Math.min(b,b*m,L,L*m),$=S?-1:Math.min(w,w*m,M,M*m),D=k?1:Math.max(b,b*m,L,L*m),C=x?1:Math.max(w,w*m,M,M*m);u=(D-T)/2,c=(C-$)/2,d=-(D+T)/2,h=-(C+$)/2}for(i=0,r=p.length;i<r;++i)p[i]._options=o._resolveDataElementOptions(p[i],i);for(a.borderWidth=o.getMaxBorderWidth(),t=(s.right-s.left-a.borderWidth)/u,n=(s.bottom-s.top-a.borderWidth)/c,a.outerRadius=Math.max(Math.min(t,n)/2,0),a.innerRadius=Math.max(a.outerRadius*m,0),a.radiusLength=(a.outerRadius-a.innerRadius)/(o._getVisibleDatasetWeightTotal()||1),a.offsetX=d*a.outerRadius,a.offsetY=h*a.outerRadius,f.total=o.calculateTotal(),o.outerRadius=a.outerRadius-a.radiusLength*o._getRingWeightOffset(o.index),o.innerRadius=Math.max(o.outerRadius-a.radiusLength*v,0),i=0,r=p.length;i<r;++i)o.updateElement(p[i],i,e)},updateElement:function(e,t,n){var i=this,r=i.chart,o=r.chartArea,a=r.options,s=a.animation,l=(o.left+o.right)/2,u=(o.top+o.bottom)/2,c=a.rotation,d=a.rotation,h=i.getDataset(),f=n&&s.animateRotate?0:e.hidden?0:i.calculateCircumference(h.data[t])*(a.circumference/Ee),p=n&&s.animateScale?0:i.innerRadius,m=n&&s.animateScale?0:i.outerRadius,g=e._options||{};R.extend(e,{_datasetIndex:i.index,_index:t,_model:{backgroundColor:g.backgroundColor,borderColor:g.borderColor,borderWidth:g.borderWidth,borderAlign:g.borderAlign,x:l+r.offsetX,y:u+r.offsetY,startAngle:c,endAngle:d,circumference:f,outerRadius:m,innerRadius:p,label:R.valueAtIndexOrDefault(h.label,t,r.data.labels[t])}});var v=e._model;n&&s.animateRotate||(v.startAngle=0===t?a.rotation:i.getMeta().data[t-1]._model.endAngle,v.endAngle=v.startAngle+v.circumference),e.pivot()},calculateTotal:function(){var e,t=this.getDataset(),n=this.getMeta(),i=0;return R.each(n.data,(function(n,r){e=t.data[r],isNaN(e)||n.hidden||(i+=Math.abs(e))})),i},calculateCircumference:function(e){var t=this.getMeta().total;return t>0&&!isNaN(e)?Ee*(Math.abs(e)/t):0},getMaxBorderWidth:function(e){var t,n,i,r,o,a,s,l,u=0,c=this.chart;if(!e)for(t=0,n=c.data.datasets.length;t<n;++t)if(c.isDatasetVisible(t)){e=(i=c.getDatasetMeta(t)).data,t!==this.index&&(o=i.controller);break}if(!e)return 0;for(t=0,n=e.length;t<n;++t)r=e[t],o?(o._configure(),a=o._resolveDataElementOptions(r,t)):a=r._options,"inner"!==a.borderAlign&&(s=a.borderWidth,u=(l=a.hoverBorderWidth)>(u=s>u?s:u)?l:u);return u},setHoverStyle:function(e){var t=e._model,n=e._options,i=R.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth},t.backgroundColor=De(n.hoverBackgroundColor,i(n.backgroundColor)),t.borderColor=De(n.hoverBorderColor,i(n.borderColor)),t.borderWidth=De(n.hoverBorderWidth,n.borderWidth)},_getRingWeightOffset:function(e){for(var t=0,n=0;n<e;++n)this.chart.isDatasetVisible(n)&&(t+=this._getRingWeight(n));return t},_getRingWeight:function(e){return Math.max(De(this.chart.data.datasets[e].weight,1),0)},_getVisibleDatasetWeightTotal:function(){return this._getRingWeightOffset(this.chart.data.datasets.length)}});I._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{type:"category",position:"left",offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{mode:"index",axis:"y"}}),I._set("global",{datasets:{horizontalBar:{categoryPercentage:.8,barPercentage:.9}}});var Ye=xe.extend({_getValueScaleId:function(){return this.getMeta().xAxisID},_getIndexScaleId:function(){return this.getMeta().yAxisID}}),Oe=R.valueOrDefault,Ie=R.options.resolve,je=R.canvas._isPointInArea;function He(e,t){var n=e&&e.options.ticks||{},i=n.reverse,r=void 0===n.min?t:0,o=void 0===n.max?t:0;return{start:i?o:r,end:i?r:o}}function Ne(e,t,n){var i=n/2,r=He(e,i),o=He(t,i);return{top:o.end,right:r.end,bottom:o.start,left:r.start}}function Be(e){var t,n,i,r;return R.isObject(e)?(t=e.top,n=e.right,i=e.bottom,r=e.left):t=n=i=r=e,{top:t,right:n,bottom:i,left:r}}I._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}});var Re=te.extend({datasetElementType:_e.Line,dataElementType:_e.Point,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth","cubicInterpolationMode","fill"],_dataElementOptions:{backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},update:function(e){var t,n,i=this,r=i.getMeta(),o=r.dataset,a=r.data||[],s=i.chart.options,l=i._config,u=i._showLine=Oe(l.showLine,s.showLines);for(i._xScale=i.getScaleForId(r.xAxisID),i._yScale=i.getScaleForId(r.yAxisID),u&&(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=i._yScale,o._datasetIndex=i.index,o._children=a,o._model=i._resolveDatasetElementOptions(o),o.pivot()),t=0,n=a.length;t<n;++t)i.updateElement(a[t],t,e);for(u&&0!==o._model.tension&&i.updateBezierControlPoints(),t=0,n=a.length;t<n;++t)a[t].pivot()},updateElement:function(e,t,n){var i,r,o=this,a=o.getMeta(),s=e.custom||{},l=o.getDataset(),u=o.index,c=l.data[t],d=o._xScale,h=o._yScale,f=a.dataset._model,p=o._resolveDataElementOptions(e,t);i=d.getPixelForValue("object"==typeof c?c:NaN,t,u),r=n?h.getBasePixel():o.calculatePointY(c,t,u),e._xScale=d,e._yScale=h,e._options=p,e._datasetIndex=u,e._index=t,e._model={x:i,y:r,skip:s.skip||isNaN(i)||isNaN(r),radius:p.radius,pointStyle:p.pointStyle,rotation:p.rotation,backgroundColor:p.backgroundColor,borderColor:p.borderColor,borderWidth:p.borderWidth,tension:Oe(s.tension,f?f.tension:0),steppedLine:!!f&&f.steppedLine,hitRadius:p.hitRadius}},_resolveDatasetElementOptions:function(e){var t=this,n=t._config,i=e.custom||{},r=t.chart.options,o=r.elements.line,a=te.prototype._resolveDatasetElementOptions.apply(t,arguments);return a.spanGaps=Oe(n.spanGaps,r.spanGaps),a.tension=Oe(n.lineTension,o.tension),a.steppedLine=Ie([i.steppedLine,n.steppedLine,o.stepped]),a.clip=Be(Oe(n.clip,Ne(t._xScale,t._yScale,a.borderWidth))),a},calculatePointY:function(e,t,n){var i,r,o,a,s,l,u,c=this.chart,d=this._yScale,h=0,f=0;if(d.options.stacked){for(s=+d.getRightValue(e),u=(l=c._getSortedVisibleDatasetMetas()).length,i=0;i<u&&(o=l[i]).index!==n;++i)r=c.data.datasets[o.index],"line"===o.type&&o.yAxisID===d.id&&((a=+d.getRightValue(r.data[t]))<0?f+=a||0:h+=a||0);return s<0?d.getPixelForValue(f+s):d.getPixelForValue(h+s)}return d.getPixelForValue(e)},updateBezierControlPoints:function(){var e,t,n,i,r=this.chart,o=this.getMeta(),a=o.dataset._model,s=r.chartArea,l=o.data||[];function u(e,t,n){return Math.max(Math.min(e,n),t)}if(a.spanGaps&&(l=l.filter((function(e){return!e._model.skip}))),"monotone"===a.cubicInterpolationMode)R.splineCurveMonotone(l);else for(e=0,t=l.length;e<t;++e)n=l[e]._model,i=R.splineCurve(R.previousItem(l,e)._model,n,R.nextItem(l,e)._model,a.tension),n.controlPointPreviousX=i.previous.x,n.controlPointPreviousY=i.previous.y,n.controlPointNextX=i.next.x,n.controlPointNextY=i.next.y;if(r.options.elements.line.capBezierPoints)for(e=0,t=l.length;e<t;++e)n=l[e]._model,je(n,s)&&(e>0&&je(l[e-1]._model,s)&&(n.controlPointPreviousX=u(n.controlPointPreviousX,s.left,s.right),n.controlPointPreviousY=u(n.controlPointPreviousY,s.top,s.bottom)),e<l.length-1&&je(l[e+1]._model,s)&&(n.controlPointNextX=u(n.controlPointNextX,s.left,s.right),n.controlPointNextY=u(n.controlPointNextY,s.top,s.bottom)))},draw:function(){var e,t=this.chart,n=this.getMeta(),i=n.data||[],r=t.chartArea,o=t.canvas,a=0,s=i.length;for(this._showLine&&(e=n.dataset._model.clip,R.canvas.clipArea(t.ctx,{left:!1===e.left?0:r.left-e.left,right:!1===e.right?o.width:r.right+e.right,top:!1===e.top?0:r.top-e.top,bottom:!1===e.bottom?o.height:r.bottom+e.bottom}),n.dataset.draw(),R.canvas.unclipArea(t.ctx));a<s;++a)i[a].draw(r)},setHoverStyle:function(e){var t=e._model,n=e._options,i=R.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth,radius:t.radius},t.backgroundColor=Oe(n.hoverBackgroundColor,i(n.backgroundColor)),t.borderColor=Oe(n.hoverBorderColor,i(n.borderColor)),t.borderWidth=Oe(n.hoverBorderWidth,n.borderWidth),t.radius=Oe(n.hoverRadius,n.radius)}}),Fe=R.options.resolve;I._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(e){var t,n,i,r=document.createElement("ul"),o=e.data,a=o.datasets,s=o.labels;if(r.setAttribute("class",e.id+"-legend"),a.length)for(t=0,n=a[0].data.length;t<n;++t)(i=r.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor=a[0].backgroundColor[t],s[t]&&i.appendChild(document.createTextNode(s[t]));return r.outerHTML},legend:{labels:{generateLabels:function(e){var t=e.data;return t.labels.length&&t.datasets.length?t.labels.map((function(n,i){var r=e.getDatasetMeta(0),o=r.controller.getStyle(i);return{text:n,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,lineWidth:o.borderWidth,hidden:isNaN(t.datasets[0].data[i])||r.data[i].hidden,index:i}})):[]}},onClick:function(e,t){var n,i,r,o=t.index,a=this.chart;for(n=0,i=(a.data.datasets||[]).length;n<i;++n)(r=a.getDatasetMeta(n)).data[o].hidden=!r.data[o].hidden;a.update()}},tooltips:{callbacks:{title:function(){return""},label:function(e,t){return t.labels[e.index]+": "+e.yLabel}}}});var ze=te.extend({dataElementType:_e.Arc,linkScales:R.noop,_dataElementOptions:["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"],_getIndexScaleId:function(){return this.chart.scale.id},_getValueScaleId:function(){return this.chart.scale.id},update:function(e){var t,n,i,r=this,o=r.getDataset(),a=r.getMeta(),s=r.chart.options.startAngle||0,l=r._starts=[],u=r._angles=[],c=a.data;for(r._updateRadius(),a.count=r.countVisibleElements(),t=0,n=o.data.length;t<n;t++)l[t]=s,i=r._computeAngle(t),u[t]=i,s+=i;for(t=0,n=c.length;t<n;++t)c[t]._options=r._resolveDataElementOptions(c[t],t),r.updateElement(c[t],t,e)},_updateRadius:function(){var e=this,t=e.chart,n=t.chartArea,i=t.options,r=Math.min(n.right-n.left,n.bottom-n.top);t.outerRadius=Math.max(r/2,0),t.innerRadius=Math.max(i.cutoutPercentage?t.outerRadius/100*i.cutoutPercentage:1,0),t.radiusLength=(t.outerRadius-t.innerRadius)/t.getVisibleDatasetCount(),e.outerRadius=t.outerRadius-t.radiusLength*e.index,e.innerRadius=e.outerRadius-t.radiusLength},updateElement:function(e,t,n){var i=this,r=i.chart,o=i.getDataset(),a=r.options,s=a.animation,l=r.scale,u=r.data.labels,c=l.xCenter,d=l.yCenter,h=a.startAngle,f=e.hidden?0:l.getDistanceFromCenterForValue(o.data[t]),p=i._starts[t],m=p+(e.hidden?0:i._angles[t]),g=s.animateScale?0:l.getDistanceFromCenterForValue(o.data[t]),v=e._options||{};R.extend(e,{_datasetIndex:i.index,_index:t,_scale:l,_model:{backgroundColor:v.backgroundColor,borderColor:v.borderColor,borderWidth:v.borderWidth,borderAlign:v.borderAlign,x:c,y:d,innerRadius:0,outerRadius:n?g:f,startAngle:n&&s.animateRotate?h:p,endAngle:n&&s.animateRotate?h:m,label:R.valueAtIndexOrDefault(u,t,u[t])}}),e.pivot()},countVisibleElements:function(){var e=this.getDataset(),t=this.getMeta(),n=0;return R.each(t.data,(function(t,i){isNaN(e.data[i])||t.hidden||n++})),n},setHoverStyle:function(e){var t=e._model,n=e._options,i=R.getHoverColor,r=R.valueOrDefault;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth},t.backgroundColor=r(n.hoverBackgroundColor,i(n.backgroundColor)),t.borderColor=r(n.hoverBorderColor,i(n.borderColor)),t.borderWidth=r(n.hoverBorderWidth,n.borderWidth)},_computeAngle:function(e){var t=this,n=this.getMeta().count,i=t.getDataset(),r=t.getMeta();if(isNaN(i.data[e])||r.data[e].hidden)return 0;var o={chart:t.chart,dataIndex:e,dataset:i,datasetIndex:t.index};return Fe([t.chart.options.elements.arc.angle,2*Math.PI/n],o,e)}});I._set("pie",R.clone(I.doughnut)),I._set("pie",{cutoutPercentage:0});var Ve=Pe,Ue=R.valueOrDefault;I._set("radar",{spanGaps:!1,scale:{type:"radialLinear"},elements:{line:{fill:"start",tension:0}}});var We=te.extend({datasetElementType:_e.Line,dataElementType:_e.Point,linkScales:R.noop,_datasetElementOptions:["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill"],_dataElementOptions:{backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},_getIndexScaleId:function(){return this.chart.scale.id},_getValueScaleId:function(){return this.chart.scale.id},update:function(e){var t,n,i=this,r=i.getMeta(),o=r.dataset,a=r.data||[],s=i.chart.scale,l=i._config;for(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=s,o._datasetIndex=i.index,o._children=a,o._loop=!0,o._model=i._resolveDatasetElementOptions(o),o.pivot(),t=0,n=a.length;t<n;++t)i.updateElement(a[t],t,e);for(i.updateBezierControlPoints(),t=0,n=a.length;t<n;++t)a[t].pivot()},updateElement:function(e,t,n){var i=this,r=e.custom||{},o=i.getDataset(),a=i.chart.scale,s=a.getPointPositionForValue(t,o.data[t]),l=i._resolveDataElementOptions(e,t),u=i.getMeta().dataset._model,c=n?a.xCenter:s.x,d=n?a.yCenter:s.y;e._scale=a,e._options=l,e._datasetIndex=i.index,e._index=t,e._model={x:c,y:d,skip:r.skip||isNaN(c)||isNaN(d),radius:l.radius,pointStyle:l.pointStyle,rotation:l.rotation,backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,tension:Ue(r.tension,u?u.tension:0),hitRadius:l.hitRadius}},_resolveDatasetElementOptions:function(){var e=this,t=e._config,n=e.chart.options,i=te.prototype._resolveDatasetElementOptions.apply(e,arguments);return i.spanGaps=Ue(t.spanGaps,n.spanGaps),i.tension=Ue(t.lineTension,n.elements.line.tension),i},updateBezierControlPoints:function(){
+var e,t,n,i,r=this.getMeta(),o=this.chart.chartArea,a=r.data||[];function s(e,t,n){return Math.max(Math.min(e,n),t)}for(r.dataset._model.spanGaps&&(a=a.filter((function(e){return!e._model.skip}))),e=0,t=a.length;e<t;++e)n=a[e]._model,i=R.splineCurve(R.previousItem(a,e,!0)._model,n,R.nextItem(a,e,!0)._model,n.tension),n.controlPointPreviousX=s(i.previous.x,o.left,o.right),n.controlPointPreviousY=s(i.previous.y,o.top,o.bottom),n.controlPointNextX=s(i.next.x,o.left,o.right),n.controlPointNextY=s(i.next.y,o.top,o.bottom)},setHoverStyle:function(e){var t=e._model,n=e._options,i=R.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth,radius:t.radius},t.backgroundColor=Ue(n.hoverBackgroundColor,i(n.backgroundColor)),t.borderColor=Ue(n.hoverBorderColor,i(n.borderColor)),t.borderWidth=Ue(n.hoverBorderWidth,n.borderWidth),t.radius=Ue(n.hoverRadius,n.radius)}});I._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},tooltips:{callbacks:{title:function(){return""},label:function(e){return"("+e.xLabel+", "+e.yLabel+")"}}}}),I._set("global",{datasets:{scatter:{showLine:!1}}});var qe={bar:xe,bubble:$e,doughnut:Pe,horizontalBar:Ye,line:Re,polarArea:ze,pie:Ve,radar:We,scatter:Re};function Ge(e,t){return e.native?{x:e.x,y:e.y}:R.getRelativePosition(e,t)}function Ze(e,t){var n,i,r,o,a,s,l=e._getSortedVisibleDatasetMetas();for(i=0,o=l.length;i<o;++i)for(r=0,a=(n=l[i].data).length;r<a;++r)(s=n[r])._view.skip||t(s)}function Je(e,t){var n=[];return Ze(e,(function(e){e.inRange(t.x,t.y)&&n.push(e)})),n}function Xe(e,t,n,i){var r=Number.POSITIVE_INFINITY,o=[];return Ze(e,(function(e){if(!n||e.inRange(t.x,t.y)){var a=e.getCenterPoint(),s=i(t,a);s<r?(o=[e],r=s):s===r&&o.push(e)}})),o}function Ke(e){var t=-1!==e.indexOf("x"),n=-1!==e.indexOf("y");return function(e,i){var r=t?Math.abs(e.x-i.x):0,o=n?Math.abs(e.y-i.y):0;return Math.sqrt(Math.pow(r,2)+Math.pow(o,2))}}function Qe(e,t,n){var i=Ge(t,e);n.axis=n.axis||"x";var r=Ke(n.axis),o=n.intersect?Je(e,i):Xe(e,i,!1,r),a=[];return o.length?(e._getSortedVisibleDatasetMetas().forEach((function(e){var t=e.data[o[0]._index];t&&!t._view.skip&&a.push(t)})),a):[]}var et={modes:{single:function(e,t){var n=Ge(t,e),i=[];return Ze(e,(function(e){if(e.inRange(n.x,n.y))return i.push(e),i})),i.slice(0,1)},label:Qe,index:Qe,dataset:function(e,t,n){var i=Ge(t,e);n.axis=n.axis||"xy";var r=Ke(n.axis),o=n.intersect?Je(e,i):Xe(e,i,!1,r);return o.length>0&&(o=e.getDatasetMeta(o[0]._datasetIndex).data),o},"x-axis":function(e,t){return Qe(e,t,{intersect:!1})},point:function(e,t){return Je(e,Ge(t,e))},nearest:function(e,t,n){var i=Ge(t,e);n.axis=n.axis||"xy";var r=Ke(n.axis);return Xe(e,i,n.intersect,r)},x:function(e,t,n){var i=Ge(t,e),r=[],o=!1;return Ze(e,(function(e){e.inXRange(i.x)&&r.push(e),e.inRange(i.x,i.y)&&(o=!0)})),n.intersect&&!o&&(r=[]),r},y:function(e,t,n){var i=Ge(t,e),r=[],o=!1;return Ze(e,(function(e){e.inYRange(i.y)&&r.push(e),e.inRange(i.x,i.y)&&(o=!0)})),n.intersect&&!o&&(r=[]),r}}},tt=R.extend;function nt(e,t){return R.where(e,(function(e){return e.pos===t}))}function it(e,t){return e.sort((function(e,n){var i=t?n:e,r=t?e:n;return i.weight===r.weight?i.index-r.index:i.weight-r.weight}))}function rt(e,t,n,i){return Math.max(e[n],t[n])+Math.max(e[i],t[i])}function ot(e,t,n){var i,r,o=n.box,a=e.maxPadding;if(n.size&&(e[n.pos]-=n.size),n.size=n.horizontal?o.height:o.width,e[n.pos]+=n.size,o.getPadding){var s=o.getPadding();a.top=Math.max(a.top,s.top),a.left=Math.max(a.left,s.left),a.bottom=Math.max(a.bottom,s.bottom),a.right=Math.max(a.right,s.right)}if(i=t.outerWidth-rt(a,e,"left","right"),r=t.outerHeight-rt(a,e,"top","bottom"),i!==e.w||r!==e.h)return e.w=i,e.h=r,n.horizontal?i!==e.w:r!==e.h}function at(e,t){var n=t.maxPadding;return function(e){var i={left:0,top:0,right:0,bottom:0};return e.forEach((function(e){i[e]=Math.max(t[e],n[e])})),i}(e?["left","right"]:["top","bottom"])}function st(e,t,n){var i,r,o,a,s,l,u=[];for(i=0,r=e.length;i<r;++i)(a=(o=e[i]).box).update(o.width||t.w,o.height||t.h,at(o.horizontal,t)),ot(t,n,o)&&(l=!0,u.length&&(s=!0)),a.fullWidth||u.push(o);return s&&st(u,t,n)||l}function lt(e,t,n){var i,r,o,a,s=n.padding,l=t.x,u=t.y;for(i=0,r=e.length;i<r;++i)a=(o=e[i]).box,o.horizontal?(a.left=a.fullWidth?s.left:t.left,a.right=a.fullWidth?n.outerWidth-s.right:t.left+t.w,a.top=u,a.bottom=u+a.height,a.width=a.right-a.left,u=a.bottom):(a.left=l,a.right=l+a.width,a.top=t.top,a.bottom=t.top+t.h,a.height=a.bottom-a.top,l=a.right);t.x=l,t.y=u}I._set("global",{layout:{padding:{top:0,right:0,bottom:0,left:0}}});var ut,ct={defaults:{},addBox:function(e,t){e.boxes||(e.boxes=[]),t.fullWidth=t.fullWidth||!1,t.position=t.position||"top",t.weight=t.weight||0,t._layers=t._layers||function(){return[{z:0,draw:function(){t.draw.apply(t,arguments)}}]},e.boxes.push(t)},removeBox:function(e,t){var n=e.boxes?e.boxes.indexOf(t):-1;-1!==n&&e.boxes.splice(n,1)},configure:function(e,t,n){for(var i,r=["fullWidth","position","weight"],o=r.length,a=0;a<o;++a)i=r[a],n.hasOwnProperty(i)&&(t[i]=n[i])},update:function(e,t,n){if(e){var i=e.options.layout||{},r=R.options.toPadding(i.padding),o=t-r.width,a=n-r.height,s=function(e){var t=function(e){var t,n,i,r=[];for(t=0,n=(e||[]).length;t<n;++t)i=e[t],r.push({index:t,box:i,pos:i.position,horizontal:i.isHorizontal(),weight:i.weight});return r}(e),n=it(nt(t,"left"),!0),i=it(nt(t,"right")),r=it(nt(t,"top"),!0),o=it(nt(t,"bottom"));return{leftAndTop:n.concat(r),rightAndBottom:i.concat(o),chartArea:nt(t,"chartArea"),vertical:n.concat(i),horizontal:r.concat(o)}}(e.boxes),l=s.vertical,u=s.horizontal,c=Object.freeze({outerWidth:t,outerHeight:n,padding:r,availableWidth:o,vBoxMaxWidth:o/2/l.length,hBoxMaxHeight:a/2}),d=tt({maxPadding:tt({},r),w:o,h:a,x:r.left,y:r.top},r);!function(e,t){var n,i,r;for(n=0,i=e.length;n<i;++n)(r=e[n]).width=r.horizontal?r.box.fullWidth&&t.availableWidth:t.vBoxMaxWidth,r.height=r.horizontal&&t.hBoxMaxHeight}(l.concat(u),c),st(l,d,c),st(u,d,c)&&st(l,d,c),function(e){var t=e.maxPadding;function n(n){var i=Math.max(t[n]-e[n],0);return e[n]+=i,i}e.y+=n("top"),e.x+=n("left"),n("right"),n("bottom")}(d),lt(s.leftAndTop,d,c),d.x+=d.w,d.y+=d.h,lt(s.rightAndBottom,d,c),e.chartArea={left:d.left,top:d.top,right:d.left+d.w,bottom:d.top+d.h},R.each(s.chartArea,(function(t){var n=t.box;tt(n,e.chartArea),n.update(d.w,d.h)}))}}},dt=(ut=Object.freeze({__proto__:null,default:"@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}"}))&&ut.default||ut,ht="$chartjs",ft="chartjs-size-monitor",pt="chartjs-render-monitor",mt=["animationstart","webkitAnimationStart"],gt={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function vt(e,t){var n=R.getStyle(e,t),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?Number(i[1]):void 0}var _t=!!function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("e",null,t)}catch(e){}return e}()&&{passive:!0};function yt(e,t,n){e.addEventListener(t,n,_t)}function bt(e,t,n){e.removeEventListener(t,n,_t)}function wt(e,t,n,i,r){return{type:e,chart:t,native:r||null,x:void 0!==n?n:null,y:void 0!==i?i:null}}function Lt(e){var t=document.createElement("div");return t.className=e||"",t}var Mt={disableCSSInjection:!1,_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,_ensureLoaded:function(e){if(!this.disableCSSInjection){var t=e.getRootNode?e.getRootNode():document;!function(e,t){var n=e[ht]||(e[ht]={});if(!n.containsStyles){n.containsStyles=!0,t="/* Chart.js */\n"+t;var i=document.createElement("style");i.setAttribute("type","text/css"),i.appendChild(document.createTextNode(t)),e.appendChild(i)}}(t.host?t:document.head,dt)}},acquireContext:function(e,t){"string"==typeof e?e=document.getElementById(e):e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas);var n=e&&e.getContext&&e.getContext("2d");return n&&n.canvas===e?(this._ensureLoaded(e),function(e,t){var n=e.style,i=e.getAttribute("height"),r=e.getAttribute("width");if(e[ht]={initial:{height:i,width:r,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",null===r||""===r){var o=vt(e,"width");void 0!==o&&(e.width=o)}if(null===i||""===i)if(""===e.style.height)e.height=e.width/(t.options.aspectRatio||2);else{var a=vt(e,"height");void 0!==o&&(e.height=a)}}(e,t),n):null},releaseContext:function(e){var t=e.canvas;if(t[ht]){var n=t[ht].initial;["height","width"].forEach((function(e){var i=n[e];R.isNullOrUndef(i)?t.removeAttribute(e):t.setAttribute(e,i)})),R.each(n.style||{},(function(e,n){t.style[n]=e})),t.width=t.width,delete t[ht]}},addEventListener:function(e,t,n){var i=e.canvas;if("resize"!==t){var r=n[ht]||(n[ht]={});yt(i,t,(r.proxies||(r.proxies={}))[e.id+"_"+t]=function(t){n(function(e,t){var n=gt[e.type]||e.type,i=R.getRelativePosition(e,t);return wt(n,t,i.x,i.y,e)}(t,e))})}else!function(e,t,n){var i,r,o,a,s=e[ht]||(e[ht]={}),l=s.resizer=function(e){var t=Lt(ft),n=Lt(ft+"-expand"),i=Lt(ft+"-shrink");n.appendChild(Lt()),i.appendChild(Lt()),t.appendChild(n),t.appendChild(i),t._reset=function(){n.scrollLeft=1e6,n.scrollTop=1e6,i.scrollLeft=1e6,i.scrollTop=1e6};var r=function(){t._reset(),e()};return yt(n,"scroll",r.bind(n,"expand")),yt(i,"scroll",r.bind(i,"shrink")),t}((i=function(){if(s.resizer){var i=n.options.maintainAspectRatio&&e.parentNode,r=i?i.clientWidth:0;t(wt("resize",n)),i&&i.clientWidth<r&&n.canvas&&t(wt("resize",n))}},o=!1,a=[],function(){a=Array.prototype.slice.call(arguments),r=r||this,o||(o=!0,R.requestAnimFrame.call(window,(function(){o=!1,i.apply(r,a)})))}));!function(e,t){var n=e[ht]||(e[ht]={}),i=n.renderProxy=function(e){"chartjs-render-animation"===e.animationName&&t()};R.each(mt,(function(t){yt(e,t,i)})),n.reflow=!!e.offsetParent,e.classList.add(pt)}(e,(function(){if(s.resizer){var t=e.parentNode;t&&t!==l.parentNode&&t.insertBefore(l,t.firstChild),l._reset()}}))}(i,n,e)},removeEventListener:function(e,t,n){var i=e.canvas;if("resize"!==t){var r=((n[ht]||{}).proxies||{})[e.id+"_"+t];r&&bt(i,t,r)}else!function(e){var t=e[ht]||{},n=t.resizer;delete t.resizer,function(e){var t=e[ht]||{},n=t.renderProxy;n&&(R.each(mt,(function(t){bt(e,t,n)})),delete t.renderProxy),e.classList.remove(pt)}(e),n&&n.parentNode&&n.parentNode.removeChild(n)}(i)}};R.addEvent=yt,R.removeEvent=bt;var kt=Mt._enabled?Mt:{acquireContext:function(e){return e&&e.canvas&&(e=e.canvas),e&&e.getContext("2d")||null}},xt=R.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},kt);I._set("global",{plugins:{}});var St={_plugins:[],_cacheId:0,register:function(e){var t=this._plugins;[].concat(e).forEach((function(e){-1===t.indexOf(e)&&t.push(e)})),this._cacheId++},unregister:function(e){var t=this._plugins;[].concat(e).forEach((function(e){var n=t.indexOf(e);-1!==n&&t.splice(n,1)})),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(e,t,n){var i,r,o,a,s,l=this.descriptors(e),u=l.length;for(i=0;i<u;++i)if("function"==typeof(s=(o=(r=l[i]).plugin)[t])&&((a=[e].concat(n||[])).push(r.options),!1===s.apply(o,a)))return!1;return!0},descriptors:function(e){var t=e.$plugins||(e.$plugins={});if(t.id===this._cacheId)return t.descriptors;var n=[],i=[],r=e&&e.config||{},o=r.options&&r.options.plugins||{};return this._plugins.concat(r.plugins||[]).forEach((function(e){if(-1===n.indexOf(e)){var t=e.id,r=o[t];!1!==r&&(!0===r&&(r=R.clone(I.global.plugins[t])),n.push(e),i.push({plugin:e,options:r||{}}))}})),t.descriptors=i,t.id=this._cacheId,i},_invalidate:function(e){delete e.$plugins}},Tt={constructors:{},defaults:{},registerScaleType:function(e,t,n){this.constructors[e]=t,this.defaults[e]=R.clone(n)},getScaleConstructor:function(e){return this.constructors.hasOwnProperty(e)?this.constructors[e]:void 0},getScaleDefaults:function(e){return this.defaults.hasOwnProperty(e)?R.merge({},[I.scale,this.defaults[e]]):{}},updateScaleDefaults:function(e,t){this.defaults.hasOwnProperty(e)&&(this.defaults[e]=R.extend(this.defaults[e],t))},addScalesToLayout:function(e){R.each(e.scales,(function(t){t.fullWidth=t.options.fullWidth,t.position=t.options.position,t.weight=t.options.weight,ct.addBox(e,t)}))}},$t=R.valueOrDefault,Dt=R.rtl.getRtlAdapter;I._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:R.noop,title:function(e,t){var n="",i=t.labels,r=i?i.length:0;if(e.length>0){var o=e[0];o.label?n=o.label:o.xLabel?n=o.xLabel:r>0&&o.index<r&&(n=i[o.index])}return n},afterTitle:R.noop,beforeBody:R.noop,beforeLabel:R.noop,label:function(e,t){var n=t.datasets[e.datasetIndex].label||"";return n&&(n+=": "),R.isNullOrUndef(e.value)?n+=e.yLabel:n+=e.value,n},labelColor:function(e,t){var n=t.getDatasetMeta(e.datasetIndex).data[e.index]._view;return{borderColor:n.borderColor,backgroundColor:n.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:R.noop,afterBody:R.noop,beforeFooter:R.noop,footer:R.noop,afterFooter:R.noop}}});var Ct={average:function(e){if(!e.length)return!1;var t,n,i=0,r=0,o=0;for(t=0,n=e.length;t<n;++t){var a=e[t];if(a&&a.hasValue()){var s=a.tooltipPosition();i+=s.x,r+=s.y,++o}}return{x:i/o,y:r/o}},nearest:function(e,t){var n,i,r,o=t.x,a=t.y,s=Number.POSITIVE_INFINITY;for(n=0,i=e.length;n<i;++n){var l=e[n];if(l&&l.hasValue()){var u=l.getCenterPoint(),c=R.distanceBetweenPoints(t,u);c<s&&(s=c,r=l)}}if(r){var d=r.tooltipPosition();o=d.x,a=d.y}return{x:o,y:a}}};function Et(e,t){return t&&(R.isArray(t)?Array.prototype.push.apply(e,t):e.push(t)),e}function At(e){return("string"==typeof e||e instanceof String)&&e.indexOf("\n")>-1?e.split("\n"):e}function Pt(e){var t=I.global;return{xPadding:e.xPadding,yPadding:e.yPadding,xAlign:e.xAlign,yAlign:e.yAlign,rtl:e.rtl,textDirection:e.textDirection,bodyFontColor:e.bodyFontColor,_bodyFontFamily:$t(e.bodyFontFamily,t.defaultFontFamily),_bodyFontStyle:$t(e.bodyFontStyle,t.defaultFontStyle),_bodyAlign:e.bodyAlign,bodyFontSize:$t(e.bodyFontSize,t.defaultFontSize),bodySpacing:e.bodySpacing,titleFontColor:e.titleFontColor,_titleFontFamily:$t(e.titleFontFamily,t.defaultFontFamily),_titleFontStyle:$t(e.titleFontStyle,t.defaultFontStyle),titleFontSize:$t(e.titleFontSize,t.defaultFontSize),_titleAlign:e.titleAlign,titleSpacing:e.titleSpacing,titleMarginBottom:e.titleMarginBottom,footerFontColor:e.footerFontColor,_footerFontFamily:$t(e.footerFontFamily,t.defaultFontFamily),_footerFontStyle:$t(e.footerFontStyle,t.defaultFontStyle),footerFontSize:$t(e.footerFontSize,t.defaultFontSize),_footerAlign:e.footerAlign,footerSpacing:e.footerSpacing,footerMarginTop:e.footerMarginTop,caretSize:e.caretSize,cornerRadius:e.cornerRadius,backgroundColor:e.backgroundColor,opacity:0,legendColorBackground:e.multiKeyBackground,displayColors:e.displayColors,borderColor:e.borderColor,borderWidth:e.borderWidth}}function Yt(e,t){return"center"===t?e.x+e.width/2:"right"===t?e.x+e.width-e.xPadding:e.x+e.xPadding}function Ot(e){return Et([],At(e))}var It=q.extend({initialize:function(){this._model=Pt(this._options),this._lastActive=[]},getTitle:function(){var e=this,t=e._options,n=t.callbacks,i=n.beforeTitle.apply(e,arguments),r=n.title.apply(e,arguments),o=n.afterTitle.apply(e,arguments),a=[];return a=Et(a,At(i)),a=Et(a,At(r)),Et(a,At(o))},getBeforeBody:function(){return Ot(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(e,t){var n=this,i=n._options.callbacks,r=[];return R.each(e,(function(e){var o={before:[],lines:[],after:[]};Et(o.before,At(i.beforeLabel.call(n,e,t))),Et(o.lines,i.label.call(n,e,t)),Et(o.after,At(i.afterLabel.call(n,e,t))),r.push(o)})),r},getAfterBody:function(){return Ot(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var e=this,t=e._options.callbacks,n=t.beforeFooter.apply(e,arguments),i=t.footer.apply(e,arguments),r=t.afterFooter.apply(e,arguments),o=[];return o=Et(o,At(n)),o=Et(o,At(i)),Et(o,At(r))},update:function(e){var t,n,i,r,o,a,s,l,u,c,d=this,h=d._options,f=d._model,p=d._model=Pt(h),m=d._active,g=d._data,v={xAlign:f.xAlign,yAlign:f.yAlign},_={x:f.x,y:f.y},y={width:f.width,height:f.height},b={x:f.caretX,y:f.caretY};if(m.length){p.opacity=1;var w=[],L=[];b=Ct[h.position].call(d,m,d._eventPosition);var M=[];for(t=0,n=m.length;t<n;++t)M.push((r=void 0,o=void 0,l=void 0,u=void 0,c=void 0,r=(i=m[t])._xScale,o=i._yScale||i._scale,a=i._index,s=i._datasetIndex,u=(l=i._chart.getDatasetMeta(s).controller)._getIndexScale(),c=l._getValueScale(),{xLabel:r?r.getLabelForIndex(a,s):"",yLabel:o?o.getLabelForIndex(a,s):"",label:u?""+u.getLabelForIndex(a,s):"",value:c?""+c.getLabelForIndex(a,s):"",index:a,datasetIndex:s,x:i._model.x,y:i._model.y}));h.filter&&(M=M.filter((function(e){return h.filter(e,g)}))),h.itemSort&&(M=M.sort((function(e,t){return h.itemSort(e,t,g)}))),R.each(M,(function(e){w.push(h.callbacks.labelColor.call(d,e,d._chart)),L.push(h.callbacks.labelTextColor.call(d,e,d._chart))})),p.title=d.getTitle(M,g),p.beforeBody=d.getBeforeBody(M,g),p.body=d.getBody(M,g),p.afterBody=d.getAfterBody(M,g),p.footer=d.getFooter(M,g),p.x=b.x,p.y=b.y,p.caretPadding=h.caretPadding,p.labelColors=w,p.labelTextColors=L,p.dataPoints=M,_=function(e,t,n,i){var r=e.x,o=e.y,a=e.caretSize,s=e.caretPadding,l=e.cornerRadius,u=n.xAlign,c=n.yAlign,d=a+s,h=l+s;return"right"===u?r-=t.width:"center"===u&&((r-=t.width/2)+t.width>i.width&&(r=i.width-t.width),r<0&&(r=0)),"top"===c?o+=d:o-="bottom"===c?t.height+d:t.height/2,"center"===c?"left"===u?r+=d:"right"===u&&(r-=d):"left"===u?r-=h:"right"===u&&(r+=h),{x:r,y:o}}(p,y=function(e,t){var n=e._chart.ctx,i=2*t.yPadding,r=0,o=t.body,a=o.reduce((function(e,t){return e+t.before.length+t.lines.length+t.after.length}),0);a+=t.beforeBody.length+t.afterBody.length;var s=t.title.length,l=t.footer.length,u=t.titleFontSize,c=t.bodyFontSize,d=t.footerFontSize;i+=s*u,i+=s?(s-1)*t.titleSpacing:0,i+=s?t.titleMarginBottom:0,i+=a*c,i+=a?(a-1)*t.bodySpacing:0,i+=l?t.footerMarginTop:0,i+=l*d,i+=l?(l-1)*t.footerSpacing:0;var h=0,f=function(e){r=Math.max(r,n.measureText(e).width+h)};return n.font=R.fontString(u,t._titleFontStyle,t._titleFontFamily),R.each(t.title,f),n.font=R.fontString(c,t._bodyFontStyle,t._bodyFontFamily),R.each(t.beforeBody.concat(t.afterBody),f),h=t.displayColors?c+2:0,R.each(o,(function(e){R.each(e.before,f),R.each(e.lines,f),R.each(e.after,f)})),h=0,n.font=R.fontString(d,t._footerFontStyle,t._footerFontFamily),R.each(t.footer,f),{width:r+=2*t.xPadding,height:i}}(this,p),v=function(e,t){var n,i,r,o,a,s=e._model,l=e._chart,u=e._chart.chartArea,c="center",d="center";s.y<t.height?d="top":s.y>l.height-t.height&&(d="bottom");var h=(u.left+u.right)/2,f=(u.top+u.bottom)/2;"center"===d?(n=function(e){return e<=h},i=function(e){return e>h}):(n=function(e){return e<=t.width/2},i=function(e){return e>=l.width-t.width/2}),r=function(e){return e+t.width+s.caretSize+s.caretPadding>l.width},o=function(e){return e-t.width-s.caretSize-s.caretPadding<0},a=function(e){return e<=f?"top":"bottom"},n(s.x)?(c="left",r(s.x)&&(c="center",d=a(s.y))):i(s.x)&&(c="right",o(s.x)&&(c="center",d=a(s.y)));var p=e._options;return{xAlign:p.xAlign?p.xAlign:c,yAlign:p.yAlign?p.yAlign:d}}(this,y),d._chart)}else p.opacity=0;return p.xAlign=v.xAlign,p.yAlign=v.yAlign,p.x=_.x,p.y=_.y,p.width=y.width,p.height=y.height,p.caretX=b.x,p.caretY=b.y,d._model=p,e&&h.custom&&h.custom.call(d,p),d},drawCaret:function(e,t){var n=this._chart.ctx,i=this._view,r=this.getCaretPosition(e,t,i);n.lineTo(r.x1,r.y1),n.lineTo(r.x2,r.y2),n.lineTo(r.x3,r.y3)},getCaretPosition:function(e,t,n){var i,r,o,a,s,l,u=n.caretSize,c=n.cornerRadius,d=n.xAlign,h=n.yAlign,f=e.x,p=e.y,m=t.width,g=t.height;if("center"===h)s=p+g/2,"left"===d?(r=(i=f)-u,o=i,a=s+u,l=s-u):(r=(i=f+m)+u,o=i,a=s-u,l=s+u);else if("left"===d?(i=(r=f+c+u)-u,o=r+u):"right"===d?(i=(r=f+m-c-u)-u,o=r+u):(i=(r=n.caretX)-u,o=r+u),"top"===h)s=(a=p)-u,l=a;else{s=(a=p+g)+u,l=a;var v=o;o=i,i=v}return{x1:i,x2:r,x3:o,y1:a,y2:s,y3:l}},drawTitle:function(e,t,n){var i,r,o,a=t.title,s=a.length;if(s){var l=Dt(t.rtl,t.x,t.width);for(e.x=Yt(t,t._titleAlign),n.textAlign=l.textAlign(t._titleAlign),n.textBaseline="middle",i=t.titleFontSize,r=t.titleSpacing,n.fillStyle=t.titleFontColor,n.font=R.fontString(i,t._titleFontStyle,t._titleFontFamily),o=0;o<s;++o)n.fillText(a[o],l.x(e.x),e.y+i/2),e.y+=i+r,o+1===s&&(e.y+=t.titleMarginBottom-r)}},drawBody:function(e,t,n){var i,r,o,a,s,l,u,c,d=t.bodyFontSize,h=t.bodySpacing,f=t._bodyAlign,p=t.body,m=t.displayColors,g=0,v=m?Yt(t,"left"):0,_=Dt(t.rtl,t.x,t.width),y=function(t){n.fillText(t,_.x(e.x+g),e.y+d/2),e.y+=d+h},b=_.textAlign(f);for(n.textAlign=f,n.textBaseline="middle",n.font=R.fontString(d,t._bodyFontStyle,t._bodyFontFamily),e.x=Yt(t,b),n.fillStyle=t.bodyFontColor,R.each(t.beforeBody,y),g=m&&"right"!==b?"center"===f?d/2+1:d+2:0,s=0,u=p.length;s<u;++s){for(i=p[s],r=t.labelTextColors[s],o=t.labelColors[s],n.fillStyle=r,R.each(i.before,y),l=0,c=(a=i.lines).length;l<c;++l){if(m){var w=_.x(v);n.fillStyle=t.legendColorBackground,n.fillRect(_.leftForLtr(w,d),e.y,d,d),n.lineWidth=1,n.strokeStyle=o.borderColor,n.strokeRect(_.leftForLtr(w,d),e.y,d,d),n.fillStyle=o.backgroundColor,n.fillRect(_.leftForLtr(_.xPlus(w,1),d-2),e.y+1,d-2,d-2),n.fillStyle=r}y(a[l])}R.each(i.after,y)}g=0,R.each(t.afterBody,y),e.y-=h},drawFooter:function(e,t,n){var i,r,o=t.footer,a=o.length;if(a){var s=Dt(t.rtl,t.x,t.width);for(e.x=Yt(t,t._footerAlign),e.y+=t.footerMarginTop,n.textAlign=s.textAlign(t._footerAlign),n.textBaseline="middle",i=t.footerFontSize,n.fillStyle=t.footerFontColor,n.font=R.fontString(i,t._footerFontStyle,t._footerFontFamily),r=0;r<a;++r)n.fillText(o[r],s.x(e.x),e.y+i/2),e.y+=i+t.footerSpacing}},drawBackground:function(e,t,n,i){n.fillStyle=t.backgroundColor,n.strokeStyle=t.borderColor,n.lineWidth=t.borderWidth;var r=t.xAlign,o=t.yAlign,a=e.x,s=e.y,l=i.width,u=i.height,c=t.cornerRadius;n.beginPath(),n.moveTo(a+c,s),"top"===o&&this.drawCaret(e,i),n.lineTo(a+l-c,s),n.quadraticCurveTo(a+l,s,a+l,s+c),"center"===o&&"right"===r&&this.drawCaret(e,i),n.lineTo(a+l,s+u-c),n.quadraticCurveTo(a+l,s+u,a+l-c,s+u),"bottom"===o&&this.drawCaret(e,i),n.lineTo(a+c,s+u),n.quadraticCurveTo(a,s+u,a,s+u-c),"center"===o&&"left"===r&&this.drawCaret(e,i),n.lineTo(a,s+c),n.quadraticCurveTo(a,s,a+c,s),n.closePath(),n.fill(),t.borderWidth>0&&n.stroke()},draw:function(){var e=this._chart.ctx,t=this._view;if(0!==t.opacity){var n={width:t.width,height:t.height},i={x:t.x,y:t.y},r=Math.abs(t.opacity<.001)?0:t.opacity,o=t.title.length||t.beforeBody.length||t.body.length||t.afterBody.length||t.footer.length;this._options.enabled&&o&&(e.save(),e.globalAlpha=r,this.drawBackground(i,t,e,n),i.y+=t.yPadding,R.rtl.overrideTextDirection(e,t.textDirection),this.drawTitle(i,t,e),this.drawBody(i,t,e),this.drawFooter(i,t,e),R.rtl.restoreTextDirection(e,t.textDirection),e.restore())}},handleEvent:function(e){var t,n=this,i=n._options;return n._lastActive=n._lastActive||[],"mouseout"===e.type?n._active=[]:(n._active=n._chart.getElementsAtEventForMode(e,i.mode,i),i.reverse&&n._active.reverse()),(t=!R.arrayEquals(n._active,n._lastActive))&&(n._lastActive=n._active,(i.enabled||i.custom)&&(n._eventPosition={x:e.x,y:e.y},n.update(!0),n.pivot())),t}}),jt=Ct,Ht=It;Ht.positioners=jt;var Nt=R.valueOrDefault;function Bt(){return R.merge({},[].slice.call(arguments),{merger:function(e,t,n,i){if("xAxes"===e||"yAxes"===e){var r,o,a,s=n[e].length;for(t[e]||(t[e]=[]),r=0;r<s;++r)a=n[e][r],o=Nt(a.type,"xAxes"===e?"category":"linear"),r>=t[e].length&&t[e].push({}),!t[e][r].type||a.type&&a.type!==t[e][r].type?R.merge(t[e][r],[Tt.getScaleDefaults(o),a]):R.merge(t[e][r],a)}else R._merger(e,t,n,i)}})}function Rt(){return R.merge({},[].slice.call(arguments),{merger:function(e,t,n,i){var r=t[e]||{},o=n[e];"scales"===e?t[e]=Bt(r,o):"scale"===e?t[e]=R.merge(r,[Tt.getScaleDefaults(o.type),o]):R._merger(e,t,n,i)}})}function Ft(e){var t=e.options;R.each(e.scales,(function(t){ct.removeBox(e,t)})),t=Rt(I.global,I[e.config.type],t),e.options=e.config.options=t,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=t.tooltips,e.tooltip.initialize()}function zt(e,t,n){var i,r=function(e){return e.id===i};do{i=t+n++}while(R.findIndex(e,r)>=0);return i}function Vt(e){return"top"===e||"bottom"===e}function Ut(e,t){return function(n,i){return n[e]===i[e]?n[t]-i[t]:n[e]-i[e]}}I._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var Wt=function(e,t){return this.construct(e,t),this};R.extend(Wt.prototype,{construct:function(e,t){var n=this;t=function(e){var t=(e=e||{}).data=e.data||{};return t.datasets=t.datasets||[],t.labels=t.labels||[],e.options=Rt(I.global,I[e.type],e.options||{}),e}(t);var i=xt.acquireContext(e,t),r=i&&i.canvas,o=r&&r.height,a=r&&r.width;n.id=R.uid(),n.ctx=i,n.canvas=r,n.config=t,n.width=a,n.height=o,n.aspectRatio=o?a/o:null,n.options=t.options,n._bufferedRender=!1,n._layers=[],n.chart=n,n.controller=n,Wt.instances[n.id]=n,Object.defineProperty(n,"data",{get:function(){return n.config.data},set:function(e){n.config.data=e}}),i&&r?(n.initialize(),n.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var e=this;return St.notify(e,"beforeInit"),R.retinaScale(e,e.options.devicePixelRatio),e.bindEvents(),e.options.responsive&&e.resize(!0),e.initToolTip(),St.notify(e,"afterInit"),e},clear:function(){return R.canvas.clear(this),this},stop:function(){return J.cancelAnimation(this),this},resize:function(e){var t=this,n=t.options,i=t.canvas,r=n.maintainAspectRatio&&t.aspectRatio||null,o=Math.max(0,Math.floor(R.getMaximumWidth(i))),a=Math.max(0,Math.floor(r?o/r:R.getMaximumHeight(i)));if((t.width!==o||t.height!==a)&&(i.width=t.width=o,i.height=t.height=a,i.style.width=o+"px",i.style.height=a+"px",R.retinaScale(t,n.devicePixelRatio),!e)){var s={width:o,height:a};St.notify(t,"resize",[s]),n.onResize&&n.onResize(t,s),t.stop(),t.update({duration:n.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var e=this.options,t=e.scales||{},n=e.scale;R.each(t.xAxes,(function(e,n){e.id||(e.id=zt(t.xAxes,"x-axis-",n))})),R.each(t.yAxes,(function(e,n){e.id||(e.id=zt(t.yAxes,"y-axis-",n))})),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var e=this,t=e.options,n=e.scales||{},i=[],r=Object.keys(n).reduce((function(e,t){return e[t]=!1,e}),{});t.scales&&(i=i.concat((t.scales.xAxes||[]).map((function(e){return{options:e,dtype:"category",dposition:"bottom"}})),(t.scales.yAxes||[]).map((function(e){return{options:e,dtype:"linear",dposition:"left"}})))),t.scale&&i.push({options:t.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),R.each(i,(function(t){var i=t.options,o=i.id,a=Nt(i.type,t.dtype);Vt(i.position)!==Vt(t.dposition)&&(i.position=t.dposition),r[o]=!0;var s=null;if(o in n&&n[o].type===a)(s=n[o]).options=i,s.ctx=e.ctx,s.chart=e;else{var l=Tt.getScaleConstructor(a);if(!l)return;s=new l({id:o,type:a,options:i,ctx:e.ctx,chart:e}),n[s.id]=s}s.mergeTicksOptions(),t.isDefault&&(e.scale=s)})),R.each(r,(function(e,t){e||delete n[t]})),e.scales=n,Tt.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e,t,n=this,i=[],r=n.data.datasets;for(e=0,t=r.length;e<t;e++){var o=r[e],a=n.getDatasetMeta(e),s=o.type||n.config.type;if(a.type&&a.type!==s&&(n.destroyDatasetMeta(e),a=n.getDatasetMeta(e)),a.type=s,a.order=o.order||0,a.index=e,a.controller)a.controller.updateIndex(e),a.controller.linkScales();else{var l=qe[a.type];if(void 0===l)throw new Error('"'+a.type+'" is not a chart type.');a.controller=new l(n,e),i.push(a.controller)}}return i},resetElements:function(){var e=this;R.each(e.data.datasets,(function(t,n){e.getDatasetMeta(n).controller.reset()}),e)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(e){var t,n,i=this;if(e&&"object"==typeof e||(e={duration:e,lazy:arguments[1]}),Ft(i),St._invalidate(i),!1!==St.notify(i,"beforeUpdate")){i.tooltip._data=i.data;var r=i.buildOrUpdateControllers();for(t=0,n=i.data.datasets.length;t<n;t++)i.getDatasetMeta(t).controller.buildOrUpdateElements();i.updateLayout(),i.options.animation&&i.options.animation.duration&&R.each(r,(function(e){e.reset()})),i.updateDatasets(),i.tooltip.initialize(),i.lastActive=[],St.notify(i,"afterUpdate"),i._layers.sort(Ut("z","_idx")),i._bufferedRender?i._bufferedRequest={duration:e.duration,easing:e.easing,lazy:e.lazy}:i.render(e)}},updateLayout:function(){var e=this;!1!==St.notify(e,"beforeLayout")&&(ct.update(this,this.width,this.height),e._layers=[],R.each(e.boxes,(function(t){t._configure&&t._configure(),e._layers.push.apply(e._layers,t._layers())}),e),e._layers.forEach((function(e,t){e._idx=t})),St.notify(e,"afterScaleUpdate"),St.notify(e,"afterLayout"))},updateDatasets:function(){if(!1!==St.notify(this,"beforeDatasetsUpdate")){for(var e=0,t=this.data.datasets.length;e<t;++e)this.updateDataset(e);St.notify(this,"afterDatasetsUpdate")}},updateDataset:function(e){var t=this.getDatasetMeta(e),n={meta:t,index:e};!1!==St.notify(this,"beforeDatasetUpdate",[n])&&(t.controller._update(),St.notify(this,"afterDatasetUpdate",[n]))},render:function(e){var t=this;e&&"object"==typeof e||(e={duration:e,lazy:arguments[1]});var n=t.options.animation,i=Nt(e.duration,n&&n.duration),r=e.lazy;if(!1!==St.notify(t,"beforeRender")){var o=function(e){St.notify(t,"afterRender"),R.callback(n&&n.onComplete,[e],t)};if(n&&i){var a=new Z({numSteps:i/16.66,easing:e.easing||n.easing,render:function(e,t){var n=R.easing.effects[t.easing],i=t.currentStep,r=i/t.numSteps;e.draw(n(r),r,i)},onAnimationProgress:n.onProgress,onAnimationComplete:o});J.addAnimation(t,a,i,r)}else t.draw(),o(new Z({numSteps:0,chart:t}));return t}},draw:function(e){var t,n,i=this;if(i.clear(),R.isNullOrUndef(e)&&(e=1),i.transition(e),!(i.width<=0||i.height<=0)&&!1!==St.notify(i,"beforeDraw",[e])){for(n=i._layers,t=0;t<n.length&&n[t].z<=0;++t)n[t].draw(i.chartArea);for(i.drawDatasets(e);t<n.length;++t)n[t].draw(i.chartArea);i._drawTooltip(e),St.notify(i,"afterDraw",[e])}},transition:function(e){for(var t=0,n=(this.data.datasets||[]).length;t<n;++t)this.isDatasetVisible(t)&&this.getDatasetMeta(t).controller.transition(e);this.tooltip.transition(e)},_getSortedDatasetMetas:function(e){var t,n,i=[];for(t=0,n=(this.data.datasets||[]).length;t<n;++t)e&&!this.isDatasetVisible(t)||i.push(this.getDatasetMeta(t));return i.sort(Ut("order","index")),i},_getSortedVisibleDatasetMetas:function(){return this._getSortedDatasetMetas(!0)},drawDatasets:function(e){var t,n;if(!1!==St.notify(this,"beforeDatasetsDraw",[e])){for(n=(t=this._getSortedVisibleDatasetMetas()).length-1;n>=0;--n)this.drawDataset(t[n],e);St.notify(this,"afterDatasetsDraw",[e])}},drawDataset:function(e,t){var n={meta:e,index:e.index,easingValue:t};!1!==St.notify(this,"beforeDatasetDraw",[n])&&(e.controller.draw(t),St.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(e){var t=this.tooltip,n={tooltip:t,easingValue:e};!1!==St.notify(this,"beforeTooltipDraw",[n])&&(t.draw(),St.notify(this,"afterTooltipDraw",[n]))},getElementAtEvent:function(e){return et.modes.single(this,e)},getElementsAtEvent:function(e){return et.modes.label(this,e,{intersect:!0})},getElementsAtXAxis:function(e){return et.modes["x-axis"](this,e,{intersect:!0})},getElementsAtEventForMode:function(e,t,n){var i=et.modes[t];return"function"==typeof i?i(this,e,n):[]},getDatasetAtEvent:function(e){return et.modes.dataset(this,e,{intersect:!0})},getDatasetMeta:function(e){var t=this.data.datasets[e];t._meta||(t._meta={});var n=t._meta[this.id];return n||(n=t._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:t.order||0,index:e}),n},getVisibleDatasetCount:function(){for(var e=0,t=0,n=this.data.datasets.length;t<n;++t)this.isDatasetVisible(t)&&e++;return e},isDatasetVisible:function(e){var t=this.getDatasetMeta(e);return"boolean"==typeof t.hidden?!t.hidden:!this.data.datasets[e].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(e){var t=this.id,n=this.data.datasets[e],i=n._meta&&n._meta[t];i&&(i.controller.destroy(),delete n._meta[t])},destroy:function(){var e,t,n=this,i=n.canvas;for(n.stop(),e=0,t=n.data.datasets.length;e<t;++e)n.destroyDatasetMeta(e);i&&(n.unbindEvents(),R.canvas.clear(n),xt.releaseContext(n.ctx),n.canvas=null,n.ctx=null),St.notify(n,"destroy"),delete Wt.instances[n.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var e=this;e.tooltip=new Ht({_chart:e,_chartInstance:e,_data:e.data,_options:e.options.tooltips},e)},bindEvents:function(){var e=this,t=e._listeners={},n=function(){e.eventHandler.apply(e,arguments)};R.each(e.options.events,(function(i){xt.addEventListener(e,i,n),t[i]=n})),e.options.responsive&&(n=function(){e.resize()},xt.addEventListener(e,"resize",n),t.resize=n)},unbindEvents:function(){var e=this,t=e._listeners;t&&(delete e._listeners,R.each(t,(function(t,n){xt.removeEventListener(e,n,t)})))},updateHoverStyle:function(e,t,n){var i,r,o,a=n?"set":"remove";for(r=0,o=e.length;r<o;++r)(i=e[r])&&this.getDatasetMeta(i._datasetIndex).controller[a+"HoverStyle"](i);"dataset"===t&&this.getDatasetMeta(e[0]._datasetIndex).controller["_"+a+"DatasetHoverStyle"]()},eventHandler:function(e){var t=this,n=t.tooltip;if(!1!==St.notify(t,"beforeEvent",[e])){t._bufferedRender=!0,t._bufferedRequest=null;var i=t.handleEvent(e);n&&(i=n._start?n.handleEvent(e):i|n.handleEvent(e)),St.notify(t,"afterEvent",[e]);var r=t._bufferedRequest;return r?t.render(r):i&&!t.animating&&(t.stop(),t.render({duration:t.options.hover.animationDuration,lazy:!0})),t._bufferedRender=!1,t._bufferedRequest=null,t}},handleEvent:function(e){var t,n=this,i=n.options||{},r=i.hover;return n.lastActive=n.lastActive||[],"mouseout"===e.type?n.active=[]:n.active=n.getElementsAtEventForMode(e,r.mode,r),R.callback(i.onHover||i.hover.onHover,[e.native,n.active],n),"mouseup"!==e.type&&"click"!==e.type||i.onClick&&i.onClick.call(n,e.native,n.active),n.lastActive.length&&n.updateHoverStyle(n.lastActive,r.mode,!1),n.active.length&&r.mode&&n.updateHoverStyle(n.active,r.mode,!0),t=!R.arrayEquals(n.active,n.lastActive),n.lastActive=n.active,t}}),Wt.instances={};var qt=Wt;function Gt(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function Zt(e){this.options=e||{}}Wt.Controller=Wt,Wt.types={},R.configMerge=Rt,R.scaleMerge=Bt,R.extend(Zt.prototype,{formats:Gt,parse:Gt,format:Gt,add:Gt,diff:Gt,startOf:Gt,endOf:Gt,_create:function(e){return e}}),Zt.override=function(e){R.extend(Zt.prototype,e)};var Jt={_date:Zt},Xt={formatters:{values:function(e){return R.isArray(e)?e:""+e},linear:function(e,t,n){var i=n.length>3?n[2]-n[1]:n[1]-n[0];Math.abs(i)>1&&e!==Math.floor(e)&&(i=e-Math.floor(e));var r=R.log10(Math.abs(i)),o="";if(0!==e)if(Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]))<1e-4){var a=R.log10(Math.abs(e)),s=Math.floor(a)-Math.floor(r);s=Math.max(Math.min(s,20),0),o=e.toExponential(s)}else{var l=-1*Math.floor(r);l=Math.max(Math.min(l,20),0),o=e.toFixed(l)}else o="0";return o},logarithmic:function(e,t,n){var i=e/Math.pow(10,Math.floor(R.log10(e)));return 0===e?"0":1===i||2===i||5===i||0===t||t===n.length-1?e.toExponential():""}}},Kt=R.isArray,Qt=R.isNullOrUndef,en=R.valueOrDefault,tn=R.valueAtIndexOrDefault;function nn(e,t,n){var i,r=e.getTicks().length,o=Math.min(t,r-1),a=e.getPixelForTick(o),s=e._startPixel,l=e._endPixel;if(!(n&&(i=1===r?Math.max(a-s,l-a):0===t?(e.getPixelForTick(1)-a)/2:(a-e.getPixelForTick(o-1))/2,(a+=o<t?i:-i)<s-1e-6||a>l+1e-6)))return a}function rn(e){return e.drawTicks?e.tickMarkLength:0}function on(e){var t,n;return e.display?(t=R.options._parseFont(e),n=R.options.toPadding(e.padding),t.lineHeight+n.height):0}function an(e,t){return R.extend(R.options._parseFont({fontFamily:en(t.fontFamily,e.fontFamily),fontSize:en(t.fontSize,e.fontSize),fontStyle:en(t.fontStyle,e.fontStyle),lineHeight:en(t.lineHeight,e.lineHeight)}),{color:R.options.resolve([t.fontColor,e.fontColor,I.global.defaultFontColor])})}function sn(e){var t=an(e,e.minor);return{minor:t,major:e.major.enabled?an(e,e.major):t}}function ln(e){var t,n,i,r=[];for(n=0,i=e.length;n<i;++n)void 0!==(t=e[n])._index&&r.push(t);return r}function un(e,t,n,i){var r,o,a,s,l=en(n,0),u=Math.min(en(i,e.length),e.length),c=0;for(t=Math.ceil(t),i&&(t=(r=i-n)/Math.floor(r/t)),s=l;s<0;)c++,s=Math.round(l+c*t);for(o=Math.max(l,0);o<u;o++)a=e[o],o===s?(a._index=o,c++,s=Math.round(l+c*t)):delete a.label}I._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:Xt.formatters.values,minor:{},major:{}}});var cn=q.extend({zeroLineIndex:0,getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},getTicks:function(){return this._ticks},_getLabels:function(){var e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]},mergeTicksOptions:function(){},beforeUpdate:function(){R.callback(this.options.beforeUpdate,[this])},update:function(e,t,n){var i,r,o,a,s,l=this,u=l.options.ticks,c=u.sampleSize;if(l.beforeUpdate(),l.maxWidth=e,l.maxHeight=t,l.margins=R.extend({left:0,right:0,top:0,bottom:0},n),l._ticks=null,l.ticks=null,l._labelSizes=null,l._maxLabelLines=0,l.longestLabelWidth=0,l.longestTextCache=l.longestTextCache||{},l._gridLineItems=null,l._labelItems=null,l.beforeSetDimensions(),l.setDimensions(),l.afterSetDimensions(),l.beforeDataLimits(),l.determineDataLimits(),l.afterDataLimits(),l.beforeBuildTicks(),a=l.buildTicks()||[],(!(a=l.afterBuildTicks(a)||a)||!a.length)&&l.ticks)for(a=[],i=0,r=l.ticks.length;i<r;++i)a.push({value:l.ticks[i],major:!1});return l._ticks=a,s=c<a.length,o=l._convertTicksToLabels(s?function(e,t){for(var n=[],i=e.length/t,r=0,o=e.length;r<o;r+=i)n.push(e[Math.floor(r)]);return n}(a,c):a),l._configure(),l.beforeCalculateTickRotation(),l.calculateTickRotation(),l.afterCalculateTickRotation(),l.beforeFit(),l.fit(),l.afterFit(),l._ticksToDraw=u.display&&(u.autoSkip||"auto"===u.source)?l._autoSkip(a):a,s&&(o=l._convertTicksToLabels(l._ticksToDraw)),l.ticks=o,l.afterUpdate(),l.minSize},_configure:function(){var e,t,n=this,i=n.options.ticks.reverse;n.isHorizontal()?(e=n.left,t=n.right):(e=n.top,t=n.bottom,i=!i),n._startPixel=e,n._endPixel=t,n._reversePixels=i,n._length=t-e},afterUpdate:function(){R.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){R.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0},afterSetDimensions:function(){R.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){R.callback(this.options.beforeDataLimits,[this])},determineDataLimits:R.noop,afterDataLimits:function(){R.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){R.callback(this.options.beforeBuildTicks,[this])},buildTicks:R.noop,afterBuildTicks:function(e){var t=this;return Kt(e)&&e.length?R.callback(t.options.afterBuildTicks,[t,e]):(t.ticks=R.callback(t.options.afterBuildTicks,[t,t.ticks])||t.ticks,e)},beforeTickToLabelConversion:function(){R.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var e=this.options.ticks;this.ticks=this.ticks.map(e.userCallback||e.callback,this)},afterTickToLabelConversion:function(){R.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){R.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var e,t,n,i,r,o,a,s=this,l=s.options,u=l.ticks,c=s.getTicks().length,d=u.minRotation||0,h=u.maxRotation,f=d;!s._isVisible()||!u.display||d>=h||c<=1||!s.isHorizontal()?s.labelRotation=d:(t=(e=s._getLabelSizes()).widest.width,n=e.highest.height-e.highest.offset,i=Math.min(s.maxWidth,s.chart.width-t),t+6>(r=l.offset?s.maxWidth/c:i/(c-1))&&(r=i/(c-(l.offset?.5:1)),o=s.maxHeight-rn(l.gridLines)-u.padding-on(l.scaleLabel),a=Math.sqrt(t*t+n*n),f=R.toDegrees(Math.min(Math.asin(Math.min((e.highest.height+6)/r,1)),Math.asin(Math.min(o/a,1))-Math.asin(n/a))),f=Math.max(d,Math.min(h,f))),s.labelRotation=f)},afterCalculateTickRotation:function(){R.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){R.callback(this.options.beforeFit,[this])},fit:function(){var e=this,t=e.minSize={width:0,height:0},n=e.chart,i=e.options,r=i.ticks,o=i.scaleLabel,a=i.gridLines,s=e._isVisible(),l="bottom"===i.position,u=e.isHorizontal();if(u?t.width=e.maxWidth:s&&(t.width=rn(a)+on(o)),u?s&&(t.height=rn(a)+on(o)):t.height=e.maxHeight,r.display&&s){var c=sn(r),d=e._getLabelSizes(),h=d.first,f=d.last,p=d.widest,m=d.highest,g=.4*c.minor.lineHeight,v=r.padding;if(u){var _=0!==e.labelRotation,y=R.toRadians(e.labelRotation),b=Math.cos(y),w=Math.sin(y),L=w*p.width+b*(m.height-(_?m.offset:0))+(_?0:g);t.height=Math.min(e.maxHeight,t.height+L+v);var M,k,x=e.getPixelForTick(0)-e.left,S=e.right-e.getPixelForTick(e.getTicks().length-1);_?(M=l?b*h.width+w*h.offset:w*(h.height-h.offset),k=l?w*(f.height-f.offset):b*f.width+w*f.offset):(M=h.width/2,k=f.width/2),e.paddingLeft=Math.max((M-x)*e.width/(e.width-x),0)+3,e.paddingRight=Math.max((k-S)*e.width/(e.width-S),0)+3}else{var T=r.mirror?0:p.width+v+g;t.width=Math.min(e.maxWidth,t.width+T),e.paddingTop=h.height/2,e.paddingBottom=f.height/2}}e.handleMargins(),u?(e.width=e._length=n.width-e.margins.left-e.margins.right,e.height=t.height):(e.width=t.width,e.height=e._length=n.height-e.margins.top-e.margins.bottom)},handleMargins:function(){var e=this;e.margins&&(e.margins.left=Math.max(e.paddingLeft,e.margins.left),e.margins.top=Math.max(e.paddingTop,e.margins.top),e.margins.right=Math.max(e.paddingRight,e.margins.right),e.margins.bottom=Math.max(e.paddingBottom,e.margins.bottom))},afterFit:function(){R.callback(this.options.afterFit,[this])},isHorizontal:function(){var e=this.options.position;return"top"===e||"bottom"===e},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(e){if(Qt(e))return NaN;if(("number"==typeof e||e instanceof Number)&&!isFinite(e))return NaN;if(e)if(this.isHorizontal()){if(void 0!==e.x)return this.getRightValue(e.x)}else if(void 0!==e.y)return this.getRightValue(e.y);return e},_convertTicksToLabels:function(e){var t,n,i,r=this;for(r.ticks=e.map((function(e){return e.value})),r.beforeTickToLabelConversion(),t=r.convertTicksToLabels(e)||r.ticks,r.afterTickToLabelConversion(),n=0,i=e.length;n<i;++n)e[n].label=t[n];return t},_getLabelSizes:function(){var e=this,t=e._labelSizes;return t||(e._labelSizes=t=function(e,t,n,i){var r,o,a,s,l,u,c,d,h,f,p,m,g,v=n.length,_=[],y=[],b=[];for(r=0;r<v;++r){if(s=n[r].label,l=n[r].major?t.major:t.minor,e.font=u=l.string,c=i[u]=i[u]||{data:{},gc:[]},d=l.lineHeight,h=f=0,Qt(s)||Kt(s)){if(Kt(s))for(o=0,a=s.length;o<a;++o)p=s[o],Qt(p)||Kt(p)||(h=R.measureText(e,c.data,c.gc,h,p),f+=d)}else h=R.measureText(e,c.data,c.gc,h,s),f=d;_.push(h),y.push(f),b.push(d/2)}function w(e){return{width:_[e]||0,height:y[e]||0,offset:b[e]||0}}return function(e,t){R.each(e,(function(e){var n,i=e.gc,r=i.length/2;if(r>t){for(n=0;n<r;++n)delete e.data[i[n]];i.splice(0,r)}}))}(i,v),m=_.indexOf(Math.max.apply(null,_)),g=y.indexOf(Math.max.apply(null,y)),{first:w(0),last:w(v-1),widest:w(m),highest:w(g)}}(e.ctx,sn(e.options.ticks),e.getTicks(),e.longestTextCache),e.longestLabelWidth=t.widest.width),t},_parseValue:function(e){var t,n,i,r;return Kt(e)?(t=+this.getRightValue(e[0]),n=+this.getRightValue(e[1]),i=Math.min(t,n),r=Math.max(t,n)):(t=void 0,n=e=+this.getRightValue(e),i=e,r=e),{min:i,max:r,start:t,end:n}},_getScaleLabel:function(e){var t=this._parseValue(e);return void 0!==t.start?"["+t.start+", "+t.end+"]":+this.getRightValue(e)},getLabelForIndex:R.noop,getPixelForValue:R.noop,getValueForPixel:R.noop,getPixelForTick:function(e){var t=this.options.offset,n=this._ticks.length,i=1/Math.max(n-(t?0:1),1);return e<0||e>n-1?null:this.getPixelForDecimal(e*i+(t?i/2:0))},getPixelForDecimal:function(e){return this._reversePixels&&(e=1-e),this._startPixel+e*this._length},getDecimalForPixel:function(e){var t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var e=this.min,t=this.max;return this.beginAtZero?0:e<0&&t<0?t:e>0&&t>0?e:0},_autoSkip:function(e){var t,n,i,r,o=this.options.ticks,a=this._length,s=o.maxTicksLimit||a/this._tickSize()+1,l=o.major.enabled?function(e){var t,n,i=[];for(t=0,n=e.length;t<n;t++)e[t].major&&i.push(t);return i}(e):[],u=l.length,c=l[0],d=l[u-1];if(u>s)return function(e,t,n){var i,r,o=0,a=t[0];for(n=Math.ceil(n),i=0;i<e.length;i++)r=e[i],i===a?(r._index=i,a=t[++o*n]):delete r.label}(e,l,u/s),ln(e);if(i=function(e,t,n,i){var r,o,a,s,l=function(e){var t,n,i=e.length;if(i<2)return!1;for(n=e[0],t=1;t<i;++t)if(e[t]-e[t-1]!==n)return!1;return n}(e),u=(t.length-1)/i;if(!l)return Math.max(u,1);for(a=0,s=(r=R.math._factorize(l)).length-1;a<s;a++)if((o=r[a])>u)return o;return Math.max(u,1)}(l,e,0,s),u>0){for(t=0,n=u-1;t<n;t++)un(e,i,l[t],l[t+1]);return r=u>1?(d-c)/(u-1):null,un(e,i,R.isNullOrUndef(r)?0:c-r,c),un(e,i,d,R.isNullOrUndef(r)?e.length:d+r),ln(e)}return un(e,i),ln(e)},_tickSize:function(){var e=this.options.ticks,t=R.toRadians(this.labelRotation),n=Math.abs(Math.cos(t)),i=Math.abs(Math.sin(t)),r=this._getLabelSizes(),o=e.autoSkipPadding||0,a=r?r.widest.width+o:0,s=r?r.highest.height+o:0;return this.isHorizontal()?s*n>a*i?a/n:s/i:s*i<a*n?s/n:a/i},_isVisible:function(){var e,t,n,i=this.chart,r=this.options.display;if("auto"!==r)return!!r;for(e=0,t=i.data.datasets.length;e<t;++e)if(i.isDatasetVisible(e)&&((n=i.getDatasetMeta(e)).xAxisID===this.id||n.yAxisID===this.id))return!0;return!1},_computeGridLineItems:function(e){var t,n,i,r,o,a,s,l,u,c,d,h,f,p,m,g,v,_=this,y=_.chart,b=_.options,w=b.gridLines,L=b.position,M=w.offsetGridLines,k=_.isHorizontal(),x=_._ticksToDraw,S=x.length+(M?1:0),T=rn(w),$=[],D=w.drawBorder?tn(w.lineWidth,0,0):0,C=D/2,E=R._alignPixel,A=function(e){return E(y,e,D)};for("top"===L?(t=A(_.bottom),s=_.bottom-T,u=t-C,d=A(e.top)+C,f=e.bottom):"bottom"===L?(t=A(_.top),d=e.top,f=A(e.bottom)-C,s=t+C,u=_.top+T):"left"===L?(t=A(_.right),a=_.right-T,l=t-C,c=A(e.left)+C,h=e.right):(t=A(_.left),c=e.left,h=A(e.right)-C,a=t+C,l=_.left+T),n=0;n<S;++n)i=x[n]||{},Qt(i.label)&&n<x.length||(n===_.zeroLineIndex&&b.offset===M?(p=w.zeroLineWidth,m=w.zeroLineColor,g=w.zeroLineBorderDash||[],v=w.zeroLineBorderDashOffset||0):(p=tn(w.lineWidth,n,1),m=tn(w.color,n,"rgba(0,0,0,0.1)"),g=w.borderDash||[],v=w.borderDashOffset||0),void 0!==(r=nn(_,i._index||n,M))&&(o=E(y,r,p),k?a=l=c=h=o:s=u=d=f=o,$.push({tx1:a,ty1:s,tx2:l,ty2:u,x1:c,y1:d,x2:h,y2:f,width:p,color:m,borderDash:g,borderDashOffset:v})));return $.ticksLength=S,$.borderValue=t,$},_computeLabelItems:function(){var e,t,n,i,r,o,a,s,l,u,c,d,h=this,f=h.options,p=f.ticks,m=f.position,g=p.mirror,v=h.isHorizontal(),_=h._ticksToDraw,y=sn(p),b=p.padding,w=rn(f.gridLines),L=-R.toRadians(h.labelRotation),M=[];for("top"===m?(o=h.bottom-w-b,a=L?"left":"center"):"bottom"===m?(o=h.top+w+b,a=L?"right":"center"):"left"===m?(r=h.right-(g?0:w)-b,a=g?"left":"right"):(r=h.left+(g?0:w)+b,a=g?"right":"left"),e=0,t=_.length;e<t;++e)i=(n=_[e]).label,Qt(i)||(s=h.getPixelForTick(n._index||e)+p.labelOffset,u=(l=n.major?y.major:y.minor).lineHeight,c=Kt(i)?i.length:1,v?(r=s,d="top"===m?((L?1:.5)-c)*u:(L?0:.5)*u):(o=s,d=(1-c)*u/2),M.push({x:r,y:o,rotation:L,label:i,font:l,textOffset:d,textAlign:a}));return M},_drawGrid:function(e){var t=this,n=t.options.gridLines;if(n.display){var i,r,o,a,s,l=t.ctx,u=t.chart,c=R._alignPixel,d=n.drawBorder?tn(n.lineWidth,0,0):0,h=t._gridLineItems||(t._gridLineItems=t._computeGridLineItems(e));for(o=0,a=h.length;o<a;++o)i=(s=h[o]).width,r=s.color,i&&r&&(l.save(),l.lineWidth=i,l.strokeStyle=r,l.setLineDash&&(l.setLineDash(s.borderDash),l.lineDashOffset=s.borderDashOffset),l.beginPath(),n.drawTicks&&(l.moveTo(s.tx1,s.ty1),l.lineTo(s.tx2,s.ty2)),n.drawOnChartArea&&(l.moveTo(s.x1,s.y1),l.lineTo(s.x2,s.y2)),l.stroke(),l.restore());if(d){var f,p,m,g,v=d,_=tn(n.lineWidth,h.ticksLength-1,1),y=h.borderValue;t.isHorizontal()?(f=c(u,t.left,v)-v/2,p=c(u,t.right,_)+_/2,m=g=y):(m=c(u,t.top,v)-v/2,g=c(u,t.bottom,_)+_/2,f=p=y),l.lineWidth=d,l.strokeStyle=tn(n.color,0),l.beginPath(),l.moveTo(f,m),l.lineTo(p,g),l.stroke()}}},_drawLabels:function(){var e=this;if(e.options.ticks.display){var t,n,i,r,o,a,s,l,u=e.ctx,c=e._labelItems||(e._labelItems=e._computeLabelItems());for(t=0,i=c.length;t<i;++t){if(a=(o=c[t]).font,u.save(),u.translate(o.x,o.y),u.rotate(o.rotation),u.font=a.string,u.fillStyle=a.color,u.textBaseline="middle",u.textAlign=o.textAlign,s=o.label,l=o.textOffset,Kt(s))for(n=0,r=s.length;n<r;++n)u.fillText(""+s[n],0,l),l+=a.lineHeight;else u.fillText(s,0,l);u.restore()}}},_drawTitle:function(){var e=this,t=e.ctx,n=e.options,i=n.scaleLabel;if(i.display){var r,o,a=en(i.fontColor,I.global.defaultFontColor),s=R.options._parseFont(i),l=R.options.toPadding(i.padding),u=s.lineHeight/2,c=n.position,d=0;if(e.isHorizontal())r=e.left+e.width/2,o="bottom"===c?e.bottom-u-l.bottom:e.top+u+l.top;else{var h="left"===c;r=h?e.left+u+l.top:e.right-u-l.top,o=e.top+e.height/2,d=h?-.5*Math.PI:.5*Math.PI}t.save(),t.translate(r,o),t.rotate(d),t.textAlign="center",t.textBaseline="middle",t.fillStyle=a,t.font=s.string,t.fillText(i.labelString,0,0),t.restore()}},draw:function(e){this._isVisible()&&(this._drawGrid(e),this._drawTitle(),this._drawLabels())},_layers:function(){var e=this,t=e.options,n=t.ticks&&t.ticks.z||0,i=t.gridLines&&t.gridLines.z||0;return e._isVisible()&&n!==i&&e.draw===e._draw?[{z:i,draw:function(){e._drawGrid.apply(e,arguments),e._drawTitle.apply(e,arguments)}},{z:n,draw:function(){e._drawLabels.apply(e,arguments)}}]:[{z:n,draw:function(){e.draw.apply(e,arguments)}}]},_getMatchingVisibleMetas:function(e){var t=this,n=t.isHorizontal();return t.chart._getSortedVisibleDatasetMetas().filter((function(i){return(!e||i.type===e)&&(n?i.xAxisID===t.id:i.yAxisID===t.id)}))}});cn.prototype._draw=cn.prototype.draw;var dn=cn,hn=R.isNullOrUndef,fn=dn.extend({determineDataLimits:function(){var e,t=this,n=t._getLabels(),i=t.options.ticks,r=i.min,o=i.max,a=0,s=n.length-1;void 0!==r&&(e=n.indexOf(r))>=0&&(a=e),void 0!==o&&(e=n.indexOf(o))>=0&&(s=e),t.minIndex=a,t.maxIndex=s,t.min=n[a],t.max=n[s]},buildTicks:function(){var e=this._getLabels(),t=this.minIndex,n=this.maxIndex;this.ticks=0===t&&n===e.length-1?e:e.slice(t,n+1)},getLabelForIndex:function(e,t){var n=this.chart;return n.getDatasetMeta(t).controller._getValueScaleId()===this.id?this.getRightValue(n.data.datasets[t].data[e]):this._getLabels()[e]},_configure:function(){var e=this,t=e.options.offset,n=e.ticks;dn.prototype._configure.call(e),e.isHorizontal()||(e._reversePixels=!e._reversePixels),n&&(e._startValue=e.minIndex-(t?.5:0),e._valueRange=Math.max(n.length-(t?0:1),1))},getPixelForValue:function(e,t,n){var i,r,o,a=this;return hn(t)||hn(n)||(e=a.chart.data.datasets[n].data[t]),hn(e)||(i=a.isHorizontal()?e.x:e.y),(void 0!==i||void 0!==e&&isNaN(t))&&(r=a._getLabels(),e=R.valueOrDefault(i,e),t=-1!==(o=r.indexOf(e))?o:t,isNaN(t)&&(t=e)),a.getPixelForDecimal((t-a._startValue)/a._valueRange)},getPixelForTick:function(e){var t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e],e+this.minIndex)},getValueForPixel:function(e){var t=Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange);return Math.min(Math.max(t,0),this.ticks.length-1)},getBasePixel:function(){return this.bottom}});fn._defaults={position:"bottom"};var pn=R.noop,mn=R.isNullOrUndef,gn=dn.extend({getRightValue:function(e){return"string"==typeof e?+e:dn.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var e=this,t=e.options.ticks;if(t.beginAtZero){var n=R.sign(e.min),i=R.sign(e.max);n<0&&i<0?e.max=0:n>0&&i>0&&(e.min=0)}var r=void 0!==t.min||void 0!==t.suggestedMin,o=void 0!==t.max||void 0!==t.suggestedMax;void 0!==t.min?e.min=t.min:void 0!==t.suggestedMin&&(null===e.min?e.min=t.suggestedMin:e.min=Math.min(e.min,t.suggestedMin)),void 0!==t.max?e.max=t.max:void 0!==t.suggestedMax&&(null===e.max?e.max=t.suggestedMax:e.max=Math.max(e.max,t.suggestedMax)),r!==o&&e.min>=e.max&&(r?e.max=e.min+1:e.min=e.max-1),e.min===e.max&&(e.max++,t.beginAtZero||e.min--)},getTickLimit:function(){var e,t=this.options.ticks,n=t.stepSize,i=t.maxTicksLimit;return n?e=Math.ceil(this.max/n)-Math.floor(this.min/n)+1:(e=this._computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:pn,buildTicks:function(){var e=this,t=e.options.ticks,n=e.getTickLimit(),i={maxTicks:n=Math.max(2,n),min:t.min,max:t.max,precision:t.precision,stepSize:R.valueOrDefault(t.fixedStepSize,t.stepSize)},r=e.ticks=function(e,t){var n,i,r,o,a=[],s=e.stepSize,l=s||1,u=e.maxTicks-1,c=e.min,d=e.max,h=e.precision,f=t.min,p=t.max,m=R.niceNum((p-f)/u/l)*l;if(m<1e-14&&mn(c)&&mn(d))return[f,p];(o=Math.ceil(p/m)-Math.floor(f/m))>u&&(m=R.niceNum(o*m/u/l)*l),s||mn(h)?n=Math.pow(10,R._decimalPlaces(m)):(n=Math.pow(10,h),m=Math.ceil(m*n)/n),i=Math.floor(f/m)*m,r=Math.ceil(p/m)*m,s&&(!mn(c)&&R.almostWhole(c/m,m/1e3)&&(i=c),!mn(d)&&R.almostWhole(d/m,m/1e3)&&(r=d)),o=(r-i)/m,o=R.almostEquals(o,Math.round(o),m/1e3)?Math.round(o):Math.ceil(o),i=Math.round(i*n)/n,r=Math.round(r*n)/n,a.push(mn(c)?i:c);for(var g=1;g<o;++g)a.push(Math.round((i+g*m)*n)/n);return a.push(mn(d)?r:d),a}(i,e);e.handleDirectionalChanges(),e.max=R.max(r),e.min=R.min(r),t.reverse?(r.reverse(),e.start=e.max,e.end=e.min):(e.start=e.min,e.end=e.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),dn.prototype.convertTicksToLabels.call(e)},_configure:function(){var e,t=this,n=t.getTicks(),i=t.min,r=t.max;dn.prototype._configure.call(t),t.options.offset&&n.length&&(i-=e=(r-i)/Math.max(n.length-1,1)/2,r+=e),t._startValue=i,t._endValue=r,t._valueRange=r-i}}),vn={position:"left",ticks:{callback:Xt.formatters.linear}};function _n(e,t,n,i){var r,o,a=e.options,s=function(e,t,n){var i=[n.type,void 0===t&&void 0===n.stack?n.index:"",n.stack].join(".");return void 0===e[i]&&(e[i]={pos:[],neg:[]}),e[i]}(t,a.stacked,n),l=s.pos,u=s.neg,c=i.length;for(r=0;r<c;++r)o=e._parseValue(i[r]),isNaN(o.min)||isNaN(o.max)||n.data[r].hidden||(l[r]=l[r]||0,u[r]=u[r]||0,a.relativePoints?l[r]=100:o.min<0||o.max<0?u[r]+=o.min:l[r]+=o.max)}function yn(e,t,n){var i,r,o=n.length;for(i=0;i<o;++i)r=e._parseValue(n[i]),isNaN(r.min)||isNaN(r.max)||t.data[i].hidden||(e.min=Math.min(e.min,r.min),e.max=Math.max(e.max,r.max))}var bn=gn.extend({determineDataLimits:function(){var e,t,n,i,r=this,o=r.options,a=r.chart.data.datasets,s=r._getMatchingVisibleMetas(),l=o.stacked,u={},c=s.length;if(r.min=Number.POSITIVE_INFINITY,r.max=Number.NEGATIVE_INFINITY,void 0===l)for(e=0;!l&&e<c;++e)l=void 0!==(t=s[e]).stack;for(e=0;e<c;++e)n=a[(t=s[e]).index].data,l?_n(r,u,t,n):yn(r,t,n);R.each(u,(function(e){i=e.pos.concat(e.neg),r.min=Math.min(r.min,R.min(i)),r.max=Math.max(r.max,R.max(i))})),r.min=R.isFinite(r.min)&&!isNaN(r.min)?r.min:0,r.max=R.isFinite(r.max)&&!isNaN(r.max)?r.max:1,r.handleTickRangeOptions()},_computeTickLimit:function(){var e;return this.isHorizontal()?Math.ceil(this.width/40):(e=R.options._parseFont(this.options.ticks),Math.ceil(this.height/e.lineHeight))},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(e,t){return this._getScaleLabel(this.chart.data.datasets[t].data[e])},getPixelForValue:function(e){return this.getPixelForDecimal((+this.getRightValue(e)-this._startValue)/this._valueRange)},getValueForPixel:function(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange},getPixelForTick:function(e){var t=this.ticksAsNumbers;return e<0||e>t.length-1?null:this.getPixelForValue(t[e])}}),wn=vn;bn._defaults=wn;var Ln=R.valueOrDefault,Mn=R.math.log10,kn={position:"left",ticks:{callback:Xt.formatters.logarithmic}};function xn(e,t){return R.isFinite(e)&&e>=0?e:t}var Sn=dn.extend({determineDataLimits:function(){var e,t,n,i,r,o,a=this,s=a.options,l=a.chart,u=l.data.datasets,c=a.isHorizontal();function d(e){return c?e.xAxisID===a.id:e.yAxisID===a.id}a.min=Number.POSITIVE_INFINITY,a.max=Number.NEGATIVE_INFINITY,a.minNotZero=Number.POSITIVE_INFINITY;var h=s.stacked;if(void 0===h)for(e=0;e<u.length;e++)if(t=l.getDatasetMeta(e),l.isDatasetVisible(e)&&d(t)&&void 0!==t.stack){h=!0;break}if(s.stacked||h){var f={};for(e=0;e<u.length;e++){var p=[(t=l.getDatasetMeta(e)).type,void 0===s.stacked&&void 0===t.stack?e:"",t.stack].join(".");if(l.isDatasetVisible(e)&&d(t))for(void 0===f[p]&&(f[p]=[]),r=0,o=(i=u[e].data).length;r<o;r++){var m=f[p];n=a._parseValue(i[r]),isNaN(n.min)||isNaN(n.max)||t.data[r].hidden||n.min<0||n.max<0||(m[r]=m[r]||0,m[r]+=n.max)}}R.each(f,(function(e){if(e.length>0){var t=R.min(e),n=R.max(e);a.min=Math.min(a.min,t),a.max=Math.max(a.max,n)}}))}else for(e=0;e<u.length;e++)if(t=l.getDatasetMeta(e),l.isDatasetVisible(e)&&d(t))for(r=0,o=(i=u[e].data).length;r<o;r++)n=a._parseValue(i[r]),isNaN(n.min)||isNaN(n.max)||t.data[r].hidden||n.min<0||n.max<0||(a.min=Math.min(n.min,a.min),a.max=Math.max(n.max,a.max),0!==n.min&&(a.minNotZero=Math.min(n.min,a.minNotZero)));a.min=R.isFinite(a.min)?a.min:null,a.max=R.isFinite(a.max)?a.max:null,a.minNotZero=R.isFinite(a.minNotZero)?a.minNotZero:null,this.handleTickRangeOptions()},handleTickRangeOptions:function(){var e=this,t=e.options.ticks;e.min=xn(t.min,e.min),e.max=xn(t.max,e.max),e.min===e.max&&(0!==e.min&&null!==e.min?(e.min=Math.pow(10,Math.floor(Mn(e.min))-1),e.max=Math.pow(10,Math.floor(Mn(e.max))+1)):(e.min=1,e.max=10)),null===e.min&&(e.min=Math.pow(10,Math.floor(Mn(e.max))-1)),null===e.max&&(e.max=0!==e.min?Math.pow(10,Math.floor(Mn(e.min))+1):10),null===e.minNotZero&&(e.min>0?e.minNotZero=e.min:e.max<1?e.minNotZero=Math.pow(10,Math.floor(Mn(e.max))):e.minNotZero=1)},buildTicks:function(){var e=this,t=e.options.ticks,n=!e.isHorizontal(),i={min:xn(t.min),max:xn(t.max)},r=e.ticks=function(e,t){var n,i,r=[],o=Ln(e.min,Math.pow(10,Math.floor(Mn(t.min)))),a=Math.floor(Mn(t.max)),s=Math.ceil(t.max/Math.pow(10,a));0===o?(n=Math.floor(Mn(t.minNotZero)),i=Math.floor(t.minNotZero/Math.pow(10,n)),r.push(o),o=i*Math.pow(10,n)):(n=Math.floor(Mn(o)),i=Math.floor(o/Math.pow(10,n)));var l=n<0?Math.pow(10,Math.abs(n)):1;do{r.push(o),10==++i&&(i=1,l=++n>=0?1:l),o=Math.round(i*Math.pow(10,n)*l)/l}while(n<a||n===a&&i<s);var u=Ln(e.max,o);return r.push(u),r}(i,e);e.max=R.max(r),e.min=R.min(r),t.reverse?(n=!n,e.start=e.max,e.end=e.min):(e.start=e.min,e.end=e.max),n&&r.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),dn.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(e,t){return this._getScaleLabel(this.chart.data.datasets[t].data[e])},getPixelForTick:function(e){var t=this.tickValues;return e<0||e>t.length-1?null:this.getPixelForValue(t[e])},_getFirstTickValue:function(e){var t=Math.floor(Mn(e));return Math.floor(e/Math.pow(10,t))*Math.pow(10,t)},_configure:function(){var e=this,t=e.min,n=0;dn.prototype._configure.call(e),0===t&&(t=e._getFirstTickValue(e.minNotZero),n=Ln(e.options.ticks.fontSize,I.global.defaultFontSize)/e._length),e._startValue=Mn(t),e._valueOffset=n,e._valueRange=(Mn(e.max)-Mn(t))/(1-n)},getPixelForValue:function(e){var t=this,n=0;return(e=+t.getRightValue(e))>t.min&&e>0&&(n=(Mn(e)-t._startValue)/t._valueRange+t._valueOffset),t.getPixelForDecimal(n)},getValueForPixel:function(e){var t=this,n=t.getDecimalForPixel(e);return 0===n&&0===t.min?0:Math.pow(10,t._startValue+(n-t._valueOffset)*t._valueRange)}}),Tn=kn;Sn._defaults=Tn;var $n=R.valueOrDefault,Dn=R.valueAtIndexOrDefault,Cn=R.options.resolve,En={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:Xt.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(e){return e}}};function An(e){var t=e.ticks;return t.display&&e.display?$n(t.fontSize,I.global.defaultFontSize)+2*t.backdropPaddingY:0}function Pn(e,t,n,i,r){return e===i||e===r?{start:t-n/2,end:t+n/2}:e<i||e>r?{start:t-n,end:t}:{start:t,end:t+n}}function Yn(e){return 0===e||180===e?"center":e<180?"left":"right"}function On(e,t,n,i){var r,o,a=n.y+i/2;if(R.isArray(t))for(r=0,o=t.length;r<o;++r)e.fillText(t[r],n.x,a),a+=i;else e.fillText(t,n.x,a)}function In(e,t,n){90===e||270===e?n.y-=t.h/2:(e>270||e<90)&&(n.y-=t.h)}function jn(e){return R.isNumber(e)?e:0}var Hn=gn.extend({setDimensions:function(){var e=this;e.width=e.maxWidth,e.height=e.maxHeight,e.paddingTop=An(e.options)/2,e.xCenter=Math.floor(e.width/2),e.yCenter=Math.floor((e.height-e.paddingTop)/2),e.drawingArea=Math.min(e.height-e.paddingTop,e.width)/2},determineDataLimits:function(){var e=this,t=e.chart,n=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;R.each(t.data.datasets,(function(r,o){if(t.isDatasetVisible(o)){var a=t.getDatasetMeta(o);R.each(r.data,(function(t,r){var o=+e.getRightValue(t);isNaN(o)||a.data[r].hidden||(n=Math.min(o,n),i=Math.max(o,i))}))}})),e.min=n===Number.POSITIVE_INFINITY?0:n,e.max=i===Number.NEGATIVE_INFINITY?0:i,e.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/An(this.options))},convertTicksToLabels:function(){var e=this;gn.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map((function(){var t=R.callback(e.options.pointLabels.callback,arguments,e);return t||0===t?t:""}))},getLabelForIndex:function(e,t){return+this.getRightValue(this.chart.data.datasets[t].data[e])},fit:function(){var e=this.options;e.display&&e.pointLabels.display?function(e){var t,n,i,r=R.options._parseFont(e.options.pointLabels),o={l:0,r:e.width,t:0,b:e.height-e.paddingTop},a={};e.ctx.font=r.string,e._pointLabelSizes=[];var s,l,u,c=e.chart.data.labels.length;for(t=0;t<c;t++){i=e.getPointPosition(t,e.drawingArea+5),s=e.ctx,l=r.lineHeight,u=e.pointLabels[t],n=R.isArray(u)?{w:R.longestText(s,s.font,u),h:u.length*l}:{w:s.measureText(u).width,h:l},e._pointLabelSizes[t]=n;var d=e.getIndexAngle(t),h=R.toDegrees(d)%360,f=Pn(h,i.x,n.w,0,180),p=Pn(h,i.y,n.h,90,270);f.start<o.l&&(o.l=f.start,a.l=d),f.end>o.r&&(o.r=f.end,a.r=d),p.start<o.t&&(o.t=p.start,a.t=d),p.end>o.b&&(o.b=p.end,a.b=d)}e.setReductions(e.drawingArea,o,a)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(e,t,n){var i=this,r=t.l/Math.sin(n.l),o=Math.max(t.r-i.width,0)/Math.sin(n.r),a=-t.t/Math.cos(n.t),s=-Math.max(t.b-(i.height-i.paddingTop),0)/Math.cos(n.b);r=jn(r),o=jn(o),a=jn(a),s=jn(s),i.drawingArea=Math.min(Math.floor(e-(r+o)/2),Math.floor(e-(a+s)/2)),i.setCenterPoint(r,o,a,s)},setCenterPoint:function(e,t,n,i){var r=this,o=r.width-t-r.drawingArea,a=e+r.drawingArea,s=n+r.drawingArea,l=r.height-r.paddingTop-i-r.drawingArea;r.xCenter=Math.floor((a+o)/2+r.left),r.yCenter=Math.floor((s+l)/2+r.top+r.paddingTop)},getIndexAngle:function(e){var t=this.chart,n=(e*(360/t.data.labels.length)+((t.options||{}).startAngle||0))%360;return(n<0?n+360:n)*Math.PI*2/360},getDistanceFromCenterForValue:function(e){var t=this;if(R.isNullOrUndef(e))return NaN;var n=t.drawingArea/(t.max-t.min);return t.options.ticks.reverse?(t.max-e)*n:(e-t.min)*n},getPointPosition:function(e,t){var n=this.getIndexAngle(e)-Math.PI/2;return{x:Math.cos(n)*t+this.xCenter,y:Math.sin(n)*t+this.yCenter}},getPointPositionForValue:function(e,t){return this.getPointPosition(e,this.getDistanceFromCenterForValue(t))},getBasePosition:function(e){var t=this.min,n=this.max;return this.getPointPositionForValue(e||0,this.beginAtZero?0:t<0&&n<0?n:t>0&&n>0?t:0)},_drawGrid:function(){var e,t,n,i=this,r=i.ctx,o=i.options,a=o.gridLines,s=o.angleLines,l=$n(s.lineWidth,a.lineWidth),u=$n(s.color,a.color);if(o.pointLabels.display&&function(e){var t=e.ctx,n=e.options,i=n.pointLabels,r=An(n),o=e.getDistanceFromCenterForValue(n.ticks.reverse?e.min:e.max),a=R.options._parseFont(i);t.save(),t.font=a.string,t.textBaseline="middle";for(var s=e.chart.data.labels.length-1;s>=0;s--){var l=0===s?r/2:0,u=e.getPointPosition(s,o+l+5),c=Dn(i.fontColor,s,I.global.defaultFontColor);t.fillStyle=c;var d=e.getIndexAngle(s),h=R.toDegrees(d);t.textAlign=Yn(h),In(h,e._pointLabelSizes[s],u),On(t,e.pointLabels[s],u,a.lineHeight)}t.restore()}(i),a.display&&R.each(i.ticks,(function(e,n){0!==n&&(t=i.getDistanceFromCenterForValue(i.ticksAsNumbers[n]),function(e,t,n,i){var r,o=e.ctx,a=t.circular,s=e.chart.data.labels.length,l=Dn(t.color,i-1),u=Dn(t.lineWidth,i-1);if((a||s)&&l&&u){if(o.save(),o.strokeStyle=l,o.lineWidth=u,o.setLineDash&&(o.setLineDash(t.borderDash||[]),o.lineDashOffset=t.borderDashOffset||0),o.beginPath(),a)o.arc(e.xCenter,e.yCenter,n,0,2*Math.PI);else{r=e.getPointPosition(0,n),o.moveTo(r.x,r.y);for(var c=1;c<s;c++)r=e.getPointPosition(c,n),o.lineTo(r.x,r.y)}o.closePath(),o.stroke(),o.restore()}}(i,a,t,n))})),s.display&&l&&u){for(r.save(),r.lineWidth=l,r.strokeStyle=u,r.setLineDash&&(r.setLineDash(Cn([s.borderDash,a.borderDash,[]])),r.lineDashOffset=Cn([s.borderDashOffset,a.borderDashOffset,0])),e=i.chart.data.labels.length-1;e>=0;e--)t=i.getDistanceFromCenterForValue(o.ticks.reverse?i.min:i.max),n=i.getPointPosition(e,t),r.beginPath(),r.moveTo(i.xCenter,i.yCenter),r.lineTo(n.x,n.y),r.stroke();r.restore()}},_drawLabels:function(){var e=this,t=e.ctx,n=e.options.ticks;if(n.display){var i,r,o=e.getIndexAngle(0),a=R.options._parseFont(n),s=$n(n.fontColor,I.global.defaultFontColor);t.save(),t.font=a.string,t.translate(e.xCenter,e.yCenter),t.rotate(o),t.textAlign="center",t.textBaseline="middle",R.each(e.ticks,(function(o,l){(0!==l||n.reverse)&&(i=e.getDistanceFromCenterForValue(e.ticksAsNumbers[l]),n.showLabelBackdrop&&(r=t.measureText(o).width,t.fillStyle=n.backdropColor,t.fillRect(-r/2-n.backdropPaddingX,-i-a.size/2-n.backdropPaddingY,r+2*n.backdropPaddingX,a.size+2*n.backdropPaddingY)),t.fillStyle=s,t.fillText(o,0,-i))})),t.restore()}},_drawTitle:R.noop}),Nn=En;Hn._defaults=Nn;var Bn=R._deprecated,Rn=R.options.resolve,Fn=R.valueOrDefault,zn=Number.MIN_SAFE_INTEGER||-9007199254740991,Vn=Number.MAX_SAFE_INTEGER||9007199254740991,Un={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Wn=Object.keys(Un);function qn(e,t){return e-t}function Gn(e){return R.valueOrDefault(e.time.min,e.ticks.min)}function Zn(e){return R.valueOrDefault(e.time.max,e.ticks.max)}function Jn(e,t,n,i){var r=function(e,t,n){for(var i,r,o,a=0,s=e.length-1;a>=0&&a<=s;){if(r=e[(i=a+s>>1)-1]||null,o=e[i],!r)return{lo:null,hi:o};if(o[t]<n)a=i+1;else{if(!(r[t]>n))return{lo:r,hi:o};s=i-1}}return{lo:o,hi:null}}(e,t,n),o=r.lo?r.hi?r.lo:e[e.length-2]:e[0],a=r.lo?r.hi?r.hi:e[e.length-1]:e[1],s=a[t]-o[t],l=s?(n-o[t])/s:0,u=(a[i]-o[i])*l;return o[i]+u}function Xn(e,t){var n=e._adapter,i=e.options.time,r=i.parser,o=r||i.format,a=t;return"function"==typeof r&&(a=r(a)),R.isFinite(a)||(a="string"==typeof o?n.parse(a,o):n.parse(a)),null!==a?+a:(r||"function"!=typeof o||(a=o(t),R.isFinite(a)||(a=n.parse(a))),a)}function Kn(e,t){if(R.isNullOrUndef(t))return null;var n=e.options.time,i=Xn(e,e.getRightValue(t));return null===i?i:(n.round&&(i=+e._adapter.startOf(i,n.round)),i)}function Qn(e,t,n,i){var r,o,a,s=Wn.length;for(r=Wn.indexOf(e);r<s-1;++r)if(a=(o=Un[Wn[r]]).steps?o.steps:Vn,o.common&&Math.ceil((n-t)/(a*o.size))<=i)return Wn[r];return Wn[s-1]}function ei(e,t,n){var i,r,o=[],a={},s=t.length;for(i=0;i<s;++i)a[r=t[i]]=i,o.push({value:r,major:!1});return 0!==s&&n?function(e,t,n,i){var r,o,a=e._adapter,s=+a.startOf(t[0].value,i),l=t[t.length-1].value;for(r=s;r<=l;r=+a.add(r,1,i))(o=n[r])>=0&&(t[o].major=!0);return t}(e,o,a,n):o}var ti=dn.extend({initialize:function(){this.mergeTicksOptions(),dn.prototype.initialize.call(this)},update:function(){var e=this,t=e.options,n=t.time||(t.time={}),i=e._adapter=new Jt._date(t.adapters.date);return Bn("time scale",n.format,"time.format","time.parser"),Bn("time scale",n.min,"time.min","ticks.min"),Bn("time scale",n.max,"time.max","ticks.max"),R.mergeIf(n.displayFormats,i.formats()),dn.prototype.update.apply(e,arguments)},getRightValue:function(e){return e&&void 0!==e.t&&(e=e.t),dn.prototype.getRightValue.call(this,e)},determineDataLimits:function(){var e,t,n,i,r,o,a,s=this,l=s.chart,u=s._adapter,c=s.options,d=c.time.unit||"day",h=Vn,f=zn,p=[],m=[],g=[],v=s._getLabels();for(e=0,n=v.length;e<n;++e)g.push(Kn(s,v[e]));for(e=0,n=(l.data.datasets||[]).length;e<n;++e)if(l.isDatasetVisible(e))if(r=l.data.datasets[e].data,R.isObject(r[0]))for(m[e]=[],t=0,i=r.length;t<i;++t)o=Kn(s,r[t]),p.push(o),m[e][t]=o;else m[e]=g.slice(0),a||(p=p.concat(g),a=!0);else m[e]=[];g.length&&(h=Math.min(h,g[0]),f=Math.max(f,g[g.length-1])),p.length&&(p=n>1?function(e){var t,n,i,r={},o=[];for(t=0,n=e.length;t<n;++t)r[i=e[t]]||(r[i]=!0,o.push(i));return o}(p).sort(qn):p.sort(qn),h=Math.min(h,p[0]),f=Math.max(f,p[p.length-1])),h=Kn(s,Gn(c))||h,f=Kn(s,Zn(c))||f,h=h===Vn?+u.startOf(Date.now(),d):h,f=f===zn?+u.endOf(Date.now(),d)+1:f,s.min=Math.min(h,f),s.max=Math.max(h+1,f),s._table=[],s._timestamps={data:p,datasets:m,labels:g}},buildTicks:function(){var e,t,n,i=this,r=i.min,o=i.max,a=i.options,s=a.ticks,l=a.time,u=i._timestamps,c=[],d=i.getLabelCapacity(r),h=s.source,f=a.distribution;for(u="data"===h||"auto"===h&&"series"===f?u.data:"labels"===h?u.labels:function(e,t,n,i){var r,o=e._adapter,a=e.options,s=a.time,l=s.unit||Qn(s.minUnit,t,n,i),u=Rn([s.stepSize,s.unitStepSize,1]),c="week"===l&&s.isoWeekday,d=t,h=[];if(c&&(d=+o.startOf(d,"isoWeek",c)),d=+o.startOf(d,c?"day":l),o.diff(n,t,l)>1e5*u)throw t+" and "+n+" are too far apart with stepSize of "+u+" "+l;for(r=d;r<n;r=+o.add(r,u,l))h.push(r);return r!==n&&"ticks"!==a.bounds||h.push(r),h}(i,r,o,d),"ticks"===a.bounds&&u.length&&(r=u[0],o=u[u.length-1]),r=Kn(i,Gn(a))||r,o=Kn(i,Zn(a))||o,e=0,t=u.length;e<t;++e)(n=u[e])>=r&&n<=o&&c.push(n);return i.min=r,i.max=o,i._unit=l.unit||(s.autoSkip?Qn(l.minUnit,i.min,i.max,d):function(e,t,n,i,r){var o,a;for(o=Wn.length-1;o>=Wn.indexOf(n);o--)if(a=Wn[o],Un[a].common&&e._adapter.diff(r,i,a)>=t-1)return a;return Wn[n?Wn.indexOf(n):0]}(i,c.length,l.minUnit,i.min,i.max)),i._majorUnit=s.major.enabled&&"year"!==i._unit?function(e){for(var t=Wn.indexOf(e)+1,n=Wn.length;t<n;++t)if(Un[Wn[t]].common)return Wn[t]}(i._unit):void 0,i._table=function(e,t,n,i){if("linear"===i||!e.length)return[{time:t,pos:0},{time:n,pos:1}];var r,o,a,s,l,u=[],c=[t];for(r=0,o=e.length;r<o;++r)(s=e[r])>t&&s<n&&c.push(s);for(c.push(n),r=0,o=c.length;r<o;++r)l=c[r+1],a=c[r-1],s=c[r],void 0!==a&&void 0!==l&&Math.round((l+a)/2)===s||u.push({time:s,pos:r/(o-1)});return u}(i._timestamps.data,r,o,f),i._offsets=function(e,t,n,i,r){var o,a,s=0,l=0;return r.offset&&t.length&&(o=Jn(e,"time",t[0],"pos"),s=1===t.length?1-o:(Jn(e,"time",t[1],"pos")-o)/2,a=Jn(e,"time",t[t.length-1],"pos"),l=1===t.length?a:(a-Jn(e,"time",t[t.length-2],"pos"))/2),{start:s,end:l,factor:1/(s+1+l)}}(i._table,c,0,0,a),s.reverse&&c.reverse(),ei(i,c,i._majorUnit)},getLabelForIndex:function(e,t){var n=this,i=n._adapter,r=n.chart.data,o=n.options.time,a=r.labels&&e<r.labels.length?r.labels[e]:"",s=r.datasets[t].data[e];return R.isObject(s)&&(a=n.getRightValue(s)),o.tooltipFormat?i.format(Xn(n,a),o.tooltipFormat):"string"==typeof a?a:i.format(Xn(n,a),o.displayFormats.datetime)},tickFormatFunction:function(e,t,n,i){var r=this._adapter,o=this.options,a=o.time.displayFormats,s=a[this._unit],l=this._majorUnit,u=a[l],c=n[t],d=o.ticks,h=l&&u&&c&&c.major,f=r.format(e,i||(h?u:s)),p=h?d.major:d.minor,m=Rn([p.callback,p.userCallback,d.callback,d.userCallback]);return m?m(f,t,n):f},convertTicksToLabels:function(e){var t,n,i=[];for(t=0,n=e.length;t<n;++t)i.push(this.tickFormatFunction(e[t].value,t,e));return i},getPixelForOffset:function(e){var t=this._offsets,n=Jn(this._table,"time",e,"pos");return this.getPixelForDecimal((t.start+n)*t.factor)},getPixelForValue:function(e,t,n){var i=null;if(void 0!==t&&void 0!==n&&(i=this._timestamps.datasets[n][t]),null===i&&(i=Kn(this,e)),null!==i)return this.getPixelForOffset(i)},getPixelForTick:function(e){var t=this.getTicks();return e>=0&&e<t.length?this.getPixelForOffset(t[e].value):null},getValueForPixel:function(e){var t=this._offsets,n=this.getDecimalForPixel(e)/t.factor-t.end,i=Jn(this._table,"pos",n,"time");return this._adapter._create(i)},_getLabelSize:function(e){var t=this.options.ticks,n=this.ctx.measureText(e).width,i=R.toRadians(this.isHorizontal()?t.maxRotation:t.minRotation),r=Math.cos(i),o=Math.sin(i),a=Fn(t.fontSize,I.global.defaultFontSize);return{w:n*r+a*o,h:n*o+a*r}},getLabelWidth:function(e){return this._getLabelSize(e).w},getLabelCapacity:function(e){var t=this,n=t.options.time,i=n.displayFormats,r=i[n.unit]||i.millisecond,o=t.tickFormatFunction(e,0,ei(t,[e],t._majorUnit),r),a=t._getLabelSize(o),s=Math.floor(t.isHorizontal()?t.width/a.w:t.height/a.h);return t.options.offset&&s--,s>0?s:1}});ti._defaults={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};var ni={category:fn,linear:bn,logarithmic:Sn,radialLinear:Hn,time:ti},ii={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};Jt._date.override("function"==typeof e?{_id:"moment",formats:function(){return ii},parse:function(t,n){return"string"==typeof t&&"string"==typeof n?t=e(t,n):t instanceof e||(t=e(t)),t.isValid()?t.valueOf():null},format:function(t,n){return e(t).format(n)},add:function(t,n,i){return e(t).add(n,i).valueOf()},diff:function(t,n,i){return e(t).diff(e(n),i)},startOf:function(t,n,i){return t=e(t),"isoWeek"===n?t.isoWeekday(i).valueOf():t.startOf(n).valueOf()},endOf:function(t,n){return e(t).endOf(n).valueOf()},_create:function(t){return e(t)}}:{}),I._set("global",{plugins:{filler:{propagate:!0}}});var ri={dataset:function(e){var t=e.fill,n=e.chart,i=n.getDatasetMeta(t),r=i&&n.isDatasetVisible(t)&&i.dataset._children||[],o=r.length||0;return o?function(e,t){return t<o&&r[t]._view||null}:null},boundary:function(e){var t=e.boundary,n=t?t.x:null,i=t?t.y:null;return R.isArray(t)?function(e,n){return t[n]}:function(e){return{x:null===n?e.x:n,y:null===i?e.y:i}}}};function oi(e,t,n){var i,r=e._model||{},o=r.fill;if(void 0===o&&(o=!!r.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(i=parseFloat(o,10),isFinite(i)&&Math.floor(i)===i)return"-"!==o[0]&&"+"!==o[0]||(i=t+i),!(i===t||i<0||i>=n)&&i;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function ai(e){return(e.el._scale||{}).getPointPositionForValue?function(e){var t,n,i,r,o,a=e.el._scale,s=a.options,l=a.chart.data.labels.length,u=e.fill,c=[];if(!l)return null;for(t=s.ticks.reverse?a.max:a.min,n=s.ticks.reverse?a.min:a.max,i=a.getPointPositionForValue(0,t),r=0;r<l;++r)o="start"===u||"end"===u?a.getPointPositionForValue(r,"start"===u?t:n):a.getBasePosition(r),s.gridLines.circular&&(o.cx=i.x,o.cy=i.y,o.angle=a.getIndexAngle(r)-Math.PI/2),c.push(o);return c}(e):function(e){var t,n=e.el._model||{},i=e.el._scale||{},r=e.fill,o=null;if(isFinite(r))return null;if("start"===r?o=void 0===n.scaleBottom?i.bottom:n.scaleBottom:"end"===r?o=void 0===n.scaleTop?i.top:n.scaleTop:void 0!==n.scaleZero?o=n.scaleZero:i.getBasePixel&&(o=i.getBasePixel()),null!=o){if(void 0!==o.x&&void 0!==o.y)return o;if(R.isFinite(o))return{x:(t=i.isHorizontal())?o:null,y:t?null:o}}return null}(e)}function si(e,t,n){var i,r=e[t].fill,o=[t];if(!n)return r;for(;!1!==r&&-1===o.indexOf(r);){if(!isFinite(r))return r;if(!(i=e[r]))return!1;if(i.visible)return r;o.push(r),r=i.fill}return!1}function li(e){var t=e.fill,n="dataset";return!1===t?null:(isFinite(t)||(n="boundary"),ri[n](e))}function ui(e){return e&&!e.skip}function ci(e,t,n,i,r){var o,a,s,l;if(i&&r){for(e.moveTo(t[0].x,t[0].y),o=1;o<i;++o)R.canvas.lineTo(e,t[o-1],t[o]);if(void 0===n[0].angle)for(e.lineTo(n[r-1].x,n[r-1].y),o=r-1;o>0;--o)R.canvas.lineTo(e,n[o],n[o-1],!0);else for(a=n[0].cx,s=n[0].cy,l=Math.sqrt(Math.pow(n[0].x-a,2)+Math.pow(n[0].y-s,2)),o=r-1;o>0;--o)e.arc(a,s,l,n[o].angle,n[o-1].angle,!0)}}function di(e,t,n,i,r,o){var a,s,l,u,c,d,h,f,p=t.length,m=i.spanGaps,g=[],v=[],_=0,y=0;for(e.beginPath(),a=0,s=p;a<s;++a)c=n(u=t[l=a%p]._view,l,i),d=ui(u),h=ui(c),o&&void 0===f&&d&&(s=p+(f=a+1)),d&&h?(_=g.push(u),y=v.push(c)):_&&y&&(m?(d&&g.push(u),h&&v.push(c)):(ci(e,g,v,_,y),_=y=0,g=[],v=[]));ci(e,g,v,_,y),e.closePath(),e.fillStyle=r,e.fill()}var hi={id:"filler",afterDatasetsUpdate:function(e,t){var n,i,r,o,a=(e.data.datasets||[]).length,s=t.propagate,l=[];for(i=0;i<a;++i)o=null,(r=(n=e.getDatasetMeta(i)).dataset)&&r._model&&r instanceof _e.Line&&(o={visible:e.isDatasetVisible(i),fill:oi(r,i,a),chart:e,el:r}),n.$filler=o,l.push(o);for(i=0;i<a;++i)(o=l[i])&&(o.fill=si(l,i,s),o.boundary=ai(o),o.mapper=li(o))},beforeDatasetsDraw:function(e){var t,n,i,r,o,a,s,l=e._getSortedVisibleDatasetMetas(),u=e.ctx;for(n=l.length-1;n>=0;--n)(t=l[n].$filler)&&t.visible&&(r=(i=t.el)._view,o=i._children||[],a=t.mapper,s=r.backgroundColor||I.global.defaultColor,a&&s&&o.length&&(R.canvas.clipArea(u,e.chartArea),di(u,o,a,r,s,i._loop),R.canvas.unclipArea(u)))}},fi=R.rtl.getRtlAdapter,pi=R.noop,mi=R.valueOrDefault;function gi(e,t){return e.usePointStyle&&e.boxWidth>t?t:e.boxWidth}I._set("global",{legend:{display:!0,position:"top",align:"center",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(e,t){var n=t.datasetIndex,i=this.chart,r=i.getDatasetMeta(n);r.hidden=null===r.hidden?!i.data.datasets[n].hidden:null,i.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(e){var t=e.data.datasets,n=e.options.legend||{},i=n.labels&&n.labels.usePointStyle;return e._getSortedDatasetMetas().map((function(n){var r=n.controller.getStyle(i?0:void 0);return{text:t[n.index].label,fillStyle:r.backgroundColor,hidden:!e.isDatasetVisible(n.index),lineCap:r.borderCapStyle,lineDash:r.borderDash,lineDashOffset:r.borderDashOffset,lineJoin:r.borderJoinStyle,lineWidth:r.borderWidth,strokeStyle:r.borderColor,pointStyle:r.pointStyle,rotation:r.rotation,datasetIndex:n.index}}),this)}}},legendCallback:function(e){var t,n,i,r=document.createElement("ul"),o=e.data.datasets;for(r.setAttribute("class",e.id+"-legend"),t=0,n=o.length;t<n;t++)(i=r.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor=o[t].backgroundColor,o[t].label&&i.appendChild(document.createTextNode(o[t].label));return r.outerHTML}});var vi=q.extend({initialize:function(e){R.extend(this,e),this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1},beforeUpdate:pi,update:function(e,t,n){var i=this;return i.beforeUpdate(),i.maxWidth=e,i.maxHeight=t,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:pi,beforeSetDimensions:pi,setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0,e.minSize={width:0,height:0}},afterSetDimensions:pi,beforeBuildLabels:pi,buildLabels:function(){var e=this,t=e.options.labels||{},n=R.callback(t.generateLabels,[e.chart],e)||[];t.filter&&(n=n.filter((function(n){return t.filter(n,e.chart.data)}))),e.options.reverse&&n.reverse(),e.legendItems=n},afterBuildLabels:pi,beforeFit:pi,fit:function(){var e=this,t=e.options,n=t.labels,i=t.display,r=e.ctx,o=R.options._parseFont(n),a=o.size,s=e.legendHitBoxes=[],l=e.minSize,u=e.isHorizontal();if(u?(l.width=e.maxWidth,l.height=i?10:0):(l.width=i?10:0,l.height=e.maxHeight),i){if(r.font=o.string,u){var c=e.lineWidths=[0],d=0;r.textAlign="left",r.textBaseline="middle",R.each(e.legendItems,(function(e,t){var i=gi(n,a)+a/2+r.measureText(e.text).width;(0===t||c[c.length-1]+i+2*n.padding>l.width)&&(d+=a+n.padding,c[c.length-(t>0?0:1)]=0),s[t]={left:0,top:0,width:i,height:a},c[c.length-1]+=i+n.padding})),l.height+=d}else{var h=n.padding,f=e.columnWidths=[],p=e.columnHeights=[],m=n.padding,g=0,v=0;R.each(e.legendItems,(function(e,t){var i=gi(n,a)+a/2+r.measureText(e.text).width;t>0&&v+a+2*h>l.height&&(m+=g+n.padding,f.push(g),p.push(v),g=0,v=0),g=Math.max(g,i),v+=a+h,s[t]={left:0,top:0,width:i,height:a}})),m+=g,f.push(g),p.push(v),l.width+=m}e.width=l.width,e.height=l.height}else e.width=l.width=e.height=l.height=0},afterFit:pi,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var e=this,t=e.options,n=t.labels,i=I.global,r=i.defaultColor,o=i.elements.line,a=e.height,s=e.columnHeights,l=e.width,u=e.lineWidths;if(t.display){var c,d=fi(t.rtl,e.left,e.minSize.width),h=e.ctx,f=mi(n.fontColor,i.defaultFontColor),p=R.options._parseFont(n),m=p.size;h.textAlign=d.textAlign("left"),h.textBaseline="middle",h.lineWidth=.5,h.strokeStyle=f,h.fillStyle=f,h.font=p.string;var g=gi(n,m),v=e.legendHitBoxes,_=function(e,i){switch(t.align){case"start":return n.padding;case"end":return e-i;default:return(e-i+n.padding)/2}},y=e.isHorizontal();c=y?{x:e.left+_(l,u[0]),y:e.top+n.padding,line:0}:{x:e.left+n.padding,y:e.top+_(a,s[0]),line:0},R.rtl.overrideTextDirection(e.ctx,t.textDirection);var b=m+n.padding;R.each(e.legendItems,(function(t,i){var f=h.measureText(t.text).width,p=g+m/2+f,w=c.x,L=c.y;d.setWidth(e.minSize.width),y?i>0&&w+p+n.padding>e.left+e.minSize.width&&(L=c.y+=b,c.line++,w=c.x=e.left+_(l,u[c.line])):i>0&&L+b>e.top+e.minSize.height&&(w=c.x=w+e.columnWidths[c.line]+n.padding,c.line++,L=c.y=e.top+_(a,s[c.line]));var M=d.x(w);!function(e,t,i){if(!(isNaN(g)||g<=0)){h.save();var a=mi(i.lineWidth,o.borderWidth);if(h.fillStyle=mi(i.fillStyle,r),h.lineCap=mi(i.lineCap,o.borderCapStyle),h.lineDashOffset=mi(i.lineDashOffset,o.borderDashOffset),h.lineJoin=mi(i.lineJoin,o.borderJoinStyle),h.lineWidth=a,h.strokeStyle=mi(i.strokeStyle,r),h.setLineDash&&h.setLineDash(mi(i.lineDash,o.borderDash)),n&&n.usePointStyle){var s=g*Math.SQRT2/2,l=d.xPlus(e,g/2),u=t+m/2;R.canvas.drawPoint(h,i.pointStyle,s,l,u,i.rotation)}else h.fillRect(d.leftForLtr(e,g),t,g,m),0!==a&&h.strokeRect(d.leftForLtr(e,g),t,g,m);h.restore()}}(M,L,t),v[i].left=d.leftForLtr(M,v[i].width),v[i].top=L,function(e,t,n,i){var r=m/2,o=d.xPlus(e,g+r),a=t+r;h.fillText(n.text,o,a),n.hidden&&(h.beginPath(),h.lineWidth=2,h.moveTo(o,a),h.lineTo(d.xPlus(o,i),a),h.stroke())}(M,L,t,f),y?c.x+=p+n.padding:c.y+=b})),R.rtl.restoreTextDirection(e.ctx,t.textDirection)}},_getLegendItemAt:function(e,t){var n,i,r,o=this;if(e>=o.left&&e<=o.right&&t>=o.top&&t<=o.bottom)for(r=o.legendHitBoxes,n=0;n<r.length;++n)if(e>=(i=r[n]).left&&e<=i.left+i.width&&t>=i.top&&t<=i.top+i.height)return o.legendItems[n];return null},handleEvent:function(e){var t,n=this,i=n.options,r="mouseup"===e.type?"click":e.type;if("mousemove"===r){if(!i.onHover&&!i.onLeave)return}else{if("click"!==r)return;if(!i.onClick)return}t=n._getLegendItemAt(e.x,e.y),"click"===r?t&&i.onClick&&i.onClick.call(n,e.native,t):(i.onLeave&&t!==n._hoveredItem&&(n._hoveredItem&&i.onLeave.call(n,e.native,n._hoveredItem),n._hoveredItem=t),i.onHover&&t&&i.onHover.call(n,e.native,t))}});function _i(e,t){var n=new vi({ctx:e.ctx,options:t,chart:e});ct.configure(e,n,t),ct.addBox(e,n),e.legend=n}var yi={id:"legend",_element:vi,beforeInit:function(e){var t=e.options.legend;t&&_i(e,t)},beforeUpdate:function(e){var t=e.options.legend,n=e.legend;t?(R.mergeIf(t,I.global.legend),n?(ct.configure(e,n,t),n.options=t):_i(e,t)):n&&(ct.removeBox(e,n),delete e.legend)},afterEvent:function(e,t){var n=e.legend;n&&n.handleEvent(t)}},bi=R.noop;I._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var wi=q.extend({initialize:function(e){R.extend(this,e),this.legendHitBoxes=[]},beforeUpdate:bi,update:function(e,t,n){var i=this;return i.beforeUpdate(),i.maxWidth=e,i.maxHeight=t,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:bi,beforeSetDimensions:bi,setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0,e.minSize={width:0,height:0}},afterSetDimensions:bi,beforeBuildLabels:bi,buildLabels:bi,afterBuildLabels:bi,beforeFit:bi,fit:function(){var e,t=this,n=t.options,i=t.minSize={},r=t.isHorizontal();n.display?(e=(R.isArray(n.text)?n.text.length:1)*R.options._parseFont(n).lineHeight+2*n.padding,t.width=i.width=r?t.maxWidth:e,t.height=i.height=r?e:t.maxHeight):t.width=i.width=t.height=i.height=0},afterFit:bi,isHorizontal:function(){var e=this.options.position;return"top"===e||"bottom"===e},draw:function(){var e=this,t=e.ctx,n=e.options;if(n.display){var i,r,o,a=R.options._parseFont(n),s=a.lineHeight,l=s/2+n.padding,u=0,c=e.top,d=e.left,h=e.bottom,f=e.right;t.fillStyle=R.valueOrDefault(n.fontColor,I.global.defaultFontColor),t.font=a.string,e.isHorizontal()?(r=d+(f-d)/2,o=c+l,i=f-d):(r="left"===n.position?d+l:f-l,o=c+(h-c)/2,i=h-c,u=Math.PI*("left"===n.position?-.5:.5)),t.save(),t.translate(r,o),t.rotate(u),t.textAlign="center",t.textBaseline="middle";var p=n.text;if(R.isArray(p))for(var m=0,g=0;g<p.length;++g)t.fillText(p[g],0,m,i),m+=s;else t.fillText(p,0,0,i);t.restore()}}});function Li(e,t){var n=new wi({ctx:e.ctx,options:t,chart:e});ct.configure(e,n,t),ct.addBox(e,n),e.titleBlock=n}var Mi={},ki=hi,xi=yi,Si={id:"title",_element:wi,beforeInit:function(e){var t=e.options.title;t&&Li(e,t)},beforeUpdate:function(e){var t=e.options.title,n=e.titleBlock;t?(R.mergeIf(t,I.global.title),n?(ct.configure(e,n,t),n.options=t):Li(e,t)):n&&(ct.removeBox(e,n),delete e.titleBlock)}};for(var Ti in Mi.filler=ki,Mi.legend=xi,Mi.title=Si,qt.helpers=R,function(){function e(e,t,n){var i;return"string"==typeof e?(i=parseInt(e,10),-1!==e.indexOf("%")&&(i=i/100*t.parentNode[n])):i=e,i}function t(e){return null!=e&&"none"!==e}function n(n,i,r){var o=document.defaultView,a=R._getParentNode(n),s=o.getComputedStyle(n)[i],l=o.getComputedStyle(a)[i],u=t(s),c=t(l),d=Number.POSITIVE_INFINITY;return u||c?Math.min(u?e(s,n,r):d,c?e(l,a,r):d):"none"}R.where=function(e,t){if(R.isArray(e)&&Array.prototype.filter)return e.filter(t);var n=[];return R.each(e,(function(e){t(e)&&n.push(e)})),n},R.findIndex=Array.prototype.findIndex?function(e,t,n){return e.findIndex(t,n)}:function(e,t,n){n=void 0===n?e:n;for(var i=0,r=e.length;i<r;++i)if(t.call(n,e[i],i,e))return i;return-1},R.findNextWhere=function(e,t,n){R.isNullOrUndef(n)&&(n=-1);for(var i=n+1;i<e.length;i++){var r=e[i];if(t(r))return r}},R.findPreviousWhere=function(e,t,n){R.isNullOrUndef(n)&&(n=e.length);for(var i=n-1;i>=0;i--){var r=e[i];if(t(r))return r}},R.isNumber=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},R.almostEquals=function(e,t,n){return Math.abs(e-t)<n},R.almostWhole=function(e,t){var n=Math.round(e);return n-t<=e&&n+t>=e},R.max=function(e){return e.reduce((function(e,t){return isNaN(t)?e:Math.max(e,t)}),Number.NEGATIVE_INFINITY)},R.min=function(e){return e.reduce((function(e,t){return isNaN(t)?e:Math.min(e,t)}),Number.POSITIVE_INFINITY)},R.sign=Math.sign?function(e){return Math.sign(e)}:function(e){return 0==(e=+e)||isNaN(e)?e:e>0?1:-1},R.toRadians=function(e){return e*(Math.PI/180)},R.toDegrees=function(e){return e*(180/Math.PI)},R._decimalPlaces=function(e){if(R.isFinite(e)){for(var t=1,n=0;Math.round(e*t)/t!==e;)t*=10,n++;return n}},R.getAngleFromPoint=function(e,t){var n=t.x-e.x,i=t.y-e.y,r=Math.sqrt(n*n+i*i),o=Math.atan2(i,n);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:r}},R.distanceBetweenPoints=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},R.aliasPixel=function(e){return e%2==0?0:.5},R._alignPixel=function(e,t,n){var i=e.currentDevicePixelRatio,r=n/2;return Math.round((t-r)*i)/i+r},R.splineCurve=function(e,t,n,i){var r=e.skip?t:e,o=t,a=n.skip?t:n,s=Math.sqrt(Math.pow(o.x-r.x,2)+Math.pow(o.y-r.y,2)),l=Math.sqrt(Math.pow(a.x-o.x,2)+Math.pow(a.y-o.y,2)),u=s/(s+l),c=l/(s+l),d=i*(u=isNaN(u)?0:u),h=i*(c=isNaN(c)?0:c);return{previous:{x:o.x-d*(a.x-r.x),y:o.y-d*(a.y-r.y)},next:{x:o.x+h*(a.x-r.x),y:o.y+h*(a.y-r.y)}}},R.EPSILON=Number.EPSILON||1e-14,R.splineCurveMonotone=function(e){var t,n,i,r,o,a,s,l,u,c=(e||[]).map((function(e){return{model:e._model,deltaK:0,mK:0}})),d=c.length;for(t=0;t<d;++t)if(!(i=c[t]).model.skip){if(n=t>0?c[t-1]:null,(r=t<d-1?c[t+1]:null)&&!r.model.skip){var h=r.model.x-i.model.x;i.deltaK=0!==h?(r.model.y-i.model.y)/h:0}!n||n.model.skip?i.mK=i.deltaK:!r||r.model.skip?i.mK=n.deltaK:this.sign(n.deltaK)!==this.sign(i.deltaK)?i.mK=0:i.mK=(n.deltaK+i.deltaK)/2}for(t=0;t<d-1;++t)i=c[t],r=c[t+1],i.model.skip||r.model.skip||(R.almostEquals(i.deltaK,0,this.EPSILON)?i.mK=r.mK=0:(o=i.mK/i.deltaK,a=r.mK/i.deltaK,(l=Math.pow(o,2)+Math.pow(a,2))<=9||(s=3/Math.sqrt(l),i.mK=o*s*i.deltaK,r.mK=a*s*i.deltaK)));for(t=0;t<d;++t)(i=c[t]).model.skip||(n=t>0?c[t-1]:null,r=t<d-1?c[t+1]:null,n&&!n.model.skip&&(u=(i.model.x-n.model.x)/3,i.model.controlPointPreviousX=i.model.x-u,i.model.controlPointPreviousY=i.model.y-u*i.mK),r&&!r.model.skip&&(u=(r.model.x-i.model.x)/3,i.model.controlPointNextX=i.model.x+u,i.model.controlPointNextY=i.model.y+u*i.mK))},R.nextItem=function(e,t,n){return n?t>=e.length-1?e[0]:e[t+1]:t>=e.length-1?e[e.length-1]:e[t+1]},R.previousItem=function(e,t,n){return n?t<=0?e[e.length-1]:e[t-1]:t<=0?e[0]:e[t-1]},R.niceNum=function(e,t){var n=Math.floor(R.log10(e)),i=e/Math.pow(10,n);return(t?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},R.requestAnimFrame="undefined"==typeof window?function(e){e()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){return window.setTimeout(e,1e3/60)},R.getRelativePosition=function(e,t){var n,i,r=e.originalEvent||e,o=e.target||e.srcElement,a=o.getBoundingClientRect(),s=r.touches;s&&s.length>0?(n=s[0].clientX,i=s[0].clientY):(n=r.clientX,i=r.clientY);var l=parseFloat(R.getStyle(o,"padding-left")),u=parseFloat(R.getStyle(o,"padding-top")),c=parseFloat(R.getStyle(o,"padding-right")),d=parseFloat(R.getStyle(o,"padding-bottom")),h=a.right-a.left-l-c,f=a.bottom-a.top-u-d;return{x:n=Math.round((n-a.left-l)/h*o.width/t.currentDevicePixelRatio),y:i=Math.round((i-a.top-u)/f*o.height/t.currentDevicePixelRatio)}},R.getConstraintWidth=function(e){return n(e,"max-width","clientWidth")},R.getConstraintHeight=function(e){return n(e,"max-height","clientHeight")},R._calculatePadding=function(e,t,n){return(t=R.getStyle(e,t)).indexOf("%")>-1?n*parseInt(t,10)/100:parseInt(t,10)},R._getParentNode=function(e){var t=e.parentNode;return t&&"[object ShadowRoot]"===t.toString()&&(t=t.host),t},R.getMaximumWidth=function(e){var t=R._getParentNode(e);if(!t)return e.clientWidth;var n=t.clientWidth,i=n-R._calculatePadding(t,"padding-left",n)-R._calculatePadding(t,"padding-right",n),r=R.getConstraintWidth(e);return isNaN(r)?i:Math.min(i,r)},R.getMaximumHeight=function(e){var t=R._getParentNode(e);if(!t)return e.clientHeight;var n=t.clientHeight,i=n-R._calculatePadding(t,"padding-top",n)-R._calculatePadding(t,"padding-bottom",n),r=R.getConstraintHeight(e);return isNaN(r)?i:Math.min(i,r)},R.getStyle=function(e,t){return e.currentStyle?e.currentStyle[t]:document.defaultView.getComputedStyle(e,null).getPropertyValue(t)},R.retinaScale=function(e,t){var n=e.currentDevicePixelRatio=t||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==n){var i=e.canvas,r=e.height,o=e.width;i.height=r*n,i.width=o*n,e.ctx.scale(n,n),i.style.height||i.style.width||(i.style.height=r+"px",i.style.width=o+"px")}},R.fontString=function(e,t,n){return t+" "+e+"px "+n},R.longestText=function(e,t,n,i){var r=(i=i||{}).data=i.data||{},o=i.garbageCollect=i.garbageCollect||[];i.font!==t&&(r=i.data={},o=i.garbageCollect=[],i.font=t),e.font=t;var a,s,l,u,c,d=0,h=n.length;for(a=0;a<h;a++)if(null!=(u=n[a])&&!0!==R.isArray(u))d=R.measureText(e,r,o,d,u);else if(R.isArray(u))for(s=0,l=u.length;s<l;s++)null==(c=u[s])||R.isArray(c)||(d=R.measureText(e,r,o,d,c));var f=o.length/2;if(f>n.length){for(a=0;a<f;a++)delete r[o[a]];o.splice(0,f)}return d},R.measureText=function(e,t,n,i,r){var o=t[r];return o||(o=t[r]=e.measureText(r).width,n.push(r)),o>i&&(i=o),i},R.numberOfLabelLines=function(e){var t=1;return R.each(e,(function(e){R.isArray(e)&&e.length>t&&(t=e.length)})),t},R.color=L?function(e){return e instanceof CanvasGradient&&(e=I.global.defaultColor),L(e)}:function(e){return console.error("Color.js not found!"),e},R.getHoverColor=function(e){return e instanceof CanvasPattern||e instanceof CanvasGradient?e:R.color(e).saturate(.5).darken(.1).rgbString()}}(),qt._adapters=Jt,qt.Animation=Z,qt.animationService=J,qt.controllers=qe,qt.DatasetController=te,qt.defaults=I,qt.Element=q,qt.elements=_e,qt.Interaction=et,qt.layouts=ct,qt.platform=xt,qt.plugins=St,qt.Scale=dn,qt.scaleService=Tt,qt.Ticks=Xt,qt.Tooltip=Ht,qt.helpers.each(ni,(function(e,t){qt.scaleService.registerScaleType(t,e,e._defaults)})),Mi)Mi.hasOwnProperty(Ti)&&qt.plugins.register(Mi[Ti]);qt.platform.initialize();var $i=qt;return"undefined"!=typeof window&&(window.Chart=qt),qt.Chart=qt,qt.Legend=Mi.legend._element,qt.Title=Mi.title._element,qt.pluginService=qt.plugins,qt.PluginBase=qt.Element.extend({}),qt.canvasHelpers=qt.helpers.canvas,qt.layoutService=qt.layouts,qt.LinearScaleBase=gn,qt.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],(function(e){qt[e]=function(t,n){return new qt(t,qt.helpers.merge(n||{},{type:e.charAt(0).toLowerCase()+e.slice(1)}))}})),$i})),function(){function e(e,t,n){!1!==t?$.addEventListener(e,N[e],n):$.removeEventListener(e,N[e])}function t(e){var t=h(d(e.target));if(ionic.tap.requiresNativeClick(t)||A)return!1;var i=ionic.tap.pointerCoord(e);n("click",t,i.x,i.y),function(e){Y=null;var t=!1;"SELECT"==e.tagName?(n("mousedown",e,0,0),e.focus&&e.focus(),t=!0):u()===e?t=!0:/^(input|textarea|ion-label)$/i.test(e.tagName)||e.isContentEditable?(t=!0,e.focus&&e.focus(),e.value=e.value,C&&(Y=e)):function(){var e=u();e&&(/^(input|textarea|select)$/i.test(e.tagName)||e.isContentEditable)&&e.blur(),u(null)}(),t&&(u(e),ionic.trigger("ionic.focusin",{target:e},!0))}(t)}function n(e,t,n,i){var r=document.createEvent("MouseEvents");r.initMouseEvent(e,!0,!0,window,1,0,0,n,i,!1,!1,!1,!1,0,null),r.isIonicTap=!0,t.dispatchEvent(r)}function i(t){!l(t)&&(A=!1,s(),P=ionic.tap.pointerCoord(t),e(I),ionic.activator.start(t),ionic.Platform.isIOS()&&ionic.tap.isLabelWithTextInput(t.target))&&h(d(t.target))!==D&&t.preventDefault()}function r(e){l(e)||(s(),c(e)||(t(e),f(e.target.tagName)&&e.preventDefault()),O=e.target,a())}function o(t){return c(t)?(A=!0,e(I,!1),ionic.activator.end(),!1):void 0}function a(){e(I,!1),ionic.activator.end(),A=!1}function s(){C=!0,clearTimeout(E),E=setTimeout((function(){C=!1}),600)}function l(e){return!!e.isTapHandled||(e.isTapHandled=!0,!!ionic.tap.isElementTapDisabled(e.target)||"SELECT"==e.target.tagName||(ionic.scroll.isScrolling&&ionic.tap.containsOrIsTextInput(e.target)?(e.preventDefault(),!0):void 0))}function u(e){return arguments.length&&(D=e),D||document.activeElement}function c(e){if(!e||1!==e.target.nodeType||!P||0===P.x&&0===P.y)return!1;var t=ionic.tap.pointerCoord(e),n=e.target.classList&&e.target.classList.contains&&"function"==typeof e.target.classList.contains&&e.target.classList.contains("button")?H:j;return Math.abs(P.x-t.x)>n||Math.abs(P.y-t.y)>n}function d(e,t){for(var n=e,i=0;6>i&&n;i++){if("LABEL"===n.tagName)return n;n=n.parentElement}return!1!==t?e:void 0}function h(e){if(e&&"LABEL"===e.tagName){if(e.control)return e.control;if(e.querySelector){var t=e.querySelector("input,textarea,select");if(t)return t}}return e}function f(e){return/^(select|option)$/i.test(e)}function p(){ionic.keyboard.isInitialized||(S()?(window.addEventListener("native.keyboardshow",X),window.addEventListener("native.keyboardhide",m)):document.body.addEventListener("focusout",m),document.body.addEventListener("ionic.focusin",J),document.body.addEventListener("focusin",J),window.navigator.msPointerEnabled?document.removeEventListener("MSPointerDown",p):document.removeEventListener("touchstart",p),ionic.keyboard.isInitialized=!0)}function m(){clearTimeout(V),(ionic.keyboard.isOpen||ionic.keyboard.isOpening)&&(ionic.keyboard.isClosing=!0,ionic.keyboard.isOpening=!1),V=setTimeout((function(){ionic.requestAnimationFrame((function(){y(G?function(){M(),b()}:b,!1)}))}),50)}function g(){ionic.keyboard.isLandscape=!ionic.keyboard.isLandscape,ionic.Platform.isIOS()&&M(),ionic.Platform.isAndroid()&&(ionic.keyboard.isOpen&&S()?G=!0:y(M,!1))}function v(e){ionic.scroll.isScrolling&&_(e)}function _(e){"TEXTAREA"!==e.target.tagName&&e.preventDefault()}function y(e,t){clearInterval(z);var n,i=0,r=x(),o=r;return n=ionic.Platform.isAndroid()&&ionic.Platform.version()<4.4?30:ionic.Platform.isAndroid()?10:1,z=setInterval((function(){o=x(),(!(++i<n)||(function(e){return!!(!ionic.keyboard.isLandscape&&W&&Math.abs(W-e)<2)}(o)||function(e){return!!(ionic.keyboard.isLandscape&&q&&Math.abs(q-e)<2)}(o))&&ionic.keyboard.height)&&(S()||(ionic.keyboard.height=Math.abs(r-window.innerHeight)),ionic.keyboard.isOpen=t,clearInterval(z),e())}),50),n}function b(){clearTimeout(V),ionic.keyboard.isOpen=!1,ionic.keyboard.isClosing=!1,(B||R)&&ionic.trigger("resetScrollView",{target:B||R},!0),ionic.requestAnimationFrame((function(){document.body.classList.remove(Z)})),window.navigator.msPointerEnabled?document.removeEventListener("MSPointerMove",_):document.removeEventListener("touchmove",_),document.removeEventListener("keydown",v),ionic.Platform.isAndroid()&&(S()&&cordova.plugins.Keyboard.close(),B&&B.blur()),B=null,R=null}function w(){ionic.keyboard.isOpen=!0,ionic.keyboard.isOpening=!1;var e={keyboardHeight:L(),viewportHeight:U};if(B){e.target=B;var t=B.getBoundingClientRect();e.elementTop=Math.round(t.top),e.elementBottom=Math.round(t.bottom),e.windowHeight=e.viewportHeight-e.keyboardHeight,e.isElementUnderKeyboard=e.elementBottom>e.windowHeight,ionic.trigger("scrollChildIntoView",e,!0)}return setTimeout((function(){document.body.classList.add(Z)}),400),e}function L(){if(ionic.keyboard.height)return ionic.keyboard.height;if(ionic.Platform.isAndroid()){if(ionic.Platform.isFullScreen)return 275;var e=window.innerHeight;return U>e?U-e:0}return ionic.Platform.isIOS()?ionic.keyboard.isLandscape?206:ionic.Platform.isWebView()?260:216:275}function M(){G=!1,U=x(),ionic.keyboard.isLandscape&&!q?q=U:ionic.keyboard.isLandscape||W||(W=U),B&&ionic.trigger("resetScrollView",{target:B},!0),ionic.keyboard.isOpen&&ionic.tap.isTextInput(B)&&w()}function k(){var e=x();e/window.innerWidth<1&&(ionic.keyboard.isLandscape=!0),U=e,ionic.keyboard.isLandscape&&!q?q=U:ionic.keyboard.isLandscape||W||(W=U)}function x(){var e=window.innerHeight;return ionic.Platform.isAndroid()&&ionic.Platform.isFullScreen||!ionic.keyboard.isOpen&&!ionic.keyboard.isOpening||ionic.keyboard.isClosing?e:e+L()}function S(){return!!(window.cordova&&cordova.plugins&&cordova.plugins.Keyboard)}function T(){var e=Q.width,t=Q.height,n=ionic.Platform,i=n.version(),r="device-height",o=ionic.viewport.orientation();delete Q.height,Q.width="device-width",n.isIPad()?i>7?delete Q.width:n.isWebView()?90==o?Q.height="0":7==i&&(Q.height=r):7>i&&(Q.height="0"):n.isIOS()&&(n.isWebView()?i>7?delete Q.width:7>i?t&&(Q.height="0"):7==i&&(Q.height=r):7>i&&t&&(Q.height="0")),(e!==Q.width||t!==Q.height)&&function(){var e,t=[];for(e in Q)Q[e]&&t.push(e+("_"==Q[e]?"":"="+Q[e]));K.content=t.join(", ")}()}window.ionic=window.ionic||{},window.ionic.views={},window.ionic.version="1.3.5",window.ionic.DelegateService=function(e){function t(){return!0}if(e.indexOf("$getByHandle")>-1)throw new Error("Method '$getByHandle' is implicitly added to each delegate service. Do not list it as a method.");return["$log",function(n){function i(e,t){this._instances=e,this.handle=t}function r(){this._instances=[]}return e.forEach((function(e){i.prototype[e]=function(e){return function(){var t,i=this.handle,r=arguments,o=0;return this._instances.forEach((function(n){if((!i||i==n.$$delegateHandle)&&n.$$filterFn(n)){o++;var a=n[e].apply(n,r);1===o&&(t=a)}})),!o&&i?n.warn('Delegate for handle "'+i+'" could not find a corresponding element with delegate-handle="'+i+'"! '+e+"() was not called!\nPossible cause: If you are calling "+e+'() immediately, and your element with delegate-handle="'+i+'" is a child of your controller, then your element may not be compiled yet. Put a $timeout around your call to '+e+"() and try again."):t}}(e)})),r.prototype=i.prototype,r.prototype._registerInstance=function(e,n,i){var r=this._instances;return e.$$delegateHandle=n,e.$$filterFn=i||t,r.push(e),function(){var t=r.indexOf(e);-1!==t&&r.splice(t,1)}},r.prototype.$getByHandle=function(e){return new i(this._instances,e)},new r}]},function(e,t,n){var i=[],r="complete"===t.readyState||"interactive"===t.readyState;r||t.addEventListener("DOMContentLoaded",(function e(){r=!0;for(var o=0;o<i.length;o++)n.requestAnimationFrame(i[o]);i=[],t.removeEventListener("DOMContentLoaded",e)})),e._rAF=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||function(t){e.setTimeout(t,16)};var o=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.mozCancelAnimationFrame||e.webkitCancelRequestAnimationFrame;n.DomUtil={requestAnimationFrame:function(t){return e._rAF(t)},cancelAnimationFrame:function(e){o(e)},animationFrameThrottle:function(e){var t,i,r;return function(){t=arguments,r=this,i||(i=!0,n.requestAnimationFrame((function(){e.apply(r,t),i=!1})))}},contains:function(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}},getPositionInParent:function(e){return{left:e.offsetLeft,top:e.offsetTop}},getOffsetTop:function(e){var t=0;if(e.offsetParent){do{t+=e.offsetTop,e=e.offsetParent}while(e);return t}},ready:function(e){r?n.requestAnimationFrame(e):i.push(e)},getTextBounds:function(n){if(t.createRange){var i=t.createRange();if(i.selectNodeContents(n),i.getBoundingClientRect){var r=i.getBoundingClientRect();if(r){var o=e.scrollX,a=e.scrollY;return{top:r.top+a,left:r.left+o,right:r.left+o+r.width,bottom:r.top+a+r.height,width:r.width,height:r.height}}}}return null},getChildIndex:function(e,t){if(t)for(var n,i=e.parentNode.children,r=0,o=0,a=i.length;a>r;r++)if((n=i[r]).nodeName&&n.nodeName.toLowerCase()==t){if(n==e)return o;o++}return Array.prototype.slice.call(e.parentNode.children).indexOf(e)},swapNodes:function(e,t){t.parentNode.insertBefore(e,t)},elementIsDescendant:function(e,t,n){var i=e;do{if(i===t)return!0;i=i.parentNode}while(i&&i!==n);return!1},getParentWithClass:function(e,t,n){for(n=n||10;e.parentNode&&n--;){if(e.parentNode.classList&&e.parentNode.classList.contains(t))return e.parentNode;e=e.parentNode}return null},getParentOrSelfWithClass:function(e,t,n){for(n=n||10;e&&n--;){if(e.classList&&e.classList.contains(t))return e;e=e.parentNode}return null},rectContains:function(e,t,n,i,r,o){return!(n>e||e>r||i>t||t>o)},blurAll:function(){return t.activeElement&&t.activeElement!=t.body?(t.activeElement.blur(),t.activeElement):null},cachedAttr:function(e,t,n){if((e=e&&e.length&&e[0]||e)&&e.setAttribute){var i="$attr-"+t;return arguments.length>2?e[i]!==n&&(e.setAttribute(t,n),e[i]=n):void 0===e[i]&&(e[i]=e.getAttribute(t)),e[i]}},cachedStyles:function(e,t){if((e=e&&e.length&&e[0]||e)&&e.style)for(var n in t)e["$style-"+n]!==t[n]&&(e.style[n]=e["$style-"+n]=t[n])}},n.requestAnimationFrame=n.DomUtil.requestAnimationFrame,n.cancelAnimationFrame=n.DomUtil.cancelAnimationFrame,n.animationFrameThrottle=n.DomUtil.animationFrameThrottle}(window,document,ionic),function(e){e.CustomEvent=function(){if("function"==typeof window.CustomEvent)return CustomEvent;var e=function(e,t){var n;t=t||{bubbles:!1,cancelable:!1,detail:void 0};try{(n=document.createEvent("CustomEvent")).initCustomEvent(e,t.bubbles,t.cancelable,t.detail)}catch(r){for(var i in n=document.createEvent("Event"),t)n[i]=t[i];n.initEvent(e,t.bubbles,t.cancelable)}return n};return e.prototype=window.Event.prototype,e}(),e.EventController={VIRTUALIZED_EVENTS:["tap","swipe","swiperight","swipeleft","drag","hold","release"],trigger:function(t,n,i,r){var o=new e.CustomEvent(t,{detail:n,bubbles:!!i,cancelable:!!r});n&&n.target&&n.target.dispatchEvent&&n.target.dispatchEvent(o)||window.dispatchEvent(o)},on:function(t,n,i){for(var r=i||window,o=0,a=this.VIRTUALIZED_EVENTS.length;a>o;o++)if(t==this.VIRTUALIZED_EVENTS[o]){var s=new e.Gesture(i);return s.on(t,n),s}r.addEventListener(t,n)},off:function(e,t,n){n.removeEventListener(e,t)},onGesture:function(t,n,i,r){var o=new e.Gesture(i,r);return o.on(t,n),o},offGesture:function(e,t,n){e&&e.off(t,n)},handlePopState:function(){}},e.on=function(){e.EventController.on.apply(e.EventController,arguments)},e.off=function(){e.EventController.off.apply(e.EventController,arguments)},e.trigger=e.EventController.trigger,e.onGesture=function(){return e.EventController.onGesture.apply(e.EventController.onGesture,arguments)},e.offGesture=function(){return e.EventController.offGesture.apply(e.EventController.offGesture,arguments)}}(window.ionic),function(e){e.Gesture=function(t,n){return new e.Gestures.Instance(t,n||{})},e.Gestures={},e.Gestures.defaults={stop_browser_behavior:"disable-user-behavior"},e.Gestures.HAS_POINTEREVENTS=window.navigator.pointerEnabled||window.navigator.msPointerEnabled,e.Gestures.HAS_TOUCHEVENTS="ontouchstart"in window,e.Gestures.MOBILE_REGEX=/mobile|tablet|ip(ad|hone|od)|android|silk/i,e.Gestures.NO_MOUSEEVENTS=e.Gestures.HAS_TOUCHEVENTS&&window.navigator.userAgent.match(e.Gestures.MOBILE_REGEX),e.Gestures.EVENT_TYPES={},e.Gestures.DIRECTION_DOWN="down",e.Gestures.DIRECTION_LEFT="left",e.Gestures.DIRECTION_UP="up",e.Gestures.DIRECTION_RIGHT="right",e.Gestures.POINTER_MOUSE="mouse",e.Gestures.POINTER_TOUCH="touch",e.Gestures.POINTER_PEN="pen",e.Gestures.EVENT_START="start",e.Gestures.EVENT_MOVE="move",e.Gestures.EVENT_END="end",e.Gestures.DOCUMENT=window.document,e.Gestures.plugins={},e.Gestures.READY=!1,e.Gestures.Instance=function(t,n){var i=this;return null===t?this:(function(){if(!e.Gestures.READY){for(var t in e.Gestures.event.determineEventTypes(),e.Gestures.gestures)e.Gestures.gestures.hasOwnProperty(t)&&e.Gestures.detection.register(e.Gestures.gestures[t]);e.Gestures.event.onTouch(e.Gestures.DOCUMENT,e.Gestures.EVENT_MOVE,e.Gestures.detection.detect),e.Gestures.event.onTouch(e.Gestures.DOCUMENT,e.Gestures.EVENT_END,e.Gestures.detection.detect),e.Gestures.READY=!0}}(),this.element=t,this.enabled=!0,this.options=e.Gestures.utils.extend(e.Gestures.utils.extend({},e.Gestures.defaults),n||{}),this.options.stop_browser_behavior&&e.Gestures.utils.stopDefaultBrowserBehavior(this.element,this.options.stop_browser_behavior),e.Gestures.event.onTouch(t,e.Gestures.EVENT_START,(function(t){i.enabled&&e.Gestures.detection.startDetect(i,t)})),this)},e.Gestures.Instance.prototype={on:function(e,t){for(var n=e.split(" "),i=0;i<n.length;i++)this.element.addEventListener(n[i],t,!1);return this},off:function(e,t){for(var n=e.split(" "),i=0;i<n.length;i++)this.element.removeEventListener(n[i],t,!1);return this},trigger:function(t,n){var i=e.Gestures.DOCUMENT.createEvent("Event");i.initEvent(t,!0,!0),i.gesture=n;var r=this.element;return e.Gestures.utils.hasParent(n.target,r)&&(r=n.target),r.dispatchEvent(i),this},enable:function(e){return this.enabled=e,this}};var t=null,n=!1,i=!1;e.Gestures.event={bindDom:function(e,t,n){for(var i=t.split(" "),r=0;r<i.length;r++)e.addEventListener(i[r],n,!1)},onTouch:function(r,o,a){var s=this;this.bindDom(r,e.Gestures.EVENT_TYPES[o],(function(l){var u=l.type.toLowerCase();if(!u.match(/mouse/)||!i){u.match(/touch/)||u.match(/pointerdown/)||u.match(/mouse/)&&1===l.which?n=!0:u.match(/mouse/)&&1!==l.which&&(n=!1),u.match(/touch|pointer/)&&(i=!0);var c=0;n&&(e.Gestures.HAS_POINTEREVENTS&&o!=e.Gestures.EVENT_END?c=e.Gestures.PointerEvent.updatePointer(o,l):u.match(/touch/)?c=l.touches.length:i||(c=u.match(/up/)?0:1),c>0&&o==e.Gestures.EVENT_END?o=e.Gestures.EVENT_MOVE:c||(o=e.Gestures.EVENT_END),(c||null===t)&&(t=l),a.call(e.Gestures.detection,s.collectEventData(r,o,s.getTouchList(t,o),l)),e.Gestures.HAS_POINTEREVENTS&&o==e.Gestures.EVENT_END&&(c=e.Gestures.PointerEvent.updatePointer(o,l))),c||(t=null,n=!1,i=!1,e.Gestures.PointerEvent.reset())}}))},determineEventTypes:function(){var t;t=e.Gestures.HAS_POINTEREVENTS?e.Gestures.PointerEvent.getEvents():e.Gestures.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],e.Gestures.EVENT_TYPES[e.Gestures.EVENT_START]=t[0],e.Gestures.EVENT_TYPES[e.Gestures.EVENT_MOVE]=t[1],e.Gestures.EVENT_TYPES[e.Gestures.EVENT_END]=t[2]},getTouchList:function(t){return e.Gestures.HAS_POINTEREVENTS?e.Gestures.PointerEvent.getTouchList():t.touches?t.touches:(t.identifier=1,[t])},collectEventData:function(t,n,i,r){var o=e.Gestures.POINTER_TOUCH;return(r.type.match(/mouse/)||e.Gestures.PointerEvent.matchType(e.Gestures.POINTER_MOUSE,r))&&(o=e.Gestures.POINTER_MOUSE),{center:e.Gestures.utils.getCenter(i),timeStamp:(new Date).getTime(),target:r.target,touches:i,eventType:n,pointerType:o,srcEvent:r,preventDefault:function(){this.srcEvent.preventManipulation&&this.srcEvent.preventManipulation(),this.srcEvent.preventDefault},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return e.Gestures.detection.stopDetect()}}}},e.Gestures.PointerEvent={pointers:{},getTouchList:function(){var e=this,t=[];return Object.keys(e.pointers).sort().forEach((function(n){t.push(e.pointers[n])})),t},updatePointer:function(t,n){return t==e.Gestures.EVENT_END?this.pointers={}:(n.identifier=n.pointerId,this.pointers[n.pointerId]=n),Object.keys(this.pointers).length},matchType:function(t,n){if(!n.pointerType)return!1;var i={};return i[e.Gestures.POINTER_MOUSE]=n.pointerType==n.MSPOINTER_TYPE_MOUSE||n.pointerType==e.Gestures.POINTER_MOUSE,i[e.Gestures.POINTER_TOUCH]=n.pointerType==n.MSPOINTER_TYPE_TOUCH||n.pointerType==e.Gestures.POINTER_TOUCH,i[e.Gestures.POINTER_PEN]=n.pointerType==n.MSPOINTER_TYPE_PEN||n.pointerType==e.Gestures.POINTER_PEN,i[t]},getEvents:function(){return["pointerdown MSPointerDown","pointermove MSPointerMove","pointerup pointercancel MSPointerUp MSPointerCancel"]},reset:function(){this.pointers={}}},e.Gestures.utils={extend:function(e,t,n){for(var i in t)void 0!==e[i]&&n||(e[i]=t[i]);return e},hasParent:function(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1},getCenter:function(e){for(var t=[],n=[],i=0,r=e.length;r>i;i++)t.push(e[i].pageX),n.push(e[i].pageY);return{pageX:(Math.min.apply(Math,t)+Math.max.apply(Math,t))/2,pageY:(Math.min.apply(Math,n)+Math.max.apply(Math,n))/2}},getVelocity:function(e,t,n){return{x:Math.abs(t/e)||0,y:Math.abs(n/e)||0}},getAngle:function(e,t){var n=t.pageY-e.pageY,i=t.pageX-e.pageX;return 180*Math.atan2(n,i)/Math.PI},getDirection:function(t,n){return Math.abs(t.pageX-n.pageX)>=Math.abs(t.pageY-n.pageY)?t.pageX-n.pageX>0?e.Gestures.DIRECTION_LEFT:e.Gestures.DIRECTION_RIGHT:t.pageY-n.pageY>0?e.Gestures.DIRECTION_UP:e.Gestures.DIRECTION_DOWN},getDistance:function(e,t){var n=t.pageX-e.pageX,i=t.pageY-e.pageY;return Math.sqrt(n*n+i*i)},getScale:function(e,t){return e.length>=2&&t.length>=2?this.getDistance(t[0],t[1])/this.getDistance(e[0],e[1]):1},getRotation:function(e,t){return e.length>=2&&t.length>=2?this.getAngle(t[1],t[0])-this.getAngle(e[1],e[0]):0},isVertical:function(t){return t==e.Gestures.DIRECTION_UP||t==e.Gestures.DIRECTION_DOWN},stopDefaultBrowserBehavior:function(e,t){e&&e.classList&&(e.classList.add(t),e.onselectstart=function(){return!1})}},e.Gestures.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(t,n){this.current||(this.stopped=!1,this.current={inst:t,startEvent:e.Gestures.utils.extend({},n),lastEvent:!1,name:""},this.detect(n))},detect:function(t){if(!this.current||this.stopped)return null;t=this.extendEventData(t);for(var n=this.current.inst.options,i=0,r=this.gestures.length;r>i;i++){var o=this.gestures[i];if(!this.stopped&&!1!==n[o.name]&&!1===o.handler.call(o,t,this.current.inst)){this.stopDetect();break}}return this.current&&(this.current.lastEvent=t),t.eventType==e.Gestures.EVENT_END&&!t.touches.length-1&&this.stopDetect(),t},stopDetect:function(){this.previous=e.Gestures.utils.extend({},this.current),this.current=null,this.stopped=!0},extendEventData:function(t){var n=this.current.startEvent;if(n&&(t.touches.length!=n.touches.length||t.touches===n.touches)){n.touches=[];for(var i=0,r=t.touches.length;r>i;i++)n.touches.push(e.Gestures.utils.extend({},t.touches[i]))}var o=t.timeStamp-n.timeStamp,a=t.center.pageX-n.center.pageX,s=t.center.pageY-n.center.pageY,l=e.Gestures.utils.getVelocity(o,a,s);return e.Gestures.utils.extend(t,{deltaTime:o,deltaX:a,deltaY:s,velocityX:l.x,velocityY:l.y,distance:e.Gestures.utils.getDistance(n.center,t.center),angle:e.Gestures.utils.getAngle(n.center,t.center),direction:e.Gestures.utils.getDirection(n.center,t.center),scale:e.Gestures.utils.getScale(n.touches,t.touches),rotation:e.Gestures.utils.getRotation(n.touches,t.touches),startEvent:n}),t},register:function(t){var n=t.defaults||{};return void 0===n[t.name]&&(n[t.name]=!0),e.Gestures.utils.extend(e.Gestures.defaults,n,!0),t.index=t.index||1e3,this.gestures.push(t),this.gestures.sort((function(e,t){return e.index<t.index?-1:e.index>t.index?1:0})),this.gestures}},e.Gestures.gestures=e.Gestures.gestures||{},e.Gestures.gestures.Hold={name:"hold",index:10,defaults:{hold_timeout:500,hold_threshold:9},timer:null,handler:function(t,n){switch(t.eventType){case e.Gestures.EVENT_START:clearTimeout(this.timer),e.Gestures.detection.current.name=this.name,this.timer=setTimeout((function(){"hold"==e.Gestures.detection.current.name&&(e.tap.cancelClick(),n.trigger("hold",t))}),n.options.hold_timeout);break;case e.Gestures.EVENT_MOVE:t.distance>n.options.hold_threshold&&clearTimeout(this.timer);break;case e.Gestures.EVENT_END:clearTimeout(this.timer)}}},e.Gestures.gestures.Tap={name:"tap",index:100,defaults:{tap_max_touchtime:250,tap_max_distance:10,tap_always:!0,doubletap_distance:20,doubletap_interval:300},handler:function(t,n){if(t.eventType==e.Gestures.EVENT_END&&"touchcancel"!=t.srcEvent.type){var i=e.Gestures.detection.previous,r=!1;if(t.deltaTime>n.options.tap_max_touchtime||t.distance>n.options.tap_max_distance)return;i&&"tap"==i.name&&t.timeStamp-i.lastEvent.timeStamp<n.options.doubletap_interval&&t.distance<n.options.doubletap_distance&&(n.trigger("doubletap",t),r=!0),(!r||n.options.tap_always)&&(e.Gestures.detection.current.name="tap",n.trigger("tap",t))}}},e.Gestures.gestures.Swipe={name:"swipe",index:40,defaults:{swipe_max_touches:1,swipe_velocity:.4},handler:function(t,n){if(t.eventType==e.Gestures.EVENT_END){if(n.options.swipe_max_touches>0&&t.touches.length>n.options.swipe_max_touches)return;(t.velocityX>n.options.swipe_velocity||t.velocityY>n.options.swipe_velocity)&&(n.trigger(this.name,t),n.trigger(this.name+t.direction,t))}}},e.Gestures.gestures.Drag={name:"drag",index:50,defaults:{drag_min_distance:10,correct_for_drag_min_distance:!0,drag_max_touches:1,drag_block_horizontal:!0,drag_block_vertical:!0,drag_lock_to_axis:!1,drag_lock_min_distance:25,prevent_default_directions:[]},triggered:!1,handler:function(t,n){if("touchstart"==t.srcEvent.type||"touchend"==t.srcEvent.type?this.preventedFirstMove=!1:this.preventedFirstMove||"touchmove"!=t.srcEvent.type||(n.options.prevent_default_directions.length>0&&-1!=n.options.prevent_default_directions.indexOf(t.direction)&&t.srcEvent.preventDefault(),this.preventedFirstMove=!0),e.Gestures.detection.current.name!=this.name&&this.triggered)return n.trigger(this.name+"end",t),void(this.triggered=!1);if(!(n.options.drag_max_touches>0&&t.touches.length>n.options.drag_max_touches))switch(t.eventType){case e.Gestures.EVENT_START:this.triggered=!1;break;case e.Gestures.EVENT_MOVE:if(t.distance<n.options.drag_min_distance&&e.Gestures.detection.current.name!=this.name)return;if(e.Gestures.detection.current.name!=this.name&&(e.Gestures.detection.current.name=this.name,n.options.correct_for_drag_min_distance)){var i=Math.abs(n.options.drag_min_distance/t.distance);e.Gestures.detection.current.startEvent.center.pageX+=t.deltaX*i,e.Gestures.detection.current.startEvent.center.pageY+=t.deltaY*i,t=e.Gestures.detection.extendEventData(t)}(e.Gestures.detection.current.lastEvent.drag_locked_to_axis||n.options.drag_lock_to_axis&&n.options.drag_lock_min_distance<=t.distance)&&(t.drag_locked_to_axis=!0);var r=e.Gestures.detection.current.lastEvent.direction;t.drag_locked_to_axis&&r!==t.direction&&(e.Gestures.utils.isVertical(r)?t.direction=t.deltaY<0?e.Gestures.DIRECTION_UP:e.Gestures.DIRECTION_DOWN:t.direction=t.deltaX<0?e.Gestures.DIRECTION_LEFT:e.Gestures.DIRECTION_RIGHT),this.triggered||(n.trigger(this.name+"start",t),this.triggered=!0),n.trigger(this.name,t),n.trigger(this.name+t.direction,t),
+(n.options.drag_block_vertical&&e.Gestures.utils.isVertical(t.direction)||n.options.drag_block_horizontal&&!e.Gestures.utils.isVertical(t.direction))&&t.preventDefault();break;case e.Gestures.EVENT_END:this.triggered&&n.trigger(this.name+"end",t),this.triggered=!1}}},e.Gestures.gestures.Transform={name:"transform",index:45,defaults:{transform_min_scale:.01,transform_min_rotation:1,transform_always_block:!1},triggered:!1,handler:function(t,n){if(e.Gestures.detection.current.name!=this.name&&this.triggered)return n.trigger(this.name+"end",t),void(this.triggered=!1);if(!(t.touches.length<2))switch(n.options.transform_always_block&&t.preventDefault(),t.eventType){case e.Gestures.EVENT_START:this.triggered=!1;break;case e.Gestures.EVENT_MOVE:var i=Math.abs(1-t.scale),r=Math.abs(t.rotation);if(i<n.options.transform_min_scale&&r<n.options.transform_min_rotation)return;e.Gestures.detection.current.name=this.name,this.triggered||(n.trigger(this.name+"start",t),this.triggered=!0),n.trigger(this.name,t),r>n.options.transform_min_rotation&&n.trigger("rotate",t),i>n.options.transform_min_scale&&(n.trigger("pinch",t),n.trigger("pinch"+(t.scale<1?"in":"out"),t));break;case e.Gestures.EVENT_END:this.triggered&&n.trigger(this.name+"end",t),this.triggered=!1}}},e.Gestures.gestures.Touch={name:"touch",index:-1/0,defaults:{prevent_default:!1,prevent_mouseevents:!1},handler:function(t,n){return n.options.prevent_mouseevents&&t.pointerType==e.Gestures.POINTER_MOUSE?void t.stopDetect():(n.options.prevent_default&&t.preventDefault(),void(t.eventType==e.Gestures.EVENT_START&&n.trigger(this.name,t)))}},e.Gestures.gestures.Release={name:"release",index:1/0,handler:function(t,n){t.eventType==e.Gestures.EVENT_END&&n.trigger(this.name,t)}}}(window.ionic),function(e,t,n){function i(e){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var t=new RegExp("[\\?&]"+e+"=([^&#]*)").exec(location.search);return null===t?"":decodeURIComponent(t[1].replace(/\+/g," "))}function r(){d.isWebView()?t.addEventListener("deviceready",o,!1):o(),a&&e.removeEventListener("load",r,!1)}function o(){d.isReady=!0,d.detect();for(var e=0;e<p.length;e++)p[e]();p=[],n.trigger("platformready",{target:t}),c((function(){t.body.classList.add("platform-ready")}))}var a,s="android",l="windowsphone",u="edge",c=n.requestAnimationFrame,d=n.Platform={navigator:e.navigator,isReady:!1,isFullScreen:!1,platforms:null,grade:null,ua:navigator.userAgent,ready:function(e){d.isReady?e():p.push(e)},detect:function(){d._checkPlatforms(),c((function(){for(var e=0;e<d.platforms.length;e++)t.body.classList.add("platform-"+d.platforms[e])}))},setGrade:function(e){var n=d.grade;d.grade=e,c((function(){n&&t.body.classList.remove("grade-"+n),t.body.classList.add("grade-"+e)}))},device:function(){return e.device||{}},_checkPlatforms:function(){d.platforms=[];var t="a";d.isWebView()?(d.platforms.push("webview"),e.cordova||e.PhoneGap||e.phonegap?d.platforms.push("cordova"):"object"==typeof e.forge&&d.platforms.push("trigger")):d.platforms.push("browser"),d.isIPad()&&d.platforms.push("ipad");var n=d.platform();if(n){d.platforms.push(n);var i=d.version();if(i){var r=i.toString();r.indexOf(".")>0?r=r.replace(".","_"):r+="_0",d.platforms.push(n+r.split("_")[0]),d.platforms.push(n+r),d.isAndroid()&&4.4>i?t=4>i?"c":"b":d.isWindowsPhone()&&(t="b")}}d.setGrade(t)},isWebView:function(){return!(!e.cordova&&!e.PhoneGap&&!e.phonegap&&"object"!==e.forge)},isIPad:function(){return!!/iPad/i.test(d.navigator.platform)||/iPad/i.test(d.ua)},isIOS:function(){return d.is("ios")},isAndroid:function(){return d.is(s)},isWindowsPhone:function(){return d.is(l)},isEdge:function(){return d.is(u)},isCrosswalk:function(){return d.is("crosswalk")},platform:function(){return null===h&&d.setPlatform(d.device().platform),h},setPlatform:function(e){h=null!=e&&e.length?e.toLowerCase():i("ionicplatform")?i("ionicplatform"):d.ua.indexOf("Edge")>-1?u:d.ua.indexOf("Windows Phone")>-1?l:d.ua.indexOf("Android")>0?s:/iPhone|iPad|iPod/.test(d.ua)?"ios":d.navigator.platform&&navigator.platform.toLowerCase().split(" ")[0]||""},version:function(){return null===f&&d.setVersion(d.device().version),f},setVersion:function(e){if(null==e||(e=e.split("."),e=parseFloat(e[0]+"."+(e.length>1?e[1]:0)),isNaN(e))){f=0;var t=d.platform(),n={android:/Android (\d+).(\d+)?/,ios:/OS (\d+)_(\d+)?/,windowsphone:/Windows Phone (\d+).(\d+)?/};n[t]&&(e=d.ua.match(n[t]))&&e.length>2&&(f=parseFloat(e[1]+"."+e[2]))}else f=e},is:function(e){if(e=e.toLowerCase(),d.platforms)for(var t=0;t<d.platforms.length;t++)if(d.platforms[t]===e)return!0;var n=d.platform();return n?n===e.toLowerCase():d.ua.toLowerCase().indexOf(e)>=0},exitApp:function(){d.ready((function(){navigator.app&&navigator.app.exitApp&&navigator.app.exitApp()}))},showStatusBar:function(n){d._showStatusBar=n,d.ready((function(){c((function(){d._showStatusBar?(e.StatusBar&&e.StatusBar.show(),t.body.classList.remove("status-bar-hide")):(e.StatusBar&&e.StatusBar.hide(),t.body.classList.add("status-bar-hide"))}))}))},fullScreen:function(e,i){d.isFullScreen=!1!==e,n.DomUtil.ready((function(){c((function(){d.isFullScreen?t.body.classList.add("fullscreen"):t.body.classList.remove("fullscreen")})),d.showStatusBar(!0===i)}))}},h=null,f=null,p=[];setTimeout((function(){!d.isReady&&d.isWebView()}),2e3),"complete"===t.readyState?r():(a=!0,e.addEventListener("load",r,!1))}(window,document,ionic),function(e,t){"use strict";t.CSS={},t.CSS.TRANSITION=[],t.CSS.TRANSFORM=[],t.EVENTS={},function(){var n,i=["webkitTransform","transform","-webkit-transform","webkit-transform","-moz-transform","moz-transform","MozTransform","mozTransform","msTransform"];for(n=0;n<i.length;n++)if(void 0!==e.documentElement.style[i[n]]){t.CSS.TRANSFORM=i[n];break}for(i=["webkitTransition","mozTransition","msTransition","transition"],n=0;n<i.length;n++)if(void 0!==e.documentElement.style[i[n]]){t.CSS.TRANSITION=i[n];break}t.CSS.TRANSITION=t.CSS.TRANSITION||"transition";var r=t.CSS.TRANSITION.indexOf("webkit")>-1;t.CSS.TRANSITION_DURATION=(r?"-webkit-":"")+"transition-duration",t.CSS.TRANSITIONEND=(r?"webkitTransitionEnd ":"")+"transitionend"}(),function(){var e="touchstart",n="touchmove",i="touchend",r="touchcancel";window.navigator.pointerEnabled?(e="pointerdown",n="pointermove",i="pointerup",r="pointercancel"):window.navigator.msPointerEnabled&&(e="MSPointerDown",n="MSPointerMove",i="MSPointerUp",r="MSPointerCancel"),t.EVENTS.touchstart=e,t.EVENTS.touchmove=n,t.EVENTS.touchend=i,t.EVENTS.touchcancel=r}(),"classList"in e.documentElement||!Object.defineProperty||"undefined"==typeof HTMLElement||Object.defineProperty(HTMLElement.prototype,"classList",{get:function(){function e(e){return function(){var n,i=t.className.split(/\s+/);for(n=0;n<arguments.length;n++)e(i,i.indexOf(arguments[n]),arguments[n]);t.className=i.join(" ")}}var t=this;return{add:e((function(e,t,n){~t||e.push(n)})),remove:e((function(e,t){~t&&e.splice(t,1)})),toggle:e((function(e,t,n){~t?e.splice(t,1):e.push(n)})),contains:function(e){return!!~t.className.split(/\s+/).indexOf(e)},item:function(e){return t.className.split(/\s+/)[e]||null}}}})}(document,ionic);var $,D,C,E,A,P,Y,O,I="touchmove",j=12,H=50,N={click:function(e){return"submit"==e.target.type&&0===e.detail?null:ionic.scroll.isScrolling&&ionic.tap.containsOrIsTextInput(e.target)||!e.isIonicTap&&!ionic.tap.requiresNativeClick(e.target)?(e.stopPropagation(),ionic.tap.isLabelWithTextInput(e.target)||e.preventDefault(),!1):void 0},mousedown:function(t){return t.isIonicTap||l(t)?null:C?(t.stopPropagation(),ionic.Platform.isEdge()||ionic.tap.isTextInput(t.target)&&O===t.target||f(t.target.tagName)||t.target.isContentEditable||ionic.tap.isVideo(t.target)||t.preventDefault(),!1):(A=!1,P=ionic.tap.pointerCoord(t),e("mousemove"),void ionic.activator.start(t))},mouseup:function(n){return C?(n.stopPropagation(),n.preventDefault(),!1):!l(n)&&!f(n.target.tagName)&&(c(n)||t(n),e("mousemove",!1),ionic.activator.end(),void(A=!1))},mousemove:function(t){return c(t)?(e("mousemove",!1),ionic.activator.end(),A=!0,!1):void 0},touchstart:i,touchend:r,touchcancel:a,touchmove:o,pointerdown:i,pointerup:r,pointercancel:a,pointermove:o,MSPointerDown:i,MSPointerUp:r,MSPointerCancel:a,MSPointerMove:o,focusin:function(e){C&&ionic.tap.isTextInput(u())&&ionic.tap.isTextInput(Y)&&Y!==e.target&&(Y.focus(),Y=null),ionic.scroll.isScrolling=!1},focusout:function(){u(null)}};ionic.tap={register:function(t){return $=t,e("click",!0,!0),e("mouseup"),e("mousedown"),window.navigator.pointerEnabled?(e("pointerdown"),e("pointerup"),e("pointercancel"),I="pointermove"):window.navigator.msPointerEnabled?(e("MSPointerDown"),e("MSPointerUp"),e("MSPointerCancel"),I="MSPointerMove"):(e("touchstart"),e("touchend"),e("touchcancel")),e("focusin"),e("focusout"),function(){for(var t in N)e(t,!1);$=null,D=null,C=!1,A=!1,P=null}},ignoreScrollStart:function(e){return e.defaultPrevented||/^(file|range)$/i.test(e.target.type)||"true"==(e.target.dataset?e.target.dataset.preventScroll:e.target.getAttribute("data-prevent-scroll"))||!!/^(object|embed)$/i.test(e.target.tagName)||ionic.tap.isElementTapDisabled(e.target)},isTextInput:function(e){return!!e&&("TEXTAREA"==e.tagName||"true"===e.contentEditable||"INPUT"==e.tagName&&!/^(radio|checkbox|range|file|submit|reset|color|image|button)$/i.test(e.type))},isDateInput:function(e){return!!e&&"INPUT"==e.tagName&&/^(date|time|datetime-local|month|week)$/i.test(e.type)},isVideo:function(e){return!!e&&"VIDEO"==e.tagName},isKeyboardElement:function(e){return!ionic.Platform.isIOS()||ionic.Platform.isIPad()?ionic.tap.isTextInput(e)&&!ionic.tap.isDateInput(e):ionic.tap.isTextInput(e)||!!e&&"SELECT"==e.tagName},isLabelWithTextInput:function(e){var t=d(e,!1);return!!t&&ionic.tap.isTextInput(h(t))},containsOrIsTextInput:function(e){return ionic.tap.isTextInput(e)||ionic.tap.isLabelWithTextInput(e)},cloneFocusedInput:function(e){ionic.tap.hasCheckedClone||(ionic.tap.hasCheckedClone=!0,ionic.requestAnimationFrame((function(){var t=e.querySelector(":focus");if(ionic.tap.isTextInput(t)&&!ionic.tap.isDateInput(t)){var n=t.cloneNode(!0);n.value=t.value,n.classList.add("cloned-text-input"),n.readOnly=!0,t.isContentEditable&&(n.contentEditable=t.contentEditable,n.innerHTML=t.innerHTML),t.parentElement.insertBefore(n,t),t.classList.add("previous-input-focus"),n.scrollTop=t.scrollTop}})))},hasCheckedClone:!1,removeClonedInputs:function(e){ionic.tap.hasCheckedClone=!1,ionic.requestAnimationFrame((function(){var t,n=e.querySelectorAll(".cloned-text-input"),i=e.querySelectorAll(".previous-input-focus");for(t=0;t<n.length;t++)n[t].parentElement.removeChild(n[t]);for(t=0;t<i.length;t++)i[t].classList.remove("previous-input-focus"),i[t].style.top="",ionic.keyboard.isOpen&&!ionic.keyboard.isClosing&&i[t].focus()}))},requiresNativeClick:function(e){return!(!ionic.Platform.isWindowsPhone()||"A"!=e.tagName&&"BUTTON"!=e.tagName&&!e.hasAttribute("ng-click")&&("INPUT"!=e.tagName||"button"!=e.type&&"submit"!=e.type))||!!(!e||e.disabled||/^(file|range)$/i.test(e.type)||/^(object|video)$/i.test(e.tagName)||ionic.tap.isLabelContainingFileInput(e))||ionic.tap.isElementTapDisabled(e)},isLabelContainingFileInput:function(e){var t=d(e);if("LABEL"!==t.tagName)return!1;var n=t.querySelector("input[type=file]");return!(!n||!1!==n.disabled)},isElementTapDisabled:function(e){if(e&&1===e.nodeType)for(var t=e;t;){if(t.getAttribute&&"true"==t.getAttribute("data-tap-disabled"))return!0;t=t.parentElement}return!1},setTolerance:function(e,t){j=e,H=t},cancelClick:function(){A=!0},pointerCoord:function(e){var t={x:0,y:0};if(e){var n=e.touches&&e.touches.length?e.touches:[e],i=e.changedTouches&&e.changedTouches[0]||n[0];i&&(t.x=i.clientX||i.pageX||0,t.y=i.clientY||i.pageY||0)}return t}},ionic.DomUtil.ready((function(){var e="undefined"!=typeof angular?angular:null;(!e||e&&!e.scenario)&&ionic.tap.register(document)})),function(e,t){"use strict";function n(){o={},t.requestAnimationFrame(r)}function i(){for(var e in o)o[e]&&(o[e].classList.add(l),a[e]=o[e]);o={}}function r(){if(t.transition&&t.transition.isActive)setTimeout(r,400);else for(var e in a)a[e]&&(a[e].classList.remove(l),delete a[e])}var o={},a={},s=0,l="activated";t.activator={start:function(e){var n=t.tap.pointerCoord(e).x;n>0&&30>n||t.requestAnimationFrame((function(){if(!(t.scroll&&t.scroll.isScrolling||t.tap.requiresNativeClick(e.target))){for(var n,r=e.target,a=0;6>a&&r&&1===r.nodeType;a++){if(n&&r.classList&&r.classList.contains("item")){n=r;break}if("A"==r.tagName||"BUTTON"==r.tagName||r.hasAttribute("ng-click")){n=r;break}if(r.classList&&r.classList.contains("button")){n=r;break}if("ION-CONTENT"==r.tagName||r.classList&&r.classList.contains("pane")||"BODY"==r.tagName)break;r=r.parentElement}n&&(o[s]=n,t.requestAnimationFrame(i),s=s>29?0:s+1)}}))},end:function(){setTimeout(n,200)}}}(document,ionic),function(e){var t=0;e.Utils={arrayMove:function(e,t,n){if(n>=e.length)for(var i=n-e.length;1+i--;)e.push(void 0);return e.splice(n,0,e.splice(t,1)[0]),e},proxy:function(e,t){var n=Array.prototype.slice.call(arguments,2);return function(){return e.apply(t,n.concat(Array.prototype.slice.call(arguments)))}},debounce:function(e,t,n){var i,r,o,a,s;return function(){o=this,r=arguments,a=new Date;var l=function(){var u=new Date-a;t>u?i=setTimeout(l,t-u):(i=null,n||(s=e.apply(o,r)))},u=n&&!i;return i||(i=setTimeout(l,t)),u&&(s=e.apply(o,r)),s}},throttle:function(e,t,n){var i,r,o,a=null,s=0;n||(n={});var l=function(){s=!1===n.leading?0:Date.now(),a=null,o=e.apply(i,r)};return function(){var u=Date.now();s||!1!==n.leading||(s=u);var c=t-(u-s);return i=this,r=arguments,0>=c?(clearTimeout(a),a=null,s=u,o=e.apply(i,r)):a||!1===n.trailing||(a=setTimeout(l,c)),o}},inherit:function(t,n){var i,r=this;i=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return r.apply(this,arguments)},e.extend(i,r,n);var o=function(){this.constructor=i};return o.prototype=r.prototype,i.prototype=new o,t&&e.extend(i.prototype,t),i.__super__=r.prototype,i},extend:function(e){for(var t=Array.prototype.slice.call(arguments,1),n=0;n<t.length;n++){var i=t[n];if(i)for(var r in i)e[r]=i[r]}return e},nextUid:function(){return"ion"+t++},disconnectScope:function(e){if(e&&e.$root!==e){var t=e.$parent;e.$$disconnected=!0,e.$broadcast("$ionic.disconnectScope",e),t.$$childHead===e&&(t.$$childHead=e.$$nextSibling),t.$$childTail===e&&(t.$$childTail=e.$$prevSibling),e.$$prevSibling&&(e.$$prevSibling.$$nextSibling=e.$$nextSibling),e.$$nextSibling&&(e.$$nextSibling.$$prevSibling=e.$$prevSibling),e.$$nextSibling=e.$$prevSibling=null}},reconnectScope:function(e){if(e&&e.$root!==e&&e.$$disconnected){var t=e.$parent;e.$$disconnected=!1,e.$broadcast("$ionic.reconnectScope",e),e.$$prevSibling=t.$$childTail,t.$$childHead?(t.$$childTail.$$nextSibling=e,t.$$childTail=e):t.$$childHead=t.$$childTail=e}},isScopeDisconnected:function(e){for(var t=e;t;){if(t.$$disconnected)return!0;t=t.$parent}return!1}},e.inherit=e.Utils.inherit,e.extend=e.Utils.extend,e.throttle=e.Utils.throttle,e.proxy=e.Utils.proxy,e.debounce=e.Utils.debounce}(window.ionic);var B,R,F,z,V,U=0,W=0,q=0,G=!1,Z="keyboard-open",J=ionic.debounce((function(e){return clearTimeout(V),e.target&&!e.target.readOnly&&ionic.tap.isKeyboardElement(e.target)&&(F=ionic.DomUtil.getParentWithClass(e.target,"scroll-content"))?(B=e.target,F.classList.contains("overflow-scroll")||(document.body.scrollTop=0,F.scrollTop=0,ionic.requestAnimationFrame((function(){document.body.scrollTop=0,F.scrollTop=0})),window.navigator.msPointerEnabled?document.addEventListener("MSPointerMove",_,!1):document.addEventListener("touchmove",_,!1)),(!ionic.keyboard.isOpen||ionic.keyboard.isClosing)&&(ionic.keyboard.isOpening=!0,ionic.keyboard.isClosing=!1),document.addEventListener("keydown",v,!1),void(ionic.keyboard.isOpen||S()?ionic.keyboard.isOpen&&w():y(w,!0))):(B&&(R=B),void(B=null))}),200,!0),X=ionic.debounce((function(e){clearTimeout(V),(!ionic.keyboard.isOpen||ionic.keyboard.isClosing)&&(ionic.keyboard.isOpening=!0,ionic.keyboard.isClosing=!1),ionic.keyboard.height=e.keyboardHeight,y(G?M:w,!0)}),100,!0);ionic.keyboard={isOpen:!1,isClosing:!1,isOpening:!1,height:0,isLandscape:!1,isInitialized:!1,hide:function(){S()&&cordova.plugins.Keyboard.close(),B&&B.blur()},show:function(){S()&&cordova.plugins.Keyboard.show()},disable:function(){S()?(window.removeEventListener("native.keyboardshow",X),window.removeEventListener("native.keyboardhide",m)):document.body.removeEventListener("focusout",m),document.body.removeEventListener("ionic.focusin",J),document.body.removeEventListener("focusin",J),window.removeEventListener("orientationchange",g),window.navigator.msPointerEnabled?document.removeEventListener("MSPointerDown",p):document.removeEventListener("touchstart",p),ionic.keyboard.isInitialized=!1},enable:function(){p()}},U=x(),ionic.Platform.ready((function(){k(),window.addEventListener("orientationchange",g),setTimeout(k,999),window.navigator.msPointerEnabled?document.addEventListener("MSPointerDown",p,!1):document.addEventListener("touchstart",p,!1)}));var K,Q={};ionic.viewport={orientation:function(){return window.innerWidth>window.innerHeight?90:0}},ionic.Platform.ready((function(){(function(){var e;for(e=0;e<document.head.children.length;e++)if("viewport"==document.head.children[e].name){K=document.head.children[e];break}if(K){var t,n=K.content.toLowerCase().replace(/\s+/g,"").split(",");for(e=0;e<n.length;e++)n[e]&&(t=n[e].split("="),Q[t[0]]=t.length>1?t[1]:"_");T()}})(),window.addEventListener("orientationchange",(function(){setTimeout(T,1e3)}),!1)})),function(e){"use strict";e.views.View=function(){this.initialize.apply(this,arguments)},e.views.View.inherit=e.inherit,e.extend(e.views.View.prototype,{initialize:function(){}})}(window.ionic);var ee={effect:{}};!function(e){var t=Date.now||function(){return+new Date},n={},i=1;ee.effect.Animate={requestAnimationFrame:function(){var t=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame,n=!!t;if(t&&!/requestAnimationFrame\(\)\s*\{\s*\[native code\]\s*\}/i.test(t.toString())&&(n=!1),n)return function(e,n){t(e,n)};var i={},r=1,o=null,a=+new Date;return function(e){var t=r++;return i[t]=e,null===o&&(o=setInterval((function(){var e=+new Date,t=i;for(var n in i={},t)t.hasOwnProperty(n)&&(t[n](e),a=e);e-a>2500&&(clearInterval(o),o=null)}),1e3/60)),t}}(),stop:function(e){var t=null!=n[e];return t&&(n[e]=null),t},isRunning:function(e){return null!=n[e]},start:function(e,r,o,a,s,l){var u=t(),c=u,d=0,h=0,f=i++;if(l||(l=document.body),f%20==0){var p={};for(var m in n)p[m]=!0;n=p}var g=function(i){var p=!0!==i,m=t();if(!n[f]||r&&!r(f))return n[f]=null,void(o&&o(60-h/((m-u)/1e3),f,!1));if(p)for(var v=Math.round((m-c)/(1e3/60))-1,_=0;_<Math.min(v,4);_++)g(!0),h++;a&&(d=(m-u)/a)>1&&(d=1);var y=s?s(d):d;!1!==e(y,m,p)&&1!==d||!p?p&&(c=m,ee.effect.Animate.requestAnimationFrame(g,l)):(n[f]=null,o&&o(60-h/((m-u)/1e3),f,1===d||null==a))};return n[f]=!0,ee.effect.Animate.requestAnimationFrame(g,l),f}}}(window),function(e){var t=function(){},n=function(e){return Math.pow(e-1,3)+1},i=function(e){return(e/=.5)<1?.5*Math.pow(e,3):.5*(Math.pow(e-2,3)+2)};e.views.Scroll=e.views.View.inherit({initialize:function(n){var i=this;for(var r in i.__container=n.el,i.__content=n.el.firstElementChild,setTimeout((function(){i.__container&&i.__content&&(i.__container.scrollTop=0,i.__content.scrollTop=0)})),i.options={scrollingX:!1,scrollbarX:!0,scrollingY:!0,scrollbarY:!0,startX:0,startY:0,wheelDampen:6,minScrollbarSizeX:5,minScrollbarSizeY:5,scrollbarsFade:!0,scrollbarFadeDelay:300,scrollbarResizeFadeDelay:1e3,animating:!0,animationDuration:250,decelVelocityThreshold:4,decelVelocityThresholdPaging:4,bouncing:!0,locking:!0,paging:!1,snapping:!1,zooming:!1,minZoom:.5,maxZoom:3,speedMultiplier:1,deceleration:.97,preventDefault:!1,scrollingComplete:t,penetrationDeceleration:.03,penetrationAcceleration:.08,scrollEventInterval:10,freeze:!1,getContentWidth:function(){return Math.max(i.__content.scrollWidth,i.__content.offsetWidth)},getContentHeight:function(){return Math.max(i.__content.scrollHeight,i.__content.offsetHeight+2*i.__content.offsetTop)}},n)i.options[r]=n[r];i.hintResize=e.debounce((function(){i.resize()}),1e3,!0),i.onScroll=function(){e.scroll.isScrolling?(clearTimeout(i.scrollTimer),i.scrollTimer=setTimeout(i.setScrollStop,80)):setTimeout(i.setScrollStart,50)},i.freeze=function(e){return arguments.length&&(i.options.freeze=e),i.options.freeze},i.freezeShut=i.freeze,i.setScrollStart=function(){e.scroll.isScrolling=Math.abs(e.scroll.lastTop-i.__scrollTop)>1,clearTimeout(i.scrollTimer),i.scrollTimer=setTimeout(i.setScrollStop,80)},i.setScrollStop=function(){e.scroll.isScrolling=!1,e.scroll.lastTop=i.__scrollTop},i.triggerScrollEvent=e.throttle((function(){i.onScroll(),e.trigger("scroll",{scrollTop:i.__scrollTop,scrollLeft:i.__scrollLeft,target:i.__container})}),i.options.scrollEventInterval),i.triggerScrollEndEvent=function(){e.trigger("scrollend",{scrollTop:i.__scrollTop,scrollLeft:i.__scrollLeft,target:i.__container})},i.__scrollLeft=i.options.startX,i.__scrollTop=i.options.startY,i.__callback=i.getRenderFn(),i.__initEventHandlers(),i.__createScrollbars()},run:function(){this.resize(),this.__fadeScrollbars("out",this.options.scrollbarResizeFadeDelay)},__isSingleTouch:!1,__isTracking:!1,__didDecelerationComplete:!1,__isGesturing:!1,__isDragging:!1,__isDecelerating:!1,__isAnimating:!1,__clientLeft:0,__clientTop:0,__clientWidth:0,__clientHeight:0,__contentWidth:0,__contentHeight:0,__snapWidth:100,__snapHeight:100,__refreshHeight:null,__refreshActive:!1,__refreshActivate:null,__refreshDeactivate:null,__refreshStart:null,__zoomLevel:1,__scrollLeft:0,__scrollTop:0,__maxScrollLeft:0,__maxScrollTop:0,__scheduledLeft:0,__scheduledTop:0,__scheduledZoom:0,__lastTouchLeft:null,__lastTouchTop:null,__lastTouchMove:null,__positions:null,__minDecelerationScrollLeft:null,__minDecelerationScrollTop:null,__maxDecelerationScrollLeft:null,__maxDecelerationScrollTop:null,__decelerationVelocityX:null,__decelerationVelocityY:null,__transformProperty:null,__perspectiveProperty:null,__indicatorX:null,__indicatorY:null,__scrollbarFadeTimeout:null,__didWaitForSize:null,__sizerTimeout:null,__initEventHandlers:function(){function t(e){return e.touches&&e.touches.length?e.touches:[{pageX:e.pageX,pageY:e.pageY}]}var n,i=this,r=i.__container;if(i.scrollChildIntoView=function(t){var o=r.getBoundingClientRect().bottom;n=r.offsetHeight;var a=i.isShrunkForKeyboard,s=r.parentNode.classList.contains("modal")&&window.innerWidth>=680;if(!a){if(e.Platform.isIOS()||e.Platform.isFullScreen||s){var l=t.detail.viewportHeight-o,u=Math.max(0,t.detail.keyboardHeight-l);e.requestAnimationFrame((function(){n-=u,r.style.height=n+"px",r.style.overflow="visible",i.resize()}))}i.isShrunkForKeyboard=!0}t.detail.isElementUnderKeyboard&&e.requestAnimationFrame((function(){r.scrollTop=0,i.isShrunkForKeyboard&&!a&&(o=r.getBoundingClientRect().bottom);var s=.5*n,l=(t.detail.elementBottom+t.detail.elementTop)/2-o+s;l>0&&(e.Platform.isIOS()&&e.tap.cloneFocusedInput(r,i),i.scrollBy(0,l,!0),i.onScroll())})),t.stopPropagation()},i.resetScrollView=function(){i.isShrunkForKeyboard&&(i.isShrunkForKeyboard=!1,r.style.height="",r.style.overflow=""),i.resize()},r.addEventListener("scrollChildIntoView",i.scrollChildIntoView),document.addEventListener("resetScrollView",i.resetScrollView),i.touchStart=function(n){if(i.startCoordinates=e.tap.pointerCoord(n),!e.tap.ignoreScrollStart(n)){if(i.__isDown=!0,e.tap.containsOrIsTextInput(n.target)||"SELECT"===n.target.tagName)return void(i.__hasStarted=!1);i.__isSelectable=!0,i.__enableScrollY=!0,i.__hasStarted=!0,i.doTouchStart(t(n),n.timeStamp),n.preventDefault()}},i.touchMove=function(n){if(!(i.options.freeze||!i.__isDown||!i.__isDown&&n.defaultPrevented||"TEXTAREA"===n.target.tagName&&n.target.parentElement.querySelector(":focus"))){if(!i.__hasStarted&&(e.tap.containsOrIsTextInput(n.target)||"SELECT"===n.target.tagName))return i.__hasStarted=!0,i.doTouchStart(t(n),n.timeStamp),void n.preventDefault();if(i.startCoordinates){var o=e.tap.pointerCoord(n);i.__isSelectable&&e.tap.isTextInput(n.target)&&Math.abs(i.startCoordinates.x-o.x)>20&&(i.__enableScrollY=!1,i.__isSelectable=!0),i.__enableScrollY&&Math.abs(i.startCoordinates.y-o.y)>10&&(i.__isSelectable=!1,e.tap.cloneFocusedInput(r,i))}i.doTouchMove(t(n),n.timeStamp,n.scale),i.__isDown=!0}},i.touchMoveBubble=function(e){i.__isDown&&i.options.preventDefault&&e.preventDefault()},i.touchEnd=function(t){i.__isDown&&(i.doTouchEnd(t,t.timeStamp),i.__isDown=!1,i.__hasStarted=!1,i.__isSelectable=!0,i.__enableScrollY=!0,i.__isDragging||i.__isDecelerating||i.__isAnimating||e.tap.removeClonedInputs(r,i))},i.mouseWheel=e.animationFrameThrottle((function(t){var n=e.DomUtil.getParentOrSelfWithClass(t.target,"ionic-scroll");i.options.freeze||n!==i.__container||(i.hintResize(),i.scrollBy((t.wheelDeltaX||t.deltaX||0)/i.options.wheelDampen,(-t.wheelDeltaY||t.deltaY||0)/i.options.wheelDampen),i.__fadeScrollbars("in"),clearTimeout(i.__wheelHideBarTimeout),i.__wheelHideBarTimeout=setTimeout((function(){i.__fadeScrollbars("out")}),100))})),"ontouchstart"in window)r.addEventListener("touchstart",i.touchStart,!1),i.options.preventDefault&&r.addEventListener("touchmove",i.touchMoveBubble,!1),document.addEventListener("touchmove",i.touchMove,!1),document.addEventListener("touchend",i.touchEnd,!1),document.addEventListener("touchcancel",i.touchEnd,!1),document.addEventListener("wheel",i.mouseWheel,!1);else if(window.navigator.pointerEnabled)r.addEventListener("pointerdown",i.touchStart,!1),i.options.preventDefault&&r.addEventListener("pointermove",i.touchMoveBubble,!1),document.addEventListener("pointermove",i.touchMove,!1),document.addEventListener("pointerup",i.touchEnd,!1),document.addEventListener("pointercancel",i.touchEnd,!1),document.addEventListener("wheel",i.mouseWheel,!1);else if(window.navigator.msPointerEnabled)r.addEventListener("MSPointerDown",i.touchStart,!1),i.options.preventDefault&&r.addEventListener("MSPointerMove",i.touchMoveBubble,!1),document.addEventListener("MSPointerMove",i.touchMove,!1),document.addEventListener("MSPointerUp",i.touchEnd,!1),document.addEventListener("MSPointerCancel",i.touchEnd,!1),document.addEventListener("wheel",i.mouseWheel,!1);else{var o=!1;i.mouseDown=function(n){e.tap.ignoreScrollStart(n)||"SELECT"===n.target.tagName||(i.doTouchStart(t(n),n.timeStamp),e.tap.isTextInput(n.target)||n.preventDefault(),o=!0)},i.mouseMove=function(e){i.options.freeze||!o||!o&&e.defaultPrevented||(i.doTouchMove(t(e),e.timeStamp),o=!0)},i.mouseMoveBubble=function(e){o&&i.options.preventDefault&&e.preventDefault()},i.mouseUp=function(e){o&&(i.doTouchEnd(e,e.timeStamp),o=!1)},r.addEventListener("mousedown",i.mouseDown,!1),i.options.preventDefault&&r.addEventListener("mousemove",i.mouseMoveBubble,!1),document.addEventListener("mousemove",i.mouseMove,!1),document.addEventListener("mouseup",i.mouseUp,!1),document.addEventListener("mousewheel",i.mouseWheel,!1),document.addEventListener("wheel",i.mouseWheel,!1)}},__cleanup:function(){var n=this,i=n.__container;i.removeEventListener("touchstart",n.touchStart),i.removeEventListener("touchmove",n.touchMoveBubble),document.removeEventListener("touchmove",n.touchMove),document.removeEventListener("touchend",n.touchEnd),document.removeEventListener("touchcancel",n.touchEnd),i.removeEventListener("pointerdown",n.touchStart),i.removeEventListener("pointermove",n.touchMoveBubble),document.removeEventListener("pointermove",n.touchMove),document.removeEventListener("pointerup",n.touchEnd),document.removeEventListener("pointercancel",n.touchEnd),i.removeEventListener("MSPointerDown",n.touchStart),i.removeEventListener("MSPointerMove",n.touchMoveBubble),document.removeEventListener("MSPointerMove",n.touchMove),document.removeEventListener("MSPointerUp",n.touchEnd),document.removeEventListener("MSPointerCancel",n.touchEnd),i.removeEventListener("mousedown",n.mouseDown),i.removeEventListener("mousemove",n.mouseMoveBubble),document.removeEventListener("mousemove",n.mouseMove),document.removeEventListener("mouseup",n.mouseUp),document.removeEventListener("mousewheel",n.mouseWheel),document.removeEventListener("wheel",n.mouseWheel),i.removeEventListener("scrollChildIntoView",n.scrollChildIntoView),document.removeEventListener("resetScrollView",n.resetScrollView),e.tap.removeClonedInputs(i,n),delete n.__container,delete n.__content,delete n.__indicatorX,delete n.__indicatorY,delete n.options.el,n.__callback=n.scrollChildIntoView=n.resetScrollView=t,n.mouseMove=n.mouseDown=n.mouseUp=n.mouseWheel=n.touchStart=n.touchMove=n.touchEnd=n.touchCancel=t,n.resize=n.scrollTo=n.zoomTo=n.__scrollingComplete=t,i=null},__createScrollbar:function(e){var t=document.createElement("div"),n=document.createElement("div");return n.className="scroll-bar-indicator scroll-bar-fade-out",t.className="h"==e?"scroll-bar scroll-bar-h":"scroll-bar scroll-bar-v",t.appendChild(n),t},__createScrollbars:function(){var e,t,n=this;n.options.scrollingX&&((e={el:n.__createScrollbar("h"),sizeRatio:1}).indicator=e.el.children[0],n.options.scrollbarX&&n.__container.appendChild(e.el),n.__indicatorX=e),n.options.scrollingY&&((t={el:n.__createScrollbar("v"),sizeRatio:1}).indicator=t.el.children[0],n.options.scrollbarY&&n.__container.appendChild(t.el),n.__indicatorY=t)},__resizeScrollbars:function(){var t=this;if(t.__indicatorX){var n=Math.max(Math.round(t.__clientWidth*t.__clientWidth/t.__contentWidth),20);n>t.__contentWidth&&(n=0),n!==t.__indicatorX.size&&e.requestAnimationFrame((function(){t.__indicatorX.indicator.style.width=n+"px"})),t.__indicatorX.size=n,t.__indicatorX.minScale=t.options.minScrollbarSizeX/n,t.__indicatorX.maxPos=t.__clientWidth-n,t.__indicatorX.sizeRatio=t.__maxScrollLeft?t.__indicatorX.maxPos/t.__maxScrollLeft:1}if(t.__indicatorY){var i=Math.max(Math.round(t.__clientHeight*t.__clientHeight/t.__contentHeight),20);i>t.__contentHeight&&(i=0),i!==t.__indicatorY.size&&e.requestAnimationFrame((function(){t.__indicatorY&&(t.__indicatorY.indicator.style.height=i+"px")})),t.__indicatorY.size=i,t.__indicatorY.minScale=t.options.minScrollbarSizeY/i,t.__indicatorY.maxPos=t.__clientHeight-i,t.__indicatorY.sizeRatio=t.__maxScrollTop?t.__indicatorY.maxPos/t.__maxScrollTop:1}},__repositionScrollbars:function(){var e,t,n,i,r,o,a=this,s=0,l=0;if(a.__indicatorX){a.__indicatorY&&(s=10),r=Math.round(a.__indicatorX.sizeRatio*a.__scrollLeft)||0,n=a.__scrollLeft-(a.__maxScrollLeft-s),a.__scrollLeft<0?(t=Math.max(a.__indicatorX.minScale,(a.__indicatorX.size-Math.abs(a.__scrollLeft))/a.__indicatorX.size),r=0,a.__indicatorX.indicator.style[a.__transformOriginProperty]="left center"):n>0?(t=Math.max(a.__indicatorX.minScale,(a.__indicatorX.size-n)/a.__indicatorX.size),r=a.__indicatorX.maxPos-s,a.__indicatorX.indicator.style[a.__transformOriginProperty]="right center"):(r=Math.min(a.__maxScrollLeft,Math.max(0,r)),t=1);var u="translate3d("+r+"px, 0, 0) scaleX("+t+")";a.__indicatorX.transformProp!==u&&(a.__indicatorX.indicator.style[a.__transformProperty]=u,a.__indicatorX.transformProp=u)}if(a.__indicatorY){o=Math.round(a.__indicatorY.sizeRatio*a.__scrollTop)||0,a.__indicatorX&&(l=10),i=a.__scrollTop-(a.__maxScrollTop-l),a.__scrollTop<0?(e=Math.max(a.__indicatorY.minScale,(a.__indicatorY.size-Math.abs(a.__scrollTop))/a.__indicatorY.size),o=0,"center top"!==a.__indicatorY.originProp&&(a.__indicatorY.indicator.style[a.__transformOriginProperty]="center top",a.__indicatorY.originProp="center top")):i>0?(e=Math.max(a.__indicatorY.minScale,(a.__indicatorY.size-i)/a.__indicatorY.size),o=a.__indicatorY.maxPos-l,"center bottom"!==a.__indicatorY.originProp&&(a.__indicatorY.indicator.style[a.__transformOriginProperty]="center bottom",a.__indicatorY.originProp="center bottom")):(o=Math.min(a.__maxScrollTop,Math.max(0,o)),e=1);var c="translate3d(0,"+o+"px, 0) scaleY("+e+")";a.__indicatorY.transformProp!==c&&(a.__indicatorY.indicator.style[a.__transformProperty]=c,a.__indicatorY.transformProp=c)}},__fadeScrollbars:function(e,t){var n=this;if(n.options.scrollbarsFade){var i="scroll-bar-fade-out";!0===n.options.scrollbarsFade&&(clearTimeout(n.__scrollbarFadeTimeout),"in"==e?(n.__indicatorX&&n.__indicatorX.indicator.classList.remove(i),n.__indicatorY&&n.__indicatorY.indicator.classList.remove(i)):n.__scrollbarFadeTimeout=setTimeout((function(){n.__indicatorX&&n.__indicatorX.indicator.classList.add(i),n.__indicatorY&&n.__indicatorY.indicator.classList.add(i)}),t||n.options.scrollbarFadeDelay))}},__scrollingComplete:function(){this.options.scrollingComplete(),e.tap.removeClonedInputs(this.__container,this),this.__fadeScrollbars("out")},resize:function(e){var t=this;t.__container&&t.options&&t.setDimensions(t.__container.clientWidth,t.__container.clientHeight,t.options.getContentWidth(),t.options.getContentHeight(),e)},getRenderFn:function(){var e,t=this,n=t.__content,i=document.documentElement.style;"MozAppearance"in i?e="gecko":"WebkitAppearance"in i?e="webkit":"string"==typeof navigator.cpuClass&&(e="trident");var r,o={trident:"ms",gecko:"Moz",webkit:"Webkit",presto:"O"}[e],a=document.createElement("div"),s=o+"Perspective",l=o+"Transform",u=o+"TransformOrigin";return t.__perspectiveProperty=l,t.__transformProperty=l,t.__transformOriginProperty=u,a.style[s]!==r?function(e,i,r,o){var a="translate3d("+-e+"px,"+-i+"px,0) scale("+r+")";a!==t.contentTransform&&(n.style[l]=a,t.contentTransform=a),t.__repositionScrollbars(),o||t.triggerScrollEvent()}:a.style[l]!==r?function(e,i,r,o){n.style[l]="translate("+-e+"px,"+-i+"px) scale("+r+")",t.__repositionScrollbars(),o||t.triggerScrollEvent()}:function(e,i,r,o){n.style.marginLeft=e?-e/r+"px":"",n.style.marginTop=i?-i/r+"px":"",n.style.zoom=r||"",t.__repositionScrollbars(),o||t.triggerScrollEvent()}},setDimensions:function(e,t,n,i,r){var o=this;(e||t||n||i)&&(e===+e&&(o.__clientWidth=e),t===+t&&(o.__clientHeight=t),n===+n&&(o.__contentWidth=n),i===+i&&(o.__contentHeight=i),o.__computeScrollMax(),o.__resizeScrollbars(),r||o.scrollTo(o.__scrollLeft,o.__scrollTop,!0,null,!0))},setPosition:function(e,t){this.__clientLeft=e||0,this.__clientTop=t||0},setSnapSize:function(e,t){this.__snapWidth=e,this.__snapHeight=t},activatePullToRefresh:function(t,n){var i=this;i.__refreshHeight=t,i.__refreshActivate=function(){e.requestAnimationFrame(n.activate)},i.__refreshDeactivate=function(){e.requestAnimationFrame(n.deactivate)},i.__refreshStart=function(){e.requestAnimationFrame(n.start)},i.__refreshShow=function(){e.requestAnimationFrame(n.show)},i.__refreshHide=function(){e.requestAnimationFrame(n.hide)},i.__refreshTail=function(){e.requestAnimationFrame(n.tail)},i.__refreshTailTime=100,i.__minSpinTime=600},triggerPullToRefresh:function(){this.__publish(this.__scrollLeft,-this.__refreshHeight,this.__zoomLevel,!0);var e=new Date;this.refreshStartTime=e.getTime(),this.__refreshStart&&this.__refreshStart()},finishPullToRefresh:function(){var e=this,t=new Date,n=0;e.refreshStartTime+e.__minSpinTime>t.getTime()&&(n=e.refreshStartTime+e.__minSpinTime-t.getTime()),setTimeout((function(){e.__refreshTail&&e.__refreshTail(),setTimeout((function(){e.__refreshActive=!1,e.__refreshDeactivate&&e.__refreshDeactivate(),e.__refreshHide&&e.__refreshHide(),e.scrollTo(e.__scrollLeft,e.__scrollTop,!0)}),e.__refreshTailTime)}),n)},getValues:function(){return{left:this.__scrollLeft,top:this.__scrollTop,zoom:this.__zoomLevel}},getScrollMax:function(){return{left:this.__maxScrollLeft,top:this.__maxScrollTop}},zoomTo:function(e,t,n,i){var r=this;if(!r.options.zooming)throw new Error("Zooming is not enabled!");r.__isDecelerating&&(ee.effect.Animate.stop(r.__isDecelerating),r.__isDecelerating=!1);var o=r.__zoomLevel;null==n&&(n=r.__clientWidth/2),null==i&&(i=r.__clientHeight/2),e=Math.max(Math.min(e,r.options.maxZoom),r.options.minZoom),r.__computeScrollMax(e);var a=(n+r.__scrollLeft)*e/o-n,s=(i+r.__scrollTop)*e/o-i;a>r.__maxScrollLeft?a=r.__maxScrollLeft:0>a&&(a=0),s>r.__maxScrollTop?s=r.__maxScrollTop:0>s&&(s=0),r.__publish(a,s,e,t)},zoomBy:function(e,t,n,i){this.zoomTo(this.__zoomLevel*e,t,n,i)},scrollTo:function(e,t,n,i,r){var o=this;if(o.__isDecelerating&&(ee.effect.Animate.stop(o.__isDecelerating),o.__isDecelerating=!1),null!=i&&i!==o.__zoomLevel){if(!o.options.zooming)throw new Error("Zooming is not enabled!");e*=i,t*=i,o.__computeScrollMax(i)}else i=o.__zoomLevel;o.options.scrollingX?o.options.paging?e=Math.round(e/o.__clientWidth)*o.__clientWidth:o.options.snapping&&(e=Math.round(e/o.__snapWidth)*o.__snapWidth):e=o.__scrollLeft,o.options.scrollingY?o.options.paging?t=Math.round(t/o.__clientHeight)*o.__clientHeight:o.options.snapping&&(t=Math.round(t/o.__snapHeight)*o.__snapHeight):t=o.__scrollTop,e=Math.max(Math.min(o.__maxScrollLeft,e),0),t=Math.max(Math.min(o.__maxScrollTop,t),0),e===o.__scrollLeft&&t===o.__scrollTop&&(n=!1),o.__publish(e,t,i,n,r)},scrollBy:function(e,t,n){var i=this,r=i.__isAnimating?i.__scheduledLeft:i.__scrollLeft,o=i.__isAnimating?i.__scheduledTop:i.__scrollTop;i.scrollTo(r+(e||0),o+(t||0),n)},doMouseZoom:function(e,t,n,i){var r=e>0?.97:1.03;return this.zoomTo(this.__zoomLevel*r,!1,n-this.__clientLeft,i-this.__clientTop)},doTouchStart:function(e,t){var n=this;n.__decStopped=!(!n.__isDecelerating&&!n.__isAnimating),n.hintResize(),t instanceof Date&&(t=t.valueOf()),"number"!=typeof t&&(t=Date.now()),n.__interruptedAnimation=!0,n.__isDecelerating&&(ee.effect.Animate.stop(n.__isDecelerating),n.__isDecelerating=!1,n.__interruptedAnimation=!0),n.__isAnimating&&(ee.effect.Animate.stop(n.__isAnimating),n.__isAnimating=!1,n.__interruptedAnimation=!0);var i,r,o=1===e.length;o?(i=e[0].pageX,r=e[0].pageY):(i=Math.abs(e[0].pageX+e[1].pageX)/2,r=Math.abs(e[0].pageY+e[1].pageY)/2),n.__initialTouchLeft=i,n.__initialTouchTop=r,n.__initialTouches=e,n.__zoomLevelStart=n.__zoomLevel,n.__lastTouchLeft=i,n.__lastTouchTop=r,n.__lastTouchMove=t,n.__lastScale=1,n.__enableScrollX=!o&&n.options.scrollingX,n.__enableScrollY=!o&&n.options.scrollingY,n.__isTracking=!0,n.__didDecelerationComplete=!1,n.__isDragging=!o,n.__isSingleTouch=o,n.__positions=[]},doTouchMove:function(e,t,n){t instanceof Date&&(t=t.valueOf()),"number"!=typeof t&&(t=Date.now());var i=this;if(i.__isTracking){var r,o;2===e.length?(r=Math.abs(e[0].pageX+e[1].pageX)/2,o=Math.abs(e[0].pageY+e[1].pageY)/2,!n&&i.options.zooming&&(n=i.__getScale(i.__initialTouches,e))):(r=e[0].pageX,o=e[0].pageY);var a=i.__positions;if(i.__isDragging){i.__decStopped=!1;var s=r-i.__lastTouchLeft,l=o-i.__lastTouchTop,u=i.__scrollLeft,c=i.__scrollTop,d=i.__zoomLevel;if(null!=n&&i.options.zooming){var h=d;if(d=d/i.__lastScale*n,h!==(d=Math.max(Math.min(d,i.options.maxZoom),i.options.minZoom))){var f=r-i.__clientLeft,p=o-i.__clientTop;u=(f+u)*d/h-f,c=(p+c)*d/h-p,i.__computeScrollMax(d)}}if(i.__enableScrollX){u-=s*i.options.speedMultiplier;var m=i.__maxScrollLeft;(u>m||0>u)&&(i.options.bouncing?u+=s/2*i.options.speedMultiplier:u=u>m?m:0)}if(i.__enableScrollY){c-=l*i.options.speedMultiplier;var g=i.__maxScrollTop;c>g||0>c?i.options.bouncing||i.__refreshHeight&&0>c?(c+=l/2*i.options.speedMultiplier,i.__enableScrollX||null==i.__refreshHeight||(0>c?(i.__refreshHidden=!1,i.__refreshShow()):(i.__refreshHide(),i.__refreshHidden=!0),!i.__refreshActive&&c<=-i.__refreshHeight?(i.__refreshActive=!0,i.__refreshActivate&&i.__refreshActivate()):i.__refreshActive&&c>-i.__refreshHeight&&(i.__refreshActive=!1,i.__refreshDeactivate&&i.__refreshDeactivate()))):c=c>g?g:0:i.__refreshHeight&&!i.__refreshHidden&&(i.__refreshHide(),i.__refreshHidden=!0)}a.length>60&&a.splice(0,30),a.push(u,c,t),i.__publish(u,c,d)}else{var v=i.options.locking?3:0,_=Math.abs(r-i.__initialTouchLeft),y=Math.abs(o-i.__initialTouchTop);i.__enableScrollX=i.options.scrollingX&&_>=v,i.__enableScrollY=i.options.scrollingY&&y>=v,a.push(i.__scrollLeft,i.__scrollTop,t),i.__isDragging=(i.__enableScrollX||i.__enableScrollY)&&(_>=5||y>=5),i.__isDragging&&(i.__interruptedAnimation=!1,i.__fadeScrollbars("in"))}i.__lastTouchLeft=r,i.__lastTouchTop=o,i.__lastTouchMove=t,i.__lastScale=n}},doTouchEnd:function(t,n){n instanceof Date&&(n=n.valueOf()),"number"!=typeof n&&(n=Date.now());var i=this;if(i.__isTracking){if(i.__isTracking=!1,i.__isDragging)if(i.__isDragging=!1,i.__isSingleTouch&&i.options.animating&&n-i.__lastTouchMove<=100){for(var r=i.__positions,o=r.length-1,a=o,s=o;s>0&&r[s]>i.__lastTouchMove-100;s-=3)a=s;if(a!==o){var l=r[o]-r[a],u=i.__scrollLeft-r[a-2],c=i.__scrollTop-r[a-1];i.__decelerationVelocityX=u/l*(1e3/60),i.__decelerationVelocityY=c/l*(1e3/60);var d=i.options.paging||i.options.snapping?i.options.decelVelocityThresholdPaging:i.options.decelVelocityThreshold;(Math.abs(i.__decelerationVelocityX)>d||Math.abs(i.__decelerationVelocityY)>d)&&(i.__refreshActive||i.__startDeceleration(n))}else i.__scrollingComplete()}else n-i.__lastTouchMove>100&&i.__scrollingComplete();else i.__decStopped&&(t.isTapHandled=!0,i.__decStopped=!1);if(!i.__isDecelerating)if(i.__refreshActive&&i.__refreshStart){i.__publish(i.__scrollLeft,-i.__refreshHeight,i.__zoomLevel,!0);var h=new Date;i.refreshStartTime=h.getTime(),i.__refreshStart&&i.__refreshStart(),e.Platform.isAndroid()||i.__startDeceleration()}else(i.__interruptedAnimation||i.__isDragging)&&i.__scrollingComplete(),i.scrollTo(i.__scrollLeft,i.__scrollTop,!0,i.__zoomLevel),i.__refreshActive&&(i.__refreshActive=!1,i.__refreshDeactivate&&i.__refreshDeactivate());i.__positions.length=0}},__publish:function(e,t,r,o,a){var s=this,l=s.__isAnimating;if(l&&(ee.effect.Animate.stop(l),s.__isAnimating=!1),o&&s.options.animating){s.__scheduledLeft=e,s.__scheduledTop=t,s.__scheduledZoom=r;var u=s.__scrollLeft,c=s.__scrollTop,d=s.__zoomLevel,h=e-u,f=t-c,p=r-d;s.__isAnimating=ee.effect.Animate.start((function(e,t,n){n&&(s.__scrollLeft=u+h*e,s.__scrollTop=c+f*e,s.__zoomLevel=d+p*e,s.__callback&&s.__callback(s.__scrollLeft,s.__scrollTop,s.__zoomLevel,a))}),(function(e){return s.__isAnimating===e}),(function(e,t,n){t===s.__isAnimating&&(s.__isAnimating=!1),(s.__didDecelerationComplete||n)&&s.__scrollingComplete(),s.options.zooming&&s.__computeScrollMax()}),s.options.animationDuration,l?n:i)}else s.__scheduledLeft=s.__scrollLeft=e,s.__scheduledTop=s.__scrollTop=t,s.__scheduledZoom=s.__zoomLevel=r,s.__callback&&s.__callback(e,t,r,a),s.options.zooming&&s.__computeScrollMax()},__computeScrollMax:function(e){var t=this;null==e&&(e=t.__zoomLevel),t.__maxScrollLeft=Math.max(t.__contentWidth*e-t.__clientWidth,0),t.__maxScrollTop=Math.max(t.__contentHeight*e-t.__clientHeight,0),t.__didWaitForSize||t.__maxScrollLeft||t.__maxScrollTop||(t.__didWaitForSize=!0,t.__waitForSize())},__waitForSize:function(){var e=this;clearTimeout(e.__sizerTimeout);var t=function(){e.resize(!0)};t(),e.__sizerTimeout=setTimeout(t,500)},__startDeceleration:function(){var e=this;if(e.options.paging){var t=Math.max(Math.min(e.__scrollLeft,e.__maxScrollLeft),0),n=Math.max(Math.min(e.__scrollTop,e.__maxScrollTop),0),i=e.__clientWidth,r=e.__clientHeight;e.__minDecelerationScrollLeft=Math.floor(t/i)*i,e.__minDecelerationScrollTop=Math.floor(n/r)*r,e.__maxDecelerationScrollLeft=Math.ceil(t/i)*i,e.__maxDecelerationScrollTop=Math.ceil(n/r)*r}else e.__minDecelerationScrollLeft=0,e.__minDecelerationScrollTop=0,e.__maxDecelerationScrollLeft=e.__maxScrollLeft,e.__maxDecelerationScrollTop=e.__maxScrollTop,e.__refreshActive&&(e.__minDecelerationScrollTop=-1*e.__refreshHeight);e.__minVelocityToKeepDecelerating=e.options.snapping?4:.1,e.__isDecelerating=ee.effect.Animate.start((function(t,n,i){e.__stepThroughDeceleration(i)}),(function(){var t=Math.abs(e.__decelerationVelocityX)>=e.__minVelocityToKeepDecelerating||Math.abs(e.__decelerationVelocityY)>=e.__minVelocityToKeepDecelerating;return t||(e.__didDecelerationComplete=!0,e.options.bouncing&&!e.__refreshActive&&e.scrollTo(Math.min(Math.max(e.__scrollLeft,0),e.__maxScrollLeft),Math.min(Math.max(e.__scrollTop,0),e.__maxScrollTop),e.__refreshActive)),t}),(function(){e.__isDecelerating=!1,e.__didDecelerationComplete&&e.__scrollingComplete(),e.options.paging&&e.scrollTo(e.__scrollLeft,e.__scrollTop,e.options.snapping)}))},__stepThroughDeceleration:function(e){var t=this,n=t.__scrollLeft+t.__decelerationVelocityX,i=t.__scrollTop+t.__decelerationVelocityY;if(!t.options.bouncing){var r=Math.max(Math.min(t.__maxDecelerationScrollLeft,n),t.__minDecelerationScrollLeft);r!==n&&(n=r,t.__decelerationVelocityX=0);var o=Math.max(Math.min(t.__maxDecelerationScrollTop,i),t.__minDecelerationScrollTop);o!==i&&(i=o,t.__decelerationVelocityY=0)}if(e?t.__publish(n,i,t.__zoomLevel):(t.__scrollLeft=n,t.__scrollTop=i),!t.options.paging){var a=t.options.deceleration;t.__decelerationVelocityX*=a,t.__decelerationVelocityY*=a}if(t.options.bouncing){var s=0,l=0,u=t.options.penetrationDeceleration,c=t.options.penetrationAcceleration;if(n<t.__minDecelerationScrollLeft?s=t.__minDecelerationScrollLeft-n:n>t.__maxDecelerationScrollLeft&&(s=t.__maxDecelerationScrollLeft-n),i<t.__minDecelerationScrollTop?l=t.__minDecelerationScrollTop-i:i>t.__maxDecelerationScrollTop&&(l=t.__maxDecelerationScrollTop-i),0!==s){var d=s*t.__decelerationVelocityX<=t.__minDecelerationScrollLeft;d&&(t.__decelerationVelocityX+=s*u);var h=Math.abs(t.__decelerationVelocityX)<=t.__minVelocityToKeepDecelerating;(!d||h)&&(t.__decelerationVelocityX=s*c)}if(0!==l){var f=l*t.__decelerationVelocityY<=t.__minDecelerationScrollTop;f&&(t.__decelerationVelocityY+=l*u);var p=Math.abs(t.__decelerationVelocityY)<=t.__minVelocityToKeepDecelerating;(!f||p)&&(t.__decelerationVelocityY=l*c)}}},__getDistance:function(e,t){var n=t.pageX-e.pageX,i=t.pageY-e.pageY;return Math.sqrt(n*n+i*i)},__getScale:function(e,t){return e.length>=2&&t.length>=2?this.__getDistance(t[0],t[1])/this.__getDistance(e[0],e[1]):1}}),e.scroll={isScrolling:!1,lastTop:0}}(ionic),function(e){var t=function(){};e.views.ScrollNative=e.views.View.inherit({initialize:function(t){var n=this;for(var i in n.__container=n.el=t.el,n.__content=t.el.firstElementChild,n.__frozen=!1,n.isNative=!0,n.__scrollTop=n.el.scrollTop,n.__scrollLeft=n.el.scrollLeft,n.__clientHeight=n.__content.clientHeight,n.__clientWidth=n.__content.clientWidth,n.__maxScrollTop=Math.max(n.__contentHeight-n.__clientHeight,0),n.__maxScrollLeft=Math.max(n.__contentWidth-n.__clientWidth,0),(t.startY>=0||t.startX>=0)&&e.requestAnimationFrame((function(){n.__originalContainerHeight=n.el.getBoundingClientRect().height,n.el.scrollTop=t.startY||0,n.el.scrollLeft=t.startX||0,n.__scrollTop=n.el.scrollTop,n.__scrollLeft=n.el.scrollLeft})),n.options={freeze:!1,getContentWidth:function(){return Math.max(n.__content.scrollWidth,n.__content.offsetWidth)},getContentHeight:function(){return Math.max(n.__content.scrollHeight,n.__content.offsetHeight+2*n.__content.offsetTop)}},t)n.options[i]=t[i];n.onScroll=function(){e.scroll.isScrolling||(e.scroll.isScrolling=!0),clearTimeout(n.scrollTimer),n.scrollTimer=setTimeout((function(){e.scroll.isScrolling=!1}),80)},n.freeze=function(e){n.__frozen=e},n.freezeShut=function(e){n.__frozenShut=e},n.__initEventHandlers()},__callback:function(){},zoomTo:function(){},zoomBy:function(){},activatePullToRefresh:function(){},resize:function(e){var t=this;t.__container&&t.options&&t.setDimensions(t.__container.clientWidth,t.__container.clientHeight,t.options.getContentWidth(),t.options.getContentHeight(),e)},run:function(){this.resize()},getValues:function(){var e=this;return e.update(),{left:e.__scrollLeft,top:e.__scrollTop,zoom:1}},update:function(){var e=this;e.__scrollLeft=e.el.scrollLeft,e.__scrollTop=e.el.scrollTop},setDimensions:function(e,t,n,i){var r=this;(e||t||n||i)&&(e===+e&&(r.__clientWidth=e),t===+t&&(r.__clientHeight=t),n===+n&&(r.__contentWidth=n),i===+i&&(r.__contentHeight=i),r.__computeScrollMax())},getScrollMax:function(){return{left:this.__maxScrollLeft,top:this.__maxScrollTop}},scrollBy:function(e,t,n){var i=this;i.update();var r=i.__isAnimating?i.__scheduledLeft:i.__scrollLeft,o=i.__isAnimating?i.__scheduledTop:i.__scrollTop;i.scrollTo(r+(e||0),o+(t||0),n)},scrollTo:function(t,n,i){var r=this;if(!i)return r.el.scrollTop=n,r.el.scrollLeft=t,void r.resize();var o=r.el.style.overflowX,a=r.el.style.overflowY;clearTimeout(r.__scrollToCleanupTimeout),r.__scrollToCleanupTimeout=setTimeout((function(){r.el.style.overflowX=o,r.el.style.overflowY=a}),500),r.el.style.overflowY="hidden",r.el.style.overflowX="hidden",function(t,n){var i=Date.now(),s=r.el.scrollTop,l=r.el.scrollLeft;s===t&&l===n?(r.el.style.overflowX=o,r.el.style.overflowY=a,r.resize()):e.requestAnimationFrame((function u(){var c=Date.now(),d=Math.min(1,(c-i)/250),h=function(e){return--e*e*e+1}(d);s!=t&&(r.el.scrollTop=parseInt(h*(t-s)+s,10)),l!=n&&(r.el.scrollLeft=parseInt(h*(n-l)+l,10)),1>d?e.requestAnimationFrame(u):(e.tap.removeClonedInputs(r.__container,r),r.el.style.overflowX=o,r.el.style.overflowY=a,r.resize())}))}(n,t)},__waitForSize:function(){var e=this;clearTimeout(e.__sizerTimeout);var t=function(){e.resize(!0)};t(),e.__sizerTimeout=setTimeout(t,500)},__computeScrollMax:function(){var e=this;e.__maxScrollLeft=Math.max(e.__contentWidth-e.__clientWidth,0),e.__maxScrollTop=Math.max(e.__contentHeight-e.__clientHeight,0),e.__didWaitForSize||e.__maxScrollLeft||e.__maxScrollTop||(e.__didWaitForSize=!0,e.__waitForSize())},__initEventHandlers:function(){var t,n,i=this,r=i.__container;i.scrollChildIntoView=function(o){var a=r.getBoundingClientRect();i.__originalContainerHeight||(i.__originalContainerHeight=a.height),t=i.__originalContainerHeight;var s=i.isShrunkForKeyboard,l=r.parentNode.classList.contains("modal"),u=r.parentNode.classList.contains("popover"),c=l&&window.innerWidth>=680,d=n&&n!==o.detail.keyboardHeight;(!s||d)&&(!u&&(e.Platform.isIOS()||e.Platform.isFullScreen||c)&&e.requestAnimationFrame((function(){t=Math.max(0,Math.min(i.__originalContainerHeight,i.__originalContainerHeight-(o.detail.keyboardHeight-43))),r.style.height=t+"px",r.classList.add("keyboard-up"),i.resize()})),i.isShrunkForKeyboard=!0),n=o.detail.keyboardHeight,o.detail.isElementUnderKeyboard&&e.requestAnimationFrame((function(){var t=e.DomUtil.getOffsetTop(o.detail.target);setTimeout((function(){e.Platform.isIOS()&&e.tap.cloneFocusedInput(r,i),i.scrollTo(0,t-(a.top+100),!0),i.onScroll()}),32)})),o.stopPropagation()},i.resetScrollView=function(){i.isShrunkForKeyboard&&(i.isShrunkForKeyboard=!1,r.style.height="",i.__originalContainerHeight=r.getBoundingClientRect().height,e.Platform.isIOS()&&e.requestAnimationFrame((function(){r.classList.remove("keyboard-up")}))),i.resize()},i.handleTouchMove=function(e){return i.__frozenShut?(e.preventDefault(),e.stopPropagation(),!1):!i.__frozen||(e.preventDefault(),!1)},r.addEventListener("scroll",i.onScroll),r.addEventListener("scrollChildIntoView",i.scrollChildIntoView),r.addEventListener(e.EVENTS.touchstart,i.handleTouchMove),r.addEventListener(e.EVENTS.touchmove,i.handleTouchMove),document.addEventListener("resetScrollView",i.resetScrollView)},__cleanup:function(){var n=this,i=n.__container;i.removeEventListener("scroll",n.onScroll),i.removeEventListener("scrollChildIntoView",n.scrollChildIntoView),i.removeEventListener(e.EVENTS.touchstart,n.handleTouchMove),i.removeEventListener(e.EVENTS.touchmove,n.handleTouchMove),document.removeEventListener("resetScrollView",n.resetScrollView),e.tap.removeClonedInputs(i,n),delete n.__container,delete n.__content,delete n.__indicatorX,delete n.__indicatorY,delete n.options.el,n.resize=n.scrollTo=n.onScroll=n.resetScrollView=t,n.scrollChildIntoView=t,i=null}})}(ionic),function(e){"use strict";var t="item",n="item-content",i="item-reordering",r=function(){};r.prototype={start:function(){},drag:function(){},end:function(){},isSameItem:function(){return!1}};var o=function(e){this.dragThresholdX=e.dragThresholdX||10,this.el=e.el,this.item=e.item,this.canSwipe=e.canSwipe};(o.prototype=new r).start=function(i){var r,o,a,s;this.canSwipe()&&(r=i.target.classList.contains(n)?i.target:i.target.classList.contains(t)?i.target.querySelector("."+n):e.DomUtil.getParentWithClass(i.target,n))&&(r.classList.remove("item-sliding"),a=parseFloat(r.style[e.CSS.TRANSFORM].replace("translate3d(","").split(",")[0])||0,(o=r.parentNode.querySelector(".item-options"))&&(o.classList.remove("invisible"),s=o.offsetWidth,this._currentDrag={buttons:o,buttonsWidth:s,content:r,startOffsetX:a}))},o.prototype.isSameItem=function(e){return!(!e._lastDrag||!this._currentDrag)&&this._currentDrag.content==e._lastDrag.content},o.prototype.clean=function(t){function n(){i.buttons&&i.buttons.classList.add("invisible")}var i=this._lastDrag;i&&i.content&&(i.content.style[e.CSS.TRANSITION]="",i.content.style[e.CSS.TRANSFORM]="",t?(i.content.style[e.CSS.TRANSITION]="none",n(),e.requestAnimationFrame((function(){i.content.style[e.CSS.TRANSITION]=""}))):e.requestAnimationFrame((function(){setTimeout(n,250)})))},o.prototype.drag=e.animationFrameThrottle((function(t){var n;if(this._currentDrag&&(!this._isDragging&&(Math.abs(t.gesture.deltaX)>this.dragThresholdX||Math.abs(this._currentDrag.startOffsetX)>0)&&(this._isDragging=!0),this._isDragging)){n=this._currentDrag.buttonsWidth;var i=Math.min(0,this._currentDrag.startOffsetX+t.gesture.deltaX);-n>i&&(i=Math.min(-n,-n+.4*(t.gesture.deltaX+n))),this._currentDrag.content.$$ionicOptionsOpen=0!==i,this._currentDrag.content.style[e.CSS.TRANSFORM]="translate3d("+i+"px, 0, 0)",this._currentDrag.content.style[e.CSS.TRANSITION]="none"}})),o.prototype.end=function(t,n){var i=this;if(i._currentDrag){var r=-i._currentDrag.buttonsWidth;t.gesture.deltaX>-i._currentDrag.buttonsWidth/2&&("left"==t.gesture.direction&&Math.abs(t.gesture.velocityX)<.3?r=0:"right"==t.gesture.direction&&(r=0)),e.requestAnimationFrame((function(){if(0===r){i._currentDrag.content.style[e.CSS.TRANSFORM]="";var t=i._currentDrag.buttons;setTimeout((function(){t&&t.classList.add("invisible")}),250)}else i._currentDrag.content.style[e.CSS.TRANSFORM]="translate3d("+r+"px,0,0)";i._currentDrag.content.style[e.CSS.TRANSITION]="",i._lastDrag||(i._lastDrag={}),e.extend(i._lastDrag,i._currentDrag),i._currentDrag&&(i._currentDrag.buttons=null,i._currentDrag.content=null),i._currentDrag=null,n&&n()}))}else n&&n()};var a=function(e){var t=this;if(t.dragThresholdY=e.dragThresholdY||0,t.onReorder=e.onReorder,t.listEl=e.listEl,t.el=t.item=e.el,t.scrollEl=e.scrollEl,t.scrollView=e.scrollView,t.listElTrueTop=0,t.listEl.offsetParent){var n=t.listEl;do{t.listElTrueTop+=n.offsetTop,n=n.offsetParent}while(n)}};(a.prototype=new r)._moveElement=function(t){var n=t.gesture.center.pageY+this.scrollView.getValues().top-this._currentDrag.elementHeight/2-this.listElTrueTop;this.el.style[e.CSS.TRANSFORM]="translate3d(0, "+n+"px, 0)"},a.prototype.deregister=function(){this.listEl=this.el=this.scrollEl=this.scrollView=null},a.prototype.start=function(t){var n=e.DomUtil.getChildIndex(this.el,this.el.nodeName.toLowerCase()),r=this.el.scrollHeight,o=this.el.cloneNode(!0);o.classList.add("item-placeholder"),this.el.parentNode.insertBefore(o,this.el),this.el.classList.add(i),this._currentDrag={elementHeight:r,startIndex:n,placeholder:o,scrollHeight:scroll,list:o.parentNode},this._moveElement(t)},a.prototype.drag=e.animationFrameThrottle((function(t){var n=this;if(this._currentDrag){var i=0,r=t.gesture.center.pageY,o=this.listElTrueTop;if(this.scrollView){var a=this.scrollView.__container;i=this.scrollView.getValues().top;var s=a.offsetTop,l=s-r+this._currentDrag.elementHeight/2,u=r+this._currentDrag.elementHeight/2-s-a.offsetHeight;t.gesture.deltaY<0&&l>0&&i>0&&(this.scrollView.scrollBy(null,-l),e.requestAnimationFrame((function(){n.drag(t)}))),t.gesture.deltaY>0&&u>0&&i<this.scrollView.getScrollMax().top&&(this.scrollView.scrollBy(null,u),e.requestAnimationFrame((function(){n.drag(t)})))}!this._isDragging&&Math.abs(t.gesture.deltaY)>this.dragThresholdY&&(this._isDragging=!0),this._isDragging&&(this._moveElement(t),this._currentDrag.currentY=i+r-o)}})),a.prototype._getReorderIndex=function(){for(var e,t=this,n=Array.prototype.slice.call(t._currentDrag.placeholder.parentNode.children).filter((function(e){return e.nodeName===t.el.nodeName&&e!==t.el})),i=t._currentDrag.currentY,r=0,o=n.length;o>r;r++)if(e=n[r],r===o-1){if(i>e.offsetTop)return r}else if(0===r){if(i<e.offsetTop+e.offsetHeight)return r}else if(i>e.offsetTop-e.offsetHeight/2&&i<e.offsetTop+e.offsetHeight)return r;return t._currentDrag.startIndex},a.prototype.end=function(t,n){if(this._currentDrag){var r=this._currentDrag.placeholder,o=this._getReorderIndex();this.el.classList.remove(i),this.el.style[e.CSS.TRANSFORM]="",r.parentNode.insertBefore(this.el,r),r.parentNode.removeChild(r),this.onReorder&&this.onReorder(this.el,this._currentDrag.startIndex,o),this._currentDrag={placeholder:null,content:null},this._currentDrag=null,n&&n()}else n&&n()},e.views.ListView=e.views.View.inherit({initialize:function(t){var n=this;t=e.extend({onReorder:function(){},virtualRemoveThreshold:-200,virtualAddThreshold:200,canSwipe:function(){return!0}},t),e.extend(n,t),!n.itemHeight&&n.listEl&&(n.itemHeight=n.listEl.children[0]&&parseInt(n.listEl.children[0].style.height,10)),n.onRefresh=t.onRefresh||function(){},n.onRefreshOpening=t.onRefreshOpening||function(){},n.onRefreshHolding=t.onRefreshHolding||function(){};var i={};e.DomUtil.getParentOrSelfWithClass(n.el,"overflow-scroll")&&(i.prevent_default_directions=["left","right"]),window.ionic.onGesture("release",(function(e){n._handleEndDrag(e)}),n.el,i),window.ionic.onGesture("drag",(function(e){n._handleDrag(e)}),n.el,i),n._initDrag()},deregister:function(){this.el=this.listEl=this.scrollEl=this.scrollView=null,this.isScrollFreeze&&self.scrollView.freeze(!1)},stopRefreshing:function(){this.el.querySelector(".list-refresher").style.height="0"},didScroll:function(e){var t=this;if(t.isVirtual){var n=t.itemHeight,i=e.target.scrollHeight,r=t.el.parentNode.offsetHeight,o=Math.max(0,e.scrollTop+t.virtualRemoveThreshold),a=Math.min(i,Math.abs(e.scrollTop)+r+t.virtualAddThreshold),s=parseInt(Math.abs(o/n),10),l=parseInt(Math.abs(a/n),10);t._virtualItemsToRemove=Array.prototype.slice.call(t.listEl.children,0,s),t.renderViewport&&t.renderViewport(o,a,s,l)}},didStopScrolling:function(){if(this.isVirtual)for(var e=0;e<this._virtualItemsToRemove.length;e++)this.didHideItem&&this.didHideItem(e)},clearDragEffects:function(e){this._lastDragOp&&(this._lastDragOp.clean&&this._lastDragOp.clean(e),this._lastDragOp.deregister&&this._lastDragOp.deregister(),this._lastDragOp=null)},_initDrag:function(){this._lastDragOp&&this._lastDragOp.deregister&&this._lastDragOp.deregister(),this._lastDragOp=this._dragOp,this._dragOp=null},_getItem:function(e){for(;e;){if(e.classList&&e.classList.contains(t))return e;e=e.parentNode}return null},_startDrag:function(t){var n=this;n._isDragging=!1;var i,r=n._lastDragOp;n._didDragUpOrDown&&r instanceof o&&r.clean&&r.clean(),!e.DomUtil.getParentOrSelfWithClass(t.target,"item-reorder")||"up"!=t.gesture.direction&&"down"!=t.gesture.direction?!n._didDragUpOrDown&&("left"==t.gesture.direction||"right"==t.gesture.direction)&&Math.abs(t.gesture.deltaX)>5&&(i=n._getItem(t.target))&&i.querySelector(".item-options")&&(n._dragOp=new o({el:n.el,item:i,canSwipe:n.canSwipe}),n._dragOp.start(t),t.preventDefault(),n.isScrollFreeze=n.scrollView.freeze(!0)):(i=n._getItem(t.target))&&(n._dragOp=new a({listEl:n.el,el:i,scrollEl:n.scrollEl,scrollView:n.scrollView,onReorder:function(e,t,i){n.onReorder&&n.onReorder(e,t,i)}}),n._dragOp.start(t),t.preventDefault()),r&&n._dragOp&&!n._dragOp.isSameItem(r)&&t.defaultPrevented&&r.clean&&r.clean()},_handleEndDrag:function(e){var t=this;t.scrollView&&(t.isScrollFreeze=t.scrollView.freeze(!1)),t._didDragUpOrDown=!1,t._dragOp&&t._dragOp.end(e,(function(){t._initDrag()}))},_handleDrag:function(e){var t=this;Math.abs(e.gesture.deltaY)>5&&(t._didDragUpOrDown=!0),t.isDragging||t._dragOp||t._startDrag(e),t._dragOp&&(e.gesture.srcEvent.preventDefault(),t._dragOp.drag(e))}})}(ionic),function(e){"use strict";e.views.Modal=e.views.View.inherit({initialize:function(t){t=e.extend({focusFirstInput:!1,unfocusOnHide:!0,focusFirstDelay:600,backdropClickToClose:!0,hardwareBackButtonClose:!0},t),e.extend(this,t),this.el=t.el},show:function(){var e=this;e.focusFirstInput&&window.setTimeout((function(){var t=e.el.querySelector("input, textarea");t&&t.focus&&t.focus()}),e.focusFirstDelay)},hide:function(){if(this.unfocusOnHide){var e=this.el.querySelectorAll("input, textarea");window.setTimeout((function(){for(var t=0;t<e.length;t++)e[t].blur&&e[t].blur()}))}}})}(ionic),function(e){"use strict";e.views.SideMenu=e.views.View.inherit({initialize:function(e){this.el=e.el,this.isEnabled=void 0===e.isEnabled||e.isEnabled,this.setWidth(e.width)},getFullWidth:function(){return this.width},setWidth:function(e){this.width=e,this.el.style.width=e+"px"},setIsEnabled:function(e){this.isEnabled=e},bringUp:function(){"0"!==this.el.style.zIndex&&(this.el.style.zIndex="0")},pushDown:function(){"-1"!==this.el.style.zIndex&&(this.el.style.zIndex="-1")}}),e.views.SideMenuContent=e.views.View.inherit({initialize:function(t){e.extend(this,{animationClass:"menu-animated",onDrag:function(){},onEndDrag:function(){}},t),e.onGesture("drag",e.proxy(this._onDrag,this),this.el),e.onGesture("release",e.proxy(this._onEndDrag,this),this.el)},_onDrag:function(e){this.onDrag&&this.onDrag(e)},_onEndDrag:function(e){this.onEndDrag&&this.onEndDrag(e)},disableAnimation:function(){this.el.classList.remove(this.animationClass)},enableAnimation:function(){this.el.classList.add(this.animationClass)},getTranslateX:function(){return parseFloat(this.el.style[e.CSS.TRANSFORM].replace("translate3d(","").split(",")[0])},setTranslateX:e.animationFrameThrottle((function(t){this.el.style[e.CSS.TRANSFORM]="translate3d("+t+"px, 0, 0)"}))})}(ionic),function(e){"use strict";e.views.Slider=e.views.View.inherit({initialize:function(e){function t(){if(y.offsetWidth){b=k.children,M=b.length,b.length<2&&(e.continuous=!1),_.transitions&&e.continuous&&b.length<3&&(k.appendChild(b[0].cloneNode(!0)),k.appendChild(k.children[1].cloneNode(!0)),b=k.children),w=new Array(b.length),L=y.offsetWidth||y.getBoundingClientRect().width,k.style.width=b.length*L+"px";for(var t=b.length;t--;){var n=b[t];n.style.width=L+"px",n.setAttribute("data-index",t),_.transitions&&(n.style.left=t*-L+"px",o(t,x>t?-L:t>x?L:0,0))}e.continuous&&_.transitions&&(o(i(x-1),-L,0),o(i(x+1),L,0)),_.transitions||(k.style.left=x*-L+"px"),y.style.visibility="visible",e.slidesChanged&&e.slidesChanged()}}function n(t){e.continuous?r(x+1,t):x<b.length-1&&r(x+1,t)}function i(e){return(b.length+e%b.length)%b.length}function r(t,n){if(x!=t){if(!b)return void(x=t);if(_.transitions){var r=Math.abs(x-t)/(x-t);if(e.continuous){var a=r;(r=-w[i(t)]/L)!==a&&(t=-r*b.length+t)}for(var l=Math.abs(x-t)-1;l--;)o(i((t>x?t:x)-l-1),L*r,0);t=i(t),o(x,L*r,n||S),o(t,0,n||S),e.continuous&&o(i(t-r),-L*r,0)}else t=i(t),function(t,n,i){if(i)var r=+new Date,o=setInterval((function(){var a=+new Date-r;return a>i?(k.style.left=n+"px",D&&s(),e.transitionEnd&&e.transitionEnd.call(event,x,b[x]),void clearInterval(o)):void(k.style.left=(n-t)*(Math.floor(a/i*100)/100)+t+"px")}),4);else k.style.left=n+"px"}(x*-L,t*-L,n||S);x=t,v(e.callback&&e.callback(x,b[x]))}}function o(e,t,n){a(e,t,n),w[e]=t}function a(e,t,n){var i=b[e],r=i&&i.style;r&&(r.webkitTransitionDuration=r.MozTransitionDuration=r.msTransitionDuration=r.OTransitionDuration=r.transitionDuration=n+"ms",r.webkitTransform="translate("+t+"px,0)translateZ(0)",r.msTransform=r.MozTransform=r.OTransform="translateX("+t+"px)")}function s(){T=setTimeout(n,D)}function l(){D=e.auto||0,clearTimeout(T)}var u,c,d,h=this;window.navigator.pointerEnabled?(u="pointerdown",c="pointermove",d="pointerup"):window.navigator.msPointerEnabled?(u="MSPointerDown",c="MSPointerMove",d="MSPointerUp"):(u="touchstart",c="touchmove",d="touchend");var f="mousedown",p="mousemove",m="mouseup",g=function(){},v=function(e){setTimeout(e||g,0)},_={addEventListener:!!window.addEventListener,transitions:function(e){var t=["transitionProperty","WebkitTransition","MozTransition","OTransition","msTransition"];for(var n in t)if(void 0!==e.style[t[n]])return!0;return!1}(document.createElement("swipe"))},y=e.el;if(y){var b,w,L,M,k=y.children[0];e=e||{};var x=parseInt(e.startSlide,10)||0,S=e.speed||300;e.continuous=void 0===e.continuous||e.continuous;var T,$,D=e.auto||0,C={},E={},A={handleEvent:function(n){switch(!n.touches&&n.pageX&&n.pageY&&(n.touches=[{pageX:n.pageX,pageY:n.pageY}]),n.type){case u:case f:this.start(n);break;case c:case p:this.touchmove(n);break;case d:case m:v(this.end(n));break;case"webkitTransitionEnd":case"msTransitionEnd":case"oTransitionEnd":case"otransitionend":case"transitionend":v(this.transitionEnd(n));break;case"resize":v(t)}e.stopPropagation&&n.stopPropagation()},start:function(e){if(e.touches){var t=e.touches[0];C={x:t.pageX,y:t.pageY,time:+new Date},$=void 0,E={},k.addEventListener(c,this,!1),k.addEventListener(p,this,!1),k.addEventListener(d,this,!1),k.addEventListener(m,this,!1),document.addEventListener(d,this,!1),document.addEventListener(m,this,!1)}},touchmove:function(t){if(!(!t.touches||t.touches.length>1||t.scale&&1!==t.scale||h.slideIsDisabled)){e.disableScroll&&t.preventDefault();var n=t.touches[0];E={x:n.pageX-C.x,y:n.pageY-C.y},void 0===$&&($=!!($||Math.abs(E.x)<Math.abs(E.y))),$||(t.preventDefault(),l(),e.continuous?(a(i(x-1),E.x+w[i(x-1)],0),a(x,E.x+w[x],0),a(i(x+1),E.x+w[i(x+1)],0)):(e.bouncing?E.x=E.x/(!x&&E.x>0||x==b.length-1&&E.x<0?Math.abs(E.x)/L+1:1):(L*x-E.x<0&&(E.x=Math.min(E.x,L*x)),Math.abs(E.x)>L*(b.length-x-1)&&(E.x=Math.max(-L*(b.length-x-1),E.x))),a(x-1,E.x+w[x-1],0),a(x,E.x+w[x],0),a(x+1,E.x+w[x+1],0)),e.onDrag&&e.onDrag())}},end:function(){var t=+new Date-C.time,n=Number(t)<250&&Math.abs(E.x)>20||Math.abs(E.x)>L/2,r=!x&&E.x>0||x==b.length-1&&E.x<0;e.continuous&&(r=!1);var a=E.x<0;$||(n&&!r?(a?(e.continuous?(o(i(x-1),-L,0),o(i(x+2),L,0)):o(x-1,-L,0),o(x,w[x]-L,S),o(i(x+1),w[i(x+1)]-L,S),x=i(x+1)):(e.continuous?(o(i(x+1),L,0),o(i(x-2),-L,0)):o(x+1,L,0),o(x,w[x]+L,S),o(i(x-1),w[i(x-1)]+L,S),x=i(x-1)),e.callback&&e.callback(x,b[x])):e.continuous?(o(i(x-1),-L,S),o(x,0,S),o(i(x+1),L,S)):(o(x-1,-L,S),o(x,0,S),o(x+1,L,S))),k.removeEventListener(c,A,!1),k.removeEventListener(p,A,!1),k.removeEventListener(d,A,!1),k.removeEventListener(m,A,!1),document.removeEventListener(d,A,!1),document.removeEventListener(m,A,!1),e.onDragEnd&&e.onDragEnd()},transitionEnd:function(t){parseInt(t.target.getAttribute("data-index"),10)==x&&(D&&s(),e.transitionEnd&&e.transitionEnd.call(t,x,b[x]))}};this.update=function(){setTimeout(t)},this.setup=function(){t()},this.loop=function(t){return arguments.length&&(e.continuous=!!t),e.continuous},this.enableSlide=function(e){return arguments.length&&(this.slideIsDisabled=!e),!this.slideIsDisabled},this.slide=this.select=function(e,t){l(),r(e,t)},this.prev=this.previous=function(){l(),function(t){e.continuous?r(x-1,t):x&&r(x-1,t)}()},this.next=function(){l(),n()},this.stop=function(){l()},this.start=function(){s()},this.autoPlay=function(e){!D||0>D?l():(D=e,s())},this.currentIndex=this.selected=function(){return x},this.slidesCount=this.count=function(){return M},this.kill=function(){l(),k.style.width="",k.style.left="",b&&(b=[]),_.addEventListener?(k.removeEventListener(u,A,!1),k.removeEventListener(f,A,!1),k.removeEventListener("webkitTransitionEnd",A,!1),k.removeEventListener("msTransitionEnd",A,!1),k.removeEventListener("oTransitionEnd",A,!1),k.removeEventListener("otransitionend",A,!1),k.removeEventListener("transitionend",A,!1),window.removeEventListener("resize",A,!1)):window.onresize=null},this.load=function(){t(),D&&s(),_.addEventListener?(k.addEventListener(u,A,!1),k.addEventListener(f,A,!1),_.transitions&&(k.addEventListener("webkitTransitionEnd",A,!1),k.addEventListener("msTransitionEnd",A,!1),k.addEventListener("oTransitionEnd",A,!1),k.addEventListener("otransitionend",A,!1),k.addEventListener("transitionend",A,!1)),window.addEventListener("resize",A,!1)):window.onresize=function(){t()}}}}})}(ionic),function(){"use strict";function e(e){e.fn.swiper=function(t){var n;return e(this).each((function(){var e=new i(this,t);n||(n=e)})),n}}var t,n,i=function(e,n,o,a){function s(){return"horizontal"===M.params.direction}function l(e){return Math.floor(e)}function u(){M.autoplayTimeoutId=setTimeout((function(){M.params.loop?(M.fixLoop(),M._slideNext()):M.isEnd?n.autoplayStopOnLast?M.stopAutoplay():M._slideTo(0):M._slideNext()}),M.params.autoplay)}function c(e,n){var i=t(e.target);if(!i.is(n))if("string"==typeof n)i=i.parents(n);else if(n.nodeType){var r;return i.parents().each((function(e,t){t===n&&(r=n)})),r?n:void 0}return 0===i.length?void 0:i[0]}function d(e,t){t=t||{};var n=new(window.MutationObserver||window.WebkitMutationObserver)((function(e){e.forEach((function(e){M.onResize(!0),M.emit("onObserverUpdate",M,e)}))}));n.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),M.observers.push(n)}function h(e){e.originalEvent&&(e=e.originalEvent);var t=e.keyCode||e.charCode;if(!M.params.allowSwipeToNext&&(s()&&39===t||!s()&&40===t))return!1;if(!M.params.allowSwipeToPrev&&(s()&&37===t||!s()&&38===t))return!1;if(!(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey||document.activeElement&&document.activeElement.nodeName&&("input"===document.activeElement.nodeName.toLowerCase()||"textarea"===document.activeElement.nodeName.toLowerCase()))){if(37===t||39===t||38===t||40===t){var n=!1;if(M.container.parents(".swiper-slide").length>0&&0===M.container.parents(".swiper-slide-active").length)return;var i={left:window.pageXOffset,top:window.pageYOffset},r=window.innerWidth,o=window.innerHeight,a=M.container.offset();M.rtl&&(a.left=a.left-M.container[0].scrollLeft);for(var l=[[a.left,a.top],[a.left+M.width,a.top],[a.left,a.top+M.height],[a.left+M.width,a.top+M.height]],u=0;u<l.length;u++){var c=l[u];c[0]>=i.left&&c[0]<=i.left+r&&c[1]>=i.top&&c[1]<=i.top+o&&(n=!0)}if(!n)return}s()?((37===t||39===t)&&(e.preventDefault?e.preventDefault():e.returnValue=!1),(39===t&&!M.rtl||37===t&&M.rtl)&&M.slideNext(),(37===t&&!M.rtl||39===t&&M.rtl)&&M.slidePrev()):((38===t||40===t)&&(e.preventDefault?e.preventDefault():e.returnValue=!1),40===t&&M.slideNext(),38===t&&M.slidePrev())}}function f(e){e.originalEvent&&(e=e.originalEvent);var t=M.mousewheel.event,n=0,i=M.rtl?-1:1;if(e.detail)n=-e.detail;else if("mousewheel"===t)if(M.params.mousewheelForceToAxis)if(s()){if(!(Math.abs(e.wheelDeltaX)>Math.abs(e.wheelDeltaY)))return;n=e.wheelDeltaX*i}else{if(!(Math.abs(e.wheelDeltaY)>Math.abs(e.wheelDeltaX)))return;n=e.wheelDeltaY}else n=Math.abs(e.wheelDeltaX)>Math.abs(e.wheelDeltaY)?-e.wheelDeltaX*i:-e.wheelDeltaY;else if("DOMMouseScroll"===t)n=-e.detail;else if("wheel"===t)if(M.params.mousewheelForceToAxis)if(s()){if(!(Math.abs(e.deltaX)>Math.abs(e.deltaY)))return;n=-e.deltaX*i}else{if(!(Math.abs(e.deltaY)>Math.abs(e.deltaX)))return;n=-e.deltaY}else n=Math.abs(e.deltaX)>Math.abs(e.deltaY)?-e.deltaX*i:-e.deltaY;if(0!==n){if(M.params.mousewheelInvert&&(n=-n),M.params.freeMode){var r=M.getWrapperTranslate()+n*M.params.mousewheelSensitivity,o=M.isBeginning,a=M.isEnd;if(r>=M.minTranslate()&&(r=M.minTranslate()),r<=M.maxTranslate()&&(r=M.maxTranslate()),M.setWrapperTransition(0),M.setWrapperTranslate(r),M.updateProgress(),M.updateActiveIndex(),(!o&&M.isBeginning||!a&&M.isEnd)&&M.updateClasses(),M.params.freeModeSticky&&(clearTimeout(M.mousewheel.timeout),M.mousewheel.timeout=setTimeout((function(){M.slideReset()}),300)),0===r||r===M.maxTranslate())return}else{if((new window.Date).getTime()-M.mousewheel.lastScrollTime>60)if(0>n)if(M.isEnd&&!M.params.loop||M.animating){if(M.params.mousewheelReleaseOnEdges)return!0}else M.slideNext();else if(M.isBeginning&&!M.params.loop||M.animating){if(M.params.mousewheelReleaseOnEdges)return!0}else M.slidePrev();M.mousewheel.lastScrollTime=(new window.Date).getTime()}return M.params.autoplay&&M.stopAutoplay(),e.preventDefault?e.preventDefault():e.returnValue=!1,!1}}function p(e,n){e=t(e);var i,r,o,a=M.rtl?-1:1;i=e.attr("data-swiper-parallax")||"0",r=e.attr("data-swiper-parallax-x"),o=e.attr("data-swiper-parallax-y"),r||o?(r=r||"0",o=o||"0"):s()?(r=i,o="0"):(o=i,r="0"),r=r.indexOf("%")>=0?parseInt(r,10)*n*a+"%":r*n*a+"px",o=o.indexOf("%")>=0?parseInt(o,10)*n+"%":o*n+"px",e.transform("translate3d("+r+", "+o+",0px)")}function m(e){return 0!==e.indexOf("on")&&(e=e[0]!==e[0].toUpperCase()?"on"+e[0].toUpperCase()+e.substring(1):"on"+e),e}if(!(this instanceof i))return new i(e,n);var g={direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,autoplay:!1,autoplayDisableOnInteraction:!0,iOSEdgeSwipeDetection:!1,iOSEdgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",coverflow:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0},cube:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94},fade:{crossFade:!1},parallax:!1,scrollbar:null,scrollbarHide:!0,scrollbarDraggable:!1,scrollbarSnapOnRelease:!1,keyboardControl:!1,mousewheelControl:!1,mousewheelReleaseOnEdges:!1,mousewheelInvert:!1,mousewheelForceToAxis:!1,mousewheelSensitivity:1,hashnav:!1,breakpoints:void 0,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,onlyExternal:!1,threshold:0,touchMoveStopPropagation:!0,pagination:null,paginationElement:"span",paginationClickable:!1,paginationHide:!1,paginationBulletRender:null,resistance:!0,resistanceRatio:.85,nextButton:null,prevButton:null,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,lazyLoading:!1,lazyLoadingInPrevNext:!1,lazyLoadingOnTransitionStart:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,control:void 0,controlInverse:!1,controlBy:"slide",allowSwipeToPrev:!0,allowSwipeToNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",buttonDisabledClass:"swiper-button-disabled",paginationHiddenClass:"swiper-pagination-hidden",observer:!1,observeParents:!1,a11y:!1,prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",runCallbacksOnInit:!0},v=n&&n.virtualTranslate;n=n||{};var _={};for(var y in n)if("object"!=typeof n[y]||n[y].nodeType||n[y]===window||n[y]===document||void 0!==r&&n[y]instanceof r||"undefined"!=typeof jQuery&&n[y]instanceof jQuery)_[y]=n[y];else for(var b in _[y]={},n[y])_[y][b]=n[y][b];for(var w in g)if(void 0===n[w])n[w]=g[w];else if("object"==typeof n[w])for(var L in g[w])void 0===n[w][L]&&(n[w][L]=g[w][L]);var M=this;if(M.params=n,M.originalParams=_,M.classNames=[],void 0!==t&&void 0!==r&&(t=r),(void 0!==t||(t=void 0===r?window.Dom7||window.Zepto||window.jQuery:r))&&(M.$=t,M.currentBreakpoint=void 0,M.getActiveBreakpoint=function(){if(!M.params.breakpoints)return!1;var e,t=!1,n=[];for(e in M.params.breakpoints)M.params.breakpoints.hasOwnProperty(e)&&n.push(e);n.sort((function(e,t){return parseInt(e,10)>parseInt(t,10)}));for(var i=0;i<n.length;i++)(e=n[i])>=window.innerWidth&&!t&&(t=e);return t||"max"},M.setBreakpoint=function(){var e=M.getActiveBreakpoint();if(e&&M.currentBreakpoint!==e){var t=e in M.params.breakpoints?M.params.breakpoints[e]:M.originalParams;for(var n in t)M.params[n]=t[n];M.currentBreakpoint=e}},M.params.breakpoints&&M.setBreakpoint(),M.container=t(e),0!==M.container.length)){if(M.container.length>1)return void M.container.each((function(){new i(this,n)}));M.container[0].swiper=M,M.container.data("swiper",M),M.classNames.push("swiper-container-"+M.params.direction),M.params.freeMode&&M.classNames.push("swiper-container-free-mode"),M.support.flexbox||(M.classNames.push("swiper-container-no-flexbox"),M.params.slidesPerColumn=1),M.params.autoHeight&&M.classNames.push("swiper-container-autoheight"),(M.params.parallax||M.params.watchSlidesVisibility)&&(M.params.watchSlidesProgress=!0),["cube","coverflow"].indexOf(M.params.effect)>=0&&(M.support.transforms3d?(M.params.watchSlidesProgress=!0,M.classNames.push("swiper-container-3d")):M.params.effect="slide"),"slide"!==M.params.effect&&M.classNames.push("swiper-container-"+M.params.effect),"cube"===M.params.effect&&(M.params.resistanceRatio=0,M.params.slidesPerView=1,M.params.slidesPerColumn=1,M.params.slidesPerGroup=1,M.params.centeredSlides=!1,M.params.spaceBetween=0,M.params.virtualTranslate=!0,M.params.setWrapperSize=!1),"fade"===M.params.effect&&(M.params.slidesPerView=1,M.params.slidesPerColumn=1,M.params.slidesPerGroup=1,M.params.watchSlidesProgress=!0,M.params.spaceBetween=0,void 0===v&&(M.params.virtualTranslate=!0)),M.params.grabCursor&&M.support.touch&&(M.params.grabCursor=!1),M.wrapper=M.container.children("."+M.params.wrapperClass),M.params.pagination&&(M.paginationContainer=t(M.params.pagination),M.params.paginationClickable&&M.paginationContainer.addClass("swiper-pagination-clickable")),M.rtl=s()&&("rtl"===M.container[0].dir.toLowerCase()||"rtl"===M.container.css("direction")),M.rtl&&M.classNames.push("swiper-container-rtl"),M.rtl&&(M.wrongRTL="-webkit-box"===M.wrapper.css("display")),M.params.slidesPerColumn>1&&M.classNames.push("swiper-container-multirow"),M.device.android&&M.classNames.push("swiper-container-android"),M.container.addClass(M.classNames.join(" ")),M.translate=0,M.progress=0,M.velocity=0,M.lockSwipeToNext=function(){M.params.allowSwipeToNext=!1},M.lockSwipeToPrev=function(){M.params.allowSwipeToPrev=!1},M.lockSwipes=function(){M.params.allowSwipeToNext=M.params.allowSwipeToPrev=!1},M.unlockSwipeToNext=function(){M.params.allowSwipeToNext=!0},M.unlockSwipeToPrev=function(){M.params.allowSwipeToPrev=!0},M.unlockSwipes=function(){M.params.allowSwipeToNext=M.params.allowSwipeToPrev=!0},M.params.grabCursor&&(M.container[0].style.cursor="move",M.container[0].style.cursor="-webkit-grab",M.container[0].style.cursor="-moz-grab",M.container[0].style.cursor="grab"),M.imagesToLoad=[],M.imagesLoaded=0,M.loadImage=function(e,t,n,i,r){function o(){r&&r()}var a;e.complete&&i?o():t?((a=new window.Image).onload=o,a.onerror=o,n&&(a.srcset=n),t&&(a.src=t)):o()},M.preloadImages=function(){function e(){null!=M&&(void 0!==M.imagesLoaded&&M.imagesLoaded++,M.imagesLoaded===M.imagesToLoad.length&&(M.params.updateOnImagesReady&&M.update(),M.emit("onImagesReady",M)))}M.imagesToLoad=M.container.find("img");for(var t=0;t<M.imagesToLoad.length;t++)M.loadImage(M.imagesToLoad[t],M.imagesToLoad[t].currentSrc||M.imagesToLoad[t].getAttribute("src"),M.imagesToLoad[t].srcset||M.imagesToLoad[t].getAttribute("srcset"),!0,e)},M.autoplayTimeoutId=void 0,M.autoplaying=!1,M.autoplayPaused=!1,M.startAutoplay=function(){return void 0===M.autoplayTimeoutId&&!!M.params.autoplay&&!M.autoplaying&&(M.autoplaying=!0,M.emit("onAutoplayStart",M),void u())},M.stopAutoplay=function(e){M.autoplayTimeoutId&&(M.autoplayTimeoutId&&clearTimeout(M.autoplayTimeoutId),M.autoplaying=!1,M.autoplayTimeoutId=void 0,M.emit("onAutoplayStop",M))},M.pauseAutoplay=function(e){M.autoplayPaused||(M.autoplayTimeoutId&&clearTimeout(M.autoplayTimeoutId),M.autoplayPaused=!0,0===e?(M.autoplayPaused=!1,u()):M.wrapper.transitionEnd((function(){M&&(M.autoplayPaused=!1,M.autoplaying?u():M.stopAutoplay())})))},M.minTranslate=function(){return-M.snapGrid[0]},M.maxTranslate=function(){return-M.snapGrid[M.snapGrid.length-1]},M.updateAutoHeight=function(){M.slides.eq(M.activeIndex)[0].offsetHeight&&M.wrapper.css("height",M.slides.eq(M.activeIndex)[0].offsetHeight+"px")},M.updateContainerSize=function(){var e,t;e=void 0!==M.params.width?M.params.width:M.container[0].clientWidth,t=void 0!==M.params.height?M.params.height:M.container[0].clientHeight,0===e&&s()||0===t&&!s()||(e=e-parseInt(M.container.css("padding-left"),10)-parseInt(M.container.css("padding-right"),10),t=t-parseInt(M.container.css("padding-top"),10)-parseInt(M.container.css("padding-bottom"),10),M.width=e,M.height=t,M.size=s()?M.width:M.height)},M.updateSlidesSize=function(){M.slides=M.wrapper.children("."+M.params.slideClass),M.snapGrid=[],M.slidesGrid=[],M.slidesSizesGrid=[];var e,t,n=M.params.spaceBetween,i=-M.params.slidesOffsetBefore,r=0,o=0;"string"==typeof n&&n.indexOf("%")>=0&&(n=parseFloat(n.replace("%",""))/100*M.size),M.virtualSize=-n,M.rtl?M.slides.css({marginLeft:"",marginTop:""}):M.slides.css({marginRight:"",marginBottom:""}),M.params.slidesPerColumn>1&&(t=Math.floor(M.slides.length/M.params.slidesPerColumn)===M.slides.length/M.params.slidesPerColumn?M.slides.length:Math.ceil(M.slides.length/M.params.slidesPerColumn)*M.params.slidesPerColumn,"auto"!==M.params.slidesPerView&&"row"===M.params.slidesPerColumnFill&&(t=Math.max(t,M.params.slidesPerView*M.params.slidesPerColumn)));var a,u,c=M.params.slidesPerColumn,d=t/c,h=d-(M.params.slidesPerColumn*d-M.slides.length);for(e=0;e<M.slides.length;e++){a=0;var f,p,m,g=M.slides.eq(e);M.params.slidesPerColumn>1&&("column"===M.params.slidesPerColumnFill?(m=e-(p=Math.floor(e/c))*c,(p>h||p===h&&m===c-1)&&++m>=c&&(m=0,p++),f=p+m*t/c,g.css({"-webkit-box-ordinal-group":f,"-moz-box-ordinal-group":f,"-ms-flex-order":f,"-webkit-order":f,order:f})):p=e-(m=Math.floor(e/d))*d,g.css({"margin-top":0!==m&&M.params.spaceBetween&&M.params.spaceBetween+"px"}).attr("data-swiper-column",p).attr("data-swiper-row",m)),"none"!==g.css("display")&&("auto"===M.params.slidesPerView?(a=s()?g.outerWidth(!0):g.outerHeight(!0),M.params.roundLengths&&(a=l(a))):(a=(M.size-(M.params.slidesPerView-1)*n)/M.params.slidesPerView,M.params.roundLengths&&(a=l(a)),s()?M.slides[e].style.width=a+"px":M.slides[e].style.height=a+"px"),M.slides[e].swiperSlideSize=a,M.slidesSizesGrid.push(a),M.params.centeredSlides?(i=i+a/2+r/2+n,0===e&&(i=i-M.size/2-n),Math.abs(i)<.001&&(i=0),o%M.params.slidesPerGroup==0&&M.snapGrid.push(i),M.slidesGrid.push(i)):(o%M.params.slidesPerGroup==0&&M.snapGrid.push(i),M.slidesGrid.push(i),i=i+a+n),M.virtualSize+=a+n,r=a,o++)}if(M.virtualSize=Math.max(M.virtualSize,M.size)+M.params.slidesOffsetAfter,M.rtl&&M.wrongRTL&&("slide"===M.params.effect||"coverflow"===M.params.effect)&&M.wrapper.css({width:M.virtualSize+M.params.spaceBetween+"px"}),(!M.support.flexbox||M.params.setWrapperSize)&&(s()?M.wrapper.css({width:M.virtualSize+M.params.spaceBetween+"px"}):M.wrapper.css({height:M.virtualSize+M.params.spaceBetween+"px"})),M.params.slidesPerColumn>1&&(M.virtualSize=(a+M.params.spaceBetween)*t,M.virtualSize=Math.ceil(M.virtualSize/M.params.slidesPerColumn)-M.params.spaceBetween,M.wrapper.css({width:M.virtualSize+M.params.spaceBetween+"px"}),M.params.centeredSlides)){for(u=[],e=0;e<M.snapGrid.length;e++)M.snapGrid[e]<M.virtualSize+M.snapGrid[0]&&u.push(M.snapGrid[e]);M.snapGrid=u}if(!M.params.centeredSlides){for(u=[],e=0;e<M.snapGrid.length;e++)M.snapGrid[e]<=M.virtualSize-M.size&&u.push(M.snapGrid[e]);M.snapGrid=u,Math.floor(M.virtualSize-M.size)>Math.floor(M.snapGrid[M.snapGrid.length-1])&&M.snapGrid.push(M.virtualSize-M.size)}0===M.snapGrid.length&&(M.snapGrid=[0]),0!==M.params.spaceBetween&&(s()?M.rtl?M.slides.css({marginLeft:n+"px"}):M.slides.css({marginRight:n+"px"}):M.slides.css({marginBottom:n+"px"})),M.params.watchSlidesProgress&&M.updateSlidesOffset()},M.updateSlidesOffset=function(){for(var e=0;e<M.slides.length;e++)M.slides[e].swiperSlideOffset=s()?M.slides[e].offsetLeft:M.slides[e].offsetTop},M.updateSlidesProgress=function(e){if(void 0===e&&(e=M.translate||0),0!==M.slides.length){void 0===M.slides[0].swiperSlideOffset&&M.updateSlidesOffset();var t=-e;M.rtl&&(t=e),M.slides.removeClass(M.params.slideVisibleClass);for(var n=0;n<M.slides.length;n++){var i=M.slides[n],r=(t-i.swiperSlideOffset)/(i.swiperSlideSize+M.params.spaceBetween);if(M.params.watchSlidesVisibility){var o=-(t-i.swiperSlideOffset),a=o+M.slidesSizesGrid[n];(o>=0&&o<M.size||a>0&&a<=M.size||0>=o&&a>=M.size)&&M.slides.eq(n).addClass(M.params.slideVisibleClass)}i.progress=M.rtl?-r:r}}},M.updateProgress=function(e){void 0===e&&(e=M.translate||0);var t=M.maxTranslate()-M.minTranslate(),n=M.isBeginning,i=M.isEnd;0===t?(M.progress=0,M.isBeginning=M.isEnd=!0):(M.progress=(e-M.minTranslate())/t,M.isBeginning=M.progress<=0,M.isEnd=M.progress>=1),M.isBeginning&&!n&&M.emit("onReachBeginning",M),M.isEnd&&!i&&M.emit("onReachEnd",M),M.params.watchSlidesProgress&&M.updateSlidesProgress(e),M.emit("onProgress",M,M.progress)},M.updateActiveIndex=function(){var e,t,n,i=M.rtl?M.translate:-M.translate;for(t=0;t<M.slidesGrid.length;t++)void 0!==M.slidesGrid[t+1]?i>=M.slidesGrid[t]&&i<M.slidesGrid[t+1]-(M.slidesGrid[t+1]-M.slidesGrid[t])/2?e=t:i>=M.slidesGrid[t]&&i<M.slidesGrid[t+1]&&(e=t+1):i>=M.slidesGrid[t]&&(e=t);(0>e||void 0===e)&&(e=0),(n=Math.floor(e/M.params.slidesPerGroup))>=M.snapGrid.length&&(n=M.snapGrid.length-1),e!==M.activeIndex&&(M.snapIndex=n,M.previousIndex=M.activeIndex,M.activeIndex=e,M.updateClasses())},M.updateClasses=function(){M.slides.removeClass(M.params.slideActiveClass+" "+M.params.slideNextClass+" "+M.params.slidePrevClass);var e,n=M.slides.eq(M.activeIndex);n.addClass(M.params.slideActiveClass),n.next("."+M.params.slideClass).addClass(M.params.slideNextClass),n.prev("."+M.params.slideClass).addClass(M.params.slidePrevClass),M.bullets&&M.bullets.length>0&&(M.bullets.removeClass(M.params.bulletActiveClass),M.params.loop?((e=Math.ceil(M.activeIndex-M.loopedSlides)/M.params.slidesPerGroup)>M.slides.length-1-2*M.loopedSlides&&(e-=M.slides.length-2*M.loopedSlides),e>M.bullets.length-1&&(e-=M.bullets.length)):e=void 0!==M.snapIndex?M.snapIndex:M.activeIndex||0,M.paginationContainer.length>1?M.bullets.each((function(){t(this).index()===e&&t(this).addClass(M.params.bulletActiveClass)})):M.bullets.eq(e).addClass(M.params.bulletActiveClass)),M.params.loop||(M.params.prevButton&&(M.isBeginning?(t(M.params.prevButton).addClass(M.params.buttonDisabledClass),M.params.a11y&&M.a11y&&M.a11y.disable(t(M.params.prevButton))):(t(M.params.prevButton).removeClass(M.params.buttonDisabledClass),M.params.a11y&&M.a11y&&M.a11y.enable(t(M.params.prevButton)))),M.params.nextButton&&(M.isEnd?(t(M.params.nextButton).addClass(M.params.buttonDisabledClass),M.params.a11y&&M.a11y&&M.a11y.disable(t(M.params.nextButton))):(t(M.params.nextButton).removeClass(M.params.buttonDisabledClass),M.params.a11y&&M.a11y&&M.a11y.enable(t(M.params.nextButton)))))},M.updatePagination=function(){if(M.params.pagination&&M.paginationContainer&&M.paginationContainer.length>0){for(var e="",t=M.params.loop?Math.ceil((M.slides.length-2*M.loopedSlides)/M.params.slidesPerGroup):M.snapGrid.length,n=0;t>n;n++)e+=M.params.paginationBulletRender?M.params.paginationBulletRender(n,M.params.bulletClass):"<"+M.params.paginationElement+' class="'+M.params.bulletClass+'"></'+M.params.paginationElement+">";M.paginationContainer.html(e),M.bullets=M.paginationContainer.find("."+M.params.bulletClass),M.params.paginationClickable&&M.params.a11y&&M.a11y&&M.a11y.initPagination()}},M.update=function(e){function t(){n=Math.min(Math.max(M.translate,M.maxTranslate()),M.minTranslate()),M.setWrapperTranslate(n),M.updateActiveIndex(),M.updateClasses()}var n;M.updateContainerSize(),M.updateSlidesSize(),M.updateProgress(),M.updatePagination(),M.updateClasses(),M.params.scrollbar&&M.scrollbar&&M.scrollbar.set(),e?(M.controller&&M.controller.spline&&(M.controller.spline=void 0),M.params.freeMode?(t(),M.params.autoHeight&&M.updateAutoHeight()):(("auto"===M.params.slidesPerView||M.params.slidesPerView>1)&&M.isEnd&&!M.params.centeredSlides?M.slideTo(M.slides.length-1,0,!1,!0):M.slideTo(M.activeIndex,0,!1,!0))||t()):M.params.autoHeight&&M.updateAutoHeight()},M.onResize=function(e){M.params.breakpoints&&M.setBreakpoint();var t=M.params.allowSwipeToPrev,n=M.params.allowSwipeToNext;if(M.params.allowSwipeToPrev=M.params.allowSwipeToNext=!0,M.updateContainerSize(),M.updateSlidesSize(),("auto"===M.params.slidesPerView||M.params.freeMode||e)&&M.updatePagination(),M.params.scrollbar&&M.scrollbar&&M.scrollbar.set(),M.controller&&M.controller.spline&&(M.controller.spline=void 0),M.params.freeMode){var i=Math.min(Math.max(M.translate,M.maxTranslate()),M.minTranslate());M.setWrapperTranslate(i),M.updateActiveIndex(),M.updateClasses(),M.params.autoHeight&&M.updateAutoHeight()}else M.updateClasses(),("auto"===M.params.slidesPerView||M.params.slidesPerView>1)&&M.isEnd&&!M.params.centeredSlides?M.slideTo(M.slides.length-1,0,!1,!0):M.slideTo(M.activeIndex,0,!1,!0);M.params.allowSwipeToPrev=t,M.params.allowSwipeToNext=n};var k=["mousedown","mousemove","mouseup"];window.navigator.pointerEnabled?k=["pointerdown","pointermove","pointerup"]:window.navigator.msPointerEnabled&&(k=["MSPointerDown","MSPointerMove","MSPointerUp"]),M.touchEvents={start:M.support.touch||!M.params.simulateTouch?"touchstart":k[0],move:M.support.touch||!M.params.simulateTouch?"touchmove":k[1],end:M.support.touch||!M.params.simulateTouch?"touchend":k[2]},(window.navigator.pointerEnabled||window.navigator.msPointerEnabled)&&("container"===M.params.touchEventsTarget?M.container:M.wrapper).addClass("swiper-wp8-"+M.params.direction),M.initEvents=function(e){var i=e?"off":"on",r=e?"removeEventListener":"addEventListener",o="container"===M.params.touchEventsTarget?M.container[0]:M.wrapper[0],a=M.support.touch?o:document,s=!!M.params.nested;M.browser.ie?(o[r](M.touchEvents.start,M.onTouchStart,!1),a[r](M.touchEvents.move,M.onTouchMove,s),a[r](M.touchEvents.end,M.onTouchEnd,!1)):(M.support.touch&&(o[r](M.touchEvents.start,M.onTouchStart,!1),o[r](M.touchEvents.move,M.onTouchMove,s),o[r](M.touchEvents.end,M.onTouchEnd,!1)),!n.simulateTouch||M.device.ios||M.device.android||(o[r]("mousedown",M.onTouchStart,!1),document[r]("mousemove",M.onTouchMove,s),document[r]("mouseup",M.onTouchEnd,!1))),window[r]("resize",M.onResize),M.params.nextButton&&(t(M.params.nextButton)[i]("click",M.onClickNext),M.params.a11y&&M.a11y&&t(M.params.nextButton)[i]("keydown",M.a11y.onEnterKey)),M.params.prevButton&&(t(M.params.prevButton)[i]("click",M.onClickPrev),M.params.a11y&&M.a11y&&t(M.params.prevButton)[i]("keydown",M.a11y.onEnterKey)),M.params.pagination&&M.params.paginationClickable&&(t(M.paginationContainer)[i]("click","."+M.params.bulletClass,M.onClickIndex),M.params.a11y&&M.a11y&&t(M.paginationContainer)[i]("keydown","."+M.params.bulletClass,M.a11y.onEnterKey)),(M.params.preventClicks||M.params.preventClicksPropagation)&&o[r]("click",M.preventClicks,!0)},M.attachEvents=function(e){M.initEvents()},M.detachEvents=function(){M.initEvents(!0)},M.allowClick=!0,M.preventClicks=function(e){M.allowClick||(M.params.preventClicks&&e.preventDefault(),M.params.preventClicksPropagation&&M.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))},M.onClickNext=function(e){e.preventDefault(),(!M.isEnd||M.params.loop)&&M.slideNext()},M.onClickPrev=function(e){e.preventDefault(),(!M.isBeginning||M.params.loop)&&M.slidePrev()},M.onClickIndex=function(e){e.preventDefault();var n=t(this).index()*M.params.slidesPerGroup;M.params.loop&&(n+=M.loopedSlides),M.slideTo(n)},M.updateClickedSlide=function(e){var n=c(e,"."+M.params.slideClass),i=!1;if(n)for(var r=0;r<M.slides.length;r++)M.slides[r]===n&&(i=!0);if(!n||!i)return M.clickedSlide=void 0,void(M.clickedIndex=void 0);if(M.clickedSlide=n,M.clickedIndex=t(n).index(),M.params.slideToClickedSlide&&void 0!==M.clickedIndex&&M.clickedIndex!==M.activeIndex){var o,a=M.clickedIndex;if(M.params.loop){if(M.animating)return;o=t(M.clickedSlide).attr("data-swiper-slide-index"),M.params.centeredSlides?a<M.loopedSlides-M.params.slidesPerView/2||a>M.slides.length-M.loopedSlides+M.params.slidesPerView/2?(M.fixLoop(),a=M.wrapper.children("."+M.params.slideClass+'[data-swiper-slide-index="'+o+'"]:not(.swiper-slide-duplicate)').eq(0).index(),setTimeout((function(){M.slideTo(a)}),0)):M.slideTo(a):a>M.slides.length-M.params.slidesPerView?(M.fixLoop(),a=M.wrapper.children("."+M.params.slideClass+'[data-swiper-slide-index="'+o+'"]:not(.swiper-slide-duplicate)').eq(0).index(),setTimeout((function(){M.slideTo(a)}),0)):M.slideTo(a)}else M.slideTo(a)}};var x,S,T,$,D,C,E,A,P,Y,O,I,j="input, select, textarea, button",H=Date.now(),N=[];if(M.animating=!1,M.touches={startX:0,startY:0,currentX:0,currentY:0,diff:0},M.onTouchStart=function(e){if(e.originalEvent&&(e=e.originalEvent),(O="touchstart"===e.type)||!("which"in e)||3!==e.which){if(M.params.noSwiping&&c(e,"."+M.params.noSwipingClass))return void(M.allowClick=!0);if(!M.params.swipeHandler||c(e,M.params.swipeHandler)){var n=M.touches.currentX="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,i=M.touches.currentY="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY;if(!(M.device.ios&&M.params.iOSEdgeSwipeDetection&&n<=M.params.iOSEdgeSwipeThreshold)){if(x=!0,S=!1,T=!0,D=void 0,I=void 0,M.touches.startX=n,M.touches.startY=i,$=Date.now(),M.allowClick=!0,M.updateContainerSize(),M.swipeDirection=void 0,M.params.threshold>0&&(A=!1),"touchstart"!==e.type){var r=!0;t(e.target).is(j)&&(r=!1),document.activeElement&&t(document.activeElement).is(j)&&document.activeElement.blur(),r&&e.preventDefault()}M.emit("onTouchStart",M,e)}}}},M.onTouchMove=function(e){if(e.originalEvent&&(e=e.originalEvent),!(O&&"mousemove"===e.type||e.preventedByNestedSwiper)){if(M.params.onlyExternal)return M.allowClick=!1,void(x&&(M.touches.startX=M.touches.currentX="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,M.touches.startY=M.touches.currentY="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,$=Date.now()));if(O&&document.activeElement&&e.target===document.activeElement&&t(e.target).is(j))return S=!0,void(M.allowClick=!1);if(T&&M.emit("onTouchMove",M,e),!(e.targetTouches&&e.targetTouches.length>1)){if(M.touches.currentX="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,M.touches.currentY="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,void 0===D){var i=180*Math.atan2(Math.abs(M.touches.currentY-M.touches.startY),Math.abs(M.touches.currentX-M.touches.startX))/Math.PI;D=s()?i>M.params.touchAngle:90-i>M.params.touchAngle}if(D&&M.emit("onTouchMoveOpposite",M,e),void 0===I&&M.browser.ieTouch&&(M.touches.currentX!==M.touches.startX||M.touches.currentY!==M.touches.startY)&&(I=!0),x){if(D)return void(x=!1);if(I||!M.browser.ieTouch){M.allowClick=!1,M.emit("onSliderMove",M,e),e.preventDefault(),M.params.touchMoveStopPropagation&&!M.params.nested&&e.stopPropagation(),S||(n.loop&&M.fixLoop(),E=M.getWrapperTranslate(),M.setWrapperTransition(0),M.animating&&M.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"),M.params.autoplay&&M.autoplaying&&(M.params.autoplayDisableOnInteraction?M.stopAutoplay():M.pauseAutoplay()),Y=!1,M.params.grabCursor&&(M.container[0].style.cursor="move",M.container[0].style.cursor="-webkit-grabbing",M.container[0].style.cursor="-moz-grabbin",M.container[0].style.cursor="grabbing")),S=!0;var r=M.touches.diff=s()?M.touches.currentX-M.touches.startX:M.touches.currentY-M.touches.startY;r*=M.params.touchRatio,M.rtl&&(r=-r),M.swipeDirection=r>0?"prev":"next",C=r+E;var o=!0;if(r>0&&C>M.minTranslate()?(o=!1,M.params.resistance&&(C=M.minTranslate()-1+Math.pow(-M.minTranslate()+E+r,M.params.resistanceRatio))):0>r&&C<M.maxTranslate()&&(o=!1,M.params.resistance&&(C=M.maxTranslate()+1-Math.pow(M.maxTranslate()-E-r,M.params.resistanceRatio))),o&&(e.preventedByNestedSwiper=!0),!M.params.allowSwipeToNext&&"next"===M.swipeDirection&&E>C&&(C=E),!M.params.allowSwipeToPrev&&"prev"===M.swipeDirection&&C>E&&(C=E),M.params.followFinger){if(M.params.threshold>0){if(!(Math.abs(r)>M.params.threshold||A))return void(C=E);if(!A)return A=!0,M.touches.startX=M.touches.currentX,M.touches.startY=M.touches.currentY,C=E,void(M.touches.diff=s()?M.touches.currentX-M.touches.startX:M.touches.currentY-M.touches.startY)}(M.params.freeMode||M.params.watchSlidesProgress)&&M.updateActiveIndex(),M.params.freeMode&&(0===N.length&&N.push({position:M.touches[s()?"startX":"startY"],time:$}),N.push({position:M.touches[s()?"currentX":"currentY"],time:(new window.Date).getTime()})),M.updateProgress(C),M.setWrapperTranslate(C)}}}}}},M.onTouchEnd=function(e){if(e.originalEvent&&(e=e.originalEvent),T&&M.emit("onTouchEnd",M,e),T=!1,x){M.params.grabCursor&&S&&x&&(M.container[0].style.cursor="move",M.container[0].style.cursor="-webkit-grab",M.container[0].style.cursor="-moz-grab",M.container[0].style.cursor="grab");var n,i=Date.now(),r=i-$;if(M.allowClick&&(M.updateClickedSlide(e),M.emit("onTap",M,e),300>r&&i-H>300&&(P&&clearTimeout(P),P=setTimeout((function(){M&&(M.params.paginationHide&&M.paginationContainer.length>0&&!t(e.target).hasClass(M.params.bulletClass)&&M.paginationContainer.toggleClass(M.params.paginationHiddenClass),M.emit("onClick",M,e))}),300)),300>r&&300>i-H&&(P&&clearTimeout(P),M.emit("onDoubleTap",M,e))),H=Date.now(),setTimeout((function(){M&&(M.allowClick=!0)}),0),!x||!S||!M.swipeDirection||0===M.touches.diff||C===E)return void(x=S=!1);if(x=S=!1,n=M.params.followFinger?M.rtl?M.translate:-M.translate:-C,M.params.freeMode){if(n<-M.minTranslate())return void M.slideTo(M.activeIndex);if(n>-M.maxTranslate())return void(M.slides.length<M.snapGrid.length?M.slideTo(M.snapGrid.length-1):M.slideTo(M.slides.length-1));if(M.params.freeModeMomentum){if(N.length>1){var o=N.pop(),a=N.pop(),s=o.position-a.position,l=o.time-a.time;M.velocity=s/l,M.velocity=M.velocity/2,Math.abs(M.velocity)<M.params.freeModeMinimumVelocity&&(M.velocity=0),(l>150||(new window.Date).getTime()-o.time>300)&&(M.velocity=0)}else M.velocity=0;N.length=0;var u=1e3*M.params.freeModeMomentumRatio,c=M.velocity*u,d=M.translate+c;M.rtl&&(d=-d);var h,f=!1,p=20*Math.abs(M.velocity)*M.params.freeModeMomentumBounceRatio;if(d<M.maxTranslate())M.params.freeModeMomentumBounce?(d+M.maxTranslate()<-p&&(d=M.maxTranslate()-p),h=M.maxTranslate(),f=!0,Y=!0):d=M.maxTranslate();else if(d>M.minTranslate())M.params.freeModeMomentumBounce?(d-M.minTranslate()>p&&(d=M.minTranslate()+p),h=M.minTranslate(),f=!0,Y=!0):d=M.minTranslate();else if(M.params.freeModeSticky){var m,g=0;for(g=0;g<M.snapGrid.length;g+=1)if(M.snapGrid[g]>-d){m=g;break}d=Math.abs(M.snapGrid[m]-d)<Math.abs(M.snapGrid[m-1]-d)||"next"===M.swipeDirection?M.snapGrid[m]:M.snapGrid[m-1],M.rtl||(d=-d)}if(0!==M.velocity)u=M.rtl?Math.abs((-d-M.translate)/M.velocity):Math.abs((d-M.translate)/M.velocity);else if(M.params.freeModeSticky)return void M.slideReset();M.params.freeModeMomentumBounce&&f?(M.updateProgress(h),M.setWrapperTransition(u),M.setWrapperTranslate(d),M.onTransitionStart(),M.animating=!0,M.wrapper.transitionEnd((function(){M&&Y&&(M.emit("onMomentumBounce",M),M.setWrapperTransition(M.params.speed),M.setWrapperTranslate(h),M.wrapper.transitionEnd((function(){M&&M.onTransitionEnd()})))}))):M.velocity?(M.updateProgress(d),M.setWrapperTransition(u),M.setWrapperTranslate(d),M.onTransitionStart(),M.animating||(M.animating=!0,M.wrapper.transitionEnd((function(){M&&M.onTransitionEnd()})))):M.updateProgress(d),M.updateActiveIndex()}return void((!M.params.freeModeMomentum||r>=M.params.longSwipesMs)&&(M.updateProgress(),M.updateActiveIndex()))}var v,_=0,y=M.slidesSizesGrid[0];for(v=0;v<M.slidesGrid.length;v+=M.params.slidesPerGroup)void 0!==M.slidesGrid[v+M.params.slidesPerGroup]?n>=M.slidesGrid[v]&&n<M.slidesGrid[v+M.params.slidesPerGroup]&&(_=v,y=M.slidesGrid[v+M.params.slidesPerGroup]-M.slidesGrid[v]):n>=M.slidesGrid[v]&&(_=v,y=M.slidesGrid[M.slidesGrid.length-1]-M.slidesGrid[M.slidesGrid.length-2]);var b=(n-M.slidesGrid[_])/y;if(r>M.params.longSwipesMs){if(!M.params.longSwipes)return void M.slideTo(M.activeIndex);"next"===M.swipeDirection&&(b>=M.params.longSwipesRatio?M.slideTo(_+M.params.slidesPerGroup):M.slideTo(_)),"prev"===M.swipeDirection&&(b>1-M.params.longSwipesRatio?M.slideTo(_+M.params.slidesPerGroup):M.slideTo(_))}else{if(!M.params.shortSwipes)return void M.slideTo(M.activeIndex);"next"===M.swipeDirection&&M.slideTo(_+M.params.slidesPerGroup),"prev"===M.swipeDirection&&M.slideTo(_)}}},M._slideTo=function(e,t){return M.slideTo(e,t,!0,!0)},M.slideTo=function(e,t,n,i){void 0===n&&(n=!0),void 0===e&&(e=0),0>e&&(e=0),M.snapIndex=Math.floor(e/M.params.slidesPerGroup),M.snapIndex>=M.snapGrid.length&&(M.snapIndex=M.snapGrid.length-1);var r=-M.snapGrid[M.snapIndex];M.params.autoplay&&M.autoplaying&&(i||!M.params.autoplayDisableOnInteraction?M.pauseAutoplay(t):M.stopAutoplay()),M.updateProgress(r);for(var o=0;o<M.slidesGrid.length;o++)-Math.floor(100*r)>=Math.floor(100*M.slidesGrid[o])&&(e=o);return!(!M.params.allowSwipeToNext&&r<M.translate&&r<M.minTranslate()||!M.params.allowSwipeToPrev&&r>M.translate&&r>M.maxTranslate()&&(M.activeIndex||0)!==e||(void 0===t&&(t=M.params.speed),M.previousIndex=M.activeIndex||0,M.activeIndex=e,M.rtl&&-r===M.translate||!M.rtl&&r===M.translate?(M.params.autoHeight&&M.updateAutoHeight(),M.updateClasses(),"slide"!==M.params.effect&&M.setWrapperTranslate(r),1):(M.updateClasses(),M.onTransitionStart(n),0===t?(M.setWrapperTranslate(r),M.setWrapperTransition(0),M.onTransitionEnd(n)):(M.setWrapperTranslate(r),M.setWrapperTransition(t),M.animating||(M.animating=!0,M.wrapper.transitionEnd((function(){M&&M.onTransitionEnd(n)})))),0)))},M.onTransitionStart=function(e){void 0===e&&(e=!0),M.params.autoHeight&&M.updateAutoHeight(),M.lazy&&M.lazy.onTransitionStart(),e&&(M.emit("onTransitionStart",M),M.activeIndex!==M.previousIndex&&(M.emit("onSlideChangeStart",M),o.$emit("$ionicSlides.slideChangeStart",{slider:M,activeIndex:M.getSlideDataIndex(M.activeIndex),previousIndex:M.getSlideDataIndex(M.previousIndex)}),M.activeIndex>M.previousIndex?M.emit("onSlideNextStart",M):M.emit("onSlidePrevStart",M)))},M.onTransitionEnd=function(e){M.animating=!1,M.setWrapperTransition(0),void 0===e&&(e=!0),M.lazy&&M.lazy.onTransitionEnd(),e&&(M.emit("onTransitionEnd",M),M.activeIndex!==M.previousIndex&&(M.emit("onSlideChangeEnd",M),o.$emit("$ionicSlides.slideChangeEnd",{slider:M,activeIndex:M.getSlideDataIndex(M.activeIndex),previousIndex:M.getSlideDataIndex(M.previousIndex)}),M.activeIndex>M.previousIndex?M.emit("onSlideNextEnd",M):M.emit("onSlidePrevEnd",M))),M.params.hashnav&&M.hashnav&&M.hashnav.setHash()},M.slideNext=function(e,t,n){return M.params.loop?!M.animating&&(M.fixLoop(),M.container[0].clientLeft,M.slideTo(M.activeIndex+M.params.slidesPerGroup,t,e,n)):M.slideTo(M.activeIndex+M.params.slidesPerGroup,t,e,n)},M._slideNext=function(e){return M.slideNext(!0,e,!0)},M.slidePrev=function(e,t,n){return M.params.loop?!M.animating&&(M.fixLoop(),M.container[0].clientLeft,M.slideTo(M.activeIndex-1,t,e,n)):M.slideTo(M.activeIndex-1,t,e,n)},M._slidePrev=function(e){return M.slidePrev(!0,e,!0)},M.slideReset=function(e,t,n){return M.slideTo(M.activeIndex,t,e)},M.setWrapperTransition=function(e,t){M.wrapper.transition(e),"slide"!==M.params.effect&&M.effects[M.params.effect]&&M.effects[M.params.effect].setTransition(e),M.params.parallax&&M.parallax&&M.parallax.setTransition(e),M.params.scrollbar&&M.scrollbar&&M.scrollbar.setTransition(e),M.params.control&&M.controller&&M.controller.setTransition(e,t),M.emit("onSetTransition",M,e)},M.setWrapperTranslate=function(e,t,n){var i=0,r=0;s()?i=M.rtl?-e:e:r=e,M.params.roundLengths&&(i=l(i),r=l(r)),M.params.virtualTranslate||(M.support.transforms3d?M.wrapper.transform("translate3d("+i+"px, "+r+"px, 0px)"):M.wrapper.transform("translate("+i+"px, "+r+"px)")),M.translate=s()?i:r;var o=M.maxTranslate()-M.minTranslate();(0===o?0:(e-M.minTranslate())/o)!==M.progress&&M.updateProgress(e),t&&M.updateActiveIndex(),"slide"!==M.params.effect&&M.effects[M.params.effect]&&M.effects[M.params.effect].setTranslate(M.translate),M.params.parallax&&M.parallax&&M.parallax.setTranslate(M.translate),M.params.scrollbar&&M.scrollbar&&M.scrollbar.setTranslate(M.translate),M.params.control&&M.controller&&M.controller.setTranslate(M.translate,n),M.emit("onSetTranslate",M,M.translate)},M.getTranslate=function(e,t){var n,i,r,o;return void 0===t&&(t="x"),M.params.virtualTranslate?M.rtl?-M.translate:M.translate:(r=window.getComputedStyle(e,null),window.WebKitCSSMatrix?((i=r.transform||r.webkitTransform).split(",").length>6&&(i=i.split(", ").map((function(e){return e.replace(",",".")})).join(", ")),o=new window.WebKitCSSMatrix("none"===i?"":i)):n=(o=r.MozTransform||r.OTransform||r.MsTransform||r.msTransform||r.transform||r.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,")).toString().split(","),"x"===t&&(i=window.WebKitCSSMatrix?o.m41:16===n.length?parseFloat(n[12]):parseFloat(n[4])),"y"===t&&(i=window.WebKitCSSMatrix?o.m42:16===n.length?parseFloat(n[13]):parseFloat(n[5])),M.rtl&&i&&(i=-i),i||0)},M.getWrapperTranslate=function(e){return void 0===e&&(e=s()?"x":"y"),M.getTranslate(M.wrapper[0],e)},M.observers=[],M.initObservers=function(){if(M.params.observeParents)for(var e=M.container.parents(),t=0;t<e.length;t++)d(e[t]);d(M.container[0],{childList:!1}),d(M.wrapper[0],{attributes:!1})},M.disconnectObservers=function(){for(var e=0;e<M.observers.length;e++)M.observers[e].disconnect();M.observers=[]},M.updateLoop=function(){var e=M.slides.eq(M.activeIndex);if(angular.element(e).hasClass(M.params.slideDuplicateClass)){for(var t=angular.element(e).attr("data-swiper-slide-index"),n=M.wrapper.children("."+M.params.slideClass),i=0;i<n.length;i++)if(!angular.element(n[i]).hasClass(M.params.slideDuplicateClass)&&angular.element(n[i]).attr("data-swiper-slide-index")===t){M.slideTo(i,0,!1,!0);break}setTimeout((function(){M.createLoop()}),50)}},M.getSlideDataIndex=function(e){var t=M.slides.eq(e),n=angular.element(t).attr("data-swiper-slide-index");return parseInt(n)},M.createLoop=function(){M.wrapper.children("."+M.params.slideClass+"."+M.params.slideDuplicateClass).remove();var e=M.wrapper.children("."+M.params.slideClass);"auto"!==M.params.slidesPerView||M.params.loopedSlides||(M.params.loopedSlides=e.length),M.loopedSlides=parseInt(M.params.loopedSlides||M.params.slidesPerView,10),M.loopedSlides=M.loopedSlides+M.params.loopAdditionalSlides,M.loopedSlides>e.length&&(M.loopedSlides=e.length);var n,i,r,o=[],s=[];for(e.each((function(n,i){var r=t(this);n<M.loopedSlides&&s.push(i),n<e.length&&n>=e.length-M.loopedSlides&&o.push(i),r.attr("data-swiper-slide-index",n)})),n=0;n<s.length;n++)(r=angular.element(s[n]).clone().addClass(M.params.slideDuplicateClass)).removeAttr("ng-transclude"),r.removeAttr("ng-repeat"),i=angular.element(s[n]).scope(),r=a(r)(i),angular.element(M.wrapper).append(r);for(n=o.length-1;n>=0;n--)(r=angular.element(o[n]).clone().addClass(M.params.slideDuplicateClass)).removeAttr("ng-transclude"),r.removeAttr("ng-repeat"),i=angular.element(o[n]).scope(),r=a(r)(i),angular.element(M.wrapper).prepend(r)},M.destroyLoop=function(){M.wrapper.children("."+M.params.slideClass+"."+M.params.slideDuplicateClass).remove(),M.slides.removeAttr("data-swiper-slide-index")},M.fixLoop=function(){var e;M.activeIndex<M.loopedSlides?(e=M.slides.length-3*M.loopedSlides+M.activeIndex,e+=M.loopedSlides,M.slideTo(e,0,!1,!0)):("auto"===M.params.slidesPerView&&M.activeIndex>=2*M.loopedSlides||M.activeIndex>M.slides.length-2*M.params.slidesPerView)&&(e=-M.slides.length+M.activeIndex+M.loopedSlides,e+=M.loopedSlides,M.slideTo(e,0,!1,!0))},M.appendSlide=function(e){if(M.params.loop&&M.destroyLoop(),"object"==typeof e&&e.length)for(var t=0;t<e.length;t++)e[t]&&M.wrapper.append(e[t]);else M.wrapper.append(e);M.params.loop&&M.createLoop(),M.params.observer&&M.support.observer||M.update(!0)},M.prependSlide=function(e){M.params.loop&&M.destroyLoop();var t=M.activeIndex+1;if("object"==typeof e&&e.length){for(var n=0;n<e.length;n++)e[n]&&M.wrapper.prepend(e[n]);t=M.activeIndex+e.length}else M.wrapper.prepend(e);M.params.loop&&M.createLoop(),M.params.observer&&M.support.observer||M.update(!0),M.slideTo(t,0,!1)},M.removeSlide=function(e){M.params.loop&&(M.destroyLoop(),M.slides=M.wrapper.children("."+M.params.slideClass));var t,n=M.activeIndex;if("object"==typeof e&&e.length){for(var i=0;i<e.length;i++)t=e[i],M.slides[t]&&M.slides.eq(t).remove(),n>t&&n--;n=Math.max(n,0)}else t=e,M.slides[t]&&M.slides.eq(t).remove(),n>t&&n--,n=Math.max(n,0);M.params.loop&&M.createLoop(),M.params.observer&&M.support.observer||M.update(!0),M.params.loop?M.slideTo(n+M.loopedSlides,0,!1):M.slideTo(n,0,!1)},M.removeAllSlides=function(){for(var e=[],t=0;t<M.slides.length;t++)e.push(t);M.removeSlide(e)},M.effects={fade:{setTranslate:function(){for(var e=0;e<M.slides.length;e++){var t=M.slides.eq(e),n=-t[0].swiperSlideOffset;M.params.virtualTranslate||(n-=M.translate);var i=0;s()||(i=n,n=0);var r=M.params.fade.crossFade?Math.max(1-Math.abs(t[0].progress),0):1+Math.min(Math.max(t[0].progress,-1),0);t.css({opacity:r}).transform("translate3d("+n+"px, "+i+"px, 0px)")}},setTransition:function(e){if(M.slides.transition(e),M.params.virtualTranslate&&0!==e){var t=!1;M.slides.transitionEnd((function(){if(!t&&M){t=!0,M.animating=!1;for(var e=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],n=0;n<e.length;n++)M.wrapper.trigger(e[n])}}))}}},cube:{setTranslate:function(){var e,n=0;M.params.cube.shadow&&(s()?(0===(e=M.wrapper.find(".swiper-cube-shadow")).length&&(e=t('<div class="swiper-cube-shadow"></div>'),M.wrapper.append(e)),e.css({height:M.width+"px"})):0===(e=M.container.find(".swiper-cube-shadow")).length&&(e=t('<div class="swiper-cube-shadow"></div>'),M.container.append(e)));for(var i=0;i<M.slides.length;i++){var r=M.slides.eq(i),o=90*i,a=Math.floor(o/360);M.rtl&&(o=-o,a=Math.floor(-o/360));var l=Math.max(Math.min(r[0].progress,1),-1),u=0,c=0,d=0;i%4==0?(u=4*-a*M.size,d=0):(i-1)%4==0?(u=0,d=4*-a*M.size):(i-2)%4==0?(u=M.size+4*a*M.size,d=M.size):(i-3)%4==0&&(u=-M.size,d=3*M.size+4*M.size*a),M.rtl&&(u=-u),s()||(c=u,u=0);var h="rotateX("+(s()?0:-o)+"deg) rotateY("+(s()?o:0)+"deg) translate3d("+u+"px, "+c+"px, "+d+"px)";if(1>=l&&l>-1&&(n=90*i+90*l,M.rtl&&(n=90*-i-90*l)),r.transform(h),M.params.cube.slideShadows){var f=s()?r.find(".swiper-slide-shadow-left"):r.find(".swiper-slide-shadow-top"),p=s()?r.find(".swiper-slide-shadow-right"):r.find(".swiper-slide-shadow-bottom");0===f.length&&(f=t('<div class="swiper-slide-shadow-'+(s()?"left":"top")+'"></div>'),r.append(f)),0===p.length&&(p=t('<div class="swiper-slide-shadow-'+(s()?"right":"bottom")+'"></div>'),r.append(p)),r[0].progress,f.length&&(f[0].style.opacity=-r[0].progress),p.length&&(p[0].style.opacity=r[0].progress)}}if(M.wrapper.css({"-webkit-transform-origin":"50% 50% -"+M.size/2+"px","-moz-transform-origin":"50% 50% -"+M.size/2+"px","-ms-transform-origin":"50% 50% -"+M.size/2+"px","transform-origin":"50% 50% -"+M.size/2+"px"}),M.params.cube.shadow)if(s())e.transform("translate3d(0px, "+(M.width/2+M.params.cube.shadowOffset)+"px, "+-M.width/2+"px) rotateX(90deg) rotateZ(0deg) scale("+M.params.cube.shadowScale+")");else{var m=Math.abs(n)-90*Math.floor(Math.abs(n)/90),g=1.5-(Math.sin(2*m*Math.PI/360)/2+Math.cos(2*m*Math.PI/360)/2),v=M.params.cube.shadowScale,_=M.params.cube.shadowScale/g,y=M.params.cube.shadowOffset;e.transform("scale3d("+v+", 1, "+_+") translate3d(0px, "+(M.height/2+y)+"px, "+-M.height/2/_+"px) rotateX(-90deg)")}var b=M.isSafari||M.isUiWebView?-M.size/2:0;M.wrapper.transform("translate3d(0px,0,"+b+"px) rotateX("+(s()?0:n)+"deg) rotateY("+(s()?-n:0)+"deg)")},setTransition:function(e){M.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),M.params.cube.shadow&&!s()&&M.container.find(".swiper-cube-shadow").transition(e)}},coverflow:{setTranslate:function(){for(var e=M.translate,n=s()?-e+M.width/2:-e+M.height/2,i=s()?M.params.coverflow.rotate:-M.params.coverflow.rotate,r=M.params.coverflow.depth,o=0,a=M.slides.length;a>o;o++){var l=M.slides.eq(o),u=M.slidesSizesGrid[o],c=(n-l[0].swiperSlideOffset-u/2)/u*M.params.coverflow.modifier,d=s()?i*c:0,h=s()?0:i*c,f=-r*Math.abs(c),p=s()?0:M.params.coverflow.stretch*c,m=s()?M.params.coverflow.stretch*c:0;Math.abs(m)<.001&&(m=0),Math.abs(p)<.001&&(p=0),Math.abs(f)<.001&&(f=0),Math.abs(d)<.001&&(d=0),Math.abs(h)<.001&&(h=0);var g="translate3d("+m+"px,"+p+"px,"+f+"px)  rotateX("+h+"deg) rotateY("+d+"deg)";if(l.transform(g),l[0].style.zIndex=1-Math.abs(Math.round(c)),M.params.coverflow.slideShadows){var v=s()?l.find(".swiper-slide-shadow-left"):l.find(".swiper-slide-shadow-top"),_=s()?l.find(".swiper-slide-shadow-right"):l.find(".swiper-slide-shadow-bottom");0===v.length&&(v=t('<div class="swiper-slide-shadow-'+(s()?"left":"top")+'"></div>'),l.append(v)),0===_.length&&(_=t('<div class="swiper-slide-shadow-'+(s()?"right":"bottom")+'"></div>'),l.append(_)),v.length&&(v[0].style.opacity=c>0?c:0),_.length&&(_[0].style.opacity=-c>0?-c:0)}}M.browser.ie&&(M.wrapper[0].style.perspectiveOrigin=n+"px 50%")},setTransition:function(e){M.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}}},M.lazy={initialImageLoaded:!1,loadImageInSlide:function(e,n){if(void 0!==e&&(void 0===n&&(n=!0),0!==M.slides.length)){var i=M.slides.eq(e),r=i.find(".swiper-lazy:not(.swiper-lazy-loaded):not(.swiper-lazy-loading)");!i.hasClass("swiper-lazy")||i.hasClass("swiper-lazy-loaded")||i.hasClass("swiper-lazy-loading")||(r=r.add(i[0])),0!==r.length&&r.each((function(){var e=t(this);e.addClass("swiper-lazy-loading");var r=e.attr("data-background"),o=e.attr("data-src"),a=e.attr("data-srcset");M.loadImage(e[0],o||r,a,!1,(function(){if(r?(e.css("background-image","url("+r+")"),e.removeAttr("data-background")):(a&&(e.attr("srcset",a),e.removeAttr("data-srcset")),o&&(e.attr("src",o),e.removeAttr("data-src"))),e.addClass("swiper-lazy-loaded").removeClass("swiper-lazy-loading"),i.find(".swiper-lazy-preloader, .preloader").remove(),M.params.loop&&n){var t=i.attr("data-swiper-slide-index");if(i.hasClass(M.params.slideDuplicateClass)){var s=M.wrapper.children('[data-swiper-slide-index="'+t+'"]:not(.'+M.params.slideDuplicateClass+")");M.lazy.loadImageInSlide(s.index(),!1)}else{var l=M.wrapper.children("."+M.params.slideDuplicateClass+'[data-swiper-slide-index="'+t+'"]');M.lazy.loadImageInSlide(l.index(),!1)}}M.emit("onLazyImageReady",M,i[0],e[0])})),M.emit("onLazyImageLoad",M,i[0],e[0])}))}},load:function(){var e;if(M.params.watchSlidesVisibility)M.wrapper.children("."+M.params.slideVisibleClass).each((function(){M.lazy.loadImageInSlide(t(this).index())}));else if(M.params.slidesPerView>1)for(e=M.activeIndex;e<M.activeIndex+M.params.slidesPerView;e++)M.slides[e]&&M.lazy.loadImageInSlide(e);else M.lazy.loadImageInSlide(M.activeIndex);if(M.params.lazyLoadingInPrevNext)if(M.params.slidesPerView>1){for(e=M.activeIndex+M.params.slidesPerView;e<M.activeIndex+M.params.slidesPerView+M.params.slidesPerView;e++)M.slides[e]&&M.lazy.loadImageInSlide(e);for(e=M.activeIndex-M.params.slidesPerView;e<M.activeIndex;e++)M.slides[e]&&M.lazy.loadImageInSlide(e)}else{var n=M.wrapper.children("."+M.params.slideNextClass);n.length>0&&M.lazy.loadImageInSlide(n.index());var i=M.wrapper.children("."+M.params.slidePrevClass);i.length>0&&M.lazy.loadImageInSlide(i.index())}},onTransitionStart:function(){M.params.lazyLoading&&(M.params.lazyLoadingOnTransitionStart||!M.params.lazyLoadingOnTransitionStart&&!M.lazy.initialImageLoaded)&&M.lazy.load()},onTransitionEnd:function(){M.params.lazyLoading&&!M.params.lazyLoadingOnTransitionStart&&M.lazy.load()}},M.scrollbar={isTouched:!1,setDragPosition:function(e){var t=M.scrollbar,n=(s()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageX:e.pageX||e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageY:e.pageY||e.clientY)-t.track.offset()[s()?"left":"top"]-t.dragSize/2,i=-M.minTranslate()*t.moveDivider,r=-M.maxTranslate()*t.moveDivider;i>n?n=i:n>r&&(n=r),n=-n/t.moveDivider,M.updateProgress(n),M.setWrapperTranslate(n,!0)},dragStart:function(e){var t=M.scrollbar;t.isTouched=!0,e.preventDefault(),e.stopPropagation(),t.setDragPosition(e),clearTimeout(t.dragTimeout),t.track.transition(0),M.params.scrollbarHide&&t.track.css("opacity",1),M.wrapper.transition(100),t.drag.transition(100),M.emit("onScrollbarDragStart",M)},dragMove:function(e){var t=M.scrollbar;t.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,t.setDragPosition(e),M.wrapper.transition(0),t.track.transition(0),t.drag.transition(0),M.emit("onScrollbarDragMove",M))},dragEnd:function(e){var t=M.scrollbar;t.isTouched&&(t.isTouched=!1,M.params.scrollbarHide&&(clearTimeout(t.dragTimeout),t.dragTimeout=setTimeout((function(){t.track.css("opacity",0),t.track.transition(400)}),1e3)),M.emit("onScrollbarDragEnd",M),M.params.scrollbarSnapOnRelease&&M.slideReset())},enableDraggable:function(){var e=M.scrollbar,n=M.support.touch?e.track:document;t(e.track).on(M.touchEvents.start,e.dragStart),t(n).on(M.touchEvents.move,e.dragMove),t(n).on(M.touchEvents.end,e.dragEnd)},disableDraggable:function(){var e=M.scrollbar,n=M.support.touch?e.track:document;t(e.track).off(M.touchEvents.start,e.dragStart),t(n).off(M.touchEvents.move,e.dragMove),t(n).off(M.touchEvents.end,e.dragEnd)},set:function(){if(M.params.scrollbar){var e=M.scrollbar;e.track=t(M.params.scrollbar),e.drag=e.track.find(".swiper-scrollbar-drag"),0===e.drag.length&&(e.drag=t('<div class="swiper-scrollbar-drag"></div>'),e.track.append(e.drag)),e.drag[0].style.width="",e.drag[0].style.height="",e.trackSize=s()?e.track[0].offsetWidth:e.track[0].offsetHeight,e.divider=M.size/M.virtualSize,e.moveDivider=e.divider*(e.trackSize/M.size),e.dragSize=e.trackSize*e.divider,s()?e.drag[0].style.width=e.dragSize+"px":e.drag[0].style.height=e.dragSize+"px",e.divider>=1?e.track[0].style.display="none":e.track[0].style.display="",M.params.scrollbarHide&&(e.track[0].style.opacity=0)}},setTranslate:function(){if(M.params.scrollbar){var e,t=M.scrollbar,n=(M.translate,t.dragSize);e=(t.trackSize-t.dragSize)*M.progress,M.rtl&&s()?(e=-e)>0?(n=t.dragSize-e,e=0):-e+t.dragSize>t.trackSize&&(n=t.trackSize+e):0>e?(n=t.dragSize+e,e=0):e+t.dragSize>t.trackSize&&(n=t.trackSize-e),s()?(M.support.transforms3d?t.drag.transform("translate3d("+e+"px, 0, 0)"):t.drag.transform("translateX("+e+"px)"),t.drag[0].style.width=n+"px"):(M.support.transforms3d?t.drag.transform("translate3d(0px, "+e+"px, 0)"):t.drag.transform("translateY("+e+"px)"),t.drag[0].style.height=n+"px"),M.params.scrollbarHide&&(clearTimeout(t.timeout),t.track[0].style.opacity=1,t.timeout=setTimeout((function(){t.track[0].style.opacity=0,t.track.transition(400)}),1e3))}},setTransition:function(e){M.params.scrollbar&&M.scrollbar.drag.transition(e)}},M.controller={LinearSpline:function(e,t){var n,i;this.x=e,this.y=t,this.lastIndex=e.length-1,this.x.length,this.interpolate=function(e){return e?(i=r(this.x,e),n=i-1,(e-this.x[n])*(this.y[i]-this.y[n])/(this.x[i]-this.x[n])+this.y[n]):0};var r=function(){var e,t,n;return function(i,r){for(t=-1,e=i.length;e-t>1;)i[n=e+t>>1]<=r?t=n:e=n;return e}}()},getInterpolateFunction:function(e){M.controller.spline||(M.controller.spline=M.params.loop?new M.controller.LinearSpline(M.slidesGrid,e.slidesGrid):new M.controller.LinearSpline(M.snapGrid,e.snapGrid))},setTranslate:function(e,t){function n(t){e=t.rtl&&"horizontal"===t.params.direction?-M.translate:M.translate,"slide"===M.params.controlBy&&(M.controller.getInterpolateFunction(t),o=-M.controller.spline.interpolate(-e)),
+o&&"container"!==M.params.controlBy||(r=(t.maxTranslate()-t.minTranslate())/(M.maxTranslate()-M.minTranslate()),o=(e-M.minTranslate())*r+t.minTranslate()),M.params.controlInverse&&(o=t.maxTranslate()-o),t.updateProgress(o),t.setWrapperTranslate(o,!1,M),t.updateActiveIndex()}var r,o,a=M.params.control;if(M.isArray(a))for(var s=0;s<a.length;s++)a[s]!==t&&a[s]instanceof i&&n(a[s]);else a instanceof i&&t!==a&&n(a)},setTransition:function(e,t){function n(t){t.setWrapperTransition(e,M),0!==e&&(t.onTransitionStart(),t.wrapper.transitionEnd((function(){o&&(t.params.loop&&"slide"===M.params.controlBy&&t.fixLoop(),t.onTransitionEnd())})))}var r,o=M.params.control;if(M.isArray(o))for(r=0;r<o.length;r++)o[r]!==t&&o[r]instanceof i&&n(o[r]);else o instanceof i&&t!==o&&n(o)}},M.hashnav={init:function(){if(M.params.hashnav){M.hashnav.initialized=!0;var e=document.location.hash.replace("#","");if(e)for(var t=0,n=M.slides.length;n>t;t++){var i=M.slides.eq(t);if(i.attr("data-hash")===e&&!i.hasClass(M.params.slideDuplicateClass)){var r=i.index();M.slideTo(r,0,M.params.runCallbacksOnInit,!0)}}}},setHash:function(){M.hashnav.initialized&&M.params.hashnav&&(document.location.hash=M.slides.eq(M.activeIndex).attr("data-hash")||"")}},M.disableKeyboardControl=function(){M.params.keyboardControl=!1,t(document).off("keydown",h)},M.enableKeyboardControl=function(){M.params.keyboardControl=!0,t(document).on("keydown",h)},M.mousewheel={event:!1,lastScrollTime:(new window.Date).getTime()},M.params.mousewheelControl){try{new window.WheelEvent("wheel"),M.mousewheel.event="wheel"}catch(e){}M.mousewheel.event||void 0===document.onmousewheel||(M.mousewheel.event="mousewheel"),M.mousewheel.event||(M.mousewheel.event="DOMMouseScroll")}for(var B in M.disableMousewheelControl=function(){return!!M.mousewheel.event&&(M.container.off(M.mousewheel.event,f),!0)},M.enableMousewheelControl=function(){return!!M.mousewheel.event&&(M.container.on(M.mousewheel.event,f),!0)},M.parallax={setTranslate:function(){M.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each((function(){p(this,M.progress)})),M.slides.each((function(){var e=t(this);e.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each((function(){p(this,Math.min(Math.max(e[0].progress,-1),1))}))}))},setTransition:function(e){void 0===e&&(e=M.params.speed),M.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each((function(){var n=t(this),i=parseInt(n.attr("data-swiper-parallax-duration"),10)||e;0===e&&(i=0),n.transition(i)}))}},M._plugins=[],M.plugins){var R=M.plugins[B](M,M.params[B]);R&&M._plugins.push(R)}return M.callPlugins=function(e){for(var t=0;t<M._plugins.length;t++)e in M._plugins[t]&&M._plugins[t][e](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])},M.emitterEventListeners={},M.emit=function(e){var t;if(M.params[e]&&M.params[e](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]),M.emitterEventListeners[e])for(t=0;t<M.emitterEventListeners[e].length;t++)M.emitterEventListeners[e][t](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);M.callPlugins&&M.callPlugins(e,arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])},M.on=function(e,t){return e=m(e),M.emitterEventListeners[e]||(M.emitterEventListeners[e]=[]),M.emitterEventListeners[e].push(t),M},M.off=function(e,t){var n;if(e=m(e),void 0===t)return M.emitterEventListeners[e]=[],M;if(M.emitterEventListeners[e]&&0!==M.emitterEventListeners[e].length){for(n=0;n<M.emitterEventListeners[e].length;n++)M.emitterEventListeners[e][n]===t&&M.emitterEventListeners[e].splice(n,1);return M}},M.once=function(e,t){e=m(e);var n=function(){t(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]),M.off(e,n)};return M.on(e,n),M},M.a11y={makeFocusable:function(e){return e.attr("tabIndex","0"),e},addRole:function(e,t){return e.attr("role",t),e},addLabel:function(e,t){return e.attr("aria-label",t),e},disable:function(e){return e.attr("aria-disabled",!0),e},enable:function(e){return e.attr("aria-disabled",!1),e},onEnterKey:function(e){13===e.keyCode&&(t(e.target).is(M.params.nextButton)?(M.onClickNext(e),M.isEnd?M.a11y.notify(M.params.lastSlideMessage):M.a11y.notify(M.params.nextSlideMessage)):t(e.target).is(M.params.prevButton)&&(M.onClickPrev(e),M.isBeginning?M.a11y.notify(M.params.firstSlideMessage):M.a11y.notify(M.params.prevSlideMessage)),t(e.target).is("."+M.params.bulletClass)&&t(e.target)[0].click())},liveRegion:t('<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>'),notify:function(e){var t=M.a11y.liveRegion;0!==t.length&&(t.html(""),t.html(e))},init:function(){if(M.params.nextButton){var e=t(M.params.nextButton);M.a11y.makeFocusable(e),M.a11y.addRole(e,"button"),M.a11y.addLabel(e,M.params.nextSlideMessage)}if(M.params.prevButton){var n=t(M.params.prevButton);M.a11y.makeFocusable(n),M.a11y.addRole(n,"button"),M.a11y.addLabel(n,M.params.prevSlideMessage)}t(M.container).append(M.a11y.liveRegion)},initPagination:function(){M.params.pagination&&M.params.paginationClickable&&M.bullets&&M.bullets.length&&M.bullets.each((function(){var e=t(this);M.a11y.makeFocusable(e),M.a11y.addRole(e,"button"),M.a11y.addLabel(e,M.params.paginationBulletMessage.replace(/{{index}}/,e.index()+1))}))},destroy:function(){M.a11y.liveRegion&&M.a11y.liveRegion.length>0&&M.a11y.liveRegion.remove()}},M.init=function(){M.params.loop&&M.createLoop(),M.updateContainerSize(),M.updateSlidesSize(),M.updatePagination(),M.params.scrollbar&&M.scrollbar&&(M.scrollbar.set(),M.params.scrollbarDraggable&&M.scrollbar.enableDraggable()),"slide"!==M.params.effect&&M.effects[M.params.effect]&&(M.params.loop||M.updateProgress(),M.effects[M.params.effect].setTranslate()),M.params.loop?M.slideTo(M.params.initialSlide+M.loopedSlides,0,M.params.runCallbacksOnInit):(M.slideTo(M.params.initialSlide,0,M.params.runCallbacksOnInit),0===M.params.initialSlide&&(M.parallax&&M.params.parallax&&M.parallax.setTranslate(),M.lazy&&M.params.lazyLoading&&(M.lazy.load(),M.lazy.initialImageLoaded=!0))),M.attachEvents(),M.params.observer&&M.support.observer&&M.initObservers(),M.params.preloadImages&&!M.params.lazyLoading&&M.preloadImages(),M.params.autoplay&&M.startAutoplay(),M.params.keyboardControl&&M.enableKeyboardControl&&M.enableKeyboardControl(),M.params.mousewheelControl&&M.enableMousewheelControl&&M.enableMousewheelControl(),M.params.hashnav&&M.hashnav&&M.hashnav.init(),M.params.a11y&&M.a11y&&M.a11y.init(),M.emit("onInit",M)},M.cleanupStyles=function(){M.container.removeClass(M.classNames.join(" ")).removeAttr("style"),M.wrapper.removeAttr("style"),M.slides&&M.slides.length&&M.slides.removeClass([M.params.slideVisibleClass,M.params.slideActiveClass,M.params.slideNextClass,M.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"),M.paginationContainer&&M.paginationContainer.length&&M.paginationContainer.removeClass(M.params.paginationHiddenClass),M.bullets&&M.bullets.length&&M.bullets.removeClass(M.params.bulletActiveClass),M.params.prevButton&&t(M.params.prevButton).removeClass(M.params.buttonDisabledClass),M.params.nextButton&&t(M.params.nextButton).removeClass(M.params.buttonDisabledClass),M.params.scrollbar&&M.scrollbar&&(M.scrollbar.track&&M.scrollbar.track.length&&M.scrollbar.track.removeAttr("style"),M.scrollbar.drag&&M.scrollbar.drag.length&&M.scrollbar.drag.removeAttr("style"))},M.destroy=function(e,t){M.detachEvents(),M.stopAutoplay(),M.params.scrollbar&&M.scrollbar&&M.params.scrollbarDraggable&&M.scrollbar.disableDraggable(),M.params.loop&&M.destroyLoop(),t&&M.cleanupStyles(),M.disconnectObservers(),M.params.keyboardControl&&M.disableKeyboardControl&&M.disableKeyboardControl(),M.params.mousewheelControl&&M.disableMousewheelControl&&M.disableMousewheelControl(),M.params.a11y&&M.a11y&&M.a11y.destroy(),M.emit("onDestroy"),!1!==e&&(M=null)},M.init(),M}};i.prototype={isSafari:function(){var e=navigator.userAgent.toLowerCase();return e.indexOf("safari")>=0&&e.indexOf("chrome")<0&&e.indexOf("android")<0}(),isUiWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent),isArray:function(e){return"[object Array]"===Object.prototype.toString.apply(e)},browser:{ie:window.navigator.pointerEnabled||window.navigator.msPointerEnabled,ieTouch:window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>1||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>1},device:function(){var e=navigator.userAgent,t=e.match(/(Android);?[\s\/]+([\d.]+)?/),n=e.match(/(iPad).*OS\s([\d_]+)/),i=e.match(/(iPod)(.*OS\s([\d_]+))?/),r=!n&&e.match(/(iPhone\sOS)\s([\d_]+)/);return{ios:n||r||i,android:t}}(),support:{touch:window.Modernizr&&!0===Modernizr.touch||!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch),transforms3d:window.Modernizr&&!0===Modernizr.csstransforms3d||function(){var e=document.createElement("div").style;return"webkitPerspective"in e||"MozPerspective"in e||"OPerspective"in e||"MsPerspective"in e||"perspective"in e}(),flexbox:function(){for(var e=document.createElement("div").style,t="alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "),n=0;n<t.length;n++)if(t[n]in e)return!0}(),observer:"MutationObserver"in window||"WebkitMutationObserver"in window},plugins:{}};for(var r=function(){var e=function(e){var t=0;for(t=0;t<e.length;t++)this[t]=e[t];return this.length=e.length,this},t=function(t,n){var i=[],r=0;if(t&&!n&&t instanceof e)return t;if(t)if("string"==typeof t){var o,a,s=t.trim();if(s.indexOf("<")>=0&&s.indexOf(">")>=0){var l="div";for(0===s.indexOf("<li")&&(l="ul"),0===s.indexOf("<tr")&&(l="tbody"),(0===s.indexOf("<td")||0===s.indexOf("<th"))&&(l="tr"),0===s.indexOf("<tbody")&&(l="table"),0===s.indexOf("<option")&&(l="select"),(a=document.createElement(l)).innerHTML=t,r=0;r<a.childNodes.length;r++)i.push(a.childNodes[r])}else for(o=n||"#"!==t[0]||t.match(/[ .<>:~]/)?(n||document).querySelectorAll(t):[document.getElementById(t.split("#")[1])],r=0;r<o.length;r++)o[r]&&i.push(o[r])}else if(t.nodeType||t===window||t===document)i.push(t);else if(t.length>0&&t[0].nodeType)for(r=0;r<t.length;r++)i.push(t[r]);return new e(i)};return e.prototype={addClass:function(e){if(void 0===e)return this;for(var t=e.split(" "),n=0;n<t.length;n++)for(var i=0;i<this.length;i++)this[i].classList.add(t[n]);return this},removeClass:function(e){for(var t=e.split(" "),n=0;n<t.length;n++)for(var i=0;i<this.length;i++)this[i].classList.remove(t[n]);return this},hasClass:function(e){return!!this[0]&&this[0].classList.contains(e)},toggleClass:function(e){for(var t=e.split(" "),n=0;n<t.length;n++)for(var i=0;i<this.length;i++)this[i].classList.toggle(t[n]);return this},attr:function(e,t){if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(var n=0;n<this.length;n++)if(2===arguments.length)this[n].setAttribute(e,t);else for(var i in e)this[n][i]=e[i],this[n].setAttribute(i,e[i]);return this},removeAttr:function(e){for(var t=0;t<this.length;t++)this[t].removeAttribute(e);return this},data:function(e,t){if(void 0!==t){for(var n=0;n<this.length;n++){var i=this[n];i.dom7ElementDataStorage||(i.dom7ElementDataStorage={}),i.dom7ElementDataStorage[e]=t}return this}if(this[0])return this[0].getAttribute("data-"+e)||(this[0].dom7ElementDataStorage&&e in this[0].dom7ElementDataStorage?this[0].dom7ElementDataStorage[e]:void 0)},transform:function(e){for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransform=n.MsTransform=n.msTransform=n.MozTransform=n.OTransform=n.transform=e}return this},transition:function(e){"string"!=typeof e&&(e+="ms");for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransitionDuration=n.MsTransitionDuration=n.msTransitionDuration=n.MozTransitionDuration=n.OTransitionDuration=n.transitionDuration=e}return this},on:function(e,n,i,r){function o(e){var r=e.target;if(t(r).is(n))i.call(r,e);else for(var o=t(r).parents(),a=0;a<o.length;a++)t(o[a]).is(n)&&i.call(o[a],e)}var a,s,l=e.split(" ");for(a=0;a<this.length;a++)if("function"==typeof n||!1===n)for("function"==typeof n&&(i=arguments[1],r=arguments[2]||!1),s=0;s<l.length;s++)this[a].addEventListener(l[s],i,r);else for(s=0;s<l.length;s++)this[a].dom7LiveListeners||(this[a].dom7LiveListeners=[]),this[a].dom7LiveListeners.push({listener:i,liveListener:o}),this[a].addEventListener(l[s],o,r);return this},off:function(e,t,n,i){for(var r=e.split(" "),o=0;o<r.length;o++)for(var a=0;a<this.length;a++)if("function"==typeof t||!1===t)"function"==typeof t&&(n=arguments[1],i=arguments[2]||!1),this[a].removeEventListener(r[o],n,i);else if(this[a].dom7LiveListeners)for(var s=0;s<this[a].dom7LiveListeners.length;s++)this[a].dom7LiveListeners[s].listener===n&&this[a].removeEventListener(r[o],this[a].dom7LiveListeners[s].liveListener,i);return this},once:function(e,t,n,i){function r(a){n(a),o.off(e,t,r,i)}var o=this;"function"==typeof t&&(t=!1,n=arguments[1],i=arguments[2]),o.on(e,t,r,i)},trigger:function(e,t){for(var n=0;n<this.length;n++){var i;try{i=new window.CustomEvent(e,{detail:t,bubbles:!0,cancelable:!0})}catch(n){(i=document.createEvent("Event")).initEvent(e,!0,!0),i.detail=t}this[n].dispatchEvent(i)}return this},transitionEnd:function(e){function t(o){if(o.target===this)for(e.call(this,o),n=0;n<i.length;n++)r.off(i[n],t)}var n,i=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],r=this;if(e)for(n=0;n<i.length;n++)r.on(i[n],t);return this},width:function(){return this[0]===window?window.innerWidth:this.length>0?parseFloat(this.css("width")):null},outerWidth:function(e){return this.length>0?e?this[0].offsetWidth+parseFloat(this.css("margin-right"))+parseFloat(this.css("margin-left")):this[0].offsetWidth:null},height:function(){return this[0]===window?window.innerHeight:this.length>0?parseFloat(this.css("height")):null},outerHeight:function(e){return this.length>0?e?this[0].offsetHeight+parseFloat(this.css("margin-top"))+parseFloat(this.css("margin-bottom")):this[0].offsetHeight:null},offset:function(){if(this.length>0){var e=this[0],t=e.getBoundingClientRect(),n=document.body,i=e.clientTop||n.clientTop||0,r=e.clientLeft||n.clientLeft||0,o=window.pageYOffset||e.scrollTop,a=window.pageXOffset||e.scrollLeft;return{top:t.top+o-i,left:t.left+a-r}}return null},css:function(e,t){var n;if(1===arguments.length){if("string"!=typeof e){for(n=0;n<this.length;n++)for(var i in e)this[n].style[i]=e[i];return this}if(this[0])return window.getComputedStyle(this[0],null).getPropertyValue(e)}if(2===arguments.length&&"string"==typeof e){for(n=0;n<this.length;n++)this[n].style[e]=t;return this}return this},each:function(e){for(var t=0;t<this.length;t++)e.call(this[t],t,this[t]);return this},html:function(e){if(void 0===e)return this[0]?this[0].innerHTML:void 0;for(var t=0;t<this.length;t++)this[t].innerHTML=e;return this},is:function(n){if(!this[0])return!1;var i,r;if("string"==typeof n){var o=this[0];if(o===document)return n===document;if(o===window)return n===window;if(o.matches)return o.matches(n);if(o.webkitMatchesSelector)return o.webkitMatchesSelector(n);if(o.mozMatchesSelector)return o.mozMatchesSelector(n);if(o.msMatchesSelector)return o.msMatchesSelector(n);for(i=t(n),r=0;r<i.length;r++)if(i[r]===this[0])return!0;return!1}if(n===document)return this[0]===document;if(n===window)return this[0]===window;if(n.nodeType||n instanceof e){for(i=n.nodeType?[n]:n,r=0;r<i.length;r++)if(i[r]===this[0])return!0;return!1}return!1},index:function(){if(this[0]){for(var e=this[0],t=0;null!==(e=e.previousSibling);)1===e.nodeType&&t++;return t}},eq:function(t){if(void 0===t)return this;var n,i=this.length;return new e(t>i-1?[]:0>t?0>(n=i+t)?[]:[this[n]]:[this[t]])},append:function(t){var n,i;for(n=0;n<this.length;n++)if("string"==typeof t){var r=document.createElement("div");for(r.innerHTML=t;r.firstChild;)this[n].appendChild(r.firstChild)}else if(t instanceof e)for(i=0;i<t.length;i++)this[n].appendChild(t[i]);else this[n].appendChild(t);return this},prepend:function(t){var n,i;for(n=0;n<this.length;n++)if("string"==typeof t){var r=document.createElement("div");for(r.innerHTML=t,i=r.childNodes.length-1;i>=0;i--)this[n].insertBefore(r.childNodes[i],this[n].childNodes[0])}else if(t instanceof e)for(i=0;i<t.length;i++)this[n].insertBefore(t[i],this[n].childNodes[0]);else this[n].insertBefore(t,this[n].childNodes[0]);return this},insertBefore:function(e){for(var n=t(e),i=0;i<this.length;i++)if(1===n.length)n[0].parentNode.insertBefore(this[i],n[0]);else if(n.length>1)for(var r=0;r<n.length;r++)n[r].parentNode.insertBefore(this[i].cloneNode(!0),n[r])},insertAfter:function(e){for(var n=t(e),i=0;i<this.length;i++)if(1===n.length)n[0].parentNode.insertBefore(this[i],n[0].nextSibling);else if(n.length>1)for(var r=0;r<n.length;r++)n[r].parentNode.insertBefore(this[i].cloneNode(!0),n[r].nextSibling)},next:function(n){return new e(this.length>0?n?this[0].nextElementSibling&&t(this[0].nextElementSibling).is(n)?[this[0].nextElementSibling]:[]:this[0].nextElementSibling?[this[0].nextElementSibling]:[]:[])},nextAll:function(n){var i=[],r=this[0];if(!r)return new e([]);for(;r.nextElementSibling;){var o=r.nextElementSibling;n?t(o).is(n)&&i.push(o):i.push(o),r=o}return new e(i)},prev:function(n){return new e(this.length>0?n?this[0].previousElementSibling&&t(this[0].previousElementSibling).is(n)?[this[0].previousElementSibling]:[]:this[0].previousElementSibling?[this[0].previousElementSibling]:[]:[])},prevAll:function(n){var i=[],r=this[0];if(!r)return new e([]);for(;r.previousElementSibling;){var o=r.previousElementSibling;n?t(o).is(n)&&i.push(o):i.push(o),r=o}return new e(i)},parent:function(e){for(var n=[],i=0;i<this.length;i++)e?t(this[i].parentNode).is(e)&&n.push(this[i].parentNode):n.push(this[i].parentNode);return t(t.unique(n))},parents:function(e){for(var n=[],i=0;i<this.length;i++)for(var r=this[i].parentNode;r;)e?t(r).is(e)&&n.push(r):n.push(r),r=r.parentNode;return t(t.unique(n))},find:function(t){for(var n=[],i=0;i<this.length;i++)for(var r=this[i].querySelectorAll(t),o=0;o<r.length;o++)n.push(r[o]);return new e(n)},children:function(n){for(var i=[],r=0;r<this.length;r++)for(var o=this[r].childNodes,a=0;a<o.length;a++)n?1===o[a].nodeType&&t(o[a]).is(n)&&i.push(o[a]):1===o[a].nodeType&&i.push(o[a]);return new e(t.unique(i))},remove:function(){for(var e=0;e<this.length;e++)this[e].parentNode&&this[e].parentNode.removeChild(this[e]);return this},add:function(){var e,n,i=this;for(e=0;e<arguments.length;e++){var r=t(arguments[e]);for(n=0;n<r.length;n++)i[i.length]=r[n],i.length++}return i}},t.fn=e.prototype,t.unique=function(e){for(var t=[],n=0;n<e.length;n++)-1===t.indexOf(e[n])&&t.push(e[n]);return t},t}(),o=["jQuery","Zepto","Dom7"],a=0;a<o.length;a++)window[o[a]]&&e(window[o[a]]);(n=void 0===r?window.Dom7||window.Zepto||window.jQuery:r)&&("transitionEnd"in n.fn||(n.fn.transitionEnd=function(e){function t(o){if(o.target===this)for(e.call(this,o),n=0;n<i.length;n++)r.off(i[n],t)}var n,i=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],r=this;if(e)for(n=0;n<i.length;n++)r.on(i[n],t);return this}),"transform"in n.fn||(n.fn.transform=function(e){for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransform=n.MsTransform=n.msTransform=n.MozTransform=n.OTransform=n.transform=e}return this}),"transition"in n.fn||(n.fn.transition=function(e){"string"!=typeof e&&(e+="ms");for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransitionDuration=n.MsTransitionDuration=n.msTransitionDuration=n.MozTransitionDuration=n.OTransitionDuration=n.transitionDuration=e}return this})),ionic.views.Swiper=i}(),function(e){"use strict";e.views.Toggle=e.views.View.inherit({initialize:function(t){var n=this;this.el=t.el,this.checkbox=t.checkbox,this.track=t.track,this.handle=t.handle,this.openPercent=-1,this.onChange=t.onChange||function(){},this.triggerThreshold=t.triggerThreshold||20,this.dragStartHandler=function(e){n.dragStart(e)},this.dragHandler=function(e){n.drag(e)},this.holdHandler=function(e){n.hold(e)},this.releaseHandler=function(e){n.release(e)},this.dragStartGesture=e.onGesture("dragstart",this.dragStartHandler,this.el),this.dragGesture=e.onGesture("drag",this.dragHandler,this.el),this.dragHoldGesture=e.onGesture("hold",this.holdHandler,this.el),this.dragReleaseGesture=e.onGesture("release",this.releaseHandler,this.el)},destroy:function(){e.offGesture(this.dragStartGesture,"dragstart",this.dragStartGesture),e.offGesture(this.dragGesture,"drag",this.dragGesture),e.offGesture(this.dragHoldGesture,"hold",this.holdHandler),e.offGesture(this.dragReleaseGesture,"release",this.releaseHandler)},tap:function(){"disabled"!==this.el.getAttribute("disabled")&&this.val(!this.checkbox.checked)},dragStart:function(e){this.checkbox.disabled||(this._dragInfo={width:this.el.offsetWidth,left:this.el.offsetLeft,right:this.el.offsetLeft+this.el.offsetWidth,triggerX:this.el.offsetWidth/2,initialState:this.checkbox.checked},e.gesture.srcEvent.preventDefault(),this.hold(e))},drag:function(t){var n=this;this._dragInfo&&(t.gesture.srcEvent.preventDefault(),e.requestAnimationFrame((function(){if(n._dragInfo){var e=t.gesture.touches[0].pageX-n._dragInfo.left,i=n._dragInfo.width-n.triggerThreshold;n._dragInfo.initialState?e<n.triggerThreshold?n.setOpenPercent(0):e>n._dragInfo.triggerX&&n.setOpenPercent(100):e<n._dragInfo.triggerX?n.setOpenPercent(0):e>i&&n.setOpenPercent(100)}})))},endDrag:function(){this._dragInfo=null},hold:function(){this.el.classList.add("dragging")},release:function(e){this.el.classList.remove("dragging"),this.endDrag(e)},setOpenPercent:function(t){if(this.openPercent<0||t<this.openPercent-3||t>this.openPercent+3)if(this.openPercent=t,0===t)this.val(!1);else if(100===t)this.val(!0);else{var n=Math.round(t/100*this.track.offsetWidth-this.handle.offsetWidth);n=1>n?0:n,this.handle.style[e.CSS.TRANSFORM]="translate3d("+n+"px,0,0)"}},val:function(t){return(!0===t||!1===t)&&(""!==this.handle.style[e.CSS.TRANSFORM]&&(this.handle.style[e.CSS.TRANSFORM]=""),this.checkbox.checked=t,this.openPercent=t?100:0,this.onChange&&this.onChange()),this.checkbox.checked}})}(ionic)}(),function(e){"use strict";function t(e,t){return t=t||Error,function(){var n,i=arguments[0];for(n="["+(e?e+":":"")+i+"] http://errors.angularjs.org/1.5.11/"+(e?e+"/":"")+i,i=1;i<arguments.length;i++){n=n+(1==i?"?":"&")+"p"+(i-1)+"=";var r,o=encodeURIComponent;n+=o(r="function"==typeof(r=arguments[i])?r.toString().replace(/ \{[\s\S]*$/,""):void 0===r?"undefined":"string"!=typeof r?JSON.stringify(r):r)}return new t(n)}}function n(e){if(null==e||k(e))return!1;if(Un(e)||y(e)||Dn&&e instanceof Dn)return!0;var t="length"in Object(e)&&e.length;return b(t)&&(0<=t&&(t-1 in e||e instanceof Array)||"function"==typeof e.item)}function i(e,t,r){var o,a;if(e)if(L(e))for(o in e)"prototype"===o||"length"===o||"name"===o||e.hasOwnProperty&&!e.hasOwnProperty(o)||t.call(r,e[o],o,e);else if(Un(e)||n(e)){var s="object"!=typeof e;for(o=0,a=e.length;o<a;o++)(s||o in e)&&t.call(r,e[o],o,e)}else if(e.forEach&&e.forEach!==i)e.forEach(t,r,e);else if(_(e))for(o in e)t.call(r,e[o],o,e);else if("function"==typeof e.hasOwnProperty)for(o in e)e.hasOwnProperty(o)&&t.call(r,e[o],o,e);else for(o in e)Pn.call(e,o)&&t.call(r,e[o],o,e);return e}function r(e,t,n){for(var i=Object.keys(e).sort(),r=0;r<i.length;r++)t.call(n,e[i[r]],i[r]);return i}function o(e){return function(t,n){e(n,t)}}function a(){return++zn}function s(e,t,n){for(var i=e.$$hashKey,r=0,o=t.length;r<o;++r){var a=t[r];if(v(a)||L(a))for(var l=Object.keys(a),u=0,c=l.length;u<c;u++){var d=l[u],h=a[d];n&&v(h)?w(h)?e[d]=new Date(h.valueOf()):M(h)?e[d]=new RegExp(h):h.nodeName?e[d]=h.cloneNode(!0):T(h)?e[d]=h.clone():(v(e[d])||(e[d]=Un(h)?[]:{}),s(e[d],[h],!0)):e[d]=h}}return i?e.$$hashKey=i:delete e.$$hashKey,e}function l(e){return s(e,In.call(arguments,1),!1)}function u(e){return parseInt(e,10)}function c(e,t){return l(Object.create(e),t)}function d(){}function h(e){return e}function f(e){return function(){return e}}function p(e){return L(e.toString)&&e.toString!==Nn}function m(e){return void 0===e}function g(e){return void 0!==e}function v(e){return null!==e&&"object"==typeof e}function _(e){return null!==e&&"object"==typeof e&&!Bn(e)}function y(e){return"string"==typeof e}function b(e){return"number"==typeof e}function w(e){return"[object Date]"===Nn.call(e)}function L(e){return"function"==typeof e}function M(e){return"[object RegExp]"===Nn.call(e)}function k(e){return e&&e.window===e}function x(e){return e&&e.$evalAsync&&e.$watch}function S(e){return"boolean"==typeof e}function T(e){return!(!e||!(e.nodeName||e.prop&&e.attr&&e.find))}function $(e){return Yn(e.nodeName||e[0]&&e[0].nodeName)}function D(e,t){var n=e.indexOf(t);return 0<=n&&e.splice(n,1),n}function C(e,t){function n(e,t){var n,i=t.$$hashKey;if(Un(e)){n=0;for(var o=e.length;n<o;n++)t.push(r(e[n]))}else if(_(e))for(n in e)t[n]=r(e[n]);else if(e&&"function"==typeof e.hasOwnProperty)for(n in e)e.hasOwnProperty(n)&&(t[n]=r(e[n]));else for(n in e)Pn.call(e,n)&&(t[n]=r(e[n]));return i?t.$$hashKey=i:delete t.$$hashKey,t}function r(e){if(!v(e))return e;if(-1!==(t=a.indexOf(e)))return s[t];if(k(e)||x(e))throw Rn("cpws");var t=!1,i=o(e);return void 0===i&&(i=Un(e)?[]:Object.create(Bn(e)),t=!0),a.push(e),s.push(i),t?n(e,i):i}function o(e){switch(Nn.call(e)){case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Float32Array]":case"[object Float64Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return new e.constructor(r(e.buffer),e.byteOffset,e.length);case"[object ArrayBuffer]":if(!e.slice){var t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t}return e.slice(0);case"[object Boolean]":case"[object Number]":case"[object String]":case"[object Date]":return new e.constructor(e.valueOf());case"[object RegExp]":return(t=new RegExp(e.source,e.toString().match(/[^/]*$/)[0])).lastIndex=e.lastIndex,t;case"[object Blob]":return new e.constructor([e],{type:e.type})}if(L(e.cloneNode))return e.cloneNode(!0)}var a=[],s=[];if(t){if(function(e){return e&&b(e.length)&&Wn.test(Nn.call(e))}(t)||"[object ArrayBuffer]"===Nn.call(t))throw Rn("cpta");if(e===t)throw Rn("cpi");return Un(t)?t.length=0:i(t,(function(e,n){"$$hashKey"!==n&&delete t[n]})),a.push(e),s.push(t),n(e,t)}return r(e)}function E(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!=e&&t!=t)return!0;var n,i=typeof e;if(i===typeof t&&"object"===i){if(!Un(e)){if(w(e))return!!w(t)&&E(e.getTime(),t.getTime());if(M(e))return!!M(t)&&e.toString()===t.toString();if(x(e)||x(t)||k(e)||k(t)||Un(t)||w(t)||M(t))return!1;for(n in i=K(),e)if("$"!==n.charAt(0)&&!L(e[n])){if(!E(e[n],t[n]))return!1;i[n]=!0}for(n in t)if(!(n in i)&&"$"!==n.charAt(0)&&g(t[n])&&!L(t[n]))return!1;return!0}if(!Un(t))return!1;if((i=e.length)===t.length){for(n=0;n<i;n++)if(!E(e[n],t[n]))return!1;return!0}}return!1}function A(e,t,n){return e.concat(In.call(t,n))}function P(e,t){var n=2<arguments.length?In.call(arguments,2):[];return!L(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,A(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function Y(t,n){var i=n;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?i=void 0:k(n)?i="$WINDOW":n&&e.document===n?i="$DOCUMENT":x(n)&&(i="$SCOPE"),i}function O(e,t){if(!m(e))return b(t)||(t=t?2:null),JSON.stringify(e,Y,t)}function I(e){return y(e)?JSON.parse(e):e}function j(e,t){e=e.replace(Xn,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return Vn(n)?t:n}function H(e,t,n){n=n?-1:1;var i=e.getTimezoneOffset();return n*=(t=j(t,i))-i,(e=new Date(e.getTime())).setMinutes(e.getMinutes()+n),e}function N(e){e=Dn(e).clone();try{e.empty()}catch(e){}var t=Dn("<div>").append(e).html();try{return e[0].nodeType===ni?Yn(t):t.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,(function(e,t){return"<"+Yn(t)}))}catch(e){return Yn(t)}}function B(e){try{return decodeURIComponent(e)}catch(e){}}function R(e){var t={};return i((e||"").split("&"),(function(e){var n,i,r;e&&(i=e=e.replace(/\+/g,"%20"),-1!==(n=e.indexOf("="))&&(i=e.substring(0,n),r=e.substring(n+1)),g(i=B(i))&&(r=!g(r)||B(r),Pn.call(t,i)?Un(t[i])?t[i].push(r):t[i]=[t[i],r]:t[i]=r))})),t}function F(e){var t=[];return i(e,(function(e,n){Un(e)?i(e,(function(e){t.push(V(n,!0)+(!0===e?"":"="+V(e,!0)))})):t.push(V(n,!0)+(!0===e?"":"="+V(e,!0)))})),t.length?t.join("&"):""}function z(e){return V(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function V(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}function U(t,n,r){v(r)||(r={}),r=l({strictDi:!1},r);var o=function(){if((t=Dn(t)).injector()){var i=t[0]===e.document?"document":N(t);throw Rn("btstrpd",i.replace(/</,"&lt;").replace(/>/,"&gt;"))}return(n=n||[]).unshift(["$provide",function(e){e.value("$rootElement",t)}]),r.debugInfoEnabled&&n.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),n.unshift("ng"),(i=Se(n,r.strictDi)).invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,i){e.$apply((function(){t.data("$injector",i),n(t)(e)}))}]),i},a=/^NG_ENABLE_DEBUG_INFO!/,s=/^NG_DEFER_BOOTSTRAP!/;if(e&&a.test(e.name)&&(r.debugInfoEnabled=!0,e.name=e.name.replace(a,"")),e&&!s.test(e.name))return o();e.name=e.name.replace(s,""),Fn.resumeBootstrap=function(e){return i(e,(function(e){n.push(e)})),o()},L(Fn.resumeDeferredBootstrap)&&Fn.resumeDeferredBootstrap()}function W(e,t){return t=t||"_",e.replace(ei,(function(e,n){return(n?t:"")+e.toLowerCase()}))}function q(e,t,n){if(!e)throw Rn("areq",t||"?",n||"required");return e}function G(e,t,n){return n&&Un(e)&&(e=e[e.length-1]),q(L(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function Z(e,t){if("hasOwnProperty"===e)throw Rn("badname",t)}function J(e,t,n){if(!t)return e;for(var i,r=e,o=(t=t.split(".")).length,a=0;a<o;a++)i=t[a],e&&(e=(r=e)[i]);return!n&&L(e)?P(r,e):e}function X(e){for(var t,n=e[0],i=e[e.length-1],r=1;n!==i&&(n=n.nextSibling);r++)(t||e[r]!==n)&&(t||(t=Dn(In.call(e,0,r))),t.push(n));return t||e}function K(){return Object.create(null)}function Q(e,t){if(Un(e)){t=t||[];for(var n=0,i=e.length;n<i;n++)t[n]=e[n]}else if(v(e))for(n in t=t||{},e)"$"===n.charAt(0)&&"$"===n.charAt(1)||(t[n]=e[n]);return t||e}function ee(e){return e.replace(oi,(function(e,t,n,i){return i?n.toUpperCase():n})).replace(ai,"Moz$1")}function te(e){return 1===(e=e.nodeType)||!e||9===e}function ne(e,t){var n,r,o=t.createDocumentFragment(),a=[];if(ci.test(e)){for(n=o.appendChild(t.createElement("div")),r=(di.exec(e)||["",""])[1].toLowerCase(),r=fi[r]||fi._default,n.innerHTML=r[1]+e.replace(hi,"<$1></$2>")+r[2],r=r[0];r--;)n=n.lastChild;a=A(a,n.childNodes),(n=o.firstChild).textContent=""}else a.push(t.createTextNode(e));return o.textContent="",o.innerHTML="",i(a,(function(e){o.appendChild(e)})),o}function ie(e,t){var n=e.parentNode;n&&n.replaceChild(t,e),t.appendChild(e)}function re(t){if(t instanceof re)return t;var n,i;if(y(t)&&(t=qn(t),n=!0),!(this instanceof re)){if(n&&"<"!==t.charAt(0))throw li("nosel");return new re(t)}n&&(n=e.document,t=(i=ui.exec(t))?[n.createElement(i[1])]:(i=ne(t,n))?i.childNodes:[]),pe(this,t)}function oe(e){return e.cloneNode(!0)}function ae(e,t){if(t||le(e),e.querySelectorAll)for(var n=e.querySelectorAll("*"),i=0,r=n.length;i<r;i++)le(n[i])}function se(e,t,n,r){if(g(r))throw li("offargs");var o=(r=ue(e))&&r.events,a=r&&r.handle;if(a)if(t){var s=function(t){var i=o[t];g(n)&&D(i||[],n),g(n)&&i&&0<i.length||(e.removeEventListener(t,a,!1),delete o[t])};i(t.split(" "),(function(e){s(e),si[e]&&s(si[e])}))}else for(t in o)"$destroy"!==t&&e.removeEventListener(t,a,!1),delete o[t]}function le(e,t){var n=e.ng339,i=n&&ii[n];i&&(t?delete i.data[t]:(i.handle&&(i.events.$destroy&&i.handle({},"$destroy"),se(e)),delete ii[n],e.ng339=void 0))}function ue(e,t){var n=(n=e.ng339)&&ii[n];return t&&!n&&(e.ng339=n=++ri,n=ii[n]={events:{},data:{},handle:void 0}),n}function ce(e,t,n){if(te(e)){var i=g(n),r=!i&&t&&!v(t),o=!t;if(e=(e=ue(e,!r))&&e.data,i)e[t]=n;else{if(o)return e;if(r)return e&&e[t];l(e,t)}}}function de(e,t){return!!e.getAttribute&&-1<(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")}function he(e,t){t&&e.setAttribute&&i(t.split(" "),(function(t){e.setAttribute("class",qn((" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+qn(t)+" "," ")))}))}function fe(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");i(t.split(" "),(function(e){e=qn(e),-1===n.indexOf(" "+e+" ")&&(n+=e+" ")})),e.setAttribute("class",qn(n))}}function pe(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&&t.window!==t){if(n)for(var i=0;i<n;i++)e[e.length++]=t[i]}else e[e.length++]=t}}function me(e,t){return ge(e,"$"+(t||"ngController")+"Controller")}function ge(e,t,n){for(9===e.nodeType&&(e=e.documentElement),t=Un(t)?t:[t];e;){for(var i=0,r=t.length;i<r;i++)if(g(n=Dn.data(e,t[i])))return n;e=e.parentNode||11===e.nodeType&&e.host}}function ve(e){for(ae(e,!0);e.firstChild;)e.removeChild(e.firstChild)}function _e(e,t){t||ae(e);var n=e.parentNode;n&&n.removeChild(e)}function ye(e,t){var n=gi[t.toLowerCase()];return n&&vi[$(e)]&&n}function be(e,t,n){n.call(e,t)}function we(e,t,n){var i=t.relatedTarget;i&&(i===e||pi.call(e,i))||n.call(e,t)}function Le(){this.$get=function(){return l(re,{hasClass:function(e,t){return e.attr&&(e=e[0]),de(e,t)},addClass:function(e,t){return e.attr&&(e=e[0]),fe(e,t)},removeClass:function(e,t){return e.attr&&(e=e[0]),he(e,t)}})}}function Me(e,t){var n=e&&e.$$hashKey;return n?("function"==typeof n&&(n=e.$$hashKey()),n):"function"==(n=typeof e)||"object"===n&&null!==e?e.$$hashKey=n+":"+(t||a)():n+":"+e}function ke(e,t){if(t){var n=0;this.nextUid=function(){return++n}}i(e,this.put,this)}function xe(e){return(e=(Function.prototype.toString.call(e)+" ").replace(ki,"")).match(bi)||e.match(wi)}function Se(e,t){function n(e){return function(t,n){if(!v(t))return e(t,n);i(t,o(e))}}function r(e,t){if(Z(e,"service"),(L(t)||Un(t))&&(t=p.instantiate(t)),!t.$get)throw xi("pget",e);return h[e+"Provider"]=t}function a(e,t){return function(){var n=b.invoke(t,this);if(m(n))throw xi("undef",e);return n}}function s(e,t,n){return r(e,{$get:!1!==n?a(e,t):t})}function l(e,n){function i(t,i){if(e.hasOwnProperty(t)){if(e[t]===u)throw xi("cdep",t+" <- "+c.join(" <- "));return e[t]}try{return c.unshift(t),e[t]=u,e[t]=n(t,i),e[t]}catch(n){throw e[t]===u&&delete e[t],n}finally{c.shift()}}function r(e,n,r){for(var o=[],a=0,s=(e=Se.$$annotate(e,t,r)).length;a<s;a++){var l=e[a];if("string"!=typeof l)throw xi("itkn",l);o.push(n&&n.hasOwnProperty(l)?n[l]:i(l,r))}return o}return{invoke:function(e,t,n,i){return"string"==typeof n&&(i=n,n=null),n=r(e,n,i),Un(e)&&(e=e[e.length-1]),(i=!(11>=$n)&&"function"==typeof e&&/^(?:class\b|constructor\()/.test(Function.prototype.toString.call(e)+" "))?(n.unshift(null),new(Function.prototype.bind.apply(e,n))):e.apply(t,n)},instantiate:function(e,t,n){var i=Un(e)?e[e.length-1]:e;return(e=r(e,t,n)).unshift(null),new(Function.prototype.bind.apply(i,e))},get:i,annotate:Se.$$annotate,has:function(t){return h.hasOwnProperty(t+"Provider")||e.hasOwnProperty(t)}}}t=!0===t;var u={},c=[],d=new ke([],!0),h={$provide:{provider:n(r),factory:n(s),service:n((function(e,t){return s(e,["$injector",function(e){return e.instantiate(t)}])})),value:n((function(e,t){return s(e,f(t),!1)})),constant:n((function(e,t){Z(e,"constant"),h[e]=t,g[e]=t})),decorator:function(e,t){var n=p.get(e+"Provider"),i=n.$get;n.$get=function(){var e=b.invoke(i,n);return b.invoke(t,null,{$delegate:e})}}}},p=h.$injector=l(h,(function(e,t){throw Fn.isString(t)&&c.push(t),xi("unpr",c.join(" <- "))})),g={},_=l(g,(function(e,t){var n=p.get(e+"Provider",t);return b.invoke(n.$get,n,void 0,e)})),b=_;h.$injectorProvider={$get:f(_)};var w=function e(t){q(m(t)||Un(t),"modulesToLoad","not an array");var n,r=[];return i(t,(function(t){function i(e){var t,n;for(t=0,n=e.length;t<n;t++){var i=e[t],r=p.get(i[0]);r[i[1]].apply(r,i[2])}}if(!d.get(t)){d.put(t,!0);try{y(t)?(n=En(t),r=r.concat(e(n.requires)).concat(n._runBlocks),i(n._invokeQueue),i(n._configBlocks)):L(t)?r.push(p.invoke(t)):Un(t)?r.push(p.invoke(t)):G(t,"module")}catch(e){throw Un(t)&&(t=t[t.length-1]),e.message&&e.stack&&-1===e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),xi("modulerr",t,e.stack||e.message||e)}}})),r}(e);return(b=_.get("$injector")).strictDi=t,i(w,(function(e){e&&b.invoke(e)})),b}function Te(){var t=!0;this.disableAutoScrolling=function(){t=!1},this.$get=["$window","$location","$rootScope",function(n,i,r){function o(e){var t;e?(e.scrollIntoView(),L(t=a.yOffset)?t=t():T(t)?(t=t[0],t="fixed"!==n.getComputedStyle(t).position?0:t.getBoundingClientRect().bottom):b(t)||(t=0),t&&(e=e.getBoundingClientRect().top,n.scrollBy(0,e-t))):n.scrollTo(0,0)}function a(e){var t;(e=y(e)?e:b(e)?e.toString():i.hash())?(t=s.getElementById(e))?o(t):(t=function(e){var t=null;return Array.prototype.some.call(e,(function(e){if("a"===$(e))return t=e,!0})),t}(s.getElementsByName(e)))?o(t):"top"===e&&o(null):o(null)}var s=n.document;return t&&r.$watch((function(){return i.hash()}),(function(t,n){t===n&&""===t||function(t,n){"complete"===(n=n||e).document.readyState?n.setTimeout(t):Dn(n).on("load",t)}((function(){r.$evalAsync(a)}))})),a}]}function $e(e,t){return e||t?e?t?(Un(e)&&(e=e.join(" ")),Un(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function De(e){return v(e)?e:{}}function Ce(e,t,n,r){function o(e){try{e.apply(null,In.call(arguments,1))}finally{if(0==--v)for(;_.length;)try{_.pop()()}catch(e){n.error(e)}}}function a(){M=null,s(),l()}function s(){E(y=m(y=k())?null:y,T)&&(y=T),T=y}function l(){w===u.url()&&b===y||(w=u.url(),b=y,i(x,(function(e){e(u.url(),y)})))}var u=this,c=e.location,h=e.history,f=e.setTimeout,p=e.clearTimeout,g={};u.isMock=!1;var v=0,_=[];u.$$completeOutstandingRequest=o,u.$$incOutstandingRequestCount=function(){v++},u.notifyWhenNoOutstandingRequests=function(e){0===v?e():_.push(e)};var y,b,w=c.href,L=t.find("base"),M=null,k=r.history?function(){try{return h.state}catch(e){}}:d;s(),b=y,u.url=function(t,n,i){if(m(i)&&(i=null),c!==e.location&&(c=e.location),h!==e.history&&(h=e.history),t){var o=b===i;if(w===t&&(!r.history||o))return u;var a=w&&ot(w)===ot(t);return w=t,b=i,!r.history||a&&o?(a||(M=t),n?c.replace(t):a?(n=c,i=-1===(i=t.indexOf("#"))?"":t.substr(i),n.hash=i):c.href=t,c.href!==t&&(M=t)):(h[n?"replaceState":"pushState"](i,"",t),s(),b=y),M&&(M=t),u}return M||c.href.replace(/%27/g,"'")},u.state=function(){return y};var x=[],S=!1,T=null;u.onUrlChange=function(t){return S||(r.history&&Dn(e).on("popstate",a),Dn(e).on("hashchange",a),S=!0),x.push(t),t},u.$$applicationDestroyed=function(){Dn(e).off("hashchange popstate",a)},u.$$checkUrlChange=l,u.baseHref=function(){var e=L.attr("href");return e?e.replace(/^(https?:)?\/\/[^/]*/,""):""},u.defer=function(e,t){var n;return v++,n=f((function(){delete g[n],o(e)}),t||0),g[n]=!0,n},u.defer.cancel=function(e){return!!g[e]&&(delete g[e],p(e),o(d),!0)}}function Ee(){this.$get=["$window","$log","$sniffer","$document",function(e,t,n,i){return new Ce(e,i,t,n)}]}function Ae(){this.$get=function(){function e(e,i){function r(e){e!==h&&(f?f===e&&(f=e.n):f=e,o(e.n,e.p),o(e,h),(h=e).n=null)}function o(e,t){e!==t&&(e&&(e.p=t),t&&(t.n=e))}if(e in n)throw t("$cacheFactory")("iid",e);var a=0,s=l({},i,{id:e}),u=K(),c=i&&i.capacity||Number.MAX_VALUE,d=K(),h=null,f=null;return n[e]={put:function(e,t){if(!m(t))return c<Number.MAX_VALUE&&r(d[e]||(d[e]={key:e})),e in u||a++,u[e]=t,a>c&&this.remove(f.key),t},get:function(e){if(c<Number.MAX_VALUE){var t=d[e];if(!t)return;r(t)}return u[e]},remove:function(e){if(c<Number.MAX_VALUE){var t=d[e];if(!t)return;t===h&&(h=t.p),t===f&&(f=t.n),o(t.n,t.p),delete d[e]}e in u&&(delete u[e],a--)},removeAll:function(){u=K(),a=0,d=K(),h=f=null},destroy:function(){d=s=u=null,delete n[e]},info:function(){return l({},s,{size:a})}}}var n={};return e.info=function(){var e={};return i(n,(function(t,n){e[n]=t.info()})),e},e.get=function(e){return n[e]},e}}function Pe(){this.$get=["$cacheFactory",function(e){return e("templates")}]}function Ye(t,n){function r(e,t,n){var r=/^\s*([@&<]|=(\*?))(\??)\s*([\w$]*)\s*$/,o=K();return i(e,(function(e,i){if(e in M)o[i]=M[e];else{var a=e.match(r);if(!a)throw Pi("iscp",t,i,e,n?"controller bindings definition":"isolate scope definition");o[i]={mode:a[1][0],collection:"*"===a[2],optional:"?"===a[3],attrName:a[4]||i},a[4]&&(M[e]=o[i])}})),o}function a(e){var t=e.require||e.controller&&e.name;return!Un(t)&&v(t)&&i(t,(function(e,n){var i=e.match(b);e.substring(i[0].length)||(t[n]=i[0]+n)})),t}var s={},u=/^\s*directive:\s*([\w-]+)\s+(.*)$/,p=/(([\w-]+)(?::([^;]+))?;?)/,_=function(e){var t,n={};for(e=e.split(","),t=0;t<e.length;t++)n[e[t]]=!0;return n}("ngSrc,ngSrcset,src,srcset"),b=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,w=/^(on[a-z]+|formaction)$/,M=K();this.directive=function e(n,r){return q(n,"name"),Z(n,"directive"),y(n)?(function(e){var t=e.charAt(0);if(!t||t!==Yn(t))throw Pi("baddir",e);if(e!==e.trim())throw Pi("baddir",e)}(n),q(r,"directiveFactory"),s.hasOwnProperty(n)||(s[n]=[],t.factory(n+"Directive",["$injector","$exceptionHandler",function(e,t){var r=[];return i(s[n],(function(i,o){try{var s=e.invoke(i);L(s)?s={compile:f(s)}:!s.compile&&s.link&&(s.compile=f(s.link)),s.priority=s.priority||0,s.index=o,s.name=s.name||n,s.require=a(s);var l=s,u=s.restrict;if(u&&(!y(u)||!/[EACM]/.test(u)))throw Pi("badrestrict",u,n);l.restrict=u||"EA",s.$$moduleName=i.$$moduleName,r.push(s)}catch(e){t(e)}})),r}])),s[n].push(r)):i(n,o(e)),this},this.component=function(e,t){function n(e){function n(t){return L(t)||Un(t)?function(n,i){return e.invoke(t,this,{$element:n,$attrs:i})}:t}var o=t.template||t.templateUrl?t.template:"",a={controller:r,controllerAs:Ne(t.controller)||t.controllerAs||"$ctrl",template:n(o),templateUrl:n(t.templateUrl),transclude:t.transclude,scope:{},bindToController:t.bindings||{},restrict:"E",require:t.require};return i(t,(function(e,t){"$"===t.charAt(0)&&(a[t]=e)})),a}var r=t.controller||function(){};return i(t,(function(e,t){"$"===t.charAt(0)&&(n[t]=e,L(r)&&(r[t]=e))})),n.$inject=["$injector"],this.directive(e,n)},this.aHrefSanitizationWhitelist=function(e){return g(e)?(n.aHrefSanitizationWhitelist(e),this):n.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(e){return g(e)?(n.imgSrcSanitizationWhitelist(e),this):n.imgSrcSanitizationWhitelist()};var k=!0;this.debugInfoEnabled=function(e){return g(e)?(k=e,this):k};var T=!0;this.preAssignBindingsEnabled=function(e){return g(e)?(T=e,this):T};var C=10;this.onChangesTtl=function(e){return arguments.length?(C=e,this):C};var A=!0;this.commentDirectivesEnabled=function(e){return arguments.length?(A=e,this):A};var Y=!0;this.cssClassDirectivesEnabled=function(e){return arguments.length?(Y=e,this):Y},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate","$$sanitizeUri",function(t,n,o,a,f,M,O,I,j,H){function B(){try{if(!--xe)throw be=void 0,Pi("infchng",C);O.$apply((function(){for(var e=[],t=0,n=be.length;t<n;++t)try{be[t]()}catch(t){e.push(t)}if(be=void 0,e.length)throw e}))}finally{xe++}}function R(e,t){if(t){var n,i,r,o=Object.keys(t);for(n=0,i=o.length;n<i;n++)this[r=o[n]]=t[r]}else this.$attr={};this.$$element=e}function F(e,t){try{e.addClass(t)}catch(e){}}function z(t,n,i,r,o){t instanceof Dn||(t=Dn(t));for(var a=/\S+/,s=0,l=t.length;s<l;s++){var u=t[s];u.nodeType===ni&&u.nodeValue.match(a)&&ie(u,t[s]=e.document.createElement("span"))}var c=V(t,n,t,i,r,o);z.$$addScopeClass(t);var d=null;return function(e,n,i){q(e,"scope"),o&&o.needsNewScope&&(e=e.$parent.$new());var r=(i=i||{}).parentBoundTranscludeFn,a=i.transcludeControllers;if(i=i.futureParentElement,r&&r.$$boundTransclude&&(r=r.$$boundTransclude),d||(d=(i=i&&i[0])&&"foreignobject"!==$(i)&&Nn.call(i).match(/SVG/)?"svg":"html"),i="html"!==d?Dn(fe(d,Dn("<div>").append(t).html())):n?mi.clone.call(t):t,a)for(var s in a)i.data("$"+s+"Controller",a[s].instance);return z.$$addScopeInfo(i,e),n&&n(i,e),c&&c(e,i,i,r),i}}function V(e,t,n,i,r,o){for(var a,s,l,u,c,d=[],h=0;h<e.length;h++)a=new R,(o=(s=G(e[h],[],a,0===h?i:void 0,r)).length?ee(s,e[h],a,t,n,null,[],[],o):null)&&o.scope&&z.$$addScopeClass(a.$$element),a=o&&o.terminal||!(l=e[h].childNodes)||!l.length?null:V(l,o?(o.transcludeOnThisElement||!o.templateOnThisElement)&&o.transclude:t),(o||a)&&(d.push(h,o,a),u=!0,c=c||o),o=null;return u?function(e,n,i,r){var o,a,s,l,u,h;if(c)for(h=Array(n.length),l=0;l<d.length;l+=3)h[o=d[l]]=n[o];else h=n;for(l=0,u=d.length;l<u;)a=h[d[l++]],n=d[l++],o=d[l++],n?(n.scope?(s=e.$new(),z.$$addScopeInfo(Dn(a),s)):s=e,n(o,s,a,i,n.transcludeOnThisElement?U(e,n.transclude,r):!n.templateOnThisElement&&r?r:!r&&t?U(e,t):null)):o&&o(e,a.childNodes,void 0,r)}:null}function U(e,t,n){function i(i,r,o,a,s){return i||((i=e.$new(!1,s)).$$transcluded=!0),t(i,r,{parentBoundTranscludeFn:n,transcludeControllers:o,futureParentElement:a})}var r,o=i.$$slots=K();for(r in t.$$slots)o[r]=t.$$slots[r]?U(e,t.$$slots[r],n):null;return i}function G(e,t,n,i,r){var o,a=n.$attr;switch(e.nodeType){case 1:ae(t,Ie(o=$(e)),"E",i,r);for(var s,l,u,c,d=e.attributes,h=0,f=d&&d.length;h<f;h++){var m=!1,g=!1;l=(s=d[h]).name,u=qn(s.value),s=Ie(l),(c=De.test(s))&&(l=l.replace(Oi,"").substr(8).replace(/_(.)/g,(function(e,t){return t.toUpperCase()}))),(s=s.match(Ce))&&se(s[1])&&(m=l,g=l.substr(0,l.length-5)+"end",l=l.substr(0,l.length-6)),a[s=Ie(l.toLowerCase())]=l,!c&&n.hasOwnProperty(s)||(n[s]=u,ye(e,s)&&(n[s]=!0)),pe(e,t,u,s,c),ae(t,s,"A",i,r,m,g)}if("input"===o&&"hidden"===e.getAttribute("type")&&e.setAttribute("autocomplete","off"),!ke)break;if(v(a=e.className)&&(a=a.animVal),y(a)&&""!==a)for(;e=p.exec(a);)ae(t,s=Ie(e[2]),"C",i,r)&&(n[s]=qn(e[3])),a=a.substr(e.index+e[0].length);break;case ni:if(11===$n)for(;e.parentNode&&e.nextSibling&&e.nextSibling.nodeType===ni;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);he(t,e.nodeValue);break;case 8:if(!Me)break;Z(e,t,n,i,r)}return t.sort(ce),t}function Z(e,t,n,i,r){try{var o=u.exec(e.nodeValue);if(o){var a=Ie(o[1]);ae(t,a,"M",i,r)&&(n[a]=qn(o[2]))}}catch(e){}}function J(e,t,n){var i=[],r=0;if(t&&e.hasAttribute&&e.hasAttribute(t))do{if(!e)throw Pi("uterdir",t,n);1===e.nodeType&&(e.hasAttribute(t)&&r++,e.hasAttribute(n)&&r--),i.push(e),e=e.nextSibling}while(0<r);else i.push(e);return Dn(i)}function X(e,t,n){return function(i,r,o,a,s){return r=J(r[0],t,n),e(i,r,o,a,s)}}function Q(e,t,n,i,r,o){var a;return e?z(t,n,i,r,o):function(){return a||(a=z(t,n,i,r,o),t=n=o=null),a.apply(this,arguments)}}function ee(e,t,n,r,a,s,u,c,d){function h(e,t,n,i){e&&(n&&(e=X(e,n,i)),e.require=p.require,e.directiveName=g,(S===p||p.$$isolateScope)&&(e=ge(e,{isolateScope:!0})),u.push(e)),t&&(n&&(t=X(t,n,i)),t.require=p.require,t.directiveName=g,(S===p||p.$$isolateScope)&&(t=ge(t,{isolateScope:!0})),c.push(t))}function f(e,r,a,s,d){var h,f,p,g,_,y,b,w;for(h in t===a?(s=n,w=n.$$element):s=new R(w=Dn(a),n),_=r,S?g=r.$new(!0):M&&(_=r.$parent),d&&((b=function(e,t,n,i){var r;if(x(e)||(i=n,n=t,t=e,e=void 0),Y&&(r=y),n||(n=Y?w.parent():w),!i)return d(e,t,r,n,E);var o=d.$$slots[i];if(o)return o(e,t,r,n,E);if(m(o))throw Pi("noslot",i,N(w))}).$$boundTransclude=d,b.isSlotFilled=function(e){return!!d.$$slots[e]}),k&&(y=ne(w,s,b,k,g,r,S)),S&&(z.$$addScopeInfo(w,g,!0,!(D&&(D===S||D===S.$$originalDirective))),z.$$addScopeClass(w,!0),g.$$isolateBindings=S.$$isolateBindings,(f=_e(r,s,g,g.$$isolateBindings,S)).removeWatches&&g.$on("$destroy",f.removeWatches)),y){f=k[h],p=y[h];var $=f.$$bindings.bindToController;if(T){p.bindingInfo=$?_e(_,s,p.instance,$,f):{};var C=p();C!==p.instance&&(p.instance=C,w.data("$"+f.name+"Controller",C),p.bindingInfo.removeWatches&&p.bindingInfo.removeWatches(),p.bindingInfo=_e(_,s,p.instance,$,f))}else p.instance=p(),w.data("$"+f.name+"Controller",p.instance),p.bindingInfo=_e(_,s,p.instance,$,f)}for(i(k,(function(e,t){var n=e.require;e.bindToController&&!Un(n)&&v(n)&&l(y[t].instance,te(t,n,w,y))})),i(y,(function(e){var t=e.instance;if(L(t.$onChanges))try{t.$onChanges(e.bindingInfo.initialChanges)}catch(e){o(e)}if(L(t.$onInit))try{t.$onInit()}catch(e){o(e)}L(t.$doCheck)&&(_.$watch((function(){t.$doCheck()})),t.$doCheck()),L(t.$onDestroy)&&_.$on("$destroy",(function(){t.$onDestroy()}))})),h=0,f=u.length;h<f;h++)ve(p=u[h],p.isolateScope?g:r,w,s,p.require&&te(p.directiveName,p.require,w,y),b);var E=r;for(S&&(S.template||null===S.templateUrl)&&(E=g),e&&e(E,a.childNodes,void 0,d),h=c.length-1;0<=h;h--)ve(p=c[h],p.isolateScope?g:r,w,s,p.require&&te(p.directiveName,p.require,w,y),b);i(y,(function(e){L((e=e.instance).$postLink)&&e.$postLink()}))}d=d||{};for(var p,g,_,y,b,w=-Number.MAX_VALUE,M=d.newScopeDirective,k=d.controllerDirectives,S=d.newIsolateScopeDirective,D=d.templateDirective,C=d.nonTlbTranscludeDirective,E=!1,A=!1,Y=d.hasElementTranscludeDirective,O=n.$$element=Dn(t),I=r,j=!1,H=!1,B=0,F=e.length;B<F;B++){var V=(p=e[B]).$$start,U=p.$$end;if(V&&(O=J(t,V,U)),_=void 0,w>p.priority)break;if((b=p.scope)&&(p.templateUrl||(v(b)?(de("new/isolated scope",S||M,p,O),S=p):de("new/isolated scope",S,p,O)),M=M||p),g=p.name,!j&&(p.replace&&(p.templateUrl||p.template)||p.transclude&&!p.$$tlb)){for(b=B+1;j=e[b++];)if(j.transclude&&!j.$$tlb||j.replace&&(j.templateUrl||j.template)){H=!0;break}j=!0}if(!p.templateUrl&&p.controller&&(k=k||K(),de("'"+g+"' controller",k[g],p,O),k[g]=p),b=p.transclude)if(E=!0,p.$$tlb||(de("transclusion",C,p,O),C=p),"element"===b)Y=!0,w=p.priority,_=O,O=n.$$element=Dn(z.$$createComment(g,n[g])),t=O[0],me(a,In.call(_,0),t),_[0].$$parentNode=_[0].parentNode,I=Q(H,_,r,w,s&&s.name,{nonTlbTranscludeDirective:C});else{var W=K();if(_=Dn(oe(t)).contents(),v(b)){_=[];var q=K(),Z=K();for(var ee in i(b,(function(e,t){var n="?"===e.charAt(0);e=n?e.substring(1):e,q[e]=t,W[t]=null,Z[t]=n})),i(O.contents(),(function(e){var t=q[Ie($(e))];t?(Z[t]=!0,W[t]=W[t]||[],W[t].push(e)):_.push(e)})),i(Z,(function(e,t){if(!e)throw Pi("reqslot",t)})),W)W[ee]&&(W[ee]=Q(H,W[ee],r))}O.empty(),(I=Q(H,_,r,void 0,void 0,{needsNewScope:p.$$isolateScope||p.$$newScope})).$$slots=W}if(p.template)if(A=!0,de("template",D,p,O),D=p,b=L(p.template)?p.template(O,n):p.template,b=$e(b),p.replace){if(s=p,_=ci.test(b)?He(fe(p.templateNamespace,qn(b))):[],t=_[0],1!==_.length||1!==t.nodeType)throw Pi("tplrt",g,"");me(a,O,t),b=G(t,[],F={$attr:{}});var ie=e.splice(B+1,e.length-(B+1));(S||M)&&re(b,S,M),e=e.concat(b).concat(ie),le(n,F),F=e.length}else O.html(b);if(p.templateUrl)A=!0,de("template",D,p,O),D=p,p.replace&&(s=p),f=ue(e.splice(B,e.length-B),O,n,a,E&&I,u,c,{controllerDirectives:k,newScopeDirective:M!==p&&M,newIsolateScopeDirective:S,templateDirective:D,nonTlbTranscludeDirective:C}),F=e.length;else if(p.compile)try{y=p.compile(O,n,I);var ae=p.$$originalDirective||p;L(y)?h(null,P(ae,y),V,U):y&&h(P(ae,y.pre),P(ae,y.post),V,U)}catch(e){o(e,N(O))}p.terminal&&(f.terminal=!0,w=Math.max(w,p.priority))}return f.scope=M&&!0===M.scope,f.transcludeOnThisElement=E,f.templateOnThisElement=A,f.transclude=I,d.hasElementTranscludeDirective=Y,f}function te(e,t,n,r){var o;if(y(t)){var a=t.match(b);t=t.substring(a[0].length);var s=a[1]||a[3];if(a="?"===a[2],"^^"===s?n=n.parent():o=(o=r&&r[t])&&o.instance,!o){var l="$"+t+"Controller";o=s?n.inheritedData(l):n.data(l)}if(!o&&!a)throw Pi("ctreq",t,e)}else if(Un(t))for(o=[],s=0,a=t.length;s<a;s++)o[s]=te(e,t[s],n,r);else v(t)&&(o={},i(t,(function(t,i){o[i]=te(e,t,n,r)})));return o||null}function ne(e,t,n,i,r,o,a){var s,l=K();for(s in i){var u=i[s],c={$scope:u===a||u.$$isolateScope?r:o,$element:e,$attrs:t,$transclude:n},d=u.controller;"@"===d&&(d=t[u.name]),c=M(d,c,!0,u.controllerAs),l[u.name]=c,e.data("$"+u.name+"Controller",c.instance)}return l}function re(e,t,n){for(var i=0,r=e.length;i<r;i++)e[i]=c(e[i],{$$isolateScope:t,$$newScope:n})}function ae(e,n,i,o,a,l,u){if(n===a)return null;var d=null;if(s.hasOwnProperty(n))for(var h=0,f=(a=t.get(n+"Directive")).length;h<f;h++)if(n=a[h],(m(o)||o>n.priority)&&-1!==n.restrict.indexOf(i)){if(l&&(n=c(n,{$$start:l,$$end:u})),!n.$$bindings){var p=d=n,g=n.name,_={isolateScope:null,bindToController:null};if(v(p.scope)&&(!0===p.bindToController?(_.bindToController=r(p.scope,g,!0),_.isolateScope={}):_.isolateScope=r(p.scope,g,!1)),v(p.bindToController)&&(_.bindToController=r(p.bindToController,g,!0)),_.bindToController&&!p.controller)throw Pi("noctrl",g);v((d=d.$$bindings=_).isolateScope)&&(n.$$isolateBindings=d.isolateScope)}e.push(n),d=n}return d}function se(e){if(s.hasOwnProperty(e))for(var n=t.get(e+"Directive"),i=0,r=n.length;i<r;i++)if((e=n[i]).multiElement)return!0;return!1}function le(e,t){var n=t.$attr,r=e.$attr;i(e,(function(i,r){"$"!==r.charAt(0)&&(t[r]&&t[r]!==i&&(i+=("style"===r?";":" ")+t[r]),e.$set(r,i,!0,n[r]))})),i(t,(function(t,i){e.hasOwnProperty(i)||"$"===i.charAt(0)||(e[i]=t,"class"!==i&&"style"!==i&&(r[i]=n[i]))}))}function ue(e,t,n,r,o,s,l,u){var d,h,f=[],p=t[0],m=e.shift(),g=c(m,{templateUrl:null,transclude:null,replace:null,$$originalDirective:m}),_=L(m.templateUrl)?m.templateUrl(t,n):m.templateUrl,y=m.templateNamespace;return t.empty(),a(_).then((function(a){var c,b;if(a=$e(a),m.replace){if(a=ci.test(a)?He(fe(y,qn(a))):[],c=a[0],1!==a.length||1!==c.nodeType)throw Pi("tplrt",m.name,_);a={$attr:{}},me(r,t,c);var w=G(c,[],a);v(m.scope)&&re(w,!0),e=w.concat(e),le(n,a)}else c=p,t.html(a);for(e.unshift(g),d=ee(e,c,n,o,t,m,s,l,u),i(r,(function(e,n){e===c&&(r[n]=t[0])})),h=V(t[0].childNodes,o);f.length;){a=f.shift(),b=f.shift();var L=f.shift(),M=f.shift();if(w=t[0],!a.$$destroyed){if(b!==p){var k=b.className;u.hasElementTranscludeDirective&&m.replace||(w=oe(c)),me(L,Dn(b),w),F(Dn(w),k)}b=d.transcludeOnThisElement?U(a,d.transclude,M):M,d(h,a,w,r,b)}}f=null})),function(e,t,n,i,r){e=r,t.$$destroyed||(f?f.push(t,n,i,e):(d.transcludeOnThisElement&&(e=U(t,d.transclude,r)),d(h,t,n,i,e)))}}function ce(e,t){var n=t.priority-e.priority;return 0!==n?n:e.name!==t.name?e.name<t.name?-1:1:e.index-t.index}function de(e,t,n,i){function r(e){return e?" (module: "+e+")":""}if(t)throw Pi("multidir",t.name,r(t.$$moduleName),n.name,r(n.$$moduleName),e,N(i))}function he(e,t){var i=n(t,!0);i&&e.push({priority:0,compile:function(e){var t=!!(e=e.parent()).length;return t&&z.$$addBindingClass(e),function(e,n){var r=n.parent();t||z.$$addBindingClass(r),z.$$addBindingInfo(r,i.expressions),e.$watch(i,(function(e){n[0].nodeValue=e}))}}})}function fe(t,n){switch(t=Yn(t||"html")){case"svg":case"math":var i=e.document.createElement("div");return i.innerHTML="<"+t+">"+n+"</"+t+">",i.childNodes[0].childNodes;default:return n}}function pe(e,t,i,r,o){var a=function(e,t){if("srcdoc"===t)return I.HTML;var n=$(e);if("src"===t||"ngSrc"===t){if(-1===["img","video","audio","source","track"].indexOf(n))return I.RESOURCE_URL}else if("xlinkHref"===t||"form"===n&&"action"===t)return I.RESOURCE_URL}(e,r),s=_[r]||o,l=n(i,!o,a,s);if(l){if("multiple"===r&&"select"===$(e))throw Pi("selmulti",N(e));t.push({priority:100,compile:function(){return{pre:function(e,t,o){if(t=o.$$observers||(o.$$observers=K()),w.test(r))throw Pi("nodomevents");var u=o[r];u!==i&&(l=u&&n(u,!0,a,s),i=u),l&&(o[r]=l(e),(t[r]||(t[r]=[])).$$inter=!0,(o.$$observers&&o.$$observers[r].$$scope||e).$watch(l,(function(e,t){"class"===r&&e!==t?o.$updateClass(e,t):o.$set(r,e)})))}}}})}}function me(t,n,i){var r,o,a=n[0],s=n.length,l=a.parentNode;if(t)for(r=0,o=t.length;r<o;r++)if(t[r]===a){t[r++]=i,o=r+s-1;for(var u=t.length;r<u;r++,o++)o<u?t[r]=t[o]:delete t[r];t.length-=s-1,t.context===a&&(t.context=i);break}for(l&&l.replaceChild(i,a),t=e.document.createDocumentFragment(),r=0;r<s;r++)t.appendChild(n[r]);for(Dn.hasData(a)&&(Dn.data(i,Dn.data(a)),Dn(a).off("$destroy")),Dn.cleanData(t.querySelectorAll("*")),r=1;r<s;r++)delete n[r];n[0]=i,n.length=1}function ge(e,t){return l((function(){return e.apply(null,arguments)}),e,t)}function ve(e,t,n,i,r,a){try{e(t,n,i,r,a)}catch(e){o(e,N(n))}}function _e(e,t,r,o,a){function s(t,n,i){!L(r.$onChanges)||n===i||n!=n&&i!=i||(be||(e.$$postDigest(B),be=[]),u||(u={},be.push(l)),u[t]&&(i=u[t].previousValue),u[t]=new Oe(i,n))}function l(){r.$onChanges(u),u=void 0}var u,c=[],h={};return i(o,(function(i,o){var l,u,p,m,g=i.attrName,v=i.optional;switch(i.mode){case"@":v||Pn.call(t,g)||(r[o]=t[g]=void 0),v=t.$observe(g,(function(e){(y(e)||S(e))&&(s(o,e,r[o]),r[o]=e)})),t.$$observers[g].$$scope=e,y(l=t[g])?r[o]=n(l)(e):S(l)&&(r[o]=l),h[o]=new Oe(Yi,r[o]),c.push(v);break;case"=":if(!Pn.call(t,g)){if(v)break;t[g]=void 0}if(v&&!t[g])break;u=f(t[g]),m=u.literal?E:function(e,t){return e===t||e!=e&&t!=t},p=u.assign||function(){throw l=r[o]=u(e),Pi("nonassign",t[g],g,a.name)},l=r[o]=u(e),(v=function(t){return m(t,r[o])||(m(t,l)?p(e,t=r[o]):r[o]=t),l=t}).$stateful=!0,v=i.collection?e.$watchCollection(t[g],v):e.$watch(f(t[g],v),null,u.literal),c.push(v);break;case"<":if(!Pn.call(t,g)){if(v)break;t[g]=void 0}if(v&&!t[g])break;var _=(u=f(t[g])).literal,b=r[o]=u(e);h[o]=new Oe(Yi,r[o]),v=e.$watch(u,(function(e,t){if(t===e){if(t===b||_&&E(t,b))return;t=b}s(o,e,t),r[o]=e}),_),c.push(v);break;case"&":if((u=t.hasOwnProperty(g)?f(t[g]):d)===d&&v)break;r[o]=function(t){return u(e,t)}}})),{initialChanges:h,removeWatches:c.length&&function(){for(var e=0,t=c.length;e<t;++e)c[e]()}}}var be,we=/^\w/,Le=e.document.createElement("div"),Me=A,ke=Y,xe=C;R.prototype={$normalize:Ie,$addClass:function(e){e&&0<e.length&&j.addClass(this.$$element,e)},$removeClass:function(e){e&&0<e.length&&j.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=je(e,t);n&&n.length&&j.addClass(this.$$element,n),(n=je(t,e))&&n.length&&j.removeClass(this.$$element,n)},$set:function(e,t,n,r){var a=ye(this.$$element[0],e),s=_i[e],l=e;if(a?(this.$$element.prop(e,t),r=a):s&&(this[s]=t,l=s),this[e]=t,r?this.$attr[e]=r:(r=this.$attr[e])||(this.$attr[e]=r=W(e,"-")),"a"===(a=$(this.$$element))&&("href"===e||"xlinkHref"===e)||"img"===a&&"src"===e)this[e]=t=H(t,"src"===e);else if("img"===a&&"srcset"===e&&g(t)){a="",s=qn(t);for(var u=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,c=(u=/\s/.test(s)?u:/(,)/,s=s.split(u),u=Math.floor(s.length/2),0);c<u;c++){var d=2*c;a=(a+=H(qn(s[d]),!0))+" "+qn(s[d+1])}s=qn(s[2*c]).split(/\s/),a+=H(qn(s[0]),!0),2===s.length&&(a+=" "+qn(s[1])),this[e]=t=a}!1!==n&&(null===t||m(t)?this.$$element.removeAttr(r):we.test(r)?this.$$element.attr(r,t):function(e,t,n){Le.innerHTML="<span "+t+">";var i=(t=Le.firstChild.attributes)[0];t.removeNamedItem(i.name),i.value=n,e.attributes.setNamedItem(i)}(this.$$element[0],r,t)),(e=this.$$observers)&&i(e[l],(function(e){try{e(t)}catch(e){o(e)}}))},$observe:function(e,t){var n=this,i=n.$$observers||(n.$$observers=K()),r=i[e]||(i[e]=[]);return r.push(t),O.$evalAsync((function(){r.$$inter||!n.hasOwnProperty(e)||m(n[e])||t(n[e])})),function(){D(r,t)}}};var Se=n.startSymbol(),Te=n.endSymbol(),$e="{{"===Se&&"}}"===Te?h:function(e){return e.replace(/\{\{/g,Se).replace(/}}/g,Te)},De=/^ngAttr[A-Z]/,Ce=/^(.+)Start$/;return z.$$addBindingInfo=k?function(e,t){var n=e.data("$binding")||[];Un(t)?n=n.concat(t):n.push(t),e.data("$binding",n)}:d,z.$$addBindingClass=k?function(e){F(e,"ng-binding")}:d,z.$$addScopeInfo=k?function(e,t,n,i){e.data(n?i?"$isolateScopeNoTemplate":"$isolateScope":"$scope",t)}:d,z.$$addScopeClass=k?function(e,t){F(e,t?"ng-isolate-scope":"ng-scope")}:d,z.$$createComment=function(t,n){var i="";return k&&(i=" "+(t||"")+": ",n&&(i+=n+" ")),e.document.createComment(i)},z}]}function Oe(e,t){this.previousValue=e,this.currentValue=t}function Ie(e){return ee(e.replace(Oi,""))}function je(e,t){var n="",i=e.split(/\s+/),r=t.split(/\s+/),o=0;e:for(;o<i.length;o++){for(var a=i[o],s=0;s<r.length;s++)if(a===r[s])continue e;n+=(0<n.length?" ":"")+a}return n}function He(e){var t=(e=Dn(e)).length;if(1>=t)return e;for(;t--;){var n=e[t];(8===n.nodeType||n.nodeType===ni&&""===n.nodeValue.trim())&&jn.call(e,t,1)}return e}function Ne(e,t){if(t&&y(t))return t;if(y(e)){var n=ji.exec(e);if(n)return n[3]}}function Be(){var e={},n=!1;this.has=function(t){return e.hasOwnProperty(t)},this.register=function(t,n){Z(t,"controller"),v(t)?l(e,t):e[t]=n},this.allowGlobals=function(){n=!0},this.$get=["$injector","$window",function(i,r){function o(e,n,i,r){if(!e||!v(e.$scope))throw t("$controller")("noscp",r,n);e.$scope[n]=i}return function(t,a,s,u){var c,d,h;if(s=!0===s,u&&y(u)&&(h=u),y(t)){if(!(u=t.match(ji)))throw Ii("ctrlfmt",t);if(d=u[1],h=h||u[3],!(t=e.hasOwnProperty(d)?e[d]:J(a.$scope,d,!0)||(n?J(r,d,!0):void 0)))throw Ii("ctrlreg",d);G(t,d,!0)}return s?(s=(Un(t)?t[t.length-1]:t).prototype,c=Object.create(s||null),h&&o(a,h,c,d||t.name),l((function(){var e=i.invoke(t,c,a,d);return e!==c&&(v(e)||L(e))&&(c=e,h&&o(a,h,c,d||t.name)),c}),{instance:c,identifier:h})):(c=i.instantiate(t,a,d),h&&o(a,h,c,d||t.name),c)}}]}function Re(){this.$get=["$window",function(e){return Dn(e.document)}]}function Fe(){this.$get=["$log",function(e){return function(t,n){e.error.apply(e,arguments)}}]}function ze(e){return v(e)?w(e)?e.toISOString():O(e):e}function Ve(){this.$get=function(){return function(e){if(!e)return"";var t=[];return r(e,(function(e,n){null===e||m(e)||(Un(e)?i(e,(function(e){t.push(V(n)+"="+V(ze(e)))})):t.push(V(n)+"="+V(ze(e))))})),t.join("&")}}}function Ue(){this.$get=function(){return function(e){if(!e)return"";var t=[];return function e(n,o,a){null===n||m(n)||(Un(n)?i(n,(function(t,n){e(t,o+"["+(v(t)?n:"")+"]")})):v(n)&&!w(n)?r(n,(function(t,n){e(t,o+(a?"":"[")+n+(a?"":"]"))})):t.push(V(o)+"="+V(ze(n))))}(e,"",!0),t.join("&")}}}function We(e,t){if(y(e)){var n=e.replace(zi,"").trim();if(n){var i=t("Content-Type");(i=i&&0===i.indexOf(Ni))||(i=(i=n.match(Ri))&&Fi[i[0]].test(n)),i&&(e=I(n))}}return e}function qe(e){var t,n=K();return y(e)?i(e.split("\n"),(function(e){t=e.indexOf(":");var i=Yn(qn(e.substr(0,t)));e=qn(e.substr(t+1)),i&&(n[i]=n[i]?n[i]+", "+e:e)})):v(e)&&i(e,(function(e,t){var i=Yn(t),r=qn(e);i&&(n[i]=n[i]?n[i]+", "+r:r)})),n}function Ge(e){var t;return function(n){return t||(t=qe(e)),n?(void 0===(n=t[Yn(n)])&&(n=null),n):t}}function Ze(e,t,n,r){return L(r)?r(e,t,n):(i(r,(function(i){e=i(e,t,n)})),e)}function Je(){var e=this.defaults={transformResponse:[We],transformRequest:[function(e){return v(e)&&"[object File]"!==Nn.call(e)&&"[object Blob]"!==Nn.call(e)&&"[object FormData]"!==Nn.call(e)?O(e):e}],headers:{common:{Accept:"application/json, text/plain, */*"},post:Q(Bi),put:Q(Bi),patch:Q(Bi)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},n=!1;this.useApplyAsync=function(e){return g(e)?(n=!!e,this):n};var r=!0;this.useLegacyPromiseExtensions=function(e){return g(e)?(r=!!e,this):r};var o=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(a,s,u,c,d,h){function f(n){function o(e,t){for(var n=0,i=t.length;n<i;){var r=t[n++],o=t[n++];e=e.then(r,o)}return t.length=0,e}function a(e){var t=l({},e);return t.data=Ze(e.data,e.headers,e.status,s.transformResponse),200<=(e=e.status)&&300>e?t:d.reject(t)}if(!v(n))throw t("$http")("badreq",n);if(!y(n.url))throw t("$http")("badreq",n.url);var s=l({method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse,paramSerializer:e.paramSerializer},n);s.headers=function(t){var n,r,o,a=e.headers,s=l({},t.headers);a=l({},a.common,a[Yn(t.method)]);e:for(n in a){for(o in r=Yn(n),s)if(Yn(o)===r)continue e;s[n]=a[n]}return function(e,t){var n,r={};return i(e,(function(e,i){L(e)?null!=(n=e(t))&&(r[i]=n):r[i]=e})),r}(s,Q(t))}(n),s.method=On(s.method),s.paramSerializer=y(s.paramSerializer)?h.get(s.paramSerializer):s.paramSerializer;var u=[],c=[],f=d.when(s);return i(b,(function(e){(e.request||e.requestError)&&u.unshift(e.request,e.requestError),(e.response||e.responseError)&&c.push(e.response,e.responseError)})),f=(f=o(f,u)).then((function(t){var n=t.headers,r=Ze(t.data,Ge(n),void 0,t.transformRequest);return m(r)&&i(n,(function(e,t){"content-type"===Yn(t)&&delete n[t]})),m(t.withCredentials)&&!m(e.withCredentials)&&(t.withCredentials=e.withCredentials),p(t,r).then(a,a)})),f=o(f,c),r?(f.success=function(e){return G(e,"fn"),f.then((function(t){e(t.data,t.status,t.headers,s)})),f},f.error=function(e){return G(e,"fn"),f.then(null,(function(t){e(t.data,t.status,t.headers,s)})),f}):(f.success=Ui("success"),f.error=Ui("error")),f}function p(t,r){function o(e){if(e){var t={};return i(e,(function(e,i){t[i]=function(t){function i(){e(t)}n?c.$applyAsync(i):c.$$phase?i():c.$apply(i)}})),t}}function l(e,n,i,r){(200<=(n=-1<=n?n:0)&&300>n?b.resolve:b.reject)({data:e,status:n,headers:Ge(i),config:t,statusText:r})}function u(e){l(e.data,e.status,Q(e.headers()),e.statusText)}function h(){var e=f.pendingRequests.indexOf(t);-1!==e&&f.pendingRequests.splice(e,1)}var p,y,b=d.defer(),w=b.promise,M=t.headers,k=function(e,t){return 0<t.length&&(e+=(-1===e.indexOf("?")?"?":"&")+t),e}(t.url,t.paramSerializer(t.params));return f.pendingRequests.push(t),w.then(h,h),!t.cache&&!e.cache||!1===t.cache||"GET"!==t.method&&"JSONP"!==t.method||(p=v(t.cache)?t.cache:v(e.cache)?e.cache:_),p&&(g(y=p.get(k))?y&&L(y.then)?y.then(u,u):Un(y)?l(y[1],y[0],Q(y[2]),y[3]):l(y,200,{},"OK"):p.put(k,w)),m(y)&&((y=Ut(t.url)?s()[t.xsrfCookieName||e.xsrfCookieName]:void 0)&&(M[t.xsrfHeaderName||e.xsrfHeaderName]=y),a(t.method,k,r,(function(e,t,i,r){function o(){l(t,e,i,r)}p&&(200<=e&&300>e?p.put(k,[e,t,qe(i),r]):p.remove(k)),n?c.$applyAsync(o):(o(),c.$$phase||c.$apply())}),M,t.timeout,t.withCredentials,t.responseType,o(t.eventHandlers),o(t.uploadEventHandlers))),w}var _=u("$http");e.paramSerializer=y(e.paramSerializer)?h.get(e.paramSerializer):e.paramSerializer;var b=[];return i(o,(function(e){b.unshift(y(e)?h.get(e):h.invoke(e))})),f.pendingRequests=[],function(e){i(arguments,(function(e){f[e]=function(t,n){return f(l({},n||{},{method:e,url:t}))}}))}("get","delete","head","jsonp"),function(e){i(arguments,(function(e){f[e]=function(t,n,i){return f(l({},i||{},{method:e,url:t,data:n}))}}))}("post","put","patch"),f.defaults=e,f}]}function Xe(){this.$get=function(){return function(){return new e.XMLHttpRequest}}}function Ke(){this.$get=["$browser","$jsonpCallbacks","$document","$xhrFactory",function(e,t,n,r){return function(e,t,n,r,o){function a(e,t,n){e=e.replace("JSON_CALLBACK",t);var i=o.createElement("script"),a=null;return i.type="text/javascript",i.src=e,i.async=!0,a=function(e){i.removeEventListener("load",a,!1),i.removeEventListener("error",a,!1),o.body.removeChild(i),i=null;var s=-1,l="unknown";e&&("load"!==e.type||r.wasCalled(t)||(e={type:"error"}),l=e.type,s="error"===e.type?404:200),n&&n(s,l)},i.addEventListener("load",a,!1),i.addEventListener("error",a,!1),o.body.appendChild(i),a}return function(o,s,l,u,c,h,f,p,v,_){function y(){M&&M(),k&&k.abort()}function b(t,i,r,o,a){g(x)&&n.cancel(x),M=k=null,t(i,r,o,a),e.$$completeOutstandingRequest(d)}if(e.$$incOutstandingRequestCount(),s=s||e.url(),"jsonp"===Yn(o))var w=r.createCallback(s),M=a(s,w,(function(e,t){var n=200===e&&r.getResponse(w);b(u,e,n,"",t),r.removeCallback(w)}));else{var k=t(o,s);if(k.open(o,s,!0),i(c,(function(e,t){g(e)&&k.setRequestHeader(t,e)})),k.onload=function(){var e=k.statusText||"",t="response"in k?k.response:k.responseText,n=1223===k.status?204:k.status;0===n&&(n=t?200:"file"===Vt(s).protocol?404:0),b(u,n,t,k.getAllResponseHeaders(),e)},o=function(){b(u,-1,null,null,"")},k.onerror=o,k.onabort=o,k.ontimeout=o,i(v,(function(e,t){k.addEventListener(t,e)})),i(_,(function(e,t){k.upload.addEventListener(t,e)})),f&&(k.withCredentials=!0),p)try{k.responseType=p}catch(e){if("json"!==p)throw e}k.send(m(l)?null:l)}if(0<h)var x=n(y,h);else h&&L(h.then)&&h.then(y)}}(e,r,e.defer,t,n[0])}]}function Qe(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,i,r){function o(e){return"\\\\\\"+e}function a(n){return n.replace(h,e).replace(p,t)}function s(e,t,n,i){var r=e.$watch((function(e){return r(),i(e)}),t,n);return r}function u(o,u,h,p){function v(e){try{var t,n=e;if(e=h?r.getTrusted(h,n):r.valueOf(n),p&&!g(e))t=e;else if(null==e)t="";else{switch(typeof e){case"string":break;case"number":e=""+e;break;default:e=O(e)}t=e}return t}catch(e){i(Wi.interr(o,e))}}var _;if(!o.length||-1===o.indexOf(e))return u||((_=f(u=a(o))).exp=o,_.expressions=[],_.$$watchDelegate=s),_;p=!!p;var y,b,w=0,M=[],k=[];_=o.length;for(var x=[],S=[];w<_;){if(-1===(y=o.indexOf(e,w))||-1===(b=o.indexOf(t,y+c))){w!==_&&x.push(a(o.substring(w)));break}w!==y&&x.push(a(o.substring(w,y))),w=o.substring(y+c,b),M.push(w),k.push(n(w,v)),w=b+d,S.push(x.length),x.push("")}if(h&&1<x.length&&Wi.throwNoconcat(o),!u||M.length){var T=function(e){for(var t=0,n=M.length;t<n;t++){if(p&&m(e[t]))return;x[S[t]]=e[t]}return x.join("")};return l((function(e){var t=0,n=M.length,r=Array(n);try{for(;t<n;t++)r[t]=k[t](e);return T(r)}catch(e){i(Wi.interr(o,e))}}),{exp:o,expressions:M,$$watchDelegate:function(e,t){var n;return e.$watchGroup(k,(function(i,r){var o=T(i);L(t)&&t.call(this,o,i!==r?n:o,e),n=o}))}})}}var c=e.length,d=t.length,h=new RegExp(e.replace(/./g,o),"g"),p=new RegExp(t.replace(/./g,o),"g");return u.startSymbol=function(){return e},u.endSymbol=function(){return t},u}]}function et(){this.$get=["$rootScope","$window","$q","$$q","$browser",function(e,t,n,i,r){function o(o,s,l,u){function c(){d?o.apply(null,h):o(m)}var d=4<arguments.length,h=d?In.call(arguments,4):[],f=t.setInterval,p=t.clearInterval,m=0,v=g(u)&&!u,_=(v?i:n).defer(),y=_.promise;return l=g(l)?l:0,y.$$intervalId=f((function(){v?r.defer(c):e.$evalAsync(c),_.notify(m++),0<l&&m>=l&&(_.resolve(m),p(y.$$intervalId),delete a[y.$$intervalId]),v||e.$apply()}),s),a[y.$$intervalId]=_,y}var a={};return o.cancel=function(e){return!!(e&&e.$$intervalId in a)&&(a[e.$$intervalId].reject("canceled"),t.clearInterval(e.$$intervalId),delete a[e.$$intervalId],!0)},o}]}function tt(e){for(var t=(e=e.split("/")).length;t--;)e[t]=z(e[t]);return e.join("/")}function nt(e,t){var n=Vt(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=u(n.port)||Zi[n.protocol]||null}function it(e,t){if(Xi.test(e))throw Ji("badpath",e);var n="/"!==e.charAt(0);n&&(e="/"+e);var i=Vt(e);t.$$path=decodeURIComponent(n&&"/"===i.pathname.charAt(0)?i.pathname.substring(1):i.pathname),t.$$search=R(i.search),t.$$hash=decodeURIComponent(i.hash),t.$$path&&"/"!==t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function rt(e,t){if(t.slice(0,e.length)===e)return t.substr(e.length)}function ot(e){var t=e.indexOf("#");return-1===t?e:e.substr(0,t)}function at(e){return e.replace(/(#.+)|#$/,"$1")}function st(e,t,n){this.$$html5=!0,n=n||"",nt(e,this),this.$$parse=function(e){var n=rt(t,e);if(!y(n))throw Ji("ipthprfx",e,t);it(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var e=F(this.$$search),n=this.$$hash?"#"+z(this.$$hash):"";this.$$url=tt(this.$$path)+(e?"?"+e:"")+n,this.$$absUrl=t+this.$$url.substr(1)},this.$$parseLinkUrl=function(i,r){return r&&"#"===r[0]?(this.hash(r.slice(1)),!0):(g(o=rt(e,i))?(a=o,a=n&&g(o=rt(n,o))?t+(rt("/",o)||o):e+a):g(o=rt(t,i))?a=t+o:t===i+"/"&&(a=t),a&&this.$$parse(a),!!a);var o,a}}function lt(e,t,n){nt(e,this),this.$$parse=function(i){var r;m(o=rt(e,i)||rt(t,i))||"#"!==o.charAt(0)?this.$$html5?r=o:(r="",m(o)&&(e=i,this.replace())):m(r=rt(n,o))&&(r=o),it(r,this),i=this.$$path;var o=e,a=/^\/[A-Z]:(\/.*)/;r.slice(0,o.length)===o&&(r=r.replace(o,"")),a.exec(r)||(i=(r=a.exec(i))?r[1]:i),this.$$path=i,this.$$compose()},this.$$compose=function(){var t=F(this.$$search),i=this.$$hash?"#"+z(this.$$hash):"";this.$$url=tt(this.$$path)+(t?"?"+t:"")+i,this.$$absUrl=e+(this.$$url?n+this.$$url:"")},this.$$parseLinkUrl=function(t,n){return ot(e)===ot(t)&&(this.$$parse(t),!0)}}function ut(e,t,n){this.$$html5=!0,lt.apply(this,arguments),this.$$parseLinkUrl=function(i,r){return r&&"#"===r[0]?(this.hash(r.slice(1)),!0):(e===ot(i)?o=i:(a=rt(t,i))?o=e+n+a:t===i+"/"&&(o=t),o&&this.$$parse(o),!!o);var o,a},this.$$compose=function(){var t=F(this.$$search),i=this.$$hash?"#"+z(this.$$hash):"";this.$$url=tt(this.$$path)+(t?"?"+t:"")+i,this.$$absUrl=e+n+this.$$url}}function ct(e){return function(){return this[e]}}function dt(e,t){return function(n){return m(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function ht(){var e="",t={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(t){return g(t)?(e=t,this):e},this.html5Mode=function(e){return S(e)?(t.enabled=e,this):v(e)?(S(e.enabled)&&(t.enabled=e.enabled),S(e.requireBase)&&(t.requireBase=e.requireBase),(S(e.rewriteLinks)||y(e.rewriteLinks))&&(t.rewriteLinks=e.rewriteLinks),this):t},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,i,r,o,a){function s(e,t,n){var r=u.url(),o=u.$$state;try{i.url(e,t,n),u.$$state=i.state()}catch(e){throw u.url(r),u.$$state=o,e}}function l(e,t){n.$broadcast("$locationChangeSuccess",u.absUrl(),e,u.$$state,t)}var u,c;c=i.baseHref();var d,h=i.url();if(t.enabled){if(!c&&t.requireBase)throw Ji("nobase");d=h.substring(0,h.indexOf("/",h.indexOf("//")+2))+(c||"/"),c=r.history?st:ut}else d=ot(h),c=lt;var f=d.substr(0,ot(d).lastIndexOf("/")+1);(u=new c(d,f,"#"+e)).$$parseLinkUrl(h,h),u.$$state=i.state();var p=/^\s*(javascript|mailto):/i;o.on("click",(function(e){if((s=t.rewriteLinks)&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&2!==e.which&&2!==e.button){for(var r=Dn(e.target);"a"!==$(r[0]);)if(r[0]===o[0]||!(r=r.parent())[0])return;if(!y(s)||!m(r.attr(s))){var s=r.prop("href"),l=r.attr("href")||r.attr("xlink:href");v(s)&&"[object SVGAnimatedString]"===s.toString()&&(s=Vt(s.animVal).href),p.test(s)||!s||r.attr("target")||e.isDefaultPrevented()||!u.$$parseLinkUrl(s,l)||(e.preventDefault(),u.absUrl()!==i.url()&&(n.$apply(),a.angular["ff-684208-preventDefault"]=!0))}}})),at(u.absUrl())!==at(h)&&i.url(u.absUrl(),!0);var g=!0;return i.onUrlChange((function(e,t){m(rt(f,e))?a.location.href=e:(n.$evalAsync((function(){var i,r=u.absUrl(),o=u.$$state;e=at(e),u.$$parse(e),u.$$state=t,i=n.$broadcast("$locationChangeStart",e,r,t,o).defaultPrevented,u.absUrl()===e&&(i?(u.$$parse(r),u.$$state=o,s(r,!1,o)):(g=!1,l(r,o)))})),n.$$phase||n.$digest())})),n.$watch((function(){var e=at(i.url()),t=at(u.absUrl()),o=i.state(),a=u.$$replace,c=e!==t||u.$$html5&&r.history&&o!==u.$$state;(g||c)&&(g=!1,n.$evalAsync((function(){var t=u.absUrl(),i=n.$broadcast("$locationChangeStart",t,e,u.$$state,o).defaultPrevented;u.absUrl()===t&&(i?(u.$$parse(e),u.$$state=o):(c&&s(t,a,o===u.$$state?null:u.$$state),l(e,o)))}))),u.$$replace=!1})),u}]}function ft(){var e=!0,t=this;this.debugEnabled=function(t){return g(t)?(e=t,this):e},this.$get=["$window",function(n){function r(e){return e instanceof Error&&(e.stack?e=e.message&&-1===e.stack.indexOf(e.message)?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function o(e){var t=n.console||{},o=t[e]||t.log||d;e=!1;try{e=!!o.apply}catch(e){}return e?function(){var e=[];return i(arguments,(function(t){e.push(r(t))})),o.apply(t,e)}:function(e,t){o(e,null==t?"":t)}}return{log:o("log"),info:o("info"),warn:o("warn"),error:o("error"),debug:function(){var n=o("debug");return function(){e&&n.apply(t,arguments)}}()}}]}function pt(e,t){if("__defineGetter__"===e||"__defineSetter__"===e||"__lookupGetter__"===e||"__lookupSetter__"===e||"__proto__"===e)throw Qi("isecfld",t);return e}function mt(e){return e+""}function gt(e,t){if(e){if(e.constructor===e)throw Qi("isecfn",t);if(e.window===e)throw Qi("isecwindow",t);if(e.children&&(e.nodeName||e.prop&&e.attr&&e.find))throw Qi("isecdom",t);if(e===Object)throw Qi("isecobj",t)}return e}function vt(e,t){if(e){if(e.constructor===e)throw Qi("isecfn",t);if(e===hr||e===fr||e===pr)throw Qi("isecff",t)}}function _t(e,t){if(e&&(e===er||e===tr||e===nr||e===ir||e===rr||e===or||e===ar||e===sr||e===lr||e===ur||e===cr||e===dr))throw Qi("isecaf",t)}function yt(e,t){return void 0!==e?e:t}function bt(e,t){return void 0===e?t:void 0===t?e:e+t}function wt(e,t){var n,r,o;switch(e.type){case yr.Program:n=!0,i(e.body,(function(e){wt(e.expression,t),n=n&&e.expression.constant})),e.constant=n;break;case yr.Literal:e.constant=!0,e.toWatch=[];break;case yr.UnaryExpression:wt(e.argument,t),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case yr.BinaryExpression:wt(e.left,t),wt(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case yr.LogicalExpression:wt(e.left,t),wt(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.constant?[]:[e];break;case yr.ConditionalExpression:wt(e.test,t),wt(e.alternate,t),wt(e.consequent,t),e.constant=e.test.constant&&e.alternate.constant&&e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case yr.Identifier:e.constant=!1,e.toWatch=[e];break;case yr.MemberExpression:wt(e.object,t),e.computed&&wt(e.property,t),e.constant=e.object.constant&&(!e.computed||e.property.constant),e.toWatch=[e];break;case yr.CallExpression:n=o=!!e.filter&&!t(e.callee.name).$stateful,r=[],i(e.arguments,(function(e){wt(e,t),n=n&&e.constant,e.constant||r.push.apply(r,e.toWatch)})),e.constant=n,e.toWatch=o?r:[e];break;case yr.AssignmentExpression:wt(e.left,t),wt(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=[e];break;case yr.ArrayExpression:n=!0,r=[],i(e.elements,(function(e){wt(e,t),n=n&&e.constant,e.constant||r.push.apply(r,e.toWatch)})),e.constant=n,e.toWatch=r;break;case yr.ObjectExpression:n=!0,r=[],i(e.properties,(function(e){wt(e.value,t),n=n&&e.value.constant&&!e.computed,e.value.constant||r.push.apply(r,e.value.toWatch)})),e.constant=n,e.toWatch=r;break;case yr.ThisExpression:e.constant=!1,e.toWatch=[];break;case yr.LocalsExpression:e.constant=!1,e.toWatch=[]}}function Lt(e){if(1===e.length){var t=(e=e[0].expression).toWatch;return 1!==t.length?t:t[0]!==e?t:void 0}}function Mt(e){return e.type===yr.Identifier||e.type===yr.MemberExpression}function kt(e){if(1===e.body.length&&Mt(e.body[0].expression))return{type:yr.AssignmentExpression,left:e.body[0].expression,right:{type:yr.NGValueParameter},operator:"="}}function xt(e){return 0===e.body.length||1===e.body.length&&(e.body[0].expression.type===yr.Literal||e.body[0].expression.type===yr.ArrayExpression||e.body[0].expression.type===yr.ObjectExpression)}function St(e,t){this.astBuilder=e,this.$filter=t}function Tt(e,t){this.astBuilder=e,this.$filter=t}function $t(e){return"constructor"===e}function Dt(e){return L(e.valueOf)?e.valueOf():mr.call(e)}function Ct(){var e,t,n=K(),r=K(),o={true:!0,false:!1,null:null,undefined:void 0};this.addLiteral=function(e,t){o[e]=t},this.setIdentifierFns=function(n,i){return e=n,t=i,this},this.$get=["$filter",function(a){function s(e,t,i){var o,s,l;switch(i=i||y,typeof e){case"string":l=e=e.trim();var m=i?r:n;if(!(o=m[l])){":"===e.charAt(0)&&":"===e.charAt(1)&&(s=!0,e=e.substring(2));var g=new _r(o=i?_:v);(o=new br(g,a,o).parse(e)).constant?o.$$watchDelegate=f:s?o.$$watchDelegate=o.literal?h:c:o.inputs&&(o.$$watchDelegate=u),i&&(o=function e(t){function n(e,n,i,r){var o=y;y=!0;try{return t(e,n,i,r)}finally{y=o}}if(!t)return t;n.$$watchDelegate=t.$$watchDelegate,n.assign=e(t.assign),n.constant=t.constant,n.literal=t.literal;for(var i=0;t.inputs&&i<t.inputs.length;++i)t.inputs[i]=e(t.inputs[i]);return n.inputs=t.inputs,n}(o)),m[l]=o}return p(o,t);case"function":return p(e,t);default:return p(d,t)}}function l(e,t){return null==e||null==t?e===t:("object"!=typeof e||"object"!=typeof(e=Dt(e)))&&(e===t||e!=e&&t!=t)}function u(e,t,n,i,r){var o;if(1===(s=i.inputs).length){var a=l,s=s[0];return e.$watch((function(e){var t=s(e);return l(t,a)||(o=i(e,void 0,void 0,[t]),a=t&&Dt(t)),o}),t,n,r)}for(var u=[],c=[],d=0,h=s.length;d<h;d++)u[d]=l,c[d]=null;return e.$watch((function(e){for(var t=!1,n=0,r=s.length;n<r;n++){var a=s[n](e);(t||(t=!l(a,u[n])))&&(c[n]=a,u[n]=a&&Dt(a))}return t&&(o=i(e,void 0,void 0,c)),o}),t,n,r)}function c(e,t,n,i){var r,o;return r=e.$watch((function(e){return i(e)}),(function(e,n,i){o=e,L(t)&&t.apply(this,arguments),g(e)&&i.$$postDigest((function(){g(o)&&r()}))}),n)}function h(e,t,n,r){function o(e){var t=!0;return i(e,(function(e){g(e)||(t=!1)})),t}var a,s;return a=e.$watch((function(e){return r(e)}),(function(e,n,i){s=e,L(t)&&t.call(this,e,n,i),o(e)&&i.$$postDigest((function(){o(s)&&a()}))}),n)}function f(e,t,n,i){var r=e.$watch((function(e){return r(),i(e)}),t,n);return r}function p(e,t){if(!t)return e;var n=e.$$watchDelegate,i=!1;return n=n!==h&&n!==c?function(n,r,o,a){return o=i&&a?a[0]:e(n,r,o,a),t(o,n,r)}:function(n,i,r,o){return r=e(n,i,r,o),n=t(r,n,i),g(r)?n:r},e.$$watchDelegate&&e.$$watchDelegate!==u?n.$$watchDelegate=e.$$watchDelegate:t.$stateful||(n.$$watchDelegate=u,i=!e.inputs,n.inputs=e.inputs?e.inputs:[e]),n}var m=Zn().noUnsafeEval,v={csp:m,expensiveChecks:!1,literals:C(o),isIdentifierStart:L(e)&&e,isIdentifierContinue:L(t)&&t},_={csp:m,expensiveChecks:!0,literals:C(o),isIdentifierStart:L(e)&&e,isIdentifierContinue:L(t)&&t},y=!1;return s.$$runningExpensiveChecks=function(){return y},s}]}function Et(){this.$get=["$rootScope","$exceptionHandler",function(e,t){return Pt((function(t){e.$evalAsync(t)}),t)}]}function At(){this.$get=["$browser","$exceptionHandler",function(e,t){return Pt((function(t){e.defer(t)}),t)}]}function Pt(e,n){function r(){var e=new u;return e.resolve=a(e,e.resolve),e.reject=a(e,e.reject),e.notify=a(e,e.notify),e}function o(){this.$$state={status:0}}function a(e,t){return function(n){t.call(e,n)}}function s(t){!t.processScheduled&&t.pending&&(t.processScheduled=!0,e((function(){var e,i,r;r=t.pending,t.processScheduled=!1,t.pending=void 0;for(var o=0,a=r.length;o<a;++o){i=r[o][0],e=r[o][t.status];try{L(e)?i.resolve(e(t.value)):1===t.status?i.resolve(t.value):i.reject(t.value)}catch(e){i.reject(e),n(e)}}})))}function u(){this.promise=new o}function c(e){var t=new u;return t.reject(e),t.promise}function d(e,t,n){var i=null;try{L(n)&&(i=n())}catch(e){return c(e)}return i&&L(i.then)?i.then((function(){return t(e)}),c):t(e)}function h(e,t,n,i){var r=new u;return r.resolve(e),r.promise.then(t,n,i)}function f(e){if(!L(e))throw p("norslvr",e);var t=new u;return e((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise}var p=t("$q",TypeError);l(o.prototype,{then:function(e,t,n){if(m(e)&&m(t)&&m(n))return this;var i=new u;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([i,e,t,n]),0<this.$$state.status&&s(this.$$state),i.promise},catch:function(e){return this.then(null,e)},finally:function(e,t){return this.then((function(t){return d(t,g,e)}),(function(t){return d(t,c,e)}),t)}}),l(u.prototype,{resolve:function(e){this.promise.$$state.status||(e===this.promise?this.$$reject(p("qcycle",e)):this.$$resolve(e))},$$resolve:function(e){function t(e){o||(o=!0,r.$$reject(e))}var i,r=this,o=!1;try{(v(e)||L(e))&&(i=e&&e.then),L(i)?(this.promise.$$state.status=-1,i.call(e,(function(e){o||(o=!0,r.$$resolve(e))}),t,a(this,this.notify))):(this.promise.$$state.value=e,this.promise.$$state.status=1,s(this.promise.$$state))}catch(e){t(e),n(e)}},reject:function(e){this.promise.$$state.status||this.$$reject(e)},$$reject:function(e){this.promise.$$state.value=e,this.promise.$$state.status=2,s(this.promise.$$state)},notify:function(t){var i=this.promise.$$state.pending;0>=this.promise.$$state.status&&i&&i.length&&e((function(){for(var e,r,o=0,a=i.length;o<a;o++){r=i[o][0],e=i[o][3];try{r.notify(L(e)?e(t):t)}catch(e){n(e)}}}))}});var g=h;return f.prototype=o.prototype,f.defer=r,f.reject=c,f.when=h,f.resolve=g,f.all=function(e){var t=new u,n=0,r=Un(e)?[]:{};return i(e,(function(e,i){n++,h(e).then((function(e){r[i]=e,--n||t.resolve(r)}),(function(e){t.reject(e)}))})),0===n&&t.resolve(r),t.promise},f.race=function(e){var t=r();return i(e,(function(e){h(e).then(t.resolve,t.reject)})),t.promise},f}function Yt(){this.$get=["$window","$timeout",function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame,i=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,r=!!n,o=r?function(e){var t=n(e);return function(){i(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return o.supported=r,o}]}function Ot(){var e=10,r=t("$rootScope"),o=null,a=null;this.digestTtl=function(t){return arguments.length&&(e=t),e},this.$get=["$exceptionHandler","$parse","$browser",function(t,s,l){function u(e){e.currentScope.$$destroyed=!0}function c(){this.$id=++zn,this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}function h(e){if(y.$$phase)throw r("inprog",y.$$phase);y.$$phase=e}function f(e,t){do{e.$$watchersCount+=t}while(e=e.$parent)}function p(e,t,n){do{e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&&delete e.$$listenerCount[n]}while(e=e.$parent)}function g(){}function _(){for(;M.length;)try{M.shift()()}catch(e){t(e)}a=null}c.prototype={constructor:c,$new:function(e,t){var n;return t=t||this,e?(n=new c).$root=this.$root:(this.$$ChildScope||(this.$$ChildScope=function(e){function t(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=++zn,this.$$ChildScope=null}return t.prototype=e,t}(this)),n=new this.$$ChildScope),n.$parent=t,n.$$prevSibling=t.$$childTail,t.$$childHead?(t.$$childTail.$$nextSibling=n,t.$$childTail=n):t.$$childHead=t.$$childTail=n,(e||t!==this)&&n.$on("$destroy",u),n},$watch:function(e,t,n,i){var r=s(e);if(r.$$watchDelegate)return r.$$watchDelegate(this,t,n,r,e);var a=this,l=a.$$watchers,u={fn:t,last:g,get:r,exp:i||e,eq:!!n};return o=null,L(t)||(u.fn=d),l||((l=a.$$watchers=[]).$$digestWatchIndex=-1),l.unshift(u),l.$$digestWatchIndex++,f(this,1),function(){var e=D(l,u);0<=e&&(f(a,-1),e<l.$$digestWatchIndex&&l.$$digestWatchIndex--),o=null}},$watchGroup:function(e,t){function n(){l=!1,u?(u=!1,t(o,o,s)):t(o,r,s)}var r=Array(e.length),o=Array(e.length),a=[],s=this,l=!1,u=!0;if(!e.length){var c=!0;return s.$evalAsync((function(){c&&t(o,o,s)})),function(){c=!1}}return 1===e.length?this.$watch(e[0],(function(e,n,i){o[0]=e,r[0]=n,t(o,e===n?o:r,i)})):(i(e,(function(e,t){var i=s.$watch(e,(function(e,i){o[t]=e,r[t]=i,l||(l=!0,s.$evalAsync(n))}));a.push(i)})),function(){for(;a.length;)a.shift()()})},$watchCollection:function(e,t){function i(e){var t,i,a;if(!m(r=e)){if(v(r))if(n(r))for(o!==h&&(g=(o=h).length=0,c++),e=r.length,g!==e&&(c++,o.length=g=e),t=0;t<e;t++)a=o[t],i=r[t],a!=a&&i!=i||a===i||(c++,o[t]=i);else{for(t in o!==f&&(o=f={},g=0,c++),e=0,r)Pn.call(r,t)&&(e++,i=r[t],a=o[t],t in o?a!=a&&i!=i||a===i||(c++,o[t]=i):(g++,o[t]=i,c++));if(g>e)for(t in c++,o)Pn.call(r,t)||(g--,delete o[t])}else o!==r&&(o=r,c++);return c}}i.$stateful=!0;var r,o,a,l=this,u=1<t.length,c=0,d=s(e,i),h=[],f={},p=!0,g=0;return this.$watch(d,(function(){if(p?(p=!1,t(r,r,l)):t(r,a,l),u)if(v(r))if(n(r)){a=Array(r.length);for(var e=0;e<r.length;e++)a[e]=r[e]}else for(e in a={},r)Pn.call(r,e)&&(a[e]=r[e]);else a=r}))},$digest:function(){var n,i,s,u,c,d,f,p,m=e,v=[];h("$digest"),l.$$checkUrlChange(),this===y&&null!==a&&(l.defer.cancel(a),_()),o=null;do{for(c=!1,d=this,u=0;u<b.length;u++){try{(p=b[u]).scope.$eval(p.expression,p.locals)}catch(e){t(e)}o=null}b.length=0;e:do{if(u=d.$$watchers)for(u.$$digestWatchIndex=u.length;u.$$digestWatchIndex--;)try{if(n=u[u.$$digestWatchIndex])if((i=(0,n.get)(d))===(s=n.last)||(n.eq?E(i,s):Vn(i)&&Vn(s))){if(n===o){c=!1;break e}}else c=!0,o=n,n.last=n.eq?C(i,null):i,(0,n.fn)(i,s===g?i:s,d),5>m&&(v[f=4-m]||(v[f]=[]),v[f].push({msg:L(n.exp)?"fn: "+(n.exp.name||n.exp.toString()):n.exp,newVal:i,oldVal:s}))}catch(e){t(e)}if(!(u=d.$$watchersCount&&d.$$childHead||d!==this&&d.$$nextSibling))for(;d!==this&&!(u=d.$$nextSibling);)d=d.$parent}while(d=u);if((c||b.length)&&!m--)throw y.$$phase=null,r("infdig",e,v)}while(c||b.length);for(y.$$phase=null;k<w.length;)try{w[k++]()}catch(e){t(e)}w.length=k=0},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;for(var t in this.$broadcast("$destroy"),this.$$destroyed=!0,this===y&&l.$$applicationDestroyed(),f(this,-this.$$watchersCount),this.$$listenerCount)p(this,this.$$listenerCount[t],t);e&&e.$$childHead===this&&(e.$$childHead=this.$$nextSibling),e&&e.$$childTail===this&&(e.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=d,this.$on=this.$watch=this.$watchGroup=function(){return d},this.$$listeners={},this.$$nextSibling=null,function e(t){9===$n&&(t.$$childHead&&e(t.$$childHead),t.$$nextSibling&&e(t.$$nextSibling)),t.$parent=t.$$nextSibling=t.$$prevSibling=t.$$childHead=t.$$childTail=t.$root=t.$$watchers=null}(this)}},$eval:function(e,t){return s(e)(this,t)},$evalAsync:function(e,t){y.$$phase||b.length||l.defer((function(){b.length&&y.$digest()})),b.push({scope:this,expression:s(e),locals:t})},$$postDigest:function(e){w.push(e)},$apply:function(e){try{h("$apply");try{return this.$eval(e)}finally{y.$$phase=null}}catch(e){t(e)}finally{try{y.$digest()}catch(e){throw t(e),e}}},$applyAsync:function(e){var t=this;e&&M.push((function(){t.$eval(e)})),e=s(e),null===a&&(a=l.defer((function(){y.$apply(_)})))},$on:function(e,t){var n=this.$$listeners[e];n||(this.$$listeners[e]=n=[]),n.push(t);var i=this;do{i.$$listenerCount[e]||(i.$$listenerCount[e]=0),i.$$listenerCount[e]++}while(i=i.$parent);var r=this;return function(){var i=n.indexOf(t);-1!==i&&(n[i]=null,p(r,1,e))}},$emit:function(e,n){var i,r,o,a=[],s=this,l=!1,u={name:e,targetScope:s,stopPropagation:function(){l=!0},preventDefault:function(){u.defaultPrevented=!0},defaultPrevented:!1},c=A([u],arguments,1);do{for(i=s.$$listeners[e]||a,u.currentScope=s,r=0,o=i.length;r<o;r++)if(i[r])try{i[r].apply(null,c)}catch(e){t(e)}else i.splice(r,1),r--,o--;if(l)return u.currentScope=null,u;s=s.$parent}while(s);return u.currentScope=null,u},$broadcast:function(e,n){var i=this,r=this,o={name:e,targetScope:this,preventDefault:function(){o.defaultPrevented=!0},defaultPrevented:!1};if(!this.$$listenerCount[e])return o;for(var a,s,l=A([o],arguments,1);i=r;){for(o.currentScope=i,a=0,s=(r=i.$$listeners[e]||[]).length;a<s;a++)if(r[a])try{r[a].apply(null,l)}catch(e){t(e)}else r.splice(a,1),a--,s--;if(!(r=i.$$listenerCount[e]&&i.$$childHead||i!==this&&i.$$nextSibling))for(;i!==this&&!(r=i.$$nextSibling);)i=i.$parent}return o.currentScope=null,o}};var y=new c,b=y.$$asyncQueue=[],w=y.$$postDigestQueue=[],M=y.$$applyAsyncQueue=[],k=0;return y}]}function It(){var e=/^\s*(https?|ftp|mailto|tel|file):/,t=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(t){return g(t)?(e=t,this):e},this.imgSrcSanitizationWhitelist=function(e){return g(e)?(t=e,this):t},this.$get=function(){return function(n,i){var r,o=i?t:e;return""===(r=Vt(n).href)||r.match(o)?n:"unsafe:"+r}}}function jt(e){var t=[];return g(e)&&i(e,(function(e){t.push(function(e){if("self"===e)return e;if(y(e)){if(-1<e.indexOf("***"))throw wr("iwcard",e);return e=Gn(e).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&;]*"),new RegExp("^"+e+"$")}if(M(e))return new RegExp("^"+e.source+"$");throw wr("imatcher")}(e))})),t}function Ht(){this.SCE_CONTEXTS=Lr;var e=["self"],t=[];this.resourceUrlWhitelist=function(t){return arguments.length&&(e=jt(t)),e},this.resourceUrlBlacklist=function(e){return arguments.length&&(t=jt(e)),t},this.$get=["$injector",function(n){function i(e,t){return"self"===e?Ut(t):!!e.exec(t.href)}function r(e){var t=function(e){this.$$unwrapTrustedValue=function(){return e}};return e&&(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}var o=function(e){throw wr("unsafe")};n.has("$sanitize")&&(o=n.get("$sanitize"));var a=r(),s={};return s[Lr.HTML]=r(a),s[Lr.CSS]=r(a),s[Lr.URL]=r(a),s[Lr.JS]=r(a),s[Lr.RESOURCE_URL]=r(s[Lr.URL]),{trustAs:function(e,t){var n=s.hasOwnProperty(e)?s[e]:null;if(!n)throw wr("icontext",e,t);if(null===t||m(t)||""===t)return t;if("string"!=typeof t)throw wr("itype",e);return new n(t)},getTrusted:function(n,r){if(null===r||m(r)||""===r)return r;if((u=s.hasOwnProperty(n)?s[n]:null)&&r instanceof u)return r.$$unwrapTrustedValue();if(n===Lr.RESOURCE_URL){var a,l,u=Vt(r.toString()),c=!1;for(a=0,l=e.length;a<l;a++)if(i(e[a],u)){c=!0;break}if(c)for(a=0,l=t.length;a<l;a++)if(i(t[a],u)){c=!1;break}if(c)return r;throw wr("insecurl",r.toString())}if(n===Lr.HTML)return o(r);throw wr("unsafe")},valueOf:function(e){return e instanceof a?e.$$unwrapTrustedValue():e}}}]}function Nt(){var e=!0;this.enabled=function(t){return arguments.length&&(e=!!t),e},this.$get=["$parse","$sceDelegate",function(t,n){if(e&&8>$n)throw wr("iequirks");var r=Q(Lr);r.isEnabled=function(){return e},r.trustAs=n.trustAs,r.getTrusted=n.getTrusted,r.valueOf=n.valueOf,e||(r.trustAs=r.getTrusted=function(e,t){return t},r.valueOf=h),r.parseAs=function(e,n){var i=t(n);return i.literal&&i.constant?i:t(n,(function(t){return r.getTrusted(e,t)}))};var o=r.parseAs,a=r.getTrusted,s=r.trustAs;return i(Lr,(function(e,t){var n=Yn(t);r[ee("parse_as_"+n)]=function(t){return o(e,t)},r[ee("get_trusted_"+n)]=function(t){return a(e,t)},r[ee("trust_as_"+n)]=function(t){return s(e,t)}})),r}]}function Bt(){this.$get=["$window","$document",function(e,t){var n,i={},r=!(e.chrome&&(e.chrome.app&&e.chrome.app.runtime||!e.chrome.app&&e.chrome.runtime&&e.chrome.runtime.id))&&e.history&&e.history.pushState,o=u((/android (\d+)/.exec(Yn((e.navigator||{}).userAgent))||[])[1]),a=/Boxee/i.test((e.navigator||{}).userAgent),s=t[0]||{},l=/^(Moz|webkit|ms)(?=[A-Z])/,c=s.body&&s.body.style,d=!1,h=!1;if(c){for(var f in c)if(d=l.exec(f)){n=(n=d[0])[0].toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in c&&"webkit"),d=!!("transition"in c||n+"Transition"in c),h=!!("animation"in c||n+"Animation"in c),!o||d&&h||(d=y(c.webkitTransition),h=y(c.webkitAnimation))}return{history:!(!r||4>o||a),hasEvent:function(e){if("input"===e&&11>=$n)return!1;if(m(i[e])){var t=s.createElement("div");i[e]="on"+e in t}return i[e]},csp:Zn(),vendorPrefix:n,transitions:d,animations:h,android:o}}]}function Rt(){var e;this.httpOptions=function(t){return t?(e=t,this):e},this.$get=["$templateCache","$http","$q","$sce",function(t,n,i,r){function o(a,s){o.totalPendingRequests++,y(a)&&!m(t.get(a))||(a=r.getTrustedResourceUrl(a));var u=n.defaults&&n.defaults.transformResponse;return Un(u)?u=u.filter((function(e){return e!==We})):u===We&&(u=null),n.get(a,l({cache:t,transformResponse:u},e)).finally((function(){o.totalPendingRequests--})).then((function(e){return t.put(a,e.data),e.data}),(function(e){if(!s)throw Mr("tpload",a,e.status,e.statusText);return i.reject(e)}))}return o.totalPendingRequests=0,o}]}function Ft(){this.$get=["$rootScope","$browser","$location",function(e,t,n){return{findBindings:function(e,t,n){e=e.getElementsByClassName("ng-binding");var r=[];return i(e,(function(e){var o=Fn.element(e).data("$binding");o&&i(o,(function(i){n?new RegExp("(^|\\s)"+Gn(t)+"(\\s|\\||$)").test(i)&&r.push(e):-1!==i.indexOf(t)&&r.push(e)}))})),r},findModels:function(e,t,n){for(var i=["ng-","data-ng-","ng\\:"],r=0;r<i.length;++r){var o=e.querySelectorAll("["+i[r]+"model"+(n?"=":"*=")+'"'+t+'"]');if(o.length)return o}},getLocation:function(){return n.url()},setLocation:function(t){t!==n.url()&&(n.url(t),e.$digest())},whenStable:function(e){t.notifyWhenNoOutstandingRequests(e)}}}]}function zt(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(e,t,n,i,r){function o(o,s,l){L(o)||(l=s,s=o,o=d);var u,c=In.call(arguments,3),h=g(l)&&!l,f=(h?i:n).defer(),p=f.promise;return u=t.defer((function(){try{f.resolve(o.apply(null,c))}catch(e){f.reject(e),r(e)}finally{delete a[p.$$timeoutId]}h||e.$apply()}),s),p.$$timeoutId=u,a[u]=f,p}var a={};return o.cancel=function(e){return!!(e&&e.$$timeoutId in a)&&(a[e.$$timeoutId].reject("canceled"),delete a[e.$$timeoutId],t.defer.cancel(e.$$timeoutId))},o}]}function Vt(e){return $n&&(kr.setAttribute("href",e),e=kr.href),kr.setAttribute("href",e),{href:kr.href,protocol:kr.protocol?kr.protocol.replace(/:$/,""):"",host:kr.host,search:kr.search?kr.search.replace(/^\?/,""):"",hash:kr.hash?kr.hash.replace(/^#/,""):"",hostname:kr.hostname,port:kr.port,pathname:"/"===kr.pathname.charAt(0)?kr.pathname:"/"+kr.pathname}}function Ut(e){return(e=y(e)?Vt(e):e).protocol===xr.protocol&&e.host===xr.host}function Wt(){this.$get=f(e)}function qt(e){function t(e){try{return decodeURIComponent(e)}catch(t){return e}}var n=e[0]||{},i={},r="";return function(){var e,o,a,s,l;try{e=n.cookie||""}catch(t){e=""}if(e!==r)for(e=(r=e).split("; "),i={},a=0;a<e.length;a++)0<(s=(o=e[a]).indexOf("="))&&(l=t(o.substring(0,s)),m(i[l])&&(i[l]=t(o.substring(s+1))));return i}}function Gt(){this.$get=qt}function Zt(e){function t(n,r){if(v(n)){var o={};return i(n,(function(e,n){o[n]=t(n,e)})),o}return e.factory(n+"Filter",r)}this.register=t,this.$get=["$injector",function(e){return function(t){return e.get(t+"Filter")}}],t("currency",Qt),t("date",un),t("filter",Jt),t("json",cn),t("limitTo",dn),t("lowercase",Ar),t("number",en),t("orderBy",fn),t("uppercase",Pr)}function Jt(){return function(e,i,r,o){if(!n(e)){if(null==e)return e;throw t("filter")("notarray",e)}var a;switch(o=o||"$",Kt(i)){case"function":break;case"boolean":case"null":case"number":case"string":a=!0;case"object":i=function(e,t,n,i){var r=v(e)&&n in e;return!0===t?t=E:L(t)||(t=function(e,t){return!(m(e)||(null===e||null===t?e!==t:v(t)||v(e)&&!p(e)||(e=Yn(""+e),t=Yn(""+t),-1===e.indexOf(t))))}),function(o){return r&&!v(o)?Xt(o,e[n],t,n,!1):Xt(o,e,t,n,i)}}(i,r,o,a);break;default:return e}return Array.prototype.filter.call(e,i)}}function Xt(e,t,n,i,r,o){var a=Kt(e),s=Kt(t);if("string"===s&&"!"===t.charAt(0))return!Xt(e,t.substring(1),n,i,r);if(Un(e))return e.some((function(e){return Xt(e,t,n,i,r)}));switch(a){case"object":var l;if(r){for(l in e)if("$"!==l.charAt(0)&&Xt(e[l],t,n,i,!0))return!0;return!o&&Xt(e,t,n,i,!1)}if("object"===s){for(l in t)if(!L(o=t[l])&&!m(o)&&!Xt((a=l===i)?e:e[l],o,n,i,a,a))return!1;return!0}return n(e,t);case"function":return!1;default:return n(e,t)}}function Kt(e){return null===e?"null":typeof e}function Qt(e){var t=e.NUMBER_FORMATS;return function(e,n,i){return m(n)&&(n=t.CURRENCY_SYM),m(i)&&(i=t.PATTERNS[1].maxFrac),null==e?e:tn(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,i).replace(/\u00A4/g,n)}}function en(e){var t=e.NUMBER_FORMATS;return function(e,n){return null==e?e:tn(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function tn(e,t,n,i,r){if(!y(e)&&!b(e)||isNaN(e))return"";var o=!isFinite(e),a=!1,s=Math.abs(e)+"",l="";if(o)l="∞";else{for(function(e,t,n,i){var r=e.d,o=r.length-e.i;if(i=r[n=(t=m(t)?Math.min(Math.max(n,o),i):+t)+e.i],0<n){r.splice(Math.max(e.i,n));for(var a=n;a<r.length;a++)r[a]=0}else for(o=Math.max(0,o),e.i=1,r.length=Math.max(1,n=t+1),r[0]=0,a=1;a<n;a++)r[a]=0;if(5<=i)if(0>n-1){for(i=0;i>n;i--)r.unshift(0),e.i++;r.unshift(1),e.i++}else r[n-1]++;for(;o<Math.max(0,t);o++)r.push(0);(t=r.reduceRight((function(e,t,n,i){return t+=e,i[n]=t%10,Math.floor(t/10)}),0))&&(r.unshift(t),e.i++)}(a=function(e){var t,n,i,r,o,a=0;for(-1<(n=e.indexOf(Tr))&&(e=e.replace(Tr,"")),0<(i=e.search(/e/i))?(0>n&&(n=i),n+=+e.slice(i+1),e=e.substring(0,i)):0>n&&(n=e.length),i=0;e.charAt(i)===$r;i++);if(i===(o=e.length))t=[0],n=1;else{for(o--;e.charAt(o)===$r;)o--;for(n-=i,t=[],r=0;i<=o;i++,r++)t[r]=+e.charAt(i)}return n>Sr&&(t=t.splice(0,Sr-1),a=n-1,n=1),{d:t,e:a,i:n}}(s),r,t.minFrac,t.maxFrac),l=a.d,s=a.i,r=a.e,o=[],a=l.reduce((function(e,t){return e&&!t}),!0);0>s;)l.unshift(0),s++;for(0<s?o=l.splice(s,l.length):(o=l,l=[0]),s=[],l.length>=t.lgSize&&s.unshift(l.splice(-t.lgSize,l.length).join(""));l.length>t.gSize;)s.unshift(l.splice(-t.gSize,l.length).join(""));l.length&&s.unshift(l.join("")),l=s.join(n),o.length&&(l+=i+o.join("")),r&&(l+="e+"+r)}return 0>e&&!a?t.negPre+l+t.negSuf:t.posPre+l+t.posSuf}function nn(e,t,n,i){var r="";for((0>e||i&&0>=e)&&(i?e=1-e:(e=-e,r="-")),e=""+e;e.length<t;)e=$r+e;return n&&(e=e.substr(e.length-t)),r+e}function rn(e,t,n,i,r){return n=n||0,function(o){return o=o["get"+e](),(0<n||o>-n)&&(o+=n),0===o&&-12===n&&(o=12),nn(o,t,i,r)}}function on(e,t,n){return function(i,r){var o=i["get"+e]();return r[On((n?"STANDALONE":"")+(t?"SHORT":"")+e)][o]}}function an(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(4>=t?5:12)-t)}function sn(e){return function(t){var n=an(t.getFullYear());return t=+new Date(t.getFullYear(),t.getMonth(),t.getDate()+(4-t.getDay()))-+n,nn(t=1+Math.round(t/6048e5),e)}}function ln(e,t){return 0>=e.getFullYear()?t.ERAS[0]:t.ERAS[1]}function un(e){function t(e){var t;if(t=e.match(n)){e=new Date(0);var i=0,r=0,o=t[8]?e.setUTCFullYear:e.setFullYear,a=t[8]?e.setUTCHours:e.setHours;t[9]&&(i=u(t[9]+t[10]),r=u(t[9]+t[11])),o.call(e,u(t[1]),u(t[2])-1,u(t[3])),i=u(t[4]||0)-i,r=u(t[5]||0)-r,o=u(t[6]||0),t=Math.round(1e3*parseFloat("0."+(t[7]||0))),a.call(e,i,r,o,t)}return e}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,r,o){var a,s,l="",c=[];if(r=r||"mediumDate",r=e.DATETIME_FORMATS[r]||r,y(n)&&(n=Er.test(n)?u(n):t(n)),b(n)&&(n=new Date(n)),!w(n)||!isFinite(n.getTime()))return n;for(;r;)(s=Cr.exec(r))?r=(c=A(c,s,1)).pop():(c.push(r),r=null);var d=n.getTimezoneOffset();return o&&(d=j(o,d),n=H(n,o,!0)),i(c,(function(t){a=Dr[t],l+=a?a(n,e.DATETIME_FORMATS,d):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")})),l}}function cn(){return function(e,t){return m(t)&&(t=2),O(e,t)}}function dn(){return function(e,t,i){return t=1/0===Math.abs(Number(t))?Number(t):u(t),Vn(t)?e:(b(e)&&(e=e.toString()),n(e)?(i=0>(i=!i||isNaN(i)?0:u(i))?Math.max(0,e.length+i):i,0<=t?hn(e,i,i+t):0===i?hn(e,t,e.length):hn(e,Math.max(0,i+t),i)):e)}}function hn(e,t,n){return y(e)?e.slice(t,n):In.call(e,t,n)}function fn(e){function i(t){return t.map((function(t){var n=1,i=h;if(L(t))i=t;else if(y(t)&&("+"!==t.charAt(0)&&"-"!==t.charAt(0)||(n="-"===t.charAt(0)?-1:1,t=t.substring(1)),""!==t&&(i=e(t)).constant)){var r=i();i=function(e){return e[r]}}return{get:i,descending:n}}))}function r(e){switch(typeof e){case"number":case"boolean":case"string":return!0;default:return!1}}function o(e,t){var n=0,i=e.type;if(i===(r=t.type)){var r=e.value,o=t.value;"string"===i?(r=r.toLowerCase(),o=o.toLowerCase()):"object"===i&&(v(r)&&(r=e.index),v(o)&&(o=t.index)),r!==o&&(n=r<o?-1:1)}else n=i<r?-1:1;return n}return function(e,a,s,l){if(null==e)return e;if(!n(e))throw t("orderBy")("notarray",e);Un(a)||(a=[a]),0===a.length&&(a=["+"]);var u=i(a),c=s?-1:1,d=L(l)?l:o;return(e=Array.prototype.map.call(e,(function(e,t){return{value:e,tieBreaker:{value:t,type:"number",index:t},predicateValues:u.map((function(n){var i=n.get(e);return n=typeof i,null===i?(n="string",i="null"):"object"===n&&(L(i.valueOf)&&r(i=i.valueOf())||p(i)&&r(i=i.toString())),{value:i,type:n,index:t}}))}}))).sort((function(e,t){for(var n=0,i=u.length;n<i;n++){var r=d(e.predicateValues[n],t.predicateValues[n]);if(r)return r*u[n].descending*c}return d(e.tieBreaker,t.tieBreaker)*c})),e.map((function(e){return e.value}))}}function pn(e){return L(e)&&(e={link:e}),e.restrict=e.restrict||"AC",f(e)}function mn(e,t,n,r,o){var a=this,s=[];a.$error={},a.$$success={},a.$pending=void 0,a.$name=o(t.name||t.ngForm||"")(n),a.$dirty=!1,a.$pristine=!0,a.$valid=!0,a.$invalid=!1,a.$submitted=!1,a.$$parentForm=Ir,a.$rollbackViewValue=function(){i(s,(function(e){e.$rollbackViewValue()}))},a.$commitViewValue=function(){i(s,(function(e){e.$commitViewValue()}))},a.$addControl=function(e){Z(e.$name,"input"),s.push(e),e.$name&&(a[e.$name]=e),e.$$parentForm=a},a.$$renameControl=function(e,t){var n=e.$name;a[n]===e&&delete a[n],a[t]=e,e.$name=t},a.$removeControl=function(e){e.$name&&a[e.$name]===e&&delete a[e.$name],i(a.$pending,(function(t,n){a.$setValidity(n,null,e)})),i(a.$error,(function(t,n){a.$setValidity(n,null,e)})),i(a.$$success,(function(t,n){a.$setValidity(n,null,e)})),D(s,e),e.$$parentForm=Ir},Sn({ctrl:this,$element:e,set:function(e,t,n){var i=e[t];i?-1===i.indexOf(n)&&i.push(n):e[t]=[n]},unset:function(e,t,n){var i=e[t];i&&(D(i,n),0===i.length&&delete e[t])},$animate:r}),a.$setDirty=function(){r.removeClass(e,yo),r.addClass(e,bo),a.$dirty=!0,a.$pristine=!1,a.$$parentForm.$setDirty()},a.$setPristine=function(){r.setClass(e,yo,bo+" ng-submitted"),a.$dirty=!1,a.$pristine=!0,a.$submitted=!1,i(s,(function(e){e.$setPristine()}))},a.$setUntouched=function(){i(s,(function(e){e.$setUntouched()}))},a.$setSubmitted=function(){r.addClass(e,"ng-submitted"),a.$submitted=!0,a.$$parentForm.$setSubmitted()}}function gn(e){e.$formatters.push((function(t){return e.$isEmpty(t)?t:t.toString()}))}function vn(e,t,n,i,r,o){var a=Yn(t[0].type);if(!r.android){var s=!1;t.on("compositionstart",(function(){s=!0})),t.on("compositionend",(function(){s=!1,u()}))}var l,u=function(e){if(l&&(o.defer.cancel(l),l=null),!s){var r=t.val();e=e&&e.type,"password"===a||n.ngTrim&&"false"===n.ngTrim||(r=qn(r)),(i.$viewValue!==r||""===r&&i.$$hasNativeValidators)&&i.$setViewValue(r,e)}};if(r.hasEvent("input"))t.on("input",u);else{var c=function(e,t,n){l||(l=o.defer((function(){l=null,t&&t.value===n||u(e)})))};t.on("keydown",(function(e){var t=e.keyCode;91===t||15<t&&19>t||37<=t&&40>=t||c(e,this,this.value)})),r.hasEvent("paste")&&t.on("paste cut",c)}t.on("change",u),Zr[a]&&i.$$hasNativeValidators&&a===n.type&&t.on("keydown wheel mousedown",(function(e){if(!l){var t=this.validity,n=t.badInput,i=t.typeMismatch;l=o.defer((function(){l=null,t.badInput===n&&t.typeMismatch===i||u(e)}))}})),i.$render=function(){var e=i.$isEmpty(i.$viewValue)?"":i.$viewValue;t.val()!==e&&t.val(e)}}function _n(e,t){return function(n,r){var o,a;if(w(n))return n;if(y(n)){if('"'===n.charAt(0)&&'"'===n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),Br.test(n))return new Date(n);if(e.lastIndex=0,o=e.exec(n))return o.shift(),a=r?{yyyy:r.getFullYear(),MM:r.getMonth()+1,dd:r.getDate(),HH:r.getHours(),mm:r.getMinutes(),ss:r.getSeconds(),sss:r.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},i(o,(function(e,n){n<t.length&&(a[t[n]]=+e)})),new Date(a.yyyy,a.MM-1,a.dd,a.HH,a.mm,a.ss||0,1e3*a.sss||0)}return NaN}}function yn(e,t,n,i){return function(r,o,a,s,l,u,c){function d(e){return e&&!(e.getTime&&e.getTime()!=e.getTime())}function h(e){return g(e)&&!w(e)?n(e)||void 0:e}bn(0,o,0,s),vn(0,o,a,s,l,u);var f,p,v,_=s&&s.$options&&s.$options.timezone;s.$$parserName=e,s.$parsers.push((function(e){return s.$isEmpty(e)?null:t.test(e)?(e=n(e,f),_&&(e=H(e,_)),e):void 0})),s.$formatters.push((function(e){if(e&&!w(e))throw Lo("datefmt",e);return d(e)?((f=e)&&_&&(f=H(f,_,!0)),c("date")(e,i,_)):(f=null,"")})),(g(a.min)||a.ngMin)&&(s.$validators.min=function(e){return!d(e)||m(p)||n(e)>=p},a.$observe("min",(function(e){p=h(e),s.$validate()}))),(g(a.max)||a.ngMax)&&(s.$validators.max=function(e){return!d(e)||m(v)||n(e)<=v},a.$observe("max",(function(e){v=h(e),s.$validate()})))}}function bn(e,t,n,i){(i.$$hasNativeValidators=v(t[0].validity))&&i.$parsers.push((function(e){var n=t.prop("validity")||{};return n.badInput||n.typeMismatch?void 0:e}))}function wn(e){e.$$parserName="number",e.$parsers.push((function(t){return e.$isEmpty(t)?null:zr.test(t)?parseFloat(t):void 0})),e.$formatters.push((function(t){if(!e.$isEmpty(t)){if(!b(t))throw Lo("numfmt",t);t=t.toString()}return t}))}function Ln(e){return g(e)&&!b(e)&&(e=parseFloat(e)),Vn(e)?void 0:e}function Mn(e){var t=e.toString(),n=t.indexOf(".");return-1===n?-1<e&&1>e&&(e=/e-(\d+)$/.exec(t))?Number(e[1]):0:t.length-n-1}function kn(e,t,n,i,r){if(g(i)){if(!(e=e(i)).constant)throw Lo("constexpr",n,i);return e(t)}return r}function xn(e,t){return e="ngClass"+e,["$animate",function(n){function r(e,t){var n=[],i=0;e:for(;i<e.length;i++){for(var r=e[i],o=0;o<t.length;o++)if(r===t[o])continue e;n.push(r)}return n}function o(e){var t=[];return Un(e)?(i(e,(function(e){t=t.concat(o(e))})),t):y(e)?e.split(" "):v(e)?(i(e,(function(e,n){e&&(t=t.concat(n.split(" ")))})),t):e}return{restrict:"AC",link:function(a,s,l){function u(e){e=c(e,1),l.$addClass(e)}function c(e,t){var n=s.data("$classCounts")||K(),r=[];return i(e,(function(e){(0<t||n[e])&&(n[e]=(n[e]||0)+t,n[e]===+(0<t)&&r.push(e))})),s.data("$classCounts",n),r.join(" ")}function d(e,t){var i=r(t,e),o=r(e,t);i=c(i,1),o=c(o,-1),i&&i.length&&n.addClass(s,i),o&&o.length&&n.removeClass(s,o)}function h(e){if(!0===t||(1&a.$index)===t){var n=o(e||[]);f?E(e,f)||d(o(f),n):u(n)}f=Un(e)?e.map((function(e){return Q(e)})):Q(e)}var f;l.$observe("class",(function(t){h(a.$eval(l[e]))})),"ngClass"!==e&&a.$watch("$index",(function(e,n){var i=1&e;if(i!==(1&n)){var r=o(f);i===t?u(r):(i=c(r,-1),l.$removeClass(i))}})),a.$watch(l[e],h,!0)}}}]}function Sn(e){function t(e,t){t&&!o[e]?(l.addClass(r,e),o[e]=!0):!t&&o[e]&&(l.removeClass(r,e),o[e]=!1)}function n(e,n){e=e?"-"+W(e,"-"):"",t(vo+e,!0===n),t(_o+e,!1===n)}var i=e.ctrl,r=e.$element,o={},a=e.set,s=e.unset,l=e.$animate;o[_o]=!(o[vo]=r.hasClass(vo)),i.$setValidity=function(e,r,o){m(r)?(i.$pending||(i.$pending={}),a(i.$pending,e,o)):(i.$pending&&s(i.$pending,e,o),Tn(i.$pending)&&(i.$pending=void 0)),S(r)?r?(s(i.$error,e,o),a(i.$$success,e,o)):(a(i.$error,e,o),s(i.$$success,e,o)):(s(i.$error,e,o),s(i.$$success,e,o)),i.$pending?(t(wo,!0),i.$valid=i.$invalid=void 0,n("",null)):(t(wo,!1),i.$valid=Tn(i.$error),i.$invalid=!i.$valid,n("",i.$valid)),n(e,r=i.$pending&&i.$pending[e]?void 0:!i.$error[e]&&(!!i.$$success[e]||null)),i.$$parentForm.$setValidity(e,r,i)}}function Tn(e){if(e)for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}var $n,Dn,Cn,En,An=/^\/(.+)\/([a-z]*)$/,Pn=Object.prototype.hasOwnProperty,Yn=function(e){return y(e)?e.toLowerCase():e},On=function(e){return y(e)?e.toUpperCase():e},In=[].slice,jn=[].splice,Hn=[].push,Nn=Object.prototype.toString,Bn=Object.getPrototypeOf,Rn=t("ng"),Fn=e.angular||(e.angular={}),zn=0;$n=e.document.documentMode;var Vn=Number.isNaN||function(e){return e!=e};d.$inject=[],h.$inject=[];var Un=Array.isArray,Wn=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/,qn=function(e){return y(e)?e.trim():e},Gn=function(e){return e.replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},Zn=function(){if(!g(Zn.rules)){var t=e.document.querySelector("[ng-csp]")||e.document.querySelector("[data-ng-csp]");if(t){var n=t.getAttribute("ng-csp")||t.getAttribute("data-ng-csp");Zn.rules={noUnsafeEval:!n||-1!==n.indexOf("no-unsafe-eval"),noInlineStyle:!n||-1!==n.indexOf("no-inline-style")}}else{t=Zn;try{new Function(""),n=!1}catch(e){n=!0}t.rules={noUnsafeEval:n,noInlineStyle:!1}}}return Zn.rules},Jn=function(){if(g(Jn.name_))return Jn.name_;var t,n,i,r,o=Kn.length;for(n=0;n<o;++n)if(i=Kn[n],t=e.document.querySelector("["+i.replace(":","\\:")+"jq]")){r=t.getAttribute(i+"jq");break}return Jn.name_=r},Xn=/:/g,Kn=["ng-","data-ng-","ng:","x-ng-"],Qn=function(e){var t;if(!(t=(t=e.currentScript)&&t.getAttribute("src")))return!0;var n=e.createElement("a");if(n.href=t,e.location.origin===n.origin)return!0;switch(n.protocol){case"http:":case"https:":case"ftp:":case"blob:":case"file:":case"data:":return!0;default:return!1}}(e.document),ei=/[A-Z]/g,ti=!1,ni=3;re.expando="ng339";var ii=re.cache={},ri=1;re._data=function(e){return this.cache[e[this.expando]]||{}};var oi=/([:\-_]+(.))/g,ai=/^moz([A-Z])/,si={mouseleave:"mouseout",mouseenter:"mouseover"},li=t("jqLite"),ui=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,ci=/<|&#?\w+;/,di=/<([\w:-]+)/,hi=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,fi={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};fi.optgroup=fi.option,fi.tbody=fi.tfoot=fi.colgroup=fi.caption=fi.thead,fi.th=fi.td;var pi=e.Node.prototype.contains||function(e){return!!(16&this.compareDocumentPosition(e))},mi=re.prototype={ready:function(t){function n(){i||(i=!0,t())}var i=!1;"complete"===e.document.readyState?e.setTimeout(n):(this.on("DOMContentLoaded",n),re(e).on("load",n))},toString:function(){var e=[];return i(this,(function(t){e.push(""+t)})),"["+e.join(", ")+"]"},eq:function(e){return Dn(0<=e?this[e]:this[this.length+e])},length:0,push:Hn,sort:[].sort,splice:[].splice},gi={};i("multiple selected checked disabled readOnly required open".split(" "),(function(e){gi[Yn(e)]=e}));var vi={};i("input select option textarea button form details".split(" "),(function(e){vi[e]=!0}));var _i={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};i({data:ce,removeData:le,hasData:function(e){for(var t in ii[e.ng339])return!0;return!1},cleanData:function(e){for(var t=0,n=e.length;t<n;t++)le(e[t])}},(function(e,t){re[t]=e})),i({data:ce,inheritedData:ge,scope:function(e){return Dn.data(e,"$scope")||ge(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return Dn.data(e,"$isolateScope")||Dn.data(e,"$isolateScopeNoTemplate")},controller:me,injector:function(e){return ge(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:de,css:function(e,t,n){if(t=ee(t),!g(n))return e.style[t];e.style[t]=n},attr:function(e,t,n){var i=e.nodeType;if(i!==ni&&2!==i&&8!==i)if(i=Yn(t),gi[i]){if(!g(n))return e[t]||(e.attributes.getNamedItem(t)||d).specified?i:void 0;n?(e[t]=!0,e.setAttribute(t,i)):(e[t]=!1,e.removeAttribute(i))}else if(g(n))e.setAttribute(t,n);else if(e.getAttribute)return null===(e=e.getAttribute(t,2))?void 0:e},prop:function(e,t,n){if(!g(n))return e[t];e[t]=n},text:function(){function e(e,t){if(m(t)){var n=e.nodeType;return 1===n||n===ni?e.textContent:""}e.textContent=t}return e.$dv="",e}(),val:function(e,t){if(m(t)){if(e.multiple&&"select"===$(e)){var n=[];return i(e.options,(function(e){e.selected&&n.push(e.value||e.text)})),0===n.length?null:n}return e.value}e.value=t},html:function(e,t){if(m(t))return e.innerHTML;ae(e,!0),e.innerHTML=t},empty:ve},(function(e,t){re.prototype[t]=function(t,n){var i,r,o=this.length;if(e!==ve&&m(2===e.length&&e!==de&&e!==me?t:n)){if(v(t)){for(i=0;i<o;i++)if(e===ce)e(this[i],t);else for(r in t)e(this[i],r,t[r]);return this}for(o=m(i=e.$dv)?Math.min(o,1):o,r=0;r<o;r++){var a=e(this[r],t,n);i=i?i+a:a}return i}for(i=0;i<o;i++)e(this[i],t,n);return this}})),i({removeData:le,on:function(e,t,n,i){if(g(i))throw li("onargs");if(te(e)){var r=(i=ue(e,!0)).events,o=i.handle;o||(o=i.handle=function(e,t){var n=function(n,i){n.isDefaultPrevented=function(){return n.defaultPrevented};var r=t[i||n.type],o=r?r.length:0;if(o){if(m(n.immediatePropagationStopped)){var a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),a&&a.call(n)}}n.isImmediatePropagationStopped=function(){return!0===n.immediatePropagationStopped};var s=r.specialHandlerWrapper||be;1<o&&(r=Q(r));for(var l=0;l<o;l++)n.isImmediatePropagationStopped()||s(e,n,r[l])}};return n.elem=e,n}(e,r));for(var a=(i=0<=t.indexOf(" ")?t.split(" "):[t]).length,s=function(t,i,a){var s=r[t];s||((s=r[t]=[]).specialHandlerWrapper=i,"$destroy"===t||a||e.addEventListener(t,o,!1)),s.push(n)};a--;)t=i[a],si[t]?(s(si[t],we),s(t,void 0,!0)):s(t)}},off:se,one:function(e,t,n){(e=Dn(e)).on(t,(function i(){e.off(t,n),e.off(t,i)})),e.on(t,n)},replaceWith:function(e,t){var n,r=e.parentNode;ae(e),i(new re(t),(function(t){n?r.insertBefore(t,n.nextSibling):r.replaceChild(t,e),n=t}))},children:function(e){var t=[];return i(e.childNodes,(function(e){1===e.nodeType&&t.push(e)})),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){if(1===(n=e.nodeType)||11===n)for(var n=0,i=(t=new re(t)).length;n<i;n++)e.appendChild(t[n])},prepend:function(e,t){if(1===e.nodeType){var n=e.firstChild;i(new re(t),(function(t){e.insertBefore(t,n)}))}},wrap:function(e,t){ie(e,Dn(t).eq(0).clone()[0])},remove:_e,detach:function(e){_e(e,!0)},after:function(e,t){var n=e,i=e.parentNode;if(i)for(var r=0,o=(t=new re(t)).length;r<o;r++){var a=t[r];i.insertBefore(a,n.nextSibling),n=a}},addClass:fe,removeClass:he,toggleClass:function(e,t,n){t&&i(t.split(" "),(function(t){var i=n;m(i)&&(i=!de(e,t)),(i?fe:he)(e,t)}))},parent:function(e){return(e=e.parentNode)&&11!==e.nodeType?e:null},next:function(e){return e.nextElementSibling},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:oe,triggerHandler:function(e,t,n){var r,o,a=t.type||t,s=ue(e);(s=(s=s&&s.events)&&s[a])&&(r={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:d,type:a,target:e},t.type&&(r=l(r,t)),t=Q(s),o=n?[r].concat(n):[r],i(t,(function(t){r.isImmediatePropagationStopped()||t.apply(e,o)})))}},(function(e,t){re.prototype[t]=function(t,n,i){for(var r,o=0,a=this.length;o<a;o++)m(r)?g(r=e(this[o],t,n,i))&&(r=Dn(r)):pe(r,e(this[o],t,n,i));return g(r)?r:this}})),re.prototype.bind=re.prototype.on,re.prototype.unbind=re.prototype.off,ke.prototype={put:function(e,t){this[Me(e,this.nextUid)]=t},get:function(e){return this[Me(e,this.nextUid)]},remove:function(e){var t=this[e=Me(e,this.nextUid)];return delete this[e],t}};var yi=[function(){this.$get=[function(){return ke}]}],bi=/^([^(]+?)=>/,wi=/^[^(]*\(\s*([^)]*)\)/m,Li=/,/,Mi=/^\s*(_?)(\S+?)\1\s*$/,ki=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,xi=t("$injector");Se.$$annotate=function(e,t,n){var r;if("function"==typeof e){if(!(r=e.$inject)){if(r=[],e.length){if(t)throw y(n)&&n||(n=e.name||function(e){return(e=xe(e))?"function("+(e[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}(e)),xi("strictdi",n);i((t=xe(e))[1].split(Li),(function(e){e.replace(Mi,(function(e,t,n){r.push(n)}))}))}e.$inject=r}}else Un(e)?(G(e[t=e.length-1],"fn"),r=e.slice(0,t)):G(e,"fn",!0);return r};var Si=t("$animate"),Ti=function(){this.$get=d},$i=function(){var e=new ke,t=[];this.$get=["$$AnimateRunner","$rootScope",function(n,r){function o(e,t,n){var r=!1;return t&&i(t=y(t)?t.split(" "):Un(t)?t:[],(function(t){t&&(r=!0,e[t]=n)})),r}function a(){i(t,(function(t){var n=e.get(t);if(n){var r=function(e){y(e)&&(e=e.split(" "));var t=K();return i(e,(function(e){e.length&&(t[e]=!0)})),t}(t.attr("class")),o="",a="";i(n,(function(e,t){e!==!!r[t]&&(e?o+=(o.length?" ":"")+t:a+=(a.length?" ":"")+t)})),i(t,(function(e){o&&fe(e,o),a&&he(e,a)})),e.remove(t)}})),t.length=0}return{enabled:d,on:d,off:d,pin:d,push:function(i,s,l,u){return u&&u(),(l=l||{}).from&&i.css(l.from),l.to&&i.css(l.to),(l.addClass||l.removeClass)&&(s=l.addClass,u=l.removeClass,s=o(l=e.get(i)||{},s,!0),u=o(l,u,!1),(s||u)&&(e.put(i,l),t.push(i),1===t.length&&r.$$postDigest(a))),(i=new n).complete(),i}}}]},Di=["$provide",function(e){var t=this;this.$$registeredAnimations=Object.create(null),this.register=function(n,i){if(n&&"."!==n.charAt(0))throw Si("notcsel",n);var r=n+"-animation";t.$$registeredAnimations[n.substr(1)]=r,e.factory(r,i)},this.classNameFilter=function(e){
+if(1===arguments.length&&(this.$$classNameFilter=e instanceof RegExp?e:null)&&/(\s+|\/)ng-animate(\s+|\/)/.test(this.$$classNameFilter.toString()))throw Si("nongcls","ng-animate");return this.$$classNameFilter},this.$get=["$$animateQueue",function(e){function t(e,t,n){if(n){var i;e:{for(i=0;i<n.length;i++){var r=n[i];if(1===r.nodeType){i=r;break e}}i=void 0}!i||i.parentNode||i.previousElementSibling||(n=null)}n?n.after(e):t.prepend(e)}return{on:e.on,off:e.off,pin:e.pin,enabled:e.enabled,cancel:function(e){e.end&&e.end()},enter:function(n,i,r,o){return i=i&&Dn(i),r=r&&Dn(r),t(n,i=i||r.parent(),r),e.push(n,"enter",De(o))},move:function(n,i,r,o){return i=i&&Dn(i),r=r&&Dn(r),t(n,i=i||r.parent(),r),e.push(n,"move",De(o))},leave:function(t,n){return e.push(t,"leave",De(n),(function(){t.remove()}))},addClass:function(t,n,i){return(i=De(i)).addClass=$e(i.addclass,n),e.push(t,"addClass",i)},removeClass:function(t,n,i){return(i=De(i)).removeClass=$e(i.removeClass,n),e.push(t,"removeClass",i)},setClass:function(t,n,i,r){return(r=De(r)).addClass=$e(r.addClass,n),r.removeClass=$e(r.removeClass,i),e.push(t,"setClass",r)},animate:function(t,n,i,r,o){return(o=De(o)).from=o.from?l(o.from,n):n,o.to=o.to?l(o.to,i):i,o.tempClasses=$e(o.tempClasses,r||"ng-inline-animate"),e.push(t,"animate",o)}}}]}],Ci=function(){this.$get=["$$rAF",function(e){function t(t){n.push(t),1<n.length||e((function(){for(var e=0;e<n.length;e++)n[e]();n=[]}))}var n=[];return function(){var e=!1;return t((function(){e=!0})),function(n){e?n():t(n)}}}]},Ei=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$document","$timeout",function(e,t,n,r,o){function a(e){this.setHost(e);var t=n();this._doneCallbacks=[],this._tick=function(e){var n=r[0];n&&n.hidden?o(e,0,!1):t(e)},this._state=0}return a.chain=function(e,t){var n=0;!function i(){n===e.length?t(!0):e[n]((function(e){!1===e?t(!1):(n++,i())}))}()},a.all=function(e,t){function n(n){o=o&&n,++r===e.length&&t(o)}var r=0,o=!0;i(e,(function(e){e.done(n)}))},a.prototype={setHost:function(e){this.host=e||{}},done:function(e){2===this._state?e():this._doneCallbacks.push(e)},progress:d,getPromise:function(){if(!this.promise){var t=this;this.promise=e((function(e,n){t.done((function(t){!1===t?n():e()}))}))}return this.promise},then:function(e,t){return this.getPromise().then(e,t)},catch:function(e){return this.getPromise().catch(e)},finally:function(e){return this.getPromise().finally(e)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(e){var t=this;0===t._state&&(t._state=1,t._tick((function(){t._resolve(e)})))},_resolve:function(e){2!==this._state&&(i(this._doneCallbacks,(function(t){t(e)})),this._doneCallbacks.length=0,this._state=2)}},a}]},Ai=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(e,t,n){return function(t,i){function r(){return e((function(){o.addClass&&(t.addClass(o.addClass),o.addClass=null),o.removeClass&&(t.removeClass(o.removeClass),o.removeClass=null),o.to&&(t.css(o.to),o.to=null),a||s.complete(),a=!0})),s}var o=i||{};o.$$prepared||(o=C(o)),o.cleanupStyles&&(o.from=o.to=null),o.from&&(t.css(o.from),o.from=null);var a,s=new n;return{start:r,end:r}}}]},Pi=t("$compile"),Yi=new function(){};Ye.$inject=["$provide","$$sanitizeUriProvider"],Oe.prototype.isFirstChange=function(){return this.previousValue===Yi};var Oi=/^((?:x|data)[:\-_])/i,Ii=t("$controller"),ji=/^(\S+)(\s+as\s+([\w$]+))?$/,Hi=function(){this.$get=["$document",function(e){return function(t){return t?!t.nodeType&&t instanceof Dn&&(t=t[0]):t=e[0].body,t.offsetWidth+1}}]},Ni="application/json",Bi={"Content-Type":Ni+";charset=utf-8"},Ri=/^\[|^\{(?!\{)/,Fi={"[":/]$/,"{":/}$/},zi=/^\)]\}',?\n/,Vi=t("$http"),Ui=function(e){return function(){throw Vi("legacy",e)}},Wi=Fn.$interpolateMinErr=t("$interpolate");Wi.throwNoconcat=function(e){throw Wi("noconcat",e)},Wi.interr=function(e,t){return Wi("interr",e,t.toString())};var qi=function(){this.$get=["$window",function(e){var t=e.angular.callbacks,n={};return{createCallback:function(e){var i="angular.callbacks."+(e="_"+(t.$$counter++).toString(36)),r=function(e){var t=function(e){t.data=e,t.called=!0};return t.id=e,t}(e);return n[i]=t[e]=r,i},wasCalled:function(e){return n[e].called},getResponse:function(e){return n[e].data},removeCallback:function(e){delete t[n[e].id],delete n[e]}}}]},Gi=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,Zi={http:80,https:443,ftp:21},Ji=t("$location"),Xi=/^\s*[\\/]{2,}/,Ki={$$absUrl:"",$$html5:!1,$$replace:!1,absUrl:ct("$$absUrl"),url:function(e){if(m(e))return this.$$url;var t=Gi.exec(e);return(t[1]||""===e)&&this.path(decodeURIComponent(t[1])),(t[2]||t[1]||""===e)&&this.search(t[3]||""),this.hash(t[5]||""),this},protocol:ct("$$protocol"),host:ct("$$host"),port:ct("$$port"),path:dt("$$path",(function(e){return"/"===(e=null!==e?e.toString():"").charAt(0)?e:"/"+e})),search:function(e,t){switch(arguments.length){case 0:return this.$$search;case 1:if(y(e)||b(e))e=e.toString(),this.$$search=R(e);else{if(!v(e))throw Ji("isrcharg");i(e=C(e,{}),(function(t,n){null==t&&delete e[n]})),this.$$search=e}break;default:m(t)||null===t?delete this.$$search[e]:this.$$search[e]=t}return this.$$compose(),this},hash:dt("$$hash",(function(e){return null!==e?e.toString():""})),replace:function(){return this.$$replace=!0,this}};i([ut,lt,st],(function(e){e.prototype=Object.create(Ki),e.prototype.state=function(t){if(!arguments.length)return this.$$state;if(e!==st||!this.$$html5)throw Ji("nostate");return this.$$state=m(t)?null:t,this}}));var Qi=t("$parse"),er=[].constructor,tr=(!1).constructor,nr=Function.constructor,ir=(0).constructor,rr={}.constructor,or="".constructor,ar=er.prototype,sr=tr.prototype,lr=nr.prototype,ur=ir.prototype,cr=rr.prototype,dr=or.prototype,hr=lr.call,fr=lr.apply,pr=lr.bind,mr=cr.valueOf,gr=K();i("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),(function(e){gr[e]=!0}));var vr={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},_r=function(e){this.options=e};_r.prototype={constructor:_r,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index<this.text.length;)if('"'===(e=this.text.charAt(this.index))||"'"===e)this.readString(e);else if(this.isNumber(e)||"."===e&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(e,"(){}[].,;:?"))this.tokens.push({index:this.index,text:e}),this.index++;else if(this.isWhitespace(e))this.index++;else{var t=e+this.peek(),n=t+this.peek(2),i=gr[t],r=gr[n];gr[e]||i||r?(e=r?n:i?t:e,this.tokens.push({index:this.index,text:e,operator:!0}),this.index+=e.length):this.throwError("Unexpected next character ",this.index,this.index+1)}return this.tokens},is:function(e,t){return-1!==t.indexOf(e)},peek:function(e){return e=e||1,this.index+e<this.text.length&&this.text.charAt(this.index+e)},isNumber:function(e){return"0"<=e&&"9">=e&&"string"==typeof e},isWhitespace:function(e){return" "===e||"\r"===e||"\t"===e||"\n"===e||"\v"===e||" "===e},isIdentifierStart:function(e){return this.options.isIdentifierStart?this.options.isIdentifierStart(e,this.codePointAt(e)):this.isValidIdentifierStart(e)},isValidIdentifierStart:function(e){return"a"<=e&&"z">=e||"A"<=e&&"Z">=e||"_"===e||"$"===e},isIdentifierContinue:function(e){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(e,this.codePointAt(e)):this.isValidIdentifierContinue(e)},isValidIdentifierContinue:function(e,t){return this.isValidIdentifierStart(e,t)||this.isNumber(e)},codePointAt:function(e){return 1===e.length?e.charCodeAt(0):(e.charCodeAt(0)<<10)+e.charCodeAt(1)-56613888},peekMultichar:function(){var e=this.text.charAt(this.index),t=this.peek();if(!t)return e;var n=e.charCodeAt(0),i=t.charCodeAt(0);return 55296<=n&&56319>=n&&56320<=i&&57343>=i?e+t:e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){throw n=n||this.index,t=g(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n,Qi("lexerr",e,t,this.text)},readNumber:function(){for(var e="",t=this.index;this.index<this.text.length;){var n=Yn(this.text.charAt(this.index));if("."===n||this.isNumber(n))e+=n;else{var i=this.peek();if("e"===n&&this.isExpOperator(i))e+=n;else if(this.isExpOperator(n)&&i&&this.isNumber(i)&&"e"===e.charAt(e.length-1))e+=n;else{if(!this.isExpOperator(n)||i&&this.isNumber(i)||"e"!==e.charAt(e.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:t,text:e,constant:!0,value:Number(e)})},readIdent:function(){var e=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var t=this.peekMultichar();if(!this.isIdentifierContinue(t))break;this.index+=t.length}this.tokens.push({index:e,text:this.text.slice(e,this.index),identifier:!0})},readString:function(e){var t=this.index;this.index++;for(var n="",i=e,r=!1;this.index<this.text.length;){var o=this.text.charAt(this.index);if(i+=o,r)"u"===o?((r=this.text.substring(this.index+1,this.index+5)).match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+r+"]"),this.index+=4,n+=String.fromCharCode(parseInt(r,16))):n+=vr[o]||o,r=!1;else if("\\"===o)r=!0;else{if(o===e)return this.index++,void this.tokens.push({index:t,text:i,constant:!0,value:n});n+=o}this.index++}this.throwError("Unterminated quote",t)}};var yr=function(e,t){this.lexer=e,this.options=t};yr.Program="Program",yr.ExpressionStatement="ExpressionStatement",yr.AssignmentExpression="AssignmentExpression",yr.ConditionalExpression="ConditionalExpression",yr.LogicalExpression="LogicalExpression",yr.BinaryExpression="BinaryExpression",yr.UnaryExpression="UnaryExpression",yr.CallExpression="CallExpression",yr.MemberExpression="MemberExpression",yr.Identifier="Identifier",yr.Literal="Literal",yr.ArrayExpression="ArrayExpression",yr.Property="Property",yr.ObjectExpression="ObjectExpression",yr.ThisExpression="ThisExpression",yr.LocalsExpression="LocalsExpression",yr.NGValueParameter="NGValueParameter",yr.prototype={ast:function(e){return this.text=e,this.tokens=this.lexer.lex(e),e=this.program(),0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),e},program:function(){for(var e=[];;)if(0<this.tokens.length&&!this.peek("}",")",";","]")&&e.push(this.expressionStatement()),!this.expect(";"))return{type:yr.Program,body:e}},expressionStatement:function(){return{type:yr.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e=this.expression();this.expect("|");)e=this.filter(e);return e},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();if(this.expect("=")){if(!Mt(e))throw Qi("lval");e={type:yr.AssignmentExpression,left:e,right:this.assignment(),operator:"="}}return e},ternary:function(){var e,t,n=this.logicalOR();return this.expect("?")&&(e=this.expression(),this.consume(":"))?(t=this.expression(),{type:yr.ConditionalExpression,test:n,alternate:e,consequent:t}):n},logicalOR:function(){for(var e=this.logicalAND();this.expect("||");)e={type:yr.LogicalExpression,operator:"||",left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect("&&");)e={type:yr.LogicalExpression,operator:"&&",left:e,right:this.equality()};return e},equality:function(){for(var e,t=this.relational();e=this.expect("==","!=","===","!==");)t={type:yr.BinaryExpression,operator:e.text,left:t,right:this.relational()};return t},relational:function(){for(var e,t=this.additive();e=this.expect("<",">","<=",">=");)t={type:yr.BinaryExpression,operator:e.text,left:t,right:this.additive()};return t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t={type:yr.BinaryExpression,operator:e.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t={type:yr.BinaryExpression,operator:e.text,left:t,right:this.unary()};return t},unary:function(){var e;return(e=this.expect("+","-","!"))?{type:yr.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e,t;for(this.expect("(")?(e=this.filterChain(),this.consume(")")):this.expect("[")?e=this.arrayDeclaration():this.expect("{")?e=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?e=C(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?e={type:yr.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError("not a primary expression",this.peek());t=this.expect("(","[",".");)"("===t.text?(e={type:yr.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(")")):"["===t.text?(e={type:yr.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume("]")):"."===t.text?e={type:yr.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return e},filter:function(e){e=[e];for(var t={type:yr.CallExpression,callee:this.identifier(),arguments:e,filter:!0};this.expect(":");)e.push(this.expression());return t},parseArguments:function(){var e=[];if(")"!==this.peekToken().text)do{e.push(this.filterChain())}while(this.expect(","));return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError("is not a valid identifier",e),{type:yr.Identifier,name:e.text}},constant:function(){return{type:yr.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;e.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:yr.ArrayExpression,elements:e}},object:function(){var e,t=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;e={type:yr.Property,kind:"init"},this.peek().constant?(e.key=this.constant(),e.computed=!1,this.consume(":"),e.value=this.expression()):this.peek().identifier?(e.key=this.identifier(),e.computed=!1,this.peek(":")?(this.consume(":"),e.value=this.expression()):e.value=e.key):this.peek("[")?(this.consume("["),e.key=this.expression(),this.consume("]"),e.computed=!0,this.consume(":"),e.value=this.expression()):this.throwError("invalid key",this.peek()),t.push(e)}while(this.expect(","));return this.consume("}"),{type:yr.ObjectExpression,properties:t}},throwError:function(e,t){throw Qi("syntax",t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(0===this.tokens.length)throw Qi("ueoe",this.text);var t=this.expect(e);return t||this.throwError("is unexpected, expecting ["+e+"]",this.peek()),t},peekToken:function(){if(0===this.tokens.length)throw Qi("ueoe",this.text);return this.tokens[0]},peek:function(e,t,n,i){return this.peekAhead(0,e,t,n,i)},peekAhead:function(e,t,n,i,r){if(this.tokens.length>e){var o=(e=this.tokens[e]).text;if(o===t||o===n||o===i||o===r||!(t||n||i||r))return e}return!1},expect:function(e,t,n,i){return!!(e=this.peek(e,t,n,i))&&(this.tokens.shift(),e)},selfReferential:{this:{type:yr.ThisExpression},$locals:{type:yr.LocalsExpression}}},St.prototype={compile:function(e,t){var n=this,r=this.astBuilder.ast(e);this.state={nextId:0,filters:{},expensiveChecks:t,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},wt(r,n.$filter);var o,a="";return this.stage="assign",(o=kt(r))&&(this.state.computing="assign",a=this.nextId(),this.recurse(o,a),this.return_(a),a="fn.assign="+this.generateFunction("assign","s,v,l")),o=Lt(r.body),n.stage="inputs",i(o,(function(e,t){var i="fn"+t;n.state[i]={vars:[],body:[],own:{}},n.state.computing=i;var r=n.nextId();n.recurse(e,r),n.return_(r),n.state.inputs.push(i),e.watchId=t})),this.state.computing="fn",this.stage="main",this.recurse(r),a='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+a+this.watchFns()+"return fn;",a=new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext","ifDefined","plus","text",a)(this.$filter,pt,gt,vt,mt,_t,yt,bt,e),this.state=this.stage=void 0,a.literal=xt(r),a.constant=r.constant,a},USE:"use",STRICT:"strict",watchFns:function(){var e=[],t=this.state.inputs,n=this;return i(t,(function(t){e.push("var "+t+"="+n.generateFunction(t,"s"))})),t.length&&e.push("fn.inputs=["+t.join(",")+"];"),e.join("")},generateFunction:function(e,t){return"function("+t+"){"+this.varsPrefix(e)+this.body(e)+"};"},filterPrefix:function(){var e=[],t=this;return i(this.state.filters,(function(n,i){e.push(n+"=$filter("+t.escape(i)+")")})),e.length?"var "+e.join(",")+";":""},varsPrefix:function(e){return this.state[e].vars.length?"var "+this.state[e].vars.join(",")+";":""},body:function(e){return this.state[e].body.join("")},recurse:function(e,t,n,r,o,a){var s,l,u,c,h,f=this;if(r=r||d,!a&&g(e.watchId))t=t||this.nextId(),this.if_("i",this.lazyAssign(t,this.computedMember("i",e.watchId)),this.lazyRecurse(e,t,n,r,o,!0));else switch(e.type){case yr.Program:i(e.body,(function(t,n){f.recurse(t.expression,void 0,void 0,(function(e){l=e})),n!==e.body.length-1?f.current().body.push(l,";"):f.return_(l)}));break;case yr.Literal:c=this.escape(e.value),this.assign(t,c),r(c);break;case yr.UnaryExpression:this.recurse(e.argument,void 0,void 0,(function(e){l=e})),c=e.operator+"("+this.ifDefined(l,0)+")",this.assign(t,c),r(c);break;case yr.BinaryExpression:this.recurse(e.left,void 0,void 0,(function(e){s=e})),this.recurse(e.right,void 0,void 0,(function(e){l=e})),c="+"===e.operator?this.plus(s,l):"-"===e.operator?this.ifDefined(s,0)+e.operator+this.ifDefined(l,0):"("+s+")"+e.operator+"("+l+")",this.assign(t,c),r(c);break;case yr.LogicalExpression:t=t||this.nextId(),f.recurse(e.left,t),f.if_("&&"===e.operator?t:f.not(t),f.lazyRecurse(e.right,t)),r(t);break;case yr.ConditionalExpression:t=t||this.nextId(),f.recurse(e.test,t),f.if_(t,f.lazyRecurse(e.alternate,t),f.lazyRecurse(e.consequent,t)),r(t);break;case yr.Identifier:t=t||this.nextId(),n&&(n.context="inputs"===f.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",e.name)+"?l:s"),n.computed=!1,n.name=e.name),pt(e.name),f.if_("inputs"===f.stage||f.not(f.getHasOwnProperty("l",e.name)),(function(){f.if_("inputs"===f.stage||"s",(function(){o&&1!==o&&f.if_(f.not(f.nonComputedMember("s",e.name)),f.lazyAssign(f.nonComputedMember("s",e.name),"{}")),f.assign(t,f.nonComputedMember("s",e.name))}))}),t&&f.lazyAssign(t,f.nonComputedMember("l",e.name))),(f.state.expensiveChecks||$t(e.name))&&f.addEnsureSafeObject(t),r(t);break;case yr.MemberExpression:s=n&&(n.context=this.nextId())||this.nextId(),t=t||this.nextId(),f.recurse(e.object,s,void 0,(function(){f.if_(f.notNull(s),(function(){o&&1!==o&&f.addEnsureSafeAssignContext(s),e.computed?(l=f.nextId(),f.recurse(e.property,l),f.getStringValue(l),f.addEnsureSafeMemberName(l),o&&1!==o&&f.if_(f.not(f.computedMember(s,l)),f.lazyAssign(f.computedMember(s,l),"{}")),c=f.ensureSafeObject(f.computedMember(s,l)),f.assign(t,c),n&&(n.computed=!0,n.name=l)):(pt(e.property.name),o&&1!==o&&f.if_(f.not(f.nonComputedMember(s,e.property.name)),f.lazyAssign(f.nonComputedMember(s,e.property.name),"{}")),c=f.nonComputedMember(s,e.property.name),(f.state.expensiveChecks||$t(e.property.name))&&(c=f.ensureSafeObject(c)),f.assign(t,c),n&&(n.computed=!1,n.name=e.property.name))}),(function(){f.assign(t,"undefined")})),r(t)}),!!o);break;case yr.CallExpression:t=t||this.nextId(),e.filter?(l=f.filter(e.callee.name),u=[],i(e.arguments,(function(e){var t=f.nextId();f.recurse(e,t),u.push(t)})),c=l+"("+u.join(",")+")",f.assign(t,c),r(t)):(l=f.nextId(),s={},u=[],f.recurse(e.callee,l,s,(function(){f.if_(f.notNull(l),(function(){f.addEnsureSafeFunction(l),i(e.arguments,(function(e){f.recurse(e,f.nextId(),void 0,(function(e){u.push(f.ensureSafeObject(e))}))})),s.name?(f.state.expensiveChecks||f.addEnsureSafeObject(s.context),c=f.member(s.context,s.name,s.computed)+"("+u.join(",")+")"):c=l+"("+u.join(",")+")",c=f.ensureSafeObject(c),f.assign(t,c)}),(function(){f.assign(t,"undefined")})),r(t)})));break;case yr.AssignmentExpression:l=this.nextId(),s={},this.recurse(e.left,void 0,s,(function(){f.if_(f.notNull(s.context),(function(){f.recurse(e.right,l),f.addEnsureSafeObject(f.member(s.context,s.name,s.computed)),f.addEnsureSafeAssignContext(s.context),c=f.member(s.context,s.name,s.computed)+e.operator+l,f.assign(t,c),r(t||c)}))}),1);break;case yr.ArrayExpression:u=[],i(e.elements,(function(e){f.recurse(e,f.nextId(),void 0,(function(e){u.push(e)}))})),c="["+u.join(",")+"]",this.assign(t,c),r(c);break;case yr.ObjectExpression:u=[],h=!1,i(e.properties,(function(e){e.computed&&(h=!0)})),h?(t=t||this.nextId(),this.assign(t,"{}"),i(e.properties,(function(e){e.computed?(s=f.nextId(),f.recurse(e.key,s)):s=e.key.type===yr.Identifier?e.key.name:""+e.key.value,l=f.nextId(),f.recurse(e.value,l),f.assign(f.member(t,s,e.computed),l)}))):(i(e.properties,(function(t){f.recurse(t.value,e.constant?void 0:f.nextId(),void 0,(function(e){u.push(f.escape(t.key.type===yr.Identifier?t.key.name:""+t.key.value)+":"+e)}))})),c="{"+u.join(",")+"}",this.assign(t,c)),r(t||c);break;case yr.ThisExpression:this.assign(t,"s"),r("s");break;case yr.LocalsExpression:this.assign(t,"l"),r("l");break;case yr.NGValueParameter:this.assign(t,"v"),r("v")}},getHasOwnProperty:function(e,t){var n=e+"."+t,i=this.current().own;return i.hasOwnProperty(n)||(i[n]=this.nextId(!1,e+"&&("+this.escape(t)+" in "+e+")")),i[n]},assign:function(e,t){if(e)return this.current().body.push(e,"=",t,";"),e},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e]},ifDefined:function(e,t){return"ifDefined("+e+","+this.escape(t)+")"},plus:function(e,t){return"plus("+e+","+t+")"},return_:function(e){this.current().body.push("return ",e,";")},if_:function(e,t,n){if(!0===e)t();else{var i=this.current().body;i.push("if(",e,"){"),t(),i.push("}"),n&&(i.push("else{"),n(),i.push("}"))}},not:function(e){return"!("+e+")"},notNull:function(e){return e+"!=null"},nonComputedMember:function(e,t){return/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(t)?e+"."+t:e+'["'+t.replace(/[^$_a-zA-Z0-9]/g,this.stringEscapeFn)+'"]'},computedMember:function(e,t){return e+"["+t+"]"},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},addEnsureSafeObject:function(e){this.current().body.push(this.ensureSafeObject(e),";")},addEnsureSafeMemberName:function(e){this.current().body.push(this.ensureSafeMemberName(e),";")},addEnsureSafeFunction:function(e){this.current().body.push(this.ensureSafeFunction(e),";")},addEnsureSafeAssignContext:function(e){this.current().body.push(this.ensureSafeAssignContext(e),";")},ensureSafeObject:function(e){return"ensureSafeObject("+e+",text)"},ensureSafeMemberName:function(e){return"ensureSafeMemberName("+e+",text)"},ensureSafeFunction:function(e){return"ensureSafeFunction("+e+",text)"},getStringValue:function(e){this.assign(e,"getStringValue("+e+")")},ensureSafeAssignContext:function(e){return"ensureSafeAssignContext("+e+",text)"},lazyRecurse:function(e,t,n,i,r,o){var a=this;return function(){a.recurse(e,t,n,i,r,o)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(y(e))return"'"+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(b(e))return e.toString();if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(void 0===e)return"undefined";throw Qi("esc")},nextId:function(e,t){var n="v"+this.state.nextId++;return e||this.current().vars.push(n+(t?"="+t:"")),n},current:function(){return this.state[this.state.computing]}},Tt.prototype={compile:function(e,t){var n,r,o,a=this,s=this.astBuilder.ast(e);this.expression=e,this.expensiveChecks=t,wt(s,a.$filter),(n=kt(s))&&(r=this.recurse(n)),(n=Lt(s.body))&&(o=[],i(n,(function(e,t){var n=a.recurse(e);e.input=n,o.push(n),e.watchId=t})));var l=[];return i(s.body,(function(e){l.push(a.recurse(e.expression))})),n=0===s.body.length?d:1===s.body.length?l[0]:function(e,t){var n;return i(l,(function(i){n=i(e,t)})),n},r&&(n.assign=function(e,t,n){return r(e,n,t)}),o&&(n.inputs=o),n.literal=xt(s),n.constant=s.constant,n},recurse:function(e,t,n){var r,o,a,s=this;if(e.input)return this.inputs(e.input,e.watchId);switch(e.type){case yr.Literal:return this.value(e.value,t);case yr.UnaryExpression:return o=this.recurse(e.argument),this["unary"+e.operator](o,t);case yr.BinaryExpression:case yr.LogicalExpression:return r=this.recurse(e.left),o=this.recurse(e.right),this["binary"+e.operator](r,o,t);case yr.ConditionalExpression:return this["ternary?:"](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),t);case yr.Identifier:return pt(e.name,s.expression),s.identifier(e.name,s.expensiveChecks||$t(e.name),t,n,s.expression);case yr.MemberExpression:return r=this.recurse(e.object,!1,!!n),e.computed||(pt(e.property.name,s.expression),o=e.property.name),e.computed&&(o=this.recurse(e.property)),e.computed?this.computedMember(r,o,t,n,s.expression):this.nonComputedMember(r,o,s.expensiveChecks,t,n,s.expression);case yr.CallExpression:return a=[],i(e.arguments,(function(e){a.push(s.recurse(e))})),e.filter&&(o=this.$filter(e.callee.name)),e.filter||(o=this.recurse(e.callee,!0)),e.filter?function(e,n,i,r){for(var s=[],l=0;l<a.length;++l)s.push(a[l](e,n,i,r));return e=o.apply(void 0,s,r),t?{context:void 0,name:void 0,value:e}:e}:function(e,n,i,r){var l,u=o(e,n,i,r);if(null!=u.value){gt(u.context,s.expression),vt(u.value,s.expression),l=[];for(var c=0;c<a.length;++c)l.push(gt(a[c](e,n,i,r),s.expression));l=gt(u.value.apply(u.context,l),s.expression)}return t?{value:l}:l};case yr.AssignmentExpression:return r=this.recurse(e.left,!0,1),o=this.recurse(e.right),function(e,n,i,a){var l=r(e,n,i,a);return e=o(e,n,i,a),gt(l.value,s.expression),_t(l.context),l.context[l.name]=e,t?{value:e}:e};case yr.ArrayExpression:return a=[],i(e.elements,(function(e){a.push(s.recurse(e))})),function(e,n,i,r){for(var o=[],s=0;s<a.length;++s)o.push(a[s](e,n,i,r));return t?{value:o}:o};case yr.ObjectExpression:return a=[],i(e.properties,(function(e){e.computed?a.push({key:s.recurse(e.key),computed:!0,value:s.recurse(e.value)}):a.push({key:e.key.type===yr.Identifier?e.key.name:""+e.key.value,computed:!1,value:s.recurse(e.value)})})),function(e,n,i,r){for(var o={},s=0;s<a.length;++s)a[s].computed?o[a[s].key(e,n,i,r)]=a[s].value(e,n,i,r):o[a[s].key]=a[s].value(e,n,i,r);return t?{value:o}:o};case yr.ThisExpression:return function(e){return t?{value:e}:e};case yr.LocalsExpression:return function(e,n){return t?{value:n}:n};case yr.NGValueParameter:return function(e,n,i){return t?{value:i}:i}}},"unary+":function(e,t){return function(n,i,r,o){return n=g(n=e(n,i,r,o))?+n:0,t?{value:n}:n}},"unary-":function(e,t){return function(n,i,r,o){return n=g(n=e(n,i,r,o))?-n:0,t?{value:n}:n}},"unary!":function(e,t){return function(n,i,r,o){return n=!e(n,i,r,o),t?{value:n}:n}},"binary+":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a);return s=bt(s,i=t(i,r,o,a)),n?{value:s}:s}},"binary-":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a);return i=t(i,r,o,a),s=(g(s)?s:0)-(g(i)?i:0),n?{value:s}:s}},"binary*":function(e,t,n){return function(i,r,o,a){return i=e(i,r,o,a)*t(i,r,o,a),n?{value:i}:i}},"binary/":function(e,t,n){return function(i,r,o,a){return i=e(i,r,o,a)/t(i,r,o,a),n?{value:i}:i}},"binary%":function(e,t,n){return function(i,r,o,a){return i=e(i,r,o,a)%t(i,r,o,a),n?{value:i}:i}},"binary===":function(e,t,n){return function(i,r,o,a){return i=e(i,r,o,a)===t(i,r,o,a),n?{value:i}:i}},"binary!==":function(e,t,n){return function(i,r,o,a){return i=e(i,r,o,a)!==t(i,r,o,a),n?{value:i}:i}},"binary==":function(e,t,n){return function(i,r,o,a){return i=e(i,r,o,a)==t(i,r,o,a),n?{value:i}:i}},"binary!=":function(e,t,n){return function(i,r,o,a){return i=e(i,r,o,a)!=t(i,r,o,a),n?{value:i}:i}},"binary<":function(e,t,n){return function(i,r,o,a){return i=e(i,r,o,a)<t(i,r,o,a),n?{value:i}:i}},"binary>":function(e,t,n){return function(i,r,o,a){return i=e(i,r,o,a)>t(i,r,o,a),n?{value:i}:i}},"binary<=":function(e,t,n){return function(i,r,o,a){return i=e(i,r,o,a)<=t(i,r,o,a),n?{value:i}:i}},"binary>=":function(e,t,n){return function(i,r,o,a){return i=e(i,r,o,a)>=t(i,r,o,a),n?{value:i}:i}},"binary&&":function(e,t,n){return function(i,r,o,a){return i=e(i,r,o,a)&&t(i,r,o,a),n?{value:i}:i}},"binary||":function(e,t,n){return function(i,r,o,a){return i=e(i,r,o,a)||t(i,r,o,a),n?{value:i}:i}},"ternary?:":function(e,t,n,i){return function(r,o,a,s){return r=e(r,o,a,s)?t(r,o,a,s):n(r,o,a,s),i?{value:r}:r}},value:function(e,t){return function(){return t?{context:void 0,name:void 0,value:e}:e}},identifier:function(e,t,n,i,r){return function(o,a,s,l){return o=a&&e in a?a:o,i&&1!==i&&o&&!o[e]&&(o[e]={}),a=o?o[e]:void 0,t&&gt(a,r),n?{context:o,name:e,value:a}:a}},computedMember:function(e,t,n,i,r){return function(o,a,s,l){var u,c,d=e(o,a,s,l);return null!=d&&(u=t(o,a,s,l),pt(u+="",r),i&&1!==i&&(_t(d),d&&!d[u]&&(d[u]={})),gt(c=d[u],r)),n?{context:d,name:u,value:c}:c}},nonComputedMember:function(e,t,n,i,r,o){return function(a,s,l,u){return a=e(a,s,l,u),r&&1!==r&&(_t(a),a&&!a[t]&&(a[t]={})),s=null!=a?a[t]:void 0,(n||$t(t))&&gt(s,o),i?{context:a,name:t,value:s}:s}},inputs:function(e,t){return function(n,i,r,o){return o?o[t]:e(n,i,r)}}};var br=function(e,t,n){this.lexer=e,this.$filter=t,this.options=n,this.ast=new yr(e,n),this.astCompiler=n.csp?new Tt(this.ast,t):new St(this.ast,t)};br.prototype={constructor:br,parse:function(e){return this.astCompiler.compile(e,this.options.expensiveChecks)}};var wr=t("$sce"),Lr={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Mr=t("$compile"),kr=e.document.createElement("a"),xr=Vt(e.location.href);qt.$inject=["$document"],Zt.$inject=["$provide"];var Sr=22,Tr=".",$r="0";Qt.$inject=["$locale"],en.$inject=["$locale"];var Dr={yyyy:rn("FullYear",4,0,!1,!0),yy:rn("FullYear",2,0,!0,!0),y:rn("FullYear",1,0,!1,!0),MMMM:on("Month"),MMM:on("Month",!0),MM:rn("Month",2,1),M:rn("Month",1,1),LLLL:on("Month",!1,!0),dd:rn("Date",2),d:rn("Date",1),HH:rn("Hours",2),H:rn("Hours",1),hh:rn("Hours",2,-12),h:rn("Hours",1,-12),mm:rn("Minutes",2),m:rn("Minutes",1),ss:rn("Seconds",2),s:rn("Seconds",1),sss:rn("Milliseconds",3),EEEE:on("Day"),EEE:on("Day",!0),a:function(e,t){return 12>e.getHours()?t.AMPMS[0]:t.AMPMS[1]},Z:function(e,t,n){return(0<=(e=-1*n)?"+":"")+(nn(Math[0<e?"floor":"ceil"](e/60),2)+nn(Math.abs(e%60),2))},ww:sn(2),w:sn(1),G:ln,GG:ln,GGG:ln,GGGG:function(e,t){return 0>=e.getFullYear()?t.ERANAMES[0]:t.ERANAMES[1]}},Cr=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,Er=/^-?\d+$/;un.$inject=["$locale"];var Ar=f(Yn),Pr=f(On);fn.$inject=["$parse"];var Yr=f({restrict:"E",compile:function(e,t){if(!t.href&&!t.xlinkHref)return function(e,t){if("a"===t[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===Nn.call(t.prop("href"))?"xlink:href":"href";t.on("click",(function(e){t.attr(n)||e.preventDefault()}))}}}}),Or={};i(gi,(function(e,t){function n(e,n,r){e.$watch(r[i],(function(e){r.$set(t,!!e)}))}if("multiple"!==e){var i=Ie("ng-"+t),r=n;"checked"===e&&(r=function(e,t,r){r.ngModel!==r[i]&&n(e,0,r)}),Or[i]=function(){return{restrict:"A",priority:100,link:r}}}})),i(_i,(function(e,t){Or[t]=function(){return{priority:100,link:function(e,n,i){"ngPattern"===t&&"/"===i.ngPattern.charAt(0)&&(n=i.ngPattern.match(An))?i.$set("ngPattern",new RegExp(n[1],n[2])):e.$watch(i[t],(function(e){i.$set(t,e)}))}}}})),i(["src","srcset","href"],(function(e){var t=Ie("ng-"+e);Or[t]=function(){return{priority:99,link:function(n,i,r){var o=e,a=e;"href"===e&&"[object SVGAnimatedString]"===Nn.call(i.prop("href"))&&(a="xlinkHref",r.$attr[a]="xlink:href",o=null),r.$observe(t,(function(t){t?(r.$set(a,t),$n&&o&&i.prop(o,r[a])):"href"===e&&r.$set(a,null)}))}}}}));var Ir={$addControl:d,$$renameControl:function(e,t){e.$name=t},$removeControl:d,$setValidity:d,$setDirty:d,$setPristine:d,$setSubmitted:d};mn.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var jr=function(e){return["$timeout","$parse",function(t,n){function i(e){return""===e?n('this[""]').assign:n(e).assign||d}return{name:"form",restrict:e?"EAC":"E",require:["form","^^?form"],controller:mn,compile:function(n,r){n.addClass(yo).addClass(vo);var o=r.name?"name":!(!e||!r.ngForm)&&"ngForm";return{pre:function(e,n,r,a){var s=a[0];if(!("action"in r)){var u=function(t){e.$apply((function(){s.$commitViewValue(),s.$setSubmitted()})),t.preventDefault()};n[0].addEventListener("submit",u,!1),n.on("$destroy",(function(){t((function(){n[0].removeEventListener("submit",u,!1)}),0,!1)}))}(a[1]||s.$$parentForm).$addControl(s);var c=o?i(s.$name):d;o&&(c(e,s),r.$observe(o,(function(t){s.$name!==t&&(c(e,void 0),s.$$parentForm.$$renameControl(s,t),(c=i(s.$name))(e,s))}))),n.on("$destroy",(function(){s.$$parentForm.$removeControl(s),c(e,void 0),l(s,Ir)}))}}}}}]},Hr=jr(),Nr=jr(!0),Br=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,Rr=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,Fr=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,zr=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Vr=/^(\d{4,})-(\d{2})-(\d{2})$/,Ur=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Wr=/^(\d{4,})-W(\d\d)$/,qr=/^(\d{4,})-(\d\d)$/,Gr=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Zr=K();i(["date","datetime-local","month","time","week"],(function(e){Zr[e]=!0}));var Jr={text:function(e,t,n,i,r,o){vn(0,t,n,i,r,o),gn(i)},date:yn("date",Vr,_n(Vr,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":yn("datetimelocal",Ur,_n(Ur,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:yn("time",Gr,_n(Gr,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:yn("week",Wr,(function(e,t){if(w(e))return e;if(y(e)){Wr.lastIndex=0;var n=Wr.exec(e);if(n){var i=+n[1],r=+n[2],o=n=0,a=0,s=0,l=an(i);return r=7*(r-1),t&&(n=t.getHours(),o=t.getMinutes(),a=t.getSeconds(),s=t.getMilliseconds()),new Date(i,0,l.getDate()+r,n,o,a,s)}}return NaN}),"yyyy-Www"),month:yn("month",qr,_n(qr,["yyyy","MM"]),"yyyy-MM"),number:function(e,t,n,i,r,o){var a,s;bn(0,t,0,i),vn(0,t,n,i,r,o),wn(i),(g(n.min)||n.ngMin)&&(i.$validators.min=function(e){return i.$isEmpty(e)||m(a)||e>=a},n.$observe("min",(function(e){a=Ln(e),i.$validate()}))),(g(n.max)||n.ngMax)&&(i.$validators.max=function(e){return i.$isEmpty(e)||m(s)||e<=s},n.$observe("max",(function(e){s=Ln(e),i.$validate()})))},url:function(e,t,n,i,r,o){vn(0,t,n,i,r,o),gn(i),i.$$parserName="url",i.$validators.url=function(e,t){var n=e||t;return i.$isEmpty(n)||Rr.test(n)}},email:function(e,t,n,i,r,o){vn(0,t,n,i,r,o),gn(i),i.$$parserName="email",i.$validators.email=function(e,t){var n=e||t;return i.$isEmpty(n)||Fr.test(n)}},radio:function(e,t,n,i){m(n.name)&&t.attr("name",++zn),t.on("click",(function(e){t[0].checked&&i.$setViewValue(n.value,e&&e.type)})),i.$render=function(){t[0].checked=n.value==i.$viewValue},n.$observe("value",i.$render)},range:function(e,t,n,i,r,o){function a(e,i){t.attr(e,n[e]),n.$observe(e,i)}bn(0,t,0,i),wn(i),vn(0,t,n,i,r,o);var s=i.$$hasNativeValidators&&"range"===t[0].type,l=s?0:void 0,u=s?100:void 0,c=s?1:void 0,d=t[0].validity;e=g(n.min),r=g(n.max),o=g(n.step);var h=i.$render;i.$render=s&&g(d.rangeUnderflow)&&g(d.rangeOverflow)?function(){h(),i.$setViewValue(t.val())}:h,e&&(i.$validators.min=s?function(){return!0}:function(e,t){return i.$isEmpty(t)||m(l)||t>=l},a("min",(function(e){l=Ln(e),Vn(i.$modelValue)||(s?(e=t.val(),l>e&&(e=l,t.val(e)),i.$setViewValue(e)):i.$validate())}))),r&&(i.$validators.max=s?function(){return!0}:function(e,t){return i.$isEmpty(t)||m(u)||t<=u},a("max",(function(e){u=Ln(e),Vn(i.$modelValue)||(s?(e=t.val(),u<e&&(t.val(u),e=u<l?l:u),i.$setViewValue(e)):i.$validate())}))),o&&(i.$validators.step=s?function(){return!d.stepMismatch}:function(e,t){var n;if(!(n=i.$isEmpty(t)||m(c))){n=l||0;var r=c;if((0|(a=Number(t)))!==a||(0|n)!==n||(0|r)!==r){var o=Math.max(Mn(a),Mn(n),Mn(r)),a=a*(o=Math.pow(10,o));n*=o,r*=o}n=0==(a-n)%r}return n},a("step",(function(e){c=Ln(e),Vn(i.$modelValue)||(s&&i.$viewValue!==t.val()?i.$setViewValue(t.val()):i.$validate())})))},checkbox:function(e,t,n,i,r,o,a,s){var l=kn(s,e,"ngTrueValue",n.ngTrueValue,!0),u=kn(s,e,"ngFalseValue",n.ngFalseValue,!1);t.on("click",(function(e){i.$setViewValue(t[0].checked,e&&e.type)})),i.$render=function(){t[0].checked=i.$viewValue},i.$isEmpty=function(e){return!1===e},i.$formatters.push((function(e){return E(e,l)})),i.$parsers.push((function(e){return e?l:u}))},hidden:d,button:d,submit:d,reset:d,file:d},Xr=["$browser","$sniffer","$filter","$parse",function(e,t,n,i){return{restrict:"E",require:["?ngModel"],link:{pre:function(r,o,a,s){if(s[0]){var l=Yn(a.type);"range"!==l||a.hasOwnProperty("ngInputRange")||(l="text"),(Jr[l]||Jr.text)(r,o,a,s[0],t,e,n,i)}}}}}],Kr=/^(true|false|\d+)$/,Qr=function(){return{restrict:"A",priority:100,compile:function(e,t){return Kr.test(t.ngValue)?function(e,t,n){n.$set("value",e.$eval(n.ngValue))}:function(e,t,n){e.$watch(n.ngValue,(function(e){n.$set("value",e)}))}}}},eo=["$compile",function(e){return{restrict:"AC",compile:function(t){return e.$$addBindingClass(t),function(t,n,i){e.$$addBindingInfo(n,i.ngBind),n=n[0],t.$watch(i.ngBind,(function(e){n.textContent=m(e)?"":e}))}}}}],to=["$interpolate","$compile",function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,i,r){n=e(i.attr(r.$attr.ngBindTemplate)),t.$$addBindingInfo(i,n.expressions),i=i[0],r.$observe("ngBindTemplate",(function(e){i.textContent=m(e)?"":e}))}}}}],no=["$sce","$parse","$compile",function(e,t,n){return{restrict:"A",compile:function(i,r){var o=t(r.ngBindHtml),a=t(r.ngBindHtml,(function(t){return e.valueOf(t)}));return n.$$addBindingClass(i),function(t,i,r){n.$$addBindingInfo(i,r.ngBindHtml),t.$watch(a,(function(){var n=o(t);i.html(e.getTrustedHtml(n)||"")}))}}}}],io=f({restrict:"A",require:"ngModel",link:function(e,t,n,i){i.$viewChangeListeners.push((function(){e.$eval(n.ngChange)}))}}),ro=xn("",!0),oo=xn("Odd",0),ao=xn("Even",1),so=pn({compile:function(e,t){t.$set("ngCloak",void 0),e.removeClass("ng-cloak")}}),lo=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],uo={},co={blur:!0,focus:!0};i("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),(function(e){var t=Ie("ng-"+e);uo[t]=["$parse","$rootScope",function(n,i){return{restrict:"A",compile:function(r,o){var a=n(o[t],null,!0);return function(t,n){n.on(e,(function(n){var r=function(){a(t,{$event:n})};co[e]&&i.$$phase?t.$evalAsync(r):t.$apply(r)}))}}}}]}));var ho=["$animate","$compile",function(e,t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,i,r,o,a){var s,l,u;n.$watch(r.ngIf,(function(n){n?l||a((function(n,o){l=o,n[n.length++]=t.$$createComment("end ngIf",r.ngIf),s={clone:n},e.enter(n,i.parent(),i)})):(u&&(u.remove(),u=null),l&&(l.$destroy(),l=null),s&&(u=X(s.clone),e.leave(u).done((function(e){!1!==e&&(u=null)})),s=null))}))}}}],fo=["$templateRequest","$anchorScroll","$animate",function(e,t,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Fn.noop,compile:function(i,r){var o=r.ngInclude||r.src,a=r.onload||"",s=r.autoscroll;return function(i,r,l,u,c){var d,h,f,p=0,m=function(){h&&(h.remove(),h=null),d&&(d.$destroy(),d=null),f&&(n.leave(f).done((function(e){!1!==e&&(h=null)})),h=f,f=null)};i.$watch(o,(function(o){var l=function(e){!1===e||!g(s)||s&&!i.$eval(s)||t()},h=++p;o?(e(o,!0).then((function(e){if(!i.$$destroyed&&h===p){var t=i.$new();u.template=e,e=c(t,(function(e){m(),n.enter(e,null,r).done(l)})),f=e,(d=t).$emit("$includeContentLoaded",o),i.$eval(a)}}),(function(){i.$$destroyed||h!==p||(m(),i.$emit("$includeContentError",o))})),i.$emit("$includeContentRequested",o)):(m(),u.template=null)}))}}}}],po=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,i,r,o){Nn.call(i[0]).match(/SVG/)?(i.empty(),t(ne(o.template,e.document).childNodes)(n,(function(e){i.append(e)}),{futureParentElement:i})):(i.html(o.template),t(i.contents())(n))}}}],mo=pn({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),go=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,n,r){var o=t.attr(n.$attr.ngList)||", ",a="false"!==n.ngTrim,s=a?qn(o):o;r.$parsers.push((function(e){if(!m(e)){var t=[];return e&&i(e.split(s),(function(e){e&&t.push(a?qn(e):e)})),t}})),r.$formatters.push((function(e){if(Un(e))return e.join(o)})),r.$isEmpty=function(e){return!e||!e.length}}}},vo="ng-valid",_o="ng-invalid",yo="ng-pristine",bo="ng-dirty",wo="ng-pending",Lo=t("ngModel"),Mo=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(e,t,n,r,o,a,s,l,u,c){this.$modelValue=this.$viewValue=Number.NaN,this.$$rawModelValue=void 0,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=void 0,this.$name=c(n.name||"",!1)(e),this.$$parentForm=Ir;var h,f=o(n.ngModel),p=f.assign,v=f,_=p,y=null,w=this;this.$$setOptions=function(e){if((w.$options=e)&&e.getterSetter){var t=o(n.ngModel+"()"),i=o(n.ngModel+"($$$p)");v=function(e){var n=f(e);return L(n)&&(n=t(e)),n},_=function(e,t){L(f(e))?i(e,{$$$p:t}):p(e,t)}}else if(!f.assign)throw Lo("nonassign",n.ngModel,N(r))},this.$render=d,this.$isEmpty=function(e){return m(e)||""===e||null===e||e!=e},this.$$updateEmptyClasses=function(e){w.$isEmpty(e)?(a.removeClass(r,"ng-not-empty"),a.addClass(r,"ng-empty")):(a.removeClass(r,"ng-empty"),a.addClass(r,"ng-not-empty"))};var M=0;Sn({ctrl:this,$element:r,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]},$animate:a}),this.$setPristine=function(){w.$dirty=!1,w.$pristine=!0,a.removeClass(r,bo),a.addClass(r,yo)},this.$setDirty=function(){w.$dirty=!0,w.$pristine=!1,a.removeClass(r,yo),a.addClass(r,bo),w.$$parentForm.$setDirty()},this.$setUntouched=function(){w.$touched=!1,w.$untouched=!0,a.setClass(r,"ng-untouched","ng-touched")},this.$setTouched=function(){w.$touched=!0,w.$untouched=!1,a.setClass(r,"ng-touched","ng-untouched")},this.$rollbackViewValue=function(){s.cancel(y),w.$viewValue=w.$$lastCommittedViewValue,w.$render()},this.$validate=function(){if(!Vn(w.$modelValue)){var e=w.$$rawModelValue,t=w.$valid,n=w.$modelValue,i=w.$options&&w.$options.allowInvalid;w.$$runValidators(e,w.$$lastCommittedViewValue,(function(r){i||t===r||(w.$modelValue=r?e:void 0,w.$modelValue!==n&&w.$$writeModelToScope())}))}},this.$$runValidators=function(e,t,n){function r(e,t){a===M&&w.$setValidity(e,t)}function o(e){a===M&&n(e)}var a=++M;!function(){var e=w.$$parserName||"parse";return m(h)?(r(e,null),!0):(h||(i(w.$validators,(function(e,t){r(t,null)})),i(w.$asyncValidators,(function(e,t){r(t,null)}))),r(e,h),h)}()?o(!1):function(){var n=!0;return i(w.$validators,(function(i,o){var a=i(e,t);n=n&&a,r(o,a)})),!!n||(i(w.$asyncValidators,(function(e,t){r(t,null)})),!1)}()?function(){var n=[],a=!0;i(w.$asyncValidators,(function(i,o){var s=i(e,t);if(!s||!L(s.then))throw Lo("nopromise",s);r(o,void 0),n.push(s.then((function(){r(o,!0)}),(function(){a=!1,r(o,!1)})))})),n.length?u.all(n).then((function(){o(a)}),d):o(!0)}():o(!1)},this.$commitViewValue=function(){var e=w.$viewValue;s.cancel(y),(w.$$lastCommittedViewValue!==e||""===e&&w.$$hasNativeValidators)&&(w.$$updateEmptyClasses(e),w.$$lastCommittedViewValue=e,w.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){var t=w.$$lastCommittedViewValue;if(h=!m(t)||void 0)for(var n=0;n<w.$parsers.length;n++)if(m(t=w.$parsers[n](t))){h=!1;break}Vn(w.$modelValue)&&(w.$modelValue=v(e));var i=w.$modelValue,r=w.$options&&w.$options.allowInvalid;w.$$rawModelValue=t,r&&(w.$modelValue=t,w.$modelValue!==i&&w.$$writeModelToScope()),w.$$runValidators(t,w.$$lastCommittedViewValue,(function(e){r||(w.$modelValue=e?t:void 0,w.$modelValue!==i&&w.$$writeModelToScope())}))},this.$$writeModelToScope=function(){_(e,w.$modelValue),i(w.$viewChangeListeners,(function(e){try{e()}catch(e){t(e)}}))},this.$setViewValue=function(e,t){w.$viewValue=e,w.$options&&!w.$options.updateOnDefault||w.$$debounceViewValueCommit(t)},this.$$debounceViewValueCommit=function(t){var n=0,i=w.$options;i&&g(i.debounce)&&(b(i=i.debounce)?n=i:b(i[t])?n=i[t]:b(i.default)&&(n=i.default)),s.cancel(y),n?y=s((function(){w.$commitViewValue()}),n):l.$$phase?w.$commitViewValue():e.$apply((function(){w.$commitViewValue()}))},e.$watch((function(){var t=v(e);if(t!==w.$modelValue&&(w.$modelValue==w.$modelValue||t==t)){w.$modelValue=w.$$rawModelValue=t,h=void 0;for(var n=w.$formatters,i=n.length,r=t;i--;)r=n[i](r);w.$viewValue!==r&&(w.$$updateEmptyClasses(r),w.$viewValue=w.$$lastCommittedViewValue=r,w.$render(),w.$$runValidators(w.$modelValue,w.$viewValue,d))}return t}))}],ko=["$rootScope",function(e){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:Mo,priority:1,compile:function(t){return t.addClass(yo).addClass("ng-untouched").addClass(vo),{pre:function(e,t,n,i){var r=i[0];t=i[1]||r.$$parentForm,r.$$setOptions(i[2]&&i[2].$options),t.$addControl(r),n.$observe("name",(function(e){r.$name!==e&&r.$$parentForm.$$renameControl(r,e)})),e.$on("$destroy",(function(){r.$$parentForm.$removeControl(r)}))},post:function(t,n,i,r){var o=r[0];o.$options&&o.$options.updateOn&&n.on(o.$options.updateOn,(function(e){o.$$debounceViewValueCommit(e&&e.type)})),n.on("blur",(function(){o.$touched||(e.$$phase?t.$evalAsync(o.$setTouched):t.$apply(o.$setTouched))}))}}}}}],xo=/(\s+|^)default(\s+|$)/,So=function(){return{restrict:"A",controller:["$scope","$attrs",function(e,t){var n=this;this.$options=C(e.$eval(t.ngModelOptions)),g(this.$options.updateOn)?(this.$options.updateOnDefault=!1,this.$options.updateOn=qn(this.$options.updateOn.replace(xo,(function(){return n.$options.updateOnDefault=!0," "})))):this.$options.updateOnDefault=!0}]}},To=pn({terminal:!0,priority:1e3}),$o=t("ngOptions"),Do=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,Co=["$compile","$document","$parse",function(t,r,o){function a(e,t,i){function r(e,t,n,i,r){this.selectValue=e,this.viewValue=t,this.label=n,this.group=i,this.disabled=r}function a(e){var t;if(!u&&n(e))t=e;else for(var i in t=[],e)e.hasOwnProperty(i)&&"$"!==i.charAt(0)&&t.push(i);return t}var s=e.match(Do);if(!s)throw $o("iexp",e,N(t));var l=s[5]||s[7],u=s[6];e=/ as /.test(s[0])&&s[1];var c=s[9];t=o(s[2]?s[1]:l);var d=e&&o(e)||t,h=c&&o(c),f=c?function(e,t){return h(i,t)}:function(e){return Me(e)},p=function(e,t){return f(e,b(e,t))},m=o(s[2]||s[1]),g=o(s[3]||""),v=o(s[4]||""),_=o(s[8]),y={},b=u?function(e,t){return y[u]=t,y[l]=e,y}:function(e){return y[l]=e,y};return{trackBy:c,getTrackByValue:p,getWatchables:o(_,(function(e){for(var t=[],n=a(e=e||[]),r=n.length,o=0;o<r;o++){var l=e[u=e===n?o:n[o]],u=b(l,u);l=f(l,u),t.push(l),(s[2]||s[1])&&(l=m(i,u),t.push(l)),s[4]&&(u=v(i,u),t.push(u))}return t})),getOptions:function(){for(var e=[],t={},n=_(i)||[],o=a(n),s=o.length,l=0;l<s;l++){var u=n===o?l:o[l],h=b(n[u],u),y=d(i,h);y=new r(u=f(y,h),y,m(i,h),g(i,h),h=v(i,h)),e.push(y),t[u]=y}return{items:e,selectValueMap:t,getOptionFromViewValue:function(e){return t[p(e)]},getViewValueFromOption:function(e){return c?C(e.viewValue):e.viewValue}}}}}var s=e.document.createElement("option"),l=e.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(e,t,n,i){i[0].registerOption=d},post:function(e,n,o,u){function c(){var e=w&&h.readValue();if(w)for(var t=w.items.length-1;0<=t;t--){var i=w.items[t];g(i.group)?_e(i.element.parentNode):_e(i.element)}w=L.getOptions();var r={};_&&n.prepend(d),w.items.forEach((function(e){var t;if(g(e.group)){(t=r[e.group])||(t=l.cloneNode(!1),M.appendChild(t),t.label=null===e.group?"null":e.group,r[e.group]=t);var n=s.cloneNode(!1)}else t=M,n=s.cloneNode(!1);t.appendChild(n),function(e,t){e.element=t,t.disabled=e.disabled,e.label!==t.label&&(t.label=e.label,t.textContent=e.label),t.value=e.selectValue}(e,n)})),n[0].appendChild(M),f.$render(),f.$isEmpty(e)||(t=h.readValue(),(L.trackBy||p?E(e,t):e===t)||(f.$setViewValue(t),f.$render()))}var d,h=u[0],f=u[1],p=o.multiple;u=0;for(var m=n.children(),v=m.length;u<v;u++)if(""===m[u].value){d=m.eq(u);break}var _=!!d,y=!1,b=Dn(s.cloneNode(!1));b.val("?");var w,L=a(o.ngOptions,n,e),M=r[0].createDocumentFragment(),k=function(){_?y&&d.removeAttr("selected"):d.remove()};p?(f.$isEmpty=function(e){return!e||0===e.length},h.writeValue=function(e){w.items.forEach((function(e){e.element.selected=!1})),e&&e.forEach((function(e){(e=w.getOptionFromViewValue(e))&&(e.element.selected=!0)}))},h.readValue=function(){var e=n.val()||[],t=[];return i(e,(function(e){(e=w.selectValueMap[e])&&!e.disabled&&t.push(w.getViewValueFromOption(e))})),t},L.trackBy&&e.$watchCollection((function(){if(Un(f.$viewValue))return f.$viewValue.map((function(e){return L.getTrackByValue(e)}))}),(function(){f.$render()}))):(h.writeValue=function(e){var t=w.selectValueMap[n.val()],i=w.getOptionFromViewValue(e);t&&t.element.removeAttribute("selected"),i?(n[0].value!==i.selectValue&&(b.remove(),k(),n[0].value=i.selectValue,i.element.selected=!0),i.element.setAttribute("selected","selected")):null===e||_?(b.remove(),_||n.prepend(d),n.val(""),y&&(d.prop("selected",!0),d.attr("selected",!0))):(k(),n.prepend(b),n.val("?"),b.prop("selected",!0),b.attr("selected",!0))},h.readValue=function(){var e=w.selectValueMap[n.val()];return e&&!e.disabled?(k(),b.remove(),w.getViewValueFromOption(e)):null},L.trackBy&&e.$watch((function(){return L.getTrackByValue(f.$viewValue)}),(function(){f.$render()}))),_?(d.remove(),t(d)(e),8===d[0].nodeType?(y=!1,h.registerOption=function(e,t){""===t.val()&&(y=!0,(d=t).removeClass("ng-scope"),f.$render(),t.on("$destroy",(function(){d=void 0,y=!1})))}):(d.removeClass("ng-scope"),y=!0)):d=Dn(s.cloneNode(!1)),n.empty(),c(),e.$watchCollection(L.getWatchables,c)}}}}],Eo=["$locale","$interpolate","$log",function(e,t,n){var r=/{}/g,o=/^when(Minus)?(.+)$/;return{link:function(a,s,l){function u(e){s.text(e||"")}var c,h=l.count,f=l.$attr.when&&s.attr(l.$attr.when),p=l.offset||0,g=a.$eval(f)||{},v={},_=t.startSymbol(),y=t.endSymbol(),b=_+h+"-"+p+y,w=Fn.noop;i(l,(function(e,t){var n=o.exec(t);n&&(n=(n[1]?"-":"")+Yn(n[2]),g[n]=s.attr(l.$attr[t]))})),i(g,(function(e,n){v[n]=t(e.replace(r,b))})),a.$watch(h,(function(t){var i=parseFloat(t),r=Vn(i);r||i in g||(i=e.pluralCat(i-p)),i===c||r&&Vn(c)||(w(),m(r=v[i])?(null!=t&&n.debug("ngPluralize: no rule defined for '"+i+"' in "+f),w=d,u()):w=a.$watch(r,u),c=i)}))}}}],Ao=["$parse","$animate","$compile",function(e,r,o){var a=t("ngRepeat"),s=function(e,t,n,i,r,o,a){e[n]=i,r&&(e[r]=o),e.$index=t,e.$first=0===t,e.$last=t===a-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=0==(1&t))};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(t,l){var u=l.ngRepeat,c=o.$$createComment("end ngRepeat",u);if(!(d=u.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/)))throw a("iexp",u);var d,h=d[1],f=d[2],p=d[3],m=d[4];if(!(d=h.match(/^(?:(\s*[$\w]+)|\(\s*([$\w]+)\s*,\s*([$\w]+)\s*\))$/)))throw a("iidexp",h);var g=d[3]||d[1],v=d[2];if(p&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(p)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(p)))throw a("badident",p);var _,y,b,w,L={$id:Me};return m?_=e(m):(b=function(e,t){return Me(t)},w=function(e){return e}),function(e,t,o,l,d){_&&(y=function(t,n,i){return v&&(L[v]=t),L[g]=n,L.$index=i,_(e,L)});var h=K();e.$watchCollection(f,(function(o){var l,f,m,_,L,M,k,x,S,T,$=t[0],D=K();if(p&&(e[p]=o),n(o))x=o,f=y||b;else for(T in f=y||w,x=[],o)Pn.call(o,T)&&"$"!==T.charAt(0)&&x.push(T);for(_=x.length,T=Array(_),l=0;l<_;l++)if(L=o===x?l:x[l],M=o[L],k=f(L,M,l),h[k])S=h[k],delete h[k],D[k]=S,T[l]=S;else{if(D[k])throw i(T,(function(e){e&&e.scope&&(h[e.id]=e)})),a("dupes",u,k,M);T[l]={id:k,scope:void 0,clone:void 0},D[k]=!0}for(m in h){if(k=X((S=h[m]).clone),r.leave(k),k[0].parentNode)for(l=0,f=k.length;l<f;l++)k[l].$$NG_REMOVED=!0;S.scope.$destroy()}for(l=0;l<_;l++)if(L=o===x?l:x[l],M=o[L],(S=T[l]).scope){m=$;do{m=m.nextSibling}while(m&&m.$$NG_REMOVED);S.clone[0]!==m&&r.move(X(S.clone),null,$),$=S.clone[S.clone.length-1],s(S.scope,l,g,M,v,L,_)}else d((function(e,t){S.scope=t;var n=c.cloneNode(!1);e[e.length++]=n,r.enter(e,null,$),$=n,S.clone=e,D[S.id]=S,s(S.scope,l,g,M,v,L,_)}));h=D}))}}}}],Po=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,i){t.$watch(i.ngShow,(function(t){e[t?"removeClass":"addClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})}))}}}],Yo=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,i){t.$watch(i.ngHide,(function(t){e[t?"addClass":"removeClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})}))}}}],Oo=pn((function(e,t,n){e.$watch(n.ngStyle,(function(e,n){n&&e!==n&&i(n,(function(e,n){t.css(n,"")})),e&&t.css(e)}),!0)})),Io=["$animate","$compile",function(e,t){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,r,o,a){var s=[],l=[],u=[],c=[],d=function(e,t){return function(n){!1!==n&&e.splice(t,1)}};n.$watch(o.ngSwitch||o.on,(function(n){for(var r,o;u.length;)e.cancel(u.pop());for(r=0,o=c.length;r<o;++r){var h=X(l[r].clone);c[r].$destroy(),(u[r]=e.leave(h)).done(d(u,r))}l.length=0,c.length=0,(s=a.cases["!"+n]||a.cases["?"])&&i(s,(function(n){n.transclude((function(i,r){c.push(r);var o=n.element;i[i.length++]=t.$$createComment("end ngSwitchWhen"),l.push({clone:i}),e.enter(i,o.parent(),o)}))}))}))}}}],jo=pn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,r,o){i(n.ngSwitchWhen.split(n.ngSwitchWhenSeparator).sort().filter((function(e,t,n){return n[t-1]!==e})),(function(e){r.cases["!"+e]=r.cases["!"+e]||[],r.cases["!"+e].push({transclude:o,element:t})}))}}),Ho=pn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,i,r){i.cases["?"]=i.cases["?"]||[],i.cases["?"].push({transclude:r,element:t})}}),No=t("ngTransclude"),Bo=["$compile",function(e){return{restrict:"EAC",terminal:!0,compile:function(t){var n=e(t.contents());return t.empty(),function(e,t,i,r,o){function a(){n(e,(function(e){t.append(e)}))}if(!o)throw No("orphan",N(t));i.ngTransclude===i.$attr.ngTransclude&&(i.ngTransclude=""),o((function(e,n){e.length?t.append(e):(a(),n.$destroy())}),null,i=i.ngTransclude||i.ngTranscludeSlot),i&&!o.isSlotFilled(i)&&a()}}}}],Ro=["$templateCache",function(e){return{restrict:"E",terminal:!0,compile:function(t,n){"text/ng-template"===n.type&&e.put(n.id,t[0].text)}}}],Fo={$setViewValue:d,$render:d},zo=["$element","$scope",function(t,n){var i=this,r=new ke;i.ngModelCtrl=Fo,i.unknownOption=Dn(e.document.createElement("option")),i.renderUnknownOption=function(e){e="? "+Me(e)+" ?",i.unknownOption.val(e),t.prepend(i.unknownOption),t.val(e)},n.$on("$destroy",(function(){i.renderUnknownOption=d})),i.removeUnknownOption=function(){i.unknownOption.parent()&&i.unknownOption.remove()},i.readValue=function(){return i.removeUnknownOption(),t.val()},i.writeValue=function(e){i.hasOption(e)?(i.removeUnknownOption(),t.val(e),""===e&&i.emptyOption.prop("selected",!0)):null==e&&i.emptyOption?(i.removeUnknownOption(),t.val("")):i.renderUnknownOption(e)},i.addOption=function(e,t){if(8!==t[0].nodeType){Z(e,'"option value"'),""===e&&(i.emptyOption=t);var n=r.get(e)||0;r.put(e,n+1),i.ngModelCtrl.$render(),t[0].hasAttribute("selected")&&(t[0].selected=!0)}},i.removeOption=function(e){var t=r.get(e);t&&(1===t?(r.remove(e),""===e&&(i.emptyOption=void 0)):r.put(e,t-1))},i.hasOption=function(e){return!!r.get(e)},i.registerOption=function(e,t,n,r,o){var a;r?n.$observe("value",(function(e){g(a)&&i.removeOption(a),a=e,i.addOption(e,t)})):o?e.$watch(o,(function(e,r){n.$set("value",e),r!==e&&i.removeOption(r),i.addOption(e,t)})):i.addOption(n.value,t),t.on("$destroy",(function(){i.removeOption(n.value),i.ngModelCtrl.$render()}))}}],Vo=function(){return{restrict:"E",require:["select","?ngModel"],controller:zo,priority:1,link:{pre:function(e,t,n,r){var o=r[1];if(o){var a=r[0];if(a.ngModelCtrl=o,t.on("change",(function(){e.$apply((function(){o.$setViewValue(a.readValue())}))})),n.multiple){a.readValue=function(){var e=[];return i(t.find("option"),(function(t){t.selected&&e.push(t.value)})),e},a.writeValue=function(e){var n=new ke(e);i(t.find("option"),(function(e){e.selected=g(n.get(e.value))}))};var s,l=NaN;e.$watch((function(){l!==o.$viewValue||E(s,o.$viewValue)||(s=Q(o.$viewValue),o.$render()),l=o.$viewValue})),o.$isEmpty=function(e){return!e||0===e.length}}}},post:function(e,t,n,i){var r=i[1];if(r){var o=i[0];r.$render=function(){o.writeValue(r.$viewValue)}}}}}},Uo=["$interpolate",function(e){return{restrict:"E",priority:100,compile:function(t,n){var i,r;return g(n.ngValue)?i=!0:g(n.value)?i=e(n.value,!0):(r=e(t.text(),!0))||n.$set("value",t.text()),function(e,t,n){var o=t.parent();(o=o.data("$selectController")||o.parent().data("$selectController"))&&o.registerOption(e,t,n,i,r)}}}}],Wo=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){i&&(n.required=!0,i.$validators.required=function(e,t){return!n.required||!i.$isEmpty(t)},n.$observe("required",(function(){i.$validate()})))}}},qo=function(){return{restrict:"A",require:"?ngModel",link:function(e,n,i,r){if(r){var o,a=i.ngPattern||i.pattern;i.$observe("pattern",(function(e){if(y(e)&&0<e.length&&(e=new RegExp("^"+e+"$")),e&&!e.test)throw t("ngPattern")("noregexp",a,e,N(n));o=e||void 0,r.$validate()})),r.$validators.pattern=function(e,t){return r.$isEmpty(t)||m(o)||o.test(t)}}}}},Go=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){if(i){var r=-1;n.$observe("maxlength",(function(e){e=u(e),r=Vn(e)?-1:e,i.$validate()})),i.$validators.maxlength=function(e,t){return 0>r||i.$isEmpty(t)||t.length<=r}}}}},Zo=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){if(i){var r=0;n.$observe("minlength",(function(e){r=u(e)||0,i.$validate()})),i.$validators.minlength=function(e,t){return i.$isEmpty(t)||t.length>=r}}}}};e.angular.bootstrap?e.console&&alert("WARNING: Tried to load angular more than once."):(function(){var t;if(!ti){var n=Jn();(Cn=m(n)?e.jQuery:n?e[n]:void 0)&&Cn.fn.on?(Dn=Cn,l(Cn.fn,{scope:mi.scope,isolateScope:mi.isolateScope,controller:mi.controller,injector:mi.injector,inheritedData:mi.inheritedData}),t=Cn.cleanData,Cn.cleanData=function(e){for(var n,i,r=0;null!=(i=e[r]);r++)(n=Cn._data(i,"events"))&&n.$destroy&&Cn(i).triggerHandler("$destroy");t(e)}):Dn=re,Fn.element=Dn,ti=!0}}(),l(Fn,{bootstrap:U,copy:C,extend:l,merge:function(e){return s(e,In.call(arguments,1),!0)},equals:E,element:Dn,forEach:i,injector:Se,noop:d,bind:P,toJson:O,fromJson:I,identity:h,isUndefined:m,isDefined:g,isString:y,isFunction:L,isObject:v,isNumber:b,isElement:T,isArray:Un,version:{full:"1.5.11",major:1,minor:5,dot:11,codeName:"princely-quest"},isDate:w,lowercase:Yn,uppercase:On,callbacks:{$$counter:0},getTestability:function(e){if(!(e=Fn.element(e).injector()))throw Rn("test");return e.get("$$testability")},$$minErr:t,$$csp:Zn,reloadWithDebugInfo:function(){e.name="NG_ENABLE_DEBUG_INFO!"+e.name,e.location.reload()}}),(En=function(e){function n(e,t,n){return e[t]||(e[t]=n())}var i=t("$injector"),r=t("ng");return(e=n(e,"angular",Object)).$$minErr=e.$$minErr||t,n(e,"module",(function(){var e={};return function(t,o,a){if("hasOwnProperty"===t)throw r("badname","module");return o&&e.hasOwnProperty(t)&&(e[t]=null),n(e,t,(function(){function e(e,t,n,i){return i||(i=r),function(){return i[n||"push"]([e,t,arguments]),c}}function n(e,n){return function(i,o){return o&&L(o)&&(o.$$moduleName=t),r.push([e,n,arguments]),c}}if(!o)throw i("nomod",t);var r=[],s=[],l=[],u=e("$injector","invoke","push",s),c={_invokeQueue:r,_configBlocks:s,_runBlocks:l,requires:o,name:t,provider:n("$provide","provider"),factory:n("$provide","factory"),service:n("$provide","service"),value:e("$provide","value"),constant:e("$provide","constant","unshift"),decorator:n("$provide","decorator"),animation:n("$animateProvider","register"),filter:n("$filterProvider","register"),controller:n("$controllerProvider","register"),directive:n("$compileProvider","directive"),component:n("$compileProvider","component"),config:u,run:function(e){return l.push(e),this}};return a&&u(a),c}))}}))}(e))("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:It}),e.provider("$compile",Ye).directive({a:Yr,input:Xr,textarea:Xr,form:Hr,script:Ro,select:Vo,option:Uo,ngBind:eo,ngBindHtml:no,ngBindTemplate:to,ngClass:ro,ngClassEven:ao,ngClassOdd:oo,ngCloak:so,ngController:lo,ngForm:Nr,ngHide:Yo,ngIf:ho,ngInclude:fo,ngInit:mo,ngNonBindable:To,ngPluralize:Eo,ngRepeat:Ao,ngShow:Po,ngStyle:Oo,ngSwitch:Io,ngSwitchWhen:jo,ngSwitchDefault:Ho,ngOptions:Co,ngTransclude:Bo,ngModel:ko,ngList:go,ngChange:io,pattern:qo,ngPattern:qo,required:Wo,ngRequired:Wo,minlength:Zo,ngMinlength:Zo,maxlength:Go,ngMaxlength:Go,ngValue:Qr,ngModelOptions:So}).directive({ngInclude:po}).directive(Or).directive(uo),e.provider({$anchorScroll:Te,$animate:Di,$animateCss:Ai,$$animateJs:Ti,$$animateQueue:$i,$$AnimateRunner:Ei,$$animateAsyncRun:Ci,$browser:Ee,$cacheFactory:Ae,$controller:Be,$document:Re,$exceptionHandler:Fe,$filter:Zt,$$forceReflow:Hi,$interpolate:Qe,$interval:et,$http:Je,$httpParamSerializer:Ve,$httpParamSerializerJQLike:Ue,$httpBackend:Ke,$xhrFactory:Xe,$jsonpCallbacks:qi,$location:ht,$log:ft,$parse:Ct,$rootScope:Ot,$q:Et,$$q:At,$sce:Nt,$sceDelegate:Ht,$sniffer:Bt,$templateCache:Pe,$templateRequest:Rt,$$testability:Ft,$timeout:zt,$window:Wt,$$rAF:Yt,$$jqLite:Le,$$HashMap:yi,$$cookieReader:Gt})}]),Fn.module("ngLocale",[],["$provide",function(e){e.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONEMONTH:"January February March April May June July August September October November December".split(" "),WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a",short:"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(e,t){var n=0|e,i=t;return void 0===i&&(i=Math.min(function(e){var t=(e+="").indexOf(".");return-1==t?0:e.length-t-1}(e),3)),Math.pow(10,i),1==n&&0==i?"one":"other"}})}]),Dn(e.document).ready((function(){!function(t,n){var r,o,a={};i(Kn,(function(e){e+="app",!r&&t.hasAttribute&&t.hasAttribute(e)&&(r=t,o=t.getAttribute(e))})),i(Kn,(function(e){var n;e+="app",!r&&(n=t.querySelector("["+e.replace(":","\\:")+"]"))&&(r=n,o=n.getAttribute(e))})),r&&(Qn?(a.strictDi=null!==function(e,t){var n,i,r=Kn.length;for(i=0;i<r;++i)if(n=Kn[i]+"strict-di",y(n=e.getAttribute(n)))return n;return null}(r),n(r,o?[o]:[],a)):e.console.error("Angular: disabling automatic bootstrap. <script> protocol indicates an extension, document.location.href does not match."))}(e.document,U)})))}(window),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>'),function(e,t){"use strict";function n(e,t,n){if(!e)throw F("areq",t||"?",n||"required");return e}function i(e,t){return e||t?e?t?(D(e)&&(e=e.join(" ")),D(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function r(e,t,n){var i="";return e=D(e)?e:e&&Y(e)&&e.length?e.split(/\s+/):[],$(e,(function(e,r){e&&0<e.length&&(i+=0<r?" ":"",i+=n?t+e:e+t)})),i}function o(e){if(!e[0])return e;for(var t=0;t<e.length;t++){var n=e[t];if(1===n.nodeType)return n}}function a(e){return function(t,n){n.addClass&&(function(e,t,n){$(t,(function(t){e.addClass(t,n)}))}(e,t,n.addClass),n.addClass=null),n.removeClass&&(function(e,t,n){$(t,(function(t){e.removeClass(t,n)}))}(e,t,n.removeClass),n.removeClass=null)}}function s(e){if(!(e=e||{}).$$prepared){var t=e.domOperation||j;e.domOperation=function(){e.$$domOperationFired=!0,t(),t=j},e.$$prepared=!0}return e}function l(e,t){u(e,t),c(e,t)}function u(e,t){t.from&&(e.css(t.from),t.from=null)}function c(e,t){t.to&&(e.css(t.to),t.to=null)}function d(e,t,n){var i=t.options||{};n=n.options||{};var r=(i.addClass||"")+" "+(n.addClass||""),o=(i.removeClass||"")+" "+(n.removeClass||"");return e=function(e,t,n){function i(e){Y(e)&&(e=e.split(" "));var t={};return $(e,(function(e){e.length&&(t[e]=!0)})),t}var r={};e=i(e),t=i(t),$(t,(function(e,t){r[t]=1})),n=i(n),$(n,(function(e,t){r[t]=1===r[t]?null:-1}));var o={addClass:"",removeClass:""};return $(r,(function(t,n){var i,r;1===t?(i="addClass",r=!e[n]||e[n+"-remove"]):-1===t&&(i="removeClass",r=e[n]||e[n+"-add"]),r&&(o[i].length&&(o[i]+=" "),o[i]+=n)})),o}(e.attr("class"),r,o),n.preparationClasses&&(i.preparationClasses=g(n.preparationClasses,i.preparationClasses),delete n.preparationClasses),r=i.domOperation!==j?i.domOperation:null,T(i,n),r&&(i.domOperation=r),i.addClass=e.addClass?e.addClass:null,i.removeClass=e.removeClass?e.removeClass:null,t.addClass=i.addClass,t.removeClass=i.removeClass,i}function h(e){return e instanceof I?e[0]:e}function f(e,t){var n=t?"-"+t+"s":"";return m(e,[B,n]),[B,n]}function p(e,t){var n=t?"paused":"",i=k+"PlayState";return m(e,[i,n]),[i,n]}function m(e,t){e.style[t[0]]=t[1]}function g(e,t){return e?t?e+" "+t:e:t}function v(e,t,n){var i=Object.create(null),r=e.getComputedStyle(t)||{};return $(n,(function(e,t){var n=r[e];if(n){var o=n.charAt(0);("-"===o||"+"===o||0<=o)&&(n=function(e){var t=0;return e=e.split(/\s*,\s*/),$(e,(function(e){"s"===e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),e=parseFloat(e)||0,t=t?Math.max(e,t):e})),t}(n)),0===n&&(n=null),i[t]=n}})),i}function _(e){return 0===e||null!=e}function y(e,t){var n=L,i=e+"s";return t?n+="Duration":i+=" linear all",[n,i]}function b(){var e=Object.create(null);return{flush:function(){e=Object.create(null)},count:function(t){return(t=e[t])?t.total:0},get:function(t){return(t=e[t])&&t.value},put:function(t,n){e[t]?e[t].total++:e[t]={total:1,value:n}}}}function w(e,t,n){$(n,(function(n){e[n]=C(e[n])?e[n]:t.style.getPropertyValue(n)}))}var L,M,k,x;void 0===e.ontransitionend&&void 0!==e.onwebkittransitionend?(L="WebkitTransition",M="webkitTransitionEnd transitionend"):(L="transition",M="transitionend"),void 0===e.onanimationend&&void 0!==e.onwebkitanimationend?(k="WebkitAnimation",x="webkitAnimationEnd animationend"):(k="animation",x="animationend");var S,T,$,D,C,E,A,P,Y,O,I,j,H=k+"Delay",N=k+"Duration",B=L+"Delay",R=L+"Duration",F=t.$$minErr("ng"),z={transitionDuration:R,transitionDelay:B,transitionProperty:L+"Property",animationDuration:N,animationDelay:H,animationIterationCount:k+"IterationCount"},V={transitionDuration:R,transitionDelay:B,animationDuration:N,animationDelay:H};t.module("ngAnimate",[],(function(){j=t.noop,S=t.copy,T=t.extend,I=t.element,$=t.forEach,D=t.isArray,Y=t.isString,P=t.isObject,O=t.isUndefined,C=t.isDefined,A=t.isFunction,E=t.isElement})).directive("ngAnimateSwap",["$animate","$rootScope",function(e,t){return{restrict:"A",transclude:"element",terminal:!0,priority:600,link:function(t,n,i,r,o){var a,s;t.$watchCollection(i.ngAnimateSwap||i.for,(function(i){a&&e.leave(a),s&&(s.$destroy(),s=null),(i||0===i)&&(s=t.$new(),o(s,(function(t){a=t,e.enter(t,null,n)})))}))}}}]).directive("ngAnimateChildren",["$interpolate",function(e){return{link:function(t,n,i){function r(e){n.data("$$ngAnimateChildren","on"===e||"true"===e)}var o=i.ngAnimateChildren;Y(o)&&0===o.length?n.data("$$ngAnimateChildren",!0):(r(e(o)(t)),i.$observe("ngAnimateChildren",r))}}}]).factory("$$rAFScheduler",["$$rAF",function(e){function t(e){i=i.concat(e),n()}function n(){if(i.length){for(var t=i.shift(),o=0;o<t.length;o++)t[o]();r||e((function(){r||n()}))}}var i,r;return i=t.queue=[],t.waitUntilQuiet=function(t){r&&r(),r=e((function(){r=null,t(),n()}))},t}]).provider("$$animateQueue",["$animateProvider",function(t){function i(e,t){if(e&&t){var n=function(e){if(!e)return null;e=e.split(" ");var t=Object.create(null);return $(e,(function(e){t[e]=!0})),t}(t);return e.split(" ").some((function(e){return n[e]}))}}function u(e,t,n,i){return f[e].some((function(e){return e(t,n,i)}))}function c(e,t){var n=0<(e.addClass||"").length,i=0<(e.removeClass||"").length;return t?n&&i:n||i}var f=this.rules={skip:[],cancel:[],join:[]};f.join.push((function(e,t,n){return!t.structural&&c(t)})),f.skip.push((function(e,t,n){return!t.structural&&!c(t)})),f.skip.push((function(e,t,n){return"leave"===n.event&&t.structural})),f.skip.push((function(e,t,n){return n.structural&&2===n.state&&!t.structural})),f.cancel.push((function(e,t,n){return n.structural&&t.structural})),f.cancel.push((function(e,t,n){return 2===n.state&&t.structural})),f.cancel.push((function(e,t,n){if(n.structural)return!1;e=t.addClass,t=t.removeClass;var r=n.addClass;return n=n.removeClass,!(O(e)&&O(t)||O(r)&&O(n))&&(i(e,n)||i(t,r))})),this.$get=["$$rAF","$rootScope","$rootElement","$document","$$HashMap","$$animation","$$AnimateRunner","$templateRequest","$$jqLite","$$forceReflow",function(i,f,p,m,v,_,y,b,w,L){function M(e,t,n){var i=h(t),r=h(e),o=[];return(e=V[n])&&$(e,(function(e){G.call(e.node,i)?o.push(e.callback):"leave"===n&&G.call(e.node,r)&&o.push(e.callback)})),o}function k(e,t,n){var i=o(t);return e.filter((function(e){return!(e.node===i&&(!n||e.callback===n))}))}function x(e,t,n){function a(t,n,r,o){k((function(){var t=M(b,e,n);t.length?i((function(){$(t,(function(t){t(e,r,o)})),"close"!==r||e[0].parentNode||Z.off(e)})):"close"!==r||e[0].parentNode||Z.off(e)})),t.progress(n,r,o)}function p(t){var n=e,i=w;i.preparationClasses&&(n.removeClass(i.preparationClasses),i.preparationClasses=null),i.activeClasses&&(n.removeClass(i.activeClasses),i.activeClasses=null),q(e,w),l(e,w),w.domOperation(),L.complete(!t)}var v,b,w=S(n);(e=function(e){if(e instanceof I)switch(e.length){case 0:return e;case 1:if(1===e[0].nodeType)return e;break;default:return I(o(e))}if(1===e.nodeType)return I(e)}(e))&&(v=h(e),b=e.parent()),w=s(w);var L=new y,k=function(){var e=!1;return function(t){e?t():f.$$postDigest((function(){e=!0,t()}))}}();if(D(w.addClass)&&(w.addClass=w.addClass.join(" ")),w.addClass&&!Y(w.addClass)&&(w.addClass=null),D(w.removeClass)&&(w.removeClass=w.removeClass.join(" ")),w.removeClass&&!Y(w.removeClass)&&(w.removeClass=null),w.from&&!P(w.from)&&(w.from=null),w.to&&!P(w.to)&&(w.to=null),!v)return p(),L;if(n=[v.className,w.addClass,w.removeClass].join(" "),!W(n))return p(),L;var x=0<=["enter","move","leave"].indexOf(t),T=m[0].hidden,C=!F||T||R.get(v),E=!!(n=!C&&B.get(v)||{}).state;if(C||E&&1===n.state||(C=!H(e,b,t)),C)return T&&a(L,t,"start"),p(),T&&a(L,t,"close"),L;if(x&&function(e){e=h(e).querySelectorAll("[data-ng-animate]"),$(e,(function(e){var t=parseInt(e.getAttribute("data-ng-animate"),10),n=B.get(e);if(n)switch(t){case 2:n.runner.end();case 1:B.remove(e)}}))}(e),T={structural:x,element:e,event:t,addClass:w.addClass,removeClass:w.removeClass,close:p,options:w,runner:L},E){if(u("skip",e,T,n))return 2===n.state?(p(),L):(d(e,n,T),n.runner);if(u("cancel",e,T,n))if(2===n.state)n.runner.end();else{if(!n.structural)return d(e,n,T),n.runner;n.close()}else if(u("join",e,T,n)){if(2!==n.state)return function(e,t,n){var i="";t&&(i=r(t,"ng-",!0)),n.addClass&&(i=g(i,r(n.addClass,"-add"))),n.removeClass&&(i=g(i,r(n.removeClass,"-remove"))),i.length&&(n.preparationClasses=i,e.addClass(i))}(e,x?t:null,w),t=T.event=n.event,w=d(e,n,T),n.runner;d(e,T,{})}}else d(e,T,{});if((E=T.structural)||(E="animate"===T.event&&0<Object.keys(T.options.to||{}).length||c(T)),!E)return p(),A(e),L;var O=(n.counter||0)+1;return T.counter=O,N(e,1,T),f.$$postDigest((function(){var n=!(i=B.get(v)),i=i||{},r=0<(e.parent()||[]).length&&("animate"===i.event||i.structural||c(i));n||i.counter!==O||!r?(n&&(q(e,w),l(e,w)),(n||x&&i.event!==t)&&(w.domOperation(),L.end()),r||A(e)):(t=!i.structural&&c(i,!0)?"setClass":i.event,N(e,2),i=_(e,t,i.options),L.setHost(i),a(L,t,"start",{}),i.done((function(n){p(!n),(n=B.get(v))&&n.counter===O&&A(h(e)),a(L,t,"close",{})})))})),L}function A(e){(e=h(e)).removeAttribute("data-ng-animate"),B.remove(e)}function j(e,t){return h(e)===h(t)}function H(e,t,n){var i,r=j(e,n=I(m[0].body))||"HTML"===e[0].nodeName,o=j(e,p),a=!1,s=R.get(h(e));for((e=I.data(e[0],"$ngAnimatePin"))&&(t=e),t=h(t);t&&(o||(o=j(t,p)),1===t.nodeType);){if(e=B.get(t)||{},!a){var l=R.get(t);if(!0===l&&!1!==s){s=!0;break}!1===l&&(s=!1),a=e.structural}if((O(i)||!0===i)&&(e=I.data(t,"$$ngAnimateChildren"),C(e)&&(i=e)),a&&!1===i)break;if(r||(r=j(t,n)),r&&o)break;t=o||!(e=I.data(t,"$ngAnimatePin"))?t.parentNode:h(e)}return(!a||i)&&!0!==s&&o&&r}function N(e,t,n){(n=n||{}).state=t,(e=h(e)).setAttribute("data-ng-animate",t),n=(t=B.get(e))?T(t,n):n,B.put(e,n)}var B=new v,R=new v,F=null,z=f.$watch((function(){return 0===b.totalPendingRequests}),(function(e){e&&(z(),f.$$postDigest((function(){f.$$postDigest((function(){null===F&&(F=!0)}))})))})),V=Object.create(null),U=t.classNameFilter(),W=U?function(e){return U.test(e)}:function(){return!0},q=a(w),G=e.Node.prototype.contains||function(e){return this===e||!!(16&this.compareDocumentPosition(e))},Z={on:function(e,t,n){var i=o(t);V[e]=V[e]||[],V[e].push({node:i,callback:n}),I(t).on("$destroy",(function(){B.get(i)||Z.off(e,t,n)}))},off:function(e,t,n){if(1!==arguments.length||Y(arguments[0])){var i=V[e];i&&(V[e]=1===arguments.length?null:k(i,t,n))}else for(i in t=arguments[0],V)V[i]=k(V[i],t)},pin:function(e,t){n(E(e),"element","not an element"),n(E(t),"parentElement","not an element"),e.data("$ngAnimatePin",t)},push:function(e,t,n,i){return(n=n||{}).domOperation=i,x(e,t,n)},enabled:function(e,t){var n=arguments.length;if(0===n)t=!!F;else if(E(e)){var i=h(e);1===n?t=!R.get(i):R.put(i,!t)}else t=F=!!e;return t}};return Z}]}]).provider("$$animation",["$animateProvider",function(e){var t=this.drivers=[];this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$HashMap","$$rAFScheduler",function(e,n,r,o,u,c){function d(e){function t(e){if(e.processed)return e;e.processed=!0;var n,o=e.domNode,a=o.parentNode;for(r.put(o,e);a;){if(n=r.get(a)){n.processed||(n=t(n));break}a=a.parentNode}return(n||i).children.push(e),e}var n,i={children:[]},r=new u;for(n=0;n<e.length;n++){var o=e[n];r.put(o.domNode,e[n]={domNode:o.domNode,fn:o.fn,children:[]})}for(n=0;n<e.length;n++)t(e[n]);return function(e){var t,n=[],i=[];for(t=0;t<e.children.length;t++)i.push(e.children[t]);e=i.length;var r=0,o=[];for(t=0;t<i.length;t++){var a=i[t];0>=e&&(e=r,r=0,n.push(o),o=[]),o.push(a.fn),a.children.forEach((function(e){r++,i.push(e)})),e--}return o.length&&n.push(o),n}(i)}var f=[],p=a(e);return function(a,u,m){function g(e,t){e=e.split(" "),t=t.split(" ");for(var n=[],i=0;i<e.length;i++){var r=e[i];if("ng-"!==r.substring(0,3))for(var o=0;o<t.length;o++)if(r===t[o]){n.push(r);break}}return n.join(" ")}function v(e){for(var n=t.length-1;0<=n;n--){var i=r.get(t[n])(e);if(i)return i}}function _(){var e=a.data("$$animationRunner");!e||"leave"===u&&m.$$domOperationFired||e.end()}function y(t){a.off("$destroy",_),a.removeData("$$animationRunner"),p(a,m),l(a,m),m.domOperation(),k&&e.removeClass(a,k),a.removeClass("ng-animate"),w.complete(!t)}m=s(m);var b=0<=["enter","move","leave"].indexOf(u),w=new o({end:function(){y()},cancel:function(){y(!0)}});if(!t.length)return y(),w;a.data("$$animationRunner",w);var L,M=i(a.attr("class"),i(m.addClass,m.removeClass)),k=m.tempClasses;return k&&(M+=" "+k,m.tempClasses=null),b&&(L="ng-"+u+"-prepare",e.addClass(a,L)),f.push({element:a,classes:M,event:u,structural:b,options:m,beforeStart:function(){a.addClass("ng-animate"),k&&e.addClass(a,k),L&&(e.removeClass(a,L),L=null)},close:y}),a.on("$destroy",_),1<f.length?w:(n.$$postDigest((function(){var e=[];$(f,(function(t){t.element.data("$$animationRunner")?e.push(t):t.close()})),f.length=0;var t=function(e){var t=[],n={};$(e,(function(e,i){var r=h(e.element),o=0<=["enter","move"].indexOf(e.event);if((r=e.structural?function(e){e=e.hasAttribute("ng-animate-ref")?[e]:e.querySelectorAll("[ng-animate-ref]");var t=[];return $(e,(function(e){var n=e.getAttribute("ng-animate-ref");n&&n.length&&t.push(e)})),t}(r):[]).length){var a=o?"to":"from";$(r,(function(e){var t=e.getAttribute("ng-animate-ref");n[t]=n[t]||{},n[t][a]={animationID:i,element:I(e)}}))}else t.push(e)}));var i={},r={};return $(n,(function(n,o){var a=n.from,s=n.to;if(a&&s){var l=e[a.animationID],u=e[s.animationID],c=a.animationID.toString();if(!r[c]){var d=r[c]={structural:!0,beforeStart:function(){l.beforeStart(),u.beforeStart()},close:function(){l.close(),u.close()},classes:g(l.classes,u.classes),from:l,to:u,anchors:[]};d.classes.length?t.push(d):(t.push(l),t.push(u))}r[c].anchors.push({out:a.element,in:s.element})}else s=(a=a?a.animationID:s.animationID).toString(),i[s]||(i[s]=!0,t.push(e[a]))})),t}(e),n=[];$(t,(function(e){n.push({domNode:h(e.from?e.from.element:e.element),fn:function(){e.beforeStart();var t,n=e.close;if((e.anchors?e.from.element||e.to.element:e.element).data("$$animationRunner")){var i=v(e);i&&(t=i.start)}t?((t=t()).done((function(e){n(!e)})),function(e,t){function n(e){(e=e.data("$$animationRunner"))&&e.setHost(t)}e.from&&e.to?(n(e.from.element),n(e.to.element)):n(e.element)}(e,t)):n()}})})),c(d(n))})),w)}}]}]).provider("$animateCss",["$animateProvider",function(e){var t=b(),n=b();this.$get=["$window","$$jqLite","$$AnimateRunner","$timeout","$$forceReflow","$sniffer","$$rAFScheduler","$$animateQueue",function(e,i,o,d,g,b,T,C){function E(e,t){var n=e.parentNode;return(n.$$ngAnimateParentKey||(n.$$ngAnimateParentKey=++I))+"-"+e.getAttribute("class")+"-"+t}function A(o,a,s,l){var u;return 0<t.count(s)&&((u=n.get(s))||(a=r(a,"-stagger"),i.addClass(o,a),(u=v(e,o,l)).animationDuration=Math.max(u.animationDuration,0),u.transitionDuration=Math.max(u.transitionDuration,0),i.removeClass(o,a),n.put(s,u))),u||{}}function P(e){R.push(e),T.waitUntilQuiet((function(){t.flush(),n.flush();for(var e=g(),i=0;i<R.length;i++)R[i](e);R.length=0}))}function Y(n,i,r){return(i=t.get(r))||"infinite"===(i=v(e,n,z)).animationIterationCount&&(i.animationIterationCount=1),t.put(r,i),r=(n=i).animationDelay,i=n.transitionDelay,n.maxDelay=r&&i?Math.max(r,i):r||i,n.maxDuration=Math.max(n.animationDuration*n.animationIterationCount,n.transitionDuration),n}var O=a(i),I=0,R=[];return function(e,n){function a(){v()}function g(){v(!0)}function v(t){if(!(q||Z&&G)){q=!0,G=!1,z.$$skipPreparationClasses||i.removeClass(e,he),i.removeClass(e,pe),p(W,!1),f(W,!1),$(ie,(function(e){W.style[e[0]]=""})),O(e,z),l(e,z),Object.keys(U).length&&$(U,(function(e,t){e?W.style.setProperty(t,e):W.style.removeProperty(t)})),z.onDone&&z.onDone(),ae&&ae.length&&e.off(ae.join(" "),R);var n=e.data("$$animateCss");n&&(d.cancel(n[0].timer),e.removeData("$$animateCss")),J&&J.complete(!t)}}function T(e){ye.blockTransition&&f(W,e),ye.blockKeyframeAnimation&&p(W,!!e)}function I(){return J=new o({end:a,cancel:g}),P(j),v(),{$$willAnimate:!1,start:function(){return J},end:a}}function R(e){e.stopPropagation();var t=e.originalEvent||e;e=t.$manualTimeStamp||Date.now(),t=parseFloat(t.elapsedTime.toFixed(3)),Math.max(e-ne,0)>=Q&&t>=ee&&(Z=!0,v())}function F(){function t(){if(!q){if(T(!1),$(ie,(function(e){W.style[e[0]]=e[1]})),O(e,z),i.addClass(e,pe),ye.recalculateTimingStyles){if(fe=W.className+" "+he,ce=E(W,fe),ge=Y(W,fe,ce),ve=ge.maxDelay,K=Math.max(ve,0),0===(ee=ge.maxDuration))return void v();ye.hasTransitions=0<ge.transitionDuration,ye.hasAnimations=0<ge.animationDuration}if(ye.applyAnimationDelay&&(ve="boolean"!=typeof z.delay&&_(z.delay)?parseFloat(z.delay):ve,K=Math.max(ve,0),ge.animationDelay=ve,_e=[H,ve+"s"],ie.push(_e),W.style[_e[0]]=_e[1]),Q=1e3*K,te=1e3*ee,z.easing){var t,r=z.easing;ye.hasTransitions&&(t=L+"TimingFunction",ie.push([t,r]),W.style[t]=r),ye.hasAnimations&&(t=k+"TimingFunction",ie.push([t,r]),W.style[t]=r)}ge.transitionDuration&&ae.push(M),ge.animationDuration&&ae.push(x),ne=Date.now();var o=Q+1.5*te;t=ne+o;var a=!0;if((r=e.data("$$animateCss")||[]).length){var s=r[0];(a=t>s.expectedEndTime)?d.cancel(s.timer):r.push(v)}a&&(o=d(n,o,!1),r[0]={timer:o,expectedEndTime:t},r.push(v),e.data("$$animateCss",r)),ae.length&&e.on(ae.join(" "),R),z.to&&(z.cleanupStyles&&w(U,W,Object.keys(z.to)),c(e,z))}}function n(){var t=e.data("$$animateCss");if(t){for(var n=1;n<t.length;n++)t[n]();e.removeData("$$animateCss")}}if(!q)if(W.parentNode){var r=function(e){if(Z)G&&e&&(G=!1,v());else if(G=!e,ge.animationDuration)if(e=p(W,G),G)ie.push(e);else{var t=ie,n=t.indexOf(e);0<=e&&t.splice(n,1)}},o=0<me&&(ge.transitionDuration&&0===de.transitionDuration||ge.animationDuration&&0===de.animationDuration)&&Math.max(de.animationDelay,de.transitionDelay);o?d(t,Math.floor(o*me*1e3),!1):t(),X.resume=function(){r(!0)},X.pause=function(){r(!1)}}else v()}var z=n||{};z.$$prepared||(z=s(S(z)));var U={},W=h(e);if(!W||!W.parentNode||!C.enabled())return I();var q,G,Z,J,X,K,Q,ee,te,ne,ie=[],re=e.attr("class"),oe=function(e){var t={};return e&&(e.to||e.from)&&(t.to=e.to,t.from=e.from),t}(z),ae=[];if(0===z.duration||!b.animations&&!b.transitions)return I();var se=z.event&&D(z.event)?z.event.join(" "):z.event,le="",ue="";se&&z.structural?le=r(se,"ng-",!0):se&&(le=se),z.addClass&&(ue+=r(z.addClass,"-add")),z.removeClass&&(ue.length&&(ue+=" "),ue+=r(z.removeClass,"-remove")),z.applyClassesEarly&&ue.length&&O(e,z);var ce,de,he=[le,ue].join(" ").trim(),fe=re+" "+he,pe=r(he,"-active");if(re=oe.to&&0<Object.keys(oe.to).length,!(0<(z.keyframeStyle||"").length||re||he))return I();0<z.stagger?(oe=parseFloat(z.stagger),de={transitionDelay:oe,animationDelay:oe,transitionDuration:0,animationDuration:0}):(ce=E(W,fe),de=A(W,he,ce,V)),z.$$skipPreparationClasses||i.addClass(e,he),z.transitionStyle&&(oe=[L,z.transitionStyle],m(W,oe),ie.push(oe)),0<=z.duration&&(oe=0<W.style[L].length,oe=y(z.duration,oe),m(W,oe),ie.push(oe)),z.keyframeStyle&&(oe=[k,z.keyframeStyle],m(W,oe),ie.push(oe));var me=de?0<=z.staggerIndex?z.staggerIndex:t.count(ce):0;(se=0===me)&&!z.skipBlocking&&f(W,9999);var ge=Y(W,fe,ce),ve=ge.maxDelay;K=Math.max(ve,0),ee=ge.maxDuration;var _e,ye={};return ye.hasTransitions=0<ge.transitionDuration,ye.hasAnimations=0<ge.animationDuration,ye.hasTransitionAll=ye.hasTransitions&&"all"===ge.transitionProperty,ye.applyTransitionDuration=re&&(ye.hasTransitions&&!ye.hasTransitionAll||ye.hasAnimations&&!ye.hasTransitions),ye.applyAnimationDuration=z.duration&&ye.hasAnimations,ye.applyTransitionDelay=_(z.delay)&&(ye.applyTransitionDuration||ye.hasTransitions),ye.applyAnimationDelay=_(z.delay)&&ye.hasAnimations,ye.recalculateTimingStyles=0<ue.length,(ye.applyTransitionDuration||ye.applyAnimationDuration)&&(ee=z.duration?parseFloat(z.duration):ee,ye.applyTransitionDuration&&(ye.hasTransitions=!0,ge.transitionDuration=ee,oe=0<W.style[L+"Property"].length,ie.push(y(ee,oe))),ye.applyAnimationDuration&&(ye.hasAnimations=!0,ge.animationDuration=ee,ie.push([N,ee+"s"]))),0!==ee||ye.recalculateTimingStyles?(null!=z.delay&&("boolean"!=typeof z.delay&&(_e=parseFloat(z.delay),K=Math.max(_e,0)),ye.applyTransitionDelay&&ie.push([B,_e+"s"]),ye.applyAnimationDelay&&ie.push([H,_e+"s"])),null==z.duration&&0<ge.transitionDuration&&(ye.recalculateTimingStyles=ye.recalculateTimingStyles||se),Q=1e3*K,te=1e3*ee,z.skipBlocking||(ye.blockTransition=0<ge.transitionDuration,ye.blockKeyframeAnimation=0<ge.animationDuration&&0<de.animationDelay&&0===de.animationDuration),z.from&&(z.cleanupStyles&&w(U,W,Object.keys(z.from)),u(e,z)),ye.blockTransition||ye.blockKeyframeAnimation?T(ee):z.skipBlocking||f(W,!1),{$$willAnimate:!0,end:a,start:function(){if(!q)return J=new o(X={end:a,cancel:g,resume:null,pause:null}),P(F),J}}):I()}}]}]).provider("$$animateCssDriver",["$$animationProvider",function(e){e.drivers.push("$$animateCssDriver"),this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(e,t,n,i,r,o,a){function s(e){return e.replace(/\bng-\S+\b/g,"")}function l(e,t){return Y(e)&&(e=e.split(" ")),Y(t)&&(t=t.split(" ")),e.filter((function(e){return-1===t.indexOf(e)})).join(" ")}function u(t,i,r){function o(e){var t={},n=h(e).getBoundingClientRect();return $(["width","height","top","left"],(function(e){var i=n[e];switch(e){case"top":i+=d.scrollTop;break;case"left":i+=d.scrollLeft}t[e]=Math.floor(i)+"px"})),t}function a(){var t=l(n=s(r.attr("class")||""),m),n=l(m,n);return(t=e(p,{to:o(r),addClass:"ng-anchor-in "+t,removeClass:"ng-anchor-out "+n,delay:!0})).$$willAnimate?t:null}function u(){p.remove(),i.removeClass("ng-animate-shim"),r.removeClass("ng-animate-shim")}var c,p=I(h(i).cloneNode(!0)),m=s(p.attr("class")||"");if(i.addClass("ng-animate-shim"),r.addClass("ng-animate-shim"),p.addClass("ng-anchor"),f.append(p),!(t=function(){var t=e(p,{addClass:"ng-anchor-out",delay:!0,from:o(i)});return t.$$willAnimate?t:null}())&&!(c=a()))return u();var g=t||c;return{start:function(){function e(){i&&i.end()}var t,i=g.start();return i.done((function(){if(i=null,!c&&(c=a()))return(i=c.start()).done((function(){i=null,u(),t.complete()})),i;u(),t.complete()})),t=new n({end:e,cancel:e})}}}function c(t){var n=t.element,i=t.options||{};return t.structural&&(i.event=t.event,i.structural=!0,i.applyClassesEarly=!0,"leave"===t.event&&(i.onDone=i.domOperation)),i.preparationClasses&&(i.event=g(i.event,i.preparationClasses)),(t=e(n,i)).$$willAnimate?t:null}if(!r.animations&&!r.transitions)return j;var d=a[0].body;t=h(i);var f=I(t.parentNode&&11===t.parentNode.nodeType||d.contains(t)?t:d);return function(e){return e.from&&e.to?function(e,t,i,r){var o=c(e),a=c(t),s=[];if($(r,(function(e){(e=u(i,e.out,e.in))&&s.push(e)})),o||a||0!==s.length)return{start:function(){function e(){$(t,(function(e){e.end()}))}var t=[];o&&t.push(o.start()),a&&t.push(a.start()),$(s,(function(e){t.push(e.start())}));var i=new n({end:e,cancel:e});return n.all(t,(function(e){i.complete(e)})),i}}}(e.from,e.to,e.classes,e.anchors):c(e)}}]}]).provider("$$animateJs",["$animateProvider",function(e){this.$get=["$injector","$$AnimateRunner","$$jqLite",function(t,n,i){function r(n){n=D(n)?n:n.split(" ");for(var i=[],r={},o=0;o<n.length;o++){var a=n[o],s=e.$$registeredAnimations[a];s&&!r[a]&&(i.push(t.get(s)),r[a]=!0)}return i}var o=a(i);return function(e,t,i,a){function u(){a.domOperation(),o(e,a)}function c(e,t,i,r,o){switch(i){case"animate":t=[t,r.from,r.to,o];break;case"setClass":t=[t,y,b,o];break;case"addClass":t=[t,y,o];break;case"removeClass":t=[t,b,o];break;default:t=[t,o]}if(t.push(r),e=e.apply(e,t))if(A(e.start)&&(e=e.start()),e instanceof n)e.done(o);else if(A(e))return e;return j}function d(e,t,i,r,o){var a=[];return $(r,(function(r){var s=r[o];s&&a.push((function(){var r,o,a=!1,l=function(e){a||(a=!0,(o||j)(e),r.complete(!e))};return r=new n({end:function(){l()},cancel:function(){l(!0)}}),o=c(s,e,t,i,(function(e){l(!1===e)})),r}))})),a}function h(e,t,i,r,o){var a,s,l=d(e,t,i,r,o);if(0===l.length&&("beforeSetClass"===o?(a=d(e,"removeClass",i,r,"beforeRemoveClass"),s=d(e,"addClass",i,r,"beforeAddClass")):"setClass"===o&&(a=d(e,"removeClass",i,r,"removeClass"),s=d(e,"addClass",i,r,"addClass")),a&&(l=l.concat(a)),s&&(l=l.concat(s))),0!==l.length)return function(e){var t=[];return l.length&&$(l,(function(e){t.push(e())})),t.length?n.all(t,e):e(),function(e){$(t,(function(t){e?t.cancel():t.end()}))}}}var f=!1;3===arguments.length&&P(i)&&(a=i,i=null),a=s(a),i||(i=e.attr("class")||"",a.addClass&&(i+=" "+a.addClass),a.removeClass&&(i+=" "+a.removeClass));var p,m,g,v,_,y=a.addClass,b=a.removeClass,w=r(i);if(w.length&&("leave"===t?(v="leave",g="afterLeave"):(v="before"+t.charAt(0).toUpperCase()+t.substr(1),g=t),"enter"!==t&&"move"!==t&&(p=h(e,t,a,w,v)),m=h(e,t,a,w,g)),p||m)return{$$willAnimate:!0,end:function(){return _?_.end():(f=!0,u(),l(e,a),(_=new n).complete(!0)),_},start:function(){function t(t){f=!0,u(),l(e,a),_.complete(t)}if(_)return _;_=new n;var i,r=[];return p&&r.push((function(e){i=p(e)})),r.length?r.push((function(e){u(),e(!0)})):u(),m&&r.push((function(e){i=m(e)})),_.setHost({end:function(){f||((i||j)(void 0),t(void 0))},cancel:function(){f||((i||j)(!0),t(!0))}}),n.chain(r,t),_}}}}]}]).provider("$$animateJsDriver",["$$animationProvider",function(e){e.drivers.push("$$animateJsDriver"),this.$get=["$$animateJs","$$AnimateRunner",function(e,t){function n(t){return e(t.element,t.event,t.classes,t.options)}return function(e){if(!e.from||!e.to)return n(e);var i=n(e.from),r=n(e.to);return i||r?{start:function(){function e(){return function(){$(n,(function(e){e.end()}))}}var n=[];i&&n.push(i.start()),r&&n.push(r.start()),t.all(n,(function(e){o.complete(e)}));var o=new t({end:e(),cancel:e()});return o}}:void 0}}]}])}(window,window.angular),function(e,t){"use strict";function n(e){var t=[];return c(t,l).chars(e),t.join("")}var i,r,o,a,s,l,u,c,d=t.$$minErr("$sanitize");t.module("ngSanitize",[]).provider("$sanitize",(function(){function n(e,t){var n,i={},r=e.split(",");for(n=0;n<r.length;n++)i[t?s(r[n]):r[n]]=!0;return i}function h(e){for(var t={},n=0,i=e.length;n<i;n++){var r=e[n];t[r.name]=r.value}return t}function f(e){return e.replace(/&/g,"&amp;").replace(v,(function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+((e=e.charCodeAt(1))-56320)+65536)+";"})).replace(_,(function(e){return"&#"+e.charCodeAt(0)+";"})).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function p(t){for(;t;){if(t.nodeType===e.Node.ELEMENT_NODE)for(var n=t.attributes,i=0,r=n.length;i<r;i++){var o=n[i],a=o.name.toLowerCase();"xmlns:ns1"!==a&&0!==a.lastIndexOf("ns1:",0)||(t.removeAttributeNode(o),i--,r--)}(n=t.firstChild)&&p(n),t=t.nextSibling}}var m=!1;this.$get=["$$sanitizeUri",function(e){return m&&r(x,M),function(t){var n=[];return u(t,c(n,(function(t,n){return!/^unsafe:/.test(e(t,n))}))),n.join("")}}],this.enableSvg=function(e){return a(e)?(m=e,this):m},i=t.bind,r=t.extend,o=t.forEach,a=t.isDefined,s=t.lowercase,l=t.noop,u=function(t,n){null==t?t="":"string"!=typeof t&&(t=""+t),g.innerHTML=t;var i=5;do{if(0===i)throw d("uinput");i--,e.document.documentMode&&p(g),t=g.innerHTML,g.innerHTML=t}while(t!==g.innerHTML);for(i=g.firstChild;i;){switch(i.nodeType){case 1:n.start(i.nodeName.toLowerCase(),h(i.attributes));break;case 3:n.chars(i.textContent)}var r;if(!((r=i.firstChild)||(1===i.nodeType&&n.end(i.nodeName.toLowerCase()),r=i.nextSibling)))for(;null==r&&(i=i.parentNode)!==g;)r=i.nextSibling,1===i.nodeType&&n.end(i.nodeName.toLowerCase());i=r}for(;i=g.firstChild;)g.removeChild(i)},c=function(e,t){var n=!1,r=i(e,e.push);return{start:function(e,i){e=s(e),!n&&k[e]&&(n=e),n||!0!==x[e]||(r("<"),r(e),o(i,(function(n,i){var o=s(i),a="img"===e&&"src"===o||"background"===o;!0!==T[o]||!0===S[o]&&!t(n,a)||(r(" "),r(i),r('="'),r(f(n)),r('"'))})),r(">"))},end:function(e){e=s(e),n||!0!==x[e]||!0===y[e]||(r("</"),r(e),r(">")),e==n&&(n=!1)},chars:function(e){n||r(f(e))}}};var g,v=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,_=/([^#-~ |!])/g,y=n("area,br,col,hr,img,wbr"),b=n("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),w=n("rp,rt"),L=r({},w,b),M=(b=r({},b,n("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul")),w=r({},w,n("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),n("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan")),k=n("script,style"),x=r({},y,b,w,L),S=n("background,cite,href,longdesc,src,xlink:href"),T=(L=n("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"),w=n("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan",!0),r({},S,w,L));!function(e){if(!e.document||!e.document.implementation)throw d("noinert");var t=((e=e.document.implementation.createHTMLDocument("inert")).documentElement||e.getDocumentElement()).getElementsByTagName("body");1===t.length?g=t[0]:(t=e.createElement("html"),g=e.createElement("body"),t.appendChild(g),e.appendChild(t))}(e)})),t.module("ngSanitize").filter("linky",["$sanitize",function(e){var i=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i,r=/^mailto:/i,o=t.$$minErr("linky"),a=t.isDefined,s=t.isFunction,l=t.isObject,u=t.isString;return function(t,c,d){function h(e){e&&_.push(n(e))}function f(e,t){var n,i=g(e);for(n in _.push("<a "),i)_.push(n+'="'+i[n]+'" ');!a(c)||"target"in i||_.push('target="',c,'" '),_.push('href="',e.replace(/"/g,"&quot;"),'">'),h(t),_.push("</a>")}if(null==t||""===t)return t;if(!u(t))throw o("notstring",t);for(var p,m,g=s(d)?d:l(d)?function(){return d}:function(){return{}},v=t,_=[];t=v.match(i);)p=t[0],t[2]||t[4]||(p=(t[3]?"http://":"mailto:")+p),m=t.index,h(v.substr(0,m)),f(p,t[0].replace(r,"")),v=v.substring(m+t[0].length);return h(v),e(_.join(""))}}])}(window,window.angular),
+/**
+ * State-based routing for AngularJS
+ * @version v0.2.18
+ * @link http://angular-ui.github.com/
+ * @license MIT License, http://www.opensource.org/licenses/MIT
+ */
+"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ui.router"),function(e,t,n){"use strict";function i(e,t){return B(new(B((function(){}),{prototype:e})),t)}function r(e){return N(arguments,(function(t){t!==e&&N(t,(function(t,n){e.hasOwnProperty(n)||(e[n]=t)}))})),e}function o(e){if(Object.keys)return Object.keys(e);var t=[];return N(e,(function(e,n){t.push(n)})),t}function a(e,t){if(Array.prototype.indexOf)return e.indexOf(t,Number(arguments[2])||0);var n=e.length>>>0,i=Number(arguments[2])||0;for(0>(i=0>i?Math.ceil(i):Math.floor(i))&&(i+=n);n>i;i++)if(i in e&&e[i]===t)return i;return-1}function s(e,t,n,i){var r,s=function(e,t){var n=[];for(var i in e.path){if(e.path[i]!==t.path[i])break;n.push(e.path[i])}return n}(n,i),l={},u=[];for(var c in s)if(s[c]&&s[c].params&&(r=o(s[c].params)).length)for(var d in r)a(u,r[d])>=0||(u.push(r[d]),l[r[d]]=e[r[d]]);return B({},l,t)}function l(e,t,n){if(!n)for(var i in n=[],e)n.push(i);for(var r=0;r<n.length;r++){var o=n[r];if(e[o]!=t[o])return!1}return!0}function u(e,t){var n={};return N(e,(function(e){n[e]=t[e]})),n}function c(e){var t={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));return N(n,(function(n){n in e&&(t[n]=e[n])})),t}function d(e){var t={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));for(var i in e)-1==a(n,i)&&(t[i]=e[i]);return t}function h(e,t){var n=H(e),i=n?[]:{};return N(e,(function(e,r){t(e,r)&&(i[n?i.length:r]=e)})),i}function f(e,t){var n=H(e)?[]:{};return N(e,(function(e,i){n[i]=t(e,i)})),n}function p(e,t){var i={},s=[],l=i,u=B(e.when(i),{$$promises:i,$$values:i});this.study=function(i){function c(e){return j(e)&&e.then&&e.$$promises}if(!j(i))throw new Error("'invocables' must be an object");var h=o(i||{}),f=[],p=[],m={};return N(i,(function e(n,r){if(2!==m[r]){if(p.push(r),1===m[r])throw p.splice(0,a(p,r)),new Error("Cyclic dependency: "+p.join(" -> "));if(m[r]=1,I(n))f.push(r,[function(){return t.get(n)}],s);else{var o=t.annotate(n);N(o,(function(t){t!==r&&i.hasOwnProperty(t)&&e(i[t],t)})),f.push(r,n,o)}p.pop(),m[r]=2}})),i=p=m=null,function(i,o,a){function s(){--b||(w||r(y,o.$$values),v.$$values=y,v.$$promises=v.$$promises||!0,delete v.$$inheritedValues,g.resolve(y))}function p(e){v.$$failure=e,g.reject(e)}function m(n,r,o){function l(e){c.reject(e),p(e)}function u(){if(!Y(v.$$failure))try{c.resolve(t.invoke(r,a,y)),c.promise.then((function(e){y[n]=e,s()}),l)}catch(e){l(e)}}var c=e.defer(),d=0;N(o,(function(e){_.hasOwnProperty(e)&&!i.hasOwnProperty(e)&&(d++,_[e].then((function(t){y[e]=t,--d||u()}),l))})),d||u(),_[n]=c.promise}if(c(i)&&a===n&&(a=o,o=i,i=null),i){if(!j(i))throw new Error("'locals' must be an object")}else i=l;if(o){if(!c(o))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else o=u;var g=e.defer(),v=g.promise,_=v.$$promises={},y=B({},i),b=1+f.length/3,w=!1;if(Y(o.$$failure))return p(o.$$failure),v;o.$$inheritedValues&&r(y,d(o.$$inheritedValues,h)),B(_,o.$$promises),o.$$values?(w=r(y,d(o.$$values,h)),v.$$inheritedValues=d(o.$$values,h),s()):(o.$$inheritedValues&&(v.$$inheritedValues=d(o.$$inheritedValues,h)),o.then(s,p));for(var L=0,M=f.length;M>L;L+=3)i.hasOwnProperty(f[L])?s():m(f[L],f[L+1],f[L+2]);return v}},this.resolve=function(e,t,n,i){return this.study(e)(t,n,i)}}function m(e,t,n){this.fromConfig=function(e,t,n){return Y(e.template)?this.fromString(e.template,t):Y(e.templateUrl)?this.fromUrl(e.templateUrl,t):Y(e.templateProvider)?this.fromProvider(e.templateProvider,t,n):null},this.fromString=function(e,t){return O(e)?e(t):e},this.fromUrl=function(n,i){return O(n)&&(n=n(i)),null==n?null:e.get(n,{cache:t,headers:{Accept:"text/html"}}).then((function(e){return e.data}))},this.fromProvider=function(e,t,i){return n.invoke(e,null,i||{params:t})}}function g(e,t,r){function o(t,n,i,r){if(y.push(t),v[t])return v[t];if(!/^\w+([-.]+\w+)*(?:\[\])?$/.test(t))throw new Error("Invalid parameter name '"+t+"' in pattern '"+e+"'");if(_[t])throw new Error("Duplicate parameter name '"+t+"' in pattern '"+e+"'");return _[t]=new P.Param(t,n,i,r),_[t]}function a(e,t,n,i){var r=["",""],o=e.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!t)return o;switch(n){case!1:r=["(",")"+(i?"?":"")];break;case!0:o=o.replace(/\/$/,""),r=["(?:/(",")|/)?"];break;default:r=["("+n+"|",")?"]}return o+r[0]+t+r[1]}function s(r,o){var a,s,l,u,c;return a=r[2]||r[3],c=t.params[a],l=e.substring(m,r.index),(s=o?r[4]:r[4]||("*"==r[1]?".*":null))&&(u=P.type(s)||i(P.type("string"),{pattern:new RegExp(s,t.caseInsensitive?"i":n)})),{id:a,regexp:s,segment:l,type:u,cfg:c}}t=B({params:{}},j(t)?t:{});var l,u,c,d,h=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,f=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,p="^",m=0,g=this.segments=[],v=r?r.params:{},_=this.params=r?r.params.$$new():new P.ParamSet,y=[];for(this.source=e;(l=h.exec(e))&&!((u=s(l,!1)).segment.indexOf("?")>=0);)c=o(u.id,u.type,u.cfg,"path"),p+=a(u.segment,c.type.pattern.source,c.squash,c.isOptional),g.push(u.segment),m=h.lastIndex;var b=(d=e.substring(m)).indexOf("?");if(b>=0){var w=this.sourceSearch=d.substring(b);if(d=d.substring(0,b),this.sourcePath=e.substring(0,m+b),w.length>0)for(m=0;l=f.exec(w);)c=o((u=s(l,!0)).id,u.type,u.cfg,"search"),m=h.lastIndex}else this.sourcePath=e,this.sourceSearch="";p+=a(d)+(!1===t.strict?"/?":"")+"$",g.push(d),this.regexp=new RegExp(p,t.caseInsensitive?"i":n),this.prefix=g[0],this.$$paramNames=y}function v(e){B(this,e)}function _(e,i){function r(e){var t=/^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(e.source);return null!=t?t[1].replace(/\\(.)/g,"$1"):""}function o(e,t,n){if(!n)return!1;var i=e.invoke(t,t,{$match:n});return!Y(i)||i}function a(i,r,o,a,d){function h(e){function t(e){var t=e(o,i);return!!t&&(I(t)&&i.replace().url(t),!0)}if(!e||!e.defaultPrevented){p&&i.url(),p=n;var r,a=l.length;for(r=0;a>r;r++)if(t(l[r]))return;u&&t(u)}}function f(){return s=s||r.$on("$locationChangeSuccess",h)}var p,m=a.baseHref(),g=i.url();return c||f(),{sync:function(){h()},listen:function(){return f()},update:function(e){return e?void(g=i.url()):void(i.url()!==g&&(i.url(g),i.replace()))},push:function(e,t,r){var o=e.format(t||{});null!==o&&t&&t["#"]&&(o+="#"+t["#"]),i.url(o),p=r&&r.$$avoidResync?i.url():n,r&&r.replace&&i.replace()},href:function(n,r,o){if(!n.validates(r))return null;var a=e.html5Mode();t.isObject(a)&&(a=a.enabled),a=a&&d.history;var s=n.format(r);if(o=o||{},a||null===s||(s="#"+e.hashPrefix()+s),null!==s&&r&&r["#"]&&(s+="#"+r["#"]),s=function(e,t,n){return"/"===m?e:t?m.slice(0,-1)+e:n?m.slice(1)+e:e}(s,a,o.absolute),!o.absolute||!s)return s;var l=!a&&s?"/":"",u=i.port();return u=80===u||443===u?"":":"+u,[i.protocol(),"://",i.host(),u,l,s].join("")}}}var s,l=[],u=null,c=!1;this.rule=function(e){if(!O(e))throw new Error("'rule' must be a function");return l.push(e),this},this.otherwise=function(e){if(I(e)){var t=e;e=function(){return t}}else if(!O(e))throw new Error("'rule' must be a function");return u=e,this},this.when=function(e,t){var n,a=I(t);if(I(e)&&(e=i.compile(e)),!a&&!O(t)&&!H(t))throw new Error("invalid 'handler' in when()");var s={matcher:function(e,t){return a&&(n=i.compile(t),t=["$match",function(e){return n.format(e)}]),B((function(n,i){return o(n,t,e.exec(i.path(),i.search()))}),{prefix:I(e.prefix)?e.prefix:""})},regex:function(e,t){if(e.global||e.sticky)throw new Error("when() RegExp must not be global or sticky");return a&&(n=t,t=["$match",function(e){return function(e,t){return e.replace(/\$(\$|\d{1,2})/,(function(e,n){return t["$"===n?0:Number(n)]}))}(n,e)}]),B((function(n,i){return o(n,t,e.exec(i.path()))}),{prefix:r(e)})}},l={matcher:i.isMatcher(e),regex:e instanceof RegExp};for(var u in l)if(l[u])return this.rule(s[u](e,t));throw new Error("invalid 'what' in when()")},this.deferIntercept=function(e){e===n&&(e=!0),c=e},this.$get=a,a.$inject=["$location","$rootScope","$injector","$browser","$sniffer"]}function y(e,r){function d(e,t){if(!e)return n;var i=I(e),r=i?e:e.name;if(function(e){return 0===e.indexOf(".")||0===e.indexOf("^")}(r)){if(!t)throw new Error("No reference point given for path '"+r+"'");t=d(t);for(var o=r.split("."),a=0,s=o.length,l=t;s>a;a++)if(""!==o[a]||0!==a){if("^"!==o[a])break;if(!l.parent)throw new Error("Path '"+r+"' not valid for state '"+t.name+"'");l=l.parent}else l=t;o=o.slice(a).join("."),r=l.name+(l.name&&o?".":"")+o}var u=y[r];return!u||!i&&(i||u!==e&&u.self!==e)?n:u}function h(t){var n=(t=i(t,{self:t,resolve:t.resolve||{},toString:function(){return this.name}})).name;if(!I(n)||n.indexOf("@")>=0)throw new Error("State must have a valid name");if(y.hasOwnProperty(n))throw new Error("State '"+n+"' is already defined");var r=-1!==n.indexOf(".")?n.substring(0,n.lastIndexOf(".")):I(t.parent)?t.parent:j(t.parent)&&I(t.parent.name)?t.parent.name:"";if(r&&!y[r])return function(e,t){b[e]||(b[e]=[]),b[e].push(t)}(r,t.self);for(var o in L)O(L[o])&&(t[o]=L[o](t,L.$delegates[o]));return y[n]=t,!t[w]&&t.url&&e.when(t.url,["$match","$stateParams",function(e,n){_.$current.navigable==t&&l(e,n)||_.transitionTo(t,e,{inherit:!0,location:!1})}]),function(e){for(var t=b[e]||[];t.length;)h(t.shift())}(n),t}function p(e){for(var t=e.split("."),n=_.$current.name.split("."),i=0,r=t.length;r>i;i++)"*"===t[i]&&(n[i]="*");return"**"===t[0]&&(n=n.slice(a(n,t[1]))).unshift("**"),"**"===t[t.length-1]&&(n.splice(a(n,t[t.length-2])+1,Number.MAX_VALUE),n.push("**")),t.length==n.length&&n.join("")===t.join("")}function m(e,r,a,c,h,m,b,L,M){function k(t,n,i,o){var a=e.$broadcast("$stateNotFound",t,n,i);if(a.defaultPrevented)return b.update(),$;if(!a.retry)return null;if(o.$retry)return b.update(),D;var s=_.transition=r.when(a.retry);return s.then((function(){return s!==_.transition?S:(t.options.$retry=!0,_.transitionTo(t.to,t.toParams,t.options))}),(function(){return $})),b.update(),s}function x(e,n,i,o,s,l){var d=i?n:u(e.params.$$keys(),n),f={$stateParams:d};s.resolve=h.resolve(e.resolve,f,s.resolve,e);var p=[s.resolve.then((function(e){s.globals=e}))];return o&&p.push(o),r.all(p).then((function(){var n=[];return N(e.views,(function(i,r){var o=i.resolve&&i.resolve!==e.resolve?i.resolve:{};o.$template=[function(){return a.load(r,{view:i,locals:s.globals,params:d,notify:l.notify})||""}],n.push(h.resolve(o,s.globals,s.resolve,e).then((function(n){if(O(i.controllerProvider)||H(i.controllerProvider)){var a=t.extend({},o,s.globals);n.$$controller=c.invoke(i.controllerProvider,null,a)}else n.$$controller=i.controller;n.$$state=e,n.$$controllerAs=i.controllerAs,s[r]=n})))})),r.all(n).then((function(){return s.globals}))})).then((function(e){return s}))}var S=r.reject(new Error("transition superseded")),T=r.reject(new Error("transition prevented")),$=r.reject(new Error("transition aborted")),D=r.reject(new Error("transition failed"));return v.locals={resolve:null,globals:{$stateParams:{}}},(_={params:{},current:v.self,$current:v,transition:null}).reload=function(e){return _.transitionTo(_.current,m,{reload:e||!0,inherit:!1,notify:!0})},_.go=function(e,t,n){return _.transitionTo(e,t,B({inherit:!0,relative:_.$current},n))},_.transitionTo=function(t,n,o){n=n||{},o=B({location:!0,inherit:!1,relative:null,notify:!0,reload:!1,$retry:!1},o||{});var a=_.$current,l=_.params,h=a.path,f=d(t,o.relative),p=n["#"];if(!Y(f)){var y={to:t,toParams:n,options:o},L=k(y,a.self,l,o);if(L)return L;if(n=y.toParams,f=d(t=y.to,(o=y.options).relative),!Y(f)){if(!o.relative)throw new Error("No such state '"+t+"'");throw new Error("Could not resolve '"+t+"' from state '"+o.relative+"'")}}if(f[w])throw new Error("Cannot transition to abstract state '"+t+"'");if(o.inherit&&(n=s(m,n||{},_.$current,f)),!f.params.$$validates(n))return D;n=f.params.$$values(n);var M=(t=f).path,$=0,C=M[$],E=v.locals,A=[];if(o.reload){if(I(o.reload)||j(o.reload)){if(j(o.reload)&&!o.reload.name)throw new Error("Invalid reload state object");var P=!0===o.reload?h[0]:d(o.reload);if(o.reload&&!P)throw new Error("No such reload state '"+(I(o.reload)?o.reload:o.reload.name)+"'");for(;C&&C===h[$]&&C!==P;)E=A[$]=C.locals,$++,C=M[$]}}else for(;C&&C===h[$]&&C.ownParams.$$equals(n,l);)E=A[$]=C.locals,$++,C=M[$];if(g(t,n,a,l,E,o))return p&&(n["#"]=p),_.params=n,R(_.params,m),R(u(t.params.$$keys(),m),t.locals.globals.$stateParams),o.location&&t.navigable&&t.navigable.url&&(b.push(t.navigable.url,n,{$$avoidResync:!0,replace:"replace"===o.location}),b.update(!0)),_.transition=null,r.when(_.current);if(n=u(t.params.$$keys(),n||{}),p&&(n["#"]=p),o.notify&&e.$broadcast("$stateChangeStart",t.self,n,a.self,l,o).defaultPrevented)return e.$broadcast("$stateChangeCancel",t.self,n,a.self,l),null==_.transition&&b.update(),T;for(var O=r.when(E),H=$;H<M.length;H++,C=M[H])E=A[H]=i(E),O=x(C,n,C===t,O,E,o);var N=_.transition=O.then((function(){var i,r,s;if(_.transition!==N)return S;for(i=h.length-1;i>=$;i--)(s=h[i]).self.onExit&&c.invoke(s.self.onExit,s.self,s.locals.globals),s.locals=null;for(i=$;i<M.length;i++)(r=M[i]).locals=A[i],r.self.onEnter&&c.invoke(r.self.onEnter,r.self,r.locals.globals);return _.transition!==N?S:(_.$current=t,_.current=t.self,_.params=n,R(_.params,m),_.transition=null,o.location&&t.navigable&&b.push(t.navigable.url,t.navigable.locals.globals.$stateParams,{$$avoidResync:!0,replace:"replace"===o.location}),o.notify&&e.$broadcast("$stateChangeSuccess",t.self,n,a.self,l),b.update(!0),_.current)}),(function(i){return _.transition!==N?S:(_.transition=null,e.$broadcast("$stateChangeError",t.self,n,a.self,l,i).defaultPrevented||b.update(),r.reject(i))}));return N},_.is=function(e,t,i){var r=d(e,(i=B({relative:_.$current},i||{})).relative);return Y(r)?_.$current===r&&(!t||l(r.params.$$values(t),m)):n},_.includes=function(e,t,i){if(i=B({relative:_.$current},i||{}),I(e)&&function(e){return e.indexOf("*")>-1}(e)){if(!p(e))return!1;e=_.$current.name}var r=d(e,i.relative);return Y(r)?!!Y(_.$current.includes[r.name])&&(!t||l(r.params.$$values(t),m,o(t))):n},_.href=function(e,t,i){var r=d(e,(i=B({lossy:!0,inherit:!0,absolute:!1,relative:_.$current},i||{})).relative);if(!Y(r))return null;i.inherit&&(t=s(m,t||{},_.$current,r));var o=r&&i.lossy?r.navigable:r;return o&&o.url!==n&&null!==o.url?b.href(o.url,u(r.params.$$keys().concat("#"),t||{}),{absolute:i.absolute}):null},_.get=function(e,t){if(0===arguments.length)return f(o(y),(function(e){return y[e].self}));var n=d(e,t||_.$current);return n&&n.self?n.self:null},_}function g(e,t,n,i,r,o){return!(o.reload||e!==n||!(r===n.locals||!1===e.self.reloadOnSearch&&function(e,t,n){var i=e.params.$$keys().filter((function(t){return"search"!=e.params[t].location})),r=c.apply({},[e.params].concat(i));return new P.ParamSet(r).$$equals(t,n)}(n,i,t)))||void 0}var v,_,y={},b={},w="abstract",L={parent:function(e){if(Y(e.parent)&&e.parent)return d(e.parent);var t=/^(.+)\.[^.]+$/.exec(e.name);return t?d(t[1]):v},data:function(e){return e.parent&&e.parent.data&&(e.data=e.self.data=i(e.parent.data,e.data)),e.data},url:function(e){var t=e.url,n={params:e.params||{}};if(I(t))return"^"==t.charAt(0)?r.compile(t.substring(1),n):(e.parent.navigable||v).url.concat(t,n);if(!t||r.isMatcher(t))return t;throw new Error("Invalid url '"+t+"' in state '"+e+"'")},navigable:function(e){return e.url?e:e.parent?e.parent.navigable:null},ownParams:function(e){var t=e.url&&e.url.params||new P.ParamSet;return N(e.params||{},(function(e,n){t[n]||(t[n]=new P.Param(n,null,e,"config"))})),t},params:function(e){var t=c(e.ownParams,e.ownParams.$$keys());return e.parent&&e.parent.params?B(e.parent.params.$$new(),t):new P.ParamSet},views:function(e){var t={};return N(Y(e.views)?e.views:{"":e},(function(n,i){i.indexOf("@")<0&&(i+="@"+e.parent.name),t[i]=n})),t},path:function(e){return e.parent?e.parent.path.concat(e):[]},includes:function(e){var t=e.parent?B({},e.parent.includes):{};return t[e.name]=!0,t},$delegates:{}};(v=h({name:"",url:"^",views:null,abstract:!0})).navigable=null,this.decorator=function(e,t){return I(e)&&!Y(t)?L[e]:O(t)&&I(e)?(L[e]&&!L.$delegates[e]&&(L.$delegates[e]=L[e]),L[e]=t,this):this},this.state=function(e,t){return j(e)?t=e:t.name=e,h(t),this},this.$get=m,m.$inject=["$rootScope","$q","$view","$injector","$resolve","$stateParams","$urlRouter","$location","$urlMatcherFactory"]}function b(){function e(e,t){return{load:function(e,n){var i;return(n=B({template:null,controller:null,view:null,locals:null,notify:!0,async:!0,params:{}},n)).view&&(i=t.fromConfig(n.view,n.params,n.locals)),i}}}this.$get=e,e.$inject=["$rootScope","$templateFactory"]}function w(e,n,i,r){function o(e,n){function i(e){return 1===z&&V>=4?!!l.enabled(e):1===z&&V>=2?!!l.enabled():!!s}var r={enter:function(e,t,n){t.after(e),n()},leave:function(e,t){e.remove(),t()}};if(e.noanimation)return r;if(l)return{enter:function(e,n,o){i(e)?t.version.minor>2?l.enter(e,null,n).then(o):l.enter(e,null,n,o):r.enter(e,n,o)},leave:function(e,n){i(e)?t.version.minor>2?l.leave(e).then(n):l.leave(e,n):r.leave(e,n)}};if(s){var o=s&&s(n,e);return{enter:function(e,t,n){o.enter(e,null,t),n()},leave:function(e,t){o.leave(e),t()}}}return r}var a=n.has?function(e){return n.has(e)?n.get(e):null}:function(e){try{return n.get(e)}catch(e){return null}},s=a("$animator"),l=a("$animate");return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(n,a,s){return function(n,a,l){function u(){function e(){t&&t.remove(),n&&n.$destroy()}var t=d,n=f;n&&(n._willBeDestroyed=!0),h?(v.leave(h,(function(){e(),d=null})),d=h):(e(),d=null),h=null,f=null}function c(o){var c,d=M(n,l,a,r),_=d&&e.$current&&e.$current.locals[d];if((o||_!==p)&&!n._willBeDestroyed){c=n.$new(),p=e.$current.locals[d],c.$emit("$viewContentLoading",d);var y=s(c,(function(e){v.enter(e,a,(function(){f&&f.$emit("$viewContentAnimationEnded"),(t.isDefined(g)&&!g||n.$eval(g))&&i(e)})),u()}));h=y,(f=c).$emit("$viewContentLoaded",d),f.$eval(m)}}var d,h,f,p,m=l.onload||"",g=l.autoscroll,v=o(l,n);n.$on("$stateChangeSuccess",(function(){c(!1)})),c(!0)}}}}function L(e,t,n,i){return{restrict:"ECA",priority:-400,compile:function(r){var o=r.html();return function(r,a,s){var l=n.$current,u=M(r,s,a,i),c=l&&l.locals[u];if(c){a.data("$uiView",{name:u,state:c.$$state}),a.html(c.$template?c.$template:o);var d=e(a.contents());if(c.$$controller){c.$scope=r,c.$element=a;var h=t(c.$$controller,c);c.$$controllerAs&&(r[c.$$controllerAs]=h),a.data("$ngControllerController",h),a.children().data("$ngControllerController",h)}d(r)}}}}}function M(e,t,n,i){var r=i(t.uiView||t.name||"")(e),o=n.inheritedData("$uiView");return r.indexOf("@")>=0?r:r+"@"+(o?o.state.name:"")}function k(e,t){var n,i=e.match(/^\s*({[^}]*})\s*$/);if(i&&(e=t+"("+i[1]+")"),!(n=e.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/))||4!==n.length)throw new Error("Invalid state ref '"+e+"'");return{state:n[1],paramExpr:n[3]||null}}function x(e){var t=e.parent().inheritedData("$uiView");return t&&t.state&&t.state.name?t.state:void 0}function S(e){var t="[object SVGAnimatedString]"===Object.prototype.toString.call(e.prop("href")),n="FORM"===e[0].nodeName;return{attr:n?"action":t?"xlink:href":"href",isAnchor:"A"===e.prop("tagName").toUpperCase(),clickable:!n}}function T(e,t,n,i,r){return function(o){var a=o.which||o.button,s=r();if(!(a>1||o.ctrlKey||o.metaKey||o.shiftKey||e.attr("target"))){var l=n((function(){t.go(s.state,s.params,s.options)}));o.preventDefault();var u=i.isAnchor&&!s.href?1:0;o.preventDefault=function(){u--<=0&&n.cancel(l)}}}}function $(e,n){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(i,r,o,a){var s=k(o.uiSref,e.current.name),l={state:s.state,href:null,params:null},u=S(r),c=a[1]||a[0];l.options=B(function(e,t){return{relative:x(e)||t.$current,inherit:!0}}(r,e),o.uiSrefOpts?i.$eval(o.uiSrefOpts):{});var d=function(n){n&&(l.params=t.copy(n)),l.href=e.href(s.state,l.params,l.options),c&&c.$$addStateInfo(s.state,l.params),null!==l.href&&o.$set(u.attr,l.href)};s.paramExpr&&(i.$watch(s.paramExpr,(function(e){e!==l.params&&d(e)}),!0),l.params=t.copy(i.$eval(s.paramExpr))),d(),u.clickable&&r.bind("click",T(r,e,n,u,(function(){return l})))}}}function D(e,t){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(n,i,r,o){function a(t){c.state=t[0],c.params=t[1],c.options=t[2],c.href=e.href(c.state,c.params,c.options),l&&l.$$addStateInfo(c.state,c.params),c.href&&r.$set(s.attr,c.href)}var s=S(i),l=o[1]||o[0],u="["+[r.uiState,r.uiStateParams||null,r.uiStateOpts||null].map((function(e){return e||"null"})).join(", ")+"]",c={state:null,params:null,options:null,href:null};n.$watch(u,a,!0),a(n.$eval(u)),s.clickable&&i.bind("click",T(i,e,t,s,(function(){return c})))}}}function C(e,t,n){return{restrict:"A",controller:["$scope","$element","$attrs","$timeout",function(t,i,r,o){function a(t,n,r){var o=e.get(t,x(i)),a=s(t,n);m.push({state:o||{name:t},params:n,hash:a}),g[a]=r}function s(e,n){if(!I(e))throw new Error("state should be a string");return j(n)?e+F(n):(n=t.$eval(n),j(n)?e+F(n):e)}function l(){for(var e=0;e<m.length;e++)d(m[e].state,m[e].params)?u(i,g[m[e].hash]):c(i,g[m[e].hash]),h(m[e].state,m[e].params)?u(i,f):c(i,f)}function u(e,t){o((function(){e.addClass(t)}))}function c(e,t){e.removeClass(t)}function d(t,n){return e.includes(t.name,n)}function h(t,n){return e.is(t.name,n)}var f,p,m=[],g={};f=n(r.uiSrefActiveEq||"",!1)(t);try{p=t.$eval(r.uiSrefActive)}catch(e){}p=p||n(r.uiSrefActive||"",!1)(t),j(p)&&N(p,(function(n,i){if(I(n)){var r=k(n,e.current.name);a(r.state,t.$eval(r.paramExpr),i)}})),this.$$addStateInfo=function(e,t){j(p)&&m.length>0||(a(e,t,p),l())},t.$on("$stateChangeSuccess",l),l()}]}}function E(e){var t=function(t,n){return e.is(t,n)};return t.$stateful=!0,t}function A(e){var t=function(t,n,i){return e.includes(t,n,i)};return t.$stateful=!0,t}var P,Y=t.isDefined,O=t.isFunction,I=t.isString,j=t.isObject,H=t.isArray,N=t.forEach,B=t.extend,R=t.copy,F=t.toJson;t.module("ui.router.util",["ng"]),t.module("ui.router.router",["ui.router.util"]),t.module("ui.router.state",["ui.router.router","ui.router.util"]),t.module("ui.router",["ui.router.state"]),t.module("ui.router.compat",["ui.router"]),p.$inject=["$q","$injector"],t.module("ui.router.util").service("$resolve",p),m.$inject=["$http","$templateCache","$injector"],t.module("ui.router.util").service("$templateFactory",m),g.prototype.concat=function(e,t){var n={caseInsensitive:P.caseInsensitive(),strict:P.strictMode(),squash:P.defaultSquashPolicy()};return new g(this.sourcePath+e+this.sourceSearch,B(n,t),this)},g.prototype.toString=function(){return this.source},g.prototype.exec=function(e,t){function n(e){function t(e){return e.split("").reverse().join("")}var n=f(t(e).split(/-(?!\\)/),t);return f(n,(function(e){return e.replace(/\\-/g,"-")})).reverse()}var i=this.regexp.exec(e);if(!i)return null;t=t||{};var r,o,a,s,l,u=this.parameters(),c=u.length,d=this.segments.length-1,h={};if(d!==i.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");for(r=0;d>r;r++){for(a=u[r],s=this.params[a],l=i[r+1],o=0;o<s.replace.length;o++)s.replace[o].from===l&&(l=s.replace[o].to);l&&!0===s.array&&(l=n(l)),Y(l)&&(l=s.type.decode(l)),h[a]=s.value(l)}for(;c>r;r++){for(h[a=u[r]]=this.params[a].value(t[a]),s=this.params[a],l=t[a],o=0;o<s.replace.length;o++)s.replace[o].from===l&&(l=s.replace[o].to);Y(l)&&(l=s.type.decode(l)),h[a]=s.value(l)}return h},g.prototype.parameters=function(e){return Y(e)?this.params[e]||null:this.$$paramNames},g.prototype.validates=function(e){return this.params.$$validates(e)},g.prototype.format=function(e){function t(e){return encodeURIComponent(e).replace(/-/g,(function(e){return"%5C%"+e.charCodeAt(0).toString(16).toUpperCase()}))}e=e||{};var n=this.segments,i=this.parameters(),r=this.params;if(!this.validates(e))return null;var o,a=!1,s=n.length-1,l=i.length,u=n[0];for(o=0;l>o;o++){var c=s>o,d=i[o],h=r[d],p=h.value(e[d]),m=h.isOptional&&h.type.equals(h.value(),p),g=!!m&&h.squash,v=h.type.encode(p);if(c){var _=n[o+1],y=o+1===s;if(!1===g)null!=v&&(u+=H(v)?f(v,t).join("-"):encodeURIComponent(v)),u+=_;else if(!0===g){var b=u.match(/\/$/)?/\/?(.*)/:/(.*)/;u+=_.match(b)[1]}else I(g)&&(u+=g+_);y&&!0===h.squash&&"/"===u.slice(-1)&&(u=u.slice(0,-1))}else{if(null==v||m&&!1!==g)continue;if(H(v)||(v=[v]),0===v.length)continue;u+=(a?"&":"?")+d+"="+(v=f(v,encodeURIComponent).join("&"+d+"=")),a=!0}}return u},v.prototype.is=function(e,t){return!0},v.prototype.encode=function(e,t){return e},v.prototype.decode=function(e,t){return e},v.prototype.equals=function(e,t){return e==t},v.prototype.$subPattern=function(){var e=this.pattern.toString();return e.substr(1,e.length-2)},v.prototype.pattern=/.*/,v.prototype.toString=function(){return"{Type:"+this.name+"}"},v.prototype.$normalize=function(e){return this.is(e)?e:this.decode(e)},v.prototype.$asArray=function(e,t){if(!e)return this;if("auto"===e&&!t)throw new Error("'auto' array mode is for query parameters only");return new function(e,t){function i(e,t){return function(){return e[t].apply(e,arguments)}}function r(e){return H(e)?e:Y(e)?[e]:[]}function o(e){switch(e.length){case 0:return n;case 1:return"auto"===t?e[0]:e;default:return e}}function a(e){return!e}function s(e,t){return function(n){if(H(n)&&0===n.length)return n;var i=f(n=r(n),e);return!0===t?0===h(i,a).length:o(i)}}this.encode=s(i(e,"encode")),this.decode=s(i(e,"decode")),this.is=s(i(e,"is"),!0),this.equals=function(e){return function(t,n){var i=r(t),o=r(n);if(i.length!==o.length)return!1;for(var a=0;a<i.length;a++)if(!e(i[a],o[a]))return!1;return!0}}(i(e,"equals")),this.pattern=e.pattern,this.$normalize=s(i(e,"$normalize")),this.name=e.name,this.$arrayMode=t}(this,e)},t.module("ui.router.util").provider("$urlMatcherFactory",(function e(){function r(e){return null!=e?e.toString().replace(/~/g,"~~").replace(/\//g,"~2F"):e}function s(e){return O(e)||H(e)&&O(e[e.length-1])}function l(){for(;b.length;){var e=b.shift();if(e.pattern)throw new Error("You cannot override a type's .pattern at runtime.");t.extend(_[e.name],c.invoke(e.def))}}function u(e){B(this,e||{})}P=this;var c,d=!1,p=!0,m=!1,_={},y=!0,b=[],w={string:{encode:r,decode:function(e){return null!=e?e.toString().replace(/~2F/g,"/").replace(/~~/g,"~"):e},is:function(e){return null==e||!Y(e)||"string"==typeof e},pattern:/[^\/]*/},int:{encode:r,decode:function(e){return parseInt(e,10)},is:function(e){return Y(e)&&this.decode(e.toString())===e},pattern:/\d+/},bool:{encode:function(e){return e?1:0},decode:function(e){return 0!==parseInt(e,10)},is:function(e){return!0===e||!1===e},pattern:/0|1/},date:{encode:function(e){return this.is(e)?[e.getFullYear(),("0"+(e.getMonth()+1)).slice(-2),("0"+e.getDate()).slice(-2)].join("-"):n},decode:function(e){if(this.is(e))return e;var t=this.capture.exec(e);return t?new Date(t[1],t[2]-1,t[3]):n},is:function(e){return e instanceof Date&&!isNaN(e.valueOf())},equals:function(e,t){return this.is(e)&&this.is(t)&&e.toISOString()===t.toISOString()},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:t.toJson,decode:t.fromJson,is:t.isObject,equals:t.equals,pattern:/[^\/]*/},any:{encode:t.identity,decode:t.identity,equals:t.equals,pattern:/.*/}};e.$$getDefaultValue=function(e){if(!s(e.value))return e.value;if(!c)throw new Error("Injectable functions cannot be called at configuration time");return c.invoke(e.value)},this.caseInsensitive=function(e){return Y(e)&&(d=e),d},this.strictMode=function(e){return Y(e)&&(p=e),p},this.defaultSquashPolicy=function(e){if(!Y(e))return m;if(!0!==e&&!1!==e&&!I(e))throw new Error("Invalid squash policy: "+e+". Valid policies: false, true, arbitrary-string");return m=e,e},this.compile=function(e,t){return new g(e,B({strict:p,caseInsensitive:d},t))},this.isMatcher=function(e){if(!j(e))return!1;var t=!0;return N(g.prototype,(function(n,i){O(n)&&(t=t&&Y(e[i])&&O(e[i]))})),t},this.type=function(e,t,n){if(!Y(t))return _[e];if(_.hasOwnProperty(e))throw new Error("A type named '"+e+"' has already been defined.");return _[e]=new v(B({name:e},t)),n&&(b.push({name:e,def:n}),y||l()),this},N(w,(function(e,t){_[t]=new v(B({name:t},e))})),_=i(_,{}),this.$get=["$injector",function(e){return c=e,y=!1,l(),N(w,(function(e,t){_[t]||(_[t]=new v(e))})),this}],this.Param=function(e,i,r,l){var u=this;r=function(e){var t=j(e)?o(e):[];return-1===a(t,"value")&&-1===a(t,"type")&&-1===a(t,"squash")&&-1===a(t,"array")&&(e={value:e}),e.$$fn=s(e.value)?e.value:function(){return e.value},e}(r),i=function(n,i,r){if(n.type&&i)throw new Error("Param '"+e+"' has two type configurations.");return i||(n.type?t.isString(n.type)?_[n.type]:n.type instanceof v?n.type:new v(n.type):"config"===r?_.any:_.string)}(r,i,l);var d=function(){var t={array:"search"===l&&"auto"},n=e.match(/\[\]$/)?{array:!0}:{};return B(t,n,r).array}();"string"!==(i=d?i.$asArray(d,"search"===l):i).name||d||"path"!==l||r.value!==n||(r.value="");var p=r.value!==n,g=function(e,t){var n=e.squash;if(!t||!1===n)return!1;if(!Y(n)||null==n)return m;if(!0===n||I(n))return n;throw new Error("Invalid squash policy: '"+n+"'. Valid policies: false, true, or arbitrary string")}(r,p),y=function(e,t,i,r){var o,s,l=[{from:"",to:i||t?n:""},{from:null,to:i||t?n:""}];return o=H(e.replace)?e.replace:[],I(r)&&o.push({from:r,to:n}),s=f(o,(function(e){return e.from})),h(l,(function(e){return-1===a(s,e.from)})).concat(o)}(r,d,p,g);B(this,{id:e,type:i,location:l,array:d,squash:g,replace:y,isOptional:p,value:function(e){return e=function(e){var t=f(h(u.replace,function(e){return function(t){return t.from===e}}(e)),(function(e){return e.to}));return t.length?t[0]:e}(e),Y(e)?u.type.$normalize(e):function(){if(!c)throw new Error("Injectable functions cannot be called at configuration time");var e=c.invoke(r.$$fn);if(null!==e&&e!==n&&!u.type.is(e))throw new Error("Default value ("+e+") for parameter '"+u.id+"' is not an instance of Type ("+u.type.name+")");return e}()},dynamic:n,config:r,toString:function(){return"{Param:"+e+" "+i+" squash: '"+g+"' optional: "+p+"}"}})},u.prototype={$$new:function(){return i(this,B(new u,{$$parent:this}))},$$keys:function(){for(var e=[],t=[],n=this,i=o(u.prototype);n;)t.push(n),n=n.$$parent;return t.reverse(),N(t,(function(t){N(o(t),(function(t){-1===a(e,t)&&-1===a(i,t)&&e.push(t)}))})),e},$$values:function(e){var t={},n=this;return N(n.$$keys(),(function(i){t[i]=n[i].value(e&&e[i])})),t},$$equals:function(e,t){var n=!0,i=this;return N(i.$$keys(),(function(r){var o=e&&e[r],a=t&&t[r];i[r].type.equals(o,a)||(n=!1)})),n},$$validates:function(e){var i,r,o,a,s,l=this.$$keys();for(i=0;i<l.length&&(r=this[l[i]],(o=e[l[i]])!==n&&null!==o||!r.isOptional);i++){if(a=r.type.$normalize(o),!r.type.is(a))return!1;if(s=r.type.encode(a),t.isString(s)&&!r.type.pattern.exec(s))return!1}return!0},$$parent:n},this.ParamSet=u})),t.module("ui.router.util").run(["$urlMatcherFactory",function(e){}]),_.$inject=["$locationProvider","$urlMatcherFactoryProvider"],t.module("ui.router.router").provider("$urlRouter",_),y.$inject=["$urlRouterProvider","$urlMatcherFactoryProvider"],t.module("ui.router.state").factory("$stateParams",(function(){return{}})).provider("$state",y),b.$inject=[],t.module("ui.router.state").provider("$view",b),t.module("ui.router.state").provider("$uiViewScroll",(function(){var e=!1;this.useAnchorScroll=function(){e=!0},this.$get=["$anchorScroll","$timeout",function(t,n){return e?t:function(e){return n((function(){e[0].scrollIntoView()}),0,!1)}}]}));var z=t.version.major,V=t.version.minor;w.$inject=["$state","$injector","$uiViewScroll","$interpolate"],L.$inject=["$compile","$controller","$state","$interpolate"],t.module("ui.router.state").directive("uiView",w),t.module("ui.router.state").directive("uiView",L),$.$inject=["$state","$timeout"],D.$inject=["$state","$timeout"],C.$inject=["$state","$stateParams","$interpolate"],t.module("ui.router.state").directive("uiSref",$).directive("uiSrefActive",C).directive("uiSrefActiveEq",C).directive("uiState",D),E.$inject=["$state"],A.$inject=["$state"],t.module("ui.router.state").filter("isState",E).filter("includedByState",A)}(window,window.angular),function(){function e(e,t,n,i,r,o){return{restrict:"A",priority:1e3,transclude:"element",$$tlb:!0,require:"^^$ionicScroll",link:function(i,a,l,u,c){function d(){Y.resizeRequiresRefresh(g.__clientWidth,g.__clientHeight)&&f()}function h(){return w||(w=new e({afterItemsNode:P[0],containerNode:_,heightData:x,widthData:S,forceRefreshImages:!(!s(l.forceRefreshImages)||"false"===l.forceRefreshImages),keyExpression:L,renderBuffer:C,scope:i,scrollView:u.scrollView,transclude:c}))}function f(){var e=$.length>0;if(e&&(x.computed||S.computed)&&function(){O||c(I=i.$new(),(function(e){e[0].removeAttribute("collection-repeat"),O=e[0]})),I[L]=(k(i)||[])[0],r.$$phase||I.$digest(),_.appendChild(O);var e=n.getComputedStyle(O);T.width=parseInt(e.width),T.height=parseInt(e.height),_.removeChild(O)}(),e&&x.computed){if(x.value=T.height,!x.value)throw new Error('collection-repeat tried to compute the height of repeated elements "'+y+'", but was unable to. Please provide the "item-height" attribute. http://ionicframework.com/docs/api/directive/collectionRepeat/')}else!x.dynamic&&x.getValue&&(x.value=x.getValue());if(e&&S.computed){if(S.value=T.width,!S.value)throw new Error('collection-repeat tried to compute the width of repeated elements "'+y+'", but was unable to. Please provide the "item-width" attribute. http://ionicframework.com/docs/api/directive/collectionRepeat/')}else!S.dynamic&&S.getValue&&(S.value=S.getValue());h().refreshLayout()}function p(e,n){if(e){var i;try{i=t(e)}catch(n){e.trim().match(/\d+(px|%)$/)&&(e='"'+e+'"'),i=t(e)}var r=e.replace(/(\'|\"|px|%)/g,"").trim(),o=r.length&&!/([a-zA-Z]|\$|:|\?)/.test(r);if(n.attrValue=e,o)if(e.indexOf("%")>-1){var a=parseFloat(i())/100;n.getValue=n===x?function(){return Math.floor(a*g.__clientHeight)}:function(){return Math.floor(a*g.__clientWidth)}}else n.value=parseInt(i());else n.dynamic=!0,n.getValue=n===x?function(e,t){var n=i(e,t);return n.charAt&&"%"===n.charAt(n.length-1)?Math.floor(parseFloat(n)/100*g.__clientHeight):parseInt(n)}:function(e,t){var n=i(e,t);return n.charAt&&"%"===n.charAt(n.length-1)?Math.floor(parseFloat(n)/100*g.__clientWidth):parseInt(n)}}}var g=u.scrollView,v=a[0],_=angular.element('<div class="collection-repeat-container">')[0];if(v.parentNode.replaceChild(_,v),g.options.scrollingX&&g.options.scrollingY)throw new Error("collection-repeat expected a parent x or y scrollView, not an xy scrollView.");var y=l.collectionRepeat,b=y.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!b)throw new Error("collection-repeat expected expression in form of '_item_ in _collection_[ track by _id_]' but got '"+l.collectionRepeat+"'.");var w,L=b[1],M=b[2],k=t(M),x={},S={},T={},$=[],D=l.itemRenderBuffer||l.collectionBufferSize,C=angular.isDefined(D)?parseInt(D):m,E=l.itemHeight||l.collectionItemHeight,A=l.itemWidth||l.collectionItemWidth,P=function(){var e=angular.element(g.__content.querySelector(".collection-repeat-after-container"));if(!e.length){var t=!1,n=[].filter.call(g.__content.childNodes,(function(e){return ionic.DomUtil.contains(e,_)?(t=!0,!1):t}));e=angular.element('<span class="collection-repeat-after-container">'),g.options.scrollingX&&e.addClass("horizontal"),e.append(n),g.__content.appendChild(e[0])}return e}(),Y=function(){var e;return e={dataLength:0,width:0,height:0,resizeRequiresRefresh:function(t,n){var i=e.dataLength&&t&&n&&(t!==e.width||n!==e.height);return e.width=t,e.height=n,!!i},dataChangeRequiresRefresh:function(t){var n=t.length>0||t.length<e.dataLength;return e.dataLength=t.length,!!n}}}();E?p(E,x):x.computed=!0,A?p(A,S):S.computed=!0,u.$element.on("scroll-resize",f),angular.element(n).on("resize",d);var O,I,j=r.$on("$ionicExposeAside",ionic.animationFrameThrottle((function(){u.scrollView.resize(),d()})));o(f,0,!1),i.$watchCollection(k,(function(e){if($=e||(e=[]),!angular.isArray(e))throw new Error("collection-repeat expected an array for '"+M+"', but got a "+typeof value);i.$$postDigest((function(){h().setData($),Y.dataChangeRequiresRefresh($)&&f()}))})),i.$on("$destroy",(function(){angular.element(n).off("resize",d),j(),u.$element&&u.$element.off("scroll-resize",f),O&&O.parentNode&&O.parentNode.removeChild(O),I&&I.$destroy(),I=O=null,w&&w.destroy(),w=null}))}}}function t(e,t,n){var i={primaryPos:0,secondaryPos:0,primarySize:0,secondarySize:0,rowPrimarySize:0};return function(r){function o(){return a(!0)}function a(t){if(!a.destroyed){var n,r,o,u,c,h=G.getScrollValue(),g=h+G.scrollPrimarySize;for(n in G.updateRenderRange(h,g),H=Math.max(0,H-y),N=Math.min(M.length-1,N+y),U)(H>n||n>N)&&(o=U[n],delete U[n],z.push(o),o.isShown=!1);for(n=H;N>=n;n++)n>=M.length||U[n]&&!t||(o=U[n]||(U[n]=z.length?z.pop():F.length?F.shift():new l),V.push(o),o.isShown=!0,(c=o.scope).$index=n,c[_]=M[n],c.$first=0===n,c.$last=n===M.length-1,c.$middle=!(c.$first||c.$last),c.$odd=!(c.$even=0==(1&n)),c.$$disconnected&&ionic.Utils.reconnectScope(o.scope),u=G.getDimensions(n),(o.secondaryPos!==u.secondaryPos||o.primaryPos!==u.primaryPos)&&(o.node.style[ionic.CSS.TRANSFORM]=Y.replace(A,o.primaryPos=u.primaryPos).replace(P,o.secondaryPos=u.secondaryPos)),(o.secondarySize!==u.secondarySize||o.primarySize!==u.primarySize)&&(o.node.style.cssText=o.node.style.cssText.replace(p,O.replace(A,(o.primarySize=u.primarySize)+1).replace(P,o.secondarySize=u.secondarySize))));for(N===M.length-1&&(u=G.getDimensions(M.length-1)||i,d.style[ionic.CSS.TRANSFORM]=Y.replace(A,u.primaryPos+u.primarySize).replace(P,0));z.length;)(o=z.pop()).scope.$broadcast("$collectionRepeatLeave"),ionic.Utils.disconnectScope(o.scope),F.push(o),o.node.style[ionic.CSS.TRANSFORM]="translate3d(-9999px,-9999px,0)",o.primaryPos=o.secondaryPos=null;if(m)for(n=0,r=V.length;r>n&&(o=V[n]);n++)if(o.images)for(var v,b=0,w=o.images.length;w>b&&(v=o.images[b]);b++){var L=v.src;v.src=f,v.src=L}if(t)for(var k=e.$$phase;V.length;)o=V.pop(),k||o.scope.$digest();else s()}}function s(){var t;s.running||(s.running=!0,n((function(){for(var n=e.$$phase;V.length;)(t=V.pop()).isShown&&(n||t.scope.$digest());s.running=!1})))}function l(){var e=this;this.scope=b.$new(),this.id="item"+W++,L(this.scope,(function(t){e.element=t,e.element.data("$$collectionRepeatItem",e),e.node=t[0],e.node.style[ionic.CSS.TRANSFORM]="translate3d(-9999px,-9999px,0)",e.node.style.cssText+=" height: 0px; width: 0px;",ionic.Utils.disconnectScope(e.scope),h.appendChild(e.node),e.images=t[0].getElementsByTagName("img")}))}var u,c,d=r.afterItemsNode,h=r.containerNode,m=r.forceRefreshImages,g=r.heightData,v=r.widthData,_=r.keyExpression,y=r.renderBuffer,b=r.scope,w=r.scrollView,L=r.transclude,M=[],k={},x=g.getValue||function(){return g.value},S=function(e,t){return k[_]=t,k.$index=e,x(b,k)},T=v.getValue||function(){return v.value},$=function(e,t){return k[_]=t,k.$index=e,T(b,k)},D=!!w.options.scrollingY,C=D?v.dynamic||v.value!==w.__clientWidth:g.dynamic||g.value!==w.__clientHeight,E=!g.dynamic&&!v.dynamic,A="PRIMARY",P="SECONDARY",Y=D?"translate3d(SECONDARYpx,PRIMARYpx,0)":"translate3d(PRIMARYpx,SECONDARYpx,0)",O=D?"height: PRIMARYpx; width: SECONDARYpx;":"height: SECONDARYpx; width: PRIMARYpx;",I=0,j=0,H=-1,N=-1,B=-1,R=-1,F=[],z=[],V=[],U={},W=0,q=D?function(){w.setDimensions(null,null,null,G.getContentSize(),!0)}:function(){w.setDimensions(null,null,G.getContentSize(),null,!0)},G=D?new function(){this.getItemPrimarySize=S,this.getItemSecondarySize=$,this.getScrollValue=function(){return Math.max(0,Math.min(w.__scrollTop-I,w.__maxScrollTop-I-j))},this.refreshDirection=function(){this.scrollPrimarySize=w.__clientHeight,this.scrollSecondarySize=w.__clientWidth,this.estimatedPrimarySize=u,this.estimatedSecondarySize=c,this.estimatedItemsAcross=C&&Math.floor(w.__clientWidth/c)||1}}:new function(){this.getItemPrimarySize=$,this.getItemSecondarySize=S,this.getScrollValue=function(){return Math.max(0,Math.min(w.__scrollLeft-I,w.__maxScrollLeft-I-j))},this.refreshDirection=function(){this.scrollPrimarySize=w.__clientWidth,this.scrollSecondarySize=w.__clientHeight,this.estimatedPrimarySize=c,this.estimatedSecondarySize=u,this.estimatedItemsAcross=C&&Math.floor(w.__clientHeight/u)||1}};(C?function(){this.getEstimatedSecondaryPos=function(e){return e%this.estimatedItemsAcross*this.estimatedSecondarySize},this.getEstimatedPrimaryPos=function(e){return Math.floor(e/this.estimatedItemsAcross)*this.estimatedPrimarySize},this.getEstimatedIndex=function(e){return Math.floor(e/this.estimatedPrimarySize)*this.estimatedItemsAcross}}:function(){this.getEstimatedSecondaryPos=function(){return 0},this.getEstimatedPrimaryPos=function(e){return e*this.estimatedPrimarySize},this.getEstimatedIndex=function(e){return Math.floor(e/this.estimatedPrimarySize)}}).call(G),(E?function(){this.getContentSize=function(){return this.getEstimatedPrimaryPos(M.length-1)+this.estimatedPrimarySize+I+j};var e={};this.getDimensions=function(t){return e.primaryPos=this.getEstimatedPrimaryPos(t),e.secondaryPos=this.getEstimatedSecondaryPos(t),e.primarySize=this.estimatedPrimarySize,e.secondarySize=this.estimatedSecondarySize,e},this.updateRenderRange=function(e,t){H=Math.max(0,this.getEstimatedIndex(e)),N=Math.min(M.length-1,this.getEstimatedIndex(t)+this.estimatedItemsAcross-1),R=Math.max(0,this.getEstimatedPrimaryPos(H)),B=this.getEstimatedPrimaryPos(N)+this.estimatedPrimarySize}}:function(){var e,t=this,n=ionic.debounce(q,25,!0),r=C?function(n){var r,a,s;for(r=Math.max(e,0);n>=r&&(s=o[r]);r++)a=o[r-1]||i,s.secondarySize=Math.min(t.getItemSecondarySize(r,M[r]),t.scrollSecondarySize),s.secondaryPos=a.secondaryPos+a.secondarySize,0===r||s.secondaryPos+s.secondarySize>t.scrollSecondarySize?(s.secondaryPos=0,s.primarySize=t.getItemPrimarySize(r,M[r]),s.primaryPos=a.primaryPos+a.rowPrimarySize,s.rowStartIndex=r,s.rowPrimarySize=s.primarySize):(s.primarySize=t.getItemPrimarySize(r,M[r]),s.primaryPos=a.primaryPos,s.rowStartIndex=a.rowStartIndex,o[s.rowStartIndex].rowPrimarySize=s.rowPrimarySize=Math.max(o[s.rowStartIndex].rowPrimarySize,s.primarySize),s.rowPrimarySize=Math.max(s.primarySize,s.rowPrimarySize))}:function(n){var r,a,s;for(r=Math.max(0,e);n>=r&&(s=o[r]);r++)a=o[r-1]||i,s.primarySize=t.getItemPrimarySize(r,M[r]),s.secondarySize=t.scrollSecondarySize,s.primaryPos=a.primaryPos+a.primarySize,s.secondaryPos=0},o=[];this.getContentSize=function(){var t=o[e]||i;return(t.primaryPos+t.primarySize||0)+this.getEstimatedPrimaryPos(M.length-e-1)+I+j},this.onDestroy=function(){o.length=0},this.onRefreshData=function(){var t,n;for(t=o.length,n=M.length;n>t;t++)o.push({});e=-1},this.onRefreshLayout=function(){e=-1},this.getDimensions=function(t){return(t=Math.min(t,M.length-1))>e&&(t>.9*M.length?(r(M.length-1),e=M.length-1,q()):(r(t),e=t,n())),o[t]};var a=-1,s=-1;this.updateRenderRange=function(e,t){var n,i,r,o;if(this.getDimensions(2*this.getEstimatedIndex(t)),-1===a||0===e)n=0;else if(e>=s)for(n=a,i=M.length;i>n&&!((r=this.getDimensions(n))&&r.primaryPos+r.rowPrimarySize>=e);n++);else for(n=a;n>=0;n--)if((r=this.getDimensions(n))&&r.primaryPos<=e){n=C?r.rowStartIndex:n;break}for(H=Math.min(Math.max(0,n),M.length-1),R=-1!==H?this.getDimensions(H).primaryPos:-1,n=H+1,i=M.length;i>n;n++)if((r=this.getDimensions(n))&&r.primaryPos+r.rowPrimarySize>t){if(C)for(o=r;i-1>n&&(r=this.getDimensions(n+1)).primaryPos===o.primaryPos;)n++;break}N=Math.min(n,M.length-1),B=-1!==N?(r=this.getDimensions(N)).primaryPos+(r.rowPrimarySize||r.primarySize):-1,s=e,a=H}}).call(G);var Z=D?"getContentHeight":"getContentWidth",J=w.options[Z];w.options[Z]=angular.bind(G,G.getContentSize),w.__$callback=w.__callback,w.__callback=function(e,t,n,i){var r=G.getScrollValue();(-1===H||r+G.scrollPrimarySize>B||R>r)&&a(),w.__$callback(e,t,n,i)};var X=!1,K=!1;this.refreshLayout=function(){M.length?(u=S(0,M[0]),c=$(0,M[0])):(u=100,c=100);var e=getComputedStyle(d)||{},n=d.firstElementChild&&getComputedStyle(d.firstElementChild)||{},i=d.lastElementChild&&getComputedStyle(d.lastElementChild)||{};j=(parseInt(e[D?"height":"width"])||0)+(n&&parseInt(n[D?"marginTop":"marginLeft"])||0)+(i&&parseInt(i[D?"marginBottom":"marginRight"])||0),I=0;var r=h;do{I+=r[D?"offsetTop":"offsetLeft"]}while(ionic.DomUtil.contains(w.__content,r=r.offsetParent));var a=h.previousElementSibling,s=a?t.getComputedStyle(a):{},f=parseInt(s[D?"marginBottom":"marginRight"]||0);if(h.style[ionic.CSS.TRANSFORM]=Y.replace(A,-f).replace(P,0),I-=f,w.__clientHeight&&w.__clientWidth||(w.__clientWidth=w.__container.clientWidth,w.__clientHeight=w.__container.clientHeight),(G.onRefreshLayout||angular.noop)(),G.refreshDirection(),q(),!X)for(var p=Math.max(20,3*y),m=0;p>m;m++)F.push(new l);(X=!0)&&K&&((w.__scrollLeft>w.__maxScrollLeft||w.__scrollTop>w.__maxScrollTop)&&w.resize(),o())},this.setData=function(e){M=e,(G.onRefreshData||angular.noop)(),K=!0},this.destroy=function(){a.destroyed=!0,F.forEach((function(e){e.scope.$destroy(),e.scope=e.element=e.node=e.images=null})),F.length=V.length=z.length=0,U={},w.options[Z]=J,w.__callback=w.__$callback,w.resize(),(G.onDestroy||angular.noop)()}}}function n(e){return["$document","$timeout",function(t,n){return{restrict:"E",controller:"$ionicHeaderBar",compile:function(i){return i.addClass(e?"bar bar-header":"bar bar-footer"),n((function(){e&&t[0].getElementsByClassName("tabs-top").length&&i.addClass("has-tabs-top")})),{pre:function(t,n,i,r){e?(t.$watch((function(){return n[0].className}),(function(e){var n=-1===e.indexOf("ng-hide"),i=-1!==e.indexOf("bar-subheader");t.$hasHeader=n&&!i,t.$hasSubheader=n&&i,t.$emit("$ionicSubheader",t.$hasSubheader)})),t.$on("$destroy",(function(){delete t.$hasHeader,delete t.$hasSubheader})),r.align(),t.$on("$ionicHeader.align",(function(){ionic.requestAnimationFrame((function(){r.align()}))}))):(t.$watch((function(){return n[0].className}),(function(e){var n=-1===e.indexOf("ng-hide"),i=-1!==e.indexOf("bar-subfooter");t.$hasFooter=n&&!i,t.$hasSubfooter=n&&i})),t.$on("$destroy",(function(){delete t.$hasFooter,delete t.$hasSubfooter})),t.$watch("$hasTabs",(function(e){n.toggleClass("has-tabs",!!e)})),r.align(),t.$on("$ionicFooter.align",(function(){ionic.requestAnimationFrame((function(){r.align()}))})))}}}}}]}function i(e){e.stopPropagation()}var r=angular.module("ionic",["ngAnimate","ngSanitize","ui.router","ngIOS9UIWebViewPatch"]),o=angular.extend,a=angular.forEach,s=angular.isDefined,l=angular.isNumber,u=angular.isString,c=angular.element,d=angular.noop;r.factory("$ionicActionSheet",["$rootScope","$compile","$animate","$timeout","$ionicTemplateLoader","$ionicPlatform","$ionicBody","IONIC_BACK_PRIORITY",function(e,t,n,i,r,a,s,l){return{show:function(r){function u(e){e&&/icon/.test(e)&&(h.$actionSheetHasIcon=!0)}var h=e.$new(!0);o(h,{cancel:d,destructiveButtonClicked:d,buttonClicked:d,$deregisterBackButton:d,buttons:[],cancelOnStateChange:!0},r||{});for(var f=0;f<h.buttons.length;f++)u(h.buttons[f].text);u(h.cancelText),u(h.destructiveText);var p=h.element=t('<ion-action-sheet ng-class="cssClass" buttons="buttons"></ion-action-sheet>')(h),m=c(p[0].querySelector(".action-sheet-wrapper")),g=h.cancelOnStateChange?e.$on("$stateChangeSuccess",(function(){h.cancel()})):d;return h.removeSheet=function(e){h.removed||(h.removed=!0,m.removeClass("action-sheet-up"),i((function(){s.removeClass("action-sheet-open")}),400),h.$deregisterBackButton(),g(),n.removeClass(p,"active").then((function(){h.$destroy(),p.remove(),h.cancel.$scope=m=null,(e||d)(r.buttons)})))},h.showSheet=function(e){h.removed||(s.append(p).addClass("action-sheet-open"),n.addClass(p,"active").then((function(){h.removed||(e||d)()})),i((function(){h.removed||m.addClass("action-sheet-up")}),20,!1))},h.$deregisterBackButton=a.registerBackButtonAction((function(){i(h.cancel)}),l.actionSheet),h.cancel=function(){h.removeSheet(r.cancel)},h.buttonClicked=function(e){!0===r.buttonClicked(e,r.buttons[e])&&h.removeSheet()},h.destructiveButtonClicked=function(){!0===r.destructiveButtonClicked()&&h.removeSheet()},h.showSheet(),h.cancel.$scope=h,h.cancel}}}]),c.prototype.addClass=function(e){var t,n,i,r,o,a;if(e&&"ng-scope"!=e&&"ng-isolate-scope"!=e)for(t=0;t<this.length;t++)if((r=this[t]).setAttribute)if(e.indexOf(" ")<0&&r.classList.add)r.classList.add(e);else{for(a=(" "+(r.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),o=e.split(" "),n=0;n<o.length;n++)i=o[n].trim(),-1===a.indexOf(" "+i+" ")&&(a+=i+" ");r.setAttribute("class",a.trim())}return this},c.prototype.removeClass=function(e){var t,n,i,r,o;if(e)for(t=0;t<this.length;t++)if((o=this[t]).getAttribute)if(e.indexOf(" ")<0&&o.classList.remove)o.classList.remove(e);else for(i=e.split(" "),n=0;n<i.length;n++)r=i[n],o.setAttribute("class",(" "+(o.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+r.trim()+" "," ").trim());return this},r.factory("$ionicBackdrop",["$document","$timeout","$$rAF","$rootScope",function(e,t,n,i){var r=c('<div class="backdrop">'),o=0;return e[0].body.appendChild(r[0]),{retain:function(){1==++o&&(r.addClass("visible"),i.$broadcast("backdrop.shown"),n((function(){o>=1&&r.addClass("active")})))},release:function(){1===o&&(r.removeClass("active"),i.$broadcast("backdrop.hidden"),t((function(){0===o&&r.removeClass("visible")}),400,!1)),o=Math.max(0,o-1)},getElement:function(){return r},_element:r}}]),r.factory("$ionicBind",["$parse","$interpolate",function(e,t){var n=/^\s*([@=&])(\??)\s*(\w*)\s*$/;return function(i,r,o){a(o||{},(function(o,a){var s,l,u=o.match(n)||[],c=u[3]||a;switch(u[1]){case"@":if(!r[c])return;r.$observe(c,(function(e){i[a]=e})),r[c]&&(i[a]=t(r[c])(i));break;case"=":if(!r[c])return;l=i.$watch(r[c],(function(e){i[a]=e})),i.$on("$destroy",l);break;case"&":if(r[c]&&r[c].match(RegExp(a+"(.*?)")))throw new Error('& expression binding "'+a+'" looks like it will recursively call "'+r[c]+'" and cause a stack overflow! Please choose a different scopeName.');s=e(r[c]),i[a]=function(e){return s(i,e)}}}))}}]),r.factory("$ionicBody",["$document",function(e){return{addClass:function(){for(var t=0;t<arguments.length;t++)e[0].body.classList.add(arguments[t]);return this},removeClass:function(){for(var t=0;t<arguments.length;t++)e[0].body.classList.remove(arguments[t]);return this},enableClass:function(e){var t=Array.prototype.slice.call(arguments).slice(1);return e?this.addClass.apply(this,t):this.removeClass.apply(this,t),this},append:function(t){return e[0].body.appendChild(t.length?t[0]:t),this},get:function(){return e[0].body}}}]),r.factory("$ionicClickBlock",["$document","$ionicBody","$timeout",function(e,t,n){function i(e){e.preventDefault(),e.stopPropagation()}function r(){s&&(o?o.classList.remove(l):((o=e[0].createElement("div")).className="click-block",t.append(o),o.addEventListener("touchstart",i),o.addEventListener("mousedown",i)),s=!1)}var o,a,s,l="click-block-hide";return{show:function(e){s=!0,n.cancel(a),a=n(this.hide,e||310,!1),r()},hide:function(){s=!1,n.cancel(a),o&&o.classList.add(l)}}}]),r.factory("$ionicGesture",[function(){return{on:function(e,t,n,i){return window.ionic.onGesture(e,t,n[0],i)},off:function(e,t,n){return window.ionic.offGesture(e,t,n)}}}]),r.factory("$ionicHistory",["$rootScope","$state","$location","$window","$timeout","$ionicViewSwitcher","$ionicNavViewDelegate",function(e,t,n,i,r,a,l){function u(e){return e?E.views[e]:null}function c(e){return e?u(e.backViewId):null}function d(e){return e?E.histories[e]:null}function h(t){for(var n=t;n;){if(n.hasOwnProperty("$historyId"))return{historyId:n.$historyId,scope:n};n=n.$parent}return{historyId:"root",scope:e}}function f(e){E.currentView=u(e),E.backView=c(E.currentView),E.forwardView=function(e){return e?u(e.forwardViewId):null}(E.currentView)}function p(){var e;if(t&&t.current&&t.current.name){if(e=t.current.name,t.params)for(var n in t.params)t.params.hasOwnProperty(n)&&t.params[n]&&(e+="_"+n+"="+t.params[n]);return e}return ionic.Utils.nextUid()}function m(){var e;if(t&&t.params)for(var n in t.params)t.params.hasOwnProperty(n)&&((e=e||{})[n]=t.params[n]);return e}function g(e){return e&&e.length&&/ion-side-menus|ion-tabs/i.test(e[0].tagName)}function v(e,t){if(t&&t.$$state&&!1===t.$$state.self.canSwipeBack)return!1;if(e&&"false"===e.attr("can-swipe-back"))return!1;var n=e.find("ion-view");return!n||"false"!==n.attr("can-swipe-back")}var _,y,b,w,L,M="moveBack",k="back",x="forward",S="enter",T="exit",$="swap",D="none",C=0,E={histories:{root:{historyId:"root",parentHistoryId:null,stack:[],cursor:-1}},views:{},backView:null,forwardView:null,currentView:null},A=function(){};return A.prototype.initialize=function(e){if(e){for(var t in e)this[t]=e[t];return this}return null},A.prototype.go=function(){if(this.stateName)return t.go(this.stateName,this.stateParams);if(this.url&&this.url!==n.url()){if(E.backView===this)return i.history.go(-1);if(E.forwardView===this)return i.history.go(1);n.url(this.url)}return null},A.prototype.destroy=function(){this.scope&&(this.scope.$destroy&&this.scope.$destroy(),this.scope=null)},{register:function(e,t){var i,o,s,l=p(),g=function(e){var t=h(e);return E.histories[t.historyId]||(E.histories[t.historyId]={historyId:t.historyId,parentHistoryId:h(t.scope.$parent).historyId,stack:[],cursor:-1}),d(t.historyId)}(e),A=E.currentView,P=E.backView,Y=E.forwardView,O=null,I=null,j=D,H=g.historyId,N=n.url();if(_!==l&&(_=l,C++),L)O=L.viewId,I=L.action,j=L.direction,L=null;else if(P&&P.stateId===l)O=P.viewId,H=P.historyId,I=M,P.historyId===A.historyId?j=k:A&&(j=T,(i=d(P.historyId))&&i.parentHistoryId===A.historyId?j=S:(i=d(A.historyId))&&i.parentHistoryId===g.parentHistoryId&&(j=$));else if(Y&&Y.stateId===l)O=Y.viewId,H=Y.historyId,I="moveForward",Y.historyId===A.historyId?j=x:A&&(j=T,A.historyId===g.parentHistoryId?j=S:(i=d(A.historyId))&&i.parentHistoryId===g.parentHistoryId&&(j=$)),i=h(e),Y.historyId&&i.scope&&(i.scope.$historyId=Y.historyId,H=Y.historyId);else if(A&&A.historyId!==H&&g.cursor>-1&&g.stack.length>0&&g.cursor<g.stack.length&&g.stack[g.cursor].stateId===l){var B=g.stack[g.cursor];O=B.viewId,H=B.historyId,I=M,j=$,(i=d(A.historyId))&&i.parentHistoryId===H?j=T:(i=d(H))&&i.parentHistoryId===A.historyId&&(j=S),(i=u(B.backViewId))&&B.historyId!==i.historyId&&(Object.keys(E.views).forEach((function(e){var t=E.views[e];t.backViewId===B.viewId&&t.historyId!==B.historyId&&(t.backViewId=null)})),g.stack[g.cursor].backViewId=A.viewId)}else{if(s=a.createViewEle(t),this.isAbstractEle(s,t))return{action:"abstractView",direction:D,ele:s};if(O=ionic.Utils.nextUid(),A){if(A.forwardViewId=O,I="newView",Y&&A.stateId!==Y.stateId&&A.historyId===Y.historyId&&(i=d(Y.historyId))){for(o=i.stack.length-1;o>=Y.index;o--){var R=i.stack[o];R&&R.destroy&&R.destroy(),i.stack.splice(o)}H=Y.historyId}g.historyId===A.historyId?j=x:A.historyId!==g.historyId&&(j=S,(i=d(A.historyId))&&i.parentHistoryId===g.parentHistoryId?j=$:(i=d(i.parentHistoryId))&&i.historyId===g.historyId&&(j=T))}else I="initialView";2>C&&(j=D),E.views[O]=this.createView({viewId:O,index:g.stack.length,historyId:g.historyId,backViewId:A&&A.viewId?A.viewId:null,forwardViewId:null,stateId:l,stateName:this.currentStateName(),stateParams:m(),url:N,canSwipeBack:v(s,t)}),g.stack.push(E.views[O])}if(b&&b(),r.cancel(w),y){if(y.disableAnimate&&(j=D),y.disableBack&&(E.views[O].backViewId=null),y.historyRoot){for(o=0;o<g.stack.length;o++)g.stack[o].viewId===O?(g.stack[o].index=0,g.stack[o].backViewId=g.stack[o].forwardViewId=null):delete E.views[g.stack[o].viewId];g.stack=[E.views[O]]}y=null}if(f(O),E.backView&&H==E.backView.historyId&&l==E.backView.stateId&&N==E.backView.url)for(o=0;o<g.stack.length;o++)if(g.stack[o].viewId==O){I="dupNav",j=D,o>0&&(g.stack[o-1].forwardViewId=null),E.forwardView=null,E.currentView.index=E.backView.index,E.currentView.backViewId=E.backView.backViewId,E.backView=c(E.backView),g.stack.splice(o,1);break}return g.cursor=E.currentView.index,{viewId:O,action:I,direction:j,historyId:H,enableBack:this.enabledBack(E.currentView),isHistoryRoot:0===E.currentView.index,ele:s}},registerHistory:function(e){e.$historyId=ionic.Utils.nextUid()},createView:function(e){return(new A).initialize(e)},getViewById:u,viewHistory:function(){return E},currentView:function(e){return arguments.length&&(E.currentView=e),E.currentView},currentHistoryId:function(){return E.currentView?E.currentView.historyId:null},currentTitle:function(e){return E.currentView?(arguments.length&&(E.currentView.title=e),E.currentView.title):void 0},backView:function(e){return arguments.length&&(E.backView=e),E.backView},backTitle:function(e){var t=e&&u(e.backViewId)||E.backView;return t&&t.title},forwardView:function(e){return arguments.length&&(E.forwardView=e),E.forwardView},currentStateName:function(){return t&&t.current?t.current.name:null},isCurrentStateNavView:function(e){return!!(t&&t.current&&t.current.views&&t.current.views[e])},goToHistoryRoot:function(e){if(e){var t=d(e);if(t&&t.stack.length){if(E.currentView&&E.currentView.viewId===t.stack[0].viewId)return;L={viewId:t.stack[0].viewId,action:M,direction:k},t.stack[0].go()}}},goBack:function(e){if(s(e)&&-1!==e){if(e>-1)return;var t=E.histories[this.currentHistoryId()],n=t.cursor+e+1;1>n&&(n=1),t.cursor=n,f(t.stack[n].viewId);for(var i=n-1,o=[],a=u(t.stack[i].forwardViewId);a&&(o.push(a.stateId||a.viewId),!(++i>=t.stack.length));)a=u(t.stack[i].forwardViewId);var l=this;o.length&&r((function(){l.clearCache(o)}),300)}E.backView&&E.backView.go()},removeBackView:function(){var e=E.histories[this.currentHistoryId()],t=e.cursor,n=e.stack[t],i=e.stack[t-1],r=e.stack[t-2];i&&r&&(e.stack.splice(t-1,1),this.clearCache([i.viewId]),n.backViewId=r.viewId,n.index=n.index-1,r.forwardViewId=n.viewId,E.backView=r,e.currentCursor+=-1)},enabledBack:function(e){var t=c(e);return!(!t||t.historyId!==e.historyId)},clearHistory:function(){var e=E.histories,t=E.currentView;if(e)for(var n in e)e[n].stack&&(e[n].stack=[],e[n].cursor=-1),t&&t.historyId===n?(t.backViewId=t.forwardViewId=null,e[n].stack.push(t)):e[n].destroy&&e[n].destroy();for(var i in E.views)i!==t.viewId&&delete E.views[i];t&&f(t.viewId)},clearCache:function(e){return r((function(){l._instances.forEach((function(t){t.clearCache(e)}))}))},nextViewOptions:function(t){return b&&b(),arguments.length&&(r.cancel(w),null===t?y=t:(o(y=y||{},t),y.expire&&(b=e.$on("$stateChangeSuccess",(function(){w=r((function(){y=null}),y.expire)}))))),y},isAbstractEle:function(e,t){return!!(t&&t.$$state&&t.$$state.self.abstract)||!(!e||!g(e)&&!g(e.children()))},isActiveScope:function(e){if(!e)return!1;for(var t,n=e,i=this.currentHistoryId();n;){if(n.$$disconnected)return!1;if(!t&&n.hasOwnProperty("$historyId")&&(t=!0),i){if(n.hasOwnProperty("$historyId")&&i==n.$historyId)return!0;if(n.hasOwnProperty("$activeHistoryId")&&i==n.$activeHistoryId){if(n.hasOwnProperty("$historyId"))return!0;if(!t)return!0}}t&&n.hasOwnProperty("$activeHistoryId")&&(t=!1),n=n.$parent}return!i||"root"==i}}}]).run(["$rootScope","$state","$location","$document","$ionicPlatform","$ionicHistory","IONIC_BACK_PRIORITY",function(e,t,n,i,r,o,a){e.$on("$ionicView.beforeEnter",(function(){ionic.keyboard&&ionic.keyboard.hide&&ionic.keyboard.hide()})),e.$on("$ionicHistory.change",(function(e,i){if(!i)return null;var r=o.viewHistory(),a=i.historyId?r.histories[i.historyId]:null;if(a&&a.cursor>-1&&a.cursor<a.stack.length)return a.stack[a.cursor].go(i);!i.url&&i.uiSref&&(i.url=t.href(i.uiSref)),i.url&&(0===i.url.indexOf("#")&&(i.url=i.url.replace("#","")),i.url!==n.url()&&n.url(i.url))})),e.$ionicGoBack=function(e){o.goBack(e)},e.$on("$ionicView.afterEnter",(function(e,t){t&&t.title&&(i[0].title=t.title)})),r.registerBackButtonAction((function(e){var t=o.backView();return t?t.go():ionic.Platform.exitApp(),e.preventDefault(),!1}),a.view)}]),r.provider("$ionicConfig",(function(){function e(e,n){o.platform[e]=n,i.platform[e]={},function e(t,n){for(var i in t)i!=r&&t.hasOwnProperty(i)&&(angular.isObject(t[i])?(s(n[i])||(n[i]={}),e(t[i],n[i])):s(n[i])||(n[i]=null))}(o,o.platform[e]),t(o.platform[e],i.platform[e],"")}function t(e,i,s){a(e,(function(a,l){angular.isObject(e[l])?(i[l]={},t(e[l],i[l],s+"."+l)):i[l]=function(t){if(arguments.length)return e[l]=t,i;if(e[l]==r){var a=n(o.platform,ionic.Platform.platform()+s+"."+l);return a||!1===a?a:n(o.platform,"default"+s+"."+l)}return e[l]}}))}function n(e,t){t=t.split(".");for(var n=0;n<t.length;n++){if(!e||!s(e[t[n]]))return null;e=e[t[n]]}return e}var i=this;i.platform={};var r="platform",o={views:{maxCache:r,forwardCache:r,transition:r,swipeBackEnabled:r,swipeBackHitWidth:r},navBar:{alignTitle:r,positionPrimaryButtons:r,positionSecondaryButtons:r,transition:r},backButton:{icon:r,text:r,previousTitleText:r},form:{checkbox:r,toggle:r},scrolling:{jsScrolling:r},spinner:{icon:r},tabs:{style:r,position:r},templates:{maxPrefetch:r},platform:{}};t(o,i,""),e("default",{views:{maxCache:10,forwardCache:!1,transition:"ios",swipeBackEnabled:!0,swipeBackHitWidth:45},navBar:{alignTitle:"center",positionPrimaryButtons:"left",positionSecondaryButtons:"right",transition:"view"},backButton:{icon:"ion-ios-arrow-back",text:"Back",previousTitleText:!0},form:{checkbox:"circle",toggle:"large"},scrolling:{jsScrolling:!0},spinner:{icon:"ios"},tabs:{style:"standard",position:"bottom"},templates:{maxPrefetch:30}}),e("ios",{}),e("android",{views:{transition:"android",swipeBackEnabled:!1},navBar:{alignTitle:"left",positionPrimaryButtons:"right",positionSecondaryButtons:"right"},backButton:{icon:"ion-android-arrow-back",text:!1,previousTitleText:!1},form:{checkbox:"square",toggle:"small"},spinner:{icon:"android"},tabs:{style:"striped",position:"top"},scrolling:{jsScrolling:!1}}),e("windowsphone",{spinner:{icon:"android"}}),i.transitions={views:{},navBar:{}},i.transitions.views.ios=function(e,t,n,i){function r(e,t,n,i){var r={};r[ionic.CSS.TRANSITION_DURATION]=o.shouldAnimate?"":0,r.opacity=t,i>-1&&(r.boxShadow="0 0 10px rgba(0,0,0,"+(o.shouldAnimate?.45*i:.3)+")"),r[ionic.CSS.TRANSFORM]="translate3d("+n+"%,0,0)",ionic.DomUtil.cachedStyles(e,r)}var o={run:function(i){"forward"==n?(r(e,1,99*(1-i),1-i),r(t,1-.1*i,-33*i,-1)):"back"==n?(r(e,1-.1*(1-i),-33*(1-i),-1),r(t,1,100*i,1-i)):(r(e,1,0,-1),r(t,0,0,-1))},shouldAnimate:i&&("forward"==n||"back"==n)};return o},i.transitions.navBar.ios=function(e,t,n,i){function r(e,t,n,i){var r={};r[ionic.CSS.TRANSITION_DURATION]=s.shouldAnimate?"":"0ms",r.opacity=1===t?"":t,e.setCss("buttons-left",r),e.setCss("buttons-right",r),e.setCss("back-button",r),r[ionic.CSS.TRANSFORM]="translate3d("+i+"px,0,0)",e.setCss("back-text",r),r[ionic.CSS.TRANSFORM]="translate3d("+n+"px,0,0)",e.setCss("title",r)}function o(e,t,n){if(e&&t){var i=(e.titleTextX()+e.titleWidth())*(1-n),o=t&&(t.titleTextX()-e.backButtonTextLeft())*(1-n)||0;r(e,n,i,o)}}function a(e,t,n){if(e&&t){var i=(-(e.titleTextX()-t.backButtonTextLeft())-e.titleLeftRight())*n;r(e,1-n,i,0)}}var s={run:function(n){var i=e.controller(),r=t&&t.controller();"back"==s.direction?(a(i,r,1-n),o(r,i,1-n)):(o(i,r,n),a(r,i,n))},direction:n,shouldAnimate:i&&("forward"==n||"back"==n)};return s},i.transitions.views.android=function(e,t,n,i){function r(e,t,n){var i={};i[ionic.CSS.TRANSITION_DURATION]=o.shouldAnimate?"":0,i[ionic.CSS.TRANSFORM]="translate3d("+t+"%,0,0)",i.opacity=n,ionic.DomUtil.cachedStyles(e,i)}var o={run:function(i){"forward"==n?(r(e,99*(1-i),1),r(t,-100*i,1)):"back"==n?(r(e,-100*(1-i),1),r(t,100*i,1)):(r(e,0,1),r(t,0,0))},shouldAnimate:i=i&&("forward"==n||"back"==n)};return o},i.transitions.navBar.android=function(e,t,n,i){function r(e,t){if(e){var n={};n.opacity=1===t?"":t,e.setCss("buttons-left",n),e.setCss("buttons-right",n),e.setCss("back-button",n),e.setCss("back-text",n),e.setCss("title",n)}}return{run:function(n){r(e.controller(),n),r(t&&t.controller(),1-n)},shouldAnimate:i&&("forward"==n||"back"==n)}},i.transitions.views.none=function(e,t){return{run:function(n){i.transitions.views.android(e,t,!1,!1).run(n)},shouldAnimate:!1}},i.transitions.navBar.none=function(e,t){return{run:function(n){i.transitions.navBar.ios(e,t,!1,!1).run(n),i.transitions.navBar.android(e,t,!1,!1).run(n)},shouldAnimate:!1}},i.setPlatformConfig=e,i.$get=function(){return i}})).config(["$compileProvider",function(e){e.aHrefSanitizationWhitelist(/^\s*(https?|sms|tel|geo|ftp|mailto|file|ghttps?|ms-appx-web|ms-appx|x-wmapp0):/),e.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|content|blob|ms-appx|ms-appx-web|x-wmapp0):|data:image\//)}]);var h='<div class="loading-container"><div class="loading"></div></div>';r.constant("$ionicLoadingConfig",{template:"<ion-spinner></ion-spinner>"}).factory("$ionicLoading",["$ionicLoadingConfig","$ionicBody","$ionicTemplateLoader","$ionicBackdrop","$timeout","$q","$log","$compile","$ionicPlatform","$rootScope","IONIC_BACK_PRIORITY",function(e,t,n,i,r,a,s,l,u,c,f){function p(){return g||(g=n.compile({template:h,appendTo:t.get()}).then((function(e){return e.show=function(o){var s=o.templateUrl?n.load(o.templateUrl):a.when(o.template||o.content||"");e.scope=o.scope||e.scope,e.isShown||(e.hasBackdrop=!o.noBackdrop&&!1!==o.showBackdrop,e.hasBackdrop&&(i.retain(),i.getElement().addClass("backdrop-loading"))),o.duration&&(r.cancel(e.durationTimeout),e.durationTimeout=r(angular.bind(e,e.hide),+o.duration)),v(),v=u.registerBackButtonAction(d,f.loading),s.then((function(n){if(n){var i=e.element.children();i.html(n),l(i.contents())(e.scope)}e.isShown&&(e.element.addClass("visible"),ionic.requestAnimationFrame((function(){e.isShown&&(e.element.addClass("active"),t.addClass("loading-active"))})))})),e.isShown=!0},e.hide=function(){v(),e.isShown&&(e.hasBackdrop&&(i.release(),i.getElement().removeClass("backdrop-loading")),e.element.removeClass("active"),t.removeClass("loading-active"),e.element.removeClass("visible"),ionic.requestAnimationFrame((function(){!e.isShown&&e.element.removeClass("visible")}))),r.cancel(e.durationTimeout),e.isShown=!1,e.element.children().html("")},e}))),g}function m(){return _(),y(),r.cancel(b),p().then((function(e){return e.hide()}))}var g,v=d,_=d,y=d,b=a.when();return{show:function(t){var n=(t=o({},e||{},t||{})).delay||t.showDelay||0;return _(),y(),t.hideOnStateChange&&(_=c.$on("$stateChangeSuccess",m),y=c.$on("$stateChangeError",m)),r.cancel(b),(b=r(d,n)).then(p).then((function(e){return e.show(t)}))},hide:m,_getLoader:p}}]),r.factory("$ionicModal",["$rootScope","$ionicBody","$compile","$timeout","$ionicPlatform","$ionicTemplateLoader","$$q","$log","$ionicClickBlock","$window","IONIC_BACK_PRIORITY",function(e,t,n,i,r,a,s,l,u,h,f){var p=ionic.views.Modal.inherit({initialize:function(e){ionic.views.Modal.prototype.initialize.call(this,e),this.animation=e.animation||"slide-in-up"},show:function(e){var n=this;if(n.scope.$$destroyed)return l.error("Cannot call "+n.viewType+".show() after remove(). Please create a new "+n.viewType+" instance."),s.when();u.show(600),v.add(n);var o=c(n.modalEl);n.el.classList.remove("hide"),i((function(){n._isShown&&t.addClass(n.viewType+"-open")}),400,!1),n.el.parentElement||(o.addClass(n.animation),t.append(n.el));var a=o.data("$$ionicScrollController");return a&&a.resize(),e&&n.positionView&&(n.positionView(e,o),n._onWindowResize=function(){n._isShown&&n.positionView(e,o)},ionic.on("resize",n._onWindowResize,window)),o.addClass("ng-enter active").removeClass("ng-leave ng-leave-active"),n._isShown=!0,n._deregisterBackButton=r.registerBackButtonAction(n.hardwareBackButtonClose?angular.bind(n,n.hide):d,f.modal),ionic.views.Modal.prototype.show.call(n),i((function(){n._isShown&&(o.addClass("ng-enter-active"),ionic.trigger("resize"),n.scope.$parent&&n.scope.$parent.$broadcast(n.viewType+".shown",n),n.el.classList.add("active"),n.scope.$broadcast("$ionicHeader.align"),n.scope.$broadcast("$ionicFooter.align"),n.scope.$broadcast("$ionic.modalPresented"))}),20),i((function(){n._isShown&&(n.$el.on("touchmove",(function(e){ionic.DomUtil.getParentOrSelfWithClass(e.target,"scroll")||e.preventDefault()})),n.$el.on("click",(function(e){n.backdropClickToClose&&e.target===n.el&&v.isHighest(n)&&n.hide()})))}),400)},hide:function(){var e=this,n=c(e.modalEl);return u.show(600),v.remove(e),e.el.classList.remove("active"),n.addClass("ng-leave"),i((function(){e._isShown||(n.addClass("ng-leave-active").removeClass("ng-enter ng-enter-active active"),e.scope.$broadcast("$ionic.modalRemoved"))}),20,!1),e.$el.off("click"),e._isShown=!1,e.scope.$parent&&e.scope.$parent.$broadcast(e.viewType+".hidden",e),e._deregisterBackButton&&e._deregisterBackButton(),ionic.views.Modal.prototype.hide.call(e),e.positionView&&ionic.off("resize",e._onWindowResize,window),i((function(){g.length||t.removeClass(e.viewType+"-open"),e.el.classList.add("hide")}),e.hideDelay||320)},remove:function(){var e,t,n=this;return n.scope.$parent&&n.scope.$parent.$broadcast(n.viewType+".removed",n),n._isShown?t=n.hide():((e=s.defer()).resolve(),t=e.promise),t.then((function(){n.scope.$destroy(),n.$el.remove()}))},isShown:function(){return!!this._isShown}}),m=function(t,i){var r=i.scope&&i.scope.$new()||e.$new(!0);i.viewType=i.viewType||"modal",o(r,{$hasHeader:!1,$hasSubheader:!1,$hasFooter:!1,$hasSubfooter:!1,$hasTabs:!1,$hasTabsTop:!1});var a=n("<ion-"+i.viewType+">"+t+"</ion-"+i.viewType+">")(r);i.$el=a,i.el=a[0],i.modalEl=i.el.querySelector("."+i.viewType);var s=new p(i);return s.scope=r,i.scope||(r[i.viewType]=s),s},g=[],v={add:function(e){g.push(e)},remove:function(e){var t=g.indexOf(e);t>-1&&t<g.length&&g.splice(t,1)},isHighest:function(e){var t=g.indexOf(e);return t>-1&&t===g.length-1}};return{fromTemplate:function(e,t){return m(e,t||{})},fromTemplateUrl:function(e,t,n){var i;return angular.isFunction(t)&&(i=t,t=n),a.load(e).then((function(e){var n=m(e,t||{});return i&&i(n),n}))},stack:v}}]),r.service("$ionicNavBarDelegate",ionic.DelegateService(["align","showBackButton","showBar","title","changeTitle","setTitle","getTitle","back","getPreviousTitle"])),r.service("$ionicNavViewDelegate",ionic.DelegateService(["clearCache"])),r.constant("IONIC_BACK_PRIORITY",{view:100,sideMenu:150,modal:200,actionSheet:300,popup:400,loading:500}).provider("$ionicPlatform",(function(){return{$get:["$q","$ionicScrollDelegate",function(e,t){var n={onHardwareBackButton:function(e){ionic.Platform.ready((function(){document.addEventListener("backbutton",e,!1)}))},offHardwareBackButton:function(e){ionic.Platform.ready((function(){document.removeEventListener("backbutton",e)}))},$backButtonActions:{},registerBackButtonAction:function(e,t,i){n._hasBackButtonHandler||(n.$backButtonActions={},n.onHardwareBackButton(n.hardwareBackButtonClick),n._hasBackButtonHandler=!0);var r={id:i||ionic.Utils.nextUid(),priority:t||0,fn:e};return n.$backButtonActions[r.id]=r,function(){delete n.$backButtonActions[r.id]}},hardwareBackButtonClick:function(e){var t,i;for(i in n.$backButtonActions)(!t||n.$backButtonActions[i].priority>=t.priority)&&(t=n.$backButtonActions[i]);return t?(t.fn(e),t):void 0},is:function(e){return ionic.Platform.is(e)},on:function(e,t){return ionic.Platform.ready((function(){document.addEventListener(e,t,!1)})),function(){ionic.Platform.ready((function(){document.removeEventListener(e,t)}))}},ready:function(n){var i=e.defer();return ionic.Platform.ready((function(){window.addEventListener("statusTap",(function(){t.scrollTop(!0)})),i.resolve(),n&&n()})),i.promise}};return n}]}})),r.factory("$ionicPopover",["$ionicModal","$ionicPosition","$document","$window",function(e,t,n,i){var r={viewType:"popover",hideDelay:1,animation:"none",positionView:function(e,n){var r=c(e.target||e),o=t.offset(r),a=n.prop("offsetWidth"),s=n.prop("offsetHeight"),l=i.innerWidth,u=i.innerHeight,d={left:o.left+o.width/2-a/2},h=c(n[0].querySelector(".popover-arrow"));d.left<6?d.left=6:d.left+a+6>l&&(d.left=l-a-6),o.top+o.height+s>u&&o.top-s>0?(d.top=o.top-s,n.addClass("popover-bottom")):(d.top=o.top+o.height,n.removeClass("popover-bottom")),h.css({left:o.left+o.width/2-h.prop("offsetWidth")/2-d.left+"px"}),n.css({top:d.top+"px",left:d.left+"px",marginLeft:"0",opacity:"1"})}};return{fromTemplate:function(t,n){return e.fromTemplate(t,ionic.Utils.extend({},r,n))},fromTemplateUrl:function(t,n){return e.fromTemplateUrl(t,ionic.Utils.extend({},r,n))}}}]);r.factory("$ionicPopup",["$ionicTemplateLoader","$ionicBackdrop","$q","$timeout","$rootScope","$ionicBody","$compile","$ionicPlatform","$ionicModal","IONIC_BACK_PRIORITY",function(e,t,n,i,r,a,s,l,u,h){function f(){var e=g[g.length-1];e&&e.responseDeferred.resolve()}function p(e){var n=v._createPopup(e),r=0;return g.length>0?(r=m.stackPushDelay,i(g[g.length-1].hide,r,!1)):(a.addClass("popup-open"),t.retain(),v._backButtonActionDone=l.registerBackButtonAction(f,h.popup)),n.responseDeferred.promise.close=function(e){n.removed||n.responseDeferred.resolve(e)},n.responseDeferred.notify({close:n.responseDeferred.close}),g.push(n),i(n.show,r,!1),n.responseDeferred.promise.then((function(e){var r=g.indexOf(n);return-1!==r&&g.splice(r,1),n.remove(),g.length>0?g[g.length-1].show():(t.release(),i((function(){g.length||a.removeClass("popup-open")}),400,!1),(v._backButtonActionDone||d)()),e})),n.responseDeferred.promise}var m={stackPushDelay:75},g=[],v={show:p,alert:function(e){return p(o({buttons:[{text:e.okText||"OK",type:e.okType||"button-positive",onTap:function(){return!0}}]},e||{}))},confirm:function(e){return p(o({buttons:[{text:e.cancelText||"Cancel",type:e.cancelType||"button-default",onTap:function(){return!1}},{text:e.okText||"OK",type:e.okType||"button-positive",onTap:function(){return!0}}]},e||{}))},prompt:function(e){var t=r.$new(!0);t.data={},t.data.fieldtype=e.inputType?e.inputType:"text",t.data.response=e.defaultText?e.defaultText:"",t.data.placeholder=e.inputPlaceholder?e.inputPlaceholder:"",t.data.maxlength=e.maxLength?parseInt(e.maxLength):"";var n="";return e.template&&!1===/<[a-z][\s\S]*>/i.test(e.template)&&(n="<span>"+e.template+"</span>",delete e.template),p(o({template:n+'<input ng-model="data.response" type="{{ data.fieldtype }}"maxlength="{{ data.maxlength }}"placeholder="{{ data.placeholder }}">',scope:t,buttons:[{text:e.cancelText||"Cancel",type:e.cancelType||"button-default",onTap:function(){}},{text:e.okText||"OK",type:e.okType||"button-positive",onTap:function(){return t.data.response||""}}]},e||{}))},_createPopup:function(t){t=o({scope:null,title:"",buttons:[]},t||{});var l={};return l.scope=(t.scope||r).$new(),l.element=c('<div class="popup-container" ng-class="cssClass"><div class="popup"><div class="popup-head"><h3 class="popup-title" ng-bind-html="title"></h3><h5 class="popup-sub-title" ng-bind-html="subTitle" ng-if="subTitle"></h5></div><div class="popup-body"></div><div class="popup-buttons" ng-show="buttons.length"><button ng-repeat="button in buttons" ng-click="$buttonTapped(button, $event)" class="button" ng-class="button.type || \'button-default\'" ng-bind-html="button.text"></button></div></div></div>'),l.responseDeferred=n.defer(),a.get().appendChild(l.element[0]),s(l.element)(l.scope),o(l.scope,{title:t.title,buttons:t.buttons,subTitle:t.subTitle,cssClass:t.cssClass,$buttonTapped:function(e,t){var n=(e.onTap||d).apply(l,[t]);(t=t.originalEvent||t).defaultPrevented||l.responseDeferred.resolve(n)}}),n.when(t.templateUrl?e.load(t.templateUrl):t.template||t.content||"").then((function(e){var t=c(l.element[0].querySelector(".popup-body"));e?(t.html(e),s(t.contents())(l.scope)):t.remove()})),l.show=function(){l.isShown||l.removed||(u.stack.add(l),l.isShown=!0,ionic.requestAnimationFrame((function(){l.isShown&&(l.element.removeClass("popup-hidden"),l.element.addClass("popup-showing active"),function(e){var t=e[0].querySelector("[autofocus]");t&&t.focus()}(l.element))})))},l.hide=function(e){return e=e||d,l.isShown?(u.stack.remove(l),l.isShown=!1,l.element.removeClass("active"),l.element.addClass("popup-hidden"),void i(e,250,!1)):e()},l.remove=function(){l.removed||(l.hide((function(){l.element.remove(),l.scope.$destroy()})),l.removed=!0)},l},_popupStack:g};return v}]),r.factory("$ionicPosition",["$document","$window",function(e,t){function n(e){return"static"===(function(e,n){return e.currentStyle?e.currentStyle[n]:t.getComputedStyle?t.getComputedStyle(e)[n]:e.style[n]}(e,"position")||"static")}var i=function(t){for(var i=e[0],r=t.offsetParent||i;r&&r!==i&&n(r);)r=r.offsetParent;return r||i};return{position:function(t){var n=this.offset(t),r={top:0,left:0},o=i(t[0]);o!=e[0]&&((r=this.offset(c(o))).top+=o.clientTop-o.scrollTop,r.left+=o.clientLeft-o.scrollLeft);var a=t[0].getBoundingClientRect();return{width:a.width||t.prop("offsetWidth"),height:a.height||t.prop("offsetHeight"),top:n.top-r.top,left:n.left-r.left}},offset:function(n){var i=n[0].getBoundingClientRect();return{width:i.width||n.prop("offsetWidth"),height:i.height||n.prop("offsetHeight"),top:i.top+(t.pageYOffset||e[0].documentElement.scrollTop),left:i.left+(t.pageXOffset||e[0].documentElement.scrollLeft)}}}}]),r.service("$ionicScrollDelegate",ionic.DelegateService(["resize","scrollTop","scrollBottom","scrollTo","scrollBy","zoomTo","zoomBy","getScrollPosition","anchorScroll","freezeScroll","freezeAllScrolls","getScrollView"])),r.service("$ionicSideMenuDelegate",ionic.DelegateService(["toggleLeft","toggleRight","getOpenRatio","isOpen","isOpenLeft","isOpenRight","canDragContent","edgeDragThreshold"])),r.service("$ionicSlideBoxDelegate",ionic.DelegateService(["update","slide","select","enableSlide","previous","next","stop","autoPlay","start","currentIndex","selected","slidesCount","count","loop"])),r.service("$ionicTabsDelegate",ionic.DelegateService(["select","selectedIndex","showBar"])),function(){var e=[];r.factory("$ionicTemplateCache",["$http","$templateCache","$timeout",function(t,n,i){function r(e){return void 0===e?o():(u(e)&&(e=[e]),a(e,(function(e){l.push(e)})),void(s&&o()))}function o(){var e;if(r._runCount++,s=!0,0!==l.length){for(var a=0;4>a&&(e=l.pop());)u(e)&&t.get(e,{cache:n}),a++;l.length&&i(o,1e3)}}var s,l=e;return r._runCount=0,r}]).config(["$stateProvider","$ionicConfigProvider",function(t,n){var i=t.state;t.state=function(r,o){if("object"==typeof o){var a=!1!==o.prefetchTemplate&&e.length<n.templates.maxPrefetch();if(a&&u(o.templateUrl)&&e.push(o.templateUrl),angular.isObject(o.views))for(var s in o.views)(a=!1!==o.views[s].prefetchTemplate&&e.length<n.templates.maxPrefetch())&&u(o.views[s].templateUrl)&&e.push(o.views[s].templateUrl)}return i.call(t,r,o)}}]).run(["$ionicTemplateCache",function(e){e()}])}(),r.factory("$ionicTemplateLoader",["$compile","$controller","$http","$q","$rootScope","$templateCache",function(e,t,n,i,r,a){return{load:function(e){return n.get(e,{cache:a}).then((function(e){return e.data&&e.data.trim()}))},compile:function(n){return((n=o({template:"",templateUrl:"",scope:null,controller:null,locals:{},appendTo:null},n||{})).templateUrl?this.load(n.templateUrl):i.when(n.template)).then((function(i){var a,s=n.scope||r.$new(),l=c("<div>").html(i).contents();return n.controller&&(a=t(n.controller,o(n.locals,{$scope:s})),l.children().data("$ngControllerController",a)),n.appendTo&&c(n.appendTo).append(l),e(l)(s),{element:l,scope:s}}))}}}]),r.factory("$ionicViewService",["$ionicHistory","$log",function(e,t){function n(e,n){t.warn("$ionicViewService"+e+" is deprecated, please use $ionicHistory"+n+" instead: http://ionicframework.com/docs/nightly/api/service/$ionicHistory/")}n("","");var i={getCurrentView:"currentView",getBackView:"backView",getForwardView:"forwardView",getCurrentStateName:"currentStateName",nextViewOptions:"nextViewOptions",clearHistory:"clearHistory"};return a(i,(function(t,r){i[r]=function(){return n("."+r,"."+t),e[t].apply(this,arguments)}})),i}]),r.factory("$ionicViewSwitcher",["$timeout","$document","$q","$ionicClickBlock","$ionicConfig","$ionicNavBarDelegate",function(e,t,n,i,r,l){function u(e,t){return d(e).abstract?d(e).name:t?t.stateId||t.viewId:ionic.Utils.nextUid()}function d(e){return e&&e.$$state&&e.$$state.self||{}}function h(e,t,n,i){var a=d(e),s=_||P(t,"view-transition")||a.viewTransition||r.views.transition()||"ios",l=r.navBar.transition();return n=y||P(t,"view-direction")||a.viewDirection||n||"none",o(f(i),{transition:s,navBarTransition:"view"===l?s:l,direction:n,shouldAnimate:"none"!==s&&"none"!==n})}function f(e){return{viewId:(e=e||{}).viewId,historyId:e.historyId,stateId:e.stateId,stateName:e.stateName,stateParams:e.stateParams}}function p(e,t){return arguments.length>1?void P(e,T,t):P(e,T)}function m(e){if(e&&e.length){var t=e.scope();t&&(t.$emit("$ionicView.unloaded",e.data(S)),t.$destroy()),e.remove()}}function g(e,t){var n=e.lastIndexOf("."),i=t.lastIndexOf(".");return!(0>n||0>i)&&e.substring(0,n)===t.substring(0,i)}function v(e,t){if(!e)return null;var n=angular.element(e).attr("abstract"),i=angular.element(e).attr("state");if("true"!==n)return i===t.stateName?angular.element(e).scope():null;for(var r=function(e){for(var t=[],n=angular.element(e).find("ion-nav-view"),i=0;i<n.length;i++){for(var r=angular.element(n[i]).children(),o=[],a=0;a<r.length;a++)o=o.concat(r[a]);t=t.concat(o)}return t}(e),o=0;o<r.length;o++)if(angular.element(r[o]).attr("state")===t.stateName)return t.abstractView=!0,angular.element(r[o]).scope();return null}var _,y,b="webkitTransitionEnd transitionend",w="$noCache",L="$destroyEle",M="$eleId",k="$accessed",x="$fallbackTimer",S="$viewData",T="nav-view",$="active",D="cached",C="stage",E=0;ionic.transition=ionic.transition||{},ionic.transition.isActive=!1;var A,P=ionic.DomUtil.cachedAttr,Y=[],O=1100,I={create:function(t,a,c,T,A,j){var H,N,B,R=++E,F={init:function(e,t){I.isTransitioning(!0),F.loadViewElements(e),F.render(e,(function(){t&&t()}))},loadViewElements:function(e){var n,i,r,o=t.getViewElements(),l=u(a,c),d=t.activeEleId();for(n=0,i=o.length;i>n&&((r=o.eq(n)).data(M)===l?r.data(w)?(r.data(M,l+ionic.Utils.nextUid()),r.data(L,!0)):H=r:s(d)&&r.data(M)===d&&(N=r),!H||!N);n++);(B=!!H)||(H=e.ele||I.createViewEle(a)).data(M,l),j&&t.activeEleId(l),e.ele=null},render:function(e,n){if(B)ionic.Utils.reconnectScope(H.scope());else{p(H,C);var i=h(a,H,e.direction,c);(r.transitions.views[i.transition]||r.transitions.views.none)(H,null,i.direction,!0).run(0),H.data(S,{viewId:i.viewId,historyId:i.historyId,stateName:i.stateName,stateParams:i.stateParams}),(!1===d(a).cache||"false"===d(a).cache||"false"==H.attr("cache-view")||0===r.views.maxCache())&&H.data(w,!0);var o=t.appendViewElement(H,a);delete i.direction,delete i.transition,o.$emit("$ionicView.loaded",i)}H.data(k,Date.now()),n&&n()},transition:function(s,u,d){function m(){p(H,z.shouldAnimate?"entering":$),p(N,z.shouldAnimate?"leaving":D),z.run(1),l._instances.forEach((function(e){e.triggerTransitionStart(R)})),z.shouldAnimate||v()}function g(e){e.target===this&&v()}function v(){v.x||(v.x=!0,H.off(b,g),e.cancel(H.data(x)),N&&e.cancel(N.data(x)),M&&M.resolve(t),R===E&&(n.all(Y).then(I.transitionEnd),F.emit("after",k,S),F.cleanup(k)),l._instances.forEach((function(e){e.triggerTransitionEnd()})),_=y=c=T=H=N=null)}function w(e){e.target===this&&L()}function L(){p(H,D),p(N,$),H.off(b,w),e.cancel(H.data(x)),I.transitionEnd([t])}var M,k=h(a,H,s,c),S=o(o({},k),f(T));k.transitionId=S.transitionId=R,k.fromCache=!!B,k.enableBack=!!u,k.renderStart=A,k.renderEnd=j,P(H.parent(),"nav-view-transition",k.transition),P(H.parent(),"nav-view-direction",k.direction),e.cancel(H.data(x));var z=(r.transitions.views[k.transition]||r.transitions.views.none)(H,N,k.direction,k.shouldAnimate&&d&&j);if(z.shouldAnimate&&(H.on(b,g),H.data(x,e(v,O)),i.show(O)),A&&(F.emit("before",k,S),p(H,C),z.run(0)),j&&(M=n.defer(),Y.push(M.promise)),A&&j)e((function(){ionic.requestAnimationFrame(m)}));else{if(!j)return p(H,"entering"),p(N,"leaving"),{run:z.run,cancel:function(t){t?(H.on(b,w),H.data(x,e(L,O)),i.show(O)):L(),z.shouldAnimate=t,z.run(0),z=null}};j&&m()}},emit:function(e,t,n){var i=v(H,t),r=v(N,n);!t.viewId||t.abstractView?r&&(r.$emit("$ionicView.beforeLeave",n),r.$emit("$ionicView.leave",n),r.$emit("$ionicView.afterLeave",n),r.$broadcast("$ionicParentView.beforeLeave",n),r.$broadcast("$ionicParentView.leave",n),r.$broadcast("$ionicParentView.afterLeave",n)):("after"==e&&(i&&(i.$emit("$ionicView.enter",t),i.$broadcast("$ionicParentView.enter",t)),r?(r.$emit("$ionicView.leave",n),r.$broadcast("$ionicParentView.leave",n)):i&&n&&n.viewId&&t.stateName!==n.stateName&&g(t.stateName,n.stateName)&&i.$emit("$ionicNavView.leave",n)),i&&(i.$emit("$ionicView."+e+"Enter",t),i.$broadcast("$ionicParentView."+e+"Enter",t)),r?(r.$emit("$ionicView."+e+"Leave",n),r.$broadcast("$ionicParentView."+e+"Leave",n)):i&&n&&n.viewId&&t.stateName!==n.stateName&&g(t.stateName,n.stateName)&&i.$emit("$ionicNavView."+e+"Leave",n))},cleanup:function(e){N&&"back"==e.direction&&!r.views.forwardCache()&&m(N);var n,i,o,a=t.getViewElements(),s=a.length,l=s-1>r.views.maxCache(),u=Date.now();for(n=0;s>n;n++)i=a.eq(n),l&&i.data(k)<u?(u=i.data(k),o=a.eq(n)):i.data(L)&&p(i)!=$&&m(i);m(o),H.data(w)&&H.data(L,!0)},enteringEle:function(){return H},leavingEle:function(){return N}};return F},transitionEnd:function(e){a(e,(function(e){e.transitionEnd()})),I.isTransitioning(!1),i.hide(),Y=[]},nextTransition:function(e){_=e},nextDirection:function(e){y=e},isTransitioning:function(t){return arguments.length&&(ionic.transition.isActive=!!t,e.cancel(A),t&&(A=e((function(){I.isTransitioning(!1)}),999))),ionic.transition.isActive},createViewEle:function(e){var n=t[0].createElement("div");return e&&e.$template&&(n.innerHTML=e.$template,1===n.children.length)?(n.children[0].classList.add("pane"),e.$$state&&e.$$state.self&&e.$$state.self.abstract?angular.element(n.children[0]).attr("abstract","true"):e.$$state&&e.$$state.self&&angular.element(n.children[0]).attr("state",e.$$state.self.name),c(n.children[0])):(n.className="pane",c(n))},viewEleIsActive:function(e,t){p(e,t?$:D)},getTransitionData:h,navViewAttr:p,destroyViewEle:m};return I}]),angular.module("ngIOS9UIWebViewPatch",["ng"]).config(["$provide",function(e){"use strict";e.decorator("$browser",["$delegate","$window",function(e,t){return function(e){return/(iPhone|iPad|iPod).* OS 9_\d/.test(e)&&!/Version\/9\./.test(e)}(t.navigator.userAgent)?function(e){function t(){n=null}var n=null,i=e.url;return e.url=function(){return arguments.length?(n=arguments[0],i.apply(e,arguments)):n||i.apply(e,arguments)},window.addEventListener("popstate",t,!1),window.addEventListener("hashchange",t,!1),e}(e):e}])}]),r.config(["$provide",function(e){e.decorator("$compile",["$delegate",function(e){return e.$$addScopeInfo=function(e,t,n,i){var r=n?i?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(r,t)},e}])}]),r.config(["$provide",function(e){e.decorator("$location",["$delegate","$timeout",function(e,t){return e.__hash=e.hash,e.hash=function(n){return s(n)&&n.length>0&&t((function(){var e=document.querySelector(".scroll-content");e&&(e.scrollTop=0)}),0,!1),e.__hash(n)},e}])}]),r.controller("$ionicHeaderBar",["$scope","$element","$attrs","$q","$ionicConfig","$ionicHistory",function(e,t,n,i,r,o){function a(e){return M[e]||(M[e]=t[0].querySelector("."+e)),M[e]}var s="title",l="back-text",u="back-button",c="default-title",d="previous-title",h="hide",f=this,p="",m="",g=0,v=0,_="",y=!1,b=!0,w=!0,L=!1;f.beforeEnter=function(t){e.$broadcast("$ionicView.beforeEnter",t)},f.title=function(e){return arguments.length&&e!==p&&(a(s).innerHTML=e,p=e),p},f.enableBack=function(e,t){return arguments.length&&(y=e,t||f.updateBackButton()),y},f.showBack=function(e,t){return arguments.length&&(b=e,t||f.updateBackButton()),b},f.showNavBack=function(e){w=e,f.updateBackButton()},f.updateBackButton=function(){var e;(b&&w&&y)!==L&&(L=b&&w&&y,(e=a(u))&&e.classList[L?"remove":"add"](h)),y&&(e=e||a(u))&&(f.backButtonIcon!==r.backButton.icon()&&(e=a(u+" .icon"))&&(f.backButtonIcon=r.backButton.icon(),e.className="icon "+f.backButtonIcon),f.backButtonText!==r.backButton.text()&&(e=a(u+" .back-text"))&&(e.textContent=f.backButtonText=r.backButton.text()))},f.titleTextWidth=function(){var e=a(s);if(e)for(var t=angular.element(e).children(),n=0;n<t.length;n++)if(angular.element(t[n]).hasClass("nav-bar-title")){e=t[n];break}var i=ionic.DomUtil.getTextBounds(e);return Math.min(i&&i.width||30)},f.titleWidth=function(){var e=f.titleTextWidth(),t=a(s).offsetWidth;return e>t&&(e=t+(g-v-5)),e},f.titleTextX=function(){return t[0].offsetWidth/2-f.titleWidth()/2},f.titleLeftRight=function(){return g-v},f.backButtonTextLeft=function(){for(var e=0,t=a(l);t;)e+=t.offsetLeft,t=t.parentElement;return e},f.resetBackButton=function(e){if(r.backButton.previousTitleText()){var t=a(d);if(t){t.classList.remove(h);var n=e&&o.getViewById(e.viewId),i=o.backTitle(n);i!==m&&(m=t.innerHTML=i)}var s=a(c);s&&s.classList.remove(h)}},f.align=function(e){var i=a(s);e=e||n.alignTitle||r.navBar.alignTitle();var o=f.calcWidths(e,!1);if(b&&m&&r.backButton.previousTitleText()){var l=f.calcWidths(e,!0),u=t[0].offsetWidth-l.titleLeft-l.titleRight;f.titleTextWidth()<=u&&(o=l)}return f.updatePositions(i,o.titleLeft,o.titleRight,o.buttonsLeft,o.buttonsRight,o.css,o.showPrevTitle)},f.calcWidths=function(e,n){var i,r,o,f,p,m,g,v,_,y=a(s),w=a(u),L=t[0].childNodes,M=0,k=0,x=0,S=0,T="",$=0;for(i=0;i<L.length;i++){if(g=0,1==(p=L[i]).nodeType){if(p===y){_=!0;continue}if(p.classList.contains(h))continue;if(b&&p===w){for(r=0;r<p.childNodes.length;r++)if(1==(f=p.childNodes[r]).nodeType)if(f.classList.contains(l))for(o=0;o<f.children.length;o++)if(m=f.children[o],n){if(m.classList.contains(c))continue;$+=m.offsetWidth}else{if(m.classList.contains(d))continue;$+=m.offsetWidth}else $+=f.offsetWidth;else 3==f.nodeType&&f.nodeValue.trim()&&($+=(v=ionic.DomUtil.getTextBounds(f))&&v.width||0);g=$||p.offsetWidth}else g=p.offsetWidth}else 3==p.nodeType&&p.nodeValue.trim()&&(g=(v=ionic.DomUtil.getTextBounds(p))&&v.width||0);_?k+=g:M+=g}if("left"==e)T="title-left",M&&(x=M+15),k&&(S=k+15);else if("right"==e)T="title-right",M&&(x=M+15),k&&(S=k+15);else{var D=Math.max(M,k)+10;D>10&&(x=S=D)}return{backButtonWidth:$,buttonsLeft:M,buttonsRight:k,titleLeft:x,titleRight:S,showPrevTitle:n,css:T}},f.updatePositions=function(e,n,o,s,l,u,p){var m=i.defer();if(e&&(n!==g&&(e.style.left=n?n+"px":"",g=n),o!==v&&(e.style.right=o?o+"px":"",v=o),u!==_&&(u&&e.classList.add(u),_&&e.classList.remove(_),_=u)),r.backButton.previousTitleText()){var y=a(d),b=a(c);y&&y.classList[p?"remove":"add"](h),b&&b.classList[p?"add":"remove"](h)}return ionic.requestAnimationFrame((function(){if(e&&e.offsetWidth+10<e.scrollWidth){var n=l+5,i=t[0].offsetWidth-g-f.titleTextWidth()-20;(o=n>i?n:i)!==v&&(e.style.right=o+"px",v=o)}m.resolve()})),m.promise},f.setCss=function(e,t){ionic.DomUtil.cachedStyles(a(e),t)};var M={};e.$on("$destroy",(function(){for(var e in M)M[e]=null}))}]),r.controller("$ionInfiniteScroll",["$scope","$attrs","$element","$timeout",function(e,t,n,i){function r(){ionic.requestAnimationFrame((function(){n[0].classList.add("active")})),l.isLoading=!0,e.$parent&&e.$parent.$apply(t.onInfinite||"")}function o(){ionic.requestAnimationFrame((function(){n[0].classList.remove("active")})),i((function(){l.jsScrolling&&l.scrollView.resize(),(l.jsScrolling&&l.scrollView.__container&&l.scrollView.__container.offsetHeight>0||!l.jsScrolling)&&l.checkBounds()}),30,!1),l.isLoading=!1}function a(e){var n=(t.distance||"2.5%").trim();return-1!==n.indexOf("%")?e*(1-parseFloat(n)/100):e-parseFloat(n)}var l=this;l.isLoading=!1,e.icon=function(){return s(t.icon)?t.icon:"ion-load-d"},e.spinner=function(){return s(t.spinner)?t.spinner:""},e.$on("scroll.infiniteScrollComplete",(function(){o()})),e.$on("$destroy",(function(){l.scrollCtrl&&l.scrollCtrl.$element&&l.scrollCtrl.$element.off("scroll",l.checkBounds),l.scrollEl&&l.scrollEl.removeEventListener&&l.scrollEl.removeEventListener("scroll",l.checkBounds)})),l.checkBounds=ionic.Utils.throttle((function(){if(!l.isLoading){var e={};if(l.jsScrolling){e=l.getJSMaxScroll();var t=l.scrollView.getValues();(-1!==e.left&&t.left>=e.left||-1!==e.top&&t.top>=e.top)&&r()}else(-1!==(e=l.getNativeMaxScroll()).left&&l.scrollEl.scrollLeft>=e.left-l.scrollEl.clientWidth||-1!==e.top&&l.scrollEl.scrollTop>=e.top-l.scrollEl.clientHeight)&&r()}}),300),l.getJSMaxScroll=function(){var e=l.scrollView.getScrollMax();return{left:l.scrollView.options.scrollingX?a(e.left):-1,top:l.scrollView.options.scrollingY?a(e.top):-1}},l.getNativeMaxScroll=function(){var e={left:l.scrollEl.scrollWidth,top:l.scrollEl.scrollHeight},t=window.getComputedStyle(l.scrollEl)||{};return{left:!e.left||"scroll"!==t.overflowX&&"auto"!==t.overflowX&&"scroll"!==l.scrollEl.style["overflow-x"]?-1:a(e.left),top:!e.top||"scroll"!==t.overflowY&&"auto"!==t.overflowY&&"scroll"!==l.scrollEl.style["overflow-y"]?-1:a(e.top)}},l.__finishInfiniteScroll=o}]),r.service("$ionicListDelegate",ionic.DelegateService(["showReorder","showDelete","canSwipeItems","closeOptionButtons"])).controller("$ionicList",["$scope","$attrs","$ionicListDelegate","$ionicHistory",function(e,t,n,i){var r=this,o=!0,a=!1,s=!1,l=n._registerInstance(r,t.delegateHandle,(function(){return i.isActiveScope(e)}));e.$on("$destroy",l),r.showReorder=function(e){return arguments.length&&(a=!!e),a},r.showDelete=function(e){return arguments.length&&(s=!!e),s},r.canSwipeItems=function(e){return arguments.length&&(o=!!e),o},r.closeOptionButtons=function(){r.listView&&r.listView.clearDragEffects()}}]),r.controller("$ionicNavBar",["$scope","$element","$attrs","$compile","$timeout","$ionicNavBarDelegate","$ionicConfig","$ionicHistory",function(e,t,n,i,r,o,l,u){function d(e,t){var n=console.warn||alert;n&&n.call(console,"navBarController."+e+" is deprecated, please use "+t+" instead")}function h(e){return T[e]?c(T[e]):void 0}function f(){for(var e=0;e<S.length;e++)if(S[e].isActive)return S[e]}function p(e,t){e&&ionic.DomUtil.cachedAttr(e.containerEle(),"nav-bar",t)}function m(e){ionic.DomUtil.cachedAttr(t,"nav-swipe",e)}var g,v,_,y="hide",b="$ionNavBarController",w="primaryButtons",L="secondaryButtons",M="backButton",k="primaryButtons secondaryButtons leftButtons rightButtons title".split(" "),x=this,S=[],T={},$=!0;t.parent().data(b,x);var D=n.delegateHandle||"navBar"+ionic.Utils.nextUid(),C=o._registerInstance(x,D);x.init=function(){t.addClass("nav-bar-container"),ionic.DomUtil.cachedAttr(t,"nav-bar-transition",l.views.transition()),x.createHeaderBar(!1),x.createHeaderBar(!0),e.$emit("ionNavBar.init",D)},x.createHeaderBar=function(r){function o(e,t){e&&("title"===t?g.append(e):"rightButtons"==t||t==L&&"left"!=l.navBar.positionSecondaryButtons()||t==w&&"right"==l.navBar.positionPrimaryButtons()?(m||(m=c('<div class="buttons buttons-right">'),f.append(m)),t==L?m.append(e):m.prepend(e)):(p||(p=c('<div class="buttons buttons-left">'),v[M]?v[M].after(p):f.prepend(p)),t==L?p.append(e):p.prepend(e)))}var u=c('<div class="nav-bar-block">');ionic.DomUtil.cachedAttr(u,"nav-bar",r?"active":"cached");var d=n.alignTitle||l.navBar.alignTitle(),f=c("<ion-header-bar>").addClass(n.class).attr("align-title",d);s(n.noTapScroll)&&f.attr("no-tap-scroll",n.noTapScroll);var p,m,g=c('<div class="title title-'+d+'">'),v={},_={};v[M]=h(M),v[M]&&f.append(v[M]),f.append(g),a(k,(function(e){v[e]=h(e),o(v[e],e)}));for(var b=0;b<f[0].children.length;b++)f[0].children[b].classList.add("header-item");u.append(f),t.append(i(u)(e.$new()));var x=f.data("$ionHeaderBarController");x.backButtonIcon=l.backButton.icon(),x.backButtonText=l.backButton.text();var T={isActive:r,title:function(e){x.title(e)},setItem:function(e,t){T.removeItem(t),e?("title"===t&&T.title(""),o(e,t),v[t]&&v[t].addClass(y),_[t]=e):v[t]&&v[t].removeClass(y)},removeItem:function(e){_[e]&&(_[e].scope().$destroy(),_[e].remove(),_[e]=null)},containerEle:function(){return u},headerBarEle:function(){return f},afterLeave:function(){a(k,(function(e){T.removeItem(e)})),x.resetBackButton()},controller:function(){return x},destroy:function(){for(var e in a(k,(function(e){T.removeItem(e)})),u.scope().$destroy(),v)v[e]&&(v[e].removeData(),v[e]=null);p&&p.removeData(),m&&m.removeData(),g.removeData(),f.removeData(),u.remove(),u=f=g=p=m=null}};return S.push(T),T},x.navElement=function(e,t){return s(t)&&(T[e]=t),T[e]},x.update=function(e){var t=!e.hasHeaderBar&&e.showNavBar;e.transition=l.views.transition(),t||(e.direction="none"),x.enable(t);var n=x.isInitialized?function(){for(var e=0;e<S.length;e++)if(!S[e].isActive)return S[e]}():f(),i=x.isInitialized?f():null,r=n.controller();r.enableBack(e.enableBack,!0),r.showBack(e.showBack,!0),r.updateBackButton(),x.title(e.title,n),x.showBar(t),e.navBarItems&&a(k,(function(t){n.setItem(e.navBarItems[t],t)})),x.transition(n,i,e),x.isInitialized=!0,m("")},x.transition=function(e,n,i){function o(){for(var t=0;t<S.length;t++)S[t].isActive=!1;e.isActive=!0,p(e,"active"),p(n,"cached"),x.activeTransition=c=v=null}var a=e.controller(),s=l.transitions.navBar[i.navBarTransition]||l.transitions.navBar.none,u=i.transitionId;a.beforeEnter(i);var c=s(e,n,i.direction,i.shouldAnimate&&x.isInitialized);ionic.DomUtil.cachedAttr(t,"nav-bar-transition",i.navBarTransition),ionic.DomUtil.cachedAttr(t,"nav-bar-direction",i.direction),c.shouldAnimate&&i.renderEnd?p(e,"stage"):(p(e,"entering"),p(n,"leaving")),a.resetBackButton(i),c.run(0),x.activeTransition={run:function(e){c.shouldAnimate=!1,c.direction="back",c.run(e)},cancel:function(t,i,r){m(i),p(n,"active"),p(e,"cached"),c.shouldAnimate=t,c.run(0),x.activeTransition=c=null,r.showBar!==x.showBar()&&x.showBar(r.showBar),r.showBackButton!==x.showBackButton()&&x.showBackButton(r.showBackButton)},complete:function(e,t){m(t),c.shouldAnimate=e,c.run(1),v=o}},r(a.align,16),(g=function(){_===u&&(p(e,"entering"),p(n,"leaving"),c.run(1),v=function(){_!=u&&c.shouldAnimate||o()},g=null)})()},x.triggerTransitionStart=function(e){_=e,g&&g()},x.triggerTransitionEnd=function(){v&&v()},x.showBar=function(t){return arguments.length&&(x.visibleBar(t),e.$parent.$hasHeader=!!t),!!e.$parent.$hasHeader},x.visibleBar=function(e){e&&!$?(t.removeClass(y),x.align()):!e&&$&&t.addClass(y),$=e},x.enable=function(e){x.visibleBar(e);for(var t=0;t<o._instances.length;t++)o._instances[t]!==x&&o._instances[t].visibleBar(!1)},x.showBackButton=function(t){if(arguments.length){for(var n=0;n<S.length;n++)S[n].controller().showNavBack(!!t);e.$isBackButtonShown=!!t}return e.$isBackButtonShown},x.showActiveBackButton=function(e){var t=f();return t?arguments.length?t.controller().showBack(e):t.controller().showBack():void 0},x.title=function(t,n){return s(t)&&(t=t||"",(n=n||f())&&n.title(t),e.$title=t,u.currentTitle(t)),e.$title},x.align=function(e,t){(t=t||f())&&t.controller().align(e)},x.hasTabsTop=function(e){t[e?"addClass":"removeClass"]("nav-bar-tabs-top")},x.hasBarSubheader=function(e){t[e?"addClass":"removeClass"]("nav-bar-has-subheader")},x.changeTitle=function(e){d("changeTitle(val)","title(val)"),x.title(e)},x.setTitle=function(e){d("setTitle(val)","title(val)"),x.title(e)},x.getTitle=function(){return d("getTitle()","title()"),x.title()},x.back=function(){d("back()","$ionicHistory.goBack()"),u.goBack()},x.getPreviousTitle=function(){d("getPreviousTitle()","$ionicHistory.backTitle()"),u.goBack()},e.$on("$destroy",(function(){e.$parent.$hasHeader=!1,t.parent().removeData(b);for(var n=0;n<S.length;n++)S[n].destroy();t.remove(),t=S=null,C()}))}]),r.controller("$ionicNavView",["$scope","$element","$attrs","$compile","$controller","$ionicNavBarDelegate","$ionicNavViewDelegate","$ionicHistory","$ionicViewSwitcher","$ionicConfig","$ionicScrollDelegate","$ionicSideMenuDelegate",function(e,t,n,i,r,a,s,l,u,c,d,h){function f(e,n){for(var i,r,o=t.children(),a=0,s=o.length;s>a;a++)if(i=o.eq(a),D(i)==x){(r=i.scope())&&r.$emit(e.name.replace("Tabs","View"),n),r&&r.$broadcast(e.name.replace("Tabs","ParentView"),n);break}}function p(e){ionic.DomUtil.cachedAttr(t,"nav-swipe",e)}function m(e,t){var n=v();n&&n.hasTabsTop(t)}function g(e,t){var n=v();n&&n.hasBarSubheader(t)}function v(){if(y)for(var e=0;e<a._instances.length;e++)if(a._instances[e].$$delegateHandle==y)return a._instances[e];return t.inheritedData("$ionNavBarController")}var _,y,b,w,L,M="$eleId",k="$destroyEle",x="active",S="cached",T=this,$=!1,D=u.navViewAttr;T.scope=e,T.element=t,T.init=function(){var i=n.name||"",r=t.parent().inheritedData("$uiView"),o=r&&r.state?r.state.name:"";i.indexOf("@")<0&&(i=i+"@"+o);var a={name:i,state:null};t.data("$uiView",a);var l=s._registerInstance(T,n.delegateHandle);return e.$on("$destroy",(function(){l(),T.isSwipeFreeze&&d.freezeAllScrolls(!1)})),e.$on("$ionicHistory.deselect",T.cacheCleanup),e.$on("$ionicTabs.top",m),e.$on("$ionicSubheader",g),e.$on("$ionicTabs.beforeLeave",f),e.$on("$ionicTabs.afterLeave",f),e.$on("$ionicTabs.leave",f),ionic.Platform.ready((function(){ionic.Platform.isWebView()&&ionic.Platform.isIOS()&&T.initSwipeBack()})),a},T.register=function(t){var n=o({},l.currentView()),i=l.register(e,t);T.update(i);var r=l.getViewById(i.viewId)||{},a=w!==i.viewId;T.render(i,t,r,n,a,!0)},T.update=function(e){$=!0,_=e.direction;var n=t.parent().inheritedData("$ionNavViewController");n&&(n.isPrimary(!1),("enter"===_||"exit"===_)&&(n.direction(_),"enter"===_&&(_="none")))},T.render=function(e,t,n,i,r,o){var a=u.create(T,t,n,i,r,o);a.init(e,(function(){a.transition(T.direction(),e.enableBack,!L),w=L=null}))},T.beforeEnter=function(e){if($){y=e.navBarDelegate;var t=v();t&&t.update(e),p("")}},T.activeEleId=function(e){return arguments.length&&(b=e),b},T.transitionEnd=function(){var e,n,i,r=t.children();for(e=0,n=r.length;n>e;e++)(i=r.eq(e)).data(M)===b?D(i,x):("leaving"===D(i)||D(i)===x||D(i)===S)&&(i.data(k)||i.data("$noCache")?u.destroyViewEle(i):(D(i,S),ionic.Utils.disconnectScope(i.scope())));p(""),T.isSwipeFreeze&&d.freezeAllScrolls(!1)},T.cacheCleanup=function(){for(var e=t.children(),n=0,i=e.length;i>n;n++)e.eq(n).data(k)&&u.destroyViewEle(e.eq(n))},T.clearCache=function(e){var n,i,r,o,a,s,l=t.children();for(r=0,o=l.length;o>r;r++)if(n=l.eq(r),e)for(s=n.data(M),a=0;a<e.length;a++)s===e[a]&&u.destroyViewEle(n);else D(n)==S?u.destroyViewEle(n):D(n)==x&&(i=n.scope())&&i.$broadcast("$ionicView.clearCache")},T.getViewElements=function(){return t.children()},T.appendViewElement=function(n,o){var a=i(n);t.append(n);var s=e.$new();if(o&&o.$$controller){o.$scope=s;var l=r(o.$$controller,o);o.$$controllerAs&&(s[o.$$controllerAs]=l),t.children().data("$ngControllerController",l)}return a(s),s},T.title=function(e){var t=v();t&&t.title(e)},T.enableBackButton=function(e){var t=v();t&&t.enableBackButton(e)},T.showBackButton=function(e){var t=v();return!t||(arguments.length?t.showActiveBackButton(e):t.showActiveBackButton())},T.showBar=function(e){var t=v();return!t||(arguments.length?t.showBar(e):t.showBar())},T.isPrimary=function(e){return arguments.length&&($=e),$},T.direction=function(e){return arguments.length&&(_=e),_},T.initSwipeBack=function(){function n(e){if($&&c.views.swipeBackEnabled()&&!h.isOpenRight()&&!((M=o(e))>x)){m=l.backView();var n=l.currentView();if(m&&m.historyId===n.historyId&&!1!==n.canSwipeBack){b||(b=window.innerWidth),T.isSwipeFreeze=d.freezeAllScrolls(!0);var a={direction:"back"};k=[],S={showBar:T.showBar(),showBackButton:T.showBackButton()};var p=u.create(T,a,m,n,!0,!1);p.loadViewElements(a),p.render(a),s=p.transition("back",l.enabledBack(m),!0),f=v(),_=ionic.onGesture("drag",i,t[0]),y=ionic.onGesture("release",r,t[0])}}}function i(e){if($&&s){var t=o(e);if(k.push({t:Date.now(),x:t}),t>=b-15)r(e);else{var n=Math.min(Math.max(a(t),0),1);s.run(n),f&&f.activeTransition&&f.activeTransition.run(n)}}}function r(e){if($&&s&&k&&k.length>1){for(var t=Date.now(),n=o(e),l=k[k.length-1],u=k.length-2;u>=0&&!(t-l.t>200);u--)l=k[u];var c=n>=k[k.length-2].x,h=a(n),g=Math.abs(l.x-n)/(t-l.t);if(w=m.viewId,L=.03>h||h>.97,c&&(h>.5||g>.1)){var v=g>.5||.05>g||n>b-45?"fast":"slow";p(L?"":v),m.go(),f&&f.activeTransition&&f.activeTransition.complete(!L,v)}else p(L?"":"fast"),w=null,s.cancel(!L),f&&f.activeTransition&&f.activeTransition.cancel(!L,"fast",S),L=null}ionic.offGesture(_,"drag",i),ionic.offGesture(y,"release",r),b=s=k=null,T.isSwipeFreeze=d.freezeAllScrolls(!1)}function o(e){return ionic.tap.pointerCoord(e.gesture.srcEvent).x}function a(e){return(e-M)/b}var s,f,m,g,_,y,b,M,k,x=c.views.swipeBackHitWidth(),S={};g=ionic.onGesture("dragstart",n,t[0]),e.$on("$destroy",(function(){ionic.offGesture(g,"dragstart",n),ionic.offGesture(_,"drag",i),ionic.offGesture(y,"release",r),T.element=s=f=null}))}}]),r.controller("$ionicRefresher",["$scope","$attrs","$element","$ionicBind","$timeout",function(e,t,n,i,r){function o(e){e.touches=e.touches||[{screenX:e.screenX,screenY:e.screenY}],Y=Math.floor(e.touches[0].screenY)}function a(e){e.touches=e.touches||[{screenX:e.screenX,screenY:e.screenY}],Y=e.touches[0].screenY}function l(){Y=null,(I||T)&&(T?(T=!1,D=0,C>E?(v(),f(E,P)):(f(0,P,g),$=!1)):(D=0,$=!1,h(!1)))}function u(e){if(e.touches=e.touches||[{screenX:e.screenX,screenY:e.screenY}],(Y||"mousemove"!=e.type)&&I&&!(e.touches.length>1)){if(null===Y&&(Y=e.touches[0].screenY),O=e.touches[0].screenY-Y,ionic.Platform.isAndroid()&&4.4===ionic.Platform.version()&&!ionic.Platform.isCrosswalk()&&0===w.scrollTop&&O>0&&(T=!0,e.preventDefault()),0>=O-D||0!==w.scrollTop)return $&&($=!1,h(!1)),T&&function(e,t){e.scrollTop=t;var n=document.createEvent("UIEvents");n.initUIEvent("scroll",!0,!0,window,1),e.dispatchEvent(n)}(w,O- -1*D),void(0!==C&&d(0));O>0&&0===w.scrollTop&&!$&&(D=O),e.preventDefault(),$||($=!0,h(!0)),T=!0,d((O-D)/3),!A&&C>E?(A=!0,ionic.requestAnimationFrame(m)):A&&E>C&&(A=!1,ionic.requestAnimationFrame(g))}}function c(e){I=0===e.target.scrollTop||T}function d(e){L.style[ionic.CSS.TRANSFORM]="translate3d(0px, "+e+"px, 0px)",C=e}function h(e){e?ionic.requestAnimationFrame((function(){L.classList.add("overscroll"),_()})):ionic.requestAnimationFrame((function(){L.classList.remove("overscroll"),y(),g()}))}function f(e,t,n){var i=Date.now(),r=C;return r===e?void n():void ionic.requestAnimationFrame((function o(){var a=Date.now(),s=Math.min(1,(a-i)/t),l=function(e){return--e*e*e+1}(s);d(Math.floor(l*(e-r)+r)),1>s?ionic.requestAnimationFrame(o):(5>e&&e>-5&&($=!1,h(!1)),n&&n())}))}function p(){L&&(ionic.off(M,a,L),ionic.off(k,u,L),ionic.off(x,l,L),ionic.off("mousedown",o,L),ionic.off("mousemove",u,L),ionic.off("mouseup",l,L)),w&&ionic.off("scroll",c,w),w=null,L=null}function m(){n[0].classList.add("active"),e.$onPulling()}function g(){r((function(){n.removeClass("active refreshing refreshing-tail"),A&&(A=!1)}),150)}function v(){n[0].classList.add("refreshing");var t=e.$onRefresh();t&&t.then&&t.finally((function(){e.$broadcast("scroll.refreshComplete")}))}function _(){n[0].classList.remove("invisible")}function y(){n[0].classList.add("invisible")}function b(){n[0].classList.add("refreshing-tail")}var w,L,M,k,x,S=this,T=!1,$=!1,D=0,C=0,E=60,A=!1,P=500,Y=null,O=null,I=!0;s(t.pullingIcon)||t.$set("pullingIcon","ion-android-arrow-down"),e.showSpinner=!s(t.refreshingIcon)&&"none"!=t.spinner,e.showIcon=s(t.refreshingIcon),i(e,t,{pullingIcon:"@",pullingText:"@",refreshingIcon:"@",refreshingText:"@",spinner:"@",disablePullingRotation:"@",$onRefresh:"&onRefresh",$onPulling:"&onPulling"}),e.$on("scroll.refreshComplete",(function(){r((function(){ionic.requestAnimationFrame(b),f(0,P,g),r((function(){$&&($=!1,h(!1))}),P)}),P)})),window.navigator.pointerEnabled?(M="pointerdown",k="pointermove",x="pointerup"):window.navigator.msPointerEnabled?(M="MSPointerDown",k="MSPointerMove",x="MSPointerUp"):(M="touchstart",k="touchmove",x="touchend"),S.init=function(){if(w=n.parent().parent()[0],L=n.parent()[0],!(w&&w.classList.contains("ionic-scroll")&&L&&L.classList.contains("scroll")))throw new Error("Refresher must be immediate child of ion-content or ion-scroll");ionic.on(M,a,L),ionic.on(k,u,L),ionic.on(x,l,L),ionic.on("mousedown",o,L),ionic.on("mousemove",u,L),ionic.on("mouseup",l,L),ionic.on("scroll",c,w),e.$on("$destroy",p)},S.getRefresherDomMethods=function(){return{activate:m,deactivate:g,start:v,show:_,hide:y,tail:b}},S.__handleTouchmove=u,S.__getScrollChild=function(){return L},S.__getScrollParent=function(){return w}}]),r.controller("$ionicScroll",["$scope","scrollViewOptions","$timeout","$window","$location","$document","$ionicScrollDelegate","$ionicHistory",function(e,t,n,i,r,o,a,l){var u=this;u.__timeout=n,u._scrollViewOptions=t,u.isNative=function(){return!!t.nativeScrolling};var d,h=u.element=t.el,f=u.$element=c(h);d=u.isNative()?u.scrollView=new ionic.views.ScrollNative(t):u.scrollView=new ionic.views.Scroll(t),(f.parent().length?f.parent():f).data("$$ionicScrollController",u);var p=a._registerInstance(u,t.delegateHandle,(function(){return l.isActiveScope(e)}));s(t.bouncing)||ionic.Platform.ready((function(){d&&d.options&&(d.options.bouncing=!0,ionic.Platform.isAndroid()&&(d.options.bouncing=!1,d.options.deceleration=.95))}));var m=angular.bind(d,d.resize);angular.element(i).on("resize",m);var g=function(t){var n=(t.originalEvent||t).detail||{};e.$onScroll&&e.$onScroll({event:t,scrollTop:n.scrollTop||0,scrollLeft:n.scrollLeft||0})};f.on("scroll",g),e.$on("$destroy",(function(){p(),d&&d.__cleanup&&d.__cleanup(),angular.element(i).off("resize",m),f&&f.off("scroll",g),u._scrollViewOptions&&(u._scrollViewOptions.el=null),t&&(t.el=null),d=u.scrollView=t=u._scrollViewOptions=h=u.$element=f=null})),n((function(){d&&d.run&&d.run()})),u.getScrollView=function(){return d},u.getScrollPosition=function(){return d.getValues()},u.resize=function(){return n(m,0,!1).then((function(){f&&f.triggerHandler("scroll-resize")}))},u.scrollTop=function(e){u.resize().then((function(){d&&d.scrollTo(0,0,!!e)}))},u.scrollBottom=function(e){u.resize().then((function(){if(d){var t=d.getScrollMax();d.scrollTo(t.left,t.top,!!e)}}))},u.scrollTo=function(e,t,n){u.resize().then((function(){d&&d.scrollTo(e,t,!!n)}))},u.zoomTo=function(e,t,n,i){u.resize().then((function(){d&&d.zoomTo(e,!!t,n,i)}))},u.zoomBy=function(e,t,n,i){u.resize().then((function(){d&&d.zoomBy(e,!!t,n,i)}))},u.scrollBy=function(e,t,n){u.resize().then((function(){d&&d.scrollBy(e,t,!!n)}))},u.anchorScroll=function(e){u.resize().then((function(){if(d){var t=r.hash(),n=t&&o[0].getElementById(t);if(!t||!n)return void d.scrollTo(0,0,!!e);var i=n,a=0,s=0;do{null!==i&&(a+=i.offsetLeft),null!==i&&(s+=i.offsetTop),i=i.offsetParent}while(i.attributes!=u.element.attributes&&i.offsetParent);d.scrollTo(a,s,!!e)}}))},u.freezeScroll=d.freeze,u.freezeScrollShut=d.freezeShut,u.freezeAllScrolls=function(e){for(var t=0;t<a._instances.length;t++)a._instances[t].freezeScroll(e)},u._setRefresher=function(e,t,n){u.refresher=t;var i=u.refresher.clientHeight||60;d.activatePullToRefresh(i,n)}}]),r.controller("$ionicSideMenus",["$scope","$attrs","$ionicSideMenuDelegate","$ionicPlatform","$ionicBody","$ionicHistory","$ionicScrollDelegate","IONIC_BACK_PRIORITY","$rootScope",function(e,t,n,i,r,o,a,s,u){var c,h,f,p,m,g,v,_=this,y=!0;_.$scope=e,_.initialize=function(e){_.left=e.left,_.right=e.right,_.setContent(e.content),_.dragThresholdX=e.dragThresholdX||10,o.registerHistory(_.$scope)},_.setContent=function(e){e&&(_.content=e,_.content.onDrag=function(e){_._handleDrag(e)},_.content.endDrag=function(e){_._endDrag(e)})},_.isOpenLeft=function(){return _.getOpenAmount()>0},_.isOpenRight=function(){return _.getOpenAmount()<0},_.toggleLeft=function(e){if(!v&&_.left.isEnabled){var t=_.getOpenAmount();0===arguments.length&&(e=0>=t),_.content.enableAnimation(),e?(_.openPercentage(100),u.$emit("$ionicSideMenuOpen","left")):(_.openPercentage(0),u.$emit("$ionicSideMenuClose","left"))}},_.toggleRight=function(e){if(!v&&_.right.isEnabled){var t=_.getOpenAmount();0===arguments.length&&(e=t>=0),_.content.enableAnimation(),e?(_.openPercentage(-100),u.$emit("$ionicSideMenuOpen","right")):(_.openPercentage(0),u.$emit("$ionicSideMenuClose","right"))}},_.toggle=function(e){"right"==e?_.toggleRight():_.toggleLeft()},_.close=function(){_.openPercentage(0),u.$emit("$ionicSideMenuClose","left"),u.$emit("$ionicSideMenuClose","right")},_.getOpenAmount=function(){return _.content&&_.content.getTranslateX()||0},_.getOpenRatio=function(){var e=_.getOpenAmount();return e>=0?e/_.left.width:e/_.right.width},_.isOpen=function(){return 0!==_.getOpenAmount()},_.getOpenPercentage=function(){return 100*_.getOpenRatio()},_.openPercentage=function(e){var t=e/100;_.left&&e>=0?_.openAmount(_.left.width*t):_.right&&0>e&&_.openAmount(_.right.width*t),r.enableClass(0!==e,"menu-open"),_.content.setCanScroll(0==e)},_.openAmount=function(e){var t=_.left&&_.left.width||0,n=_.right&&_.right.width||0;return(!_.left||!_.left.isEnabled)&&e>0||(!_.right||!_.right.isEnabled)&&0>e?void _.content.setTranslateX(0):h&&e>t?void _.content.setTranslateX(t):c&&-n>e?void _.content.setTranslateX(-n):(_.content.setTranslateX(e),h=e>0,c=0>e,void(e>0?(_.right&&_.right.pushDown&&_.right.pushDown(),_.left&&_.left.bringUp&&_.left.bringUp()):(_.right&&_.right.bringUp&&_.right.bringUp(),_.left&&_.left.pushDown&&_.left.pushDown())))},_.snapToRest=function(e){_.content.enableAnimation(),f=!1;var t=_.getOpenRatio();if(0!==t){var n=.3,i=e.gesture.velocityX,r=e.gesture.direction;t>0&&.5>t&&"right"==r&&n>i?_.openPercentage(0):t>.5&&"left"==r&&n>i?_.openPercentage(100):0>t&&t>-.5&&"left"==r&&n>i?_.openPercentage(0):.5>t&&"right"==r&&n>i?_.openPercentage(-100):"right"==r&&t>=0&&(t>=.5||i>n)?_.openPercentage(100):"left"==r&&0>=t&&(-.5>=t||i>n)?_.openPercentage(-100):_.openPercentage(0)}else _.openPercentage(0)},_.enableMenuWithBackViews=function(e){return arguments.length&&(y=!!e),y},_.isAsideExposed=function(){return!!v},_.exposeAside=function(e){(_.left&&_.left.isEnabled||_.right&&_.right.isEnabled)&&(_.close(),v=e,_.left&&_.left.isEnabled&&_.right&&_.right.isEnabled?_.content.setMarginLeftAndRight(v?_.left.width:0,v?_.right.width:0):_.left&&_.left.isEnabled?_.content.setMarginLeft(v?_.left.width:0):_.right&&_.right.isEnabled&&_.content.setMarginRight(v?_.right.width:0),_.$scope.$emit("$ionicExposeAside",v))},_.activeAsideResizing=function(e){r.enableClass(e,"aside-resizing")},_._endDrag=function(e){v||(f&&_.snapToRest(e),p=null,m=null,g=null)},_._handleDrag=function(t){!v&&e.dragContent&&(p?m=t.gesture.touches[0].pageX:(p=t.gesture.touches[0].pageX,m=p),!f&&Math.abs(m-p)>_.dragThresholdX&&(p=m,f=!0,_.content.disableAnimation(),g=_.getOpenAmount()),f&&_.openAmount(g+(m-p)))},_.canDragContent=function(t){return arguments.length&&(e.dragContent=!!t),e.dragContent},_.edgeThreshold=25,_.edgeThresholdEnabled=!1,_.edgeDragThreshold=function(e){return arguments.length&&(l(e)&&e>0?(_.edgeThreshold=e,_.edgeThresholdEnabled=!0):_.edgeThresholdEnabled=!!e),_.edgeThresholdEnabled},_.isDraggableTarget=function(t){var n=_.edgeThresholdEnabled&&!_.isOpen(),i=t.gesture.startEvent&&t.gesture.startEvent.center&&t.gesture.startEvent.center.pageX,r=!n||i<=_.edgeThreshold||i>=_.content.element.offsetWidth-_.edgeThreshold,a=o.backView(),s=!!y||!a;if(!s){var l=o.currentView()||{};return r&&a.historyId!==l.historyId}return(e.dragContent||_.isOpen())&&r&&!t.gesture.srcEvent.defaultPrevented&&s&&!t.target.tagName.match(/input|textarea|select|object|embed/i)&&!t.target.isContentEditable&&!(t.target.dataset?t.target.dataset.preventScroll:"true"==t.target.getAttribute("data-prevent-scroll"))},e.sideMenuContentTranslateX=0;var b=d,w=angular.bind(_,_.close);e.$watch((function(){return 0!==_.getOpenAmount()}),(function(e){b(),e&&(b=i.registerBackButtonAction(w,s.sideMenu))}));var L=n._registerInstance(_,t.delegateHandle,(function(){return o.isActiveScope(e)}));e.$on("$destroy",(function(){L(),b(),_.$scope=null,_.content&&(_.content.setCanScroll(!0),_.content.element=null,_.content=null)})),_.initialize({left:{width:275},right:{width:275}})}]),function(e){function t(e,i,r,o){var a,s,l,u=document.createElement(d[e]||e);for(a in i)if(angular.isArray(i[a]))for(s=0;s<i[a].length;s++)if(i[a][s].fn)for(l=0;l<i[a][s].t;l++)t(a,i[a][s].fn(l,o),u,o);else t(a,i[a][s],u,o);else n(u,a,i[a]);r.appendChild(u)}function n(e,t,n){e.setAttribute(d[t]||t,n)}function i(e,t){var n=e.split(";"),i=n.slice(t),r=n.slice(0,n.length-i.length);return(n=i.concat(r).reverse()).join(";")+";"+n[0]}var o="translate(32,32)",a="stroke-opacity",s="round",l="indefinite",u="750ms",c="none",d={a:"animate",an:"attributeName",at:"animateTransform",c:"circle",da:"stroke-dasharray",os:"stroke-dashoffset",f:"fill",lc:"stroke-linecap",rc:"repeatCount",sw:"stroke-width",t:"transform",v:"values"},h={v:"0,32,32;360,32,32",an:"transform",type:"rotate",rc:l,dur:u},f={sw:4,lc:s,line:[{fn:function(e,t){return{y1:"ios"==t?17:12,y2:"ios"==t?29:20,t:o+" rotate("+(30*e+(6>e?180:-180))+")",a:[{fn:function(){return{an:a,dur:u,v:i("0;.1;.15;.25;.35;.45;.55;.65;.7;.85;1",e),rc:l}},t:1}]}},t:12}]},p={android:{c:[{sw:6,da:128,os:82,r:26,cx:32,cy:32,f:c}]},ios:f,"ios-small":f,bubbles:{sw:0,c:[{fn:function(e){return{cx:24*Math.cos(2*Math.PI*e/8),cy:24*Math.sin(2*Math.PI*e/8),t:o,a:[{fn:function(){return{an:"r",dur:u,v:i("1;2;3;4;5;6;7;8",e),rc:l}},t:1}]}},t:8}]},circles:{c:[{fn:function(e){return{r:5,cx:24*Math.cos(2*Math.PI*e/8),cy:24*Math.sin(2*Math.PI*e/8),t:o,sw:0,a:[{fn:function(){return{an:"fill-opacity",dur:u,v:i(".3;.3;.3;.4;.7;.85;.9;1",e),rc:l}},t:1}]}},t:8}]},crescent:{c:[{sw:4,da:128,os:82,r:26,cx:32,cy:32,f:c,at:[h]}]},dots:{c:[{fn:function(e){return{cx:16+16*e,cy:32,sw:0,a:[{fn:function(){return{an:"fill-opacity",dur:u,v:i(".5;.6;.8;1;.8;.6;.5",e),rc:l}},t:1},{fn:function(){return{an:"r",dur:u,v:i("4;5;6;5;4;3;3",e),rc:l}},t:1}]}},t:3}]},lines:{sw:7,lc:s,line:[{fn:function(e){return{x1:10+14*e,x2:10+14*e,a:[{fn:function(){return{an:"y1",dur:u,v:i("16;18;28;18;16",e),rc:l}},t:1},{fn:function(){return{an:"y2",dur:u,v:i("48;44;36;46;48",e),rc:l}},t:1},{fn:function(){return{an:a,dur:u,v:i("1;.8;.5;.4;1",e),rc:l}},t:1}]}},t:4}]},ripple:{f:c,"fill-rule":"evenodd",sw:3,circle:[{fn:function(e){return{cx:32,cy:32,a:[{fn:function(){return{an:"r",begin:-1*e+"s",dur:"2s",v:"0;24",keyTimes:"0;1",keySplines:"0.1,0.2,0.3,1",calcMode:"spline",rc:l}},t:1},{fn:function(){return{an:a,begin:-1*e+"s",dur:"2s",v:".2;1;.2;0",rc:l}},t:1}]}},t:2}]},spiral:{defs:[{linearGradient:[{id:"sGD",gradientUnits:"userSpaceOnUse",x1:55,y1:46,x2:2,y2:46,stop:[{offset:.1,class:"stop1"},{offset:1,class:"stop2"}]}]}],g:[{sw:4,lc:s,f:c,path:[{stroke:"url(#sGD)",d:"M4,32 c0,15,12,28,28,28c8,0,16-4,21-9"},{d:"M60,32 C60,16,47.464,4,32,4S4,16,4,32"}],at:[h]}]}},m={android:function(t){function i(){if(!r.stop){var t=function(e,t){return 1>(e/=325)?.5*e*e*e:.5*((e-=2)*e*e+2)}(Date.now()-o),c=1,d=0,h=188-58*t,f=182-182*t;a%2&&(c=-1,d=-64,h=128- -58*t,f=182*t);var p=[0,-101,-90,-11,-180,79,-270,-191][a];n(u,"da",Math.max(Math.min(h,188),128)),n(u,"os",Math.max(Math.min(f,182),0)),n(u,"t","scale("+c+",1) translate("+d+",0) rotate("+p+",32,32)"),(s+=4.1)>359&&(s=0),n(l,"t","rotate("+s+",32,32)"),t>=1&&(++a>7&&(a=0),o=Date.now()),e.requestAnimationFrame(i)}}var r={};this.stop=!1;var o,a=0,s=0,l=t.querySelector("g"),u=t.querySelector("circle");return function(){return o=Date.now(),i(),r}}};r.controller("$ionicSpinner",["$element","$attrs","$ionicConfig",function(e,n,i){var r,o;this.init=function(){r=n.icon||i.spinner.icon();var o=document.createElement("div");return t("svg",{viewBox:"0 0 64 64",g:[p[r]]},o,r),e.html(o.innerHTML),this.start(),r},this.start=function(){m[r]&&(o=m[r](e[0])())},this.stop=function(){m[r]&&(o.stop=!0)}}])}(ionic),r.controller("$ionicTab",["$scope","$ionicHistory","$attrs","$location","$state",function(e,t,n,i,r){this.$scope=e,this.hrefMatchesState=function(){return n.href&&0===i.path().indexOf(n.href.replace(/^#/,"").replace(/\/$/,""))},this.srefMatchesState=function(){return n.uiSref&&r.includes(n.uiSref.split("(")[0])},this.navNameMatchesState=function(){return this.navViewName&&t.isCurrentStateNavView(this.navViewName)},this.tabMatchesState=function(){return this.hrefMatchesState()||this.srefMatchesState()||this.navNameMatchesState()}}]),r.controller("$ionicTabs",["$scope","$element","$ionicHistory",function(e,t,n){var i,r=this,o=null,s=null,u=!0;r.tabs=[],r.selectedIndex=function(){return r.tabs.indexOf(o)},r.selectedTab=function(){return o},r.previousSelectedTab=function(){return s},r.add=function(e){
+n.registerHistory(e),r.tabs.push(e)},r.remove=function(e){var t=r.tabs.indexOf(e);if(-1!==t){if(e.$tabSelected)if(r.deselect(e),1===r.tabs.length);else{var n=t===r.tabs.length-1?t-1:t+1;r.select(r.tabs[n])}r.tabs.splice(t,1)}},r.deselect=function(e){e.$tabSelected&&(s=o,o=i=null,e.$tabSelected=!1,(e.onDeselect||d)(),e.$broadcast&&e.$broadcast("$ionicHistory.deselect"))},r.select=function(t,s){var u;if(l(t)){if((u=t)>=r.tabs.length)return;t=r.tabs[u]}else u=r.tabs.indexOf(t);1===arguments.length&&(s=!(!t.navViewName&&!t.uiSref)),o&&o.$historyId==t.$historyId?s&&n.goToHistoryRoot(t.$historyId):i!==u&&(a(r.tabs,(function(e){r.deselect(e)})),o=t,i=u,r.$scope&&r.$scope.$parent&&(r.$scope.$parent.$activeHistoryId=t.$historyId),t.$tabSelected=!0,(t.onSelect||d)(),s&&e.$emit("$ionicHistory.change",{type:"tab",tabIndex:u,historyId:t.$historyId,navViewName:t.navViewName,hasNavView:!!t.navViewName,title:t.title,url:t.href,uiSref:t.uiSref}),e.$broadcast("tabSelected",{selectedTab:t,selectedTabIndex:u}))},r.hasActiveScope=function(){for(var e=0;e<r.tabs.length;e++)if(n.isActiveScope(r.tabs[e]))return!0;return!1},r.showBar=function(e){return arguments.length&&(e?t.removeClass("tabs-item-hide"):t.addClass("tabs-item-hide"),u=!!e),u}}]),r.controller("$ionicView",["$scope","$element","$attrs","$compile","$rootScope",function(e,t,n,i,r){function a(){var t=s(n.viewTitle)?"viewTitle":s(n.title)&&"title";t&&(l(n[t]),v.push(n.$observe(t,l))),s(n.hideBackButton)&&v.push(e.$watch(n.hideBackButton,(function(e){h.showBackButton(!e)}))),s(n.hideNavBar)&&v.push(e.$watch(n.hideNavBar,(function(e){h.showBar(!e)})))}function l(e){s(e)&&e!==p&&(p=e,h.title(p))}function u(){for(var e=0;e<v.length;e++)v[e]();v=[]}function c(t){return t?i(t)(e.$new()):void 0}function d(t){return!!e.$eval(n[t])}var h,f,p,m=this,g={},v=[],_=e.$on("ionNavBar.init",(function(e,t){e.stopPropagation(),f=t}));m.init=function(){_();var n=t.inheritedData("$ionModalController");(h=t.inheritedData("$ionNavViewController"))&&!n&&(e.$on("$ionicView.beforeEnter",m.beforeEnter),e.$on("$ionicView.afterEnter",a),e.$on("$ionicView.beforeLeave",u))},m.beforeEnter=function(t,i){if(i&&!i.viewNotified){i.viewNotified=!0,r.$$phase||e.$digest(),p=s(n.viewTitle)?n.viewTitle:n.title;var a={};for(var l in g)a[l]=c(g[l]);h.beforeEnter(o(i,{title:p,showBack:!d("hideBackButton"),navBarItems:a,navBarDelegate:f||null,showNavBar:!d("hideNavBar"),hasHeaderBar:!1})),u()}},m.navElement=function(e,t){g[e]=t}}]),r.directive("ionActionSheet",["$document",function(e){return{restrict:"E",scope:!0,replace:!0,link:function(t,n){var i=function(e){27==e.which&&(t.cancel(),t.$apply())};t.$on("$destroy",(function(){n.remove(),e.unbind("keyup",i)})),e.bind("keyup",i),n.bind("click",(function(e){e.target==n[0]&&(t.cancel(),t.$apply())}))},template:'<div class="action-sheet-backdrop"><div class="action-sheet-wrapper"><div class="action-sheet" ng-class="{\'action-sheet-has-icons\': $actionSheetHasIcon}"><div class="action-sheet-group action-sheet-options"><div class="action-sheet-title" ng-if="titleText" ng-bind-html="titleText"></div><button class="button action-sheet-option" ng-click="buttonClicked($index)" ng-class="b.className" ng-repeat="b in buttons" ng-bind-html="b.text"></button><button class="button destructive action-sheet-destructive" ng-if="destructiveText" ng-click="destructiveButtonClicked()" ng-bind-html="destructiveText"></button></div><div class="action-sheet-group action-sheet-cancel" ng-if="cancelText"><button class="button" ng-click="cancel()" ng-bind-html="cancelText"></button></div></div></div></div>'}}]),r.directive("ionCheckbox",["$ionicConfig",function(e){return{restrict:"E",replace:!0,require:"?ngModel",transclude:!0,template:'<label class="item item-checkbox"><div class="checkbox checkbox-input-hidden disable-pointer-events"><input type="checkbox"><i class="checkbox-icon"></i></div><div class="item-content disable-pointer-events" ng-transclude></div></label>',compile:function(t,n){var i=t.find("input");a({name:n.name,"ng-value":n.ngValue,"ng-model":n.ngModel,"ng-checked":n.ngChecked,"ng-disabled":n.ngDisabled,"ng-true-value":n.ngTrueValue,"ng-false-value":n.ngFalseValue,"ng-change":n.ngChange,"ng-required":n.ngRequired,required:n.required},(function(e,t){s(e)&&i.attr(t,e)})),t[0].querySelector(".checkbox").classList.add("checkbox-"+e.form.checkbox())}}}]),r.directive("collectionRepeat",e).factory("$ionicCollectionManager",t);var f="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",p=/height:.*?px;\s*width:.*?px/,m=3;e.$inject=["$ionicCollectionManager","$parse","$window","$$rAF","$rootScope","$timeout"],t.$inject=["$rootScope","$window","$$rAF"],r.directive("ionContent",["$timeout","$controller","$ionicBind","$ionicConfig",function(e,t,n,i){return{restrict:"E",require:"^?ionNavView",scope:!0,priority:800,compile:function(e,r){var o,a;e.addClass("scroll-content ionic-scroll"),"false"!=r.scroll?((o=c('<div class="scroll"></div>')).append(e.contents()),e.append(o)):e.addClass("scroll-content-false");var l="false"!==r.overflowScroll&&("true"===r.overflowScroll||!i.scrolling.jsScrolling());return l&&(l=!e[0].querySelector("[collection-repeat]")),{pre:function(e,i,u){var c=e.$parent;if(e.$watch((function(){return(c.$hasHeader?" has-header":"")+(c.$hasSubheader?" has-subheader":"")+(c.$hasFooter?" has-footer":"")+(c.$hasSubfooter?" has-subfooter":"")+(c.$hasTabs?" has-tabs":"")+(c.$hasTabsTop?" has-tabs-top":"")}),(function(e,t){i.removeClass(t),i.addClass(e)})),e.$hasHeader=e.$hasSubheader=e.$hasFooter=e.$hasSubfooter=e.$hasTabs=e.$hasTabsTop=!1,n(e,u,{$onScroll:"&onScroll",$onScrollComplete:"&onScrollComplete",hasBouncing:"@",padding:"@",direction:"@",scrollbarX:"@",scrollbarY:"@",startX:"@",startY:"@",scrollEventInterval:"@"}),e.direction=e.direction||"y",s(u.padding)&&e.$watch(u.padding,(function(e){(o||i).toggleClass("padding",!!e)})),"false"===u.scroll);else{var h={};l?(i.addClass("overflow-scroll"),h={el:i[0],delegateHandle:r.delegateHandle,startX:e.$eval(e.startX)||0,startY:e.$eval(e.startY)||0,nativeScrolling:!0}):h={el:i[0],delegateHandle:r.delegateHandle,locking:"true"===(r.locking||"true"),bouncing:e.$eval(e.hasBouncing),startX:e.$eval(e.startX)||0,startY:e.$eval(e.startY)||0,scrollbarX:!1!==e.$eval(e.scrollbarX),scrollbarY:!1!==e.$eval(e.scrollbarY),scrollingX:e.direction.indexOf("x")>=0,scrollingY:e.direction.indexOf("y")>=0,scrollEventInterval:parseInt(e.scrollEventInterval,10)||10,scrollingComplete:function(){e.$onScrollComplete({scrollTop:a.scrollView.__scrollTop,scrollLeft:a.scrollView.__scrollLeft})}},a=t("$ionicScroll",{$scope:e,scrollViewOptions:h}),e.scrollCtrl=a,e.$on("$destroy",(function(){h&&(h.scrollingComplete=d,delete h.el),o=null,i=null,r.$$element=null}))}}}}}}]),r.directive("exposeAsideWhen",["$window",function(e){return{restrict:"A",require:"^ionSideMenus",link:function(t,n,i,r){function o(){var t="large"==i.exposeAsideWhen?"(min-width:768px)":i.exposeAsideWhen;r.exposeAside(e.matchMedia(t).matches),r.activeAsideResizing(!1)}var a=e.innerWidth,s=e.innerHeight;ionic.on("resize",(function(){(a!==e.innerWidth||s!==e.innerHeight)&&(a=e.innerWidth,s=e.innerHeight,r.activeAsideResizing(!0),l())}),e);var l=ionic.debounce((function(){t.$apply(o)}),300,!1);t.$evalAsync(o)}}}]),"onHold onTap onDoubleTap onTouch onRelease onDragStart onDrag onDragEnd onDragUp onDragRight onDragDown onDragLeft onSwipe onSwipeUp onSwipeRight onSwipeDown onSwipeLeft".split(" ").forEach((function(e){r.directive(e,function(e){return["$ionicGesture","$parse",function(t,n){var i=e.substr(2).toLowerCase();return function(r,o,a){var s=n(a[e]),l=function(e){r.$apply((function(){s(r,{$event:e})}))},u=t.on(i,l,o);r.$on("$destroy",(function(){t.off(u,i,l)}))}}]}(e))})),r.directive("ionHeaderBar",n(!0)).directive("ionFooterBar",n(!1)),r.directive("ionInfiniteScroll",["$timeout",function(e){return{restrict:"E",require:["?^$ionicScroll","ionInfiniteScroll"],template:function(e,t){return t.icon?'<i class="icon {{icon()}} icon-refreshing {{scrollingType}}"></i>':'<ion-spinner icon="{{spinner()}}"></ion-spinner>'},scope:!0,controller:"$ionInfiniteScroll",link:function(t,n,i,r){var o=r[1],a=o.scrollCtrl=r[0];if(o.jsScrolling=!a.isNative())o.scrollView=a.scrollView,t.scrollingType="js-scrolling",a.$element.on("scroll",o.checkBounds);else{var l=ionic.DomUtil.getParentOrSelfWithClass(n[0].parentNode,"overflow-scroll");if(o.scrollEl=l,!l)throw"Infinite scroll must be used inside a scrollable div";o.scrollEl.addEventListener("scroll",o.checkBounds)}(!s(i.immediateCheck)||t.$eval(i.immediateCheck))&&e((function(){o.checkBounds()}))}}}]);var g=-1;r.directive("ionInput",[function(){return{restrict:"E",controller:["$scope","$element",function(e,t){this.$scope=e,this.$element=t,this.setInputAriaLabeledBy=function(e){var n=t[0].querySelectorAll("input,textarea");n.length&&n[0].setAttribute("aria-labelledby",e)},this.focus=function(){var e=t[0].querySelectorAll("input,textarea");e.length&&e[0].focus()}}]}}]),r.directive("ionLabel",[function(){return{restrict:"E",require:"?^ionInput",compile:function(){return function(e,t,n,i){var r=t[0];t.addClass("input-label"),t.attr("aria-label",t.text());var o=r.id||"_label-"+ ++g;r.id||t.attr("id",o),i&&(i.setInputAriaLabeledBy(o),t.on("click",(function(){i.focus()})))}}}}]),r.directive("inputLabel",[function(){return{restrict:"C",require:"?^ionInput",compile:function(){return function(e,t,n,i){var r=t[0];t.attr("aria-label",t.text());var o=r.id||"_label-"+ ++g;r.id||t.attr("id",o),i&&i.setInputAriaLabeledBy(o)}}}}]),r.directive("ionItem",["$$rAF",function(e){return{restrict:"E",controller:["$scope","$element",function(e,t){this.$scope=e,this.$element=t}],scope:!0,compile:function(t,n){var i=s(n.href)||s(n.ngHref)||s(n.uiSref);if(i||/ion-(delete|option|reorder)-button/i.test(t.html())){var r=c(i?"<a></a>":"<div></div>");r.addClass("item-content"),(s(n.href)||s(n.ngHref))&&(r.attr("ng-href","{{$href()}}"),s(n.target)&&r.attr("target","{{$target()}}")),r.append(t.contents()),t.addClass("item item-complex").append(r)}else t.addClass("item");return function(t,n,i){t.$href=function(){return i.href||i.ngHref},t.$target=function(){return i.target};var r=n[0].querySelector(".item-content");r&&t.$on("$collectionRepeatLeave",(function(){r&&r.$$ionicOptionsOpen&&(r.style[ionic.CSS.TRANSFORM]="",r.style[ionic.CSS.TRANSITION]="none",e((function(){r.style[ionic.CSS.TRANSITION]=""})),r.$$ionicOptionsOpen=!1)}))}}}}]),r.directive("ionDeleteButton",(function(){function e(e){e.stopPropagation()}return{restrict:"E",require:["^^ionItem","^?ionList"],priority:Number.MAX_VALUE,compile:function(t,n){return n.$set("class",(n.class||"")+" button icon button-icon",!0),function(t,n,i,r){function o(){(s=s||n.controller("ionList"))&&s.showDelete()&&l.addClass("visible active")}var a=r[0],s=r[1],l=c('<div class="item-left-edit item-delete enable-pointer-events"></div>');l.append(n),a.$element.append(l).addClass("item-left-editable"),n.on("click",e),o(),t.$on("$ionic.reconnectScope",o)}}}})),r.directive("itemFloatingLabel",(function(){return{restrict:"C",link:function(e,t){var n=t[0],i=n.querySelector("input, textarea"),r=n.querySelector(".input-label");if(i&&r){var o=function(){i.value?r.classList.add("has-input"):r.classList.remove("has-input")};i.addEventListener("input",o);var a=c(i).controller("ngModel");a&&(a.$render=function(){i.value=a.$viewValue||"",o()}),e.$on("$destroy",(function(){i.removeEventListener("input",o)}))}}}})),r.directive("ionOptionButton",[function(){function e(e){e.stopPropagation()}return{restrict:"E",require:"^ionItem",priority:Number.MAX_VALUE,compile:function(t,n){return n.$set("class",(n.class||"")+" button",!0),function(t,n,i,r){r.optionsContainer||(r.optionsContainer=c('<div class="item-options invisible"></div>'),r.$element.prepend(r.optionsContainer)),r.optionsContainer.prepend(n),r.$element.addClass("item-right-editable"),n.on("click",e)}}}}]),r.directive("ionReorderButton",["$parse",function(e){return{restrict:"E",require:["^ionItem","^?ionList"],priority:Number.MAX_VALUE,compile:function(t,n){return n.$set("class",(n.class||"")+" button icon button-icon",!0),t[0].setAttribute("data-prevent-scroll",!0),function(t,n,i,r){var o=r[0],a=r[1],s=e(i.onReorder);t.$onReorder=function(e,n){s(t,{$fromIndex:e,$toIndex:n})},i.ngClick||i.onClick||i.onclick||(n[0].onclick=function(e){return e.stopPropagation(),!1});var l=c('<div data-prevent-scroll="true" class="item-right-edit item-reorder enable-pointer-events"></div>');l.append(n),o.$element.append(l).addClass("item-right-editable"),a&&a.showReorder()&&l.addClass("visible active")}}}}]),r.directive("keyboardAttach",(function(){return function(e,t){function n(e){if(!ionic.Platform.isAndroid()||ionic.Platform.isFullScreen){var n=e.keyboardHeight||e.detail&&e.detail.keyboardHeight;t.css("bottom",n+"px"),(r=t.controller("$ionicScroll"))&&(r.scrollView.__container.style.bottom=n+function(e){return e.clientHeight}(t[0])+"px")}}function i(){(!ionic.Platform.isAndroid()||ionic.Platform.isFullScreen)&&(t.css("bottom",""),r&&(r.scrollView.__container.style.bottom=""))}var r;ionic.on("native.keyboardshow",n,window),ionic.on("native.keyboardhide",i,window),ionic.on("native.showkeyboard",n,window),ionic.on("native.hidekeyboard",i,window),e.$on("$destroy",(function(){ionic.off("native.keyboardshow",n,window),ionic.off("native.keyboardhide",i,window),ionic.off("native.showkeyboard",n,window),ionic.off("native.hidekeyboard",i,window)}))}})),r.directive("ionList",["$timeout",function(e){return{restrict:"E",require:["ionList","^?$ionicScroll"],controller:"$ionicList",compile:function(t,n){var i=c('<div class="list">').append(t.contents()).addClass(n.type);return t.append(i),function(t,i,r,o){var a=o[0],l=o[1];e((function(){function r(e,t){t()&&e.addClass("visible")||e.removeClass("active"),ionic.requestAnimationFrame((function(){t()&&e.addClass("active")||e.removeClass("visible")}))}var o=a.listView=new ionic.views.ListView({el:i[0],listEl:i.children()[0],scrollEl:l&&l.element,scrollView:l&&l.scrollView,onReorder:function(t,n,i){var r=c(t).scope();r&&r.$onReorder&&e((function(){r.$onReorder(n,i)}))},canSwipe:function(){return a.canSwipeItems()}});t.$on("$destroy",(function(){o&&(o.deregister&&o.deregister(),o=null)})),s(n.canSwipe)&&t.$watch("!!("+n.canSwipe+")",(function(e){a.canSwipeItems(e)})),s(n.showDelete)&&t.$watch("!!("+n.showDelete+")",(function(e){a.showDelete(e)})),s(n.showReorder)&&t.$watch("!!("+n.showReorder+")",(function(e){a.showReorder(e)})),t.$watch((function(){return a.showDelete()}),(function(e,t){(e||t)&&(e&&a.closeOptionButtons(),a.canSwipeItems(!e),i.children().toggleClass("list-left-editing",e),i.toggleClass("disable-pointer-events",e),r(c(i[0].getElementsByClassName("item-delete")),a.showDelete))})),t.$watch((function(){return a.showReorder()}),(function(e,t){(e||t)&&(e&&a.closeOptionButtons(),a.canSwipeItems(!e),i.children().toggleClass("list-right-editing",e),i.toggleClass("disable-pointer-events",e),r(c(i[0].getElementsByClassName("item-reorder")),a.showReorder))}))}))}}}}]),r.directive("menuClose",["$ionicHistory","$timeout",function(e,t){return{restrict:"AC",link:function(n,i){i.bind("click",(function(){var n=i.inheritedData("$ionSideMenusController");n&&(e.nextViewOptions({historyRoot:!0,disableAnimate:!0,expire:300}),t((function(){e.nextViewOptions({historyRoot:!1,disableAnimate:!1})}),300),n.close())}))}}}]),r.directive("menuToggle",(function(){return{restrict:"AC",link:function(e,t,n){e.$on("$ionicView.beforeEnter",(function(e,n){n.enableBack?t.inheritedData("$ionSideMenusController").enableMenuWithBackViews()||t.addClass("hide"):t.removeClass("hide")})),t.bind("click",(function(){var e=t.inheritedData("$ionSideMenusController");e&&e.toggle(n.menuToggle)}))}}})),r.directive("ionModal",[function(){return{restrict:"E",transclude:!0,replace:!0,controller:[function(){}],template:'<div class="modal-backdrop"><div class="modal-backdrop-bg"></div><div class="modal-wrapper" ng-transclude></div></div>'}}]),r.directive("ionModalView",(function(){return{restrict:"E",compile:function(e){e.addClass("modal")}}})),r.directive("ionNavBackButton",["$ionicConfig","$document",function(e,t){return{restrict:"E",require:"^ionNavBar",compile:function(n,i){function r(e){return/ion-|icon/.test(e.className)}var o=t[0].createElement("button");for(var a in i.$attr)o.setAttribute(i.$attr[a],i[a]);i.ngClick||o.setAttribute("ng-click","$ionicGoBack()"),o.className="button back-button hide buttons "+(n.attr("class")||""),o.innerHTML=n.html()||"";for(var s,l,u,c,d=r(n[0]),h=0;h<n[0].childNodes.length;h++)1===(s=n[0].childNodes[h]).nodeType?r(s)?d=!0:s.classList.contains("default-title")?u=!0:s.classList.contains("previous-title")&&(c=!0):l||3!==s.nodeType||(l=!!s.nodeValue.trim());var f=e.backButton.icon();if(!d&&f&&"none"!==f&&(o.innerHTML='<i class="icon '+f+'"></i> '+o.innerHTML,o.className+=" button-clear"),!l){var p=t[0].createElement("span");p.className="back-text",!u&&e.backButton.text()&&(p.innerHTML+='<span class="default-title">'+e.backButton.text()+"</span>"),!c&&e.backButton.previousTitleText()&&(p.innerHTML+='<span class="previous-title"></span>'),o.appendChild(p)}return n.attr("class","hide"),n.empty(),{pre:function(e,t,n,i){i.navElement("backButton",o.outerHTML),o=null}}}}}]),r.directive("ionNavBar",(function(){return{restrict:"E",controller:"$ionicNavBar",scope:!0,link:function(e,t,n,i){i.init()}}})),r.directive("ionNavButtons",["$document",function(e){return{require:"^ionNavBar",restrict:"E",compile:function(t,n){var i="left";/^primary|secondary|right$/i.test(n.side||"")&&(i=n.side.toLowerCase());var r=e[0].createElement("span");r.className=i+"-buttons",r.innerHTML=t.html();var o=i+"Buttons";return t.attr("class","hide"),t.empty(),{pre:function(e,t,n,i){var a=t.parent().data("$ionViewController");a?a.navElement(o,r.outerHTML):i.navElement(o,r.outerHTML),r=null}}}}}]),r.directive("navDirection",["$ionicViewSwitcher",function(e){return{restrict:"A",priority:1e3,link:function(t,n,i){n.bind("click",(function(){e.nextDirection(i.navDirection)}))}}}]),r.directive("ionNavTitle",["$document",function(e){return{require:"^ionNavBar",restrict:"E",compile:function(t,n){var i="title",r=e[0].createElement("span");for(var o in n.$attr)r.setAttribute(n.$attr[o],n[o]);return r.classList.add("nav-bar-title"),r.innerHTML=t.html(),t.attr("class","hide"),t.empty(),{pre:function(e,t,n,o){var a=t.parent().data("$ionViewController");a?a.navElement(i,r.outerHTML):o.navElement(i,r.outerHTML),r=null}}}}}]),r.directive("navTransition",["$ionicViewSwitcher",function(e){return{restrict:"A",priority:1e3,link:function(t,n,i){n.bind("click",(function(){e.nextTransition(i.navTransition)}))}}}]),r.directive("ionNavView",["$state","$ionicConfig",function(e,t){return{restrict:"E",terminal:!0,priority:2e3,transclude:!0,controller:"$ionicNavView",compile:function(n,i,r){return n.addClass("view-container"),ionic.DomUtil.cachedAttr(n,"nav-view-transition",t.views.transition()),function(t,n,i,o){function a(t){var n=e.$current&&e.$current.locals[l.name];n&&(t||n!==s)&&(s=n,l.state=n.$$state,o.register(n))}var s;r(t,(function(e){n.append(e)}));var l=o.init();t.$on("$stateChangeSuccess",(function(){a(!1)})),t.$on("$viewContentLoading",(function(){a(!1)})),a(!0)}}}}]),r.config(["$provide",function(e){e.decorator("ngClickDirective",["$delegate",function(e){return e.shift(),e}])}]).factory("$ionicNgClick",["$parse",function(e){return function(t,n,i){var r=angular.isFunction(i)?i:e(i);n.on("click",(function(e){t.$apply((function(){r(t,{$event:e})}))})),n.onclick=d}}]).directive("ngClick",["$ionicNgClick",function(e){return function(t,n,i){e(t,n,i.ngClick)}}]).directive("ionStopEvent",(function(){return{restrict:"A",link:function(e,t,n){t.bind(n.ionStopEvent,i)}}})),r.directive("ionPane",(function(){return{restrict:"E",link:function(e,t){t.addClass("pane")}}})),r.directive("ionPopover",[function(){return{restrict:"E",transclude:!0,replace:!0,controller:[function(){}],template:'<div class="popover-backdrop"><div class="popover-wrapper" ng-transclude></div></div>'}}]),r.directive("ionPopoverView",(function(){return{restrict:"E",compile:function(e){e.append(c('<div class="popover-arrow">')),e.addClass("popover")}}})),r.directive("ionRadio",(function(){return{restrict:"E",replace:!0,require:"?ngModel",transclude:!0,template:'<label class="item item-radio"><input type="radio" name="radio-group"><div class="radio-content"><div class="item-content disable-pointer-events" ng-transclude></div><i class="radio-icon disable-pointer-events icon ion-checkmark"></i></div></label>',compile:function(e,t){t.icon&&e.find("i").removeClass("ion-checkmark").addClass(t.icon);var n=e.find("input");return a({name:t.name,value:t.value,disabled:t.disabled,"ng-value":t.ngValue,"ng-model":t.ngModel,"ng-disabled":t.ngDisabled,"ng-change":t.ngChange,"ng-required":t.ngRequired,required:t.required},(function(e,t){s(e)&&n.attr(t,e)})),function(e,t,n){e.getValue=function(){return e.ngValue||n.value}}}}})),r.directive("ionRefresher",[function(){return{restrict:"E",replace:!0,require:["?^$ionicScroll","ionRefresher"],controller:"$ionicRefresher",template:'<div class="scroll-refresher invisible" collection-repeat-ignore><div class="ionic-refresher-content" ng-class="{\'ionic-refresher-with-text\': pullingText || refreshingText}"><div class="icon-pulling" ng-class="{\'pulling-rotation-disabled\':disablePullingRotation}"><i class="icon {{pullingIcon}}"></i></div><div class="text-pulling" ng-bind-html="pullingText"></div><div class="icon-refreshing"><ion-spinner ng-if="showSpinner" icon="{{spinner}}"></ion-spinner><i ng-if="showIcon" class="icon {{refreshingIcon}}"></i></div><div class="text-refreshing" ng-bind-html="refreshingText"></div></div></div>',link:function(e,t,n,i){var r=i[0],o=i[1];!r||r.isNative()?o.init():(t[0].classList.add("js-scrolling"),r._setRefresher(e,t[0],o.getRefresherDomMethods()),e.$on("scroll.refreshComplete",(function(){e.$evalAsync((function(){r.scrollView&&r.scrollView.finishPullToRefresh()}))})))}}}]),r.directive("ionScroll",["$timeout","$controller","$ionicBind","$ionicConfig",function(e,t,n,i){return{restrict:"E",scope:!0,controller:function(){},compile:function(e,r){e.addClass("scroll-view ionic-scroll");var o=c('<div class="scroll"></div>');o.append(e.contents()),e.append(o);var a="false"!==r.overflowScroll&&("true"===r.overflowScroll||!i.scrolling.jsScrolling());return{pre:function(e,i,r){n(e,r,{direction:"@",paging:"@",$onScroll:"&onScroll",$onScrollComplete:"&onScrollComplete",scroll:"@",scrollbarX:"@",scrollbarY:"@",zooming:"@",minZoom:"@",maxZoom:"@"}),e.direction=e.direction||"y",s(r.padding)&&e.$watch(r.padding,(function(e){o.toggleClass("padding",!!e)})),!0===e.$eval(e.paging)&&o.addClass("scroll-paging"),e.direction||(e.direction="y");var l=!0===e.$eval(e.paging);a&&i.addClass("overflow-scroll"),i.addClass("scroll-"+e.direction);var u={el:i[0],delegateHandle:r.delegateHandle,locking:"true"===(r.locking||"true"),bouncing:e.$eval(r.hasBouncing),paging:l,scrollbarX:!1!==e.$eval(e.scrollbarX),scrollbarY:!1!==e.$eval(e.scrollbarY),scrollingX:e.direction.indexOf("x")>=0,scrollingY:e.direction.indexOf("y")>=0,zooming:!0===e.$eval(e.zooming),maxZoom:e.$eval(e.maxZoom)||3,minZoom:e.$eval(e.minZoom)||.5,preventDefault:!0,nativeScrolling:a,scrollingComplete:function(){e.$onScrollComplete&&e.$onScrollComplete({scrollTop:c.scrollView.__scrollTop,scrollLeft:c.scrollView.__scrollLeft})}};l&&(u.speedMultiplier=.8,u.bouncing=!1);var c=t("$ionicScroll",{$scope:e,scrollViewOptions:u})}}}}}]),r.directive("ionSideMenu",(function(){return{restrict:"E",require:"^ionSideMenus",scope:!0,compile:function(e,t){return angular.isUndefined(t.isEnabled)&&t.$set("isEnabled","true"),angular.isUndefined(t.width)&&t.$set("width","275"),e.addClass("menu menu-"+t.side),function(e,n,i,r){e.side=i.side||"left";var o=r[e.side]=new ionic.views.SideMenu({width:t.width,el:n[0],isEnabled:!0});e.$watch(i.width,(function(e){var t=+e;t&&t==e&&o.setWidth(+e)})),e.$watch(i.isEnabled,(function(e){o.setIsEnabled(!!e)}))}}}})),r.directive("ionSideMenuContent",["$timeout","$ionicGesture","$window",function(e,t,n){return{restrict:"EA",require:"^ionSideMenus",scope:!0,compile:function(i,r){return i.addClass("menu-content pane"),{pre:function(o,a,l,u){function c(e){0!==u.getOpenAmount()?(u.close(),e.gesture.srcEvent.preventDefault(),m=null,g=null):m||(m=ionic.tap.pointerCoord(e.gesture.srcEvent))}function d(e){u.isDraggableTarget(e)&&"x"==p(e)&&(u._handleDrag(e),e.gesture.srcEvent.preventDefault())}function h(e){"x"==p(e)&&e.gesture.srcEvent.preventDefault()}function f(e){u._endDrag(e),m=null,g=null}function p(e){if(g)return g;if(e&&e.gesture){if(m){var t=ionic.tap.pointerCoord(e.gesture.srcEvent),n=Math.abs(t.x-m.x),i=Math.abs(t.y-m.y),r=i>n?"y":"x";return Math.max(n,i)>30&&(g=r),r}m=ionic.tap.pointerCoord(e.gesture.srcEvent)}return"y"}var m=null,g=null;s(r.dragContent)?o.$watch(r.dragContent,(function(e){u.canDragContent(e)})):u.canDragContent(!0),s(r.edgeDragThreshold)&&o.$watch(r.edgeDragThreshold,(function(e){u.edgeDragThreshold(e)}));var v={element:i[0],onDrag:function(){},endDrag:function(){},setCanScroll:function(e){var t=a[0].querySelector(".scroll");if(t){var n=angular.element(t.parentElement);if(n){var i=n.scope();i.scrollCtrl&&i.scrollCtrl.freezeScrollShut(!e)}}},getTranslateX:function(){return o.sideMenuContentTranslateX||0},setTranslateX:ionic.animationFrameThrottle((function(t){var n=v.offsetX+t;a[0].style[ionic.CSS.TRANSFORM]="translate3d("+n+"px,0,0)",e((function(){o.sideMenuContentTranslateX=t}))})),setMarginLeft:ionic.animationFrameThrottle((function(e){e?(e=parseInt(e,10),a[0].style[ionic.CSS.TRANSFORM]="translate3d("+e+"px,0,0)",a[0].style.width=n.innerWidth-e+"px",v.offsetX=e):(a[0].style[ionic.CSS.TRANSFORM]="translate3d(0,0,0)",a[0].style.width="",v.offsetX=0)})),setMarginRight:ionic.animationFrameThrottle((function(e){e?(e=parseInt(e,10),a[0].style.width=n.innerWidth-e+"px",v.offsetX=e):(a[0].style.width="",v.offsetX=0),a[0].style[ionic.CSS.TRANSFORM]="translate3d(0,0,0)"})),setMarginLeftAndRight:ionic.animationFrameThrottle((function(e,t){var i=(e=e&&parseInt(e,10)||0)+(t=t&&parseInt(t,10)||0);i>0?(a[0].style[ionic.CSS.TRANSFORM]="translate3d("+e+"px,0,0)",a[0].style.width=n.innerWidth-i+"px",v.offsetX=e):(a[0].style[ionic.CSS.TRANSFORM]="translate3d(0,0,0)",a[0].style.width="",v.offsetX=0)})),enableAnimation:function(){o.animationEnabled=!0,a[0].classList.add("menu-animated")},disableAnimation:function(){o.animationEnabled=!1,a[0].classList.remove("menu-animated")},offsetX:0};u.setContent(v);var _={stop_browser_behavior:!1,prevent_default_directions:["left","right"]},y=t.on("tap",c,a,_),b=t.on("dragright",d,a,_),w=t.on("dragleft",d,a,_),L=t.on("dragup",h,a,_),M=t.on("dragdown",h,a,_),k=t.on("release",f,a,_);o.$on("$destroy",(function(){v&&(v.element=null,v=null),t.off(w,"dragleft",d),t.off(b,"dragright",d),t.off(L,"dragup",h),t.off(M,"dragdown",h),t.off(k,"release",f),t.off(y,"tap",c)}))}}}}}]),r.directive("ionSideMenus",["$ionicBody",function(e){return{restrict:"ECA",controller:"$ionicSideMenus",compile:function(t,n){return n.$set("class",(n.class||"")+" view"),{pre:function(t,n,i,r){r.enableMenuWithBackViews(t.$eval(i.enableMenuWithBackViews)),t.$on("$ionicExposeAside",(function(n,i){t.$exposeAside||(t.$exposeAside={}),t.$exposeAside.active=i,e.enableClass(i,"aside-open")})),t.$on("$ionicView.beforeEnter",(function(e,n){n.historyId&&(t.$activeHistoryId=n.historyId)})),t.$on("$destroy",(function(){e.removeClass("menu-open","aside-open")}))}}}}}]),r.directive("ionSlideBox",["$animate","$timeout","$compile","$ionicSlideBoxDelegate","$ionicHistory","$ionicScrollDelegate",function(e,t,n,i,r,o){return{restrict:"E",replace:!0,transclude:!0,scope:{autoPlay:"=",doesContinue:"@",slideInterval:"@",showPager:"@",pagerClick:"&",disableScroll:"@",onSlideChanged:"&",activeSlide:"=?",bounce:"@"},controller:["$scope","$element","$attrs",function(e,n,a){function l(e){e&&!u.isScrollFreeze?o.freezeAllScrolls(e):!e&&u.isScrollFreeze&&o.freezeAllScrolls(!1),u.isScrollFreeze=e}var u=this,c=!0===e.$eval(e.doesContinue),d=!1!==e.$eval(e.bounce),h=s(a.autoPlay)&&e.autoPlay?e.$eval(e.slideInterval)||4e3:0,f=new ionic.views.Slider({el:n[0],auto:h,continuous:c,startSlide:e.activeSlide,bouncing:d,slidesChanged:function(){e.currentSlide=f.currentIndex(),t((function(){}))},callback:function(n){e.currentSlide=n,e.onSlideChanged({index:e.currentSlide,$index:e.currentSlide}),e.$parent.$broadcast("slideBox.slideChanged",n),e.activeSlide=n,t((function(){}))},onDrag:function(){l(!0)},onDragEnd:function(){l(!1)}});f.enableSlide(!0!==e.$eval(a.disableScroll)),e.$watch("activeSlide",(function(e){s(e)&&f.slide(e)})),e.$on("slideBox.nextSlide",(function(){f.next()})),e.$on("slideBox.prevSlide",(function(){f.prev()})),e.$on("slideBox.setSlide",(function(e,t){f.slide(t)})),this.__slider=f;var p=i._registerInstance(f,a.delegateHandle,(function(){return r.isActiveScope(e)}));e.$on("$destroy",(function(){p(),f.kill()})),this.slidesCount=function(){return f.slidesCount()},this.onPagerClick=function(t){e.pagerClick({index:t})},t((function(){f.load()}))}],template:'<div class="slider"><div class="slider-slides" ng-transclude></div></div>',link:function(t,i,r){function o(){if(!a){var e=t.$new();a=c("<ion-pager></ion-pager>"),i.append(a),a=n(a)(e)}return a}var a;e.enabled(i,!1),s(r.showPager)||(t.showPager=!0,o().toggleClass("hide",!1)),r.$observe("showPager",(function(e){void 0!==e&&(e=t.$eval(e),o().toggleClass("hide",!e))}))}}}]).directive("ionSlide",(function(){return{restrict:"E",require:"?^ionSlideBox",compile:function(e){e.addClass("slider-slide")}}})).directive("ionPager",(function(){return{restrict:"E",replace:!0,require:"^ionSlideBox",template:'<div class="slider-pager"><span class="slider-pager-page" ng-repeat="slide in numSlides() track by $index" ng-class="{active: $index == currentSlide}" ng-click="pagerClick($index)"><i class="icon ion-record"></i></span></div>',link:function(e,t,n,i){e.pagerClick=function(e){i.onPagerClick(e)},e.numSlides=function(){return new Array(i.slidesCount())},e.$watch("currentSlide",(function(e){!function(e){for(var n=t[0].children,i=n.length,r=0;i>r;r++)r==e?n[r].classList.add("active"):n[r].classList.remove("active")}(e)}))}}})),r.directive("ionSlides",["$animate","$timeout","$compile",function(e,t,n){return{restrict:"E",transclude:!0,scope:{options:"=",slider:"="},template:'<div class="swiper-container"><div class="swiper-wrapper" ng-transclude></div><div ng-hide="!showPager" class="swiper-pagination"></div></div>',controller:["$scope","$element",function(e,i){var r=this;this.update=function(){t((function(){if(r.__slider){r.__slider.update(),r._options.loop&&r.__slider.createLoop();var t=r.__slider.slides.length;t>10&&(e.showPager=!1),r.__slider.activeIndex>t-1&&r.__slider.slideTo(t-1)}}))},this.rapidUpdate=ionic.debounce((function(){r.update()}),50),this.getSlider=function(){return r.__slider};var o=e.options||{},a=angular.extend({pagination:i.children().children()[1],paginationClickable:!0,lazyLoading:!0,preloadImages:!1},o);this._options=a,t((function(){var t=new ionic.views.Swiper(i.children()[0],a,e,n);e.$emit("$ionicSlides.sliderInitialized",{slider:t}),r.__slider=t,e.slider=r.__slider,e.$on("$destroy",(function(){t.destroy(),r.__slider=null}))})),t((function(){r.rapidUpdate()}),200)}],link:function(e){e.showPager=!0}}}]).directive("ionSlidePage",[function(){return{restrict:"E",require:"?^ionSlides",transclude:!0,replace:!0,template:'<div class="swiper-slide" ng-transclude></div>',link:function(e,t,n,i){i.rapidUpdate(),e.$on("$destroy",(function(){i.rapidUpdate()}))}}}]),r.directive("ionSpinner",(function(){return{restrict:"E",controller:"$ionicSpinner",link:function(e,t,n,i){var r=i.init();t.addClass("spinner spinner-"+r),t.on("$destroy",(function(){i.stop()}))}}})),r.directive("ionTab",["$compile","$ionicConfig","$ionicBind","$ionicViewSwitcher",function(e,t,n,i){function r(e,t){return s(t)?" "+e+'="'+t+'"':""}return{restrict:"E",require:["^ionTabs","ionTab"],controller:"$ionicTab",scope:!0,compile:function(o,a){for(var s="<ion-tab-nav"+r("ng-click",a.ngClick)+r("title",a.title)+r("icon",a.icon)+r("icon-on",a.iconOn)+r("icon-off",a.iconOff)+r("badge",a.badge)+r("badge-style",a.badgeStyle)+r("hidden",a.hidden)+r("disabled",a.disabled)+r("class",a.class)+"></ion-tab-nav>",l=document.createElement("div"),u=0;u<o[0].children.length;u++)l.appendChild(o[0].children[u].cloneNode(!0));var d,h,f=l.childElementCount;return o.empty(),f&&("ION-NAV-VIEW"===l.children[0].tagName&&(d=l.children[0].getAttribute("name"),l.children[0].classList.add("view-container"),h=!0),1===f&&(l=l.children[0]),h||l.classList.add("pane"),l.classList.add("tab-content")),function(r,o,a,u){function h(){_.tabMatchesState()&&v.select(r,!1)}function p(){m&&m.$destroy(),y&&g&&g.remove(),l.innerHTML="",y=m=g=null}var m,g,v=u[0],_=u[1],y=!1;r.$tabSelected=!1,n(r,a,{onSelect:"&",onDeselect:"&",title:"@",uiSref:"@",href:"@"}),v.add(r),r.$on("$destroy",(function(){r.$tabsDestroy||v.remove(r),b.isolateScope().$destroy(),b.remove(),b=l=g=null})),o[0].removeAttribute("title"),d&&(_.navViewName=r.navViewName=d),r.$on("$stateChangeSuccess",h),h();var b=c(s);b.data("$ionTabsController",v),b.data("$ionTabController",_),v.$tabsElement.append(e(b)(r)),r.$watch("$tabSelected",(function(n){n&&f?(y||(m=r.$new(),g=c(l),i.viewEleIsActive(g,!0),v.$element.append(g),e(g)(m),y=!0),i.viewEleIsActive(g,!0)):y&&g&&(t.views.maxCache()>0?i.viewEleIsActive(g,!1):p())})),r.$on("$ionicView.afterEnter",(function(){i.viewEleIsActive(g,r.$tabSelected)})),r.$on("$ionicView.clearCache",(function(){r.$tabSelected||p()}))}}}}]),r.directive("ionTabNav",[function(){return{restrict:"E",replace:!0,require:["^ionTabs","^ionTab"],template:"<a ng-class=\"{'has-badge':badge, 'tab-hidden':isHidden(), 'tab-item-active': isTabActive()}\" "+' ng-disabled="disabled()" class="tab-item"><span class="badge {{badgeStyle}}" ng-if="badge">{{badge}}</span><i class="icon {{getIcon()}}" ng-if="getIcon()"></i><span class="tab-title" ng-bind-html="title"></span></a>',scope:{title:"@",icon:"@",iconOn:"@",iconOff:"@",badge:"=",hidden:"@",disabled:"&",badgeStyle:"@",class:"@"},link:function(e,t,n,i){var r=i[0],o=i[1];t[0].removeAttribute("title"),e.selectTab=function(e){e.preventDefault(),r.select(o.$scope,!0)},n.ngClick||t.on("click",(function(t){e.$apply((function(){e.selectTab(t)}))})),e.isHidden=function(){return"true"===n.hidden||!0===n.hidden},e.getIconOn=function(){return e.iconOn||e.icon},e.getIconOff=function(){return e.iconOff||e.icon},e.isTabActive=function(){return r.selectedTab()===o.$scope},e.getIcon=function(){return r.selectedTab()===o.$scope?e.iconOn||e.icon:e.iconOff||e.icon}}}}]),r.directive("ionTabs",["$ionicTabsDelegate","$ionicConfig",function(e,t){return{restrict:"E",scope:!0,controller:"$ionicTabs",compile:function(n){var i=c('<div class="tab-nav tabs">');return i.append(n.contents()),n.append(i).addClass("tabs-"+t.tabs.position()+" tabs-"+t.tabs.style()),{pre:function(t,n,r,o){function a(e,t){e.stopPropagation();var n=o.previousSelectedTab();n&&n.$broadcast(e.name.replace("NavView","Tabs"),t)}var s=e._registerInstance(o,r.delegateHandle,o.hasActiveScope);o.$scope=t,o.$element=n,o.$tabsElement=c(n[0].querySelector(".tabs")),t.$watch((function(){return n[0].className}),(function(e){var n=-1!==e.indexOf("tabs-top"),i=-1!==e.indexOf("tabs-item-hide");t.$hasTabs=!n&&!i,t.$hasTabsTop=n&&!i,t.$emit("$ionicTabs.top",t.$hasTabsTop)})),t.$on("$ionicNavView.beforeLeave",a),t.$on("$ionicNavView.afterLeave",a),t.$on("$ionicNavView.leave",a),t.$on("$destroy",(function(){t.$tabsDestroy=!0,s(),o.$tabsElement=o.$element=o.$scope=i=null,delete t.$hasTabs,delete t.$hasTabsTop}))},post:function(e,t,n,i){i.selectedTab()||i.select(0)}}}}}]),r.directive("ionTitle",[function(){return{restrict:"E",compile:function(e){e.addClass("title")}}}]),r.directive("ionToggle",["$timeout","$ionicConfig",function(e,t){return{restrict:"E",replace:!0,require:"?ngModel",transclude:!0,template:'<div class="item item-toggle"><div ng-transclude></div><label class="toggle"><input type="checkbox"><div class="track"><div class="handle"></div></div></label></div>',compile:function(e,n){var i=e.find("input");return a({name:n.name,"ng-value":n.ngValue,"ng-model":n.ngModel,"ng-checked":n.ngChecked,"ng-disabled":n.ngDisabled,"ng-true-value":n.ngTrueValue,"ng-false-value":n.ngFalseValue,"ng-change":n.ngChange,"ng-required":n.ngRequired,required:n.required},(function(e,t){s(e)&&i.attr(t,e)})),n.toggleClass&&e[0].getElementsByTagName("label")[0].classList.add(n.toggleClass),e.addClass("toggle-"+t.form.toggle()),function(e,t){var n=t[0].getElementsByTagName("label")[0],i=n.children[0],r=n.children[1],o=r.children[0],a=c(i).controller("ngModel");e.toggle=new ionic.views.Toggle({el:n,track:r,checkbox:i,handle:o,onChange:function(){a&&(a.$setViewValue(i.checked),e.$apply())}}),e.$on("$destroy",(function(){e.toggle.destroy()}))}}}}]),r.directive("ionView",(function(){return{restrict:"EA",priority:1e3,controller:"$ionicView",compile:function(e){return e.addClass("pane"),e[0].removeAttribute("title"),function(e,t,n,i){i.init()}}}}))}(),function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(function(){try{return require("angular")}catch(e){}}()):"function"==typeof define&&define.amd?define(["angular"],t):"object"==typeof exports?exports.ionicMaterial=t(function(){try{return require("angular")}catch(e){}}()):e.ionicMaterial=t(e.angular)}(this,(function(e){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return e[i].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";e.exports=function(){var e;try{e=n(1)}catch(e){}if(e&&e.version||(e=window.angular),!e||!e.version)throw new Error("ionic-material could not load angular module :(");var t=e.module("ionic-material",["ionic"]);return n(2)(t),n(3)(t),"ionic-material"}()},function(t,n,i){if(void 0===e){var r=new Error('Cannot find module "angular"');throw r.code="MODULE_NOT_FOUND",r}t.exports=e},function(e,t,n){"use strict";
+/*!
+	 * Fork by Zach Fitzgerald and other contributors of Ionic Material
+	 *
+	 * Waves v0.5.4
+	 * http://fian.my.id/Waves
+	 *
+	 * Copyright 2014 Alfiana E. Sibuea and other contributors
+	 *
+	 * Released under the MIT license
+	 * https://github.com/fians/Waves/blob/master/LICENSE
+	 *
+	 */e.exports=function(e){function t(){function e(e){var t,n,i={top:0,left:0},r=e&&e.ownerDocument;return t=r.documentElement,void 0!==e.getBoundingClientRect&&(i=e.getBoundingClientRect()),n=function(e){return function(e){return null!==e&&e===e.window}(e)?e:9===e.nodeType&&e.defaultView}(r),{top:i.top+n.pageYOffset-t.clientTop,left:i.left+n.pageXOffset-t.clientLeft}}function t(e){var t="";for(var n in e)e.hasOwnProperty(n)&&(t+=n+":"+e[n]+";");return t}var n,i=i||{};if(document&&document.querySelectorAll&&document.querySelectorAll.bind)try{n=document.querySelectorAll.bind(document)}catch(e){}else if(window&&window.angular&&window.angular.element)n=window.angular.element;else{var r=function(e,t,n){var i=e.length;t=null==t?0:0>t?Math.max(i+t,0):Math.min(t,i),n=null==n?i:0>n?Math.max(i+n,0):Math.min(n,i);for(var r=[];n>t;)r.push(e[t++]);return r};n=function(e,t,n){var i=r(arguments,2);return function(){return e.apply(t,i.concat(r(arguments)))}}(document.querySelectorAll,document)}if(!n)throw new Error("ionic material ink module could not create reference of DOM nodes");var o={duration:500,show:function(n){if(2===n.button)return!1;var i=this,r=document.createElement("div"),a=this.dataset.inkColor,s=this.dataset.inkOpacity,l=a||s;r.className="ink-ripple",i.appendChild(r);var u=e(i),c=n.pageY-u.top,d=n.pageX-u.left,h="scale("+i.clientWidth/100*2.5+")";"touches"in n&&(c=n.touches[0].pageY-u.top,d=n.touches[0].pageX-u.left),r.setAttribute("data-hold",Date.now()),r.setAttribute("data-scale",h),r.setAttribute("data-x",d),r.setAttribute("data-y",c);var f={top:c+"px",left:d+"px"};if(r.className=r.className+" ink-notransition",l){var p;if(a){var m=function(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}(a);p=m.r+","+m.g+","+m.b}else p="0,0,0";s||(s=.2);var g="rgba("+p+","+s+")";f["background-color"]=g}r.setAttribute("style",t(f)),r.className=r.className.replace("ink-notransition",""),f["-webkit-transform"]=h,f["-moz-transform"]=h,f["-ms-transform"]=h,f["-o-transform"]=h,f.transform=h,f.opacity="1",f["-webkit-transition-duration"]=o.duration+"ms",f["-moz-transition-duration"]=o.duration+"ms",f["-o-transition-duration"]=o.duration+"ms",f["transition-duration"]=o.duration+"ms",r.setAttribute("style",t(f))},hide:function(){for(var e=this,n=(e.clientWidth,null),i=e.children.length,r=0;i>r;r++)-1===e.children[r].className.indexOf("ink-ripple")||(n=e.children[r]);if(!n)return!1;var a=n.getAttribute("data-x"),s=n.getAttribute("data-y"),l=n.getAttribute("data-scale"),u=500-(Date.now()-Number(n.getAttribute("data-hold")));0>u&&(u=0),setTimeout((function(){var i={top:s+"px",left:a+"px",opacity:"0","-webkit-transition-duration":o.duration+"ms","-moz-transition-duration":o.duration+"ms","-o-transition-duration":o.duration+"ms","transition-duration":o.duration+"ms","-webkit-transform":l,"-moz-transform":l,"-ms-transform":l,"-o-transform":l,transform:l};n.setAttribute("style",t(i)),setTimeout((function(){try{e.removeChild(n)}catch(e){return!1}}),o.duration)}),u)},wrapInput:function(e){for(var t=0;t<e.length;t++){var n=e[t];if("input"===n.tagName.toLowerCase()){var i=n.parentNode;if("i"===i.tagName.toLowerCase()&&-1!==i.className.indexOf("ink")&&-1!==i.className.indexOf("tab-item")&&-1!==i.className.indexOf("button-fab")&&-1!==i.className.indexOf("button-raised")&&-1!==i.className.indexOf("button-flat")&&-1!==i.className.indexOf("button-clear")&&-1!==i.className.indexOf("button")&&-1!==i.className.indexOf("item"))return!1;var r=document.createElement("i");r.className=n.className+" ink-input-wrapper";var o=n.getAttribute("style");o||(o=""),r.setAttribute("style",o),n.className="ink-button-input",n.removeAttribute("style"),i.replaceChild(r,n),r.appendChild(n)}}}};return i.displayEffect=function(e){"duration"in(e=e||{})&&(o.duration=e.duration);var t=".ink,.tab-item,.button-fab,.button-raised,.button-flat,.button-clear,a.item,.popup .button";o.wrapInput(n(t)),Array.prototype.forEach.call(n(t),(function(e){"ontouchstart"in window?(e.addEventListener("touchstart",o.show,!1),e.addEventListener("touchend",o.hide,!1),e.addEventListener("touchcancel",o.hide,!1)):(e.addEventListener("mousedown",o.show,!1),e.addEventListener("mouseup",o.hide,!1),e.addEventListener("mouseleave",o.hide,!1))}))},i}e.factory("ionicMaterialInk",t),t.inject=[]}},function(e,t,n){e.exports=function(e){function t(){"use strict";function e(){return window.innerHeight}function t(e,t){for(var n=0;t>n;n++){var i=e[n];i.className+=" in",i.className+=" done"}}return{blinds:function(n){if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||2,n.finishSpeedPercent=n.finishSpeedPercent||.5,n.leftOffsetPercentage=n.leftOffsetPercentage||.8,n.startVelocity=n.startVelocity||1100,void 0===n.selector&&(n.selector=".animate-blinds .item"),void 0===n.selector||""===n.selector)return alert("invalid blinds selector"),!1;for(var i=document.querySelectorAll(n.selector),r=i.length,o=0,a=e(),s=0;r>s&&i[s].offsetTop<a;s++)o+=1;var l=n.startVelocity;for(s=0;o>s;s++){var u=i[s],c=u.getBoundingClientRect(),d=c.left*n.leftOffsetPercentage+c.top,h=parseFloat(d/l).toFixed(2);u.style.webkitTransitionDelay=h+"s",u.style.transitionDelay=h+"s",u.className+=" in"}setTimeout((function(){for(var e=0;o>e;e++){var t=i[e].getBoundingClientRect(),r=t.left*n.leftOffsetPercentage+t.top;parseFloat(r/l/n.finishDelayThrottle).toFixed(2),i[e].className+=" done"}}),l*n.finishSpeedPercent),t(i,r)},fadeSlideIn:function(n){if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||2,n.finishSpeedPercent=n.finishSpeedPercent||.72,n.leftOffsetPercentage=n.leftOffsetPercentage||.8,n.startVelocity=n.startVelocity||1100,void 0===n.selector&&(n.selector=".animate-fade-slide-in .item"),void 0===n.selector||""===n.selector)return alert("invalid fadeSlideIn selector"),!1;for(var i=document.querySelectorAll(n.selector),r=i.length,o=0,a=e(),s=0;r>s&&i[s].offsetTop<a;s++)o+=1;var l=n.startVelocity;for(s=0;o>s;s++){var u=i[s],c=u.getBoundingClientRect(),d=c.left*n.leftOffsetPercentage+c.top,h=parseFloat(d/l).toFixed(2);u.style.webkitTransitionDelay=h+"s",u.style.transitionDelay=h+"s",u.className+=" in"}setTimeout((function(){for(var e=0;o>e;e++){var t=i[e].getBoundingClientRect(),r=(t.left*n.leftOffsetPercentage+t.top)/l/n.finishDelayThrottle;parseFloat(r).toFixed(2)}i[0].className+=" done"}),l*n.finishSpeedPercent),t(i,r)},fadeSlideInRight:function(n){if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||2,n.finishSpeedPercent=n.finishSpeedPercent||.72,n.leftOffsetPercentage=n.leftOffsetPercentage||.8,n.startVelocity=n.startVelocity||1100,void 0===n.selector&&(n.selector=".animate-fade-slide-in-right .item"),void 0===n.selector||""===n.selector)return alert("invalid fadeSlideInRight selector"),!1;for(var i=document.querySelectorAll(n.selector),r=i.length,o=0,a=e(),s=0;r>s&&i[s].offsetTop<a;s++)o+=1;var l=n.startVelocity;for(s=0;o>s;s++){var u=i[s],c=u.getBoundingClientRect(),d=c.left*n.leftOffsetPercentage+c.top,h=parseFloat(d/l).toFixed(2);u.style.webkitTransitionDelay=h+"s",u.style.transitionDelay=h+"s",u.className+=" in"}setTimeout((function(){for(var e=0;o>e;e++){var t=i[e].getBoundingClientRect(),r=(t.left*n.leftOffsetPercentage+t.top)/l/n.finishDelayThrottle;parseFloat(r).toFixed(2)}i[0].className+=" done"}),l*n.finishSpeedPercent),t(i,r)},panInLeft:function(e){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return alert("invalid pushDown selector"),!1;for(var t=document.querySelectorAll(e.selector),n=t.length,i=0;n>i;i++){var r=t[i],o=r.className.lastIndexOf("animate-pan-in-left");r.className=r.className.substr(0,o)}},pushDown:function(e){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return alert("invalid pushDown selector"),!1;for(var t=document.querySelectorAll(e.selector),n=t.length,i=0;n>i;i++){var r=t[i],o=e.selector.split(".")[1],a=r.className.lastIndexOf(o);r.className=r.className.substr(0,a)}},ripple:function(n){if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||2,n.finishSpeedPercent=n.finishSpeedPercent||.72,n.leftOffsetPercentage=n.leftOffsetPercentage||.8,n.startVelocity=n.startVelocity||1100,void 0===n.selector&&(n.selector=".animate-ripple .item"),void 0===n.selector||""===n.selector)return alert("invalid ripple selector"),!1;for(var i=document.querySelectorAll(n.selector),r=i.length,o=0,a=e(),s=0;s<i.length&&i[s].offsetTop<a;s++)o+=1;var l=n.startVelocity;for(s=0;o>s;s++){var u=i[s],c=u.getBoundingClientRect(),d=c.left*n.leftOffsetPercentage+c.top,h=parseFloat(d/l).toFixed(2);u.style.webkitTransitionDelay=h+"s",u.style.transitionDelay=h+"s",u.className+=" in"}setTimeout((function(){for(var e=0;o>e;e++){var t=i[e].getBoundingClientRect(),r=(t.left*n.leftOffsetPercentage+t.top)/l/n.finishDelayThrottle;parseFloat(r).toFixed(2)}i[0].className+=" done"}),l*n.finishSpeedPercent),t(i,r)},slideUp:function(e){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return alert("invalid pushDown selector"),!1;for(var t=document.querySelectorAll(e.selector),n=t.length,i=0;n>i;i++){var r=t[i],o=e.selector.split(".")[1],a=r.className.lastIndexOf(o);r.className=r.className.substr(0,a)}}}}e.factory("ionicMaterialMotion",t),t.$inject=[]}}])})),function(e,t){"use strict";function n(e,n){for(var i in n=n||{},t.forEach(n,(function(e,t){delete n[t]})),e)!e.hasOwnProperty(i)||"$"===i.charAt(0)&&"$"===i.charAt(1)||(n[i]=e[i]);return n}var i=t.$$minErr("$resource"),r=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;t.module("ngResource",["ng"]).provider("$resource",(function(){var e=/^https?:\/\/[^/]*/,o=this;this.defaults={stripTrailingSlashes:!0,cancellable:!1,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},delete:{method:"DELETE"}}},this.$get=["$http","$log","$q","$timeout",function(a,s,l,u){function c(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,t?"%20":"+")}function d(e,t){this.template=e,this.defaults=p({},o.defaults,t),this.urlParams={}}var h=t.noop,f=t.forEach,p=t.extend,m=t.copy,g=t.isArray,v=t.isDefined,_=t.isFunction,y=t.isNumber;return d.prototype={setUrlParams:function(t,n,r){var o,a,s=this,l=r||s.template,u="",d=s.urlParams={};f(l.split(/\W/),(function(e){if("hasOwnProperty"===e)throw i("badname");!/^\d+$/.test(e)&&e&&new RegExp("(^|[^\\\\]):"+e+"(\\W|$)").test(l)&&(d[e]={isQueryParamValue:new RegExp("\\?.*=:"+e+"(?:\\W|$)").test(l)})})),l=(l=l.replace(/\\:/g,":")).replace(e,(function(e){return u=e,""})),n=n||{},f(s.urlParams,(function(e,t){o=n.hasOwnProperty(t)?n[t]:s.defaults[t],v(o)&&null!==o?(a=e.isQueryParamValue?c(o,!0):c(o,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+"),l=l.replace(new RegExp(":"+t+"(\\W|$)","g"),(function(e,t){return a+t}))):l=l.replace(new RegExp("(/?):"+t+"(\\W|$)","g"),(function(e,t,n){return"/"===n.charAt(0)?n:t+n}))})),s.defaults.stripTrailingSlashes&&(l=l.replace(/\/+$/,"")||"/"),l=l.replace(/\/\.(?=\w+($|\?))/,"."),t.url=u+l.replace(/\/\\\./,"/."),f(n,(function(e,n){s.urlParams[n]||(t.params=t.params||{},t.params[n]=e)}))}},function e(c,b,w,L){function M(e,n){var o={};return n=p({},b,n),f(n,(function(n,a){var s;if(_(n)&&(n=n(e)),n&&n.charAt&&"@"===n.charAt(0)){if(s=e,null==(l=n.substr(1))||""===l||"hasOwnProperty"===l||!r.test("."+l))throw i("badmember",l);for(var l,u=0,c=(l=l.split(".")).length;u<c&&t.isDefined(s);u++){var d=l[u];s=null!==s?s[d]:void 0}}else s=n;o[a]=s})),o}function k(e){return e.resource}function x(e){n(e||{},this)}var S=new d(c,L);return w=p({},o.defaults.actions,w),x.prototype.toJSON=function(){var e=p({},this);return delete e.$promise,delete e.$resolved,delete e.$cancelRequest,e},f(w,(function(e,t){var r=/^(POST|PUT|PATCH)$/i.test(e.method),o=e.timeout,c=v(e.cancellable)?e.cancellable:S.defaults.cancellable;o&&!y(o)&&(s.debug("ngResource:\n  Only numeric values are allowed as `timeout`.\n  Promises are not supported in $resource, because the same value would be used for multiple requests. If you are looking for a way to cancel requests, you should use the `cancellable` option."),delete e.timeout,o=null),x[t]=function(s,d,v,y){var b,w,L,T={};switch(arguments.length){case 4:L=y,w=v;case 3:case 2:if(!_(d)){T=s,b=d,w=v;break}if(_(s)){w=s,L=d;break}w=d,L=v;case 1:_(s)?w=s:r?b=s:T=s;break;case 0:break;default:throw i("badargs",arguments.length)}var $,D,C=this instanceof x,E=C?b:e.isArray?[]:new x(b),A={},P=e.interceptor&&e.interceptor.response||k,Y=e.interceptor&&e.interceptor.responseError||void 0;return f(e,(function(e,t){switch(t){default:A[t]=m(e);case"params":case"isArray":case"interceptor":case"cancellable":}})),!C&&c&&($=l.defer(),A.timeout=$.promise,o&&(D=u($.resolve,o))),r&&(A.data=b),S.setUrlParams(A,p({},M(b,e.params||{}),T),e.url),(T=a(A).then((function(r){var o=r.data;if(o){if(g(o)!==!!e.isArray)throw i("badcfg",t,e.isArray?"array":"object",g(o)?"array":"object",A.method,A.url);if(e.isArray)E.length=0,f(o,(function(e){"object"==typeof e?E.push(new x(e)):E.push(e)}));else{var a=E.$promise;n(o,E),E.$promise=a}}return r.resource=E,r}),(function(e){return(L||h)(e),l.reject(e)}))).finally((function(){E.$resolved=!0,!C&&c&&(E.$cancelRequest=h,u.cancel(D),$=D=A.timeout=null)})),T=T.then((function(e){var t=P(e);return(w||h)(t,e.headers,e.status,e.statusText),t}),Y),C?T:(E.$promise=T,E.$resolved=!1,c&&(E.$cancelRequest=$.resolve),E)},x.prototype["$"+t]=function(e,n,i){return _(e)&&(i=n,n=e,e={}),(e=x[t].call(this,e,this,n,i)).$promise||e}})),x.bind=function(t){return t=p({},b,t),e(c,t,w,L)},x}}]}))}(window,window.angular),function(e,t){"function"==typeof define&&define.amd?define([],(function(){return t()})):"object"==typeof module&&module.exports?module.exports=t():t()}(0,(function(){function e(e){"use strict";var t=e.storageKey(),n=e.storage(),i=function(){var i=e.preferredLanguage();angular.isString(i)?e.use(i):n.put(t,e.use())};i.displayName="fallbackFromIncorrectStorageValue",n?n.get(t)?e.use(n.get(t)).catch(i):i():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function t(e,t,n,i){"use strict";var r,o,a,s,l,u,c,d,h,f,p,m,g,v,_,y,b={},w=[],L=e,M=[],k="translate-cloak",x=!1,S=!1,T=".",$=!1,D=!1,C=0,E=!0,A="default",P={default:function(e){return(e||"").split("-").join("_")},java:function(e){var t=(e||"").split("-").join("_"),n=t.split("_");return 1<n.length?n[0].toLowerCase()+"_"+n[1].toUpperCase():t},bcp47:function(e){var t=(e||"").split("_").join("-"),n=t.split("-");switch(n.length){case 1:n[0]=n[0].toLowerCase();break;case 2:n[0]=n[0].toLowerCase(),4===n[1].length?n[1]=n[1].charAt(0).toUpperCase()+n[1].slice(1).toLowerCase():n[1]=n[1].toUpperCase();break;case 3:n[0]=n[0].toLowerCase(),n[1]=n[1].charAt(0).toUpperCase()+n[1].slice(1).toLowerCase(),n[2]=n[2].toUpperCase();break;default:return t}return n.join("-")},"iso639-1":function(e){return(e||"").split("_").join("-").split("-")[0].toLowerCase()}},Y=function(){if(angular.isFunction(i.getLocale))return i.getLocale();var e,n,r=t.$get().navigator,o=["language","browserLanguage","systemLanguage","userLanguage"];if(angular.isArray(r.languages))for(e=0;e<r.languages.length;e++)if((n=r.languages[e])&&n.length)return n;for(e=0;e<o.length;e++)if((n=r[o[e]])&&n.length)return n;return null};Y.displayName="angular-translate/service: getFirstBrowserLanguage";var O=function(){var e=Y()||"";return P[A]&&(e=P[A](e)),e};O.displayName="angular-translate/service: getLocale";var I=function(e,t){for(var n=0,i=e.length;n<i;n++)if(e[n]===t)return n;return-1},j=function(){return this.toString().replace(/^\s+|\s+$/g,"")},H=function(e){return angular.isString(e)?e.toLowerCase():e},N=function(e){if(e){for(var t,n=[],i=H(e),r=0,a=w.length;r<a;r++)n.push(H(w[r]));if(-1<(r=I(n,i)))return w[r];if(o)for(var s in o)if(o.hasOwnProperty(s)){var l=!1,u=Object.prototype.hasOwnProperty.call(o,s)&&H(s)===H(e);if("*"===s.slice(-1)&&(l=H(s.slice(0,-1))===H(e.slice(0,s.length-1))),(u||l)&&(t=o[s],-1<I(n,H(t))))return t}var c=e.split("_");return 1<c.length&&-1<I(n,H(c[0]))?c[0]:void 0}},B=function(e,t){if(!e&&!t)return b;if(e&&!t){if(angular.isString(e))return b[e]}else angular.isObject(b[e])||(b[e]={}),angular.extend(b[e],R(t));return this};this.translations=B,this.cloakClassName=function(e){return e?(k=e,this):k},this.nestedObjectDelimeter=function(e){return e?(T=e,this):T};var R=function(e,t,n,i){var r,o,a;for(r in t||(t=[]),n||(n={}),e)Object.prototype.hasOwnProperty.call(e,r)&&(a=e[r],angular.isObject(a)?R(a,t.concat(r),n,r):(o=t.length?""+t.join(T)+T+r:r,t.length&&r===i&&(n[""+t.join(T)]="@:"+o),n[o]=a));return n};R.displayName="flatObject",this.addInterpolation=function(e){return M.push(e),this},this.useMessageFormatInterpolation=function(){return this.useInterpolation("$translateMessageFormatInterpolation")},this.useInterpolation=function(e){return f=e,this},this.useSanitizeValueStrategy=function(e){return n.useStrategy(e),this},this.preferredLanguage=function(e){return e?(F(e),this):r};var F=function(e){return e&&(r=e),r};this.translationNotFoundIndicator=function(e){return this.translationNotFoundIndicatorLeft(e),this.translationNotFoundIndicatorRight(e),this},this.translationNotFoundIndicatorLeft=function(e){return e?(g=e,this):g},this.translationNotFoundIndicatorRight=function(e){return e?(v=e,this):v},this.fallbackLanguage=function(e){return z(e),this};var z=function(e){return e?(angular.isString(e)?(s=!0,a=[e]):angular.isArray(e)&&(s=!1,a=e),angular.isString(r)&&I(a,r)<0&&a.push(r),this):s?a[0]:a};this.use=function(e){if(e){if(!b[e]&&!p)throw new Error("$translateProvider couldn't find translationTable for langKey: '"+e+"'");return l=e,this}return l},this.resolveClientLocale=function(){return O()};var V=function(e){return e?(L=e,this):d?d+L:L};this.storageKey=V,this.useUrlLoader=function(e,t){return this.useLoader("$translateUrlLoader",angular.extend({url:e},t))},this.useStaticFilesLoader=function(e){return this.useLoader("$translateStaticFilesLoader",e)},this.useLoader=function(e,t){return p=e,m=t||{},this},this.useLocalStorage=function(){return this.useStorage("$translateLocalStorage")},this.useCookieStorage=function(){return this.useStorage("$translateCookieStorage")},this.useStorage=function(e){return c=e,this},this.storagePrefix=function(e){return e?(d=e,this):e},this.useMissingTranslationHandlerLog=function(){return this.useMissingTranslationHandler("$translateMissingTranslationHandlerLog")},this.useMissingTranslationHandler=function(e){return h=e,this},this.usePostCompiling=function(e){return x=!!e,this},this.forceAsyncReload=function(e){return S=!!e,this},this.uniformLanguageTag=function(e){return e?angular.isString(e)&&(e={standard:e}):e={},A=e.standard,this},this.determinePreferredLanguage=function(e){var t=e&&angular.isFunction(e)?e():O();return r=w.length&&N(t)||t,this},this.registerAvailableLanguageKeys=function(e,t){return e?(w=e,t&&(o=t),this):w},this.useLoaderCache=function(e){return!1===e?_=void 0:!0===e?_=!0:void 0===e?_="$translationCache":e&&(_=e),this},this.directivePriority=function(e){return void 0===e?C:(C=e,this)},this.statefulFilter=function(e){return void 0===e?E:(E=e,this)},this.postProcess=function(e){return y=e||void 0,this},this.keepContent=function(e){return D=!!e,this},this.$get=["$log","$injector","$rootScope","$q",function(e,t,n,i){var o,d,A,P=t.get(f||"$translateDefaultInterpolation"),Y=!1,H={},U={},W=function(e,t,n,s,u,h){!l&&r&&(l=r);var f=u&&u!==l?N(u)||u:l;if(u&&oe(u),angular.isArray(e))return function(e){for(var r={},o=[],a=function(e){var o=i.defer(),a=function(t){r[e]=t,o.resolve([e,t])};return W(e,t,n,s,u,h).then(a,a),o.promise},l=0,c=e.length;l<c;l++)o.push(a(e[l]));return i.all(o).then((function(){return r}))}(e);var p=i.defer();e&&(e=j.apply(e));var m=function(){var e=U[f]||U[r];if(d=0,c&&!e){var t=o.get(L);if(e=U[t],a&&a.length){var n=I(a,t);d=0===n?1:0,I(a,r)<0&&a.push(r)}}return e}();if(m){var g=function(){u||(f=l),ne(e,t,n,s,f,h).then(p.resolve,p.reject)};g.displayName="promiseResolved",m.finally(g).catch(angular.noop)}else ne(e,t,n,s,f,h).then(p.resolve,p.reject);return p.promise},q=function(e){return g&&(e=[g,e].join(" ")),v&&(e=[e,v].join(" ")),e},G=function(e){l=e,c&&o.put(W.storageKey(),l),n.$emit("$translateChangeSuccess",{language:e}),P.setLocale(l);var t=function(e,t){H[t].setLocale(l)};t.displayName="eachInterpolatorLocaleSetter",angular.forEach(H,t),n.$emit("$translateChangeEnd",{language:e})},Z=function(e){if(!e)throw"No language key specified for loading.";var r=i.defer();n.$emit("$translateLoadingStart",{language:e}),Y=!0;var o=_;"string"==typeof o&&(o=t.get(o));var a=angular.extend({},m,{key:e,$http:angular.extend({},{cache:o},m.$http)}),s=function(t){var i={};n.$emit("$translateLoadingSuccess",{language:e}),angular.isArray(t)?angular.forEach(t,(function(e){angular.extend(i,R(e))})):angular.extend(i,R(t)),Y=!1,r.resolve({key:e,table:i}),n.$emit("$translateLoadingEnd",{language:e})};s.displayName="onLoaderSuccess";var l=function(e){n.$emit("$translateLoadingError",{language:e}),r.reject(e),n.$emit("$translateLoadingEnd",{language:e})};return l.displayName="onLoaderError",t.get(p)(a).then(s,l),r.promise};if(c&&(!(o=t.get(c)).get||!o.put))throw new Error("Couldn't use storage '"+c+"', missing get() or put() method!");if(M.length){var J=function(e){var n=t.get(e);n.setLocale(r||l),H[n.getInterpolationIdentifier()]=n};J.displayName="interpolationFactoryAdder",angular.forEach(M,J)}var X=function(e,t,n,r,o){var a=i.defer(),s=function(i){if(Object.prototype.hasOwnProperty.call(i,t)&&null!==i[t]){r.setLocale(e);var s=i[t];if("@:"===s.substr(0,2))X(e,s.substr(2),n,r,o).then(a.resolve,a.reject);else{var u=r.interpolate(i[t],n,"service",o,t);u=re(t,i[t],u,n,e),a.resolve(u)}r.setLocale(l)}else a.reject()};return s.displayName="fallbackTranslationResolver",function(e){var t=i.defer();if(Object.prototype.hasOwnProperty.call(b,e))t.resolve(b[e]);else if(U[e]){var n=function(e){B(e.key,e.table),t.resolve(e.table)};n.displayName="translationTableResolver",U[e].then(n,t.reject)}else t.reject();return t.promise}(e).then(s,a.reject),a.promise},K=function(e,t,n,i,r){var o,a=b[e];if(a&&Object.prototype.hasOwnProperty.call(a,t)&&null!==a[t]){if(i.setLocale(e),o=i.interpolate(a[t],n,"filter",r,t),o=re(t,a[t],o,n,e,r),!angular.isString(o)&&angular.isFunction(o.$$unwrapTrustedValue)){var s=o.$$unwrapTrustedValue();if("@:"===s.substr(0,2))return K(e,s.substr(2),n,i,r)}else if("@:"===o.substr(0,2))return K(e,o.substr(2),n,i,r);i.setLocale(l)}return o},Q=function(e,n,i,r){return h?t.get(h)(e,l,n,i,r):e},ee=function(e,t,n,r,o,s){var l=i.defer();if(e<a.length){var u=a[e];X(u,t,n,r,s).then((function(e){l.resolve(e)}),(function(){return ee(e+1,t,n,r,o,s).then(l.resolve,l.reject)}))}else if(o)l.resolve(o);else{var c=Q(t,n,o);h&&c?l.resolve(c):l.reject(q(t))}return l.promise},te=function(e,t,n,i,r){var o;if(e<a.length){var s=a[e];(o=K(s,t,n,i,r))||""===o||(o=te(e+1,t,n,i))}return o},ne=function(e,t,n,r,o,s){var l,u,c,f,p,m=i.defer(),g=o?b[o]:b,v=n?H[n]:P;if(g&&Object.prototype.hasOwnProperty.call(g,e)&&null!==g[e]){var _=g[e];if("@:"===_.substr(0,2))W(_.substr(2),t,n,r,o,s).then(m.resolve,m.reject);else{var y=v.interpolate(_,t,"service",s,e);y=re(e,_,y,t,o),m.resolve(y)}}else{var w;h&&!Y&&(w=Q(e,t,r)),o&&a&&a.length?(l=e,u=t,c=v,f=r,p=s,ee(0<A?A:d,l,u,c,f,p)).then((function(e){m.resolve(e)}),(function(e){m.reject(q(e))})):h&&!Y&&w?r?m.resolve(r):m.resolve(w):r?m.resolve(r):m.reject(q(e))}return m.promise},ie=function(e,t,n,i,r){var o,s=i?b[i]:b,l=P;if(H&&Object.prototype.hasOwnProperty.call(H,n)&&(l=H[n]),s&&Object.prototype.hasOwnProperty.call(s,e)&&null!==s[e]){var u=s[e];"@:"===u.substr(0,2)?o=ie(u.substr(2),t,n,i,r):(o=l.interpolate(u,t,"filter",r,e),o=re(e,u,o,t,i,r))}else{var c;h&&!Y&&(c=Q(e,t,r)),o=i&&a&&a.length?te((d=0)<A?A:d,e,t,l,r):h&&!Y&&c?c:q(e)}return o},re=function(e,n,i,r,o,a){var s=y;return s&&("string"==typeof s&&(s=t.get(s)),s)?s(e,n,i,r,o,a):i},oe=function(e){b[e]||!p||U[e]||(U[e]=Z(e).then((function(e){return B(e.key,e.table),e})))};W.preferredLanguage=function(e){return e&&F(e),r},W.cloakClassName=function(){return k},W.nestedObjectDelimeter=function(){return T},W.fallbackLanguage=function(e){if(null!=e){if(z(e),p&&a&&a.length)for(var t=0,n=a.length;t<n;t++)U[a[t]]||(U[a[t]]=Z(a[t]));W.use(W.use())}return s?a[0]:a},W.useFallbackLanguage=function(e){if(null!=e)if(e){var t=I(a,e);-1<t&&(A=t)}else A=0},W.proposedLanguage=function(){return u},W.storage=function(){return o},W.negotiateLocale=N,W.use=function(e){if(!e)return l;var t=i.defer();t.promise.then(null,angular.noop),n.$emit("$translateChangeStart",{language:e});var r=N(e);return 0<w.length&&!r?i.reject(e):(r&&(e=r),u=e,!S&&b[e]||!p||U[e]?U[e]?U[e].then((function(e){return u===e.key&&G(e.key),t.resolve(e.key),e}),(function(e){return!l&&a&&0<a.length&&a[0]!==e?W.use(a[0]).then(t.resolve,t.reject):t.reject(e)})):(t.resolve(e),G(e)):(U[e]=Z(e).then((function(n){return B(n.key,n.table),t.resolve(n.key),u===e&&G(n.key),n}),(function(e){return n.$emit("$translateChangeError",{language:e}),t.reject(e),n.$emit("$translateChangeEnd",{language:e}),i.reject(e)})),U[e].finally((function(){var t;u===(t=e)&&(u=void 0),U[t]=void 0})).catch(angular.noop)),t.promise)},W.resolveClientLocale=function(){return O()},W.storageKey=function(){return V()},W.isPostCompilingEnabled=function(){return x},W.isForceAsyncReloadEnabled=function(){return S},W.isKeepContent=function(){return D},W.refresh=function(e){if(!p)throw new Error("Couldn't refresh translation table, no loader registered!");n.$emit("$translateRefreshStart",{language:e});var t=i.defer(),r={};function o(e){var t=Z(e);return(U[e]=t).then((function(t){b[e]={},B(e,t.table),r[e]=!0}),angular.noop),t}if(t.promise.then((function(){for(var e in b)b.hasOwnProperty(e)&&(e in r||delete b[e]);l&&G(l)}),angular.noop).finally((function(){n.$emit("$translateRefreshEnd",{language:e})})),e)b[e]?o(e).then(t.resolve,t.reject):t.reject();else{var s=a&&a.slice()||[];l&&-1===s.indexOf(l)&&s.push(l),i.all(s.map(o)).then(t.resolve,t.reject)}return t.promise},W.instant=function(e,t,n,i,o){var s=i&&i!==l?N(i)||i:l;if(null===e||angular.isUndefined(e))return e;if(i&&oe(i),angular.isArray(e)){for(var u={},c=0,d=e.length;c<d;c++)u[e[c]]=W.instant(e[c],t,n,i,o);return u}if(angular.isString(e)&&e.length<1)return e;e&&(e=j.apply(e));var f,p,m=[];r&&m.push(r),s&&m.push(s),a&&a.length&&(m=m.concat(a));for(var _=0,y=m.length;_<y;_++){var w=m[_];if(b[w]&&void 0!==b[w][e]&&(f=ie(e,t,n,s,o)),void 0!==f)break}return f||""===f||(g||v?f=q(e):(f=P.interpolate(e,t,"filter",o),h&&!Y&&(p=Q(e,t,o)),h&&!Y&&p&&(f=p))),f},W.versionInfo=function(){return"2.18.1"},W.loaderCache=function(){return _},W.directivePriority=function(){return C},W.statefulFilter=function(){return E},W.isReady=function(){return $};var ae=i.defer();ae.promise.then((function(){$=!0})),W.onReady=function(e){var t=i.defer();return angular.isFunction(e)&&t.promise.then(e),$?t.resolve():ae.promise.then(t.resolve),t.promise},W.getAvailableLanguageKeys=function(){return 0<w.length?w:null},W.getTranslationTable=function(e){return(e=e||W.use())&&b[e]?angular.copy(b[e]):null};var se=n.$on("$translateReady",(function(){ae.resolve(),se(),se=null})),le=n.$on("$translateChangeEnd",(function(){ae.resolve(),le(),le=null}));if(p){if(angular.equals(b,{})&&W.use()&&W.use(W.use()),a&&a.length)for(var ue=function(e){return B(e.key,e.table),n.$emit("$translateChangeEnd",{language:e.key}),e},ce=0,de=a.length;ce<de;ce++){var he=a[ce];!S&&b[he]||(U[he]=Z(he).then(ue))}}else n.$emit("$translateReady",{language:W.use()});return W}]}function n(e,t){"use strict";return{setLocale:function(e){},getInterpolationIdentifier:function(){return"default"},useSanitizeValueStrategy:function(e){return t.useStrategy(e),this},interpolate:function(n,i,r,o,a){var s;return i=i||{},i=t.sanitize(i,"params",o,r),angular.isNumber(n)?s=""+n:angular.isString(n)?(s=e(n)(i),s=t.sanitize(s,"text",o,r)):s="",s}}}function i(e,t,n,i,r){"use strict";var o=function(e){return angular.isString(e)?e.toLowerCase():e};return{restrict:"AE",scope:!0,priority:e.directivePriority(),compile:function(a,s){var l=s.translateValues?s.translateValues:void 0,u=s.translateInterpolation?s.translateInterpolation:void 0,c=s.translateSanitizeStrategy?s.translateSanitizeStrategy:void 0,d=a[0].outerHTML.match(/translate-value-+/i),h="^(.*)("+t.startSymbol()+".*"+t.endSymbol()+")(.*)",f="^(.*)"+t.startSymbol()+"(.*)"+t.endSymbol()+"(.*)";return function(a,p,m){a.interpolateParams={},a.preText="",a.postText="",a.translateNamespace=function e(t){return t.translateNamespace?t.translateNamespace:t.$parent?e(t.$parent):void 0}(a);var g={},v=function(e){if(angular.isFunction(v._unwatchOld)&&(v._unwatchOld(),v._unwatchOld=void 0),angular.equals(e,"")||!angular.isDefined(e)){var n=function(){return this.toString().replace(/^\s+|\s+$/g,"")}.apply(p.text()),i=n.match(h);if(angular.isArray(i)){a.preText=i[1],a.postText=i[3],g.translate=t(i[2])(a.$parent);var r=n.match(f);angular.isArray(r)&&r[2]&&r[2].length&&(v._unwatchOld=a.$watch(r[2],(function(e){g.translate=e,M()})))}else g.translate=n||void 0}else g.translate=e;M()},_=function(e){m.$observe(e,(function(t){g[e]=t,M()}))};!function(e,t,n){if(t.translateValues&&angular.extend(e,i(t.translateValues)(a.$parent)),d)for(var r in n)Object.prototype.hasOwnProperty.call(t,r)&&"translateValue"===r.substr(0,14)&&"translateValues"!==r&&(e[o(r.substr(14,1))+r.substr(15)]=n[r])}(a.interpolateParams,m,s);var y=!0;for(var b in m.$observe("translate",(function(e){void 0===e?v(""):""===e&&y||(g.translate=e,M()),y=!1})),m)m.hasOwnProperty(b)&&"translateAttr"===b.substr(0,13)&&13<b.length&&_(b);if(m.$observe("translateDefault",(function(e){a.defaultText=e,M()})),c&&m.$observe("translateSanitizeStrategy",(function(e){a.sanitizeStrategy=i(e)(a.$parent),M()})),l&&m.$observe("translateValues",(function(e){e&&a.$parent.$watch((function(){angular.extend(a.interpolateParams,i(e)(a.$parent))}))})),d){var w=function(e){m.$observe(e,(function(t){var n=o(e.substr(14,1))+e.substr(15);a.interpolateParams[n]=t}))};for(var L in m)Object.prototype.hasOwnProperty.call(m,L)&&"translateValue"===L.substr(0,14)&&"translateValues"!==L&&w(L)}var M=function(){for(var e in g)g.hasOwnProperty(e)&&void 0!==g[e]&&k(e,g[e],a,a.interpolateParams,a.defaultText,a.translateNamespace)},k=function(t,n,i,r,o,a){n?(a&&"."===n.charAt(0)&&(n=a+n),e(n,r,u,o,i.translateLanguage,i.sanitizeStrategy).then((function(e){x(e,i,!0,t)}),(function(e){x(e,i,!1,t)}))):x(n,i,!1,t)},x=function(t,i,r,o){if(r||void 0!==i.defaultText&&(t=i.defaultText),"translate"===o){(r||!r&&!e.isKeepContent()&&void 0===m.translateKeepContent)&&p.empty().append(i.preText+t+i.postText);var a=e.isPostCompilingEnabled(),l=void 0!==s.translateCompile,u=l&&"false"!==s.translateCompile;(a&&!l||u)&&n(p.contents())(i)}else{var c=m.$attr[o];"data-"===c.substr(0,5)&&(c=c.substr(5)),c=c.substr(15),p.attr(c,t)}};(l||d||m.translateDefault)&&a.$watch("interpolateParams",M,!0),a.$on("translateLanguageChanged",M);var S=r.$on("$translateChangeSuccess",M);p.text().length?m.translate?v(m.translate):v(""):m.translate&&v(m.translate),M(),a.$on("$destroy",S)}}}}function r(e,t){"use strict";return{restrict:"A",priority:e.directivePriority(),link:function(n,i,r){var a,s,l,u={},c=function(){angular.forEach(a,(function(t,o){t&&(u[o]=!0,n.translateNamespace&&"."===t.charAt(0)&&(t=n.translateNamespace+t),e(t,s,r.translateInterpolation,void 0,n.translateLanguage,l).then((function(e){i.attr(o,e)}),(function(e){i.attr(o,e)})))})),angular.forEach(u,(function(e,t){a[t]||(i.removeAttr(t),delete u[t])}))};o(n,r.translateAttr,(function(e){a=e}),c),o(n,r.translateValues,(function(e){s=e}),c),o(n,r.translateSanitizeStrategy,(function(e){l=e}),c),r.translateValues&&n.$watch(r.translateValues,c,!0),n.$on("translateLanguageChanged",c);var d=t.$on("$translateChangeSuccess",c);c(),n.$on("$destroy",d)}}}function o(e,t,n,i){"use strict";t&&("::"===t.substr(0,2)?t=t.substr(2):e.$watch(t,(function(e){n(e),i()}),!0),n(e.$eval(t)))}function a(e,t){"use strict";return{compile:function(n){var i=function(t){t.addClass(e.cloakClassName())};return i(n),function(n,r,o){var a=function(t){t.removeClass(e.cloakClassName())}.bind(this,r),s=i.bind(this,r);o.translateCloak&&o.translateCloak.length?(o.$observe("translateCloak",(function(t){e(t).then(a,s)})),t.$on("$translateChangeSuccess",(function(){e(o.translateCloak).then(a,s)}))):e.onReady(a)}}}}function s(){"use strict";return{restrict:"A",scope:!0,compile:function(){return{pre:function(e,t,n){e.translateNamespace=function e(t){return t.translateNamespace?t.translateNamespace:t.$parent?e(t.$parent):void 0}(e),e.translateNamespace&&"."===n.translateNamespace.charAt(0)?e.translateNamespace+=n.translateNamespace:e.translateNamespace=n.translateNamespace}}}}}function l(){"use strict";return{restrict:"A",scope:!0,compile:function(){return function(e,t,n){n.$observe("translateLanguage",(function(t){e.translateLanguage=t})),e.$watch("translateLanguage",(function(){e.$broadcast("translateLanguageChanged")}))}}}}function u(e,t){"use strict";var n=function(n,i,r,o){if(!angular.isObject(i)){var a=this||{__SCOPE_IS_NOT_AVAILABLE:"More info at https://github.com/angular/angular.js/commit/8863b9d04c722b278fa93c5d66ad1e578ad6eb1f"};i=e(i)(a)}return t.instant(n,i,r,o)};return t.statefulFilter()&&(n.$stateful=!0),n}function c(e){"use strict";return e("translations")}return e.$inject=["$translate"],t.$inject=["$STORAGE_KEY","$windowProvider","$translateSanitizationProvider","pascalprechtTranslateOverrider"],n.$inject=["$interpolate","$translateSanitization"],i.$inject=["$translate","$interpolate","$compile","$parse","$rootScope"],r.$inject=["$translate","$rootScope"],a.$inject=["$translate","$rootScope"],u.$inject=["$parse","$translate"],c.$inject=["$cacheFactory"],angular.module("pascalprecht.translate",["ng"]).run(e),e.displayName="runTranslate",angular.module("pascalprecht.translate").provider("$translateSanitization",(function(){"use strict";var e,t,n,i=null,r=!1,o=!1;(n={sanitize:function(e,t){return"text"===t&&(e=s(e)),e},escape:function(e,t){return"text"===t&&(e=a(e)),e},sanitizeParameters:function(e,t){return"params"===t&&(e=u(e,s)),e},escapeParameters:function(e,t){return"params"===t&&(e=u(e,a)),e},sce:function(e,t,n){return"text"===t?e=l(e):"params"===t&&"filter"!==n&&(e=u(e,a)),e},sceParameters:function(e,t){return"params"===t&&(e=u(e,l)),e}}).escaped=n.escapeParameters,this.addStrategy=function(e,t){return n[e]=t,this},this.removeStrategy=function(e){return delete n[e],this},this.useStrategy=function(e){return r=!0,i=e,this},this.$get=["$injector","$log",function(a,s){var l,u={};return a.has("$sanitize")&&(e=a.get("$sanitize")),a.has("$sce")&&(t=a.get("$sce")),{useStrategy:(l=this,function(e){l.useStrategy(e)}),sanitize:function(e,t,l,c){if(i||r||o||(s.warn("pascalprecht.translate.$translateSanitization: No sanitization strategy has been configured. This can have serious security implications. See http://angular-translate.github.io/docs/#/guide/19_security for details."),o=!0),l||null===l||(l=i),!l)return e;c||(c="service");var d,h,f,p,m=angular.isArray(l)?l:[l];return d=e,h=t,f=c,p=m,angular.forEach(p,(function(e){if(angular.isFunction(e))d=e(d,h,f);else if(angular.isFunction(n[e]))d=n[e](d,h,f);else{if(!angular.isString(n[e]))throw new Error("pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '"+e+"'");if(!u[n[e]])try{u[n[e]]=a.get(n[e])}catch(t){throw u[n[e]]=function(){},new Error("pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '"+e+"'")}d=u[n[e]](d,h,f)}})),d}}}];var a=function(e){var t=angular.element("<div></div>");return t.text(e),t.html()},s=function(t){if(!e)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return e(t)},l=function(e){if(!t)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return t.trustAsHtml(e)},u=function(e,t,n){if(angular.isDate(e))return e;if(angular.isObject(e)){var i=angular.isArray(e)?[]:{};if(n){if(-1<n.indexOf(e))throw new Error("pascalprecht.translate.$translateSanitization: Error cannot interpolate parameter due recursive object")}else n=[];return n.push(e),angular.forEach(e,(function(e,r){angular.isFunction(e)||(i[r]=u(e,t,n))})),n.splice(-1,1),i}return angular.isNumber(e)?e:!0===e||!1===e?e:angular.isUndefined(e)||null===e?e:t(e)}})),angular.module("pascalprecht.translate").constant("pascalprechtTranslateOverrider",{}).provider("$translate",t),t.displayName="displayName",angular.module("pascalprecht.translate").factory("$translateDefaultInterpolation",n),n.displayName="$translateDefaultInterpolation",angular.module("pascalprecht.translate").constant("$STORAGE_KEY","NG_TRANSLATE_LANG_KEY"),angular.module("pascalprecht.translate").directive("translate",i),i.displayName="translateDirective",angular.module("pascalprecht.translate").directive("translateAttr",r),r.displayName="translateAttrDirective",angular.module("pascalprecht.translate").directive("translateCloak",a),a.displayName="translateCloakDirective",angular.module("pascalprecht.translate").directive("translateNamespace",s),s.displayName="translateNamespaceDirective",angular.module("pascalprecht.translate").directive("translateLanguage",l),l.displayName="translateLanguageDirective",angular.module("pascalprecht.translate").filter("translate",u),u.displayName="translateFilterFactory",angular.module("pascalprecht.translate").factory("$translationCache",c),c.displayName="$translationCache","pascalprecht.translate"})),function(e,t){"use strict";function n(){return["$animate",function(e){return{restrict:"AE",transclude:"element",priority:1,terminal:!0,require:"^^ngMessages",link:function(t,n,i,o,a){var s,l,u,c=n[0],d=i.ngMessage||i.when,h=function(e){s=e?r(e)?e:e.split(/[\s,]+/):null,o.reRender()};(i=i.ngMessageExp||i.whenExp)?(h(t.$eval(i)),t.$watchCollection(i,h)):h(d),o.register(c,u={test:function(e){var t=s;return t?r(t)?0<=t.indexOf(e):t.hasOwnProperty(e):void 0},attach:function(){l||a((function(t,i){e.enter(t,null,n);var r=(l=t).$$attachId=o.getAttachId();l.on("$destroy",(function(){l&&l.$$attachId===r&&(o.deregister(c),u.detach()),i.$destroy()}))}))},detach:function(){if(l){var t=l;l=null,e.leave(t)}}})}}}]}var i,r,o,a;t.module("ngMessages",[],(function(){i=t.forEach,r=t.isArray,o=t.isString,a=t.element})).directive("ngMessages",["$animate",function(e){function t(e,t){return o(t)&&0===t.length||n(e.$eval(t))}function n(e){return o(e)?e.length:!!e}return{require:"ngMessages",restrict:"AE",controller:["$element","$scope","$attrs",function(r,o,a){function s(e,t){for(var n=t,i=[];n&&n!==e;){var r=n.$$ngMessageNode;if(r&&r.length)return f[r];n.childNodes.length&&-1===i.indexOf(n)?(i.push(n),n=n.childNodes[n.childNodes.length-1]):n.previousSibling?n=n.previousSibling:(n=n.parentNode,i.push(n))}}var l=this,u=0,c=0;this.getAttachId=function(){return c++};var d,h,f=this.messages={};this.render=function(s){d=!1,h=s=s||{};for(var u=t(o,a.ngMessagesMultiple)||t(o,a.multiple),c=[],f={},p=l.head,m=!1,g=0;null!=p;){g++;var v=p.message,_=!1;m||i(s,(function(e,t){!_&&n(e)&&v.test(t)&&!f[t]&&(_=f[t]=!0,v.attach())})),_?m=!u:c.push(v),p=p.next}i(c,(function(e){e.detach()})),c.length!==g?e.setClass(r,"ng-active","ng-inactive"):e.setClass(r,"ng-inactive","ng-active")},o.$watchCollection(a.ngMessages||a.for,l.render),r.on("$destroy",(function(){i(f,(function(e){e.message.detach()}))})),this.reRender=function(){d||(d=!0,o.$evalAsync((function(){d&&h&&l.render(h)})))},this.register=function(e,t){var n=u.toString();f[n]={message:t};var i=r[0],o=f[n];l.head?(i=s(i,e))?(o.next=i.next,i.next=o):(o.next=l.head,l.head=o):l.head=o,e.$$ngMessageNode=n,u++,l.reRender()},this.deregister=function(e){var t=e.$$ngMessageNode;delete e.$$ngMessageNode;var n=f[t];(e=s(r[0],e))?e.next=n.next:l.head=n.next,delete f[t],l.reRender()}}]}}]).directive("ngMessagesInclude",["$templateRequest","$document","$compile",function(e,t,n){function i(e,i){var r=n.$$createComment?n.$$createComment("ngMessagesInclude",i):t[0].createComment(" ngMessagesInclude: "+i+" ");r=a(r),e.after(r),e.remove()}return{restrict:"AE",require:"^^ngMessages",link:function(t,r,a){var s=a.ngMessagesInclude||a.src;e(s).then((function(e){t.$$destroyed||(o(e)&&!e.trim()?i(r,s):n(e)(t,(function(e){r.after(e),i(r,s)})))}))}}}]).directive("ngMessage",n()).directive("ngMessageExp",n())}(window,window.angular),function(e,t,n){"use strict";t.module("ngApi",[]).factory("Api",["$q","$rootScope",function(e,n){var i=function(e,t){this.gantt=e,this.apiId=t,this.eventListeners=[]};function r(e,t,i,r){return n.$on(e,(function(){var e=Array.prototype.slice.call(arguments);e.splice(0,1),t.apply(r||i,e)}))}return i.prototype.suppressEvents=function(e,n){var i=this,o=t.isArray(e)?e:[e],a=[];o.forEach((function(e){a=i.eventListeners.filter((function(t){return e===t.handler}))})),a.forEach((function(e){e.dereg()})),n(),a.forEach((function(e){e.dereg=r(e.eventId,e.handler,i.gantt,e._this)}))},i.prototype.registerEvent=function(t,i){var o=this;o[t]||(o[t]={});var a=o[t];a.on||(a.on={},a.raise={},a.raisePromise={});var s="event:api:"+this.apiId+":"+t+":"+i;a.raise[i]=function(){n.$emit.apply(n,[s].concat(Array.prototype.slice.call(arguments)))},a.raisePromise[i]=function(){var t=n.$$listenerCount[s];if(!t)return e.when();var i=e.defer();t>1&&((i={promise:i.promise,notify:i.notify,raw:i,count:0,errors:[],results:[]}).checkFinish=function(){i.count<t||(i.count=0,i.errors.length?(1==i.errors.length?i.raw.reject(i.errors[0]):i.raw.reject(i.errors),i.errors=[]):(i.raw.resolve(i.results),i.results=[]))},i.resolve=function(e){i.results.push(e),i.count++,i.checkFinish()},i.reject=function(e){i.errors.push(e),i.count++,i.checkFinish()});var r=[s].concat(Array.prototype.slice.call(arguments)).concat([i]);return n.$emit.apply(n,r),i.promise},a.on[i]=function(e,t,n){var i={handler:t,dereg:r(s,t,o.gantt,n),eventId:s,scope:e,_this:n};o.eventListeners.push(i);var a=function(){i.dereg();var e=o.eventListeners.indexOf(i);o.eventListeners.splice(e,1)};return e.$on("$destroy",(function(){a()})),a}},i.prototype.hasListeners=function(e,n){var i=this,o=t.isArray(e)?e:[e],a=[];o.forEach((function(e){a=i.eventListeners.filter((function(t){return e===t.handler}))})),a.forEach((function(e){e.dereg()})),n(),a.forEach((function(e){e.dereg=r(e.eventId,e.handler,i.gantt,e._this)}))},i.prototype.registerMethod=function(e,t,n,i){this[e]||(this[e]={}),this[e][t]=function(){n.apply(i||this.app,arguments)}},i}])}(window,window.angular),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t("undefined"==typeof angular?require("angular"):angular):"function"==typeof define&&define.amd?define("angular-cache",["angular"],t):e.angularCacheModuleName=t(e.angular)}(this,(function(e){"use strict";function t(e,t){if(e||(e=function(e){return e}),t||(t=function(e,t){return e===t}),"function"!=typeof e)throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!');if("function"!=typeof t)throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!');this.weightFunc=e,this.compareFunc=t,this.heap=[]}function n(e){var t=[],n=void 0;if(!f.isObject(e))return t;for(n in e)e.hasOwnProperty(n)&&t.push(n);return t}function i(e){return e&&"function"==typeof e.then}function r(e){return f.isNumber(e)?e.toString():e}function o(e){var t={},n=void 0;if(!f.isObject(e))return t;for(n in e)e.hasOwnProperty(n)&&(t[n]=n);return t}function a(e,a){if(e in m)throw new Error(e+" already exists!");if(!f.isString(e))throw new Error("cacheId must be a string!");var s={},u={},c=null,d=new t((function(e){return e.expires}),f.equals),h=new t((function(e){return e.accessed}),f.equals),g=m[e]={$$id:e,destroy:function(){clearInterval(this.$$cacheFlushIntervalId),clearInterval(this.$$recycleFreqId),this.removeAll(),c&&(c().removeItem(this.$$prefix+".keys"),c().removeItem(this.$$prefix)),c=null,s=null,h=null,d=null,this.$$prefix=null,delete m[this.$$id]},disable:function(){this.$$disabled=!0},enable:function(){delete this.$$disabled},get:function(e,t){var n=this;if(Array.isArray(e)){var i=function(){var i=[];return e.forEach((function(e){var r=n.get(e,t);null!=r&&i.push(r)})),{v:i}}();if("object"===(void 0===i?"undefined":l.typeof(i)))return i.v}else if(e=r(e),this.$$disabled)return;if(t=t||{},!f.isString(e))throw new Error("key must be a string!");if(t&&!f.isObject(t))throw new Error("options must be an object!");if(t.onExpire&&!f.isFunction(t.onExpire))throw new Error("options.onExpire must be a function!");var o=void 0;if(c){if(u[e])return u[e];var a=c().getItem(this.$$prefix+".data."+e);if(!a)return;o=f.fromJson(a)}else if(f.isObject(s)){if(!(e in s))return;o=s[e]}var d=o.value,p=(new Date).getTime();return c?(h.remove({key:e,accessed:o.accessed}),o.accessed=p,h.push({key:e,accessed:p})):(h.remove(o),o.accessed=p,h.push(o)),"passive"===this.$$deleteOnExpire&&"expires"in o&&o.expires<p?(this.remove(e),this.$$onExpire?this.$$onExpire(e,o.value,t.onExpire):t.onExpire&&t.onExpire.call(this,e,o.value),d=void 0):c&&c().setItem(this.$$prefix+".data."+e,JSON.stringify(o)),d},info:function(e){if(e){var t=void 0;if(c){var n=c().getItem(this.$$prefix+".data."+e);return n?{created:(t=f.fromJson(n)).created,accessed:t.accessed,expires:t.expires,isExpired:(new Date).getTime()-t.created>(t.maxAge||this.$$maxAge)}:void 0}return f.isObject(s)&&e in s?{created:(t=s[e]).created,accessed:t.accessed,expires:t.expires,isExpired:(new Date).getTime()-t.created>(t.maxAge||this.$$maxAge)}:void 0}return{id:this.$$id,capacity:this.$$capacity,maxAge:this.$$maxAge,deleteOnExpire:this.$$deleteOnExpire,onExpire:this.$$onExpire,cacheFlushInterval:this.$$cacheFlushInterval,recycleFreq:this.$$recycleFreq,storageMode:this.$$storageMode,storageImpl:c?c():void 0,disabled:!!this.$$disabled,size:h&&h.size()||0}},keys:function(){if(c){var e=c().getItem(this.$$prefix+".keys");return e?f.fromJson(e):[]}return n(s)},keySet:function(){if(c){var e=c().getItem(this.$$prefix+".keys"),t={};if(e)for(var n=f.fromJson(e),i=0;i<n.length;i++)t[n[i]]=n[i];return t}return o(s)},put:function(e,t,n){var o=this;n||(n={});var a="storeOnResolve"in n?!!n.storeOnResolve:this.$$storeOnResolve,l="storeOnReject"in n?!!n.storeOnReject:this.$$storeOnReject,p=function(t,n){return function(i){if(t&&(delete u[e],f.isObject(i)&&"status"in i&&"data"in i?(i=[i.status,i.data,i.headers(),i.statusText],o.put(e,i)):o.put(e,i)),n){if(f.Promise)return f.Promise.reject(i);throw i}return i}};if(!this.$$disabled&&f.isObject(s)&&null!=t){if(e=r(e),!f.isString(e))throw new Error("key must be a string!");var m=(new Date).getTime(),g={key:e,value:i(t)?t.then(p(a,!1),p(l,!0)):t,created:void 0===n.created?m:n.created,accessed:void 0===n.accessed?m:n.accessed};if(n.maxAge&&(g.maxAge=n.maxAge),void 0===n.expires?g.expires=g.created+(g.maxAge||this.$$maxAge):g.expires=n.expires,c){if(i(g.value))return u[e]=g.value,u[e];var v=c().getItem(this.$$prefix+".keys"),_=v?f.fromJson(v):[];c().getItem(this.$$prefix+".data."+e)&&this.remove(e),d.push({key:e,expires:g.expires}),h.push({key:e,accessed:g.accessed}),c().setItem(this.$$prefix+".data."+e,JSON.stringify(g));for(var y=!1,b=0;b<_.length;b++)if(_[b]===e){y=!0;break}y||_.push(e),c().setItem(this.$$prefix+".keys",JSON.stringify(_))}else s[e]&&this.remove(e),d.push(g),h.push(g),s[e]=g,delete u[e];return h.size()>this.$$capacity&&this.remove(h.peek().key),t}},remove:function(e){if(delete u[e+=""],c){var t=c().getItem(this.$$prefix+".data."+e);if(t){var n=f.fromJson(t);h.remove({key:e,accessed:n.accessed}),d.remove({key:e,expires:n.expires}),c().removeItem(this.$$prefix+".data."+e);var i=c().getItem(this.$$prefix+".keys"),r=i?f.fromJson(i):[],o=r.indexOf(e);return o>=0&&r.splice(o,1),c().setItem(this.$$prefix+".keys",JSON.stringify(r)),n.value}}else if(f.isObject(s)){var a=s[e]?s[e].value:void 0;return h.remove(s[e]),d.remove(s[e]),s[e]=null,delete s[e],a}},removeAll:function(){if(c){h.removeAll(),d.removeAll();var e=c().getItem(this.$$prefix+".keys");if(e)for(var t=f.fromJson(e),n=0;n<t.length;n++)this.remove(t[n]);c().setItem(this.$$prefix+".keys",JSON.stringify([]))}else if(f.isObject(s)){for(var i in h.removeAll(),d.removeAll(),s)s[i]=null;s={}}else h.removeAll(),d.removeAll(),s={};u={}},removeExpired:function(){for(var e=(new Date).getTime(),t={},n=void 0,i=void 0;(i=d.peek())&&i.expires<=e;)t[i.key]=i.value?i.value:null,d.pop();if(c)for(n in t){var r=c().getItem(this.$$prefix+".data."+n);r&&(t[n]=f.fromJson(r).value,this.remove(n))}else for(n in t)this.remove(n);if(this.$$onExpire)for(n in t)this.$$onExpire(n,t[n]);return t},setCacheFlushInterval:function(e){var t=this;if(null===e)delete t.$$cacheFlushInterval;else{if(!f.isNumber(e))throw new Error("cacheFlushInterval must be a number!");if(0>e)throw new Error("cacheFlushInterval must be greater than zero!");e!==t.$$cacheFlushInterval&&(t.$$cacheFlushInterval=e,clearInterval(t.$$cacheFlushIntervalId),t.$$cacheFlushIntervalId=setInterval((function(){t.removeAll()}),t.$$cacheFlushInterval))}},setCapacity:function(e){if(null===e)delete this.$$capacity;else{if(!f.isNumber(e))throw new Error("capacity must be a number!");if(0>e)throw new Error("capacity must be greater than zero!");this.$$capacity=e}for(var t={};h.size()>this.$$capacity;)t[h.peek().key]=this.remove(h.peek().key);return t},setDeleteOnExpire:function(e,t){if(null===e)delete this.$$deleteOnExpire;else{if(!f.isString(e))throw new Error("deleteOnExpire must be a string!");if("none"!==e&&"passive"!==e&&"aggressive"!==e)throw new Error('deleteOnExpire must be "none", "passive" or "aggressive"!');this.$$deleteOnExpire=e}!1!==t&&this.setRecycleFreq(this.$$recycleFreq)},setMaxAge:function(e){if(null===e)this.$$maxAge=Number.MAX_VALUE;else{if(!f.isNumber(e))throw new Error("maxAge must be a number!");if(0>e)throw new Error("maxAge must be greater than zero!");this.$$maxAge=e}var t=void 0,i=void 0,r=void 0;if(d.removeAll(),c){var o=c().getItem(this.$$prefix+".keys");for(i=o?f.fromJson(o):[],t=0;t<i.length;t++){r=i[t];var a=c().getItem(this.$$prefix+".data."+r);if(a){var l=f.fromJson(a);this.$$maxAge===Number.MAX_VALUE?l.expires=Number.MAX_VALUE:l.expires=l.created+(l.maxAge||this.$$maxAge),d.push({key:r,expires:l.expires})}}}else for(i=n(s),t=0;t<i.length;t++)r=i[t],this.$$maxAge===Number.MAX_VALUE?s[r].expires=Number.MAX_VALUE:s[r].expires=s[r].created+(s[r].maxAge||this.$$maxAge),d.push(s[r]);return"aggressive"===this.$$deleteOnExpire?this.removeExpired():{}},setOnExpire:function(e){if(null===e)delete this.$$onExpire;else{if(!f.isFunction(e))throw new Error("onExpire must be a function!");this.$$onExpire=e}},setOptions:function(e,t){if(e=e||{},t=!!t,!f.isObject(e))throw new Error("cacheOptions must be an object!");"storagePrefix"in e?this.$$storagePrefix=e.storagePrefix:t&&(this.$$storagePrefix=p.storagePrefix),this.$$prefix=this.$$storagePrefix+this.$$id,"disabled"in e?this.$$disabled=!!e.disabled:t&&(this.$$disabled=p.disabled),"deleteOnExpire"in e?this.setDeleteOnExpire(e.deleteOnExpire,!1):t&&this.setDeleteOnExpire(p.deleteOnExpire,!1),"recycleFreq"in e?this.setRecycleFreq(e.recycleFreq):t&&this.setRecycleFreq(p.recycleFreq),"maxAge"in e?this.setMaxAge(e.maxAge):t&&this.setMaxAge(p.maxAge),"storeOnResolve"in e?this.$$storeOnResolve=!!e.storeOnResolve:t&&(this.$$storeOnResolve=p.storeOnResolve),"storeOnReject"in e?this.$$storeOnReject=!!e.storeOnReject:t&&(this.$$storeOnReject=p.storeOnReject),"capacity"in e?this.setCapacity(e.capacity):t&&this.setCapacity(p.capacity),"cacheFlushInterval"in e?this.setCacheFlushInterval(e.cacheFlushInterval):t&&this.setCacheFlushInterval(p.cacheFlushInterval),"onExpire"in e?this.setOnExpire(e.onExpire):t&&this.setOnExpire(p.onExpire),"storageMode"in e||"storageImpl"in e?this.setStorageMode(e.storageMode||p.storageMode,e.storageImpl||p.storageImpl):t&&this.setStorageMode(p.storageMode,p.storageImpl)},setRecycleFreq:function(e){if(null===e)delete this.$$recycleFreq;else{if(!f.isNumber(e))throw new Error("recycleFreq must be a number!");if(0>e)throw new Error("recycleFreq must be greater than zero!");this.$$recycleFreq=e}clearInterval(this.$$recycleFreqId),"aggressive"===this.$$deleteOnExpire?function(e){e.$$recycleFreqId=setInterval((function(){e.removeExpired()}),e.$$recycleFreq)}(this):delete this.$$recycleFreqId},setStorageMode:function(e,t){function n(e,t){var n=this.keys(),i=n.length;if(i){for(var r=void 0,s=f.isObject(t),l=0;i>l;l++){if(r=n[l],e){var u=e().getItem(this.$$prefix+".data."+r);u&&(a[r]=f.fromJson(u))}else s&&(a[r]=t[r]);this.remove(r)}o=!0}}if(!f.isString(e))throw new Error("storageMode must be a string!");if("memory"!==e&&"localStorage"!==e&&"sessionStorage"!==e)throw new Error('storageMode must be "memory", "localStorage" or "sessionStorage"!');var i=c,r=s,o=!1,a={};if(this.$$initializing||n.call(this,i,r),this.$$storageMode=e,t){if(!f.isObject(t))throw new Error("storageImpl must be an object!");if(!("setItem"in t&&"function"==typeof t.setItem))throw new Error('storageImpl must implement "setItem(key, value)"!');if(!("getItem"in t&&"function"==typeof t.getItem))throw new Error('storageImpl must implement "getItem(key)"!');if(!("removeItem"in t)||"function"!=typeof t.removeItem)throw new Error('storageImpl must implement "removeItem(key)"!');c=function(){return t}}else if("localStorage"===this.$$storageMode)try{localStorage.setItem("cachefactory","cachefactory"),localStorage.removeItem("cachefactory"),c=function(){return localStorage}}catch(e){c=null,this.$$storageMode="memory"}else if("sessionStorage"===this.$$storageMode)try{sessionStorage.setItem("cachefactory","cachefactory"),sessionStorage.removeItem("cachefactory"),c=function(){return sessionStorage}}catch(e){c=null,this.$$storageMode="memory"}else c=null,this.$$storageMode="memory";if(this.$$initializing&&n.call(this,c,s),o){var l=void 0;for(var u in a)l=a[u],this.put(u,l.value,{created:l.created,accessed:l.accessed,expires:l.expires})}},touch:function(e,t){var n=this;if(e){var i=this.get(e,{onExpire:function(e,t){return n.put(e,t)}});i&&this.put(e,i,t)}else for(var r=this.keys(),o=0;o<r.length;o++)this.touch(r[o],t)},values:function(){for(var e=this.keys(),t=[],n=0;n<e.length;n++)t.push(this.get(e[n]));return t}};return g.$$initializing=!0,g.setOptions(a,!0),g.$$initializing=!1,g}function s(e,t){return a(e,t)}e="default"in e?e.default:e;var l={};l.typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};var u=function(e,t,n){for(var i=e[n],r=t(i);n>0;){var o=Math.floor((n+1)/2)-1,a=e[o];if(r>=t(a))break;e[o]=i,e[n]=a,n=o}},c=function(e,t,n){for(var i=e.length,r=e[n],o=t(r);;){var a=2*(n+1),s=a-1,l=null;if(i>s&&o>t(e[s])&&(l=s),i>a&&t(e[a])<(null===l?o:t(e[s]))&&(l=a),null===l)break;e[n]=e[l],e[l]=r,n=l}},d=t.prototype;d.push=function(e){this.heap.push(e),u(this.heap,this.weightFunc,this.heap.length-1)},d.peek=function(){return this.heap[0]},d.pop=function(){var e=this.heap[0],t=this.heap.pop();return this.heap.length>0&&(this.heap[0]=t,c(this.heap,this.weightFunc,0)),e},d.remove=function(e){for(var t=this.heap.length,n=0;t>n;n++)if(this.compareFunc(this.heap[n],e)){var i=this.heap[n],r=this.heap.pop();return n!==t-1&&(this.heap[n]=r,u(this.heap,this.weightFunc,n),c(this.heap,this.weightFunc,n)),i}return null},d.removeAll=function(){this.heap=[]},d.size=function(){return this.heap.length};var h=null;try{h=window.Promise}catch(e){}var f={isNumber:function(e){return"number"==typeof e},isString:function(e){return"string"==typeof e},isObject:function(e){return null!==e&&"object"===(void 0===e?"undefined":l.typeof(e))},isFunction:function(e){return"function"==typeof e},fromJson:function(e){return JSON.parse(e)},equals:function(e,t){return e===t},Promise:h},p={capacity:Number.MAX_VALUE,maxAge:Number.MAX_VALUE,deleteOnExpire:"none",onExpire:null,cacheFlushInterval:null,recycleFreq:1e3,storageMode:"memory",storageImpl:null,disabled:!1,storagePrefix:"cachefactory.caches.",storeOnResolve:!1,storeOnReject:!1},m={};return s.createCache=a,s.defaults=p,s.info=function(){var e=n(m),t={size:e.length,caches:{}};for(var i in p)p.hasOwnProperty(i)&&(t[i]=p[i]);for(var r=0;r<e.length;r++){var o=e[r];t.caches[o]=m[o].info()}return t},s.get=function(e){return m[e]},s.keySet=function(){return o(m)},s.keys=function(){return n(m)},s.destroy=function(e){m[e]&&(m[e].destroy(),delete m[e])},s.destroyAll=function(){for(var e in m)m[e].destroy();m={}},s.clearAll=function(){for(var e in m)m[e].removeAll()},s.removeExpiredFromAll=function(){var e={};for(var t in m)e[t]=m[t].removeExpired();return e},s.enableAll=function(){for(var e in m)m[e].$$disabled=!1},s.disableAll=function(){for(var e in m)m[e].$$disabled=!0},s.touchAll=function(){for(var e in m)m[e].touch()},s.utils=f,s.BinaryHeap=t,s.utils.equals=e.equals,s.utils.isObject=e.isObject,s.utils.fromJson=e.fromJson,e.module("angular-cache",[]).provider("BinaryHeap",(function(){this.$get=function(){return s.BinaryHeap}})).provider("CacheFactory",(function(){this.defaults=s.defaults,this.defaults.storagePrefix="angular-cache.caches.",this.$get=["$q",function(e){return s.utils.Promise=e,s}]})),"angular-cache"})),function(){"use strict";function e(e,t,n,i,r){function o(e){return angular.isString(e)?(e=e.split(/\s*,\s*/)).some((function(e){return!!t.matchMedia(d[e]).matches||void 0})):void 0}var a=r.config.rules,s=r.config.extraRules||{},l=r.config.nobind||!1,u=r.config.debounce||250,c={bootstrap:{lg:"(min-width: 1200px)",md:"(min-width: 992px) and (max-width: 1199px)",sm:"(min-width: 768px) and (max-width: 991px)",xs:"(max-width: 767px)"},matchmedia:{print:"print",screen:"screen",phone:"(max-width: 767px)",tablet:"(min-width: 768px) and (max-width: 991px)",desktop:"(min-width: 992px)",portrait:"(orientation: portrait)",landscape:"(orientation: landscape)"}},d={},h={is:o,bind:function(t,n){var i=null,r=o(t),a={active:r,unbind:null};if(!l){var s=(n=n||e).$on("screenmatch::resize",(function(){i=r,r=o(t),i!==r&&(a.active=r)}));a.unbind=function(){s()}}return a},once:function(t,n,r){var a=!1,s=null,u=o(t);if(angular.isFunction(n)&&(u&&(a=!0,i((function(){n()}))),!l&&!a))var c=(r=r||e).$on("screenmatch::resize",(function(){s=u,(u=o(t))&&s!==u&&(a=!0,i((function(){n()}))),a&&c()}))},when:function(t,n,r,a){var s=null,u=o(t);if(angular.isUndefined(a)&&!angular.isUndefined(r)&&(angular.isFunction(r)||(a=r,r=void 0)),angular.isFunction(n)&&(angular.isFunction(r)||angular.isUndefined(r))&&(u?i((function(){n()})):r&&i((function(){r()})),!l))return{cancel:(a=a||e).$on("screenmatch::resize",(function(){s=u,u=o(t),s!==u&&(u?i((function(){n()})):r&&i((function(){r()})))}))}}};return function(){if(d=angular.isObject(a)&&!angular.equals({},a)?a:c[a]||c.bootstrap,!angular.equals({},s)&&angular.isObject(s)){var e={};angular.forEach(s,(function(t,n){angular.isString(t)&&(e[n]=t)})),angular.extend(d,e)}}(),l||function(){var i=angular.element(t),r=!1;i.on("resize",(function(){if(!r)var t=n((function(){e.$broadcast("screenmatch::resize",!0),r&&(n.cancel(t),r=!1)}),u);r=!0}))}(),h}function t(e,t){var n=e[0];return{link:function(e,i,r){var o=r.asmScreen,a=t.bind(o,e);r.ngIf=function(){return a.active},n.link.apply(n,arguments)},terminal:n.terminal,transclude:n.transclude,priority:n.priority,restrict:n.restrict}}function n(e){(angular.isUndefined(e.matchMedia)||!angular.isFunction(e.matchMedia("all").addListener))&&(e.matchMedia=function(){var t=e.styleMedia||e.media;if(!t){var n,i=document.createElement("style"),r=document.getElementsByTagName("script")[0];i.type="text/css",i.id="matchmediajs-test",r.parentNode.insertBefore(i,r),n="getComputedStyle"in e&&e.getComputedStyle(i,null)||i.currentStyle,t={matchMedium:function(e){var t="@media "+e+"{ #matchmediajs-test { width: 1px; } }";return i.styleSheet?i.styleSheet.cssText=t:i.textContent=t,"1px"===n.width}}}return function(e){return{matches:t.matchMedium(e||"all"),media:e||"all"}}}())}angular.module("angular.screenmatch",[]).run(n).provider("screenmatchConfig",(function(){this.config={},this.$get=function(){return{config:this.config}}})).factory("screenmatch",e).directive("asmScreen",t),e.$inject=["$rootScope","$window","$interval","$timeout","screenmatchConfig"],t.$inject=["ngIfDirective","screenmatch"],n.$inject=["$window"]}(),function(){"use strict";function e(e,t){function n(t,n,i){n!==i&&e.$broadcast("$$rebind::"+t)}Object.keys(t).forEach((function(i){e.$watch(t[i],n.bind(null,i),"object"==typeof e[t[i]])}))}function t(e){function t(e,t,n){return function(e,i,r){var o,a,s,l,u;if("string"!=typeof i||!t.test(i))return e.call(this,i,r);for(o=i.split(":"),u=[];o.length;)if((a=o.shift())&&a.trim()){if(!n.test(a)){l=[a].concat(o).join(":");break}u.push(a)}return l||(l=u.splice(-1,1)[0]),(s=e.call(this,"::"+l,r)).$$watchDelegate=function(e,t){function n(e,n){t.forEach((function(t){e.$on("$$rebind::"+t,n)}))}if(e.$$watchDelegate.wrapped)return e.$$watchDelegate;var i=function(e,t,i,r,o){var a=e.bind(this,t,i,r,o);return n(t,a),a()}.bind(this,e.$$watchDelegate);return i.wrapped=!0,i}(s,u),s}.bind(null,e)}t.$inject=["$delegate","bindNotifierRegex","bindNotifierKeyRegex"],e.decorator("$parse",t)}t.$inject=["$provide"],angular.module("angular.bind.notifier",[]).constant("bindNotifierKeyRegex",/^[a-zA-Z0-9][\w-]*$/).constant("bindNotifierRegex",/^[\s]*:([a-zA-Z0-9][\w-]*):(.+\n?)+$/).factory("$Notifier",(function(){return function(t,n){if(!t)throw new Error("No $scope given");if(!n)throw new Error("No notifier object given");e(t,n)}})).directive("bindNotifier",(function(){return{restrict:"A",scope:!0,compile:function(t,n){var i={};return n.bindNotifier.replace(/[\{\}\s]/g,"").split(",").forEach((function(e){var t=e.split(":");i[t[0]]=t[1]})),function(t){e(t,i)}}}})).config(t)}(),n=function(e,t,n){var i=e,r=t||0,o=0;this.getRawData=function(){return i},"string"==typeof e?(o=n||i.length,this.getByteAt=function(e){return 255&i.charCodeAt(e+r)},this.getBytesAt=function(e,t){for(var n=[],o=0;o<t;o++)n[o]=255&i.charCodeAt(e+o+r);return n}):"unknown"==typeof e&&(o=n||IEBinary_getLength(i),this.getByteAt=function(e){return IEBinary_getByteAt(i,e+r)},this.getBytesAt=function(e,t){return new VBArray(IEBinary_getBytesAt(i,e+r,t)).toArray()}),this.getLength=function(){return o},this.getSByteAt=function(e){var t=this.getByteAt(e);return t>127?t-256:t},this.getShortAt=function(e,t){var n=t?(this.getByteAt(e)<<8)+this.getByteAt(e+1):(this.getByteAt(e+1)<<8)+this.getByteAt(e);return n<0&&(n+=65536),n},this.getSShortAt=function(e,t){var n=this.getShortAt(e,t);return n>32767?n-65536:n},this.getLongAt=function(e,t){var n=this.getByteAt(e),i=this.getByteAt(e+1),r=this.getByteAt(e+2),o=this.getByteAt(e+3),a=t?(((n<<8)+i<<8)+r<<8)+o:(((o<<8)+r<<8)+i<<8)+n;return a<0&&(a+=4294967296),a},this.getSLongAt=function(e,t){var n=this.getLongAt(e,t);return n>2147483647?n-4294967296:n},this.getStringAt=function(e,t){for(var n=[],i=this.getBytesAt(e,t),r=0;r<t;r++)n[r]=String.fromCharCode(i[r]);return n.join("")},this.getCharAt=function(e){return String.fromCharCode(this.getByteAt(e))},this.toBase64=function(){return window.btoa(i)},this.fromBase64=function(e){i=window.atob(e)}},r=function(){var e=!1,t={36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37520:"SubsecTime",37521:"SubsecTimeOriginal",37522:"SubsecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"ISOSpeedRatings",34856:"OECF",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRation",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",40965:"InteroperabilityIFDPointer",42016:"ImageUniqueID"},n={256:"ImageWidth",257:"ImageHeight",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer",40965:"InteroperabilityIFDPointer",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright"},i={0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential"},r={ExposureProgram:{0:"Not defined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Not defined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},Components:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"}};function o(e){return!!e.exifdata}function a(t){if(255!=t.getByteAt(0)||216!=t.getByteAt(1))return!1;for(var n,i=2,r=t.getLength();i<r;){if(255!=t.getByteAt(i))return e&&alert("Not a valid marker at offset "+i+", found: "+t.getByteAt(i)),!1;if(22400==(n=t.getByteAt(i+1)))return e&&alert("Found 0xFFE1 marker"),u(t,i+4,t.getShortAt(i+2,!0));if(225==n)return e&&alert("Found 0xFFE1 marker"),u(t,i+4,t.getShortAt(i+2,!0));i+=2+t.getShortAt(i+2,!0)}}function s(t,n,i,r,o){var a,s,u,c=t.getShortAt(i,o),d={};for(u=0;u<c;u++)a=i+12*u+2,!(s=r[t.getShortAt(a,o)])&&e&&alert("Unknown tag: "+t.getShortAt(a,o)),d[s]=l(t,a,n,0,o);return d}function l(e,t,n,i,r){var o,a,s,l,u,c=e.getShortAt(t+2,r),d=e.getLongAt(t+4,r),h=e.getLongAt(t+8,r)+n;switch(c){case 1:case 7:if(1==d)return e.getByteAt(t+8,r);for(o=d>4?h:t+8,a=[],f=0;f<d;f++)a[f]=e.getByteAt(o+f);return a;case 2:return o=d>4?h:t+8,e.getStringAt(o,d-1);case 3:if(1==d)return e.getShortAt(t+8,r);for(o=d>2?h:t+8,a=[],f=0;f<d;f++)a[f]=e.getShortAt(o+2*f,r);return a;case 4:if(1==d)return e.getLongAt(t+8,r);a=[];for(var f=0;f<d;f++)a[f]=e.getLongAt(h+4*f,r);return a;case 5:if(1==d)return l=e.getLongAt(h,r),u=e.getLongAt(h+4,r),(s=new Number(l/u)).numerator=l,s.denominator=u,s;for(a=[],f=0;f<d;f++)l=e.getLongAt(h+8*f,r),u=e.getLongAt(h+4+8*f,r),a[f]=new Number(l/u),a[f].numerator=l,a[f].denominator=u;return a;case 9:if(1==d)return e.getSLongAt(t+8,r);for(a=[],f=0;f<d;f++)a[f]=e.getSLongAt(h+4*f,r);return a;case 10:if(1==d)return e.getSLongAt(h,r)/e.getSLongAt(h+4,r);for(a=[],f=0;f<d;f++)a[f]=e.getSLongAt(h+8*f,r)/e.getSLongAt(h+4+8*f,r);return a}}function u(o,a){if("Exif"!=o.getStringAt(a,4))return e&&alert("Not valid EXIF data! "+o.getStringAt(a,4)),!1;var l,u,c,d,h,f=a+6;if(18761==o.getShortAt(f))l=!1;else{if(19789!=o.getShortAt(f))return e&&alert("Not valid TIFF data! (no 0x4949 or 0x4D4D)"),!1;l=!0}if(42!=o.getShortAt(f+2,l))return e&&alert("Not valid TIFF data! (no 0x002A)"),!1;if(8!=o.getLongAt(f+4,l))return e&&alert("Not valid TIFF data! (First offset not 8)",o.getShortAt(f+4,l)),!1;if((u=s(o,f,f+8,n,l)).ExifIFDPointer)for(c in d=s(o,f,f+u.ExifIFDPointer,t,l)){switch(c){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":d[c]=r[c][d[c]];break;case"ExifVersion":case"FlashpixVersion":d[c]=String.fromCharCode(d[c][0],d[c][1],d[c][2],d[c][3]);break;case"ComponentsConfiguration":d[c]=r.Components[d[c][0]]+r.Components[d[c][1]]+r.Components[d[c][2]]+r.Components[d[c][3]]}u[c]=d[c]}if(u.GPSInfoIFDPointer)for(c in h=s(o,f,f+u.GPSInfoIFDPointer,i,l)){switch(c){case"GPSVersionID":h[c]=h[c][0]+"."+h[c][1]+"."+h[c][2]+"."+h[c][3]}u[c]=h[c]}return u}return{readFromBinaryFile:function(e){return a(e)},pretty:function(e){if(!o(e))return"";var t,n=e.exifdata,i="";for(t in n)n.hasOwnProperty(t)&&("object"==typeof n[t]?n[t]instanceof Number?i+=t+" : "+n[t]+" ["+n[t].numerator+"/"+n[t].denominator+"]\r\n":i+=t+" : ["+n[t].length+" values]\r\n":i+=t+" : "+n[t]+"\r\n");return i},getTag:function(e,t){if(o(e))return e.exifdata[t]},getAllTags:function(e){if(!o(e))return{};var t,n=e.exifdata,i={};for(t in n)n.hasOwnProperty(t)&&(i[t]=n[t]);return i},getData:function(e,t){return!!e.complete&&(o(e)?t&&t.call(e):function(e,t){BinaryAjax(e.src,(function(n){var i=a(n.binaryResponse);e.exifdata=i||{},t&&t.call(e)}))}(e,t),!0)},Tags:t,TiffTags:n,GPSTags:i,StringValues:r}}(),angular.module("ImageCropper",[]).directive("imageCrop",(function(){return{template:'<div id="image-crop-{{ rand }}" class="ng-image-crop ng-image-crop--{{ shape }}" ng-style="moduleStyles"><section ng-style="sectionStyles" ng-show="step==1"></section><section ng-style="sectionStyles" ng-show="step==2"><canvas class="cropping-canvas" width="{{ canvasWidth }}" height="{{ canvasHeight }}" ng-mousemove="onCanvasMouseMove($event)" ng-mousedown="onCanvasMouseDown($event)"></canvas><div ng-style="croppingGuideStyles" class="cropping-guide"></div><div class="zoom-handle" ng-mousemove="onHandleMouseMove($event)" ng-mousedown="onHandleMouseDown($event)" ng-mouseup="onHandleMouseUp($event)"><span>&larr; zoom &rarr;</span></div></section><section ng-style="sectionStyles" class="image-crop-section-final" ng-show="step==3"><img class="image-crop-final" ng-src="{{ croppedDataUri }}" /></section></div>',replace:!0,restrict:"AE",scope:{crop:"=",width:"@",height:"@",shape:"@",src:"=",resultBlob:"=",result:"=",step:"=",padding:"@",maxSize:"@"},link:function(e,t,i){var o=e.padding?Number(e.padding):200;e.rand=Math.round(99999*Math.random()),e.step=e.step||1,e.shape=e.shape||"circle",e.width=parseInt(e.width,10)||300,e.height=parseInt(e.height,10)||300,e.canvasWidth=e.width+o,e.canvasHeight=e.height+o;var a=t[0],s=a.getElementsByClassName("cropping-canvas")[0],l=a.getElementsByClassName("zoom-handle")[0],u=a.getElementsByClassName("image-crop-final")[0],c=new Image,d=new FileReader,h=0,f=0,p=0,m=0,g=!1,v=0,_=0,y=!1,b=h,w=f,L=0,M=0,k=1,x=0,S=0,T=2,$=0,D=o/2,C=0,E=o/2,A=e.maxSize?Number(e.maxSize):null,P=s.getContext("2d"),Y=null;function O(e){var t=atob(e.split(",")[1]),i=new n(t,0,t.length);Y=r.readFromBinaryFile(i),function(e){return new Promise((function(t,n){if(!A)return t(e);var i=new Image;i.src=e,i.onload=function(){var n=i.height,r=i.width;if(n<=A&&r<=A)return t(e);var o=r/n;o>1?(r=A,n=A/o):(r=A*o,n=A),r=Math.round(r),n=Math.round(n);var a=document.createElement("canvas");a.width=r,a.height=n;var s=a.getContext("2d");s.drawImage(i,0,0,i.width,i.height,0,0,a.width,a.height),s.save();var l=a.toDataURL();t(l)}}))}(e).then((function(e){return Y&&Y.Orientation&&Y.Orientation>1?function(e,t){return new Promise((function(n,i){var r=new Image;r.src=e,r.onload=function(){var e=document.createElement("canvas");t.Orientation>=5?(e.width=r.height,e.height=r.width):(e.width=r.width,e.height=r.height);var i=e.getContext("2d");switch(t.Orientation){case 1:break;case 2:i.translate(r.width,0),i.scale(-1,1);break;case 3:i.translate(r.width,r.height),i.rotate(Math.PI);break;case 4:i.translate(0,r.height),i.scale(1,-1);break;case 5:i.rotate(.5*Math.PI),i.scale(1,-1);break;case 6:i.rotate(.5*Math.PI),i.translate(0,-r.height);break;case 7:i.rotate(.5*Math.PI),i.translate(r.width,-r.height),i.scale(-1,1);break;case 8:i.rotate(-.5*Math.PI),i.translate(-r.width,0)}i.drawImage(r,0,0),i.save();var o=e.toDataURL();n(o)}}))}(e,Y):e})).then((function(e){c.src=e})).catch((function(e){alert(e)}))}function I(e,t){return L=e=(e=e<$?$:e)>D?D:e,M=t=(t=t<C?C:t)>E?E:t,P.clearRect(0,0,s.width,s.height),P.drawImage(c,e,t,b,w),e==$||e==D||t==C||t==E}function j(e){return Math.round(1e3*e)/1e3}function H(){$=s.width-c.width*k-o/2,C=s.height-c.height*k-o/2}function N(e){if(e){var t=j(k+e);if(!(t<S||t>T)){k=t,H(),b=c.width*k,w=c.height*k;var n=p*k,i=m*k;n<$?n=$:n>D&&(n=D),i<C?i=C:i>E&&(i=E),P.clearRect(0,0,s.width,s.height),P.drawImage(c,n,i,b,w)}}}function B(e,t){document.documentElement.addEventListener(e,t,!1)}function R(e,t){document.documentElement.removeEventListener(e,t)}e.moduleStyles={width:e.width+o+"px",height:e.height+o+"px"},e.sectionStyles={width:e.width+o+"px",height:e.height+o+"px"},e.croppingGuideStyles={width:e.width+"px",height:e.height+"px",top:o/2+"px",left:o/2+"px"},d.onload=function(e){O(this.resultBlob)},c.onload=function(){e.step=2,e.$apply(),P.drawImage(c,0,0),h=c.width,f=c.height,e.width,this.width,e.height,this.height,b=h,w=f,S=h>=f?(s.height-o)/f:(s.width-o)/h,x=j(Math.sqrt(Math.pow(s.width,2)+Math.pow(s.height,2))),H(),I(Math.round(($+D)/2),Math.round((C+E)/2))},e.$watch("src",(function(){e.src?3!=e.step&&("Blob"==typeof e.src?d.readAsDataURL(e.src):O(e.src)):(e.step=1,k=1,p=0,m=0,g=!1,v=0,_=0,y=!1,P.clearRect(0,0,s.width,s.height),c.src="")})),e.$watch("crop",(function(){e.crop&&(e.doCrop(),e.crop=!1)})),u.onload=function(){var t=document.createElement("canvas");t.width=this.width-o,t.height=this.height-o,t.style.display="none",t.getContext("2d").drawImage(u,-o/2,-o/2),a.getElementsByClassName("image-crop-section-final")[0].appendChild(t);var n=t.toDataURL();e.result=n,e.resultBlob=function(e){var t,n;t=-1!==e.split(",")[0].indexOf("base64")?atob(e.split(",")[1]):decodeURI(e.split(",")[1]),n=e.split(",")[0].split(":")[1].split(";")[0];for(var i=new Array,r=0;r<t.length;r++)i[r]=t.charCodeAt(r);return new Blob([new Uint8Array(i)],{type:n})}(n),e.$apply()},e.doCrop=function(){e.croppedDataUri=s.toDataURL(),e.step=3},e.onCanvasMouseUp=function(t){g&&(t.preventDefault(),t.stopPropagation(),v=0,_=0,g=!1,p=L,m=M,R("mouseup",e.onCanvasMouseUp),R("touchend",e.onCanvasMouseUp),R("mousemove",e.onCanvasMouseMove),R("touchmove",e.onCanvasMouseMove))},s.addEventListener("touchend",e.onCanvasMouseUp,!1),e.onCanvasMouseDown=function(t){v="touchstart"===t.type?t.changedTouches[0].clientX:t.clientX,_="touchstart"===t.type?t.changedTouches[0].clientY:t.clientY,y=!1,g=!0,B("mouseup",e.onCanvasMouseUp),B("mousemove",e.onCanvasMouseMove)},s.addEventListener("touchstart",e.onCanvasMouseDown,!1),e.onHandleMouseDown=function(t){t.preventDefault(),t.stopPropagation(),v=F="touchstart"===t.type?t.changedTouches[0].clientX:t.clientX,_=z="touchstart"===t.type?t.changedTouches[0].clientY:t.clientY,g=!1,y=!0,B("mouseup",e.onHandleMouseUp),B("touchend",e.onHandleMouseUp),B("mousemove",e.onHandleMouseMove),B("touchmove",e.onHandleMouseMove)},l.addEventListener("touchstart",e.onHandleMouseDown,!1),e.onHandleMouseUp=function(t){y&&(t.preventDefault(),t.stopPropagation(),v=0,_=0,y=!1,p=L,m=M,R("mouseup",e.onHandleMouseUp),R("touchend",e.onHandleMouseUp),R("mousemove",e.onHandleMouseMove),R("touchmove",e.onHandleMouseMove))},l.addEventListener("touchend",e.onHandleMouseUp,!1),e.onCanvasMouseMove=function(e){if(e.preventDefault(),e.stopPropagation(),g){var t=v-("touchmove"===e.type?e.changedTouches[0].clientX:e.clientX),n=_-("touchmove"===e.type?e.changedTouches[0].clientY:e.clientY);I(p-t,m-n)}},s.addEventListener("touchmove",e.onCanvasMouseMove,!1);var F=null,z=null;e.onHandleMouseMove=function(e){if(e.stopPropagation(),e.preventDefault(),!y)return!1;var t=F-("touchmove"===e.type?e.changedTouches[0].clientX:e.clientX),n=z-("touchmove"===e.type?e.changedTouches[0].clientY:e.clientY);F="touchmove"===e.type?e.changedTouches[0].clientX:e.clientX,z="touchmove"===e.type?e.changedTouches[0].clientY:e.clientY,N(function(e,t){var n=j(Math.sqrt(Math.pow(e,2)+Math.pow(t,2))/x),i=j((T-S)*n*.6);return e>0?-i:i}(t,n))},l.addEventListener("touchmove",e.onHandleMouseMove,!1),e.onHandleMouseWheel=function(e){e.preventDefault(),N(e.deltaY>0?-.05:.05)},s.addEventListener("mousewheel",e.onHandleMouseWheel),l.addEventListener("mousewheel",e.onHandleMouseWheel)}}})),function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var i in n)("object"==typeof exports?exports:e)[i]=n[i]}}(this,(function(){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return e[i].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";e.exports="ngFileSaver",angular.module("ngFileSaver",[]).factory("FileSaver",["Blob","SaveAs","FileSaverUtils",n(1)]).factory("FileSaverUtils",[n(2)]).factory("Blob",["$window",n(3)]).factory("SaveAs",[n(5)])},function(e,t){"use strict";e.exports=function(e,t,n){function i(e,i,r){try{t(e,i,r)}catch(e){n.handleErrors(e.message)}}return{saveAs:function(e,t,r){return n.isBlobInstance(e)||n.handleErrors("Data argument should be a blob instance"),n.isString(t)||n.handleErrors("Filename argument should be a string"),i(e,t,r)}}}},function(e,t){"use strict";e.exports=function(){return{handleErrors:function(e){throw new Error(e)},isString:function(e){return"string"==typeof e||e instanceof String},isUndefined:function(e){return void 0===e},isBlobInstance:function(e){return e instanceof Blob}}}},function(e,t,n){"use strict";n(4),e.exports=function(e){return e.Blob}},function(e,t){!function(e){"use strict";if(e.URL=e.URL||e.webkitURL,e.Blob&&e.URL)try{return void new Blob}catch(e){}var t=e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder||function(e){var t=function(e){return Object.prototype.toString.call(e).match(/^\[object\s(.*)\]$/)[1]},n=function(){this.data=[]},i=function(e,t,n){this.data=e,this.size=e.length,this.type=t,this.encoding=n},r=n.prototype,o=i.prototype,a=e.FileReaderSync,s=function(e){this.code=this[this.name=e]},l="NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR".split(" "),u=l.length,c=e.URL||e.webkitURL||e,d=c.createObjectURL,h=c.revokeObjectURL,f=c,p=e.btoa,m=e.atob,g=e.ArrayBuffer,v=e.Uint8Array,_=/^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/;for(i.fake=o.fake=!0;u--;)s.prototype[l[u]]=u+1;return c.createObjectURL||(f=e.URL=function(e){var t,n=document.createElementNS("http://www.w3.org/1999/xhtml","a");return n.href=e,"origin"in n||("data:"===n.protocol.toLowerCase()?n.origin=null:(t=e.match(_),n.origin=t&&t[1])),n}),f.createObjectURL=function(e){var t,n=e.type;return null===n&&(n="application/octet-stream"),e instanceof i?(t="data:"+n,"base64"===e.encoding?t+";base64,"+e.data:"URI"===e.encoding?t+","+decodeURIComponent(e.data):p?t+";base64,"+p(e.data):t+","+encodeURIComponent(e.data)):d?d.call(c,e):void 0},f.revokeObjectURL=function(e){"data:"!==e.substring(0,5)&&h&&h.call(c,e)},r.append=function(e){var n=this.data;if(v&&(e instanceof g||e instanceof v)){for(var r="",o=new v(e),l=0,u=o.length;l<u;l++)r+=String.fromCharCode(o[l]);n.push(r)}else if("Blob"===t(e)||"File"===t(e)){if(!a)throw new s("NOT_READABLE_ERR");var c=new a;n.push(c.readAsBinaryString(e))}else e instanceof i?"base64"===e.encoding&&m?n.push(m(e.data)):"URI"===e.encoding?n.push(decodeURIComponent(e.data)):"raw"===e.encoding&&n.push(e.data):("string"!=typeof e&&(e+=""),n.push(unescape(encodeURIComponent(e))))},r.getBlob=function(e){return arguments.length||(e=null),new i(this.data.join(""),e,"raw")},r.toString=function(){return"[object BlobBuilder]"},o.slice=function(e,t,n){var r=arguments.length;return r<3&&(n=null),new i(this.data.slice(e,r>1?t:this.data.length),n,this.encoding)},o.toString=function(){return"[object Blob]"},o.close=function(){this.size=0,delete this.data},n}(e);e.Blob=function(e,n){var i=n&&n.type||"",r=new t;if(e)for(var o=0,a=e.length;o<a;o++)Uint8Array&&e[o]instanceof Uint8Array?r.append(e[o].buffer):r.append(e[o]);var s=r.getBlob(i);return!s.slice&&s.webkitSlice&&(s.slice=s.webkitSlice),s};var n=Object.getPrototypeOf||function(e){return e.__proto__};e.Blob.prototype=n(new e.Blob)}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content||this)},function(e,t,n){"use strict";e.exports=function(){return n(6).saveAs||function(){}}},function(e,t,n){var i,r=r||function(e){"use strict";if(!(void 0===e||"undefined"!=typeof navigator&&/MSIE [1-9]\./.test(navigator.userAgent))){var t=e.document,n=function(){return e.URL||e.webkitURL||e},i=t.createElementNS("http://www.w3.org/1999/xhtml","a"),r="download"in i,o=/constructor/i.test(e.HTMLElement)||e.safari,a=/CriOS\/[\d]+/.test(navigator.userAgent),s=function(t){(e.setImmediate||e.setTimeout)((function(){throw t}),0)},l=function(e){setTimeout((function(){"string"==typeof e?n().revokeObjectURL(e):e.remove()}),4e4)},u=function(e,t,n){for(var i=(t=[].concat(t)).length;i--;){var r=e["on"+t[i]];if("function"==typeof r)try{r.call(e,n||e)}catch(e){s(e)}}},c=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e},d=function(t,s,d){d||(t=c(t));var h,f=this,p="application/octet-stream"===t.type,m=function(){u(f,"writestart progress write writeend".split(" "))};return f.readyState=f.INIT,r?(h=n().createObjectURL(t),void setTimeout((function(){i.href=h,i.download=s,function(e){var t=new MouseEvent("click");e.dispatchEvent(t)}(i),m(),l(h),f.readyState=f.DONE}))):void function(){if((a||p&&o)&&e.FileReader){var i=new FileReader;return i.onloadend=function(){var t=a?i.result:i.result.replace(/^data:[^;]*;/,"data:attachment/file;");e.open(t,"_blank")||(e.location.href=t),t=void 0,f.readyState=f.DONE,m()},i.readAsDataURL(t),void(f.readyState=f.INIT)}h||(h=n().createObjectURL(t)),p?e.location.href=h:e.open(h,"_blank")||(e.location.href=h),f.readyState=f.DONE,m(),l(h)}()},h=d.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,n){return t=t||e.name||"download",n||(e=c(e)),navigator.msSaveOrOpenBlob(e,t)}:(h.abort=function(){},h.readyState=h.INIT=0,h.WRITING=1,h.DONE=2,h.error=h.onwritestart=h.onprogress=h.onwrite=h.onabort=h.onerror=h.onwriteend=null,function(e,t,n){return new d(e,t||e.name||"download",n)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);void 0!==e&&e.exports?e.exports.saveAs=r:null!==n(7)&&null!==n(8)&&(void 0===(i=function(){return r}.call(t,n,t,e))||(e.exports=i))},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t){(function(t){e.exports=t}).call(t,{})}])})),function(e,t,n){"use strict";t.module("ngIdle",["ngIdle.keepalive","ngIdle.idle","ngIdle.countdown","ngIdle.title","ngIdle.localStorage"]),t.module("ngIdle.keepalive",[]).provider("Keepalive",(function(){var e={http:null,interval:600};this.http=function(n){if(!n)throw new Error("Argument must be a string containing a URL, or an object containing the HTTP request configuration.");t.isString(n)&&(n={url:n,method:"GET"}),n.cache=!1,e.http=n};var n=this.interval=function(t){if(t=parseInt(t),isNaN(t)||0>=t)throw new Error("Interval must be expressed in seconds and be greater than 0.");e.interval=t};this.$get=["$rootScope","$log","$interval","$http",function(i,r,o,a){function s(e){i.$broadcast("KeepaliveResponse",e.data,e.status)}function l(){i.$broadcast("Keepalive"),t.isObject(e.http)&&a(e.http).then(s).catch(s)}var u={ping:null};return{_options:function(){return e},setInterval:n,start:function(){return o.cancel(u.ping),u.ping=o(l,1e3*e.interval),u.ping},stop:function(){o.cancel(u.ping)},ping:function(){l()}}}]})),t.module("ngIdle.idle",["ngIdle.keepalive","ngIdle.localStorage"]).provider("Idle",(function(){var e={idle:1200,timeout:30,autoResume:"idle",interrupt:"mousemove keydown DOMMouseScroll mousewheel mousedown touchstart touchmove scroll",windowInterrupt:null,keepalive:!0},n=this.timeout=function(n){if(!1===n)e.timeout=0;else{if(!(t.isNumber(n)&&n>=0))throw new Error("Timeout must be zero or false to disable the feature, or a positive integer (in seconds) to enable it.");e.timeout=n}};this.interrupt=function(t){e.interrupt=t},this.windowInterrupt=function(t){e.windowInterrupt=t};var i=this.idle=function(t){if(0>=t)throw new Error("Idle must be a value in seconds, greater than 0.");e.idle=t};this.autoResume=function(t){e.autoResume=!0===t?"idle":!1===t?"off":t},this.keepalive=function(t){e.keepalive=!0===t},this.$get=["$interval","$log","$rootScope","$document","Keepalive","IdleLocalStorage","$window",function(r,o,a,s,l,u,c){function d(){e.keepalive&&(_.running&&l.ping(),l.start())}function h(){e.keepalive&&l.stop()}function f(){_.idling=!_.idling;var t=_.idling?"IdleStart":"IdleEnd";_.idling?(a.$broadcast(t),h(),e.timeout&&(_.countdown=e.timeout,p(),_.timeout=r(p,1e3,e.timeout,!1))):(d(),a.$broadcast(t)),r.cancel(_.idle)}function p(){if(_.idling){if(_.countdown<=0)return void m();a.$broadcast("IdleWarn",_.countdown),_.countdown--}}function m(){h(),r.cancel(_.idle),r.cancel(_.timeout),_.idling=!0,_.running=!1,_.countdown=0,a.$broadcast("IdleTimeout")}function g(e,t,n){var i=e.running();e.unwatch(),t(n),i&&e.watch()}function v(e){e?u.set("expiry",{id:y,time:e}):u.remove("expiry")}var _={idle:null,timeout:null,idling:!1,running:!1,countdown:null},y=(new Date).getTime(),b={_options:function(){return e},_getNow:function(){return new Date},getIdle:function(){return e.idle},getTimeout:function(){return e.timeout},setIdle:function(e){g(this,i,e)},setTimeout:function(e){g(this,n,e)},isExpired:function(){var e=function(){var e=u.get("expiry");return e&&e.time?new Date(e.time):null}();return null!==e&&e<=this._getNow()},running:function(){return _.running},idling:function(){return _.idling},watch:function(t){r.cancel(_.idle),r.cancel(_.timeout);var n=e.timeout?e.timeout:0;t||v(new Date((new Date).getTime()+1e3*(e.idle+n))),_.idling?f():_.running||d(),_.running=!0,_.idle=r(f,1e3*e.idle,0,!1)},unwatch:function(){r.cancel(_.idle),r.cancel(_.timeout),_.idling=!1,_.running=!1,v(null),h()},interrupt:function(t){if(_.running){if(e.timeout&&this.isExpired())return void m();(function(e){a.$broadcast("IdleInterrupt",e)})(t),(t||"idle"===e.autoResume||"notIdle"===e.autoResume&&!_.idling)&&this.watch(t)}}},w={clientX:null,clientY:null,swap:function(e){var t={clientX:this.clientX,clientY:this.clientY};return this.clientX=e.clientX,this.clientY=e.clientY,t},hasMoved:function(e){var t=this.swap(e);return!(null!==this.clientX&&!e.movementX&&!e.movementY)||t.clientX!=e.clientX||t.clientY!=e.clientY}};if(s.find("html").on(e.interrupt,(function(e){"mousemove"===e.type&&e.originalEvent&&0===e.originalEvent.movementX&&0===e.originalEvent.movementY||("mousemove"!==e.type||w.hasMoved(e))&&b.interrupt()})),e.windowInterrupt)for(var L=e.windowInterrupt.split(" "),M=function(){b.interrupt()},k=0;k<L.length;k++)c.addEventListener?c.addEventListener(L[k],M,!1):c.attachEvent(L[k],M);var x=function(e){if("ngIdle.expiry"===e.key&&e.newValue&&e.newValue!==e.oldValue){if(t.fromJson(e.newValue).id===y)return;b.interrupt(!0)}};return c.addEventListener?c.addEventListener("storage",x,!1):c.attachEvent&&c.attachEvent("onstorage",x),b}]})),t.module("ngIdle.countdown",["ngIdle.idle"]).directive("idleCountdown",["Idle",function(e){return{restrict:"A",scope:{value:"=idleCountdown"},link:function(t){t.value=e.getTimeout(),t.$on("IdleWarn",(function(e,n){t.$evalAsync((function(){t.value=n}))})),t.$on("IdleTimeout",(function(){t.$evalAsync((function(){t.value=0}))}))}}}]),t.module("ngIdle.title",[]).provider("Title",(function(){var e={enabled:!0},n=this.enabled=function(t){e.enabled=!0===t};this.$get=["$document","$interpolate",function(i,r){var o={original:null,idle:"{{minutes}}:{{seconds}} until your session times out!",timedout:"Your session has expired."};return{setEnabled:n,isEnabled:function(){return e.enabled},original:function(e){return t.isUndefined(e)?o.original:void(o.original=e)},store:function(e){(e||!o.original)&&(o.original=this.value())},value:function(e){return t.isUndefined(e)?i[0].title:void(i[0].title=e)},idleMessage:function(e){return t.isUndefined(e)?o.idle:void(o.idle=e)},timedOutMessage:function(e){return t.isUndefined(e)?o.timedout:void(o.timedout=e)},setAsIdle:function(e){this.store();var t={totalSeconds:e};t.minutes=Math.floor(e/60),t.seconds=function(e,t,n){return new Array(2-String(e).length+1).join("0")+e}(e-60*t.minutes),this.value(r(this.idleMessage())(t))},setAsTimedOut:function(){this.store(),this.value(this.timedOutMessage())},restore:function(){this.original()&&this.value(this.original())}}}]})).directive("title",["Title",function(e){return{restrict:"E",link:function(t,n,i){e.isEnabled()&&!i.idleDisabled&&(e.store(!0),t.$on("IdleStart",(function(){e.original(n[0].innerText)})),t.$on("IdleWarn",(function(t,n){e.setAsIdle(n)})),t.$on("IdleEnd",(function(){e.restore()})),t.$on("IdleTimeout",(function(){e.setAsTimedOut()})))}}}]),t.module("ngIdle.localStorage",[]).service("IdleStorageAccessor",["$window",function(e){return{get:function(){return e.localStorage}}}]).service("IdleLocalStorage",["IdleStorageAccessor",function(e){function i(){var e={};this.setItem=function(t,n){e[t]=n},this.getItem=function(t){return void 0!==e[t]?e[t]:null},this.removeItem=function(t){e[t]=n}}var r=function(){try{var t=e.get();return t.setItem("ngIdleStorage",""),t.removeItem("ngIdleStorage"),t}catch(e){return new i}}();return{set:function(e,n){r.setItem("ngIdle."+e,t.toJson(n))},get:function(e){return t.fromJson(r.getItem("ngIdle."+e))},remove:function(e){r.removeItem("ngIdle."+e)},_wrapped:function(){return r}}}])}(window,window.angular),function(e,t){t.module("nemLogging",[]),t.module("nemLogging").provider("nemDebug",(function(){return this.$get=function(){return null},this.debug=null,this}));var n=function(e,t){return function(){return e.apply(t,arguments)}},i=[].slice;t.module("nemLogging").provider("nemSimpleLogger",["nemDebugProvider",function(e){var t,r,o,a,s,l,u,c,d,h,f,p;for(f=e.debug,o={},t={},d=c=0,h=(a=["debug","info","warn","error","log"]).length;h>c;d=++c)p=a[d],t[p]=d;return l=function(e,t,n){return e>=t?n():void 0},s=function(e){var t,n,i;if(t=!1,!e)return t;for(n=0,i=a.length;i>n&&(t=null!=e[p=a[n]]&&"function"==typeof e[p]);n++);return t},u=function(e,t){var n,i,r,s;for(null==o[e]&&(o[e]=f(e)),n=o[e],s={},i=0,r=a.length;r>i;i++)s[p=a[i]]="debug"===p?n:t[p];return s},r=function(){function e(e){var r,o,u,c;if(this.$log=e,this.spawn=n(this.spawn,this),!this.$log)throw"internalLogger undefined";if(!s(this.$log))throw"@$log is invalid";for(this.doLog=!0,c={},r=function(e){return function(n){return c[n]=function(){var r;return r=1<=arguments.length?i.call(arguments,0):[],e.doLog?l(t[n],e.currentLevel,(function(){var t;return(t=e.$log)[n].apply(t,r)})):void 0},e[n]=c[n]}}(this),o=0,u=a.length;u>o;o++)r(a[o]);this.LEVELS=t,this.currentLevel=t.error}return e.prototype.spawn=function(t){if("string"==typeof t){if(!s(this.$log))throw"@$log is invalid";if(!f)throw"nemDebug is undefined this is probably the light version of this library sep debug logggers is not supported!";return u(t,this.$log)}return new e(t||this.$log)},e}(),this.decorator=["$log",function(e){var n;return(n=new r(e)).currentLevel=t.debug,n}],this.$get=["$log",function(e){return new r(e)}],this}])}(window,angular),function(e){"use strict";e.module("ui-leaflet",["nemLogging"]).directive("leaflet",["$q","leafletData","leafletMapDefaults","leafletHelpers","leafletMapEvents",function(e,t,n,i,r){return{restrict:"EA",replace:!0,scope:{center:"=",lfCenter:"=",defaults:"=",maxbounds:"=",bounds:"=",markers:"=",legend:"=",geojson:"=",paths:"=",tiles:"=",layers:"=",controls:"=",decorations:"=",eventBroadcast:"=",watchOptions:"=",id:"@"},transclude:!0,template:'<div class="angular-leaflet-map"><div ng-transclude></div></div>',controller:["$scope",function(t){this._leafletMap=e.defer(),this.getMap=function(){return this._leafletMap.promise},this.getLeafletScope=function(){return t}}],link:function(e,o,a,s){function l(){isNaN(a.width)?o.css("width",a.width):o.css("width",a.width+"px")}function u(){isNaN(a.height)?o.css("height",a.height):o.css("height",a.height+"px")}var c=i.isDefined,d=n.setDefaults(e.defaults,a.id),h=r.getAvailableMapEvents(),f=r.addEvents;e.mapId=a.id,t.setDirectiveControls({},a.id);var p=new L.Map(o[0],n.getMapCreationDefaults(a.id));if(s._leafletMap.resolve(p),c(a.width)&&(l(),e.$watch((function(){return o[0].getAttribute("width")}),(function(){l(),p.invalidateSize()}))),c(a.height)&&(u(),e.$watch((function(){return o[0].getAttribute("height")}),(function(){u(),p.invalidateSize()}))),c(a.center)||c(a.lfCenter)||p.setView([d.center.lat,d.center.lng],d.center.zoom),!c(a.tiles)&&!c(a.layers)){var m=L.tileLayer(d.tileLayer,d.tileLayerOptions);m.addTo(p),t.setTiles(m,a.id)}c(p.zoomControl)&&c(d.zoomControlPosition)&&p.zoomControl.setPosition(d.zoomControlPosition),c(p.zoomControl)&&!1===d.zoomControl&&p.zoomControl.removeFrom(p),c(p.zoomsliderControl)&&c(d.zoomsliderControl)&&!1===d.zoomsliderControl&&p.zoomsliderControl.removeFrom(p),c(a.eventBroadcast)||f(p,a.id,h,"eventName",e,"broadcast"),p.whenReady((function(){t.setMap(p,a.id)})),e.$on("$destroy",(function(){n.reset(),p.remove(),t.unresolveMap(a.id)})),e.$on("invalidateSize",(function(){p.invalidateSize()}))}}}]),e.module("ui-leaflet").factory("eventManager",[function(){var e=function(){this.listeners={}};return e.prototype={addEventListener:function(e,t,n){for(var i=[],r=arguments.length,o=0;o<r;o++)i.push(arguments[o]);i=i.length>3?i.splice(3,i.length-1):[],void 0!==this.listeners[e]?this.listeners[e].push({scope:n,callback:t,args:i}):this.listeners[e]=[{scope:n,callback:t,args:i}]},removeEventListener:function(e,t,n){if(void 0!==this.listeners[e]){for(var i=this.listeners[e].length,r=[],o=0;o<i;o++){var a=this.listeners[e][o];a.scope===n&&a.callback===t||r.push(a)}this.listeners[e]=r}},hasEventListener:function(e,t,n){if(void 0!==this.listeners[e]){var i=this.listeners[e].length;if(void 0===t&&void 0===n)return i>0;for(var r=0;r<i;r++){var o=this.listeners[e][r];if((!n||o.scope===n)&&o.callback===t)return!0}}return!1},dispatch:function(e,t){for(var n={type:e,target:t},i=[],r=arguments.length,o=0;o<r;o++)i.push(arguments[o]);if(i=i.length>2?i.splice(2,i.length-1):[],i=[n].concat(i),void 0!==this.listeners[e])for(var a=this.listeners[e].length,s=0;s<a;s++){var l=this.listeners[e][s];if(l&&l.callback){var u=i.concat(l.args);l.callback.apply(l.scope,u)}}},getEvents:function(){var e="";for(var t in this.listeners)for(var n=this.listeners[t].length,i=0;i<n;i++){var r=this.listeners[t][i];e+=r.scope&&r.scope.className?r.scope.className:"anonymous",e+=" listen for '"+t+"'\n"}return e}},e}]).service("eventManager",["EventManager",function(e){return new e}]),e.module("ui-leaflet").factory("leafletBoundsHelpers",["leafletLogger","leafletHelpers",function(t,n){function i(t){return e.isDefined(t)&&e.isDefined(t.southWest)&&e.isDefined(t.northEast)&&e.isNumber(t.southWest.lat)&&e.isNumber(t.southWest.lng)&&e.isNumber(t.northEast.lat)&&e.isNumber(t.northEast.lng)}var r=n.isArray,o=n.isNumber,a=n.isFunction,s=n.isDefined,l=t;return{createLeafletBounds:function(e){if(i(e))return L.latLngBounds([e.southWest.lat,e.southWest.lng],[e.northEast.lat,e.northEast.lng])},isValidBounds:i,createBoundsFromArray:function(e){return r(e)&&2===e.length&&r(e[0])&&r(e[1])&&2===e[0].length&&2===e[1].length&&o(e[0][0])&&o(e[0][1])&&o(e[1][0])&&o(e[1][1])?{northEast:{lat:e[0][0],lng:e[0][1]},southWest:{lat:e[1][0],lng:e[1][1]}}:void l.error("[AngularJS - Leaflet] The bounds array is not valid.")},createBoundsFromLeaflet:function(e){if(s(e)&&a(e.getNorthEast)&&a(e.getSouthWest)){var t=e.getNorthEast(),n=e.getSouthWest();return{northEast:{lat:t.lat,lng:t.lng},southWest:{lat:n.lat,lng:n.lng}}}l.error("[AngularJS - Leaflet] The leaflet bounds is not valid object.")}}}]),e.module("ui-leaflet").factory("leafletControlHelpers",["$rootScope","leafletLogger","leafletHelpers","leafletLayerHelpers","leafletMapDefaults",function(t,n,i,r,o){var a=i.isDefined,s=i.isObject,l=r.createLayer,u={},c=i.errorHeader+" [Controls] ",d=n,h=function(e,t,n){if(!o.getDefaults(n).controls.layers.visible)return!1;var i=!1;return s(e)&&Object.keys(e).forEach((function(t){var n=e[t];a(n.layerOptions)&&!1===n.layerOptions.showOnSelector||(i=!0)})),s(t)&&Object.keys(t).forEach((function(e){var n=t[e];a(n.layerParams)&&!1===n.layerParams.showOnSelector||(i=!0)})),i},f=function(t){var n=o.getDefaults(t),i={collapsed:n.controls.layers.collapsed,position:n.controls.layers.position,autoZIndex:!1};return e.extend(i,n.controls.layers.options),n.controls.layers&&a(n.controls.layers.control)?n.controls.layers.control.apply(this,[[],[],i]):new L.control.layers([],[],i)},p={draw:{isPluginLoaded:function(){return!!e.isDefined(L.Control.Draw)||(d.error(c+" Draw plugin is not loaded."),!1)},checkValidParams:function(){return!0},createControl:function(e){return new L.Control.Draw(e)}},scale:{isPluginLoaded:function(){return!0},checkValidParams:function(){return!0},createControl:function(e){return new L.control.scale(e)}},fullscreen:{isPluginLoaded:function(){return!!e.isDefined(L.Control.Fullscreen)||(d.error(c+" Fullscreen plugin is not loaded."),!1)},checkValidParams:function(){return!0},createControl:function(e){return new L.Control.Fullscreen(e)}},search:{isPluginLoaded:function(){return!!e.isDefined(L.Control.Search)||(d.error(c+" Search plugin is not loaded."),!1)},checkValidParams:function(){return!0},createControl:function(e){return new L.Control.Search(e)}},custom:{},minimap:{isPluginLoaded:function(){return!!e.isDefined(L.Control.MiniMap)||(d.error(c+" Minimap plugin is not loaded."),!1)},checkValidParams:function(e){return!!a(e.layer)||(d.warn(c+' minimap "layer" option should be defined.'),!1)},createControl:function(e){var t=l(e.layer);return a(t)?new L.Control.MiniMap(t,e):void d.warn(c+' minimap control "layer" could not be created.')}}};return{layersControlMustBeVisible:h,isValidControlType:function(e){return-1!==Object.keys(p).indexOf(e)},createControl:function(e,t){if(p[e].checkValidParams(t))return p[e].createControl(t)},updateLayersControl:function(e,t,n,i,r,o){var s,l=u[t],c=h(i,r,t);if(a(l)&&n){for(s in o.baselayers)l.removeLayer(o.baselayers[s]);for(s in o.overlays)l.removeLayer(o.overlays[s]);e.removeControl(l),delete u[t]}if(c){for(s in l=f(t),u[t]=l,i)(!a(i[s].layerOptions)||!1!==i[s].layerOptions.showOnSelector)&&a(o.baselayers[s])&&l.addBaseLayer(o.baselayers[s],i[s].name);for(s in r)(!a(r[s].layerParams)||!1!==r[s].layerParams.showOnSelector)&&a(o.overlays[s])&&l.addOverlay(o.overlays[s],r[s].name);e.addControl(l)}return c},destroyMapLayersControl:function(e){delete u[e]}}}]),e.module("ui-leaflet").service("leafletData",["leafletLogger","$q","leafletHelpers",function(e,t,n){var i=n.getDefer,r=n.getUnresolvedDefer,o=n.setResolvedDefer,a={},s=this,l=["map","tiles","layers","paths","markers","geoJSON","UTFGrid","decorations","directiveControls"];l.forEach((function(e){a[e]={}})),this.unresolveMap=function(e){var t=n.obtainEffectiveMapId(a.map,e);l.forEach((function(e){a[e][t]=void 0}))},l.forEach((function(e){var t=function(e){return e.charAt(0).toUpperCase()+e.slice(1)}(e);s["set"+t]=function(t,n){r(a[e],n).resolve(t),o(a[e],n)},s["get"+t]=function(t){return i(a[e],t).promise}}))}]),e.module("ui-leaflet").service("leafletDirectiveControlsHelpers",["leafletLogger","leafletData","leafletHelpers",function(t,n,i){var r=i.isDefined,o=i.isString,a=i.isObject,s=i.errorHeader,l=t,u=s+"[leafletDirectiveControlsHelpers";return{extend:function(t,i,s,c){var d=u+".extend] ",h={};if(r(i)){if(o(i)&&r(s)&&r(c))h[i]={create:s,clean:c};else{if(!a(i)||r(s)||r(c))return void l.error(d+"incorrect arguments");h=i}n.getDirectiveControls().then((function(i){e.extend(i,h),n.setDirectiveControls(i,t)}))}else l.error(d+"thingToAddName cannot be undefined")}}}]),e.module("ui-leaflet").service("leafletGeoJsonHelpers",["leafletHelpers","leafletIterators",function(t,n){var i=t,r=n,o=function(e,t){return this.lat=e,this.lng=t,this},a=function(e){if(i.isUndefined(e))return!1;if(i.isArray(e)){if(2===e.length&&i.isNumber(e[0])&&i.isNumber(e[1]))return!0}else if(i.isDefined(e.type)&&"Point"===e.type&&i.isArray(e.coordinates)&&2===e.coordinates.length&&i.isNumber(e.coordinates[0])&&i.isNumber(e.coordinates[1]))return!0;return r.all(["lat","lng"],(function(t){return i.isDefined(e[t])&&i.isNumber(e[t])}))};return{getLat:function(e){return Array.isArray(e)&&2===e.length?e[1]:i.isDefined(e.type)&&"Point"===e.type?+e.coordinates[1]:+e.lat},getLng:function(e){return Array.isArray(e)&&2===e.length?e[0]:i.isDefined(e.type)&&"Point"===e.type?+e.coordinates[0]:+e.lng},validateCoords:a,getCoords:function(t){if(t&&a(t)){var n=null;if(Array.isArray(t)&&2===t.length)n=new o(t[1],t[0]);else{if(!i.isDefined(t.type)||"Point"!==t.type)return t;n=new o(t.coordinates[1],t.coordinates[0])}return e.extend(t,n)}}}}]),e.module("ui-leaflet").service("leafletHelpers",["$q","$log","$timeout",function(t,n,i){function r(t,i){var r,o;if(e.isDefined(i))r=i;else if(0===Object.keys(t).length)r="main";else if(Object.keys(t).length>=1)for(o in t)t.hasOwnProperty(o)&&(r=o);else n.error(a+"- You have more than 1 map on the DOM, you must provide the map ID to the leafletData.getXXX call");return r}function o(n,i){var o,a=r(n,i);return e.isDefined(n[a])&&!0!==n[a].resolvedDefer?o=n[a].defer:(o=t.defer(),n[a]={defer:o,resolvedDefer:!1}),o}var a="[ui-leaflet] ",s=e.copy,l=function(t){return e.isDefined(t)&&null!==t},u=/([\:\-\_]+(.))/g,c=/^moz([A-Z])/,d=/^((?:x|data)[\:\-_])/i,h=function(e){return e.replace(u,(function(e,t,n,i){return i?n.toUpperCase():n})).replace(c,"Moz$1")};return{watchTrapDelayMilliSec:10,modelChangeInDirective:function(e,t,n){if(!e)throw new Error(a+"trapObj is undefined");if(!t)throw new Error(a+"trapField is undefined");e[t]=!0;var r=n();return i((function(){e[t]=!1}),10),r},camelCase:h,directiveNormalize:function(e){return h(e.replace(d,""))},copy:s,clone:s,errorHeader:a,getObjectValue:function(t,n){var i;if(t&&e.isObject(t))return null!==n&&e.isString(n)?(i=t,n.split(".").forEach((function(e){i&&(i=i[e])})),i):n},getObjectArrayPath:function(e){return e.split(".").reduce((function(e,t){return e+'["'+t+'"]'}))},getObjectDotPath:function(e){return e.reduce((function(e,t){return e+"."+t}))},defaultTo:function(e,t){return l(e)?e:t},isTruthy:function(e){return"true"===e||!0===e},isEmpty:function(e){return 0===Object.keys(e).length},isUndefinedOrEmpty:function(t){return e.isUndefined(t)||null===t||0===Object.keys(t).length},isDefined:l,isUndefined:function(e){return!l(e)},isNumber:e.isNumber,isString:e.isString,isArray:e.isArray,isObject:e.isObject,isFunction:e.isFunction,equals:e.equals,isValidCenter:function(t){return e.isDefined(t)&&e.isNumber(t.lat)&&e.isNumber(t.lng)&&e.isNumber(t.zoom)},isValidPoint:function(t){return!!e.isDefined(t)&&(e.isArray(t)?2===t.length&&e.isNumber(t[0])&&e.isNumber(t[1]):e.isNumber(t.lat)&&e.isNumber(t.lng))},isSameCenterOnMap:function(e,t){var n=t.getCenter(),i=t.getZoom();return!(!e.lat||!e.lng||n.lat.toFixed(4)!==e.lat.toFixed(4)||n.lng.toFixed(4)!==e.lng.toFixed(4)||i!==e.zoom)},safeApply:function(e,t){var n=e.$root.$$phase;"$apply"===n||"$digest"===n?e.$eval(t):e.$evalAsync(t)},obtainEffectiveMapId:r,getDefer:function(t,n){var i=r(t,n);return e.isDefined(t[i])&&!1!==t[i].resolvedDefer?t[i].defer:o(t,n)},getUnresolvedDefer:o,setResolvedDefer:function(e,t){e[r(e,t)].resolvedDefer=!0},rangeIsSupported:function(){var e=document.createElement("input");return e.setAttribute("type","range"),"range"===e.type},FullScreenControlPlugin:{isLoaded:function(){return e.isDefined(L.Control.Fullscreen)}},MiniMapControlPlugin:{isLoaded:function(){return e.isDefined(L.Control.MiniMap)}},AwesomeMarkersPlugin:{isLoaded:function(){return e.isDefined(L.AwesomeMarkers)&&e.isDefined(L.AwesomeMarkers.Icon)},is:function(e){return!!this.isLoaded()&&e instanceof L.AwesomeMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},VectorMarkersPlugin:{isLoaded:function(){return e.isDefined(L.VectorMarkers)&&e.isDefined(L.VectorMarkers.Icon)},is:function(e){return!!this.isLoaded()&&e instanceof L.VectorMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},DomMarkersPlugin:{isLoaded:function(){return!(!e.isDefined(L.DomMarkers)||!e.isDefined(L.DomMarkers.Icon))},is:function(e){return!!this.isLoaded()&&e instanceof L.DomMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},PolylineDecoratorPlugin:{isLoaded:function(){return!!e.isDefined(L.PolylineDecorator)},is:function(e){return!!this.isLoaded()&&e instanceof L.PolylineDecorator},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},MakiMarkersPlugin:{isLoaded:function(){return!(!e.isDefined(L.MakiMarkers)||!e.isDefined(L.MakiMarkers.Icon))},is:function(e){return!!this.isLoaded()&&e instanceof L.MakiMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},ExtraMarkersPlugin:{isLoaded:function(){return!(!e.isDefined(L.ExtraMarkers)||!e.isDefined(L.ExtraMarkers.Icon))},is:function(e){return!!this.isLoaded()&&e instanceof L.ExtraMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},LabelPlugin:{isLoaded:function(){return e.isDefined(L.Label)},is:function(e){return!!this.isLoaded()&&e instanceof L.MarkerClusterGroup}},MarkerClusterPlugin:{isLoaded:function(){return e.isDefined(L.MarkerClusterGroup)},is:function(e){return!!this.isLoaded()&&e instanceof L.MarkerClusterGroup}},GeoJSONPlugin:{isLoaded:function(){return e.isDefined(L.TileLayer.GeoJSON)},is:function(e){return!!this.isLoaded()&&e instanceof L.TileLayer.GeoJSON}},CartoDB:{isLoaded:function(){return cartodb},is:function(){return!0}},Leaflet:{DivIcon:{is:function(e){return e instanceof L.DivIcon},equal:function(t,n){return!!this.is(t)&&e.equals(t,n)}},Icon:{is:function(e){return e instanceof L.Icon},equal:function(t,n){return!!this.is(t)&&e.equals(t,n)}}},watchOptions:{type:"watchDeep",individual:{type:"watchDeep"}}}}]),e.module("ui-leaflet").service("leafletIterators",["leafletLogger","leafletHelpers",function(e,t){var n,i,r=t,o=t.errorHeader+"leafletIterators: ",a=Object.keys,s=r.isFunction,l=r.isObject,u=e,c=Math.pow(2,53)-1,d=function(e){var t=null!==e&&e.length;return r.isNumber(t)&&t>=0&&t<=c},h=function(e){return e};n=function(e,t){return function(t){var n=arguments.length;if(n<2||null===t)return t;for(var i=1;i<n;i++)for(var r=arguments[i],o=e(r),a=o.length,s=0;s<a;s++){var l=o[s];t[l]=r[l]}return t}}(a),i=function(e){return e=n({},e),function(t){return function(e,t){var n=a(t),i=n.length;if(null===e)return!i;for(var r=Object(e),o=0;o<i;o++){var s=n[o];if(t[s]!==r[s]||!(s in r))return!1}return!0}(t,e)}};var f,p,m=function(e,t,n){return null===e?h:s(e)?function(e,t,n){if(void 0===t)return e;switch(null===n?3:n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,i){return e.call(t,n,i)};case 3:return function(n,i,r){return e.call(t,n,i,r)};case 4:return function(n,i,r,o){return e.call(t,n,i,r,o)}}return function(){return e.apply(t,arguments)}}(e,t,n):l(e)?i(e):function(e){return function(t){return null===t?void 0:t[e]}}(e)};f=p=function(e,t,n){t=m(t,n);for(var i=!d(e)&&a(e),r=(i||e).length,o=0;o<r;o++){var s=i?i[o]:o;if(!t(e[s],s,e))return!1}return!0};var g=function(e,t,n,i){return!(n||r.isDefined(e)&&r.isDefined(t))||!r.isFunction(t)&&(i=r.defaultTo(t,"cb"),u.error(o+i+" is not a function"),!0)},v=function(e,t){!function(e,t,n){if(!g(void 0,n,!0,"internalCb")&&!g(e,t))for(var i in e)e.hasOwnProperty(i)&&n(e[i],i)}(e,t,(function(e,n){t(e,n)}))};return{each:v,forEach:v,every:f,all:p}}]),e.module("ui-leaflet").factory("leafletLayerHelpers",["$rootScope","$q","leafletLogger","leafletHelpers","leafletIterators",function(t,n,i,r,o){function a(e){if(function(e){return l(e.type)?-1===Object.keys(g).indexOf(e.type)?(p.error("[AngularJS - Leaflet] A layer must have a valid type: "+Object.keys(g)),!1):g[e.type].mustHaveUrl&&!l(e.url)?(p.error("[AngularJS - Leaflet] A base layer must have an url"),!1):g[e.type].mustHaveData&&!d(e.data)?(p.error('[AngularJS - Leaflet] The base layer must have a "data" array attribute'),!1):g[e.type].mustHaveLayer&&!d(e.layer)?(p.error("[AngularJS - Leaflet] The type of layer "+e.type+" must have an layer defined"),!1):g[e.type].mustHaveBounds&&!d(e.bounds)?(p.error("[AngularJS - Leaflet] The type of layer "+e.type+" must have bounds defined"),!1):!(g[e.type].mustHaveKey&&!d(e.key)&&(p.error("[AngularJS - Leaflet] The type of layer "+e.type+" must have key defined"),1)):(p.error("[AngularJS - Leaflet] A layer must have a valid type defined."),!1)}(e)){if(!l(e.name))return void p.error("[AngularJS - Leaflet] A base layer must have a name");for(var t in u(e.layerParams)||(e.layerParams={}),u(e.layerOptions)||(e.layerOptions={}),e.layerParams)e.layerOptions[t]=e.layerParams[t];var n={url:e.url,data:e.data,options:e.layerOptions,layer:e.layer,icon:e.icon,type:e.layerType,bounds:e.bounds,key:e.key,apiKey:e.apiKey,pluginOptions:e.pluginOptions,user:e.user,$parent:e};return g[e.type].createLayer(n)}}var s=r,l=r.isString,u=r.isObject,c=r.isArray,d=r.isDefined,h=r.errorHeader,f=o,p=i,m=function(n){if(s.UTFGridPlugin.isLoaded()){var i=new L.UtfGrid(n.url,n.pluginOptions),r={model:n.$parent};return i.on("mouseover",(function(n){e.extend(r,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridMouseover",r)})),i.on("mouseout",(function(n){e.extend(r,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridMouseout",r)})),i.on("click",(function(n){e.extend(r,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridClick",r)})),i.on("mousemove",(function(n){e.extend(r,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridMousemove",r)})),i}p.error("[AngularJS - Leaflet] The UTFGrid plugin is not loaded.")},g={xyz:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer(e.url,e.options)}},geoJSON:{mustHaveUrl:!0,createLayer:function(e){if(s.GeoJSONPlugin.isLoaded())return new L.TileLayer.GeoJSON(e.url,e.pluginOptions,e.options)}},geoJSONShape:{mustHaveUrl:!1,createLayer:function(e){return new L.GeoJSON(e.data,e.options)}},geoJSONAwesomeMarker:{mustHaveUrl:!1,createLayer:function(e){return new L.geoJson(e.data,{pointToLayer:function(t,n){return L.marker(n,{icon:L.AwesomeMarkers.icon(e.icon)})}})}},geoJSONVectorMarker:{mustHaveUrl:!1,createLayer:function(e){return new L.geoJson(e.data,{pointToLayer:function(t,n){return L.marker(n,{icon:L.VectorMarkers.icon(e.icon)})}})}},cartodbTiles:{mustHaveKey:!0,createLayer:function(e){var t=d(e.url)?e.url+"/"+e.user:"//"+e.user+".cartodb.com";return t+="/api/v1/map/"+e.key+"/{z}/{x}/{y}.png",L.tileLayer(t,e.options)}},cartodbUTFGrid:{mustHaveKey:!0,mustHaveLayer:!0,createLayer:function(e){var t=d(e.url)?e.url+"/"+e.user:"//"+e.user+".cartodb.com";return e.url=t+"/api/v1/map/"+e.key+"/"+e.layer+"/{z}/{x}/{y}.grid.json",m(e)}},cartodbInteractive:{mustHaveKey:!0,mustHaveLayer:!0,createLayer:function(t){var n=d(t.url)?t.url+"/"+t.user:"//"+t.user+".cartodb.com",i=n+"/api/v1/map/"+t.key+"/{z}/{x}/{y}.png",r=[L.tileLayer(i,t.options)],o=function(t,i,r){var o=e.copy(i);o.url=n+"/api/v1/map/"+o.key+"/"+r+"/{z}/{x}/{y}.grid.json",t.push(m(o))};if(c(t.layer))for(var a=0;a<t.layer.length;a++)o(r,t,t.layer[a]);else o(r,t,t.layer);return L.layerGroup(r)}},wms:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer.wms(e.url,e.options)}},wmts:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer.wmts(e.url,e.options)}},group:{mustHaveUrl:!1,createLayer:function(e){var t=[];return f.each(e.options.layers,(function(e){t.push(a(e))})),e.options.loadedDefer=function(){var t=[];if(d(e.options.layers))for(var n=0;n<e.options.layers.length;n++){var i=e.options.layers[n].layerOptions.loadedDefer;d(i)&&t.push(i)}return t},L.layerGroup(t)}},featureGroup:{mustHaveUrl:!1,createLayer:function(){return L.featureGroup()}},markercluster:{mustHaveUrl:!1,createLayer:function(e){return s.MarkerClusterPlugin.isLoaded()?new L.MarkerClusterGroup(e.options):void p.warn(h+" The markercluster plugin is not loaded.")}},imageOverlay:{mustHaveUrl:!0,mustHaveBounds:!0,createLayer:function(e){return L.imageOverlay(e.url,e.bounds,e.options)}},iip:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer.iip(e.url,e.options)}},custom:{createLayer:function(t){return t.layer instanceof L.Class?e.copy(t.layer):void p.error("[AngularJS - Leaflet] A custom layer must be a leaflet Class")}},cartodb:{mustHaveUrl:!0,createLayer:function(e){return cartodb.createLayer(e.map,e.url)}}};return{createLayer:a,layerTypes:g,safeAddLayer:function(e,t){t&&"function"==typeof t.addTo?t.addTo(e):e.addLayer(t)},safeRemoveLayer:function(t,n,i){if(d(i)&&d(i.loadedDefer))if(e.isFunction(i.loadedDefer)){var r=i.loadedDefer();p.debug("Loaded Deferred",r);var o=r.length;if(o>0)for(var a=function(){0==--o&&t.removeLayer(n)},s=0;s<r.length;s++)r[s].promise.then(a);else t.removeLayer(n)}else i.loadedDefer.promise.then((function(){t.removeLayer(n)}));else t.removeLayer(n)},changeOpacityListener:function(e){return function(t){d(t.setOpacity)&&t.setOpacity(e)}}}}]),e.module("ui-leaflet").factory("leafletLegendHelpers",["$http","$q","$log","leafletHelpers",function(e,t,n,i){var r={},o=i.isDefined,a=function t(n){var i=r[n],o=i[0];e(o.c).then((function(e){i.shift(),o.d.resolve(e),i.length>0&&t(n)}),(function(e){i.shift(),o.d.reject(e),i.length>0&&t(n)}))},s=function(e,t,n,i){if(e.innerHTML="",t.error)e.innerHTML+='<div class="info-title alert alert-danger">'+t.error.message+"</div>";else if("arcgis"===n)for(var r=0;r<t.layers.length;r++){var o=t.layers[r];e.innerHTML+='<div class="info-title" data-layerid="'+o.layerId+'">'+o.layerName+"</div>";for(var a=0;a<o.legend.length;a++){var s=o.legend[a];e.innerHTML+='<div class="inline" data-layerid="'+o.layerId+'"><img src="data:'+s.contentType+";base64,"+s.imageData+'" /></div><div class="info-label" data-layerid="'+o.layerId+'">'+s.label+"</div>"}}else"image"===n&&(e.innerHTML='<img src="'+i+'"/>')};return{getOnAddLegend:function(e,t,n,i){return function(){var r=L.DomUtil.create("div",t);return L.Browser.touch?L.DomEvent.on(r,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(r),L.DomEvent.on(r,"mousewheel",L.DomEvent.stopPropagation)),s(r,e,n,i),r}},getOnAddArrayLegend:function(e,t){return function(){for(var n=L.DomUtil.create("div",t),i=0;i<e.colors.length;i++)n.innerHTML+='<div class="outline"><i style="background:'+e.colors[i]+'"></i></div><div class="info-label">'+e.labels[i]+"</div>";return L.Browser.touch?L.DomEvent.on(n,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(n),L.DomEvent.on(n,"mousewheel",L.DomEvent.stopPropagation)),n}},updateLegend:s,addLegendURL:function(e,n){var i=t.defer();return o(r[e])||(r[e]=[]),r[e].push({c:n,d:i}),1===r[e].length&&a(e),i.promise}}}]),e.module("ui-leaflet").factory("leafletMapDefaults",["$q","leafletHelpers",function(t,n){var i=n.isDefined,r=n.isObject,o=n.obtainEffectiveMapId,a={};return{reset:function(){a={}},getDefaults:function(e){var t=o(a,e);return a[t]},getMapCreationDefaults:function(e){var t=o(a,e),n=a[t],r={maxZoom:n.maxZoom,keyboard:n.keyboard,dragging:n.dragging,zoomControl:n.zoomControl,doubleClickZoom:n.doubleClickZoom,scrollWheelZoom:n.scrollWheelZoom,tap:n.tap,touchZoom:n.touchZoom,attributionControl:n.attributionControl,worldCopyJump:n.worldCopyJump,crs:n.crs,trackResize:n.trackResize};if(i(n.minZoom)&&(r.minZoom=n.minZoom),i(n.zoomAnimation)&&(r.zoomAnimation=n.zoomAnimation),i(n.fadeAnimation)&&(r.fadeAnimation=n.fadeAnimation),i(n.markerZoomAnimation)&&(r.markerZoomAnimation=n.markerZoomAnimation),n.map)for(var s in n.map)r[s]=n.map[s];return r},setDefaults:function(t,n){var s={keyboard:!0,dragging:!0,worldCopyJump:!1,doubleClickZoom:!0,scrollWheelZoom:!0,tap:!0,touchZoom:!0,zoomControl:!0,zoomsliderControl:!1,zoomControlPosition:"topleft",attributionControl:!0,controls:{layers:{visible:!0,position:"topright",collapsed:!0}},nominatim:{server:" http://nominatim.openstreetmap.org/search"},crs:L.CRS.EPSG3857,tileLayer:"//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",tileLayerOptions:{
+attribution:'&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'},path:{weight:10,opacity:1,color:"#0000ff"},center:{lat:0,lng:0,zoom:1},trackResize:!0};i(t)&&(s.doubleClickZoom=i(t.doubleClickZoom)?t.doubleClickZoom:s.doubleClickZoom,s.scrollWheelZoom=i(t.scrollWheelZoom)?t.scrollWheelZoom:s.doubleClickZoom,s.tap=i(t.tap)?t.tap:s.tap,s.touchZoom=i(t.touchZoom)?t.touchZoom:s.doubleClickZoom,s.zoomControl=i(t.zoomControl)?t.zoomControl:s.zoomControl,s.zoomsliderControl=i(t.zoomsliderControl)?t.zoomsliderControl:s.zoomsliderControl,s.attributionControl=i(t.attributionControl)?t.attributionControl:s.attributionControl,s.tileLayer=i(t.tileLayer)?t.tileLayer:s.tileLayer,s.zoomControlPosition=i(t.zoomControlPosition)?t.zoomControlPosition:s.zoomControlPosition,s.keyboard=i(t.keyboard)?t.keyboard:s.keyboard,s.dragging=i(t.dragging)?t.dragging:s.dragging,s.trackResize=i(t.trackResize)?t.trackResize:s.trackResize,i(t.controls)&&e.extend(s.controls,t.controls),r(t.crs)?s.crs=t.crs:i(L.CRS[t.crs])&&(s.crs=L.CRS[t.crs]),i(t.center)&&e.copy(t.center,s.center),i(t.tileLayerOptions)&&e.copy(t.tileLayerOptions,s.tileLayerOptions),i(t.maxZoom)&&(s.maxZoom=t.maxZoom),i(t.minZoom)&&(s.minZoom=t.minZoom),i(t.zoomAnimation)&&(s.zoomAnimation=t.zoomAnimation),i(t.fadeAnimation)&&(s.fadeAnimation=t.fadeAnimation),i(t.markerZoomAnimation)&&(s.markerZoomAnimation=t.markerZoomAnimation),i(t.worldCopyJump)&&(s.worldCopyJump=t.worldCopyJump),i(t.map)&&(s.map=t.map),i(t.path)&&(s.path=t.path));var l=o(a,n);return a[l]=s,s}}}]),e.module("ui-leaflet").service("leafletMarkersHelpers",["$rootScope","$timeout","leafletHelpers","leafletLogger","$compile","leafletGeoJsonHelpers","leafletWatchHelpers",function(t,n,i,r,o,a,s){var l=i.isDefined,u=i.defaultTo,c=i.MarkerClusterPlugin,d=i.AwesomeMarkersPlugin,h=i.VectorMarkersPlugin,f=i.MakiMarkersPlugin,p=i.ExtraMarkersPlugin,m=i.DomMarkersPlugin,g=i.safeApply,v=i,_=i.isString,y=i.isNumber,b=i.isObject,w={},M=a,k=i.errorHeader,x=s.maybeWatch,S=r,T=function(e){var t="";return["_icon","_latlng","_leaflet_id","_map","_shadow"].forEach((function(n){t+=n+": "+u(e[n],"undefined")+" \n"})),"[leafletMarker] : \n"+t},$=function(t){return e.element(w[t]._map._container).parent().length>0},D=function(n){if(l(n)&&l(n.type)&&"awesomeMarker"===n.type)return d.isLoaded()||S.error(k+" The AwesomeMarkers Plugin is not loaded."),new L.AwesomeMarkers.icon(n);if(l(n)&&l(n.type)&&"vectorMarker"===n.type)return h.isLoaded()||S.error(k+" The VectorMarkers Plugin is not loaded."),new L.VectorMarkers.icon(n);if(l(n)&&l(n.type)&&"makiMarker"===n.type)return f.isLoaded()||S.error(k+"The MakiMarkers Plugin is not loaded."),new L.MakiMarkers.icon(n);if(l(n)&&l(n.type)&&"extraMarker"===n.type)return p.isLoaded()||S.error(k+"The ExtraMarkers Plugin is not loaded."),new L.ExtraMarkers.icon(n);if(l(n)&&l(n.type)&&"div"===n.type)return new L.divIcon(n);if(l(n)&&l(n.type)&&"dom"===n.type){m.isLoaded()||S.error(k+"The DomMarkers Plugin is not loaded.");var i=e.isFunction(n.getMarkerScope)?n.getMarkerScope().$new():t,r=o(n.template)(i),a=e.copy(n);return a.ngElement=r,a.element=r[0],e.isFunction(n.getMarkerScope)&&(a.scope=i),new L.DomMarkers.icon(a)}return l(n)&&l(n.type)&&"icon"===n.type?n.icon:l(n)&&l(n.iconUrl)?new L.Icon(n):new L.Icon.Default({iconUrl:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAGmklEQVRYw7VXeUyTZxjvNnfELFuyIzOabermMZEeQC/OclkO49CpOHXOLJl/CAURuYbQi3KLgEhbrhZ1aDwmaoGqKII6odATmH/scDFbdC7LvFqOCc+e95s2VG50X/LLm/f4/Z7neY/ne18aANCmAr5E/xZf1uDOkTcGcWR6hl9247tT5U7Y6SNvWsKT63P58qbfeLJG8M5qcgTknrvvrdDbsT7Ml+tv82X6vVxJE33aRmgSyYtcWVMqX97Yv2JvW39UhRE2HuyBL+t+gK1116ly06EeWFNlAmHxlQE0OMiV6mQCScusKRlhS3QLeVJdl1+23h5dY4FNB3thrbYboqptEFlphTC1hSpJnbRvxP4NWgsE5Jyz86QNNi/5qSUTGuFk1gu54tN9wuK2wc3o+Wc13RCmsoBwEqzGcZsxsvCSy/9wJKf7UWf1mEY8JWfewc67UUoDbDjQC+FqK4QqLVMGGR9d2wurKzqBk3nqIT/9zLxRRjgZ9bqQgub+DdoeCC03Q8j+0QhFhBHR/eP3U/zCln7Uu+hihJ1+bBNffLIvmkyP0gpBZWYXhKussK6mBz5HT6M1Nqpcp+mBCPXosYQfrekGvrjewd59/GvKCE7TbK/04/ZV5QZYVWmDwH1mF3xa2Q3ra3DBC5vBT1oP7PTj4C0+CcL8c7C2CtejqhuCnuIQHaKHzvcRfZpnylFfXsYJx3pNLwhKzRAwAhEqG0SpusBHfAKkxw3w4627MPhoCH798z7s0ZnBJ/MEJbZSbXPhER2ih7p2ok/zSj2cEJDd4CAe+5WYnBCgR2uruyEw6zRoW6/DWJ/OeAP8pd/BGtzOZKpG8oke0SX6GMmRk6GFlyAc59K32OTEinILRJRchah8HQwND8N435Z9Z0FY1EqtxUg+0SO6RJ/mmXz4VuS+DpxXC3gXmZwIL7dBSH4zKE50wESf8qwVgrP1EIlTO5JP9Igu0aexdh28F1lmAEGJGfh7jE6ElyM5Rw/FDcYJjWhbeiBYoYNIpc2FT/SILivp0F1ipDWk4BIEo2VuodEJUifhbiltnNBIXPUFCMpthtAyqws/BPlEF/VbaIxErdxPphsU7rcCp8DohC+GvBIPJS/tW2jtvTmmAeuNO8BNOYQeG8G/2OzCJ3q+soYB5i6NhMaKr17FSal7GIHheuV3uSCY8qYVuEm1cOzqdWr7ku/R0BDoTT+DT+ohCM6/CCvKLKO4RI+dXPeAuaMqksaKrZ7L3FE5FIFbkIceeOZ2OcHO6wIhTkNo0ffgjRGxEqogXHYUPHfWAC/lADpwGcLRY3aeK4/oRGCKYcZXPVoeX/kelVYY8dUGf8V5EBRbgJXT5QIPhP9ePJi428JKOiEYhYXFBqou2Guh+p/mEB1/RfMw6rY7cxcjTrneI1FrDyuzUSRm9miwEJx8E/gUmqlyvHGkneiwErR21F3tNOK5Tf0yXaT+O7DgCvALTUBXdM4YhC/IawPU+2PduqMvuaR6eoxSwUk75ggqsYJ7VicsnwGIkZBSXKOUww73WGXyqP+J2/b9c+gi1YAg/xpwck3gJuucNrh5JvDPvQr0WFXf0piyt8f8/WI0hV4pRxxkQZdJDfDJNOAmM0Ag8jyT6hz0WGXWuP94Yh2jcfjmXAGvHCMslRimDHYuHuDsy2QtHuIavznhbYURq5R57KpzBBRZKPJi8eQg48h4j8SDdowifdIrEVdU+gbO6QNvRRt4ZBthUaZhUnjlYObNagV3keoeru3rU7rcuceqU1mJBxy+BWZYlNEBH+0eH4vRiB+OYybU2hnblYlTvkHinM4m54YnxSyaZYSF6R3jwgP7udKLGIX6r/lbNa9N6y5MFynjWDtrHd75ZvTYAPO/6RgF0k76mQla3FGq7dO+cH8sKn0Vo7nDllwAhqwLPkxrHwWmHJOo+AKJ4rab5OgrM7rVu8eWb2Pu0Dh4eDgXoOfvp7Y7QeqknRmvcTBEyq9m/HQQSCSz6LHq3z0yzsNySRfMS253wl2KyRDbcZPcfJKjZmSEOjcxyi+Y8dUOtsIEH6R2wNykdqrkYJ0RV92H0W58pkfQk7cKevsLK10Py8SdMGfXNXATY+pPbyJR/ET6n9nIfztNtZYRV9XniQu9IA2vOVgy4ir7GCLVmmd+zjkH0eAF9Po6K61pmCXHxU5rHMYd1ftc3owjwRSVRzLjKvqZEty6cRUD7jGqiOdu5HG6MdHjNcNYGqfDm5YRzLBBCCDl/2bk8a8gdbqcfwECu62Fg/HrggAAAABJRU5ErkJggg==",shadowUrl:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAYAAACoYAD2AAAC5ElEQVRYw+2YW4/TMBCF45S0S1luXZCABy5CgLQgwf//S4BYBLTdJLax0fFqmB07nnQfEGqkIydpVH85M+NLjPe++dcPc4Q8Qh4hj5D/AaQJx6H/4TMwB0PeBNwU7EGQAmAtsNfAzoZkgIa0ZgLMa4Aj6CxIAsjhjOCoL5z7Glg1JAOkaicgvQBXuncwJAWjksLtBTWZe04CnYRktUGdilALppZBOgHGZcBzL6OClABvMSVIzyBjazOgrvACf1ydC5mguqAVg6RhdkSWQFj2uxfaq/BrIZOLEWgZdALIDvcMcZLD8ZbLC9de4yR1sYMi4G20S4Q/PWeJYxTOZn5zJXANZHIxAd4JWhPIloTJZhzMQduM89WQ3MUVAE/RnhAXpTycqys3NZALOBbB7kFrgLesQl2h45Fcj8L1tTSohUwuxhy8H/Qg6K7gIs+3kkaigQCOcyEXCHN07wyQazhrmIulvKMQAwMcmLNqyCVyMAI+BuxSMeTk3OPikLY2J1uE+VHQk6ANrhds+tNARqBeaGc72cK550FP4WhXmFmcMGhTwAR1ifOe3EvPqIegFmF+C8gVy0OfAaWQPMR7gF1OQKqGoBjq90HPMP01BUjPOqGFksC4emE48tWQAH0YmvOgF3DST6xieJgHAWxPAHMuNhrImIdvoNOKNWIOcE+UXE0pYAnkX6uhWsgVXDxHdTfCmrEEmMB2zMFimLVOtiiajxiGWrbU52EeCdyOwPEQD8LqyPH9Ti2kgYMf4OhSKB7qYILbBv3CuVTJ11Y80oaseiMWOONc/Y7kJYe0xL2f0BaiFTxknHO5HaMGMublKwxFGzYdWsBF174H/QDknhTHmHHN39iWFnkZx8lPyM8WHfYELmlLKtgWNmFNzQcC1b47gJ4hL19i7o65dhH0Negbca8vONZoP7doIeOC9zXm8RjuL0Gf4d4OYaU5ljo3GYiqzrWQHfJxA6ALhDpVKv9qYeZA8eM3EhfPSCmpuD0AAAAASUVORK5CYII=",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]})},C=function(e){l(w[e])&&delete w[e]},E=function(e){e.options.icon.options.ngElement&&e.options.icon.options.ngElement.remove(),e.options.icon.options.scope&&e.options.icon.options.scope.$destroy()},A=function(e,t,n){if(e.closePopup(),e.options.icon&&e.options.icon.options&&"dom"===e.options.icon.options.type&&E(e),l(n)&&l(n.overlays))for(var i in n.overlays)if((n.overlays[i]instanceof L.LayerGroup||n.overlays[i]instanceof L.FeatureGroup)&&n.overlays[i].hasLayer(e))return void n.overlays[i].removeLayer(e);if(l(w))for(var r in w)w[r].hasLayer(e)&&w[r].removeLayer(e);t.hasLayer(e)&&t.removeLayer(e)},P=function(e,t){o(e._popup._contentNode)(t)},Y=function e(t,i,r){(t._popup._contentNode.innerText||t._popup._contentNode.textContent).length<1&&n((function(){e(t,i,r)}));var o=t._popup._contentNode.offsetWidth;return t._popup._updateLayout(),t._popup._updatePosition(),t._popup.options.autoPan&&function(e,t){var n=e._popup._container.offsetHeight,i=new L.Point(e._popup._containerLeft,-n-e._popup._containerBottom);null!==t.layerPointToContainerPoint(i)&&e._popup._adjustPan()}(t,r),o},O=function(n,i,r){var o=e.isFunction(i.getMessageScope)?i.getMessageScope():t;if(!l(i.compileMessage)||i.compileMessage){if(!l(n._popup)||!l(n._popup._contentNode))return S.error(k+"Popup is invalid or does not have any content."),!1;P(n,o),Y(n,i,r)}},I=function(n,i){var r=e.isFunction(i.getMessageScope)?i.getMessageScope():t,a=e.isFunction(i.getLabelScope)?i.getLabelScope():r,s=!l(i.compileMessage)||i.compileMessage;v.LabelPlugin.isLoaded()&&l(i.label)&&(l(i.label.options)&&!0===i.label.options.noHide&&n.showLabel(),s&&l(n.label)&&o(n.label._container)(a))},j=function(t,n,i,r,o,a,s){if(l(n)){if(!M.validateCoords(t))return S.warn("There are problems with lat-lng data, please verify your marker model"),void A(i,s,a);var u=t===n;if(l(t.iconAngle)&&n.iconAngle!==t.iconAngle&&i.setIconAngle(t.iconAngle),_(t.layer)||_(n.layer)&&(l(a.overlays[n.layer])&&a.overlays[n.layer].hasLayer(i)&&(a.overlays[n.layer].removeLayer(i),i.closePopup()),s.hasLayer(i)||s.addLayer(i)),(y(t.opacity)||y(parseFloat(t.opacity)))&&t.opacity!==n.opacity&&i.setOpacity(t.opacity),_(t.layer)&&n.layer!==t.layer){if(_(n.layer)&&l(a.overlays[n.layer])&&a.overlays[n.layer].hasLayer(i)&&a.overlays[n.layer].removeLayer(i),i.closePopup(),s.hasLayer(i)&&s.removeLayer(i),!l(a.overlays[t.layer]))return void S.error(k+"You must use a name of an existing layer");var c=a.overlays[t.layer];if(!(c instanceof L.LayerGroup||c instanceof L.FeatureGroup))return void S.error(k+'A marker can only be added to a layer of type "group" or "featureGroup"');c.addLayer(i),s.hasLayer(i)&&!0===t.focus&&i.openPopup()}if(!0!==t.draggable&&!0===n.draggable&&l(i.dragging)&&i.dragging.disable(),!0===t.draggable&&!0!==n.draggable&&(i.dragging?i.dragging.enable():L.Handler.MarkerDrag&&(i.dragging=new L.Handler.MarkerDrag(i),i.options.draggable=!0,i.dragging.enable())),b(t.icon)||b(n.icon)&&("dom"===n.icon.type&&E(i),i.setIcon(D()),i.closePopup(),i.unbindPopup(),_(t.message)&&i.bindPopup(t.message,t.popupOptions)),b(t.icon)&&b(n.icon)&&!e.equals(t.icon,n.icon)){var d=!1;i.dragging&&(d=i.dragging.enabled()),"dom"===n.icon.type&&E(i),i.setIcon(D(t.icon)),d&&i.dragging.enable(),i.closePopup(),i.unbindPopup(),_(t.message)&&(i.bindPopup(t.message,t.popupOptions),s.hasLayer(i)&&!0===t.focus&&i.openPopup())}!_(t.message)&&_(n.message)&&(i.closePopup(),i.unbindPopup()),v.LabelPlugin.isLoaded()&&(l(t.label)&&l(t.label.message)?"label"in n&&"message"in n.label&&!e.equals(t.label.message,n.label.message)?i.updateLabelContent(t.label.message):!e.isFunction(i.getLabel)||e.isFunction(i.getLabel)&&!l(i.getLabel())?(i.bindLabel(t.label.message,t.label.options),I(i,t)):I(i,t):"label"in t&&!("message"in t.label)||e.isFunction(i.unbindLabel)&&i.unbindLabel()),_(t.message)&&!_(n.message)&&i.bindPopup(t.message,t.popupOptions),_(t.message)&&_(n.message)&&t.message!==n.message&&i.setPopupContent(t.message);var h=!1;!0!==t.focus&&!0===n.focus&&(i.closePopup(),h=!0),(!0===t.focus&&(!l(n.focus)||!1===n.focus)||u&&!0===t.focus)&&(i.openPopup(),h=!0),n.zIndexOffset!==t.zIndexOffset&&i.setZIndexOffset(t.zIndexOffset);var f=i.getLatLng();_(t.layer)&&v.MarkerClusterPlugin.is(a.overlays[t.layer])?h?t.lat===n.lat&&t.lng===n.lng||(a.overlays[t.layer].removeLayer(i),i.setLatLng([t.lat,t.lng]),a.overlays[t.layer].addLayer(i)):f.lat!==t.lat||f.lng!==t.lng?(a.overlays[t.layer].removeLayer(i),i.setLatLng([t.lat,t.lng]),a.overlays[t.layer].addLayer(i)):t.lat!==n.lat||t.lng!==n.lng?(a.overlays[t.layer].removeLayer(i),i.setLatLng([t.lat,t.lng]),a.overlays[t.layer].addLayer(i)):b(t.icon)&&b(n.icon)&&!e.equals(t.icon,n.icon)&&(a.overlays[t.layer].removeLayer(i),a.overlays[t.layer].addLayer(i)):f.lat===t.lat&&f.lng===t.lng||i.setLatLng([t.lat,t.lng])}};return{resetMarkerGroup:C,resetMarkerGroups:function(){w={}},resetUnusedMarkerGroups:function(){for(var e in w)$(e)||C(e)},deleteMarker:A,manageOpenPopup:O,manageOpenLabel:I,createMarker:function(e){if(l(e)&&M.validateCoords(e)){var t=M.getCoords(e);if(l(t)){var n={icon:D(e.icon),title:l(e.title)?e.title:"",draggable:!!l(e.draggable)&&e.draggable,clickable:!l(e.clickable)||e.clickable,riseOnHover:!!l(e.riseOnHover)&&e.riseOnHover,zIndexOffset:l(e.zIndexOffset)?e.zIndexOffset:0,iconAngle:l(e.iconAngle)?e.iconAngle:0};for(var i in e)e.hasOwnProperty(i)&&!n.hasOwnProperty(i)&&(n[i]=e[i]);var r=new L.marker(t,n);return _(e.message)||r.unbindPopup(),r}S.error(k+"Unable to get coordinates from markerData.")}else S.error(k+"The marker definition is not valid.")},addMarkerToGroup:function(e,t,n,i){return _(t)?c.isLoaded()?(l(w[t])||(w[t]=new L.MarkerClusterGroup(n),i.addLayer(w[t])),void w[t].addLayer(e)):void S.error(k+"The MarkerCluster plugin is not loaded."):void S.error(k+"The marker group you have specified is invalid.")},listenMarkerEvents:function(e,t,n,i,r){e.on("popupopen",(function(){g(n,(function(){(l(e._popup)||l(e._popup._contentNode))&&(t.focus=!0,O(e,t,r))}))})),e.on("popupclose",(function(){g(n,(function(){t.focus=!1}))})),e.on("add",(function(){g(n,(function(){"label"in t&&I(e,t)}))}))},updateMarker:j,addMarkerWatcher:function(e,t,n,i,r,o){var a=v.getObjectArrayPath("markers."+t);x(n,a,o,(function(t,n,o){return l(t)?void j(t,n,e,0,0,i,r):(A(e,r,i),void o())}))},string:T,log:function(e,t){(t?console:S).debug(T(e))},getModelFromModels:function(e,t,n){if(l(e))return t?n?e[n][t]:e[t]:void S.error(k+"marker id missing in getMarker")},getLayerModels:function(e,t){if(l(e))return t?e[t]:e}}}]),e.module("ui-leaflet").factory("leafletPathsHelpers",["$rootScope","leafletLogger","leafletHelpers",function(e,t,n){function i(e){return e.filter((function(e){return u(e)})).map((function(e){return r(e)}))}function r(e){return s(e)?new L.LatLng(e[0],e[1]):new L.LatLng(e.lat,e.lng)}function o(e){return e.map((function(e){return i(e)}))}var a=n.isDefined,s=n.isArray,l=n.isNumber,u=n.isValidPoint,c=t,d=["stroke","weight","color","opacity","fill","fillColor","fillOpacity","dashArray","lineCap","lineJoin","clickable","pointerEvents","className","smoothFactor","noClip"],h=function(e,t){for(var n={},i=0;i<d.length;i++){var r=d[i];a(t[r])&&(n[r]=t[r])}e.setStyle(t)},f=function(e){if(!s(e))return!1;for(var t=0;t<e.length;t++){var n=e[t];if(!u(n))return!1}return!0},p={polyline:{isValid:function(e){var t=e.latlngs;return f(t)},createPath:function(e){return new L.Polyline([],e)},setPath:function(e,t){e.setLatLngs(i(t.latlngs)),h(e,t)}},multiPolyline:{isValid:function(e){var t=e.latlngs;if(!s(t))return!1;for(var n in t){var i=t[n];if(!f(i))return!1}return!0},createPath:function(e){return new L.multiPolyline([[[0,0],[1,1]]],e)},setPath:function(e,t){e.setLatLngs(o(t.latlngs)),h(e,t)}},polygon:{isValid:function(e){var t=e.latlngs;return f(t)},createPath:function(e){return new L.Polygon([],e)},setPath:function(e,t){e.setLatLngs(i(t.latlngs)),h(e,t)}},multiPolygon:{isValid:function(e){var t=e.latlngs;if(!s(t))return!1;for(var n in t){var i=t[n];if(!f(i))return!1}return!0},createPath:function(e){return new L.MultiPolygon([[[0,0],[1,1],[0,1]]],e)},setPath:function(e,t){e.setLatLngs(o(t.latlngs)),h(e,t)}},rectangle:{isValid:function(e){var t=e.latlngs;if(!s(t)||2!==t.length)return!1;for(var n in t){var i=t[n];if(!u(i))return!1}return!0},createPath:function(e){return new L.Rectangle([[0,0],[1,1]],e)},setPath:function(e,t){e.setBounds(new L.LatLngBounds(i(t.latlngs))),h(e,t)}},circle:{isValid:function(e){var t=e.latlngs;return u(t)&&l(e.radius)},createPath:function(e){return new L.Circle([0,0],1,e)},setPath:function(e,t){e.setLatLng(r(t.latlngs)),a(t.radius)&&e.setRadius(t.radius),h(e,t)}},circleMarker:{isValid:function(e){var t=e.latlngs;return u(t)&&l(e.radius)},createPath:function(e){return new L.CircleMarker([0,0],e)},setPath:function(e,t){e.setLatLng(r(t.latlngs)),a(t.radius)&&e.setRadius(t.radius),h(e,t)}}};return{setPathOptions:function(e,t,n){a(t)||(t="polyline"),p[t].setPath(e,n)},createPath:function(e,t,n){a(t.type)||(t.type="polyline");var i=function(e,t){for(var n={},i=0;i<d.length;i++){var r=d[i];a(e[r])?n[r]=e[r]:a(t.path[r])&&(n[r]=t.path[r])}return n}(t,n),r=function(e){var t={};return e.latlngs&&(t.latlngs=e.latlngs),e.radius&&(t.radius=e.radius),t}(t);return p[t.type].isValid(r)?p[t.type].createPath(i):void c.error("[AngularJS - Leaflet] Invalid data passed to the "+t.type+" path")}}}]),e.module("ui-leaflet").service("leafletWatchHelpers",(function(){return{maybeWatch:function(e,t,n,i){return function(e,t,n,i,r){var o=e[t](n,(function(e,t){r(e,t,o),null===i.type&&o()}),"watchDeep"===i.type);return o}(e,"watchCollection"===n.type?"$watchCollection":"$watch",t,n,i)}}})),e.module("ui-leaflet").service("leafletLogger",["nemSimpleLogger",function(e){return e.spawn()}]),e.module("ui-leaflet").factory("nominatimService",["$q","$http","leafletHelpers","leafletMapDefaults",function(e,t,n,i){var r=n.isDefined;return{query:function(n,o){var a=i.getDefaults(o).nominatim.server,s=e.defer();return t.get(a,{params:{format:"json",limit:1,q:n}}).success((function(e){e.length>0&&r(e[0].boundingbox)?s.resolve(e[0]):s.reject("[Nominatim] Invalid address")})),s.promise}}}]),e.module("ui-leaflet").directive("bounds",["leafletLogger","$timeout","$http","leafletHelpers","nominatimService","leafletBoundsHelpers",function(t,n,i,r,o,a){var s=t;return{restrict:"A",scope:!1,replace:!1,require:["leaflet"],link:function(t,i,l,u){var c=r.isDefined,d=a.createLeafletBounds,h=u[0].getLeafletScope(),f=u[0],p=r.errorHeader+" [Bounds] ";f.getMap().then((function(i){var r;h.$on("boundsChanged",(function(t){var r=t.currentScope,o=i.getBounds();if(!function(e){return 0===e._southWest.lat&&0===e._southWest.lng&&0===e._northEast.lat&&0===e._northEast.lng}(o)&&!r.settingBoundsFromScope){r.settingBoundsFromLeaflet=!0;var a={northEast:{lat:o._northEast.lat,lng:o._northEast.lng},southWest:{lat:o._southWest.lat,lng:o._southWest.lng},options:o.options};e.equals(r.bounds,a)||(r.bounds=a),n((function(){r.settingBoundsFromLeaflet=!1}))}})),h.$watch("bounds",(function(e){if(!t.settingBoundsFromLeaflet){if(c(e.address)&&e.address!==r)return t.settingBoundsFromScope=!0,o.query(e.address,l.id).then((function(e){var t=e.boundingbox,n=[[t[0],t[2]],[t[1],t[3]]];i.fitBounds(n)}),(function(e){s.error(p+" "+e+".")})),r=e.address,void n((function(){t.settingBoundsFromScope=!1}));var a=d(e);a&&!i.getBounds().equals(a)&&(t.settingBoundsFromScope=!0,i.fitBounds(a,e.options),n((function(){t.settingBoundsFromScope=!1})))}}),!0)}))}}}]);var t=["center","lfCenter"],n={};t.forEach((function(t){n[t]=["leafletLogger","$q","$location","$timeout","leafletMapDefaults","leafletHelpers","leafletBoundsHelpers","leafletMapEvents",function(n,i,r,o,a,s,l,u){var c,d=s.isDefined,h=s.isNumber,f=s.isSameCenterOnMap,p=s.safeApply,m=s.isValidCenter,g=l.isValidBounds,v=s.isUndefinedOrEmpty,_=s.errorHeader,y=n,b=function(e,t){return d(e)&&g(e)&&v(t)};return{restrict:"A",scope:!1,replace:!1,require:"leaflet",controller:function(){c=i.defer(),this.getCenter=function(){return c.promise}},link:function(n,i,s,g){var v=g.getLeafletScope(),w=v[t];g.getMap().then((function(n){var i,g,L=a.getDefaults(s.id);if(-1!==s[t].search("-"))return y.error(_+' The "center" variable can\'t use a "-" on its key name: "'+s[t]+'".'),void n.setView([L.center.lat,L.center.lng],L.center.zoom);if(b(v.bounds,w))n.fitBounds(l.createLeafletBounds(v.bounds),v.bounds.options),w=n.getCenter(),p(v,(function(i){e.extend(i[t],{lat:n.getCenter().lat,lng:n.getCenter().lng,zoom:n.getZoom(),autoDiscover:!1})})),p(v,(function(e){var t=n.getBounds();e.bounds={northEast:{lat:t._northEast.lat,lng:t._northEast.lng},southWest:{lat:t._southWest.lat,lng:t._southWest.lng}}}));else{if(!d(w))return y.error(_+' The "center" property is not defined in the main scope'),void n.setView([L.center.lat,L.center.lng],L.center.zoom);d(w.lat)&&d(w.lng)||d(w.autoDiscover)||e.copy(L.center,w)}if("yes"===s.urlHashCenter){var M=function(){var e,t=r.search(),n=s.urlHashParam?s.urlHashParam:"c";if(d(t[n])){var i=t[n].split(":");3===i.length&&(e={lat:parseFloat(i[0]),lng:parseFloat(i[1]),zoom:parseInt(i[2],10)})}return e};i=M(),v.$on("$locationChangeSuccess",(function(i){var r=i.currentScope,o=M();d(o)&&!f(o,n)&&e.extend(r[t],{lat:o.lat,lng:o.lng,zoom:o.zoom})}))}v.$watch(t,(function(t){if(!v.settingCenterFromLeaflet)return d(i)&&(e.copy(i,t),i=void 0),m(t)||!0===t.autoDiscover?!0===t.autoDiscover?(h(t.zoom)||n.setView([L.center.lat,L.center.lng],L.center.zoom),void(h(t.zoom)&&t.zoom>L.center.zoom?n.locate({setView:!0,maxZoom:t.zoom}):d(L.maxZoom)?n.locate({setView:!0,maxZoom:L.maxZoom}):n.locate({setView:!0}))):void(g&&f(t,n)||(v.settingCenterFromScope=!0,n.setView([t.lat,t.lng],t.zoom),u.notifyCenterChangedToBounds(v,n),o((function(){v.settingCenterFromScope=!1})))):void y.warn(_+" invalid 'center'")}),!0),n.whenReady((function(){g=!0})),n.on("moveend",(function(){c.resolve(),u.notifyCenterUrlHashChanged(v,n,s,r.search()),f(w,n)||v.settingCenterFromScope||(v.settingCenterFromLeaflet=!0,p(v,(function(i){v.settingCenterFromScope||e.extend(i[t],{lat:n.getCenter().lat,lng:n.getCenter().lng,zoom:n.getZoom(),autoDiscover:!1}),u.notifyCenterChangedToBounds(v,n),o((function(){v.settingCenterFromLeaflet=!1}))})))})),!0===w.autoDiscover&&n.on("locationerror",(function(){y.warn(_+" The Geolocation API is unauthorized on this page."),m(w)?(n.setView([w.lat,w.lng],w.zoom),u.notifyCenterChangedToBounds(v,n)):(n.setView([L.center.lat,L.center.lng],L.center.zoom),u.notifyCenterChangedToBounds(v,n))}))}))}}}]})),t.forEach((function(t){e.module("ui-leaflet").directive(t,n[t])})),e.module("ui-leaflet").directive("controls",["leafletLogger","leafletHelpers","leafletControlHelpers",function(e,t,n){var i=e;return{restrict:"A",scope:!1,replace:!1,require:"?^leaflet",link:function(e,r,o,a){if(a){var s=n.createControl,l=n.isValidControlType,u=a.getLeafletScope(),c=t.isDefined,d=t.isArray,h={},f=t.errorHeader+" [Controls] ";e.$on("$destroy",(function(){n.destroyMapLayersControl(e.mapId)})),a.getMap().then((function(e){u.$watchCollection("controls",(function(t){for(var n in h)c(t[n])||(e.hasControl(h[n])&&e.removeControl(h[n]),delete h[n]);for(var r in t){var o,a=c(t[r].type)?t[r].type:r;if(!l(a))return void i.error(f+" Invalid control type: "+a+".");if("custom"!==a)o=s(a,t[r]),e.addControl(o),h[r]=o;else{var u=t[r];if(d(u))for(var p=0;p<u.length;p++){var m=u[p];e.addControl(m),h[r]=c(h[r])?h[r].concat([m]):[m]}else e.addControl(u),h[r]=u}}}))}))}}}}]),e.module("ui-leaflet").directive("decorations",["leafletLogger","leafletHelpers",function(t,n){var i=t;return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(t,r,o,a){function s(e){return d(e)&&d(e.coordinates)&&(c.isLoaded()||i.error("[AngularJS - Leaflet] The PolylineDecorator Plugin is not loaded.")),L.polylineDecorator(e.coordinates)}function l(e,t){if(d(e)&&d(t)&&d(t.coordinates)&&d(t.patterns))return e.setPaths(t.coordinates),e.setPatterns(t.patterns),e}var u=a.getLeafletScope(),c=n.PolylineDecoratorPlugin,d=n.isDefined,h={};a.getMap().then((function(t){u.$watch("decorations",(function(n){for(var i in h)d(n[i])&&e.equals(n[i],h)||(t.removeLayer(h[i]),delete h[i]);for(var r in n){var o=n[r],a=s(o);d(a)&&(h[r]=a,t.addLayer(a),l(a,o))}}),!0)}))}}}]),e.module("ui-leaflet").directive("eventBroadcast",["leafletLogger","$rootScope","leafletHelpers","leafletMapEvents","leafletIterators",function(e,t,n,i,r){var o=e;return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(e,t,a,s){var l=n.isObject,u=n.isDefined,c=s.getLeafletScope(),d=c.eventBroadcast,h=i.getAvailableMapEvents(),f=i.addEvents;s.getMap().then((function(e){var t=[],n="broadcast";u(d.map)?l(d.map)?("emit"!==d.map.logic&&"broadcast"!==d.map.logic?o.warn("[AngularJS - Leaflet] Available event propagation logic are: 'emit' or 'broadcast'."):n=d.map.logic,l(d.map.enable)&&d.map.enable.length>=0?r.each(d.map.enable,(function(e){-1===t.indexOf(e)&&-1!==h.indexOf(e)&&t.push(e)})):o.warn("[AngularJS - Leaflet] event-broadcast.map.enable must be an object check your model.")):o.warn("[AngularJS - Leaflet] event-broadcast.map must be an object check your model."):t=h,f(e,a.id,t,"eventName",c,n)}))}}}]),e.module("ui-leaflet").directive("geojson",["$timeout","leafletLogger","leafletData","leafletHelpers","leafletWatchHelpers","leafletDirectiveControlsHelpers","leafletIterators","leafletGeoJsonEvents",function(t,n,i,r,o,a,s,l){var u=o.maybeWatch,c=r.watchOptions,d=a.extend,h=r,f=s,p={changeFromDirective:!1};return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(t,n,o,a){var s=r.isDefined,m=a.getLeafletScope(),g={},v=!1;a.getMap().then((function(t){var n;n=m.watchOptions&&m.watchOptions.geojson?m.watchOptions.geojson:c;var a=function(t,n){return e.isFunction(t.onEachFeature)?t.onEachFeature:function(e,i){r.LabelPlugin.isLoaded()&&s(e.properties.description)&&i.bindLabel(e.properties.description),l.bindEvents(o.id,i,null,e,m,n,{resetStyleOnMouseout:t.resetStyleOnMouseout,mapId:o.id})}},_=h.isDefined(o.geojsonNested)&&h.isTruthy(o.geojsonNested),y=function(){if(g){var e=function(e){s(e)&&t.hasLayer(e)&&t.removeLayer(e)};return _?void f.each(g,(function(t){e(t)})):void e(g)}},b=function(e,n){if(s(e)&&s(e.data)){var r=a(e,n);s(e.options)||h.modelChangeInDirective(p,"changeFromDirective",(function(){e.options={style:e.style,filter:e.filter,onEachFeature:r,pointToLayer:e.pointToLayer}}));var l=L.geoJson(e.data,e.options);n&&h.isString(n)?g[n]=l:g=l,l.addTo(t),v||(v=!0,i.setGeoJSON(g,o.id))}},w=function(e){if(y(),_){if(!e||!Object.keys(e).length)return;f.each(e,(function(e,t){b(e,t)}))}else b(e)};d(o.id,"geojson",w,y),u(m,"geojson",n,(function(e){p.changeFromDirective||w(e)}))}))}}}]),e.module("ui-leaflet").directive("layercontrol",["$filter","leafletLogger","leafletData","leafletHelpers",function(t,n,i,r){var o=n;return{restrict:"E",scope:{icons:"=?",autoHideOpacity:"=?",showGroups:"=?",title:"@",baseTitle:"@",overlaysTitle:"@"},replace:!0,transclude:!1,require:"^leaflet",controller:["$scope","$element","$sce",function(t,n,a){o.debug("[Angular Directive - Layers] layers",t,n);var s=r.safeApply,l=r.isDefined;e.extend(t,{baselayer:"",oldGroup:"",layerProperties:{},groupProperties:{},rangeIsSupported:r.rangeIsSupported(),changeBaseLayer:function(e,n){r.safeApply(t,(function(n){n.baselayer=e,i.getMap().then((function(r){i.getLayers().then((function(i){if(!r.hasLayer(i.baselayers[e])){for(var o in n.layers.baselayers)n.layers.baselayers[o].icon=n.icons.unradio,r.hasLayer(i.baselayers[o])&&r.removeLayer(i.baselayers[o]);r.addLayer(i.baselayers[e]),n.layers.baselayers[e].icon=t.icons.radio}}))}))})),n.preventDefault()},moveLayer:function(e,n,i){var r=Object.keys(t.layers.baselayers).length;if(n>=1+r&&n<=t.overlaysArray.length+r){var o;for(var a in t.layers.overlays)if(t.layers.overlays[a].index===n){o=t.layers.overlays[a];break}o&&s(t,(function(){o.index=e.index,e.index=n}))}i.stopPropagation(),i.preventDefault()},initIndex:function(e,n){var i=Object.keys(t.layers.baselayers).length;e.index=l(e.index)?e.index:n+i+1},initGroup:function(e){t.groupProperties[e]=t.groupProperties[e]?t.groupProperties[e]:{}},toggleOpacity:function(e,n){if(n.visible){if(t.autoHideOpacity&&!t.layerProperties[n.name].opacityControl)for(var i in t.layerProperties)t.layerProperties[i].opacityControl=!1;t.layerProperties[n.name].opacityControl=!t.layerProperties[n.name].opacityControl}e.stopPropagation(),e.preventDefault()},toggleLegend:function(e){t.layerProperties[e.name].showLegend=!t.layerProperties[e.name].showLegend},showLegend:function(e){return e.legend&&t.layerProperties[e.name].showLegend},unsafeHTML:function(e){return a.trustAsHtml(e)},getOpacityIcon:function(e){return e.visible&&t.layerProperties[e.name].opacityControl?t.icons.close:t.icons.open},getGroupIcon:function(e){return e.visible?t.icons.check:t.icons.uncheck},changeGroupVisibility:function(e){if(l(t.groupProperties[e])){var n=t.groupProperties[e].visible;for(var i in t.layers.overlays){var r=t.layers.overlays[i];r.group===e&&(r.visible=n)}}}});var u=n.get(0);L.Browser.touch?L.DomEvent.on(u,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(u),L.DomEvent.on(u,"mousewheel",L.DomEvent.stopPropagation))}],template:'<div class="angular-leaflet-control-layers" ng-show="overlaysArray.length"><h4 ng-if="title">{{ title }}</h4><div class="lf-baselayers"><h5 class="lf-title" ng-if="baseTitle">{{ baseTitle }}</h5><div class="lf-row" ng-repeat="(key, layer) in baselayersArray"><label class="lf-icon-bl" ng-click="changeBaseLayer(key, $event)"><input class="leaflet-control-layers-selector" type="radio" name="lf-radio" ng-show="false" ng-checked="baselayer === key" ng-value="key" /> <i class="lf-icon lf-icon-radio" ng-class="layer.icon"></i><div class="lf-text">{{layer.name}}</div></label></div></div><div class="lf-overlays"><h5 class="lf-title" ng-if="overlaysTitle">{{ overlaysTitle }}</h5><div class="lf-container"><div class="lf-row" ng-repeat="layer in (o = (overlaysArray | orderBy:\'index\':order))" ng-init="initIndex(layer, $index)"><label class="lf-icon-ol-group" ng-if="showGroups &amp;&amp; layer.group &amp;&amp; layer.group != o[$index-1].group"><input class="lf-control-layers-selector" type="checkbox" ng-show="false" ng-change="changeGroupVisibility(layer.group)" ng-model="groupProperties[layer.group].visible"/> <i class="lf-icon lf-icon-check" ng-class="getGroupIcon(groupProperties[layer.group])"></i><div class="lf-text">{{ layer.group }}</div></label><label class="lf-icon-ol"><input class="lf-control-layers-selector" type="checkbox" ng-show="false" ng-model="layer.visible"/> <i class="lf-icon lf-icon-check" ng-class="layer.icon"></i><div class="lf-text">{{layer.name}}</div></label><div class="lf-icons"><i class="lf-icon lf-up" ng-class="icons.up" ng-click="moveLayer(layer, layer.index - orderNumber, $event)"></i> <i class="lf-icon lf-down" ng-class="icons.down" ng-click="moveLayer(layer, layer.index + orderNumber, $event)"></i> <i class="lf-icon lf-toggle-legend" ng-class="icons.toggleLegend" ng-if="layer.legend" ng-click="toggleLegend(layer)"></i> <i class="lf-icon lf-open" ng-class="getOpacityIcon(layer)" ng-click="toggleOpacity($event, layer)"></i></div><div class="lf-legend" ng-if="showLegend(layer)" ng-bind-html="unsafeHTML(layer.legend)"></div><div class="lf-opacity clearfix" ng-if="layer.visible &amp;&amp; layerProperties[layer.name].opacityControl"><label ng-if="rangeIsSupported" class="pull-left" style="width: 50%">0</label><label ng-if="rangeIsSupported" class="pull-left text-right" style="width: 50%">100</label><input ng-if="rangeIsSupported" class="clearfix" type="range" min="0" max="1" step="0.05" class="lf-opacity-control" ng-model="layerProperties[layer.name].layerOptions.opacity"/><h6 ng-if="!rangeIsSupported">Range is not supported in this browser</h6></div></div></div></div></div>',link:function(t,n,o,a){var s=r.isDefined,l=a.getLeafletScope(),u=l.layers;t.$watch("icons",(function(){var n={uncheck:"fa fa-square-o",check:"fa fa-check-square-o",radio:"fa fa-dot-circle-o",unradio:"fa fa-circle-o",up:"fa fa-angle-up",down:"fa fa-angle-down",open:"fa fa-angle-double-down",close:"fa fa-angle-double-up",toggleLegend:"fa fa-pencil-square-o"};s(t.icons)?(e.extend(n,t.icons),e.extend(t.icons,n)):t.icons=n})),o.order=!s(o.order)||"normal"!==o.order&&"reverse"!==o.order?"normal":o.order,t.order="normal"===o.order,t.orderNumber="normal"===o.order?-1:1,t.layers=u,a.getMap().then((function(e){l.$watch("layers.baselayers",(function(n){var r={};i.getLayers().then((function(i){var o;for(o in n){var a=n[o];a.icon=t.icons[e.hasLayer(i.baselayers[o])?"radio":"unradio"],r[o]=a}t.baselayersArray=r}))})),l.$watch("layers.overlays",(function(e){var n=[],r={};i.getLayers().then((function(){var i;for(i in e){var o=e[i];o.icon=t.icons[o.visible?"check":"uncheck"],n.push(o),s(t.layerProperties[o.name])||(s(o.layerOptions.opacity)&&(o.layerOptions.opacity=1),t.layerProperties[o.name]={opacityControl:!1,showLegend:!0,layerOptions:o.layerOptions}),s(o.group)&&(s(t.groupProperties[o.group])||(t.groupProperties[o.group]={visible:!1}),r[o.group]=s(r[o.group])?r[o.group]:{count:0,visibles:0},r[o.group].count++,o.visible&&r[o.group].visibles++)}for(i in r)t.groupProperties[i].visible=r[i].visibles===r[i].count;t.overlaysArray=n}))}),!0)}))}}}]),e.module("ui-leaflet").directive("layers",["leafletLogger","$q","leafletData","leafletHelpers","leafletLayerHelpers","leafletControlHelpers",function(t,n,i,r,o,a){return{restrict:"A",scope:!1,replace:!1,require:"leaflet",controller:["$scope",function(e){e._leafletLayers=n.defer(),this.getLayers=function(){return e._leafletLayers.promise}}],link:function(t,n,s,l){var u=r.isDefined,c={},d=l.getLeafletScope(),h=d.layers,f=o.createLayer,p=o.safeAddLayer,m=o.safeRemoveLayer,g=o.changeOpacityListener,v=a.updateLayersControl,_=!1;t.$on("$destroy",(function(){a.destroyMapLayersControl(t.mapId)})),l.getMap().then((function(n){t._leafletLayers.resolve(c),i.setLayers(c,s.id),c.baselayers={},c.overlays={};var r=s.id,o=!1;for(var a in h.baselayers){var l=f(h.baselayers[a]);u(l)?(c.baselayers[a]=l,!0===h.baselayers[a].top&&(p(n,c.baselayers[a]),o=!0)):delete h.baselayers[a]}for(a in!o&&Object.keys(c.baselayers).length>0&&p(n,c.baselayers[Object.keys(h.baselayers)[0]]),h.overlays){h.overlays[a].type;var y=f(h.overlays[a]);u(y)?(c.overlays[a]=y,!0===h.overlays[a].visible&&p(n,c.overlays[a])):delete h.overlays[a]}d.$watch("layers.baselayers",(function(t,i){if(e.equals(t,i))return _=v(n,r,_,t,h.overlays,c),!0;for(var o in c.baselayers)u(t[o])&&!t[o].doRefresh||(n.hasLayer(c.baselayers[o])&&n.removeLayer(c.baselayers[o]),delete c.baselayers[o],t[o]&&t[o].doRefresh&&(t[o].doRefresh=!1));for(var a in t)if(u(c.baselayers[a]))!0!==t[a].top||n.hasLayer(c.baselayers[a])?!1===t[a].top&&n.hasLayer(c.baselayers[a])&&n.removeLayer(c.baselayers[a]):p(n,c.baselayers[a]);else{var s=f(t[a]);u(s)&&(c.baselayers[a]=s,!0===t[a].top&&p(n,c.baselayers[a]))}var l=!1;for(var d in c.baselayers)if(n.hasLayer(c.baselayers[d])){l=!0;break}!l&&Object.keys(c.baselayers).length>0&&p(n,c.baselayers[Object.keys(c.baselayers)[0]]),_=v(n,r,_,t,h.overlays,c)}),!0),d.$watch("layers.overlays",(function(t,i){if(e.equals(t,i))return _=v(n,r,_,h.baselayers,t,c),!0;for(var o in c.overlays)if(!u(t[o])||t[o].doRefresh){if(n.hasLayer(c.overlays[o])){var a=u(t[o])?t[o].layerOptions:null;m(n,c.overlays[o],a)}delete c.overlays[o],t[o]&&t[o].doRefresh&&(t[o].doRefresh=!1)}for(var s in t){if(u(c.overlays[s])){t[s].visible&&!n.hasLayer(c.overlays[s])?p(n,c.overlays[s]):!1===t[s].visible&&n.hasLayer(c.overlays[s])&&m(n,c.overlays[s],t[s].layerOptions);var l=c.overlays[s];n.hasLayer(c.overlays[s])&&(t[s].layerOptions.opacity!==i[s].layerOptions.opacity&&(u(l.setOpacity)&&l.setOpacity(t[s].layerOptions.opacity),u(l.getLayers)&&u(l.eachLayer)&&l.eachLayer(g(t[s].layerOptions.opacity))),u(t[s].index)&&l.setZIndex&&t[s].index!==i[s].index&&l.setZIndex(t[s].index))}else{var d=f(t[s]);if(!u(d))continue;c.overlays[s]=d,!0===t[s].visible&&p(n,c.overlays[s]),u(t[s].index)&&c.overlays[s].setZIndex&&c.overlays[s].setZIndex(t[s].index)}t[s].visible&&n._loaded&&t[s].data&&"heatmap"===t[s].type&&(c.overlays[s].setData(t[s].data),c.overlays[s].update())}_=v(n,r,_,h.baselayers,t,c)}),!0)}))}}}]),e.module("ui-leaflet").directive("legend",["leafletLogger","$http","$timeout","leafletHelpers","leafletLegendHelpers",function(e,t,n,i,r){var o=e,a=i.errorHeader+" [Legend] ";return{restrict:"A",scope:!1,replace:!1,require:"leaflet",transclude:!1,link:function(e,t,n,s){var l,u,c,d,h=i.isArray,f=i.isString,p=i.isDefined,m=i.isFunction,g=s.getLeafletScope(),v=g.legend;g.$watch("legend",(function(e){p(e)&&(l=e.legendClass?e.legendClass:"legend",u=e.position||"bottomright",d=e.type||"arcgis")}),!0);var _=function(e,t,n){t&&t.layers&&t.layers.length>0&&(p(c)?r.updateLegend(c.getContainer(),t,d,n):((c=L.control({position:u})).onAdd=r.getOnAddLegend(t,l,d,n),c.addTo(e)),p(v.loadedData)&&m(v.loadedData)&&v.loadedData())};s.getMap().then((function(e){g.$watch("legend",(function(t){return p(t)?p(t.url)||"arcgis"!==d||h(t.colors)&&h(t.labels)&&t.colors.length===t.labels.length?p(t.url)?void o.info(a+" loading legend service."):(p(c)&&(c.removeFrom(e),c=null),c=L.control({position:u}),"arcgis"===d&&(c.onAdd=r.getOnAddArrayLegend(t,l)),void c.addTo(e)):void o.warn(a+" legend.colors and legend.labels must be set."):void(p(c)&&(c.removeFrom(e),c=null))})),g.$watch("legend.url",(function(t){if(p(t)){if(!h(t)&&!f(t))return void o.warn(a+" legend.url must be an array or string.");for(var i,s=f(t)?[t]:t,l=function(n,r){return function(l){p(l.data.error)?o.warn(a+"Error loadin legend from: "+r,l.data.error.message):i&&i.layers&&i.layers.length>0?i.layers=i.layers.concat(l.data.layers):i=l.data,n===s.length-1&&_(e,i,t)}},u=function(e){o.warn(a+" legend.url not loaded.",e)},c=0;c<s.length;c++)r.addLegendURL(n.id,{url:s[c],method:"GET"}).then(l(c)).catch(u)}})),g.$watch("legend.legendData",(function(t){o.debug("legendData",t),!p(g.legend.url)&&p(t)&&_(e,t)}),!0)}))}}}]),e.module("ui-leaflet").directive("markers",["leafletLogger","$rootScope","$q","leafletData","leafletHelpers","leafletMapDefaults","leafletMarkersHelpers","leafletMarkerEvents","leafletIterators","leafletWatchHelpers","leafletDirectiveControlsHelpers",function(t,n,i,r,o,a,s,l,u,c,d){var h=o.isDefined,f=o.errorHeader,p=o,m=o.isString,g=s.addMarkerWatcher,v=s.updateMarker,_=s.listenMarkerEvents,y=s.addMarkerToGroup,b=s.createMarker,w=s.deleteMarker,M=s.getModelFromModels,k=s.getLayerModels,x=s.resetUnusedMarkerGroups,S=u,T=o.watchOptions,$=c.maybeWatch,D=d.extend,C=t,E={changeFromDirective:!1},A=function(e,t,n){if(Object.keys(e).length){if(n&&m(n)){if(!e[n]||!Object.keys(e[n]).length)return;return e[n][t]}return e[t]}},P=function(e,t,n,i){return i&&m(i)?(h(t[i])||(t[i]={}),t[i][n]=e):t[n]=e,e},Y=function(e,t,n,i,r,o){if(!m(e))return C.error(f+" A layername must be a string"),!1;if(!h(t))return C.error(f+" You must add layers to the directive if the markers are going to use this functionality."),!1;if(!h(t.overlays)||!h(t.overlays[e]))return C.error(f+' A marker can only be added to a layer of type "group"'),!1;var a=t.overlays[e];return a instanceof L.LayerGroup||a instanceof L.FeatureGroup?(a.addLayer(i),null===r&&o.hasLayer(i)&&!0===n.focus&&i.openPopup(),!0):(C.error(f+' Adding a marker to an overlay needs a overlay of the type "group" or "featureGroup"'),!1)},O=function(e,t,n,i,r,o,a,s,u,c){S.each(t,(function(t,d){if(!c[d]){if(-1!==d.search("-"))return void C.error('The marker can\'t use a "-" on his key name: "'+d+'".');var m=p.getObjectDotPath(u?[u,d]:[d]),w=A(o,d,u);p.modelChangeInDirective(E,"changeFromDirective",(function(){if(h(w)){var c=M(n,d,u);v(t,c,w,m,a,r,i)}else{var L=b(t),k=(t?t.layer:void 0)||u;if(!h(L))return void C.error(f+" Received invalid data on the marker "+d+".");if(P(L,o,d,u),h(t.message)&&L.bindPopup(t.message,t.popupOptions),h(t.group)){var x=h(t.groupOption)?t.groupOption:null;y(L,t.group,x,i)}if(p.LabelPlugin.isLoaded()&&h(t.label)&&h(t.label.message)&&L.bindLabel(t.label.message,t.label.options),h(t)&&(h(t.layer)||h(u))){if(!Y(k,r,t,L,s.individual.type,i))return}else h(t.group)||(i.addLayer(L),null===s.individual.type&&!0===t.focus&&L.openPopup());null!==s.individual.type&&g(L,m,a,r,i,s.individual),_(L,t,a,s.individual.type,i),l.bindEvents(e,L,m,t,a,k)}}))}}))},I=function(t,n,i,r,o){var a,s,l=!1,u=!1,c=h(n);for(var d in i)l||(C.debug(f+"[markers] destroy: "),l=!0),c&&(s=t[d],a=n[d],u=r&&e.equals(s,a)),h(t)&&Object.keys(t).length&&h(t[d])&&Object.keys(t[d]).length&&!u||o&&p.isFunction(o)&&o(s,a,d)},j=function(e,t,n,i,r){I(e,t,n,!1,(function(e,t,o){C.debug(f+"[marker] is deleting marker: "+o),w(n[o],i,r),delete n[o]}))},H=function(e,t,n){var i={};return I(e,t,n,!0,(function(e,t,n){C.debug(f+"[marker] is already rendered, marker: "+n),i[n]=e})),i};return{restrict:"A",scope:!1,replace:!1,require:["leaflet","?layers"],link:function(e,t,n,o){var a=o[0],s=a.getLeafletScope();a.getMap().then((function(t){var a,l,u={};a=h(o[1])?o[1].getLayers:function(){var e=i.defer();return e.resolve(),e.promise},l=s.watchOptions&&s.watchOptions.markers?s.watchOptions.markers:T;var c=h(n.markersNested)&&p.isTruthy(n.markersNested);a().then((function(i){var o=function(e,n){return x(),c?void S.each(e,(function(e,r){var o=k(n,r);j(e,o,u[r],t,i)})):void j(e,n,u,t,i)},a=function(e,r){o(e,r);var a=null;return c?void S.each(e,(function(o,c){var d=k(r,c),h=k(e,c);a=H(h,d,u[c]),O(n.id,o,r,t,i,u,s,l,c,a)})):(a=H(e,r,u),void O(n.id,e,r,t,i,u,s,l,void 0,a))};D(n.id,"markers",a,o),r.setMarkers(u,n.id),$(s,"markers",l,(function(e,t){E.changeFromDirective||a(e,t)})),e.$on("$destroy",(function(){j(s.markers,{},u,t,i)}))}))}))}}}]),e.module("ui-leaflet").directive("maxbounds",["leafletLogger","leafletMapDefaults","leafletBoundsHelpers","leafletHelpers",function(e,t,n,i){return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(e,t,r,o){var a=o.getLeafletScope(),s=n.isValidBounds,l=i.isNumber;o.getMap().then((function(e){a.$watch("maxbounds",(function(t){if(s(t)){var i=n.createLeafletBounds(t);l(t.pad)&&(i=i.pad(t.pad)),e.setMaxBounds(i),r.center||r.lfCenter||e.fitBounds(i)}else e.setMaxBounds()}))}))}}}]),e.module("ui-leaflet").directive("paths",["leafletLogger","$q","leafletData","leafletMapDefaults","leafletHelpers","leafletPathsHelpers","leafletPathEvents","leafletWatchHelpers",function(e,t,n,i,r,o,a,s){var l=e;return{restrict:"A",scope:!1,replace:!1,require:["leaflet","?layers"],link:function(e,u,c,d){var h=d[0],f=r.isDefined,p=r.isString,m=h.getLeafletScope(),g=m.paths,v=o.createPath,_=a.bindPathEvents,y=o.setPathOptions,b=s.maybeWatch;h.getMap().then((function(e){var o,a,s=i.getDefaults(c.id);(o=f(d[1])?d[1].getLayers:function(){var e=t.defer();return e.resolve(),e.promise},f(g))&&(a=m.watchOptions&&m.watchOptions.paths?m.watchOptions.paths:{type:"watchCollection",individual:{type:"watchDeep"}},o().then((function(t){var i={};n.setPaths(i,c.id);var o=function(n,i,r){b(m,'paths["'+i+'"]',r,(function(i,r,o){if(!f(i)){if(f(r.layer))for(var a in t.overlays)t.overlays[a].removeLayer(n);return e.removeLayer(n),void o()}y(n,i.type,i)}))},u=function(n){for(var u in function(t){for(var n in i)f(t[n])||(e.removeLayer(i[n]),delete i[n])}(n),n)if(0!==u.search("\\$"))if(-1===u.search("-")){if(!f(i[u])){var d=n[u],h=v(u,n[u],s);if(f(h)&&f(d.message)&&h.bindPopup(d.message,d.popupOptions),r.LabelPlugin.isLoaded()&&f(d.label)&&f(d.label.message)&&h.bindLabel(d.label.message,d.label.options),f(d)&&f(d.layer)){if(!p(d.layer)){l.error("[AngularJS - Leaflet] A layername must be a string");continue}if(!f(t)){l.error("[AngularJS - Leaflet] You must add layers to the directive if the markers are going to use this functionality.");continue}if(!f(t.overlays)||!f(t.overlays[d.layer])){l.error('[AngularJS - Leaflet] A path can only be added to a layer of type "group"');continue}var g=t.overlays[d.layer];if(!(g instanceof L.LayerGroup||g instanceof L.FeatureGroup)){l.error('[AngularJS - Leaflet] Adding a path to an overlay needs a overlay of the type "group" or "featureGroup"');continue}i[u]=h,g.addLayer(h),null!==a.individual.type?o(h,u,a.individual):y(h,d.type,d)}else f(h)&&(i[u]=h,e.addLayer(h),null!==a.individual.type?o(h,u,a.individual):y(h,d.type,d));_(c.id,h,u,d,m)}}else l.error('[AngularJS - Leaflet] The path name "'+u+'" is not valid. It must not include "-" and a number.')};b(m,"paths",a,(function(e){u(e)}))})))}))}}}]),e.module("ui-leaflet").directive("tiles",["leafletLogger","leafletData","leafletMapDefaults","leafletHelpers",function(t,n,i,r){var o=t;return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(t,a,s,l){var u=r.isDefined,c=l.getLeafletScope(),d=c.tiles;return u(d)&&u(d.url)?void l.getMap().then((function(t){var r,o=i.getDefaults(s.id);c.$watch("tiles",(function(i){var a=o.tileLayerOptions,l=o.tileLayer;return!u(i.url)&&u(r)?void t.removeLayer(r):u(r)?u(i.url)&&u(i.options)&&!e.equals(i.options,a)?(t.removeLayer(r),a=o.tileLayerOptions,e.copy(i.options,a),l=i.url,(r=L.tileLayer(l,a)).addTo(t),void n.setTiles(r,s.id)):void(u(i.url)&&r.setUrl(i.url)):(u(i.options)&&e.copy(i.options,a),u(i.url)&&(l=i.url),(r=L.tileLayer(l,a)).addTo(t),void n.setTiles(r,s.id))}),!0)})):void o.warn("[AngularJS - Leaflet] The 'tiles' definition doesn't have the 'url' property.")}}}]),e.module("ui-leaflet").directive("watchOptions",["$log","$rootScope","$q","leafletData","leafletHelpers",function(t,n,i,r,o){var a=o.isDefined,s=o.errorHeader,l=o.isObject,u=t;return{restrict:"A",scope:!1,replace:!1,require:["leaflet"],link:function(t,n,i,r){var o=r[0].getLeafletScope(),c=function(e){return"watch"===e||"watchCollection"===e||"watchDeep"===e||null===e};a(o.watchOptions)&&l(o.watchOptions)&&e.forEach(["markers","geojson","paths"],(function(e){a(o.watchOptions[e])&&(c(o.watchOptions[e].type)||u.error(s+" watchOptions."+e+".type is not a valid type."),a(o.watchOptions[e].individual)?c(o.watchOptions[e].individual.type)||u.error(s+" watchOptions."+e+".individual.type is not a valid type."):u.error(s+" watchOptions."+e+".type.individual must be defined."))}))}}}]),e.module("ui-leaflet").factory("leafletEventsHelpersFactory",["$rootScope","$q","leafletLogger","leafletHelpers",function(t,n,i,r){var o=r.safeApply,a=r.isDefined,s=r.isObject,l=r.isArray,u=r.errorHeader,c=i,d=function(e,t){this.rootBroadcastName=e,c.debug("leafletEventsHelpersFactory: lObjectType: "+t+"rootBroadcastName: "+e),this.lObjectType=t};return d.prototype.getAvailableEvents=function(){return[]},d.prototype.genDispatchEvent=function(e,t,n,i,r,o,a,s,l){var u=this;return(e=e||"")&&(e="."+e),function(d){var h=u.rootBroadcastName+e+"."+t;c.debug(h),u.fire(i,h,n,d,d.target||r,a,o,s,l)}},d.prototype.fire=function(n,i,r,s,l,u,c,d,h){o(n,(function(){var o={leafletEvent:s,leafletObject:l,modelName:c,model:u};a(d)&&e.extend(o,{layerName:d}),"emit"===r?n.$emit(i,o):t.$broadcast(i,o)}))},d.prototype.bindEvents=function(e,t,n,i,r,o,d){var h=[],f="emit",p=this;if(a(r.eventBroadcast))if(s(r.eventBroadcast))if(a(r.eventBroadcast[p.lObjectType]))if(s(r.eventBroadcast[p.lObjectType])){a(r.eventBroadcast[this.lObjectType].logic)&&"emit"!==r.eventBroadcast[p.lObjectType].logic&&"broadcast"!==r.eventBroadcast[p.lObjectType].logic&&c.warn(u+"Available event propagation logic are: 'emit' or 'broadcast'.");var m=!1,g=!1;a(r.eventBroadcast[p.lObjectType].enable)&&l(r.eventBroadcast[p.lObjectType].enable)&&(m=!0),a(r.eventBroadcast[p.lObjectType].disable)&&l(r.eventBroadcast[p.lObjectType].disable)&&(g=!0),m&&g?c.warn(u+"can not enable and disable events at the same time"):m||g?m?r.eventBroadcast[this.lObjectType].enable.forEach((function(e){-1!==h.indexOf(e)?c.warn(u+"This event "+e+" is already enabled"):-1===p.getAvailableEvents().indexOf(e)?c.warn(u+"This event "+e+" does not exist"):h.push(e)})):(h=this.getAvailableEvents(),r.eventBroadcast[p.lObjectType].disable.forEach((function(e){var t=h.indexOf(e);-1===t?c.warn(u+"This event "+e+" does not exist or has been already disabled"):h.splice(t,1)}))):c.warn(u+"must enable or disable events")}else c.warn(u+"event-broadcast."+[p.lObjectType]+" must be an object check your model.");else h=this.getAvailableEvents();else c.error(u+"event-broadcast must be an object check your model.");else h=this.getAvailableEvents();return h.forEach((function(a){t.on(a,p.genDispatchEvent(e,a,f,r,t,n,i,o,d))})),f},d}]).service("leafletEventsHelpers",["leafletEventsHelpersFactory",function(e){return new e}]),e.module("ui-leaflet").factory("leafletGeoJsonEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpersFactory","leafletData",function(e,t,n,i,r,o){var a=i.safeApply,s=r,l=function(){s.call(this,"leafletDirectiveGeoJson","geojson")};return(l.prototype=new s).genDispatchEvent=function(t,n,i,r,l,u,c,d,h){var f=s.prototype.genDispatchEvent.call(this,t,n,i,r,l,u,c,d),p=this;return function(t){"mouseout"===n&&(h.resetStyleOnMouseout&&o.getGeoJSON(h.mapId).then((function(e){(d?e[d]:e).resetStyle(t.target)})),a(r,(function(){e.$broadcast(p.rootBroadcastName+".mouseout",t)}))),f(t)}},l.prototype.getAvailableEvents=function(){return["click","dblclick","mouseover","mouseout"]},new l}]),e.module("ui-leaflet").factory("leafletLabelEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpersFactory",function(e,t,n,i,r){var o=i,a=r,s=function(){a.call(this,"leafletDirectiveLabel","markers")};return(s.prototype=new a).genDispatchEvent=function(e,t,n,i,r,o,s,l){var u=o.replace("markers.","");return a.prototype.genDispatchEvent.call(this,e,t,n,i,r,u,s,l)},s.prototype.getAvailableEvents=function(){return["click","dblclick","mousedown","mouseover","mouseout","contextmenu"]},s.prototype.genEvents=function(e,t,n,i,r,a,s,l){var u=this,c=this.getAvailableEvents(),d=o.getObjectArrayPath("markers."+a);c.forEach((function(t){r.label.on(t,u.genDispatchEvent(e,t,n,i,r.label,d,s,l))}))},s.prototype.bindEvents=function(e,t,n,i,r,o){},new s}]),e.module("ui-leaflet").factory("leafletMapEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpers","leafletIterators",function(e,t,n,i,r,o){var a=i.isDefined,s=r.fire,l=function(e,t,i,r){return r&&(r+="."),function(o){var a="leafletDirectiveMap."+r+t;n.debug(a),s(e,a,i,o,o.target,e)}};return{getAvailableMapEvents:function(){return["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","contextmenu","focus","blur","preclick","load","unload","viewreset","movestart","move","moveend","dragstart","drag","dragend","zoomstart","zoomanim","zoomend","zoomlevelschange","resize","autopanstart","layeradd","layerremove","baselayerchange","overlayadd","overlayremove","locationfound","locationerror","popupopen","popupclose","draw:created","draw:edited","draw:deleted","draw:drawstart","draw:drawstop","draw:editstart","draw:editstop","draw:deletestart","draw:deletestop"]},genDispatchMapEvent:l,notifyCenterChangedToBounds:function(e){e.$broadcast("boundsChanged")},notifyCenterUrlHashChanged:function(e,t,n,i){if(a(n.urlHashCenter)){var r=t.getCenter(),o=r.lat.toFixed(4)+":"+r.lng.toFixed(4)+":"+t.getZoom();a(i.c)&&i.c===o||e.$emit("centerUrlHash",o)}},addEvents:function(e,t,n,i,r,a){o.each(n,(function(n){var o={};o[i]=n,t||(t=e._container.id||""),e.on(n,l(r,n,a,t),o)}))}}}]),e.module("ui-leaflet").factory("leafletMarkerEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpersFactory","leafletLabelEvents",function(e,t,n,i,r,o){var a=i.safeApply,s=i.isDefined,l=i,u=o,c=r,d=function(){c.call(this,"leafletDirectiveMarker","markers")};return(d.prototype=new c).genDispatchEvent=function(t,n,i,r,o,s,l,u){var d=c.prototype.genDispatchEvent.call(this,t,n,i,r,o,s,l,u);return function(t){"click"===n?a(r,(function(){e.$broadcast("leafletDirectiveMarkersClick",s)})):"dragend"===n&&(a(r,(function(){l.lat=o.getLatLng().lat,l.lng=o.getLatLng().lng})),l.message&&!0===l.focus&&o.openPopup()),d(t)}},d.prototype.getAvailableEvents=function(){return["click","dblclick","mousedown","mouseover","mouseout","contextmenu","dragstart","drag","dragend","move","remove","popupopen","popupclose","touchend","touchstart","touchmove","touchcancel","touchleave"]},d.prototype.bindEvents=function(e,t,n,i,r,o){var a=c.prototype.bindEvents.call(this,e,t,n,i,r,o);l.LabelPlugin.isLoaded()&&s(t.label)&&u.genEvents(e,n,a,r,t,i,o)},new d}]);var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};e.module("ui-leaflet").factory("leafletPathEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletLabelEvents","leafletEventsHelpers",function(e,t,n,r,o,a){var s=r.isDefined,l=r.isObject,u=r,c=r.errorHeader,d=o,h=a.fire,f=n,p=function(e,t,n,i,r,o,a,s){return(e=e||"")&&(e="."+e),function(l){var u="leafletDirectivePath"+e+"."+t;f.debug(u),h(i,u,n,l,l.target||r,a,o,s)}},m=function(){return["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"]};return{getAvailablePathEvents:m,bindPathEvents:function(e,t,n,r,o){var a,h,m=[],g="broadcast";if(s(o.eventBroadcast))if(l(o.eventBroadcast))if(s(o.eventBroadcast.path))if(l(o.eventBroadcast.paths))f.warn(c+"event-broadcast.path must be an object check your model.");else{void 0!==o.eventBroadcast.path.logic&&null!==o.eventBroadcast.path.logic&&("emit"!==o.eventBroadcast.path.logic&&"broadcast"!==o.eventBroadcast.path.logic?f.warn(c+"Available event propagation logic are: 'emit' or 'broadcast'."):"emit"===o.eventBroadcast.path.logic&&(g="emit"));var v=!1,_=!1;if(void 0!==o.eventBroadcast.path.enable&&null!==o.eventBroadcast.path.enable&&"object"===i(o.eventBroadcast.path.enable)&&(v=!0),void 0!==o.eventBroadcast.path.disable&&null!==o.eventBroadcast.path.disable&&"object"===i(o.eventBroadcast.path.disable)&&(_=!0),v&&_)f.warn(c+"can not enable and disable events at the same time");else if(v||_)if(v)for(a=0;a<o.eventBroadcast.path.enable.length;a++)h=o.eventBroadcast.path.enable[a],-1!==m.indexOf(h)?f.warn(c+"This event "+h+" is already enabled"):-1===["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"].indexOf(h)?f.warn(c+"This event "+h+" does not exist"):m.push(h);else for(m=["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"],a=0;a<o.eventBroadcast.path.disable.length;a++){h=o.eventBroadcast.path.disable[a];var y=m.indexOf(h);-1===y?f.warn(c+"This event "+h+" does not exist or has been already disabled"):m.splice(y,1)}else f.warn(c+"must enable or disable events")}else m=["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"];else f.error(c+"event-broadcast must be an object check your model.");else m=["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"];for(a=0;a<m.length;a++)h=m[a],t.on(h,p(e,h,g,o,m,n));u.LabelPlugin.isLoaded()&&s(t.label)&&d.genEvents(e,n,g,o,t,r)}}}])}(angular),function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters.hidden,.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper.hidden{visibility:hidden}.digit-keyboard{position:absolute;left:0;right:0;bottom:0;background:0 0;font-size:24px;z-index:5000}.digit-keyboard *{box-sizing:border-box}.digit-keyboard .digit-keyboard-row{display:flex;flex-direction:row;border-bottom:1px solid #333}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper{flex:1;text-align:center;position:relative;height:60px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{display:block;margin:0 auto;position:absolute;left:0;top:0;right:0;bottom:0;border-right:1px solid #333;border-left:1px solid #333;line-height:60px;-webkit-transition:background-color .1s linear;-moz-transition:background-color .1s linear;-o-transition:background-color .1s linear;-ms-transition:background-color .1s linear;transition:background-color .1s linear}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{font-size:1em;vertical-align:middle;display:inline-block;line-height:normal;text-align:center;margin-top:-.4em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{font-size:9.6px;line-height:9.6px;height:9.6px;margin-top:-.25em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-action{position:absolute;left:0;top:0;right:0;bottom:0;line-height:60px;font-size:24px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:first-child .digit-keyboard-key{border-right:none}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:last-child .digit-keyboard-key{border-left:none}.digit-keyboard .digit-keyboard-row:first-child{border-top:1px solid #333}.digit-keyboard .digit-keyboard-row:last-child{border:none}.digit-keyboard .digit-keyboard-row:last-child .digit-keyboard-key-wrapper .digit-keyboard-key{border-bottom:1px solid #333}.digit-keyboard.align-center{margin:0 auto}.digit-keyboard.align-left{margin-right:auto}.digit-keyboard.align-right{margin-left:auto}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{margin-top:-.3em}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{display:none}.digit-keyboard.round-buttons .digit-keyboard-row{border:none}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper{margin:10px 0 0}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{width:60px;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;border:1px solid #333}.digit-keyboard.round-buttons .digit-keyboard-row:last-child .digit-keyboard-key-wrapper{margin-bottom:10px}.digit-keyboard.round-buttons.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{height:57.6px;line-height:57.6px}.digit-keyboard.keyboard-light *{border-color:#e6e6e6!important}.digit-keyboard.keyboard-light .digit-keyboard-key{background:#fff;color:#444}.digit-keyboard.keyboard-light .digit-keyboard-key.activated{background:#e6e6e6}.digit-keyboard.keyboard-stable *{border-color:#dfdfdf!important}.digit-keyboard.keyboard-stable .digit-keyboard-key{background:#f8f8f8;color:#444}.digit-keyboard.keyboard-stable .digit-keyboard-key.activated{background:#dfdfdf}.digit-keyboard.keyboard-positive *{border-color:#0c60ee!important}.digit-keyboard.keyboard-positive .digit-keyboard-key{background:#387ef5;color:#fff}.digit-keyboard.keyboard-positive .digit-keyboard-key.activated{background:#0c60ee}.digit-keyboard.keyboard-calm *{border-color:#0a9dc7!important}.digit-keyboard.keyboard-calm .digit-keyboard-key{background:#11c1f3;color:#fff}.digit-keyboard.keyboard-calm .digit-keyboard-key.activated{background:#0a9dc7}.digit-keyboard.keyboard-balanced *{border-color:#28a54c!important}.digit-keyboard.keyboard-balanced .digit-keyboard-key{background:#33cd5f;color:#fff}.digit-keyboard.keyboard-balanced .digit-keyboard-key.activated{background:#28a54c}.digit-keyboard.keyboard-energized *{border-color:#e6b500!important}.digit-keyboard.keyboard-energized .digit-keyboard-key{background:#ffc900;color:#fff}.digit-keyboard.keyboard-energized .digit-keyboard-key.activated{background:#e6b500}.digit-keyboard.keyboard-assertive *{border-color:#e42112!important}.digit-keyboard.keyboard-assertive .digit-keyboard-key{background:#ef473a;color:#fff}.digit-keyboard.keyboard-assertive .digit-keyboard-key.activated{background:#e42112}.digit-keyboard.keyboard-royal *{border-color:#6b46e5!important}.digit-keyboard.keyboard-royal .digit-keyboard-key{background:#886aea;color:#fff}.digit-keyboard.keyboard-royal .digit-keyboard-key.activated{background:#6b46e5}.digit-keyboard.keyboard-dark *{border-color:#2b2b2b!important}.digit-keyboard.keyboard-dark .digit-keyboard-key{background:#444;color:#fff}.digit-keyboard.keyboard-dark .digit-keyboard-key.activated{background:#2b2b2b}.digit-keyboard.keyboard-opaque-black *{border-color:rgba(0,0,0,.75)!important}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key{background:rgba(0,0,0,.15);color:rgba(0,0,0,.75)}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key.activated{background:rgba(0,0,0,.25)}.digit-keyboard.keyboard-opaque-white *{border-color:rgba(255,255,255,.75)!important}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key{background:rgba(255,255,255,.15);color:rgba(255,255,255,.75)}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key.activated{background:rgba(255,255,255,.25)}.digit-keyboard.animation-slide-up{-webkit-transition:transform linear 150ms;transition:transform linear 150ms;transform:translate3d(0,0,0)}.digit-keyboard.animation-slide-up.ng-hide{transform:translate3d(0,100%,0)}.digit-keyboard.animation-pop{-webkit-transition:transform linear 150ms;transition:transform linear 150ms;transform:scale3d(1,1,1)}.digit-keyboard.animation-pop.ng-hide{transform:scale3d(0,0,1)}"),function(e){try{e=angular.module("ion-digit-keyboard.templates")}catch(t){e=angular.module("ion-digit-keyboard.templates",[])}e.run(["$templateCache",function(e){e.put("keyboard.tpl.html","<div class=\"digit-keyboard align-{{align}} keyboard-{{theme}} animation-{{animation}} {{roundButtons ? 'round-buttons' : ''}} {{showLetters == false ? 'no-letters' : ''}} {{(ngShow == false || ngHide == true) ? 'ng-hide' : ''}}\" style=\"width: {{width}};\"><div class=digit-keyboard-row><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(1)><div class=digit-keyboard-key-number>1<div class=digit-keyboard-key-letters></div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(2)><div class=digit-keyboard-key-number>2<div class=digit-keyboard-key-letters>ABC</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(3)><div class=digit-keyboard-key-number>3<div class=digit-keyboard-key-letters>DEF</div></div></div></div></div><div class=digit-keyboard-row><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(4)><div class=digit-keyboard-key-number>4<div class=digit-keyboard-key-letters>GHI</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(5)><div class=digit-keyboard-key-number>5<div class=digit-keyboard-key-letters>JKL</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(6)><div class=digit-keyboard-key-number>6<div class=digit-keyboard-key-letters>MNO</div></div></div></div></div><div class=digit-keyboard-row><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(7)><div class=digit-keyboard-key-number>7<div class=digit-keyboard-key-letters>PQRS</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(8)><div class=digit-keyboard-key-number>8<div class=digit-keyboard-key-letters>TUV</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(9)><div class=digit-keyboard-key-number>9<div class=digit-keyboard-key-letters>WXYZ</div></div></div></div></div><div class=digit-keyboard-row><div class=\"digit-keyboard-key-wrapper {{showLeftAction == false ? 'hidden' : ''}}\"><div class=digit-keyboard-key ng-click=leftAction($event) style={{leftStyle}}><div class=digit-keyboard-key-action ng-bind-html=leftHtml style={{leftFontSize}}></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(0)><div class=digit-keyboard-key-number style=\"margin-top: -0.30em;\">0</div></div></div><div class=\"digit-keyboard-key-wrapper {{showRightAction == false ? 'hidden' : ''}}\"><div class=digit-keyboard-key ng-click=rightAction($event) style={{rightStyle}}><div class=digit-keyboard-key-action ng-bind-html=rightHtml style={{rightFontSize}}></div></div></div></div></div>")}])}(),angular.module("ion-digit-keyboard.directive",[]).directive("ionDigitKeyboard",["$timeout","$ionicScrollDelegate","$templateCache",function(e,t,n){var i=150;return{restrict:"EA",template:n.get("keyboard.tpl.html"),replace:!0,scope:{settings:"=settings",ngShow:"=",ngHide:"="},link:function(n,r,o){function a(){1==c&&(l.style.bottom="0px",l.style.height=u)}function s(){e((function(){if(1==c){var e=r[0].offsetHeight;u=l.style.height,l.style.height="auto",l.style.bottom=e+1+"px"}}),i+10)}void 0===n.settings&&(n.settings={});var l,u,c=!0,d="ion-content",h={},f={};n.leftStyle="",n.rightStyle="",n.leftFontSize="",n.rightFontSize="",n.showLetters=void 0!==n.settings.showLetters&&n.settings.showLetters,n.roundButtons=void 0!==n.settings.roundButtons&&n.settings.roundButtons,n.numberAction=n.settings.action||function(){},n.width=n.settings.width||"100%",n.align=n.settings.align||"center",n.animation=n.settings.animation||"slide-up",n.theme=n.settings.theme||"stable",void 0!==n.settings.leftButton&&"object"==typeof n.settings.leftButton.style&&(void 0!==n.settings.leftButton.style.color&&(n.leftStyle+="color: "+n.settings.leftButton.style.color+";"),void 0!==n.settings.leftButton.style.bgColor&&(h.default=n.settings.leftButton.style.bgColor,n.leftStyle+="background-color: "+h.default+";"),void 0!==n.settings.leftButton.style.activeBgColor&&(h.active=n.settings.leftButton.style.activeBgColor),void 0!==n.settings.leftButton.style.borderColor&&(n.leftStyle+="border-color: "+n.settings.leftButton.style.borderColor+" !important;"),void 0!==n.settings.leftButton.style.fontSize&&(n.leftFontSize="font-size: "+n.settings.leftButton.style.fontSize+" !important;")),void 0!==n.settings.rightButton&&"object"==typeof n.settings.rightButton.style&&(void 0!==n.settings.rightButton.style.color&&(n.rightStyle+="color: "+n.settings.rightButton.style.color+";"),void 0!==n.settings.rightButton.style.bgColor&&(f.default=n.settings.rightButton.style.bgColor,n.rightStyle+="background-color: "+f.default+";"),void 0!==n.settings.rightButton.style.activeBgColor&&(f.active=n.settings.rightButton.style.activeBgColor),void 0!==n.settings.rightButton.style.borderColor&&(n.rightStyle+="border-color: "+n.settings.rightButton.style.borderColor+" !important;"),void 0!==n.settings.rightButton.style.fontSize&&(n.rightFontSize="font-size: "+n.settings.rightButton.style.fontSize+" !important;")),n.showLeftAction=!1,void 0!==n.settings.leftButton&&(n.leftHtml=n.settings.leftButton.html,n.showLeftAction=!0,n.leftAction=function(e){if(h.active){var t=e.target;"I"==t.tagName?t=t.parentNode.parentNode:t.className.indexOf("digit-keyboard-key-action")>-1&&(t=t.parentNode),void 0===h.default&&(h.default=t.style.backgroundColor),t.style.backgroundColor=h.active,setTimeout((function(){t.style.backgroundColor=h.default}),100)}n.settings.leftButton.action()}),n.showRightAction=!1,void 0!==n.settings.rightButton&&(n.rightHtml=n.settings.rightButton.html,n.showRightAction=!0,n.rightAction=function(e){if(f.active){var t=e.target;"I"==t.tagName?t=t.parentNode.parentNode:t.className.indexOf("digit-keyboard-key-action")>-1&&(t=t.parentNode),void 0===f.default&&(f.default=t.style.backgroundColor),t.style.backgroundColor=f.active,setTimeout((function(){t.style.backgroundColor=f.default}),100)}n.settings.rightButton.action()}),("object"==typeof n.settings.resizeContent||"boolean"==typeof n.settings.resizeContent)&&("object"==typeof n.settings.resizeContent?(c=void 0===n.settings.resizeContent.enable||n.settings.resizeContent.enable,d=void 0===n.settings.resizeContent.element?"ion-content":n.settings.resizeContent.element):"boolean"==typeof n.settings.resizeContent&&(c=n.settings.resizeContent)),l=r[0].parentElement.querySelectorAll(d)[0],n.$watch("ngShow",(function(){!0===n.ngShow?s():!1===n.ngShow&&a(),t.resize()})),n.$watch("ngHide",(function(){!0===n.ngHide?a():!1===n.ngHide&&s(),t.resize()}))}}}]),angular.module("ion-digit-keyboard",["ionic","ion-digit-keyboard.templates","ion-digit-keyboard.directive"]),function(e){"use strict";if("object"==typeof exports)module.exports=e("undefined"!=typeof angular?angular:require("angular"),"undefined"!=typeof Chart?Chart:require("chart.js"));else if("function"==typeof define&&define.amd)define(["angular","chart"],e);else{if("undefined"==typeof angular)throw new Error("AngularJS framework needs to be included, see https://angularjs.org/");if("undefined"==typeof Chart)throw new Error("Chart.js library needs to be included, see http://jtblin.github.io/angular-chart.js/");e(angular,Chart)}}((function(e,t){"use strict";t.defaults.global.multiTooltipTemplate="<%if (datasetLabel){%><%=datasetLabel%>: <%}%><%= value %>",t.defaults.global.tooltips.mode="label",t.defaults.global.elements.line.borderWidth=2,t.defaults.global.elements.rectangle.borderWidth=2,t.defaults.global.legend.display=!1,t.defaults.global.colors=["#97BBCD","#DCDCDC","#F7464A","#46BFBD","#FDB45C","#949FB1","#4D5360"];var n="object"==typeof window.G_vmlCanvasManager&&null!==window.G_vmlCanvasManager&&"function"==typeof window.G_vmlCanvasManager.initElement;return n&&(t.defaults.global.animation=!1),e.module("chart.js",[]).provider("ChartJs",(function(){var n={responsive:!0},i={Chart:t,getOptions:function(t){var i=t&&n[t]||{};return e.extend({},n,i)}};this.setOptions=function(t,r){r?n[t]=e.merge(n[t]||{},r):(r=t,n=e.merge(n,r)),e.merge(i.Chart.defaults,n)},this.$get=function(){return i}})).factory("ChartJsFactory",["ChartJs","$timeout",function(i,r){function o(e,t,n){var r=v(e,t);if(function(e){return e.chartData&&e.chartData.length}(t)&&b(e,t,n,r)){var o=n[0],a=o.getContext("2d");t.chartGetColor=function(e){return"function"==typeof e.chartGetColor?e.chartGetColor:d}(t);var s=function(e,t){var n=u(e,t);return Array.isArray(t.chartData[0])?m(t.chartLabels,t.chartData,t.chartSeries||[],n,t.chartDatasetOverride):g(t.chartLabels,t.chartData,n,t.chartDatasetOverride)}(e,t);w(t),t.chart=new i.Chart(a,{type:e,data:s,options:r}),t.$emit("chart-create",t.chart),_(o,t)}}function a(e,t){return!!(e&&t&&e.length&&t.length)&&(Array.isArray(e[0])?e.length===t.length&&e.every((function(e,n){return e.length===t[n].length})):t.reduce(s,0)>0&&e.length===t.length)}function s(e,t){return e+t}function l(t,n,i){var r={point:void 0,points:void 0};return function(o){var a=t.chart.getElementAtEvent||t.chart.getPointAtEvent,s=t.chart.getElementsAtEvent||t.chart.getPointsAtEvent;if(s){var l=s.call(t.chart,o),u=a?a.call(t.chart,o)[0]:void 0;!1!==i&&(e.equals(r.points,l)||e.equals(r.point,u))||(r.point=u,r.points=l,t[n](l,o,u))}}}function u(n,r){for(var o=e.copy(r.chartColors||i.getOptions(n).chartColors||t.defaults.global.colors),a=o.length<r.chartData.length;o.length<r.chartData.length;)o.push(r.chartGetColor());return a&&(r.chartColors=o),o.map(c)}function c(e){return"string"==typeof e&&"r"===e[0]?h(function(e){var t=e.match(/^rgba?\(([\d,.]+)\)$/);if(!t)throw new Error("Cannot parse rgb value");return(e=t[1].split(",")).map(Number)}(e)):"string"==typeof e&&"#"===e[0]?h(function(e){var t=parseInt(e,16);return[t>>16&255,t>>8&255,255&t]}(e.substr(1))):"object"==typeof e&&null!==e?e:d()}function d(){return h([f(0,255),f(0,255),f(0,255)])}function h(e){var t=e[3]||1;return{backgroundColor:p(e=e.slice(0,3),.2),pointBackgroundColor:p(e,t),pointHoverBackgroundColor:p(e,.8),borderColor:p(e,t),pointBorderColor:"#fff",pointHoverBorderColor:p(e,t)}}function f(e,t){return Math.floor(Math.random()*(t-e+1))+e}function p(e,t){return n?"rgb("+e.join(",")+")":"rgba("+e.concat(t).join(",")+")"}function m(t,n,i,r,o){return{labels:t,datasets:n.map((function(t,n){var a=e.extend({},r[n],{label:i[n],data:t});return o&&o.length>=n&&e.merge(a,o[n]),a}))}}function g(t,n,i,r){var o={labels:t,datasets:[{data:n,backgroundColor:i.map((function(e){return e.pointBackgroundColor})),hoverBackgroundColor:i.map((function(e){return e.backgroundColor}))}]};return r&&e.merge(o.datasets[0],r),o}function v(t,n){return e.extend({},i.getOptions(t),n.chartOptions)}function _(t,n){t.onclick=n.chartClick?l(n,"chartClick",!1):e.noop,t.onmousemove=n.chartHover?l(n,"chartHover",!0):e.noop}function y(e){return!e||Array.isArray(e)&&!e.length||"object"==typeof e&&!Object.keys(e).length}function b(e,t,n,i){return!i.responsive||0!==n[0].clientHeight||(r((function(){o(e,t,n)}),50,!1),!1)}function w(e){e.chart&&(e.chart.destroy(),e.$emit("chart-destroy",e.chart))}return function(t){return{restrict:"CA",scope:{chartGetColor:"=?",chartType:"=",chartData:"=?",chartLabels:"=?",chartOptions:"=?",chartSeries:"=?",chartColors:"=?",chartClick:"=?",chartHover:"=?",chartDatasetOverride:"=?"},link:function(i,r){function s(n,a){if(!y(n)&&!e.equals(n,a)){var s=t||i.chartType;s&&o(s,i,r)}}n&&window.G_vmlCanvasManager.initElement(r[0]),i.$watch("chartData",(function(e,n){if(e&&e.length&&(!Array.isArray(e[0])||e[0].length)){var s=t||i.chartType;return s?i.chart&&a(e,n)?function(e,t){Array.isArray(t.chartData[0])?t.chart.data.datasets.forEach((function(t,n){t.data=e[n]})):t.chart.data.datasets[0].data=e,t.chart.update(),t.$emit("chart-update",t.chart)}(e,i):void o(s,i,r):void 0}w(i)}),!0),i.$watch("chartSeries",s,!0),i.$watch("chartLabels",s,!0),i.$watch("chartOptions",s,!0),i.$watch("chartColors",s,!0),i.$watch("chartDatasetOverride",s,!0),i.$watch("chartType",(function(t,n){y(t)||e.equals(t,n)||o(t,i,r)}),!1),i.$on("$destroy",(function(){w(i)})),i.$on("$resize",(function(){i.chart&&i.chart.resize()}))}}}}]).directive("chartBase",["ChartJsFactory",function(e){return new e}]).directive("chartLine",["ChartJsFactory",function(e){return new e("line")}]).directive("chartBar",["ChartJsFactory",function(e){return new e("bar")}]).directive("chartHorizontalBar",["ChartJsFactory",function(e){return new e("horizontalBar")}]).directive("chartRadar",["ChartJsFactory",function(e){return new e("radar")}]).directive("chartDoughnut",["ChartJsFactory",function(e){return new e("doughnut")}]).directive("chartPie",["ChartJsFactory",function(e){return new e("pie")}]).directive("chartPolarArea",["ChartJsFactory",function(e){return new e("polarArea")}]).directive("chartBubble",["ChartJsFactory",function(e){return new e("bubble")}]).name})),function(e){var t=function(e){var t=e.module("FBAngular",[]);return t.factory("Fullscreen",["$document","$rootScope",function(t,n){var i=t[0],r=n.$new();t.on("fullscreenchange webkitfullscreenchange mozfullscreenchange MSFullscreenChange",(function(){r.$emit("FBFullscreen.change",o.isEnabled())}));var o={$on:e.bind(r,r.$on),all:function(e){o.enable(i.documentElement,e)},enable:function(e,t){e.requestFullScreen?e.requestFullScreen(t):e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.msRequestFullscreen&&e.msRequestFullscreen()},cancel:function(){i.cancelFullScreen?i.cancelFullScreen():i.mozCancelFullScreen?i.mozCancelFullScreen():i.webkitExitFullscreen?i.webkitExitFullscreen():i.msExitFullscreen&&i.msExitFullscreen()},isEnabled:function(){return!!(i.fullscreenElement||i.mozFullScreenElement||i.webkitFullscreenElement||i.msFullscreenElement)},toggleAll:function(){o.isEnabled()?o.cancel():o.all()},isSupported:function(){var e=i.documentElement;return!!(e.requestFullScreen||e.mozRequestFullScreen||e.webkitRequestFullscreen||e.msRequestFullscreen)}};return o}]),t.directive("fullscreen",["Fullscreen",function(e){return{link:function(t,n,i){if(i.fullscreen){t.$watch(i.fullscreen,(function(t){var i=e.isEnabled();t&&!i?(e.enable(n[0]),n.addClass("isInFullScreen")):!t&&i&&(e.cancel(),n.removeClass("isInFullScreen"))}));var r=e.$on("FBFullscreen.change",(function(e,r){r||t.$evalAsync((function(){t.$eval(i.fullscreen+"= false"),n.removeClass("isInFullScreen")}))}));t.$on("$destroy",(function(){r()}))}else{if(void 0!==i.onlyWatchedProperty)return;n.on("click",(function(t){e.enable(n[0])}))}}}}]),t};"function"==typeof define&&define.amd?define("FBAngular",["angular"],(function(e){return t(e)})):"undefined"!=typeof module&&module.exports?module.exports=t(e.angular).name:t(e.angular)}(window),function(){var e=("undefined"!=typeof module&&null!==module?module.exports:void 0)||(window.Base58={});e.alphabet="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",e.alphabetMap={};for(var t=0;t<e.alphabet.length;t++)e.alphabetMap[e.alphabet.charAt(t)]=t;e.encode=function(n){var i,r,o;if(0===n.length)return"";for(t=void 0,o=void 0,r=[0],t=0;t<n.length;){for(o=0;o<r.length;)r[o]<<=8,o++;for(r[0]+=n[t],i=0,o=0;o<r.length;)r[o]+=i,i=r[o]/58|0,r[o]%=58,++o;for(;i;)r.push(i%58),i=i/58|0;t++}for(t=0;0===n[t]&&t<n.length-1;)r.push(0),t++;return r.reverse().map((function(t){return e.alphabet[t]})).join("")},e.decode=function(n){var i,r,o,a;if(0===n.length)return"undefined"!=typeof Uint8Array&&null!==Uint8Array?new Uint8Array(0):new Buffer(0);for(t=void 0,a=void 0,i=[0],t=0;t<n.length;){if(!((r=n[t])in e.alphabetMap))throw"Base58.decode received unacceptable input. Character '"+r+"' is not in the Base58 alphabet.";for(a=0;a<i.length;)i[a]*=58,a++;for(i[0]+=e.alphabetMap[r],o=0,a=0;a<i.length;)i[a]+=o,o=i[a]>>8,i[a]&=255,++a;for(;o;)i.push(255&o),o>>=8;t++}for(t=0;"1"===n[t]&&t<n.length-1;)i.push(0),t++;return"undefined"!=typeof Uint8Array&&null!==Uint8Array?new Uint8Array(i.reverse()):new Buffer(i.reverse())}}.call(this),function(){"use strict";function e(e,t){t?(d[0]=d[16]=d[1]=d[2]=d[3]=d[4]=d[5]=d[6]=d[7]=d[8]=d[9]=d[10]=d[11]=d[12]=d[13]=d[14]=d[15]=0,this.blocks=d):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=e}var t="object"==typeof window?window:{},n=!t.JS_SHA256_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;n&&(t=global);var i=!t.JS_SHA256_NO_COMMON_JS&&"object"==typeof module&&module.exports,r="function"==typeof define&&define.amd,o="undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),s=[-2147483648,8388608,32768,128],l=[24,16,8,0],u=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],c=["hex","array","digest","arrayBuffer"],d=[],h=function(t,n){return function(i){return new e(n,!0).update(i)[t]()}},f=function(t){var i=h("hex",t);n&&(i=p(i,t)),i.create=function(){return new e(t)},i.update=function(e){return i.create().update(e)};for(var r=0;r<c.length;++r){var o=c[r];i[o]=h(o,t)}return i},p=function(e,t){var n=require("crypto"),i=require("buffer").Buffer,r=t?"sha224":"sha256";return function(t){if("string"==typeof t)return n.createHash(r).update(t,"utf8").digest("hex");if(o&&t instanceof ArrayBuffer)t=new Uint8Array(t);else if(void 0===t.length)return e(t);return n.createHash(r).update(new i(t)).digest("hex")}};e.prototype.update=function(e){if(!this.finalized){var n="string"!=typeof e;n&&o&&e instanceof t.ArrayBuffer&&(e=new Uint8Array(e));for(var i,r,a=0,s=e.length||0,u=this.blocks;s>a;){if(this.hashed&&(this.hashed=!1,u[0]=this.block,u[16]=u[1]=u[2]=u[3]=u[4]=u[5]=u[6]=u[7]=u[8]=u[9]=u[10]=u[11]=u[12]=u[13]=u[14]=u[15]=0),n)for(r=this.start;s>a&&64>r;++a)u[r>>2]|=e[a]<<l[3&r++];else for(r=this.start;s>a&&64>r;++a)128>(i=e.charCodeAt(a))?u[r>>2]|=i<<l[3&r++]:2048>i?(u[r>>2]|=(192|i>>6)<<l[3&r++],u[r>>2]|=(128|63&i)<<l[3&r++]):55296>i||i>=57344?(u[r>>2]|=(224|i>>12)<<l[3&r++],u[r>>2]|=(128|i>>6&63)<<l[3&r++],u[r>>2]|=(128|63&i)<<l[3&r++]):(i=65536+((1023&i)<<10|1023&e.charCodeAt(++a)),u[r>>2]|=(240|i>>18)<<l[3&r++],u[r>>2]|=(128|i>>12&63)<<l[3&r++],u[r>>2]|=(128|i>>6&63)<<l[3&r++],u[r>>2]|=(128|63&i)<<l[3&r++]);this.lastByteIndex=r,this.bytes+=r-this.start,r>=64?(this.block=u[16],this.start=r-64,this.hash(),this.hashed=!0):this.start=r}return this}},e.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>2]|=s[3&t],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[15]=this.bytes<<3,this.hash()}},e.prototype.hash=function(){var e,t,n,i,r,o,a,s,l,c=this.h0,d=this.h1,h=this.h2,f=this.h3,p=this.h4,m=this.h5,g=this.h6,v=this.h7,_=this.blocks;for(e=16;64>e;++e)t=((r=_[e-15])>>>7|r<<25)^(r>>>18|r<<14)^r>>>3,n=((r=_[e-2])>>>17|r<<15)^(r>>>19|r<<13)^r>>>10,_[e]=_[e-16]+t+_[e-7]+n<<0;for(l=d&h,e=0;64>e;e+=4)this.first?(this.is224?(o=300032,v=(r=_[0]-1413257819)-150054599<<0,f=r+24177077<<0):(o=704751109,v=(r=_[0]-210244248)-1521486534<<0,f=r+143694565<<0),this.first=!1):(t=(c>>>2|c<<30)^(c>>>13|c<<19)^(c>>>22|c<<10),i=(o=c&d)^c&h^l,v=f+(r=v+(n=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7))+(p&m^~p&g)+u[e]+_[e])<<0,f=r+(t+i)<<0),t=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),i=(a=f&c)^f&d^o,g=h+(r=g+(n=(v>>>6|v<<26)^(v>>>11|v<<21)^(v>>>25|v<<7))+(v&p^~v&m)+u[e+1]+_[e+1])<<0,t=((h=r+(t+i)<<0)>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10),i=(s=h&f)^h&c^a,m=d+(r=m+(n=(g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7))+(g&v^~g&p)+u[e+2]+_[e+2])<<0,t=((d=r+(t+i)<<0)>>>2|d<<30)^(d>>>13|d<<19)^(d>>>22|d<<10),i=(l=d&h)^d&f^s,p=c+(r=p+(n=(m>>>6|m<<26)^(m>>>11|m<<21)^(m>>>25|m<<7))+(m&g^~m&v)+u[e+3]+_[e+3])<<0,c=r+(t+i)<<0;this.h0=this.h0+c<<0,this.h1=this.h1+d<<0,this.h2=this.h2+h<<0,this.h3=this.h3+f<<0,this.h4=this.h4+p<<0,this.h5=this.h5+m<<0,this.h6=this.h6+g<<0,this.h7=this.h7+v<<0},e.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,i=this.h3,r=this.h4,o=this.h5,s=this.h6,l=this.h7,u=a[e>>28&15]+a[e>>24&15]+a[e>>20&15]+a[e>>16&15]+a[e>>12&15]+a[e>>8&15]+a[e>>4&15]+a[15&e]+a[t>>28&15]+a[t>>24&15]+a[t>>20&15]+a[t>>16&15]+a[t>>12&15]+a[t>>8&15]+a[t>>4&15]+a[15&t]+a[n>>28&15]+a[n>>24&15]+a[n>>20&15]+a[n>>16&15]+a[n>>12&15]+a[n>>8&15]+a[n>>4&15]+a[15&n]+a[i>>28&15]+a[i>>24&15]+a[i>>20&15]+a[i>>16&15]+a[i>>12&15]+a[i>>8&15]+a[i>>4&15]+a[15&i]+a[r>>28&15]+a[r>>24&15]+a[r>>20&15]+a[r>>16&15]+a[r>>12&15]+a[r>>8&15]+a[r>>4&15]+a[15&r]+a[o>>28&15]+a[o>>24&15]+a[o>>20&15]+a[o>>16&15]+a[o>>12&15]+a[o>>8&15]+a[o>>4&15]+a[15&o]+a[s>>28&15]+a[s>>24&15]+a[s>>20&15]+a[s>>16&15]+a[s>>12&15]+a[s>>8&15]+a[s>>4&15]+a[15&s];return this.is224||(u+=a[l>>28&15]+a[l>>24&15]+a[l>>20&15]+a[l>>16&15]+a[l>>12&15]+a[l>>8&15]+a[l>>4&15]+a[15&l]),u},e.prototype.toString=e.prototype.hex,e.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,i=this.h3,r=this.h4,o=this.h5,a=this.h6,s=this.h7,l=[e>>24&255,e>>16&255,e>>8&255,255&e,t>>24&255,t>>16&255,t>>8&255,255&t,n>>24&255,n>>16&255,n>>8&255,255&n,i>>24&255,i>>16&255,i>>8&255,255&i,r>>24&255,r>>16&255,r>>8&255,255&r,o>>24&255,o>>16&255,o>>8&255,255&o,a>>24&255,a>>16&255,a>>8&255,255&a];return this.is224||l.push(s>>24&255,s>>16&255,s>>8&255,255&s),l},e.prototype.array=e.prototype.digest,e.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e};var m=f();m.sha256=m,m.sha224=f(!0),i?module.exports=m:(t.sha256=m.sha256,t.sha224=m.sha224,r&&define((function(){return m})))}(),angular.module("ngCordova",["ngCordova.plugins"]),angular.module("ngCordova.plugins.3dtouch",[]).factory("$cordova3DTouch",["$q",function(e){var t=[],n={},i=function(e){return function(t){for(var n in e)t.type===n&&e[n]()}};return{isAvailable:function(){var t=e.defer();return window.cordova?window.ThreeDeeTouch?window.ThreeDeeTouch.isAvailable((function(e){t.resolve(e)}),(function(e){t.reject(e)})):t.reject("Could not find 3D touch plugin"):t.reject("Not supported in browser"),t.promise},addQuickAction:function(r,o,a,s,l,u){var c=e.defer(),d={type:r,title:o,subtitle:l};return a&&(d.iconType=a),s&&(d.iconTemplate=s),this.isAvailable().then((function(){t.push(d),n[r]=u,window.ThreeDeeTouch.configureQuickActions(t),window.ThreeDeeTouch.onHomeIconPressed=i(n),c.resolve(t)}),(function(e){c.reject(e)})),c.promise},addQuickActionHandler:function(t,r){var o=e.defer();return this.isAvailable().then((function(){n[t]=r,window.ThreeDeeTouch.onHomeIconPressed=i(n),o.resolve(!0)}),(function(e){o.reject(e)})),o.promise},enableLinkPreview:function(){var t=e.defer();return this.isAvailable().then((function(){window.ThreeDeeTouch.enableLinkPreview(),t.resolve(!0)}),(function(e){t.reject(e)})),t.promise},addForceTouchHandler:function(t){var n=e.defer();return this.isAvailable().then((function(){window.ThreeDeeTouch.watchForceTouches(t),n.resolve(!0)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.actionSheet",[]).factory("$cordovaActionSheet",["$q","$window",function(e,t){return{show:function(n){var i=e.defer();return t.plugins.actionsheet.show(n,(function(e){i.resolve(e)})),i.promise},hide:function(){return t.plugins.actionsheet.hide()}}}]),angular.module("ngCordova.plugins.adMob",[]).factory("$cordovaAdMob",["$q","$window",function(e,t){return{createBannerView:function(n){var i=e.defer();return t.plugins.AdMob.createBannerView(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createInterstitialView:function(n){var i=e.defer();return t.plugins.AdMob.createInterstitialView(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},requestAd:function(n){var i=e.defer();return t.plugins.AdMob.requestAd(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showAd:function(n){var i=e.defer();return t.plugins.AdMob.showAd(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},requestInterstitialAd:function(n){var i=e.defer();return t.plugins.AdMob.requestInterstitialAd(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise}}}]),angular.module("ngCordova.plugins.appAvailability",[]).factory("$cordovaAppAvailability",["$q",function(e){return{check:function(t){var n=e.defer();return appAvailability.check(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.appRate",[]).provider("$cordovaAppRate",[function(){this.setPreferences=function(e){e&&angular.isObject(e)&&(AppRate.preferences.useLanguage=e.language||null,AppRate.preferences.displayAppName=e.appName||"",AppRate.preferences.promptAgainForEachNewVersion=e.promptForNewVersion||!0,AppRate.preferences.openStoreInApp=e.openStoreInApp||!1,AppRate.preferences.usesUntilPrompt=e.usesUntilPrompt||3,AppRate.preferences.useCustomRateDialog=e.useCustomRateDialog||!1,AppRate.preferences.storeAppURL.ios=e.iosURL||null,AppRate.preferences.storeAppURL.android=e.androidURL||null,AppRate.preferences.storeAppURL.blackberry=e.blackberryURL||null,AppRate.preferences.storeAppURL.windows8=e.windowsURL||null)},this.setCustomLocale=function(e){var t={title:"Rate %@",message:"If you enjoy using %@, would you mind taking a moment to rate it? It won’t take more than a minute. Thanks for your support!",cancelButtonLabel:"No, Thanks",laterButtonLabel:"Remind Me Later",rateButtonLabel:"Rate It Now"};t=angular.extend(t,e),AppRate.preferences.customLocale=t},this.$get=["$q",function(e){return{promptForRating:function(t){var n=e.defer(),i=AppRate.promptForRating(t);return n.resolve(i),n.promise},navigateToAppStore:function(){var t=e.defer(),n=AppRate.navigateToAppStore();return t.resolve(n),t.promise},onButtonClicked:function(e){AppRate.preferences.callbacks.onButtonClicked=e.bind(this)},onRateDialogShow:function(e){AppRate.preferences.callbacks.onRateDialogShow=e.bind(this)}}}]}]),angular.module("ngCordova.plugins.appVersion",[]).factory("$cordovaAppVersion",["$q",function(e){return{getAppName:function(){var t=e.defer();return cordova.getAppVersion.getAppName((function(e){t.resolve(e)})),t.promise},getPackageName:function(){var t=e.defer();return cordova.getAppVersion.getPackageName((function(e){t.resolve(e)})),t.promise},getVersionNumber:function(){var t=e.defer();return cordova.getAppVersion.getVersionNumber((function(e){t.resolve(e)})),t.promise},getVersionCode:function(){var t=e.defer();return cordova.getAppVersion.getVersionCode((function(e){t.resolve(e)})),t.promise}}}]),angular.module("ngCordova.plugins.backgroundGeolocation",[]).factory("$cordovaBackgroundGeolocation",["$q","$window",function(e,t){return{init:function(){t.navigator.geolocation.getCurrentPosition((function(e){return e}))},configure:function(n){this.init();var i=e.defer();return t.plugins.backgroundGeoLocation.configure((function(e){i.notify(e),t.plugins.backgroundGeoLocation.finish()}),(function(e){i.reject(e)}),n),this.start(),i.promise},start:function(){var n=e.defer();return t.plugins.backgroundGeoLocation.start((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},stop:function(){var n=e.defer();return t.plugins.backgroundGeoLocation.stop((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.badge",[]).factory("$cordovaBadge",["$q",function(e){return{hasPermission:function(){var t=e.defer();return cordova.plugins.notification.badge.hasPermission((function(e){e?t.resolve(!0):t.reject("You do not have permission")})),t.promise},promptForPermission:function(){return cordova.plugins.notification.badge.promptForPermission()},set:function(t,n,i){var r=e.defer();return cordova.plugins.notification.badge.hasPermission((function(e){e?r.resolve(cordova.plugins.notification.badge.set(t,n,i)):r.reject("You do not have permission to set Badge")})),r.promise},get:function(){var t=e.defer();return cordova.plugins.notification.badge.hasPermission((function(e){e?cordova.plugins.notification.badge.get((function(e){t.resolve(e)})):t.reject("You do not have permission to get Badge")})),t.promise},clear:function(t,n){var i=e.defer();return cordova.plugins.notification.badge.hasPermission((function(e){e?i.resolve(cordova.plugins.notification.badge.clear(t,n)):i.reject("You do not have permission to clear Badge")})),i.promise},increase:function(t,n,i){var r=e.defer();return this.hasPermission().then((function(){r.resolve(cordova.plugins.notification.badge.increase(t,n,i))}),(function(){r.reject("You do not have permission to increase Badge")})),r.promise},decrease:function(t,n,i){var r=e.defer();return this.hasPermission().then((function(){r.resolve(cordova.plugins.notification.badge.decrease(t,n,i))}),(function(){r.reject("You do not have permission to decrease Badge")})),r.promise},configure:function(e){return cordova.plugins.notification.badge.configure(e)}}}]),angular.module("ngCordova.plugins.barcodeScanner",[]).factory("$cordovaBarcodeScanner",["$q",function(e){return{scan:function(t){var n=e.defer();return cordova.plugins.barcodeScanner.scan((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},encode:function(t,n){var i=e.defer();return t=t||"TEXT_TYPE",cordova.plugins.barcodeScanner.encode(t,n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise}}}]),angular.module("ngCordova.plugins.batteryStatus",[]).factory("$cordovaBatteryStatus",["$rootScope","$window","$timeout",function(e,t,n){var i=function(t){n((function(){e.$broadcast("$cordovaBatteryStatus:status",t)}))},r=function(t){n((function(){e.$broadcast("$cordovaBatteryStatus:critical",t)}))},o=function(t){n((function(){e.$broadcast("$cordovaBatteryStatus:low",t)}))};return document.addEventListener("deviceready",(function(){navigator.battery&&(t.addEventListener("batterystatus",i,!1),t.addEventListener("batterycritical",r,!1),t.addEventListener("batterylow",o,!1))}),!1),!0}]).run(["$injector",function(e){e.get("$cordovaBatteryStatus")}]),angular.module("ngCordova.plugins.beacon",[]).factory("$cordovaBeacon",["$window","$rootScope","$timeout","$q",function(e,t,n,i){var r=null,o=null,a=null,s=null,l=null,u=null,c=null,d=null;return document.addEventListener("deviceready",(function(){if(e.cordova&&e.cordova.plugins&&e.cordova.plugins.locationManager){var i=new e.cordova.plugins.locationManager.Delegate;i.didDetermineStateForRegion=function(e){n((function(){t.$broadcast("$cordovaBeacon:didDetermineStateForRegion",e)})),r&&r(e)},i.didStartMonitoringForRegion=function(e){n((function(){t.$broadcast("$cordovaBeacon:didStartMonitoringForRegion",e)})),o&&o(e)},i.didExitRegion=function(e){n((function(){t.$broadcast("$cordovaBeacon:didExitRegion",e)})),a&&a(e)},i.didEnterRegion=function(e){n((function(){t.$broadcast("$cordovaBeacon:didEnterRegion",e)})),s&&s(e)},i.didRangeBeaconsInRegion=function(e){n((function(){t.$broadcast("$cordovaBeacon:didRangeBeaconsInRegion",e)})),l&&l(e)},i.peripheralManagerDidStartAdvertising=function(e){n((function(){t.$broadcast("$cordovaBeacon:peripheralManagerDidStartAdvertising",e)})),u&&u(e)},i.peripheralManagerDidUpdateState=function(e){n((function(){t.$broadcast("$cordovaBeacon:peripheralManagerDidUpdateState",e)})),c&&c(e)},i.didChangeAuthorizationStatus=function(e){n((function(){t.$broadcast("$cordovaBeacon:didChangeAuthorizationStatus",e)})),d&&d(e)},e.cordova.plugins.locationManager.setDelegate(i)}}),!1),{setCallbackDidDetermineStateForRegion:function(e){r=e},setCallbackDidStartMonitoringForRegion:function(e){o=e},setCallbackDidExitRegion:function(e){a=e},setCallbackDidEnterRegion:function(e){s=e},setCallbackDidRangeBeaconsInRegion:function(e){l=e},setCallbackPeripheralManagerDidStartAdvertising:function(e){u=e},setCallbackPeripheralManagerDidUpdateState:function(e){c=e},setCallbackDidChangeAuthorizationStatus:function(e){d=e},createBeaconRegion:function(t,n,i,r,o){return i=i||void 0,r=r||void 0,new e.cordova.plugins.locationManager.BeaconRegion(t,n,i,r,o)},isBluetoothEnabled:function(){return i.when(e.cordova.plugins.locationManager.isBluetoothEnabled())},enableBluetooth:function(){return i.when(e.cordova.plugins.locationManager.enableBluetooth())},disableBluetooth:function(){return i.when(e.cordova.plugins.locationManager.disableBluetooth())},startMonitoringForRegion:function(t){return i.when(e.cordova.plugins.locationManager.startMonitoringForRegion(t))},stopMonitoringForRegion:function(t){return i.when(e.cordova.plugins.locationManager.stopMonitoringForRegion(t))},requestStateForRegion:function(t){return i.when(e.cordova.plugins.locationManager.requestStateForRegion(t))},startRangingBeaconsInRegion:function(t){return i.when(e.cordova.plugins.locationManager.startRangingBeaconsInRegion(t))},stopRangingBeaconsInRegion:function(t){return i.when(e.cordova.plugins.locationManager.stopRangingBeaconsInRegion(t))},getAuthorizationStatus:function(){return i.when(e.cordova.plugins.locationManager.getAuthorizationStatus())},requestWhenInUseAuthorization:function(){return i.when(e.cordova.plugins.locationManager.requestWhenInUseAuthorization())},requestAlwaysAuthorization:function(){return i.when(e.cordova.plugins.locationManager.requestAlwaysAuthorization())},getMonitoredRegions:function(){return i.when(e.cordova.plugins.locationManager.getMonitoredRegions())},getRangedRegions:function(){return i.when(e.cordova.plugins.locationManager.getRangedRegions())},isRangingAvailable:function(){return i.when(e.cordova.plugins.locationManager.isRangingAvailable())},isMonitoringAvailableForClass:function(t){return i.when(e.cordova.plugins.locationManager.isMonitoringAvailableForClass(t))},startAdvertising:function(t,n){return i.when(e.cordova.plugins.locationManager.startAdvertising(t,n))},stopAdvertising:function(){return i.when(e.cordova.plugins.locationManager.stopAdvertising())},isAdvertisingAvailable:function(){return i.when(e.cordova.plugins.locationManager.isAdvertisingAvailable())},isAdvertising:function(){return i.when(e.cordova.plugins.locationManager.isAdvertising())},disableDebugLogs:function(){return i.when(e.cordova.plugins.locationManager.disableDebugLogs())},enableDebugNotifications:function(){return i.when(e.cordova.plugins.locationManager.enableDebugNotifications())},disableDebugNotifications:function(){return i.when(e.cordova.plugins.locationManager.disableDebugNotifications())},enableDebugLogs:function(){return i.when(e.cordova.plugins.locationManager.enableDebugLogs())},appendToDeviceLog:function(t){return i.when(e.cordova.plugins.locationManager.appendToDeviceLog(t))}}}]),angular.module("ngCordova.plugins.ble",[]).factory("$cordovaBLE",["$q","$timeout","$log",function(e,t,n){return{scan:function(n,i){var r=e.defer();return ble.startScan(n,(function(e){r.notify(e)}),(function(e){r.reject(e)})),t((function(){ble.stopScan((function(){r.resolve()}),(function(e){r.reject(e)}))}),1e3*i),r.promise},startScan:function(e,t,n){return ble.startScan(e,t,n)},stopScan:function(){var t=e.defer();return ble.stopScan((function(){t.resolve()}),(function(e){t.reject(e)})),t.promise},connect:function(t){var n=e.defer();return ble.connect(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},disconnect:function(t){var n=e.defer();return ble.disconnect(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},read:function(t,n,i){var r=e.defer();return ble.read(t,n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},write:function(t,n,i,r){var o=e.defer();return ble.write(t,n,i,r,(function(e){o.resolve(e)}),(function(e){o.reject(e)})),o.promise},writeWithoutResponse:function(t,n,i,r){var o=e.defer();return ble.writeWithoutResponse(t,n,i,r,(function(e){o.resolve(e)}),(function(e){o.reject(e)})),o.promise},writeCommand:function(e,t,i,r){return n.warning("writeCommand is deprecated, use writeWithoutResponse"),this.writeWithoutResponse(e,t,i,r)},startNotification:function(e,t,n,i,r){return ble.startNotification(e,t,n,i,r)},stopNotification:function(t,n,i){var r=e.defer();return ble.stopNotification(t,n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},isConnected:function(t){var n=e.defer();return ble.isConnected(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},enable:function(){var t=e.defer();return ble.enable((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},isEnabled:function(){var t=e.defer();return ble.isEnabled((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.bluetoothSerial",[]).factory("$cordovaBluetoothSerial",["$q","$window",function(e,t){return{connect:function(n){var i=e.defer(),r=e.defer(),o=!1;return t.bluetoothSerial.connect(n,(function(){o=!0,i.resolve(r)}),(function(e){!1===o&&r.reject(e),i.reject(e)})),i.promise},connectInsecure:function(n){var i=e.defer();return t.bluetoothSerial.connectInsecure(n,(function(){i.resolve()}),(function(e){i.reject(e)})),i.promise},disconnect:function(){var n=e.defer();return t.bluetoothSerial.disconnect((function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},list:function(){var n=e.defer();return t.bluetoothSerial.list((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},discoverUnpaired:function(){var n=e.defer();return t.bluetoothSerial.discoverUnpaired((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},setDeviceDiscoveredListener:function(){var n=e.defer();return t.bluetoothSerial.setDeviceDiscoveredListener((function(e){n.notify(e)})),n.promise},clearDeviceDiscoveredListener:function(){t.bluetoothSerial.clearDeviceDiscoveredListener()},showBluetoothSettings:function(){var n=e.defer();return t.bluetoothSerial.showBluetoothSettings((function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},isEnabled:function(){var n=e.defer();return t.bluetoothSerial.isEnabled((function(){n.resolve()}),(function(){n.reject()})),n.promise},enable:function(){var n=e.defer();return t.bluetoothSerial.enable((function(){n.resolve()}),(function(){n.reject()})),n.promise},isConnected:function(){var n=e.defer();return t.bluetoothSerial.isConnected((function(){n.resolve()}),(function(){n.reject()})),n.promise},available:function(){var n=e.defer();return t.bluetoothSerial.available((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},read:function(){var n=e.defer();return t.bluetoothSerial.read((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},readUntil:function(n){var i=e.defer();return t.bluetoothSerial.readUntil(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},write:function(n){var i=e.defer();return t.bluetoothSerial.write(n,(function(){i.resolve()}),(function(e){i.reject(e)})),i.promise},subscribe:function(n){var i=e.defer();return t.bluetoothSerial.subscribe(n,(function(e){i.notify(e)}),(function(e){i.reject(e)})),i.promise},subscribeRawData:function(){var n=e.defer();return t.bluetoothSerial.subscribeRawData((function(e){n.notify(e)}),(function(e){n.reject(e)})),n.promise},unsubscribe:function(){var n=e.defer();return t.bluetoothSerial.unsubscribe((function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},unsubscribeRawData:function(){var n=e.defer();return t.bluetoothSerial.unsubscribeRawData((function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},clear:function(){var n=e.defer();return t.bluetoothSerial.clear((function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},readRSSI:function(){var n=e.defer();return t.bluetoothSerial.readRSSI((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.brightness",[]).factory("$cordovaBrightness",["$q","$window",function(e,t){return{get:function(){var n=e.defer();return t.cordova?t.cordova.plugins.brightness.getBrightness((function(e){n.resolve(e)}),(function(e){n.reject(e)})):n.reject("Not supported without cordova.js"),n.promise},set:function(n){var i=e.defer();return t.cordova?t.cordova.plugins.brightness.setBrightness(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})):i.reject("Not supported without cordova.js"),i.promise},setKeepScreenOn:function(n){var i=e.defer();return t.cordova?t.cordova.plugins.brightness.setKeepScreenOn(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})):i.reject("Not supported without cordova.js"),i.promise}}}]),angular.module("ngCordova.plugins.calendar",[]).factory("$cordovaCalendar",["$q","$window",function(e,t){return{createCalendar:function(n){var i=e.defer(),r=t.plugins.calendar.getCreateCalendarOptions();return"string"==typeof n?r.calendarName=n:r=angular.extend(r,n),t.plugins.calendar.createCalendar(r,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},deleteCalendar:function(n){var i=e.defer();return t.plugins.calendar.deleteCalendar(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},createEvent:function(n){var i=e.defer(),r={title:null,location:null,notes:null,startDate:null,endDate:null};return r=angular.extend(r,n),t.plugins.calendar.createEvent(r.title,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},createEventWithOptions:function(n){var i=e.defer(),r=[],o=window.plugins.calendar.getCalendarOptions(),a={title:null,location:null,notes:null,startDate:null,endDate:null};for(var s in r=Object.keys(a),n)-1===r.indexOf(s)?o[s]=n[s]:a[s]=n[s];return t.plugins.calendar.createEventWithOptions(a.title,a.location,a.notes,new Date(a.startDate),new Date(a.endDate),o,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},createEventInteractively:function(n){var i=e.defer(),r={title:null,location:null,notes:null,startDate:null,endDate:null};return r=angular.extend(r,n),t.plugins.calendar.createEventInteractively(r.title,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},createEventInNamedCalendar:function(n){var i=e.defer(),r={title:null,location:null,notes:null,startDate:null,endDate:null,calendarName:null};return r=angular.extend(r,n),t.plugins.calendar.createEventInNamedCalendar(r.title,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),r.calendarName,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},findEvent:function(n){var i=e.defer(),r={title:null,location:null,notes:null,startDate:null,endDate:null};return r=angular.extend(r,n),t.plugins.calendar.findEvent(r.title,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},listEventsInRange:function(n,i){var r=e.defer();return t.plugins.calendar.listEventsInRange(n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},listCalendars:function(){var n=e.defer();return t.plugins.calendar.listCalendars((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},findAllEventsInNamedCalendar:function(n){var i=e.defer();return t.plugins.calendar.findAllEventsInNamedCalendar(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},modifyEvent:function(n){var i=e.defer(),r={title:null,location:null,notes:null,startDate:null,endDate:null,newTitle:null,newLocation:null,newNotes:null,newStartDate:null,newEndDate:null};return r=angular.extend(r,n),t.plugins.calendar.modifyEvent(r.title,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),r.newTitle,r.newLocation,r.newNotes,new Date(r.newStartDate),new Date(r.newEndDate),(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},deleteEvent:function(n){var i=e.defer(),r={newTitle:null,location:null,notes:null,startDate:null,endDate:null};return r=angular.extend(r,n),t.plugins.calendar.deleteEvent(r.newTitle,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise}}}]),angular.module("ngCordova.plugins.camera",[]).factory("$cordovaCamera",["$q",function(e){return{getPicture:function(t){var n=e.defer();return navigator.camera?(navigator.camera.getPicture((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise):(n.resolve(null),n.promise)},cleanup:function(){var t=e.defer();return navigator.camera.cleanup((function(){t.resolve()}),(function(e){t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.capture",[]).factory("$cordovaCapture",["$q",function(e){return{captureAudio:function(t){var n=e.defer();return navigator.device.capture?(navigator.device.capture.captureAudio((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise):(n.resolve(null),n.promise)},captureImage:function(t){var n=e.defer();return navigator.device.capture?(navigator.device.capture.captureImage((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise):(n.resolve(null),n.promise)},captureVideo:function(t){var n=e.defer();return navigator.device.capture?(navigator.device.capture.captureVideo((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise):(n.resolve(null),n.promise)}}}]),angular.module("ngCordova.plugins.cardIO",[]).provider("$cordovaNgCardIO",[function(){var e=["card_type","redacted_card_number","card_number","expiry_month","expiry_year","short_expiry_year","cvv","zip"],t={expiry:!0,cvv:!0,zip:!1,suppressManual:!1,suppressConfirm:!1,hideLogo:!0};this.setCardIOResponseFields=function(t){t&&angular.isArray(t)&&(e=t)},this.setScanerConfig=function(e){e&&angular.isObject(e)&&(t.expiry=e.expiry||!0,t.cvv=e.cvv||!0,t.zip=e.zip||!1,t.suppressManual=e.suppressManual||!1,t.suppressConfirm=e.suppressConfirm||!1,t.hideLogo=e.hideLogo||!0)},this.$get=["$q",function(n){return{scanCard:function(){var i=n.defer();return CardIO.scan(t,(function(t){if(null===t)i.reject(null);else{for(var n={},r=0,o=e.length;o>r;r++){var a=e[r];n[a]="short_expiry_year"===a?String(t.expiry_year).substr(2,2)||"":t[a]||""}i.resolve(n)}}),(function(){i.reject(null)})),i.promise}}}]}]),angular.module("ngCordova.plugins.clipboard",[]).factory("$cordovaClipboard",["$q","$window",function(e,t){return{copy:function(n){var i=e.defer();return t.cordova.plugins.clipboard.copy(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},paste:function(){var n=e.defer();return t.cordova.plugins.clipboard.paste((function(e){n.resolve(e)}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.contacts",[]).factory("$cordovaContacts",["$q",function(e){return{save:function(t){var n=e.defer();return navigator.contacts.create(t).save((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},remove:function(t){var n=e.defer();return navigator.contacts.create(t).remove((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},clone:function(e){return navigator.contacts.create(e).clone(e)},find:function(t){var n=e.defer(),i=t.fields||["id","displayName"];return delete t.fields,0===Object.keys(t).length?navigator.contacts.find(i,(function(e){n.resolve(e)}),(function(e){n.reject(e)})):navigator.contacts.find(i,(function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},pickContact:function(){var t=e.defer();return navigator.contacts.pickContact((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.datePicker",[]).factory("$cordovaDatePicker",["$window","$q",function(e,t){return{show:function(n){var i=t.defer();return n=n||{date:new Date,mode:"date"},e.datePicker.show(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise}}}]),angular.module("ngCordova.plugins.device",[]).factory("$cordovaDevice",[function(){return{getDevice:function(){return device},getCordova:function(){return device.cordova},getModel:function(){return device.model},getName:function(){return device.name},getPlatform:function(){return device.platform},getUUID:function(){return device.uuid},getVersion:function(){return device.version},getManufacturer:function(){return device.manufacturer}}}]),angular.module("ngCordova.plugins.deviceMotion",[]).factory("$cordovaDeviceMotion",["$q",function(e){return{getCurrentAcceleration:function(){var t=e.defer();return angular.isUndefined(navigator.accelerometer)||!angular.isFunction(navigator.accelerometer.getCurrentAcceleration)?(t.reject("Device do not support watchAcceleration"),t.promise):(navigator.accelerometer.getCurrentAcceleration((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise)},watchAcceleration:function(t){var n=e.defer();if(angular.isUndefined(navigator.accelerometer)||!angular.isFunction(navigator.accelerometer.watchAcceleration))return n.reject("Device do not support watchAcceleration"),n.promise;var i=navigator.accelerometer.watchAcceleration((function(e){n.notify(e)}),(function(e){n.reject(e)}),t);return n.promise.cancel=function(){navigator.accelerometer.clearWatch(i)},n.promise.clearWatch=function(e){navigator.accelerometer.clearWatch(e||i)},n.promise.watchID=i,n.promise},clearWatch:function(e){return navigator.accelerometer.clearWatch(e)}}}]),angular.module("ngCordova.plugins.deviceOrientation",[]).factory("$cordovaDeviceOrientation",["$q",function(e){var t={frequency:3e3};return{getCurrentHeading:function(){var t=e.defer();return navigator.compass?(navigator.compass.getCurrentHeading((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise):(t.reject("No compass on Device"),t.promise)},watchHeading:function(n){var i=e.defer();if(!navigator.compass)return i.reject("No compass on Device"),i.promise;var r=angular.extend(t,n),o=navigator.compass.watchHeading((function(e){i.notify(e)}),(function(e){i.reject(e)}),r);return i.promise.cancel=function(){navigator.compass.clearWatch(o)},i.promise.clearWatch=function(e){navigator.compass.clearWatch(e||o)},i.promise.watchID=o,i.promise},clearWatch:function(e){return navigator.compass.clearWatch(e)}}}]),angular.module("ngCordova.plugins.dialogs",[]).factory("$cordovaDialogs",["$q","$window",function(e,t){return{alert:function(n,i,r){var o=e.defer();return t.navigator.notification?navigator.notification.alert(n,(function(){o.resolve()}),i,r):(t.alert(n),o.resolve()),o.promise},confirm:function(n,i,r){var o=e.defer();return t.navigator.notification?navigator.notification.confirm(n,(function(e){o.resolve(e)}),i,r):t.confirm(n)?o.resolve(1):o.resolve(2),o.promise},prompt:function(n,i,r,o){var a=e.defer();if(t.navigator.notification)navigator.notification.prompt(n,(function(e){a.resolve(e)}),i,r,o);else{var s=t.prompt(n,o);null!==s?a.resolve({input1:s,buttonIndex:1}):a.resolve({input1:s,buttonIndex:2})}return a.promise},beep:function(e){return navigator.notification.beep(e)},activityStart:function(t,n){var i=e.defer();return"android"===cordova.platformId?(navigator.notification.activityStart(n,t),i.resolve()):i.reject(t,n),i.promise},activityStop:function(){var t=e.defer();return"android"===cordova.platformId?(navigator.notification.activityStop(),t.resolve()):t.reject(),t.promise},progressStart:function(t,n){var i=e.defer();return"android"===cordova.platformId?(navigator.notification.progressStart(n,t),i.resolve()):i.reject(t,n),i.promise},progressStop:function(){var t=e.defer();return"android"===cordova.platformId?(navigator.notification.progressStop(),t.resolve()):t.reject(),t.promise},progressValue:function(t){var n=e.defer();return"android"===cordova.platformId?(navigator.notification.progressValue(t),n.resolve()):n.reject(t),n.promise}}}]),angular.module("ngCordova.plugins.emailComposer",[]).factory("$cordovaEmailComposer",["$q",function(e){return{isAvailable:function(){var t=e.defer();return cordova.plugins.email.isAvailable((function(e){e?t.resolve():t.reject()})),t.promise},open:function(t){var n=e.defer();return cordova.plugins.email.open(t,(function(){n.reject()})),n.promise},addAlias:function(e,t){cordova.plugins.email.addAlias(e,t)}}}]),angular.module("ngCordova.plugins.facebook",[]).provider("$cordovaFacebook",[function(){this.browserInit=function(e,t){this.appID=e,this.appVersion=t||"v2.0",facebookConnectPlugin.browserInit(this.appID,this.appVersion)},this.$get=["$q",function(e){return{login:function(t){var n=e.defer();return facebookConnectPlugin.login(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},showDialog:function(t){var n=e.defer();return facebookConnectPlugin.showDialog(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},api:function(t,n){var i=e.defer();return facebookConnectPlugin.api(t,n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},getAccessToken:function(){var t=e.defer();return facebookConnectPlugin.getAccessToken((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},getLoginStatus:function(){var t=e.defer();return facebookConnectPlugin.getLoginStatus((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},logout:function(){var t=e.defer();return facebookConnectPlugin.logout((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise}}}]}]),angular.module("ngCordova.plugins.facebookAds",[]).factory("$cordovaFacebookAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.FacebookAds.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.FacebookAds.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.FacebookAds.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.FacebookAds.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.FacebookAds.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.FacebookAds.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.FacebookAds.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.FacebookAds.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.file",[]).constant("$cordovaFileError",{1:"NOT_FOUND_ERR",2:"SECURITY_ERR",3:"ABORT_ERR",4:"NOT_READABLE_ERR",5:"ENCODING_ERR",6:"NO_MODIFICATION_ALLOWED_ERR",7:"INVALID_STATE_ERR",8:"SYNTAX_ERR",9:"INVALID_MODIFICATION_ERR",10:"QUOTA_EXCEEDED_ERR",11:"TYPE_MISMATCH_ERR",12:"PATH_EXISTS_ERR"}).provider("$cordovaFile",[function(){this.$get=["$q","$window","$cordovaFileError",function(e,t,n){return{getFreeDiskSpace:function(){var t=e.defer();return cordova.exec((function(e){t.resolve(e)}),(function(e){t.reject(e)}),"File","getFreeDiskSpace",[]),t.promise},checkDir:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("directory cannot start with /");try{var a=i+r;t.resolveLocalFileSystemURL(a,(function(e){!0===e.isDirectory?o.resolve(e):o.reject({code:13,message:"input is not a directory"})}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},checkFile:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("directory cannot start with /");try{var a=i+r;t.resolveLocalFileSystemURL(a,(function(e){!0===e.isFile?o.resolve(e):o.reject({code:13,message:"input is not a file"})}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},createDir:function(i,r,o){var a=e.defer();/^\//.test(r)&&a.reject("directory cannot start with /");var s={create:!0,exclusive:o=!o};try{t.resolveLocalFileSystemURL(i,(function(e){e.getDirectory(r,s,(function(e){a.resolve(e)}),(function(e){e.message=n[e.code],a.reject(e)}))}),(function(e){e.message=n[e.code],a.reject(e)}))}catch(e){e.message=n[e.code],a.reject(e)}return a.promise},createFile:function(i,r,o){var a=e.defer();/^\//.test(r)&&a.reject("file-name cannot start with /");var s={create:!0,exclusive:o=!o};try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,s,(function(e){a.resolve(e)}),(function(e){e.message=n[e.code],a.reject(e)}))}),(function(e){e.message=n[e.code],a.reject(e)}))}catch(e){e.message=n[e.code],a.reject(e)}return a.promise},removeDir:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getDirectory(r,{create:!1},(function(e){e.remove((function(){o.resolve({success:!0,fileRemoved:e})}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},removeFile:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.remove((function(){o.resolve({success:!0,fileRemoved:e})}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},removeRecursively:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getDirectory(r,{create:!1},(function(e){e.removeRecursively((function(){o.resolve({success:!0,fileRemoved:e})}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},writeFile:function(i,r,o,a){var s=e.defer();/^\//.test(r)&&s.reject("file-name cannot start with /");var l={create:!0,exclusive:a=!a};try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,l,(function(e){e.createWriter((function(e){!0===l.append&&e.seek(e.length),l.truncate&&e.truncate(l.truncate),e.onwriteend=function(e){this.error?s.reject(this.error):s.resolve(e)},e.write(o),s.promise.abort=function(){e.abort()}}))}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}catch(e){e.message=n[e.code],s.reject(e)}return s.promise},
+writeExistingFile:function(i,r,o){var a=e.defer();/^\//.test(r)&&a.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.createWriter((function(e){e.seek(e.length),e.onwriteend=function(e){this.error?a.reject(this.error):a.resolve(e)},e.write(o),a.promise.abort=function(){e.abort()}}))}),(function(e){e.message=n[e.code],a.reject(e)}))}),(function(e){e.message=n[e.code],a.reject(e)}))}catch(e){e.message=n[e.code],a.reject(e)}return a.promise},readAsText:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.file((function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsText(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},readAsDataURL:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.file((function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsDataURL(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},readAsBinaryString:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.file((function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsBinaryString(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},readAsArrayBuffer:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.file((function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsArrayBuffer(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},moveFile:function(n,i,r,o){var a=e.defer();o=o||i,(/^\//.test(i)||/^\//.test(o))&&a.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(n,(function(e){e.getFile(i,{create:!1},(function(e){t.resolveLocalFileSystemURL(r,(function(t){e.moveTo(t,o,(function(e){a.resolve(e)}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}catch(e){a.reject(e)}return a.promise},moveDir:function(n,i,r,o){var a=e.defer();o=o||i,(/^\//.test(i)||/^\//.test(o))&&a.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(n,(function(e){e.getDirectory(i,{create:!1},(function(e){t.resolveLocalFileSystemURL(r,(function(t){e.moveTo(t,o,(function(e){a.resolve(e)}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}catch(e){a.reject(e)}return a.promise},copyDir:function(i,r,o,a){var s=e.defer();a=a||r,(/^\//.test(r)||/^\//.test(a))&&s.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getDirectory(r,{create:!1,exclusive:!1},(function(e){t.resolveLocalFileSystemURL(o,(function(t){e.copyTo(t,a,(function(e){s.resolve(e)}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}catch(e){e.message=n[e.code],s.reject(e)}return s.promise},copyFile:function(i,r,o,a){var s=e.defer();a=a||r,/^\//.test(r)&&s.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1,exclusive:!1},(function(e){t.resolveLocalFileSystemURL(o,(function(t){e.copyTo(t,a,(function(e){s.resolve(e)}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}catch(e){e.message=n[e.code],s.reject(e)}return s.promise},readFileMetadata:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("directory cannot start with /");try{var a=i+r;t.resolveLocalFileSystemURL(a,(function(e){e.file((function(e){o.resolve(e)}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise}}}]}]),angular.module("ngCordova.plugins.fileOpener2",[]).factory("$cordovaFileOpener2",["$q",function(e){return{open:function(t,n){var i=e.defer();return cordova.plugins.fileOpener2.open(t,n,{error:function(e){i.reject(e)},success:function(){i.resolve()}}),i.promise},uninstall:function(t){var n=e.defer();return cordova.plugins.fileOpener2.uninstall(t,{error:function(e){n.reject(e)},success:function(){n.resolve()}}),n.promise},appIsInstalled:function(t){var n=e.defer();return cordova.plugins.fileOpener2.appIsInstalled(t,{success:function(e){n.resolve(e)}}),n.promise}}}]),angular.module("ngCordova.plugins.fileTransfer",[]).factory("$cordovaFileTransfer",["$q","$timeout",function(e,t){return{download:function(n,i,r,o){var a=e.defer(),s=new FileTransfer,l=r&&!1===r.encodeURI?n:encodeURI(n);return r&&void 0!==r.timeout&&null!==r.timeout&&(t((function(){s.abort()}),r.timeout),r.timeout=null),s.onprogress=function(e){a.notify(e)},a.promise.abort=function(){s.abort()},s.download(l,i,a.resolve,a.reject,o,r),a.promise},upload:function(n,i,r,o){var a=e.defer(),s=new FileTransfer,l=r&&!1===r.encodeURI?n:encodeURI(n);return r&&void 0!==r.timeout&&null!==r.timeout&&(t((function(){s.abort()}),r.timeout),r.timeout=null),s.onprogress=function(e){a.notify(e)},a.promise.abort=function(){s.abort()},s.upload(i,l,a.resolve,a.reject,r,o),a.promise}}}]),angular.module("ngCordova.plugins.flashlight",[]).factory("$cordovaFlashlight",["$q","$window",function(e,t){return{available:function(){var n=e.defer();return t.plugins.flashlight.available((function(e){n.resolve(e)})),n.promise},switchOn:function(){var n=e.defer();return t.plugins.flashlight.switchOn((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},switchOff:function(){var n=e.defer();return t.plugins.flashlight.switchOff((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},toggle:function(){var n=e.defer();return t.plugins.flashlight.toggle((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.flurryAds",[]).factory("$cordovaFlurryAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.FlurryAds.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.FlurryAds.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.FlurryAds.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.FlurryAds.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.FlurryAds.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.FlurryAds.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.FlurryAds.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.FlurryAds.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.ga",[]).factory("$cordovaGA",["$q","$window",function(e,t){return{init:function(n,i){var r=e.defer();return i=i>=0?i:10,t.plugins.gaPlugin.init((function(e){r.resolve(e)}),(function(e){r.reject(e)}),n,i),r.promise},trackEvent:function(n,i,r,o,a,s){var l=e.defer();return t.plugins.gaPlugin.trackEvent((function(e){l.resolve(e)}),(function(e){l.reject(e)}),r,o,a,s),l.promise},trackPage:function(n,i,r){var o=e.defer();return t.plugins.gaPlugin.trackPage((function(e){o.resolve(e)}),(function(e){o.reject(e)}),r),o.promise},setVariable:function(n,i,r,o){var a=e.defer();return t.plugins.gaPlugin.setVariable((function(e){a.resolve(e)}),(function(e){a.reject(e)}),r,o),a.promise},exit:function(){var n=e.defer();return t.plugins.gaPlugin.exit((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.geolocation",[]).factory("$cordovaGeolocation",["$q",function(e){return{getCurrentPosition:function(t){var n=e.defer();return navigator.geolocation.getCurrentPosition((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},watchPosition:function(t){var n=e.defer(),i=navigator.geolocation.watchPosition((function(e){n.notify(e)}),(function(e){n.reject(e)}),t);return n.promise.cancel=function(){navigator.geolocation.clearWatch(i)},n.promise.clearWatch=function(e){navigator.geolocation.clearWatch(e||i)},n.promise.watchID=i,n.promise},clearWatch:function(e){return navigator.geolocation.clearWatch(e)}}}]),angular.module("ngCordova.plugins.globalization",[]).factory("$cordovaGlobalization",["$q",function(e){return{getPreferredLanguage:function(){var t=e.defer();return navigator.globalization.getPreferredLanguage((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},getLocaleName:function(){var t=e.defer();return navigator.globalization.getLocaleName((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},getFirstDayOfWeek:function(){var t=e.defer();return navigator.globalization.getFirstDayOfWeek((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},dateToString:function(t,n){var i=e.defer();return navigator.globalization.dateToString(t,(function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise},stringToDate:function(t,n){var i=e.defer();return navigator.globalization.stringToDate(t,(function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise},getDatePattern:function(t){var n=e.defer();return navigator.globalization.getDatePattern((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},getDateNames:function(t){var n=e.defer();return navigator.globalization.getDateNames((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},isDayLightSavingsTime:function(t){var n=e.defer();return navigator.globalization.isDayLightSavingsTime(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},numberToString:function(t,n){var i=e.defer();return navigator.globalization.numberToString(t,(function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise},stringToNumber:function(t,n){var i=e.defer();return navigator.globalization.stringToNumber(t,(function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise},getNumberPattern:function(t){var n=e.defer();return navigator.globalization.getNumberPattern((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},getCurrencyPattern:function(t){var n=e.defer();return navigator.globalization.getCurrencyPattern(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.googleAds",[]).factory("$cordovaGoogleAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.AdMob.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.AdMob.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.AdMob.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.AdMob.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.AdMob.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.AdMob.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.AdMob.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.AdMob.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.googleAnalytics",[]).factory("$cordovaGoogleAnalytics",["$q","$window",function(e,t){return{startTrackerWithId:function(n){var i=e.defer();return t.analytics.startTrackerWithId(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},setUserId:function(n){var i=e.defer();return t.analytics.setUserId(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},debugMode:function(){var n=e.defer();return t.analytics.debugMode((function(e){n.resolve(e)}),(function(){n.reject()})),n.promise},trackView:function(n){var i=e.defer();return t.analytics.trackView(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},addCustomDimension:function(n,i){var r=e.defer(),o=parseInt(n,10);return isNaN(o)&&r.reject('Parameter "key" must be an integer.'),t.analytics.addCustomDimension(o,i,(function(){r.resolve()}),(function(e){r.reject(e)})),r.promise},trackEvent:function(n,i,r,o){var a=e.defer();return t.analytics.trackEvent(n,i,r,o,(function(e){a.resolve(e)}),(function(e){a.reject(e)})),a.promise},trackException:function(n,i){var r=e.defer();return t.analytics.trackException(n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},trackTiming:function(n,i,r,o){var a=e.defer();return t.analytics.trackTiming(n,i,r,o,(function(e){a.resolve(e)}),(function(e){a.reject(e)})),a.promise},addTransaction:function(n,i,r,o,a,s){var l=e.defer();return t.analytics.addTransaction(n,i,r,o,a,s,(function(e){l.resolve(e)}),(function(e){l.reject(e)})),l.promise},addTransactionItem:function(n,i,r,o,a,s,l){var u=e.defer();return t.analytics.addTransactionItem(n,i,r,o,a,s,l,(function(e){u.resolve(e)}),(function(e){u.reject(e)})),u.promise}}}]),angular.module("ngCordova.plugins.googleMap",[]).factory("$cordovaGoogleMap",["$q","$window",function(e,t){var n=null;return{getMap:function(i){var r=e.defer();if(t.plugin.google.maps){var o=document.getElementById("map_canvas");(n=t.plugin.google.maps.Map.getMap(i)).setDiv(o),r.resolve(n)}else r.reject(null);return r.promise},isMapLoaded:function(){return!!n},addMarker:function(t){var i=e.defer();return n.addMarker(t,(function(e){i.resolve(e)})),i.promise},getMapTypeIds:function(){return t.plugin.google.maps.mapTypeId},setVisible:function(t){var i=e.defer();return n.setVisible(t),i.promise},cleanup:function(){n=null}}}]),angular.module("ngCordova.plugins.googlePlayGame",[]).factory("$cordovaGooglePlayGame",["$q",function(e){return{auth:function(){var t=e.defer();return googleplaygame.auth((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise},signout:function(){var t=e.defer();return googleplaygame.signout((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise},isSignedIn:function(){var t=e.defer();return googleplaygame.isSignedIn((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise},showPlayer:function(){var t=e.defer();return googleplaygame.showPlayer((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise},submitScore:function(t){var n=e.defer();return googleplaygame.submitScore(t,(function(e){return n.resolve(e)}),(function(e){return n.reject(e)})),n.promise},showAllLeaderboards:function(){var t=e.defer();return googleplaygame.showAllLeaderboards((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise},showLeaderboard:function(t){var n=e.defer();return googleplaygame.showLeaderboard(t,(function(e){return n.resolve(e)}),(function(e){return n.reject(e)})),n.promise},unlockAchievement:function(t){var n=e.defer();return googleplaygame.unlockAchievement(t,(function(e){return n.resolve(e)}),(function(e){return n.reject(e)})),n.promise},incrementAchievement:function(t){var n=e.defer();return googleplaygame.incrementAchievement(t,(function(e){return n.resolve(e)}),(function(e){return n.reject(e)})),n.promise},showAchievements:function(){var t=e.defer();return googleplaygame.showAchievements((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.googlePlus",[]).factory("$cordovaGooglePlus",["$q","$window",function(e,t){return{login:function(n){var i=e.defer();return void 0===n&&(n={}),t.plugins.googleplus.login({iOSApiKey:n},(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},silentLogin:function(n){var i=e.defer();return void 0===n&&(n={}),t.plugins.googleplus.trySilentLogin({iOSApiKey:n},(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},logout:function(){var n=e.defer();t.plugins.googleplus.logout((function(e){n.resolve(e)}))},disconnect:function(){var n=e.defer();t.plugins.googleplus.disconnect((function(e){n.resolve(e)}))},isAvailable:function(){var n=e.defer();return t.plugins.googleplus.isAvailable((function(e){e?n.resolve(e):n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.healthKit",[]).factory("$cordovaHealthKit",["$q","$window",function(e,t){return{isAvailable:function(){var n=e.defer();return t.plugins.healthkit.available((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},checkAuthStatus:function(n){var i=e.defer();return n=n||"HKQuantityTypeIdentifierHeight",t.plugins.healthkit.checkAuthStatus({type:n},(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},requestAuthorization:function(n,i){var r=e.defer();return n=n||["HKCharacteristicTypeIdentifierDateOfBirth","HKQuantityTypeIdentifierActiveEnergyBurned","HKQuantityTypeIdentifierHeight"],i=i||["HKQuantityTypeIdentifierActiveEnergyBurned","HKQuantityTypeIdentifierHeight","HKQuantityTypeIdentifierDistanceCycling"],t.plugins.healthkit.requestAuthorization({readTypes:n,writeTypes:i},(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},readDateOfBirth:function(){var n=e.defer();return t.plugins.healthkit.readDateOfBirth((function(e){n.resolve(e)}),(function(e){n.resolve(e)})),n.promise},readGender:function(){var n=e.defer();return t.plugins.healthkit.readGender((function(e){n.resolve(e)}),(function(e){n.resolve(e)})),n.promise},saveWeight:function(n,i,r){var o=e.defer();return t.plugins.healthkit.saveWeight({unit:i||"lb",amount:n,date:r||new Date},(function(e){o.resolve(e)}),(function(e){o.resolve(e)})),o.promise},readWeight:function(n){var i=e.defer();return t.plugins.healthkit.readWeight({unit:n||"lb"},(function(e){i.resolve(e)}),(function(e){i.resolve(e)})),i.promise},saveHeight:function(n,i,r){var o=e.defer();return t.plugins.healthkit.saveHeight({unit:i||"in",amount:n,date:r||new Date},(function(e){o.resolve(e)}),(function(e){o.resolve(e)})),o.promise},readHeight:function(n){var i=e.defer();return t.plugins.healthkit.readHeight({unit:n||"in"},(function(e){i.resolve(e)}),(function(e){i.resolve(e)})),i.promise},findWorkouts:function(){var n=e.defer();return t.plugins.healthkit.findWorkouts({},(function(e){n.resolve(e)}),(function(e){n.resolve(e)})),n.promise},saveWorkout:function(n){var i=e.defer();return t.plugins.healthkit.saveWorkout(n,(function(e){i.resolve(e)}),(function(e){i.resolve(e)})),i.promise},querySampleType:function(n){var i=e.defer();return t.plugins.healthkit.querySampleType(n,(function(e){i.resolve(e)}),(function(e){i.resolve(e)})),i.promise}}}]),angular.module("ngCordova.plugins.httpd",[]).factory("$cordovaHttpd",["$q",function(e){return{startServer:function(t){var n=e.defer();return cordova.plugins.CorHttpd.startServer(t,(function(){n.resolve()}),(function(){n.reject()})),n.promise},stopServer:function(){var t=e.defer();return cordova.plugins.CorHttpd.stopServer((function(){t.resolve()}),(function(){t.reject()})),t.promise},getURL:function(){var t=e.defer();return cordova.plugins.CorHttpd.getURL((function(e){t.resolve(e)}),(function(){t.reject()})),t.promise},getLocalPath:function(){var t=e.defer();return cordova.plugins.CorHttpd.getLocalPath((function(e){t.resolve(e)}),(function(){t.reject()})),t.promise}}}]),angular.module("ngCordova.plugins.iAd",[]).factory("$cordovaiAd",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.iAd.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.iAd.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.iAd.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.iAd.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.iAd.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.iAd.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.iAd.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.iAd.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.imagePicker",[]).factory("$cordovaImagePicker",["$q","$window",function(e,t){return{getPictures:function(n){var i=e.defer();return t.imagePicker.getPictures((function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise}}}]),angular.module("ngCordova.plugins.inAppBrowser",[]).provider("$cordovaInAppBrowser",[function(){var e,t=this.defaultOptions={};this.setDefaultOptions=function(e){t=angular.extend(t,e)},this.$get=["$rootScope","$q","$window","$timeout",function(n,i,r,o){return{open:function(a,s,l){var u=i.defer();if(l&&!angular.isObject(l))return u.reject("options must be an object"),u.promise;var c=angular.extend({},t,l),d=[];angular.forEach(c,(function(e,t){d.push(t+"="+e)}));var h=d.join();return(e=r.open(a,s,h)).addEventListener("loadstart",(function(e){o((function(){n.$broadcast("$cordovaInAppBrowser:loadstart",e)}))}),!1),e.addEventListener("loadstop",(function(e){u.resolve(e),o((function(){n.$broadcast("$cordovaInAppBrowser:loadstop",e)}))}),!1),e.addEventListener("loaderror",(function(e){u.reject(e),o((function(){n.$broadcast("$cordovaInAppBrowser:loaderror",e)}))}),!1),e.addEventListener("exit",(function(e){o((function(){n.$broadcast("$cordovaInAppBrowser:exit",e)}))}),!1),u.promise},close:function(){e.close(),e=null},show:function(){e.show()},executeScript:function(t){var n=i.defer();return e.executeScript(t,(function(e){n.resolve(e)})),n.promise},insertCSS:function(t){var n=i.defer();return e.insertCSS(t,(function(e){n.resolve(e)})),n.promise}}}]}]),angular.module("ngCordova.plugins.insomnia",[]).factory("$cordovaInsomnia",["$window",function(e){return{keepAwake:function(){return e.plugins.insomnia.keepAwake()},allowSleepAgain:function(){return e.plugins.insomnia.allowSleepAgain()}}}]),angular.module("ngCordova.plugins.instagram",[]).factory("$cordovaInstagram",["$q",function(e){return{share:function(t){var n=e.defer();return window.Instagram?(Instagram.share(t.image,t.caption,(function(e){e?n.reject(e):n.resolve(!0)})),n.promise):(console.error("Tried to call Instagram.share but the Instagram plugin isn't installed!"),n.resolve(null),n.promise)},isInstalled:function(){var t=e.defer();return window.Instagram?(Instagram.isInstalled((function(e,n){e?t.reject(e):t.resolve(n)})),t.promise):(console.error("Tried to call Instagram.isInstalled but the Instagram plugin isn't installed!"),t.resolve(null),t.promise)}}}]),angular.module("ngCordova.plugins.keyboard",[]).factory("$cordovaKeyboard",["$rootScope",function(e){var t=function(){e.$evalAsync((function(){e.$broadcast("$cordovaKeyboard:show")}))},n=function(){e.$evalAsync((function(){e.$broadcast("$cordovaKeyboard:hide")}))};return document.addEventListener("deviceready",(function(){cordova.plugins.Keyboard&&(window.addEventListener("native.keyboardshow",t,!1),window.addEventListener("native.keyboardhide",n,!1))})),{hideAccessoryBar:function(e){return cordova.plugins.Keyboard.hideKeyboardAccessoryBar(e)},close:function(){return cordova.plugins.Keyboard.close()},show:function(){return cordova.plugins.Keyboard.show()},disableScroll:function(e){return cordova.plugins.Keyboard.disableScroll(e)},isVisible:function(){return cordova.plugins.Keyboard.isVisible},clearShowWatch:function(){document.removeEventListener("native.keyboardshow",t),e.$$listeners["$cordovaKeyboard:show"]=[]},clearHideWatch:function(){document.removeEventListener("native.keyboardhide",n),e.$$listeners["$cordovaKeyboard:hide"]=[]}}}]),angular.module("ngCordova.plugins.keychain",[]).factory("$cordovaKeychain",["$q",function(e){return{getForKey:function(t,n){var i=e.defer();return(new Keychain).getForKey(i.resolve,i.reject,t,n),i.promise},setForKey:function(t,n,i){var r=e.defer();return(new Keychain).setForKey(r.resolve,r.reject,t,n,i),r.promise},removeForKey:function(t,n){var i=e.defer();return(new Keychain).removeForKey(i.resolve,i.reject,t,n),i.promise}}}]),angular.module("ngCordova.plugins.launchNavigator",[]).factory("$cordovaLaunchNavigator",["$q",function(e){return{navigate:function(t,n,i){var r=e.defer();return launchnavigator.navigate(t,n,(function(){r.resolve()}),(function(e){r.reject(e)}),i),r.promise}}}]),angular.module("ngCordova.plugins.localNotification",[]).factory("$cordovaLocalNotification",["$q","$window","$rootScope","$timeout",function(e,t,n,i){return document.addEventListener("deviceready",(function(){t.cordova&&t.cordova.plugins&&t.cordova.plugins.notification&&t.cordova.plugins.notification.local&&(t.cordova.plugins.notification.local.on("schedule",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:schedule",e,t)}))})),t.cordova.plugins.notification.local.on("trigger",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:trigger",e,t)}))})),t.cordova.plugins.notification.local.on("update",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:update",e,t)}))})),t.cordova.plugins.notification.local.on("clear",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:clear",e,t)}))})),t.cordova.plugins.notification.local.on("clearall",(function(e){i((function(){n.$broadcast("$cordovaLocalNotification:clearall",e)}))})),t.cordova.plugins.notification.local.on("cancel",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:cancel",e,t)}))})),t.cordova.plugins.notification.local.on("cancelall",(function(e){i((function(){n.$broadcast("$cordovaLocalNotification:cancelall",e)}))})),t.cordova.plugins.notification.local.on("click",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:click",e,t)}))})))}),!1),{schedule:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.schedule(n,(function(e){r.resolve(e)}),i),r.promise},add:function(n,i){console.warn('Deprecated: use "schedule" instead.');var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.schedule(n,(function(e){r.resolve(e)}),i),r.promise},update:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.update(n,(function(e){r.resolve(e)}),i),r.promise},clear:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.clear(n,(function(e){r.resolve(e)}),i),r.promise},clearAll:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.clearAll((function(e){i.resolve(e)}),n),i.promise},cancel:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.cancel(n,(function(e){r.resolve(e)}),i),r.promise},cancelAll:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.cancelAll((function(e){i.resolve(e)}),n),i.promise},isPresent:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.isPresent(n,(function(e){r.resolve(e)}),i),r.promise},isScheduled:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.isScheduled(n,(function(e){r.resolve(e)}),i),r.promise},isTriggered:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.isTriggered(n,(function(e){r.resolve(e)}),i),r.promise},hasPermission:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.hasPermission((function(e){e?i.resolve(e):i.reject(e)}),n),i.promise},registerPermission:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.registerPermission((function(e){e?i.resolve(e):i.reject(e)}),n),i.promise},promptForPermission:function(n){console.warn('Deprecated: use "registerPermission" instead.');var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.registerPermission((function(e){e?i.resolve(e):i.reject(e)}),n),i.promise},getAllIds:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAllIds((function(e){i.resolve(e)}),n),i.promise},getIds:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getIds((function(e){i.resolve(e)}),n),i.promise},getScheduledIds:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getScheduledIds((function(e){i.resolve(e)}),n),i.promise},getTriggeredIds:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getTriggeredIds((function(e){i.resolve(e)}),n),i.promise},get:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.get(n,(function(e){r.resolve(e)}),i),r.promise},getAll:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAll((function(e){i.resolve(e)}),n),i.promise},getScheduled:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.getScheduled(n,(function(e){r.resolve(e)}),i),r.promise},getAllScheduled:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAllScheduled((function(e){i.resolve(e)}),n),i.promise},getTriggered:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.getTriggered(n,(function(e){r.resolve(e)}),i),r.promise},getAllTriggered:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAllTriggered((function(e){i.resolve(e)}),n),i.promise},getDefaults:function(){return t.cordova.plugins.notification.local.getDefaults()},setDefaults:function(e){t.cordova.plugins.notification.local.setDefaults(e)}}}]),angular.module("ngCordova.plugins.mMediaAds",[]).factory("$cordovaMMediaAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.mMedia.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.mMedia.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.mMedia.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.mMedia.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.mMedia.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.mMedia.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.mMedia.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.mMedia.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.media",[]).service("NewMedia",["$q","$interval",function(e,t){function n(e){angular.isDefined(u)||(u=t((function(){0>h&&(h=e.getDuration(),a&&h>0&&a.notify({duration:h})),e.getCurrentPosition((function(e){e>-1&&(d=e)}),(function(e){alert("Error getting pos="+e)})),a&&a.notify({position:d})}),1e3))}function i(){angular.isDefined(u)&&(t.cancel(u),u=void 0)}function r(){d=-1,h=-1}function o(e){this.media=new Media(e,(function(e){i(),r(),a.resolve(e)}),(function(e){i(),r(),a.reject(e)}),(function(e){c=e,a.notify({status:c})}))}var a,s,l,u,c=null,d=-1,h=-1;return o.prototype.play=function(t){return a=e.defer(),"object"!=typeof t&&(t={}),this.media.play(t),n(this.media),a.promise},o.prototype.pause=function(){i(),this.media.pause()},o.prototype.stop=function(){this.media.stop()},o.prototype.release=function(){this.media.release(),this.media=void 0},o.prototype.seekTo=function(e){this.media.seekTo(e)},o.prototype.setVolume=function(e){this.media.setVolume(e)},o.prototype.startRecord=function(){this.media.startRecord()},o.prototype.stopRecord=function(){this.media.stopRecord()},o.prototype.currentTime=function(){return s=e.defer(),this.media.getCurrentPosition((function(e){s.resolve(e)})),s.promise},o.prototype.getDuration=function(){return l=e.defer(),this.media.getDuration((function(e){l.resolve(e)})),l.promise},o}]).factory("$cordovaMedia",["NewMedia",function(e){return{newMedia:function(t){return new e(t)}}}]),angular.module("ngCordova.plugins.mobfoxAds",[]).factory("$cordovaMobFoxAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.MobFox.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.MobFox.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.MobFox.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.MobFox.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.MobFox.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.MobFox.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.MobFox.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.MobFox.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins",["ngCordova.plugins.3dtouch","ngCordova.plugins.actionSheet","ngCordova.plugins.adMob","ngCordova.plugins.appAvailability","ngCordova.plugins.appRate","ngCordova.plugins.appVersion","ngCordova.plugins.backgroundGeolocation","ngCordova.plugins.badge","ngCordova.plugins.barcodeScanner","ngCordova.plugins.batteryStatus","ngCordova.plugins.beacon","ngCordova.plugins.ble","ngCordova.plugins.bluetoothSerial","ngCordova.plugins.brightness","ngCordova.plugins.calendar","ngCordova.plugins.camera","ngCordova.plugins.capture","ngCordova.plugins.clipboard","ngCordova.plugins.contacts","ngCordova.plugins.datePicker","ngCordova.plugins.device","ngCordova.plugins.deviceMotion","ngCordova.plugins.deviceOrientation","ngCordova.plugins.dialogs","ngCordova.plugins.emailComposer","ngCordova.plugins.facebook","ngCordova.plugins.facebookAds","ngCordova.plugins.file","ngCordova.plugins.fileTransfer","ngCordova.plugins.fileOpener2","ngCordova.plugins.flashlight","ngCordova.plugins.flurryAds","ngCordova.plugins.ga","ngCordova.plugins.geolocation","ngCordova.plugins.globalization","ngCordova.plugins.googleAds","ngCordova.plugins.googleAnalytics","ngCordova.plugins.googleMap","ngCordova.plugins.googlePlayGame","ngCordova.plugins.googlePlus","ngCordova.plugins.healthKit","ngCordova.plugins.httpd","ngCordova.plugins.iAd","ngCordova.plugins.imagePicker","ngCordova.plugins.inAppBrowser","ngCordova.plugins.instagram","ngCordova.plugins.keyboard","ngCordova.plugins.keychain","ngCordova.plugins.launchNavigator","ngCordova.plugins.localNotification","ngCordova.plugins.media","ngCordova.plugins.mMediaAds","ngCordova.plugins.mobfoxAds","ngCordova.plugins.mopubAds","ngCordova.plugins.nativeAudio","ngCordova.plugins.network","ngCordova.plugins.pinDialog","ngCordova.plugins.preferences","ngCordova.plugins.printer","ngCordova.plugins.progressIndicator","ngCordova.plugins.push","ngCordova.plugins.push_v5","ngCordova.plugins.sms","ngCordova.plugins.socialSharing","ngCordova.plugins.spinnerDialog","ngCordova.plugins.splashscreen","ngCordova.plugins.sqlite","ngCordova.plugins.statusbar","ngCordova.plugins.toast","ngCordova.plugins.touchid","ngCordova.plugins.vibration","ngCordova.plugins.videoCapturePlus","ngCordova.plugins.zip","ngCordova.plugins.insomnia"]),angular.module("ngCordova.plugins.mopubAds",[]).factory("$cordovaMoPubAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.MoPub.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.MoPub.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.MoPub.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.MoPub.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.MoPub.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.MoPub.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.MoPub.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.MoPub.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.nativeAudio",[]).factory("$cordovaNativeAudio",["$q","$window",function(e,t){return{preloadSimple:function(n,i){var r=e.defer();return t.plugins.NativeAudio.preloadSimple(n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},preloadComplex:function(n,i,r,o,a){var s=e.defer();return t.plugins.NativeAudio.preloadComplex(n,i,r,o,a,(function(e){s.resolve(e)}),(function(e){s.reject(e)})),s.promise},play:function(n,i){var r=e.defer();return t.plugins.NativeAudio.play(n,(function(e){r.resolve(e)}),(function(e){r.reject(e)}),i),r.promise},stop:function(n){var i=e.defer();return t.plugins.NativeAudio.stop(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},loop:function(n){var i=e.defer();return t.plugins.NativeAudio.loop(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},unload:function(n){var i=e.defer();return t.plugins.NativeAudio.unload(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},setVolumeForComplexAsset:function(n,i){var r=e.defer();return t.plugins.NativeAudio.setVolumeForComplexAsset(n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise}}}]),angular.module("ngCordova.plugins.network",[]).factory("$cordovaNetwork",["$rootScope","$timeout",function(e,t){var n=function(){var n=navigator.connection.type;t((function(){e.$broadcast("$cordovaNetwork:offline",n)}))},i=function(){var n=navigator.connection.type;t((function(){e.$broadcast("$cordovaNetwork:online",n)}))};return document.addEventListener("deviceready",(function(){navigator.connection&&(document.addEventListener("offline",n,!1),document.addEventListener("online",i,!1))})),{getNetwork:function(){return navigator.connection.type},isOnline:function(){var e=navigator.connection.type;return e!==Connection.UNKNOWN&&e!==Connection.NONE},isOffline:function(){var e=navigator.connection.type;return e===Connection.UNKNOWN||e===Connection.NONE},clearOfflineWatch:function(){document.removeEventListener("offline",n),e.$$listeners["$cordovaNetwork:offline"]=[]},clearOnlineWatch:function(){document.removeEventListener("online",i),e.$$listeners["$cordovaNetwork:online"]=[]}}}]).run(["$injector",function(e){e.get("$cordovaNetwork")}]),angular.module("ngCordova.plugins.pinDialog",[]).factory("$cordovaPinDialog",["$q","$window",function(e,t){return{prompt:function(n,i,r){var o=e.defer();return t.plugins.pinDialog.prompt(n,(function(e){o.resolve(e)}),i,r),o.promise}}}]),angular.module("ngCordova.plugins.preferences",[]).factory("$cordovaPreferences",["$window","$q",function(e,t){return{pluginNotEnabledMessage:"Plugin not enabled",decoratePromise:function(e){e.success=function(t){return e.then(t),e},e.error=function(t){return e.then(null,t),e}},store:function(n,i,r){function o(e){s.resolve(e)}function a(e){s.reject(new Error(e))}var s=t.defer(),l=s.promise;return e.plugins?(3===arguments.length?e.plugins.appPreferences.store(r,n,i):e.plugins.appPreferences.store(n,i)).then(o,a):s.reject(new Error(this.pluginNotEnabledMessage)),this.decoratePromise(l),l},fetch:function(n,i){function r(e){a.resolve(e)}function o(e){a.reject(new Error(e))}var a=t.defer(),s=a.promise;return e.plugins?(2===arguments.length?e.plugins.appPreferences.fetch(i,n):e.plugins.appPreferences.fetch(n)).then(r,o):a.reject(new Error(this.pluginNotEnabledMessage)),this.decoratePromise(s),s},remove:function(n,i){function r(e){a.resolve(e)}function o(e){a.reject(new Error(e))}var a=t.defer(),s=a.promise;return e.plugins?(2===arguments.length?e.plugins.appPreferences.remove(i,n):e.plugins.appPreferences.remove(n)).then(r,o):a.reject(new Error(this.pluginNotEnabledMessage)),this.decoratePromise(s),s},show:function(){var n=t.defer(),i=n.promise;return e.plugins?e.plugins.appPreferences.show().then((function(e){n.resolve(e)}),(function(e){n.reject(new Error(e))})):n.reject(new Error(this.pluginNotEnabledMessage)),this.decoratePromise(i),i}}}]),angular.module("ngCordova.plugins.printer",[]).factory("$cordovaPrinter",["$q","$window",function(e,t){return{isAvailable:function(){var n=e.defer();return t.plugin.printer.isAvailable((function(e){n.resolve(e)})),n.promise},print:function(n,i){var r=e.defer();return t.plugin.printer.print(n,i,(function(){r.resolve()})),r.promise}}}]),angular.module("ngCordova.plugins.progressIndicator",[]).factory("$cordovaProgress",[function(){return{show:function(e){var t=e||"Please wait...";return ProgressIndicator.show(t)},showSimple:function(e){var t=e||!1;return ProgressIndicator.showSimple(t)},showSimpleWithLabel:function(e,t){var n=e||!1,i=t||"Loading...";return ProgressIndicator.showSimpleWithLabel(n,i)},showSimpleWithLabelDetail:function(e,t,n){var i=e||!1,r=t||"Loading...",o=n||"Please wait";return ProgressIndicator.showSimpleWithLabelDetail(i,r,o)},showDeterminate:function(e,t){var n=e||!1,i=t||5e4;return ProgressIndicator.showDeterminate(n,i)},showDeterminateWithLabel:function(e,t,n){var i=e||!1,r=t||5e4,o=n||"Loading...";return ProgressIndicator.showDeterminateWithLabel(i,r,o)},showAnnular:function(e,t){var n=e||!1,i=t||5e4;return ProgressIndicator.showAnnular(n,i)},showAnnularWithLabel:function(e,t,n){var i=e||!1,r=t||5e4,o=n||"Loading...";return ProgressIndicator.showAnnularWithLabel(i,r,o)},showBar:function(e,t){var n=e||!1,i=t||5e4;return ProgressIndicator.showBar(n,i)},showBarWithLabel:function(e,t,n){var i=e||!1,r=t||5e4,o=n||"Loading...";return ProgressIndicator.showBarWithLabel(i,r,o)},showSuccess:function(e,t){var n=e||!1,i=t||"Success";return ProgressIndicator.showSuccess(n,i)},showText:function(e,t,n){var i=e||!1,r=t||"Warning",o=n||"center";return ProgressIndicator.showText(i,r,o)},hide:function(){return ProgressIndicator.hide()}}}]),angular.module("ngCordova.plugins.push",[]).factory("$cordovaPush",["$q","$window","$rootScope","$timeout",function(e,t,n,i){return{onNotification:function(e){i((function(){n.$broadcast("$cordovaPush:notificationReceived",e)}))},register:function(n){var i,r=e.defer();return void 0!==n&&void 0===n.ecb&&(i=null===document.querySelector("[ng-app]")?"document.body":"document.querySelector('[ng-app]')",n.ecb="angular.element("+i+").injector().get('$cordovaPush').onNotification"),t.plugins.pushNotification.register((function(e){r.resolve(e)}),(function(e){r.reject(e)}),n),r.promise},unregister:function(n){var i=e.defer();return t.plugins.pushNotification.unregister((function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise},setBadgeNumber:function(n){var i=e.defer();return t.plugins.pushNotification.setApplicationIconBadgeNumber((function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise}}}]),angular.module("ngCordova.plugins.push_v5",[]).factory("$cordovaPushV5",["$q","$rootScope","$timeout",function(e,t,n){var i;return{initialize:function(t){var n=e.defer();return i=PushNotification.init(t),n.resolve(i),n.promise},onNotification:function(){n((function(){i.on("notification",(function(e){t.$emit("$cordovaPushV5:notificationReceived",e)}))}))},onError:function(){n((function(){i.on("error",(function(e){t.$emit("$cordovaPushV5:errorOccurred",e)}))}))},register:function(){var t=e.defer();return void 0===i?t.reject(new Error("init must be called before any other operation")):i.on("registration",(function(e){t.resolve(e.registrationId)})),t.promise},unregister:function(){var t=e.defer();return void 0===i?t.reject(new Error("init must be called before any other operation")):i.unregister((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},getBadgeNumber:function(){var t=e.defer();return void 0===i?t.reject(new Error("init must be called before any other operation")):i.getApplicationIconBadgeNumber((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},setBadgeNumber:function(t){var n=e.defer();return void 0===i?n.reject(new Error("init must be called before any other operation")):i.setApplicationIconBadgeNumber((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},finish:function(){var t=e.defer();return void 0===i?t.reject(new Error("init must be called before any other operation")):i.finish((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.recentsControl",[]).factory("$cordovaRecents",(function(){return{setColor:function(e){return RecentsControl.setColor(e)},setDescription:function(e){return RecentsControl.setDescription(e)},setOptions:function(e,t){return RecentsControl.setOptions(e,t)}}})),angular.module("ngCordova.plugins.screenshot",[]).factory("$cordovaScreenshot",["$q",function(e){return{captureToFile:function(t){var n=t||{},i=n.extension||"jpg",r=n.quality||"100",o=e.defer();return navigator.screenshot?(navigator.screenshot.save((function(e,t){e?o.reject(e):o.resolve(t.filePath)}),i,r,n.filename),o.promise):(o.resolve(null),o.promise)},captureToUri:function(t){var n=t||{},i=n.extension||"jpg",r=n.quality||"100",o=e.defer();return navigator.screenshot?(navigator.screenshot.URI((function(e,t){e?o.reject(e):o.resolve(t.URI)}),i,r,n.filename),o.promise):(o.resolve(null),o.promise)}}}]),angular.module("ngCordova.plugins.serial",[]).factory("$cordovaSerial",["$q",function(e){return{requestPermission:function(t){var n=e.defer();return serial.requestPermission(t,(function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},open:function(t){var n=e.defer();return serial.open(t,(function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},write:function(t){var n=e.defer();return serial.write(t,(function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},writeHex:function(t){var n=e.defer();return serial.writeHex(t,(function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},read:function(){var t=e.defer();return serial.read((function(e){var n=new Uint8Array(e);t.resolve(n)}),(function(e){t.reject(e)})),t.promise},registerReadCallback:function(e,t){serial.registerReadCallback((function(t){var n=new Uint8Array(t);e(n)}),t)},close:function(){var t=e.defer();return serial.close((function(){t.resolve()}),(function(e){t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.sms",[]).factory("$cordovaSms",["$q",function(e){return{send:function(t,n,i){var r=e.defer();return sms.send(t,n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise}}}]),angular.module("ngCordova.plugins.socialSharing",[]).factory("$cordovaSocialSharing",["$q","$window",function(e,t){return{share:function(n,i,r,o){var a=e.defer();return i=i||null,r=r||null,o=o||null,t.plugins.socialsharing.share(n,i,r,o,(function(){a.resolve(!0)}),(function(){a.reject(!1)})),a.promise},shareWithOptions:function(n){var i=e.defer();return t.plugins.socialsharing.shareWithOptions(n,(function(){i.resolve(!0)}),(function(){i.reject(!1)})),i.promise},shareViaTwitter:function(n,i,r){var o=e.defer();return i=i||null,r=r||null,t.plugins.socialsharing.shareViaTwitter(n,i,r,(function(){o.resolve(!0)}),(function(){o.reject(!1)})),o.promise},shareViaWhatsApp:function(n,i,r){var o=e.defer();return i=i||null,r=r||null,t.plugins.socialsharing.shareViaWhatsApp(n,i,r,(function(){o.resolve(!0)}),(function(){o.reject(!1)})),o.promise},shareViaFacebook:function(n,i,r){var o=e.defer();return n=n||null,i=i||null,r=r||null,t.plugins.socialsharing.shareViaFacebook(n,i,r,(function(){o.resolve(!0)}),(function(){o.reject(!1)})),o.promise},shareViaFacebookWithPasteMessageHint:function(n,i,r,o){var a=e.defer();return i=i||null,r=r||null,t.plugins.socialsharing.shareViaFacebookWithPasteMessageHint(n,i,r,o,(function(){a.resolve(!0)}),(function(){a.reject(!1)})),a.promise},shareViaSMS:function(n,i){var r=e.defer();return t.plugins.socialsharing.shareViaSMS(n,i,(function(){r.resolve(!0)}),(function(){r.reject(!1)})),r.promise},shareViaEmail:function(n,i,r,o,a,s){var l=e.defer();return r=r||null,o=o||null,a=a||null,s=s||null,t.plugins.socialsharing.shareViaEmail(n,i,r,o,a,s,(function(){l.resolve(!0)}),(function(){l.reject(!1)})),l.promise},shareVia:function(n,i,r,o,a){var s=e.defer();return i=i||null,r=r||null,o=o||null,a=a||null,t.plugins.socialsharing.shareVia(n,i,r,o,a,(function(){s.resolve(!0)}),(function(){s.reject(!1)})),s.promise},canShareViaEmail:function(){var n=e.defer();return t.plugins.socialsharing.canShareViaEmail((function(){n.resolve(!0)}),(function(){n.reject(!1)})),n.promise},canShareVia:function(n,i,r,o,a){var s=e.defer();return t.plugins.socialsharing.canShareVia(n,i,r,o,a,(function(e){s.resolve(e)}),(function(e){s.reject(e)})),s.promise},available:function(){var t=e.defer();return window.plugins.socialsharing.available((function(e){e?t.resolve():t.reject()})),t.promise}}}]),angular.module("ngCordova.plugins.spinnerDialog",[]).factory("$cordovaSpinnerDialog",["$window",function(e){return{show:function(t,n,i,r){return i=i||!1,e.plugins.spinnerDialog.show(t,n,i,r)},hide:function(){return e.plugins.spinnerDialog.hide()}}}]),angular.module("ngCordova.plugins.splashscreen",[]).factory("$cordovaSplashscreen",[function(){return{hide:function(){return navigator.splashscreen.hide()},show:function(){return navigator.splashscreen.show()}}}]),angular.module("ngCordova.plugins.sqlite",[]).factory("$cordovaSQLite",["$q","$window",function(e,t){return{openDB:function(e,n){return angular.isObject(e)&&!angular.isString(e)?(void 0!==n&&(e.bgType=n),t.sqlitePlugin.openDatabase(e)):t.sqlitePlugin.openDatabase({name:e,bgType:n})},execute:function(t,n,i){var r=e.defer();return t.transaction((function(e){e.executeSql(n,i,(function(e,t){r.resolve(t)}),(function(e,t){r.reject(t)}))})),r.promise},insertCollection:function(t,n,i){var r=e.defer(),o=i.slice(0);return t.transaction((function(e){!function t(){var i=o.splice(0,1)[0];try{e.executeSql(n,i,(function(e,n){0===o.length?r.resolve(n):t()}),(function(e,t){r.reject(t)}))}catch(e){r.reject(e)}}()})),r.promise},nestedExecute:function(t,n,i,r,o){var a=e.defer();return t.transaction((function(e){e.executeSql(n,r,(function(e,t){a.resolve(t),e.executeSql(i,o,(function(e,t){a.resolve(t)}))}))}),(function(e,t){a.reject(t)})),a.promise},deleteDB:function(n){var i=e.defer();return t.sqlitePlugin.deleteDatabase(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise}}}]),angular.module("ngCordova.plugins.statusbar",[]).factory("$cordovaStatusbar",[function(){return{overlaysWebView:function(e){return StatusBar.overlaysWebView(!!e)},STYLES:{DEFAULT:0,LIGHT_CONTENT:1,BLACK_TRANSLUCENT:2,BLACK_OPAQUE:3},style:function(e){switch(e){case 0:return StatusBar.styleDefault();case 1:return StatusBar.styleLightContent();case 2:return StatusBar.styleBlackTranslucent();case 3:return StatusBar.styleBlackOpaque();default:return StatusBar.styleDefault()}},styleColor:function(e){return StatusBar.backgroundColorByName(e)},styleHex:function(e){return StatusBar.backgroundColorByHexString(e)},hide:function(){return StatusBar.hide()},show:function(){return StatusBar.show()},isVisible:function(){return StatusBar.isVisible}}}]),angular.module("ngCordova.plugins.toast",[]).factory("$cordovaToast",["$q","$window",function(e,t){return{showShortTop:function(n){var i=e.defer();return t.plugins.toast.showShortTop(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showShortCenter:function(n){var i=e.defer();return t.plugins.toast.showShortCenter(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showShortBottom:function(n){var i=e.defer();return t.plugins.toast.showShortBottom(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showLongTop:function(n){var i=e.defer();return t.plugins.toast.showLongTop(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showLongCenter:function(n){var i=e.defer();return t.plugins.toast.showLongCenter(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showLongBottom:function(n){var i=e.defer();return t.plugins.toast.showLongBottom(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showWithOptions:function(n){var i=e.defer();return t.plugins.toast.showWithOptions(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},show:function(n,i,r){var o=e.defer();return t.plugins.toast.show(n,i,r,(function(e){o.resolve(e)}),(function(e){o.reject(e)})),o.promise},hide:function(){var n=e.defer();try{t.plugins.toast.hide(),n.resolve()}catch(e){n.reject(e&&e.message)}return n.promise}}}]),angular.module("ngCordova.plugins.touchid",[]).factory("$cordovaTouchID",["$q",function(e){return{checkSupport:function(){var t=e.defer();return window.cordova?touchid.checkSupport((function(e){t.resolve(e)}),(function(e){t.reject(e)})):t.reject("Not supported without cordova.js"),t.promise},authenticate:function(t){var n=e.defer();return window.cordova?touchid.authenticate((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t):n.reject("Not supported without cordova.js"),n.promise}}}]),angular.module("ngCordova.plugins.tts",[]).factory("$cordovaTTS",(function(){return{speak:function(e,t,n){return TTS.speak(e,t,n)}}})),angular.module("ngCordova.plugins.upsPush",[]).factory("$cordovaUpsPush",["$q","$window","$rootScope","$timeout",function(e,t,n,i){return{register:function(r){var o=e.defer();return t.push.register((function(e){i((function(){n.$broadcast("$cordovaUpsPush:notificationReceived",e)}))}),(function(){o.resolve()}),(function(e){o.reject(e)}),r),o.promise},unregister:function(n){var i=e.defer();return t.push.unregister((function(){i.resolve()}),(function(e){i.reject(e)}),n),i.promise},setBadgeNumber:function(n){var i=e.defer();return t.push.setApplicationIconBadgeNumber((function(){i.resolve()}),n),i.promise}}}]),angular.module("ngCordova.plugins.vibration",[]).factory("$cordovaVibration",[function(){return{vibrate:function(e){return navigator.notification.vibrate(e)},vibrateWithPattern:function(e,t){return navigator.notification.vibrateWithPattern(e,t)},cancelVibration:function(){return navigator.notification.cancelVibration()}}}]),angular.module("ngCordova.plugins.videoCapturePlus",[]).provider("$cordovaVideoCapturePlus",[function(){var e={};this.setLimit=function(t){e.limit=t},this.setMaxDuration=function(t){e.duration=t},this.setHighQuality=function(t){e.highquality=t},this.useFrontCamera=function(t){e.frontcamera=t},this.setPortraitOverlay=function(t){e.portraitOverlay=t},this.setLandscapeOverlay=function(t){e.landscapeOverlay=t},this.setOverlayText=function(t){e.overlayText=t},this.$get=["$q","$window",function(t,n){return{captureVideo:function(i){var r=t.defer();return n.plugins.videocaptureplus?(n.plugins.videocaptureplus.captureVideo(r.resolve,r.reject,angular.extend({},e,i)),r.promise):(r.resolve(null),r.promise)}}}]}]),angular.module("ngCordova.plugins.zip",[]).factory("$cordovaZip",["$q","$window",function(e,t){return{unzip:function(n,i){var r=e.defer();return t.zip.unzip(n,i,(function(e){0===e?r.resolve():r.reject()}),(function(e){r.notify(e)})),r.promise}}}]),function(e,t,n){var i=e.L,r={version:"0.7.7"};"object"==typeof module&&"object"==typeof module.exports?module.exports=r:"function"==typeof define&&define.amd&&define(r),r.noConflict=function(){return e.L=i,this},e.L=r,r.Util={extend:function(e){var t,n,i,r,o=Array.prototype.slice.call(arguments,1);for(n=0,i=o.length;i>n;n++)for(t in r=o[n]||{})r.hasOwnProperty(t)&&(e[t]=r[t]);return e},bind:function(e,t){var n=arguments.length>2?Array.prototype.slice.call(arguments,2):null;return function(){return e.apply(t,n||arguments)}},stamp:function(){var e=0,t="_leaflet_id";return function(n){return n[t]=n[t]||++e,n[t]}}(),invokeEach:function(e,t,n){var i,r;if("object"==typeof e){for(i in r=Array.prototype.slice.call(arguments,3),e)t.apply(n,[i,e[i]].concat(r));return!0}return!1},limitExecByInterval:function(e,t,n){var i,r;return function o(){var a=arguments;return i?void(r=!0):(i=!0,setTimeout((function(){i=!1,r&&(o.apply(n,a),r=!1)}),t),void e.apply(n,a))}},falseFn:function(){return!1},formatNum:function(e,t){var n=Math.pow(10,t||5);return Math.round(e*n)/n},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},splitWords:function(e){return r.Util.trim(e).split(/\s+/)},setOptions:function(e,t){return e.options=r.extend({},e.options,t),e.options},getParamString:function(e,t,n){var i=[];for(var r in e)i.push(encodeURIComponent(n?r.toUpperCase():r)+"="+encodeURIComponent(e[r]));return(t&&-1!==t.indexOf("?")?"&":"?")+i.join("&")},template:function(e,t){return e.replace(/\{ *([\w_]+) *\}/g,(function(e,i){var r=t[i];if(r===n)throw new Error("No value provided for variable "+e);return"function"==typeof r&&(r=r(t)),r}))},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},emptyImageUrl:"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="},function(){function t(t){var n,i,r=["webkit","moz","o","ms"];for(n=0;n<r.length&&!i;n++)i=e[r[n]+t];return i}function n(t){var n=+new Date,r=Math.max(0,16-(n-i));return i=n+r,e.setTimeout(t,r)}var i=0,o=e.requestAnimationFrame||t("RequestAnimationFrame")||n,a=e.cancelAnimationFrame||t("CancelAnimationFrame")||t("CancelRequestAnimationFrame")||function(t){e.clearTimeout(t)};r.Util.requestAnimFrame=function(t,i,a,s){return t=r.bind(t,i),a&&o===n?void t():o.call(e,t,s)},r.Util.cancelAnimFrame=function(t){t&&a.call(e,t)}}(),r.extend=r.Util.extend,r.bind=r.Util.bind,r.stamp=r.Util.stamp,r.setOptions=r.Util.setOptions,r.Class=function(){},r.Class.extend=function(e){var t=function(){this.initialize&&this.initialize.apply(this,arguments),this._initHooks&&this.callInitHooks()},n=function(){};n.prototype=this.prototype;var i=new n;for(var o in i.constructor=t,t.prototype=i,this)this.hasOwnProperty(o)&&"prototype"!==o&&(t[o]=this[o]);e.statics&&(r.extend(t,e.statics),delete e.statics),e.includes&&(r.Util.extend.apply(null,[i].concat(e.includes)),delete e.includes),e.options&&i.options&&(e.options=r.extend({},i.options,e.options)),r.extend(i,e),i._initHooks=[];var a=this;return t.__super__=a.prototype,i.callInitHooks=function(){if(!this._initHooksCalled){a.prototype.callInitHooks&&a.prototype.callInitHooks.call(this),this._initHooksCalled=!0;for(var e=0,t=i._initHooks.length;t>e;e++)i._initHooks[e].call(this)}},t},r.Class.include=function(e){r.extend(this.prototype,e)},r.Class.mergeOptions=function(e){r.extend(this.prototype.options,e)},r.Class.addInitHook=function(e){var t=Array.prototype.slice.call(arguments,1),n="function"==typeof e?e:function(){this[e].apply(this,t)};this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(n)};var o="_leaflet_events";r.Mixin={},r.Mixin.Events={addEventListener:function(e,t,n){if(r.Util.invokeEach(e,this.addEventListener,this,t,n))return this;var i,a,s,l,u,c,d,h=this[o]=this[o]||{},f=n&&n!==this&&r.stamp(n);for(i=0,a=(e=r.Util.splitWords(e)).length;a>i;i++)s={action:t,context:n||this},l=e[i],f?(c=(u=l+"_idx")+"_len",(d=h[u]=h[u]||{})[f]||(d[f]=[],h[c]=(h[c]||0)+1),d[f].push(s)):(h[l]=h[l]||[],h[l].push(s));return this},hasEventListeners:function(e){var t=this[o];return!!t&&(e in t&&t[e].length>0||e+"_idx"in t&&t[e+"_idx_len"]>0)},removeEventListener:function(e,t,n){if(!this[o])return this;if(!e)return this.clearAllEventListeners();if(r.Util.invokeEach(e,this.removeEventListener,this,t,n))return this;var i,a,s,l,u,c,d,h,f=this[o],p=n&&n!==this&&r.stamp(n);for(i=0,a=(e=r.Util.splitWords(e)).length;a>i;i++)if(d=(c=(s=e[i])+"_idx")+"_len",h=f[c],t){if(l=p&&h?h[p]:f[s]){for(u=l.length-1;u>=0;u--)l[u].action!==t||n&&l[u].context!==n||(l.splice(u,1)[0].action=r.Util.falseFn);n&&h&&0===l.length&&(delete h[p],f[d]--)}}else delete f[s],delete f[c],delete f[d];return this},clearAllEventListeners:function(){return delete this[o],this},fireEvent:function(e,t){if(!this.hasEventListeners(e))return this;var n,i,a,s,l,u=r.Util.extend({},t,{type:e,target:this}),c=this[o];if(c[e])for(i=0,a=(n=c[e].slice()).length;a>i;i++)n[i].action.call(n[i].context,u);for(l in s=c[e+"_idx"])if(n=s[l].slice())for(i=0,a=n.length;a>i;i++)n[i].action.call(n[i].context,u);return this},addOneTimeEventListener:function(e,t,n){if(r.Util.invokeEach(e,this.addOneTimeEventListener,this,t,n))return this;var i=r.bind((function(){this.removeEventListener(e,t,n).removeEventListener(e,i,n)}),this);return this.addEventListener(e,t,n).addEventListener(e,i,n)}},r.Mixin.Events.on=r.Mixin.Events.addEventListener,r.Mixin.Events.off=r.Mixin.Events.removeEventListener,r.Mixin.Events.once=r.Mixin.Events.addOneTimeEventListener,r.Mixin.Events.fire=r.Mixin.Events.fireEvent,function(){var i="ActiveXObject"in e,o=i&&!t.addEventListener,a=navigator.userAgent.toLowerCase(),s=-1!==a.indexOf("webkit"),l=-1!==a.indexOf("chrome"),u=-1!==a.indexOf("phantom"),c=-1!==a.indexOf("android"),d=-1!==a.search("android [23]"),h=-1!==a.indexOf("gecko"),f=typeof orientation!=n+"",p=!e.PointerEvent&&e.MSPointerEvent,m=e.PointerEvent&&e.navigator.pointerEnabled||p,g="devicePixelRatio"in e&&e.devicePixelRatio>1||"matchMedia"in e&&e.matchMedia("(min-resolution:144dpi)")&&e.matchMedia("(min-resolution:144dpi)").matches,v=t.documentElement,_=i&&"transition"in v.style,y="WebKitCSSMatrix"in e&&"m11"in new e.WebKitCSSMatrix&&!d,b="MozPerspective"in v.style,w="OTransition"in v.style,L=!e.L_DISABLE_3D&&(_||y||b||w)&&!u,M=!e.L_NO_TOUCH&&!u&&(m||"ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch);r.Browser={ie:i,ielt9:o,webkit:s,gecko:h&&!s&&!e.opera&&!i,android:c,android23:d,chrome:l,ie3d:_,webkit3d:y,gecko3d:b,opera3d:w,any3d:L,mobile:f,mobileWebkit:f&&s,mobileWebkit3d:f&&y,mobileOpera:f&&e.opera,touch:M,msPointer:p,pointer:m,retina:g}}(),r.Point=function(e,t,n){this.x=n?Math.round(e):e,this.y=n?Math.round(t):t},r.Point.prototype={clone:function(){return new r.Point(this.x,this.y)},add:function(e){return this.clone()._add(r.point(e))},_add:function(e){return this.x+=e.x,this.y+=e.y,this},subtract:function(e){return this.clone()._subtract(r.point(e))},_subtract:function(e){return this.x-=e.x,this.y-=e.y,this},divideBy:function(e){return this.clone()._divideBy(e)},_divideBy:function(e){return this.x/=e,this.y/=e,this},multiplyBy:function(e){return this.clone()._multiplyBy(e)},_multiplyBy:function(e){return this.x*=e,this.y*=e,this},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},distanceTo:function(e){var t=(e=r.point(e)).x-this.x,n=e.y-this.y;return Math.sqrt(t*t+n*n)},equals:function(e){return(e=r.point(e)).x===this.x&&e.y===this.y},contains:function(e){return e=r.point(e),Math.abs(e.x)<=Math.abs(this.x)&&Math.abs(e.y)<=Math.abs(this.y)},toString:function(){return"Point("+r.Util.formatNum(this.x)+", "+r.Util.formatNum(this.y)+")"}},r.point=function(e,t,i){return e instanceof r.Point?e:r.Util.isArray(e)?new r.Point(e[0],e[1]):e===n||null===e?e:new r.Point(e,t,i)},r.Bounds=function(e,t){if(e)for(var n=t?[e,t]:e,i=0,r=n.length;r>i;i++)this.extend(n[i])},r.Bounds.prototype={extend:function(e){return e=r.point(e),this.min||this.max?(this.min.x=Math.min(e.x,this.min.x),this.max.x=Math.max(e.x,this.max.x),this.min.y=Math.min(e.y,this.min.y),this.max.y=Math.max(e.y,this.max.y)):(this.min=e.clone(),this.max=e.clone()),this},getCenter:function(e){return new r.Point((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,e)},getBottomLeft:function(){return new r.Point(this.min.x,this.max.y)},getTopRight:function(){return new r.Point(this.max.x,this.min.y)},getSize:function(){return this.max.subtract(this.min)},contains:function(e){var t,n;return(e="number"==typeof e[0]||e instanceof r.Point?r.point(e):r.bounds(e))instanceof r.Bounds?(t=e.min,n=e.max):t=n=e,t.x>=this.min.x&&n.x<=this.max.x&&t.y>=this.min.y&&n.y<=this.max.y},intersects:function(e){e=r.bounds(e);var t=this.min,n=this.max,i=e.min,o=e.max,a=o.x>=t.x&&i.x<=n.x,s=o.y>=t.y&&i.y<=n.y;return a&&s},isValid:function(){return!(!this.min||!this.max)}},r.bounds=function(e,t){return!e||e instanceof r.Bounds?e:new r.Bounds(e,t)},r.Transformation=function(e,t,n,i){this._a=e,this._b=t,this._c=n,this._d=i},r.Transformation.prototype={transform:function(e,t){return this._transform(e.clone(),t)},_transform:function(e,t){return t=t||1,e.x=t*(this._a*e.x+this._b),e.y=t*(this._c*e.y+this._d),e},untransform:function(e,t){return t=t||1,new r.Point((e.x/t-this._b)/this._a,(e.y/t-this._d)/this._c)}},r.DomUtil={get:function(e){return"string"==typeof e?t.getElementById(e):e},getStyle:function(e,n){var i=e.style[n];if(!i&&e.currentStyle&&(i=e.currentStyle[n]),(!i||"auto"===i)&&t.defaultView){var r=t.defaultView.getComputedStyle(e,null);i=r?r[n]:null}return"auto"===i?null:i},getViewportOffset:function(e){var n,i=0,o=0,a=e,s=t.body,l=t.documentElement;do{if(i+=a.offsetTop||0,o+=a.offsetLeft||0,i+=parseInt(r.DomUtil.getStyle(a,"borderTopWidth"),10)||0,o+=parseInt(r.DomUtil.getStyle(a,"borderLeftWidth"),10)||0,n=r.DomUtil.getStyle(a,"position"),a.offsetParent===s&&"absolute"===n)break;if("fixed"===n){i+=s.scrollTop||l.scrollTop||0,o+=s.scrollLeft||l.scrollLeft||0;break}if("relative"===n&&!a.offsetLeft){var u=r.DomUtil.getStyle(a,"width"),c=r.DomUtil.getStyle(a,"max-width"),d=a.getBoundingClientRect();("none"!==u||"none"!==c)&&(o+=d.left+a.clientLeft),i+=d.top+(s.scrollTop||l.scrollTop||0);break}a=a.offsetParent}while(a);a=e;do{if(a===s)break;i-=a.scrollTop||0,o-=a.scrollLeft||0,a=a.parentNode}while(a);return new r.Point(o,i)},documentIsLtr:function(){return r.DomUtil._docIsLtrCached||(r.DomUtil._docIsLtrCached=!0,r.DomUtil._docIsLtr="ltr"===r.DomUtil.getStyle(t.body,"direction")),r.DomUtil._docIsLtr},create:function(e,n,i){var r=t.createElement(e);return r.className=n,i&&i.appendChild(r),r},hasClass:function(e,t){if(e.classList!==n)return e.classList.contains(t);var i=r.DomUtil._getClass(e);return i.length>0&&new RegExp("(^|\\s)"+t+"(\\s|$)").test(i)},addClass:function(e,t){if(e.classList!==n)for(var i=r.Util.splitWords(t),o=0,a=i.length;a>o;o++)e.classList.add(i[o]);else if(!r.DomUtil.hasClass(e,t)){var s=r.DomUtil._getClass(e);r.DomUtil._setClass(e,(s?s+" ":"")+t)}},removeClass:function(e,t){e.classList!==n?e.classList.remove(t):r.DomUtil._setClass(e,r.Util.trim((" "+r.DomUtil._getClass(e)+" ").replace(" "+t+" "," ")))},_setClass:function(e,t){e.className.baseVal===n?e.className=t:e.className.baseVal=t},_getClass:function(e){return e.className.baseVal===n?e.className:e.className.baseVal},setOpacity:function(e,t){if("opacity"in e.style)e.style.opacity=t;else if("filter"in e.style){var n=!1,i="DXImageTransform.Microsoft.Alpha";try{n=e.filters.item(i)}catch(e){if(1===t)return}t=Math.round(100*t),n?(n.Enabled=100!==t,n.Opacity=t):e.style.filter+=" progid:"+i+"(opacity="+t+")"}},testProp:function(e){for(var n=t.documentElement.style,i=0;i<e.length;i++)if(e[i]in n)return e[i];return!1},getTranslateString:function(e){var t=r.Browser.webkit3d,n=(t?",0":"")+")";return"translate"+(t?"3d":"")+"("+e.x+"px,"+e.y+"px"+n},getScaleString:function(e,t){return r.DomUtil.getTranslateString(t.add(t.multiplyBy(-1*e)))+" scale("+e+") "},setPosition:function(e,t,n){e._leaflet_pos=t,!n&&r.Browser.any3d?e.style[r.DomUtil.TRANSFORM]=r.DomUtil.getTranslateString(t):(e.style.left=t.x+"px",e.style.top=t.y+"px")},getPosition:function(e){return e._leaflet_pos}},r.DomUtil.TRANSFORM=r.DomUtil.testProp(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]),r.DomUtil.TRANSITION=r.DomUtil.testProp(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),r.DomUtil.TRANSITION_END="webkitTransition"===r.DomUtil.TRANSITION||"OTransition"===r.DomUtil.TRANSITION?r.DomUtil.TRANSITION+"End":"transitionend",function(){if("onselectstart"in t)r.extend(r.DomUtil,{disableTextSelection:function(){r.DomEvent.on(e,"selectstart",r.DomEvent.preventDefault)},enableTextSelection:function(){r.DomEvent.off(e,"selectstart",r.DomEvent.preventDefault)}});else{var n=r.DomUtil.testProp(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);r.extend(r.DomUtil,{disableTextSelection:function(){if(n){var e=t.documentElement.style;this._userSelect=e[n],e[n]="none"}},enableTextSelection:function(){n&&(t.documentElement.style[n]=this._userSelect,delete this._userSelect)}})}r.extend(r.DomUtil,{disableImageDrag:function(){r.DomEvent.on(e,"dragstart",r.DomEvent.preventDefault)},enableImageDrag:function(){r.DomEvent.off(e,"dragstart",r.DomEvent.preventDefault)}})}(),r.LatLng=function(e,t,i){if(e=parseFloat(e),t=parseFloat(t),isNaN(e)||isNaN(t))throw new Error("Invalid LatLng object: ("+e+", "+t+")");this.lat=e,this.lng=t,i!==n&&(this.alt=parseFloat(i))},r.extend(r.LatLng,{DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI,MAX_MARGIN:1e-9}),r.LatLng.prototype={equals:function(e){return!!e&&(e=r.latLng(e),Math.max(Math.abs(this.lat-e.lat),Math.abs(this.lng-e.lng))<=r.LatLng.MAX_MARGIN)},toString:function(e){return"LatLng("+r.Util.formatNum(this.lat,e)+", "+r.Util.formatNum(this.lng,e)+")"},distanceTo:function(e){e=r.latLng(e);var t=r.LatLng.DEG_TO_RAD,n=(e.lat-this.lat)*t,i=(e.lng-this.lng)*t,o=this.lat*t,a=e.lat*t,s=Math.sin(n/2),l=Math.sin(i/2),u=s*s+l*l*Math.cos(o)*Math.cos(a);return 12756274*Math.atan2(Math.sqrt(u),Math.sqrt(1-u))},wrap:function(e,t){var n=this.lng;return n=(n+(t=t||180))%(t-(e=e||-180))+(e>n||n===t?t:e),new r.LatLng(this.lat,n)}},r.latLng=function(e,t){return e instanceof r.LatLng?e:r.Util.isArray(e)?"number"==typeof e[0]||"string"==typeof e[0]?new r.LatLng(e[0],e[1],e[2]):null:e===n||null===e?e:"object"==typeof e&&"lat"in e?new r.LatLng(e.lat,"lng"in e?e.lng:e.lon):t===n?null:new r.LatLng(e,t)},r.LatLngBounds=function(e,t){if(e)for(var n=t?[e,t]:e,i=0,r=n.length;r>i;i++)this.extend(n[i])},r.LatLngBounds.prototype={extend:function(e){if(!e)return this;var t=r.latLng(e);return(e=null!==t?t:r.latLngBounds(e))instanceof r.LatLng?this._southWest||this._northEast?(this._southWest.lat=Math.min(e.lat,this._southWest.lat),this._southWest.lng=Math.min(e.lng,this._southWest.lng),this._northEast.lat=Math.max(e.lat,this._northEast.lat),this._northEast.lng=Math.max(e.lng,this._northEast.lng)):(this._southWest=new r.LatLng(e.lat,e.lng),this._northEast=new r.LatLng(e.lat,e.lng)):e instanceof r.LatLngBounds&&(this.extend(e._southWest),this.extend(e._northEast)),this},pad:function(e){var t=this._southWest,n=this._northEast,i=Math.abs(t.lat-n.lat)*e,o=Math.abs(t.lng-n.lng)*e;return new r.LatLngBounds(new r.LatLng(t.lat-i,t.lng-o),new r.LatLng(n.lat+i,n.lng+o))},getCenter:function(){return new r.LatLng((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new r.LatLng(this.getNorth(),this.getWest())},getSouthEast:function(){return new r.LatLng(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(e){e="number"==typeof e[0]||e instanceof r.LatLng?r.latLng(e):r.latLngBounds(e);var t,n,i=this._southWest,o=this._northEast;return e instanceof r.LatLngBounds?(t=e.getSouthWest(),n=e.getNorthEast()):t=n=e,t.lat>=i.lat&&n.lat<=o.lat&&t.lng>=i.lng&&n.lng<=o.lng},intersects:function(e){e=r.latLngBounds(e);var t=this._southWest,n=this._northEast,i=e.getSouthWest(),o=e.getNorthEast(),a=o.lat>=t.lat&&i.lat<=n.lat,s=o.lng>=t.lng&&i.lng<=n.lng;return a&&s},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(e){return!!e&&(e=r.latLngBounds(e),this._southWest.equals(e.getSouthWest())&&this._northEast.equals(e.getNorthEast()))},isValid:function(){return!(!this._southWest||!this._northEast)}},r.latLngBounds=function(e,t){return!e||e instanceof r.LatLngBounds?e:new r.LatLngBounds(e,t)},r.Projection={},r.Projection.SphericalMercator={MAX_LATITUDE:85.0511287798,project:function(e){var t=r.LatLng.DEG_TO_RAD,n=this.MAX_LATITUDE,i=Math.max(Math.min(n,e.lat),-n),o=e.lng*t,a=i*t;return a=Math.log(Math.tan(Math.PI/4+a/2)),new r.Point(o,a)},unproject:function(e){var t=r.LatLng.RAD_TO_DEG,n=e.x*t,i=(2*Math.atan(Math.exp(e.y))-Math.PI/2)*t;return new r.LatLng(i,n)}},r.Projection.LonLat={project:function(e){return new r.Point(e.lng,e.lat)},unproject:function(e){return new r.LatLng(e.y,e.x)}},r.CRS={latLngToPoint:function(e,t){var n=this.projection.project(e),i=this.scale(t);return this.transformation._transform(n,i)},pointToLatLng:function(e,t){var n=this.scale(t),i=this.transformation.untransform(e,n);return this.projection.unproject(i)},project:function(e){return this.projection.project(e)},scale:function(e){return 256*Math.pow(2,e)},getSize:function(e){var t=this.scale(e);return r.point(t,t)}},r.CRS.Simple=r.extend({},r.CRS,{projection:r.Projection.LonLat,transformation:new r.Transformation(1,0,-1,0),scale:function(e){return Math.pow(2,e)}}),r.CRS.EPSG3857=r.extend({},r.CRS,{code:"EPSG:3857",projection:r.Projection.SphericalMercator,transformation:new r.Transformation(.5/Math.PI,.5,-.5/Math.PI,.5),project:function(e){return this.projection.project(e).multiplyBy(6378137)}}),r.CRS.EPSG900913=r.extend({},r.CRS.EPSG3857,{code:"EPSG:900913"}),r.CRS.EPSG4326=r.extend({},r.CRS,{code:"EPSG:4326",projection:r.Projection.LonLat,transformation:new r.Transformation(1/360,.5,-1/360,.5)}),r.Map=r.Class.extend({includes:r.Mixin.Events,options:{crs:r.CRS.EPSG3857,fadeAnimation:r.DomUtil.TRANSITION&&!r.Browser.android23,trackResize:!0,markerZoomAnimation:r.DomUtil.TRANSITION&&r.Browser.any3d},initialize:function(e,t){t=r.setOptions(this,t),this._initContainer(e),this._initLayout(),this._onResize=r.bind(this._onResize,this),this._initEvents(),t.maxBounds&&this.setMaxBounds(t.maxBounds),t.center&&t.zoom!==n&&this.setView(r.latLng(t.center),t.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._tileLayersNum=0,this.callInitHooks(),this._addLayers(t.layers)},setView:function(e,t){return t=t===n?this.getZoom():t,this._resetView(r.latLng(e),this._limitZoom(t)),this},setZoom:function(e,t){return this._loaded?this.setView(this.getCenter(),e,{zoom:t}):(this._zoom=this._limitZoom(e),this)},zoomIn:function(e,t){return this.setZoom(this._zoom+(e||1),t)},zoomOut:function(e,t){return this.setZoom(this._zoom-(e||1),t)},setZoomAround:function(e,t,n){var i=this.getZoomScale(t),o=this.getSize().divideBy(2),a=(e instanceof r.Point?e:this.latLngToContainerPoint(e)).subtract(o).multiplyBy(1-1/i),s=this.containerPointToLatLng(o.add(a));return this.setView(s,t,{zoom:n})},fitBounds:function(e,t){t=t||{},e=e.getBounds?e.getBounds():r.latLngBounds(e);var n=r.point(t.paddingTopLeft||t.padding||[0,0]),i=r.point(t.paddingBottomRight||t.padding||[0,0]),o=this.getBoundsZoom(e,!1,n.add(i));o=t.maxZoom?Math.min(t.maxZoom,o):o;var a=i.subtract(n).divideBy(2),s=this.project(e.getSouthWest(),o),l=this.project(e.getNorthEast(),o),u=this.unproject(s.add(l).divideBy(2).add(a),o);return this.setView(u,o,t)},fitWorld:function(e){return this.fitBounds([[-90,-180],[90,180]],e)},panTo:function(e,t){return this.setView(e,this._zoom,{pan:t})},panBy:function(e){return this.fire("movestart"),this._rawPanBy(r.point(e)),this.fire("move"),this.fire("moveend")},setMaxBounds:function(e){return e=r.latLngBounds(e),this.options.maxBounds=e,e?(this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds,this)):this.off("moveend",this._panInsideMaxBounds,this)},panInsideBounds:function(e,t){var n=this.getCenter(),i=this._limitCenter(n,this._zoom,e);return n.equals(i)?this:this.panTo(i,t)},addLayer:function(e){var t=r.stamp(e);return this._layers[t]?this:(this._layers[t]=e,!e.options||isNaN(e.options.maxZoom)&&isNaN(e.options.minZoom)||(this._zoomBoundLayers[t]=e,this._updateZoomLevels()),this.options.zoomAnimation&&r.TileLayer&&e instanceof r.TileLayer&&(this._tileLayersNum++,this._tileLayersToLoad++,e.on("load",this._onTileLayerLoad,this)),this._loaded&&this._layerAdd(e),this)},removeLayer:function(e){var t=r.stamp(e);return this._layers[t]?(this._loaded&&e.onRemove(this),delete this._layers[t],this._loaded&&this.fire("layerremove",{layer:e}),this._zoomBoundLayers[t]&&(delete this._zoomBoundLayers[t],this._updateZoomLevels()),this.options.zoomAnimation&&r.TileLayer&&e instanceof r.TileLayer&&(this._tileLayersNum--,this._tileLayersToLoad--,e.off("load",this._onTileLayerLoad,this)),this):this},hasLayer:function(e){return!!e&&r.stamp(e)in this._layers},eachLayer:function(e,t){for(var n in this._layers)e.call(t,this._layers[n]);return this},invalidateSize:function(e){if(!this._loaded)return this;e=r.extend({animate:!1,pan:!0},!0===e?{animate:!0}:e);var t=this.getSize();this._sizeChanged=!0,this._initialCenter=null;var n=this.getSize(),i=t.divideBy(2).round(),o=n.divideBy(2).round(),a=i.subtract(o);return a.x||a.y?(e.animate&&e.pan?this.panBy(a):(e.pan&&this._rawPanBy(a),this.fire("move"),e.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(r.bind(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:t,newSize:n})):this},addHandler:function(e,t){if(!t)return this;var n=this[e]=new t(this);return this._handlers.push(n),this.options[e]&&n.enable(),this},remove:function(){this._loaded&&this.fire("unload"),this._initEvents("off");try{delete this._container._leaflet}catch(e){this._container._leaflet=n}return this._clearPanes(),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this},getCenter:function(){return this._checkIfLoaded(),this._initialCenter&&!this._moved()?this._initialCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var e=this.getPixelBounds(),t=this.unproject(e.getBottomLeft()),n=this.unproject(e.getTopRight());return new r.LatLngBounds(t,n)},getMinZoom:function(){return this.options.minZoom===n?this._layersMinZoom===n?0:this._layersMinZoom:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===n?this._layersMaxZoom===n?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(e,t,n){e=r.latLngBounds(e);var i,o=this.getMinZoom()-(t?1:0),a=this.getMaxZoom(),s=this.getSize(),l=e.getNorthWest(),u=e.getSouthEast(),c=!0;n=r.point(n||[0,0]);do{o++,i=this.project(u,o).subtract(this.project(l,o)).add(n),c=t?i.x<s.x||i.y<s.y:s.contains(i)}while(c&&a>=o);return c&&t?null:t?o:o-1},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new r.Point(this._container.clientWidth,this._container.clientHeight),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(){var e=this._getTopLeftPoint();return new r.Bounds(e,e.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._initialTopLeftPoint},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(e){var t=this.options.crs;return t.scale(e)/t.scale(this._zoom)},getScaleZoom:function(e){return this._zoom+Math.log(e)/Math.LN2},project:function(e,t){return t=t===n?this._zoom:t,this.options.crs.latLngToPoint(r.latLng(e),t)},unproject:function(e,t){return t=t===n?this._zoom:t,this.options.crs.pointToLatLng(r.point(e),t)},layerPointToLatLng:function(e){var t=r.point(e).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(e){return this.project(r.latLng(e))._round()._subtract(this.getPixelOrigin())},containerPointToLayerPoint:function(e){return r.point(e).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(e){return r.point(e).add(this._getMapPanePos())},containerPointToLatLng:function(e){var t=this.containerPointToLayerPoint(r.point(e));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(e){return this.layerPointToContainerPoint(this.latLngToLayerPoint(r.latLng(e)))},mouseEventToContainerPoint:function(e){return r.DomEvent.getMousePosition(e,this._container)},mouseEventToLayerPoint:function(e){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(e))},mouseEventToLatLng:function(e){return this.layerPointToLatLng(this.mouseEventToLayerPoint(e))},_initContainer:function(e){var t=this._container=r.DomUtil.get(e);if(!t)throw new Error("Map container not found.");if(t._leaflet)throw new Error("Map container is already initialized.");t._leaflet=!0},_initLayout:function(){var e=this._container;r.DomUtil.addClass(e,"leaflet-container"+(r.Browser.touch?" leaflet-touch":"")+(r.Browser.retina?" leaflet-retina":"")+(r.Browser.ielt9?" leaflet-oldie":"")+(this.options.fadeAnimation?" leaflet-fade-anim":""));var t=r.DomUtil.getStyle(e,"position");"absolute"!==t&&"relative"!==t&&"fixed"!==t&&(e.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var e=this._panes={};this._mapPane=e.mapPane=this._createPane("leaflet-map-pane",this._container),this._tilePane=e.tilePane=this._createPane("leaflet-tile-pane",this._mapPane),e.objectsPane=this._createPane("leaflet-objects-pane",this._mapPane),e.shadowPane=this._createPane("leaflet-shadow-pane"),e.overlayPane=this._createPane("leaflet-overlay-pane"),e.markerPane=this._createPane("leaflet-marker-pane"),e.popupPane=this._createPane("leaflet-popup-pane");var t=" leaflet-zoom-hide";this.options.markerZoomAnimation||(r.DomUtil.addClass(e.markerPane,t),r.DomUtil.addClass(e.shadowPane,t),r.DomUtil.addClass(e.popupPane,t))},_createPane:function(e,t){return r.DomUtil.create("div",e,t||this._panes.objectsPane)},_clearPanes:function(){this._container.removeChild(this._mapPane)},_addLayers:function(e){for(var t=0,n=(e=e?r.Util.isArray(e)?e:[e]:[]).length;n>t;t++)this.addLayer(e[t])},_resetView:function(e,t,n,i){var o=this._zoom!==t;i||(this.fire("movestart"),o&&this.fire("zoomstart")),this._zoom=t,this._initialCenter=e,this._initialTopLeftPoint=this._getNewTopLeftPoint(e),n?this._initialTopLeftPoint._add(this._getMapPanePos()):r.DomUtil.setPosition(this._mapPane,new r.Point(0,0)),this._tileLayersToLoad=this._tileLayersNum;var a=!this._loaded;this._loaded=!0,this.fire("viewreset",{hard:!n}),a&&(this.fire("load"),this.eachLayer(this._layerAdd,this)),this.fire("move"),(o||i)&&this.fire("zoomend"),this.fire("moveend",{hard:!n})},_rawPanBy:function(e){r.DomUtil.setPosition(this._mapPane,this._getMapPanePos().subtract(e))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_updateZoomLevels:function(){var e,t=1/0,i=-1/0,r=this._getZoomSpan();for(e in this._zoomBoundLayers){var o=this._zoomBoundLayers[e];isNaN(o.options.minZoom)||(t=Math.min(t,o.options.minZoom)),isNaN(o.options.maxZoom)||(i=Math.max(i,o.options.maxZoom))}e===n?this._layersMaxZoom=this._layersMinZoom=n:(this._layersMaxZoom=i,this._layersMinZoom=t),r!==this._getZoomSpan()&&this.fire("zoomlevelschange")},_panInsideMaxBounds:function(){this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){if(r.DomEvent){t=t||"on",r.DomEvent[t](this._container,"click",this._onMouseClick,this);var n,i,o=["dblclick","mousedown","mouseup","mouseenter","mouseleave","mousemove","contextmenu"];for(n=0,i=o.length;i>n;n++)r.DomEvent[t](this._container,o[n],this._fireMouseEvent,this);this.options.trackResize&&r.DomEvent[t](e,"resize",this._onResize,this)}},_onResize:function(){r.Util.cancelAnimFrame(this._resizeRequest),this._resizeRequest=r.Util.requestAnimFrame((function(){this.invalidateSize({debounceMoveend:!0})}),this,!1,this._container)},_onMouseClick:function(e){!this._loaded||!e._simulated&&(this.dragging&&this.dragging.moved()||this.boxZoom&&this.boxZoom.moved())||r.DomEvent._skipped(e)||(this.fire("preclick"),this._fireMouseEvent(e))},_fireMouseEvent:function(e){if(this._loaded&&!r.DomEvent._skipped(e)){var t=e.type;if(t="mouseenter"===t?"mouseover":"mouseleave"===t?"mouseout":t,this.hasEventListeners(t)){"contextmenu"===t&&r.DomEvent.preventDefault(e);var n=this.mouseEventToContainerPoint(e),i=this.containerPointToLayerPoint(n),o=this.layerPointToLatLng(i);this.fire(t,{latlng:o,layerPoint:i,containerPoint:n,originalEvent:e})}}},_onTileLayerLoad:function(){this._tileLayersToLoad--,this._tileLayersNum&&!this._tileLayersToLoad&&this.fire("tilelayersload")},_clearHandlers:function(){for(var e=0,t=this._handlers.length;t>e;e++)this._handlers[e].disable()},whenReady:function(e,t){return this._loaded?e.call(t||this,this):this.on("load",e,t),this},_layerAdd:function(e){e.onAdd(this),this.fire("layeradd",{layer:e})},_getMapPanePos:function(){return r.DomUtil.getPosition(this._mapPane)},_moved:function(){var e=this._getMapPanePos();return e&&!e.equals([0,0])},_getTopLeftPoint:function(){return this.getPixelOrigin().subtract(this._getMapPanePos())},_getNewTopLeftPoint:function(e,t){var n=this.getSize()._divideBy(2);return this.project(e,t)._subtract(n)._round()},_latLngToNewLayerPoint:function(e,t,n){var i=this._getNewTopLeftPoint(n,t).add(this._getMapPanePos());return this.project(e,t)._subtract(i)},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(e){return this.latLngToLayerPoint(e).subtract(this._getCenterLayerPoint())},_limitCenter:function(e,t,n){if(!n)return e;var i=this.project(e,t),o=this.getSize().divideBy(2),a=new r.Bounds(i.subtract(o),i.add(o)),s=this._getBoundsOffset(a,n,t);return this.unproject(i.add(s),t)},_limitOffset:function(e,t){if(!t)return e;var n=this.getPixelBounds(),i=new r.Bounds(n.min.add(e),n.max.add(e));return e.add(this._getBoundsOffset(i,t))},_getBoundsOffset:function(e,t,n){var i=this.project(t.getNorthWest(),n).subtract(e.min),o=this.project(t.getSouthEast(),n).subtract(e.max),a=this._rebound(i.x,-o.x),s=this._rebound(i.y,-o.y);return new r.Point(a,s)},_rebound:function(e,t){return e+t>0?Math.round(e-t)/2:Math.max(0,Math.ceil(e))-Math.max(0,Math.floor(t))},_limitZoom:function(e){var t=this.getMinZoom(),n=this.getMaxZoom();return Math.max(t,Math.min(n,e))}}),r.map=function(e,t){return new r.Map(e,t)},r.Projection.Mercator={MAX_LATITUDE:85.0840591556,R_MINOR:6356752.314245179,R_MAJOR:6378137,project:function(e){var t=r.LatLng.DEG_TO_RAD,n=this.MAX_LATITUDE,i=Math.max(Math.min(n,e.lat),-n),o=this.R_MAJOR,a=this.R_MINOR,s=e.lng*t*o,l=i*t,u=a/o,c=Math.sqrt(1-u*u),d=c*Math.sin(l);d=Math.pow((1-d)/(1+d),.5*c);var h=Math.tan(.5*(.5*Math.PI-l))/d;return l=-o*Math.log(h),new r.Point(s,l)},unproject:function(e){for(var t,n=r.LatLng.RAD_TO_DEG,i=this.R_MAJOR,o=this.R_MINOR,a=e.x*n/i,s=o/i,l=Math.sqrt(1-s*s),u=Math.exp(-e.y/i),c=Math.PI/2-2*Math.atan(u),d=15,h=.1;Math.abs(h)>1e-7&&--d>0;)t=l*Math.sin(c),c+=h=Math.PI/2-2*Math.atan(u*Math.pow((1-t)/(1+t),.5*l))-c;return new r.LatLng(c*n,a)}},r.CRS.EPSG3395=r.extend({},r.CRS,{code:"EPSG:3395",projection:r.Projection.Mercator,transformation:function(){var e=r.Projection.Mercator.R_MAJOR,t=.5/(Math.PI*e);return new r.Transformation(t,.5,-t,.5)}()}),r.TileLayer=r.Class.extend({includes:r.Mixin.Events,options:{minZoom:0,maxZoom:18,tileSize:256,subdomains:"abc",errorTileUrl:"",attribution:"",zoomOffset:0,opacity:1,unloadInvisibleTiles:r.Browser.mobile,updateWhenIdle:r.Browser.mobile},initialize:function(e,t){(t=r.setOptions(this,t)).detectRetina&&r.Browser.retina&&t.maxZoom>0&&(t.tileSize=Math.floor(t.tileSize/2),t.zoomOffset++,t.minZoom>0&&t.minZoom--,this.options.maxZoom--),t.bounds&&(t.bounds=r.latLngBounds(t.bounds)),this._url=e;var n=this.options.subdomains;"string"==typeof n&&(this.options.subdomains=n.split(""))},onAdd:function(e){this._map=e,this._animated=e._zoomAnimated,this._initContainer(),e.on({viewreset:this._reset,moveend:this._update},this),this._animated&&e.on({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||(this._limitedUpdate=r.Util.limitExecByInterval(this._update,150,this),e.on("move",this._limitedUpdate,this)),this._reset(),this._update()},addTo:function(e){return e.addLayer(this),this},onRemove:function(e){this._container.parentNode.removeChild(this._container),e.off({viewreset:this._reset,moveend:this._update},this),this._animated&&e.off({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||e.off("move",this._limitedUpdate,this),this._container=null,this._map=null},bringToFront:function(){var e=this._map._panes.tilePane;return this._container&&(e.appendChild(this._container),this._setAutoZIndex(e,Math.max)),this},bringToBack:function(){var e=this._map._panes.tilePane;return this._container&&(e.insertBefore(this._container,e.firstChild),this._setAutoZIndex(e,Math.min)),this},getAttribution:function(){return this.options.attribution},getContainer:function(){return this._container},setOpacity:function(e){return this.options.opacity=e,this._map&&this._updateOpacity(),this},setZIndex:function(e){return this.options.zIndex=e,this._updateZIndex(),this},setUrl:function(e,t){return this._url=e,t||this.redraw(),this},redraw:function(){return this._map&&(this._reset({hard:!0}),this._update()),this},_updateZIndex:function(){this._container&&this.options.zIndex!==n&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(e,t){var n,i,r,o=e.children,a=-t(1/0,-1/0);for(i=0,r=o.length;r>i;i++)o[i]!==this._container&&(n=parseInt(o[i].style.zIndex,10),isNaN(n)||(a=t(a,n)));this.options.zIndex=this._container.style.zIndex=(isFinite(a)?a:0)+t(1,-1)},_updateOpacity:function(){var e,t=this._tiles;if(r.Browser.ielt9)for(e in t)r.DomUtil.setOpacity(t[e],this.options.opacity);else r.DomUtil.setOpacity(this._container,this.options.opacity)},_initContainer:function(){var e=this._map._panes.tilePane;if(!this._container){if(this._container=r.DomUtil.create("div","leaflet-layer"),this._updateZIndex(),this._animated){var t="leaflet-tile-container";this._bgBuffer=r.DomUtil.create("div",t,this._container),this._tileContainer=r.DomUtil.create("div",t,this._container)}else this._tileContainer=this._container;e.appendChild(this._container),this.options.opacity<1&&this._updateOpacity()}},_reset:function(e){for(var t in this._tiles)this.fire("tileunload",{tile:this._tiles[t]});this._tiles={},this._tilesToLoad=0,this.options.reuseTiles&&(this._unusedTiles=[]),this._tileContainer.innerHTML="",this._animated&&e&&e.hard&&this._clearBgBuffer(),this._initContainer()},_getTileSize:function(){var e=this._map,t=e.getZoom()+this.options.zoomOffset,n=this.options.maxNativeZoom,i=this.options.tileSize;return n&&t>n&&(i=Math.round(e.getZoomScale(t)/e.getZoomScale(n)*i)),i},_update:function(){if(this._map){var e=this._map,t=e.getPixelBounds(),n=e.getZoom(),i=this._getTileSize();if(!(n>this.options.maxZoom||n<this.options.minZoom)){var o=r.bounds(t.min.divideBy(i)._floor(),t.max.divideBy(i)._floor());this._addTilesFromCenterOut(o),(this.options.unloadInvisibleTiles||this.options.reuseTiles)&&this._removeOtherTiles(o)}}},_addTilesFromCenterOut:function(e){var n,i,o,a=[],s=e.getCenter();for(n=e.min.y;n<=e.max.y;n++)for(i=e.min.x;i<=e.max.x;i++)o=new r.Point(i,n),this._tileShouldBeLoaded(o)&&a.push(o);var l=a.length;if(0!==l){a.sort((function(e,t){return e.distanceTo(s)-t.distanceTo(s)}));var u=t.createDocumentFragment();for(this._tilesToLoad||this.fire("loading"),this._tilesToLoad+=l,i=0;l>i;i++)this._addTile(a[i],u);this._tileContainer.appendChild(u)}},_tileShouldBeLoaded:function(e){if(e.x+":"+e.y in this._tiles)return!1;var t=this.options;if(!t.continuousWorld){var n=this._getWrapTileNum();if(t.noWrap&&(e.x<0||e.x>=n.x)||e.y<0||e.y>=n.y)return!1}if(t.bounds){var i=this._getTileSize(),r=e.multiplyBy(i),o=r.add([i,i]),a=this._map.unproject(r),s=this._map.unproject(o);if(t.continuousWorld||t.noWrap||(a=a.wrap(),s=s.wrap()),!t.bounds.intersects([a,s]))return!1}return!0},_removeOtherTiles:function(e){var t,n,i,r;for(r in this._tiles)t=r.split(":"),n=parseInt(t[0],10),i=parseInt(t[1],10),(n<e.min.x||n>e.max.x||i<e.min.y||i>e.max.y)&&this._removeTile(r)},_removeTile:function(e){var t=this._tiles[e];this.fire("tileunload",{tile:t,url:t.src}),this.options.reuseTiles?(r.DomUtil.removeClass(t,"leaflet-tile-loaded"),this._unusedTiles.push(t)):t.parentNode===this._tileContainer&&this._tileContainer.removeChild(t),r.Browser.android||(t.onload=null,t.src=r.Util.emptyImageUrl),delete this._tiles[e]},_addTile:function(e,t){var n=this._getTilePos(e),i=this._getTile();r.DomUtil.setPosition(i,n,r.Browser.chrome),this._tiles[e.x+":"+e.y]=i,this._loadTile(i,e),i.parentNode!==this._tileContainer&&t.appendChild(i)},_getZoomForUrl:function(){var e=this.options,t=this._map.getZoom();return e.zoomReverse&&(t=e.maxZoom-t),t+=e.zoomOffset,e.maxNativeZoom?Math.min(t,e.maxNativeZoom):t},_getTilePos:function(e){var t=this._map.getPixelOrigin(),n=this._getTileSize();return e.multiplyBy(n).subtract(t)},getTileUrl:function(e){return r.Util.template(this._url,r.extend({s:this._getSubdomain(e),z:e.z,x:e.x,y:e.y},this.options))},_getWrapTileNum:function(){return this._map.options.crs.getSize(this._map.getZoom()).divideBy(this._getTileSize())._floor()},_adjustTilePoint:function(e){var t=this._getWrapTileNum();this.options.continuousWorld||this.options.noWrap||(e.x=(e.x%t.x+t.x)%t.x),this.options.tms&&(e.y=t.y-e.y-1),e.z=this._getZoomForUrl()},_getSubdomain:function(e){var t=Math.abs(e.x+e.y)%this.options.subdomains.length;return this.options.subdomains[t]},_getTile:function(){if(this.options.reuseTiles&&this._unusedTiles.length>0){var e=this._unusedTiles.pop();return this._resetTile(e),e}return this._createTile()},_resetTile:function(){},_createTile:function(){var e=r.DomUtil.create("img","leaflet-tile");return e.style.width=e.style.height=this._getTileSize()+"px",e.galleryimg="no",e.onselectstart=e.onmousemove=r.Util.falseFn,r.Browser.ielt9&&this.options.opacity!==n&&r.DomUtil.setOpacity(e,this.options.opacity),r.Browser.mobileWebkit3d&&(e.style.WebkitBackfaceVisibility="hidden"),e},_loadTile:function(e,t){e._layer=this,e.onload=this._tileOnLoad,e.onerror=this._tileOnError,this._adjustTilePoint(t),e.src=this.getTileUrl(t),this.fire("tileloadstart",{tile:e,url:e.src})},_tileLoaded:function(){this._tilesToLoad--,this._animated&&r.DomUtil.addClass(this._tileContainer,"leaflet-zoom-animated"),this._tilesToLoad||(this.fire("load"),this._animated&&(clearTimeout(this._clearBgBufferTimer),this._clearBgBufferTimer=setTimeout(r.bind(this._clearBgBuffer,this),500)))},_tileOnLoad:function(){var e=this._layer;this.src!==r.Util.emptyImageUrl&&(r.DomUtil.addClass(this,"leaflet-tile-loaded"),e.fire("tileload",{tile:this,url:this.src})),e._tileLoaded()},_tileOnError:function(){var e=this._layer;e.fire("tileerror",{tile:this,url:this.src});var t=e.options.errorTileUrl;t&&(this.src=t),e._tileLoaded()}}),r.tileLayer=function(e,t){return new r.TileLayer(e,t)},r.TileLayer.WMS=r.TileLayer.extend({defaultWmsParams:{service:"WMS",request:"GetMap",version:"1.1.1",layers:"",styles:"",format:"image/jpeg",transparent:!1},initialize:function(e,t){this._url=e;var n=r.extend({},this.defaultWmsParams),i=t.tileSize||this.options.tileSize;for(var o in t.detectRetina&&r.Browser.retina?n.width=n.height=2*i:n.width=n.height=i,t)this.options.hasOwnProperty(o)||"crs"===o||(n[o]=t[o]);this.wmsParams=n,r.setOptions(this,t)},onAdd:function(e){this._crs=this.options.crs||e.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var t=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[t]=this._crs.code,r.TileLayer.prototype.onAdd.call(this,e)},getTileUrl:function(e){var t=this._map,n=this.options.tileSize,i=e.multiplyBy(n),o=i.add([n,n]),a=this._crs.project(t.unproject(i,e.z)),s=this._crs.project(t.unproject(o,e.z)),l=this._wmsVersion>=1.3&&this._crs===r.CRS.EPSG4326?[s.y,a.x,a.y,s.x].join(","):[a.x,s.y,s.x,a.y].join(","),u=r.Util.template(this._url,{s:this._getSubdomain(e)});return u+r.Util.getParamString(this.wmsParams,u,!0)+"&BBOX="+l},setParams:function(e,t){return r.extend(this.wmsParams,e),t||this.redraw(),this}}),r.tileLayer.wms=function(e,t){return new r.TileLayer.WMS(e,t)},r.TileLayer.Canvas=r.TileLayer.extend({options:{async:!1},initialize:function(e){r.setOptions(this,e)},redraw:function(){for(var e in this._map&&(this._reset({hard:!0}),this._update()),this._tiles)this._redrawTile(this._tiles[e]);return this},_redrawTile:function(e){this.drawTile(e,e._tilePoint,this._map._zoom)},_createTile:function(){var e=r.DomUtil.create("canvas","leaflet-tile");return e.width=e.height=this.options.tileSize,e.onselectstart=e.onmousemove=r.Util.falseFn,e},_loadTile:function(e,t){e._layer=this,e._tilePoint=t,this._redrawTile(e),this.options.async||this.tileDrawn(e)},drawTile:function(){},tileDrawn:function(e){this._tileOnLoad.call(e)}}),r.tileLayer.canvas=function(e){return new r.TileLayer.Canvas(e)},r.ImageOverlay=r.Class.extend({includes:r.Mixin.Events,options:{opacity:1},initialize:function(e,t,n){this._url=e,this._bounds=r.latLngBounds(t),r.setOptions(this,n)},onAdd:function(e){this._map=e,this._image||this._initImage(),e._panes.overlayPane.appendChild(this._image),e.on("viewreset",this._reset,this),e.options.zoomAnimation&&r.Browser.any3d&&e.on("zoomanim",this._animateZoom,this),this._reset()},onRemove:function(e){e.getPanes().overlayPane.removeChild(this._image),e.off("viewreset",this._reset,this),e.options.zoomAnimation&&e.off("zoomanim",this._animateZoom,this)},addTo:function(e){return e.addLayer(this),this},setOpacity:function(e){return this.options.opacity=e,this._updateOpacity(),this},bringToFront:function(){return this._image&&this._map._panes.overlayPane.appendChild(this._image),this},bringToBack:function(){var e=this._map._panes.overlayPane;return this._image&&e.insertBefore(this._image,e.firstChild),this},setUrl:function(e){this._url=e,this._image.src=this._url},getAttribution:function(){return this.options.attribution},_initImage:function(){this._image=r.DomUtil.create("img","leaflet-image-layer"),this._map.options.zoomAnimation&&r.Browser.any3d?r.DomUtil.addClass(this._image,"leaflet-zoom-animated"):r.DomUtil.addClass(this._image,"leaflet-zoom-hide"),this._updateOpacity(),r.extend(this._image,{galleryimg:"no",onselectstart:r.Util.falseFn,onmousemove:r.Util.falseFn,onload:r.bind(this._onImageLoad,this),src:this._url})},_animateZoom:function(e){var t=this._map,n=this._image,i=t.getZoomScale(e.zoom),o=this._bounds.getNorthWest(),a=this._bounds.getSouthEast(),s=t._latLngToNewLayerPoint(o,e.zoom,e.center),l=t._latLngToNewLayerPoint(a,e.zoom,e.center)._subtract(s),u=s._add(l._multiplyBy(.5*(1-1/i)));n.style[r.DomUtil.TRANSFORM]=r.DomUtil.getTranslateString(u)+" scale("+i+") "},_reset:function(){var e=this._image,t=this._map.latLngToLayerPoint(this._bounds.getNorthWest()),n=this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(t);r.DomUtil.setPosition(e,t),e.style.width=n.x+"px",e.style.height=n.y+"px"},_onImageLoad:function(){this.fire("load")},_updateOpacity:function(){r.DomUtil.setOpacity(this._image,this.options.opacity)}}),r.imageOverlay=function(e,t,n){return new r.ImageOverlay(e,t,n)},r.Icon=r.Class.extend({options:{className:""},initialize:function(e){r.setOptions(this,e)},createIcon:function(e){return this._createIcon("icon",e)},createShadow:function(e){return this._createIcon("shadow",e)},_createIcon:function(e,t){var n,i=this._getIconUrl(e);if(!i){if("icon"===e)throw new Error("iconUrl not set in Icon options (see the docs).");return null}return n=t&&"IMG"===t.tagName?this._createImg(i,t):this._createImg(i),this._setIconStyles(n,e),n},_setIconStyles:function(e,t){var n,i=this.options,o=r.point(i[t+"Size"]);!(n="shadow"===t?r.point(i.shadowAnchor||i.iconAnchor):r.point(i.iconAnchor))&&o&&(n=o.divideBy(2,!0)),e.className="leaflet-marker-"+t+" "+i.className,n&&(e.style.marginLeft=-n.x+"px",e.style.marginTop=-n.y+"px"),o&&(e.style.width=o.x+"px",e.style.height=o.y+"px")},_createImg:function(e,n){return(n=n||t.createElement("img")).src=e,n},_getIconUrl:function(e){return r.Browser.retina&&this.options[e+"RetinaUrl"]?this.options[e+"RetinaUrl"]:this.options[e+"Url"]}}),r.icon=function(e){return new r.Icon(e)},r.Icon.Default=r.Icon.extend({options:{iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]},_getIconUrl:function(e){var t=e+"Url";if(this.options[t])return this.options[t];r.Browser.retina&&"icon"===e&&(e+="-2x");var n=r.Icon.Default.imagePath;if(!n)throw new Error("Couldn't autodetect L.Icon.Default.imagePath, set it manually.");return n+"/marker-"+e+".png"}}),r.Icon.Default.imagePath=function(){var e,n,i,r,o=t.getElementsByTagName("script"),a=/[\/^]leaflet[\-\._]?([\w\-\._]*)\.js\??/;for(e=0,n=o.length;n>e;e++)if((i=o[e].src).match(a))return((r=i.split(a)[0])?r+"/":"")+"images"}(),r.Marker=r.Class.extend({includes:r.Mixin.Events,options:{icon:new r.Icon.Default,title:"",alt:"",clickable:!0,draggable:!1,keyboard:!0,zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250},initialize:function(e,t){r.setOptions(this,t),this._latlng=r.latLng(e)},onAdd:function(e){this._map=e,e.on("viewreset",this.update,this),this._initIcon(),this.update(),this.fire("add"),e.options.zoomAnimation&&e.options.markerZoomAnimation&&e.on("zoomanim",this._animateZoom,this)},addTo:function(e){return e.addLayer(this),this},onRemove:function(e){this.dragging&&this.dragging.disable(),this._removeIcon(),this._removeShadow(),this.fire("remove"),e.off({viewreset:this.update,zoomanim:this._animateZoom},this),this._map=null},getLatLng:function(){return this._latlng},setLatLng:function(e){return this._latlng=r.latLng(e),this.update(),this.fire("move",{latlng:this._latlng})},setZIndexOffset:function(e){return this.options.zIndexOffset=e,this.update(),this},setIcon:function(e){return this.options.icon=e,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup),this},update:function(){return this._icon&&this._setPos(this._map.latLngToLayerPoint(this._latlng).round()),this},_initIcon:function(){var e=this.options,t=this._map,n=t.options.zoomAnimation&&t.options.markerZoomAnimation?"leaflet-zoom-animated":"leaflet-zoom-hide",i=e.icon.createIcon(this._icon),o=!1;i!==this._icon&&(this._icon&&this._removeIcon(),o=!0,e.title&&(i.title=e.title),e.alt&&(i.alt=e.alt)),r.DomUtil.addClass(i,n),e.keyboard&&(i.tabIndex="0"),this._icon=i,this._initInteraction(),e.riseOnHover&&r.DomEvent.on(i,"mouseover",this._bringToFront,this).on(i,"mouseout",this._resetZIndex,this);var a=e.icon.createShadow(this._shadow),s=!1;a!==this._shadow&&(this._removeShadow(),s=!0),a&&r.DomUtil.addClass(a,n),this._shadow=a,e.opacity<1&&this._updateOpacity();var l=this._map._panes;o&&l.markerPane.appendChild(this._icon),a&&s&&l.shadowPane.appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&r.DomEvent.off(this._icon,"mouseover",this._bringToFront).off(this._icon,"mouseout",this._resetZIndex),this._map._panes.markerPane.removeChild(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&this._map._panes.shadowPane.removeChild(this._shadow),this._shadow=null},_setPos:function(e){r.DomUtil.setPosition(this._icon,e),this._shadow&&r.DomUtil.setPosition(this._shadow,e),this._zIndex=e.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(e){this._icon.style.zIndex=this._zIndex+e},_animateZoom:function(e){var t=this._map._latLngToNewLayerPoint(this._latlng,e.zoom,e.center).round();this._setPos(t)},_initInteraction:function(){if(this.options.clickable){var e=this._icon,t=["dblclick","mousedown","mouseover","mouseout","contextmenu"];r.DomUtil.addClass(e,"leaflet-clickable"),r.DomEvent.on(e,"click",this._onMouseClick,this),r.DomEvent.on(e,"keypress",this._onKeyPress,this);for(var n=0;n<t.length;n++)r.DomEvent.on(e,t[n],this._fireMouseEvent,this);r.Handler.MarkerDrag&&(this.dragging=new r.Handler.MarkerDrag(this),this.options.draggable&&this.dragging.enable())}},_onMouseClick:function(e){var t=this.dragging&&this.dragging.moved();(this.hasEventListeners(e.type)||t)&&r.DomEvent.stopPropagation(e),t||(this.dragging&&this.dragging._enabled||!this._map.dragging||!this._map.dragging.moved())&&this.fire(e.type,{originalEvent:e,latlng:this._latlng})},_onKeyPress:function(e){13===e.keyCode&&this.fire("click",{originalEvent:e,latlng:this._latlng})},_fireMouseEvent:function(e){this.fire(e.type,{originalEvent:e,latlng:this._latlng}),"contextmenu"===e.type&&this.hasEventListeners(e.type)&&r.DomEvent.preventDefault(e),"mousedown"!==e.type?r.DomEvent.stopPropagation(e):r.DomEvent.preventDefault(e)},setOpacity:function(e){return this.options.opacity=e,this._map&&this._updateOpacity(),this},_updateOpacity:function(){r.DomUtil.setOpacity(this._icon,this.options.opacity),this._shadow&&r.DomUtil.setOpacity(this._shadow,this.options.opacity)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)}}),r.marker=function(e,t){return new r.Marker(e,t)},r.DivIcon=r.Icon.extend({options:{iconSize:[12,12],className:"leaflet-div-icon",html:!1},createIcon:function(e){var n=e&&"DIV"===e.tagName?e:t.createElement("div"),i=this.options;return!1!==i.html?n.innerHTML=i.html:n.innerHTML="",i.bgPos&&(n.style.backgroundPosition=-i.bgPos.x+"px "+-i.bgPos.y+"px"),this._setIconStyles(n,"icon"),n},createShadow:function(){return null}}),r.divIcon=function(e){return new r.DivIcon(e)},r.Map.mergeOptions({closePopupOnClick:!0}),r.Popup=r.Class.extend({includes:r.Mixin.Events,options:{minWidth:50,maxWidth:300,autoPan:!0,closeButton:!0,offset:[0,7],autoPanPadding:[5,5],keepInView:!1,className:"",zoomAnimation:!0},initialize:function(e,t){r.setOptions(this,e),this._source=t,this._animated=r.Browser.any3d&&this.options.zoomAnimation,this._isOpen=!1},onAdd:function(e){this._map=e,this._container||this._initLayout();var t=e.options.fadeAnimation;t&&r.DomUtil.setOpacity(this._container,0),e._panes.popupPane.appendChild(this._container),e.on(this._getEvents(),this),this.update(),t&&r.DomUtil.setOpacity(this._container,1),this.fire("open"),e.fire("popupopen",{popup:this}),this._source&&this._source.fire("popupopen",{popup:this})},addTo:function(e){return e.addLayer(this),this},openOn:function(e){return e.openPopup(this),this},onRemove:function(e){e._panes.popupPane.removeChild(this._container),r.Util.falseFn(this._container.offsetWidth),e.off(this._getEvents(),this),e.options.fadeAnimation&&r.DomUtil.setOpacity(this._container,0),this._map=null,this.fire("close"),e.fire("popupclose",{popup:this}),this._source&&this._source.fire("popupclose",{popup:this})},getLatLng:function(){return this._latlng},setLatLng:function(e){return this._latlng=r.latLng(e),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(e){return this._content=e,this.update(),this},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},_getEvents:function(){var e={viewreset:this._updatePosition};return this._animated&&(e.zoomanim=this._zoomAnimation),("closeOnClick"in this.options?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(e.preclick=this._close),this.options.keepInView&&(e.moveend=this._adjustPan),e},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var e,t="leaflet-popup",n=t+" "+this.options.className+" leaflet-zoom-"+(this._animated?"animated":"hide"),i=this._container=r.DomUtil.create("div",n);this.options.closeButton&&((e=this._closeButton=r.DomUtil.create("a",t+"-close-button",i)).href="#close",e.innerHTML="&#215;",r.DomEvent.disableClickPropagation(e),r.DomEvent.on(e,"click",this._onCloseButtonClick,this));var o=this._wrapper=r.DomUtil.create("div",t+"-content-wrapper",i);r.DomEvent.disableClickPropagation(o),this._contentNode=r.DomUtil.create("div",t+"-content",o),r.DomEvent.disableScrollPropagation(this._contentNode),r.DomEvent.on(o,"contextmenu",r.DomEvent.stopPropagation),this._tipContainer=r.DomUtil.create("div",t+"-tip-container",i),this._tip=r.DomUtil.create("div",t+"-tip",this._tipContainer)},_updateContent:function(){if(this._content){if("string"==typeof this._content)this._contentNode.innerHTML=this._content;else{for(;this._contentNode.hasChildNodes();)this._contentNode.removeChild(this._contentNode.firstChild);this._contentNode.appendChild(this._content)}this.fire("contentupdate")}},_updateLayout:function(){var e=this._contentNode,t=e.style;t.width="",t.whiteSpace="nowrap";var n=e.offsetWidth;n=Math.min(n,this.options.maxWidth),n=Math.max(n,this.options.minWidth),t.width=n+1+"px",t.whiteSpace="",t.height="";var i=e.offsetHeight,o=this.options.maxHeight,a="leaflet-popup-scrolled";o&&i>o?(t.height=o+"px",r.DomUtil.addClass(e,a)):r.DomUtil.removeClass(e,a),this._containerWidth=this._container.offsetWidth},_updatePosition:function(){if(this._map){var e=this._map.latLngToLayerPoint(this._latlng),t=this._animated,n=r.point(this.options.offset);t&&r.DomUtil.setPosition(this._container,e),this._containerBottom=-n.y-(t?0:e.y),this._containerLeft=-Math.round(this._containerWidth/2)+n.x+(t?0:e.x),this._container.style.bottom=this._containerBottom+"px",this._container.style.left=this._containerLeft+"px"}},_zoomAnimation:function(e){var t=this._map._latLngToNewLayerPoint(this._latlng,e.zoom,e.center);r.DomUtil.setPosition(this._container,t)},_adjustPan:function(){if(this.options.autoPan){var e=this._map,t=this._container.offsetHeight,n=this._containerWidth,i=new r.Point(this._containerLeft,-t-this._containerBottom);this._animated&&i._add(r.DomUtil.getPosition(this._container));var o=e.layerPointToContainerPoint(i),a=r.point(this.options.autoPanPadding),s=r.point(this.options.autoPanPaddingTopLeft||a),l=r.point(this.options.autoPanPaddingBottomRight||a),u=e.getSize(),c=0,d=0;o.x+n+l.x>u.x&&(c=o.x+n-u.x+l.x),o.x-c-s.x<0&&(c=o.x-s.x),o.y+t+l.y>u.y&&(d=o.y+t-u.y+l.y),o.y-d-s.y<0&&(d=o.y-s.y),(c||d)&&e.fire("autopanstart").panBy([c,d])}},_onCloseButtonClick:function(e){this._close(),r.DomEvent.stop(e)}}),r.popup=function(e,t){return new r.Popup(e,t)},r.Map.include({openPopup:function(e,t,n){if(this.closePopup(),!(e instanceof r.Popup)){var i=e;e=new r.Popup(n).setLatLng(t).setContent(i)}return e._isOpen=!0,this._popup=e,this.addLayer(e)},closePopup:function(e){return e&&e!==this._popup||(e=this._popup,this._popup=null),e&&(this.removeLayer(e),e._isOpen=!1),this}}),r.Marker.include({openPopup:function(){return this._popup&&this._map&&!this._map.hasLayer(this._popup)&&(this._popup.setLatLng(this._latlng),this._map.openPopup(this._popup)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(){return this._popup&&(this._popup._isOpen?this.closePopup():this.openPopup()),this},bindPopup:function(e,t){var n=r.point(this.options.icon.options.popupAnchor||[0,0]);return n=n.add(r.Popup.prototype.options.offset),t&&t.offset&&(n=n.add(t.offset)),t=r.extend({offset:n},t),this._popupHandlersAdded||(this.on("click",this.togglePopup,this).on("remove",this.closePopup,this).on("move",this._movePopup,this),this._popupHandlersAdded=!0),e instanceof r.Popup?(r.setOptions(e,t),this._popup=e,e._source=this):this._popup=new r.Popup(t,this).setContent(e),this},setPopupContent:function(e){return this._popup&&this._popup.setContent(e),this},unbindPopup:function(){return this._popup&&(this._popup=null,this.off("click",this.togglePopup,this).off("remove",this.closePopup,this).off("move",this._movePopup,this),this._popupHandlersAdded=!1),this},getPopup:function(){return this._popup},_movePopup:function(e){this._popup.setLatLng(e.latlng)}}),r.LayerGroup=r.Class.extend({initialize:function(e){var t,n;if(this._layers={},e)for(t=0,n=e.length;n>t;t++)this.addLayer(e[t])},addLayer:function(e){var t=this.getLayerId(e);return this._layers[t]=e,this._map&&this._map.addLayer(e),this},removeLayer:function(e){var t=e in this._layers?e:this.getLayerId(e);return this._map&&this._layers[t]&&this._map.removeLayer(this._layers[t]),delete this._layers[t],this},hasLayer:function(e){return!!e&&(e in this._layers||this.getLayerId(e)in this._layers)},clearLayers:function(){return this.eachLayer(this.removeLayer,this),this},invoke:function(e){var t,n,i=Array.prototype.slice.call(arguments,1);for(t in this._layers)(n=this._layers[t])[e]&&n[e].apply(n,i);return this},onAdd:function(e){this._map=e,this.eachLayer(e.addLayer,e)},onRemove:function(e){this.eachLayer(e.removeLayer,e),this._map=null},addTo:function(e){return e.addLayer(this),this},eachLayer:function(e,t){for(var n in this._layers)e.call(t,this._layers[n]);return this},getLayer:function(e){return this._layers[e]},getLayers:function(){var e=[];for(var t in this._layers)e.push(this._layers[t]);return e},setZIndex:function(e){return this.invoke("setZIndex",e)},getLayerId:function(e){return r.stamp(e)}}),r.layerGroup=function(e){return new r.LayerGroup(e)},r.FeatureGroup=r.LayerGroup.extend({includes:r.Mixin.Events,statics:{EVENTS:"click dblclick mouseover mouseout mousemove contextmenu popupopen popupclose"},addLayer:function(e){return this.hasLayer(e)?this:("on"in e&&e.on(r.FeatureGroup.EVENTS,this._propagateEvent,this),r.LayerGroup.prototype.addLayer.call(this,e),this._popupContent&&e.bindPopup&&e.bindPopup(this._popupContent,this._popupOptions),this.fire("layeradd",{layer:e}))},removeLayer:function(e){return this.hasLayer(e)?(e in this._layers&&(e=this._layers[e]),"off"in e&&e.off(r.FeatureGroup.EVENTS,this._propagateEvent,this),r.LayerGroup.prototype.removeLayer.call(this,e),this._popupContent&&this.invoke("unbindPopup"),this.fire("layerremove",{layer:e})):this},bindPopup:function(e,t){return this._popupContent=e,this._popupOptions=t,this.invoke("bindPopup",e,t)},openPopup:function(e){for(var t in this._layers){this._layers[t].openPopup(e);break}return this},setStyle:function(e){return this.invoke("setStyle",e)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var e=new r.LatLngBounds;return this.eachLayer((function(t){e.extend(t instanceof r.Marker?t.getLatLng():t.getBounds())})),e},_propagateEvent:function(e){e=r.extend({layer:e.target,target:this},e),this.fire(e.type,e)}}),r.featureGroup=function(e){return new r.FeatureGroup(e)},r.Path=r.Class.extend({includes:[r.Mixin.Events],statics:{CLIP_PADDING:function(){var t=((r.Browser.mobile?1280:2e3)/Math.max(e.outerWidth,e.outerHeight)-1)/2;return Math.max(0,Math.min(.5,t))}()},options:{stroke:!0,color:"#0033ff",dashArray:null,lineCap:null,lineJoin:null,weight:5,opacity:.5,fill:!1,fillColor:null,fillOpacity:.2,clickable:!0},initialize:function(e){r.setOptions(this,e)},onAdd:function(e){this._map=e,this._container||(this._initElements(),this._initEvents()),this.projectLatlngs(),this._updatePath(),this._container&&this._map._pathRoot.appendChild(this._container),this.fire("add"),e.on({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},addTo:function(e){return e.addLayer(this),this},onRemove:function(e){e._pathRoot.removeChild(this._container),this.fire("remove"),this._map=null,r.Browser.vml&&(this._container=null,this._stroke=null,this._fill=null),e.off({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},projectLatlngs:function(){},setStyle:function(e){return r.setOptions(this,e),this._container&&this._updateStyle(),this},redraw:function(){return this._map&&(this.projectLatlngs(),this._updatePath()),this}}),r.Map.include({_updatePathViewport:function(){var e=r.Path.CLIP_PADDING,t=this.getSize(),n=r.DomUtil.getPosition(this._mapPane).multiplyBy(-1)._subtract(t.multiplyBy(e)._round()),i=n.add(t.multiplyBy(1+2*e)._round());this._pathViewport=new r.Bounds(n,i)}}),r.Path.SVG_NS="http://www.w3.org/2000/svg",r.Browser.svg=!(!t.createElementNS||!t.createElementNS(r.Path.SVG_NS,"svg").createSVGRect),r.Path=r.Path.extend({statics:{SVG:r.Browser.svg},bringToFront:function(){var e=this._map._pathRoot,t=this._container;return t&&e.lastChild!==t&&e.appendChild(t),this},bringToBack:function(){var e=this._map._pathRoot,t=this._container,n=e.firstChild;return t&&n!==t&&e.insertBefore(t,n),this},getPathString:function(){},_createElement:function(e){return t.createElementNS(r.Path.SVG_NS,e)},_initElements:function(){this._map._initPathRoot(),this._initPath(),this._initStyle()},_initPath:function(){this._container=this._createElement("g"),this._path=this._createElement("path"),this.options.className&&r.DomUtil.addClass(this._path,this.options.className),this._container.appendChild(this._path)},_initStyle:function(){this.options.stroke&&(this._path.setAttribute("stroke-linejoin","round"),this._path.setAttribute("stroke-linecap","round")),this.options.fill&&this._path.setAttribute("fill-rule","evenodd"),this.options.pointerEvents&&this._path.setAttribute("pointer-events",this.options.pointerEvents),this.options.clickable||this.options.pointerEvents||this._path.setAttribute("pointer-events","none"),this._updateStyle()},_updateStyle:function(){
+this.options.stroke?(this._path.setAttribute("stroke",this.options.color),this._path.setAttribute("stroke-opacity",this.options.opacity),this._path.setAttribute("stroke-width",this.options.weight),this.options.dashArray?this._path.setAttribute("stroke-dasharray",this.options.dashArray):this._path.removeAttribute("stroke-dasharray"),this.options.lineCap&&this._path.setAttribute("stroke-linecap",this.options.lineCap),this.options.lineJoin&&this._path.setAttribute("stroke-linejoin",this.options.lineJoin)):this._path.setAttribute("stroke","none"),this.options.fill?(this._path.setAttribute("fill",this.options.fillColor||this.options.color),this._path.setAttribute("fill-opacity",this.options.fillOpacity)):this._path.setAttribute("fill","none")},_updatePath:function(){var e=this.getPathString();e||(e="M0 0"),this._path.setAttribute("d",e)},_initEvents:function(){if(this.options.clickable){(r.Browser.svg||!r.Browser.vml)&&r.DomUtil.addClass(this._path,"leaflet-clickable"),r.DomEvent.on(this._container,"click",this._onMouseClick,this);for(var e=["dblclick","mousedown","mouseover","mouseout","mousemove","contextmenu"],t=0;t<e.length;t++)r.DomEvent.on(this._container,e[t],this._fireMouseEvent,this)}},_onMouseClick:function(e){this._map.dragging&&this._map.dragging.moved()||this._fireMouseEvent(e)},_fireMouseEvent:function(e){if(this._map&&this.hasEventListeners(e.type)){var t=this._map,n=t.mouseEventToContainerPoint(e),i=t.containerPointToLayerPoint(n),o=t.layerPointToLatLng(i);this.fire(e.type,{latlng:o,layerPoint:i,containerPoint:n,originalEvent:e}),"contextmenu"===e.type&&r.DomEvent.preventDefault(e),"mousemove"!==e.type&&r.DomEvent.stopPropagation(e)}}}),r.Map.include({_initPathRoot:function(){this._pathRoot||(this._pathRoot=r.Path.prototype._createElement("svg"),this._panes.overlayPane.appendChild(this._pathRoot),this.options.zoomAnimation&&r.Browser.any3d?(r.DomUtil.addClass(this._pathRoot,"leaflet-zoom-animated"),this.on({zoomanim:this._animatePathZoom,zoomend:this._endPathZoom})):r.DomUtil.addClass(this._pathRoot,"leaflet-zoom-hide"),this.on("moveend",this._updateSvgViewport),this._updateSvgViewport())},_animatePathZoom:function(e){var t=this.getZoomScale(e.zoom),n=this._getCenterOffset(e.center)._multiplyBy(-t)._add(this._pathViewport.min);this._pathRoot.style[r.DomUtil.TRANSFORM]=r.DomUtil.getTranslateString(n)+" scale("+t+") ",this._pathZooming=!0},_endPathZoom:function(){this._pathZooming=!1},_updateSvgViewport:function(){if(!this._pathZooming){this._updatePathViewport();var e=this._pathViewport,t=e.min,n=e.max,i=n.x-t.x,o=n.y-t.y,a=this._pathRoot,s=this._panes.overlayPane;r.Browser.mobileWebkit&&s.removeChild(a),r.DomUtil.setPosition(a,t),a.setAttribute("width",i),a.setAttribute("height",o),a.setAttribute("viewBox",[t.x,t.y,i,o].join(" ")),r.Browser.mobileWebkit&&s.appendChild(a)}}}),r.Path.include({bindPopup:function(e,t){return e instanceof r.Popup?this._popup=e:((!this._popup||t)&&(this._popup=new r.Popup(t,this)),this._popup.setContent(e)),this._popupHandlersAdded||(this.on("click",this._openPopup,this).on("remove",this.closePopup,this),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this._popup=null,this.off("click",this._openPopup).off("remove",this.closePopup),this._popupHandlersAdded=!1),this},openPopup:function(e){return this._popup&&(e=e||this._latlng||this._latlngs[Math.floor(this._latlngs.length/2)],this._openPopup({latlng:e})),this},closePopup:function(){return this._popup&&this._popup._close(),this},_openPopup:function(e){this._popup.setLatLng(e.latlng),this._map.openPopup(this._popup)}}),r.Browser.vml=!r.Browser.svg&&function(){try{var e=t.createElement("div");e.innerHTML='<v:shape adj="1"/>';var n=e.firstChild;return n.style.behavior="url(#default#VML)",n&&"object"==typeof n.adj}catch(e){return!1}}(),r.Path=r.Browser.svg||!r.Browser.vml?r.Path:r.Path.extend({statics:{VML:!0,CLIP_PADDING:.02},_createElement:function(){try{return t.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(e){return t.createElement("<lvml:"+e+' class="lvml">')}}catch(e){return function(e){return t.createElement("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),_initPath:function(){var e=this._container=this._createElement("shape");r.DomUtil.addClass(e,"leaflet-vml-shape"+(this.options.className?" "+this.options.className:"")),this.options.clickable&&r.DomUtil.addClass(e,"leaflet-clickable"),e.coordsize="1 1",this._path=this._createElement("path"),e.appendChild(this._path),this._map._pathRoot.appendChild(e)},_initStyle:function(){this._updateStyle()},_updateStyle:function(){var e=this._stroke,t=this._fill,n=this.options,i=this._container;i.stroked=n.stroke,i.filled=n.fill,n.stroke?(e||((e=this._stroke=this._createElement("stroke")).endcap="round",i.appendChild(e)),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=r.Util.isArray(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",n.lineCap&&(e.endcap=n.lineCap.replace("butt","flat")),n.lineJoin&&(e.joinstyle=n.lineJoin)):e&&(i.removeChild(e),this._stroke=null),n.fill?(t||(t=this._fill=this._createElement("fill"),i.appendChild(t)),t.color=n.fillColor||n.color,t.opacity=n.fillOpacity):t&&(i.removeChild(t),this._fill=null)},_updatePath:function(){var e=this._container.style;e.display="none",this._path.v=this.getPathString()+" ",e.display=""}}),r.Map.include(r.Browser.svg||!r.Browser.vml?{}:{_initPathRoot:function(){if(!this._pathRoot){var e=this._pathRoot=t.createElement("div");e.className="leaflet-vml-container",this._panes.overlayPane.appendChild(e),this.on("moveend",this._updatePathViewport),this._updatePathViewport()}}}),r.Browser.canvas=!!t.createElement("canvas").getContext,r.Path=r.Path.SVG&&!e.L_PREFER_CANVAS||!r.Browser.canvas?r.Path:r.Path.extend({statics:{CANVAS:!0,SVG:!1},redraw:function(){return this._map&&(this.projectLatlngs(),this._requestUpdate()),this},setStyle:function(e){return r.setOptions(this,e),this._map&&(this._updateStyle(),this._requestUpdate()),this},onRemove:function(e){e.off("viewreset",this.projectLatlngs,this).off("moveend",this._updatePath,this),this.options.clickable&&(this._map.off("click",this._onClick,this),this._map.off("mousemove",this._onMouseMove,this)),this._requestUpdate(),this.fire("remove"),this._map=null},_requestUpdate:function(){this._map&&!r.Path._updateRequest&&(r.Path._updateRequest=r.Util.requestAnimFrame(this._fireMapMoveEnd,this._map))},_fireMapMoveEnd:function(){r.Path._updateRequest=null,this.fire("moveend")},_initElements:function(){this._map._initPathRoot(),this._ctx=this._map._canvasCtx},_updateStyle:function(){var e=this.options;e.stroke&&(this._ctx.lineWidth=e.weight,this._ctx.strokeStyle=e.color),e.fill&&(this._ctx.fillStyle=e.fillColor||e.color),e.lineCap&&(this._ctx.lineCap=e.lineCap),e.lineJoin&&(this._ctx.lineJoin=e.lineJoin)},_drawPath:function(){var e,t,n,i,o,a;for(this._ctx.beginPath(),e=0,n=this._parts.length;n>e;e++){for(t=0,i=this._parts[e].length;i>t;t++)o=this._parts[e][t],a=(0===t?"move":"line")+"To",this._ctx[a](o.x,o.y);this instanceof r.Polygon&&this._ctx.closePath()}},_checkIfEmpty:function(){return!this._parts.length},_updatePath:function(){if(!this._checkIfEmpty()){var e=this._ctx,t=this.options;this._drawPath(),e.save(),this._updateStyle(),t.fill&&(e.globalAlpha=t.fillOpacity,e.fill(t.fillRule||"evenodd")),t.stroke&&(e.globalAlpha=t.opacity,e.stroke()),e.restore()}},_initEvents:function(){this.options.clickable&&(this._map.on("mousemove",this._onMouseMove,this),this._map.on("click dblclick contextmenu",this._fireMouseEvent,this))},_fireMouseEvent:function(e){this._containsPoint(e.layerPoint)&&this.fire(e.type,e)},_onMouseMove:function(e){this._map&&!this._map._animatingZoom&&(this._containsPoint(e.layerPoint)?(this._ctx.canvas.style.cursor="pointer",this._mouseInside=!0,this.fire("mouseover",e)):this._mouseInside&&(this._ctx.canvas.style.cursor="",this._mouseInside=!1,this.fire("mouseout",e)))}}),r.Map.include(r.Path.SVG&&!e.L_PREFER_CANVAS||!r.Browser.canvas?{}:{_initPathRoot:function(){var e,n=this._pathRoot;n||((n=this._pathRoot=t.createElement("canvas")).style.position="absolute",(e=this._canvasCtx=n.getContext("2d")).lineCap="round",e.lineJoin="round",this._panes.overlayPane.appendChild(n),this.options.zoomAnimation&&(this._pathRoot.className="leaflet-zoom-animated",this.on("zoomanim",this._animatePathZoom),this.on("zoomend",this._endPathZoom)),this.on("moveend",this._updateCanvasViewport),this._updateCanvasViewport())},_updateCanvasViewport:function(){if(!this._pathZooming){this._updatePathViewport();var e=this._pathViewport,t=e.min,n=e.max.subtract(t),i=this._pathRoot;r.DomUtil.setPosition(i,t),i.width=n.x,i.height=n.y,i.getContext("2d").translate(-t.x,-t.y)}}}),r.LineUtil={simplify:function(e,t){if(!t||!e.length)return e.slice();var n=t*t;return e=this._reducePoints(e,n),this._simplifyDP(e,n)},pointToSegmentDistance:function(e,t,n){return Math.sqrt(this._sqClosestPointOnSegment(e,t,n,!0))},closestPointOnSegment:function(e,t,n){return this._sqClosestPointOnSegment(e,t,n)},_simplifyDP:function(e,t){var i=e.length,r=new(typeof Uint8Array!=n+""?Uint8Array:Array)(i);r[0]=r[i-1]=1,this._simplifyDPStep(e,r,t,0,i-1);var o,a=[];for(o=0;i>o;o++)r[o]&&a.push(e[o]);return a},_simplifyDPStep:function(e,t,n,i,r){var o,a,s,l=0;for(a=i+1;r-1>=a;a++)(s=this._sqClosestPointOnSegment(e[a],e[i],e[r],!0))>l&&(o=a,l=s);l>n&&(t[o]=1,this._simplifyDPStep(e,t,n,i,o),this._simplifyDPStep(e,t,n,o,r))},_reducePoints:function(e,t){for(var n=[e[0]],i=1,r=0,o=e.length;o>i;i++)this._sqDist(e[i],e[r])>t&&(n.push(e[i]),r=i);return o-1>r&&n.push(e[o-1]),n},clipSegment:function(e,t,n,i){var r,o,a,s=i?this._lastCode:this._getBitCode(e,n),l=this._getBitCode(t,n);for(this._lastCode=l;;){if(!(s|l))return[e,t];if(s&l)return!1;r=s||l,o=this._getEdgeIntersection(e,t,r,n),a=this._getBitCode(o,n),r===s?(e=o,s=a):(t=o,l=a)}},_getEdgeIntersection:function(e,t,n,i){var o=t.x-e.x,a=t.y-e.y,s=i.min,l=i.max;return 8&n?new r.Point(e.x+o*(l.y-e.y)/a,l.y):4&n?new r.Point(e.x+o*(s.y-e.y)/a,s.y):2&n?new r.Point(l.x,e.y+a*(l.x-e.x)/o):1&n?new r.Point(s.x,e.y+a*(s.x-e.x)/o):void 0},_getBitCode:function(e,t){var n=0;return e.x<t.min.x?n|=1:e.x>t.max.x&&(n|=2),e.y<t.min.y?n|=4:e.y>t.max.y&&(n|=8),n},_sqDist:function(e,t){var n=t.x-e.x,i=t.y-e.y;return n*n+i*i},_sqClosestPointOnSegment:function(e,t,n,i){var o,a=t.x,s=t.y,l=n.x-a,u=n.y-s,c=l*l+u*u;return c>0&&((o=((e.x-a)*l+(e.y-s)*u)/c)>1?(a=n.x,s=n.y):o>0&&(a+=l*o,s+=u*o)),l=e.x-a,u=e.y-s,i?l*l+u*u:new r.Point(a,s)}},r.Polyline=r.Path.extend({initialize:function(e,t){r.Path.prototype.initialize.call(this,t),this._latlngs=this._convertLatLngs(e)},options:{smoothFactor:1,noClip:!1},projectLatlngs:function(){this._originalPoints=[];for(var e=0,t=this._latlngs.length;t>e;e++)this._originalPoints[e]=this._map.latLngToLayerPoint(this._latlngs[e])},getPathString:function(){for(var e=0,t=this._parts.length,n="";t>e;e++)n+=this._getPathPartStr(this._parts[e]);return n},getLatLngs:function(){return this._latlngs},setLatLngs:function(e){return this._latlngs=this._convertLatLngs(e),this.redraw()},addLatLng:function(e){return this._latlngs.push(r.latLng(e)),this.redraw()},spliceLatLngs:function(){var e=[].splice.apply(this._latlngs,arguments);return this._convertLatLngs(this._latlngs,!0),this.redraw(),e},closestLayerPoint:function(e){for(var t,n,i=1/0,o=this._parts,a=null,s=0,l=o.length;l>s;s++)for(var u=o[s],c=1,d=u.length;d>c;c++){t=u[c-1],n=u[c];var h=r.LineUtil._sqClosestPointOnSegment(e,t,n,!0);i>h&&(i=h,a=r.LineUtil._sqClosestPointOnSegment(e,t,n))}return a&&(a.distance=Math.sqrt(i)),a},getBounds:function(){return new r.LatLngBounds(this.getLatLngs())},_convertLatLngs:function(e,t){var n,i,o=t?e:[];for(n=0,i=e.length;i>n;n++){if(r.Util.isArray(e[n])&&"number"!=typeof e[n][0])return;o[n]=r.latLng(e[n])}return o},_initEvents:function(){r.Path.prototype._initEvents.call(this)},_getPathPartStr:function(e){for(var t,n=r.Path.VML,i=0,o=e.length,a="";o>i;i++)t=e[i],n&&t._round(),a+=(i?"L":"M")+t.x+" "+t.y;return a},_clipPoints:function(){var e,t,n,i=this._originalPoints,o=i.length;if(this.options.noClip)this._parts=[i];else{this._parts=[];var a=this._parts,s=this._map._pathViewport,l=r.LineUtil;for(e=0,t=0;o-1>e;e++)(n=l.clipSegment(i[e],i[e+1],s,e))&&(a[t]=a[t]||[],a[t].push(n[0]),(n[1]!==i[e+1]||e===o-2)&&(a[t].push(n[1]),t++))}},_simplifyPoints:function(){for(var e=this._parts,t=r.LineUtil,n=0,i=e.length;i>n;n++)e[n]=t.simplify(e[n],this.options.smoothFactor)},_updatePath:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),r.Path.prototype._updatePath.call(this))}}),r.polyline=function(e,t){return new r.Polyline(e,t)},r.PolyUtil={},r.PolyUtil.clipPolygon=function(e,t){var n,i,o,a,s,l,u,c,d,h=[1,4,2,8],f=r.LineUtil;for(i=0,u=e.length;u>i;i++)e[i]._code=f._getBitCode(e[i],t);for(a=0;4>a;a++){for(c=h[a],n=[],i=0,o=(u=e.length)-1;u>i;o=i++)s=e[i],l=e[o],s._code&c?l._code&c||((d=f._getEdgeIntersection(l,s,c,t))._code=f._getBitCode(d,t),n.push(d)):(l._code&c&&((d=f._getEdgeIntersection(l,s,c,t))._code=f._getBitCode(d,t),n.push(d)),n.push(s));e=n}return e},r.Polygon=r.Polyline.extend({options:{fill:!0},initialize:function(e,t){r.Polyline.prototype.initialize.call(this,e,t),this._initWithHoles(e)},_initWithHoles:function(e){var t,n,i;if(e&&r.Util.isArray(e[0])&&"number"!=typeof e[0][0])for(this._latlngs=this._convertLatLngs(e[0]),this._holes=e.slice(1),t=0,n=this._holes.length;n>t;t++)(i=this._holes[t]=this._convertLatLngs(this._holes[t]))[0].equals(i[i.length-1])&&i.pop();(e=this._latlngs).length>=2&&e[0].equals(e[e.length-1])&&e.pop()},projectLatlngs:function(){var e,t,n,i;if(r.Polyline.prototype.projectLatlngs.call(this),this._holePoints=[],this._holes)for(e=0,n=this._holes.length;n>e;e++)for(this._holePoints[e]=[],t=0,i=this._holes[e].length;i>t;t++)this._holePoints[e][t]=this._map.latLngToLayerPoint(this._holes[e][t])},setLatLngs:function(e){return e&&r.Util.isArray(e[0])&&"number"!=typeof e[0][0]?(this._initWithHoles(e),this.redraw()):r.Polyline.prototype.setLatLngs.call(this,e)},_clipPoints:function(){var e=this._originalPoints,t=[];if(this._parts=[e].concat(this._holePoints),!this.options.noClip){for(var n=0,i=this._parts.length;i>n;n++){var o=r.PolyUtil.clipPolygon(this._parts[n],this._map._pathViewport);o.length&&t.push(o)}this._parts=t}},_getPathPartStr:function(e){return r.Polyline.prototype._getPathPartStr.call(this,e)+(r.Browser.svg?"z":"x")}}),r.polygon=function(e,t){return new r.Polygon(e,t)},function(){function e(e){return r.FeatureGroup.extend({initialize:function(e,t){this._layers={},this._options=t,this.setLatLngs(e)},setLatLngs:function(t){var n=0,i=t.length;for(this.eachLayer((function(e){i>n?e.setLatLngs(t[n++]):this.removeLayer(e)}),this);i>n;)this.addLayer(new e(t[n++],this._options));return this},getLatLngs:function(){var e=[];return this.eachLayer((function(t){e.push(t.getLatLngs())})),e}})}r.MultiPolyline=e(r.Polyline),r.MultiPolygon=e(r.Polygon),r.multiPolyline=function(e,t){return new r.MultiPolyline(e,t)},r.multiPolygon=function(e,t){return new r.MultiPolygon(e,t)}}(),r.Rectangle=r.Polygon.extend({initialize:function(e,t){r.Polygon.prototype.initialize.call(this,this._boundsToLatLngs(e),t)},setBounds:function(e){this.setLatLngs(this._boundsToLatLngs(e))},_boundsToLatLngs:function(e){return[(e=r.latLngBounds(e)).getSouthWest(),e.getNorthWest(),e.getNorthEast(),e.getSouthEast()]}}),r.rectangle=function(e,t){return new r.Rectangle(e,t)},r.Circle=r.Path.extend({initialize:function(e,t,n){r.Path.prototype.initialize.call(this,n),this._latlng=r.latLng(e),this._mRadius=t},options:{fill:!0},setLatLng:function(e){return this._latlng=r.latLng(e),this.redraw()},setRadius:function(e){return this._mRadius=e,this.redraw()},projectLatlngs:function(){var e=this._getLngRadius(),t=this._latlng,n=this._map.latLngToLayerPoint([t.lat,t.lng-e]);this._point=this._map.latLngToLayerPoint(t),this._radius=Math.max(this._point.x-n.x,1)},getBounds:function(){var e=this._getLngRadius(),t=this._mRadius/40075017*360,n=this._latlng;return new r.LatLngBounds([n.lat-t,n.lng-e],[n.lat+t,n.lng+e])},getLatLng:function(){return this._latlng},getPathString:function(){var e=this._point,t=this._radius;return this._checkIfEmpty()?"":r.Browser.svg?"M"+e.x+","+(e.y-t)+"A"+t+","+t+",0,1,1,"+(e.x-.1)+","+(e.y-t)+" z":(e._round(),t=Math.round(t),"AL "+e.x+","+e.y+" "+t+","+t+" 0,23592600")},getRadius:function(){return this._mRadius},_getLatRadius:function(){return this._mRadius/40075017*360},_getLngRadius:function(){return this._getLatRadius()/Math.cos(r.LatLng.DEG_TO_RAD*this._latlng.lat)},_checkIfEmpty:function(){if(!this._map)return!1;var e=this._map._pathViewport,t=this._radius,n=this._point;return n.x-t>e.max.x||n.y-t>e.max.y||n.x+t<e.min.x||n.y+t<e.min.y}}),r.circle=function(e,t,n){return new r.Circle(e,t,n)},r.CircleMarker=r.Circle.extend({options:{radius:10,weight:2},initialize:function(e,t){r.Circle.prototype.initialize.call(this,e,null,t),this._radius=this.options.radius},projectLatlngs:function(){this._point=this._map.latLngToLayerPoint(this._latlng)},_updateStyle:function(){r.Circle.prototype._updateStyle.call(this),this.setRadius(this.options.radius)},setLatLng:function(e){return r.Circle.prototype.setLatLng.call(this,e),this._popup&&this._popup._isOpen&&this._popup.setLatLng(e),this},setRadius:function(e){return this.options.radius=this._radius=e,this.redraw()},getRadius:function(){return this._radius}}),r.circleMarker=function(e,t){return new r.CircleMarker(e,t)},r.Polyline.include(r.Path.CANVAS?{_containsPoint:function(e,t){var n,i,o,a,s,l,u=this.options.weight/2;for(r.Browser.touch&&(u+=10),n=0,a=this._parts.length;a>n;n++)for(i=0,o=(s=(l=this._parts[n]).length)-1;s>i;o=i++)if((t||0!==i)&&u>=r.LineUtil.pointToSegmentDistance(e,l[o],l[i]))return!0;return!1}}:{}),r.Polygon.include(r.Path.CANVAS?{_containsPoint:function(e){var t,n,i,o,a,s,l,u,c=!1;if(r.Polyline.prototype._containsPoint.call(this,e,!0))return!0;for(o=0,l=this._parts.length;l>o;o++)for(a=0,s=(u=(t=this._parts[o]).length)-1;u>a;s=a++)n=t[a],i=t[s],n.y>e.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(c=!c);return c}}:{}),r.Circle.include(r.Path.CANVAS?{_drawPath:function(){var e=this._point;this._ctx.beginPath(),this._ctx.arc(e.x,e.y,this._radius,0,2*Math.PI,!1)},_containsPoint:function(e){var t=this._point,n=this.options.stroke?this.options.weight/2:0;return e.distanceTo(t)<=this._radius+n}}:{}),r.CircleMarker.include(r.Path.CANVAS?{_updateStyle:function(){r.Path.prototype._updateStyle.call(this)}}:{}),r.GeoJSON=r.FeatureGroup.extend({initialize:function(e,t){r.setOptions(this,t),this._layers={},e&&this.addData(e)},addData:function(e){var t,n,i,o=r.Util.isArray(e)?e:e.features;if(o){for(t=0,n=o.length;n>t;t++)((i=o[t]).geometries||i.geometry||i.features||i.coordinates)&&this.addData(o[t]);return this}var a=this.options;if(!a.filter||a.filter(e)){var s=r.GeoJSON.geometryToLayer(e,a.pointToLayer,a.coordsToLatLng,a);return s.feature=r.GeoJSON.asFeature(e),s.defaultOptions=s.options,this.resetStyle(s),a.onEachFeature&&a.onEachFeature(e,s),this.addLayer(s)}},resetStyle:function(e){var t=this.options.style;t&&(r.Util.extend(e.options,e.defaultOptions),this._setLayerStyle(e,t))},setStyle:function(e){this.eachLayer((function(t){this._setLayerStyle(t,e)}),this)},_setLayerStyle:function(e,t){"function"==typeof t&&(t=t(e.feature)),e.setStyle&&e.setStyle(t)}}),r.extend(r.GeoJSON,{geometryToLayer:function(e,t,n,i){var o,a,s,l,u="Feature"===e.type?e.geometry:e,c=u.coordinates,d=[];switch(n=n||this.coordsToLatLng,u.type){case"Point":return o=n(c),t?t(e,o):new r.Marker(o);case"MultiPoint":for(s=0,l=c.length;l>s;s++)o=n(c[s]),d.push(t?t(e,o):new r.Marker(o));return new r.FeatureGroup(d);case"LineString":return a=this.coordsToLatLngs(c,0,n),new r.Polyline(a,i);case"Polygon":if(2===c.length&&!c[1].length)throw new Error("Invalid GeoJSON object.");return a=this.coordsToLatLngs(c,1,n),new r.Polygon(a,i);case"MultiLineString":return a=this.coordsToLatLngs(c,1,n),new r.MultiPolyline(a,i);case"MultiPolygon":return a=this.coordsToLatLngs(c,2,n),new r.MultiPolygon(a,i);case"GeometryCollection":for(s=0,l=u.geometries.length;l>s;s++)d.push(this.geometryToLayer({geometry:u.geometries[s],type:"Feature",properties:e.properties},t,n,i));return new r.FeatureGroup(d);default:throw new Error("Invalid GeoJSON object.")}},coordsToLatLng:function(e){return new r.LatLng(e[1],e[0],e[2])},coordsToLatLngs:function(e,t,n){var i,r,o,a=[];for(r=0,o=e.length;o>r;r++)i=t?this.coordsToLatLngs(e[r],t-1,n):(n||this.coordsToLatLng)(e[r]),a.push(i);return a},latLngToCoords:function(e){var t=[e.lng,e.lat];return e.alt!==n&&t.push(e.alt),t},latLngsToCoords:function(e){for(var t=[],n=0,i=e.length;i>n;n++)t.push(r.GeoJSON.latLngToCoords(e[n]));return t},getFeature:function(e,t){return e.feature?r.extend({},e.feature,{geometry:t}):r.GeoJSON.asFeature(t)},asFeature:function(e){return"Feature"===e.type?e:{type:"Feature",properties:{},geometry:e}}});var a={toGeoJSON:function(){return r.GeoJSON.getFeature(this,{type:"Point",coordinates:r.GeoJSON.latLngToCoords(this.getLatLng())})}};r.Marker.include(a),r.Circle.include(a),r.CircleMarker.include(a),r.Polyline.include({toGeoJSON:function(){return r.GeoJSON.getFeature(this,{type:"LineString",coordinates:r.GeoJSON.latLngsToCoords(this.getLatLngs())})}}),r.Polygon.include({toGeoJSON:function(){var e,t,n,i=[r.GeoJSON.latLngsToCoords(this.getLatLngs())];if(i[0].push(i[0][0]),this._holes)for(e=0,t=this._holes.length;t>e;e++)(n=r.GeoJSON.latLngsToCoords(this._holes[e])).push(n[0]),i.push(n);return r.GeoJSON.getFeature(this,{type:"Polygon",coordinates:i})}}),function(){function e(e){return function(){var t=[];return this.eachLayer((function(e){t.push(e.toGeoJSON().geometry.coordinates)})),r.GeoJSON.getFeature(this,{type:e,coordinates:t})}}r.MultiPolyline.include({toGeoJSON:e("MultiLineString")}),r.MultiPolygon.include({toGeoJSON:e("MultiPolygon")}),r.LayerGroup.include({toGeoJSON:function(){var t,n=this.feature&&this.feature.geometry,i=[];if(n&&"MultiPoint"===n.type)return e("MultiPoint").call(this);var o=n&&"GeometryCollection"===n.type;return this.eachLayer((function(e){e.toGeoJSON&&(t=e.toGeoJSON(),i.push(o?t.geometry:r.GeoJSON.asFeature(t)))})),o?r.GeoJSON.getFeature(this,{geometries:i,type:"GeometryCollection"}):{type:"FeatureCollection",features:i}}})}(),r.geoJson=function(e,t){return new r.GeoJSON(e,t)},r.DomEvent={addListener:function(e,t,n,i){var o,a,s,l=r.stamp(n),u="_leaflet_"+t+l;return e[u]?this:(o=function(t){return n.call(i||e,t||r.DomEvent._getEvent())},r.Browser.pointer&&0===t.indexOf("touch")?this.addPointerListener(e,t,o,l):(r.Browser.touch&&"dblclick"===t&&this.addDoubleTapListener&&this.addDoubleTapListener(e,o,l),"addEventListener"in e?"mousewheel"===t?(e.addEventListener("DOMMouseScroll",o,!1),e.addEventListener(t,o,!1)):"mouseenter"===t||"mouseleave"===t?(a=o,s="mouseenter"===t?"mouseover":"mouseout",o=function(t){return r.DomEvent._checkMouse(e,t)?a(t):void 0},e.addEventListener(s,o,!1)):"click"===t&&r.Browser.android?(a=o,o=function(e){return r.DomEvent._filterClick(e,a)},e.addEventListener(t,o,!1)):e.addEventListener(t,o,!1):"attachEvent"in e&&e.attachEvent("on"+t,o),e[u]=o,this))},removeListener:function(e,t,n){var i=r.stamp(n),o="_leaflet_"+t+i,a=e[o];return a?(r.Browser.pointer&&0===t.indexOf("touch")?this.removePointerListener(e,t,i):r.Browser.touch&&"dblclick"===t&&this.removeDoubleTapListener?this.removeDoubleTapListener(e,i):"removeEventListener"in e?"mousewheel"===t?(e.removeEventListener("DOMMouseScroll",a,!1),e.removeEventListener(t,a,!1)):"mouseenter"===t||"mouseleave"===t?e.removeEventListener("mouseenter"===t?"mouseover":"mouseout",a,!1):e.removeEventListener(t,a,!1):"detachEvent"in e&&e.detachEvent("on"+t,a),e[o]=null,this):this},stopPropagation:function(e){return e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,r.DomEvent._skipped(e),this},disableScrollPropagation:function(e){var t=r.DomEvent.stopPropagation;return r.DomEvent.on(e,"mousewheel",t).on(e,"MozMousePixelScroll",t)},disableClickPropagation:function(e){for(var t=r.DomEvent.stopPropagation,n=r.Draggable.START.length-1;n>=0;n--)r.DomEvent.on(e,r.Draggable.START[n],t);return r.DomEvent.on(e,"click",r.DomEvent._fakeStop).on(e,"dblclick",t)},preventDefault:function(e){return e.preventDefault?e.preventDefault():e.returnValue=!1,this},stop:function(e){return r.DomEvent.preventDefault(e).stopPropagation(e)},getMousePosition:function(e,t){if(!t)return new r.Point(e.clientX,e.clientY);var n=t.getBoundingClientRect();return new r.Point(e.clientX-n.left-t.clientLeft,e.clientY-n.top-t.clientTop)},getWheelDelta:function(e){var t=0;return e.wheelDelta&&(t=e.wheelDelta/120),e.detail&&(t=-e.detail/3),t},_skipEvents:{},_fakeStop:function(e){r.DomEvent._skipEvents[e.type]=!0},_skipped:function(e){var t=this._skipEvents[e.type];return this._skipEvents[e.type]=!1,t},_checkMouse:function(e,t){var n=t.relatedTarget;if(!n)return!0;try{for(;n&&n!==e;)n=n.parentNode}catch(e){return!1}return n!==e},_getEvent:function(){var t=e.event;if(!t)for(var n=arguments.callee.caller;n&&(!(t=n.arguments[0])||e.Event!==t.constructor);)n=n.caller;return t},_filterClick:function(e,t){var n=e.timeStamp||e.originalEvent.timeStamp,i=r.DomEvent._lastClick&&n-r.DomEvent._lastClick;return i&&i>100&&500>i||e.target._simulatedClick&&!e._simulated?void r.DomEvent.stop(e):(r.DomEvent._lastClick=n,t(e))}},r.DomEvent.on=r.DomEvent.addListener,r.DomEvent.off=r.DomEvent.removeListener,r.Draggable=r.Class.extend({includes:r.Mixin.Events,statics:{START:r.Browser.touch?["touchstart","mousedown"]:["mousedown"],END:{mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},MOVE:{mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"}},initialize:function(e,t){this._element=e,this._dragStartTarget=t||e},enable:function(){if(!this._enabled){for(var e=r.Draggable.START.length-1;e>=0;e--)r.DomEvent.on(this._dragStartTarget,r.Draggable.START[e],this._onDown,this);this._enabled=!0}},disable:function(){if(this._enabled){for(var e=r.Draggable.START.length-1;e>=0;e--)r.DomEvent.off(this._dragStartTarget,r.Draggable.START[e],this._onDown,this);this._enabled=!1,this._moved=!1}},_onDown:function(e){if(this._moved=!1,!e.shiftKey&&(1===e.which||1===e.button||e.touches)&&(r.DomEvent.stopPropagation(e),!r.Draggable._disabled&&(r.DomUtil.disableImageDrag(),r.DomUtil.disableTextSelection(),!this._moving))){var n=e.touches?e.touches[0]:e;this._startPoint=new r.Point(n.clientX,n.clientY),this._startPos=this._newPos=r.DomUtil.getPosition(this._element),r.DomEvent.on(t,r.Draggable.MOVE[e.type],this._onMove,this).on(t,r.Draggable.END[e.type],this._onUp,this)}},_onMove:function(e){if(e.touches&&e.touches.length>1)this._moved=!0;else{var n=e.touches&&1===e.touches.length?e.touches[0]:e,i=new r.Point(n.clientX,n.clientY).subtract(this._startPoint);(i.x||i.y)&&(r.Browser.touch&&Math.abs(i.x)+Math.abs(i.y)<3||(r.DomEvent.preventDefault(e),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=r.DomUtil.getPosition(this._element).subtract(i),r.DomUtil.addClass(t.body,"leaflet-dragging"),this._lastTarget=e.target||e.srcElement,r.DomUtil.addClass(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(i),this._moving=!0,r.Util.cancelAnimFrame(this._animRequest),this._animRequest=r.Util.requestAnimFrame(this._updatePosition,this,!0,this._dragStartTarget)))}},_updatePosition:function(){this.fire("predrag"),r.DomUtil.setPosition(this._element,this._newPos),this.fire("drag")},_onUp:function(){for(var e in r.DomUtil.removeClass(t.body,"leaflet-dragging"),this._lastTarget&&(r.DomUtil.removeClass(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null),r.Draggable.MOVE)r.DomEvent.off(t,r.Draggable.MOVE[e],this._onMove).off(t,r.Draggable.END[e],this._onUp);r.DomUtil.enableImageDrag(),r.DomUtil.enableTextSelection(),this._moved&&this._moving&&(r.Util.cancelAnimFrame(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1}}),r.Handler=r.Class.extend({initialize:function(e){this._map=e},enable:function(){this._enabled||(this._enabled=!0,this.addHooks())},disable:function(){this._enabled&&(this._enabled=!1,this.removeHooks())},enabled:function(){return!!this._enabled}}),r.Map.mergeOptions({dragging:!0,inertia:!r.Browser.android23,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,inertiaThreshold:r.Browser.touch?32:18,easeLinearity:.25,worldCopyJump:!1}),r.Map.Drag=r.Handler.extend({addHooks:function(){if(!this._draggable){var e=this._map;this._draggable=new r.Draggable(e._mapPane,e._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),e.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDrag,this),e.on("viewreset",this._onViewReset,this),e.whenReady(this._onViewReset,this))}this._draggable.enable()},removeHooks:function(){this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){var e=this._map;e._panAnim&&e._panAnim.stop(),e.fire("movestart").fire("dragstart"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(){if(this._map.options.inertia){var e=this._lastTime=+new Date,t=this._lastPos=this._draggable._newPos;this._positions.push(t),this._times.push(e),e-this._times[0]>200&&(this._positions.shift(),this._times.shift())}this._map.fire("move").fire("drag")},_onViewReset:function(){var e=this._map.getSize()._divideBy(2),t=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=t.subtract(e).x,this._worldWidth=this._map.project([0,180]).x},_onPreDrag:function(){var e=this._worldWidth,t=Math.round(e/2),n=this._initialWorldOffset,i=this._draggable._newPos.x,r=(i-t+n)%e+t-n,o=(i+t+n)%e-t-n,a=Math.abs(r+n)<Math.abs(o+n)?r:o;this._draggable._newPos.x=a},_onDragEnd:function(e){var t=this._map,n=t.options,i=+new Date-this._lastTime,o=!n.inertia||i>n.inertiaThreshold||!this._positions[0];if(t.fire("dragend",e),o)t.fire("moveend");else{var a=this._lastPos.subtract(this._positions[0]),s=(this._lastTime+i-this._times[0])/1e3,l=n.easeLinearity,u=a.multiplyBy(l/s),c=u.distanceTo([0,0]),d=Math.min(n.inertiaMaxSpeed,c),h=u.multiplyBy(d/c),f=d/(n.inertiaDeceleration*l),p=h.multiplyBy(-f/2).round();p.x&&p.y?(p=t._limitOffset(p,t.options.maxBounds),r.Util.requestAnimFrame((function(){t.panBy(p,{duration:f,easeLinearity:l,noMoveStart:!0})}))):t.fire("moveend")}}}),r.Map.addInitHook("addHandler","dragging",r.Map.Drag),r.Map.mergeOptions({doubleClickZoom:!0}),r.Map.DoubleClickZoom=r.Handler.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(e){var t=this._map,n=t.getZoom()+(e.originalEvent.shiftKey?-1:1);"center"===t.options.doubleClickZoom?t.setZoom(n):t.setZoomAround(e.containerPoint,n)}}),r.Map.addInitHook("addHandler","doubleClickZoom",r.Map.DoubleClickZoom),r.Map.mergeOptions({scrollWheelZoom:!0}),r.Map.ScrollWheelZoom=r.Handler.extend({addHooks:function(){r.DomEvent.on(this._map._container,"mousewheel",this._onWheelScroll,this),r.DomEvent.on(this._map._container,"MozMousePixelScroll",r.DomEvent.preventDefault),this._delta=0},removeHooks:function(){r.DomEvent.off(this._map._container,"mousewheel",this._onWheelScroll),r.DomEvent.off(this._map._container,"MozMousePixelScroll",r.DomEvent.preventDefault)},_onWheelScroll:function(e){var t=r.DomEvent.getWheelDelta(e);this._delta+=t,this._lastMousePos=this._map.mouseEventToContainerPoint(e),this._startTime||(this._startTime=+new Date);var n=Math.max(40-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(r.bind(this._performZoom,this),n),r.DomEvent.preventDefault(e),r.DomEvent.stopPropagation(e)},_performZoom:function(){var e=this._map,t=this._delta,n=e.getZoom();t=t>0?Math.ceil(t):Math.floor(t),t=Math.max(Math.min(t,4),-4),t=e._limitZoom(n+t)-n,this._delta=0,this._startTime=null,t&&("center"===e.options.scrollWheelZoom?e.setZoom(n+t):e.setZoomAround(this._lastMousePos,n+t))}}),r.Map.addInitHook("addHandler","scrollWheelZoom",r.Map.ScrollWheelZoom),r.extend(r.DomEvent,{_touchstart:r.Browser.msPointer?"MSPointerDown":r.Browser.pointer?"pointerdown":"touchstart",_touchend:r.Browser.msPointer?"MSPointerUp":r.Browser.pointer?"pointerup":"touchend",addDoubleTapListener:function(e,n,i){function o(e){var t;if(r.Browser.pointer?(p.push(e.pointerId),t=p.length):t=e.touches.length,!(t>1)){var n=Date.now(),i=n-(s||n);l=e.touches?e.touches[0]:e,u=i>0&&c>=i,s=n}}function a(e){if(r.Browser.pointer){var t=p.indexOf(e.pointerId);if(-1===t)return;p.splice(t,1)}if(u){if(r.Browser.pointer){var i,o={};for(var a in l)i=l[a],o[a]="function"==typeof i?i.bind(l):i;l=o}l.type="dblclick",n(l),s=null}}var s,l,u=!1,c=250,d="_leaflet_",h=this._touchstart,f=this._touchend,p=[];e[d+h+i]=o,e[d+f+i]=a;var m=r.Browser.pointer?t.documentElement:e;return e.addEventListener(h,o,!1),m.addEventListener(f,a,!1),r.Browser.pointer&&m.addEventListener(r.DomEvent.POINTER_CANCEL,a,!1),this},removeDoubleTapListener:function(e,n){var i="_leaflet_";return e.removeEventListener(this._touchstart,e[i+this._touchstart+n],!1),(r.Browser.pointer?t.documentElement:e).removeEventListener(this._touchend,e[i+this._touchend+n],!1),r.Browser.pointer&&t.documentElement.removeEventListener(r.DomEvent.POINTER_CANCEL,e[i+this._touchend+n],!1),this}}),r.extend(r.DomEvent,{POINTER_DOWN:r.Browser.msPointer?"MSPointerDown":"pointerdown",POINTER_MOVE:r.Browser.msPointer?"MSPointerMove":"pointermove",POINTER_UP:r.Browser.msPointer?"MSPointerUp":"pointerup",POINTER_CANCEL:r.Browser.msPointer?"MSPointerCancel":"pointercancel",_pointers:[],_pointerDocumentListener:!1,addPointerListener:function(e,t,n,i){switch(t){case"touchstart":return this.addPointerListenerStart(e,t,n,i);case"touchend":return this.addPointerListenerEnd(e,t,n,i);case"touchmove":return this.addPointerListenerMove(e,t,n,i);default:throw"Unknown touch event type"}},addPointerListenerStart:function(e,n,i,o){var a=this._pointers,s=function(e){"mouse"!==e.pointerType&&e.pointerType!==e.MSPOINTER_TYPE_MOUSE&&r.DomEvent.preventDefault(e);for(var t=!1,n=0;n<a.length;n++)if(a[n].pointerId===e.pointerId){t=!0;break}t||a.push(e),e.touches=a.slice(),e.changedTouches=[e],i(e)};if(e["_leaflet_touchstart"+o]=s,e.addEventListener(this.POINTER_DOWN,s,!1),!this._pointerDocumentListener){var l=function(e){for(var t=0;t<a.length;t++)if(a[t].pointerId===e.pointerId){a.splice(t,1);break}};t.documentElement.addEventListener(this.POINTER_UP,l,!1),t.documentElement.addEventListener(this.POINTER_CANCEL,l,!1),this._pointerDocumentListener=!0}return this},addPointerListenerMove:function(e,t,n,i){function r(e){if(e.pointerType!==e.MSPOINTER_TYPE_MOUSE&&"mouse"!==e.pointerType||0!==e.buttons){for(var t=0;t<o.length;t++)if(o[t].pointerId===e.pointerId){o[t]=e;break}e.touches=o.slice(),e.changedTouches=[e],n(e)}}var o=this._pointers;return e["_leaflet_touchmove"+i]=r,e.addEventListener(this.POINTER_MOVE,r,!1),this},addPointerListenerEnd:function(e,t,n,i){var r=this._pointers,o=function(e){for(var t=0;t<r.length;t++)if(r[t].pointerId===e.pointerId){r.splice(t,1);break}e.touches=r.slice(),e.changedTouches=[e],n(e)};return e["_leaflet_touchend"+i]=o,e.addEventListener(this.POINTER_UP,o,!1),e.addEventListener(this.POINTER_CANCEL,o,!1),this},removePointerListener:function(e,t,n){var i=e["_leaflet_"+t+n];switch(t){case"touchstart":e.removeEventListener(this.POINTER_DOWN,i,!1);break;case"touchmove":e.removeEventListener(this.POINTER_MOVE,i,!1);break;case"touchend":e.removeEventListener(this.POINTER_UP,i,!1),e.removeEventListener(this.POINTER_CANCEL,i,!1)}return this}}),r.Map.mergeOptions({touchZoom:r.Browser.touch&&!r.Browser.android23,bounceAtZoomLimits:!0}),r.Map.TouchZoom=r.Handler.extend({addHooks:function(){r.DomEvent.on(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){r.DomEvent.off(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(e){var n=this._map;if(e.touches&&2===e.touches.length&&!n._animatingZoom&&!this._zooming){var i=n.mouseEventToLayerPoint(e.touches[0]),o=n.mouseEventToLayerPoint(e.touches[1]),a=n._getCenterLayerPoint();this._startCenter=i.add(o)._divideBy(2),this._startDist=i.distanceTo(o),this._moved=!1,this._zooming=!0,this._centerOffset=a.subtract(this._startCenter),n._panAnim&&n._panAnim.stop(),r.DomEvent.on(t,"touchmove",this._onTouchMove,this).on(t,"touchend",this._onTouchEnd,this),r.DomEvent.preventDefault(e)}},_onTouchMove:function(e){var t=this._map;if(e.touches&&2===e.touches.length&&this._zooming){var n=t.mouseEventToLayerPoint(e.touches[0]),i=t.mouseEventToLayerPoint(e.touches[1]);this._scale=n.distanceTo(i)/this._startDist,this._delta=n._add(i)._divideBy(2)._subtract(this._startCenter),1!==this._scale&&(t.options.bounceAtZoomLimits||!(t.getZoom()===t.getMinZoom()&&this._scale<1||t.getZoom()===t.getMaxZoom()&&this._scale>1))&&(this._moved||(r.DomUtil.addClass(t._mapPane,"leaflet-touching"),t.fire("movestart").fire("zoomstart"),this._moved=!0),r.Util.cancelAnimFrame(this._animRequest),this._animRequest=r.Util.requestAnimFrame(this._updateOnMove,this,!0,this._map._container),r.DomEvent.preventDefault(e))}},_updateOnMove:function(){var e=this._map,t=this._getScaleOrigin(),n=e.layerPointToLatLng(t),i=e.getScaleZoom(this._scale);e._animateZoom(n,i,this._startCenter,this._scale,this._delta,!1,!0)},_onTouchEnd:function(){if(this._moved&&this._zooming){var e=this._map;this._zooming=!1,r.DomUtil.removeClass(e._mapPane,"leaflet-touching"),r.Util.cancelAnimFrame(this._animRequest),r.DomEvent.off(t,"touchmove",this._onTouchMove).off(t,"touchend",this._onTouchEnd);var n=this._getScaleOrigin(),i=e.layerPointToLatLng(n),o=e.getZoom(),a=e.getScaleZoom(this._scale)-o,s=a>0?Math.ceil(a):Math.floor(a),l=e._limitZoom(o+s),u=e.getZoomScale(l)/this._scale;e._animateZoom(i,l,n,u)}else this._zooming=!1},_getScaleOrigin:function(){var e=this._centerOffset.subtract(this._delta).divideBy(this._scale);return this._startCenter.add(e)}}),r.Map.addInitHook("addHandler","touchZoom",r.Map.TouchZoom),r.Map.mergeOptions({tap:!0,tapTolerance:15}),r.Map.Tap=r.Handler.extend({addHooks:function(){r.DomEvent.on(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){r.DomEvent.off(this._map._container,"touchstart",this._onDown,this)},_onDown:function(e){if(e.touches){if(r.DomEvent.preventDefault(e),this._fireClick=!0,e.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var n=e.touches[0],i=n.target;this._startPos=this._newPos=new r.Point(n.clientX,n.clientY),i.tagName&&"a"===i.tagName.toLowerCase()&&r.DomUtil.addClass(i,"leaflet-active"),this._holdTimeout=setTimeout(r.bind((function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",n))}),this),1e3),r.DomEvent.on(t,"touchmove",this._onMove,this).on(t,"touchend",this._onUp,this)}},_onUp:function(e){if(clearTimeout(this._holdTimeout),r.DomEvent.off(t,"touchmove",this._onMove,this).off(t,"touchend",this._onUp,this),this._fireClick&&e&&e.changedTouches){var n=e.changedTouches[0],i=n.target;i&&i.tagName&&"a"===i.tagName.toLowerCase()&&r.DomUtil.removeClass(i,"leaflet-active"),this._isTapValid()&&this._simulateEvent("click",n)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(e){var t=e.touches[0];this._newPos=new r.Point(t.clientX,t.clientY)},_simulateEvent:function(n,i){var r=t.createEvent("MouseEvents");r._simulated=!0,i.target._simulatedClick=!0,r.initMouseEvent(n,!0,!0,e,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(r)}}),r.Browser.touch&&!r.Browser.pointer&&r.Map.addInitHook("addHandler","tap",r.Map.Tap),r.Map.mergeOptions({boxZoom:!0}),r.Map.BoxZoom=r.Handler.extend({initialize:function(e){this._map=e,this._container=e._container,this._pane=e._panes.overlayPane,this._moved=!1},addHooks:function(){r.DomEvent.on(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){r.DomEvent.off(this._container,"mousedown",this._onMouseDown),this._moved=!1},moved:function(){return this._moved},_onMouseDown:function(e){return this._moved=!1,!(!e.shiftKey||1!==e.which&&1!==e.button)&&(r.DomUtil.disableTextSelection(),r.DomUtil.disableImageDrag(),this._startLayerPoint=this._map.mouseEventToLayerPoint(e),void r.DomEvent.on(t,"mousemove",this._onMouseMove,this).on(t,"mouseup",this._onMouseUp,this).on(t,"keydown",this._onKeyDown,this))},_onMouseMove:function(e){this._moved||(this._box=r.DomUtil.create("div","leaflet-zoom-box",this._pane),r.DomUtil.setPosition(this._box,this._startLayerPoint),this._container.style.cursor="crosshair",this._map.fire("boxzoomstart"));var t=this._startLayerPoint,n=this._box,i=this._map.mouseEventToLayerPoint(e),o=i.subtract(t),a=new r.Point(Math.min(i.x,t.x),Math.min(i.y,t.y));r.DomUtil.setPosition(n,a),this._moved=!0,n.style.width=Math.max(0,Math.abs(o.x)-4)+"px",n.style.height=Math.max(0,Math.abs(o.y)-4)+"px"},_finish:function(){this._moved&&(this._pane.removeChild(this._box),this._container.style.cursor=""),r.DomUtil.enableTextSelection(),r.DomUtil.enableImageDrag(),r.DomEvent.off(t,"mousemove",this._onMouseMove).off(t,"mouseup",this._onMouseUp).off(t,"keydown",this._onKeyDown)},_onMouseUp:function(e){this._finish();var t=this._map,n=t.mouseEventToLayerPoint(e);if(!this._startLayerPoint.equals(n)){var i=new r.LatLngBounds(t.layerPointToLatLng(this._startLayerPoint),t.layerPointToLatLng(n));t.fitBounds(i),t.fire("boxzoomend",{boxZoomBounds:i})}},_onKeyDown:function(e){27===e.keyCode&&this._finish()}}),r.Map.addInitHook("addHandler","boxZoom",r.Map.BoxZoom),r.Map.mergeOptions({keyboard:!0,keyboardPanOffset:80,keyboardZoomOffset:1}),r.Map.Keyboard=r.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,173]},initialize:function(e){this._map=e,this._setPanOffset(e.options.keyboardPanOffset),this._setZoomOffset(e.options.keyboardZoomOffset)},addHooks:function(){var e=this._map._container;-1===e.tabIndex&&(e.tabIndex="0"),r.DomEvent.on(e,"focus",this._onFocus,this).on(e,"blur",this._onBlur,this).on(e,"mousedown",this._onMouseDown,this),this._map.on("focus",this._addHooks,this).on("blur",this._removeHooks,this)},removeHooks:function(){this._removeHooks();var e=this._map._container;r.DomEvent.off(e,"focus",this._onFocus,this).off(e,"blur",this._onBlur,this).off(e,"mousedown",this._onMouseDown,this),this._map.off("focus",this._addHooks,this).off("blur",this._removeHooks,this)},_onMouseDown:function(){if(!this._focused){var n=t.body,i=t.documentElement,r=n.scrollTop||i.scrollTop,o=n.scrollLeft||i.scrollLeft;this._map._container.focus(),e.scrollTo(o,r)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanOffset:function(e){var t,n,i=this._panKeys={},r=this.keyCodes;for(t=0,n=r.left.length;n>t;t++)i[r.left[t]]=[-1*e,0];for(t=0,n=r.right.length;n>t;t++)i[r.right[t]]=[e,0];for(t=0,n=r.down.length;n>t;t++)i[r.down[t]]=[0,e];for(t=0,n=r.up.length;n>t;t++)i[r.up[t]]=[0,-1*e]},_setZoomOffset:function(e){var t,n,i=this._zoomKeys={},r=this.keyCodes;for(t=0,n=r.zoomIn.length;n>t;t++)i[r.zoomIn[t]]=e;for(t=0,n=r.zoomOut.length;n>t;t++)i[r.zoomOut[t]]=-e},_addHooks:function(){r.DomEvent.on(t,"keydown",this._onKeyDown,this)},_removeHooks:function(){r.DomEvent.off(t,"keydown",this._onKeyDown,this)},_onKeyDown:function(e){var t=e.keyCode,n=this._map;if(t in this._panKeys){if(n._panAnim&&n._panAnim._inProgress)return;n.panBy(this._panKeys[t]),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds)}else{if(!(t in this._zoomKeys))return;n.setZoom(n.getZoom()+this._zoomKeys[t])}r.DomEvent.stop(e)}}),r.Map.addInitHook("addHandler","keyboard",r.Map.Keyboard),r.Handler.MarkerDrag=r.Handler.extend({initialize:function(e){this._marker=e},addHooks:function(){var e=this._marker._icon;this._draggable||(this._draggable=new r.Draggable(e,e)),this._draggable.on("dragstart",this._onDragStart,this).on("drag",this._onDrag,this).on("dragend",this._onDragEnd,this),this._draggable.enable(),r.DomUtil.addClass(this._marker._icon,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off("dragstart",this._onDragStart,this).off("drag",this._onDrag,this).off("dragend",this._onDragEnd,this),this._draggable.disable(),r.DomUtil.removeClass(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){this._marker.closePopup().fire("movestart").fire("dragstart")},_onDrag:function(){var e=this._marker,t=e._shadow,n=r.DomUtil.getPosition(e._icon),i=e._map.layerPointToLatLng(n);t&&r.DomUtil.setPosition(t,n),e._latlng=i,e.fire("move",{latlng:i}).fire("drag")},_onDragEnd:function(e){this._marker.fire("moveend").fire("dragend",e)}}),r.Control=r.Class.extend({options:{position:"topright"},initialize:function(e){r.setOptions(this,e)},getPosition:function(){return this.options.position},setPosition:function(e){var t=this._map;return t&&t.removeControl(this),this.options.position=e,t&&t.addControl(this),this},getContainer:function(){return this._container},addTo:function(e){this._map=e;var t=this._container=this.onAdd(e),n=this.getPosition(),i=e._controlCorners[n];return r.DomUtil.addClass(t,"leaflet-control"),-1!==n.indexOf("bottom")?i.insertBefore(t,i.firstChild):i.appendChild(t),this},removeFrom:function(e){var t=this.getPosition();return e._controlCorners[t].removeChild(this._container),this._map=null,this.onRemove&&this.onRemove(e),this},_refocusOnMap:function(){this._map&&this._map.getContainer().focus()}}),r.control=function(e){return new r.Control(e)},r.Map.include({addControl:function(e){return e.addTo(this),this},removeControl:function(e){return e.removeFrom(this),this},_initControlPos:function(){function e(e,o){var a=n+e+" "+n+o;t[e+o]=r.DomUtil.create("div",a,i)}var t=this._controlCorners={},n="leaflet-",i=this._controlContainer=r.DomUtil.create("div",n+"control-container",this._container);e("top","left"),e("top","right"),e("bottom","left"),e("bottom","right")},_clearControlPos:function(){this._container.removeChild(this._controlContainer)}}),r.Control.Zoom=r.Control.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"-",zoomOutTitle:"Zoom out"},onAdd:function(e){var t="leaflet-control-zoom",n=r.DomUtil.create("div",t+" leaflet-bar");return this._map=e,this._zoomInButton=this._createButton(this.options.zoomInText,this.options.zoomInTitle,t+"-in",n,this._zoomIn,this),this._zoomOutButton=this._createButton(this.options.zoomOutText,this.options.zoomOutTitle,t+"-out",n,this._zoomOut,this),this._updateDisabled(),e.on("zoomend zoomlevelschange",this._updateDisabled,this),n},onRemove:function(e){e.off("zoomend zoomlevelschange",this._updateDisabled,this)},_zoomIn:function(e){this._map.zoomIn(e.shiftKey?3:1)},_zoomOut:function(e){this._map.zoomOut(e.shiftKey?3:1)},_createButton:function(e,t,n,i,o,a){var s=r.DomUtil.create("a",n,i);s.innerHTML=e,s.href="#",s.title=t;var l=r.DomEvent.stopPropagation;return r.DomEvent.on(s,"click",l).on(s,"mousedown",l).on(s,"dblclick",l).on(s,"click",r.DomEvent.preventDefault).on(s,"click",o,a).on(s,"click",this._refocusOnMap,a),s},_updateDisabled:function(){var e=this._map,t="leaflet-disabled";r.DomUtil.removeClass(this._zoomInButton,t),r.DomUtil.removeClass(this._zoomOutButton,t),e._zoom===e.getMinZoom()&&r.DomUtil.addClass(this._zoomOutButton,t),e._zoom===e.getMaxZoom()&&r.DomUtil.addClass(this._zoomInButton,t)}}),r.Map.mergeOptions({zoomControl:!0}),r.Map.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new r.Control.Zoom,this.addControl(this.zoomControl))})),r.control.zoom=function(e){return new r.Control.Zoom(e)},r.Control.Attribution=r.Control.extend({options:{position:"bottomright",prefix:'<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>'},initialize:function(e){r.setOptions(this,e),this._attributions={}},onAdd:function(e){for(var t in this._container=r.DomUtil.create("div","leaflet-control-attribution"),r.DomEvent.disableClickPropagation(this._container),e._layers)e._layers[t].getAttribution&&this.addAttribution(e._layers[t].getAttribution());return e.on("layeradd",this._onLayerAdd,this).on("layerremove",this._onLayerRemove,this),this._update(),this._container},onRemove:function(e){e.off("layeradd",this._onLayerAdd).off("layerremove",this._onLayerRemove)},setPrefix:function(e){return this.options.prefix=e,this._update(),this},addAttribution:function(e){return e?(this._attributions[e]||(this._attributions[e]=0),this._attributions[e]++,this._update(),this):void 0},removeAttribution:function(e){return e?(this._attributions[e]&&(this._attributions[e]--,this._update()),this):void 0},_update:function(){if(this._map){var e=[];for(var t in this._attributions)this._attributions[t]&&e.push(t);var n=[];this.options.prefix&&n.push(this.options.prefix),e.length&&n.push(e.join(", ")),this._container.innerHTML=n.join(" | ")}},_onLayerAdd:function(e){e.layer.getAttribution&&this.addAttribution(e.layer.getAttribution())},_onLayerRemove:function(e){e.layer.getAttribution&&this.removeAttribution(e.layer.getAttribution())}}),r.Map.mergeOptions({attributionControl:!0}),r.Map.addInitHook((function(){this.options.attributionControl&&(this.attributionControl=(new r.Control.Attribution).addTo(this))})),r.control.attribution=function(e){return new r.Control.Attribution(e)},r.Control.Scale=r.Control.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0,updateWhenIdle:!1},onAdd:function(e){this._map=e;var t="leaflet-control-scale",n=r.DomUtil.create("div",t),i=this.options;return this._addScales(i,t,n),e.on(i.updateWhenIdle?"moveend":"move",this._update,this),e.whenReady(this._update,this),n},onRemove:function(e){e.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(e,t,n){e.metric&&(this._mScale=r.DomUtil.create("div",t+"-line",n)),e.imperial&&(this._iScale=r.DomUtil.create("div",t+"-line",n))},_update:function(){var e=this._map.getBounds(),t=e.getCenter().lat,n=6378137*Math.PI*Math.cos(t*Math.PI/180)*(e.getNorthEast().lng-e.getSouthWest().lng)/180,i=this._map.getSize(),r=this.options,o=0;i.x>0&&(o=n*(r.maxWidth/i.x)),this._updateScales(r,o)},_updateScales:function(e,t){e.metric&&t&&this._updateMetric(t),e.imperial&&t&&this._updateImperial(t)},_updateMetric:function(e){var t=this._getRoundNum(e);this._mScale.style.width=this._getScaleWidth(t/e)+"px",this._mScale.innerHTML=1e3>t?t+" m":t/1e3+" km"},_updateImperial:function(e){var t,n,i,r=3.2808399*e,o=this._iScale;r>5280?(t=r/5280,n=this._getRoundNum(t),o.style.width=this._getScaleWidth(n/t)+"px",o.innerHTML=n+" mi"):(i=this._getRoundNum(r),o.style.width=this._getScaleWidth(i/r)+"px",o.innerHTML=i+" ft")},_getScaleWidth:function(e){return Math.round(this.options.maxWidth*e)-10},_getRoundNum:function(e){var t=Math.pow(10,(Math.floor(e)+"").length-1),n=e/t;return t*(n>=10?10:n>=5?5:n>=3?3:n>=2?2:1)}}),r.control.scale=function(e){return new r.Control.Scale(e)},r.Control.Layers=r.Control.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0},initialize:function(e,t,n){for(var i in r.setOptions(this,n),this._layers={},this._lastZIndex=0,this._handlingClick=!1,e)this._addLayer(e[i],i);for(i in t)this._addLayer(t[i],i,!0)},onAdd:function(e){return this._initLayout(),this._update(),e.on("layeradd",this._onLayerChange,this).on("layerremove",this._onLayerChange,this),this._container},onRemove:function(e){e.off("layeradd",this._onLayerChange,this).off("layerremove",this._onLayerChange,this)},addBaseLayer:function(e,t){return this._addLayer(e,t),this._update(),this},addOverlay:function(e,t){return this._addLayer(e,t,!0),this._update(),this},removeLayer:function(e){var t=r.stamp(e);return delete this._layers[t],this._update(),this},_initLayout:function(){var e="leaflet-control-layers",t=this._container=r.DomUtil.create("div",e);t.setAttribute("aria-haspopup",!0),r.Browser.touch?r.DomEvent.on(t,"click",r.DomEvent.stopPropagation):r.DomEvent.disableClickPropagation(t).disableScrollPropagation(t);var n=this._form=r.DomUtil.create("form",e+"-list");if(this.options.collapsed){r.Browser.android||r.DomEvent.on(t,"mouseover",this._expand,this).on(t,"mouseout",this._collapse,this);var i=this._layersLink=r.DomUtil.create("a",e+"-toggle",t);i.href="#",i.title="Layers",r.Browser.touch?r.DomEvent.on(i,"click",r.DomEvent.stop).on(i,"click",this._expand,this):r.DomEvent.on(i,"focus",this._expand,this),r.DomEvent.on(n,"click",(function(){setTimeout(r.bind(this._onInputClick,this),0)}),this),this._map.on("click",this._collapse,this)}else this._expand();this._baseLayersList=r.DomUtil.create("div",e+"-base",n),this._separator=r.DomUtil.create("div",e+"-separator",n),this._overlaysList=r.DomUtil.create("div",e+"-overlays",n),t.appendChild(n)},_addLayer:function(e,t,n){var i=r.stamp(e);this._layers[i]={layer:e,name:t,overlay:n},this.options.autoZIndex&&e.setZIndex&&(this._lastZIndex++,e.setZIndex(this._lastZIndex))},_update:function(){if(this._container){this._baseLayersList.innerHTML="",this._overlaysList.innerHTML="";var e,t,n=!1,i=!1;for(e in this._layers)t=this._layers[e],this._addItem(t),i=i||t.overlay,n=n||!t.overlay;this._separator.style.display=i&&n?"":"none"}},_onLayerChange:function(e){var t=this._layers[r.stamp(e.layer)];if(t){this._handlingClick||this._update();var n=t.overlay?"layeradd"===e.type?"overlayadd":"overlayremove":"layeradd"===e.type?"baselayerchange":null;n&&this._map.fire(n,t)}},_createRadioElement:function(e,n){var i='<input type="radio" class="leaflet-control-layers-selector" name="'+e+'"';n&&(i+=' checked="checked"'),i+="/>";var r=t.createElement("div");return r.innerHTML=i,r.firstChild},_addItem:function(e){var n,i=t.createElement("label"),o=this._map.hasLayer(e.layer);e.overlay?((n=t.createElement("input")).type="checkbox",n.className="leaflet-control-layers-selector",n.defaultChecked=o):n=this._createRadioElement("leaflet-base-layers",o),n.layerId=r.stamp(e.layer),r.DomEvent.on(n,"click",this._onInputClick,this);var a=t.createElement("span");return a.innerHTML=" "+e.name,i.appendChild(n),i.appendChild(a),(e.overlay?this._overlaysList:this._baseLayersList).appendChild(i),i},_onInputClick:function(){var e,t,n,i=this._form.getElementsByTagName("input"),r=i.length;for(this._handlingClick=!0,e=0;r>e;e++)t=i[e],n=this._layers[t.layerId],t.checked&&!this._map.hasLayer(n.layer)?this._map.addLayer(n.layer):!t.checked&&this._map.hasLayer(n.layer)&&this._map.removeLayer(n.layer);this._handlingClick=!1,this._refocusOnMap()},_expand:function(){r.DomUtil.addClass(this._container,"leaflet-control-layers-expanded")},_collapse:function(){this._container.className=this._container.className.replace(" leaflet-control-layers-expanded","")}}),r.control.layers=function(e,t,n){return new r.Control.Layers(e,t,n)},r.PosAnimation=r.Class.extend({includes:r.Mixin.Events,run:function(e,t,n,i){this.stop(),this._el=e,this._inProgress=!0,this._newPos=t,this.fire("start"),e.style[r.DomUtil.TRANSITION]="all "+(n||.25)+"s cubic-bezier(0,0,"+(i||.5)+",1)",r.DomEvent.on(e,r.DomUtil.TRANSITION_END,this._onTransitionEnd,this),r.DomUtil.setPosition(e,t),r.Util.falseFn(e.offsetWidth),this._stepTimer=setInterval(r.bind(this._onStep,this),50)},stop:function(){this._inProgress&&(r.DomUtil.setPosition(this._el,this._getPos()),this._onTransitionEnd(),r.Util.falseFn(this._el.offsetWidth))},_onStep:function(){var e=this._getPos();return e?(this._el._leaflet_pos=e,void this.fire("step")):void this._onTransitionEnd()},_transformRe:/([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/,_getPos:function(){var t,n,i,o=this._el,a=e.getComputedStyle(o);if(r.Browser.any3d){if(!(i=a[r.DomUtil.TRANSFORM].match(this._transformRe)))return;t=parseFloat(i[1]),n=parseFloat(i[2])}else t=parseFloat(a.left),n=parseFloat(a.top);return new r.Point(t,n,!0)},_onTransitionEnd:function(){r.DomEvent.off(this._el,r.DomUtil.TRANSITION_END,this._onTransitionEnd,this),this._inProgress&&(this._inProgress=!1,this._el.style[r.DomUtil.TRANSITION]="",this._el._leaflet_pos=this._newPos,clearInterval(this._stepTimer),this.fire("step").fire("end"))}}),r.Map.include({setView:function(e,t,i){return t=t===n?this._zoom:this._limitZoom(t),e=this._limitCenter(r.latLng(e),t,this.options.maxBounds),i=i||{},this._panAnim&&this._panAnim.stop(),this._loaded&&!i.reset&&!0!==i&&(i.animate!==n&&(i.zoom=r.extend({animate:i.animate},i.zoom),i.pan=r.extend({animate:i.animate},i.pan)),this._zoom!==t?this._tryAnimatedZoom&&this._tryAnimatedZoom(e,t,i.zoom):this._tryAnimatedPan(e,i.pan))?(clearTimeout(this._sizeTimer),this):(this._resetView(e,t),this)},panBy:function(e,t){if(t=t||{},!(e=r.point(e).round()).x&&!e.y)return this;if(this._panAnim||(this._panAnim=new r.PosAnimation,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),t.noMoveStart||this.fire("movestart"),!1!==t.animate){r.DomUtil.addClass(this._mapPane,"leaflet-pan-anim");var n=this._getMapPanePos().subtract(e);this._panAnim.run(this._mapPane,n,t.duration||.25,t.easeLinearity)}else this._rawPanBy(e),this.fire("move").fire("moveend");return this},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){r.DomUtil.removeClass(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(e,t){var n=this._getCenterOffset(e)._floor();return!(!0!==(t&&t.animate)&&!this.getSize().contains(n)||(this.panBy(n,t),0))}}),r.PosAnimation=r.DomUtil.TRANSITION?r.PosAnimation:r.PosAnimation.extend({run:function(e,t,n,i){this.stop(),this._el=e,this._inProgress=!0,this._duration=n||.25,this._easeOutPower=1/Math.max(i||.5,.2),this._startPos=r.DomUtil.getPosition(e),this._offset=t.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(),this._complete())},_animate:function(){this._animId=r.Util.requestAnimFrame(this._animate,this),this._step()},_step:function(){var e=+new Date-this._startTime,t=1e3*this._duration;t>e?this._runFrame(this._easeOut(e/t)):(this._runFrame(1),this._complete())},_runFrame:function(e){var t=this._startPos.add(this._offset.multiplyBy(e));r.DomUtil.setPosition(this._el,t),this.fire("step")},_complete:function(){r.Util.cancelAnimFrame(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(e){return 1-Math.pow(1-e,this._easeOutPower)}}),r.Map.mergeOptions({zoomAnimation:!0,zoomAnimationThreshold:4}),r.DomUtil.TRANSITION&&r.Map.addInitHook((function(){this._zoomAnimated=this.options.zoomAnimation&&r.DomUtil.TRANSITION&&r.Browser.any3d&&!r.Browser.android23&&!r.Browser.mobileOpera,this._zoomAnimated&&r.DomEvent.on(this._mapPane,r.DomUtil.TRANSITION_END,this._catchTransitionEnd,this)})),r.Map.include(r.DomUtil.TRANSITION?{_catchTransitionEnd:function(e){this._animatingZoom&&e.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(e,t,n){if(this._animatingZoom)return!0;if(n=n||{},!this._zoomAnimated||!1===n.animate||this._nothingToAnimate()||Math.abs(t-this._zoom)>this.options.zoomAnimationThreshold)return!1;var i=this.getZoomScale(t),r=this._getCenterOffset(e)._divideBy(1-1/i),o=this._getCenterLayerPoint()._add(r);return!(!0!==n.animate&&!this.getSize().contains(r)||(this.fire("movestart").fire("zoomstart"),this._animateZoom(e,t,o,i,null,!0),0))},_animateZoom:function(e,t,n,i,o,a,s){s||(this._animatingZoom=!0),r.DomUtil.addClass(this._mapPane,"leaflet-zoom-anim"),this._animateToCenter=e,this._animateToZoom=t,r.Draggable&&(r.Draggable._disabled=!0),r.Util.requestAnimFrame((function(){this.fire("zoomanim",{center:e,zoom:t,origin:n,scale:i,delta:o,backwards:a}),setTimeout(r.bind(this._onZoomTransitionEnd,this),250)}),this)},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._animatingZoom=!1,r.DomUtil.removeClass(this._mapPane,"leaflet-zoom-anim"),r.Util.requestAnimFrame((function(){this._resetView(this._animateToCenter,this._animateToZoom,!0,!0),r.Draggable&&(r.Draggable._disabled=!1)}),this))}}:{}),r.TileLayer.include({_animateZoom:function(e){this._animating||(this._animating=!0,this._prepareBgBuffer());var t=this._bgBuffer,n=r.DomUtil.TRANSFORM,i=e.delta?r.DomUtil.getTranslateString(e.delta):t.style[n],o=r.DomUtil.getScaleString(e.scale,e.origin);t.style[n]=e.backwards?o+" "+i:i+" "+o},_endZoomAnim:function(){var e=this._tileContainer,t=this._bgBuffer;e.style.visibility="",e.parentNode.appendChild(e),r.Util.falseFn(t.offsetWidth);var n=this._map.getZoom();(n>this.options.maxZoom||n<this.options.minZoom)&&this._clearBgBuffer(),this._animating=!1},_clearBgBuffer:function(){var e=this._map;!e||e._animatingZoom||e.touchZoom._zooming||(this._bgBuffer.innerHTML="",this._bgBuffer.style[r.DomUtil.TRANSFORM]="")},_prepareBgBuffer:function(){var e=this._tileContainer,t=this._bgBuffer,n=this._getLoadedTilesPercentage(t),i=this._getLoadedTilesPercentage(e);return t&&n>.5&&.5>i?(e.style.visibility="hidden",void this._stopLoadingImages(e)):(t.style.visibility="hidden",t.style[r.DomUtil.TRANSFORM]="",this._tileContainer=t,t=this._bgBuffer=e,this._stopLoadingImages(t),void clearTimeout(this._clearBgBufferTimer))},_getLoadedTilesPercentage:function(e){var t,n,i=e.getElementsByTagName("img"),r=0;for(t=0,n=i.length;n>t;t++)i[t].complete&&r++;return r/n},_stopLoadingImages:function(e){var t,n,i,o=Array.prototype.slice.call(e.getElementsByTagName("img"));for(t=0,n=o.length;n>t;t++)(i=o[t]).complete||(i.onload=r.Util.falseFn,i.onerror=r.Util.falseFn,i.src=r.Util.emptyImageUrl,i.parentNode.removeChild(i))}}),r.Map.include({_defaultLocateOptions:{watch:!1,setView:!1,maxZoom:1/0,timeout:1e4,maximumAge:0,enableHighAccuracy:!1},locate:function(e){if(e=this._locateOptions=r.extend(this._defaultLocateOptions,e),!navigator.geolocation)return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var t=r.bind(this._handleGeolocationResponse,this),n=r.bind(this._handleGeolocationError,this);return e.watch?this._locationWatchId=navigator.geolocation.watchPosition(t,n,e):navigator.geolocation.getCurrentPosition(t,n,e),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(e){var t=e.code,n=e.message||(1===t?"permission denied":2===t?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:t,message:"Geolocation error: "+n+"."})},_handleGeolocationResponse:function(e){var t=e.coords.latitude,n=e.coords.longitude,i=new r.LatLng(t,n),o=180*e.coords.accuracy/40075017,a=o/Math.cos(r.LatLng.DEG_TO_RAD*t),s=r.latLngBounds([t-o,n-a],[t+o,n+a]),l=this._locateOptions;if(l.setView){var u=Math.min(this.getBoundsZoom(s),l.maxZoom);this.setView(i,u)}var c={latlng:i,bounds:s,timestamp:e.timestamp};for(var d in e.coords)"number"==typeof e.coords[d]&&(c[d]=e.coords[d]);this.fire("locationfound",c)}})}(window,document),function(e,t,n){"use strict";L.AwesomeMarkers={},L.AwesomeMarkers.version="2.0.1",L.AwesomeMarkers.Icon=L.Icon.extend({options:{iconSize:[35,45],iconAnchor:[17,42],popupAnchor:[1,-32],shadowAnchor:[10,12],shadowSize:[36,16],className:"awesome-marker",prefix:"glyphicon",spinClass:"fa-spin",icon:"home",markerColor:"blue",iconColor:"white"},initialize:function(e){e=L.Util.setOptions(this,e)},createIcon:function(){var e=t.createElement("div"),n=this.options;return n.icon&&(e.innerHTML=this._createInner()),n.bgPos&&(e.style.backgroundPosition=-n.bgPos.x+"px "+-n.bgPos.y+"px"),this._setIconStyles(e,"icon-"+n.markerColor),e},_createInner:function(){var e,t="",n="",i="",r=this.options;return e=r.icon.slice(0,r.prefix.length+1)===r.prefix+"-"?r.icon:r.prefix+"-"+r.icon,r.spin&&"string"==typeof r.spinClass&&(t=r.spinClass),r.iconColor&&("white"===r.iconColor||"black"===r.iconColor?n="icon-"+r.iconColor:i="style='color: "+r.iconColor+"' "),"<i "+i+"class='"+r.prefix+" "+e+" "+t+" "+n+"'></i>"},_setIconStyles:function(e,t){var n,i=this.options,r=L.point(i["shadow"===t?"shadowSize":"iconSize"]);!(n="shadow"===t?L.point(i.shadowAnchor||i.iconAnchor):L.point(i.iconAnchor))&&r&&(n=r.divideBy(2,!0)),e.className="awesome-marker-"+t+" "+i.className,n&&(e.style.marginLeft=-n.x+"px",e.style.marginTop=-n.y+"px"),r&&(e.style.width=r.x+"px",e.style.height=r.y+"px")},createShadow:function(){var e=t.createElement("div");return this._setIconStyles(e,"shadow"),e}}),L.AwesomeMarkers.icon=function(e){return new L.AwesomeMarkers.Icon(e)}}(0,document),function(e){if("function"==typeof define&&define.amd)define(["leaflet"],e);else if("undefined"!=typeof module)module.exports=e(require("leaflet"));else{if(void 0===window.L)throw"Leaflet must be loaded first";e(window.L)}}((function(e){function t(e,t){var n=t.split("."),i=n.pop(),r=n.length,o=n[0],a=1;if(r>0)for(;(e=e[o])&&r>a;)o=n[a++];return e?e[i]:void 0}function n(e){return"[object Object]"===Object.prototype.toString.call(e)}return e.Control.Search=e.Control.extend({includes:e.Mixin.Events,options:{url:"",layer:null,sourceData:null,jsonpParam:null,propertyLoc:"loc",propertyName:"title",formatData:null,filterData:null,moveToLocation:null,buildTip:null,container:"",zoom:null,minLength:1,initial:!0,casesensitive:!1,autoType:!0,delayType:400,tooltipLimit:-1,tipAutoSubmit:!0,firstTipSubmit:!1,autoResize:!0,collapsed:!0,autoCollapse:!1,autoCollapseTime:1200,textErr:"Location not found",textCancel:"Cancel",textPlaceholder:"Search...",position:"topleft",hideMarkerOnCollapse:!1,marker:{icon:!1,animate:!0,circle:{radius:10,weight:3,color:"#e03",stroke:!0,fill:!1}}},initialize:function(t){e.Util.setOptions(this,t||{}),this._inputMinSize=this.options.textPlaceholder?this.options.textPlaceholder.length:10,this._layer=this.options.layer||new e.LayerGroup,this._filterData=this.options.filterData||this._defaultFilterData,this._formatData=this.options.formatData||this._defaultFormatData,this._moveToLocation=this.options.moveToLocation||this._defaultMoveToLocation,this._autoTypeTmp=this.options.autoType,this._countertips=0,this._recordsCache={},this._curReq=null},onAdd:function(t){return this._map=t,this._container=e.DomUtil.create("div","leaflet-control-search"),this._input=this._createInput(this.options.textPlaceholder,"search-input"),this._tooltip=this._createTooltip("search-tooltip"),this._cancel=this._createCancel(this.options.textCancel,"search-cancel"),this._button=this._createButton(this.options.textPlaceholder,"search-button"),this._alert=this._createAlert("search-alert"),!1===this.options.collapsed&&this.expand(this.options.collapsed),this.options.marker&&(this.options.marker instanceof e.Marker||this.options.marker instanceof e.CircleMarker?this._markerSearch=this.options.marker:n(this.options.marker)&&(this._markerSearch=new e.Control.Search.Marker([0,0],this.options.marker)),this._markerSearch._isMarkerSearch=!0),this.setLayer(this._layer),t.on({resize:this._handleAutoresize},this),this._container},addTo:function(t){return this.options.container?(this._container=this.onAdd(t),this._wrapper=e.DomUtil.get(this.options.container),this._wrapper.style.position="relative",this._wrapper.appendChild(this._container)):e.Control.prototype.addTo.call(this,t),this},onRemove:function(e){this._recordsCache={}},setLayer:function(e){return this._layer=e,this._layer.addTo(this._map),this},showAlert:function(e){e=e||this.options.textErr,this._alert.style.display="block",this._alert.innerHTML=e,clearTimeout(this.timerAlert);var t=this;return this.timerAlert=setTimeout((function(){t.hideAlert()}),this.options.autoCollapseTime),this},hideAlert:function(){return this._alert.style.display="none",this},cancel:function(){return this._input.value="",this._handleKeypress({keyCode:8}),this._input.size=this._inputMinSize,this._input.focus(),this._cancel.style.display="none",this._hideTooltip(),this},expand:function(t){return t="boolean"!=typeof t||t,this._input.style.display="block",e.DomUtil.addClass(this._container,"search-exp"),!1!==t&&(this._input.focus(),this._map.on("dragstart click",this.collapse,this)),this.fire("search:expanded"),this},collapse:function(){return this._hideTooltip(),this.cancel(),this._alert.style.display="none",this._input.blur(),this.options.collapsed&&(this._input.style.display="none",this._cancel.style.display="none",e.DomUtil.removeClass(this._container,"search-exp"),this.options.hideMarkerOnCollapse&&this._map.removeLayer(this._markerSearch),this._map.off("dragstart click",this.collapse,this)),this.fire("search:collapsed"),this},collapseDelayed:function(){if(!this.options.autoCollapse)return this;var e=this;return clearTimeout(this.timerCollapse),this.timerCollapse=setTimeout((function(){e.collapse()}),this.options.autoCollapseTime),this},collapseDelayedStop:function(){return clearTimeout(this.timerCollapse),this},_createAlert:function(t){var n=e.DomUtil.create("div",t,this._container);return n.style.display="none",e.DomEvent.on(n,"click",e.DomEvent.stop,this).on(n,"click",this.hideAlert,this),n},_createInput:function(t,n){var i=e.DomUtil.create("label",n,this._container),r=e.DomUtil.create("input",n,this._container);return r.type="text",r.size=this._inputMinSize,r.value="",r.autocomplete="off",r.autocorrect="off",r.autocapitalize="off",r.placeholder=t,r.style.display="none",r.role="search",r.id=r.role+r.type+r.size,i.htmlFor=r.id,i.style.display="none",i.value=t,e.DomEvent.disableClickPropagation(r).on(r,"keydown",this._handleKeypress,this).on(r,"blur",this.collapseDelayed,this).on(r,"focus",this.collapseDelayedStop,this),r},_createCancel:function(t,n){var i=e.DomUtil.create("a",n,this._container);return i.href="#",i.title=t,i.style.display="none",i.innerHTML="<span>&otimes;</span>",e.DomEvent.on(i,"click",e.DomEvent.stop,this).on(i,"click",this.cancel,this),i},_createButton:function(t,n){var i=e.DomUtil.create("a",n,this._container);return i.href="#",i.title=t,e.DomEvent.on(i,"click",e.DomEvent.stop,this).on(i,"click",this._handleSubmit,this).on(i,"focus",this.collapseDelayedStop,this).on(i,"blur",this.collapseDelayed,this),i},_createTooltip:function(t){var n=e.DomUtil.create("ul",t,this._container);n.style.display="none";var i=this;return e.DomEvent.disableClickPropagation(n).on(n,"blur",this.collapseDelayed,this).on(n,"mousewheel",(function(t){i.collapseDelayedStop(),e.DomEvent.stopPropagation(t)}),this).on(n,"mouseover",(function(e){i.collapseDelayedStop()}),this),n},_createTip:function(t,n){var i;if(this.options.buildTip){if("string"==typeof(i=this.options.buildTip.call(this,t,n))){var r=e.DomUtil.create("div");r.innerHTML=i,i=r.firstChild}}else(i=e.DomUtil.create("li","")).innerHTML=t;return e.DomUtil.addClass(i,"search-tip"),i._text=t,this.options.tipAutoSubmit&&e.DomEvent.disableClickPropagation(i).on(i,"click",e.DomEvent.stop,this).on(i,"click",(function(e){this._input.value=t,this._handleAutoresize(),this._input.focus(),this._hideTooltip(),this._handleSubmit()}),this),i},_getUrl:function(e){return"function"==typeof this.options.url?this.options.url(e):this.options.url},_defaultFilterData:function(e,t){var n,i,r,o={};if(""===(e=e.replace(/[.*+?^${}()|[\]\\]/g,"")))return[];for(var a in n=this.options.initial?"^":"",i=this.options.casesensitive?void 0:"i",r=new RegExp(n+e,i),t)r.test(a)&&(o[a]=t[a]);return o},showTooltip:function(e){if(this._countertips=0,this._tooltip.innerHTML="",this._tooltip.currentSelection=-1,this.options.tooltipLimit)for(var t in e){if(this._countertips===this.options.tooltipLimit)break;this._countertips++,this._tooltip.appendChild(this._createTip(t,e[t]))}return this._countertips>0?(this._tooltip.style.display="block",this._autoTypeTmp&&this._autoType(),this._autoTypeTmp=this.options.autoType):this._hideTooltip(),this._tooltip.scrollTop=0,this._countertips},_hideTooltip:function(){return this._tooltip.style.display="none",this._tooltip.innerHTML="",0},_defaultFormatData:function(n){var i,r=this.options.propertyName,o=this.options.propertyLoc,a={};if(e.Util.isArray(o))for(i in n)a[t(n[i],r)]=e.latLng(n[i][o[0]],n[i][o[1]]);else for(i in n)a[t(n[i],r)]=e.latLng(t(n[i],o));return a},_recordsFromJsonp:function(t,n){e.Control.Search.callJsonp=n;var i=e.DomUtil.create("script","leaflet-search-jsonp",document.getElementsByTagName("body")[0]),r=e.Util.template(this._getUrl(t)+"&"+this.options.jsonpParam+"=L.Control.Search.callJsonp",{s:t});return i.type="text/javascript",i.src=r,{abort:function(){i.parentNode.removeChild(i)}}},_recordsFromAjax:function(t,n){void 0===window.XMLHttpRequest&&(window.XMLHttpRequest=function(){try{return new ActiveXObject("Microsoft.XMLHTTP.6.0")}catch(e){try{return new ActiveXObject("Microsoft.XMLHTTP.3.0")}catch(e){throw new Error("XMLHttpRequest is not supported")}}});var i=e.Browser.ie&&!window.atob&&document.querySelector?new XDomainRequest:new XMLHttpRequest,r=e.Util.template(this._getUrl(t),{s:t});return i.open("GET",r),i.onload=function(){n(JSON.parse(i.responseText))},i.onreadystatechange=function(){4===i.readyState&&200===i.status&&this.onload()},i.send(),i},_recordsFromLayer:function(){var n,i={},r=this.options.propertyName;return this._layer.eachLayer((function(o){if(!o.hasOwnProperty("_isMarkerSearch"))if(o instanceof e.Marker||o instanceof e.CircleMarker)try{if(t(o.options,r))(n=o.getLatLng()).layer=o,i[t(o.options,r)]=n;else{if(!t(o.feature.properties,r))throw new Error("propertyName '"+r+"' not found in marker");(n=o.getLatLng()).layer=o,i[t(o.feature.properties,r)]=n}}catch(e){console}else if(o.hasOwnProperty("feature"))try{if(!o.feature.properties.hasOwnProperty(r))throw new Error("propertyName '"+r+"' not found in feature");(n=o.getBounds().getCenter()).layer=o,i[o.feature.properties[r]]=n}catch(e){console}else o instanceof e.LayerGroup&&o.eachLayer((function(e){(n=e.getLatLng()).layer=e,i[e.feature.properties[r]]=n}))}),this),i},_autoType:function(){var e=this._input.value.length,t=this._tooltip.firstChild?this._tooltip.firstChild._text:"",n=t.length;if(0===t.indexOf(this._input.value))if(this._input.value=t,this._handleAutoresize(),this._input.createTextRange){var i=this._input.createTextRange();i.collapse(!0),i.moveStart("character",e),i.moveEnd("character",n),i.select()}else this._input.setSelectionRange?this._input.setSelectionRange(e,n):this._input.selectionStart&&(this._input.selectionStart=e,this._input.selectionEnd=n)},_hideAutoType:function(){var e;if((e=this._input.selection)&&e.empty)e.empty();else if(this._input.createTextRange){(e=this._input.createTextRange()).collapse(!0);var t=this._input.value.length;e.moveStart("character",t),e.moveEnd("character",t),e.select()}else this._input.getSelection&&this._input.getSelection().removeAllRanges(),this._input.selectionStart=this._input.selectionEnd},_handleKeypress:function(e){switch(e.keyCode){case 27:this.collapse();break;case 13:(1==this._countertips||this.options.firstTipSubmit&&this._countertips>0)&&this._handleArrowSelect(1),this._handleSubmit();break;case 38:this._handleArrowSelect(-1);break;case 40:this._handleArrowSelect(1);break;case 8:case 45:case 46:this._autoTypeTmp=!1;break;case 37:case 39:case 16:case 17:case 35:case 36:break;default:if(this._input.value.length?this._cancel.style.display="block":this._cancel.style.display="none",this._input.value.length>=this.options.minLength){var t=this;clearTimeout(this.timerKeypress),this.timerKeypress=setTimeout((function(){t._fillRecordsCache()}),this.options.delayType)}else this._hideTooltip()}this._handleAutoresize()},searchText:function(t){var n=t.charCodeAt(t.length);this._input.value=t,this._input.style.display="block",e.DomUtil.addClass(this._container,"search-exp"),this._autoTypeTmp=!1,this._handleKeypress({keyCode:n})},_fillRecordsCache:function(){var t,n=this._input.value,i=this;this._curReq&&this._curReq.abort&&this._curReq.abort(),e.DomUtil.addClass(this._container,"search-load"),this.options.layer?(this._recordsCache=this._recordsFromLayer(),t=this._filterData(this._input.value,this._recordsCache),this.showTooltip(t),e.DomUtil.removeClass(this._container,"search-load")):(this.options.sourceData?this._retrieveData=this.options.sourceData:this.options.url&&(this._retrieveData=this.options.jsonpParam?this._recordsFromJsonp:this._recordsFromAjax),this._curReq=this._retrieveData.call(this,n,(function(n){i._recordsCache=i._formatData(n),t=i.options.sourceData?i._filterData(i._input.value,i._recordsCache):i._recordsCache,i.showTooltip(t),e.DomUtil.removeClass(i._container,"search-load")})))},_handleAutoresize:function(){this._input.style.maxWidth!=this._map._container.offsetWidth&&(this._input.style.maxWidth=e.DomUtil.getStyle(this._map._container,"width")),this.options.autoResize&&this._container.offsetWidth+45<this._map._container.offsetWidth&&(this._input.size=this._input.value.length<this._inputMinSize?this._inputMinSize:this._input.value.length)},_handleArrowSelect:function(t){var n=this._tooltip.hasChildNodes()?this._tooltip.childNodes:[];for(i=0;i<n.length;i++)e.DomUtil.removeClass(n[i],"search-tip-select");if(1==t&&this._tooltip.currentSelection>=n.length-1)e.DomUtil.addClass(n[this._tooltip.currentSelection],"search-tip-select");else if(-1==t&&this._tooltip.currentSelection<=0)this._tooltip.currentSelection=-1;else if("none"!=this._tooltip.style.display){this._tooltip.currentSelection+=t,e.DomUtil.addClass(n[this._tooltip.currentSelection],"search-tip-select"),this._input.value=n[this._tooltip.currentSelection]._text;var r=n[this._tooltip.currentSelection].offsetTop;r+n[this._tooltip.currentSelection].clientHeight>=this._tooltip.scrollTop+this._tooltip.clientHeight?this._tooltip.scrollTop=r-this._tooltip.clientHeight+n[this._tooltip.currentSelection].clientHeight:r<=this._tooltip.scrollTop&&(this._tooltip.scrollTop=r)}},_handleSubmit:function(){if(this._hideAutoType(),this.hideAlert(),this._hideTooltip(),"none"==this._input.style.display)this.expand();else if(""===this._input.value)this.collapse();else{var e=this._getLocation(this._input.value);!1===e?this.showAlert():(this.showLocation(e,this._input.value),this.fire("search:locationfound",{latlng:e,text:this._input.value,layer:e.layer?e.layer:null}))}},_getLocation:function(e){return!!this._recordsCache.hasOwnProperty(e)&&this._recordsCache[e]},_defaultMoveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e)},showLocation:function(e,t){var n=this;return n._map.once("moveend zoomend",(function(t){n._markerSearch&&n._markerSearch.addTo(n._map).setLatLng(e)})),n._moveToLocation(e,t,n._map),n.options.autoCollapse&&n.collapse(),n}}),e.Control.Search.Marker=e.Marker.extend({includes:e.Mixin.Events,options:{icon:new e.Icon.Default,animate:!0,circle:{radius:10,weight:3,color:"#e03",stroke:!0,fill:!1}},initialize:function(t,i){e.setOptions(this,i),!0===i.icon&&(i.icon=new e.Icon.Default),e.Marker.prototype.initialize.call(this,t,i),n(this.options.circle)&&(this._circleLoc=new e.CircleMarker(t,this.options.circle))},onAdd:function(t){e.Marker.prototype.onAdd.call(this,t),this._circleLoc&&(t.addLayer(this._circleLoc),this.options.animate&&this.animate())},onRemove:function(t){e.Marker.prototype.onRemove.call(this,t),this._circleLoc&&t.removeLayer(this._circleLoc)},setLatLng:function(t){return e.Marker.prototype.setLatLng.call(this,t),this._circleLoc&&this._circleLoc.setLatLng(t),this},_initIcon:function(){this.options.icon&&e.Marker.prototype._initIcon.call(this)},_removeIcon:function(){this.options.icon&&e.Marker.prototype._removeIcon.call(this)},animate:function(){if(this._circleLoc){var e=this._circleLoc,t=parseInt(e._radius/5),n=this.options.circle.radius,i=2*e._radius,r=0;e._timerAnimLoc=setInterval((function(){i-=t+=r+=.5,e.setRadius(i),n>i&&(clearInterval(e._timerAnimLoc),e.setRadius(n))}),200)}return this}}),e.Map.addInitHook((function(){this.options.searchControl&&(this.searchControl=e.control.search(this.options.searchControl),this.addControl(this.searchControl))})),e.control.search=function(t){return new e.Control.Search(t)},e.Control.Search})),function(){function e(e,t){var n,i;this.title=e.title,this.stateName=e.stateName?e.stateName:"unnamed-state",this.icon=L.DomUtil.create("span",""),L.DomUtil.addClass(this.icon,"button-state state-"+this.stateName.replace(/(^\s*|\s*$)/g,"")),this.icon.innerHTML=((n=e.icon).match(/[&;=<>"']/)?i=n:(n=n.replace(/(^\s*|\s*$)/g,""),i=L.DomUtil.create("span",""),0===n.indexOf("fa-")?L.DomUtil.addClass(i,"fa "+n):0===n.indexOf("glyphicon-")?L.DomUtil.addClass(i,"glyphicon "+n):L.DomUtil.addClass(i,n),i=i.outerHTML),i),this.onClick=L.Util.bind(e.onClick?e.onClick:function(){},t)}L.Control.EasyBar=L.Control.extend({options:{position:"topleft",id:null,leafletClasses:!0},initialize:function(e,t){t&&L.Util.setOptions(this,t),this._buildContainer(),this._buttons=[];for(var n=0;n<e.length;n++)e[n]._bar=this,e[n]._container=e[n].button,this._buttons.push(e[n]),this.container.appendChild(e[n].button)},_buildContainer:function(){this._container=this.container=L.DomUtil.create("div",""),this.options.leafletClasses&&L.DomUtil.addClass(this.container,"leaflet-bar easy-button-container leaflet-control"),this.options.id&&(this.container.id=this.options.id)},enable:function(){return L.DomUtil.addClass(this.container,"enabled"),L.DomUtil.removeClass(this.container,"disabled"),this.container.setAttribute("aria-hidden","false"),this},disable:function(){return L.DomUtil.addClass(this.container,"disabled"),L.DomUtil.removeClass(this.container,"enabled"),this.container.setAttribute("aria-hidden","true"),this},onAdd:function(){return this.container},addTo:function(e){this._map=e;for(var t=0;t<this._buttons.length;t++)this._buttons[t]._map=e;var n=this._container=this.onAdd(e),i=this.getPosition(),r=e._controlCorners[i];return L.DomUtil.addClass(n,"leaflet-control"),-1!==i.indexOf("bottom")?r.insertBefore(n,r.firstChild):r.appendChild(n),this}}),L.easyBar=function(){for(var e=[L.Control.EasyBar],t=0;t<arguments.length;t++)e.push(arguments[t]);return new(Function.prototype.bind.apply(L.Control.EasyBar,e))},L.Control.EasyButton=L.Control.extend({options:{position:"topleft",id:null,type:"replace",states:[],leafletClasses:!0,tagName:"button"},initialize:function(t,n,i,r){this.options.states=[],null!=r&&(this.options.id=r),this.storage={},"object"==typeof arguments[arguments.length-1]&&L.Util.setOptions(this,arguments[arguments.length-1]),0===this.options.states.length&&"string"==typeof t&&"function"==typeof n&&this.options.states.push({icon:t,onClick:n,title:"string"==typeof i?i:""}),this._states=[];for(var o=0;o<this.options.states.length;o++)this._states.push(new e(this.options.states[o],this));this._buildButton(),this._activateState(this._states[0])},_buildButton:function(){if(this.button=L.DomUtil.create(this.options.tagName,""),"button"===this.options.tagName&&this.button.setAttribute("type","button"),this.options.id&&(this.button.id=this.options.id),this.options.leafletClasses&&L.DomUtil.addClass(this.button,"easy-button-button leaflet-bar-part leaflet-interactive"),L.DomEvent.addListener(this.button,"dblclick",L.DomEvent.stop),L.DomEvent.addListener(this.button,"mousedown",L.DomEvent.stop),L.DomEvent.addListener(this.button,"mouseup",L.DomEvent.stop),L.DomEvent.addListener(this.button,"click",(function(e){L.DomEvent.stop(e),this._currentState.onClick(this,this._map?this._map:null),this._map&&this._map.getContainer().focus()}),this),"replace"==this.options.type)this.button.appendChild(this._currentState.icon);else for(var e=0;e<this._states.length;e++)this.button.appendChild(this._states[e].icon)},_currentState:{stateName:"unnamed",icon:document.createElement("span")},_states:null,state:function(e){return 0===arguments.length?this._currentState.stateName:("string"==typeof e?this._activateStateNamed(e):"number"==typeof e&&this._activateState(this._states[e]),this)},_activateStateNamed:function(e){for(var t=0;t<this._states.length;t++)this._states[t].stateName==e&&this._activateState(this._states[t])},_activateState:function(e){if(e!==this._currentState){"replace"==this.options.type&&(this.button.appendChild(e.icon),this.button.removeChild(this._currentState.icon)),e.title?this.button.title=e.title:this.button.removeAttribute("title");for(var t=0;t<this._states.length;t++)L.DomUtil.removeClass(this._states[t].icon,this._currentState.stateName+"-active"),L.DomUtil.addClass(this._states[t].icon,e.stateName+"-active");L.DomUtil.removeClass(this.button,this._currentState.stateName+"-active"),L.DomUtil.addClass(this.button,e.stateName+"-active"),this._currentState=e}},enable:function(){return L.DomUtil.addClass(this.button,"enabled"),L.DomUtil.removeClass(this.button,"disabled"),this.button.setAttribute("aria-hidden","false"),this},disable:function(){return L.DomUtil.addClass(this.button,"disabled"),L.DomUtil.removeClass(this.button,"enabled"),this.button.setAttribute("aria-hidden","true"),this},onAdd:function(e){var t=L.easyBar([this],{position:this.options.position,leafletClasses:this.options.leafletClasses});return this._anonymousBar=t,this._container=t.container,this._anonymousBar.container},removeFrom:function(e){return this._map===e&&this.remove(),this}}),L.easyButton=function(){var e=Array.prototype.concat.apply([L.Control.EasyButton],arguments);return new(Function.prototype.bind.apply(L.Control.EasyButton,e))}}(),function(){var e=window.console||{error:function(){},warn:function(){}};function t(t){t.Control.Loading=t.Control.extend({options:{delayIndicator:null,position:"topleft",separate:!1,zoomControl:null,spinjs:!1,spin:{lines:7,length:3,width:3,radius:5,rotate:13,top:"83%"}},initialize:function(e){t.setOptions(this,e),this._dataLoaders={},null!==this.options.zoomControl&&(this.zoomControl=this.options.zoomControl)},onAdd:function(n){if(this.options.spinjs&&"function"!=typeof Spinner)return e.error("Leaflet.loading cannot load because you didn't load spin.js (http://fgnass.github.io/spin.js/), even though you set it in options.");this._addLayerListeners(n),this._addMapListeners(n),this.options.separate||this.zoomControl||(n.zoomControl?this.zoomControl=n.zoomControl:n.zoomsliderControl&&(this.zoomControl=n.zoomsliderControl));var i,r="leaflet-control-loading";return this.zoomControl&&!this.options.separate?(i=this.zoomControl._container,r+=" leaflet-bar-part-bottom leaflet-bar-part last",t.DomUtil.addClass(this._getLastControlButton(),"leaflet-bar-part-bottom")):i=t.DomUtil.create("div","leaflet-control-zoom leaflet-control-layer-container leaflet-bar"),this._indicatorContainer=i,this._indicator=t.DomUtil.create("a",r,i),this.options.spinjs&&(this._spinner=new Spinner(this.options.spin).spin(),this._indicator.appendChild(this._spinner.el)),i},onRemove:function(e){this._removeLayerListeners(e),this._removeMapListeners(e)},removeFrom:function(e){return this.zoomControl&&!this.options.separate?(this._container.removeChild(this._indicator),this._map=null,this.onRemove(e),this):t.Control.prototype.removeFrom.call(this,e)},addLoader:function(e){if(this._dataLoaders[e]=!0,this.options.delayIndicator&&!this.delayIndicatorTimeout){var t=this;this.delayIndicatorTimeout=setTimeout((function(){t.updateIndicator(),t.delayIndicatorTimeout=null}),this.options.delayIndicator)}else this.updateIndicator()},removeLoader:function(e){delete this._dataLoaders[e],this.updateIndicator(),this.options.delayIndicator&&this.delayIndicatorTimeout&&!this.isLoading()&&(clearTimeout(this.delayIndicatorTimeout),this.delayIndicatorTimeout=null)},updateIndicator:function(){this.isLoading()?this._showIndicator():this._hideIndicator()},isLoading:function(){return this._countLoaders()>0},_countLoaders:function(){var e,t=0;for(e in this._dataLoaders)this._dataLoaders.hasOwnProperty(e)&&t++;return t},_showIndicator:function(){t.DomUtil.addClass(this._indicator,"is-loading"),t.DomUtil.addClass(this._indicatorContainer,"is-loading"),this.options.separate||(this.zoomControl instanceof t.Control.Zoom?t.DomUtil.removeClass(this._getLastControlButton(),"leaflet-bar-part-bottom"):"function"==typeof t.Control.Zoomslider&&this.zoomControl instanceof t.Control.Zoomslider&&t.DomUtil.removeClass(this.zoomControl._ui.zoomOut,"leaflet-bar-part-bottom"))},_hideIndicator:function(){t.DomUtil.removeClass(this._indicator,"is-loading"),t.DomUtil.removeClass(this._indicatorContainer,"is-loading"),this.options.separate||(this.zoomControl instanceof t.Control.Zoom?t.DomUtil.addClass(this._getLastControlButton(),"leaflet-bar-part-bottom"):"function"==typeof t.Control.Zoomslider&&this.zoomControl instanceof t.Control.Zoomslider&&t.DomUtil.addClass(this.zoomControl._ui.zoomOut,"leaflet-bar-part-bottom"))},_getLastControlButton:function(){for(var e=this.zoomControl._container,t=e.children.length-1;t>0;){var n=e.children[t];if(this._indicator!==n&&0!==n.offsetWidth&&0!==n.offsetHeight)break;t--}return e.children[t]},_handleLoading:function(e){this.addLoader(this.getEventId(e))},_handleBaseLayerChange:function(e){var n=this;e.layer&&e.layer.eachLayer&&"function"==typeof e.layer.eachLayer?e.layer.eachLayer((function(e){n._handleBaseLayerChange({layer:e})})):t.TileLayer.Canvas&&e.layer instanceof t.TileLayer.Canvas||n._handleLoading(e)},_handleLoad:function(e){this.removeLoader(this.getEventId(e))},getEventId:function(e){return e.id?e.id:e.layer?e.layer._leaflet_id:e.target._leaflet_id},_layerAdd:function(t){if(t.layer&&t.layer.on)try{t.layer.on({loading:this._handleLoading,load:this._handleLoad},this)}catch(n){e.warn("L.Control.Loading: Tried and failed to add  event handlers to layer",t.layer),e.warn("L.Control.Loading: Full details",n)}},_layerRemove:function(t){if(t.layer&&t.layer.off)try{t.layer.off({loading:this._handleLoading,load:this._handleLoad},this)}catch(n){e.warn("L.Control.Loading: Tried and failed to remove event handlers from layer",t.layer),e.warn("L.Control.Loading: Full details",n)}},_addLayerListeners:function(e){e.eachLayer((function(e){e.on&&e.on({loading:this._handleLoading,load:this._handleLoad},this)}),this),e.on("layeradd",this._layerAdd,this),e.on("layerremove",this._layerRemove,this)},_removeLayerListeners:function(e){e.eachLayer((function(e){e.off&&e.off({loading:this._handleLoading,load:this._handleLoad},this)}),this),e.off("layeradd",this._layerAdd,this),e.off("layerremove",this._layerRemove,this)},_addMapListeners:function(e){e.on({baselayerchange:this._handleBaseLayerChange,dataloading:this._handleLoading,dataload:this._handleLoad,layerremove:this._handleLoad},this)},_removeMapListeners:function(e){e.off({baselayerchange:this._handleBaseLayerChange,dataloading:this._handleLoading,dataload:this._handleLoad,layerremove:this._handleLoad},this)}}),t.Map.addInitHook((function(){this.options.loadingControl&&(this.loadingControl=new t.Control.Loading,this.addControl(this.loadingControl))})),t.Control.loading=function(e){return new t.Control.Loading(e)}}"function"==typeof define&&define.amd?define(["leaflet"],(function(e){t(e)})):t(L)}(),function(e,t,n){L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animate:!0,animateAddingMarkers:!1,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:"#222",opacity:.5},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(e){L.Util.setOptions(this,e),this.options.iconCreateFunction||(this.options.iconCreateFunction=this._defaultIconCreateFunction),this._featureGroup=L.featureGroup(),this._featureGroup.on(L.FeatureGroup.EVENTS,this._propagateEvent,this),this._nonPointGroup=L.featureGroup(),this._nonPointGroup.on(L.FeatureGroup.EVENTS,this._propagateEvent,this),this._inZoomAnimation=0,this._needsClustering=[],this._needsRemoving=[],this._currentShownBounds=null,this._queue=[];var t=L.DomUtil.TRANSITION&&this.options.animate;L.extend(this,t?this._withAnimation:this._noAnimation),this._markerCluster=t?L.MarkerCluster:L.MarkerClusterNonAnimated},addLayer:function(e){if(e instanceof L.LayerGroup){var t=[];for(var n in e._layers)t.push(e._layers[n]);return this.addLayers(t)}if(!e.getLatLng)return this._nonPointGroup.addLayer(e),this;if(!this._map)return this._needsClustering.push(e),this;if(this.hasLayer(e))return this;this._unspiderfy&&this._unspiderfy(),this._addLayer(e,this._maxZoom),this._topClusterLevel._recalculateBounds();var i=e,r=this._map.getZoom();if(e.__parent)for(;i.__parent._zoom>=r;)i=i.__parent;return this._currentShownBounds.contains(i.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(e,i):this._animationAddLayerNonAnimated(e,i)),this},removeLayer:function(e){if(e instanceof L.LayerGroup){var t=[];for(var n in e._layers)t.push(e._layers[n]);return this.removeLayers(t)}return e.getLatLng?this._map?e.__parent?(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(e)),this._removeLayer(e,!0),this._topClusterLevel._recalculateBounds(),this._featureGroup.hasLayer(e)&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow()),this):this:(!this._arraySplice(this._needsClustering,e)&&this.hasLayer(e)&&this._needsRemoving.push(e),this):(this._nonPointGroup.removeLayer(e),this)},addLayers:function(e){var t,n,i,r,o=this._featureGroup,a=this._nonPointGroup,s=this.options.chunkedLoading,l=this.options.chunkInterval,u=this.options.chunkProgress;if(this._map){var c=0,d=(new Date).getTime(),h=L.bind((function(){for(var t=(new Date).getTime();c<e.length&&!(s&&0==c%200&&(new Date).getTime()-t>l);c++)if((r=e[c]).getLatLng){if(!this.hasLayer(r)&&(this._addLayer(r,this._maxZoom),r.__parent&&2===r.__parent.getChildCount())){var n=r.__parent.getAllChildMarkers(),i=n[0]===r?n[1]:n[0];o.removeLayer(i)}}else a.addLayer(r);u&&u(c,e.length,(new Date).getTime()-d),c===e.length?(this._topClusterLevel._recalculateBounds(),this._featureGroup.eachLayer((function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()})),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(h,this.options.chunkDelay)}),this);h()}else{for(t=[],n=0,i=e.length;i>n;n++)(r=e[n]).getLatLng?this.hasLayer(r)||t.push(r):a.addLayer(r);this._needsClustering=this._needsClustering.concat(t)}return this},removeLayers:function(e){var t,n,i,r=this._featureGroup,o=this._nonPointGroup;if(!this._map){for(t=0,n=e.length;n>t;t++)i=e[t],this._arraySplice(this._needsClustering,i),o.removeLayer(i),this.hasLayer(i)&&this._needsRemoving.push(i);return this}if(this._unspiderfy)for(this._unspiderfy(),t=0,n=e.length;n>t;t++)i=e[t],this._unspiderfyLayer(i);for(t=0,n=e.length;n>t;t++)(i=e[t]).__parent?(this._removeLayer(i,!0,!0),r.hasLayer(i)&&(r.removeLayer(i),i.clusterShow&&i.clusterShow())):o.removeLayer(i);return this._topClusterLevel._recalculateBounds(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),r.eachLayer((function(e){e instanceof L.MarkerCluster&&e._updateIcon()})),this},clearLayers:function(){return this._map||(this._needsClustering=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),this._nonPointGroup.clearLayers(),this.eachLayer((function(e){delete e.__parent})),this._map&&this._generateInitialClusters(),this},getBounds:function(){var e=new L.LatLngBounds;this._topClusterLevel&&e.extend(this._topClusterLevel._bounds);for(var t=this._needsClustering.length-1;t>=0;t--)e.extend(this._needsClustering[t].getLatLng());return e.extend(this._nonPointGroup.getBounds()),e},eachLayer:function(e,t){var n,i=this._needsClustering.slice();for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(i),n=i.length-1;n>=0;n--)e.call(t,i[n]);this._nonPointGroup.eachLayer(e,t)},getLayers:function(){var e=[];return this.eachLayer((function(t){e.push(t)})),e},getLayer:function(e){var t=null;return e=parseInt(e,10),this.eachLayer((function(n){L.stamp(n)===e&&(t=n)})),t},hasLayer:function(e){if(!e)return!1;var t,n=this._needsClustering;for(t=n.length-1;t>=0;t--)if(n[t]===e)return!0;for(t=(n=this._needsRemoving).length-1;t>=0;t--)if(n[t]===e)return!1;return!(!e.__parent||e.__parent._group!==this)||this._nonPointGroup.hasLayer(e)},zoomToShowLayer:function(e,t){"function"!=typeof t&&(t=function(){});var n=function(){!e._icon&&!e.__parent._icon||this._inZoomAnimation||(this._map.off("moveend",n,this),this.off("animationend",n,this),e._icon?t():e.__parent._icon&&(this.once("spiderfied",t,this),e.__parent.spiderfy()))};if(e._icon&&this._map.getBounds().contains(e.getLatLng()))t();else if(e.__parent._zoom<this._map.getZoom())this._map.on("moveend",n,this),this._map.panTo(e.getLatLng());else{var i=function(){this._map.off("movestart",i,this),i=null};this._map.on("movestart",i,this),this._map.on("moveend",n,this),this.on("animationend",n,this),e.__parent.zoomToBounds(),i&&n.call(this)}},onAdd:function(e){var t,n,i;if(this._map=e,!isFinite(this._map.getMaxZoom()))throw"Map has no maxZoom specified";for(this._featureGroup.onAdd(e),this._nonPointGroup.onAdd(e),this._gridClusters||this._generateInitialClusters(),this._maxLat=e.options.crs.projection.MAX_LATITUDE,t=0,n=this._needsRemoving.length;n>t;t++)i=this._needsRemoving[t],this._removeLayer(i,!0);this._needsRemoving=[],this._zoom=this._map.getZoom(),this._currentShownBounds=this._getExpandedVisibleBounds(),this._map.on("zoomend",this._zoomEnd,this),this._map.on("moveend",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),n=this._needsClustering,this._needsClustering=[],this.addLayers(n)},onRemove:function(e){e.off("zoomend",this._zoomEnd,this),e.off("moveend",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim",""),this._spiderfierOnRemove&&this._spiderfierOnRemove(),delete this._maxLat,this._hideCoverage(),this._featureGroup.onRemove(e),this._nonPointGroup.onRemove(e),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(e){for(var t=e;t&&!t._icon;)t=t.__parent;return t||null},_arraySplice:function(e,t){for(var n=e.length-1;n>=0;n--)if(e[n]===t)return e.splice(n,1),!0},_removeFromGridUnclustered:function(e,t){for(var n=this._map,i=this._gridUnclustered;t>=0&&i[t].removeObject(e,n.project(e.getLatLng(),t));t--);},_removeLayer:function(e,t,n){var i=this._gridClusters,r=this._gridUnclustered,o=this._featureGroup,a=this._map;t&&this._removeFromGridUnclustered(e,this._maxZoom);var s,l=e.__parent,u=l._markers;for(this._arraySplice(u,e);l&&(l._childCount--,l._boundsNeedUpdate=!0,!(l._zoom<0));)t&&l._childCount<=1?(s=l._markers[0]===e?l._markers[1]:l._markers[0],i[l._zoom].removeObject(l,a.project(l._cLatLng,l._zoom)),r[l._zoom].addObject(s,a.project(s.getLatLng(),l._zoom)),this._arraySplice(l.__parent._childClusters,l),l.__parent._markers.push(s),s.__parent=l.__parent,l._icon&&(o.removeLayer(l),n||o.addLayer(s))):n&&l._icon||l._updateIcon(),l=l.__parent;delete e.__parent},_isOrIsParent:function(e,t){for(;t;){if(e===t)return!0;t=t.parentNode}return!1},_propagateEvent:function(e){if(e.layer instanceof L.MarkerCluster){if(e.originalEvent&&this._isOrIsParent(e.layer._icon,e.originalEvent.relatedTarget))return;e.type="cluster"+e.type}this.fire(e.type,e)},_defaultIconCreateFunction:function(e){var t=e.getChildCount(),n=" marker-cluster-";return n+=10>t?"small":100>t?"medium":"large",new L.DivIcon({html:"<div><span>"+t+"</span></div>",className:"marker-cluster"+n,iconSize:new L.Point(40,40)})},_bindEvents:function(){var e=this._map,t=this.options.spiderfyOnMaxZoom,n=this.options.showCoverageOnHover,i=this.options.zoomToBoundsOnClick;(t||i)&&this.on("clusterclick",this._zoomOrSpiderfy,this),n&&(this.on("clustermouseover",this._showCoverage,this),this.on("clustermouseout",this._hideCoverage,this),e.on("zoomend",this._hideCoverage,this))},_zoomOrSpiderfy:function(e){for(var t=e.layer,n=t;1===n._childClusters.length;)n=n._childClusters[0];n._zoom===this._maxZoom&&n._childCount===t._childCount?this.options.spiderfyOnMaxZoom&&t.spiderfy():this.options.zoomToBoundsOnClick&&t.zoomToBounds(),e.originalEvent&&13===e.originalEvent.keyCode&&this._map._container.focus()},_showCoverage:function(e){var t=this._map;this._inZoomAnimation||(this._shownPolygon&&t.removeLayer(this._shownPolygon),e.layer.getChildCount()>2&&e.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(e.layer.getConvexHull(),this.options.polygonOptions),t.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var e=this.options.spiderfyOnMaxZoom,t=this.options.showCoverageOnHover,n=this.options.zoomToBoundsOnClick,i=this._map;(e||n)&&this.off("clusterclick",this._zoomOrSpiderfy,this),t&&(this.off("clustermouseover",this._showCoverage,this),this.off("clustermouseout",this._hideCoverage,this),i.off("zoomend",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=this._map._zoom,this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var e=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,this._zoom,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._map._zoom,e),this._currentShownBounds=e}},_generateInitialClusters:function(){var e=this._map.getMaxZoom(),t=this.options.maxClusterRadius,n=t;"function"!=typeof t&&(n=function(){return t}),this.options.disableClusteringAtZoom&&(e=this.options.disableClusteringAtZoom-1),this._maxZoom=e,this._gridClusters={},this._gridUnclustered={};for(var i=e;i>=0;i--)this._gridClusters[i]=new L.DistanceGrid(n(i)),this._gridUnclustered[i]=new L.DistanceGrid(n(i));this._topClusterLevel=new this._markerCluster(this,-1)},_addLayer:function(e,t){var n,i,r=this._gridClusters,o=this._gridUnclustered;for(this.options.singleMarkerMode&&this._overrideMarkerIcon(e);t>=0;t--){n=this._map.project(e.getLatLng(),t);var a=r[t].getNearObject(n);if(a)return a._addChild(e),void(e.__parent=a);if(a=o[t].getNearObject(n)){var s=a.__parent;s&&this._removeLayer(a,!1);var l=new this._markerCluster(this,t,a,e);r[t].addObject(l,this._map.project(l._cLatLng,t)),a.__parent=l,e.__parent=l;var u=l;for(i=t-1;i>s._zoom;i--)u=new this._markerCluster(this,i,u),r[i].addObject(u,this._map.project(a.getLatLng(),i));return s._addChild(u),void this._removeFromGridUnclustered(a,t)}o[t].addObject(e,n)}this._topClusterLevel._addChild(e),e.__parent=this._topClusterLevel},_enqueue:function(e){this._queue.push(e),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var e=0;e<this._queue.length;e++)this._queue[e].call(this);this._queue.length=0,clearTimeout(this._queueTimeout),this._queueTimeout=null},_mergeSplitClusters:function(){this._processQueue(),this._zoom<this._map._zoom&&this._currentShownBounds.intersects(this._getExpandedVisibleBounds())?(this._animationStart(),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,this._zoom,this._getExpandedVisibleBounds()),this._animationZoomIn(this._zoom,this._map._zoom)):this._zoom>this._map._zoom?(this._animationStart(),this._animationZoomOut(this._zoom,this._map._zoom)):this._moveEnd()},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(e){var t=this._maxLat;return t!==n&&(e.getNorth()>=t&&(e._northEast.lat=1/0),e.getSouth()<=-t&&(e._southWest.lat=-1/0)),e},_animationAddLayerNonAnimated:function(e,t){if(t===e)this._featureGroup.addLayer(e);else if(2===t._childCount){t._addToMap();var n=t.getAllChildMarkers();this._featureGroup.removeLayer(n[0]),this._featureGroup.removeLayer(n[1])}else t._updateIcon()},_overrideMarkerIcon:function(e){return e.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[e]}})}}),L.MarkerClusterGroup.include({_mapBoundsInfinite:new L.LatLngBounds(new L.LatLng(-1/0,-1/0),new L.LatLng(1/0,1/0))}),L.MarkerClusterGroup.include({_noAnimation:{_animationStart:function(){},_animationZoomIn:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationZoomOut:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationAddLayer:function(e,t){this._animationAddLayerNonAnimated(e,t)}},_withAnimation:{_animationStart:function(){this._map._mapPane.className+=" leaflet-cluster-anim",this._inZoomAnimation++},_animationZoomIn:function(e,t){var n,i=this._getExpandedVisibleBounds(),r=this._featureGroup;this._topClusterLevel._recursively(i,e,0,(function(o){var a,s=o._latlng,l=o._markers;for(i.contains(s)||(s=null),o._isSingleParent()&&e+1===t?(r.removeLayer(o),o._recursivelyAddChildrenToMap(null,t,i)):(o.clusterHide(),o._recursivelyAddChildrenToMap(s,t,i)),n=l.length-1;n>=0;n--)a=l[n],i.contains(a._latlng)||r.removeLayer(a)})),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(i,t),r.eachLayer((function(e){e instanceof L.MarkerCluster||!e._icon||e.clusterShow()})),this._topClusterLevel._recursively(i,e,t,(function(e){e._recursivelyRestoreChildPositions(t)})),this._enqueue((function(){this._topClusterLevel._recursively(i,e,0,(function(e){r.removeLayer(e),e.clusterShow()})),this._animationEnd()}))},_animationZoomOut:function(e,t){this._animationZoomOutSingle(this._topClusterLevel,e-1,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,e,this._getExpandedVisibleBounds())},_animationAddLayer:function(e,t){var n=this,i=this._featureGroup;i.addLayer(e),t!==e&&(t._childCount>2?(t._updateIcon(),this._forceLayout(),this._animationStart(),e._setPos(this._map.latLngToLayerPoint(t.getLatLng())),e.clusterHide(),this._enqueue((function(){i.removeLayer(e),e.clusterShow(),n._animationEnd()}))):(this._forceLayout(),n._animationStart(),n._animationZoomOutSingle(t,this._map.getMaxZoom(),this._map.getZoom())))}},_animationZoomOutSingle:function(e,t,n){var i=this._getExpandedVisibleBounds();e._recursivelyAnimateChildrenInAndAddSelfToMap(i,t+1,n);var r=this;this._forceLayout(),e._recursivelyBecomeVisible(i,n),this._enqueue((function(){if(1===e._childCount){var o=e._markers[0];o.setLatLng(o.getLatLng()),o.clusterShow&&o.clusterShow()}else e._recursively(i,n,0,(function(e){e._recursivelyRemoveChildrenFromMap(i,t+1)}));r._animationEnd()}))},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim","")),this._inZoomAnimation--,this.fire("animationend")},_forceLayout:function(){L.Util.falseFn(t.body.offsetWidth)}}),L.markerClusterGroup=function(e){return new L.MarkerClusterGroup(e)},L.MarkerCluster=L.Marker.extend({initialize:function(e,t,n,i){L.Marker.prototype.initialize.call(this,n?n._cLatLng||n.getLatLng():new L.LatLng(0,0),{icon:this}),this._group=e,this._zoom=t,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,n&&this._addChild(n),i&&this._addChild(i)},getAllChildMarkers:function(e){e=e||[];for(var t=this._childClusters.length-1;t>=0;t--)this._childClusters[t].getAllChildMarkers(e);for(var n=this._markers.length-1;n>=0;n--)e.push(this._markers[n]);return e},getChildCount:function(){return this._childCount},zoomToBounds:function(){for(var e,t=this._childClusters.slice(),n=this._group._map,i=n.getBoundsZoom(this._bounds),r=this._zoom+1,o=n.getZoom();t.length>0&&i>r;){r++;var a=[];for(e=0;e<t.length;e++)a=a.concat(t[e]._childClusters);t=a}i>r?this._group._map.setView(this._latlng,r):o>=i?this._group._map.setView(this._latlng,o+1):this._group._map.fitBounds(this._bounds)},getBounds:function(){var e=new L.LatLngBounds;return e.extend(this._bounds),e},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(e,t){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(e),e instanceof L.MarkerCluster?(t||(this._childClusters.push(e),e.__parent=this),this._childCount+=e._childCount):(t||this._markers.push(e),this._childCount++),this.__parent&&this.__parent._addChild(e,!0)},_setClusterCenter:function(e){this._cLatLng||(this._cLatLng=e._cLatLng||e._latlng)},_resetBounds:function(){var e=this._bounds;e._southWest&&(e._southWest.lat=1/0,e._southWest.lng=1/0),e._northEast&&(e._northEast.lat=-1/0,e._northEast.lng=-1/0)},_recalculateBounds:function(){var e,t,n,i,r=this._markers,o=this._childClusters,a=0,s=0,l=this._childCount;if(0!==l){for(this._resetBounds(),e=0;e<r.length;e++)n=r[e]._latlng,this._bounds.extend(n),a+=n.lat,s+=n.lng;for(e=0;e<o.length;e++)(t=o[e])._boundsNeedUpdate&&t._recalculateBounds(),this._bounds.extend(t._bounds),n=t._wLatLng,i=t._childCount,a+=n.lat*i,s+=n.lng*i;this._latlng=this._wLatLng=new L.LatLng(a/l,s/l),this._boundsNeedUpdate=!1}},_addToMap:function(e){e&&(this._backupLatlng=this._latlng,this.setLatLng(e)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(e,t,n){this._recursively(e,0,n-1,(function(e){var n,i,r=e._markers;for(n=r.length-1;n>=0;n--)(i=r[n])._icon&&(i._setPos(t),i.clusterHide())}),(function(e){var n,i,r=e._childClusters;for(n=r.length-1;n>=0;n--)(i=r[n])._icon&&(i._setPos(t),i.clusterHide())}))},_recursivelyAnimateChildrenInAndAddSelfToMap:function(e,t,n){this._recursively(e,n,0,(function(i){i._recursivelyAnimateChildrenIn(e,i._group._map.latLngToLayerPoint(i.getLatLng()).round(),t),i._isSingleParent()&&t-1===n?(i.clusterShow(),i._recursivelyRemoveChildrenFromMap(e,t)):i.clusterHide(),i._addToMap()}))},_recursivelyBecomeVisible:function(e,t){this._recursively(e,0,t,null,(function(e){e.clusterShow()}))},_recursivelyAddChildrenToMap:function(e,t,n){this._recursively(n,-1,t,(function(i){if(t!==i._zoom)for(var r=i._markers.length-1;r>=0;r--){var o=i._markers[r];n.contains(o._latlng)&&(e&&(o._backupLatlng=o.getLatLng(),o.setLatLng(e),o.clusterHide&&o.clusterHide()),i._group._featureGroup.addLayer(o))}}),(function(t){t._addToMap(e)}))},_recursivelyRestoreChildPositions:function(e){for(var t=this._markers.length-1;t>=0;t--){var n=this._markers[t];n._backupLatlng&&(n.setLatLng(n._backupLatlng),delete n._backupLatlng)}if(e-1===this._zoom)for(var i=this._childClusters.length-1;i>=0;i--)this._childClusters[i]._restorePosition();else for(var r=this._childClusters.length-1;r>=0;r--)this._childClusters[r]._recursivelyRestoreChildPositions(e)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(e,t,n){var i,r;this._recursively(e,-1,t-1,(function(e){for(r=e._markers.length-1;r>=0;r--)i=e._markers[r],n&&n.contains(i._latlng)||(e._group._featureGroup.removeLayer(i),i.clusterShow&&i.clusterShow())}),(function(e){for(r=e._childClusters.length-1;r>=0;r--)i=e._childClusters[r],n&&n.contains(i._latlng)||(e._group._featureGroup.removeLayer(i),i.clusterShow&&i.clusterShow())}))},_recursively:function(e,t,n,i,r){var o,a,s=this._childClusters,l=this._zoom;if(t>l)for(o=s.length-1;o>=0;o--)a=s[o],e.intersects(a._bounds)&&a._recursively(e,t,n,i,r);else if(i&&i(this),r&&this._zoom===n&&r(this),n>l)for(o=s.length-1;o>=0;o--)a=s[o],e.intersects(a._bounds)&&a._recursively(e,t,n,i,r)},_isSingleParent:function(){return this._childClusters.length>0&&this._childClusters[0]._childCount===this._childCount}}),L.Marker.include({clusterHide:function(){return this.options.opacityWhenUnclustered=this.options.opacity||1,this.setOpacity(0)},clusterShow:function(){var e=this.setOpacity(this.options.opacity||this.options.opacityWhenUnclustered);return delete this.options.opacityWhenUnclustered,e}}),L.DistanceGrid=function(e){this._cellSize=e,this._sqCellSize=e*e,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(e,t){var n=this._getCoord(t.x),i=this._getCoord(t.y),r=this._grid,o=r[i]=r[i]||{},a=o[n]=o[n]||[],s=L.Util.stamp(e);this._objectPoint[s]=t,a.push(e)},updateObject:function(e,t){this.removeObject(e),this.addObject(e,t)},removeObject:function(e,t){var n,i,r=this._getCoord(t.x),o=this._getCoord(t.y),a=this._grid,s=a[o]=a[o]||{},l=s[r]=s[r]||[];for(delete this._objectPoint[L.Util.stamp(e)],n=0,i=l.length;i>n;n++)if(l[n]===e)return l.splice(n,1),1===i&&delete s[r],!0},eachObject:function(e,t){var n,i,r,o,a,s,l=this._grid;for(n in l)for(i in a=l[n])for(r=0,o=(s=a[i]).length;o>r;r++)e.call(t,s[r])&&(r--,o--)},getNearObject:function(e){var t,n,i,r,o,a,s,l,u=this._getCoord(e.x),c=this._getCoord(e.y),d=this._objectPoint,h=this._sqCellSize,f=null;for(t=c-1;c+1>=t;t++)if(r=this._grid[t])for(n=u-1;u+1>=n;n++)if(o=r[n])for(i=0,a=o.length;a>i;i++)s=o[i],h>(l=this._sqDist(d[L.Util.stamp(s)],e))&&(h=l,f=s);return f},_getCoord:function(e){return Math.floor(e/this._cellSize)},_sqDist:function(e,t){var n=t.x-e.x,i=t.y-e.y;return n*n+i*i}},L.QuickHull={getDistant:function(e,t){var n=t[1].lat-t[0].lat;return(t[0].lng-t[1].lng)*(e.lat-t[0].lat)+n*(e.lng-t[0].lng)},findMostDistantPointFromBaseLine:function(e,t){var n,i,r,o=0,a=null,s=[];for(n=t.length-1;n>=0;n--)i=t[n],(r=this.getDistant(i,e))>0&&(s.push(i),r>o&&(o=r,a=i));return{maxPoint:a,newPoints:s}},buildConvexHull:function(e,t){var n=[],i=this.findMostDistantPointFromBaseLine(e,t);return i.maxPoint?n=(n=n.concat(this.buildConvexHull([e[0],i.maxPoint],i.newPoints))).concat(this.buildConvexHull([i.maxPoint,e[1]],i.newPoints)):[e[0]]},getConvexHull:function(e){var t,n=!1,i=!1,r=!1,o=!1,a=null,s=null,l=null,u=null,c=null,d=null;for(t=e.length-1;t>=0;t--){var h=e[t];(!1===n||h.lat>n)&&(a=h,n=h.lat),(!1===i||h.lat<i)&&(s=h,i=h.lat),(!1===r||h.lng>r)&&(l=h,r=h.lng),(!1===o||h.lng<o)&&(u=h,o=h.lng)}return i!==n?(d=s,c=a):(d=u,c=l),[].concat(this.buildConvexHull([d,c],e),this.buildConvexHull([c,d],e))}},L.MarkerCluster.include({getConvexHull:function(){var e,t,n=this.getAllChildMarkers(),i=[];for(t=n.length-1;t>=0;t--)e=n[t].getLatLng(),i.push(e);return L.QuickHull.getConvexHull(i)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:Math.PI/6,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var e,t=this.getAllChildMarkers(),n=this._group._map.latLngToLayerPoint(this._latlng);this._group._unspiderfy(),this._group._spiderfied=this,t.length>=this._circleSpiralSwitchover?e=this._generatePointsSpiral(t.length,n):(n.y+=10,e=this._generatePointsCircle(t.length,n)),this._animationSpiderfy(t,e)}},unspiderfy:function(e){this._group._inZoomAnimation||(this._animationUnspiderfy(e),this._group._spiderfied=null)},_generatePointsCircle:function(e,t){var n,i,r=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+e)/this._2PI,o=this._2PI/e,a=[];for(a.length=e,n=e-1;n>=0;n--)i=this._circleStartAngle+n*o,a[n]=new L.Point(t.x+r*Math.cos(i),t.y+r*Math.sin(i))._round();return a},_generatePointsSpiral:function(e,t){var n,i=this._group.options.spiderfyDistanceMultiplier,r=i*this._spiralLengthStart,o=i*this._spiralFootSeparation,a=i*this._spiralLengthFactor*this._2PI,s=0,l=[];for(l.length=e,n=e-1;n>=0;n--)s+=o/r+5e-4*n,l[n]=new L.Point(t.x+r*Math.cos(s),t.y+r*Math.sin(s))._round(),r+=a/s;return l},_noanimationUnspiderfy:function(){var e,t,n=this._group,i=n._map,r=n._featureGroup,o=this.getAllChildMarkers();for(this.setOpacity(1),t=o.length-1;t>=0;t--)e=o[t],r.removeLayer(e),e._preSpiderfyLatlng&&(e.setLatLng(e._preSpiderfyLatlng),delete e._preSpiderfyLatlng),e.setZIndexOffset&&e.setZIndexOffset(0),e._spiderLeg&&(i.removeLayer(e._spiderLeg),delete e._spiderLeg);n.fire("unspiderfied",{cluster:this,markers:o}),n._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(e,t){var n,i,r,o,a=this._group,s=a._map,l=a._featureGroup,u=this._group.options.spiderLegPolylineOptions;for(n=0;n<e.length;n++)o=s.layerPointToLatLng(t[n]),i=e[n],r=new L.Polyline([this._latlng,o],u),s.addLayer(r),i._spiderLeg=r,i._preSpiderfyLatlng=i._latlng,i.setLatLng(o),i.setZIndexOffset&&i.setZIndexOffset(1e6),l.addLayer(i);this.setOpacity(.3),a.fire("spiderfied",{cluster:this,markers:e})},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerCluster.include({_animationSpiderfy:function(e,t){var i,r,o,a,s,l,u=this,c=this._group,d=c._map,h=c._featureGroup,f=this._latlng,p=d.latLngToLayerPoint(f),m=L.Path.SVG,g=L.extend({},this._group.options.spiderLegPolylineOptions),v=g.opacity;for(v===n&&(v=L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity),m?(g.opacity=0,g.className=(g.className||"")+" leaflet-cluster-spider-leg"):g.opacity=v,i=0;i<e.length;i++)r=e[i],l=d.layerPointToLatLng(t[i]),o=new L.Polyline([f,l],g),d.addLayer(o),r._spiderLeg=o,m&&(s=(a=o._path).getTotalLength()+.1,a.style.strokeDasharray=s,a.style.strokeDashoffset=s),r.setZIndexOffset&&r.setZIndexOffset(1e6),r.clusterHide&&r.clusterHide(),h.addLayer(r),r._setPos&&r._setPos(p);for(c._forceLayout(),c._animationStart(),i=e.length-1;i>=0;i--)l=d.layerPointToLatLng(t[i]),(r=e[i])._preSpiderfyLatlng=r._latlng,r.setLatLng(l),r.clusterShow&&r.clusterShow(),m&&((a=(o=r._spiderLeg)._path).style.strokeDashoffset=0,o.setStyle({opacity:v}));this.setOpacity(.3),setTimeout((function(){c._animationEnd(),c.fire("spiderfied",{cluster:u,markers:e})}),200)},_animationUnspiderfy:function(e){var t,n,i,r,o,a,s=this,l=this._group,u=l._map,c=l._featureGroup,d=e?u._latLngToNewLayerPoint(this._latlng,e.zoom,e.center):u.latLngToLayerPoint(this._latlng),h=this.getAllChildMarkers(),f=L.Path.SVG;for(l._animationStart(),this.setOpacity(1),n=h.length-1;n>=0;n--)(t=h[n])._preSpiderfyLatlng&&(t.setLatLng(t._preSpiderfyLatlng),delete t._preSpiderfyLatlng,a=!0,t._setPos&&(t._setPos(d),a=!1),t.clusterHide&&(t.clusterHide(),a=!1),a&&c.removeLayer(t),f&&(o=(r=(i=t._spiderLeg)._path).getTotalLength()+.1,r.style.strokeDashoffset=o,i.setStyle({opacity:0})));setTimeout((function(){var e=0;for(n=h.length-1;n>=0;n--)(t=h[n])._spiderLeg&&e++;for(n=h.length-1;n>=0;n--)(t=h[n])._spiderLeg&&(t.clusterShow&&t.clusterShow(),t.setZIndexOffset&&t.setZIndexOffset(0),e>1&&c.removeLayer(t),u.removeLayer(t._spiderLeg),delete t._spiderLeg);l._animationEnd(),l.fire("unspiderfied",{cluster:s,markers:h})}),200)}}),L.MarkerClusterGroup.include({_spiderfied:null,_spiderfierOnAdd:function(){this._map.on("click",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on("zoomstart",this._unspiderfyZoomStart,this),this._map.on("zoomend",this._noanimationUnspiderfy,this)},_spiderfierOnRemove:function(){this._map.off("click",this._unspiderfyWrapper,this),this._map.off("zoomstart",this._unspiderfyZoomStart,this),this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._map.off("zoomend",this._noanimationUnspiderfy,this),
+this._noanimationUnspiderfy()},_unspiderfyZoomStart:function(){this._map&&this._map.on("zoomanim",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(e){L.DomUtil.hasClass(this._map._mapPane,"leaflet-touching")||(this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._unspiderfy(e))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(e){this._spiderfied&&this._spiderfied.unspiderfy(e)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(e){e._spiderLeg&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow(),e.setZIndexOffset&&e.setZIndexOffset(0),this._map.removeLayer(e._spiderLeg),delete e._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(e){return e?e instanceof L.MarkerClusterGroup?e=e._topClusterLevel.getAllChildMarkers():e instanceof L.LayerGroup?e=e._layers:e instanceof L.MarkerCluster?e=e.getAllChildMarkers():e instanceof L.Marker&&(e=[e]):e=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(e),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(e),this},_flagParentsIconsNeedUpdate:function(e){var t,n;for(t in e)for(n=e[t].__parent;n;)n._iconNeedsUpdate=!0,n=n.__parent},_refreshClustersIcons:function(){this._featureGroup.eachLayer((function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()}))},_refreshSingleMarkerModeMarkers:function(e){var t,n;for(t in e)n=e[t],this.hasLayer(n)&&n.setIcon(this._overrideMarkerIcon(n))}}),L.Marker.include({refreshIconOptions:function(e,t){var n=this.options.icon;return L.setOptions(n,e),this.setIcon(n),t&&this.__parent&&this.__parent._group.refreshClusters(this),this}})}(window,document),o=function(e){e.FeatureGroup.SubGroup=e.FeatureGroup.extend({statics:{version:"0.1.2"},initialize:function(t,n){e.FeatureGroup.prototype.initialize.call(this,n),this.setParentGroup(t)},setParentGroup:function(t){var n=t instanceof e.LayerGroup;return this._parentGroup=t,this.onAdd=n?"function"==typeof t.addLayers?this._onAddToGroupBatch:this._onAddToGroup:this._onAddToMap,this.onRemove=n?"function"==typeof t.removeLayers?this._onRemoveFromGroupBatch:this._onRemoveFromGroup:this._onRemoveFromMap,this.addLayer=n?this._addLayerToGroup:this._addLayerToMap,this.removeLayer=n?this._removeLayerFromGroup:this._removeLayerFromMap,this},setParentGroupSafe:function(e){var t=this._map;return t&&t.removeLayer(this),this.setParentGroup(e),t&&t.addLayer(this),this},getParentGroup:function(){return this._parentGroup},_onAddToGroupBatch:function(e){var t=this.getLayers();this._map=e,this._parentGroup.addLayers(t)},_onRemoveFromGroupBatch:function(){var e=this.getLayers();this._parentGroup.removeLayers(e),this._map=null},_onAddToGroup:function(e){var t=this._parentGroup;this._map=e,this.eachLayer(t.addLayer,t)},_onRemoveFromGroup:function(){var e=this._parentGroup;this.eachLayer(e.removeLayer,e),this._map=null},_onAddToMap:e.FeatureGroup.prototype.onAdd,_onRemoveFromMap:e.FeatureGroup.prototype.onRemove,_addLayerToGroup:function(t){if(this.hasLayer(t))return this;t.on&&t.on(e.FeatureGroup.EVENTS,this._propagateEvent,this);var n=this.getLayerId(t);return this._layers[n]=t,this._map&&this._parentGroup.addLayer(t),this._popupContent&&t.bindPopup&&t.bindPopup(this._popupContent,this._popupOptions),this.fire("layeradd",{layer:t})},_removeLayerFromGroup:function(t){if(!this.hasLayer(t))return this;t in this._layers&&(t=this._layers[t]),t.off&&t.off(e.FeatureGroup.EVENTS,this._propagateEvent,this);var n=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[n]&&this._parentGroup.removeLayer(n),delete this._layers[n],this._popupContent&&this.invoke("unbindPopup"),this.fire("layerremove",{layer:t})},_addLayerToMap:e.FeatureGroup.prototype.addLayer,_removeLayerFromMap:e.FeatureGroup.prototype.removeLayer}),e.featureGroup.subGroup=function(t,n){return new e.FeatureGroup.SubGroup(t,n)}},"function"==typeof define&&define.amd?define(["leaflet"],o):"object"==typeof module&&module.exports?o(require("leaflet")):o(this.L);
\ No newline at end of file
diff --git a/assets/www/feed.json b/assets/www/feed.json
new file mode 100644
index 0000000000000000000000000000000000000000..91288145e1b4daa1953ab7bfeaf28b76d93ba300
--- /dev/null
+++ b/assets/www/feed.json
@@ -0,0 +1,35 @@
+{
+  "version": "https://jsonfeed.org/version/1",
+  "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL — https://jsonfeed.org/feed.json — and add it your reader.",
+  "title": "Actualités",
+  "description": "Cesium News",
+  "home_page_url": "https://forum.monnaie-libre.fr/tag/cesium",
+  "feed_url": "/feed.json",
+  "author": {
+    "name": "Benoit Lavenier",
+    "url": "@BenoitLavenier",
+    "avatar": "https://g1.data.duniter.fr/user/profile/38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE/_image/avatar.png"
+  },
+  "items": [
+    {
+      "title": "Fermeture prochaine de Cesium-web",
+      "author": {
+        "name": "Moul",
+        "url": "@moul",
+        "avatar": "https://forum.monnaie-libre.fr/user_avatar/forum.monnaie-libre.fr/moul/45/1246_2.png"
+      },
+      "date_published": "2020-02-07T09:42:00+01:00",
+      "id": "https://forum.monnaie-libre.fr/t/fermeture-prochaine-de-cesium-web-1er-mai/9474",
+      "url": "https://forum.monnaie-libre.fr/t/fermeture-prochaine-de-cesium-web-1er-mai/9474",
+      "content_html": "<p>Au <b>1er mai 2020</b>, il ne sera <b>plus possible de vous connecter à Ğ1 via la version web de Cesium</b> (Cesium-web), pour faire des transactions et certifier de nouveaux membres. Cesium-web restera cependant disponible en lecture, pour consulter vos comptes et vos certifications. Cette décision a été prise par les développeurs, en raison de potentielles failles de sécurité, qui pourraient affecter l’évolution de cette monnaie.</p><p>Le présent article a pour objectif : <ul><li>de vous présenter les causes et conséquences de cette décision,</li>\n<li>de détailler les procédures d’installation sur les différentes plateformes.</li></ul></p><p><h4>Pourquoi fermer Cesium-Web ?</h2></p><h5>Rappels concernant la Ğ1</h5><p>La monnaie libre Ğ1 est une monnaie cryptographique, c’est-à-dire qu’elle utilise des procédés de chiffrement pour garantir la légitimité de chaque transaction.</p>\n"
+    },
+    {
+      "title": "Un site officiel simple pour Cesium !",
+      "date_published": "2019-02-21T22:55:00+01:00",
+      "id": "https://cesium.app",
+      "url": "https://cesium.app",
+      "image": "https://cesium.app/i18n/fr_FR/contents/accueil/Cesium-G1-maquette.png",
+      "content_html": "<p><ul><li>Vous aimeriez vous inscrire à la Ğ1 (<i>June</i>), mais vous ne savez pas comment vous y prendre ?</li><li>Vous voulez savoir <b>comment utiliser</b> Cesium depuis votre smartphone ou ordinateur ?</li><li>On vous a dit que Cesium faisait aussi le café (en plus de gérer votre portefeuille en monnaie libre), mais vous n'en êtes pas sûr ? :-)</li></ul></p><p>Tutos, téléchargements, documentation: tout est désormais accessible depuis le <b>site officiel</b> : <b>https://cesium.app</b> !</p>"
+    }
+  ]
+}
diff --git a/assets/www/index.html b/assets/www/index.html
index bd59e8e22d8b36266c79282a9b4c2a46bc1e14be..61bb55d4cd7b07ea1827e2a3510409ba435e3ceb 100644
--- a/assets/www/index.html
+++ b/assets/www/index.html
@@ -13,7 +13,7 @@
     <link rel="apple-touch-icon" href="img/logo_57px.png">
 
     <link rel="manifest" href="manifest.json">
-    <link rel="stylesheet" href="dist_css/cesium-5d672210aa.css">
+    <link rel="stylesheet" href="dist_css/cesium-d05ee7c9bb.css">
 
     
 
@@ -26,13 +26,13 @@
       </div>
     </ion-nav-view>
 
-    <script src="dist_js/vendor-4db1ac7d45.js"></script>
+    <script src="dist_js/vendor-bad787f7cc.js"></script>
 
     <!--removeIf(no-device)-->
     <script src="cordova.js"></script>
     <!--endRemoveIf(no-device)-->
 
-    <script src="dist_js/cesium-054ae838de.js"></script>
+    <script src="dist_js/cesium-494e4f9c23.js"></script>
 
     <script src="config.js"></script>
   </body>
diff --git a/assets/www/manifest.json b/assets/www/manifest.json
index 875f75c4251033f19d155cf8cdd63d11e44a8bf6..29261aaf87ba0a0fa323efcf6866ee8859a1f6f6 100644
--- a/assets/www/manifest.json
+++ b/assets/www/manifest.json
@@ -2,10 +2,15 @@
   "short_name": "Cesium",
   "name": "Cesium",
   "manifest_version": 1,
-  "version": "1.5.3",
+  "version": "1.5.4",
   "default_locale": "fr",
   "description": "Manage your Duniter Wallet on a libre currency, like Äž1",
   "icons": [
+    {
+      "src": "img/logo_32px.png",
+      "sizes": "32x32",
+      "type": "image/png"
+    },
     {
       "src": "img/logo_96px.png",
       "sizes": "96x96",
diff --git a/res/xml/config.xml b/res/xml/config.xml
index ddf45e7030866313cbd0f15f6f13a0c24759dc99..c55e136bb1bbac16302753efc251d70bf9c37483 100644
--- a/res/xml/config.xml
+++ b/res/xml/config.xml
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='utf-8'?>
-<widget android-versionCode="105003" id="fr.duniter.cesium" ios-CFBundleIdentifier="org.duniter.cesium" version="1.5.3" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
+<widget android-versionCode="105004" id="fr.duniter.cesium" ios-CFBundleIdentifier="org.duniter.cesium" version="1.5.4" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
     <feature name="Clipboard">
         <param name="android-package" value="com.verso.cordova.clipboard.Clipboard" />
     </feature>