From c28dd990b0feb3089e41c83278bb948489893293 Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Tue, 25 Feb 2014 01:44:19 -0300 Subject: [PATCH] separated insight API from the front-end --- .bowerrc | 3 - Gruntfile.js | 91 +-- app/controllers/addresses.js | 4 +- app/controllers/index.js | 12 +- app/controllers/socket.js | 2 +- app/controllers/transactions.js | 2 +- app/views/404.jade | 12 - app/views/500.jade | 12 - app/views/includes/foot.jade | 7 - app/views/includes/head.jade | 22 - app/views/includes/navbar.jade | 1 - app/views/index.jade | 4 - app/views/layouts/default.jade | 8 - bower.json | 18 - config/config.js | 3 +- config/express.js | 10 +- config/routes.js | 33 +- lib/BlockDb.js | 5 +- lib/PoolMatch.js | 2 +- lib/Rpc.js | 6 +- package.json | 10 +- public/css/main.min.css | 1 - public/img/.gitignore | 0 public/img/angularjs.png | Bin 14875 -> 0 bytes public/img/icons/copy.png | Bin 148 -> 0 bytes public/img/icons/favicon.ico | Bin 1150 -> 0 bytes public/img/leveldb.png | Bin 12009 -> 0 bytes public/img/loading.gif | Bin 1849 -> 0 bytes public/img/nodejs.png | Bin 3253 -> 0 bytes public/js/angularjs-all.min.js | 9 - public/js/main.min.js | 2 - public/js/vendors.min.js | 3 - public/sound/transaction.mp3 | Bin 27732 -> 0 bytes public/src/css/common.css | 682 ---------------------- public/src/js/app.js | 30 - public/src/js/config.js | 64 -- public/src/js/controllers/address.js | 41 -- public/src/js/controllers/blocks.js | 90 --- public/src/js/controllers/connection.js | 53 -- public/src/js/controllers/currency.js | 51 -- public/src/js/controllers/footer.js | 15 - public/src/js/controllers/header.js | 40 -- public/src/js/controllers/index.js | 47 -- public/src/js/controllers/search.js | 63 -- public/src/js/controllers/status.js | 49 -- public/src/js/controllers/transactions.js | 172 ------ public/src/js/directives.js | 75 --- public/src/js/filters.js | 9 - public/src/js/init.js | 6 - public/src/js/services/address.js | 23 - public/src/js/services/blocks.js | 31 - public/src/js/services/currency.js | 6 - public/src/js/services/global.js | 12 - public/src/js/services/socket.js | 71 --- public/src/js/services/status.js | 17 - public/src/js/services/transactions.js | 39 -- public/views/404.html | 6 - public/views/address.html | 76 --- public/views/block.html | 119 ---- public/views/block_list.html | 63 -- public/views/includes/connection.html | 23 - public/views/includes/currency.html | 15 - public/views/includes/footer.html | 3 - public/views/includes/header.html | 49 -- public/views/includes/infoStatus.html | 4 - public/views/index.html | 80 --- public/views/redirect.html | 1 - public/views/status.html | 165 ------ public/views/transaction.html | 63 -- public/views/transaction/list.html | 9 - public/views/transaction/tx.html | 185 ------ 71 files changed, 51 insertions(+), 2778 deletions(-) delete mode 100644 .bowerrc delete mode 100644 app/views/404.jade delete mode 100644 app/views/500.jade delete mode 100644 app/views/includes/foot.jade delete mode 100644 app/views/includes/head.jade delete mode 100644 app/views/includes/navbar.jade delete mode 100644 app/views/index.jade delete mode 100644 app/views/layouts/default.jade delete mode 100644 bower.json delete mode 100644 public/css/main.min.css delete mode 100755 public/img/.gitignore delete mode 100644 public/img/angularjs.png delete mode 100644 public/img/icons/copy.png delete mode 100644 public/img/icons/favicon.ico delete mode 100644 public/img/leveldb.png delete mode 100644 public/img/loading.gif delete mode 100644 public/img/nodejs.png delete mode 100644 public/js/angularjs-all.min.js delete mode 100644 public/js/main.min.js delete mode 100644 public/js/vendors.min.js delete mode 100644 public/sound/transaction.mp3 delete mode 100644 public/src/css/common.css delete mode 100644 public/src/js/app.js delete mode 100644 public/src/js/config.js delete mode 100644 public/src/js/controllers/address.js delete mode 100644 public/src/js/controllers/blocks.js delete mode 100644 public/src/js/controllers/connection.js delete mode 100644 public/src/js/controllers/currency.js delete mode 100644 public/src/js/controllers/footer.js delete mode 100644 public/src/js/controllers/header.js delete mode 100644 public/src/js/controllers/index.js delete mode 100644 public/src/js/controllers/search.js delete mode 100644 public/src/js/controllers/status.js delete mode 100644 public/src/js/controllers/transactions.js delete mode 100644 public/src/js/directives.js delete mode 100644 public/src/js/filters.js delete mode 100644 public/src/js/init.js delete mode 100644 public/src/js/services/address.js delete mode 100644 public/src/js/services/blocks.js delete mode 100644 public/src/js/services/currency.js delete mode 100644 public/src/js/services/global.js delete mode 100644 public/src/js/services/socket.js delete mode 100644 public/src/js/services/status.js delete mode 100644 public/src/js/services/transactions.js delete mode 100644 public/views/404.html delete mode 100644 public/views/address.html delete mode 100644 public/views/block.html delete mode 100644 public/views/block_list.html delete mode 100644 public/views/includes/connection.html delete mode 100644 public/views/includes/currency.html delete mode 100644 public/views/includes/footer.html delete mode 100644 public/views/includes/header.html delete mode 100644 public/views/includes/infoStatus.html delete mode 100644 public/views/index.html delete mode 100644 public/views/redirect.html delete mode 100644 public/views/status.html delete mode 100644 public/views/transaction.html delete mode 100644 public/views/transaction/list.html delete mode 100644 public/views/transaction/tx.html diff --git a/.bowerrc b/.bowerrc deleted file mode 100644 index 47ad6673..00000000 --- a/.bowerrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "directory": "public/lib" -} diff --git a/Gruntfile.js b/Gruntfile.js index 7b04ccef..4f1547e1 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -5,9 +5,6 @@ module.exports = function(grunt) { //Load NPM tasks grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-jshint'); - grunt.loadNpmTasks('grunt-contrib-uglify'); - grunt.loadNpmTasks('grunt-contrib-concat'); - grunt.loadNpmTasks('grunt-css'); grunt.loadNpmTasks('grunt-mocha-test'); grunt.loadNpmTasks('grunt-nodemon'); grunt.loadNpmTasks('grunt-concurrent'); @@ -22,37 +19,12 @@ module.exports = function(grunt) { files: ['README.md'], tasks: ['markdown'] }, - jade: { - files: ['app/views/**'], - options: { - livereload: true, - }, - }, js: { - files: ['Gruntfile.js', 'insight.js', 'app/**/*.js', 'public/js/**'], + files: ['Gruntfile.js', 'insight.js', 'app/**/*.js'], tasks: ['jshint'], options: { livereload: true, }, - }, - assets: { - files: ['public/src/**/*.js', 'public/**/*.css'], - tasks: ['compile'], - options: { - livereload: true, - }, - }, - html: { - files: ['public/views/**'], - options: { - livereload: true, - }, - }, - css: { - files: ['public/css/**'], - options: { - livereload: true - } }, // we monitor only app/models/* because we have test for models only now // test: { @@ -62,64 +34,12 @@ module.exports = function(grunt) { }, jshint: { all: { - src: ['Gruntfile.js', 'insight.js', 'app/**/*.js', 'public/src/js/**/*.js','lib/*.js'], + src: ['Gruntfile.js', 'insight.js', 'app/**/*.js', 'lib/*.js'], options: { jshintrc: true } } }, - concat: { - options: { - process: function(src, filepath) { - if (filepath.substr(filepath.length - 2) === 'js') { - return '// Source: ' + filepath + '\n' + - src.replace(/(^|\n)[ \t]*('use strict'|"use strict");?\s*/g, '$1'); - } else { - return src; - } - } - }, - vendors: { - src: ['public/lib/momentjs/min/moment.min.js', 'public/lib/qrcode-generator/js/qrcode.js', 'public/lib/zeroclipboard/ZeroClipboard.min.js'], - dest: 'public/js/vendors.js' - }, - angular: { - src: ['public/lib/angular/angular.min.js', 'public/lib/angular-resource/angular-resource.min.js', 'public/lib/angular-route/angular-route.min.js', 'public/lib/angular-qrcode/qrcode.js', 'public/lib/angular-animate/angular-animate.min.js', 'public/lib/angular-bootstrap/ui-bootstrap.min.js', 'public/lib/angular-bootstrap/ui-bootstrap-tpls.min.js', 'public/lib/angular-ui-utils/ui-utils.min.js', 'public/lib/ngprogress/build/ngProgress.min.js'], - dest: 'public/js/angularjs-all.js' - }, - main: { - src: ['public/src/js/app.js', 'public/src/js/controllers/*.js', 'public/src/js/services/*.js', 'public/src/js/directives.js', 'public/src/js/filters.js', 'public/src/js/config.js', 'public/src/js/init.js'], - dest: 'public/js/main.js' - }, - css: { - src: ['public/src/css/**/*.css'], - dest: 'public/css/main.css' - } - }, - uglify: { - options: { - banner: '/*! <%= pkg.name %> <%= pkg.version %> */\n', - mangle: false - }, - vendors: { - src: 'public/js/vendors.js', - dest: 'public/js/vendors.min.js' - }, - angular: { - src: 'public/js/angularjs-all.js', - dest: 'public/js/angularjs-all.min.js' - }, - main: { - src: 'public/js/main.js', - dest: 'public/js/main.min.js' - } - }, - cssmin: { - css: { - src: 'public/css/main.css', - dest: 'public/css/main.min.css' - } - }, mochaTest: { options: { reporter: 'spec', @@ -131,7 +51,7 @@ module.exports = function(grunt) { script: 'insight.js', options: { args: [], - ignore: ['public/**/*.html','public/**/*.css', 'public/**/*.js', 'test/**/*','util/**/*', ,'dev-util/**/*'], + ignore: ['test/**/*', 'util/**/*', 'dev-util/**/*'], // nodeArgs: ['--debug'], delayTime: 1, env: { @@ -170,10 +90,7 @@ module.exports = function(grunt) { grunt.option('force', true); //Default task(s). - grunt.registerTask('default', ['jshint', 'compile', 'concurrent']); - - //Compile task (concat + minify) - grunt.registerTask('compile', ['concat', 'uglify', 'cssmin']); + grunt.registerTask('default', ['jshint', 'concurrent']); //Test task. grunt.registerTask('test', ['env:test', 'mochaTest']); diff --git a/app/controllers/addresses.js b/app/controllers/addresses.js index c94779b8..b2ab8244 100644 --- a/app/controllers/addresses.js +++ b/app/controllers/addresses.js @@ -23,7 +23,7 @@ var getAddr = function(req, res, next) { exports.show = function(req, res, next) { var a = getAddr(req, res, next); - if (a) + if (a) a.update(function(err) { if (err) { return common.handleErrors(err, res); @@ -39,7 +39,7 @@ exports.show = function(req, res, next) { exports.utxo = function(req, res, next) { var a = getAddr(req, res, next); - if (a) + if (a) a.getUtxo(function(err, utxo) { if (err) return common.handleErrors(err, res); diff --git a/app/controllers/index.js b/app/controllers/index.js index b4982dbd..9f6a7d75 100644 --- a/app/controllers/index.js +++ b/app/controllers/index.js @@ -1,11 +1,17 @@ 'use strict'; +var _getVersion = function() { + var pjson = require('../../package.json'); + return pjson.version; +}; + exports.render = function(req, res) { - res.render('index'); + var version = _getVersion(); + res.send('insight API v' + version); }; exports.version = function(req, res) { - var pjson = require('../../package.json'); - res.json({version: pjson.version}); + var version = _getVersion(); + res.json({ version: version }); }; diff --git a/app/controllers/socket.js b/app/controllers/socket.js index 9a11f5b5..019fb37e 100644 --- a/app/controllers/socket.js +++ b/app/controllers/socket.js @@ -22,7 +22,7 @@ module.exports.broadcastTx = function(tx) { t = { txid: tx }; - } + } else { t = { diff --git a/app/controllers/transactions.js b/app/controllers/transactions.js index cda2868a..e7b09ad3 100644 --- a/app/controllers/transactions.js +++ b/app/controllers/transactions.js @@ -47,7 +47,7 @@ var getTransaction = function(txid, cb) { if (err) console.log(err); if (!tx || !tx.info) { - console.log('[transactions.js.48]:: TXid %s not found in RPC. CHECK THIS.', txid); + console.log('[transactions.js.48]:: TXid %s not found in RPC. CHECK THIS.', txid); return ({ txid: txid }); } diff --git a/app/views/404.jade b/app/views/404.jade deleted file mode 100644 index af5da97a..00000000 --- a/app/views/404.jade +++ /dev/null @@ -1,12 +0,0 @@ -extends layouts/default - -block main - h1 Oops something went wrong - br - span 404 - -block content - #error-message-box - #error-stack-trace - pre - code!= error diff --git a/app/views/500.jade b/app/views/500.jade deleted file mode 100644 index 491b0008..00000000 --- a/app/views/500.jade +++ /dev/null @@ -1,12 +0,0 @@ -extends layouts/default - -block main - h1 Oops something went wrong - br - span 500 - -block content - #error-message-box - #error-stack-trace - pre - code!= error diff --git a/app/views/includes/foot.jade b/app/views/includes/foot.jade deleted file mode 100644 index 8659501c..00000000 --- a/app/views/includes/foot.jade +++ /dev/null @@ -1,7 +0,0 @@ -#footer(data-ng-include="'/views/includes/footer.html'", role='navigation') - -script(type='text/javascript', src='/socket.io/socket.io.js') -script(type='text/javascript', src='/js/vendors.min.js') -script(type='text/javascript', src='/js/angularjs-all.min.js') -script(type='text/javascript', src='/js/main.min.js') - diff --git a/app/views/includes/head.jade b/app/views/includes/head.jade deleted file mode 100644 index 9afe8d78..00000000 --- a/app/views/includes/head.jade +++ /dev/null @@ -1,22 +0,0 @@ -head - meta(charset='utf-8') - meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1') - meta(name='viewport', content='width=device-width,initial-scale=1.0') - meta(name="fragment", content="!") - - title(data-ng-bind="$root.title + $root.titleDetail + ' | #{appName}'")= appName - meta(http-equiv='Content-type', content='text/html;charset=UTF-8') - meta(name="keywords", content="bitcoins, transactions, blocks, address, block chain, best block, mining difficulty, hash serialized") - meta(name="description", content="Bitcoin Insight. View detailed information on all bitcoin transactions and block. {{ $root.title + $root.titleDetail }}") - - link(rel='shortcut icon', href='/img/icons/favicon.ico', type='image/x-icon') - - link(rel='stylesheet', href='//fonts.googleapis.com/css?family=Ubuntu:300,400,500,700,400italic') - link(rel='stylesheet', href='/lib/bootstrap/dist/css/bootstrap.min.css') - link(rel='stylesheet', href='/css/main.min.css') - - if (config.keys.segmentio) - script(type='text/javascript'). - window.analytics||(window.analytics=[]),window.analytics.methods=['identify','track','trackLink','trackForm','trackClick','trackSubmit','page','pageview','ab','alias','ready','group','on','once','off'],window.analytics.factory=function(t){return function(){var a=Array.prototype.slice.call(arguments);return a.unshift(t),window.analytics.push(a),window.analytics}};for(var i=0;i= 0) { return self.strings[k]; } - }; + } }; return PoolMatch; diff --git a/lib/Rpc.js b/lib/Rpc.js index 428f619f..9a465935 100644 --- a/lib/Rpc.js +++ b/lib/Rpc.js @@ -19,21 +19,21 @@ function spec(b) { var b = new Buffer(info.hex,'hex'); // remove fields we dont need, to speed and adapt the information - delete info['hex']; + delete info.hex; // Inputs => add index + coinBase flag var n =0; info.vin.forEach(function(i) { i.n = n++; if (i.coinbase) info.isCoinBase = true; - if (i.scriptSig) delete i.scriptSig['hex']; + if (i.scriptSig) delete i.scriptSig.hex; }); // Outputs => add total var valueOutSat = 0; info.vout.forEach( function(o) { valueOutSat += o.value * bitcoreUtil.COIN; - delete o.scriptPubKey['hex']; + delete o.scriptPubKey.hex; }); info.valueOut = parseInt(valueOutSat) / bitcoreUtil.COIN; info.size = b.length; diff --git a/package.json b/package.json index e3d8318e..3f73fa7d 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "insight-bitcore", + "name": "insight-bitcore-api", "description": "An open-source bitcoin blockchain API. The Insight API provides you with a convenient, powerful and simple way to query and broadcast data on the bitcoin network and build your own services with it.", "version": "0.1.2", "author": { @@ -59,8 +59,6 @@ "commander": "*", "bignum": "*", "express": "~3.4.7", - "jade": "~1.0.2", - "lodash": "~2.4.1", "buffertools": "*", "should": "~2.1.1", "view-helpers": "latest", @@ -73,7 +71,6 @@ "xmlhttprequest": "~1.6.0" }, "devDependencies": { - "bower": "~1.2.8", "grunt": "~0.4.2", "grunt-cli": "~0.1.11", "grunt-env": "~0.4.1", @@ -82,10 +79,7 @@ "grunt-concurrent": "~0.4.2", "grunt-nodemon": "~0.2.0", "grunt-mocha-test": "~0.8.1", - "grunt-contrib-concat": "~0.3.0", - "grunt-contrib-uglify": "~0.3.2", - "should": "latest", - "grunt-css": "~0.5.4", + "should": "2.1.1", "grunt-markdown": "~0.5.0" } } diff --git a/public/css/main.min.css b/public/css/main.min.css deleted file mode 100644 index 006519ec..00000000 --- a/public/css/main.min.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";html,body{color:#373D42;font-family:Ubuntu,sans-serif;height:100%}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{color:#373D42;font-family:Ubuntu,sans-serif}[ng\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none!important}#ngProgress{background-color:#6C9032!important;box-shadow:none!important;color:#373D42!important;height:3px!important;margin:0;opacity:0;padding:0;z-index:99998;-webkit-transition:all .5s ease-in-out;-moz-transition:all .5s ease-in-out;-o-transition:all .5s ease-in-out;transition:all .5s ease-in-out}#ngProgress-container{position:fixed;margin:0;padding:0;top:63px;left:0;right:0;z-index:99999}#wrap{min-height:100%;height:auto;margin:0 auto -51px;padding:0 0 75px}.m10h{margin:0 10px}.m20h{margin:0 20px}.m5v{margin:5px 0}.m20v{margin:20px 0}.m10v{margin:10px 0}.m50v{margin:50px 0}.m10b{margin-bottom:10px}.m10l{margin-left:10px}.vm{vertical-align:middle}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:0}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#F0F7E2}.navbar-default .navbar-toggle{border-color:#fff;margin-top:15px}.navbar-default .navbar-toggle .icon-bar{background-color:#fff}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#373D42}.navbar-default{background-color:#8DC429;margin:0}.navbar-default .navbar-nav>li>a{color:#F4FBE8;font-family:Ubuntu,sans-serif;padding-left:25px;padding-right:25px}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus{background-color:#6C9032;color:#fff}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>.active>a:hover{background-color:#fff}.navbar-form .form-group{display:block}.navbar-form{margin-left:20px;width:35%;margin-top:15px}@media (max-width:991px){.status{margin:0}.navbar-form{width:20%}}@media (max-width:768px){.navbar-form{width:auto}}.nav-tabs.nav-justified>li>a:hover{cursor:pointer}.insight{font-family:Ubuntu,sans-serif;font-size:34px;font-style:italic;font-weight:700}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#fffffe}.navbar-default .navbar-brand{color:#FFF;margin-right:20px;padding:22px 15px}.navbar-form .form-control{background-color:#7CAD23;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;border:0;-webkit-box-shadow:1px 1px 0 0 rgba(255,255,255,.41),inset 1px 1px 3px 0 rgba(0,0,0,.10);-moz-box-shadow:1px 1px 0 0 rgba(255,255,255,.41),inset 1px 1px 3px 0 rgba(0,0,0,.10);box-shadow:1px 1px 0 0 rgba(255,255,255,.41),inset 1px 1px 3px 0 rgba(0,0,0,.10)}.navbar-nav>li>a{padding-top:22px;padding-bottom:22px}#search{color:#fff;font-family:Ubuntu,sans-serif}#search.loading{background-image:url(/img/loading.gif);background-position:5px center;background-repeat:no-repeat;padding-left:25px}#search::-webkit-input-placeholder{color:#BCDF7E;font-family:Ubuntu,sans-serif;font-size:14px;font-style:italic;font-weight:100}#search::-moz-placeholder{color:#BCDF7E;font-family:Ubuntu,sans-serif;font-size:14px;font-weight:100}.status{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#597338;border-radius:3px;margin:15px 0;padding:8px 10px;font-size:12px;color:#eee;text-align:center}.status .tooltip{margin:0}.col-gray{-moz-border-radius:5px;-webkit-border-radius:5px;background-color:#F4F4F4;border-radius:5px;padding:14px;border:1px solid #eee}.col-gray-responsive{width:auto}.col-gray-fixed{margin-top:15px;position:fixed;width:250px;border:1px solid #eee;z-index:1}@media (max-width:768px){.col-gray-fixed{width:100%}}@media (max-width:995px){.col-gray-fixed{position:static;width:100%}}@media (min-width:1200px){.col-gray-fixed{width:280px}}.ellipsis{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line20{border:1px solid #D4D4D4;margin-bottom:15px}.line10{border:1px solid #EAEAEA;margin:10px 0}.block-id{background-color:#373D42;border:3px solid #FFF;margin:0 auto;width:165px;color:#fff;text-align:center}.block-id span{font-size:40px;margin:30px 0}.block-id h2{color:#FFF;font-weight:700;line-height:30px;font-size:24px;margin-top:0;margin-bottom:10px}.icon-block{color:#FFF;font-size:35px;margin-top:10px}.icon-block h3{color:#fff}.block-tx{-moz-border-radius:2px;-webkit-border-radius:2px;background-color:#F4F4F4;border-radius:2px;margin:20px 0 10px;overflow:hidden;padding:15px;border:1px solid #eee}.btn{border-radius:2px}.btn-primary{background-color:#8DC429;border:2px solid #76AF0F}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary,.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success,.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-color:#fff;border:2px solid #ccc;color:#373D42}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-color:#fff}.btn-default{background-color:#E7E7E7}.btn-success{background-color:#2FA4D7;border:2px solid #237FA7}.btn-danger{background-color:#AC0015;border:2px solid #6C0000}.txvalues{display:inline-block;padding:.7em 2em;font-size:13px;text-transform:uppercase;font-weight:100;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}@media (max-width:768px){.txvalues{display:block;margin:5px}}.txvalues-primary{background-color:#8DC429}.txvalues-default{background-color:#EBEBEB;color:#333}.txvalues-success{background-color:#2FA4D7}.txvalues-danger{background-color:#AC0015}.progress-bar-info{background-color:#8DC429}#footer{background-color:#373D42;color:#fff;height:51px;overflow:hidden}#footer a.insight{font-size:20px;text-decoration:none;color:#fff}#footer a.insight:hover{color:#fffffe}#footer a.insight small{font-size:11px}.line-footer{border-top:2px dashed #ccc}.line-bot{border-bottom:2px solid #EAEAEA;padding:0 0 10px}.line-mid{padding:15px 0}.line-top{border-top:1px solid #EAEAEA;padding:15px 0 0}#wrap>.container{padding:70px 15px 0}#footer>.container{padding:auto 15px}.code{font-size:80%}.address{font-size:11px}.no_matching{-moz-border-radius-bottomleft:2px;-moz-border-radius-bottomright:2px;-webkit-border-bottom-left-radius:2px;-webkit-border-bottom-right-radius:2px;background-color:#FFF;border-bottom-left-radius:2px;border-bottom-right-radius:2px;border-top:0;border:1px solid #64920F;padding:10px 20px;position:absolute;text-align:center;top:45px;width:300px}.fader.ng-enter{opacity:0;-webkit-transition:opacity 1s;-moz-transition:opacity 1s;-o-transition:opacity 1s;transition:opacity 1s}.fader.ng-enter-active{opacity:1}.tx-bg{background-color:#F4F4F4;left:0;min-height:340px;position:absolute;top:0;width:100%;z-index:-9999}.badge{-moz-border-radius:9px;-webkit-border-radius:9px;background-color:#999;border-radius:9px;color:#fff;font-size:12.025px;font-weight:700;padding:1px 9px 2px;white-space:nowrap}.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.badge-error{background-color:#b94a48}.badge-error:hover{background-color:#953b39}.badge-warning{background-color:#f89406}.badge-warning:hover{background-color:#c67605}.badge-success{background-color:#468847}.badge-success:hover{background-color:#356635}.badge-info{background-color:#3a87ad}.badge-info:hover{background-color:#2d6987}.badge-inverse{background-color:#333}.badge-inverse:hover{background-color:#1a1a1a}.status .t{color:#fff}.status .text-danger{background:red}.status .text-warning{background:#ff0;color:#000}.btn-copy,.btn-expand{-moz-border-radius:2px;-webkit-border-radius:2px;background-color:#FFF;border-radius:2px;border:2px solid #E4E4E4;color:#9b9b9b;display:inline-block;height:25px;padding:0;outline:0;text-align:center;width:30px}.btn-copy:hover,.btn-expand:hover{background-color:#f2f2f2}.btn-copy{background:#fff url(/img/icons/copy.png) center center no-repeat;margin-left:5px}.btn-copy .tooltip{display:inline-block;margin-left:10px;margin-top:-2px;opacity:0}.btn-copy.zeroclipboard-is-hover{color:#2a6496}.btn-copy.zeroclipboard-is-active .tooltip{opacity:1}.btn-expand{margin-right:5px}@media (max-width:991px){.btn-copy{display:none}}.txid{line-height:26px}.tx-id{background-color:#373D42;border:3px solid #FFF;margin:0 auto;width:165px;color:#FFF;text-align:center}.tx-id span{font-size:40px;margin:30px 0}.transaction-vin-vout .ellipsis{margin-bottom:10px}.transaction-vin-vout .btc-value{margin-left:15px}.page-header{margin-top:0}#home .btn-more{border-top:1px solid #ddd;margin:30px auto 0;text-align:center;width:90%}#home .btn-more .btn-default{margin-top:-23px}#powered .powered-text{border-top:1px solid #ddd;margin:30px auto 0;text-align:center;width:90%}#powered .powered-text small{background-color:#f4f4f4;padding:4px;position:relative;top:-12px}#powered a{background-repeat:no-repeat;background-position:center center;display:inline-block;float:left;height:45px}#powered a.bitcore{background-image:url(http://bitcore.io/images/logo.svg);background-size:80px;width:30%}#powered a.nodejs{background-image:url(/img/nodejs.png);background-size:80px;width:30%}#powered a.angularjs{background-image:url(/img/angularjs.png);background-size:50px;width:20%}#powered a.leveldb{background-image:url(/img/leveldb.png);background-size:50px;width:20%}@keyframes rotateThis{from{transform:scale(1) rotate(0deg)}to{transform:scale(1) rotate(360deg)}}@-webkit-keyframes rotateThis{from{-webkit-transform:scale(1) rotate(0deg)}to{-webkit-transform:scale(1) rotate(360deg)}}.icon-rotate{animation-name:rotateThis;animation-duration:2s;animation-iteration-count:infinite;animation-timing-function:linear;-webkit-animation-name:rotateThis;-webkit-animation-duration:2s;-webkit-animation-iteration-count:infinite;-webkit-animation-timing-function:linear} \ No newline at end of file diff --git a/public/img/.gitignore b/public/img/.gitignore deleted file mode 100755 index e69de29b..00000000 diff --git a/public/img/angularjs.png b/public/img/angularjs.png deleted file mode 100644 index 21aefd40ad3c275cfb3dce86b8332a7f9f6dd417..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14875 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 AtN;K2 diff --git a/public/img/icons/copy.png b/public/img/icons/copy.png deleted file mode 100644 index b43ca063492c22a1436ae1d2ce852d638df9e38c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`(Vi}jAr-fhQyQAu+S>l}xG*h< za+8=Xc(dWxud1e5($dl|6Bs-MH!>_|JhH3p8(YF>zD;*LiWzq;yi(3+R-bgag-2qe w=Ar3p64y1WW^UqXSe1C>HB(KU`#B$mX;bUjd88Ho0j**1boFyt=akR{0FnYUOaK4? diff --git a/public/img/icons/favicon.ico b/public/img/icons/favicon.ico deleted file mode 100644 index c943f00496582633c1213109ab8fca70c2ac53dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmZQzU<5(|0R|wcz>vYhz#zuJz@P!dKp~(AL>x#lFaYH+z~Rn+42L`alZh$Oi`Pz( zV}1WYm`r#5hk=38fAYg)uoFVBt|QA2rf27Y^}qW0nJoPvf5X5)g~8JwAHhzrIlqu> eKalHon7)Ay1CTp7j&#$~|CHpxe;DNfi2?vqx@(&N diff --git a/public/img/leveldb.png b/public/img/leveldb.png deleted file mode 100644 index da13a671aaabef5febe267d4d10fa663fbbab21a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12009 zcmaKyRZtw=7ws8zAh_G$Zoz}Q2bbXP?hava3+}<)CAho069#t+mf(8%{?GT`hwf8# zs`{n-^j^Qc){azGltw`!M1q2XLXnk`Q2kiT{=0ziA9uH}#f={eft#e3o0_AAo2Rjh zIh3fGqlr10ti7?NxvIIbnYZ(pxd0RtOSG(nsJa*Ak3XVc@_*KF`54E z&qzQG?8=~TqQ6(toM+X_=zc!J;R%rH-xZ^faw5e6f zT*xdRY7n|f(l#N92dh^dOXuB3hhRQ?5fk-!O(G0!F>&!iCghu&W&L4LR_?XV>V24+ zPV`eDOwkQr5AJmO4w?c-j^G^eo!GO+*(0Gzm&kA!0R(98--3-IQm8N(MJSR{-W14a zSU(xXi}W23JSgq`%T)HFy7kRvLb92@ zGPUD8#hS&MNN^N*2v*3iim+lnaZMfuzV8|3pu>ii=9}zM8?KzFhSqir5J1Z1y8t$@ zA69{z3|)j$30i%wEcG@oad@w1Pc$Z6ti)7AeFE!b@n{tzH;sZr3U)~_kAM|9kK2>9 zzKUp8zIWxvLklA5b3%;5wo}G$S1Daa5`_m61mIPnm;fv^`FBqWGa7j|OIpR+uQ7~| zJe1$(oyFHfVAy}vb9|c$PKT!pVlVg1a~9QDi|rutK~*^A%w;~S&k-l{ihqR#SEK;u z@|eL?`hYy0P%jOd<79edKRIh+_Kd>{{m;L+f1(??--4Is;9i01W}Y5yy0(3GjxgbC zKbVLIZSlmTYVZ@A9yLPgKTXTa8#W7S>$Xa=sNB1NW1WAsJ<)u*Bhh!M`aa-U!S89A zCs^*{4d6r~7_4j{#|cbN6Tth6?23^k3H*kmwqla+#snFeL?&CvbIijy?RZB-5e&~? z(2HSOL&ojE>O&fR$_PX(|7ufuR0YXS6F8F0GArd38A<06JZ!_MUc2PidVVrZv0qcM ze@ZV*OcOwfQmq{s;f>Gc!Afj=EaNWx(l2GYY-t-(vRUXw9DW)bmybbueN@0p0f4RW z^qB^IR-9M_cbWUkrFHFEE#W0Z*Vf%fTg^vxK)j8ir@>YscqJ zN5UPk+?c`z8PD9W>ExAP@(`B?U@_=42aP$vAd$$A>n(eX{Gbi^>6qRV3v=`HR|&Pf zt0jfnumu$}I96Zg6D$I#Nn{pn%KxD5{!i|X z)vMHTi!PaVAsP#V_kI_STEH9dC));bo~892|D{@aq&zg;pTB^qO0S6Q zBg_K=M_Q>+uTF;t1CQ}|vDW5miod-N3FsUl)9cTYL$3e{z zd|5g(onSB_FifmKClt`l_v+m0x?C$tomO}nV82T_@c|n4xaGIpjPhY;s)4MPZoBogoiu0u!m45X6eTnU0FfA9EP%NUJ7--Y&_7%9G>drFF9fp-0Lup24N;p zH6f_{^6To_5#L=sPN{CmEB{2ViHFPYy(8}9lyJa59ocN|TTn2+#S3lGY4pgt2BvR{ z`8q81$;5Wp{H3`0vm(z%JzStG@{eW@_;K{Yu+7U`-;d$}@?kpPnZ+pHMHD;n1Io#n z$u5WW{wy0a_Nc);can2Zk!k$11-ssU0aJH9I&*b9Sq9oEGqk`!l8~Pwt=a&-He0k> z|5YN$od0KftwW!3`LyfU-(P^BJuj^>!cu0n3Ln!Iu6;od!w`~~jj(s|<2GpfFP|1t z&X94)-5a6b_p|M`1589dQ|mm*!x*(N{N|cxGPgom<5?Uhu)$eiX`tYWJ2pfft$!}; zOG0@!0-O~>A^|H+Ex{7=YK0q9&I6G1KBrgq4vlBwjU1WhIip&JECwpI8dsk}X6K)8 z{tDy=*bZJtk3uZ90+x(D~90)hEA~qaEQA;L5%zN=SYRJh`;Lc z6jNKM>S^qkuBk+!QP{dRJ2K4B#g}4x16U5wB#-b+=UmPwY}X9zK^{&alH5;<+>Yij z+1Z@Ifyw=aOPR{jtp(Uj+bgI0fHKW=m0sZ?KT@m+ zoxsDy%0of%?S)TdnG>+p!)i{LT~?v$Fp;MMqw-nM^v*-bRYeZ&QP_U+-KTlCPa9SN zcR@=_3K=>^^(|t#O_3>nzx7{P73YzL@kC}2iu#SSShY5UXnlqhVMWpE&&cmcG9<=q zl5Z;HXDb&l%F2=JY_y?u4^+nXRx9G^HN{g$s>%z3h7VccE{Ml0*($Z@#Pfz5TFqdi8s+It%ty#Y;DdymysC~he6=P= z@!WzJ>_x%t+N-}t@EG_}HQZ6_%uoZ3MsNFy1@9+Pw)0RJfx8k&PGG470y6xlO=FuC z7!m>apc2tqo?U_@aT@Hb8SSWKgj{I}^cReqaN{#Hi)ct5YJ~p^WxnRRzZ|JtsOc z+#^iiKSsmcA@$Pr*&h#MJFX8OGEiZUb5k$YaMI>Up&V*=WujqbM`3fN68nSBgsiy8 z!f;!_38ru7F;`uyOl?@)c)TAtSvZpw?XhRbveaJ?xdp!`LP>194(pJcS-d)=Y6ACb z+nxFy+FbjKcx_V-b=oW?b-MDFa_vmubV2m$-ae;~e||wLYziP%;R*0{^^-O6HdNPB z@R6ycspr%q2;U8BTY1BF*1X2lj^YPK9%hZ|Rg1!OC$#`u7ZYU^6z}#aOmtyz@ribp zzLEP~ot&nRlJ=njE61fnR^1%`BwNFxY}0!CCMh3ifci!0jlMFYv_3K{M|^hK5a8d;a;T+jk)XwM*GKr0EF)EvM2cXAjg)d< zkAiiTx4->uPxiQZQ7rQWnUm5<_s7AuTR8MoCEpu-t2zS9kOg1;Aa-0%L$ zfBTbTGZ)hw&kIj_sSr}UbXa##-wv26-^DsZV%ScOk1kkPF#)Ok2~&VZOh=FY17|Iq zC;yq#Bph~%eV|zB-!MCxD{q8|bS}jdBMJqi$yVxAiJOPN_NW7Iq`U#Xr&7~#aCRi2PNusAq3gEY6nzi{SGWSs4|mw`1^-# zRpgJ{C;L*Zl~+V!$KSvYE{+%EH}ZJP)*CY97bQZ;h-vR>$~?_m_{+b1>LUg*Nl$cV zJR>VeJVo#|9WIzXZ2V@4mvy#2LwLCCaS<$}yJjTV6<Kld!(|8el1vJqr$CNqeBu^Ao+l;ZTU41p0!_}+NYX;>I>Ul+fxI>WfJhETgx#F zHAFV?DpoMT>qV>aNt~b9cWFg`cEbWPqwgxHY`)_SInz@u8{*vdYHZGH3jMwb zG%4A|Z?G|G@y5?0Wir8NC?tyIatJF#$rLSA{xyhss+v{v*%Yi0mpi%qPZp#KJk@cr zi|6vYs%N&R%gvio2iW_UYGtL`PsPNcwtQaXq3FbLMv?9iBc*Vffbf<>uLsNA4VZ-5jbRc?+kPH$RadT!x9Ix zR0N|C#A0<(NqlDzDuJX^4A@O3s0ze~TcGz&f8vsgwE@$e-58doR@i2Ll-C#P;Ura=`Ycsm7n(q7eYx}Jw_&JS$D z(Xc&xG#{_qV{;)$!c=`7mpi9V9klhzM!Lzx-k3u7d85mD=i;HxekST2u$Oi- zdvO3eouHK)=PZo?_zvy#Squw!haCZUsLCw=^BTY|JN*Ek$Nr8r|0mEcR96({3D^F; zF9FYpsm_KuiVLN8FZ$8OQHSR@-&Ae~)3?nYMzv_bRI z?MpubnP}3u4~{eM=SGj*Gy#ysK`rV|3d{`z+{k+1(`x^Om8V7pUKzeP5w!PiDbMJ(nN+aX7u&3Hoxng_^UWp%m6;zFPaQtEY+i5vbw3x zrt0rG>Ds47LCtNU_u}<6P#)g|U~sBQgEs7m*6kRV{cns~1FSkBPz$c#`sU|H;O&(@ z3eH|NQhsk8_`o&CdIMGZbVXd@h@_d8b`8Qh+I_SYL?**N_u)X@@WT}i1$Lr?5r!kd@QPyx1KzLlr7qvNUJUTD}0Ll6rqs3 zyzY3fwpBWs+$lFm9CKk+UcF!RmF??%Prn>B!dBsHcQ+-les0l@NV|Wm*)Z6m}JVlmL2r4zJ+5{2c%qy{I3}rIt>1kX;TNksIwN@? zeJ6MPz2P3kQaOIBC{1OW7`H|RFh(?$xurC~#iMMJsXGr?2ZW%e;3bq*y{@Vu?puBe zXCLcJ&r8cNnkBZeK^v(Q_1s!fU0(I0WK0{v5_!v+Xi4_F&CkK)<&-%?n{YnvKI+`W z(Q;rZ55+=Js%<;|M_n25;S6D8X6W1KU&w*Mu@Ma^a0{QG4EUj!&OH4~0!zJ^y_Xja zu5Dy%ivf2_or4TgJworRWs}+ws$ie=3aTZ#!S^!y^X^m49jAfJy0Qo3^rRlXb&ZSh zD4QQXldo1e#AV*0_H=WQ0Mx_7+Fgb>9VA}N#mw^VGg!`h!5>DipC%doplAxhGf9N4 z^?utJ^>Pc)G)6;crKNCA&7b{Nd2Hl{b3_Yx;1 zx|ihPr;*D2Yr7V1fKT6GD|zi}^sIV3HCi|>9CTI6F1P`KR^_uUt5LO+-IU!?s}QV3 zZWDm1h6T4P!i_tUGdbecgJ-Y8dBDgNuI~| z&9ag~rMz*>Al)Vd4x?6ppN<)Qpn-IqK>-V&nBNIOuLDR=R}zivI3|jurV;^OExQR&*w;R5*C?|} z9Eegu+|cSaG`QaVh_RnGIk4jjc^SoXv7mme4ceg2GLE%EsjP<3^SrPzKr8!Q#8NsJ zY<%TElpPwEDwpt&he@7D#|)o{prj;>UQ#vpdNpfBbc8bw&Ff+tO;s zg%y_h1M2{Ivqk8Epsj7eJ%%?qL`Zh^3QoW?PO&;5+-3_bX!$;Q=hfr8xxhmfx4m7a zMfvO6A_=~KLvlBHtj+{7vvWtFREL@5Z)q6hzw~*p2d>VlzvatFB}c5}gd?Wl^&plC zFFw3}AAM%!{V=2^ILu|~e zfa}9bd^4KUvtOaDx(OCo^-u$;MPj=|maNOwe;#Wtp*mRKKVhXe} zTr%8NekGc2cN598<%RGuB=nigSp;M$aSaz_v=x>UI zJ!-PW`e21dIjvd|g2<0T3b4feg(}|Ecb$!{G;U|#2ktcz+Acls%4oH6+;k}fdDkc0l z8UEWuk-1<7=A4xL0A&i!v5GUvt3s2~jX{NV0p=cyD_0|-(oRvngC9=Wv{KN*+0Ypt zR-Qifi6L8x#ri`}Xc(OCmB5IJ{fh}np167dL%j`s#a|5^`?Xrz3w{F&;yfQ0v{9-c zCyrV(nK=cKIz?&t%pj;ySR_LgF}bp3nZa+>Wu!?nN3e#o(PZukL%{rJd}6a<I!qY&c2VMZq}G=pwH47f6rPodIe4A2XOFlqieHi9E&%#g(+wBcj7g z*+|AsYAlXgfkOmGJ!rQO=+ulqAnK2RZ6T&Pbu9bvl>Yp+^q)$$MZ67K-T2qjPf<|< ze+KD_RF!2oM>`2CoGhzkz&P{prqJZNOD0e#VRwV%8X$V%68Lr&PSUJRBd=r=0ySd2;jWS||R zgm1GhbyM9A~YbhBp5nWY%YJ{JzGEy9fA6~8)(~g^{sJPhq z-=|^4@Pj;chFeP4C}18HMZ&0X>@Yc9f=tk0ju$DIWXOcgF!)dr^MCE3iO5iZgXoMV z7b|N#xFpc9cBLgQ)K-j$9RnoXq{q@yzI6JTII^xofk2@vTyxK~!bl>6WECJ5NSBvN z+dN3WQ1KBXhKGp#dNnyZ1(oHlt?PC(px;EYe7ln7t)|FdOez}VPfcL;{!|R>0yYTK zs$NbO4@dRys;D?^kByC0g@rlq0?pbqf#BfaXb-2eJG$%YoP;62Hv2M3ko$84eMy8o zFV@ANIhuNh?=w@GwEuSY8I^VY_WXED%)h&Q?{ymEirom^tU?+rrXW0~!$0oBvUIf! z4TUd{=L$V{_mB(c(vSW5Lc|6-%@+55^ zogRW#miaF`2Ep4KU*4>1=$4rI-v)3-6;*utu5@|5w#jqVl{;%;929+_Mu=>APy67C zWx2$hc{A{?YxEHozG$P)Dq+C(!4Q3McwvLK$Ard02L^YosLU(o2=M;fixW2JaN6m2 zzh8HqnQ`L-ot24R{#rXP=l8tO+j9!hF=fC;nziE8XZ%+6FlDtRNhYrRK2oBP>G1bi z+%)(HkP{Flk2{dctouEXth=SM@*^1sg&qFhr5Ya^Yjhil1#NvyA@BzTuiSpgB1_B6 zV!C-+|4z%7V3O}y7yG@8XWb)2BdxycUGHu+b|Wsw%IAKQi1zggZ^-&fCl9eNAaKnR zCT#@=;^vv`D#?xA(19SKUs8gYoqF1{`Q@EgR^_xnlSkw;`Sbl{z@OqY10TXbGEtAB zD`c3>?L(->BqHeM(o*TaZ_k&)VDJya4v+Je-QC^aBui=~^4@p^=b7&A?k6|iuz1O7 zXsC7T- zTUG$HnP1LgU=(JyIF9cBCQcIN53KEi1InRx(OT2xhYIB(O9$cXx^URm%bs@wGv+Vd_cu2u3vrxZzSL4lQN=GWE+&&19VMrvoD)B0r=+BK<{>6X z=YNI<4biDI^+dDyB(?W)IUOId2xEofSOvaY0 zb?+;Sii)Pkl4yJUAN$JC*A55|Z@#;q?!5;xbitfUO8AHvxe{>9!nXd?8qod3H?_nh zwY08DzOMJSm=xLGsWt`)iVM$u0#bYJI z(o(e=N1+AR)H`f-^V?6%F9|Si*qIz31!?NNw7ObBhD{8b6o931C=E>4On7~YSD>az zDo0=ag9uv^rWK8k``(4Lbei?@^5S2lQ>u{JjJR~o3^XGMEUB$kiWTYfrV_!pk~3R5 z!!Y|Hc*4)Y!SP(GnB7iY)t=_C(SA#W;e-i3n#?eja@`62^XE_YLl%~Bp?Kzv1?)lL zXrAg%t?KG(9ZpdaDP3BRU$57{_-{UA zAj5}rgQcATYY}G6W7>>wb$)-9a^@;O?80(ALO{Dq?@}5Er0wcfMV0~mitz;y$4UqM z)vRdjR9^Jt@S)N0lyrlAlae0Tm@+_Q0s;bXjvHQm7SfV84T-kf_7=hMgZiHB^H@eC z_)}lCw3No&<1F#9B-cA1ugo8KvIrs~qJK8Fwnr$hn;e$Y>oKR=xEa`1imlfE0+Ywr z!1~Y|!t7j<>nxZu2->bY)sArlv6n*RU@Gtez=zh=($S$Cft7b9x6zRJqqg&B5@$ma zge!3hVk$`chh0;N@B}z_>y}|_q0xN);H$A#lXiWbGTxkBo8|Dhy~KR*{^*ujt|~&8 z7DdfUf0jDsTyaym`QkBI>19?94Lk0i&|?jz&oFs?x~){HW|0O*gl%{Ql11dsNoLVP z8wCUekmu}Wj^@nFpOsDDAMEe*s5CLkoXWrL({fSKltUvAV z@9(;~OifKKB}NTr+C`r8z0!kd8h9T-Ddr{kQX^awhIpYwMbL}fu~$4jU-{;aM4CL- zUuMYRZp9O7`bjXYyZDwVZi#n^JJQK(w_3+%z~=iWp=SB=?m4~M-lLh$7(sRU5jA|+ zDl+hGhK#wIPVZPI35&x3K6V-VmXUl=S!C7R0wo{O)!mvS7G;IhGjbqU1Pg!;tq=tz zD+vxWQL(l@pr)pFq~xfLEPKSFRb&#c6{I95&qp~QmbBtvKZ-D*M4$OkQ_A}Kgv~e) zTRvzN{0!K^(~&q*JQ7|Psy&mQV483Hemk=9V5lVnL@?%XGJBT-1!nNbrMbvIuXDu0 zu7rLCK-^hBE7n;OgNQCC-XZp;r+TS;c{}c&@S%nP+oly%QD66O3;+sfe;wUaMcx&t z)p@Mv4{k1qG(Za$0*E%J8c5e|hH;mN-Yd(nSm#gYeB0f3SFLu9K@umRqd?uPVg8=*G*G2)tM>_|Hi-w0s z(gG~1C@QVe(o+8AD(!zZ^_tz1eh} zlRftPye>%=LmB7Umw(D0a)%l#4NYgry`!)9|5l>RveoXYfY#;=)}=+gp^;ZpvEu{w zV!j*}Smyd;%#i-f%q-1^u(XGqKzVH%<~Lwdfu*K9Y*$$Fif1EUqo(H)=I7^`#f76w z0-eW`>0=Vc#K<;U9CP7?pZ!fnRJ5lo7FL#)Hg;XwunpJ$V8Ba=m7n$Vd{_3Xaozgz zpBF)z0TK)j<`=YFVu=y>bxv{gSAXA|gHQK7K|?og3&p~BEvRyXft~^S78q7tWo0I(gXf_K)ret*Y;V`5@lNqvs0kDPW?0VMCA1RQ=HI~ z6`arEfItAD0BpDQe35Lef!VxYtI1GQPtWbL?p732CIwIN*-C8yHth@~Bm|b0S7S6w zRYx$2s@V?GctXyJz-?}6Y1mzX?07i4=*f9|3lsM$PL*6&QV0M7<(s)nq}=3V!wdQx2ir z*D_jH=HcXWHmY+7?{GS`G%QY`9sk6ZaqYv;m7Z4 zW@cu&PN{>@vwT;Ifiq{!DI&z#gdSmh53R5=N74Nnt!ydv7KCKHWgGI&y`g}*!i**j&2AiGLm8k zf4qa(nxo+8jRLxaK>OHoX=&*bMpjThfkHwb_0kWfrLaG(DB0!06dVR_j&dn-?zl@2 z+-|8P)Ry63rK6%^S@rkNYV#vQLSM`M%IY->!{1*wIy~Q@L^EVU128%`c}6WnU7CZu zy}fZBh~Bsf8P!<&W?8Xc1+lXN!G?q1!or}fv|454CKAwVr(JMLS$H`sw{tA#Z;Ewc zCF%xf#6<8<3H`qdmqlCKXGj3Xe!lcpy>xg^e)hQvH_2agX>w+xc?zar#a?T+e`XV! z|IV0<%_N1>UR+jooHX|#FeZBD<_GMJpjum7+sx?GBq3T6_#2fHbUq>e=;-Ks3v=_7 zfYeLrJWEm@CnFT*a7+$WKTN<$2h+00e zLX6;X^7*nAr(mJHBHL=&{^E|=-&ubVR?-h`y9;yrO?M=}c6XUisDy>La0 zen${oa|PvdF1i@g| diff --git a/public/img/loading.gif b/public/img/loading.gif deleted file mode 100644 index 48ee52a3ada4aafd79ff4ab21e6909dee2e642d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1849 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 in b}function r(b,a,c){var d;if(b)if(N(b))for(d in b)"prototype"==d||"length"==d||"name"==d||b.hasOwnProperty&&!b.hasOwnProperty(d)||a.call(c,b[d],d);else if(b.forEach&&b.forEach!==r)b.forEach(a,c);else if(vb(b))for(d=0;d=0&&b.splice(c,1),a}function ca(b,a){if(za(b)||b&&b.$evalAsync&&b.$watch)throw Oa("cpws");if(a){if(b===a)throw Oa("cpi");if(H(b))for(var c=a.length=0;cd;d++)if(!ta(b[d],a[d]))return!1;return!0}}return!1}function Vb(){return T.securityPolicy&&T.securityPolicy.isActive||T.querySelector&&!(!T.querySelector("[ng-csp]")&&!T.querySelector("[data-ng-csp]"))}function cb(b,a){var c=2").append(b).html();try{return 3===b[0].nodeType?O(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+O(b)})}catch(d){return O(c)}}function Xb(b){try{return decodeURIComponent(b)}catch(a){}}function Yb(b){var c,d,a={};return r((b||"").split("&"),function(b){b&&(c=b.split("="),d=Xb(c[0]),v(d)&&(b=v(c[1])?Xb(c[1]):!0,a[d]?H(a[d])?a[d].push(b):a[d]=[a[d],b]:a[d]=b))}),a}function Zb(b){var a=[];return r(b,function(b,d){H(b)?r(b,function(b){a.push(va(d,!0)+(!0===b?"":"="+va(b,!0)))}):a.push(va(d,!0)+(!0===b?"":"="+va(b,!0)))}),a.length?a.join("&"):""}function xb(b){return va(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function va(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,a?"%20":"+")}function Uc(b,a){function c(a){a&&d.push(a)}var e,f,d=[b],g=["ng:app","ng-app","x-ng-app","data-ng-app"],h=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;r(g,function(a){g[a]=!0,c(T.getElementById(a)),a=a.replace(":","\\:"),b.querySelectorAll&&(r(b.querySelectorAll("."+a),c),r(b.querySelectorAll("."+a+"\\:"),c),r(b.querySelectorAll("["+a+"]"),c))}),r(d,function(a){if(!e){var b=h.exec(" "+a.className+" ");b?(e=a,f=(b[2]||"").replace(/\s+/g,",")):r(a.attributes,function(b){!e&&g[b.name]&&(e=a,f=b.value)})}}),e&&a(e,f?[f]:[])}function $b(b,a){var c=function(){if(b=z(b),b.injector()){var c=b[0]===T?"document":ga(b);throw Oa("btstrpd",c)}return a=a||[],a.unshift(["$provide",function(a){a.value("$rootElement",b)}]),a.unshift("ng"),c=ac(a),c.invoke(["$rootScope","$rootElement","$compile","$injector","$animate",function(a,b,c,d){a.$apply(function(){b.data("$injector",d),c(b)(a)})}]),c},d=/^NG_DEFER_BOOTSTRAP!/;return C&&!d.test(C.name)?c():(C.name=C.name.replace(d,""),void(Ba.resumeBootstrap=function(b){r(b,function(b){a.push(b)}),c()}))}function db(b,a){return a=a||"_",b.replace(Vc,function(b,d){return(d?a:"")+b.toLowerCase()})}function yb(b,a,c){if(!b)throw Oa("areq",a||"?",c||"required");return b}function Qa(b,a,c){return c&&H(b)&&(b=b[b.length-1]),yb(N(b),a,"not a function, got "+(b&&"object"==typeof b?b.constructor.name||"Object":typeof b)),b}function wa(b,a){if("hasOwnProperty"===b)throw Oa("badname",a)}function bc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,g=0;f>g;g++)d=a[g],b&&(b=(e=b)[d]);return!c&&N(b)?cb(e,b):b}function zb(b){var a=b[0];if(b=b[b.length-1],a===b)return z(a);var c=[a];do{if(a=a.nextSibling,!a)break;c.push(a)}while(a!==b);return z(c)}function Wc(b){var a=E("$injector"),c=E("ng");return b=b.angular||(b.angular={}),b.$$minErr=b.$$minErr||E,b.module||(b.module=function(){var b={};return function(e,f,g){if("hasOwnProperty"===e)throw c("badname","module");return f&&b.hasOwnProperty(e)&&(b[e]=null),b[e]||(b[e]=function(){function b(a,d,e){return function(){return c[e||"push"]([a,d,arguments]),m}}if(!f)throw a("nomod",e);var c=[],d=[],l=b("$injector","invoke"),m={_invokeQueue:c,_runBlocks:d,requires:f,name:e,provider:b("$provide","provider"),factory:b("$provide","factory"),service:b("$provide","service"),value:b("$provide","value"),constant:b("$provide","constant","unshift"),animation:b("$animateProvider","register"),filter:b("$filterProvider","register"),controller:b("$controllerProvider","register"),directive:b("$compileProvider","directive"),config:l,run:function(a){return d.push(a),this}};return g&&l(g),m}())}}())}function Ra(b){return b.replace(Xc,function(a,b,d,e){return e?d.toUpperCase():d}).replace(Yc,"Moz$1")}function Ab(b,a,c,d){function e(b){var k,l,m,p,q,A,e=c&&b?[this.filter(b)]:[this],n=a;if(!d||null!=b)for(;e.length;)for(k=e.shift(),l=0,m=k.length;m>l;l++)for(p=z(k[l]),n?p.triggerHandler("$destroy"):n=!n,q=0,p=(A=p.children()).length;p>q;q++)e.push(Ca(A[q]));return f.apply(this,arguments)}var f=Ca.fn[b],f=f.$original||f;e.$original=f,Ca.fn[b]=e}function R(b){if(b instanceof R)return b;if(D(b)&&(b=da(b)),!(this instanceof R)){if(D(b)&&"<"!=b.charAt(0))throw Bb("nosel");return new R(b)}if(D(b)){var a=T.createElement("div");a.innerHTML="
 
"+b,a.removeChild(a.firstChild),Cb(this,a.childNodes),z(T.createDocumentFragment()).append(this)}else Cb(this,b)}function Db(b){return b.cloneNode(!0)}function Da(b){cc(b);var a=0;for(b=b.childNodes||[];ad;d++)if((c=b.data(a[d]))!==s)return c;b=b.parent()}}function gc(b){for(var a=0,c=b.childNodes;a=P?(c.preventDefault=null,c.stopPropagation=null,c.isDefaultPrevented=null):(delete c.preventDefault,delete c.stopPropagation,delete c.isDefaultPrevented)};return c.elem=b,c}function Ea(b){var c,a=typeof b;return"object"==a&&null!==b?"function"==typeof(c=b.$$hashKey)?c=b.$$hashKey():c===s&&(c=b.$$hashKey=$a()):c=b,a+":"+c}function Ta(b){r(b,this.put,this)}function jc(b){var a,c;return"function"==typeof b?(a=b.$inject)||(a=[],b.length&&(c=b.toString().replace(ad,""),c=c.match(bd),r(c[1].split(cd),function(b){b.replace(dd,function(b,c,d){a.push(d)})})),b.$inject=a):H(b)?(c=b.length-1,Qa(b[c],"fn"),a=b.slice(0,c)):Qa(b,"fn",!0),a}function ac(b){function a(a){return function(b,c){return Z(b)?void r(b,Rb(a)):a(b,c)}}function c(a,b){if(wa(a,"service"),(N(b)||H(b))&&(b=m.instantiate(b)),!b.$get)throw Ua("pget",a);return l[a+h]=b}function d(a,b){return c(a,{$get:b})}function e(a){var c,d,f,h,b=[];return r(a,function(a){if(!k.get(a)){k.put(a,!0);try{if(D(a))for(c=Va(a),b=b.concat(e(c.requires)).concat(c._runBlocks),d=c._invokeQueue,f=0,h=d.length;h>f;f++){var g=d[f],n=m.get(g[0]);n[g[1]].apply(n,g[2])}else N(a)?b.push(m.invoke(a)):H(a)?b.push(m.invoke(a)):Qa(a,"module")}catch(q){throw H(a)&&(a=a[a.length-1]),q.message&&q.stack&&-1==q.stack.indexOf(q.message)&&(q=q.message+"\n"+q.stack),Ua("modulerr",a,q.stack||q.message||q)}}}),b}function f(a,b){function c(d){if(a.hasOwnProperty(d)){if(a[d]===g)throw Ua("cdep",n.join(" <- "));return a[d]}try{return n.unshift(d),a[d]=g,a[d]=b(d)}catch(e){throw a[d]===g&&delete a[d],e}finally{n.shift()}}function d(a,b,e){var g,n,k,f=[],h=jc(a);for(n=0,g=h.length;g>n;n++){if(k=h[n],"string"!=typeof k)throw Ua("itkn",k);f.push(e&&e.hasOwnProperty(k)?e[k]:c(k))}return a.$inject||(a=a[g]),a.apply(b,f)}return{invoke:d,instantiate:function(a,b){var e,c=function(){};return c.prototype=(H(a)?a[a.length-1]:a).prototype,c=new c,e=d(a,c,b),Z(e)||N(e)?e:c},get:c,annotate:jc,has:function(b){return l.hasOwnProperty(b+h)||a.hasOwnProperty(b)}}}var g={},h="Provider",n=[],k=new Ta,l={$provide:{provider:a(c),factory:a(d),service:a(function(a,b){return d(a,["$injector",function(a){return a.instantiate(b)}])}),value:a(function(a,b){return d(a,aa(b))}),constant:a(function(a,b){wa(a,"constant"),l[a]=b,p[a]=b}),decorator:function(a,b){var c=m.get(a+h),d=c.$get;c.$get=function(){var a=q.invoke(d,c);return q.invoke(b,null,{$delegate:a})}}}},m=l.$injector=f(l,function(){throw Ua("unpr",n.join(" <- "))}),p={},q=p.$injector=f(p,function(a){return a=m.get(a+h),q.invoke(a.$get,a)});return r(e(b),function(a){q.invoke(a||w)}),q}function ed(){var b=!0;this.disableAutoScrolling=function(){b=!1},this.$get=["$window","$location","$rootScope",function(a,c,d){function e(a){var b=null;return r(a,function(a){b||"a"!==O(a.nodeName)||(b=a)}),b}function f(){var d,b=c.hash();b?(d=g.getElementById(b))?d.scrollIntoView():(d=e(g.getElementsByName(b)))?d.scrollIntoView():"top"===b&&a.scrollTo(0,0):a.scrollTo(0,0)}var g=a.document;return b&&d.$watch(function(){return c.hash()},function(){d.$evalAsync(f)}),f}]}function fd(b,a,c,d){function e(a){try{a.apply(null,ua.call(arguments,1))}finally{if(A--,0===A)for(;B.length;)try{B.pop()()}catch(b){c.error(b)}}}function f(a,b){!function kb(){r(I,function(a){a()}),u=b(kb,a)}()}function g(){y=null,G!=h.url()&&(G=h.url(),r(Y,function(a){a(h.url())}))}var h=this,n=a[0],k=b.location,l=b.history,m=b.setTimeout,p=b.clearTimeout,q={};h.isMock=!1;var A=0,B=[];h.$$completeOutstandingRequest=e,h.$$incOutstandingRequestCount=function(){A++},h.notifyWhenNoOutstandingRequests=function(a){r(I,function(a){a()}),0===A?a():B.push(a)};var u,I=[];h.addPollFn=function(a){return x(u)&&f(100,m),I.push(a),a};var G=k.href,W=a.find("base"),y=null;h.url=function(a,c){return k!==b.location&&(k=b.location),l!==b.history&&(l=b.history),a?G!=a?(G=a,d.history?c?l.replaceState(null,"",a):(l.pushState(null,"",a),W.attr("href",W.attr("href"))):(y=a,c?k.replace(a):k.href=a),h):void 0:y||k.href.replace(/%27/g,"'")};var Y=[],S=!1;h.onUrlChange=function(a){return S||(d.history&&z(b).on("popstate",g),d.hashchange?z(b).on("hashchange",g):h.addPollFn(g),S=!0),Y.push(a),a},h.baseHref=function(){var a=W.attr("href");return a?a.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var L={},ba="",U=h.baseHref();h.cookies=function(a,b){var d,e,f,h;if(!a){if(n.cookie!==ba)for(ba=n.cookie,d=ba.split("; "),L={},f=0;f0&&(a=unescape(e.substring(0,h)),L[a]===s&&(L[a]=unescape(e.substring(h+1))));return L}b===s?n.cookie=escape(a)+"=;path="+U+";expires=Thu, 01 Jan 1970 00:00:00 GMT":D(b)&&(d=(n.cookie=escape(a)+"="+escape(b)+";path="+U).length+1,d>4096&&c.warn("Cookie '"+a+"' possibly not set or overflowed because it was too large ("+d+" > 4096 bytes)!"))},h.defer=function(a,b){var c;return A++,c=m(function(){delete q[c],e(a)},b||0),q[c]=!0,c},h.defer.cancel=function(a){return q[a]?(delete q[a],p(a),e(w),!0):!1}}function gd(){this.$get=["$window","$log","$sniffer","$document",function(b,a,c,d){return new fd(b,d,a,c)}]}function hd(){this.$get=function(){function b(b,d){function e(a){a!=m&&(p?p==a&&(p=a.n):p=a,f(a.n,a.p),f(a,m),m=a,m.n=null)}function f(a,b){a!=b&&(a&&(a.p=b),b&&(b.n=a))}if(b in a)throw E("$cacheFactory")("iid",b);var g=0,h=t({},d,{id:b}),n={},k=d&&d.capacity||Number.MAX_VALUE,l={},m=null,p=null;return a[b]={put:function(a,b){var c=l[a]||(l[a]={key:a});return e(c),x(b)?void 0:(a in n||g++,n[a]=b,g>k&&this.remove(p.key),b)},get:function(a){var b=l[a];return b?(e(b),n[a]):void 0},remove:function(a){var b=l[a];b&&(b==m&&(m=b.p),b==p&&(p=b.n),f(b.n,b.p),delete l[a],delete n[a],g--)},removeAll:function(){n={},g=0,l={},m=p=null},destroy:function(){l=h=n=null,delete a[b]},info:function(){return t({},h,{size:g})}}}var a={};return b.info=function(){var b={};return r(a,function(a,e){b[e]=a.info()}),b},b.get=function(b){return a[b]},b}}function id(){this.$get=["$cacheFactory",function(b){return b("templates")}]}function kc(b,a){var c={},d="Directive",e=/^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,f=/(([\d\w\-_]+)(?:\:([^;]+))?;?)/,g=/^<\s*(tr|th|td|tbody)(\s+[^>]*)?>/i,h=/^(on[a-z]+|formaction)$/;this.directive=function k(a,e){return wa(a,"directive"),D(a)?(yb(e,"directiveFactory"),c.hasOwnProperty(a)||(c[a]=[],b.factory(a+d,["$injector","$exceptionHandler",function(b,d){var e=[];return r(c[a],function(c,f){try{var h=b.invoke(c);N(h)?h={compile:aa(h)}:!h.compile&&h.link&&(h.compile=aa(h.link)),h.priority=h.priority||0,h.index=f,h.name=h.name||a,h.require=h.require||h.controller&&h.name,h.restrict=h.restrict||"A",e.push(h)}catch(g){d(g)}}),e}])),c[a].push(e)):r(a,Rb(k)),this},this.aHrefSanitizationWhitelist=function(b){return v(b)?(a.aHrefSanitizationWhitelist(b),this):a.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(b){return v(b)?(a.imgSrcSanitizationWhitelist(b),this):a.imgSrcSanitizationWhitelist()},this.$get=["$injector","$interpolate","$exceptionHandler","$http","$templateCache","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(a,b,m,p,q,A,B,I,u,G,W,y){function Y(a,b,c,d,e){a instanceof z||(a=z(a)),r(a,function(b,c){3==b.nodeType&&b.nodeValue.match(/\S+/)&&(a[c]=z(b).wrap("").parent()[0])});var f=L(a,b,a,c,d,e);return S(a,"ng-scope"),function(b,c,d){yb(b,"scope");var e=c?Fa.clone.call(a):a;r(d,function(a,b){e.data("$"+b+"Controller",a)}),d=0;for(var h=e.length;h>d;d++){var g=e[d].nodeType;1!==g&&9!==g||e.eq(d).data("$scope",b)}return c&&c(e,b),f&&f(b,e,e),e}}function S(a,b){try{a.addClass(b)}catch(c){}}function L(a,b,c,d,e,f){function h(a,c,d,e){var f,k,q,l,m,p,K;f=c.length;var A=Array(f);for(m=0;f>m;m++)A[m]=c[m];for(K=m=0,p=g.length;p>m;K++)k=A[K],c=g[m++],f=g[m++],q=z(k),c?(c.scope?(l=a.$new(),q.data("$scope",l)):l=a,(q=c.transclude)||!e&&b?c(f,l,k,d,ba(a,q||b)):c(f,l,k,d,e)):f&&f(a,k.childNodes,s,e)}for(var k,q,l,m,g=[],p=0;pp;p++){var B=!1,G=!1;if(q=k[p],!P||P>=8||q.specified){l=q.name,m=la(l),pa.test(m)&&(l=db(m.substr(6),"-"));var I=m.replace(/(Start|End)$/,"");m===I+"Start"&&(B=l,G=l.substr(0,l.length-5)+"end",l=l.substr(0,l.length-6)),m=la(l.toLowerCase()),g[m]=l,c[m]=q=da(q.value),hc(a,m)&&(c[m]=!0),ha(a,b,q,m),v(b,m,"A",d,h,B,G)}}if(a=a.className,D(a)&&""!==a)for(;k=f.exec(a);)m=la(k[2]),v(b,m,"C",d,h)&&(c[m]=da(k[3])),a=a.substr(k.index+k[0].length);break;case 3:C(b,a.nodeValue);break;case 8:try{(k=e.exec(a.nodeValue))&&(m=la(k[1]),v(b,m,"M",d,h)&&(c[m]=da(k[2])))}catch(y){}}return b.sort(E),b}function M(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw ia("uterdir",b,c);1==a.nodeType&&(a.hasAttribute(b)&&e++,a.hasAttribute(c)&&e--),d.push(a),a=a.nextSibling}while(e>0)}else d.push(a);return z(d)}function jb(a,b,c){return function(d,e,f,h,g){return e=M(e[0],b,c),a(d,e,f,h,g)}}function Wa(a,c,d,e,f,h,g,k,q){function p(a,b,c,d){a&&(c&&(a=jb(a,c,d)),a.require=F.require,(L===F||F.$$isolateScope)&&(a=lc(a,{isolateScope:!0})),g.push(a)),b&&(c&&(b=jb(b,c,d)),b.require=F.require,(L===F||F.$$isolateScope)&&(b=lc(b,{isolateScope:!0})),k.push(b))}function G(a,b,c){var d,e="data",f=!1;if(D(a)){for(;"^"==(d=a.charAt(0))||"?"==d;)a=a.substr(1),"^"==d&&(e="inheritedData"),f=f||"?"==d;if(d=null,c&&"data"===e&&(d=c[a]),d=d||b[e]("$"+a+"Controller"),!d&&!f)throw ia("ctreq",a,ha)}else H(a)&&(d=[],r(a,function(a){d.push(G(a,b,c))}));return d}function I(a,e,f,h,q){function p(a,b){var c;return 2>arguments.length&&(b=a,a=s),Ha&&(c=lb),q(a,b,c)}var K,y,u,Y,M,U,v,lb={};if(K=c===f?d:Ub(d,new Gb(z(f),d.$attr)),y=K.$$element,L){var t=/^\s*([@=&])(\??)\s*(\w*)\s*$/;h=z(f),U=e.$new(!0),ba&&ba===L.$$originalDirective?h.data("$isolateScope",U):h.data("$isolateScopeNoTemplate",U),S(h,"ng-isolate-scope"),r(L.scope,function(a,c){var g,k,q,m,d=a.match(t)||[],f=d[3]||c,h="?"==d[2],d=d[1];switch(U.$$isolateBindings[c]=d+f,d){case"@":K.$observe(f,function(a){U[c]=a}),K.$$observers[f].$$scope=e,K[f]&&(U[c]=b(K[f])(e));break;case"=":if(h&&!K[f])break;k=A(K[f]),m=k.literal?ta:function(a,b){return a===b},q=k.assign||function(){throw g=U[c]=k(e),ia("nonassign",K[f],L.name)},g=U[c]=k(e),U.$watch(function(){var a=k(e);return m(a,U[c])||(m(a,g)?q(e,a=U[c]):U[c]=a),g=a},null,k.literal);break;case"&":k=A(K[f]),U[c]=function(a){return k(e,a)};break;default:throw ia("iscp",L.name,c,a)}})}for(v=q&&p,W&&r(W,function(a){var c,b={$scope:a===L||a.$$isolateScope?U:e,$element:y,$attrs:K,$transclude:v};M=a.controller,"@"==M&&(M=K[a.name]),c=B(M,b),lb[a.name]=c,Ha||y.data("$"+a.name+"Controller",c),a.controllerAs&&(b.$scope[a.controllerAs]=c)}),h=0,u=g.length;u>h;h++)try{(Y=g[h])(Y.isolateScope?U:e,y,K,Y.require&&G(Y.require,y,lb),v)}catch(J){m(J,ga(y))}for(h=e,L&&(L.template||null===L.templateUrl)&&(h=U),a&&a(h,f.childNodes,s,q),h=k.length-1;h>=0;h--)try{(Y=k[h])(Y.isolateScope?U:e,y,K,Y.require&&G(Y.require,y,lb),v)}catch(jb){m(jb,ga(y))}}q=q||{};for(var u,F,ha,t,pa,y=-Number.MAX_VALUE,W=q.controllerDirectives,L=q.newIsolateScopeDirective,ba=q.templateDirective,v=q.nonTlbTranscludeDirective,Wa=!1,Ha=q.hasElementTranscludeDirective,J=d.$$element=z(c),E=e,C=0,P=a.length;P>C;C++){F=a[C];var Q=F.$$start,V=F.$$end;if(Q&&(J=M(c,Q,V)),t=s,y>F.priority)break;if((t=F.scope)&&(u=u||F,F.templateUrl||(R("new/isolated scope",L,F,J),Z(t)&&(L=F))),ha=F.name,!F.templateUrl&&F.controller&&(t=F.controller,W=W||{},R("'"+ha+"' controller",W[ha],F,J),W[ha]=F),(t=F.transclude)&&(Wa=!0,F.$$tlb||(R("transclusion",v,F,J),v=F),"element"==t?(Ha=!0,y=F.priority,t=M(c,Q,V),J=d.$$element=z(T.createComment(" "+ha+": "+d[ha]+" ")),c=J[0],mb(f,z(ua.call(t,0)),c),E=Y(t,e,y,h&&h.name,{nonTlbTranscludeDirective:v})):(t=z(Db(c)).contents(),J.empty(),E=Y(t,e))),F.template)if(R("template",ba,F,J),ba=F,t=N(F.template)?F.template(J,d):F.template,t=X(t),F.replace){if(h=F,t=x(t),c=t[0],1!=t.length||1!==c.nodeType)throw ia("tplrt",ha,"");mb(f,J,c),P={$attr:{}},t=U(c,[],P);var $=a.splice(C+1,a.length-(C+1));L&&kb(t),a=a.concat(t).concat($),w(d,P),P=a.length}else J.html(t);if(F.templateUrl)R("template",ba,F,J),ba=F,F.replace&&(h=F),I=O(a.splice(C,a.length-C),J,d,f,E,g,k,{controllerDirectives:W,newIsolateScopeDirective:L,templateDirective:ba,nonTlbTranscludeDirective:v}),P=a.length;else if(F.compile)try{pa=F.compile(J,d,E),N(pa)?p(null,pa,Q,V):pa&&p(pa.pre,pa.post,Q,V)}catch(aa){m(aa,ga(J))}F.terminal&&(I.terminal=!0,y=Math.max(y,F.priority))}return I.scope=u&&!0===u.scope,I.transclude=Wa&&E,q.hasElementTranscludeDirective=Ha,I}function kb(a){for(var b=0,c=a.length;c>b;b++)a[b]=Tb(a[b],{$$isolateScope:!0})}function v(b,e,f,h,g,q,l){if(e===g)return null;if(g=null,c.hasOwnProperty(e)){var p;e=a.get(e+d);for(var A=0,G=e.length;G>A;A++)try{p=e[A],(h===s||h>p.priority)&&-1!=p.restrict.indexOf(f)&&(q&&(p=Tb(p,{$$start:q,$$end:l})),b.push(p),g=p)}catch(B){m(B)}}return g}function w(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;r(a,function(d,e){"$"!=e.charAt(0)&&(b[e]&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))}),r(b,function(b,f){"class"==f?(S(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):"style"==f?(e.attr("style",e.attr("style")+";"+b),a.style=(a.style?a.style+";":"")+b):"$"==f.charAt(0)||a.hasOwnProperty(f)||(a[f]=b,d[f]=c[f])})}function x(a){var b;if(a=da(a),b=g.exec(a)){b=b[1].toLowerCase(),a=z(""+a+"
");var c=a.children("tbody"),d=/(td|th)/.test(b)&&a.find("tr");return c.length&&"tbody"!==b&&(a=c),d&&d.length&&(a=d),a.contents()}return z("
"+a+"
").contents()}function O(a,b,c,d,e,f,h,g){var l,m,k=[],A=b[0],B=a.shift(),y=t({},B,{templateUrl:null,transclude:null,replace:null,$$originalDirective:B}),I=N(B.templateUrl)?B.templateUrl(b,c):B.templateUrl;return b.empty(),p.get(G.getTrustedResourceUrl(I),{cache:q}).success(function(q){var p,G;if(q=X(q),B.replace){if(q=x(q),p=q[0],1!=q.length||1!==p.nodeType)throw ia("tplrt",B.name,I);q={$attr:{}},mb(d,b,p);var u=U(p,[],q);Z(B.scope)&&kb(u),a=u.concat(a),w(c,q)}else p=A,b.html(q);for(a.unshift(y),l=Wa(a,p,c,e,b,B,f,h,g),r(d,function(a,c){a==p&&(d[c]=b[0])}),m=L(b[0].childNodes,e);k.length;){q=k.shift(),G=k.shift();var W=k.shift(),Y=k.shift(),u=b[0];if(G!==A){var M=G.className;g.hasElementTranscludeDirective&&B.replace||(u=Db(p)),mb(W,z(G),u),S(z(u),M)}G=l.transclude?ba(q,l.transclude):Y,l(m,q,u,d,G)}k=null}).error(function(a,b,c,d){throw ia("tpload",d.url)}),function(a,b,c,d,e){k?(k.push(b),k.push(c),k.push(d),k.push(e)):l(m,b,c,d,e)}}function E(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.nameh;h++)if(a[h]==d){a[h++]=c,g=h+e-1;for(var k=a.length;k>h;h++,g++)k>g?a[h]=a[g]:delete a[h];a.length-=e-1;break}for(f&&f.replaceChild(c,d),a=T.createDocumentFragment(),a.appendChild(d),c[z.expando]=d[z.expando],d=1,e=b.length;e>d;d++)f=b[d],z(f).remove(),a.appendChild(f),delete b[d];b[0]=c,b.length=1}function lc(a,b){return t(function(){return a.apply(null,arguments)},a,b)}var Gb=function(a,b){this.$$element=a,this.$attr=b||{}};Gb.prototype={$normalize:la,$addClass:function(a){a&&0a.status?b:m.reject(b)}var d={transformRequest:e.transformRequest,transformResponse:e.transformResponse},f=function(a){function b(a){var c;r(a,function(b,d){N(b)&&(c=b(),null!=c?a[d]=c:delete a[d])})}var f,h,c=e.headers,d=t({},a.headers),c=t({},c.common,c[O(a.method)]);b(c),b(d);a:for(f in c){a=O(f);for(h in d)if(O(h)===a)continue a;d[f]=c[f]}return d}(a);t(d,a),d.headers=f,d.method=Ia(d.method),(a=Hb(d.url)?b.cookies()[d.xsrfCookieName||e.xsrfCookieName]:s)&&(f[d.xsrfHeaderName||e.xsrfHeaderName]=a);var h=[function(a){f=a.headers;var b=pc(a.data,oc(f),a.transformRequest);return x(a.data)&&r(f,function(a,b){"content-type"===O(b)&&delete f[b]}),x(a.withCredentials)&&!x(e.withCredentials)&&(a.withCredentials=e.withCredentials),A(a,b,f).then(c,c)},s],g=m.when(d);for(r(u,function(a){(a.request||a.requestError)&&h.unshift(a.request,a.requestError),(a.response||a.responseError)&&h.push(a.response,a.responseError)});h.length;){a=h.shift();var k=h.shift(),g=g.then(a,k)}return g.success=function(a){return g.then(function(b){a(b.data,b.status,b.headers,d)}),g},g.error=function(a){return g.then(null,function(b){a(b.data,b.status,b.headers,d)}),g},g}function A(b,c,f){function g(a,b,c){u&&(a>=200&&300>a?u.put(s,[a,b,nc(c)]):u.remove(s)),k(b,a,c),d.$$phase||d.$apply()}function k(a,c,d){c=Math.max(c,0),(c>=200&&300>c?p.resolve:p.reject)({data:a,status:c,headers:oc(d),config:b})}function n(){var a=bb(q.pendingRequests,b);-1!==a&&q.pendingRequests.splice(a,1)}var u,r,p=m.defer(),A=p.promise,s=B(b.url,b.params);if(q.pendingRequests.push(b),A.then(n,n),(b.cache||e.cache)&&!1!==b.cache&&"GET"==b.method&&(u=Z(b.cache)?b.cache:Z(e.cache)?e.cache:I),u)if(r=u.get(s),v(r)){if(r.then)return r.then(n,n),r;H(r)?k(r[1],r[0],ca(r[2])):k(r,200,{})}else u.put(s,A);return x(r)&&a(b.method,s,c,g,f,b.timeout,b.withCredentials,b.responseType),A}function B(a,b){if(!b)return a; -var c=[];return Qc(b,function(a,b){null===a||x(a)||(H(a)||(a=[a]),r(a,function(a){Z(a)&&(a=oa(a)),c.push(va(b)+"="+va(a))}))}),a+(-1==a.indexOf("?")?"?":"&")+c.join("&")}var I=c("$http"),u=[];return r(f,function(a){u.unshift(D(a)?p.get(a):p.invoke(a))}),r(g,function(a,b){var c=D(a)?p.get(a):p.invoke(a);u.splice(b,0,{response:function(a){return c(m.when(a))},responseError:function(a){return c(m.reject(a))}})}),q.pendingRequests=[],function(){r(arguments,function(a){q[a]=function(b,c){return q(t(c||{},{method:a,url:b}))}})}("get","delete","head","jsonp"),function(){r(arguments,function(a){q[a]=function(b,c,d){return q(t(d||{},{method:a,url:b,data:c}))}})}("post","put"),q.defaults=e,q}]}function od(b){if(8>=P&&(!b.match(/^(get|post|head|put|delete|options)$/i)||!C.XMLHttpRequest))return new C.ActiveXObject("Microsoft.XMLHTTP");if(C.XMLHttpRequest)return new C.XMLHttpRequest;throw E("$httpBackend")("noxhr")}function pd(){this.$get=["$browser","$window","$document",function(b,a,c){return qd(b,od,b.defer,a.angular.callbacks,c[0])}]}function qd(b,a,c,d,e){function f(a,b){var c=e.createElement("script"),d=function(){c.onreadystatechange=c.onload=c.onerror=null,e.body.removeChild(c),b&&b()};return c.type="text/javascript",c.src=a,P&&8>=P?c.onreadystatechange=function(){/loaded|complete/.test(c.readyState)&&d()}:c.onload=c.onerror=function(){d()},e.body.appendChild(c),d}var g=-1;return function(e,n,k,l,m,p,q,A){function B(){u=g,W&&W(),y&&y.abort()}function I(a,d,e,f){S&&c.cancel(S),W=y=null,d=0===d?e?200:404:d,a(1223==d?204:d,e,f),b.$$completeOutstandingRequest(w)}var u;if(b.$$incOutstandingRequestCount(),n=n||b.url(),"jsonp"==O(e)){var G="_"+(d.counter++).toString(36);d[G]=function(a){d[G].data=a};var W=f(n.replace("JSON_CALLBACK","angular.callbacks."+G),function(){d[G].data?I(l,200,d[G].data):I(l,u||-2),d[G]=Ba.noop})}else{var y=a(e);if(y.open(e,n,!0),r(m,function(a,b){v(a)&&y.setRequestHeader(b,a)}),y.onreadystatechange=function(){if(y&&4==y.readyState){var a=null,b=null;u!==g&&(a=y.getAllResponseHeaders(),b="response"in y?y.response:y.responseText),I(l,u||y.status,b,a)}},q&&(y.withCredentials=!0),A)try{y.responseType=A}catch(Y){if("json"!==A)throw Y}y.send(k||null)}if(p>0)var S=c(B,p);else p&&p.then&&p.then(B)}}function rd(){var b="{{",a="}}";this.startSymbol=function(a){return a?(b=a,this):b},this.endSymbol=function(b){return b?(a=b,this):a},this.$get=["$parse","$exceptionHandler","$sce",function(c,d,e){function f(f,k,l){for(var m,p,q=0,A=[],B=f.length,I=!1,u=[];B>q;)-1!=(m=f.indexOf(b,q))&&-1!=(p=f.indexOf(a,m+g))?(q!=m&&A.push(f.substring(q,m)),A.push(q=c(I=f.substring(m+g,p))),q.exp=I,q=p+h,I=!0):(q!=B&&A.push(f.substring(q)),q=B);if((B=A.length)||(A.push(""),B=1),l&&1b;b++)"function"==typeof(h=A[b])&&(h=h(a),h=l?e.getTrusted(l,h):e.valueOf(h),null===h||x(h)?h="":"string"!=typeof h&&(h=oa(h))),u[b]=h;return u.join("")}catch(g){a=qc("interr",f,g.toString()),d(a)}},q.exp=f,q.parts=A,q):void 0}var g=b.length,h=a.length;return f.startSymbol=function(){return b},f.endSymbol=function(){return a},f}]}function sd(){this.$get=["$rootScope","$window","$q",function(b,a,c){function d(d,g,h,n){var k=a.setInterval,l=a.clearInterval,m=c.defer(),p=m.promise,q=0,A=v(n)&&!n;return h=v(h)?h:0,p.then(null,null,d),p.$$intervalId=k(function(){m.notify(q++),h>0&&q>=h&&(m.resolve(q),l(p.$$intervalId),delete e[p.$$intervalId]),A||b.$apply()},g),e[p.$$intervalId]=m,p}var e={};return d.cancel=function(a){return a&&a.$$intervalId in e?(e[a.$$intervalId].reject("canceled"),clearInterval(a.$$intervalId),delete e[a.$$intervalId],!0):!1},d}]}function td(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"¤",posSuf:"",negPre:"(¤",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January February March April May June July August September October November December".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(b){return 1===b?"one":"other"}}}}function rc(b){b=b.split("/");for(var a=b.length;a--;)b[a]=xb(b[a]);return b.join("/")}function sc(b,a,c){b=xa(b,c),a.$$protocol=b.protocol,a.$$host=b.hostname,a.$$port=Q(b.port)||ud[b.protocol]||null}function tc(b,a,c){var d="/"!==b.charAt(0);d&&(b="/"+b),b=xa(b,c),a.$$path=decodeURIComponent(d&&"/"===b.pathname.charAt(0)?b.pathname.substring(1):b.pathname),a.$$search=Yb(b.search),a.$$hash=decodeURIComponent(b.hash),a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function ma(b,a){return 0===a.indexOf(b)?a.substr(b.length):void 0}function Xa(b){var a=b.indexOf("#");return-1==a?b:b.substr(0,a)}function Ib(b){return b.substr(0,Xa(b).lastIndexOf("/")+1)}function uc(b,a){this.$$html5=!0,a=a||"";var c=Ib(b);sc(b,this,b),this.$$parse=function(a){var e=ma(c,a);if(!D(e))throw Jb("ipthprfx",a,c);tc(e,this,b),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var a=Zb(this.$$search),b=this.$$hash?"#"+xb(this.$$hash):"";this.$$url=rc(this.$$path)+(a?"?"+a:"")+b,this.$$absUrl=c+this.$$url.substr(1)},this.$$rewrite=function(d){var e;return(e=ma(b,d))!==s?(d=e,(e=ma(a,e))!==s?c+(ma("/",e)||e):b+d):(e=ma(c,d))!==s?c+e:c==d+"/"?c:void 0}}function Kb(b,a){var c=Ib(b);sc(b,this,b),this.$$parse=function(d){var e=ma(b,d)||ma(c,d),e="#"==e.charAt(0)?ma(a,e):this.$$html5?e:"";if(!D(e))throw Jb("ihshprfx",d,a);tc(e,this,b),d=this.$$path;var f=/^\/?.*?:(\/.*)/;0===e.indexOf(b)&&(e=e.replace(b,"")),f.exec(e)||(d=(e=f.exec(d))?e[1]:d),this.$$path=d,this.$$compose()},this.$$compose=function(){var c=Zb(this.$$search),e=this.$$hash?"#"+xb(this.$$hash):"";this.$$url=rc(this.$$path)+(c?"?"+c:"")+e,this.$$absUrl=b+(this.$$url?a+this.$$url:"")},this.$$rewrite=function(a){return Xa(b)==Xa(a)?a:void 0}}function vc(b,a){this.$$html5=!0,Kb.apply(this,arguments);var c=Ib(b);this.$$rewrite=function(d){var e;return b==Xa(d)?d:(e=ma(c,d))?b+a+e:c===d+"/"?c:void 0}}function nb(b){return function(){return this[b]}}function wc(b,a){return function(c){return x(c)?this[b]:(this[b]=a(c),this.$$compose(),this)}}function vd(){var b="",a=!1;this.hashPrefix=function(a){return v(a)?(b=a,this):b},this.html5Mode=function(b){return v(b)?(a=b,this):a},this.$get=["$rootScope","$browser","$sniffer","$rootElement",function(c,d,e,f){function g(a){c.$broadcast("$locationChangeSuccess",h.absUrl(),a)}var h,n=d.baseHref(),k=d.url();a?(n=k.substring(0,k.indexOf("/",k.indexOf("//")+2))+(n||"/"),e=e.history?uc:vc):(n=Xa(k),e=Kb),h=new e(n,"#"+b),h.$$parse(h.$$rewrite(k)),f.on("click",function(a){if(!a.ctrlKey&&!a.metaKey&&2!=a.which){for(var b=z(a.target);"a"!==O(b[0].nodeName);)if(b[0]===f[0]||!(b=b.parent())[0])return;var e=b.prop("href");Z(e)&&"[object SVGAnimatedString]"===e.toString()&&(e=xa(e.animVal).href);var g=h.$$rewrite(e);e&&!b.attr("target")&&g&&!a.isDefaultPrevented()&&(a.preventDefault(),g!=d.url()&&(h.$$parse(g),c.$apply(),C.angular["ff-684208-preventDefault"]=!0))}}),h.absUrl()!=k&&d.url(h.absUrl(),!0),d.onUrlChange(function(a){h.absUrl()!=a&&(c.$evalAsync(function(){var b=h.absUrl();h.$$parse(a),c.$broadcast("$locationChangeStart",a,b).defaultPrevented?(h.$$parse(b),d.url(b)):g(b)}),c.$$phase||c.$digest())});var l=0;return c.$watch(function(){var a=d.url(),b=h.$$replace;return l&&a==h.absUrl()||(l++,c.$evalAsync(function(){c.$broadcast("$locationChangeStart",h.absUrl(),a).defaultPrevented?h.$$parse(a):(d.url(h.absUrl(),b),g(a))})),h.$$replace=!1,l}),h}]}function wd(){var b=!0,a=this;this.debugEnabled=function(a){return v(a)?(b=a,this):b},this.$get=["$window",function(c){function d(a){return a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line)),a}function e(a){var b=c.console||{},e=b[a]||b.log||w;a=!1;try{a=!!e.apply}catch(n){}return a?function(){var a=[];return r(arguments,function(b){a.push(d(b))}),e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function ea(b,a){if("constructor"===b)throw ya("isecfld",a);return b}function Ya(b,a){if(b){if(b.constructor===b)throw ya("isecfn",a);if(b.document&&b.location&&b.alert&&b.setInterval)throw ya("isecwindow",a);if(b.children&&(b.nodeName||b.on&&b.find))throw ya("isecdom",a)}return b}function ob(b,a,c,d,e){e=e||{},a=a.split(".");for(var f,g=0;1e?xc(d[0],d[1],d[2],d[3],d[4],c,a):function(b,f){var g,h=0;do g=xc(d[h++],d[h++],d[h++],d[h++],d[h++],c,a)(b,f),f=s,b=g;while(e>h);return g};else{var g="var p;\n";r(d,function(b,d){ea(b,c),g+="if(s == null) return undefined;\ns="+(d?"s":'((k&&k.hasOwnProperty("'+b+'"))?k:s)')+'["'+b+'"];\n'+(a.unwrapPromises?'if (s && s.then) {\n pw("'+c.replace(/(["\r\n])/g,"\\$1")+'");\n if (!("$$v" in s)) {\n p=s;\n p.$$v = undefined;\n p.then(function(v) {p.$$v=v;});\n}\n s=s.$$v\n}\n':"")});var g=g+"return s;",h=new Function("s","k","pw",g);h.toString=aa(g),f=a.unwrapPromises?function(a,b){return h(a,b,qa)}:h}else f=yd(d[0],d[1],c);else f=xd(d[0],c);return"hasOwnProperty"!==b&&(Lb[b]=f),f}function zd(){var b={},a={csp:!1,unwrapPromises:!1,logPromiseWarnings:!0};this.unwrapPromises=function(b){return v(b)?(a.unwrapPromises=!!b,this):a.unwrapPromises},this.logPromiseWarnings=function(b){return v(b)?(a.logPromiseWarnings=b,this):a.logPromiseWarnings},this.$get=["$filter","$sniffer","$log",function(c,d,e){return a.csp=d.csp,qa=function(b){a.logPromiseWarnings&&!zc.hasOwnProperty(b)&&(zc[b]=!0,e.warn("[$parse] Promise found in the expression `"+b+"`. Automatic unwrapping of promises in Angular expressions is deprecated."))},function(d){var e;switch(typeof d){case"string":return b.hasOwnProperty(d)?b[d]:(e=new Mb(a),e=new Za(e,c,a).parse(d,!1),"hasOwnProperty"!==d&&(b[d]=e),e);case"function":return d;default:return w}}}]}function Ad(){this.$get=["$rootScope","$exceptionHandler",function(b,a){return Bd(function(a){b.$evalAsync(a)},a)}]}function Bd(b,a){function c(a){return a}function d(a){return g(a)}var e=function(){var k,l,g=[];return l={resolve:function(a){if(g){var c=g;g=s,k=f(a),c.length&&b(function(){for(var a,b=0,d=c.length;d>b;b++)a=c[b],k.then(a[0],a[1],a[2])})}},reject:function(a){l.resolve(h(a))},notify:function(a){if(g){var c=g;g.length&&b(function(){for(var b,d=0,e=c.length;e>d;d++)b=c[d],b[2](a)})}},promise:{then:function(b,f,h){var l=e(),B=function(d){try{l.resolve((N(b)?b:c)(d))}catch(e){l.reject(e),a(e)}},I=function(b){try{l.resolve((N(f)?f:d)(b))}catch(c){l.reject(c),a(c)}},u=function(b){try{l.notify((N(h)?h:c)(b))}catch(d){a(d)}};return g?g.push([B,I,u]):k.then(B,I,u),l.promise},"catch":function(a){return this.then(null,a)},"finally":function(a){function b(a,c){var d=e();return c?d.resolve(a):d.reject(a),d.promise}function d(e,f){var h=null;try{h=(a||c)()}catch(g){return b(g,!1)}return h&&N(h.then)?h.then(function(){return b(e,f)},function(a){return b(a,!1)}):b(e,f)}return this.then(function(a){return d(a,!0)},function(a){return d(a,!1)})}}}},f=function(a){return a&&N(a.then)?a:{then:function(c){var d=e();return b(function(){d.resolve(c(a))}),d.promise}}},g=function(a){var b=e();return b.reject(a),b.promise},h=function(c){return{then:function(f,h){var g=e();return b(function(){try{g.resolve((N(h)?h:d)(c))}catch(b){g.reject(b),a(b)}}),g.promise}}};return{defer:e,reject:g,when:function(h,k,l,m){var q,p=e(),A=function(b){try{return(N(k)?k:c)(b)}catch(d){return a(d),g(d)}},B=function(b){try{return(N(l)?l:d)(b)}catch(c){return a(c),g(c)}},r=function(b){try{return(N(m)?m:c)(b)}catch(d){a(d)}};return b(function(){f(h).then(function(a){q||(q=!0,p.resolve(f(a).then(A,B,r)))},function(a){q||(q=!0,p.resolve(B(a)))},function(a){q||p.notify(r(a))})}),p.promise},all:function(a){var b=e(),c=0,d=H(a)?[]:{};return r(a,function(a,e){c++,f(a).then(function(a){d.hasOwnProperty(e)||(d[e]=a,--c||b.resolve(d))},function(a){d.hasOwnProperty(e)||b.reject(a)})}),0===c&&b.resolve(d),b.promise}}}function Cd(){var b=10,a=E("$rootScope"),c=null;this.digestTtl=function(a){return arguments.length&&(b=a),b},this.$get=["$injector","$exceptionHandler","$parse","$browser",function(d,e,f,g){function h(){this.$id=$a(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this["this"]=this.$root=this,this.$$destroyed=!1,this.$$asyncQueue=[],this.$$postDigestQueue=[],this.$$listeners={},this.$$listenerCount={},this.$$isolateBindings={}}function n(b){if(p.$$phase)throw a("inprog",p.$$phase);p.$$phase=b}function k(a,b){var c=f(a);return Qa(c,b),c}function l(a,b,c){do a.$$listenerCount[c]-=b,0===a.$$listenerCount[c]&&delete a.$$listenerCount[c];while(a=a.$parent)}function m(){}h.prototype={constructor:h,$new:function(a){return a?(a=new h,a.$root=this.$root,a.$$asyncQueue=this.$$asyncQueue,a.$$postDigestQueue=this.$$postDigestQueue):(a=function(){},a.prototype=this,a=new a,a.$id=$a()),a["this"]=a,a.$$listeners={},a.$$listenerCount={},a.$parent=this,a.$$watchers=a.$$nextSibling=a.$$childHead=a.$$childTail=null,a.$$prevSibling=this.$$childTail,this.$$childHead?this.$$childTail=this.$$childTail.$$nextSibling=a:this.$$childHead=this.$$childTail=a,a},$watch:function(a,b,d){var e=k(a,"watch"),f=this.$$watchers,h={fn:b,last:m,get:e,exp:a,eq:!!d};if(c=null,!N(b)){var g=k(b||w,"listener");h.fn=function(a,b,c){g(c)}}if("string"==typeof a&&e.constant){var n=h.fn;h.fn=function(a,b,c){n.call(this,a,b,c),Na(f,h)}}return f||(f=this.$$watchers=[]),f.unshift(h),function(){Na(f,h),c=null}},$watchCollection:function(a,b){var d,e,c=this,h=0,g=f(a),k=[],n={},l=0;return this.$watch(function(){e=g(c);var a,b;if(Z(e))if(vb(e))for(d!==k&&(d=k,l=d.length=0,h++),a=e.length,l!==a&&(h++,d.length=l=a),b=0;a>b;b++)d[b]!==e[b]&&(h++,d[b]=e[b]);else{d!==n&&(d=n={},l=0,h++),a=0;for(b in e)e.hasOwnProperty(b)&&(a++,d.hasOwnProperty(b)?d[b]!==e[b]&&(h++,d[b]=e[b]):(l++,d[b]=e[b],h++));if(l>a)for(b in h++,d)d.hasOwnProperty(b)&&!e.hasOwnProperty(b)&&(l--,delete d[b])}else d!==e&&(d=e,h++);return h},function(){b(e,d,c)})},$digest:function(){var d,f,h,g,r,y,S,v,t,M,k=this.$$asyncQueue,l=this.$$postDigestQueue,s=b,L=[];n("$digest"),c=null;do{for(y=!1,S=this;k.length;){try{M=k.shift(),M.scope.$eval(M.expression)}catch(z){p.$$phase=null,e(z)}c=null}a:do{if(g=S.$$watchers)for(r=g.length;r--;)try{if(d=g[r])if((f=d.get(S))===(h=d.last)||(d.eq?ta(f,h):"number"==typeof f&&"number"==typeof h&&isNaN(f)&&isNaN(h))){if(d===c){y=!1;break a}}else y=!0,c=d,d.last=d.eq?ca(f):f,d.fn(f,h===m?f:h,S),5>s&&(v=4-s,L[v]||(L[v]=[]),t=N(d.exp)?"fn: "+(d.exp.name||d.exp.toString()):d.exp,t+="; newVal: "+oa(f)+"; oldVal: "+oa(h),L[v].push(t))}catch(D){p.$$phase=null,e(D)}if(!(g=S.$$childHead||S!==this&&S.$$nextSibling))for(;S!==this&&!(g=S.$$nextSibling);)S=S.$parent}while(S=g);if((y||k.length)&&!s--)throw p.$$phase=null,a("infdig",b,oa(L))}while(y||k.length);for(p.$$phase=null;l.length;)try{l.shift()()}catch(w){e(w)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy"),this.$$destroyed=!0,this!==p&&(r(this.$$listenerCount,cb(null,l,this)),a.$$childHead==this&&(a.$$childHead=this.$$nextSibling),a.$$childTail==this&&(a.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null)}},$eval:function(a,b){return f(a)(this,b)},$evalAsync:function(a){p.$$phase||p.$$asyncQueue.length||g.defer(function(){p.$$asyncQueue.length&&p.$digest()}),this.$$asyncQueue.push({scope:this,expression:a})},$$postDigest:function(a){this.$$postDigestQueue.push(a)},$apply:function(a){try{return n("$apply"),this.$eval(a)}catch(b){e(b)}finally{p.$$phase=null;try{p.$digest()}catch(c){throw e(c),c}}},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]),c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){c[bb(c,b)]=null,l(e,1,a)}},$emit:function(a){var d,n,l,c=[],f=this,h=!1,g={name:a,targetScope:f,stopPropagation:function(){h=!0},preventDefault:function(){g.defaultPrevented=!0},defaultPrevented:!1},k=[g].concat(ua.call(arguments,1));do{for(d=f.$$listeners[a]||c,g.currentScope=f,n=0,l=d.length;l>n;n++)if(d[n])try{d[n].apply(null,k)}catch(p){e(p)}else d.splice(n,1),n--,l--;if(h)break;f=f.$parent}while(f);return g},$broadcast:function(a){for(var g,k,c=this,d=this,f={name:a,targetScope:this,preventDefault:function(){f.defaultPrevented=!0},defaultPrevented:!1},h=[f].concat(ua.call(arguments,1));c=d;){for(f.currentScope=c,d=c.$$listeners[a]||[],g=0,k=d.length;k>g;g++)if(d[g])try{d[g].apply(null,h)}catch(n){e(n)}else d.splice(g,1),g--,k--;if(!(d=c.$$listenerCount[a]&&c.$$childHead||c!==this&&c.$$nextSibling))for(;c!==this&&!(d=c.$$nextSibling);)c=c.$parent}return f}};var p=new h;return p}]}function Dd(){var b=/^\s*(https?|ftp|mailto|tel|file):/,a=/^\s*(https?|ftp|file):|data:image\//;this.aHrefSanitizationWhitelist=function(a){return v(a)?(b=a,this):b},this.imgSrcSanitizationWhitelist=function(b){return v(b)?(a=b,this):a},this.$get=function(){return function(c,d){var f,e=d?a:b;return P&&!(P>=8)||(f=xa(c).href,""===f||f.match(e))?c:"unsafe:"+f}}}function Ed(b){if("self"===b)return b;if(D(b)){if(-1l;l++)if("self"===b[l]?Hb(f):b[l].exec(f.href)){p=!0;break}if(p)for(l=0,m=a.length;m>l;l++)if("self"===a[l]?Hb(f):a[l].exec(f.href)){p=!1;break}if(p)return d;throw ra("insecurl",d.toString())}if(c===fa.HTML)return e(d);throw ra("unsafe")},valueOf:function(a){return a instanceof f?a.$$unwrapTrustedValue():a}}}]}function Gd(){var b=!0;this.enabled=function(a){return arguments.length&&(b=!!a),b},this.$get=["$parse","$sniffer","$sceDelegate",function(a,c,d){if(b&&c.msie&&8>c.msieDocumentMode)throw ra("iequirks");var e=ca(fa);e.isEnabled=function(){return b},e.trustAs=d.trustAs,e.getTrusted=d.getTrusted,e.valueOf=d.valueOf,b||(e.trustAs=e.getTrusted=function(a,b){return b},e.valueOf=Aa),e.parseAs=function(b,c){var d=a(c);return d.literal&&d.constant?d:function(a,c){return e.getTrusted(b,d(a,c))}};var f=e.parseAs,g=e.getTrusted,h=e.trustAs;return r(fa,function(a,b){var c=O(b);e[Ra("parse_as_"+c)]=function(b){return f(a,b)},e[Ra("get_trusted_"+c)]=function(b){return g(a,b)},e[Ra("trust_as_"+c)]=function(b){return h(a,b)}}),e}]}function Hd(){this.$get=["$window","$document",function(b,a){var h,c={},d=Q((/android (\d+)/.exec(O((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},g=f.documentMode,n=/^(Moz|webkit|O|ms)(?=[A-Z])/,k=f.body&&f.body.style,l=!1,m=!1;if(k){for(var p in k)if(l=n.exec(p)){h=l[0],h=h.substr(0,1).toUpperCase()+h.substr(1);break}h||(h="WebkitOpacity"in k&&"webkit"),l=!!("transition"in k||h+"Transition"in k),m=!!("animation"in k||h+"Animation"in k),!d||l&&m||(l=D(f.body.style.webkitTransition),m=D(f.body.style.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hashchange:"onhashchange"in b&&(!g||g>7),hasEvent:function(a){if("input"==a&&9==P)return!1;if(x(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:Vb(),vendorPrefix:h,transitions:l,animations:m,android:d,msie:P,msieDocumentMode:g}}]}function Id(){this.$get=["$rootScope","$browser","$q","$exceptionHandler",function(b,a,c,d){function e(e,h,n){var k=c.defer(),l=k.promise,m=v(n)&&!n;return h=a.defer(function(){try{k.resolve(e())}catch(a){k.reject(a),d(a)}finally{delete f[l.$$timeoutId]}m||b.$apply()},h),l.$$timeoutId=h,f[h]=k,l}var f={};return e.cancel=function(b){return b&&b.$$timeoutId in f?(f[b.$$timeoutId].reject("canceled"),delete f[b.$$timeoutId],a.defer.cancel(b.$$timeoutId)):!1},e}]}function xa(b){var c=b;return P&&(V.setAttribute("href",c),c=V.href),V.setAttribute("href",c),{href:V.href,protocol:V.protocol?V.protocol.replace(/:$/,""):"",host:V.host,search:V.search?V.search.replace(/^\?/,""):"",hash:V.hash?V.hash.replace(/^#/,""):"",hostname:V.hostname,port:V.port,pathname:"/"===V.pathname.charAt(0)?V.pathname:"/"+V.pathname}}function Hb(b){return b=D(b)?xa(b):b,b.protocol===Bc.protocol&&b.host===Bc.host}function Jd(){this.$get=aa(C)}function Cc(b){function a(d,e){if(Z(d)){var f={};return r(d,function(b,c){f[c]=a(c,b)}),f}return b.factory(d+c,e)}var c="Filter";this.register=a,this.$get=["$injector",function(a){return function(b){return a.get(b+c)}}],a("currency",Dc),a("date",Ec),a("filter",Kd),a("json",Ld),a("limitTo",Md),a("lowercase",Nd),a("number",Fc),a("orderBy",Gc),a("uppercase",Od)}function Kd(){return function(b,a,c){if(!H(b))return b;var d=typeof c,e=[];e.check=function(a){for(var b=0;bb;b=Math.abs(b);var g=b+"",h="",n=[],k=!1;if(-1!==g.indexOf("e")){var l=g.match(/([\d\.]+)e(-?)(\d+)/);l&&"-"==l[2]&&l[3]>e+1?g="0":(h=g,k=!0)}if(k)e>0&&b>-1&&1>b&&(h=b.toFixed(e));else{g=(g.split(Ic)[1]||"").length,x(e)&&(e=Math.min(Math.max(a.minFrac,g),a.maxFrac)),g=Math.pow(10,e),b=Math.round(b*g)/g,b=(""+b).split(Ic),g=b[0],b=b[1]||"";var l=0,m=a.lgSize,p=a.gSize;if(g.length>=m+p)for(l=g.length-m,k=0;l>k;k++)0===(l-k)%p&&0!==k&&(h+=c),h+=g.charAt(k);for(k=l;kb&&(d="-",b=-b),b=""+b;b.length0||e>-c)&&(e+=c),0===e&&-12==c&&(e=12),Nb(e,a,d)}}function pb(b,a){return function(c,d){var e=c["get"+b](),f=Ia(a?"SHORT"+b:b);return d[f][e]}}function Ec(b){function a(a){var b;if(b=a.match(c)){a=new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,n=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=Q(b[9]+b[10]),g=Q(b[9]+b[11])),h.call(a,Q(b[1]),Q(b[2])-1,Q(b[3])),f=Q(b[4]||0)-f,g=Q(b[5]||0)-g,h=Q(b[6]||0),b=Math.round(1e3*parseFloat("0."+(b[7]||0))),n.call(a,f,g,h,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e){var h,n,f="",g=[];if(e=e||"mediumDate",e=b.DATETIME_FORMATS[e]||e,D(c)&&(c=Qd.test(c)?Q(c):a(c)),wb(c)&&(c=new Date(c)),!La(c))return c;for(;e;)(n=Rd.exec(e))?(g=g.concat(ua.call(n,1)),e=g.pop()):(g.push(e),e=null);return r(g,function(a){h=Sd[a],f+=h?h(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),f}}function Ld(){return function(b){return oa(b,!0)}}function Md(){return function(b,a){if(!H(b)&&!D(b))return b;if(a=Q(a),D(b))return a?a>=0?b.slice(0,a):b.slice(a,b.length):"";var d,e,c=[];for(a>b.length?a=b.length:a<-b.length&&(a=-b.length),a>0?(d=0,e=a):(d=b.length+a,e=b.length);e>d;d++)c.push(b[d]);return c}}function Gc(b){return function(a,c,d){function e(a,b){return Pa(b)?function(b,c){return a(c,b)}:a}if(!H(a)||!c)return a;c=H(c)?c:[c],c=Sc(c,function(a){var c=!1,d=a||Aa;return D(a)&&(("+"==a.charAt(0)||"-"==a.charAt(0))&&(c="-"==a.charAt(0),a=a.substring(1)),d=b(a)),e(function(a,b){var c;c=d(a);var e=d(b),f=typeof c,h=typeof e;return f==h?("string"==f&&(c=c.toLowerCase(),e=e.toLowerCase()),c=c===e?0:e>c?-1:1):c=h>f?-1:1,c},c)});for(var f=[],g=0;g15&&19>a||a>=37&&40>=a||k()}),e.hasEvent("paste")&&a.on("paste cut",k)}a.on("change",h),d.$render=function(){a.val(d.$isEmpty(d.$viewValue)?"":d.$viewValue)};var l=c.ngPattern;if(l&&((e=l.match(/^\/(.*)\/([gim]*)$/))?(l=RegExp(e[1],e[2]),e=function(a){return na(d,"pattern",d.$isEmpty(a)||l.test(a),a)}):e=function(c){var e=b.$eval(l);if(!e||!e.test)throw E("ngPattern")("noregexp",l,e,ga(a));return na(d,"pattern",d.$isEmpty(c)||e.test(c),c)},d.$formatters.push(e),d.$parsers.push(e)),c.ngMinlength){var m=Q(c.ngMinlength);e=function(a){return na(d,"minlength",d.$isEmpty(a)||a.length>=m,a)},d.$parsers.push(e),d.$formatters.push(e)}if(c.ngMaxlength){var p=Q(c.ngMaxlength);e=function(a){return na(d,"maxlength",d.$isEmpty(a)||a.length<=p,a)},d.$parsers.push(e),d.$formatters.push(e)}}function Ob(b,a){return b="ngClass"+b,function(){return{restrict:"AC",link:function(c,d,e){function f(b){if(!0===a||c.$index%2===a){var d=g(b||"");h?ta(b,h)||e.$updateClass(d,g(h)):e.$addClass(d)}h=ca(b)}function g(a){if(H(a))return a.join(" ");if(Z(a)){var b=[];return r(a,function(a,c){a&&b.push(c)}),b.join(" ")}return a}var h;c.$watch(e[b],f,!0),e.$observe("class",function(){f(c.$eval(e[b]))}),"ngClass"!==b&&c.$watch("$index",function(d,f){var h=1&d;if(h!==f&1){var m=g(c.$eval(e[b]));h===a?e.$addClass(m):e.$removeClass(m)}})}}}}var P,z,Ca,Va,Ga,O=function(b){return D(b)?b.toLowerCase():b},Pd=Object.prototype.hasOwnProperty,Ia=function(b){return D(b)?b.toUpperCase():b},ua=[].slice,Td=[].push,Ma=Object.prototype.toString,Oa=E("ng"),Ba=C.angular||(C.angular={}),ja=["0","0","0"];P=Q((/msie (\d+)/.exec(O(navigator.userAgent))||[])[1]),isNaN(P)&&(P=Q((/trident\/.*; rv:(\d+)/.exec(O(navigator.userAgent))||[])[1])),w.$inject=[],Aa.$inject=[];var da=function(){return String.prototype.trim?function(b){return D(b)?b.trim():b}:function(b){return D(b)?b.replace(/^\s\s*/,"").replace(/\s\s*$/,""):b}}();Ga=9>P?function(b){return b=b.nodeName?b:b[0],b.scopeName&&"HTML"!=b.scopeName?Ia(b.scopeName+":"+b.nodeName):b.nodeName}:function(b){return b.nodeName?b.nodeName:b[0].nodeName};var Vc=/[A-Z]/g,Ud={full:"1.2.13",major:1,minor:2,dot:13,codeName:"romantic-transclusion"},Sa=R.cache={},eb=R.expando="ng-"+(new Date).getTime(),Zc=1,Kc=C.document.addEventListener?function(b,a,c){b.addEventListener(a,c,!1)}:function(b,a,c){b.attachEvent("on"+a,c) -},Eb=C.document.removeEventListener?function(b,a,c){b.removeEventListener(a,c,!1)}:function(b,a,c){b.detachEvent("on"+a,c)};R._data=function(b){return this.cache[b[this.expando]]||{}};var Xc=/([\:\-\_]+(.))/g,Yc=/^moz([A-Z])/,Bb=E("jqLite"),Fa=R.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===T.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),R(C).on("load",a))},toString:function(){var b=[];return r(this,function(a){b.push(""+a)}),"["+b.join(", ")+"]"},eq:function(b){return z(b>=0?this[b]:this[this.length+b])},length:0,push:Td,sort:[].sort,splice:[].splice},ib={};r("multiple selected checked disabled readOnly required open".split(" "),function(b){ib[O(b)]=b});var ic={};r("input select option textarea button form details".split(" "),function(b){ic[Ia(b)]=!0}),r({data:ec,inheritedData:hb,scope:function(b){return z(b).data("$scope")||hb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return z(b).data("$isolateScope")||z(b).data("$isolateScopeNoTemplate")},controller:fc,injector:function(b){return hb(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Fb,css:function(b,a,c){if(a=Ra(a),!v(c)){var d;return 8>=P&&(d=b.currentStyle&&b.currentStyle[a],""===d&&(d="auto")),d=d||b.style[a],8>=P&&(d=""===d?s:d),d}b.style[a]=c},attr:function(b,a,c){var d=O(a);if(ib[d]){if(!v(c))return b[a]||(b.attributes.getNamedItem(a)||w).specified?d:s;c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d))}else if(v(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?s:b},prop:function(b,a,c){return v(c)?void(b[a]=c):b[a]},text:function(){function b(b,d){var e=a[b.nodeType];return x(d)?e?b[e]:"":void(b[e]=d)}var a=[];return 9>P?(a[1]="innerText",a[3]="nodeValue"):a[1]=a[3]="textContent",b.$dv="",b}(),val:function(b,a){if(x(a)){if("SELECT"===Ga(b)&&b.multiple){var c=[];return r(b.options,function(a){a.selected&&c.push(a.value||a.text)}),0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(x(a))return b.innerHTML;for(var c=0,d=b.childNodes;cg;g++){var h=b(this[g],a,d);e=e?e+h:h}return e}for(e=0;e":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,c)||e(a,c)},"&":function(a,c,d,e){return d(a,c)&e(a,c)},"|":function(a,c,d,e){return e(a,c)(a,c,d(a,c))},"!":function(a,c,d){return!d(a,c)}},Yd={n:"\n",f:"\f",r:"\r",t:" ",v:" ","'":"'",'"':'"'},Mb=function(a){this.options=a};Mb.prototype={constructor:Mb,lex:function(a){this.text=a,this.index=0,this.ch=s,this.lastCh=":",this.tokens=[];var c;for(a=[];this.index="0"&&"9">=a},isWhitespace:function(a){return" "===a||"\r"===a||" "===a||"\n"===a||" "===a||" "===a},isIdent:function(a){return a>="a"&&"z">=a||a>="A"&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){throw d=d||this.index,c=v(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d,ya("lexerr",a,c,this.text)},readNumber:function(){for(var a="",c=this.index;this.index","<=",">="))&&(a=this.binaryFn(a,c.fn,this.relational())),a},additive:function(){for(var c,a=this.multiplicative();c=this.expect("+","-");)a=this.binaryFn(a,c.fn,this.multiplicative());return a},multiplicative:function(){for(var c,a=this.unary();c=this.expect("*","/","%");)a=this.binaryFn(a,c.fn,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(Za.ZERO,a.fn,this.unary()):(a=this.expect("!"))?this.unaryFn(a.fn,this.unary()):this.primary()},fieldAccess:function(a){var c=this,d=this.expect().text,e=yc(d,this.options,this.text);return t(function(c,d,h){return e(h||a(c,d))},{assign:function(e,g,h){return ob(a(e,h),d,g,c.text,c.options)}})},objectIndex:function(a){var c=this,d=this.expression();return this.consume("]"),t(function(e,f){var n,g=a(e,f),h=d(e,f);return g?((g=Ya(g[h],c.text))&&g.then&&c.options.unwrapPromises&&(n=g,"$$v"in g||(n.$$v=s,n.then(function(a){n.$$v=a})),g=g.$$v),g):s},{assign:function(e,f,g){var h=d(e,g);return Ya(a(e,g),c.text)[h]=f}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text)do d.push(this.expression());while(this.expect(","));this.consume(")");var e=this;return function(f,g){for(var h=[],n=c?c(f,g):f,k=0;ka.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){return a=-1*a.getTimezoneOffset(),a=(a>=0?"+":"")+(Nb(Math[a>0?"floor":"ceil"](a/60),2)+Nb(Math.abs(a%60),2))}},Rd=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,Qd=/^\-?\d+$/;Ec.$inject=["$locale"];var Nd=aa(O),Od=aa(Ia);Gc.$inject=["$parse"];var Zd=aa({restrict:"E",compile:function(a,c){return 8>=P&&(c.href||c.name||c.$set("href",""),a.append(T.createComment("IE fix"))),c.href||c.xlinkHref||c.name?void 0:function(a,c){var f="[object SVGAnimatedString]"===Ma.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}),Pb={};r(ib,function(a,c){if("multiple"!=a){var d=la("ng-"+c);Pb[d]=function(){return{priority:100,link:function(a,f,g){a.$watch(g[d],function(a){g.$set(c,!!a)})}}}}}),r(["src","srcset","href"],function(a){var c=la("ng-"+a);Pb[c]=function(){return{priority:99,link:function(d,e,f){f.$observe(c,function(c){c&&(f.$set(a,c),P&&e.prop(a,f[a]))})}}}});var sb={$addControl:w,$removeControl:w,$setValidity:w,$setDirty:w,$setPristine:w};Jc.$inject=["$element","$attrs","$scope"];var Lc=function(a){return["$timeout",function(c){return{name:"form",restrict:a?"EAC":"E",controller:Jc,compile:function(){return{pre:function(a,e,f,g){if(!f.action){var h=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1};Kc(e[0],"submit",h),e.on("$destroy",function(){c(function(){Eb(e[0],"submit",h)},0,!1)})}var n=e.parent().controller("form"),k=f.name||f.ngForm;k&&ob(a,k,g,k),n&&e.on("$destroy",function(){n.$removeControl(g),k&&ob(a,k,s,k),t(g,sb)})}}}}}]},$d=Lc(),ae=Lc(!0),be=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,ce=/^[a-z0-9!#$%&'*+/=?^_`{|}~.-]+@[a-z0-9-]+(\.[a-z0-9-]+)*$/i,de=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,Mc={text:ub,number:function(a,c,d,e,f,g){ub(a,c,d,e,f,g),e.$parsers.push(function(a){var c=e.$isEmpty(a);return c||de.test(a)?(e.$setValidity("number",!0),""===a?null:c?a:parseFloat(a)):(e.$setValidity("number",!1),s)}),e.$formatters.push(function(a){return e.$isEmpty(a)?"":""+a}),d.min&&(a=function(a){var c=parseFloat(d.min);return na(e,"min",e.$isEmpty(a)||a>=c,a)},e.$parsers.push(a),e.$formatters.push(a)),d.max&&(a=function(a){var c=parseFloat(d.max);return na(e,"max",e.$isEmpty(a)||c>=a,a)},e.$parsers.push(a),e.$formatters.push(a)),e.$formatters.push(function(a){return na(e,"number",e.$isEmpty(a)||wb(a),a)})},url:function(a,c,d,e,f,g){ub(a,c,d,e,f,g),a=function(a){return na(e,"url",e.$isEmpty(a)||be.test(a),a)},e.$formatters.push(a),e.$parsers.push(a)},email:function(a,c,d,e,f,g){ub(a,c,d,e,f,g),a=function(a){return na(e,"email",e.$isEmpty(a)||ce.test(a),a)},e.$formatters.push(a),e.$parsers.push(a)},radio:function(a,c,d,e){x(d.name)&&c.attr("name",$a()),c.on("click",function(){c[0].checked&&a.$apply(function(){e.$setViewValue(d.value)})}),e.$render=function(){c[0].checked=d.value==e.$viewValue},d.$observe("value",e.$render)},checkbox:function(a,c,d,e){var f=d.ngTrueValue,g=d.ngFalseValue;D(f)||(f=!0),D(g)||(g=!1),c.on("click",function(){a.$apply(function(){e.$setViewValue(c[0].checked)})}),e.$render=function(){c[0].checked=e.$viewValue},e.$isEmpty=function(a){return a!==f},e.$formatters.push(function(a){return a===f}),e.$parsers.push(function(a){return a?f:g})},hidden:w,button:w,submit:w,reset:w,file:w},Nc=["$browser","$sniffer",function(a,c){return{restrict:"E",require:"?ngModel",link:function(d,e,f,g){g&&(Mc[O(f.type)]||Mc.text)(d,e,f,g,c,a)}}}],rb="ng-valid",qb="ng-invalid",Ja="ng-pristine",tb="ng-dirty",ee=["$scope","$exceptionHandler","$attrs","$element","$parse",function(a,c,d,e,f){function g(a,c){c=c?"-"+db(c,"-"):"",e.removeClass((a?qb:rb)+c).addClass((a?rb:qb)+c)}this.$modelValue=this.$viewValue=Number.NaN,this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$name=d.name;var h=f(d.ngModel),n=h.assign;if(!n)throw E("ngModel")("nonassign",d.ngModel,ga(e));this.$render=w,this.$isEmpty=function(a){return x(a)||""===a||null===a||a!==a};var k=e.inheritedData("$formController")||sb,l=0,m=this.$error={};e.addClass(Ja),g(!0),this.$setValidity=function(a,c){m[a]!==!c&&(c?(m[a]&&l--,l||(g(!0),this.$valid=!0,this.$invalid=!1)):(g(!1),this.$invalid=!0,this.$valid=!1,l++),m[a]=!c,g(c,a),k.$setValidity(a,c,this))},this.$setPristine=function(){this.$dirty=!1,this.$pristine=!0,e.removeClass(tb).addClass(Ja)},this.$setViewValue=function(d){this.$viewValue=d,this.$pristine&&(this.$dirty=!0,this.$pristine=!1,e.removeClass(Ja).addClass(tb),k.$setDirty()),r(this.$parsers,function(a){d=a(d)}),this.$modelValue!==d&&(this.$modelValue=d,n(a,d),r(this.$viewChangeListeners,function(a){try{a()}catch(d){c(d)}}))};var p=this;a.$watch(function(){var c=h(a);if(p.$modelValue!==c){var d=p.$formatters,e=d.length;for(p.$modelValue=c;e--;)c=d[e](c);p.$viewValue!==c&&(p.$viewValue=c,p.$render())}return c})}],fe=function(){return{require:["ngModel","^?form"],controller:ee,link:function(a,c,d,e){var f=e[0],g=e[1]||sb;g.$addControl(f),a.$on("$destroy",function(){g.$removeControl(f)})}}},ge=aa({require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),Oc=function(){return{require:"?ngModel",link:function(a,c,d,e){if(e){d.required=!0;var f=function(a){return d.required&&e.$isEmpty(a)?void e.$setValidity("required",!1):(e.$setValidity("required",!0),a)};e.$formatters.push(f),e.$parsers.unshift(f),d.$observe("required",function(){f(e.$viewValue)})}}}},he=function(){return{require:"ngModel",link:function(a,c,d,e){var f=(a=/\/(.*)\//.exec(d.ngList))&&RegExp(a[1])||d.ngList||",";e.$parsers.push(function(a){if(!x(a)){var c=[];return a&&r(a.split(f),function(a){a&&c.push(da(a))}),c}}),e.$formatters.push(function(a){return H(a)?a.join(", "):s}),e.$isEmpty=function(a){return!a||!a.length}}}},ie=/^(true|false|\d+)$/,je=function(){return{priority:100,compile:function(a,c){return ie.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},ke=sa(function(a,c,d){c.addClass("ng-binding").data("$binding",d.ngBind),a.$watch(d.ngBind,function(a){c.text(a==s?"":a)})}),le=["$interpolate",function(a){return function(c,d,e){c=a(d.attr(e.$attr.ngBindTemplate)),d.addClass("ng-binding").data("$binding",c),e.$observe("ngBindTemplate",function(a){d.text(a)})}}],me=["$sce","$parse",function(a,c){return function(d,e,f){e.addClass("ng-binding").data("$binding",f.ngBindHtml);var g=c(f.ngBindHtml);d.$watch(function(){return(g(d)||"").toString()},function(){e.html(a.getTrustedHtml(g(d))||"")})}}],ne=Ob("",!0),oe=Ob("Odd",0),pe=Ob("Even",1),qe=sa({compile:function(a,c){c.$set("ngCloak",s),a.removeClass("ng-cloak")}}),re=[function(){return{scope:!0,controller:"@",priority:500}}],Pc={};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=la("ng-"+a);Pc[c]=["$parse",function(d){return{compile:function(e,f){var g=d(f[c]);return function(c,d){d.on(O(a),function(a){c.$apply(function(){g(c,{$event:a})})})}}}}]});var se=["$animate",function(a){return{transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,n;c.$watch(e.ngIf,function(f){Pa(f)?n||(n=c.$new(),g(n,function(c){c[c.length++]=T.createComment(" end ngIf: "+e.ngIf+" "),h={clone:c},a.enter(c,d.parent(),d)})):(n&&(n.$destroy(),n=null),h&&(a.leave(zb(h.clone)),h=null))})}}}],te=["$http","$templateCache","$anchorScroll","$animate","$sce",function(a,c,d,e,f){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Ba.noop,compile:function(g,h){var n=h.ngInclude||h.src,k=h.onload||"",l=h.autoscroll;return function(g,h,q,r,B){var u,t,s=0,z=function(){u&&(u.$destroy(),u=null),t&&(e.leave(t),t=null)};g.$watch(f.parseAsResourceUrl(n),function(f){var n=function(){!v(l)||l&&!g.$eval(l)||d()},q=++s;f?(a.get(f,{cache:c}).success(function(a){if(q===s){var c=g.$new();r.template=a,a=B(c,function(a){z(),e.enter(a,null,h,n)}),u=c,t=a,u.$emit("$includeContentLoaded"),g.$eval(k)}}).error(function(){q===s&&z()}),g.$emit("$includeContentRequested")):(z(),r.template=null)})}}}}],ue=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){d.html(f.template),a(d.contents())(c)}}}],ve=sa({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),we=sa({terminal:!0,priority:1e3}),xe=["$locale","$interpolate",function(a,c){var d=/{}/g;return{restrict:"EA",link:function(e,f,g){var h=g.count,n=g.$attr.when&&f.attr(g.$attr.when),k=g.offset||0,l=e.$eval(n)||{},m={},p=c.startSymbol(),q=c.endSymbol(),s=/^when(Minus)?(.+)$/;r(g,function(a,c){s.test(c)&&(l[O(c.replace("when","").replace("Minus","-"))]=f.attr(g.$attr[c]))}),r(l,function(a,e){m[e]=c(a.replace(d,p+h+"-"+k+q))}),e.$watch(function(){var c=parseFloat(e.$eval(h));return isNaN(c)?"":(c in l||(c=a.pluralCat(c-k)),m[c](e,f,!0))},function(a){f.text(a)})}}}],ye=["$parse","$animate",function(a,c){var d=E("ngRepeat");return{transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,link:function(e,f,g,h,n){var m,p,q,s,t,v,k=g.ngRepeat,l=k.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/),u={$id:Ea};if(!l)throw d("iexp",k);if(g=l[1],h=l[2],(l=l[3])?(m=a(l),p=function(a,c,d){return v&&(u[v]=a),u[t]=c,u.$index=d,m(e,u)}):(q=function(a,c){return Ea(c)},s=function(a){return a}),l=g.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/),!l)throw d("iidexp",g);t=l[3]||l[1],v=l[2];var G={};e.$watchCollection(h,function(a){var g,h,m,D,M,w,x,E,J,l=f[0],u={},H=[];if(vb(a))E=a,m=p||q;else{m=p||s,E=[];for(w in a)a.hasOwnProperty(w)&&"$"!=w.charAt(0)&&E.push(w);E.sort()}for(D=E.length,h=H.length=E.length,g=0;h>g;g++)if(w=a===E?g:E[g],x=a[w],x=m(w,x,g),wa(x,"`track by` id"),G.hasOwnProperty(x))J=G[x],delete G[x],u[x]=J,H[g]=J;else{if(u.hasOwnProperty(x))throw r(H,function(a){a&&a.scope&&(G[a.id]=a)}),d("dupes",k,x);H[g]={id:x},u[x]=!1}for(w in G)G.hasOwnProperty(w)&&(J=G[w],g=zb(J.clone),c.leave(g),r(g,function(a){a.$$NG_REMOVED=!0}),J.scope.$destroy());for(g=0,h=E.length;h>g;g++){if(w=a===E?g:E[g],x=a[w],J=H[g],H[g-1]&&(l=H[g-1].clone[H[g-1].clone.length-1]),J.scope){M=J.scope,m=l;do m=m.nextSibling;while(m&&m.$$NG_REMOVED);J.clone[0]!=m&&c.move(zb(J.clone),null,z(l)),l=J.clone[J.clone.length-1]}else M=e.$new();M[t]=x,v&&(M[v]=w),M.$index=g,M.$first=0===g,M.$last=g===D-1,M.$middle=!(M.$first||M.$last),M.$odd=!(M.$even=0===(1&g)),J.scope||n(M,function(a){a[a.length++]=T.createComment(" end ngRepeat: "+k+" "),c.enter(a,null,z(l)),l=a,J.scope=M,J.clone=a,u[J.id]=J})}G=u})}}}],ze=["$animate",function(a){return function(c,d,e){c.$watch(e.ngShow,function(c){a[Pa(c)?"removeClass":"addClass"](d,"ng-hide")})}}],Ae=["$animate",function(a){return function(c,d,e){c.$watch(e.ngHide,function(c){a[Pa(c)?"addClass":"removeClass"](d,"ng-hide")})}}],Be=sa(function(a,c,d){a.$watch(d.ngStyle,function(a,d){d&&a!==d&&r(d,function(a,d){c.css(d,"")}),a&&c.css(a)},!0)}),Ce=["$animate",function(a){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(c,d,e,f){var g,h,n=[];c.$watch(e.ngSwitch||e.on,function(d){for(var l=0,m=n.length;m>l;l++)n[l].$destroy(),a.leave(h[l]);h=[],n=[],(g=f.cases["!"+d]||f.cases["?"])&&(c.$eval(e.change),r(g,function(d){var e=c.$new();n.push(e),d.transclude(e,function(c){var e=d.element;h.push(c),a.enter(c,e.parent(),e)})}))})}}}],De=sa({transclude:"element",priority:800,require:"^ngSwitch",link:function(a,c,d,e,f){e.cases["!"+d.ngSwitchWhen]=e.cases["!"+d.ngSwitchWhen]||[],e.cases["!"+d.ngSwitchWhen].push({transclude:f,element:c})}}),Ee=sa({transclude:"element",priority:800,require:"^ngSwitch",link:function(a,c,d,e,f){e.cases["?"]=e.cases["?"]||[],e.cases["?"].push({transclude:f,element:c})}}),Fe=sa({link:function(a,c,d,e,f){if(!f)throw E("ngTransclude")("orphan",ga(c));f(function(a){c.empty(),c.append(a)})}}),Ge=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(c,d){"text/ng-template"==d.type&&a.put(d.id,c[0].text)}}}],He=E("ngOptions"),Ie=aa({terminal:!0}),Je=["$compile","$parse",function(a,c){var d=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\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]+?))?$/,e={$setViewValue:w};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(a,c,d){var m,n=this,k={},l=e;n.databound=d.ngModel,n.init=function(a,c,d){l=a,m=d},n.addOption=function(c){wa(c,'"option value"'),k[c]=!0,l.$viewValue==c&&(a.val(c),m.parent()&&m.remove())},n.removeOption=function(a){this.hasOption(a)&&(delete k[a],l.$viewValue==a&&this.renderUnknownOption(a))},n.renderUnknownOption=function(c){c="? "+Ea(c)+" ?",m.val(c),a.prepend(m),a.val(c),m.prop("selected",!0)},n.hasOption=function(a){return k.hasOwnProperty(a)},c.$on("$destroy",function(){n.renderUnknownOption=w})}],link:function(e,g,h,n){function k(a,c,d,e){d.$render=function(){var a=d.$viewValue;e.hasOption(a)?(D.parent()&&D.remove(),c.val(a),""===a&&w.prop("selected",!0)):x(a)&&w?c.val(""):e.renderUnknownOption(a)},c.on("change",function(){a.$apply(function(){D.parent()&&D.remove(),d.$setViewValue(c.val())})})}function l(a,c,d){var e;d.$render=function(){var a=new Ta(d.$viewValue);r(c.find("option"),function(c){c.selected=v(a.get(c.value))})},a.$watch(function(){ta(e,d.$viewValue)||(e=ca(d.$viewValue),d.$render())}),c.on("change",function(){a.$apply(function(){var a=[];r(c.find("option"),function(c){c.selected&&a.push(c.value)}),d.$setViewValue(a)})})}function m(e,f,g){function h(){var d,k,s,t,x,a={"":[]},c=[""];t=g.$modelValue,x=z(e)||[];var D,X,C,A=n?Qb(x):x;X={},s=!1;var K,I;if(q)if(w&&H(t))for(s=new Ta([]),C=0;CC;C++){if(k=C,n){if(k=A[C],"$"===k.charAt(0))continue;X[n]=k}X[m]=x[k],d=p(e,X)||"",(k=a[d])||(k=a[d]=[],c.push(d)),q?d=v(s.remove(w?w(e,X):r(e,X))):(w?(d={},d[m]=t,d=w(e,d)===w(e,X)):d=t===r(e,X),s=s||d),K=l(e,X),K=v(K)?K:"",k.push({id:w?w(e,X):n?A[C]:C,label:K,selected:d})}for(q||(B||null===t?a[""].unshift({id:"",label:"",selected:!s}):s||a[""].unshift({id:"?",label:"",selected:!0})),X=0,A=c.length;A>X;X++){for(d=c[X],k=a[d],y.length<=X?(t={element:E.clone().attr("label",d),label:k.label},x=[t],y.push(x),f.append(t.element)):(x=y[X],t=x[0],t.label!=d&&t.element.attr("label",t.label=d)),K=null,C=0,D=k.length;D>C;C++)s=k[C],(d=x[C+1])?(K=d.element,d.label!==s.label&&K.text(d.label=s.label),d.id!==s.id&&K.val(d.id=s.id),K[0].selected!==s.selected&&K.prop("selected",d.selected=s.selected)):(""===s.id&&B?I=B:(I=u.clone()).val(s.id).attr("selected",s.selected).text(s.label),x.push({element:I,label:s.label,id:s.id,selected:s.selected}),K?K.after(I):t.element.append(I),K=I); -for(C++;x.length>C;)x.pop().element.remove()}for(;y.length>X;)y.pop()[0].element.remove()}var k;if(!(k=t.match(d)))throw He("iexp",t,ga(f));var l=c(k[2]||k[1]),m=k[4]||k[6],n=k[5],p=c(k[3]||""),r=c(k[2]?k[1]:m),z=c(k[7]),w=k[8]?c(k[8]):null,y=[[{element:f,label:""}]];B&&(a(B)(e),B.removeClass("ng-scope"),B.remove()),f.empty(),f.on("change",function(){e.$apply(function(){var a,h,k,l,p,t,v,u,c=z(e)||[],d={};if(q){for(k=[],p=0,v=y.length;v>p;p++)for(a=y[p],l=1,t=a.length;t>l;l++)if((h=a[l].element)[0].selected){if(h=h.val(),n&&(d[n]=h),w)for(u=0;uh;h++)if(""===y[h].value){w=B=y.eq(h);break}p.init(n,B,D),q&&(n.$isEmpty=function(a){return!a||0===a.length}),t?m(e,g,n):q?l(e,g,n):k(e,g,n,p)}}}}],Ke=["$interpolate",function(a){var c={addOption:w,removeOption:w};return{restrict:"E",priority:100,compile:function(d,e){if(x(e.value)){var f=a(d.text(),!0);f||e.$set("value",d.text())}return function(a,d,e){var k=d.parent(),l=k.data("$selectController")||k.parent().data("$selectController");l&&l.databound?d.prop("selected",!1):l=c,f?a.$watch(f,function(a,c){e.$set("value",a),a!==c&&l.removeOption(c),l.addOption(a)}):l.addOption(e.value),d.on("$destroy",function(){l.removeOption(e.value)})}}}}],Le=aa({restrict:"E",terminal:!0});(Ca=C.jQuery)?(z=Ca,t(Ca.fn,{scope:Fa.scope,isolateScope:Fa.isolateScope,controller:Fa.controller,injector:Fa.injector,inheritedData:Fa.inheritedData}),Ab("remove",!0,!0,!1),Ab("empty",!1,!1,!1),Ab("html",!1,!1,!0)):z=R,Ba.element=z,function(a){t(a,{bootstrap:$b,copy:ca,extend:t,equals:ta,element:z,forEach:r,injector:ac,noop:w,bind:cb,toJson:oa,fromJson:Wb,identity:Aa,isUndefined:x,isDefined:v,isString:D,isFunction:N,isObject:Z,isNumber:wb,isElement:Rc,isArray:H,version:Ud,isDate:La,lowercase:O,uppercase:Ia,callbacks:{counter:0},$$minErr:E,$$csp:Vb}),Va=Wc(C);try{Va("ngLocale")}catch(c){Va("ngLocale",[]).provider("$locale",td)}Va("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:Dd}),a.provider("$compile",kc).directive({a:Zd,input:Nc,textarea:Nc,form:$d,script:Ge,select:Je,style:Le,option:Ke,ngBind:ke,ngBindHtml:me,ngBindTemplate:le,ngClass:ne,ngClassEven:pe,ngClassOdd:oe,ngCloak:qe,ngController:re,ngForm:ae,ngHide:Ae,ngIf:se,ngInclude:te,ngInit:ve,ngNonBindable:we,ngPluralize:xe,ngRepeat:ye,ngShow:ze,ngStyle:Be,ngSwitch:Ce,ngSwitchWhen:De,ngSwitchDefault:Ee,ngOptions:Ie,ngTransclude:Fe,ngModel:fe,ngList:he,ngChange:ge,required:Oc,ngRequired:Oc,ngValue:je}).directive({ngInclude:ue}).directive(Pb).directive(Pc),a.provider({$anchorScroll:ed,$animate:Wd,$browser:gd,$cacheFactory:hd,$controller:kd,$document:ld,$exceptionHandler:md,$filter:Cc,$interpolate:rd,$interval:sd,$http:nd,$httpBackend:pd,$location:vd,$log:wd,$parse:zd,$rootScope:Cd,$q:Ad,$sce:Gd,$sceDelegate:Fd,$sniffer:Hd,$templateCache:id,$timeout:Id,$window:Jd})}])}(Ba),z(T).ready(function(){Uc(T,$b)})}(window,document),!angular.$$csp()&&angular.element(document).find("head").prepend(''),function(H,a,A){"use strict";function D(p,g){g=g||{},a.forEach(g,function(a,c){delete g[c]});for(var c in p)!p.hasOwnProperty(c)||"$"===c.charAt(0)&&"$"===c.charAt(1)||(g[c]=p[c]);return g}var v=a.$$minErr("$resource"),C=/^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;a.module("ngResource",["ng"]).factory("$resource",["$http","$q",function(p,g){function c(a,c){this.template=a,this.defaults=c||{},this.urlParams={}}function t(n,w,l){function r(h,d){var e={};return d=x({},w,d),s(d,function(b,d){u(b)&&(b=b());var k;if(b&&b.charAt&&"@"==b.charAt(0)){k=h;var a=b.substr(1);if(null==a||""===a||"hasOwnProperty"===a||!C.test("."+a))throw v("badmember",a);for(var a=a.split("."),f=0,c=a.length;c>f&&k!==A;f++){var g=a[f];k=null!==k?k[g]:A}}else k=b;e[d]=k}),e}function e(a){return a.resource}function f(a){D(a||{},this)}var F=new c(n);return l=x({},B,l),s(l,function(h,d){var c=/^(POST|PUT|PATCH)$/i.test(h.method);f[d]=function(b,d,k,w){var n,l,y,q={};switch(arguments.length){case 4:y=w,l=k;case 3:case 2:if(!u(d)){q=b,n=d,l=k;break}if(u(b)){l=b,y=d;break}l=d,y=k;case 1:u(b)?l=b:c?n=b:q=b;break;case 0:break;default:throw v("badargs",arguments.length)}var t=this instanceof f,m=t?n:h.isArray?[]:new f(n),z={},B=h.interceptor&&h.interceptor.response||e,C=h.interceptor&&h.interceptor.responseError||A;return s(h,function(a,b){"params"!=b&&"isArray"!=b&&"interceptor"!=b&&(z[b]=G(a))}),c&&(z.data=n),F.setUrlParams(z,x({},r(n,h.params||{}),q),h.url),q=p(z).then(function(b){var d=b.data,k=m.$promise;if(d){if(a.isArray(d)!==!!h.isArray)throw v("badcfg",h.isArray?"array":"object",a.isArray(d)?"array":"object");h.isArray?(m.length=0,s(d,function(b){m.push(new f(b))})):(D(d,m),m.$promise=k)}return m.$resolved=!0,b.resource=m,b},function(b){return m.$resolved=!0,(y||E)(b),g.reject(b)}),q=q.then(function(b){var a=B(b);return(l||E)(a,b.headers),a},C),t?q:(m.$promise=q,m.$resolved=!1,m)},f.prototype["$"+d]=function(b,a,k){return u(b)&&(k=a,a=b,b={}),b=f[d].call(this,b,this,a,k),b.$promise||b}}),f.bind=function(a){return t(n,x({},w,a),l)},f}var B={get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}},E=a.noop,s=a.forEach,x=a.extend,G=a.copy,u=a.isFunction;return c.prototype={setUrlParams:function(c,g,l){var f,p,r=this,e=l||r.template,h=r.urlParams={};s(e.split(/\W/),function(a){if("hasOwnProperty"===a)throw v("badname");!/^\d+$/.test(a)&&a&&RegExp("(^|[^\\\\]):"+a+"(\\W|$)").test(e)&&(h[a]=!0)}),e=e.replace(/\\:/g,":"),g=g||{},s(r.urlParams,function(d,c){f=g.hasOwnProperty(c)?g[c]:r.defaults[c],a.isDefined(f)&&null!==f?(p=encodeURIComponent(f).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"%20").replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+"),e=e.replace(RegExp(":"+c+"(\\W|$)","g"),function(a,c){return p+c})):e=e.replace(RegExp("(/?):"+c+"(\\W|$)","g"),function(a,c,d){return"/"==d.charAt(0)?d:c+d})}),e=e.replace(/\/+$/,"")||"/",e=e.replace(/\/\.(?=\w+($|\?))/,"."),c.url=e.replace(/\/\\\./,"/."),s(g,function(a,e){r.urlParams[e]||(c.params=c.params||{},c.params[e]=a)})}},t}])}(window,window.angular),function(h,e){"use strict";function u(w,q,k){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(a,c,b,f,n){function y(){l&&(l.$destroy(),l=null),g&&(k.leave(g),g=null)}function v(){var b=w.current&&w.current.locals;if(e.isDefined(b&&b.$template)){var b=a.$new(),f=w.current;g=n(b,function(d){k.enter(d,null,g||c,function(){!e.isDefined(t)||t&&!a.$eval(t)||q()}),y()}),l=f.scope=b,l.$emit("$viewContentLoaded"),l.$eval(h)}else y()}var l,g,t=b.autoscroll,h=b.onload||"";a.$on("$routeChangeSuccess",v),v()}}}function z(e,h,k){return{restrict:"ECA",priority:-400,link:function(a,c){var b=k.current,f=b.locals;c.html(f.$template);var n=e(c.contents());b.controller&&(f.$scope=a,f=h(b.controller,f),b.controllerAs&&(a[b.controllerAs]=f),c.data("$ngControllerController",f),c.children().data("$ngControllerController",f)),n(a)}}}h=e.module("ngRoute",["ng"]).provider("$route",function(){function h(a,c){return e.extend(new(e.extend(function(){},{prototype:a})),c)}function q(a,e){var b=e.caseInsensitiveMatch,f={originalPath:a,regexp:a},h=f.keys=[];return a=a.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(a,e,b,c){return a="?"===c?c:null,c="*"===c?c:null,h.push({name:b,optional:!!a}),e=e||"",""+(a?"":e)+"(?:"+(a?e:"")+(c&&"(.+?)"||"([^/]+)")+(a||"")+")"+(a||"")}).replace(/([\/$\*])/g,"\\$1"),f.regexp=RegExp("^"+a+"$",b?"i":""),f}var k={};this.when=function(a,c){if(k[a]=e.extend({reloadOnSearch:!0},c,a&&q(a,c)),a){var b="/"==a[a.length-1]?a.substr(0,a.length-1):a+"/";k[b]=e.extend({redirectTo:a},q(b,c))}return this},this.otherwise=function(a){return this.when(null,a),this},this.$get=["$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache","$sce",function(a,c,b,f,n,q,v,l){function g(){var d=t(),m=r.current;d&&m&&d.$$route===m.$$route&&e.equals(d.pathParams,m.pathParams)&&!d.reloadOnSearch&&!x?(m.params=d.params,e.copy(m.params,b),a.$broadcast("$routeUpdate",m)):(d||m)&&(x=!1,a.$broadcast("$routeChangeStart",d,m),(r.current=d)&&d.redirectTo&&(e.isString(d.redirectTo)?c.path(u(d.redirectTo,d.params)).search(d.params).replace():c.url(d.redirectTo(d.pathParams,c.path(),c.search())).replace()),f.when(d).then(function(){if(d){var c,b,a=e.extend({},d.resolve);return e.forEach(a,function(d,c){a[c]=e.isString(d)?n.get(d):n.invoke(d)}),e.isDefined(c=d.template)?e.isFunction(c)&&(c=c(d.params)):e.isDefined(b=d.templateUrl)&&(e.isFunction(b)&&(b=b(d.params)),b=l.getTrustedResourceUrl(b),e.isDefined(b)&&(d.loadedTemplateUrl=b,c=q.get(b,{cache:v}).then(function(a){return a.data}))),e.isDefined(c)&&(a.$template=c),f.all(a)}}).then(function(c){d==r.current&&(d&&(d.locals=c,e.copy(d.params,b)),a.$broadcast("$routeChangeSuccess",d,m))},function(c){d==r.current&&a.$broadcast("$routeChangeError",d,m,c)}))}function t(){var a,b;return e.forEach(k,function(f){var p;if(p=!b){var s=c.path();p=f.keys;var l={};if(f.regexp)if(s=f.regexp.exec(s)){for(var g=1,q=s.length;q>g;++g){var n=p[g-1],r="string"==typeof s[g]?decodeURIComponent(s[g]):s[g];n&&r&&(l[n.name]=r)}p=l}else p=null;else p=null;p=a=p}p&&(b=h(f,{params:e.extend({},c.search(),a),pathParams:a}),b.$$route=f)}),b||k[null]&&h(k[null],{params:{},pathParams:{}})}function u(a,c){var b=[];return e.forEach((a||"").split(":"),function(a,d){if(0===d)b.push(a);else{var e=a.match(/(\w+)(.*)/),f=e[1];b.push(c[f]),b.push(e[2]||""),delete c[f]}}),b.join("")}var x=!1,r={routes:k,reload:function(){x=!0,a.$evalAsync(g)}};return a.$on("$locationChangeSuccess",g),r}]}),h.provider("$routeParams",function(){this.$get=function(){return{}}}),h.directive("ngView",u),h.directive("ngView",z),u.$inject=["$route","$anchorScroll","$animate"],z.$inject=["$compile","$controller","$route"]}(window,window.angular),angular.module("monospaced.qrcode",[]).directive("qrcode",["$window",function($window){var canvas2D=!!$window.CanvasRenderingContext2D,levels={L:"Low",M:"Medium",Q:"Quartile",H:"High"},draw=function(context,qr,modules,tile){for(var row=0;modules>row;row++)for(var col=0;modules>col;col++){var w=Math.ceil((col+1)*tile)-Math.floor(col*tile),h=Math.ceil((row+1)*tile)-Math.floor(row*tile);context.fillStyle=qr.isDark(row,col)?"#000":"#fff",context.fillRect(Math.round(col*tile),Math.round(row*tile),w,h)}};return{restrict:"E",template:"",link:function(scope,element,attrs){var error,version,errorCorrectionLevel,data,size,modules,tile,qr,domElement=element[0],canvas=element.find("canvas")[0],context=canvas2D?canvas.getContext("2d"):null,trim=/^\s+|\s+$/g,setVersion=function(value){version=Math.max(1,Math.min(parseInt(value,10),10))||4},setErrorCorrectionLevel=function(value){errorCorrectionLevel=value in levels?value:"M"},setData=function(value){if(value){data=value.replace(trim,""),qr=qrcode(version,errorCorrectionLevel),qr.addData(data);try{qr.make()}catch(e){return void(error=e.message)}error=!1,modules=qr.getModuleCount()}},setSize=function(value){size=parseInt(value,10)||2*modules,tile=size/modules,canvas.width=canvas.height=size},render=function(){return qr?error?(canvas2D||(domElement.innerHTML=''),void scope.$emit("qrcode:error",error)):void(canvas2D?draw(context,qr,modules,tile):domElement.innerHTML=qr.createImgTag(tile,0)):void 0};setVersion(attrs.version),setErrorCorrectionLevel(attrs.errorCorrectionLevel),setSize(attrs.size),attrs.$observe("version",function(value){value&&(setVersion(value),setData(data),setSize(size),render())}),attrs.$observe("errorCorrectionLevel",function(value){value&&(setErrorCorrectionLevel(value),setData(data),setSize(size),render())}),attrs.$observe("data",function(value){value&&(setData(value),setSize(size),render())}),attrs.$observe("size",function(value){value&&(setSize(value),render())})}}}]),function(z,f,T){"use strict";f.module("ngAnimate",["ng"]).factory("$$animateReflow",["$window","$timeout","$document",function(f,h){var n=f.requestAnimationFrame||f.webkitRequestAnimationFrame||function(d){return h(d,10,!1)},w=f.cancelAnimationFrame||f.webkitCancelAnimationFrame||function(d){return h.cancel(d)};return function(d){var f=n(function(){d()});return function(){w(f)}}}]).factory("$$asyncQueueBuffer",["$timeout",function(f){var h,d=[];return function(n){f.cancel(h),d.push(n),h=f(function(){for(var f=0;f0){if(q=[],m)"setClass"==v.event?(q.push(v),M(e,c)):k[c]&&(N=k[c],N.event==a?d=!0:(q.push(N),M(e,c)));else if("leave"==a&&k["ng-leave"])d=!0;else{for(var N in k)q.push(k[N]),M(e,N);k={},y=0}0=a)){h.cancel(L);var c=d(b);b=f.element(c),Q.push(b),N=a,L=h(function(){U(Q),Q=[]},g,!1)}}function U(b){D(b,function(b){(b=b.data(E))&&(b.closeAnimationFn||w)()})}function V(b,g){var a=g?u[g]:null;if(!a){var k,p,r,h,c=0,d=0,f=0,e=0;D(b,function(b){if(b.nodeType==da){b=l.getComputedStyle(b)||{},r=b[O+ea],c=Math.max(t(r),c),h=b[O+H],k=b[O+ha],d=Math.max(t(k),d),p=b[P+ha],e=Math.max(t(p),e);var g=t(b[P+ea]);g>0&&(g*=parseInt(b[P+K],10)||1),f=Math.max(g,f)}}),a={total:0,transitionPropertyStyle:h,transitionDurationStyle:r,transitionDelayStyle:k,transitionDelay:d,transitionDuration:c,animationDelayStyle:p,animationDelay:e,animationDuration:f},g&&(u[g]=a)}return a}function t(b){var g=0;return b=f.isString(b)?b.split(/\s*,\s*/):[],D(b,function(b){g=Math.max(parseFloat(b)||0,g)}),g}function Y(b){var g=b.parent(),a=g.data(G);return a||(g.data(G,++q),a=q),a+"-"+d(b).className}function X(b,g,a,c){var e=Y(g),k=e+" "+a,l=u[k]?++u[k].total:0,h={};if(l>0){var p=a+"-stagger",h=e+" "+p;(e=!u[h])&&g.addClass(p),h=V(g,h),e&&g.removeClass(p)}c=c||function(b){return b()},g.addClass(a);var p=g.data(E)||{},r=c(function(){return V(g,k)});return c=r.transitionDuration,e=r.animationDuration,0===c&&0===e?(g.removeClass(a),!1):(g.data(E,{running:p.running||0,itemIndex:l,stagger:h,timings:r,closeAnimationFn:f.noop}),b=00&&M(g,a,b),e>0&&(d(g).style[P]="none 0s"),!0)}function M(b,a,c){"ng-enter"!=a&&"ng-move"!=a&&"ng-leave"!=a&&c?b.addClass(ga):d(b).style[O+H]="none"}function R(b){var c=O+H,e=d(b);e.style[c]&&0=u&&a>=s&&e()}var h=d(a);if(b=a.data(E),-1!=h.className.indexOf(c)&&b){var l="";D(c.split(" "),function(b,a){l+=(a>0?" ":"")+b+"-active"});var p=b.stagger,r=b.timings,n=b.itemIndex,s=Math.max(r.transitionDuration,r.animationDuration),t=Math.max(r.transitionDelay,r.animationDelay),u=t*y,x=Date.now(),w=ba+" "+aa,m="",q=[];if(00&&(00?",":"")+(c*a+parseInt(b,10))+"s"}),d}function a(b,a,c,d){return X(b,a,c,d)?function(b){b&&A(a,c)}:void 0}function c(b,a,c,d){return a.data(E)?Z(b,a,c,d):(A(a,c),void d())}function e(b,g,d,e){var f=a(b,g,d);if(f){var h=f;return J(g,function(){R(g,d),S(g),h=c(b,g,d,e)}),function(b){(h||w)(b)}}e()}function A(b,a){b.removeClass(a);var c=b.data(E);c&&(c.running&&c.running--,c.running&&0!==c.running||b.removeData(E))}function k(b,a){var c="";return b=f.isArray(b)?b:b.split(/\s+/),D(b,function(b,d){b&&00?" ":"")+b+a)}),c}var O,aa,P,ba,C="";z.ontransitionend===T&&z.onwebkittransitionend!==T?(C="-webkit-",O="WebkitTransition",aa="webkitTransitionEnd transitionend"):(O="transition",aa="transitionend"),z.onanimationend===T&&z.onwebkitanimationend!==T?(C="-webkit-",P="WebkitAnimation",ba="webkitAnimationEnd animationend"):(P="animation",ba="animationend");var I,ea="Duration",H="Property",ha="Delay",K="IterationCount",G="$$ngAnimateKey",E="$$ngAnimateCSS3Data",ga="ng-animate-block-transitions",$=3,v=1.5,y=1e3,u={},q=0,m=[],L=null,N=0,Q=[];return{enter:function(b,a){return e("enter",b,"ng-enter",a)},leave:function(b,a){return e("leave",b,"ng-leave",a)},move:function(a,c){return e("move",a,"ng-move",c)},beforeSetClass:function(b,c,d,e){var f=k(d,"-remove")+" "+k(c,"-add"),h=a("setClass",b,f,function(a){var e=b.attr("class");return b.removeClass(d),b.addClass(c),a=a(),b.attr("class",e),a});return h?(J(b,function(){R(b,f),S(b),e()}),h):void e()},beforeAddClass:function(b,c,d){var e=a("addClass",b,k(c,"-add"),function(a){return b.addClass(c),a=a(),b.removeClass(c),a});return e?(J(b,function(){R(b,c),S(b),d()}),e):void d()},setClass:function(a,d,e,f){return e=k(e,"-remove"),d=k(d,"-add"),c("setClass",a,e+" "+d,f)},addClass:function(a,d,e){return c("addClass",a,k(d,"-add"),e)},beforeRemoveClass:function(b,c,d){var e=a("removeClass",b,k(c,"-remove"),function(a){var d=b.attr("class");return b.removeClass(c),a=a(),b.attr("class",d),a});return e?(J(b,function(){R(b,c),S(b),d()}),e):void d()},removeClass:function(a,d,e){return c("removeClass",a,k(d,"-remove"),e)}}}])}])}(window,window.angular),angular.module("ui.bootstrap",["ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdownToggle","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(a,b,c){function d(a){for(var b in a)if(void 0!==f.style[b])return a[b]}var e=function(d,f,g){g=g||{};var h=a.defer(),i=e[g.animation?"animationEndEventName":"transitionEndEventName"],j=function(){c.$apply(function(){d.unbind(i,j),h.resolve(d)})};return i&&d.bind(i,j),b(function(){angular.isString(f)?d.addClass(f):angular.isFunction(f)?f(d):angular.isObject(f)&&d.css(f),i||h.resolve(d)}),h.promise.cancel=function(){i&&d.unbind(i,j),h.reject("Transition cancelled")},h.promise},f=document.createElement("trans"),g={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},h={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return e.transitionEndEventName=d(g),e.animationEndEventName=d(h),e}]),angular.module("ui.bootstrap.collapse",["ui.bootstrap.transition"]).directive("collapse",["$transition",function(a){return{link:function(b,c,d){function e(b){function d(){j===e&&(j=void 0)}var e=a(c,b);return j&&j.cancel(),j=e,e.then(d,d),e}function f(){k?(k=!1,g()):(c.removeClass("collapse").addClass("collapsing"),e({height:c[0].scrollHeight+"px"}).then(g))}function g(){c.removeClass("collapsing"),c.addClass("collapse in"),c.css({height:"auto"})}function h(){k?(k=!1,i(),c.css({height:0})):(c.css({height:c[0].scrollHeight+"px"}),c[0].offsetWidth,c.removeClass("collapse in").addClass("collapsing"),e({height:0}).then(i))}function i(){c.removeClass("collapsing"),c.addClass("collapse")}var j,k=!0;b.$watch(d.collapse,function(a){a?h():f()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(a,b,c){this.groups=[],this.closeOthers=function(d){var e=angular.isDefined(b.closeOthers)?a.$eval(b.closeOthers):c.closeOthers;e&&angular.forEach(this.groups,function(a){a!==d&&(a.isOpen=!1)})},this.addGroup=function(a){var b=this;this.groups.push(a),a.$on("$destroy",function(){b.removeGroup(a)})},this.removeGroup=function(a){var b=this.groups.indexOf(a);-1!==b&&this.groups.splice(this.groups.indexOf(a),1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",["$parse",function(a){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-group.html",scope:{heading:"@"},controller:function(){this.setHeading=function(a){this.heading=a}},link:function(b,c,d,e){var f,g;e.addGroup(b),b.isOpen=!1,d.isOpen&&(f=a(d.isOpen),g=f.assign,b.$parent.$watch(f,function(a){b.isOpen=!!a})),b.$watch("isOpen",function(a){a&&e.closeOthers(b),g&&g(b.$parent,a)})}}}]).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",compile:function(a,b,c){return function(a,b,d,e){e.setHeading(c(a,function(){}))}}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(a,b,c,d){a.$watch(function(){return d[c.accordionTransclude]},function(a){a&&(b.html(""),b.append(a))})}}}),angular.module("ui.bootstrap.alert",[]).controller("AlertController",["$scope","$attrs",function(a,b){a.closeable="close"in b}]).directive("alert",function(){return{restrict:"EA",controller:"AlertController",templateUrl:"template/alert/alert.html",transclude:!0,replace:!0,scope:{type:"=",close:"&"}}}),angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(a,b,c){b.addClass("ng-binding").data("$binding",c.bindHtmlUnsafe),a.$watch(c.bindHtmlUnsafe,function(a){b.html(a||"")})}}),angular.module("ui.bootstrap.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).controller("ButtonsController",["buttonConfig",function(a){this.activeClass=a.activeClass||"active",this.toggleEvent=a.toggleEvent||"click"}]).directive("btnRadio",function(){return{require:["btnRadio","ngModel"],controller:"ButtonsController",link:function(a,b,c,d){var e=d[0],f=d[1];f.$render=function(){b.toggleClass(e.activeClass,angular.equals(f.$modelValue,a.$eval(c.btnRadio)))},b.bind(e.toggleEvent,function(){b.hasClass(e.activeClass)||a.$apply(function(){f.$setViewValue(a.$eval(c.btnRadio)),f.$render()})})}}}).directive("btnCheckbox",function(){return{require:["btnCheckbox","ngModel"],controller:"ButtonsController",link:function(a,b,c,d){function e(){return g(c.btnCheckboxTrue,!0)}function f(){return g(c.btnCheckboxFalse,!1)}function g(b,c){var d=a.$eval(b);return angular.isDefined(d)?d:c}var h=d[0],i=d[1];i.$render=function(){b.toggleClass(h.activeClass,angular.equals(i.$modelValue,e()))},b.bind(h.toggleEvent,function(){a.$apply(function(){i.$setViewValue(b.hasClass(h.activeClass)?f():e()),i.$render()})})}}}),angular.module("ui.bootstrap.carousel",["ui.bootstrap.transition"]).controller("CarouselController",["$scope","$timeout","$transition","$q",function(a,b,c){function d(){e();var c=+a.interval;!isNaN(c)&&c>=0&&(g=b(f,c))}function e(){g&&(b.cancel(g),g=null)}function f(){h?(a.next(),d()):a.pause()}var g,h,i=this,j=i.slides=[],k=-1;i.currentSlide=null;var l=!1;i.select=function(e,f){function g(){l||(i.currentSlide&&angular.isString(f)&&!a.noTransition&&e.$element?(e.$element.addClass(f),e.$element[0].offsetWidth,angular.forEach(j,function(a){angular.extend(a,{direction:"",entering:!1,leaving:!1,active:!1})}),angular.extend(e,{direction:f,active:!0,entering:!0}),angular.extend(i.currentSlide||{},{direction:f,leaving:!0}),a.$currentTransition=c(e.$element,{}),function(b,c){a.$currentTransition.then(function(){h(b,c)},function(){h(b,c)})}(e,i.currentSlide)):h(e,i.currentSlide),i.currentSlide=e,k=m,d())}function h(b,c){angular.extend(b,{direction:"",active:!0,leaving:!1,entering:!1}),angular.extend(c||{},{direction:"",active:!1,leaving:!1,entering:!1}),a.$currentTransition=null}var m=j.indexOf(e);void 0===f&&(f=m>k?"next":"prev"),e&&e!==i.currentSlide&&(a.$currentTransition?(a.$currentTransition.cancel(),b(g)):g())},a.$on("$destroy",function(){l=!0}),i.indexOfSlide=function(a){return j.indexOf(a)},a.next=function(){var b=(k+1)%j.length;return a.$currentTransition?void 0:i.select(j[b],"next")},a.prev=function(){var b=0>k-1?j.length-1:k-1;return a.$currentTransition?void 0:i.select(j[b],"prev")},a.select=function(a){i.select(a)},a.isActive=function(a){return i.currentSlide===a},a.slides=function(){return j},a.$watch("interval",d),a.$on("$destroy",e),a.play=function(){h||(h=!0,d())},a.pause=function(){a.noPause||(h=!1,e())},i.addSlide=function(b,c){b.$element=c,j.push(b),1===j.length||b.active?(i.select(j[j.length-1]),1==j.length&&a.play()):b.active=!1},i.removeSlide=function(a){var b=j.indexOf(a);j.splice(b,1),j.length>0&&a.active?i.select(b>=j.length?j[b-1]:j[b]):k>b&&k--}}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",require:"carousel",templateUrl:"template/carousel/carousel.html",scope:{interval:"=",noTransition:"=",noPause:"="}}}]).directive("slide",["$parse",function(a){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/carousel/slide.html",scope:{},link:function(b,c,d,e){if(d.active){var f=a(d.active),g=f.assign,h=b.active=f(b.$parent);b.$watch(function(){var a=f(b.$parent);return a!==b.active&&(a!==h?h=b.active=a:g(b.$parent,a=h=b.active)),a})}e.addSlide(b,c),b.$on("$destroy",function(){e.removeSlide(b)}),b.$watch("active",function(a){a&&e.select(b)})}}}]),angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(a,b){function c(a,c){return a.currentStyle?a.currentStyle[c]:b.getComputedStyle?b.getComputedStyle(a)[c]:a.style[c]}function d(a){return"static"===(c(a,"position")||"static")}var e=function(b){for(var c=a[0],e=b.offsetParent||c;e&&e!==c&&d(e);)e=e.offsetParent;return e||c};return{position:function(b){var c=this.offset(b),d={top:0,left:0},f=e(b[0]);f!=a[0]&&(d=this.offset(angular.element(f)),d.top+=f.clientTop-f.scrollTop,d.left+=f.clientLeft-f.scrollLeft);var g=b[0].getBoundingClientRect();return{width:g.width||b.prop("offsetWidth"),height:g.height||b.prop("offsetHeight"),top:c.top-d.top,left:c.left-d.left}},offset:function(c){var d=c[0].getBoundingClientRect();return{width:d.width||c.prop("offsetWidth"),height:d.height||c.prop("offsetHeight"),top:d.top+(b.pageYOffset||a[0].body.scrollTop||a[0].documentElement.scrollTop),left:d.left+(b.pageXOffset||a[0].body.scrollLeft||a[0].documentElement.scrollLeft)} -}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.position"]).constant("datepickerConfig",{dayFormat:"dd",monthFormat:"MMMM",yearFormat:"yyyy",dayHeaderFormat:"EEE",dayTitleFormat:"MMMM yyyy",monthTitleFormat:"yyyy",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null}).controller("DatepickerController",["$scope","$attrs","dateFilter","datepickerConfig",function(a,b,c,d){function e(b,c){return angular.isDefined(b)?a.$parent.$eval(b):c}function f(a,b){return new Date(a,b,0).getDate()}function g(a,b){for(var c=new Array(b),d=a,e=0;b>e;)c[e++]=new Date(d),d.setDate(d.getDate()+1);return c}function h(a,b,d,e){return{date:a,label:c(a,b),selected:!!d,secondary:!!e}}var i={day:e(b.dayFormat,d.dayFormat),month:e(b.monthFormat,d.monthFormat),year:e(b.yearFormat,d.yearFormat),dayHeader:e(b.dayHeaderFormat,d.dayHeaderFormat),dayTitle:e(b.dayTitleFormat,d.dayTitleFormat),monthTitle:e(b.monthTitleFormat,d.monthTitleFormat)},j=e(b.startingDay,d.startingDay),k=e(b.yearRange,d.yearRange);this.minDate=d.minDate?new Date(d.minDate):null,this.maxDate=d.maxDate?new Date(d.maxDate):null,this.modes=[{name:"day",getVisibleDates:function(a,b){var d=a.getFullYear(),e=a.getMonth(),k=new Date(d,e,1),l=j-k.getDay(),m=l>0?7-l:-l,n=new Date(k),o=0;m>0&&(n.setDate(-m+1),o+=m),o+=f(d,e+1),o+=(7-o%7)%7;for(var p=g(n,o),q=new Array(7),r=0;o>r;r++){var s=new Date(p[r]);p[r]=h(s,i.day,b&&b.getDate()===s.getDate()&&b.getMonth()===s.getMonth()&&b.getFullYear()===s.getFullYear(),s.getMonth()!==e)}for(var t=0;7>t;t++)q[t]=c(p[t].date,i.dayHeader);return{objects:p,title:c(a,i.dayTitle),labels:q}},compare:function(a,b){return new Date(a.getFullYear(),a.getMonth(),a.getDate())-new Date(b.getFullYear(),b.getMonth(),b.getDate())},split:7,step:{months:1}},{name:"month",getVisibleDates:function(a,b){for(var d=new Array(12),e=a.getFullYear(),f=0;12>f;f++){var g=new Date(e,f,1);d[f]=h(g,i.month,b&&b.getMonth()===f&&b.getFullYear()===e)}return{objects:d,title:c(a,i.monthTitle)}},compare:function(a,b){return new Date(a.getFullYear(),a.getMonth())-new Date(b.getFullYear(),b.getMonth())},split:3,step:{years:1}},{name:"year",getVisibleDates:function(a,b){for(var c=new Array(k),d=a.getFullYear(),e=parseInt((d-1)/k,10)*k+1,f=0;k>f;f++){var g=new Date(e+f,0,1);c[f]=h(g,i.year,b&&b.getFullYear()===g.getFullYear())}return{objects:c,title:[c[0].label,c[k-1].label].join(" - ")}},compare:function(a,b){return a.getFullYear()-b.getFullYear()},split:5,step:{years:k}}],this.isDisabled=function(b,c){var d=this.modes[c||0];return this.minDate&&d.compare(b,this.minDate)<0||this.maxDate&&d.compare(b,this.maxDate)>0||a.dateDisabled&&a.dateDisabled({date:b,mode:d.name})}}]).directive("datepicker",["dateFilter","$parse","datepickerConfig","$log",function(a,b,c,d){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/datepicker.html",scope:{dateDisabled:"&"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(a,e,f,g){function h(){a.showWeekNumbers=0===o&&q}function i(a,b){for(var c=[];a.length>0;)c.push(a.splice(0,b));return c}function j(b){var c=null,e=!0;n.$modelValue&&(c=new Date(n.$modelValue),isNaN(c)?(e=!1,d.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):b&&(p=c)),n.$setValidity("date",e);var f=m.modes[o],g=f.getVisibleDates(p,c);angular.forEach(g.objects,function(a){a.disabled=m.isDisabled(a.date,o)}),n.$setValidity("date-disabled",!c||!m.isDisabled(c)),a.rows=i(g.objects,f.split),a.labels=g.labels||[],a.title=g.title}function k(a){o=a,h(),j()}function l(a){var b=new Date(a);b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1}var m=g[0],n=g[1];if(n){var o=0,p=new Date,q=c.showWeeks;f.showWeeks?a.$parent.$watch(b(f.showWeeks),function(a){q=!!a,h()}):h(),f.min&&a.$parent.$watch(b(f.min),function(a){m.minDate=a?new Date(a):null,j()}),f.max&&a.$parent.$watch(b(f.max),function(a){m.maxDate=a?new Date(a):null,j()}),n.$render=function(){j(!0)},a.select=function(a){if(0===o){var b=n.$modelValue?new Date(n.$modelValue):new Date(0,0,0,0,0,0,0);b.setFullYear(a.getFullYear(),a.getMonth(),a.getDate()),n.$setViewValue(b),j(!0)}else p=a,k(o-1)},a.move=function(a){var b=m.modes[o].step;p.setMonth(p.getMonth()+a*(b.months||0)),p.setFullYear(p.getFullYear()+a*(b.years||0)),j()},a.toggleMode=function(){k((o+1)%m.modes.length)},a.getWeekNumber=function(b){return 0===o&&a.showWeekNumbers&&7===b.length?l(b[0].date):null}}}}}]).constant("datepickerPopupConfig",{dateFormat:"yyyy-MM-dd",currentText:"Today",toggleWeeksText:"Weeks",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0}).directive("datepickerPopup",["$compile","$parse","$document","$position","dateFilter","datepickerPopupConfig","datepickerConfig",function(a,b,c,d,e,f,g){return{restrict:"EA",require:"ngModel",link:function(h,i,j,k){function l(a){u?u(h,!!a):q.isOpen=!!a}function m(a){if(a){if(angular.isDate(a))return k.$setValidity("date",!0),a;if(angular.isString(a)){var b=new Date(a);return isNaN(b)?void k.$setValidity("date",!1):(k.$setValidity("date",!0),b)}return void k.$setValidity("date",!1)}return k.$setValidity("date",!0),null}function n(a,c,d){a&&(h.$watch(b(a),function(a){q[c]=a}),y.attr(d||c,c))}function o(){q.position=s?d.offset(i):d.position(i),q.position.top=q.position.top+i.prop("offsetHeight")}var p,q=h.$new(),r=angular.isDefined(j.closeOnDateSelection)?h.$eval(j.closeOnDateSelection):f.closeOnDateSelection,s=angular.isDefined(j.datepickerAppendToBody)?h.$eval(j.datepickerAppendToBody):f.appendToBody;j.$observe("datepickerPopup",function(a){p=a||f.dateFormat,k.$render()}),q.showButtonBar=angular.isDefined(j.showButtonBar)?h.$eval(j.showButtonBar):f.showButtonBar,h.$on("$destroy",function(){B.remove(),q.$destroy()}),j.$observe("currentText",function(a){q.currentText=angular.isDefined(a)?a:f.currentText}),j.$observe("toggleWeeksText",function(a){q.toggleWeeksText=angular.isDefined(a)?a:f.toggleWeeksText}),j.$observe("clearText",function(a){q.clearText=angular.isDefined(a)?a:f.clearText}),j.$observe("closeText",function(a){q.closeText=angular.isDefined(a)?a:f.closeText});var t,u;j.isOpen&&(t=b(j.isOpen),u=t.assign,h.$watch(t,function(a){q.isOpen=!!a})),q.isOpen=t?t(h):!1;var v=function(a){q.isOpen&&a.target!==i[0]&&q.$apply(function(){l(!1)})},w=function(){q.$apply(function(){l(!0)})},x=angular.element("
");x.attr({"ng-model":"date","ng-change":"dateSelection()"});var y=angular.element(x.children()[0]);j.datepickerOptions&&y.attr(angular.extend({},h.$eval(j.datepickerOptions))),k.$parsers.unshift(m),q.dateSelection=function(a){angular.isDefined(a)&&(q.date=a),k.$setViewValue(q.date),k.$render(),r&&l(!1)},i.bind("input change keyup",function(){q.$apply(function(){q.date=k.$modelValue})}),k.$render=function(){var a=k.$viewValue?e(k.$viewValue,p):"";i.val(a),q.date=k.$modelValue},n(j.min,"min"),n(j.max,"max"),j.showWeeks?n(j.showWeeks,"showWeeks","show-weeks"):(q.showWeeks=g.showWeeks,y.attr("show-weeks","showWeeks")),j.dateDisabled&&y.attr("date-disabled",j.dateDisabled);var z=!1,A=!1;q.$watch("isOpen",function(a){a?(o(),c.bind("click",v),A&&i.unbind("focus",w),i[0].focus(),z=!0):(z&&c.unbind("click",v),i.bind("focus",w),A=!0),u&&u(h,a)}),q.today=function(){q.dateSelection(new Date)},q.clear=function(){q.dateSelection(null)};var B=a(x)(q);s?c.find("body").append(B):i.after(B)}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"template/datepicker/popup.html",link:function(a,b){b.bind("click",function(a){a.preventDefault(),a.stopPropagation()})}}}),angular.module("ui.bootstrap.dropdownToggle",[]).directive("dropdownToggle",["$document","$location",function(a){var b=null,c=angular.noop;return{restrict:"CA",link:function(d,e){d.$watch("$location.path",function(){c()}),e.parent().bind("click",function(){c()}),e.bind("click",function(d){var f=e===b;d.preventDefault(),d.stopPropagation(),b&&c(),f||e.hasClass("disabled")||e.prop("disabled")||(e.parent().addClass("open"),b=e,c=function(d){d&&(d.preventDefault(),d.stopPropagation()),a.unbind("click",c),e.parent().removeClass("open"),c=angular.noop,b=null},a.bind("click",c))})}}}]),angular.module("ui.bootstrap.modal",[]).factory("$$stackedMap",function(){return{createNew:function(){var a=[];return{add:function(b,c){a.push({key:b,value:c})},get:function(b){for(var c=0;c0),h&&-1==e()&&(h.remove(),h=void 0),d.modalScope.$destroy()}var g,h,i="modal-open",j=c.$new(!0),k=d.createNew(),l={};return c.$watch(e,function(a){j.index=a}),a.bind("keydown",function(a){var b;27===a.which&&(b=k.top(),b&&b.value.keyboard&&c.$apply(function(){l.dismiss(b.key)}))}),l.open=function(c,d){k.add(c,{deferred:d.deferred,modalScope:d.scope,backdrop:d.backdrop,keyboard:d.keyboard});var f=a.find("body").eq(0);e()>=0&&!h&&(g=angular.element("
"),h=b(g)(j),f.append(h));var l=angular.element("
");l.attr("window-class",d.windowClass),l.attr("index",k.length()-1),l.html(d.content);var m=b(l)(d.scope);k.top().value.modalDomEl=m,f.append(m),f.addClass(i)},l.close=function(a,b){var c=k.get(a).value;c&&(c.deferred.resolve(b),f(a))},l.dismiss=function(a,b){var c=k.get(a).value;c&&(c.deferred.reject(b),f(a))},l.getTop=function(){return k.top()},l}]).provider("$modal",function(){var a={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(b,c,d,e,f,g,h){function i(a){return a.template?d.when(a.template):e.get(a.templateUrl,{cache:f}).then(function(a){return a.data})}function j(a){var c=[];return angular.forEach(a,function(a){(angular.isFunction(a)||angular.isArray(a))&&c.push(d.when(b.invoke(a)))}),c}var k={};return k.open=function(b){var e=d.defer(),f=d.defer(),k={result:e.promise,opened:f.promise,close:function(a){h.close(k,a)},dismiss:function(a){h.dismiss(k,a)}};if(b=angular.extend({},a.options,b),b.resolve=b.resolve||{},!b.template&&!b.templateUrl)throw new Error("One of template or templateUrl options is required.");var l=d.all([i(b)].concat(j(b.resolve)));return l.then(function(a){var d=(b.scope||c).$new();d.$close=k.close,d.$dismiss=k.dismiss;var f,i={},j=1;b.controller&&(i.$scope=d,i.$modalInstance=k,angular.forEach(b.resolve,function(b,c){i[c]=a[j++]}),f=g(b.controller,i)),h.open(k,{scope:d,deferred:e,content:a[0],backdrop:b.backdrop,keyboard:b.keyboard,windowClass:b.windowClass})},function(a){e.reject(a)}),l.then(function(){f.resolve(!0)},function(){f.reject(!1)}),k},k}]};return a}),angular.module("ui.bootstrap.pagination",[]).controller("PaginationController",["$scope","$attrs","$parse","$interpolate",function(a,b,c,d){var e=this,f=b.numPages?c(b.numPages).assign:angular.noop;this.init=function(d){b.itemsPerPage?a.$parent.$watch(c(b.itemsPerPage),function(b){e.itemsPerPage=parseInt(b,10),a.totalPages=e.calculateTotalPages()}):this.itemsPerPage=d},this.noPrevious=function(){return 1===this.page},this.noNext=function(){return this.page===a.totalPages},this.isActive=function(a){return this.page===a},this.calculateTotalPages=function(){var b=this.itemsPerPage<1?1:Math.ceil(a.totalItems/this.itemsPerPage);return Math.max(b||0,1)},this.getAttributeValue=function(b,c,e){return angular.isDefined(b)?e?d(b)(a.$parent):a.$parent.$eval(b):c},this.render=function(){this.page=parseInt(a.page,10)||1,this.page>0&&this.page<=a.totalPages&&(a.pages=this.getPages(this.page,a.totalPages))},a.selectPage=function(b){!e.isActive(b)&&b>0&&b<=a.totalPages&&(a.page=b,a.onSelectPage({page:b}))},a.$watch("page",function(){e.render()}),a.$watch("totalItems",function(){a.totalPages=e.calculateTotalPages()}),a.$watch("totalPages",function(b){f(a.$parent,b),e.page>b?a.selectPage(b):e.render()})}]).constant("paginationConfig",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("pagination",["$parse","paginationConfig",function(a,b){return{restrict:"EA",scope:{page:"=",totalItems:"=",onSelectPage:" &"},controller:"PaginationController",templateUrl:"template/pagination/pagination.html",replace:!0,link:function(c,d,e,f){function g(a,b,c,d){return{number:a,text:b,active:c,disabled:d}}var h,i=f.getAttributeValue(e.boundaryLinks,b.boundaryLinks),j=f.getAttributeValue(e.directionLinks,b.directionLinks),k=f.getAttributeValue(e.firstText,b.firstText,!0),l=f.getAttributeValue(e.previousText,b.previousText,!0),m=f.getAttributeValue(e.nextText,b.nextText,!0),n=f.getAttributeValue(e.lastText,b.lastText,!0),o=f.getAttributeValue(e.rotate,b.rotate);f.init(b.itemsPerPage),e.maxSize&&c.$parent.$watch(a(e.maxSize),function(a){h=parseInt(a,10),f.render()}),f.getPages=function(a,b){var c=[],d=1,e=b,p=angular.isDefined(h)&&b>h;p&&(o?(d=Math.max(a-Math.floor(h/2),1),e=d+h-1,e>b&&(e=b,d=e-h+1)):(d=(Math.ceil(a/h)-1)*h+1,e=Math.min(d+h-1,b)));for(var q=d;e>=q;q++){var r=g(q,q,f.isActive(q),!1);c.push(r)}if(p&&!o){if(d>1){var s=g(d-1,"...",!1,!1);c.unshift(s)}if(b>e){var t=g(e+1,"...",!1,!1);c.push(t)}}if(j){var u=g(a-1,l,!1,f.noPrevious());c.unshift(u);var v=g(a+1,m,!1,f.noNext());c.push(v)}if(i){var w=g(1,k,!1,f.noPrevious());c.unshift(w);var x=g(b,n,!1,f.noNext());c.push(x)}return c}}}}]).constant("pagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("pager",["pagerConfig",function(a){return{restrict:"EA",scope:{page:"=",totalItems:"=",onSelectPage:" &"},controller:"PaginationController",templateUrl:"template/pagination/pager.html",replace:!0,link:function(b,c,d,e){function f(a,b,c,d,e){return{number:a,text:b,disabled:c,previous:i&&d,next:i&&e}}var g=e.getAttributeValue(d.previousText,a.previousText,!0),h=e.getAttributeValue(d.nextText,a.nextText,!0),i=e.getAttributeValue(d.align,a.align);e.init(a.itemsPerPage),e.getPages=function(a){return[f(a-1,g,e.noPrevious(),!0,!1),f(a+1,h,e.noNext(),!1,!0)]}}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function a(a){var b=/[A-Z]/g,c="-";return a.replace(b,function(a,b){return(b?c:"")+a.toLowerCase()})}var b={placement:"top",animation:!0,popupDelay:0},c={mouseenter:"mouseleave",click:"click",focus:"blur"},d={};this.options=function(a){angular.extend(d,a)},this.setTriggers=function(a){angular.extend(c,a)},this.$get=["$window","$compile","$timeout","$parse","$document","$position","$interpolate",function(e,f,g,h,i,j,k){return function(e,l,m){function n(a){var b=a||o.trigger||m,d=c[b]||b;return{show:b,hide:d}}var o=angular.extend({},b,d),p=a(e),q=k.startSymbol(),r=k.endSymbol(),s="
';return{restrict:"EA",scope:!0,link:function(a,b,c){function d(){a.tt_isOpen?m():k()}function k(){(!y||a.$eval(c[l+"Enable"]))&&(a.tt_popupDelay?(t=g(p,a.tt_popupDelay),t.then(function(a){a()})):a.$apply(p)())}function m(){a.$apply(function(){q()})}function p(){return a.tt_content?(r&&g.cancel(r),u.css({top:0,left:0,display:"block"}),v?i.find("body").append(u):b.after(u),z(),a.tt_isOpen=!0,z):angular.noop}function q(){a.tt_isOpen=!1,g.cancel(t),a.tt_animation?r=g(function(){u.remove()},500):u.remove()}var r,t,u=f(s)(a),v=angular.isDefined(o.appendToBody)?o.appendToBody:!1,w=n(void 0),x=!1,y=angular.isDefined(c[l+"Enable"]),z=function(){var c,d,e,f;switch(c=v?j.offset(b):j.position(b),d=u.prop("offsetWidth"),e=u.prop("offsetHeight"),a.tt_placement){case"right":f={top:c.top+c.height/2-e/2,left:c.left+c.width};break;case"bottom":f={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"left":f={top:c.top+c.height/2-e/2,left:c.left-d};break;default:f={top:c.top-e,left:c.left+c.width/2-d/2}}f.top+="px",f.left+="px",u.css(f)};a.tt_isOpen=!1,c.$observe(e,function(b){a.tt_content=b,!b&&a.tt_isOpen&&q()}),c.$observe(l+"Title",function(b){a.tt_title=b}),c.$observe(l+"Placement",function(b){a.tt_placement=angular.isDefined(b)?b:o.placement}),c.$observe(l+"PopupDelay",function(b){var c=parseInt(b,10);a.tt_popupDelay=isNaN(c)?o.popupDelay:c});var A=function(){x&&(b.unbind(w.show,k),b.unbind(w.hide,m))};c.$observe(l+"Trigger",function(a){A(),w=n(a),w.show===w.hide?b.bind(w.show,d):(b.bind(w.show,k),b.bind(w.hide,m)),x=!0});var B=a.$eval(c[l+"Animation"]);a.tt_animation=angular.isDefined(B)?!!B:o.animation,c.$observe(l+"AppendToBody",function(b){v=angular.isDefined(b)?h(b)(a):v}),v&&a.$on("$locationChangeSuccess",function(){a.tt_isOpen&&q()}),a.$on("$destroy",function(){g.cancel(r),g.cancel(t),A(),u.remove(),u.unbind(),u=null})}}}}]}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(a){return a("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(a){return a("tooltipHtmlUnsafe","tooltip","mouseenter")}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("popoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html"}}).directive("popover",["$compile","$timeout","$parse","$window","$tooltip",function(a,b,c,d,e){return e("popover","popover","click")}]),angular.module("ui.bootstrap.progressbar",["ui.bootstrap.transition"]).constant("progressConfig",{animate:!0,max:100}).controller("ProgressController",["$scope","$attrs","progressConfig","$transition",function(a,b,c,d){var e=this,f=[],g=angular.isDefined(b.max)?a.$parent.$eval(b.max):c.max,h=angular.isDefined(b.animate)?a.$parent.$eval(b.animate):c.animate;this.addBar=function(a,b){var c=0,d=a.$parent.$index;angular.isDefined(d)&&f[d]&&(c=f[d].value),f.push(a),this.update(b,a.value,c),a.$watch("value",function(a,c){a!==c&&e.update(b,a,c)}),a.$on("$destroy",function(){e.removeBar(a)})},this.update=function(a,b,c){var e=this.getPercentage(b);h?(a.css("width",this.getPercentage(c)+"%"),d(a,{width:e+"%"})):a.css({transition:"none",width:e+"%"})},this.removeBar=function(a){f.splice(f.indexOf(a),1)},this.getPercentage=function(a){return Math.round(100*a/g)}}]).directive("progress",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",require:"progress",scope:{},template:'
'}}).directive("bar",function(){return{restrict:"EA",replace:!0,transclude:!0,require:"^progress",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(a,b,c,d){d.addBar(a,b)}}}).directive("progressbar",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/progressbar.html",link:function(a,b,c,d){d.addBar(a,angular.element(b.children()[0]))}}}),angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5,stateOn:null,stateOff:null}).controller("RatingController",["$scope","$attrs","$parse","ratingConfig",function(a,b,c,d){this.maxRange=angular.isDefined(b.max)?a.$parent.$eval(b.max):d.max,this.stateOn=angular.isDefined(b.stateOn)?a.$parent.$eval(b.stateOn):d.stateOn,this.stateOff=angular.isDefined(b.stateOff)?a.$parent.$eval(b.stateOff):d.stateOff,this.createRateObjects=function(a){for(var b={stateOn:this.stateOn,stateOff:this.stateOff},c=0,d=a.length;d>c;c++)a[c]=angular.extend({index:c},b,a[c]);return a},a.range=this.createRateObjects(angular.isDefined(b.ratingStates)?angular.copy(a.$parent.$eval(b.ratingStates)):new Array(this.maxRange)),a.rate=function(b){a.readonly||a.value===b||(a.value=b)},a.enter=function(b){a.readonly||(a.val=b),a.onHover({value:b})},a.reset=function(){a.val=angular.copy(a.value),a.onLeave()},a.$watch("value",function(b){a.val=b}),a.readonly=!1,b.readonly&&a.$parent.$watch(c(b.readonly),function(b){a.readonly=!!b})}]).directive("rating",function(){return{restrict:"EA",scope:{value:"=",onHover:"&",onLeave:"&"},controller:"RatingController",templateUrl:"template/rating/rating.html",replace:!0}}),angular.module("ui.bootstrap.tabs",[]).controller("TabsetController",["$scope",function(a){var b=this,c=b.tabs=a.tabs=[];b.select=function(a){angular.forEach(c,function(a){a.active=!1}),a.active=!0},b.addTab=function(a){c.push(a),(1===c.length||a.active)&&b.select(a)},b.removeTab=function(a){var d=c.indexOf(a);if(a.active&&c.length>1){var e=d==c.length-1?d-1:d+1;b.select(c[e])}c.splice(d,1)}}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(a,b,c){a.vertical=angular.isDefined(c.vertical)?a.$parent.$eval(c.vertical):!1,a.justified=angular.isDefined(c.justified)?a.$parent.$eval(c.justified):!1,a.type=angular.isDefined(c.type)?a.$parent.$eval(c.type):"tabs"}}}).directive("tab",["$parse",function(a){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},compile:function(b,c,d){return function(b,c,e,f){var g,h;e.active?(g=a(e.active),h=g.assign,b.$parent.$watch(g,function(a,c){a!==c&&(b.active=!!a)}),b.active=g(b.$parent)):h=g=angular.noop,b.$watch("active",function(a){h(b.$parent,a),a?(f.select(b),b.onSelect()):b.onDeselect()}),b.disabled=!1,e.disabled&&b.$parent.$watch(a(e.disabled),function(a){b.disabled=!!a}),b.select=function(){b.disabled||(b.active=!0)},f.addTab(b),b.$on("$destroy",function(){f.removeTab(b)}),b.$transcludeFn=d}}}}]).directive("tabHeadingTransclude",[function(){return{restrict:"A",require:"^tab",link:function(a,b){a.$watch("headingElement",function(a){a&&(b.html(""),b.append(a))})}}}]).directive("tabContentTransclude",function(){function a(a){return a.tagName&&(a.hasAttribute("tab-heading")||a.hasAttribute("data-tab-heading")||"tab-heading"===a.tagName.toLowerCase()||"data-tab-heading"===a.tagName.toLowerCase())}return{restrict:"A",require:"^tabset",link:function(b,c,d){var e=b.$eval(d.tabContentTransclude);e.$transcludeFn(e.$parent,function(b){angular.forEach(b,function(b){a(b)?e.headingElement=b:c.append(b)})})}}}),angular.module("ui.bootstrap.timepicker",[]).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0}).directive("timepicker",["$parse","$log","timepickerConfig","$locale",function(a,b,c,d){return{restrict:"EA",require:"?^ngModel",replace:!0,scope:{},templateUrl:"template/timepicker/timepicker.html",link:function(e,f,g,h){function i(){var a=parseInt(e.hours,10),b=e.showMeridian?a>0&&13>a:a>=0&&24>a;return b?(e.showMeridian&&(12===a&&(a=0),e.meridian===q[1]&&(a+=12)),a):void 0}function j(){var a=parseInt(e.minutes,10);return a>=0&&60>a?a:void 0}function k(a){return angular.isDefined(a)&&a.toString().length<2?"0"+a:a}function l(a){m(),h.$setViewValue(new Date(p)),n(a)}function m(){h.$setValidity("time",!0),e.invalidHours=!1,e.invalidMinutes=!1}function n(a){var b=p.getHours(),c=p.getMinutes();e.showMeridian&&(b=0===b||12===b?12:b%12),e.hours="h"===a?b:k(b),e.minutes="m"===a?c:k(c),e.meridian=p.getHours()<12?q[0]:q[1]}function o(a){var b=new Date(p.getTime()+6e4*a);p.setHours(b.getHours(),b.getMinutes()),l()}if(h){var p=new Date,q=angular.isDefined(g.meridians)?e.$parent.$eval(g.meridians):c.meridians||d.DATETIME_FORMATS.AMPMS,r=c.hourStep;g.hourStep&&e.$parent.$watch(a(g.hourStep),function(a){r=parseInt(a,10)});var s=c.minuteStep;g.minuteStep&&e.$parent.$watch(a(g.minuteStep),function(a){s=parseInt(a,10)}),e.showMeridian=c.showMeridian,g.showMeridian&&e.$parent.$watch(a(g.showMeridian),function(a){if(e.showMeridian=!!a,h.$error.time){var b=i(),c=j();angular.isDefined(b)&&angular.isDefined(c)&&(p.setHours(b),l())}else n()});var t=f.find("input"),u=t.eq(0),v=t.eq(1),w=angular.isDefined(g.mousewheel)?e.$eval(g.mousewheel):c.mousewheel;if(w){var x=function(a){a.originalEvent&&(a=a.originalEvent);var b=a.wheelDelta?a.wheelDelta:-a.deltaY;return a.detail||b>0};u.bind("mousewheel wheel",function(a){e.$apply(x(a)?e.incrementHours():e.decrementHours()),a.preventDefault()}),v.bind("mousewheel wheel",function(a){e.$apply(x(a)?e.incrementMinutes():e.decrementMinutes()),a.preventDefault()})}if(e.readonlyInput=angular.isDefined(g.readonlyInput)?e.$eval(g.readonlyInput):c.readonlyInput,e.readonlyInput)e.updateHours=angular.noop,e.updateMinutes=angular.noop;else{var y=function(a,b){h.$setViewValue(null),h.$setValidity("time",!1),angular.isDefined(a)&&(e.invalidHours=a),angular.isDefined(b)&&(e.invalidMinutes=b)};e.updateHours=function(){var a=i();angular.isDefined(a)?(p.setHours(a),l("h")):y(!0)},u.bind("blur",function(){!e.validHours&&e.hours<10&&e.$apply(function(){e.hours=k(e.hours)})}),e.updateMinutes=function(){var a=j();angular.isDefined(a)?(p.setMinutes(a),l("m")):y(void 0,!0)},v.bind("blur",function(){!e.invalidMinutes&&e.minutes<10&&e.$apply(function(){e.minutes=k(e.minutes)})})}h.$render=function(){var a=h.$modelValue?new Date(h.$modelValue):null;isNaN(a)?(h.$setValidity("time",!1),b.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(a&&(p=a),m(),n())},e.incrementHours=function(){o(60*r)},e.decrementHours=function(){o(60*-r)},e.incrementMinutes=function(){o(s)},e.decrementMinutes=function(){o(-s)},e.toggleMeridian=function(){o(720*(p.getHours()<12?1:-1))}}}}}]),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).factory("typeaheadParser",["$parse",function(a){var b=/^\s*(.*?)(?:\s+as\s+(.*?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+(.*)$/;return{parse:function(c){var d=c.match(b);if(!d)throw new Error("Expected typeahead specification in form of '_modelValue_ (as _label_)? for _item_ in _collection_' but got '"+c+"'.");return{itemName:d[3],source:a(d[4]),viewMapper:a(d[2]||d[1]),modelMapper:a(d[1])}}}}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$position","typeaheadParser",function(a,b,c,d,e,f,g){var h=[9,13,27,38,40];return{require:"ngModel",link:function(i,j,k,l){var m,n=i.$eval(k.typeaheadMinLength)||1,o=i.$eval(k.typeaheadWaitMs)||0,p=i.$eval(k.typeaheadEditable)!==!1,q=b(k.typeaheadLoading).assign||angular.noop,r=b(k.typeaheadOnSelect),s=k.typeaheadInputFormatter?b(k.typeaheadInputFormatter):void 0,t=k.typeaheadAppendToBody?b(k.typeaheadAppendToBody):!1,u=b(k.ngModel).assign,v=g.parse(k.typeahead),w=angular.element("
");w.attr({matches:"matches",active:"activeIdx",select:"select(activeIdx)",query:"query",position:"position"}),angular.isDefined(k.typeaheadTemplateUrl)&&w.attr("template-url",k.typeaheadTemplateUrl);var x=i.$new();i.$on("$destroy",function(){x.$destroy()});var y=function(){x.matches=[],x.activeIdx=-1},z=function(a){var b={$viewValue:a};q(i,!0),c.when(v.source(i,b)).then(function(c){if(a===l.$viewValue&&m){if(c.length>0){x.activeIdx=0,x.matches.length=0;for(var d=0;d=n?o>0?(A&&d.cancel(A),A=d(function(){z(a)},o)):z(a):(q(i,!1),y()),p?a:a?void l.$setValidity("editable",!1):(l.$setValidity("editable",!0),a)}),l.$formatters.push(function(a){var b,c,d={};return s?(d.$model=a,s(i,d)):(d[v.itemName]=a,b=v.viewMapper(i,d),d[v.itemName]=void 0,c=v.viewMapper(i,d),b!==c?b:a)}),x.select=function(a){var b,c,d={};d[v.itemName]=c=x.matches[a].model,b=v.modelMapper(i,d),u(i,b),l.$setValidity("editable",!0),r(i,{$item:c,$model:b,$label:v.viewMapper(i,d)}),y(),j[0].focus()},j.bind("keydown",function(a){0!==x.matches.length&&-1!==h.indexOf(a.which)&&(a.preventDefault(),40===a.which?(x.activeIdx=(x.activeIdx+1)%x.matches.length,x.$digest()):38===a.which?(x.activeIdx=(x.activeIdx?x.activeIdx:x.matches.length)-1,x.$digest()):13===a.which||9===a.which?x.$apply(function(){x.select(x.activeIdx)}):27===a.which&&(a.stopPropagation(),y(),x.$digest()))}),j.bind("blur",function(){m=!1});var B=function(a){j[0]!==a.target&&(y(),x.$digest())};e.bind("click",B),i.$on("$destroy",function(){e.unbind("click",B)});var C=a(w)(x);t?e.find("body").append(C):j.after(C)}}}]).directive("typeaheadPopup",function(){return{restrict:"EA",scope:{matches:"=",query:"=",active:"=",position:"=",select:"&"},replace:!0,templateUrl:"template/typeahead/typeahead-popup.html",link:function(a,b,c){a.templateUrl=c.templateUrl,a.isOpen=function(){return a.matches.length>0},a.isActive=function(b){return a.active==b},a.selectActive=function(b){a.active=b},a.selectMatch=function(b){a.select({activeIdx:b})}}}}).directive("typeaheadMatch",["$http","$templateCache","$compile","$parse",function(a,b,c,d){return{restrict:"EA",scope:{index:"=",match:"=",query:"="},link:function(e,f,g){var h=d(g.templateUrl)(e.$parent)||"template/typeahead/typeahead-match.html";a.get(h,{cache:b}).success(function(a){f.replaceWith(c(a.trim())(e))})}}}]).filter("typeaheadHighlight",function(){function a(a){return a.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(b,c){return c?b.replace(new RegExp(a(c),"gi"),"$&"):b}}),angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdownToggle","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.tpls",["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/popup.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(a,b,c){function d(a){for(var b in a)if(void 0!==f.style[b])return a[b] -}var e=function(d,f,g){g=g||{};var h=a.defer(),i=e[g.animation?"animationEndEventName":"transitionEndEventName"],j=function(){c.$apply(function(){d.unbind(i,j),h.resolve(d)})};return i&&d.bind(i,j),b(function(){angular.isString(f)?d.addClass(f):angular.isFunction(f)?f(d):angular.isObject(f)&&d.css(f),i||h.resolve(d)}),h.promise.cancel=function(){i&&d.unbind(i,j),h.reject("Transition cancelled")},h.promise},f=document.createElement("trans"),g={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},h={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return e.transitionEndEventName=d(g),e.animationEndEventName=d(h),e}]),angular.module("ui.bootstrap.collapse",["ui.bootstrap.transition"]).directive("collapse",["$transition",function(a){return{link:function(b,c,d){function e(b){function d(){j===e&&(j=void 0)}var e=a(c,b);return j&&j.cancel(),j=e,e.then(d,d),e}function f(){k?(k=!1,g()):(c.removeClass("collapse").addClass("collapsing"),e({height:c[0].scrollHeight+"px"}).then(g))}function g(){c.removeClass("collapsing"),c.addClass("collapse in"),c.css({height:"auto"})}function h(){k?(k=!1,i(),c.css({height:0})):(c.css({height:c[0].scrollHeight+"px"}),c[0].offsetWidth,c.removeClass("collapse in").addClass("collapsing"),e({height:0}).then(i))}function i(){c.removeClass("collapsing"),c.addClass("collapse")}var j,k=!0;b.$watch(d.collapse,function(a){a?h():f()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(a,b,c){this.groups=[],this.closeOthers=function(d){var e=angular.isDefined(b.closeOthers)?a.$eval(b.closeOthers):c.closeOthers;e&&angular.forEach(this.groups,function(a){a!==d&&(a.isOpen=!1)})},this.addGroup=function(a){var b=this;this.groups.push(a),a.$on("$destroy",function(){b.removeGroup(a)})},this.removeGroup=function(a){var b=this.groups.indexOf(a);-1!==b&&this.groups.splice(this.groups.indexOf(a),1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",["$parse",function(a){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-group.html",scope:{heading:"@"},controller:function(){this.setHeading=function(a){this.heading=a}},link:function(b,c,d,e){var f,g;e.addGroup(b),b.isOpen=!1,d.isOpen&&(f=a(d.isOpen),g=f.assign,b.$parent.$watch(f,function(a){b.isOpen=!!a})),b.$watch("isOpen",function(a){a&&e.closeOthers(b),g&&g(b.$parent,a)})}}}]).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",compile:function(a,b,c){return function(a,b,d,e){e.setHeading(c(a,function(){}))}}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(a,b,c,d){a.$watch(function(){return d[c.accordionTransclude]},function(a){a&&(b.html(""),b.append(a))})}}}),angular.module("ui.bootstrap.alert",[]).controller("AlertController",["$scope","$attrs",function(a,b){a.closeable="close"in b}]).directive("alert",function(){return{restrict:"EA",controller:"AlertController",templateUrl:"template/alert/alert.html",transclude:!0,replace:!0,scope:{type:"=",close:"&"}}}),angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(a,b,c){b.addClass("ng-binding").data("$binding",c.bindHtmlUnsafe),a.$watch(c.bindHtmlUnsafe,function(a){b.html(a||"")})}}),angular.module("ui.bootstrap.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).controller("ButtonsController",["buttonConfig",function(a){this.activeClass=a.activeClass||"active",this.toggleEvent=a.toggleEvent||"click"}]).directive("btnRadio",function(){return{require:["btnRadio","ngModel"],controller:"ButtonsController",link:function(a,b,c,d){var e=d[0],f=d[1];f.$render=function(){b.toggleClass(e.activeClass,angular.equals(f.$modelValue,a.$eval(c.btnRadio)))},b.bind(e.toggleEvent,function(){b.hasClass(e.activeClass)||a.$apply(function(){f.$setViewValue(a.$eval(c.btnRadio)),f.$render()})})}}}).directive("btnCheckbox",function(){return{require:["btnCheckbox","ngModel"],controller:"ButtonsController",link:function(a,b,c,d){function e(){return g(c.btnCheckboxTrue,!0)}function f(){return g(c.btnCheckboxFalse,!1)}function g(b,c){var d=a.$eval(b);return angular.isDefined(d)?d:c}var h=d[0],i=d[1];i.$render=function(){b.toggleClass(h.activeClass,angular.equals(i.$modelValue,e()))},b.bind(h.toggleEvent,function(){a.$apply(function(){i.$setViewValue(b.hasClass(h.activeClass)?f():e()),i.$render()})})}}}),angular.module("ui.bootstrap.carousel",["ui.bootstrap.transition"]).controller("CarouselController",["$scope","$timeout","$transition","$q",function(a,b,c){function d(){e();var c=+a.interval;!isNaN(c)&&c>=0&&(g=b(f,c))}function e(){g&&(b.cancel(g),g=null)}function f(){h?(a.next(),d()):a.pause()}var g,h,i=this,j=i.slides=[],k=-1;i.currentSlide=null;var l=!1;i.select=function(e,f){function g(){l||(i.currentSlide&&angular.isString(f)&&!a.noTransition&&e.$element?(e.$element.addClass(f),e.$element[0].offsetWidth,angular.forEach(j,function(a){angular.extend(a,{direction:"",entering:!1,leaving:!1,active:!1})}),angular.extend(e,{direction:f,active:!0,entering:!0}),angular.extend(i.currentSlide||{},{direction:f,leaving:!0}),a.$currentTransition=c(e.$element,{}),function(b,c){a.$currentTransition.then(function(){h(b,c)},function(){h(b,c)})}(e,i.currentSlide)):h(e,i.currentSlide),i.currentSlide=e,k=m,d())}function h(b,c){angular.extend(b,{direction:"",active:!0,leaving:!1,entering:!1}),angular.extend(c||{},{direction:"",active:!1,leaving:!1,entering:!1}),a.$currentTransition=null}var m=j.indexOf(e);void 0===f&&(f=m>k?"next":"prev"),e&&e!==i.currentSlide&&(a.$currentTransition?(a.$currentTransition.cancel(),b(g)):g())},a.$on("$destroy",function(){l=!0}),i.indexOfSlide=function(a){return j.indexOf(a)},a.next=function(){var b=(k+1)%j.length;return a.$currentTransition?void 0:i.select(j[b],"next")},a.prev=function(){var b=0>k-1?j.length-1:k-1;return a.$currentTransition?void 0:i.select(j[b],"prev")},a.select=function(a){i.select(a)},a.isActive=function(a){return i.currentSlide===a},a.slides=function(){return j},a.$watch("interval",d),a.$on("$destroy",e),a.play=function(){h||(h=!0,d())},a.pause=function(){a.noPause||(h=!1,e())},i.addSlide=function(b,c){b.$element=c,j.push(b),1===j.length||b.active?(i.select(j[j.length-1]),1==j.length&&a.play()):b.active=!1},i.removeSlide=function(a){var b=j.indexOf(a);j.splice(b,1),j.length>0&&a.active?i.select(b>=j.length?j[b-1]:j[b]):k>b&&k--}}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",require:"carousel",templateUrl:"template/carousel/carousel.html",scope:{interval:"=",noTransition:"=",noPause:"="}}}]).directive("slide",["$parse",function(a){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/carousel/slide.html",scope:{},link:function(b,c,d,e){if(d.active){var f=a(d.active),g=f.assign,h=b.active=f(b.$parent);b.$watch(function(){var a=f(b.$parent);return a!==b.active&&(a!==h?h=b.active=a:g(b.$parent,a=h=b.active)),a})}e.addSlide(b,c),b.$on("$destroy",function(){e.removeSlide(b)}),b.$watch("active",function(a){a&&e.select(b)})}}}]),angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(a,b){function c(a,c){return a.currentStyle?a.currentStyle[c]:b.getComputedStyle?b.getComputedStyle(a)[c]:a.style[c]}function d(a){return"static"===(c(a,"position")||"static")}var e=function(b){for(var c=a[0],e=b.offsetParent||c;e&&e!==c&&d(e);)e=e.offsetParent;return e||c};return{position:function(b){var c=this.offset(b),d={top:0,left:0},f=e(b[0]);f!=a[0]&&(d=this.offset(angular.element(f)),d.top+=f.clientTop-f.scrollTop,d.left+=f.clientLeft-f.scrollLeft);var g=b[0].getBoundingClientRect();return{width:g.width||b.prop("offsetWidth"),height:g.height||b.prop("offsetHeight"),top:c.top-d.top,left:c.left-d.left}},offset:function(c){var d=c[0].getBoundingClientRect();return{width:d.width||c.prop("offsetWidth"),height:d.height||c.prop("offsetHeight"),top:d.top+(b.pageYOffset||a[0].body.scrollTop||a[0].documentElement.scrollTop),left:d.left+(b.pageXOffset||a[0].body.scrollLeft||a[0].documentElement.scrollLeft)}}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.position"]).constant("datepickerConfig",{dayFormat:"dd",monthFormat:"MMMM",yearFormat:"yyyy",dayHeaderFormat:"EEE",dayTitleFormat:"MMMM yyyy",monthTitleFormat:"yyyy",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null}).controller("DatepickerController",["$scope","$attrs","dateFilter","datepickerConfig",function(a,b,c,d){function e(b,c){return angular.isDefined(b)?a.$parent.$eval(b):c}function f(a,b){return new Date(a,b,0).getDate()}function g(a,b){for(var c=new Array(b),d=a,e=0;b>e;)c[e++]=new Date(d),d.setDate(d.getDate()+1);return c}function h(a,b,d,e){return{date:a,label:c(a,b),selected:!!d,secondary:!!e}}var i={day:e(b.dayFormat,d.dayFormat),month:e(b.monthFormat,d.monthFormat),year:e(b.yearFormat,d.yearFormat),dayHeader:e(b.dayHeaderFormat,d.dayHeaderFormat),dayTitle:e(b.dayTitleFormat,d.dayTitleFormat),monthTitle:e(b.monthTitleFormat,d.monthTitleFormat)},j=e(b.startingDay,d.startingDay),k=e(b.yearRange,d.yearRange);this.minDate=d.minDate?new Date(d.minDate):null,this.maxDate=d.maxDate?new Date(d.maxDate):null,this.modes=[{name:"day",getVisibleDates:function(a,b){var d=a.getFullYear(),e=a.getMonth(),k=new Date(d,e,1),l=j-k.getDay(),m=l>0?7-l:-l,n=new Date(k),o=0;m>0&&(n.setDate(-m+1),o+=m),o+=f(d,e+1),o+=(7-o%7)%7;for(var p=g(n,o),q=new Array(7),r=0;o>r;r++){var s=new Date(p[r]);p[r]=h(s,i.day,b&&b.getDate()===s.getDate()&&b.getMonth()===s.getMonth()&&b.getFullYear()===s.getFullYear(),s.getMonth()!==e)}for(var t=0;7>t;t++)q[t]=c(p[t].date,i.dayHeader);return{objects:p,title:c(a,i.dayTitle),labels:q}},compare:function(a,b){return new Date(a.getFullYear(),a.getMonth(),a.getDate())-new Date(b.getFullYear(),b.getMonth(),b.getDate())},split:7,step:{months:1}},{name:"month",getVisibleDates:function(a,b){for(var d=new Array(12),e=a.getFullYear(),f=0;12>f;f++){var g=new Date(e,f,1);d[f]=h(g,i.month,b&&b.getMonth()===f&&b.getFullYear()===e)}return{objects:d,title:c(a,i.monthTitle)}},compare:function(a,b){return new Date(a.getFullYear(),a.getMonth())-new Date(b.getFullYear(),b.getMonth())},split:3,step:{years:1}},{name:"year",getVisibleDates:function(a,b){for(var c=new Array(k),d=a.getFullYear(),e=parseInt((d-1)/k,10)*k+1,f=0;k>f;f++){var g=new Date(e+f,0,1);c[f]=h(g,i.year,b&&b.getFullYear()===g.getFullYear())}return{objects:c,title:[c[0].label,c[k-1].label].join(" - ")}},compare:function(a,b){return a.getFullYear()-b.getFullYear()},split:5,step:{years:k}}],this.isDisabled=function(b,c){var d=this.modes[c||0];return this.minDate&&d.compare(b,this.minDate)<0||this.maxDate&&d.compare(b,this.maxDate)>0||a.dateDisabled&&a.dateDisabled({date:b,mode:d.name})}}]).directive("datepicker",["dateFilter","$parse","datepickerConfig","$log",function(a,b,c,d){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/datepicker.html",scope:{dateDisabled:"&"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(a,e,f,g){function h(){a.showWeekNumbers=0===o&&q}function i(a,b){for(var c=[];a.length>0;)c.push(a.splice(0,b));return c}function j(b){var c=null,e=!0;n.$modelValue&&(c=new Date(n.$modelValue),isNaN(c)?(e=!1,d.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):b&&(p=c)),n.$setValidity("date",e);var f=m.modes[o],g=f.getVisibleDates(p,c);angular.forEach(g.objects,function(a){a.disabled=m.isDisabled(a.date,o)}),n.$setValidity("date-disabled",!c||!m.isDisabled(c)),a.rows=i(g.objects,f.split),a.labels=g.labels||[],a.title=g.title}function k(a){o=a,h(),j()}function l(a){var b=new Date(a);b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1}var m=g[0],n=g[1];if(n){var o=0,p=new Date,q=c.showWeeks;f.showWeeks?a.$parent.$watch(b(f.showWeeks),function(a){q=!!a,h()}):h(),f.min&&a.$parent.$watch(b(f.min),function(a){m.minDate=a?new Date(a):null,j()}),f.max&&a.$parent.$watch(b(f.max),function(a){m.maxDate=a?new Date(a):null,j()}),n.$render=function(){j(!0)},a.select=function(a){if(0===o){var b=n.$modelValue?new Date(n.$modelValue):new Date(0,0,0,0,0,0,0);b.setFullYear(a.getFullYear(),a.getMonth(),a.getDate()),n.$setViewValue(b),j(!0)}else p=a,k(o-1)},a.move=function(a){var b=m.modes[o].step;p.setMonth(p.getMonth()+a*(b.months||0)),p.setFullYear(p.getFullYear()+a*(b.years||0)),j()},a.toggleMode=function(){k((o+1)%m.modes.length)},a.getWeekNumber=function(b){return 0===o&&a.showWeekNumbers&&7===b.length?l(b[0].date):null}}}}}]).constant("datepickerPopupConfig",{dateFormat:"yyyy-MM-dd",currentText:"Today",toggleWeeksText:"Weeks",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0}).directive("datepickerPopup",["$compile","$parse","$document","$position","dateFilter","datepickerPopupConfig","datepickerConfig",function(a,b,c,d,e,f,g){return{restrict:"EA",require:"ngModel",link:function(h,i,j,k){function l(a){u?u(h,!!a):q.isOpen=!!a}function m(a){if(a){if(angular.isDate(a))return k.$setValidity("date",!0),a;if(angular.isString(a)){var b=new Date(a);return isNaN(b)?void k.$setValidity("date",!1):(k.$setValidity("date",!0),b)}return void k.$setValidity("date",!1)}return k.$setValidity("date",!0),null}function n(a,c,d){a&&(h.$watch(b(a),function(a){q[c]=a}),y.attr(d||c,c))}function o(){q.position=s?d.offset(i):d.position(i),q.position.top=q.position.top+i.prop("offsetHeight")}var p,q=h.$new(),r=angular.isDefined(j.closeOnDateSelection)?h.$eval(j.closeOnDateSelection):f.closeOnDateSelection,s=angular.isDefined(j.datepickerAppendToBody)?h.$eval(j.datepickerAppendToBody):f.appendToBody;j.$observe("datepickerPopup",function(a){p=a||f.dateFormat,k.$render()}),q.showButtonBar=angular.isDefined(j.showButtonBar)?h.$eval(j.showButtonBar):f.showButtonBar,h.$on("$destroy",function(){B.remove(),q.$destroy()}),j.$observe("currentText",function(a){q.currentText=angular.isDefined(a)?a:f.currentText}),j.$observe("toggleWeeksText",function(a){q.toggleWeeksText=angular.isDefined(a)?a:f.toggleWeeksText}),j.$observe("clearText",function(a){q.clearText=angular.isDefined(a)?a:f.clearText}),j.$observe("closeText",function(a){q.closeText=angular.isDefined(a)?a:f.closeText});var t,u;j.isOpen&&(t=b(j.isOpen),u=t.assign,h.$watch(t,function(a){q.isOpen=!!a})),q.isOpen=t?t(h):!1;var v=function(a){q.isOpen&&a.target!==i[0]&&q.$apply(function(){l(!1)})},w=function(){q.$apply(function(){l(!0)})},x=angular.element("
");x.attr({"ng-model":"date","ng-change":"dateSelection()"});var y=angular.element(x.children()[0]);j.datepickerOptions&&y.attr(angular.extend({},h.$eval(j.datepickerOptions))),k.$parsers.unshift(m),q.dateSelection=function(a){angular.isDefined(a)&&(q.date=a),k.$setViewValue(q.date),k.$render(),r&&l(!1)},i.bind("input change keyup",function(){q.$apply(function(){q.date=k.$modelValue})}),k.$render=function(){var a=k.$viewValue?e(k.$viewValue,p):"";i.val(a),q.date=k.$modelValue},n(j.min,"min"),n(j.max,"max"),j.showWeeks?n(j.showWeeks,"showWeeks","show-weeks"):(q.showWeeks=g.showWeeks,y.attr("show-weeks","showWeeks")),j.dateDisabled&&y.attr("date-disabled",j.dateDisabled);var z=!1,A=!1;q.$watch("isOpen",function(a){a?(o(),c.bind("click",v),A&&i.unbind("focus",w),i[0].focus(),z=!0):(z&&c.unbind("click",v),i.bind("focus",w),A=!0),u&&u(h,a)}),q.today=function(){q.dateSelection(new Date)},q.clear=function(){q.dateSelection(null)};var B=a(x)(q);s?c.find("body").append(B):i.after(B)}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"template/datepicker/popup.html",link:function(a,b){b.bind("click",function(a){a.preventDefault(),a.stopPropagation()})}}}),angular.module("ui.bootstrap.dropdownToggle",[]).directive("dropdownToggle",["$document","$location",function(a){var b=null,c=angular.noop;return{restrict:"CA",link:function(d,e){d.$watch("$location.path",function(){c()}),e.parent().bind("click",function(){c()}),e.bind("click",function(d){var f=e===b;d.preventDefault(),d.stopPropagation(),b&&c(),f||e.hasClass("disabled")||e.prop("disabled")||(e.parent().addClass("open"),b=e,c=function(d){d&&(d.preventDefault(),d.stopPropagation()),a.unbind("click",c),e.parent().removeClass("open"),c=angular.noop,b=null},a.bind("click",c))})}}}]),angular.module("ui.bootstrap.modal",[]).factory("$$stackedMap",function(){return{createNew:function(){var a=[];return{add:function(b,c){a.push({key:b,value:c})},get:function(b){for(var c=0;c0),h&&-1==e()&&(h.remove(),h=void 0),d.modalScope.$destroy()}var g,h,i="modal-open",j=c.$new(!0),k=d.createNew(),l={};return c.$watch(e,function(a){j.index=a}),a.bind("keydown",function(a){var b;27===a.which&&(b=k.top(),b&&b.value.keyboard&&c.$apply(function(){l.dismiss(b.key)}))}),l.open=function(c,d){k.add(c,{deferred:d.deferred,modalScope:d.scope,backdrop:d.backdrop,keyboard:d.keyboard});var f=a.find("body").eq(0);e()>=0&&!h&&(g=angular.element("
"),h=b(g)(j),f.append(h));var l=angular.element("
");l.attr("window-class",d.windowClass),l.attr("index",k.length()-1),l.html(d.content);var m=b(l)(d.scope);k.top().value.modalDomEl=m,f.append(m),f.addClass(i)},l.close=function(a,b){var c=k.get(a).value;c&&(c.deferred.resolve(b),f(a))},l.dismiss=function(a,b){var c=k.get(a).value;c&&(c.deferred.reject(b),f(a))},l.getTop=function(){return k.top()},l}]).provider("$modal",function(){var a={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(b,c,d,e,f,g,h){function i(a){return a.template?d.when(a.template):e.get(a.templateUrl,{cache:f}).then(function(a){return a.data})}function j(a){var c=[];return angular.forEach(a,function(a){(angular.isFunction(a)||angular.isArray(a))&&c.push(d.when(b.invoke(a)))}),c}var k={};return k.open=function(b){var e=d.defer(),f=d.defer(),k={result:e.promise,opened:f.promise,close:function(a){h.close(k,a)},dismiss:function(a){h.dismiss(k,a)}};if(b=angular.extend({},a.options,b),b.resolve=b.resolve||{},!b.template&&!b.templateUrl)throw new Error("One of template or templateUrl options is required.");var l=d.all([i(b)].concat(j(b.resolve)));return l.then(function(a){var d=(b.scope||c).$new();d.$close=k.close,d.$dismiss=k.dismiss;var f,i={},j=1;b.controller&&(i.$scope=d,i.$modalInstance=k,angular.forEach(b.resolve,function(b,c){i[c]=a[j++]}),f=g(b.controller,i)),h.open(k,{scope:d,deferred:e,content:a[0],backdrop:b.backdrop,keyboard:b.keyboard,windowClass:b.windowClass})},function(a){e.reject(a)}),l.then(function(){f.resolve(!0)},function(){f.reject(!1)}),k},k}]};return a}),angular.module("ui.bootstrap.pagination",[]).controller("PaginationController",["$scope","$attrs","$parse","$interpolate",function(a,b,c,d){var e=this,f=b.numPages?c(b.numPages).assign:angular.noop;this.init=function(d){b.itemsPerPage?a.$parent.$watch(c(b.itemsPerPage),function(b){e.itemsPerPage=parseInt(b,10),a.totalPages=e.calculateTotalPages()}):this.itemsPerPage=d},this.noPrevious=function(){return 1===this.page},this.noNext=function(){return this.page===a.totalPages},this.isActive=function(a){return this.page===a},this.calculateTotalPages=function(){var b=this.itemsPerPage<1?1:Math.ceil(a.totalItems/this.itemsPerPage);return Math.max(b||0,1)},this.getAttributeValue=function(b,c,e){return angular.isDefined(b)?e?d(b)(a.$parent):a.$parent.$eval(b):c},this.render=function(){this.page=parseInt(a.page,10)||1,this.page>0&&this.page<=a.totalPages&&(a.pages=this.getPages(this.page,a.totalPages))},a.selectPage=function(b){!e.isActive(b)&&b>0&&b<=a.totalPages&&(a.page=b,a.onSelectPage({page:b}))},a.$watch("page",function(){e.render()}),a.$watch("totalItems",function(){a.totalPages=e.calculateTotalPages()}),a.$watch("totalPages",function(b){f(a.$parent,b),e.page>b?a.selectPage(b):e.render()})}]).constant("paginationConfig",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("pagination",["$parse","paginationConfig",function(a,b){return{restrict:"EA",scope:{page:"=",totalItems:"=",onSelectPage:" &"},controller:"PaginationController",templateUrl:"template/pagination/pagination.html",replace:!0,link:function(c,d,e,f){function g(a,b,c,d){return{number:a,text:b,active:c,disabled:d}}var h,i=f.getAttributeValue(e.boundaryLinks,b.boundaryLinks),j=f.getAttributeValue(e.directionLinks,b.directionLinks),k=f.getAttributeValue(e.firstText,b.firstText,!0),l=f.getAttributeValue(e.previousText,b.previousText,!0),m=f.getAttributeValue(e.nextText,b.nextText,!0),n=f.getAttributeValue(e.lastText,b.lastText,!0),o=f.getAttributeValue(e.rotate,b.rotate);f.init(b.itemsPerPage),e.maxSize&&c.$parent.$watch(a(e.maxSize),function(a){h=parseInt(a,10),f.render()}),f.getPages=function(a,b){var c=[],d=1,e=b,p=angular.isDefined(h)&&b>h;p&&(o?(d=Math.max(a-Math.floor(h/2),1),e=d+h-1,e>b&&(e=b,d=e-h+1)):(d=(Math.ceil(a/h)-1)*h+1,e=Math.min(d+h-1,b)));for(var q=d;e>=q;q++){var r=g(q,q,f.isActive(q),!1);c.push(r)}if(p&&!o){if(d>1){var s=g(d-1,"...",!1,!1);c.unshift(s)}if(b>e){var t=g(e+1,"...",!1,!1);c.push(t)}}if(j){var u=g(a-1,l,!1,f.noPrevious());c.unshift(u);var v=g(a+1,m,!1,f.noNext());c.push(v)}if(i){var w=g(1,k,!1,f.noPrevious());c.unshift(w);var x=g(b,n,!1,f.noNext());c.push(x)}return c}}}}]).constant("pagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("pager",["pagerConfig",function(a){return{restrict:"EA",scope:{page:"=",totalItems:"=",onSelectPage:" &"},controller:"PaginationController",templateUrl:"template/pagination/pager.html",replace:!0,link:function(b,c,d,e){function f(a,b,c,d,e){return{number:a,text:b,disabled:c,previous:i&&d,next:i&&e}}var g=e.getAttributeValue(d.previousText,a.previousText,!0),h=e.getAttributeValue(d.nextText,a.nextText,!0),i=e.getAttributeValue(d.align,a.align);e.init(a.itemsPerPage),e.getPages=function(a){return[f(a-1,g,e.noPrevious(),!0,!1),f(a+1,h,e.noNext(),!1,!0)]}}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function a(a){var b=/[A-Z]/g,c="-";return a.replace(b,function(a,b){return(b?c:"")+a.toLowerCase()})}var b={placement:"top",animation:!0,popupDelay:0},c={mouseenter:"mouseleave",click:"click",focus:"blur"},d={};this.options=function(a){angular.extend(d,a)},this.setTriggers=function(a){angular.extend(c,a)},this.$get=["$window","$compile","$timeout","$parse","$document","$position","$interpolate",function(e,f,g,h,i,j,k){return function(e,l,m){function n(a){var b=a||o.trigger||m,d=c[b]||b;return{show:b,hide:d}}var o=angular.extend({},b,d),p=a(e),q=k.startSymbol(),r=k.endSymbol(),s="
';return{restrict:"EA",scope:!0,link:function(a,b,c){function d(){a.tt_isOpen?m():k()}function k(){(!y||a.$eval(c[l+"Enable"]))&&(a.tt_popupDelay?(t=g(p,a.tt_popupDelay),t.then(function(a){a()})):a.$apply(p)())}function m(){a.$apply(function(){q()})}function p(){return a.tt_content?(r&&g.cancel(r),u.css({top:0,left:0,display:"block"}),v?i.find("body").append(u):b.after(u),z(),a.tt_isOpen=!0,z):angular.noop}function q(){a.tt_isOpen=!1,g.cancel(t),a.tt_animation?r=g(function(){u.remove()},500):u.remove()}var r,t,u=f(s)(a),v=angular.isDefined(o.appendToBody)?o.appendToBody:!1,w=n(void 0),x=!1,y=angular.isDefined(c[l+"Enable"]),z=function(){var c,d,e,f;switch(c=v?j.offset(b):j.position(b),d=u.prop("offsetWidth"),e=u.prop("offsetHeight"),a.tt_placement){case"right":f={top:c.top+c.height/2-e/2,left:c.left+c.width};break;case"bottom":f={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"left":f={top:c.top+c.height/2-e/2,left:c.left-d};break;default:f={top:c.top-e,left:c.left+c.width/2-d/2}}f.top+="px",f.left+="px",u.css(f)};a.tt_isOpen=!1,c.$observe(e,function(b){a.tt_content=b,!b&&a.tt_isOpen&&q()}),c.$observe(l+"Title",function(b){a.tt_title=b}),c.$observe(l+"Placement",function(b){a.tt_placement=angular.isDefined(b)?b:o.placement}),c.$observe(l+"PopupDelay",function(b){var c=parseInt(b,10);a.tt_popupDelay=isNaN(c)?o.popupDelay:c});var A=function(){x&&(b.unbind(w.show,k),b.unbind(w.hide,m))};c.$observe(l+"Trigger",function(a){A(),w=n(a),w.show===w.hide?b.bind(w.show,d):(b.bind(w.show,k),b.bind(w.hide,m)),x=!0});var B=a.$eval(c[l+"Animation"]);a.tt_animation=angular.isDefined(B)?!!B:o.animation,c.$observe(l+"AppendToBody",function(b){v=angular.isDefined(b)?h(b)(a):v}),v&&a.$on("$locationChangeSuccess",function(){a.tt_isOpen&&q()}),a.$on("$destroy",function(){g.cancel(r),g.cancel(t),A(),u.remove(),u.unbind(),u=null})}}}}]}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(a){return a("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(a){return a("tooltipHtmlUnsafe","tooltip","mouseenter")}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("popoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html"}}).directive("popover",["$compile","$timeout","$parse","$window","$tooltip",function(a,b,c,d,e){return e("popover","popover","click")}]),angular.module("ui.bootstrap.progressbar",["ui.bootstrap.transition"]).constant("progressConfig",{animate:!0,max:100}).controller("ProgressController",["$scope","$attrs","progressConfig","$transition",function(a,b,c,d){var e=this,f=[],g=angular.isDefined(b.max)?a.$parent.$eval(b.max):c.max,h=angular.isDefined(b.animate)?a.$parent.$eval(b.animate):c.animate;this.addBar=function(a,b){var c=0,d=a.$parent.$index;angular.isDefined(d)&&f[d]&&(c=f[d].value),f.push(a),this.update(b,a.value,c),a.$watch("value",function(a,c){a!==c&&e.update(b,a,c)}),a.$on("$destroy",function(){e.removeBar(a)})},this.update=function(a,b,c){var e=this.getPercentage(b);h?(a.css("width",this.getPercentage(c)+"%"),d(a,{width:e+"%"})):a.css({transition:"none",width:e+"%"})},this.removeBar=function(a){f.splice(f.indexOf(a),1)},this.getPercentage=function(a){return Math.round(100*a/g)}}]).directive("progress",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",require:"progress",scope:{},template:'
'}}).directive("bar",function(){return{restrict:"EA",replace:!0,transclude:!0,require:"^progress",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(a,b,c,d){d.addBar(a,b)}}}).directive("progressbar",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/progressbar.html",link:function(a,b,c,d){d.addBar(a,angular.element(b.children()[0]))}}}),angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5,stateOn:null,stateOff:null}).controller("RatingController",["$scope","$attrs","$parse","ratingConfig",function(a,b,c,d){this.maxRange=angular.isDefined(b.max)?a.$parent.$eval(b.max):d.max,this.stateOn=angular.isDefined(b.stateOn)?a.$parent.$eval(b.stateOn):d.stateOn,this.stateOff=angular.isDefined(b.stateOff)?a.$parent.$eval(b.stateOff):d.stateOff,this.createRateObjects=function(a){for(var b={stateOn:this.stateOn,stateOff:this.stateOff},c=0,d=a.length;d>c;c++)a[c]=angular.extend({index:c},b,a[c]);return a},a.range=this.createRateObjects(angular.isDefined(b.ratingStates)?angular.copy(a.$parent.$eval(b.ratingStates)):new Array(this.maxRange)),a.rate=function(b){a.readonly||a.value===b||(a.value=b)},a.enter=function(b){a.readonly||(a.val=b),a.onHover({value:b})},a.reset=function(){a.val=angular.copy(a.value),a.onLeave()},a.$watch("value",function(b){a.val=b}),a.readonly=!1,b.readonly&&a.$parent.$watch(c(b.readonly),function(b){a.readonly=!!b})}]).directive("rating",function(){return{restrict:"EA",scope:{value:"=",onHover:"&",onLeave:"&"},controller:"RatingController",templateUrl:"template/rating/rating.html",replace:!0}}),angular.module("ui.bootstrap.tabs",[]).controller("TabsetController",["$scope",function(a){var b=this,c=b.tabs=a.tabs=[];b.select=function(a){angular.forEach(c,function(a){a.active=!1}),a.active=!0},b.addTab=function(a){c.push(a),(1===c.length||a.active)&&b.select(a)},b.removeTab=function(a){var d=c.indexOf(a);if(a.active&&c.length>1){var e=d==c.length-1?d-1:d+1;b.select(c[e])}c.splice(d,1)}}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(a,b,c){a.vertical=angular.isDefined(c.vertical)?a.$parent.$eval(c.vertical):!1,a.justified=angular.isDefined(c.justified)?a.$parent.$eval(c.justified):!1,a.type=angular.isDefined(c.type)?a.$parent.$eval(c.type):"tabs"}}}).directive("tab",["$parse",function(a){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},compile:function(b,c,d){return function(b,c,e,f){var g,h;e.active?(g=a(e.active),h=g.assign,b.$parent.$watch(g,function(a,c){a!==c&&(b.active=!!a)}),b.active=g(b.$parent)):h=g=angular.noop,b.$watch("active",function(a){h(b.$parent,a),a?(f.select(b),b.onSelect()):b.onDeselect()}),b.disabled=!1,e.disabled&&b.$parent.$watch(a(e.disabled),function(a){b.disabled=!!a}),b.select=function(){b.disabled||(b.active=!0)},f.addTab(b),b.$on("$destroy",function(){f.removeTab(b)}),b.$transcludeFn=d}}}}]).directive("tabHeadingTransclude",[function(){return{restrict:"A",require:"^tab",link:function(a,b){a.$watch("headingElement",function(a){a&&(b.html(""),b.append(a)) -})}}}]).directive("tabContentTransclude",function(){function a(a){return a.tagName&&(a.hasAttribute("tab-heading")||a.hasAttribute("data-tab-heading")||"tab-heading"===a.tagName.toLowerCase()||"data-tab-heading"===a.tagName.toLowerCase())}return{restrict:"A",require:"^tabset",link:function(b,c,d){var e=b.$eval(d.tabContentTransclude);e.$transcludeFn(e.$parent,function(b){angular.forEach(b,function(b){a(b)?e.headingElement=b:c.append(b)})})}}}),angular.module("ui.bootstrap.timepicker",[]).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0}).directive("timepicker",["$parse","$log","timepickerConfig","$locale",function(a,b,c,d){return{restrict:"EA",require:"?^ngModel",replace:!0,scope:{},templateUrl:"template/timepicker/timepicker.html",link:function(e,f,g,h){function i(){var a=parseInt(e.hours,10),b=e.showMeridian?a>0&&13>a:a>=0&&24>a;return b?(e.showMeridian&&(12===a&&(a=0),e.meridian===q[1]&&(a+=12)),a):void 0}function j(){var a=parseInt(e.minutes,10);return a>=0&&60>a?a:void 0}function k(a){return angular.isDefined(a)&&a.toString().length<2?"0"+a:a}function l(a){m(),h.$setViewValue(new Date(p)),n(a)}function m(){h.$setValidity("time",!0),e.invalidHours=!1,e.invalidMinutes=!1}function n(a){var b=p.getHours(),c=p.getMinutes();e.showMeridian&&(b=0===b||12===b?12:b%12),e.hours="h"===a?b:k(b),e.minutes="m"===a?c:k(c),e.meridian=p.getHours()<12?q[0]:q[1]}function o(a){var b=new Date(p.getTime()+6e4*a);p.setHours(b.getHours(),b.getMinutes()),l()}if(h){var p=new Date,q=angular.isDefined(g.meridians)?e.$parent.$eval(g.meridians):c.meridians||d.DATETIME_FORMATS.AMPMS,r=c.hourStep;g.hourStep&&e.$parent.$watch(a(g.hourStep),function(a){r=parseInt(a,10)});var s=c.minuteStep;g.minuteStep&&e.$parent.$watch(a(g.minuteStep),function(a){s=parseInt(a,10)}),e.showMeridian=c.showMeridian,g.showMeridian&&e.$parent.$watch(a(g.showMeridian),function(a){if(e.showMeridian=!!a,h.$error.time){var b=i(),c=j();angular.isDefined(b)&&angular.isDefined(c)&&(p.setHours(b),l())}else n()});var t=f.find("input"),u=t.eq(0),v=t.eq(1),w=angular.isDefined(g.mousewheel)?e.$eval(g.mousewheel):c.mousewheel;if(w){var x=function(a){a.originalEvent&&(a=a.originalEvent);var b=a.wheelDelta?a.wheelDelta:-a.deltaY;return a.detail||b>0};u.bind("mousewheel wheel",function(a){e.$apply(x(a)?e.incrementHours():e.decrementHours()),a.preventDefault()}),v.bind("mousewheel wheel",function(a){e.$apply(x(a)?e.incrementMinutes():e.decrementMinutes()),a.preventDefault()})}if(e.readonlyInput=angular.isDefined(g.readonlyInput)?e.$eval(g.readonlyInput):c.readonlyInput,e.readonlyInput)e.updateHours=angular.noop,e.updateMinutes=angular.noop;else{var y=function(a,b){h.$setViewValue(null),h.$setValidity("time",!1),angular.isDefined(a)&&(e.invalidHours=a),angular.isDefined(b)&&(e.invalidMinutes=b)};e.updateHours=function(){var a=i();angular.isDefined(a)?(p.setHours(a),l("h")):y(!0)},u.bind("blur",function(){!e.validHours&&e.hours<10&&e.$apply(function(){e.hours=k(e.hours)})}),e.updateMinutes=function(){var a=j();angular.isDefined(a)?(p.setMinutes(a),l("m")):y(void 0,!0)},v.bind("blur",function(){!e.invalidMinutes&&e.minutes<10&&e.$apply(function(){e.minutes=k(e.minutes)})})}h.$render=function(){var a=h.$modelValue?new Date(h.$modelValue):null;isNaN(a)?(h.$setValidity("time",!1),b.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(a&&(p=a),m(),n())},e.incrementHours=function(){o(60*r)},e.decrementHours=function(){o(60*-r)},e.incrementMinutes=function(){o(s)},e.decrementMinutes=function(){o(-s)},e.toggleMeridian=function(){o(720*(p.getHours()<12?1:-1))}}}}}]),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).factory("typeaheadParser",["$parse",function(a){var b=/^\s*(.*?)(?:\s+as\s+(.*?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+(.*)$/;return{parse:function(c){var d=c.match(b);if(!d)throw new Error("Expected typeahead specification in form of '_modelValue_ (as _label_)? for _item_ in _collection_' but got '"+c+"'.");return{itemName:d[3],source:a(d[4]),viewMapper:a(d[2]||d[1]),modelMapper:a(d[1])}}}}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$position","typeaheadParser",function(a,b,c,d,e,f,g){var h=[9,13,27,38,40];return{require:"ngModel",link:function(i,j,k,l){var m,n=i.$eval(k.typeaheadMinLength)||1,o=i.$eval(k.typeaheadWaitMs)||0,p=i.$eval(k.typeaheadEditable)!==!1,q=b(k.typeaheadLoading).assign||angular.noop,r=b(k.typeaheadOnSelect),s=k.typeaheadInputFormatter?b(k.typeaheadInputFormatter):void 0,t=k.typeaheadAppendToBody?b(k.typeaheadAppendToBody):!1,u=b(k.ngModel).assign,v=g.parse(k.typeahead),w=angular.element("
");w.attr({matches:"matches",active:"activeIdx",select:"select(activeIdx)",query:"query",position:"position"}),angular.isDefined(k.typeaheadTemplateUrl)&&w.attr("template-url",k.typeaheadTemplateUrl);var x=i.$new();i.$on("$destroy",function(){x.$destroy()});var y=function(){x.matches=[],x.activeIdx=-1},z=function(a){var b={$viewValue:a};q(i,!0),c.when(v.source(i,b)).then(function(c){if(a===l.$viewValue&&m){if(c.length>0){x.activeIdx=0,x.matches.length=0;for(var d=0;d=n?o>0?(A&&d.cancel(A),A=d(function(){z(a)},o)):z(a):(q(i,!1),y()),p?a:a?void l.$setValidity("editable",!1):(l.$setValidity("editable",!0),a)}),l.$formatters.push(function(a){var b,c,d={};return s?(d.$model=a,s(i,d)):(d[v.itemName]=a,b=v.viewMapper(i,d),d[v.itemName]=void 0,c=v.viewMapper(i,d),b!==c?b:a)}),x.select=function(a){var b,c,d={};d[v.itemName]=c=x.matches[a].model,b=v.modelMapper(i,d),u(i,b),l.$setValidity("editable",!0),r(i,{$item:c,$model:b,$label:v.viewMapper(i,d)}),y(),j[0].focus()},j.bind("keydown",function(a){0!==x.matches.length&&-1!==h.indexOf(a.which)&&(a.preventDefault(),40===a.which?(x.activeIdx=(x.activeIdx+1)%x.matches.length,x.$digest()):38===a.which?(x.activeIdx=(x.activeIdx?x.activeIdx:x.matches.length)-1,x.$digest()):13===a.which||9===a.which?x.$apply(function(){x.select(x.activeIdx)}):27===a.which&&(a.stopPropagation(),y(),x.$digest()))}),j.bind("blur",function(){m=!1});var B=function(a){j[0]!==a.target&&(y(),x.$digest())};e.bind("click",B),i.$on("$destroy",function(){e.unbind("click",B)});var C=a(w)(x);t?e.find("body").append(C):j.after(C)}}}]).directive("typeaheadPopup",function(){return{restrict:"EA",scope:{matches:"=",query:"=",active:"=",position:"=",select:"&"},replace:!0,templateUrl:"template/typeahead/typeahead-popup.html",link:function(a,b,c){a.templateUrl=c.templateUrl,a.isOpen=function(){return a.matches.length>0},a.isActive=function(b){return a.active==b},a.selectActive=function(b){a.active=b},a.selectMatch=function(b){a.select({activeIdx:b})}}}}).directive("typeaheadMatch",["$http","$templateCache","$compile","$parse",function(a,b,c,d){return{restrict:"EA",scope:{index:"=",match:"=",query:"="},link:function(e,f,g){var h=d(g.templateUrl)(e.$parent)||"template/typeahead/typeahead-match.html";a.get(h,{cache:b}).success(function(a){f.replaceWith(c(a.trim())(e))})}}}]).filter("typeaheadHighlight",function(){function a(a){return a.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(b,c){return c?b.replace(new RegExp(a(c),"gi"),"$&"):b}}),angular.module("template/accordion/accordion-group.html",[]).run(["$templateCache",function(a){a.put("template/accordion/accordion-group.html",'
\n
\n

\n {{heading}}\n

\n
\n
\n
\n
\n
')}]),angular.module("template/accordion/accordion.html",[]).run(["$templateCache",function(a){a.put("template/accordion/accordion.html",'
')}]),angular.module("template/alert/alert.html",[]).run(["$templateCache",function(a){a.put("template/alert/alert.html","
\n \n
\n
\n")}]),angular.module("template/carousel/carousel.html",[]).run(["$templateCache",function(a){a.put("template/carousel/carousel.html",'\n')}]),angular.module("template/carousel/slide.html",[]).run(["$templateCache",function(a){a.put("template/carousel/slide.html","
\n")}]),angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/datepicker.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
#{{label}}
{{ getWeekNumber(row) }}\n \n
\n')}]),angular.module("template/datepicker/popup.html",[]).run(["$templateCache",function(a){a.put("template/datepicker/popup.html","
    \n
  • \n"+'
  • \n \n \n \n \n \n \n
  • \n
\n')}]),angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(a){a.put("template/modal/backdrop.html",'')}]),angular.module("template/modal/window.html",[]).run(["$templateCache",function(a){a.put("template/modal/window.html",'')}]),angular.module("template/pagination/pager.html",[]).run(["$templateCache",function(a){a.put("template/pagination/pager.html",'')}]),angular.module("template/pagination/pagination.html",[]).run(["$templateCache",function(a){a.put("template/pagination/pagination.html",'')}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(a){a.put("template/tooltip/tooltip-html-unsafe-popup.html",'
\n
\n
\n
\n')}]),angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(a){a.put("template/tooltip/tooltip-popup.html",'
\n
\n
\n
\n')}]),angular.module("template/popover/popover.html",[]).run(["$templateCache",function(a){a.put("template/popover/popover.html",'
\n
\n\n
\n

\n
\n
\n
\n')}]),angular.module("template/progressbar/bar.html",[]).run(["$templateCache",function(a){a.put("template/progressbar/bar.html",'
')}]),angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function(a){a.put("template/progressbar/progress.html",'
')}]),angular.module("template/progressbar/progressbar.html",[]).run(["$templateCache",function(a){a.put("template/progressbar/progressbar.html",'
')}]),angular.module("template/rating/rating.html",[]).run(["$templateCache",function(a){a.put("template/rating/rating.html",'\n \n')}]),angular.module("template/tabs/tab.html",[]).run(["$templateCache",function(a){a.put("template/tabs/tab.html",'
  • \n {{heading}}\n
  • \n')}]),angular.module("template/tabs/tabset-titles.html",[]).run(["$templateCache",function(a){a.put("template/tabs/tabset-titles.html","
      \n
    \n")}]),angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function(a){a.put("template/tabs/tabset.html",'\n
    \n \n
    \n
    \n
    \n
    \n
    \n')}]),angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function(a){a.put("template/timepicker/timepicker.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
     
    \n \n :\n \n
     
    \n')}]),angular.module("template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(a){a.put("template/typeahead/typeahead-match.html",'')}]),angular.module("template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(a){a.put("template/typeahead/typeahead-popup.html","
      \n"+'
    • \n
      \n
    • \n
    ')}]),angular.module("ui.alias",[]).config(["$compileProvider","uiAliasConfig",function(a,b){b=b||{},angular.forEach(b,function(b,c){angular.isString(b)&&(b={replace:!0,template:b}),a.directive(c,function(){return b})})}]),angular.module("ui.event",[]).directive("uiEvent",["$parse",function(a){return function(b,c,d){var e=b.$eval(d.uiEvent);angular.forEach(e,function(d,e){var f=a(d);c.bind(e,function(a){var c=Array.prototype.slice.call(arguments);c=c.splice(1),f(b,{$event:a,$params:c}),b.$$phase||b.$apply()})})}}]),angular.module("ui.format",[]).filter("format",function(){return function(a,b){var c=a;if(angular.isString(c)&&void 0!==b)if(angular.isArray(b)||angular.isObject(b)||(b=[b]),angular.isArray(b)){var d=b.length,e=function(a,c){return c=parseInt(c,10),c>=0&&d>c?b[c]:a};c=c.replace(/\$([0-9]+)/g,e)}else angular.forEach(b,function(a,b){c=c.split(":"+b).join(a)});return c}}),angular.module("ui.highlight",[]).filter("highlight",function(){return function(a,b,c){return b||angular.isNumber(b)?(a=a.toString(),b=b.toString(),c?a.split(b).join(''+b+""):a.replace(new RegExp(b,"gi"),'$&')):a}}),angular.module("ui.include",[]).directive("uiInclude",["$http","$templateCache","$anchorScroll","$compile",function(a,b,c,d){return{restrict:"ECA",terminal:!0,compile:function(e,f){var g=f.uiInclude||f.src,h=f.fragment||"",i=f.onload||"",j=f.autoscroll;return function(e,f){function k(){var k=++m,o=e.$eval(g),p=e.$eval(h);o?a.get(o,{cache:b}).success(function(a){if(k===m){l&&l.$destroy(),l=e.$new();var b;b=p?angular.element("
    ").html(a).find(p):angular.element("
    ").html(a).contents(),f.html(b),d(b)(l),!angular.isDefined(j)||j&&!e.$eval(j)||c(),l.$emit("$includeContentLoaded"),e.$eval(i)}}).error(function(){k===m&&n()}):n()}var l,m=0,n=function(){l&&(l.$destroy(),l=null),f.html("")};e.$watch(h,k),e.$watch(g,k)}}}}]),angular.module("ui.indeterminate",[]).directive("uiIndeterminate",[function(){return{compile:function(a,b){return b.type&&"checkbox"===b.type.toLowerCase()?function(a,b,c){a.$watch(c.uiIndeterminate,function(a){b[0].indeterminate=!!a})}:angular.noop}}}]),angular.module("ui.inflector",[]).filter("inflector",function(){function a(a){return a.replace(/^([a-z])|\s+([a-z])/g,function(a){return a.toUpperCase()})}function b(a,b){return a.replace(/[A-Z]/g,function(a){return b+a})}var c={humanize:function(c){return a(b(c," ").split("_").join(" "))},underscore:function(a){return a.substr(0,1).toLowerCase()+b(a.substr(1),"_").toLowerCase().split(" ").join("_")},variable:function(b){return b=b.substr(0,1).toLowerCase()+a(b.split("_").join(" ")).substr(1).split(" ").join("")}};return function(a,b){return b!==!1&&angular.isString(a)?(b=b||"humanize",c[b](a)):a}}),angular.module("ui.jq",[]).value("uiJqConfig",{}).directive("uiJq",["uiJqConfig","$timeout",function(a,b){return{restrict:"A",compile:function(c,d){if(!angular.isFunction(c[d.uiJq]))throw new Error('ui-jq: The "'+d.uiJq+'" function does not exist');var e=a&&a[d.uiJq];return function(a,c,d){function f(){b(function(){c[d.uiJq].apply(c,g)},0,!1)}var g=[];d.uiOptions?(g=a.$eval("["+d.uiOptions+"]"),angular.isObject(e)&&angular.isObject(g[0])&&(g[0]=angular.extend({},e,g[0]))):e&&(g=[e]),d.ngModel&&c.is("select,input,textarea")&&c.bind("change",function(){c.trigger("input")}),d.uiRefresh&&a.$watch(d.uiRefresh,function(){f()}),f()}}}}]),angular.module("ui.keypress",[]).factory("keypressHelper",["$parse",function(a){var b={8:"backspace",9:"tab",13:"enter",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"delete"},c=function(a){return a.charAt(0).toUpperCase()+a.slice(1)};return function(d,e,f,g){var h,i=[];h=e.$eval(g["ui"+c(d)]),angular.forEach(h,function(b,c){var d,e;e=a(b),angular.forEach(c.split(" "),function(a){d={expression:e,keys:{}},angular.forEach(a.split("-"),function(a){d.keys[a]=!0}),i.push(d)})}),f.bind(d,function(a){var c=!(!a.metaKey||a.ctrlKey),f=!!a.altKey,g=!!a.ctrlKey,h=!!a.shiftKey,j=a.keyCode;"keypress"===d&&!h&&j>=97&&122>=j&&(j-=32),angular.forEach(i,function(d){var i=d.keys[b[j]]||d.keys[j.toString()],k=!!d.keys.meta,l=!!d.keys.alt,m=!!d.keys.ctrl,n=!!d.keys.shift;i&&k===c&&l===f&&m===g&&n===h&&e.$apply(function(){d.expression(e,{$event:a})})})})}}]),angular.module("ui.keypress").directive("uiKeydown",["keypressHelper",function(a){return{link:function(b,c,d){a("keydown",b,c,d)}}}]),angular.module("ui.keypress").directive("uiKeypress",["keypressHelper",function(a){return{link:function(b,c,d){a("keypress",b,c,d)}}}]),angular.module("ui.keypress").directive("uiKeyup",["keypressHelper",function(a){return{link:function(b,c,d){a("keyup",b,c,d)}}}]),angular.module("ui.mask",[]).value("uiMaskConfig",{maskDefinitions:{9:/\d/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}}).directive("uiMask",["uiMaskConfig",function(a){return{priority:100,require:"ngModel",restrict:"A",compile:function(){var b=a;return function(a,c,d,e){function f(a){return angular.isDefined(a)?(s(a),N?(k(),l(),!0):j()):j()}function g(a){angular.isDefined(a)&&(D=a,N&&w())}function h(a){return N?(G=o(a||""),I=n(G),e.$setValidity("mask",I),I&&G.length?p(G):void 0):a}function i(a){return N?(G=o(a||""),I=n(G),e.$viewValue=G.length?p(G):"",e.$setValidity("mask",I),""===G&&void 0!==e.$error.required&&e.$setValidity("required",!1),I?G:void 0):a}function j(){return N=!1,m(),angular.isDefined(P)?c.attr("placeholder",P):c.removeAttr("placeholder"),angular.isDefined(Q)?c.attr("maxlength",Q):c.removeAttr("maxlength"),c.val(e.$modelValue),e.$viewValue=e.$modelValue,!1}function k(){G=K=o(e.$modelValue||""),H=J=p(G),I=n(G);var a=I&&G.length?H:"";d.maxlength&&c.attr("maxlength",2*B[B.length-1]),c.attr("placeholder",D),c.val(a),e.$viewValue=a}function l(){O||(c.bind("blur",t),c.bind("mousedown mouseup",u),c.bind("input keyup click focus",w),O=!0)}function m(){O&&(c.unbind("blur",t),c.unbind("mousedown",u),c.unbind("mouseup",u),c.unbind("input",w),c.unbind("keyup",w),c.unbind("click",w),c.unbind("focus",w),O=!1)}function n(a){return a.length?a.length>=F:!0}function o(a){var b="",c=C.slice();return a=a.toString(),angular.forEach(E,function(b){a=a.replace(b,"")}),angular.forEach(a.split(""),function(a){c.length&&c[0].test(a)&&(b+=a,c.shift())}),b}function p(a){var b="",c=B.slice();return angular.forEach(D.split(""),function(d,e){a.length&&e===c[0]?(b+=a.charAt(0)||"_",a=a.substr(1),c.shift()):b+=d}),b}function q(a){var b=d.placeholder;return"undefined"!=typeof b&&b[a]?b[a]:"_"}function r(){return D.replace(/[_]+/g,"_").replace(/([^_]+)([a-zA-Z0-9])([^_])/g,"$1$2_$3").split("_")}function s(a){var b=0;if(B=[],C=[],D="","string"==typeof a){F=0;var c=!1,d=a.split("");angular.forEach(d,function(a,d){R.maskDefinitions[a]?(B.push(b),D+=q(d),C.push(R.maskDefinitions[a]),b++,c||F++):"?"===a?c=!0:(D+=a,b++)})}B.push(B.slice().pop()+1),E=r(),N=B.length>1?!0:!1}function t(){L=0,M=0,I&&0!==G.length||(H="",c.val(""),a.$apply(function(){e.$setViewValue("")}))}function u(a){"mousedown"===a.type?c.bind("mouseout",v):c.unbind("mouseout",v)}function v(){M=A(this),c.unbind("mouseout",v)}function w(b){b=b||{};var d=b.which,f=b.type;if(16!==d&&91!==d){var g,h=c.val(),i=J,j=o(h),k=K,l=!1,m=y(this)||0,n=L||0,q=m-n,r=B[0],s=B[j.length]||B.slice().shift(),t=M||0,u=A(this)>0,v=t>0,w=h.length>i.length||t&&h.length>i.length-t,C=h.length=37&&40>=d&&b.shiftKey,E=37===d,F=8===d||"keyup"!==f&&C&&-1===q,G=46===d||"keyup"!==f&&C&&0===q&&!v,H=(E||F||"click"===f)&&m>r;if(M=A(this),!D&&(!u||"click"!==f&&"keyup"!==f)){if("input"===f&&C&&!v&&j===k){for(;F&&m>r&&!x(m);)m--;for(;G&&s>m&&-1===B.indexOf(m);)m++;var I=B.indexOf(m);j=j.substring(0,I)+j.substring(I+1),l=!0}for(g=p(j),J=g,K=j,c.val(g),l&&a.$apply(function(){e.$setViewValue(j)}),w&&r>=m&&(m=r+1),H&&m--,m=m>s?s:r>m?r:m;!x(m)&&m>r&&s>m;)m+=H?-1:1;(H&&s>m||w&&!x(n))&&m++,L=m,z(this,m)}}}function x(a){return B.indexOf(a)>-1}function y(a){if(!a)return 0;if(void 0!==a.selectionStart)return a.selectionStart;if(document.selection){a.focus();var b=document.selection.createRange();return b.moveStart("character",-a.value.length),b.text.length}return 0}function z(a,b){if(!a)return 0;if(0!==a.offsetWidth&&0!==a.offsetHeight)if(a.setSelectionRange)a.focus(),a.setSelectionRange(b,b);else if(a.createTextRange){var c=a.createTextRange();c.collapse(!0),c.moveEnd("character",b),c.moveStart("character",b),c.select()}}function A(a){return a?void 0!==a.selectionStart?a.selectionEnd-a.selectionStart:document.selection?document.selection.createRange().text.length:0:0}var B,C,D,E,F,G,H,I,J,K,L,M,N=!1,O=!1,P=d.placeholder,Q=d.maxlength,R={};d.uiOptions?(R=a.$eval("["+d.uiOptions+"]"),angular.isObject(R[0])&&(R=function(a,b){for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]?angular.extend(b[c],a[c]):b[c]=angular.copy(a[c]));return b}(b,R[0]))):R=b,d.$observe("uiMask",f),d.$observe("placeholder",g),e.$formatters.push(h),e.$parsers.push(i),c.bind("mousedown mouseup",u),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){if(null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!==d?d=0:0!==d&&1/0!==d&&d!==-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1})}}}}]),angular.module("ui.reset",[]).value("uiResetConfig",null).directive("uiReset",["uiResetConfig",function(a){var b=null;return void 0!==a&&(b=a),{require:"ngModel",link:function(a,c,d,e){var f;f=angular.element(''),c.wrap('').after(f),f.bind("click",function(c){c.preventDefault(),a.$apply(function(){e.$setViewValue(d.uiReset?a.$eval(d.uiReset):b),e.$render()})})}}}]),angular.module("ui.route",[]).directive("uiRoute",["$location","$parse",function(a,b){return{restrict:"AC",scope:!0,compile:function(c,d){var e;if(d.uiRoute)e="uiRoute";else if(d.ngHref)e="ngHref";else{if(!d.href)throw new Error("uiRoute missing a route or href property on "+c[0]);e="href"}return function(c,d,f){function g(b){var d=b.indexOf("#");d>-1&&(b=b.substr(d+1)),(j=function(){i(c,a.path().indexOf(b)>-1)})()}function h(b){var d=b.indexOf("#");d>-1&&(b=b.substr(d+1)),(j=function(){var d=new RegExp("^"+b+"$",["i"]);i(c,d.test(a.path()))})()}var i=b(f.ngModel||f.routeModel||"$uiRoute").assign,j=angular.noop;switch(e){case"uiRoute":f.uiRoute?h(f.uiRoute):f.$observe("uiRoute",h);break;case"ngHref":f.ngHref?g(f.ngHref):f.$observe("ngHref",g);break;case"href":g(f.href)}c.$on("$routeChangeSuccess",function(){j()}),c.$on("$stateChangeSuccess",function(){j()})}}}}]),angular.module("ui.scroll.jqlite",["ui.scroll"]).service("jqLiteExtras",["$log","$window",function(a,b){return{registerFor:function(a){var c,d,e,f,g,h,i;return d=angular.element.prototype.css,a.prototype.css=function(a,b){var c,e;return e=this,c=e[0],c&&3!==c.nodeType&&8!==c.nodeType&&c.style?d.call(e,a,b):void 0},h=function(a){return a&&a.document&&a.location&&a.alert&&a.setInterval},i=function(a,b,c){var d,e,f,g,i;return d=a[0],i={top:["scrollTop","pageYOffset","scrollLeft"],left:["scrollLeft","pageXOffset","scrollTop"]}[b],e=i[0],g=i[1],f=i[2],h(d)?angular.isDefined(c)?d.scrollTo(a[f].call(a),c):g in d?d[g]:d.document.documentElement[e]:angular.isDefined(c)?d[e]=c:d[e]},b.getComputedStyle?(f=function(a){return b.getComputedStyle(a,null)},c=function(a,b){return parseFloat(b)}):(f=function(a){return a.currentStyle},c=function(a,b){var c,d,e,f,g,h,i;return c=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,f=new RegExp("^("+c+")(?!px)[a-z%]+$","i"),f.test(b)?(i=a.style,d=i.left,g=a.runtimeStyle,h=g&&g.left,g&&(g.left=i.left),i.left=b,e=i.pixelLeft,i.left=d,h&&(g.left=h),e):parseFloat(b)}),e=function(a,b){var d,e,g,i,j,k,l,m,n,o,p,q,r;return h(a)?(d=document.documentElement[{height:"clientHeight",width:"clientWidth"}[b]],{base:d,padding:0,border:0,margin:0}):(r={width:[a.offsetWidth,"Left","Right"],height:[a.offsetHeight,"Top","Bottom"]}[b],d=r[0],l=r[1],m=r[2],k=f(a),p=c(a,k["padding"+l])||0,q=c(a,k["padding"+m])||0,e=c(a,k["border"+l+"Width"])||0,g=c(a,k["border"+m+"Width"])||0,i=k["margin"+l],j=k["margin"+m],n=c(a,i)||0,o=c(a,j)||0,{base:d,padding:p+q,border:e+g,margin:n+o})},g=function(a,b,c){var d,g,h;return g=e(a,b),g.base>0?{base:g.base-g.padding-g.border,outer:g.base,outerfull:g.base+g.margin}[c]:(d=f(a),h=d[b],(0>h||null===h)&&(h=a.style[b]||0),h=parseFloat(h)||0,{base:h-g.padding-g.border,outer:h,outerfull:h+g.padding+g.border+g.margin}[c])},angular.forEach({before:function(a){var b,c,d,e,f,g,h;if(f=this,c=f[0],e=f.parent(),b=e.contents(),b[0]===c)return e.prepend(a);for(d=g=1,h=b.length-1;h>=1?h>=g:g>=h;d=h>=1?++g:--g)if(b[d]===c)return void angular.element(b[d-1]).after(a);throw new Error("invalid DOM structure "+c.outerHTML)},height:function(a){var b;return b=this,angular.isDefined(a)?(angular.isNumber(a)&&(a+="px"),d.call(b,"height",a)):g(this[0],"height","base")},outerHeight:function(a){return g(this[0],"height",a?"outerfull":"outer")},offset:function(a){var b,c,d,e,f,g;return f=this,arguments.length?void 0===a?f:a:(b={top:0,left:0},e=f[0],(c=e&&e.ownerDocument)?(d=c.documentElement,e.getBoundingClientRect&&(b=e.getBoundingClientRect()),g=c.defaultView||c.parentWindow,{top:b.top+(g.pageYOffset||d.scrollTop)-(d.clientTop||0),left:b.left+(g.pageXOffset||d.scrollLeft)-(d.clientLeft||0)}):void 0) -},scrollTop:function(a){return i(this,"top",a)},scrollLeft:function(a){return i(this,"left",a)}},function(b,c){return a.prototype[c]?void 0:a.prototype[c]=b})}}}]).run(["$log","$window","jqLiteExtras",function(a,b,c){return b.jQuery?void 0:c.registerFor(angular.element)}]),angular.module("ui.scroll",[]).directive("ngScrollViewport",["$log",function(){return{controller:["$scope","$element",function(a,b){return b}]}}]).directive("ngScroll",["$log","$injector","$rootScope","$timeout",function(a,b,c,d){return{require:["?^ngScrollViewport"],transclude:"element",priority:1e3,terminal:!0,compile:function(e,f,g){return function(f,h,i,j){var k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T;if(H=i.ngScroll.match(/^\s*(\w+)\s+in\s+(\w+)\s*$/),!H)throw new Error('Expected ngScroll in form of "item_ in _datasource_" but got "'+i.ngScroll+'"');if(F=H[1],v=H[2],D=function(a){return angular.isObject(a)&&a.get&&angular.isFunction(a.get)},u=f[v],!D(u)&&(u=b.get(v),!D(u)))throw new Error(v+" is not a valid datasource");return r=Math.max(3,+i.bufferSize||10),q=function(){return T.height()*Math.max(.1,+i.padding||.1)},O=function(a){return a[0].scrollHeight||a[0].document.documentElement.scrollHeight},k=null,g(R=f.$new(),function(a){var b,c,d,f,g,h;if(f=a[0].localName,"dl"===f)throw new Error("ng-scroll directive does not support <"+a[0].localName+"> as a repeating tag: "+a[0].outerHTML);return"li"!==f&&"tr"!==f&&(f="div"),h=j[0]||angular.element(window),h.css({"overflow-y":"auto",display:"block"}),d=function(a){var b,c,d;switch(a){case"tr":return d=angular.element("
    "),b=d.find("div"),c=d.find("tr"),c.paddingHeight=function(){return b.height.apply(b,arguments)},c;default:return c=angular.element("<"+a+">"),c.paddingHeight=c.height,c}},c=function(a,b,c){return b[{top:"before",bottom:"after"}[c]](a),{paddingHeight:function(){return a.paddingHeight.apply(a,arguments)},insert:function(b){return a[{top:"after",bottom:"before"}[c]](b)}}},g=c(d(f),e,"top"),b=c(d(f),e,"bottom"),R.$destroy(),k={viewport:h,topPadding:g.paddingHeight,bottomPadding:b.paddingHeight,append:b.insert,prepend:g.insert,bottomDataPos:function(){return O(h)-b.paddingHeight()},topDataPos:function(){return g.paddingHeight()}}}),T=k.viewport,B=1,I=1,p=[],J=[],x=!1,n=!1,G=u.loading||function(){},E=!1,L=function(a,b){var c,d;for(c=d=a;b>=a?b>d:d>b;c=b>=a?++d:--d)p[c].scope.$destroy(),p[c].element.remove();return p.splice(a,b-a)},K=function(){return B=1,I=1,L(0,p.length),k.topPadding(0),k.bottomPadding(0),J=[],x=!1,n=!1,l(!1)},o=function(){return T.scrollTop()+T.height()},S=function(){return T.scrollTop()},P=function(){return!x&&k.bottomDataPos()=g?0>=f:f>=0)&&(d=p[c].element.outerHeight(!0),k.bottomDataPos()-b-d>o()+q());c=0>=g?++f:--f)b+=d,e++,x=!1;return e>0?(k.bottomPadding(k.bottomPadding()+b),L(p.length-e,p.length),I-=e,a.log("clipped off bottom "+e+" bottom padding "+k.bottomPadding())):void 0},Q=function(){return!n&&k.topDataPos()>S()-q()},t=function(){var b,c,d,e,f,g;for(e=0,d=0,f=0,g=p.length;g>f&&(b=p[f],c=b.element.outerHeight(!0),k.topDataPos()+e+c0?(k.topPadding(k.topPadding()+e),L(0,d),B+=d,a.log("clipped off top "+d+" top padding "+k.topPadding())):void 0},w=function(a,b){return E||(E=!0,G(!0)),1===J.push(a)?z(b):void 0},C=function(a,b){var c,d,e;return c=f.$new(),c[F]=b,d=a>B,c.$index=a,d&&c.$index--,e={scope:c},g(c,function(b){return e.element=b,d?a===I?(k.append(b),p.push(e)):(p[a-B].element.after(b),p.splice(a-B+1,0,e)):(k.prepend(b),p.unshift(e))}),{appended:d,wrapper:e}},m=function(a,b){var c;return a?k.bottomPadding(Math.max(0,k.bottomPadding()-b.element.outerHeight(!0))):(c=k.topPadding()-b.element.outerHeight(!0),c>=0?k.topPadding(c):T.scrollTop(T.scrollTop()+b.element.outerHeight(!0)))},l=function(b,c,e){var f;return f=function(){return a.log("top {actual="+k.topDataPos()+" visible from="+S()+" bottom {visible through="+o()+" actual="+k.bottomDataPos()+"}"),P()?w(!0,b):Q()&&w(!1,b),e?e():void 0},c?d(function(){var a,b,d;for(b=0,d=c.length;d>b;b++)a=c[b],m(a.appended,a.wrapper);return f()}):f()},A=function(a,b){return l(a,b,function(){return J.shift(),0===J.length?(E=!1,G(!1)):z(a)})},z=function(b){var c;return c=J[0],c?p.length&&!P()?A(b):u.get(I,r,function(c){var d,e,f,g;if(e=[],0===c.length)x=!0,k.bottomPadding(0),a.log("appended: requested "+r+" records starting from "+I+" recieved: eof");else{for(t(),f=0,g=c.length;g>f;f++)d=c[f],e.push(C(++I,d));a.log("appended: requested "+r+" received "+c.length+" buffer size "+p.length+" first "+B+" next "+I)}return A(b,e)}):p.length&&!Q()?A(b):u.get(B-r,r,function(c){var d,e,f,g;if(e=[],0===c.length)n=!0,k.topPadding(0),a.log("prepended: requested "+r+" records starting from "+(B-r)+" recieved: bof");else{for(s(),d=f=g=c.length-1;0>=g?0>=f:f>=0;d=0>=g?++f:--f)e.unshift(C(--B,c[d]));a.log("prepended: requested "+r+" received "+c.length+" buffer size "+p.length+" first "+B+" next "+I)}return A(b,e)})},M=function(){return c.$$phase||E?void 0:(l(!1),f.$apply())},T.bind("resize",M),N=function(){return c.$$phase||E?void 0:(l(!0),f.$apply())},T.bind("scroll",N),f.$watch(u.revision,function(){return K()}),y=u.scope?u.scope.$new():f.$new(),f.$on("$destroy",function(){return y.$destroy(),T.unbind("resize",M),T.unbind("scroll",N)}),y.$on("update.items",function(a,b,c){var d,e,f,g,h;if(angular.isFunction(b))for(e=function(a){return b(a.scope)},f=0,g=p.length;g>f;f++)d=p[f],e(d);else 0<=(h=b-B-1)&&hh;h++)d=p[h],e.unshift(d);for(g=function(a){return b(a.scope)?(L(e.length-1-c,e.length-c),I--):void 0},c=i=0,m=e.length;m>i;c=++i)f=e[c],g(f)}else 0<=(o=b-B-1)&&oj;c=++j)d=p[c],d.scope.$index=B+c;return l(!1)}),y.$on("insert.item",function(a,b,c){var d,e,f,g,h,i,j,k,m,n,o,q;if(e=[],angular.isFunction(b)){for(f=[],i=0,m=p.length;m>i;i++)c=p[i],f.unshift(c);for(h=function(a){var f,g,h,i,j;if(g=b(a.scope)){if(C=function(a,b){return C(a,b),I++},angular.isArray(g)){for(j=[],f=h=0,i=g.length;i>h;f=++h)c=g[f],j.push(e.push(C(d+f,c)));return j}return e.push(C(d,g))}},d=j=0,n=f.length;n>j;d=++j)g=f[d],h(g)}else 0<=(q=b-B-1)&&qk;d=++k)c=p[d],c.scope.$index=B+d;return l(!1,e)})}}}}]),angular.module("ui.scrollfix",[]).directive("uiScrollfix",["$window",function(a){return{require:"^?uiScrollfixTarget",link:function(b,c,d,e){function f(){var b;if(angular.isDefined(a.pageYOffset))b=a.pageYOffset;else{var e=document.compatMode&&"BackCompat"!==document.compatMode?document.documentElement:document.body;b=e.scrollTop}!c.hasClass("ui-scrollfix")&&b>d.uiScrollfix?c.addClass("ui-scrollfix"):c.hasClass("ui-scrollfix")&&b")(i);j.append(k),i.count=f,void 0!==g&&k.eq(0).children().css("height",g),void 0!==h&&(k.eq(0).children().css("background-color",h),k.eq(0).children().css("color",h));var l=0;return{start:function(){this.show();var a=this;l=setInterval(function(){if(isNaN(f))clearInterval(l),f=0,a.hide();else{var b=100-f;f+=.15*Math.pow(1-Math.sqrt(b),2),a.updateCount(f)}},200)},updateCount:function(a){i.count=a,i.$$phase||i.$apply()},height:function(a){return void 0!==a&&(g=a,i.height=g,i.$$phase||i.$apply()),g},color:function(a){return void 0!==a&&(h=a,i.color=h,i.$$phase||i.$apply()),h},hide:function(){k.children().css("opacity","0");var a=this;e(function(){k.children().css("width","0%"),e(function(){a.show()},500)},500)},show:function(){e(function(){k.children().css("opacity","1")},100)},status:function(){return f},stop:function(){clearInterval(l)},set:function(a){return this.show(),this.updateCount(a),f=a,clearInterval(l),f},css:function(a){return k.children().css(a)},reset:function(){return clearInterval(l),f=0,this.updateCount(f),0},complete:function(){f=100,this.updateCount(f);var a=this;return e(function(){a.hide(),e(function(){f=0,a.updateCount(f)},500)},1e3),f}}}],this.setColor=function(a){return void 0!==a&&(this.color=a),this.color},this.setHeight=function(a){return void 0!==a&&(this.height=a),this.height}}),angular.module("ngProgress.directive",[]).directive("ngProgress",["$window","$rootScope",function(a,b){var c={replace:!0,restrict:"E",link:function(a,c){b.$watch("count",function(b){(void 0!==b||null!==b)&&(a.counter=b,c.eq(0).children().css("width",b+"%"))}),b.$watch("color",function(b){(void 0!==b||null!==b)&&(a.color=b,c.eq(0).children().css("background-color",b),c.eq(0).children().css("color",b))}),b.$watch("height",function(b){(void 0!==b||null!==b)&&(a.height=b,c.eq(0).children().css("height",b))})},template:'
    '};return c}]),angular.module("ngProgress",["ngProgress.directive","ngProgress.provider"]); \ No newline at end of file diff --git a/public/js/main.min.js b/public/js/main.min.js deleted file mode 100644 index 72459055..00000000 --- a/public/js/main.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! insight-bitcore 0.1.2 */ -angular.module("insight",["ngAnimate","ngResource","ngRoute","ngProgress","ui.bootstrap","ui.route","monospaced.qrcode","insight.system","insight.socket","insight.blocks","insight.transactions","insight.address","insight.search","insight.status","insight.connection","insight.currency"]),angular.module("insight.system",[]),angular.module("insight.socket",[]),angular.module("insight.blocks",[]),angular.module("insight.transactions",[]),angular.module("insight.address",[]),angular.module("insight.search",[]),angular.module("insight.status",[]),angular.module("insight.connection",[]),angular.module("insight.currency",[]),angular.module("insight.address").controller("AddressController",function($scope,$rootScope,$routeParams,$location,Global,Address,getSocket){$scope.global=Global,$scope.findOne=function(){$rootScope.currentAddr=$routeParams.addrStr,Address.get({addrStr:$routeParams.addrStr},function(address){$rootScope.titleDetail=address.addrStr.substring(0,7)+"...",$rootScope.flashMessage=null,$scope.address=address},function(e){$rootScope.flashMessage=400===e.status?"Invalid Address: "+$routeParams.addrStr:503===e.status?"Backend Error. "+e.data:"Address Not Found",$location.path("/")})};var socket=getSocket($scope);socket.on("connect",function(){socket.emit("subscribe",$routeParams.addrStr),socket.on($routeParams.addrStr,function(tx){console.log("AddressTx event received "+tx),$rootScope.$broadcast("tx",tx)})}),$scope.params=$routeParams}),angular.module("insight.blocks").controller("BlocksController",function($scope,$rootScope,$routeParams,$location,Global,Block,Blocks,BlockByHeight){$scope.global=Global,$scope.loading=!1,$routeParams.blockHeight&&BlockByHeight.get({blockHeight:$routeParams.blockHeight},function(hash){$location.path("/block/"+hash.blockHash)},function(){$rootScope.flashMessage="Bad Request",$location.path("/")});var _formatTimestamp=function(date){var yyyy=date.getUTCFullYear().toString(),mm=(date.getUTCMonth()+1).toString(),dd=date.getUTCDate().toString();return yyyy+"-"+(mm[1]?mm:"0"+mm[0])+"-"+(dd[1]?dd:"0"+dd[0])};$scope.$watch("dt",function(newValue,oldValue){newValue!==oldValue&&$location.path("/blocks-date/"+_formatTimestamp(newValue))}),$scope.openCalendar=function($event){$event.preventDefault(),$event.stopPropagation(),$scope.opened=!0},$scope.humanSince=function(time){var m=moment.unix(time).startOf("day"),b=moment().startOf("day");return m.max().from(b)},$scope.list=function(){$scope.loading=!0,$routeParams.blockDate&&($rootScope.titleDetail="on "+$routeParams.blockDate),Blocks.get({blockDate:$routeParams.blockDate},function(res){$scope.loading=!1,$scope.blocks=res.blocks,$scope.pagination=res.pagination})},$scope.findOne=function(){$scope.loading=!0,Block.get({blockHash:$routeParams.blockHash},function(block){$rootScope.titleDetail=block.height,$rootScope.flashMessage=null,$scope.loading=!1,$scope.block=block},function(e){$rootScope.flashMessage=400===e.status?"Invalid Transaction ID: "+$routeParams.txId:503===e.status?"Backend Error. "+e.data:"Block Not Found",$location.path("/")})},$scope.params=$routeParams}),angular.module("insight.connection").controller("ConnectionController",function($scope,$window,Status,getSocket,PeerSync){$scope.apiOnline=!0,$scope.serverOnline=!0,$scope.clienteOnline=!0;var socket=getSocket($scope);socket.on("connect",function(){$scope.serverOnline=!0,socket.on("disconnect",function(){$scope.serverOnline=!1})}),$scope.getConnStatus=function(){PeerSync.get({},function(peer){$scope.apiOnline=peer.connected,$scope.host=peer.host,$scope.port=peer.port},function(){$scope.apiOnline=!1})},socket.emit("subscribe","sync"),socket.on("status",function(sync){$scope.sync=sync,$scope.apiOnline="aborted"!==sync.status&&"error"!==sync.status}),$window.addEventListener("offline",function(){$scope.$apply(function(){$scope.clienteOnline=!1})},!0),$window.addEventListener("online",function(){$scope.$apply(function(){$scope.clienteOnline=!0})},!0)}),angular.module("insight.currency").controller("CurrencyController",function($scope,$rootScope,Currency){var _roundFloat=function(x,n){return parseInt(n,10)&&parseFloat(x)||(n=0),Math.round(x*Math.pow(10,n))/Math.pow(10,n)};$rootScope.currency.getConvertion=function(value){if("undefined"!=typeof value&&null!==value){var response;return"USD"===this.symbol?response=_roundFloat(value*this.factor,2):"mBTC"===this.symbol?(this.factor=1e3,response=_roundFloat(value*this.factor,5)):(this.factor=1,response=value),response+" "+this.symbol}return"value error"},$scope.setCurrency=function(currency){$rootScope.currency.symbol=currency,"USD"===currency?Currency.get({},function(res){$rootScope.currency.factor=$rootScope.currency.bitstamp=res.data.bitstamp}):$rootScope.currency.factor="mBTC"===currency?1e3:1},Currency.get({},function(res){$rootScope.currency.bitstamp=res.data.bitstamp})}),angular.module("insight.system").controller("FooterController",function($scope,Version){var _getVersion=function(){Version.get({},function(res){$scope.version=res.version})};$scope.version=_getVersion()}),angular.module("insight.system").controller("HeaderController",function($scope,$rootScope,getSocket,Global,Block){$scope.global=Global,$rootScope.currency={factor:1,bitstamp:0,symbol:"BTC"},$scope.menu=[{title:"Blocks",link:"blocks"},{title:"Status",link:"status"}];var _getBlock=function(hash){Block.get({blockHash:hash},function(res){$scope.totalBlocks=res.height})},socket=getSocket($scope);socket.on("connect",function(){socket.emit("subscribe","inv"),socket.on("block",function(block){var blockHash=block.toString();_getBlock(blockHash)})}),$rootScope.isCollapsed=!0});var TRANSACTION_DISPLAYED=10,BLOCKS_DISPLAYED=5;angular.module("insight.system").controller("IndexController",function($scope,Global,getSocket,Blocks){$scope.global=Global;var _getBlocks=function(){Blocks.get({limit:BLOCKS_DISPLAYED},function(res){$scope.blocks=res.blocks,$scope.blocksLength=res.lenght})},socket=getSocket($scope);socket.on("connect",function(){socket.emit("subscribe","inv"),socket.on("tx",function(tx){$scope.txs.unshift(tx),parseInt($scope.txs.length,10)>=parseInt(TRANSACTION_DISPLAYED,10)&&($scope.txs=$scope.txs.splice(0,TRANSACTION_DISPLAYED))}),socket.on("block",function(){_getBlocks()})}),$scope.humanSince=function(time){var m=moment.unix(time);return m.max().fromNow()},$scope.index=function(){_getBlocks()},$scope.txs=[],$scope.blocks=[]}),angular.module("insight.search").controller("SearchController",function($scope,$routeParams,$location,$timeout,Global,Block,Transaction,Address,BlockByHeight){$scope.global=Global,$scope.loading=!1;var _badQuery=function(){$scope.badQuery=!0,$timeout(function(){$scope.badQuery=!1},2e3)},_resetSearch=function(){$scope.q="",$scope.loading=!1};$scope.search=function(){var q=$scope.q;$scope.badQuery=!1,$scope.loading=!0,Block.get({blockHash:q},function(){_resetSearch(),$location.path("block/"+q)},function(){Transaction.get({txId:q},function(){_resetSearch(),$location.path("tx/"+q)},function(){Address.get({addrStr:q},function(){_resetSearch(),$location.path("address/"+q)},function(){isFinite(q)?BlockByHeight.get({blockHeight:q},function(hash){_resetSearch(),$location.path("/block/"+hash.blockHash)},function(){_badQuery()}):($scope.loading=!1,_badQuery())})})})}}),angular.module("insight.status").controller("StatusController",function($scope,$routeParams,$location,Global,Status,Sync,getSocket){$scope.global=Global,$scope.getStatus=function(q){Status.get({q:"get"+q},function(d){$scope.loaded=1,angular.extend($scope,d)},function(e){$scope.error="API ERROR: "+e.data})},$scope.humanSince=function(time){var m=moment.unix(time/1e3);return m.max().fromNow()};var _onSyncUpdate=function(sync){$scope.sync=sync};$scope.getSync=function(){Sync.get({},function(sync){_onSyncUpdate(sync)},function(e){var err="Could not get sync information"+e.toString();$scope.sync={error:err}})};var socket=getSocket($scope);socket.on("connect",function(){socket.emit("subscribe","sync"),socket.on("status",function(sync){_onSyncUpdate(sync)})})}),angular.module("insight.transactions").controller("transactionsController",function($scope,$rootScope,$routeParams,$location,Global,Transaction,TransactionsByBlock,TransactionsByAddress){$scope.global=Global,$scope.loading=!1,$scope.loadedBy=null;var pageNum=0,pagesTotal=1,COIN=1e8,_aggregateItems=function(items){if(!items)return[];for(var l=items.length,ret=[],tmp={},u=0,i=0;l>i;i++){var notAddr=!1;if(items[i].scriptSig&&!items[i].addr&&(items[i].addr="Unparsed address ["+u++ +"]",items[i].notAddr=!0,notAddr=!0),items[i].scriptPubKey&&!items[i].scriptPubKey.addresses&&(items[i].scriptPubKey.addresses=["Unparsed address ["+u++ +"]"],items[i].notAddr=!0,notAddr=!0),items[i].scriptPubKey&&items[i].scriptPubKey.addresses.length>1)items[i].addr=items[i].scriptPubKey.addresses.join(","),ret.push(items[i]);else{var addr=items[i].addr||items[i].scriptPubKey&&items[i].scriptPubKey.addresses[0];tmp[addr]||(tmp[addr]={},tmp[addr].valueSat=0,tmp[addr].count=0,tmp[addr].addr=addr,tmp[addr].items=[]),tmp[addr].isSpent=items[i].spentTxId,tmp[addr].doubleSpentTxID=tmp[addr].doubleSpentTxID||items[i].doubleSpentTxID,tmp[addr].doubleSpentIndex=tmp[addr].doubleSpentIndex||items[i].doubleSpentIndex,tmp[addr].unconfirmedInput+=items[i].unconfirmedInput,tmp[addr].dbError=tmp[addr].dbError||items[i].dbError,tmp[addr].valueSat+=items[i].value*COIN,tmp[addr].items.push(items[i]),tmp[addr].notAddr=notAddr,tmp[addr].count++}}return angular.forEach(tmp,function(v){v.value=parseInt(v.valueSat)/COIN,ret.push(v)}),ret},_processTX=function(tx){tx.vinSimple=_aggregateItems(tx.vin),tx.voutSimple=_aggregateItems(tx.vout)},_paginate=function(data){$scope.loading=!1,pagesTotal=data.pagesTotal,pageNum+=1,data.txs.forEach(function(tx){_processTX(tx),$scope.txs.push(tx)})},_byBlock=function(){TransactionsByBlock.get({block:$routeParams.blockHash,pageNum:pageNum},function(data){_paginate(data)})},_byAddress=function(){TransactionsByAddress.get({address:$routeParams.addrStr,pageNum:pageNum},function(data){_paginate(data)})},_findTx=function(txid){Transaction.get({txId:txid},function(tx){$rootScope.titleDetail=tx.txid.substring(0,7)+"...",$rootScope.flashMessage=null,$scope.tx=tx,_processTX(tx),$scope.txs.unshift(tx)},function(e){$rootScope.flashMessage=400===e.status?"Invalid Transaction ID: "+$routeParams.txId:503===e.status?"Backend Error. "+e.data:"Transaction Not Found",$location.path("/")})};$scope.findThis=function(){_findTx($routeParams.txId)},$scope.load=function(from){$scope.loadedBy=from,$scope.loadMore()},$scope.loadMore=function(){pagesTotal>pageNum&&!$scope.loading&&($scope.loading=!0,"address"===$scope.loadedBy?_byAddress():_byBlock())},$scope.txs=[],$scope.$on("tx",function(event,txid){_findTx(txid)})}),angular.module("insight.address").factory("Address",function($resource){return $resource("/api/addr/:addrStr",{addrStr:"@addStr"},{get:{method:"GET",interceptor:{response:function(res){return res.data},responseError:function(res){return 404===res.status?res:void 0}}}})}),angular.module("insight.blocks").factory("Block",function($resource){return $resource("/api/block/:blockHash",{blockHash:"@blockHash"},{get:{method:"GET",interceptor:{response:function(res){return res.data},responseError:function(res){return 404===res.status?res:void 0}}}})}).factory("Blocks",function($resource){return $resource("/api/blocks")}).factory("BlockByHeight",function($resource){return $resource("/api/block-index/:blockHeight")}),angular.module("insight.currency").factory("Currency",function($resource){return $resource("/api/currency")}),angular.module("insight.system").factory("Global",[function(){}]).factory("Version",function($resource){return $resource("/api/version")});var ScopedSocket=function(socket,$rootScope){this.socket=socket,this.$rootScope=$rootScope,this.listeners=[]};ScopedSocket.prototype.removeAllListeners=function(opts){opts||(opts={});for(var i=0;i
    Copied!
    ',link:function(scope,elm){var clip=new ZeroClipboard(elm);clip.on("load",function(client){var onMousedown=function(client){client.setText(scope.clipCopy)};client.on("mousedown",onMousedown),scope.$on("$destroy",function(){client.off("mousedown",onMousedown)})}),clip.on("noFlash wrongflash",function(){return elm.remove()})}}}),angular.module("insight").filter("startFrom",function(){return function(input,start){return start=+start,input.slice(start)}}),angular.module("insight").config(function($routeProvider){$routeProvider.when("/block/:blockHash",{templateUrl:"/views/block.html",title:"Bitcoin Block "}).when("/block-index/:blockHeight",{controller:"BlocksController",templateUrl:"/views/redirect.html"}).when("/tx/:txId",{templateUrl:"/views/transaction.html",title:"Bitcoin Transaction "}).when("/",{templateUrl:"/views/index.html",title:"Home"}).when("/blocks",{templateUrl:"/views/block_list.html",title:"Bitcoin Blocks solved Today"}).when("/blocks-date/:blockDate",{templateUrl:"/views/block_list.html",title:"Bitcoin Blocks solved "}).when("/address/:addrStr",{templateUrl:"/views/address.html",title:"Bitcoin Address "}).when("/status",{templateUrl:"/views/status.html",title:"Status"}).otherwise({templateUrl:"/views/404.html",title:"Error"})}),angular.module("insight").config(function($locationProvider){$locationProvider.html5Mode(!0),$locationProvider.hashPrefix("!")}).run(function($rootScope,$route,ngProgress){$rootScope.$on("$routeChangeStart",function(){ngProgress.start()}),$rootScope.$on("$routeChangeSuccess",function(){ngProgress.complete(),$rootScope.titleDetail="",$rootScope.title=$route.current.title,$rootScope.isCollapsed=!0,$rootScope.currentAddr=null})}),angular.element(document).ready(function(){}); \ No newline at end of file diff --git a/public/js/vendors.min.js b/public/js/vendors.min.js deleted file mode 100644 index 120c61c8..00000000 --- a/public/js/vendors.min.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! insight-bitcore 0.1.2 */ -(function(a){function b(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function c(a,b){return function(c){return k(a.call(this,c),b)}}function d(a,b){return function(c){return this.lang().ordinal(a.call(this,c),b)}}function e(){}function f(a){w(a),h(this,a)}function g(a){var b=q(a),c=b.year||0,d=b.month||0,e=b.week||0,f=b.day||0,g=b.hour||0,h=b.minute||0,i=b.second||0,j=b.millisecond||0;this._milliseconds=+j+1e3*i+6e4*h+36e5*g,this._days=+f+7*e,this._months=+d+12*c,this._data={},this._bubble()}function h(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return b.hasOwnProperty("toString")&&(a.toString=b.toString),b.hasOwnProperty("valueOf")&&(a.valueOf=b.valueOf),a}function i(a){var b,c={};for(b in a)a.hasOwnProperty(b)&&qb.hasOwnProperty(b)&&(c[b]=a[b]);return c}function j(a){return 0>a?Math.ceil(a):Math.floor(a)}function k(a,b,c){for(var d=""+Math.abs(a),e=a>=0;d.lengthd;d++)(c&&a[d]!==b[d]||!c&&s(a[d])!==s(b[d]))&&g++;return g+f}function p(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=Tb[a]||Ub[b]||b}return a}function q(a){var b,c,d={};for(c in a)a.hasOwnProperty(c)&&(b=p(c),b&&(d[b]=a[c]));return d}function r(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}db[b]=function(e,f){var g,h,i=db.fn._lang[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=db().utc().set(d,a);return i.call(db.fn._lang,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function s(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function t(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function u(a){return v(a)?366:365}function v(a){return a%4===0&&a%100!==0||a%400===0}function w(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[jb]<0||a._a[jb]>11?jb:a._a[kb]<1||a._a[kb]>t(a._a[ib],a._a[jb])?kb:a._a[lb]<0||a._a[lb]>23?lb:a._a[mb]<0||a._a[mb]>59?mb:a._a[nb]<0||a._a[nb]>59?nb:a._a[ob]<0||a._a[ob]>999?ob:-1,a._pf._overflowDayOfYear&&(ib>b||b>kb)&&(b=kb),a._pf.overflow=b)}function x(a){return null==a._isValid&&(a._isValid=!isNaN(a._d.getTime())&&a._pf.overflow<0&&!a._pf.empty&&!a._pf.invalidMonth&&!a._pf.nullInput&&!a._pf.invalidFormat&&!a._pf.userInvalidated,a._strict&&(a._isValid=a._isValid&&0===a._pf.charsLeftOver&&0===a._pf.unusedTokens.length)),a._isValid}function y(a){return a?a.toLowerCase().replace("_","-"):a}function z(a,b){return b._isUTC?db(a).zone(b._offset||0):db(a).local()}function A(a,b){return b.abbr=a,pb[a]||(pb[a]=new e),pb[a].set(b),pb[a]}function B(a){delete pb[a]}function C(a){var b,c,d,e,f=0,g=function(a){if(!pb[a]&&rb)try{require("./lang/"+a)}catch(b){}return pb[a]};if(!a)return db.fn._lang;if(!m(a)){if(c=g(a))return c;a=[a]}for(;f0;){if(c=g(e.slice(0,b).join("-")))return c;if(d&&d.length>=b&&o(e,d,!0)>=b-1)break;b--}f++}return db.fn._lang}function D(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function E(a){var b,c,d=a.match(vb);for(b=0,c=d.length;c>b;b++)d[b]=Yb[d[b]]?Yb[d[b]]:D(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function F(a,b){return a.isValid()?(b=G(b,a.lang()),Vb[b]||(Vb[b]=E(b)),Vb[b](a)):a.lang().invalidDate()}function G(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(wb.lastIndex=0;d>=0&&wb.test(a);)a=a.replace(wb,c),wb.lastIndex=0,d-=1;return a}function H(a,b){var c,d=b._strict;switch(a){case"DDDD":return Ib;case"YYYY":case"GGGG":case"gggg":return d?Jb:zb;case"Y":case"G":case"g":return Lb;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return d?Kb:Ab;case"S":if(d)return Gb;case"SS":if(d)return Hb;case"SSS":if(d)return Ib;case"DDD":return yb;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Cb;case"a":case"A":return C(b._l)._meridiemParse;case"X":return Fb;case"Z":case"ZZ":return Db;case"T":return Eb;case"SSSS":return Bb;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return d?Hb:xb;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return xb;default:return c=new RegExp(P(O(a.replace("\\","")),"i"))}}function I(a){a=a||"";var b=a.match(Db)||[],c=b[b.length-1]||[],d=(c+"").match(Qb)||["-",0,0],e=+(60*d[1])+s(d[2]);return"+"===d[0]?-e:e}function J(a,b,c){var d,e=c._a;switch(a){case"M":case"MM":null!=b&&(e[jb]=s(b)-1);break;case"MMM":case"MMMM":d=C(c._l).monthsParse(b),null!=d?e[jb]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[kb]=s(b));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=s(b));break;case"YY":e[ib]=s(b)+(s(b)>68?1900:2e3);break;case"YYYY":case"YYYYY":case"YYYYYY":e[ib]=s(b);break;case"a":case"A":c._isPm=C(c._l).isPM(b);break;case"H":case"HH":case"h":case"hh":e[lb]=s(b);break;case"m":case"mm":e[mb]=s(b);break;case"s":case"ss":e[nb]=s(b);break;case"S":case"SS":case"SSS":case"SSSS":e[ob]=s(1e3*("0."+b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=I(b);break;case"w":case"ww":case"W":case"WW":case"d":case"dd":case"ddd":case"dddd":case"e":case"E":a=a.substr(0,1);case"gg":case"gggg":case"GG":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=b)}}function K(a){var b,c,d,e,f,g,h,i,j,k,l=[];if(!a._d){for(d=M(a),a._w&&null==a._a[kb]&&null==a._a[jb]&&(f=function(b){var c=parseInt(b,10);return b?b.length<3?c>68?1900+c:2e3+c:c:null==a._a[ib]?db().weekYear():a._a[ib]},g=a._w,null!=g.GG||null!=g.W||null!=g.E?h=Z(f(g.GG),g.W||1,g.E,4,1):(i=C(a._l),j=null!=g.d?V(g.d,i):null!=g.e?parseInt(g.e,10)+i._week.dow:0,k=parseInt(g.w,10)||1,null!=g.d&&ju(e)&&(a._pf._overflowDayOfYear=!0),c=U(e,0,a._dayOfYear),a._a[jb]=c.getUTCMonth(),a._a[kb]=c.getUTCDate()),b=0;3>b&&null==a._a[b];++b)a._a[b]=l[b]=d[b];for(;7>b;b++)a._a[b]=l[b]=null==a._a[b]?2===b?1:0:a._a[b];l[lb]+=s((a._tzm||0)/60),l[mb]+=s((a._tzm||0)%60),a._d=(a._useUTC?U:T).apply(null,l)}}function L(a){var b;a._d||(b=q(a._i),a._a=[b.year,b.month,b.day,b.hour,b.minute,b.second,b.millisecond],K(a))}function M(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function N(a){a._a=[],a._pf.empty=!0;var b,c,d,e,f,g=C(a._l),h=""+a._i,i=h.length,j=0;for(d=G(a._f,g).match(vb)||[],b=0;b0&&a._pf.unusedInput.push(f),h=h.slice(h.indexOf(c)+c.length),j+=c.length),Yb[e]?(c?a._pf.empty=!1:a._pf.unusedTokens.push(e),J(e,c,a)):a._strict&&!c&&a._pf.unusedTokens.push(e);a._pf.charsLeftOver=i-j,h.length>0&&a._pf.unusedInput.push(h),a._isPm&&a._a[lb]<12&&(a._a[lb]+=12),a._isPm===!1&&12===a._a[lb]&&(a._a[lb]=0),K(a),w(a)}function O(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function P(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Q(a){var c,d,e,f,g;if(0===a._f.length)return a._pf.invalidFormat=!0,void(a._d=new Date(0/0));for(f=0;fg)&&(e=g,d=c));h(a,d||c)}function R(a){var b,c,d=a._i,e=Mb.exec(d);if(e){for(a._pf.iso=!0,b=0,c=Ob.length;c>b;b++)if(Ob[b][1].exec(d)){a._f=Ob[b][0]+(e[6]||" ");break}for(b=0,c=Pb.length;c>b;b++)if(Pb[b][1].exec(d)){a._f+=Pb[b][0];break}d.match(Db)&&(a._f+="Z"),N(a)}else a._d=new Date(d)}function S(b){var c=b._i,d=sb.exec(c);c===a?b._d=new Date:d?b._d=new Date(+d[1]):"string"==typeof c?R(b):m(c)?(b._a=c.slice(0),K(b)):n(c)?b._d=new Date(+c):"object"==typeof c?L(b):b._d=new Date(c)}function T(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function U(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function V(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function W(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function X(a,b,c){var d=hb(Math.abs(a)/1e3),e=hb(d/60),f=hb(e/60),g=hb(f/24),h=hb(g/365),i=45>d&&["s",d]||1===e&&["m"]||45>e&&["mm",e]||1===f&&["h"]||22>f&&["hh",f]||1===g&&["d"]||25>=g&&["dd",g]||45>=g&&["M"]||345>g&&["MM",hb(g/30)]||1===h&&["y"]||["yy",h];return i[2]=b,i[3]=a>0,i[4]=c,W.apply({},i)}function Y(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=db(a).add("d",f),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function Z(a,b,c,d,e){var f,g,h=U(a,0,1).getUTCDay();return c=null!=c?c:e,f=e-h+(h>d?7:0)-(e>h?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:u(a-1)+g}}function $(a){var b=a._i,c=a._f;return null===b?db.invalid({nullInput:!0}):("string"==typeof b&&(a._i=b=C().preparse(b)),db.isMoment(b)?(a=i(b),a._d=new Date(+b._d)):c?m(c)?Q(a):N(a):S(a),new f(a))}function _(a,b){db.fn[a]=db.fn[a+"s"]=function(a){var c=this._isUTC?"UTC":"";return null!=a?(this._d["set"+c+b](a),db.updateOffset(this),this):this._d["get"+c+b]()}}function ab(a){db.duration.fn[a]=function(){return this._data[a]}}function bb(a,b){db.duration.fn["as"+a]=function(){return+this/b}}function cb(a){var b=!1,c=db;"undefined"==typeof ender&&(a?(gb.moment=function(){return!b&&console&&console.warn&&(b=!0,console.warn("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.")),c.apply(null,arguments)},h(gb.moment,c)):gb.moment=db)}for(var db,eb,fb="2.5.1",gb=this,hb=Math.round,ib=0,jb=1,kb=2,lb=3,mb=4,nb=5,ob=6,pb={},qb={_isAMomentObject:null,_i:null,_f:null,_l:null,_strict:null,_isUTC:null,_offset:null,_pf:null,_lang:null},rb="undefined"!=typeof module&&module.exports&&"undefined"!=typeof require,sb=/^\/?Date\((\-?\d+)/i,tb=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,ub=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,vb=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,wb=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,xb=/\d\d?/,yb=/\d{1,3}/,zb=/\d{1,4}/,Ab=/[+\-]?\d{1,6}/,Bb=/\d+/,Cb=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Db=/Z|[\+\-]\d\d:?\d\d/gi,Eb=/T/i,Fb=/[\+\-]?\d+(\.\d{1,3})?/,Gb=/\d/,Hb=/\d\d/,Ib=/\d{3}/,Jb=/\d{4}/,Kb=/[+-]?\d{6}/,Lb=/[+-]?\d+/,Mb=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Nb="YYYY-MM-DDTHH:mm:ssZ",Ob=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],Pb=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],Qb=/([\+\-]|\d\d)/gi,Rb="Date|Hours|Minutes|Seconds|Milliseconds".split("|"),Sb={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6},Tb={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},Ub={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},Vb={},Wb="DDD w W M D d".split(" "),Xb="M D H h m s w W".split(" "),Yb={M:function(){return this.month()+1},MMM:function(a){return this.lang().monthsShort(this,a)},MMMM:function(a){return this.lang().months(this,a)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(a){return this.lang().weekdaysMin(this,a)},ddd:function(a){return this.lang().weekdaysShort(this,a)},dddd:function(a){return this.lang().weekdays(this,a)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return k(this.year()%100,2)},YYYY:function(){return k(this.year(),4)},YYYYY:function(){return k(this.year(),5)},YYYYYY:function(){var a=this.year(),b=a>=0?"+":"-";return b+k(Math.abs(a),6)},gg:function(){return k(this.weekYear()%100,2)},gggg:function(){return k(this.weekYear(),4)},ggggg:function(){return k(this.weekYear(),5)},GG:function(){return k(this.isoWeekYear()%100,2)},GGGG:function(){return k(this.isoWeekYear(),4)},GGGGG:function(){return k(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return s(this.milliseconds()/100)},SS:function(){return k(s(this.milliseconds()/10),2)},SSS:function(){return k(this.milliseconds(),3)},SSSS:function(){return k(this.milliseconds(),3)},Z:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+k(s(a/60),2)+":"+k(s(a)%60,2)},ZZ:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+k(s(a/60),2)+k(s(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},Zb=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];Wb.length;)eb=Wb.pop(),Yb[eb+"o"]=d(Yb[eb],eb);for(;Xb.length;)eb=Xb.pop(),Yb[eb+eb]=c(Yb[eb],2);for(Yb.DDDD=c(Yb.DDD,3),h(e.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a){var b,c,d;for(this._monthsParse||(this._monthsParse=[]),b=0;12>b;b++)if(this._monthsParse[b]||(c=db.utc([2e3,b]),d="^"+this.months(c,"")+"|^"+this.monthsShort(c,""),this._monthsParse[b]=new RegExp(d.replace(".",""),"i")),this._monthsParse[b].test(a))return b},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=db([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b){var c=this._calendar[a];return"function"==typeof c?c.apply(b):c},_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"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",preparse:function(a){return a},postformat:function(a){return a},week:function(a){return Y(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),db=function(c,d,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._i=c,g._f=d,g._l=e,g._strict=f,g._isUTC=!1,g._pf=b(),$(g)},db.utc=function(c,d,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._useUTC=!0,g._isUTC=!0,g._l=e,g._i=c,g._f=d,g._strict=f,g._pf=b(),$(g).utc()},db.unix=function(a){return db(1e3*a)},db.duration=function(a,b){var c,d,e,f=a,h=null;return db.isDuration(a)?f={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(f={},b?f[b]=a:f.milliseconds=a):(h=tb.exec(a))?(c="-"===h[1]?-1:1,f={y:0,d:s(h[kb])*c,h:s(h[lb])*c,m:s(h[mb])*c,s:s(h[nb])*c,ms:s(h[ob])*c}):(h=ub.exec(a))&&(c="-"===h[1]?-1:1,e=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*c},f={y:e(h[2]),M:e(h[3]),d:e(h[4]),h:e(h[5]),m:e(h[6]),s:e(h[7]),w:e(h[8])}),d=new g(f),db.isDuration(a)&&a.hasOwnProperty("_lang")&&(d._lang=a._lang),d},db.version=fb,db.defaultFormat=Nb,db.updateOffset=function(){},db.lang=function(a,b){var c;return a?(b?A(y(a),b):null===b?(B(a),a="en"):pb[a]||C(a),c=db.duration.fn._lang=db.fn._lang=C(a),c._abbr):db.fn._lang._abbr},db.langData=function(a){return a&&a._lang&&a._lang._abbr&&(a=a._lang._abbr),C(a)},db.isMoment=function(a){return a instanceof f||null!=a&&a.hasOwnProperty("_isAMomentObject")},db.isDuration=function(a){return a instanceof g},eb=Zb.length-1;eb>=0;--eb)r(Zb[eb]);for(db.normalizeUnits=function(a){return p(a)},db.invalid=function(a){var b=db.utc(0/0);return null!=a?h(b._pf,a):b._pf.userInvalidated=!0,b},db.parseZone=function(a){return db(a).parseZone()},h(db.fn=f.prototype,{clone:function(){return db(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().lang("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var a=db(this).utc();return 00:!1},parsingFlags:function(){return h({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(){return this.zone(0)},local:function(){return this.zone(0),this._isUTC=!1,this},format:function(a){var b=F(this,a||db.defaultFormat);return this.lang().postformat(b)},add:function(a,b){var c;return c="string"==typeof a?db.duration(+b,a):db.duration(a,b),l(this,c,1),this},subtract:function(a,b){var c;return c="string"==typeof a?db.duration(+b,a):db.duration(a,b),l(this,c,-1),this},diff:function(a,b,c){var d,e,f=z(a,this),g=6e4*(this.zone()-f.zone());return b=p(b),"year"===b||"month"===b?(d=432e5*(this.daysInMonth()+f.daysInMonth()),e=12*(this.year()-f.year())+(this.month()-f.month()),e+=(this-db(this).startOf("month")-(f-db(f).startOf("month")))/d,e-=6e4*(this.zone()-db(this).startOf("month").zone()-(f.zone()-db(f).startOf("month").zone()))/d,"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:j(e)},from:function(a,b){return db.duration(this.diff(a)).lang(this.lang()._abbr).humanize(!b)},fromNow:function(a){return this.from(db(),a)},calendar:function(){var a=z(db(),this).startOf("day"),b=this.diff(a,"days",!0),c=-6>b?"sameElse":-1>b?"lastWeek":0>b?"lastDay":1>b?"sameDay":2>b?"nextDay":7>b?"nextWeek":"sameElse";return this.format(this.lang().calendar(c,this))},isLeapYear:function(){return v(this.year())},isDST:function(){return this.zone()+db(a).startOf(b)},isBefore:function(a,b){return b="undefined"!=typeof b?b:"millisecond",+this.clone().startOf(b)<+db(a).startOf(b)},isSame:function(a,b){return b=b||"ms",+this.clone().startOf(b)===+z(a,this).startOf(b)},min:function(a){return a=db.apply(null,arguments),this>a?this:a},max:function(a){return a=db.apply(null,arguments),a>this?this:a},zone:function(a){var b=this._offset||0;return null==a?this._isUTC?b:this._d.getTimezoneOffset():("string"==typeof a&&(a=I(a)),Math.abs(a)<16&&(a=60*a),this._offset=a,this._isUTC=!0,b!==a&&l(this,db.duration(b-a,"m"),1,!0),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(a){return a=a?db(a).zone():0,(this.zone()-a)%60===0},daysInMonth:function(){return t(this.year(),this.month())},dayOfYear:function(a){var b=hb((db(this).startOf("day")-db(this).startOf("year"))/864e5)+1;return null==a?b:this.add("d",a-b)},quarter:function(){return Math.ceil((this.month()+1)/3)},weekYear:function(a){var b=Y(this,this.lang()._week.dow,this.lang()._week.doy).year;return null==a?b:this.add("y",a-b)},isoWeekYear:function(a){var b=Y(this,1,4).year;return null==a?b:this.add("y",a-b)},week:function(a){var b=this.lang().week(this);return null==a?b:this.add("d",7*(a-b))},isoWeek:function(a){var b=Y(this,1,4).week;return null==a?b:this.add("d",7*(a-b))},weekday:function(a){var b=(this.day()+7-this.lang()._week.dow)%7;return null==a?b:this.add("d",a-b)},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},get:function(a){return a=p(a),this[a]()},set:function(a,b){return a=p(a),"function"==typeof this[a]&&this[a](b),this},lang:function(b){return b===a?this._lang:(this._lang=C(b),this)}}),eb=0;ebrow;row+=1){modules[row]=new Array(moduleCount);for(var col=0;moduleCount>col;col+=1)modules[row][col]=null}return modules}(_moduleCount),setupPositionProbePattern(0,0),setupPositionProbePattern(_moduleCount-7,0),setupPositionProbePattern(0,_moduleCount-7),setupPositionAdjustPattern(),setupTimingPattern(),setupTypeInfo(test,maskPattern),_typeNumber>=7&&setupTypeNumber(test),null==_dataCache&&(_dataCache=createData(_typeNumber,_errorCorrectLevel,_dataList)),mapData(_dataCache,maskPattern)},setupPositionProbePattern=function(row,col){for(var r=-1;7>=r;r+=1)if(!(-1>=row+r||row+r>=_moduleCount))for(var c=-1;7>=c;c+=1)-1>=col+c||col+c>=_moduleCount||(_modules[row+r][col+c]=r>=0&&6>=r&&(0==c||6==c)||c>=0&&6>=c&&(0==r||6==r)||r>=2&&4>=r&&c>=2&&4>=c?!0:!1)},getBestMaskPattern=function(){for(var minLostPoint=0,pattern=0,i=0;8>i;i+=1){makeImpl(!0,i);var lostPoint=QRUtil.getLostPoint(_this);(0==i||minLostPoint>lostPoint)&&(minLostPoint=lostPoint,pattern=i)}return pattern},setupTimingPattern=function(){for(var r=8;_moduleCount-8>r;r+=1)null==_modules[r][6]&&(_modules[r][6]=r%2==0);for(var c=8;_moduleCount-8>c;c+=1)null==_modules[6][c]&&(_modules[6][c]=c%2==0)},setupPositionAdjustPattern=function(){for(var pos=QRUtil.getPatternPosition(_typeNumber),i=0;i=r;r+=1)for(var c=-2;2>=c;c+=1)_modules[row+r][col+c]=-2==r||2==r||-2==c||2==c||0==r&&0==c?!0:!1}},setupTypeNumber=function(test){for(var bits=QRUtil.getBCHTypeNumber(_typeNumber),i=0;18>i;i+=1){var mod=!test&&1==(bits>>i&1);_modules[Math.floor(i/3)][i%3+_moduleCount-8-3]=mod}for(var i=0;18>i;i+=1){var mod=!test&&1==(bits>>i&1);_modules[i%3+_moduleCount-8-3][Math.floor(i/3)]=mod}},setupTypeInfo=function(test,maskPattern){for(var data=_errorCorrectLevel<<3|maskPattern,bits=QRUtil.getBCHTypeInfo(data),i=0;15>i;i+=1){var mod=!test&&1==(bits>>i&1);6>i?_modules[i][8]=mod:8>i?_modules[i+1][8]=mod:_modules[_moduleCount-15+i][8]=mod}for(var i=0;15>i;i+=1){var mod=!test&&1==(bits>>i&1);8>i?_modules[8][_moduleCount-i-1]=mod:9>i?_modules[8][15-i-1+1]=mod:_modules[8][15-i-1]=mod}_modules[_moduleCount-8][8]=!test},mapData=function(data,maskPattern){for(var inc=-1,row=_moduleCount-1,bitIndex=7,byteIndex=0,maskFunc=QRUtil.getMaskFunction(maskPattern),col=_moduleCount-1;col>0;col-=2)for(6==col&&(col-=1);;){for(var c=0;2>c;c+=1)if(null==_modules[row][col-c]){var dark=!1;byteIndex>>bitIndex&1));var mask=maskFunc(row,col-c);mask&&(dark=!dark),_modules[row][col-c]=dark,bitIndex-=1,-1==bitIndex&&(byteIndex+=1,bitIndex=7)}if(row+=inc,0>row||row>=_moduleCount){row-=inc,inc=-inc;break}}},createBytes=function(buffer,rsBlocks){for(var offset=0,maxDcCount=0,maxEcCount=0,dcdata=new Array(rsBlocks.length),ecdata=new Array(rsBlocks.length),r=0;r=0?modPoly.getAt(modIndex):0}}for(var totalCodeCount=0,i=0;ii;i+=1)for(var r=0;ri;i+=1)for(var r=0;r8*totalDataCount)throw new Error("code length overflow. ("+buffer.getLengthInBits()+">"+8*totalDataCount+")");for(buffer.getLengthInBits()+4<=8*totalDataCount&&buffer.put(0,4);buffer.getLengthInBits()%8!=0;)buffer.putBit(!1);for(;;){if(buffer.getLengthInBits()>=8*totalDataCount)break;if(buffer.put(PAD0,8),buffer.getLengthInBits()>=8*totalDataCount)break;buffer.put(PAD1,8) -}return createBytes(buffer,rsBlocks)};return _this.addData=function(data){var newData=qr8BitByte(data);_dataList.push(newData),_dataCache=null},_this.isDark=function(row,col){if(0>row||row>=_moduleCount||0>col||col>=_moduleCount)throw new Error(row+","+col);return _modules[row][col]},_this.getModuleCount=function(){return _moduleCount},_this.make=function(){makeImpl(!1,getBestMaskPattern())},_this.createTableTag=function(cellSize,margin){cellSize=cellSize||2,margin="undefined"==typeof margin?4*cellSize:margin;var qrHtml="";qrHtml+='";for(var c=0;c<_this.getModuleCount();c+=1)qrHtml+='"}return qrHtml+="",qrHtml+="
    ';qrHtml+="
    "},_this.createImgTag=function(cellSize,margin){cellSize=cellSize||2,margin="undefined"==typeof margin?4*cellSize:margin;var size=_this.getModuleCount()*cellSize+2*margin,min=margin,max=size-margin;return createImgTag(size,size,function(x,y){if(x>=min&&max>x&&y>=min&&max>y){var c=Math.floor((x-min)/cellSize),r=Math.floor((y-min)/cellSize);return _this.isDark(r,c)?0:1}return 1})},_this};qrcode.stringToBytes=function(s){for(var bytes=new Array,i=0;ic)bytes.push(c);else{var b=unicodeMap[s.charAt(i)];"number"==typeof b?(255&b)==b?bytes.push(b):(bytes.push(b>>>8),bytes.push(255&b)):bytes.push(unknownChar)}}return bytes}};var QRMode={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},QRErrorCorrectLevel={L:1,M:0,Q:3,H:2},QRMaskPattern={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},QRUtil=function(){var 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,_this={},getBCHDigit=function(data){for(var digit=0;0!=data;)digit+=1,data>>>=1;return digit};return _this.getBCHTypeInfo=function(data){for(var d=data<<10;getBCHDigit(d)-getBCHDigit(G15)>=0;)d^=G15<=0;)d^=G18<i;i+=1)a=a.multiply(qrPolynomial([1,QRMath.gexp(i)],0));return a},_this.getLengthInBits=function(mode,type){if(type>=1&&10>type)switch(mode){case QRMode.MODE_NUMBER:return 10;case QRMode.MODE_ALPHA_NUM:return 9;case QRMode.MODE_8BIT_BYTE:return 8;case QRMode.MODE_KANJI:return 8;default:throw new Error("mode:"+mode)}else if(27>type)switch(mode){case QRMode.MODE_NUMBER:return 12;case QRMode.MODE_ALPHA_NUM:return 11;case QRMode.MODE_8BIT_BYTE:return 16;case QRMode.MODE_KANJI:return 10;default:throw new Error("mode:"+mode)}else{if(!(41>type))throw new Error("type:"+type);switch(mode){case QRMode.MODE_NUMBER:return 14;case QRMode.MODE_ALPHA_NUM:return 13;case QRMode.MODE_8BIT_BYTE:return 16;case QRMode.MODE_KANJI:return 12;default:throw new Error("mode:"+mode)}}},_this.getLostPoint=function(qrcode){for(var moduleCount=qrcode.getModuleCount(),lostPoint=0,row=0;moduleCount>row;row+=1)for(var col=0;moduleCount>col;col+=1){for(var sameCount=0,dark=qrcode.isDark(row,col),r=-1;1>=r;r+=1)if(!(0>row+r||row+r>=moduleCount))for(var c=-1;1>=c;c+=1)0>col+c||col+c>=moduleCount||(0!=r||0!=c)&&dark==qrcode.isDark(row+r,col+c)&&(sameCount+=1);sameCount>5&&(lostPoint+=3+sameCount-5)}for(var row=0;moduleCount-1>row;row+=1)for(var col=0;moduleCount-1>col;col+=1){var count=0;qrcode.isDark(row,col)&&(count+=1),qrcode.isDark(row+1,col)&&(count+=1),qrcode.isDark(row,col+1)&&(count+=1),qrcode.isDark(row+1,col+1)&&(count+=1),(0==count||4==count)&&(lostPoint+=3)}for(var row=0;moduleCount>row;row+=1)for(var col=0;moduleCount-6>col;col+=1)qrcode.isDark(row,col)&&!qrcode.isDark(row,col+1)&&qrcode.isDark(row,col+2)&&qrcode.isDark(row,col+3)&&qrcode.isDark(row,col+4)&&!qrcode.isDark(row,col+5)&&qrcode.isDark(row,col+6)&&(lostPoint+=40);for(var col=0;moduleCount>col;col+=1)for(var row=0;moduleCount-6>row;row+=1)qrcode.isDark(row,col)&&!qrcode.isDark(row+1,col)&&qrcode.isDark(row+2,col)&&qrcode.isDark(row+3,col)&&qrcode.isDark(row+4,col)&&!qrcode.isDark(row+5,col)&&qrcode.isDark(row+6,col)&&(lostPoint+=40);for(var darkCount=0,col=0;moduleCount>col;col+=1)for(var row=0;moduleCount>row;row+=1)qrcode.isDark(row,col)&&(darkCount+=1);var ratio=Math.abs(100*darkCount/moduleCount/moduleCount-50)/5;return lostPoint+=10*ratio},_this}(),QRMath=function(){for(var EXP_TABLE=new Array(256),LOG_TABLE=new Array(256),i=0;8>i;i+=1)EXP_TABLE[i]=1<i;i+=1)EXP_TABLE[i]=EXP_TABLE[i-4]^EXP_TABLE[i-5]^EXP_TABLE[i-6]^EXP_TABLE[i-8];for(var i=0;255>i;i+=1)LOG_TABLE[EXP_TABLE[i]]=i;var _this={};return _this.glog=function(n){if(1>n)throw new Error("glog("+n+")");return LOG_TABLE[n]},_this.gexp=function(n){for(;0>n;)n+=255;for(;n>=256;)n-=255;return EXP_TABLE[n]},_this}(),QRRSBlock=function(){var 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]],qrRSBlock=function(totalCount,dataCount){var _this={};return _this.totalCount=totalCount,_this.dataCount=dataCount,_this},_this={},getRsBlockTable=function(typeNumber,errorCorrectLevel){switch(errorCorrectLevel){case QRErrorCorrectLevel.L:return RS_BLOCK_TABLE[4*(typeNumber-1)+0];case QRErrorCorrectLevel.M:return RS_BLOCK_TABLE[4*(typeNumber-1)+1];case QRErrorCorrectLevel.Q:return RS_BLOCK_TABLE[4*(typeNumber-1)+2];case QRErrorCorrectLevel.H:return RS_BLOCK_TABLE[4*(typeNumber-1)+3];default:return void 0}};return _this.getRSBlocks=function(typeNumber,errorCorrectLevel){var rsBlock=getRsBlockTable(typeNumber,errorCorrectLevel);if("undefined"==typeof rsBlock)throw new Error("bad rs block @ typeNumber:"+typeNumber+"/errorCorrectLevel:"+errorCorrectLevel);for(var length=rsBlock.length/3,list=new Array,i=0;length>i;i+=1)for(var count=rsBlock[3*i+0],totalCount=rsBlock[3*i+1],dataCount=rsBlock[3*i+2],j=0;count>j;j+=1)list.push(qrRSBlock(totalCount,dataCount));return list},_this}(),qrBitBuffer=function(){var _buffer=new Array,_length=0,_this={};return _this.getBuffer=function(){return _buffer},_this.getAt=function(index){var bufIndex=Math.floor(index/8);return 1==(_buffer[bufIndex]>>>7-index%8&1)},_this.put=function(num,length){for(var i=0;length>i;i+=1)_this.putBit(1==(num>>>length-i-1&1))},_this.getLengthInBits=function(){return _length},_this.putBit=function(bit){var bufIndex=Math.floor(_length/8);_buffer.length<=bufIndex&&_buffer.push(0),bit&&(_buffer[bufIndex]|=128>>>_length%8),_length+=1},_this},qr8BitByte=function(data){var _mode=QRMode.MODE_8BIT_BYTE,_bytes=qrcode.stringToBytes(data),_this={};return _this.getMode=function(){return _mode},_this.getLength=function(){return _bytes.length},_this.write=function(buffer){for(var i=0;i<_bytes.length;i+=1)buffer.put(_bytes[i],8)},_this},byteArrayOutputStream=function(){var _bytes=new Array,_this={};return _this.writeByte=function(b){_bytes.push(255&b)},_this.writeShort=function(i){_this.writeByte(i),_this.writeByte(i>>>8)},_this.writeBytes=function(b,off,len){off=off||0,len=len||b.length;for(var i=0;len>i;i+=1)_this.writeByte(b[i+off])},_this.writeString=function(s){for(var i=0;i0&&(s+=","),s+=_bytes[i];return s+="]"},_this},base64EncodeOutputStream=function(){var _buffer=0,_buflen=0,_length=0,_base64="",_this={},writeEncoded=function(b){_base64+=String.fromCharCode(encode(63&b))},encode=function(n){if(0>n);else{if(26>n)return 65+n;if(52>n)return 97+(n-26);if(62>n)return 48+(n-52);if(62==n)return 43;if(63==n)return 47}throw new Error("n:"+n)};return _this.writeByte=function(n){for(_buffer=_buffer<<8|255&n,_buflen+=8,_length+=1;_buflen>=6;)writeEncoded(_buffer>>>_buflen-6),_buflen-=6},_this.flush=function(){if(_buflen>0&&(writeEncoded(_buffer<<6-_buflen),_buffer=0,_buflen=0),_length%3!=0)for(var padlen=3-_length%3,i=0;padlen>i;i+=1)_base64+="="},_this.toString=function(){return _base64},_this},base64DecodeInputStream=function(str){var _str=str,_pos=0,_buffer=0,_buflen=0,_this={};_this.read=function(){for(;8>_buflen;){if(_pos>=_str.length){if(0==_buflen)return-1;throw new Error("unexpected end of file./"+_buflen)}var c=_str.charAt(_pos);if(_pos+=1,"="==c)return _buflen=0,-1;c.match(/^\s$/)||(_buffer=_buffer<<6|decode(c.charCodeAt(0)),_buflen+=6)}var n=_buffer>>>_buflen-8&255;return _buflen-=8,n};var decode=function(c){if(c>=65&&90>=c)return c-65;if(c>=97&&122>=c)return c-97+26;if(c>=48&&57>=c)return c-48+52;if(43==c)return 62;if(47==c)return 63;throw new Error("c:"+c)};return _this},gifImage=function(width,height){var _width=width,_height=height,_data=new Array(width*height),_this={};_this.setPixel=function(x,y,pixel){_data[y*_width+x]=pixel},_this.write=function(out){out.writeString("GIF87a"),out.writeShort(_width),out.writeShort(_height),out.writeByte(128),out.writeByte(0),out.writeByte(0),out.writeByte(0),out.writeByte(0),out.writeByte(0),out.writeByte(255),out.writeByte(255),out.writeByte(255),out.writeString(","),out.writeShort(0),out.writeShort(0),out.writeShort(_width),out.writeShort(_height),out.writeByte(0);var lzwMinCodeSize=2,raster=getLZWRaster(lzwMinCodeSize);out.writeByte(lzwMinCodeSize);for(var offset=0;raster.length-offset>255;)out.writeByte(255),out.writeBytes(raster,offset,255),offset+=255;out.writeByte(raster.length-offset),out.writeBytes(raster,offset,raster.length-offset),out.writeByte(0),out.writeString(";")};var bitOutputStream=function(out){var _out=out,_bitLength=0,_bitBuffer=0,_this={};return _this.write=function(data,length){if(data>>>length!=0)throw new Error("length over");for(;_bitLength+length>=8;)_out.writeByte(255&(data<<_bitLength|_bitBuffer)),length-=8-_bitLength,data>>>=8-_bitLength,_bitBuffer=0,_bitLength=0;_bitBuffer=data<<_bitLength|_bitBuffer,_bitLength+=length},_this.flush=function(){_bitLength>0&&_out.writeByte(_bitBuffer)},_this},getLZWRaster=function(lzwMinCodeSize){for(var clearCode=1<i;i+=1)table.add(String.fromCharCode(i));table.add(String.fromCharCode(clearCode)),table.add(String.fromCharCode(endCode));var byteOut=byteArrayOutputStream(),bitOut=bitOutputStream(byteOut);bitOut.write(clearCode,bitLength);var dataIndex=0,s=String.fromCharCode(_data[dataIndex]);for(dataIndex+=1;dataIndex<_data.length;){var c=String.fromCharCode(_data[dataIndex]);dataIndex+=1,table.contains(s+c)?s+=c:(bitOut.write(table.indexOf(s),bitLength),table.size()<4095&&(table.size()==1<y;y+=1)for(var x=0;width>x;x+=1)gif.setPixel(x,y,getPixel(x,y));var b=byteArrayOutputStream();gif.write(b);for(var base64=base64EncodeOutputStream(),bytes=b.toByteArray(),i=0;i=10}var c,d={bridge:null,version:"0.0.0",disabled:null,outdated:null,ready:null},e={},f=0,g={},h=0,i={},j=null,k=null,l=function(){var a,b,c,d,e="ZeroClipboard.swf";if(document.currentScript&&(d=document.currentScript.src));else{var f=document.getElementsByTagName("script");if("readyState"in f[0])for(a=f.length;a--&&("interactive"!==f[a].readyState||!(d=f[a].src)););else if("loading"===document.readyState)d=f[f.length-1].src;else{for(a=f.length;a--;){if(c=f[a].src,!c){b=null;break}if(c=c.split("#")[0].split("?")[0],c=c.slice(0,c.lastIndexOf("/")+1),null==b)b=c;else if(b!==c){b=null;break}}null!==b&&(d=b)}}return d&&(d=d.split("#")[0].split("?")[0],e=d.slice(0,d.lastIndexOf("/")+1)+e),e}(),m=function(){var a=/\-([a-z])/g,b=function(a,b){return b.toUpperCase()};return function(c){return c.replace(a,b)}}(),n=function(a,b){var c,d,e;return window.getComputedStyle?c=window.getComputedStyle(a,null).getPropertyValue(b):(d=m(b),c=a.currentStyle?a.currentStyle[d]:a.style[d]),"cursor"!==b||c&&"auto"!==c||(e=a.tagName.toLowerCase(),"a"!==e)?c:"pointer"},o=function(a){a||(a=window.event);var b;this!==window?b=this:a.target?b=a.target:a.srcElement&&(b=a.srcElement),I.activate(b)},p=function(a,b,c){a&&1===a.nodeType&&(a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&a.attachEvent("on"+b,c))},q=function(a,b,c){a&&1===a.nodeType&&(a.removeEventListener?a.removeEventListener(b,c,!1):a.detachEvent&&a.detachEvent("on"+b,c))},r=function(a,b){if(!a||1!==a.nodeType)return a;if(a.classList)return a.classList.contains(b)||a.classList.add(b),a;if(b&&"string"==typeof b){var c=(b||"").split(/\s+/);if(1===a.nodeType)if(a.className){for(var d=" "+a.className+" ",e=a.className,f=0,g=c.length;g>f;f++)d.indexOf(" "+c[f]+" ")<0&&(e+=" "+c[f]);a.className=e.replace(/^\s+|\s+$/g,"")}else a.className=b}return a},s=function(a,b){if(!a||1!==a.nodeType)return a;if(a.classList)return a.classList.contains(b)&&a.classList.remove(b),a;if(b&&"string"==typeof b||void 0===b){var c=(b||"").split(/\s+/);if(1===a.nodeType&&a.className)if(b){for(var d=(" "+a.className+" ").replace(/[\n\t]/g," "),e=0,f=c.length;f>e;e++)d=d.replace(" "+c[e]+" "," ");a.className=d.replace(/^\s+|\s+$/g,"")}else a.className=""}return a},t=function(){var a,b,c,d=1;return"function"==typeof document.body.getBoundingClientRect&&(a=document.body.getBoundingClientRect(),b=a.right-a.left,c=document.body.offsetWidth,d=Math.round(b/c*100)/100),d},u=function(a,b){var c={left:0,top:0,width:0,height:0,zIndex:A(b)-1};if(a.getBoundingClientRect){var d,e,f,g=a.getBoundingClientRect();"pageXOffset"in window&&"pageYOffset"in window?(d=window.pageXOffset,e=window.pageYOffset):(f=t(),d=Math.round(document.documentElement.scrollLeft/f),e=Math.round(document.documentElement.scrollTop/f));var h=document.documentElement.clientLeft||0,i=document.documentElement.clientTop||0;c.left=g.left+d-h,c.top=g.top+e-i,c.width="width"in g?g.width:g.right-g.left,c.height="height"in g?g.height:g.bottom-g.top}return c},v=function(a,b){var c=null==b||b&&b.cacheBust===!0&&b.useNoCache===!0;return c?(-1===a.indexOf("?")?"?":"&")+"noCache="+(new Date).getTime():""},w=function(a){var b,c,d,e=[],f=[],g=[];if(a.trustedOrigins&&("string"==typeof a.trustedOrigins?f.push(a.trustedOrigins):"object"==typeof a.trustedOrigins&&"length"in a.trustedOrigins&&(f=f.concat(a.trustedOrigins))),a.trustedDomains&&("string"==typeof a.trustedDomains?f.push(a.trustedDomains):"object"==typeof a.trustedDomains&&"length"in a.trustedDomains&&(f=f.concat(a.trustedDomains))),f.length)for(b=0,c=f.length;c>b;b++)if(f.hasOwnProperty(b)&&f[b]&&"string"==typeof f[b]){if(d=D(f[b]),!d)continue;if("*"===d){g=[d];break}g.push.apply(g,[d,"//"+d,window.location.protocol+"//"+d])}return g.length&&e.push("trustedOrigins="+encodeURIComponent(g.join(","))),"string"==typeof a.jsModuleId&&a.jsModuleId&&e.push("jsModuleId="+encodeURIComponent(a.jsModuleId)),e.join("&")},x=function(a,b,c){if("function"==typeof b.indexOf)return b.indexOf(a,c);var d,e=b.length;for("undefined"==typeof c?c=0:0>c&&(c=e+c),d=c;e>d;d++)if(b.hasOwnProperty(d)&&b[d]===a)return d;return-1},y=function(a){if("string"==typeof a)throw new TypeError("ZeroClipboard doesn't accept query strings.");return a.length?a:[a]},z=function(a,b,c,d){d?window.setTimeout(function(){a.apply(b,c)},0):a.apply(b,c)},A=function(a){var b,c;return a&&("number"==typeof a&&a>0?b=a:"string"==typeof a&&(c=parseInt(a,10))&&!isNaN(c)&&c>0&&(b=c)),b||("number"==typeof L.zIndex&&L.zIndex>0?b=L.zIndex:"string"==typeof L.zIndex&&(c=parseInt(L.zIndex,10))&&!isNaN(c)&&c>0&&(b=c)),b||0},B=function(a,b){if(a&&b!==!1&&"undefined"!=typeof console&&console&&(console.warn||console.log)){var c="`"+a+"` is deprecated. See docs for more info:\n https://github.com/zeroclipboard/zeroclipboard/blob/master/docs/instructions.md#deprecations";console.warn?console.warn(c):console.log(c)}},C=function(){var a,b,c,d,e,f,g=arguments[0]||{};for(a=1,b=arguments.length;b>a;a++)if(null!=(c=arguments[a]))for(d in c)if(c.hasOwnProperty(d)){if(e=g[d],f=c[d],g===f)continue;void 0!==f&&(g[d]=f)}return g},D=function(a){if(null==a||""===a)return null;if(a=a.replace(/^\s+|\s+$/g,""),""===a)return null;var b=a.indexOf("//");a=-1===b?a:a.slice(b+2);var c=a.indexOf("/");return a=-1===c?a:-1===b||0===c?null:a.slice(0,c),a&&".swf"===a.slice(-4).toLowerCase()?null:a||null},E=function(){var a=function(a,b){var c,d,e;if(null!=a&&"*"!==b[0]&&("string"==typeof a&&(a=[a]),"object"==typeof a&&"length"in a))for(c=0,d=a.length;d>c;c++)if(a.hasOwnProperty(c)&&(e=D(a[c]))){if("*"===e){b.length=0,b.push("*");break}-1===x(e,b)&&b.push(e)}},b={always:"always",samedomain:"sameDomain",never:"never"};return function(c,d){var e,f=d.allowScriptAccess;if("string"==typeof f&&(e=f.toLowerCase())&&/^always|samedomain|never$/.test(e))return b[e];var g=D(d.moviePath);null===g&&(g=c);var h=[];a(d.trustedOrigins,h),a(d.trustedDomains,h);var i=h.length;if(i>0){if(1===i&&"*"===h[0])return"always";if(-1!==x(c,h))return 1===i&&c===g?"sameDomain":"always"}return"never"}}(),F=function(a){if(null==a)return[];if(Object.keys)return Object.keys(a);var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c);return b},G=function(a){if(a)for(var b in a)a.hasOwnProperty(b)&&delete a[b];return a},H=function(){var a=!1;if("boolean"==typeof d.disabled)a=d.disabled===!1;else{if("function"==typeof ActiveXObject)try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash")&&(a=!0)}catch(b){}!a&&navigator.mimeTypes["application/x-shockwave-flash"]&&(a=!0)}return a},I=function(a,b){return this instanceof I?(this.id=""+f++,g[this.id]={instance:this,elements:[],handlers:{}},a&&this.clip(a),"undefined"!=typeof b&&(B("new ZeroClipboard(elements, options)",L.debug),I.config(b)),this.options=I.config(),"boolean"!=typeof d.disabled&&(d.disabled=!H()),void(d.disabled===!1&&d.outdated!==!0&&null===d.bridge&&(d.outdated=!1,d.ready=!1,M()))):new I(a,b)};I.prototype.setText=function(a){return a&&""!==a&&(e["text/plain"]=a,d.ready===!0&&d.bridge&&d.bridge.setText(a)),this},I.prototype.setSize=function(a,b){return d.ready===!0&&d.bridge&&d.bridge.setSize(a,b),this};var J=function(a){d.ready===!0&&d.bridge&&d.bridge.setHandCursor(a)};I.prototype.destroy=function(){this.unclip(),this.off(),delete g[this.id]};var K=function(){var a,b,c,d=[],e=F(g);for(a=0,b=e.length;b>a;a++)c=g[e[a]].instance,c&&c instanceof I&&d.push(c);return d};I.version="1.3.2";var L={swfPath:l,trustedDomains:window.location.host?[window.location.host]:[],cacheBust:!0,forceHandCursor:!1,zIndex:999999999,debug:!0,title:null,autoActivate:!0};I.config=function(a){if("object"==typeof a&&null!==a&&C(L,a),"string"!=typeof a||!a){var b={};for(var c in L)L.hasOwnProperty(c)&&(b[c]="object"==typeof L[c]&&null!==L[c]?"length"in L[c]?L[c].slice(0):C({},L[c]):L[c]);return b}return L.hasOwnProperty(a)?L[a]:void 0},I.destroy=function(){I.deactivate();for(var a in g)if(g.hasOwnProperty(a)&&g[a]){var b=g[a].instance;b&&"function"==typeof b.destroy&&b.destroy()}var c=N(d.bridge);c&&c.parentNode&&(c.parentNode.removeChild(c),d.ready=null,d.bridge=null)},I.activate=function(a){c&&(s(c,L.hoverClass),s(c,L.activeClass)),c=a,r(a,L.hoverClass),O();var b=L.title||a.getAttribute("title");if(b){var e=N(d.bridge);e&&e.setAttribute("title",b)}var f=L.forceHandCursor===!0||"pointer"===n(a,"cursor");J(f)},I.deactivate=function(){var a=N(d.bridge);a&&(a.style.left="0px",a.style.top="-9999px",a.removeAttribute("title")),c&&(s(c,L.hoverClass),s(c,L.activeClass),c=null)};var M=function(){var a,b,c=document.getElementById("global-zeroclipboard-html-bridge");if(!c){var e=I.config();e.jsModuleId="string"==typeof j&&j||"string"==typeof k&&k||null;var f=E(window.location.host,L),g=w(e),h=L.moviePath+v(L.moviePath,L),i=' ';c=document.createElement("div"),c.id="global-zeroclipboard-html-bridge",c.setAttribute("class","global-zeroclipboard-container"),c.style.position="absolute",c.style.left="0px",c.style.top="-9999px",c.style.width="15px",c.style.height="15px",c.style.zIndex=""+A(L.zIndex),document.body.appendChild(c),c.innerHTML=i}a=document["global-zeroclipboard-flash-bridge"],a&&(b=a.length)&&(a=a[b-1]),d.bridge=a||c.children[0].lastElementChild},N=function(a){for(var b=/^OBJECT|EMBED$/,c=a&&a.parentNode;c&&b.test(c.nodeName)&&c.parentNode;)c=c.parentNode;return c||null},O=function(){if(c){var a=u(c,L.zIndex),b=N(d.bridge);b&&(b.style.top=a.top+"px",b.style.left=a.left+"px",b.style.width=a.width+"px",b.style.height=a.height+"px",b.style.zIndex=a.zIndex+1),d.ready===!0&&d.bridge&&d.bridge.setSize(a.width,a.height)}return this};I.prototype.on=function(a,b){var c,e,f,h={},i=g[this.id]&&g[this.id].handlers;if("string"==typeof a&&a)f=a.toLowerCase().split(/\s+/);else if("object"==typeof a&&a&&"undefined"==typeof b)for(c in a)a.hasOwnProperty(c)&&"string"==typeof c&&c&&"function"==typeof a[c]&&this.on(c,a[c]);if(f&&f.length){for(c=0,e=f.length;e>c;c++)a=f[c].replace(/^on/,""),h[a]=!0,i[a]||(i[a]=[]),i[a].push(b);h.noflash&&d.disabled&&R.call(this,"noflash",{}),h.wrongflash&&d.outdated&&R.call(this,"wrongflash",{flashVersion:d.version}),h.load&&d.ready&&R.call(this,"load",{flashVersion:d.version})}return this},I.prototype.off=function(a,b){var c,d,e,f,h,i=g[this.id]&&g[this.id].handlers;if(0===arguments.length)f=F(i);else if("string"==typeof a&&a)f=a.split(/\s+/);else if("object"==typeof a&&a&&"undefined"==typeof b)for(c in a)a.hasOwnProperty(c)&&"string"==typeof c&&c&&"function"==typeof a[c]&&this.off(c,a[c]);if(f&&f.length)for(c=0,d=f.length;d>c;c++)if(a=f[c].toLowerCase().replace(/^on/,""),h=i[a],h&&h.length)if(b)for(e=x(b,h);-1!==e;)h.splice(e,1),e=x(b,h,e);else i[a].length=0;return this},I.prototype.handlers=function(a){var b,c=null,d=g[this.id]&&g[this.id].handlers;if(d){if("string"==typeof a&&a)return d[a]?d[a].slice(0):null;c={};for(b in d)d.hasOwnProperty(b)&&d[b]&&(c[b]=d[b].slice(0))}return c};var P=function(a,b,c,d){var e=g[this.id]&&g[this.id].handlers[a];if(e&&e.length){var f,h,i,j=b||this;for(f=0,h=e.length;h>f;f++)i=e[f],b=j,"string"==typeof i&&"function"==typeof window[i]&&(i=window[i]),"object"==typeof i&&i&&"function"==typeof i.handleEvent&&(b=i,i=i.handleEvent),"function"==typeof i&&z(i,b,c,d)}return this};I.prototype.clip=function(a){a=y(a);for(var b=0;bd;d++)f=g[c[d]].instance,f&&f instanceof I&&h.push(f);return h};L.hoverClass="zeroclipboard-is-hover",L.activeClass="zeroclipboard-is-active",L.trustedOrigins=null,L.allowScriptAccess=null,L.useNoCache=!0,L.moviePath="ZeroClipboard.swf",I.detectFlashSupport=function(){return B("ZeroClipboard.detectFlashSupport",L.debug),H()},I.dispatch=function(a,b){if("string"==typeof a&&a){var d=a.toLowerCase().replace(/^on/,"");if(d)for(var e=c?Q(c):K(),f=0,g=e.length;g>f;f++)R.call(e[f],d,b)}},I.prototype.setHandCursor=function(a){return B("ZeroClipboard.prototype.setHandCursor",L.debug),a="boolean"==typeof a?a:!!a,J(a),L.forceHandCursor=a,this},I.prototype.reposition=function(){return B("ZeroClipboard.prototype.reposition",L.debug),O()},I.prototype.receiveEvent=function(a,b){if(B("ZeroClipboard.prototype.receiveEvent",L.debug),"string"==typeof a&&a){var c=a.toLowerCase().replace(/^on/,"");c&&R.call(this,c,b)}},I.prototype.setCurrent=function(a){return B("ZeroClipboard.prototype.setCurrent",L.debug),I.activate(a),this},I.prototype.resetBridge=function(){return B("ZeroClipboard.prototype.resetBridge",L.debug),I.deactivate(),this},I.prototype.setTitle=function(a){if(B("ZeroClipboard.prototype.setTitle",L.debug),a=a||L.title||c&&c.getAttribute("title")){var b=N(d.bridge);b&&b.setAttribute("title",a)}return this},I.setDefaults=function(a){B("ZeroClipboard.setDefaults",L.debug),I.config(a)},I.prototype.addEventListener=function(a,b){return B("ZeroClipboard.prototype.addEventListener",L.debug),this.on(a,b)},I.prototype.removeEventListener=function(a,b){return B("ZeroClipboard.prototype.removeEventListener",L.debug),this.off(a,b)},I.prototype.ready=function(){return B("ZeroClipboard.prototype.ready",L.debug),d.ready===!0};var R=function(f,g){f=f.toLowerCase().replace(/^on/,"");var h=g&&g.flashVersion&&a(g.flashVersion)||null,i=c,j=!0;switch(f){case"load":if(h){if(!b(h))return void R.call(this,"onWrongFlash",{flashVersion:h});d.outdated=!1,d.ready=!0,d.version=h}break;case"wrongflash":h&&!b(h)&&(d.outdated=!0,d.ready=!1,d.version=h);break;case"mouseover":r(i,L.hoverClass);break;case"mouseout":L.autoActivate===!0&&I.deactivate();break;case"mousedown":r(i,L.activeClass);break;case"mouseup":s(i,L.activeClass);break;case"datarequested":var k=i.getAttribute("data-clipboard-target"),l=k?document.getElementById(k):null;if(l){var m=l.value||l.textContent||l.innerText;m&&this.setText(m)}else{var n=i.getAttribute("data-clipboard-text");n&&this.setText(n)}j=!1;break;case"complete":G(e)}var o=i,p=[this,g];return P.call(this,f,o,p,j)};"function"==typeof define&&define.amd?define(["require","exports","module"],function(a,b,c){return j=c&&c.id||null,I}):"object"==typeof module&&module&&"object"==typeof module.exports&&module.exports?(k=module.id||null,module.exports=I):window.ZeroClipboard=I}(); \ No newline at end of file diff --git a/public/sound/transaction.mp3 b/public/sound/transaction.mp3 deleted file mode 100644 index 4841543a64a6ed8e5723f3c9a181753edebde3c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27732 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 HVQ51D{u$rP diff --git a/public/src/css/common.css b/public/src/css/common.css deleted file mode 100644 index f232a1fa..00000000 --- a/public/src/css/common.css +++ /dev/null @@ -1,682 +0,0 @@ -/* Sticky footer styles --------------------------------------------------- */ -@charset "UTF-8"; - -html, -body { - color: #373D42; - font-family: 'Ubuntu', sans-serif; - height: 100%; - /* The html and body elements cannot have any padding or margin. */ -} - -h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { - color: #373D42; - font-family: 'Ubuntu', sans-serif; -} - -[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], -.ng-cloak, .x-ng-cloak, -.ng-hide { - display: none !important; -} - -/* Styling for the ngProgress itself */ -#ngProgress { - background-color: #6C9032 !important; - box-shadow: none !important; - color: #373D42 !important; - height: 3px !important; - margin: 0; - opacity: 0; - padding: 0; - z-index: 99998; - - /* Add CSS3 styles for transition smoothing */ - -webkit-transition: all 0.5s ease-in-out; - -moz-transition: all 0.5s ease-in-out; - -o-transition: all 0.5s ease-in-out; - transition: all 0.5s ease-in-out; -} - -/* Styling for the ngProgress-container */ -#ngProgress-container { - position: fixed; - margin: 0; - padding: 0; - top: 63px; - left: 0; - right: 0; - z-index: 99999; -} - -/* Wrapper for page content to push down footer */ -#wrap { - min-height: 100%; - height: auto; - /* Negative indent footer by its height */ - margin: 0 auto -51px; - /* Pad bottom by footer height */ - padding: 0 0 75px; -} - -.m10h { margin: 0 10px; } -.m20h { margin: 0 20px; } -.m5v { margin: 5px 0; } -.m20v { margin: 20px 0; } -.m10v { margin: 10px 0; } -.m50v { margin: 50px 0; } -.m10b { margin-bottom: 10px; } -.m10l { margin-left: 10px; } - -.vm { vertical-align: middle; } - -.bgwhite { - background-color: white; -} - -.btn-group .btn+.btn, .btn-group .btn+.btn-group, .btn-group .btn-group+.btn, .btn-group .btn-group+.btn-group { -margin-left: 0; -} - -.table-hover>tbody>tr:hover>td, .table-hover>tbody>tr:hover>th { - background-color: #F0F7E2; -} - -.navbar-default .navbar-toggle { - border-color: #fff; - margin-top: 15px; -} - -.navbar-default .navbar-toggle .icon-bar { background-color: #fff; } -.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {background-color: #373D42;} - -.navbar-default { - background-color: #8DC429; - margin: 0; -} - -.navbar-default .navbar-nav>li>a { - color: #F4FBE8; - font-family: 'Ubuntu', sans-serif; - padding-left: 25px; - padding-right: 25px; -} - -.navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:focus { - background-color: #6C9032; - color: #fff; -} - -.navbar-default .navbar-nav>li>a:hover, .navbar-default .navbar-nav>.active>a:hover { - background-color: #fff; -} - -.navbar-form .form-group { - display: block; -} - -.navbar-form { - width: 35%; - margin-top: 15px; -} - -@media (max-width: 991px) { - .status { - margin: 0; - } - .navbar-form { - width: 15%; - } -} - -@media (max-width: 767px) { - .navbar-form { - width: auto; - } -} - -.nav-tabs.nav-justified>li>a:hover { - cursor: pointer; -} - -.insight { - font-family: 'Ubuntu', sans-serif; - font-size: 34px; - font-style: italic; - font-weight: 700; - overflow: hidden; -} - -.navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus { - color: #fffffe; -} - -.navbar-default .navbar-brand { - color: #FFFFFF; - padding: 22px 15px; -} - -.navbar-form .form-control { - background-color: #7CAD23; - border-radius: 3px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border: 0; - -webkit-box-shadow: 1px 1px 0px 0px rgba(255,255,255,0.41), inset 1px 1px 3px 0px rgba(0,0,0,0.10); - -moz-box-shadow: 1px 1px 0px 0px rgba(255,255,255,0.41), inset 1px 1px 3px 0px rgba(0,0,0,0.10); - box-shadow: 1px 1px 0px 0px rgba(255,255,255,0.41), inset 1px 1px 3px 0px rgba(0,0,0,0.10); -} - -.navbar-nav>li>a { - padding-top: 22px; - padding-bottom: 22px; -} - -#search { - color: #fff; - font-family: 'Ubuntu', sans-serif; -} - -#search.loading { - background-image: url('/img/loading.gif'); - background-position: 5px center; - background-repeat: no-repeat; - padding-left: 25px; -} - -#search::-webkit-input-placeholder { - color: #BCDF7E; - font-family: 'Ubuntu', sans-serif; - font-size: 14px; - font-style: italic; - font-weight: 100; -} - -#search::-moz-placeholder { - color: #BCDF7E; - font-family: 'Ubuntu', sans-serif; - font-size: 14px; - font-weight: 100; -} - -.status { - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - background-color: #597338; - border-radius: 3px; - margin: 15px 0; - padding: 8px 10px; - font-size: 12px; - color: #eee; - text-align: center; - margin-right: 10px; -} - -.status .tooltip { - margin: 0; -} - -.col-gray { - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - background-color: #F4F4F4; - border-radius: 5px; - padding: 14px; - border: 1px solid #eee; -} - -.col-gray-responsive { - width: auto; -} - -.col-gray-fixed { - margin-top: 15px; - position: fixed; - width: 250px; - border: 1px solid #eee; - z-index: 1; -} - -@media (max-width: 768px) { - .col-gray-fixed { - width:100%; - } -} - -@media (max-width: 995px) { - .col-gray-fixed { - position:static; - width: 100%; - } -} - -@media (min-width: 1200px) { - .col-gray-fixed { - width: 280px; - } -} - -.ellipsis { - display: block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.line20 { - border: 1px solid #D4D4D4; - margin-bottom: 15px; -} - -.line10 { - border: 1px solid #EAEAEA; - margin: 10px 0; -} - -.block-id { - background-color: #373D42; - border: 3px solid #FFFFFF; - margin: 0 auto; - width: 165px; - color: #fff; - text-align: center; -} - -.block-id span { - font-size: 40px; - margin: 30px 0; -} - -.block-id h2 { - color: #FFFFFF; - font-weight: bold; - line-height: 30px; - font-size: 24px; - margin-top: 0; - margin-bottom: 10px; -} - -.icon-block { - color: #FFFFFF; - font-size: 35px; - margin-top: 10px; -} - -.icon-block h3 { - color: #fff; -} - -.block-tx { - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - background-color: #F4F4F4; - border-radius: 2px; - margin: 20px 0 10px; - overflow: hidden; - padding: 15px; - border: 1px solid #eee; -} - -.btn { - border-radius: 2px; -} -.btn-primary { - background-color: #8DC429; - border: 2px solid #76AF0F; -} - -.btn-primary:hover, .btn-primary:focus, .btn-primary:active, -.btn-primary.active, .open .dropdown-toggle.btn-primary, -.btn-success:hover, .btn-success:focus, .btn-success:active, -.btn-success.active, .open .dropdown-toggle.btn-success, -.btn-danger:hover, .btn-danger:focus, .btn-danger:active, -.btn-danger.active, .open .dropdown-toggle.btn-danger { - background-color: #fff; - border: 2px solid #ccc; - color: #373D42; -} - -.btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default { - background-color: #fff; -} - -.btn-default { - background-color: #E7E7E7; -} - -.btn-success { - background-color: #2FA4D7; - border: 2px solid #237FA7; -} - -.btn-danger { - background-color: #AC0015; - border: 2px solid #6C0000; -} - -.txvalues { - display: inline-block; - padding: .7em 2em; - font-size: 13px; - text-transform: uppercase; - font-weight:100; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} - -@media (max-width: 768px) { - .txvalues { - display: block; - margin: 5px; - } -} - -.txvalues-primary { - background-color: #8DC429; -} - -.txvalues-default { - background-color: #EBEBEB; - color: #333; -} - -.txvalues-success { - background-color: #2FA4D7; -} - -.txvalues-danger { - background-color: #AC0015; -} - -.txvalues-normal { - background-color: transparent; - text-transform: none; - color: #333; - font-size: 14px; - font-weight: normal; -} -.progress-bar-info { background-color: #8DC429; } - -/* Set the fixed height of the footer here */ -#footer { - background-color: #373D42; - color: #fff; - height: 51px; - overflow: hidden; -} - -#footer a.insight { - font-size: 20px; - text-decoration: none; - color: #fff; -} - -#footer a.insight:hover { - color: #fffffe; -} - -#footer a.insight small { font-size: 11px; } -.line-footer { border-top: 2px dashed #ccc; } - -.line-bot { - border-bottom: 2px solid #EAEAEA; - padding: 0 0 10px 0; -} -.line-mid { padding: 15px 0;} -.line-top { - border-top: 1px solid #EAEAEA; - padding: 15px 0 0 0; -} - -/* Custom page CSS --------------------------------------------------- */ -/* Not required for template or sticky footer method. */ - -#wrap > .container { padding: 70px 15px 0; } - -#footer > .container { padding: auto 15px; } - -.code { font-size: 80%; } - -.address { font-size: 11px; } - -.no_matching { - -moz-border-radius-bottomleft: 2px; - -moz-border-radius-bottomright: 2px; - -webkit-border-bottom-left-radius: 2px; - -webkit-border-bottom-right-radius: 2px; - background-color: #FFFFFF; - border-bottom-left-radius: 2px; - border-bottom-right-radius: 2px; - border-top: none; - border: 1px solid #64920F; - padding: 10px 20px; - position: absolute; - text-align: center; - top: 45px; - width: 300px; -} - -/*Animations*/ -.fader.ng-enter { - opacity: 0; - -webkit-transition: opacity 1s; - -moz-transition: opacity 1s; - -o-transition: opacity 1s; - transition: opacity 1s; -} - -.fader.ng-enter-active { opacity: 1; } - -.tx-bg { - background-color: #F4F4F4; - left: 0; - min-height: 340px; - position: absolute; - top: 0; - width: 100%; - z-index: -9999; -} - -.badge { - -moz-border-radius: 9px; - -webkit-border-radius: 9px; - background-color: #999999; - border-radius: 9px; - color: #ffffff; - font-size: 12.025px; - font-weight: bold; - padding: 1px 9px 2px; - white-space: nowrap; -} - -.badge:hover { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} - -.badge-error { background-color: #b94a48; } -.badge-error:hover { background-color: #953b39; } -.badge-warning { background-color: #f89406; } -.badge-warning:hover { background-color: #c67605; } -.badge-success { background-color: #468847; } -.badge-success:hover { background-color: #356635; } -.badge-info { background-color: #3a87ad; } -.badge-info:hover { background-color: #2d6987; } -.badge-inverse { background-color: #333333; } -.badge-inverse:hover { background-color: #1a1a1a; } - -.status .t { - color: white; -} - -.status .text-danger { background: red; } - -.status .text-warning { - background: yellow; - color: black; -} - -.btn-copy { - color: #9b9b9b; - display: inline-block; - height: 16px; - width: 16px; - outline: none; - vertical-align: sub; -} - -.btn-expand { - color: #9b9b9b; - vertical-align: middle; -} - -.btn-copy:hover, .btn-expand:hover { - color: #000; - text-decoration: none; -} - -.btn-copy { - background: transparent url('/img/icons/copy.png') center center no-repeat; -} - -.btn-copy .tooltip { - display: block; - margin-left: 20px; - margin-top: -2px; - opacity: 0; -} -.btn-copy.zeroclipboard-is-hover { color: #2a6496; } -.btn-copy.zeroclipboard-is-active .tooltip { opacity: 1; } - -@media (max-width: 991px) { - .btn-copy { - display: none; - } -} - -.txid { - line-height: 26px; -} - -.tx-id { - background-color: #373D42; - border: 3px solid #FFFFFF; - margin: 0 auto; - width: 165px; - color: #FFFFFF; - text-align: center; -} - -.tx-id span { - font-size: 40px; - margin: 30px 0; -} - -.page-header { margin-top: 0; } - -/* Index */ -#home .btn-more { - border-top: 1px solid #ddd; - margin: 30px auto 0; - text-align: center; - width: 90%; -} -#home .btn-more .btn-default { - margin-top: -23px; -} - -#powered .powered-text { - border-top: 1px solid #ddd; - margin: 30px auto 0; - text-align: center; - width: 90%; -} -#powered .powered-text small { - background-color: #f4f4f4; - padding: 4px; - position: relative; - top: -12px; -} - -#powered a { - background-repeat: no-repeat; - background-position: center center; - display: inline-block; - float: left; - height: 45px; -} -#powered a.bitcore { - background-image: url('http://bitcore.io/images/logo.svg'); - background-size: 80px; - width: 30%; -} -#powered a.nodejs { - background-image: url('/img/nodejs.png'); - background-size: 80px; - width: 30%; -} -#powered a.angularjs { - background-image: url('/img/angularjs.png'); - background-size: 50px; - width: 20%; -} -#powered a.leveldb { - background-image: url('/img/leveldb.png'); - background-size: 50px; - width: 20%; -} - -@keyframes rotateThis { - from { transform: scale( 1 ) rotate( 0deg ); } - to { transform: scale( 1 ) rotate( 360deg ); } -} - -@-webkit-keyframes rotateThis { - from { -webkit-transform: scale( 1 ) rotate( 0deg ); } - to { -webkit-transform: scale( 1 ) rotate( 360deg ); } -} - -.icon-rotate { - animation-name: rotateThis; - animation-duration: 2s; - animation-iteration-count: infinite; - animation-timing-function: linear; - -webkit-animation-name: rotateThis; - -webkit-animation-duration: 2s; - -webkit-animation-iteration-count: infinite; - -webkit-animation-timing-function: linear; -} - -.transaction-vin-vout { - -} - -.v_highlight { - background-color: #8DC429; - overflow: hidden; - color: #fff; -} - -a.v_highlight_more { - background-color: #8DC429; - color: #fff; -} - -.secondary_navbar { - width: 100%; - background: #fff; - position: fixed; - top: 64px; - left: 0; - border: 1px solid #eee; - padding: 10px; - text-align: center; - z-index: 1000; -} - diff --git a/public/src/js/app.js b/public/src/js/app.js deleted file mode 100644 index 0fdc6c38..00000000 --- a/public/src/js/app.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -angular.module('insight',[ - 'ngAnimate', - 'ngResource', - 'ngRoute', - 'ngProgress', - 'ui.bootstrap', - 'ui.route', - 'monospaced.qrcode', - 'insight.system', - 'insight.socket', - 'insight.blocks', - 'insight.transactions', - 'insight.address', - 'insight.search', - 'insight.status', - 'insight.connection', - 'insight.currency' -]); - -angular.module('insight.system', []); -angular.module('insight.socket', []); -angular.module('insight.blocks', []); -angular.module('insight.transactions', []); -angular.module('insight.address', []); -angular.module('insight.search', []); -angular.module('insight.status', []); -angular.module('insight.connection', []); -angular.module('insight.currency', []); diff --git a/public/src/js/config.js b/public/src/js/config.js deleted file mode 100644 index a48a7f70..00000000 --- a/public/src/js/config.js +++ /dev/null @@ -1,64 +0,0 @@ -'use strict'; - -//Setting up route -angular.module('insight').config(function($routeProvider) { - $routeProvider. - when('/block/:blockHash', { - templateUrl: '/views/block.html', - title: 'Bitcoin Block ' - }). - when('/block-index/:blockHeight', { - controller: 'BlocksController', - templateUrl: '/views/redirect.html' - }). - when('/tx/:txId/:v_type?/:v_index?', { - templateUrl: '/views/transaction.html', - title: 'Bitcoin Transaction ' - }). - when('/', { - templateUrl: '/views/index.html', - title: 'Home' - }). - when('/blocks', { - templateUrl: '/views/block_list.html', - title: 'Bitcoin Blocks solved Today' - }). - when('/blocks-date/:blockDate', { - templateUrl: '/views/block_list.html', - title: 'Bitcoin Blocks solved ' - }). - when('/address/:addrStr', { - templateUrl: '/views/address.html', - title: 'Bitcoin Address ' - }). - when('/status', { - templateUrl: '/views/status.html', - title: 'Status' - }) - .otherwise({ - templateUrl: '/views/404.html', - title: 'Error' - }); -}); - -//Setting HTML5 Location Mode -angular.module('insight') - .config(function($locationProvider) { - $locationProvider.html5Mode(true); - $locationProvider.hashPrefix('!'); - }) - .run(function($rootScope, $route, ngProgress) { - $rootScope.$on('$routeChangeStart', function() { - ngProgress.start(); - }); - - $rootScope.$on('$routeChangeSuccess', function() { - ngProgress.complete(); - - //Change page title, based on Route information - $rootScope.titleDetail = ''; - $rootScope.title = $route.current.title; - $rootScope.isCollapsed = true; - $rootScope.currentAddr = null; - }); - }); diff --git a/public/src/js/controllers/address.js b/public/src/js/controllers/address.js deleted file mode 100644 index 6c181dab..00000000 --- a/public/src/js/controllers/address.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; - -angular.module('insight.address').controller('AddressController', - function($scope, $rootScope, $routeParams, $location, Global, Address, getSocket) { - $scope.global = Global; - - $scope.findOne = function() { - $rootScope.currentAddr = $routeParams.addrStr; - - Address.get({ - addrStr: $routeParams.addrStr - }, - function(address) { - $rootScope.titleDetail = address.addrStr.substring(0, 7) + '...'; - $rootScope.flashMessage = null; - $scope.address = address; - }, - function(e) { - if (e.status === 400) { - $rootScope.flashMessage = 'Invalid Address: ' + $routeParams.addrStr; - } else if (e.status === 503) { - $rootScope.flashMessage = 'Backend Error. ' + e.data; - } else { - $rootScope.flashMessage = 'Address Not Found'; - } - $location.path('/'); - }); - }; - - var socket = getSocket($scope); - socket.on('connect', function() { - socket.emit('subscribe', $routeParams.addrStr); - socket.on($routeParams.addrStr, function(tx) { - console.log('AddressTx event received ' + tx); - $rootScope.$broadcast('tx', tx); - }); - }); - - $scope.params = $routeParams; - - }); diff --git a/public/src/js/controllers/blocks.js b/public/src/js/controllers/blocks.js deleted file mode 100644 index b96d5761..00000000 --- a/public/src/js/controllers/blocks.js +++ /dev/null @@ -1,90 +0,0 @@ -'use strict'; - -angular.module('insight.blocks').controller('BlocksController', - function($scope, $rootScope, $routeParams, $location, Global, Block, Blocks, BlockByHeight) { - $scope.global = Global; - $scope.loading = false; - - if ($routeParams.blockHeight) { - BlockByHeight.get({ - blockHeight: $routeParams.blockHeight - }, function(hash) { - $location.path('/block/' + hash.blockHash); - }, function() { - $rootScope.flashMessage = 'Bad Request'; - $location.path('/'); - }); - } - - //Datepicker - var _formatTimestamp = function (date) { - var yyyy = date.getUTCFullYear().toString(); - var mm = (date.getUTCMonth() + 1).toString(); // getMonth() is zero-based - var dd = date.getUTCDate().toString(); - - return yyyy + '-' + (mm[1] ? mm : '0' + mm[0]) + '-' + (dd[1] ? dd : '0' + dd[0]); //padding - }; - - $scope.$watch('dt', function(newValue, oldValue) { - if (newValue !== oldValue) { - $location.path('/blocks-date/' + _formatTimestamp(newValue)); - } - }); - - $scope.openCalendar = function($event) { - $event.preventDefault(); - $event.stopPropagation(); - - $scope.opened = true; - }; - - $scope.humanSince = function(time) { - var m = moment.unix(time).startOf('day'); - var b = moment().startOf('day'); - return m.max().from(b); - }; - - - $scope.list = function() { - $scope.loading = true; - - if ($routeParams.blockDate) { - $rootScope.titleDetail = 'on ' + $routeParams.blockDate; - } - - Blocks.get({ - blockDate: $routeParams.blockDate - }, function(res) { - $scope.loading = false; - $scope.blocks = res.blocks; - $scope.pagination = res.pagination; - }); - }; - - $scope.findOne = function() { - $scope.loading = true; - - Block.get({ - blockHash: $routeParams.blockHash - }, function(block) { - $rootScope.titleDetail = block.height; - $rootScope.flashMessage = null; - $scope.loading = false; - $scope.block = block; - }, function(e) { - if (e.status === 400) { - $rootScope.flashMessage = 'Invalid Transaction ID: ' + $routeParams.txId; - } - else if (e.status === 503) { - $rootScope.flashMessage = 'Backend Error. ' + e.data; - } - else { - $rootScope.flashMessage = 'Block Not Found'; - } - $location.path('/'); - }); - }; - - $scope.params = $routeParams; - -}); diff --git a/public/src/js/controllers/connection.js b/public/src/js/controllers/connection.js deleted file mode 100644 index 119c1b41..00000000 --- a/public/src/js/controllers/connection.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -angular.module('insight.connection').controller('ConnectionController', - function($scope, $window, Status, getSocket, PeerSync) { - - // Set initial values - $scope.apiOnline = true; - $scope.serverOnline = true; - $scope.clienteOnline = true; - - var socket = getSocket($scope); - - // Check for the node server connection - socket.on('connect', function() { - $scope.serverOnline = true; - socket.on('disconnect', function() { - $scope.serverOnline = false; - }); - }); - - // Check for the api connection - $scope.getConnStatus = function() { - PeerSync.get({}, - function(peer) { - $scope.apiOnline = peer.connected; - $scope.host = peer.host; - $scope.port = peer.port; - }, - function() { - $scope.apiOnline = false; - }); - }; - - socket.emit('subscribe', 'sync'); - socket.on('status', function(sync) { - $scope.sync = sync; - $scope.apiOnline = (sync.status !== 'aborted' && sync.status !== 'error'); - }); - - // Check for the client conneciton - $window.addEventListener('offline', function() { - $scope.$apply(function() { - $scope.clienteOnline = false; - }); - }, true); - - $window.addEventListener('online', function() { - $scope.$apply(function() { - $scope.clienteOnline = true; - }); - }, true); - - }); diff --git a/public/src/js/controllers/currency.js b/public/src/js/controllers/currency.js deleted file mode 100644 index ad68f95c..00000000 --- a/public/src/js/controllers/currency.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict'; - -angular.module('insight.currency').controller('CurrencyController', - function($scope, $rootScope, Currency) { - - var _roundFloat = function(x, n) { - if(!parseInt(n, 10) || !parseFloat(x)) n = 0; - - return Math.round(x * Math.pow(10, n)) / Math.pow(10, n); - }; - - $rootScope.currency.getConvertion = function(value) { - if (typeof value !== 'undefined' && value !== null) { - var response; - - if (this.symbol === 'USD') { - response = _roundFloat((value * this.factor), 2); - } else if (this.symbol === 'mBTC') { - this.factor = 1000; - response = _roundFloat((value * this.factor), 5); - } else { - this.factor = 1; - response = value; - } - - return response + ' ' + this.symbol; - } - - return 'value error'; - }; - - $scope.setCurrency = function(currency) { - $rootScope.currency.symbol = currency; - - if (currency === 'USD') { - Currency.get({}, function(res) { - $rootScope.currency.factor = $rootScope.currency.bitstamp = res.data.bitstamp; - }); - } else if (currency === 'mBTC') { - $rootScope.currency.factor = 1000; - } else { - $rootScope.currency.factor = 1; - } - }; - - // Get initial value - Currency.get({}, function(res) { - $rootScope.currency.bitstamp = res.data.bitstamp; - }); - - }); diff --git a/public/src/js/controllers/footer.js b/public/src/js/controllers/footer.js deleted file mode 100644 index 047ba1e9..00000000 --- a/public/src/js/controllers/footer.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -angular.module('insight.system').controller('FooterController', - function($scope, Version) { - - var _getVersion = function() { - Version.get({}, - function(res) { - $scope.version = res.version; - }); - }; - - $scope.version = _getVersion(); - -}); diff --git a/public/src/js/controllers/header.js b/public/src/js/controllers/header.js deleted file mode 100644 index 4493e9df..00000000 --- a/public/src/js/controllers/header.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -angular.module('insight.system').controller('HeaderController', - function($scope, $rootScope, getSocket, Global, Block) { - $scope.global = Global; - - $rootScope.currency = { - factor: 1, - bitstamp: 0, - symbol: 'BTC' - }; - - $scope.menu = [{ - 'title': 'Blocks', - 'link': 'blocks' - }, { - 'title': 'Status', - 'link': 'status' - }]; - - var _getBlock = function(hash) { - Block.get({ - blockHash: hash - }, function(res) { - $scope.totalBlocks = res.height; - }); - }; - - var socket = getSocket($scope); - socket.on('connect', function() { - socket.emit('subscribe', 'inv'); - - socket.on('block', function(block) { - var blockHash = block.toString(); - _getBlock(blockHash); - }); - }); - - $rootScope.isCollapsed = true; - }); diff --git a/public/src/js/controllers/index.js b/public/src/js/controllers/index.js deleted file mode 100644 index 8552d6e5..00000000 --- a/public/src/js/controllers/index.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var TRANSACTION_DISPLAYED = 10; -var BLOCKS_DISPLAYED = 5; - -angular.module('insight.system').controller('IndexController', - function($scope, Global, getSocket, Blocks) { - $scope.global = Global; - - var _getBlocks = function() { - Blocks.get({ - limit: BLOCKS_DISPLAYED - }, function(res) { - $scope.blocks = res.blocks; - $scope.blocksLength = res.lenght; - }); - }; - - var socket = getSocket($scope); - socket.on('connect', function() { - socket.emit('subscribe', 'inv'); - - socket.on('tx', function(tx) { - $scope.txs.unshift(tx); - if (parseInt($scope.txs.length, 10) >= parseInt(TRANSACTION_DISPLAYED, 10)) { - $scope.txs = $scope.txs.splice(0, TRANSACTION_DISPLAYED); - } - }); - - socket.on('block', function() { - _getBlocks(); - }); - - }); - - $scope.humanSince = function(time) { - var m = moment.unix(time); - return m.max().fromNow(); - }; - - $scope.index = function() { - _getBlocks(); - }; - - $scope.txs = []; - $scope.blocks = []; - }); diff --git a/public/src/js/controllers/search.js b/public/src/js/controllers/search.js deleted file mode 100644 index deab77a4..00000000 --- a/public/src/js/controllers/search.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict'; - -angular.module('insight.search').controller('SearchController', - function($scope, $routeParams, $location, $timeout, Global, Block, Transaction, Address, BlockByHeight) { - $scope.global = Global; - $scope.loading = false; - - var _badQuery = function() { - $scope.badQuery = true; - - $timeout(function() { - $scope.badQuery = false; - }, 2000); - }; - - var _resetSearch = function() { - $scope.q = ''; - $scope.loading = false; - }; - - $scope.search = function() { - var q = $scope.q; - $scope.badQuery = false; - $scope.loading = true; - - Block.get({ - blockHash: q - }, function() { - _resetSearch(); - $location.path('block/' + q); - }, function() { //block not found, search on TX - Transaction.get({ - txId: q - }, function() { - _resetSearch(); - $location.path('tx/' + q); - }, function() { //tx not found, search on Address - Address.get({ - addrStr: q - }, function() { - _resetSearch(); - $location.path('address/' + q); - }, function() { // block by height not found - if (isFinite(q)) { // ensure that q is a finite number. A logical height value. - BlockByHeight.get({ - blockHeight: q - }, function(hash) { - _resetSearch(); - $location.path('/block/' + hash.blockHash); - }, function() { //not found, fail :( - _badQuery(); - }); - } - else { - $scope.loading = false; - _badQuery(); - } - }); - }); - }); - }; - -}); diff --git a/public/src/js/controllers/status.js b/public/src/js/controllers/status.js deleted file mode 100644 index 1d9f08e4..00000000 --- a/public/src/js/controllers/status.js +++ /dev/null @@ -1,49 +0,0 @@ -'use strict'; - -angular.module('insight.status').controller('StatusController', - function($scope, $routeParams, $location, Global, Status, Sync, getSocket) { - $scope.global = Global; - - $scope.getStatus = function(q) { - Status.get({ - q: 'get' + q - }, - function(d) { - $scope.loaded = 1; - angular.extend($scope, d); - }, - function(e) { - $scope.error = 'API ERROR: ' + e.data; - }); - }; - - $scope.humanSince = function(time) { - var m = moment.unix(time / 1000); - return m.max().fromNow(); - }; - - var _onSyncUpdate = function(sync) { - $scope.sync = sync; - }; - - $scope.getSync = function() { - Sync.get({}, - function(sync) { - _onSyncUpdate(sync); - }, - function(e) { - var err = 'Could not get sync information' + e.toString(); - $scope.sync = { - error: err - }; - }); - }; - - var socket = getSocket($scope); - socket.on('connect', function() { - socket.emit('subscribe', 'sync'); - socket.on('status', function(sync) { - _onSyncUpdate(sync); - }); - }); - }); diff --git a/public/src/js/controllers/transactions.js b/public/src/js/controllers/transactions.js deleted file mode 100644 index de66b42e..00000000 --- a/public/src/js/controllers/transactions.js +++ /dev/null @@ -1,172 +0,0 @@ -'use strict'; - -angular.module('insight.transactions').controller('transactionsController', -function($scope, $rootScope, $routeParams, $location, Global, Transaction, TransactionsByBlock, TransactionsByAddress) { - $scope.global = Global; - $scope.loading = false; - $scope.loadedBy = null; - - var pageNum = 0; - var pagesTotal = 1; - var COIN = 100000000; - - var _aggregateItems = function(items) { - if (!items) return []; - - var l = items.length; - - var ret = []; - var tmp = {}; - var u = 0; - - for(var i=0; i < l; i++) { - - var notAddr = false; - // non standard input - if (items[i].scriptSig && !items[i].addr) { - items[i].addr = 'Unparsed address [' + u++ + ']'; - items[i].notAddr = true; - notAddr = true; - } - - // non standard output - if (items[i].scriptPubKey && !items[i].scriptPubKey.addresses) { - items[i].scriptPubKey.addresses = ['Unparsed address [' + u++ + ']']; - items[i].notAddr = true; - notAddr = true; - } - - // multiple addr at output - if (items[i].scriptPubKey && items[i].scriptPubKey.addresses.length > 1) { - items[i].addr = items[i].scriptPubKey.addresses.join(','); - ret.push(items[i]); - continue; - } - - var addr = items[i].addr || (items[i].scriptPubKey && items[i].scriptPubKey.addresses[0]); - - if (!tmp[addr]) { - tmp[addr] = {}; - tmp[addr].valueSat = 0; - tmp[addr].count = 0; - tmp[addr].addr = addr; - tmp[addr].items = []; - } - tmp[addr].isSpent = items[i].spentTxId; - - tmp[addr].doubleSpentTxID = tmp[addr].doubleSpentTxID || items[i].doubleSpentTxID; - tmp[addr].doubleSpentIndex = tmp[addr].doubleSpentIndex || items[i].doubleSpentIndex; - tmp[addr].unconfirmedInput += items[i].unconfirmedInput; - tmp[addr].dbError = tmp[addr].dbError || items[i].dbError; - tmp[addr].valueSat += Math.round(items[i].value * COIN); - tmp[addr].items.push(items[i]); - tmp[addr].notAddr = notAddr; - tmp[addr].count++; - } - - angular.forEach(tmp, function(v) { - v.value = v.value || parseInt(v.valueSat) / COIN; - ret.push(v); - }); - return ret; - }; - - var _processTX = function(tx) { - tx.vinSimple = _aggregateItems(tx.vin); - tx.voutSimple = _aggregateItems(tx.vout); - }; - - var _paginate = function(data) { - $scope.loading = false; - - pagesTotal = data.pagesTotal; - pageNum += 1; - - data.txs.forEach(function(tx) { - _processTX(tx); - $scope.txs.push(tx); - }); - }; - - var _byBlock = function() { - TransactionsByBlock.get({ - block: $routeParams.blockHash, - pageNum: pageNum - }, function(data) { - _paginate(data); - }); - }; - - var _byAddress = function () { - TransactionsByAddress.get({ - address: $routeParams.addrStr, - pageNum: pageNum - }, function(data) { - _paginate(data); - }); - }; - - var _findTx = function(txid) { - Transaction.get({ - txId: txid - }, function(tx) { - $rootScope.titleDetail = tx.txid.substring(0,7) + '...'; - $rootScope.flashMessage = null; - $scope.tx = tx; - _processTX(tx); - $scope.txs.unshift(tx); - }, function(e) { - if (e.status === 400) { - $rootScope.flashMessage = 'Invalid Transaction ID: ' + $routeParams.txId; - } - else if (e.status === 503) { - $rootScope.flashMessage = 'Backend Error. ' + e.data; - } - else { - $rootScope.flashMessage = 'Transaction Not Found'; - } - - $location.path('/'); - }); - }; - - $scope.findThis = function() { - _findTx($routeParams.txId); - }; - - //Initial load - $scope.load = function(from) { - $scope.loadedBy = from; - $scope.loadMore(); - }; - - //Load more transactions for pagination - $scope.loadMore = function() { - if (pageNum < pagesTotal && !$scope.loading) { - $scope.loading = true; - - if ($scope.loadedBy === 'address') { - _byAddress(); - } - else { - _byBlock(); - } - } - }; - - // Highlighted txout - if ($routeParams.v_type == '>' || $routeParams.v_type == '<') { - $scope.from_vin = $routeParams.v_type == '<' ? true : false; - $scope.from_vout = $routeParams.v_type == '>' ? true : false; - $scope.v_index = parseInt($routeParams.v_index); - $scope.itemsExpanded = true; - } - - //Init without txs - $scope.txs = []; - - $scope.$on('tx', function(event, txid) { - _findTx(txid); - }); - -}); diff --git a/public/src/js/directives.js b/public/src/js/directives.js deleted file mode 100644 index 943f3478..00000000 --- a/public/src/js/directives.js +++ /dev/null @@ -1,75 +0,0 @@ -'use strict'; - -var ZeroClipboard = window.ZeroClipboard; - -angular.module('insight') - .directive("scroll", function ($window) { - return function(scope, element, attrs) { - angular.element($window).bind("scroll", function() { - if (this.pageYOffset >= 200) { - scope.secondaryNavbar = true; - } else { - scope.secondaryNavbar = false; - } - scope.$apply(); - }); - }; - }) - .directive('whenScrolled', function($window) { - return { - restric: 'A', - link: function(scope, elm, attr) { - var pageHeight, clientHeight, scrollPos; - $window = angular.element($window); - - var handler = function() { - pageHeight = window.document.documentElement.scrollHeight; - clientHeight = window.document.documentElement.clientHeight; - scrollPos = window.pageYOffset; - - if (pageHeight - (scrollPos + clientHeight) === 0) { - scope.$apply(attr.whenScrolled); - } - }; - - $window.on('scroll', handler); - - scope.$on('$destroy', function() { - return $window.off('scroll', handler); - }); - } - }; - }) - .directive('clipCopy', function() { - ZeroClipboard.config({ - moviePath: '/lib/zeroclipboard/ZeroClipboard.swf', - trustedDomains: ['*'], - allowScriptAccess: 'always', - forceHandCursor: true - }); - - return { - restric: 'A', - scope: { clipCopy: '=clipCopy' }, - template: '
    Copied!
    ', - link: function(scope, elm) { - var clip = new ZeroClipboard(elm); - - clip.on('load', function(client) { - var onMousedown = function(client) { - client.setText(scope.clipCopy); - }; - - client.on('mousedown', onMousedown); - - scope.$on('$destroy', function() { - client.off('mousedown', onMousedown); - }); - }); - - clip.on('noFlash wrongflash', function() { - return elm.remove(); - }); - } - }; - }); diff --git a/public/src/js/filters.js b/public/src/js/filters.js deleted file mode 100644 index a1cad320..00000000 --- a/public/src/js/filters.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -angular.module('insight') - .filter('startFrom', function() { - return function(input, start) { - start = +start; //parse to int - return input.slice(start); - } -}); diff --git a/public/src/js/init.js b/public/src/js/init.js deleted file mode 100644 index 53aa43f3..00000000 --- a/public/src/js/init.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -angular.element(document).ready(function() { - // Init the app - // angular.bootstrap(document, ['insight']); -}); diff --git a/public/src/js/services/address.js b/public/src/js/services/address.js deleted file mode 100644 index 17d05ce0..00000000 --- a/public/src/js/services/address.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -angular.module('insight.address').factory('Address', - function($resource) { - return $resource('/api/addr/:addrStr', { - addrStr: '@addStr' - }, { - get: { - method: 'GET', - interceptor: { - response: function (res) { - return res.data; - }, - responseError: function (res) { - if (res.status === 404) { - return res; - } - } - } - } - }); -}); - diff --git a/public/src/js/services/blocks.js b/public/src/js/services/blocks.js deleted file mode 100644 index aa89df58..00000000 --- a/public/src/js/services/blocks.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -angular.module('insight.blocks') - .factory('Block', - function($resource) { - return $resource('/api/block/:blockHash', { - blockHash: '@blockHash' - }, { - get: { - method: 'GET', - interceptor: { - response: function (res) { - return res.data; - }, - responseError: function (res) { - if (res.status === 404) { - return res; - } - } - } - } - }); - }) - .factory('Blocks', - function($resource) { - return $resource('/api/blocks'); - }) - .factory('BlockByHeight', - function($resource) { - return $resource('/api/block-index/:blockHeight'); - }); diff --git a/public/src/js/services/currency.js b/public/src/js/services/currency.js deleted file mode 100644 index 1a9cc0eb..00000000 --- a/public/src/js/services/currency.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -angular.module('insight.currency').factory('Currency', - function($resource) { - return $resource('/api/currency'); -}); diff --git a/public/src/js/services/global.js b/public/src/js/services/global.js deleted file mode 100644 index 4bbd0227..00000000 --- a/public/src/js/services/global.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -//Global service for global variables -angular.module('insight.system') - .factory('Global',[ - function() { - } - ]) - .factory('Version', - function($resource) { - return $resource('/api/version'); - }); diff --git a/public/src/js/services/socket.js b/public/src/js/services/socket.js deleted file mode 100644 index e82be3b3..00000000 --- a/public/src/js/services/socket.js +++ /dev/null @@ -1,71 +0,0 @@ -'use strict'; - -var ScopedSocket = function(socket, $rootScope) { - this.socket = socket; - this.$rootScope = $rootScope; - this.listeners = []; -}; - -ScopedSocket.prototype.removeAllListeners = function(opts) { - if (!opts) opts = {}; - for (var i = 0; i < this.listeners.length; i++) { - var details = this.listeners[i]; - if (opts.skipConnect && details.event === 'connect') { - continue; - } - this.socket.removeListener(details.event, details.fn); - } - this.listeners = []; -}; - -ScopedSocket.prototype.on = function(event, callback) { - var socket = this.socket; - var $rootScope = this.$rootScope; - - var wrapped_callback = function() { - var args = arguments; - $rootScope.$apply(function() { - callback.apply(socket, args); - }); - }; - socket.on(event, wrapped_callback); - - this.listeners.push({ - event: event, - fn: wrapped_callback - }); -}; - -ScopedSocket.prototype.emit = function(event, data, callback) { - var socket = this.socket; - var $rootScope = this.$rootScope; - - socket.emit(event, data, function() { - var args = arguments; - $rootScope.$apply(function() { - if (callback) { - callback.apply(socket, args); - } - }); - }); -}; - -angular.module('insight.socket').factory('getSocket', - function($rootScope) { - var socket = io.connect(null, { - 'reconnect': true, - 'reconnection delay': 500, - }); - return function(scope) { - var scopedSocket = new ScopedSocket(socket, $rootScope); - scope.$on('$destroy', function() { - scopedSocket.removeAllListeners(); - }); - socket.on('connect', function() { - scopedSocket.removeAllListeners({ - skipConnect: true - }); - }); - return scopedSocket; - }; - }); diff --git a/public/src/js/services/status.js b/public/src/js/services/status.js deleted file mode 100644 index 62fb84e3..00000000 --- a/public/src/js/services/status.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -angular.module('insight.status') - .factory('Status', - function($resource) { - return $resource('/api/status', { - q: '@q' - }); - }) - .factory('Sync', - function($resource) { - return $resource('/api/sync'); - }) - .factory('PeerSync', - function($resource) { - return $resource('/api/peer'); - }); diff --git a/public/src/js/services/transactions.js b/public/src/js/services/transactions.js deleted file mode 100644 index d1243eab..00000000 --- a/public/src/js/services/transactions.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -angular.module('insight.transactions') - .factory('Transaction', - function($resource) { - return $resource('/api/tx/:txId', { - txId: '@txId' - }, { - get: { - method: 'GET', - interceptor: { - response: function (res) { - return res.data; - }, - responseError: function (res) { - if (res.status === 404) { - return res; - } - } - } - } - }); - }) - .factory('TransactionsByBlock', - function($resource) { - return $resource('/api/txs', { - block: '@block' - }); - }) - .factory('TransactionsByAddress', - function($resource) { - return $resource('/api/txs', { - address: '@address' - }); - }) - .factory('Transactions', - function($resource) { - return $resource('/api/txs'); - }); diff --git a/public/views/404.html b/public/views/404.html deleted file mode 100644 index 76da6bdc..00000000 --- a/public/views/404.html +++ /dev/null @@ -1,6 +0,0 @@ -
    -
    diff --git a/public/views/address.html b/public/views/address.html deleted file mode 100644 index 8cf6eda0..00000000 --- a/public/views/address.html +++ /dev/null @@ -1,76 +0,0 @@ -
    -
    -
    -
    -
    - - Address {{address.addrStr}} - - -
    -
    - Final Balance {{$root.currency.getConvertion(address.balance) || address.balance + ' BTC' }} -
    -
    -
    -

    Address {{$root.currency.getConvertion(address.balance) || address.balance + ' BTC'}}

    -
    - Loading Address Information... -
    -
    -
    - Address - {{address.addrStr}} - -
    -

    Summary confirmed

    -
    -
    - - - - - - - - - - - - - - - - - - - -
    Total Received{{$root.currency.getConvertion(address.totalReceived) || address.totalReceived + ' BTC'}}
    Total Sent{{$root.currency.getConvertion(address.totalSent) || address.totalSent + ' BTC'}}
    Final Balance{{$root.currency.getConvertion(address.balance) || address.balance + ' BTC'}}
    No. Transactions{{address.txApperances}}
    -
    -
    - -
    -
    -
    -

    Unconfirmed

    - - - - - - - - - - - - -
    Unconfirmed Txs Balance{{$root.currency.getConvertion(address.unconfirmedBalance)}}
    No. Transactions{{address.unconfirmedTxApperances}}
    -
    -
    -

    Transactions

    -
    -
    -
    -
    - diff --git a/public/views/block.html b/public/views/block.html deleted file mode 100644 index e3b9ed01..00000000 --- a/public/views/block.html +++ /dev/null @@ -1,119 +0,0 @@ -
    -
    -
    -
    - -
    -
    - Block #{{block.height}} · - Hash {{block.hash}} - -
    -
    -
    - - Next Block → - -
    -
    -
    -

    Block #{{block.height}}

    -
    -
    - Loading Block... -
    -
    -
    -
    - BlockHash - {{block.hash}} - -
    -

    Summary

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Number Of Transactions{{block.tx.length}}
    Height{{block.height}} - (Mainchain) - (Orphaned) -
    Block Reward{{$root.currency.getConvertion(block.reward) || block.reward + ' BTC'}}
    Timestamp{{block.time * 1000 | date:'medium'}}
    Mined by - {{block.poolInfo.poolName}} -
    Merkle Root -
    - - {{block.merkleroot}} -
    -
    Previous Block{{block.height-1}}
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Difficulty {{block.difficulty}}
    Bits {{block.bits}}
    Size (bytes) {{block.size}}
    Version {{block.version}}
    Nonce {{block.nonce}}
    Next Block{{block.height+1}}
    -
    -
    - -
    -

    Transactions

    -
    -
    - -
    - diff --git a/public/views/block_list.html b/public/views/block_list.html deleted file mode 100644 index 507657c2..00000000 --- a/public/views/block_list.html +++ /dev/null @@ -1,63 +0,0 @@ -
    -
    -
    -
    -
    -
    - -

    Blocks
    mined on:

    -
    -
    -

    - {{pagination.current}} UTC - -

    -
    - Loading Selected Date... -
    -
    -

     

    -

    Today

    -

    {{humanSince(pagination.currentTs)}} -

     

    - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - -
    HeightTimestampTransactionsMined bySize
    Waiting for blocks...
    {{b.height}}{{b.time * 1000 | date:'medium'}}{{b.txlength}}{{b.poolInfo.poolName}}{{b.size}}
    -
    -
    -

    No blocks yet.

    -
    - diff --git a/public/views/includes/connection.html b/public/views/includes/connection.html deleted file mode 100644 index 5430475f..00000000 --- a/public/views/includes/connection.html +++ /dev/null @@ -1,23 +0,0 @@ -
    - -
    - - Error! - -

    - Can't connect to bitcoind to get live updates from the p2p network. - (Tried connecting to bitcoind at {{host}}:{{port}} and failed.) -

    - -

    - Can't connect to insight server. Attempting to reconnect... -

    - -

    - Can't connect to internet. Please, check your connection. -

    - -
    -
    diff --git a/public/views/includes/currency.html b/public/views/includes/currency.html deleted file mode 100644 index 87debb23..00000000 --- a/public/views/includes/currency.html +++ /dev/null @@ -1,15 +0,0 @@ - - {{currency.symbol}} - - - diff --git a/public/views/includes/footer.html b/public/views/includes/footer.html deleted file mode 100644 index b623aabe..00000000 --- a/public/views/includes/footer.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/public/views/includes/header.html b/public/views/includes/header.html deleted file mode 100644 index 7c1a860e..00000000 --- a/public/views/includes/header.html +++ /dev/null @@ -1,49 +0,0 @@ -
    -
    - - -
    -
    diff --git a/public/views/includes/infoStatus.html b/public/views/includes/infoStatus.html deleted file mode 100644 index 011a8095..00000000 --- a/public/views/includes/infoStatus.html +++ /dev/null @@ -1,4 +0,0 @@ -Loading... -{{error}} - - diff --git a/public/views/index.html b/public/views/index.html deleted file mode 100644 index 188ec463..00000000 --- a/public/views/index.html +++ /dev/null @@ -1,80 +0,0 @@ -
    - {{$root.flashMessage}} -
    -
    -
    -
    -
    -
    -

    Latest Blocks

    - - - - - - - - - - - - - - - - - - - - -
    HeightAgeTransactionsMined bySize
    Waiting for blocks...
    - {{b.height}} - {{humanSince(b.time)}}{{b.txlength}}{{b.poolInfo.poolName}}{{b.size}} bytes
    - - -

    Latest Transactions

    - - - - - - - - - - - - - - - - - -
    HashSizeValue Out
    Waiting for transactions...
    - {{tx.txid}} - {{tx.size}} bytes{{tx.valueOut}} BTC
    - -
    - -
    -

    About

    -

    insight is an open-source Bitcoin blockchain explorer with complete REST -and websocket APIs that can be used for writing web wallets and other apps -that need more advanced blockchain queries than provided by bitcoind RPC. -Check out the source code.

    -

    insight is still in development, so be sure to report any bugs and provide feedback for improvement at our github issue tracker.

    -
    -
    - Powered by -
    - - - - -
    -
    -
    -
    -
    diff --git a/public/views/redirect.html b/public/views/redirect.html deleted file mode 100644 index bccac726..00000000 --- a/public/views/redirect.html +++ /dev/null @@ -1 +0,0 @@ -
    Redirecting...
    diff --git a/public/views/status.html b/public/views/status.html deleted file mode 100644 index a04b019a..00000000 --- a/public/views/status.html +++ /dev/null @@ -1,165 +0,0 @@ -
    -
    - -
    - -
    -

    Sync Status

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Sync Progress -
    -
    - {{sync.syncPercentage}}% Complete -
    -
    -
    Current Sync Status - {{sync.status}} - - - {{sync.error}} - -
    Start Date
    Finish Date
    Initial Block Chain Height{{sync.blockChainHeight}}
    Synced Blocks{{sync.syncedBlocks}}
    Skipped Blocks (previously synced){{sync.skippedBlocks}}
    Sync Type{{sync.type}}
    - -

    Last Block

    - - - - - - - - - - - - -
    Last Block Hash (Bitcoind){{lastblockhash}}
    Current Blockchain Tip (insight){{syncTipHash}}
    - -

    Transaction Output Set Information

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Height{{txoutsetinfo.height}}
    Best Block{{txoutsetinfo.bestblock}}
    Transactions {{txoutsetinfo.transactions}}
    Transaction Outputs{{txoutsetinfo.txouts}}
    Bytes Serialized{{txoutsetinfo.bytes_serialized}}
    Hash Serialized{{txoutsetinfo.hash_serialized}}
    Total Amount{{txoutsetinfo.total_amount}}
    -
    -
    - -
    -

    Bitcoin node information

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Version{{info.version}}
    Protocol version{{info.protocolversion}}
    Blocks{{info.blocks}}
    Time Offset{{info.timeoffset}}
    Connections to other nodes{{info.connections}}
    Mining Difficulty{{info.difficulty}}
    Testnet{{info.testnet}}
    Proxy setting{{info.proxy}}
    Info Errors{{info.infoErrors}}
    -
    -
    -
    - diff --git a/public/views/transaction.html b/public/views/transaction.html deleted file mode 100644 index f50311fd..00000000 --- a/public/views/transaction.html +++ /dev/null @@ -1,63 +0,0 @@ -
    -
    -
    -
    -
    - - Transaction {{tx.txid}} - - -
    -
    - {{tx.confirmations}} Confirmations - Unconfirmed Transaction! - {{$root.currency.getConvertion(tx.valueOut) || tx.valueOut + ' BTC' }} -
    -
    -
    -
    -

    Transaction - - Input - Output - {{v_index}} - -

    -
    -
    - Loading Transaction Details... -
    -
    -
    -
    - Transaction - {{tx.txid}} - -
    -

    Summary

    - - - - - - - - - - - - - - - - - -
    Size {{tx.size}} (bytes)
    Received Time {{tx.firstSeenTs * 1000|date:'medium'}}N/A
    Mined Time {{tx.time * 1000|date:'medium'}}N/A
    -
    -

    Details

    -
    -
    -
    -
    -
    - diff --git a/public/views/transaction/list.html b/public/views/transaction/list.html deleted file mode 100644 index 4dcfd41d..00000000 --- a/public/views/transaction/list.html +++ /dev/null @@ -1,9 +0,0 @@ -
    There are not transactions involving this address.
    -
    -
    -
    -
    -
    - Loading Transactions... -
    -
    diff --git a/public/views/transaction/tx.html b/public/views/transaction/tx.html deleted file mode 100644 index f3812057..00000000 --- a/public/views/transaction/tx.html +++ /dev/null @@ -1,185 +0,0 @@ -
    -
    - -
    -
    -
    - first seen at - -
    -
    - mined at - -
    -
    -
    -
    -
    -
    -
    -
    - No Inputs (Newly Generated Coins) -
    -
    -
    -
    - - -
    -
    -
    -

    {{$root.currency.getConvertion(vin.value) || vin.value + ' BTC'}}

    -
    - {{vin.addr}} - {{vin.addr}} - {{vin.addr}} -
    -
    (Input unconfirmed)
    -
    Incoherence in levelDB detected, please resync
    -
    Double spent attempt detected. From tx: - {{vin.doubleSpentTxID}},{{vin.doubleSpentIndex}} -
    -
    -
    - -
    - - -
    - show input {{ v_index }} - show all -
    -
    -

    {{$root.currency.getConvertion(vin.value) || vin.value + ' BTC'}}

    -
    -    - {{vin.addr}} - {{vin.addr}} -
    -
    (Input unconfirmed)
    -
    Incoherence in levelDB detected, please resync
    -
    Double spent attempt detected. From tx: - {{vin.doubleSpentTxID}},{{vin.doubleSpentIndex}} -
    -
    -
    -
    -
    - - scriptSig - {{vin.scriptSig.asm}} - -
    -
    -
    -
    - -
    -
    -
    -
    - - -
    -
    -
    - - -
    -
    -
    -
    - -

    - {{$root.currency.getConvertion(vout.value) || vout.value + ' BTC' }} - (S) - (U) -

    -
    - -
    - {{vout.addr}} - {{vout.addr}} - {{address}} -
    -
    -
    - -
    - - -
    - show output {{ v_index }} - show all -
    -
    -
    -

    {{$root.currency.getConvertion(vout.value) || vout.value + ' BTC'}} - (U) -    -

    -
    - -
    -
    -
    -
    - -

    - Type - {{vout.scriptPubKey.type}} -

    -

    - scriptPubKey - {{vout.scriptPubKey.asm}} -

    -
    -
    -
    -
    -
    - -
    -
    -
    -
    - -
    - BlockHash {{tx.blockhash}} - -
    - -
    -
    - Fees: {{$root.currency.getConvertion(tx.fees) || tx.fees + 'BTC'}} -
    -
    - {{tx.confirmations}} Confirmations - Unconfirmed Transaction! - {{$root.currency.getConvertion(tx.valueOut) || tx.valueOut + ' BTC' }} -
    -