updating angular to 0.9.13 curdling-stare

master
Igor Minar 13 years ago
parent f216c1fbbf
commit 82dd42351d

@ -21,7 +21,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
(function(window, document){
(function(window, document, undefined){
////////////////////////////////////
if (typeof document.getAttribute == $undefined)
@ -113,8 +113,8 @@ var _undefined = undefined,
msie = parseInt((/msie (\d+)/.exec(lowercase(navigator.userAgent)) || [])[1], 10),
jqLite, // delay binding since jQuery could be loaded after us.
jQuery, // delay binding
slice = Array.prototype.slice,
push = Array.prototype.push,
slice = [].slice,
push = [].push,
error = window[$console]
? bind(window[$console], window[$console]['error'] || noop)
: noop,
@ -860,19 +860,7 @@ function encodeUriSegment(val) {
* This section explains how to bootstrap your application with angular, using either the angular
* javascript file, or manually.
*
*
* ## The angular distribution
* Note that there are two versions of the angular javascript file that you can use:
*
* * `angular.js` - the development version - this file is unobfuscated, uncompressed, and thus
* human-readable and useful when developing your angular applications.
* * `angular.min.js` - the production version - this is a minified and obfuscated version of
* `angular.js`. You want to use this version when you want to load a smaller but functionally
* equivalent version of the code in your application. We use the Closure compiler to create this
* file.
*
*
* ## Auto-bootstrap with `ng:autobind`
* # Auto-bootstrap with `ng:autobind`
* The simplest way to get an <angular/> application up and running is by inserting a script tag in
* your HTML file that bootstraps the `http://code.angularjs.org/angular-x.x.x.min.js` code and uses
* the special `ng:autobind` attribute, like in this snippet of HTML:
@ -890,9 +878,13 @@ function encodeUriSegment(val) {
&lt;/html&gt;
* </pre>
*
* The `ng:autobind` attribute tells <angular/> to compile and manage the whole HTML document. The
* compilation occurs in the page's `onLoad` handler. Note that you don't need to explicitly add an
* `onLoad` event; auto bind mode takes care of all the magic for you.
* The `ng:autobind` attribute without any value tells angular to compile and manage the whole HTML
* document. The compilation occurs as soon as the document is ready for DOM manipulation. Note that
* you don't need to explicitly add an `onLoad` event handler; auto bind mode takes care of all the
* work for you.
*
* In order to compile only a part of the document, specify the id of the element that should be
* compiled as the value of the `ng:autobind` attribute, e.g. `ng:autobind="angularContent"`.
*
*
* ## Auto-bootstrap with `#autobind`
@ -917,6 +909,8 @@ function encodeUriSegment(val) {
*
* In this case it's the `#autobind` URL fragment that tells angular to auto-bootstrap.
*
* Similarly to `ng:autobind`, you can specify an element id that should be exclusively targeted for
* compilation as the value of the `#autobind`, e.g. `#autobind=angularContent`.
*
* ## Filename Restrictions for Auto-bootstrap
* In order for us to find the auto-bootstrap script attribute or URL fragment, the value of the
@ -950,12 +944,9 @@ function encodeUriSegment(val) {
&lt;script type="text/javascript" src="http://code.angularjs.org/angular-0.9.3.min.js"
ng:autobind&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
(function(window, previousOnLoad){
window.onload = function(){
try { (previousOnLoad||angular.noop)(); } catch(e) {}
angular.compile(window.document);
};
})(window, window.onload);
(angular.element(document).ready(function() {
angular.compile(document)();
})(document);
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
@ -997,10 +988,12 @@ function encodeUriSegment(val) {
* APIs are bound to fields of this global object.
*
*/
function angularInit(config){
if (config.autobind) {
// TODO default to the source of angular.js
var scope = compile(window.document)(createScope({'$config':config})),
function angularInit(config, document){
var autobind = config.autobind;
if (autobind) {
var element = isString(autobind) ? document.getElementById(autobind) : document,
scope = compile(element)(createScope({'$config':config})),
$browser = scope.$service('$browser');
if (config.css)
@ -1026,7 +1019,7 @@ function angularJsConfig(document, config) {
eachAttribute(jqLite(scripts[j]), function(value, name){
if (/^ng:/.exec(name)) {
name = name.substring(3).replace(/-/g, '_');
if (name == 'autobind') value = true;
value = value || true;
config[name] = value;
}
});
@ -1105,7 +1098,7 @@ function fromJson(json, useNative) {
var obj, p, expression;
try {
if (useNative && JSON && JSON.parse) {
if (useNative && window.JSON && window.JSON.parse) {
obj = JSON.parse(json);
return transformDates(obj);
}
@ -3163,6 +3156,11 @@ var XHR = window.XMLHttpRequest || function () {
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e3) {}
throw new Error("This browser does not support XMLHttpRequest.");
};
var XHR_HEADERS = {
"Content-Type": "application/x-www-form-urlencoded",
"Accept": "application/json, text/plain, */*",
"X-Requested-With": "XMLHttpRequest"
};
/**
* @private
@ -3226,35 +3224,37 @@ function Browser(window, document, body, XHR, $log) {
*
* @param {string} method Requested method (get|post|put|delete|head|json)
* @param {string} url Requested url
* @param {string=} post Post data to send
* @param {?string} post Post data to send (null if nothing to post)
* @param {function(number, string)} callback Function that will be called on response
* @param {object=} header additional HTTP headers to send with XHR.
* Standard headers are:
* <ul>
* <li><tt>Content-Type</tt>: <tt>application/x-www-form-urlencoded</tt></li>
* <li><tt>Accept</tt>: <tt>application/json, text/plain, &#42;/&#42;</tt></li>
* <li><tt>X-Requested-With</tt>: <tt>XMLHttpRequest</tt></li>
* </ul>
*
* @description
* Send ajax request
*/
self.xhr = function(method, url, post, callback) {
if (isFunction(post)) {
callback = post;
post = _null;
}
self.xhr = function(method, url, post, callback, headers) {
outstandingRequestCount ++;
if (lowercase(method) == 'json') {
var callbackId = "angular_" + Math.random() + '_' + (idCounter++);
callbackId = callbackId.replace(/\d\./, '');
var script = document[0].createElement('script');
script.type = 'text/javascript';
script.src = url.replace('JSON_CALLBACK', callbackId);
var callbackId = ("angular_" + Math.random() + '_' + (idCounter++)).replace(/\d\./, '');
var script = jqLite('<script>')
.attr({type: 'text/javascript', src: url.replace('JSON_CALLBACK', callbackId)});
window[callbackId] = function(data){
window[callbackId] = _undefined;
script.remove();
completeOutstandingRequest(callback, 200, data);
};
body.append(script);
} else {
var xhr = new XHR();
xhr.open(method, url, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Accept", "application/json, text/plain, */*");
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
forEach(extend(XHR_HEADERS, headers || {}), function(value, key){
if (value) xhr.setRequestHeader(key, value);
});
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
completeOutstandingRequest(callback, xhr.status || 200, xhr.responseText);
@ -3436,7 +3436,7 @@ function Browser(window, document, body, XHR, $log) {
* @returns {Object} Hash of all cookies (if called without any parameter)
*/
self.cookies = function (name, value) {
var cookieLength, cookieArray, i, keyValue;
var cookieLength, cookieArray, cookie, i, keyValue, index;
if (name) {
if (value === _undefined) {
@ -3463,9 +3463,10 @@ function Browser(window, document, body, XHR, $log) {
lastCookies = {};
for (i = 0; i < cookieArray.length; i++) {
keyValue = cookieArray[i].split("=");
if (keyValue.length === 2) { //ignore nameless cookies
lastCookies[unescape(keyValue[0])] = unescape(keyValue[1]);
cookie = cookieArray[i];
index = cookie.indexOf('=');
if (index > 0) { //ignore nameless cookies
lastCookies[unescape(cookie.substring(0, index))] = unescape(cookie.substring(index + 1));
}
}
}
@ -4001,7 +4002,7 @@ function JQLiteAddNodes(root, elements) {
//////////////////////////////////////////
// Functions which are declared directly.
//////////////////////////////////////////
var JQLitePrototype = JQLite.prototype = extend([], {
var JQLitePrototype = JQLite.prototype = {
ready: function(fn) {
var fired = false;
@ -4019,8 +4020,12 @@ var JQLitePrototype = JQLite.prototype = extend([], {
var value = [];
forEach(this, function(e){ value.push('' + e);});
return '[' + value.join(', ') + ']';
}
});
},
length: 0,
push: push,
sort: [].sort,
splice: [].splice
};
//////////////////////////////////////////
// Functions iterating getter/setters.
@ -4798,12 +4803,13 @@ var angularArray = {
* {@link angular.Array} for more info.
*
* @param {Array} array The array to sort.
* @param {function(*, *)|string|Array.<(function(*, *)|string)>} expression A predicate to be
* @param {function(*)|string|Array.<(function(*)|string)>} expression A predicate to be
* used by the comparator to determine the order of elements.
*
* Can be one of:
*
* - `function`: JavaScript's Array#sort comparator function
* - `function`: getter function. The result of this function will be sorted using the
* `<`, `=`, `>` operator
* - `string`: angular expression which evaluates to an object to order by, such as 'name' to
* sort by a property called 'name'. Optionally prefixed with `+` or `-` to control ascending
* or descending sort order (e.g. +name or -name).
@ -7679,13 +7685,71 @@ angularServiceInject('$xhr.error', function($log){
* @ngdoc service
* @name angular.service.$xhr
* @function
* @requires $browser
* @requires $xhr.error
* @requires $log
* @requires $browser $xhr delegates all XHR requests to the `$browser.xhr()`. A mock version
* of the $browser exists which allows setting expectaitions on XHR requests
* in your tests
* @requires $xhr.error $xhr delegates all non `2xx` response code to this service.
* @requires $log $xhr delegates all exceptions to `$log.error()`.
* @requires $updateView After a server response the view needs to be updated for data-binding to
* take effect.
*
* @description
* Generates an XHR request. The $xhr service adds error handling then delegates all requests to
* {@link angular.service.$browser $browser.xhr()}.
* Generates an XHR request. The $xhr service delegates all requests to
* {@link angular.service.$browser $browser.xhr()} and adds error handling and security features.
* While $xhr service provides nicer api than raw XmlHttpRequest, it is still considered a lower
* level api in angular. For a higher level abstraction that utilizes `$xhr`, please check out the
* {@link angular.service$resource $resource} service.
*
* # Error handling
* All XHR responses with response codes other then `2xx` are delegated to
* {@link angular.service.$xhr.error $xhr.error}. The `$xhr.error` can intercept the request
* and process it in application specific way, or resume normal execution by calling the
* request callback method.
*
* # Security Considerations
* When designing web applications your design needs to consider security threats from
* {@link http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx
* JSON Vulnerability} and {@link http://en.wikipedia.org/wiki/Cross-site_request_forgery XSRF}.
* Both server and the client must cooperate in order to eliminate these threats. Angular comes
* pre-configured with strategies that address these issues, but for this to work backend server
* cooperation is required.
*
* ## JSON Vulnerability Protection
* A {@link http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx
* JSON Vulnerability} allows third party web-site to turn your JSON resource URL into
* {@link http://en.wikipedia.org/wiki/JSON#JSONP JSONP} request under some conditions. To
* counter this your server can prefix all JSON requests with following string `")]}',\n"`.
* Angular will automatically strip the prefix before processing it as JSON.
*
* For example if your server needs to return:
* <pre>
* ['one','two']
* </pre>
*
* which is vulnerable to attack, your server can return:
* <pre>
* )]}',
* ['one','two']
* </pre>
*
* angular will strip the prefix, before processing the JSON.
*
*
* ## Cross Site Request Forgery (XSRF) Protection
* {@link http://en.wikipedia.org/wiki/Cross-site_request_forgery XSRF} is a technique by which an
* unauthorized site can gain your user's private data. Angular provides following mechanism to
* counter XSRF. When performing XHR requests, the $xhr service reads a token from a cookie
* called `XSRF-TOKEN` and sets it as the HTTP header `X-XSRF-TOKEN`. Since only JavaScript that
* runs on your domain could read the cookie, your server can be assured that the XHR came from
* JavaScript running on your domain.
*
* To take advantage of this, your server needs to set a token in a JavaScript readable session
* cookie called `XSRF-TOKEN` on first HTTP GET request. On subsequent non-GET requests the server
* can verify that the cookie matches `X-XSRF-TOKEN` HTTP header, and therefore be sure that only
* JavaScript running on your domain could have read the token. The token must be unique for each
* user and must be verifiable by the server (to prevent the JavaScript making up its own tokens).
* We recommend that the token is a digest of your site's authentication cookie with
* {@link http://en.wikipedia.org/wiki/Rainbow_table salt for added security}.
*
* @param {string} method HTTP method to use. Valid values are: `GET`, `POST`, `PUT`, `DELETE`, and
* `JSON`. `JSON` is a special case which causes a
@ -7743,8 +7807,7 @@ angularServiceInject('$xhr.error', function($log){
</doc:source>
</doc:example>
*/
angularServiceInject('$xhr', function($browser, $error, $log){
var self = this;
angularServiceInject('$xhr', function($browser, $error, $log, $updateView){
return function(method, url, post, callback){
if (isFunction(post)) {
callback = post;
@ -7753,6 +7816,7 @@ angularServiceInject('$xhr', function($browser, $error, $log){
if (post && isObject(post)) {
post = toJson(post);
}
$browser.xhr(method, url, post, function(code, response){
try {
if (isString(response)) {
@ -7761,7 +7825,7 @@ angularServiceInject('$xhr', function($browser, $error, $log){
response = fromJson(response, true);
}
}
if (code == 200) {
if (200 <= code && code < 300) {
callback(code, response);
} else {
$error(
@ -7771,11 +7835,13 @@ angularServiceInject('$xhr', function($browser, $error, $log){
} catch (e) {
$log.error(e);
} finally {
self.$eval();
$updateView();
}
}, {
'X-XSRF-TOKEN': $browser.cookies()['XSRF-TOKEN']
});
};
}, ['$browser', '$xhr.error', '$log']);
}, ['$browser', '$xhr.error', '$log', '$updateView']);
/**
* @workInProgress
* @ngdoc directive
@ -9853,8 +9919,8 @@ bindJQuery();
jqLiteWrap(document).ready(function(){
angularInit(angularJsConfig(document));
angularInit(angularJsConfig(document), document);
});
})(window, document);
document.write('<style type="text/css">@charset "UTF-8";.ng-format-negative{color:red;}.ng-exception{border:2px solid #FF0000;font-family:"Courier New",Courier,monospace;font-size:smaller;white-space:pre;}.ng-validation-error{border:2px solid #FF0000;}#ng-callout{margin:0;padding:0;border:0;outline:0;font-size:13px;font-weight:normal;font-family:Verdana,Arial,Helvetica,sans-serif;vertical-align:baseline;background:transparent;text-decoration:none;}#ng-callout .ng-arrow-left{background-image:url("data:image/gif;base64,R0lGODlhCwAXAKIAAMzMzO/v7/f39////////wAAAAAAAAAAACH5BAUUAAQALAAAAAALABcAAAMrSLoc/AG8FeUUIN+sGebWAnbKSJodqqlsOxJtqYooU9vvk+vcJIcTkg+QAAA7");background-repeat:no-repeat;background-position:left top;position:absolute;z-index:101;left:-12px;height:23px;width:10px;top:-3px;}#ng-callout .ng-arrow-right{background-image:url("data:image/gif;base64,R0lGODlhCwAXAKIAAMzMzO/v7/f39////////wAAAAAAAAAAACH5BAUUAAQALAAAAAALABcAAAMrCLTcoM29yN6k9socs91e5X3EyJloipYrO4ohTMqA0Fn2XVNswJe+H+SXAAA7");background-repeat:no-repeat;background-position:left top;position:absolute;z-index:101;height:23px;width:11px;top:-2px;}#ng-callout{position:absolute;z-index:100;border:2px solid #CCCCCC;background-color:#fff;}#ng-callout .ng-content{padding:10px 10px 10px 10px;color:#333333;}#ng-callout .ng-title{background-color:#CCCCCC;text-align:left;padding-left:8px;padding-bottom:5px;padding-top:2px;font-weight:bold;}.ng-input-indicator-wait{background-image:url("data:image/png;base64,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");background-position:right;background-repeat:no-repeat;}</style>');
angular.element(document).find('head').append('<style type="text/css">@charset "UTF-8";.ng-format-negative{color:red;}.ng-exception{border:2px solid #FF0000;font-family:"Courier New",Courier,monospace;font-size:smaller;white-space:pre;}.ng-validation-error{border:2px solid #FF0000;}#ng-callout{margin:0;padding:0;border:0;outline:0;font-size:13px;font-weight:normal;font-family:Verdana,Arial,Helvetica,sans-serif;vertical-align:baseline;background:transparent;text-decoration:none;}#ng-callout .ng-arrow-left{background-image:url("data:image/gif;base64,R0lGODlhCwAXAKIAAMzMzO/v7/f39////////wAAAAAAAAAAACH5BAUUAAQALAAAAAALABcAAAMrSLoc/AG8FeUUIN+sGebWAnbKSJodqqlsOxJtqYooU9vvk+vcJIcTkg+QAAA7");background-repeat:no-repeat;background-position:left top;position:absolute;z-index:101;left:-12px;height:23px;width:10px;top:-3px;}#ng-callout .ng-arrow-right{background-image:url("data:image/gif;base64,R0lGODlhCwAXAKIAAMzMzO/v7/f39////////wAAAAAAAAAAACH5BAUUAAQALAAAAAALABcAAAMrCLTcoM29yN6k9socs91e5X3EyJloipYrO4ohTMqA0Fn2XVNswJe+H+SXAAA7");background-repeat:no-repeat;background-position:left top;position:absolute;z-index:101;height:23px;width:11px;top:-2px;}#ng-callout{position:absolute;z-index:100;border:2px solid #CCCCCC;background-color:#fff;}#ng-callout .ng-content{padding:10px 10px 10px 10px;color:#333333;}#ng-callout .ng-title{background-color:#CCCCCC;text-align:left;padding-left:8px;padding-bottom:5px;padding-top:2px;font-weight:bold;}.ng-input-indicator-wait{background-image:url("data:image/png;base64,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");background-position:right;background-repeat:no-repeat;}</style>');

@ -1,113 +1,113 @@
(function(J,ga){function t(a,b,c){var d;if(a)if(K(a))for(d in a)d!="prototype"&&d!=rc&&d!=sc&&a.hasOwnProperty(d)&&b.call(c,a[d],d);else if(a.forEach&&a.forEach!==t)a.forEach(b,c);else if(W(a)&&Ba(a.length))for(d=0;d<a.length;d++)b.call(c,a[d],d);else for(d in a)b.call(c,a[d],d);return a}function Za(a,b,c){var d=[],e;for(e in a)d.push(e);d.sort();for(e=0;e<d.length;e++)b.call(c,a[d[e]],d[e]);return d}function $a(a){if(a instanceof aa)if(a.stack)a=a.stack;else if(a.sourceURL)a=a.message+"\n"+a.sourceURL+
":"+a.line;return a}function B(a){t(arguments,function(b){b!==a&&t(b,function(c,d){a[d]=c})});return a}function tc(a,b){return B(new (B(function(){},{prototype:a})),b)}function D(){}function qa(a){return a}function Ma(a){return function(){return a}}function ha(a,b,c){var d;return a[b]||(d=a[b]=function(e,g,f){e=(c||qa)(e);if(I(g))d[e]=B(g,f||{});return d[e]})}function N(a){return typeof a==ra}function I(a){return typeof a!=ra}function W(a){return a!=y&&typeof a==Ab}function G(a){return typeof a==
uc}function Ba(a){return typeof a==vc}function ia(a){return a instanceof Array}function K(a){return typeof a==ja}function Ca(a){return G(a)?a.replace(/^\s*/,"").replace(/\s*$/,""):a}function ab(a,b){this.html=a;this.get=O(b)=="unsafe"?Ma(a):function(){var c=[];Bb(a,Cb(c));return c.join("")}}function wc(a,b,c){var d=[];t(a,function(e,g,f){d.push(b.call(c,e,g,f))});return d}function Db(a,b){for(var c=0;c<a.length;c++)if(b===a[c])return true;return false}function Fa(a,b){for(var c=0;c<a.length;c++)if(b===
a[c])return c;return-1}function xc(a){if(a)switch(a.nodeName){case "OPTION":case "PRE":case "TITLE":return true}return false}function R(a,b){if(b)if(ia(a)){for(;b.length;)b.pop();for(var c=0;c<a.length;c++)b.push(R(a[c]))}else{t(b,function(d,e){delete b[e]});for(c in a)b[c]=R(a[c])}else if(b=a)if(ia(a))b=R(a,[]);else if(a instanceof Date)b=new Date(a.getTime());else if(W(a))b=R(a,{});return b}function Ga(a,b){if(a==b)return true;if(a===null||b===null)return false;var c=typeof a,d;if(c==typeof b&&
c=="object")if(a instanceof Array){if((c=a.length)==b.length){for(d=0;d<c;d++)if(!Ga(a[d],b[d]))return false;return true}}else{c={};for(d in a){if(d.charAt(0)!=="$"&&!K(a[d])&&!Ga(a[d],b[d]))return false;c[d]=true}for(d in b)if(!c[d]&&d.charAt(0)!=="$"&&!K(b[d]))return false;return true}return false}function yc(a){return(a=a&&a[0]&&a[0].nodeName)&&a.charAt(0)!="#"&&!Db(["TR","COL","COLGROUP","TBODY","THEAD","TFOOT"],a)}function sa(a,b,c){for(;!yc(a);)a=a.parent()||C(ga.body);if(a[0].$NG_ERROR!==c)if(a[0].$NG_ERROR=
c){a.addClass(b);a.attr(b,c.message||c)}else{a.removeClass(b);a.removeAttr(b)}}function S(a,b){var c=arguments.length>2?ta.call(arguments,2,arguments.length):[];return typeof b==ja&&!(b instanceof RegExp)?c.length?function(){return arguments.length?b.apply(a,c.concat(ta.call(arguments,0,arguments.length))):b.apply(a,c)}:function(){return arguments.length?b.apply(a,arguments):b.call(a)}:b}function Da(a){if(a&&a.length!==0){a=O(""+a);a=!(a=="f"||a=="0"||a=="false"||a=="no"||a=="n"||a=="[]")}else a=
false;return a}function Eb(a){return(new Fb(bb,Gb,P,Z)).compile(a)}function cb(a){var b={},c,d;t((a||"").split("&"),function(e){if(e){c=e.split("=");d=unescape(c[0]);b[d]=I(c[1])?unescape(c[1]):true}});return b}function Hb(a){var b=[];t(a,function(c,d){b.push(escape(d)+(c===true?"":"="+escape(c)))});return b.length?b.join("&"):""}function db(a){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+").replace(/%24/g,"$").replace(/%2C/gi,
",")}function zc(a,b){Ib();var c=a.getElementsByTagName("script"),d;b=B({ie_compat_id:"ng-ie-compat"},b);for(var e=0;e<c.length;e++)if(d=(c[e].src||"").match(Ac)){b.base_url=d[1];b.ie_compat=d[1]+"angular-ie-compat"+(d[2]||"")+".js";B(b,cb(d[6]));Na(C(c[e]),function(g,f){if(/^ng:/.exec(f)){f=f.substring(3).replace(/-/g,"_");if(f=="autobind")g=true;b[f]=g}})}return b}function Ib(){if(eb=J.jQuery){C=eb;B(eb.fn,{scope:Jb.scope})}else C=fb;E.element=C}function Kb(a,b,c){if(!a){a=new aa("Argument '"+(b||
"?")+"' is "+(c||"required"));J.console&&J.console.log(a.stack);throw a;}}function da(a,b){var c=[];gb(c,a,b?"\n ":y,[]);return c.join("")}function ua(a,b){function c(i){if(G(i)&&i.length===Lb)return hb.toDate(i);else if(ia(i)||W(i))t(i,function(h,j){i[j]=c(h)});return i}if(!G(a))return a;var d,e,g;try{if(b&&JSON&&JSON.parse){d=JSON.parse(a);return c(d)}e=va(a,true);g=e.primary();e.assertAllConsumed();return g()}catch(f){Bc("fromJson error: ",a,f);throw f;}}function gb(a,b,c,d){if(W(b)){if(b===J){a.push("WINDOW");
return}if(b===ga){a.push("DOCUMENT");return}if(Db(d,b)){a.push("RECURSION");return}d.push(b)}if(b===y)a.push(Oa);else if(b instanceof RegExp)a.push(E.String.quoteUnicode(b.toString()));else if(K(b))return;else if(typeof b==Cc)a.push(""+b);else if(Ba(b))isNaN(b)?a.push(Oa):a.push(""+b);else if(G(b))return a.push(E.String.quoteUnicode(b));else if(W(b))if(ia(b)){a.push("[");for(var e=b.length,g=false,f=0;f<e;f++){var i=b[f];g&&a.push(",");!(i instanceof RegExp)&&(K(i)||N(i))?a.push(Oa):gb(a,i,c,d);g=
true}a.push("]")}else if(b instanceof Date)a.push(E.String.quoteUnicode(E.Date.toString(b)));else{a.push("{");c&&a.push(c);e=false;g=c?c+" ":false;f=[];for(i in b)b[i]!==$&&f.push(i);f.sort();for(i=0;i<f.length;i++){var h=f[i],j=b[h];if(typeof j!=ja){if(e){a.push(",");c&&a.push(c)}a.push(E.String.quote(h));a.push(":");gb(a,j,g,d);e=true}}a.push("}")}W(b)&&d.pop()}function ib(a){this.paths=[];this.children=[];this.inits=[];this.priority=a;this.newScope=false}function Fb(a,b,c,d){this.markup=a;this.attrMarkup=
b;this.directives=c;this.widgets=d}function Mb(a,b){var c,d=a[0].childNodes||[],e;for(c=0;c<d.length;c++){var g=e=d[c];Ha(g)=="#text"||b(C(e),c)}}function Na(a,b){var c,d=a[0].attributes||[],e,g,f={};for(c=0;c<d.length;c++){e=d[c];g=e.name;e=e.value;if(ka&&g=="href")e=decodeURIComponent(a[0].getAttribute(g,2));f[g]=e}Za(f,b)}function Ia(a,b,c){if(!b)return a;for(var d=b.split("."),e,g=a,f=d.length,i=0;i<f;i++){e=d[i];if(!e.match(/^[\$\w][\$\w\d]*$/))throw"Expression '"+b+"' is not a valid expression for accesing variables.";
if(a){g=a;a=a[e]}if(N(a)&&e.charAt(0)=="$"){var h=E.Global.typeOf(g);if(e=(h=E[h.charAt(0).toUpperCase()+h.substring(1)])?h[[e.substring(1)]]:$)return a=S(g,e,g)}}if(!c&&K(a))return S(g,a);return a}function jb(a,b,c){b=b.split(".");for(var d=0;b.length>1;d++){var e=b.shift(),g=a[e];if(!g){g={};a[e]=g}a=g}return a[b.shift()]=c}function Nb(a){var b=Ob[a];if(b)return b;var c="var l, fn, t;\n";t(a.split("."),function(d){d=Pb[d]?'["'+d+'"]':"."+d;c+="if(!s) return s;\nl=s;\ns=s"+d+';\nif(typeof s=="function" && !(s instanceof RegExp)) s = function(){ return l'+
d+".apply(l, arguments); };\n";if(d.charAt(1)=="$"){d=d.substr(2);c+='if(!s) {\n t = angular.Global.typeOf(l);\n fn = (angular[t.charAt(0).toUpperCase() + t.substring(1)]||{})["'+d+'"];\n if (fn) s = function(){ return fn.apply(l, [l].concat(Array.prototype.slice.call(arguments, 0, arguments.length))); };\n}\n'}});c+="return s;";b=Function("s",c);b.toString=function(){return c};return Ob[a]=b}function wa(a){if(typeof a===ja)return a;var b=Qb[a];if(!b){b=va(a);var c=b.statements();b.assertAllConsumed();
b=Qb[a]=B(function(){return c(this)},{fnSelf:c})}return b}function la(a,b,c){function d(){}a=d.prototype=a||{};var e=new d,g={sorted:[]},f,i;B(e,{"this":e,$id:Dc++,$parent:a,$bind:S(e,S,e),$get:S(e,Ia,e),$set:S(e,jb,e),$eval:function(h){var j=typeof h,k,l,n;if(j==ra){h=0;for(j=g.sorted.length;h<j;h++){n=g.sorted[h];l=n.length;for(k=0;k<l;k++)e.$tryEval(n[k].fn,n[k].handler)}}else if(j===ja)return h.call(e);else if(j==="string")return wa(h).call(e)},$tryEval:function(h,j){var k=typeof h;try{if(k==
ja)return h.call(e);else if(k=="string")return wa(h).call(e)}catch(l){f&&f.error(l);if(K(j))j(l);else if(j)sa(j,Pa,I(l)?$a(l):l);else K(i)&&i(l)}},$watch:function(h,j,k,l){function n(x){var s=q.call(e),p=o;if(x||p!==s){o=s;e.$tryEval(function(){return j.call(e,s,p)},k)}}var q=wa(h),o=q.call(e);j=wa(j);e.$onEval(Rb,n);if(N(l))l=true;l&&n(true)},$onEval:function(h,j,k){if(!Ba(h)){k=j;j=h;h=0}var l=g[h];if(!l){l=g[h]=[];l.priority=h;g.sorted.push(l);g.sorted.sort(function(n,q){return n.priority-q.priority})}l.push({fn:wa(j),
handler:k})},$become:function(h){if(K(h)){e.constructor=h;t(h.prototype,function(j,k){e[k]=S(e,j)});e.$service.apply(e,[h,e].concat(ta.call(arguments,1,arguments.length)));K(h.prototype.init)&&e.init()}},$new:function(h){var j=la(e);j.$become.apply(e,[h].concat(ta.call(arguments,1,arguments.length)));e.$onEval(j.$eval);return j}});if(!a.$root){e.$root=e;e.$parent=e;(e.$service=Sb(e,b,c))()}f=e.$service("$log");i=e.$service("$exceptionHandler");return e}function Sb(a,b,c){b=b||kb;c=c||{};a=a||{};return function d(e,
g){var f,i;if(G(e)){if(!(e in c)){i=b[e];if(!i)throw"Unknown provider for '"+e+"'.";c[e]=d(i,a)}f=c[e]}else if(ia(e)){f=[];t(e,function(h){f.push(d(h))})}else if(K(e)){f=d(Ec(e));f=e.apply(g,f.concat(ta.call(arguments,2,arguments.length)))}else if(W(e))t(b,function(h,j){h.$eager&&d(j);if(h.$creation)throw new aa("Failed to register service '"+j+"': $creation property is unsupported. Use $eager:true or see release notes.");});else f=d(a);return f}}function Q(a,b,c,d){kb(a,b,{$inject:c,$eager:d})}function Ec(a){Kb(K(a,
void 0,"not a function"));if(!a.$inject){var b=a.$inject=[],c=a.toString().replace(Fc,"").match(Gc);t(c[1].split(Hc),function(d){d.replace(Ic,function(e,g,f,i,h){Kb(b,g,"after non-injectable arg");if(i||h)b.push(f);else b=null})})}return a.$inject}function Jc(a,b){function c(u){return u.indexOf(s)!=-1}function d(){return o+1<a.length?a.charAt(o+1):false}function e(u){return"0"<=u&&u<="9"}function g(u){return"a"<=u&&u<="z"||"A"<=u&&u<="Z"||"_"==u||u=="$"}function f(u){return u=="-"||u=="+"||e(u)}function i(u,
L,z){z=z||o;throw aa("Lexer Error: "+u+" at column"+(I(L)?"s "+L+"-"+o+" ["+a.substring(L,z)+"]":" "+z)+" in expression ["+a+"].");}function h(){for(var u="",L=o;o<a.length;){var z=O(a.charAt(o));if(z=="."||e(z))u+=z;else{var M=d();if(z=="e"&&f(M))u+=z;else if(f(z)&&M&&e(M)&&u.charAt(u.length-1)=="e")u+=z;else if(f(z)&&(!M||!e(M))&&u.charAt(u.length-1)=="e")i("Invalid exponent");else break}o++}u=1*u;n.push({index:L,text:u,json:true,fn:function(){return u}})}function j(){for(var u="",L=o,z;o<a.length;){z=
a.charAt(o);if(z=="."||g(z)||e(z))u+=z;else break;o++}z=lb[u];n.push({index:L,text:u,json:z,fn:z||B(Nb(u),{assign:function(M,ba){return jb(M,u,ba)}})})}function k(u){var L=o;o++;for(var z="",M=u,ba=false;o<a.length;){var T=a.charAt(o);M+=T;if(ba){if(T=="u"){T=a.substring(o+1,o+5);T.match(/[\da-f]{4}/i)||i("Invalid unicode escape [\\u"+T+"]");o+=4;z+=String.fromCharCode(parseInt(T,16))}else{ba=Kc[T];z+=ba?ba:T}ba=false}else if(T=="\\")ba=true;else if(T==u){o++;n.push({index:L,text:M,string:z,json:true,
fn:function(){return z.length==l?E.String.toDate(z):z}});return}else z+=T;o++}i("Unterminated quote",L)}for(var l=b?Lb:-1,n=[],q,o=0,x=[],s,p=":";o<a.length;){s=a.charAt(o);if(c("\"'"))k(s);else if(e(s)||c(".")&&e(d()))h();else if(g(s)){j();if("{,".indexOf(p)!=-1&&x[0]=="{"&&(q=n[n.length-1]))q.json=q.text.indexOf(".")==-1}else if(c("(){}[].,;:")){n.push({index:o,text:s,json:":[,".indexOf(p)!=-1&&c("{[")||c("}]:,")});c("{[")&&x.unshift(s);c("}]")&&x.shift();o++}else if(s==" "||s=="\r"||s=="\t"||s==
"\n"||s=="\u000b"||s=="\u00a0"){o++;continue}else{var A=s+d(),H=lb[s],X=lb[A];if(X){n.push({index:o,text:A,fn:X});o+=2}else if(H){n.push({index:o,text:s,fn:H,json:"[,:".indexOf(p)!=-1&&c("+-")});o+=1}else i("Unexpected next character ",o,o+1)}p=s}return n}function va(a,b){function c(m,r){throw aa("Parse Error: Token '"+r.text+"' "+m+" at column "+(r.index+1)+" of expression ["+a+"] starting at ["+a.substring(r.index)+"].");}function d(){if(z.length===0)throw aa("Unexpected end of expression: "+a);
return z[0]}function e(m,r,v,w){if(z.length>0){var F=z[0],Y=F.text;if(Y==m||Y==r||Y==v||Y==w||!m&&!r&&!v&&!w)return F}return false}function g(m,r,v,w){if(m=e(m,r,v,w)){if(b&&!m.json){index=m.index;c("is not valid json",m)}z.shift();return this.currentToken=m}return false}function f(m){g(m)||c("is unexpected, expecting ["+m+"]",e())}function i(m,r){return function(v){return m(v,r(v))}}function h(m,r,v){return function(w){return r(w,m(w),v(w))}}function j(){z.length!==0&&c("is extra token not part of expression",
z[0])}function k(){for(var m=[];;){z.length>0&&!e("}",")",";","]")&&m.push(mb());if(!g(";"))return function(r){for(var v,w=0;w<m.length;w++){var F=m[w];if(F)v=F(r)}return v}}}function l(){return nb(ea)}function n(){for(var m=q(),r;;)if(r=g("||"))m=h(m,r.fn,q());else return m}function q(){var m=o(),r;if(r=g("&&"))m=h(m,r.fn,q());return m}function o(){var m=x(),r;if(r=g("==","!="))m=h(m,r.fn,o());return m}function x(){var m;m=s();for(var r;r=g("+","-");)m=h(m,r.fn,s());m=m;if(r=g("<",">","<=",">="))m=
h(m,r.fn,x());return m}function s(){for(var m=p(),r;r=g("*","/","%");)m=h(m,r.fn,p());return m}function p(){var m;return g("+")?A():(m=g("-"))?h(L,m.fn,p()):(m=g("!"))?i(m.fn,p()):A()}function A(){var m;if(g("(")){m=mb();f(")");m=m}else if(g("["))m=H();else if(g("{"))m=X();else{var r=g();(m=r.fn)||c("not a primary expression",r)}for(;r=g("(","[",".");)if(r.text==="(")m=T(m);else if(r.text==="[")m=Tb(m);else if(r.text===".")m=Ub(m);else c("IMPOSSIBLE");return m}function H(){var m=[];if(d().text!="]"){do m.push(M());
while(g(","))}f("]");return function(r){for(var v=[],w=0;w<m.length;w++)v.push(m[w](r));return v}}function X(){var m=[];if(d().text!="}"){do{var r=g();r=r.string||r.text;f(":");var v=M();m.push({key:r,value:v})}while(g(","))}f("}");return function(w){for(var F={},Y=0;Y<m.length;Y++){var xa=m[Y],oa=xa.value(w);F[xa.key]=oa}return F}}function u(){var m=g().text;f(":");var r;if(d().text=="{"){f("{");r=k();f("}")}else r=M();return function(){return{name:m,fn:r}}}var L=Ma(0),z=Jc(a,b),M=function(){var m=
n(),r,v;if(v=g("=")){m.assign||c("implies assignment but ["+a.substring(0,v.index)+"] can not be assigned to",v);r=n();return function(w){return m.assign(w,r(w))}}else return m},ba=n,T=function(m){var r=[];if(d().text!=")"){do r.push(M());while(g(","))}f(")");return function(v){for(var w=[],F=0;F<r.length;F++)w.push(r[F](v));F=m(v)||D;return F.apply?F.apply(v,w):F(w[0],w[1],w[2],w[3],w[4])}},Ub=function(m){var r=g().text,v=Nb(r);return B(function(w){return v(m(w))},{assign:function(w,F){return jb(m(w),
r,F)}})},Tb=function(m){var r=M();f("]");return B(function(v){var w=m(v);v=r(v);return w?w[v]:$},{assign:function(v,w){return m(v)[r(v)]=w}})},mb=function(){for(var m=M(),r;;)if(r=g("|"))m=h(m,r.fn,l());else return m},Vb=function(m){var r=g(),v=r.text.split(".");m=m;for(var w,F=0;F<v.length;F++){w=v[F];if(m)m=m[w]}typeof m!=ja&&c("should be a function",r);return m},nb=function(m){for(var r=Vb(m),v=[];;)if(g(":"))v.push(M());else{var w=function(F,Y){for(var xa=[Y],oa=0;oa<v.length;oa++)xa.push(v[oa](F));
return r.apply(F,xa)};return function(){return w}}};if(b){M=n;T=Ub=Tb=ba=mb=Vb=nb=function(){c("is not valid json",{text:a,index:0})}}return{assertAllConsumed:j,assignable:ba,primary:A,statements:k,validator:function(){return nb(ob)},formatter:function(){function m(F){return function(Y,xa){for(var oa=[xa],pb=0;pb<w.length;pb++)oa.push(w[pb](Y));return F.apply(Y,oa)}}var r=g(),v=pa[r.text],w=[];for(v||c("is not a valid formatter.",r);;)if(r=g(":"))w.push(M());else return Ma({format:m(v.format),parse:m(v.parse)})},
filter:l,watch:function(){for(var m=[];z.length>0;){m.push(u());g(";")||j()}j();return function(r){for(var v=0;v<m.length;v++){var w=m[v](r);r.addListener(w.name,w.fn)}}}}}function Wb(a,b){this.template=a+="#";this.defaults=b||{};var c=this.urlParams={};t(a.split(/\W/),function(d){if(d&&a.match(RegExp(":"+d+"\\W")))c[d]=true})}function Qa(a){this.xhr=a}function Lc(a,b,c,d,e){function g(p){try{p.apply(null,ta.call(arguments,1))}finally{k--;if(k===0)for(;l.length;)try{l.pop()()}catch(A){e.error(A)}}}
var f=this,i=a.location,h=a.setTimeout;f.isMock=false;var j=0,k=0,l=[];f.xhr=function(p,A,H,X){if(K(H)){X=H;H=y}k++;if(O(p)=="json"){var u="angular_"+Math.random()+"_"+j++;u=u.replace(/\d\./,"");p=b[0].createElement("script");p.type="text/javascript";p.src=A.replace("JSON_CALLBACK",u);a[u]=function(z){a[u]=$;g(X,200,z)};c.append(p)}else{var L=new d;L.open(p,A,true);L.setRequestHeader("Content-Type","application/x-www-form-urlencoded");L.setRequestHeader("Accept","application/json, text/plain, */*");
L.setRequestHeader("X-Requested-With","XMLHttpRequest");L.onreadystatechange=function(){if(L.readyState==4)g(X,L.status||200,L.responseText)};L.send(H||"")}};f.notifyWhenNoOutstandingRequests=function(p){k===0?p():l.push(p)};var n=[];f.poll=function(){t(n,function(p){p()})};f.addPollFn=function(p){n.push(p);return p};f.startPoller=function(p,A){(function H(){f.poll();A(H,p)})()};f.setUrl=function(p){i.href.match(/#/);p.match(/#/)||(p+="#");i.href=p};f.getUrl=function(){return i.href};f.onHashChange=
function(p){if("onhashchange"in a)C(a).bind("hashchange",p);else{var A=f.getUrl();f.addPollFn(function(){if(A!=f.getUrl()){p();A=f.getUrl()}})}return p};var q=b[0],o={},x="";f.cookies=function(p,A){var H,X,u;if(p)if(A===$)q.cookie=escape(p)+"=;expires=Thu, 01 Jan 1970 00:00:00 GMT";else{if(G(A)){q.cookie=escape(p)+"="+escape(A);H=p.length+A.length+1;H>4096&&e.warn("Cookie '"+p+"' possibly not set or overflowed because it was too large ("+H+" > 4096 bytes)!");o.length>20&&e.warn("Cookie '"+p+"' possibly not set or overflowed because too many cookies were already set ("+
o.length+" > 20 )")}}else{if(q.cookie!==x){x=q.cookie;H=x.split("; ");o={};for(X=0;X<H.length;X++){u=H[X].split("=");if(u.length===2)o[unescape(u[0])]=unescape(u[1])}}return o}};f.defer=function(p,A){k++;h(function(){g(p)},A||0)};var s=D;f.hover=function(p){s=p};f.bind=function(){b.bind("mouseover",function(p){s(C(ka?p.srcElement:p.target),true);return true});b.bind("mouseleave mouseout click dblclick keypress keyup",function(p){s(C(p.target),false);return true})};f.addCss=function(p){var A=C(q.createElement("link"));
A.attr("rel","stylesheet");A.attr("type","text/css");A.attr("href",p);c.append(A)};f.addJs=function(p,A){var H=C(q.createElement("script"));H.attr("type","text/javascript");H.attr("src",p);A&&H.attr("id",A);c.append(H)}}function Bb(a,b){function c(h,j,k,l){j=O(j);if(Xb[j])for(;f.last()&&Yb[f.last()];)d("",f.last());Zb[j]&&f.last()==j&&d("",j);(l=$b[j]||!!l)||f.push(j);var n={};k.replace(Mc,function(q,o,x,s,p){n[o]=qb(x||s||p||"")});b.start&&b.start(j,n,l)}function d(h,j){var k=0,l;if(j=O(j))for(k=
f.length-1;k>=0;k--)if(f[k]==j)break;if(k>=0){for(l=f.length-1;l>=k;l--)b.end&&b.end(f[l]);f.length=k}}var e,g,f=[],i=a;for(f.last=function(){return f[f.length-1]};a;){g=true;if(!f.last()||!ac[f.last()]){if(a.indexOf("<!--")===0){e=a.indexOf("--\>");if(e>=0){b.comment&&b.comment(a.substring(4,e));a=a.substring(e+3);g=false}}else if(Nc.test(a)){if(e=a.match(bc)){a=a.substring(e[0].length);e[0].replace(bc,d);g=false}}else if(Oc.test(a))if(e=a.match(cc)){a=a.substring(e[0].length);e[0].replace(cc,c);
g=false}if(g){e=a.indexOf("<");g=e<0?a:a.substring(0,e);a=e<0?"":a.substring(e);b.chars&&b.chars(qb(g))}}else{a=a.replace(RegExp("(.*)<\\s*\\/\\s*"+f.last()+"[^>]*>","i"),function(h,j){j=j.replace(Pc,"$1").replace(Qc,"$1");b.chars&&b.chars(qb(j));return""});d("",f.last())}if(a==i)throw"Parse Error: "+a;i=a}d()}function ya(a){var b={};a=a.split(",");var c;for(c=0;c<a.length;c++)b[a[c]]=true;return b}function qb(a){rb.innerHTML=a.replace(/</g,"&lt;");return rb.innerText||rb.textContent||""}function dc(a){return a.replace(/&/g,
"&amp;").replace(Rc,function(b){return"&#"+b.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Cb(a){var b=false,c=S(a,a.push);return{start:function(d,e,g){d=O(d);if(!b&&ac[d])b=d;if(!b&&ec[d]==true){c("<");c(d);t(e,function(f,i){var h=O(i);if(Sc[h]==true&&(fc[h]!==true||f.match(Tc))){c(" ");c(i);c('="');c(dc(f));c('"')}});c(g?"/>":">")}},end:function(d){d=O(d);if(!b&&ec[d]==true){c("</");c(d);c(">")}if(d==b)b=false},chars:function(d){b||c(dc(d))}}}function Uc(a){var b={};a=a[0].style;
var c,d;if(typeof a.length=="number")for(c=0;c<a.length;c++){d=a[c];b[d]=a[d]}else for(d in a){c=a[d];if(1*d!=d&&d!="cssText"&&c&&typeof c=="string"&&c!="false")b[d]=c}return b}function fb(a){if(G(a)&&a.charAt(0)!="<")throw new aa("selectors not implemented");return new ma(a)}function ma(a){if(a instanceof ma)return a;else if(G(a)){var b=ga.createElement("div");b.innerHTML="<div>&nbsp;</div>"+a;b.removeChild(b.firstChild);sb(this,b.childNodes);this.remove()}else sb(this,a)}function Ja(a){gc(a);var b=
0;for(a=a.childNodes||[];b<a.length;b++)Ja(a[b])}function gc(a){var b=a[Ra],c=Sa[b];if(c){t(c.bind||{},function(d,e){Vc(a,e,d)});delete Sa[b];a[Ra]=undefined}}function tb(a,b,c){var d=a[Ra];d=Sa[d||-1];if(I(c)){if(!d){a[Ra]=d=Wc++;d=Sa[d]={}}d[b]=c}else return d?d[b]:y}function ub(a,b){var c=" "+b+" ";return(" "+a.className+" ").replace(/[\n\t]/g," ").indexOf(c)>-1}function hc(a,b){a.className=Ca((" "+a.className+" ").replace(/[\n\t]/g," ").replace(" "+b+" ",""))}function ic(a,b){if(!ub(a,b))a.className=
Ca(a.className+" "+b)}function sb(a,b){if(b){b=!b.nodeName&&I(b.length)&&!(b&&b.document&&b.location&&b.alert&&b.setInterval)?b:[b];for(var c=0;c<b.length;c++)b[c].nodeType!=11&&a.push(b[c])}}function za(a,b){E[a]=E[a]||{};t(b,function(c){B(E[a],c)})}function fa(a,b,c){var d="";if(a<0){d="-";a=-a}for(a=""+a;a.length<b;)a="0"+a;if(c)a=a.substr(a.length-b);return d+a}function U(a,b,c,d){return function(e){e=e["get"+a]();if(c>0||e>-c)e+=c;if(e===0&&c==-12)e=12;return fa(e,b,d)}}function Aa(a,b){return{format:a,
parse:b||a}}function jc(a){return I(a)&&a!==y?""+a:a}function vb(a){function b(){d=false;c.$eval()}var c=this,d;return a.isMock?b:function(){if(!d){d=true;a.defer(b,vb.delay)}}}function kc(a){var b=lc[a];if(!b){var c=[];t(Ta(a),function(d){var e=Ua(d);c.push(e?function(g){var f,i=this.$tryEval(e,function(h){f=da(h)});sa(g,Pa,f);return f?f:i}:function(){return d})});lc[a]=b=function(d,e){var g=[],f=this.hasOwnProperty(mc)?this.$element:$;this.$element=d;for(var i=0;i<c.length;i++){var h=c[i].call(this,
d);if(h&&(h.nodeName||h.bind&&h.find))h="";else if(W(h))h=da(h,e);g.push(h)}this.$element=f;return g.join("")}}return b}function wb(a){return function(b,c){var d=c[0].className+" ";return function(e){this.$onEval(function(){if(a(this.$index)){var g=this.$eval(b);if(ia(g))g=g.join(" ");e[0].className=Ca(d+g)}},e)}}}function Ta(a){for(var b=[],c=0,d;(d=a.indexOf("{{",c))>-1;){c<d&&b.push(a.substr(c,d-c));c=d;d=a.indexOf("}}",d);d=d<0?a.length:d+2;b.push(a.substr(c,d-c));c=d}c!=a.length&&b.push(a.substr(c,
a.length-c));return b.length===0?[a]:b}function Ua(a){return(a=a.replace(/\n/gm," ").match(/^\{\{(.*)\}\}$/))?a[1]:y}function Ka(a,b){var c=b.attr("name"),d;if(c){d=va(c).assignable().assign;if(!d)throw new aa("Expression '"+c+"' is not assignable.");return{get:function(){return a.$eval(c)},set:function(e){if(e!==$)return a.$tryEval(function(){d(a,e)},b)}}}}function xb(a,b){var c=Ka(a,b),d=b.attr("ng:format")||Va,e=va(d).formatter()();if(c)return{get:function(){return e.format(a,c.get())},set:function(g){return c.set(e.parse(a,
g))}}}function yb(a,b){function c(){var n=Ca(b.val());if(b[0].disabled||b[0].readOnly){sa(b,La,y);l.markValid(b)}else{var q=tc(a,{$element:b});n=k&&!n?"Required":n?e(q,n):y;sa(b,La,n);(j=n)?l.markInvalid(b):l.markValid(b)}}var d=b.attr("ng:validate")||Va,e=va(d).validator()(),g=b.attr("ng:required"),f=b.attr("ng:format")||Va;f=va(f).formatter()();var i,h,j,k,l=a.$service("$invalidWidgets")||{markValid:D,markInvalid:D};if(!e)throw"Validator named '"+d+"' not found.";i=f.format;h=f.parse;if(g)a.$watch(g,
function(n){k=n;c()});else k=g==="";b.data(zb,c);return{get:function(){j&&sa(b,La,y);try{var n=h(a,b.val());c();return n}catch(q){j=q;sa(b,La,q)}},set:function(n){var q=b.val();n=i(a,n);if(q!=n)b.val(n||"");c()}}}function nc(a,b){var c=b.attr("ng:format")||Va,d=va(c).formatter()();return{get:function(){var e=[];t(b[0].options,function(g){g.selected&&e.push(d.parse(a,g.value))});return e},set:function(e){var g={};t(e,function(f){g[d.format(a,f)]=true});t(b[0].options,function(f){f.selected=g[f.value]})}}}
function oc(){return{get:D,set:D}}function Wa(a){return function(b,c){var d=c.get();if(!d&&I(a))d=R(a);N(b.get())&&I(d)&&b.set(d)}}function Ea(a,b,c,d,e){return B(function(g,f,i){var h=this,j=b(h,i),k=c(h,i),l=i.attr("ng:change")||"",n;if(j){d.call(h,j,k,i);this.$eval(i.attr("ng:init")||"");i.bind(a,function(q){function o(){var x=k.get();if(!e||x!=n){j.set(x);n=j.get();h.$tryEval(l,i);g()}}q.type=="keydown"?f(o):o()});h.$watch(j.get,function(q){if(n!==q)k.set(n=q)})}},{$inject:["$updateView","$defer"]})}
function Xa(a){this.directives(true);this.descend(true);return Xc[O(a[0].type)]||D}if(typeof ga.getAttribute==ra)ga.getAttribute=function(){};var O=function(a){return G(a)?a.toLowerCase():a},Ya=function(a){return G(a)?a.toUpperCase():a},V=function(a){return G(a)?a.replace(/[A-Z]/g,function(b){b=b.charCodeAt(0)|32;return String.fromCharCode(b)}):a},ca=function(a){return G(a)?a.replace(/[a-z]/g,function(b){b=b.charCodeAt(0)&-33;return String.fromCharCode(b)}):a};if("i"!=="I".toLowerCase()){O=V;Ya=ca}var $=
undefined,y=null,mc="$element",zb="$validate",Cc="boolean",ja="function",rc="length",sc="name",Oa="null",vc="number",Ab="object",uc="string",ra="undefined",Pa="ng-exception",La="ng-validation-error",Va="noop",Rb=-1E3,Yc={FIRST:-99999,LAST:99999,WATCH:Rb},aa=J.Error,ka=parseInt((/msie (\d+)/.exec(O(navigator.userAgent))||[])[1],10),C,eb,ta=Array.prototype.slice,Bc=J.console?S(J.console,J.console.error||D):D,E=J.angular||(J.angular={}),bb=ha(E,"markup"),Gb=ha(E,"attrMarkup"),P=ha(E,"directive"),Z=ha(E,
"widget",O),ob=ha(E,"validator"),ea=ha(E,"filter"),pa=ha(E,"formatter"),kb=ha(E,"service");ha(E,"callbacks");var Ha,Ac=/^(|.*\/)angular(-.*?)?(\.min)?.js(\?[^#]*)?(#(.*))?$/,Lb=24;Ha=ka?function(a){a=a.nodeName?a:a[0];return a.scopeName&&a.scopeName!="HTML"?Ya(a.scopeName+":"+a.nodeName):a.nodeName}:function(a){return a.nodeName?a.nodeName:a[0].nodeName};E.toJson=da;E.fromJson=ua;ib.prototype={attach:function(a,b){var c={};this.collectInits(a,c,b);Za(c,function(d){t(d,function(e){e()})})},collectInits:function(a,
b,c){var d=b[this.priority],e=c;d||(b[this.priority]=d=[]);if(this.newScope){e=la(c);c.$onEval(e.$eval);a.data("$scope",e)}t(this.inits,function(j){d.push(function(){e.$tryEval(function(){return e.$service(j,e,a)},a)})});var g=a[0].childNodes,f=this.children,i=this.paths,h=i.length;for(c=0;c<h;c++)f[c].collectInits(C(g[i[c]]),b,e)},addInit:function(a){a&&this.inits.push(a)},addChild:function(a,b){if(b){this.paths.push(a);this.children.push(b)}},empty:function(){return this.inits.length===0&&this.paths.length===
0}};Fb.prototype={compile:function(a){a=C(a);var b=0,c,d=a.parent();if(d&&d[0]){d=d[0];for(var e=0;e<d.childNodes.length;e++)if(d.childNodes[e]==a[0])b=e}c=this.templatize(a,b,0)||new ib;return function(g,f){var i=f?Jb.clone.call(a):a;g=g||la();i.data("$scope",g);g.$element=i;(f||D)(i,g);c.attach(i,g);g.$eval();return g}},templatize:function(a,b,c){var d=this,e,g,f=d.directives,i=true,h=true,j=Ha(a),k=j.indexOf(":")>0?O(j).replace(":","-"):"",l,n={compile:S(d,d.compile),descend:function(s){if(I(s))i=
s;return i},directives:function(s){if(I(s))h=s;return h},scope:function(s){if(I(s))l.newScope=l.newScope||s;return l.newScope}};try{c=a.attr("ng:eval-order")||c||0}catch(q){c=c||0}a.addClass(k);if(G(c))c=Yc[Ya(c)]||parseInt(c,10);l=new ib(c);Na(a,function(s,p){if(!e)if(e=d.widgets("@"+p)){a.addClass("ng-attr-widget");e=S(n,e,s,a)}});if(!e)if(e=d.widgets(j)){k&&a.addClass("ng-widget");e=S(n,e,a)}if(e){h=i=false;j=a.parent();l.addInit(e.call(n,a));if(j&&j[0])a=C(j[0].childNodes[b])}if(i)for(var o=0,
x=a[0].childNodes;o<x.length;o++)Ha(x[o])=="#text"&&t(d.markup,function(s){if(o<x.length){var p=C(x[o]);s.call(n,p.text(),p,a)}});if(h){Na(a,function(s,p){t(d.attrMarkup,function(A){A.call(n,s,p,a)})});Na(a,function(s,p){if(g=f[p]){a.addClass("ng-directive");l.addInit(f[p].call(n,s,a))}})}i&&Mb(a,function(s,p){l.addChild(p,d.templatize(s,p,c))});return l.empty()?y:l}};var Dc=0,Ob={},Qb={},Pb={};t("abstract,boolean,break,byte,case,catch,char,class,const,continue,debugger,default,delete,do,double,else,enum,export,extends,false,final,finally,float,for,function,goto,if,implements,import,ininstanceof,intinterface,long,native,new,null,package,private,protected,public,return,short,static,super,switch,synchronized,this,throw,throws,transient,true,try,typeof,var,volatile,void,undefined,while,with".split(/,/),
function(a){Pb[a]=true});var Gc=/^function\s*[^\(]*\(([^\)]*)\)/,Hc=/,/,Ic=/^\s*(((\$?).+?)(_?))\s*$/,Fc=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,lb={"null":function(){return y},"true":function(){return true},"false":function(){return false},$undefined:D,"+":function(a,b,c){return(I(b)?b:0)+(I(c)?c:0)},"-":function(a,b,c){return(I(b)?b:0)-(I(c)?c:0)},"*":function(a,b,c){return b*c},"/":function(a,b,c){return b/c},"%":function(a,b,c){return b%c},"^":function(a,b,c){return b^c},"=":D,"==":function(a,b,c){return b==
c},"!=":function(a,b,c){return b!=c},"<":function(a,b,c){return b<c},">":function(a,b,c){return b>c},"<=":function(a,b,c){return b<=c},">=":function(a,b,c){return b>=c},"&&":function(a,b,c){return b&&c},"||":function(a,b,c){return b||c},"&":function(a,b,c){return b&c},"|":function(a,b,c){return c(a,b)},"!":function(a,b){return!b}},Kc={n:"\n",f:"\u000c",r:"\r",t:"\t",v:"\u000b","'":"'",'"':'"'};Wb.prototype={url:function(a){var b=this,c=this.template,d;a=a||{};t(this.urlParams,function(g,f){d=db(a[f]||
b.defaults[f]||"");c=c.replace(RegExp(":"+f+"(\\W)"),d+"$1")});c=c.replace(/\/?#$/,"");var e=[];Za(a,function(g,f){b.urlParams[f]||e.push(db(f)+"="+db(g))});c=c.replace(/\/*$/,"");return c+(e.length?"?"+e.join("&"):"")}};Qa.DEFAULT_ACTIONS={get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:true},remove:{method:"DELETE"},"delete":{method:"DELETE"}};Qa.prototype={route:function(a,b,c){function d(i){var h={};t(b||{},function(j,k){h[k]=j.charAt&&j.charAt(0)=="@"?Ia(i,j.substr(1)):j});
return h}function e(i){R(i||{},this)}var g=this,f=new Wb(a);c=B({},Qa.DEFAULT_ACTIONS,c);t(c,function(i,h){var j=i.method=="POST"||i.method=="PUT";e[h]=function(k,l,n){var q={},o,x=D;switch(arguments.length){case 3:x=n;case 2:if(K(l))x=l;else{q=k;o=l;break}case 1:if(K(k))x=k;else if(j)o=k;else q=k;break;case 0:break;default:throw"Expected between 0-3 arguments [params, data, callback], got "+arguments.length+" arguments.";}var s=this instanceof e?this:i.isArray?[]:new e(o);g.xhr(i.method,f.url(B({},
i.params||{},d(o),q)),o,function(p,A){if(p==200){if(i.isArray){s.length=0;t(A,function(H){s.push(new e(H))})}else R(A,s);(x||D)(s)}else throw{status:p,response:A,message:p+": "+A};},i.verifyCache);return s};e.bind=function(k){return g.route(a,B({},b,k),c)};e.prototype["$"+h]=function(k,l){var n=d(this),q=D;switch(arguments.length){case 2:n=k;q=l;case 1:if(typeof k==ja)q=k;else n=k;case 0:break;default:throw"Expected between 1-2 arguments [params, callback], got "+arguments.length+" arguments.";}e[h].call(this,
n,j?this:$,q)}});return e}};var Zc=J.XMLHttpRequest||function(){try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(b){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(c){}throw new aa("This browser does not support XMLHttpRequest.");},cc=/^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/,bc=/^<\s*\/\s*([\w:-]+)[^>]*>/,Mc=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,
Oc=/^</,Nc=/^<\s*\//,Pc=/<!--(.*?)--\>/g,Qc=/<!\[CDATA\[(.*?)]]\>/g,Tc=/^((ftp|https?):\/\/|mailto:|#)/,Rc=/([^\#-~| |!])/g,$b=ya("area,br,col,hr,img"),Xb=ya("address,blockquote,center,dd,del,dir,div,dl,dt,hr,ins,li,map,menu,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul"),Yb=ya("a,abbr,acronym,b,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,q,s,samp,small,span,strike,strong,sub,sup,tt,u,var"),Zb=ya("colgroup,dd,dt,li,p,td,tfoot,th,thead,tr"),ac=ya("script,style"),ec=B({},$b,Xb,
Yb,Zb),fc=ya("background,href,longdesc,src,usemap"),Sc=B({},fc,ya("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,span,start,summary,target,title,type,valign,value,vspace,width")),rb=ga.createElement("pre"),Sa={},Ra="ng-"+(new Date).getTime(),Wc=1,$c=J.document.addEventListener?function(a,b,c){a.addEventListener(b,c,false)}:
function(a,b,c){a.attachEvent("on"+b,c)},Vc=J.document.removeEventListener?function(a,b,c){a.removeEventListener(b,c,false)}:function(a,b,c){a.detachEvent("on"+b,c)};ka&&B(ma.prototype,{text:function(a){var b=this[0];if(b.nodeType==3){if(I(a))b.nodeValue=a;return b.nodeValue}else{if(I(a))b.innerText=a;return b.innerText}}});var Jb=ma.prototype=B([],{ready:function(a){function b(){if(!c){c=true;a()}}var c=false;this.bind("DOMContentLoaded",b);fb(J).bind("load",b)},toString:function(){var a=[];t(this,
function(b){a.push(""+b)});return"["+a.join(", ")+"]"}});t({data:tb,scope:function(a){for(var b;a&&!(b=C(a).data("$scope"));)a=a.parentNode;return b},removeAttr:function(a,b){a.removeAttribute(b)},hasClass:ub,css:function(a,b,c){if(I(c))a.style[b]=c;else return a.style[b]},attr:function(a,b,c){if(I(c))a.setAttribute(b,c);else if(a.getAttribute)return a.getAttribute(b,2)},text:B(ka?function(a,b){if(a.nodeType==3){if(N(b))return a.nodeValue;a.nodeValue=b}else{if(N(b))return a.innerText;a.innerText=
b}}:function(a,b){if(N(b))return a.textContent;a.textContent=b},{$dv:""}),val:function(a,b){if(N(b))return a.value;a.value=b},html:function(a,b){if(N(b))return a.innerHTML;for(var c=0,d=a.childNodes;c<d.length;c++)Ja(d[c]);a.innerHTML=b}},function(a,b){ma.prototype[b]=function(c,d){if((a.length==2?c:d)===undefined)if(W(c)){for(var e=0;e<this.length;e++)for(var g in c)a(this[e],g,c[g]);return this}else{if(this.length)return a(this[0],c,d)}else{for(e=0;e<this.length;e++)a(this[e],c,d);return this}return a.$dv}});
t({removeData:gc,dealoc:Ja,bind:function(a,b,c){var d=tb(a,"bind"),e;d||tb(a,"bind",d={});t(b.split(" "),function(g){e=d[g];if(!e){d[g]=e=function(f){if(!f.preventDefault)f.preventDefault=function(){f.returnValue=false};if(!f.stopPropagation)f.stopPropagation=function(){f.cancelBubble=true};t(e.fns,function(i){i.call(a,f)})};e.fns=[];$c(a,g,e)}e.fns.push(c)})},replaceWith:function(a,b){var c,d=a.parentNode;Ja(a);t(new ma(b),function(e){c?d.insertBefore(e,c.nextSibling):d.replaceChild(e,a);c=e})},
children:function(a){var b=[];t(a.childNodes,function(c){c.nodeName!="#text"&&b.push(c)});return b},append:function(a,b){t(new ma(b),function(c){a.appendChild(c)})},remove:function(a){Ja(a);var b=a.parentNode;b&&b.removeChild(a)},after:function(a,b){var c=a,d=a.parentNode;t(new ma(b),function(e){d.insertBefore(e,c.nextSibling);c=e})},addClass:ic,removeClass:hc,toggleClass:function(a,b,c){if(N(c))c=!ub(a,b);(c?ic:hc)(a,b)},parent:function(a){return a.parentNode||null},next:function(a){return a.nextSibling},
find:function(a,b){return a.getElementsByTagName(b)},clone:function(a){return a.cloneNode(true)}},function(a,b){ma.prototype[b]=function(c,d){for(var e,g=0;g<this.length;g++)if(e==undefined){e=a(this[g],c,d);if(e!==undefined)e=C(e)}else sb(e,a(this[g],c,d));return e==undefined?this:e}});V={typeOf:function(a){if(a===y)return Oa;var b=typeof a;if(b==Ab){if(a instanceof Array)return"array";if(a instanceof Date)return"date";if(a.nodeType==1)return"element"}return b}};ca={copy:R,size:function(a){var b=
0,c;if(a)if(Ba(a.length))return a.length;else if(W(a))for(c in a)b++;return b},equals:Ga};var ad={extend:B},bd={indexOf:Fa,sum:function(a,b){for(var c=E.Function.compile(b),d=0,e=0;e<a.length;e++){var g=1*c(a[e]);isNaN(g)||(d+=g)}return d},remove:function(a,b){var c=Fa(a,b);c>=0&&a.splice(c,1);return b},filter:function(a,b){var c=[];c.check=function(h){for(var j=0;j<c.length;j++)if(!c[j](h))return false;return true};var d=function(h,j){if(j.charAt(0)==="!")return!d(h,j.substr(1));switch(typeof h){case "boolean":case "number":case "string":return(""+
h).toLowerCase().indexOf(j)>-1;case "object":for(var k in h)if(k.charAt(0)!=="$"&&d(h[k],j))return true;return false;case "array":for(k=0;k<h.length;k++)if(d(h[k],j))return true;return false;default:return false}};switch(typeof b){case "boolean":case "number":case "string":b={$:b};case "object":for(var e in b)e=="$"?function(){var h=(""+b[e]).toLowerCase();h&&c.push(function(j){return d(j,h)})}():function(){var h=e,j=(""+b[e]).toLowerCase();j&&c.push(function(k){return d(Ia(k,h),j)})}();break;case ja:c.push(b);
break;default:return a}for(var g=[],f=0;f<a.length;f++){var i=a[f];c.check(i)&&g.push(i)}return g},add:function(a,b){a.push(N(b)?{}:b);return a},count:function(a,b){if(!b)return a.length;var c=E.Function.compile(b),d=0;t(a,function(e){c(e)&&d++});return d},orderBy:function(a,b,c){function d(i,h){return Da(h)?function(j,k){return i(k,j)}:i}function e(i,h){var j=typeof i,k=typeof h;if(j==k){if(j=="string")i=i.toLowerCase();if(j=="string")h=h.toLowerCase();if(i===h)return 0;return i<h?-1:1}else return j<
k?-1:1}b=ia(b)?b:[b];b=wc(b,function(i){var h=false,j=i||qa;if(G(i)){if(i.charAt(0)=="+"||i.charAt(0)=="-"){h=i.charAt(0)=="-";i=i.substring(1)}j=wa(i).fnSelf}return d(function(k,l){return e(j(k),j(l))},h)});for(var g=[],f=0;f<a.length;f++)g.push(a[f]);return g.sort(d(function(i,h){for(var j=0;j<b.length;j++){var k=b[j](i,h);if(k!==0)return k}return 0},c))},limitTo:function(a,b){b=parseInt(b,10);var c=[],d,e;if(b>0){d=0;e=b}else{d=a.length+b;e=a.length}for(;d<e;d++)c.push(a[d]);return c}},cd=/^(\d{4})-(\d\d)-(\d\d)(?:T(\d\d)(?:\:(\d\d)(?:\:(\d\d)(?:\.(\d{3}))?)?)?Z)?$/,
hb={quote:function(a){return'"'+a.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v")+'"'},quoteUnicode:function(a){a=E.String.quote(a);for(var b=[],c=0;c<a.length;c++){var d=a.charCodeAt(c);if(d<128)b.push(a.charAt(c));else{d="000"+d.toString(16);b.push("\\u"+d.substring(d.length-4))}}return b.join("")},toDate:function(a){var b;if(G(a)&&(b=a.match(cd))){a=new Date(0);a.setUTCFullYear(b[1],b[2]-1,b[3]);
a.setUTCHours(b[4]||0,b[5]||0,b[6]||0,b[7]||0);return a}return a}},pc={toString:function(a){return!a?a:a.toISOString?a.toISOString():fa(a.getUTCFullYear(),4)+"-"+fa(a.getUTCMonth()+1,2)+"-"+fa(a.getUTCDate(),2)+"T"+fa(a.getUTCHours(),2)+":"+fa(a.getUTCMinutes(),2)+":"+fa(a.getUTCSeconds(),2)+"."+fa(a.getUTCMilliseconds(),3)+"Z"}};za("Global",[V]);za("Collection",[V,ca]);za("Array",[V,ca,bd]);za("Object",[V,ca,ad]);za("String",[V,hb]);za("Date",[V,pc]);E.Date.toString=pc.toString;za("Function",[V,
ca,{compile:function(a){return K(a)?a:a?wa(a).fnSelf:qa}}]);ea.currency=function(a){this.$element.toggleClass("ng-format-negative",a<0);return"$"+ea.number.apply(this,[a,2])};ea.number=function(a,b){if(isNaN(a)||!isFinite(a))return"";b=typeof b==ra?2:b;var c=a<0;a=Math.abs(a);var d=""+Math.round(a*Math.pow(10,b)),e=d.substring(0,d.length-b);e=e||"0";var g=d.substring(d.length-b);d=c?"-":"";for(c=0;c<e.length;c++){if((e.length-c)%3===0&&c!==0)d+=",";d+=e.charAt(c)}if(b>0){for(e=g.length;e<b;e++)g+=
"0";d+="."+g.substring(0,b)}return d};var dd={yyyy:U("FullYear",4),yy:U("FullYear",2,0,true),MM:U("Month",2,1),M:U("Month",1,1),dd:U("Date",2),d:U("Date",1),HH:U("Hours",2),H:U("Hours",1),hh:U("Hours",2,-12),h:U("Hours",1,-12),mm:U("Minutes",2),m:U("Minutes",1),ss:U("Seconds",2),s:U("Seconds",1),a:function(a){return a.getHours()<12?"am":"pm"},Z:function(a){a=a.getTimezoneOffset();return fa(a/60,2)+fa(Math.abs(a%60),2)}},ed=/([^yMdHhmsaZ]*)(y+|M+|d+|H+|h+|m+|s+|a|Z)(.*)/,fd=/^\d+$/;ea.date=function(a,
b){if(G(a))a=fd.test(a)?parseInt(a,10):hb.toDate(a);if(Ba(a))a=new Date(a);if(!(a instanceof Date))return a;var c=a.toLocaleDateString(),d;if(b&&G(b)){c="";for(var e=[],g;b;)if(g=ed.exec(b)){e=e.concat(ta.call(g,1,g.length));b=e.pop()}else{e.push(b);b=null}t(e,function(f){d=dd[f];c+=d?d(a):f})}return c};ea.json=function(a){this.$element.addClass("ng-monospace");return da(a,true)};ea.lowercase=O;ea.uppercase=Ya;ea.html=function(a,b){return new ab(a,b)};ea.linky=function(a){if(!a)return a;for(var b=
/((ftp|https?):\/\/|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s\.\;\,\(\)\{\}\<\>]/,c=a,d=[],e=Cb(d),g,f;a=c.match(b);){g=a[0];if(a[2]==a[3])g="mailto:"+g;f=a.index;e.chars(c.substr(0,f));e.start("a",{href:g});e.chars(a[0].replace(/^mailto:/,""));e.end("a");c=c.substring(f+a[0].length)}e.chars(c);return new ab(d.join(""))};var gd=/^\s*[-+]?\d*(\.\d*)?\s*$/;pa.noop=Aa(qa,qa);pa.json=Aa(da,function(a){return ua(a||"null")});pa["boolean"]=Aa(jc,Da);pa.number=Aa(jc,function(a){if(a==y||gd.exec(a))return a===
y||a===""?y:1*a;else throw"Not a number";});pa.list=Aa(function(a){return a?a.join(", "):a},function(a){var b=[];t((a||"").split(","),function(c){(c=Ca(c))&&b.push(c)});return b});pa.trim=Aa(function(a){return a?Ca(""+a):""});pa.index=Aa(function(a,b){return""+Fa(b||[],a)},function(a,b){return(b||[])[a]});B(ob,{noop:function(){return y},regexp:function(a,b,c){return a.match(b)?y:c||"Value does not match expected format "+b+"."},number:function(a,b,c){var d=1*a;if(d==a){if(typeof b!=ra&&d<b)return"Value can not be less than "+
b+".";if(typeof b!=ra&&d>c)return"Value can not be greater than "+c+".";return y}else return"Not a number"},integer:function(a,b,c){if(b=ob.number(a,b,c))return b;if(!(""+a).match(/^\s*[\d+]*\s*$/)||a!=Math.round(a))return"Not a whole number";return y},date:function(a){var b=(a=/^(\d\d?)\/(\d\d?)\/(\d\d\d\d)$/.exec(a))?new Date(a[3],a[1]-1,a[2]):0;return b&&b.getFullYear()==a[3]&&b.getMonth()==a[1]-1&&b.getDate()==a[2]?y:"Value is not a date. (Expecting format: 12/31/2009)."},email:function(a){if(a.match(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/))return y;
return"Email needs to be in username@host.com format."},phone:function(a){if(a.match(/^1\(\d\d\d\)\d\d\d-\d\d\d\d$/))return y;if(a.match(/^\+\d{2,3} (\(\d{1,5}\))?[\d ]+\d$/))return y;return"Phone number needs to be in 1(987)654-3210 format in North America or +999 (123) 45678 906 internationaly."},url:function(a){if(a.match(/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/))return y;return"URL needs to be in http://server[:port]/path format."},json:function(a){try{ua(a);
return y}catch(b){return b.toString()}},asynchronous:function(a,b,c){if(a){var d=this,e=d.$element,g=e.data("$asyncValidator");g||e.data("$asyncValidator",g={inputs:{}});g.current=a;var f=g.inputs[a],i=d.$service("$invalidWidgets");if(f)f.inFlight?i.markInvalid(d.$element):(c||D)(f.response);else{g.inputs[a]=f={inFlight:true};i.markInvalid(d.$element);e.addClass("ng-input-indicator-wait");b(a,function(h,j){f.response=j;f.error=h;f.inFlight=false;if(g.current==a){e.removeClass("ng-input-indicator-wait");
i.markValid(e)}e.data(zb)();d.$service("$updateView")()})}return f.error}}});Q("$cookieStore",function(a){return{get:function(b){return ua(a[b])},put:function(b,c){a[b]=da(c)},remove:function(b){delete a[b]}}},["$cookies"]);Q("$cookies",function(a){var b=this,c={},d={},e,g=false;a.addPollFn(function(){var f=a.cookies();if(e!=f){e=f;R(f,d);R(f,c);g&&b.$eval()}})();g=true;this.$onEval(99999,function(){var f,i,h;for(f in d)N(c[f])&&a.cookies(f,$);for(f in c){i=c[f];if(G(i)){if(i!==d[f]){a.cookies(f,
i);h=true}}else if(I(d[f]))c[f]=d[f];else delete c[f]}if(h){i=a.cookies();for(f in c)if(c[f]!==i[f])if(N(i[f]))delete c[f];else c[f]=i[f]}});return c},["$browser"]);Q("$defer",function(a,b,c){return function(d,e){a.defer(function(){try{d()}catch(g){b(g)}finally{c()}},e)}},["$browser","$exceptionHandler","$updateView"]);Q("$document",function(a){return C(a.document)},["$window"]);Q("$exceptionHandler",function(a){return function(b){a.error(b)}},["$log"]);Q("$hover",function(a,b){var c,d,e=C(b[0].body);
a.hover(function(g,f){if(f&&(d=g.attr(Pa)||g.attr(La))){if(!c){c={callout:C('<div id="ng-callout"></div>'),arrow:C("<div></div>"),title:C('<div class="ng-title"></div>'),content:C('<div class="ng-content"></div>')};c.callout.append(c.arrow);c.callout.append(c.title);c.callout.append(c.content);e.append(c.callout)}var i=e[0].getBoundingClientRect(),h=g[0].getBoundingClientRect();i=i.right-h.right-10;c.title.text(g.hasClass("ng-exception")?"EXCEPTION:":"Validation error...");c.content.text(d);if(i<
300){c.arrow.addClass("ng-arrow-right");c.arrow.css({left:"301px"});c.callout.css({position:"fixed",left:h.left-10-300-4+"px",top:h.top-3+"px",width:"300px"})}else{c.arrow.addClass("ng-arrow-left");c.callout.css({position:"fixed",left:h.right+10+"px",top:h.top-3+"px",width:"300px"})}}else if(c){c.callout.remove();c=y}})},["$browser","$document"],true);Q("$invalidWidgets",function(){function a(c){if(c==J.document)return false;c=c.parentNode;return!c||a(c)}var b=[];b.markValid=function(c){c=Fa(b,c);
c!=-1&&b.splice(c,1)};b.markInvalid=function(c){Fa(b,c)===-1&&b.push(c)};b.visible=function(){var c=0;t(b,function(d){var e=c;d=d[0].getBoundingClientRect();var g=d.height||d.bottom||0-d.top||0;c=e+((d.width||d.right||0-d.left||0)>0&&g>0?1:0)});return c};this.$onEval(99999,function(){for(var c=0;c<b.length;){var d=b[c];if(a(d[0])){b.splice(c,1);d.dealoc&&d.dealoc()}else c++}});return b});var hd=/^(file|ftp|http|https):\/\/(\w+:{0,1}\w*@)?([\w\.-]*)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,id=
/^([^\?]*)?(\?([^\?]*))?$/,qc={http:80,https:443,ftp:21};Q("$location",function(a){function b(k){if(G(k)){var l=B,n=h,q={},o=hd.exec(k);if(o){q.href=k.replace(/#$/,"");q.protocol=o[1];q.host=o[3]||"";q.port=o[5]||qc[q.protocol]||y;q.path=o[6]||"";q.search=cb(o[8]);q.hash=o[10]||"";B(q,f(q.hash))}l(n,q)}else{if(I(k.hash))B(k,G(k.hash)?f(k.hash):k.hash);B(h,k);if(I(k.hashPath||k.hashSearch))h.hash=g(h);h.href=e(h)}}function c(k,l){var n={};if(G(k)){n.hashPath=k;n.hashSearch=l||{}}else n.hashSearch=
k;n.hash=g(n);b({hash:n})}function d(){if(!Ga(h,j)){if(h.href==j.href)if(h.hash!=j.hash){var k=f(h.hash);c(k.hashPath,k.hashSearch)}else{h.hash=g(h);h.href=e(h)}b(h.href)}}function e(k){var l=Hb(k.search),n=k.port==qc[k.protocol]?y:k.port;return k.protocol+"://"+k.host+(n?":"+n:"")+k.path+(l?"?"+l:"")+(k.hash?"#"+k.hash:"")}function g(k){var l=Hb(k.hashSearch);return escape(k.hashPath).replace(/%21/gi,"!").replace(/%3A/gi,":").replace(/%24/gi,"$")+(l?"?"+l:"")}function f(k){var l={},n=id.exec(k);
if(n){l.hash=k;l.hashPath=unescape(n[1]||"");l.hashSearch=cb(n[3])}return l}var i=this,h={update:b,updateHash:c},j={};a.onHashChange(function(){b(a.getUrl());R(h,j);i.$eval()})();this.$onEval(-99999,d);this.$onEval(99999,function(){d();if(a.getUrl()!=h.href){a.setUrl(h.href);R(h,j)}});return h},["$browser"]);Q("$log",function(a){function b(c){var d=a.console||{},e=d[c]||d.log||D;return e.apply?function(){var g=[];t(arguments,function(f){g.push($a(f))});return e.apply(d,g)}:e}return{log:b("log"),warn:b("warn"),
info:b("info"),error:b("error")}},["$window"]);Q("$resource",function(a){a=new Qa(a);return S(a,a.route)},["$xhr.cache"]);Q("$route",function(a,b){var c={},d=[],e=function(h,j,k){var l="^"+j.replace(/[\.\\\(\)\^\$]/g,"$1")+"$",n=[],q={};t(j.split(/\W/),function(x){if(x){var s=RegExp(":"+x+"([\\W])");if(l.match(s)){l=l.replace(s,"([^/]*)$1");n.push(x)}}});var o=h.match(RegExp(l));if(o){t(n,function(x,s){q[x]=o[s+1]});k&&this.$set(k,q)}return o?q:y},g=this,f=0,i={routes:c,onChange:function(h){d.push(h);
return h},parent:function(h){if(h)g=h},when:function(h,j){if(N(h))return c;var k=c[h];k||(k=c[h]={});j&&B(k,j);f++;return k},otherwise:function(h){i.when(null,h)},reload:function(){f++}};this.$watch(function(){return f+a.hash},function(){var h,j,k,l,n,q;i.current=y;t(c,function(o,x){if(!k)if(k=e(a.hashPath,x))j=o});if(j=j||c[y]){if(j.redirectTo){if(G(j.redirectTo)){q={hashPath:"",hashSearch:B({},a.hashSearch,k)};t(j.redirectTo.split(":"),function(o,x){if(x==0)q.hashPath+=o;else{l=o.match(/(\w+)(.*)/);
n=l[1];q.hashPath+=k[n]||a.hashSearch[n];q.hashPath+=l[2]||"";delete q.hashSearch[n]}})}else q={hash:j.redirectTo(k,a.hash,a.hashPath,a.hashSearch)};a.update(q);b();return}h=la(g);i.current=B({},j,{scope:h,params:B({},a.hashSearch,k)})}t(d,g.$tryEval);h&&h.$become(i.current.controller)});return i},["$location","$updateView"]);vb.delay=25;Q("$updateView",vb,["$browser"]);Q("$window",S(J,qa,J));Q("$xhr.bulk",function(a,b,c){function d(g,f,i,h){if(K(i)){h=i;i=y}var j;t(d.urls,function(k){if(K(k.match)?
k.match(f):k.match.exec(f))j=k});if(j){if(!j.requests)j.requests=[];j.requests.push({method:g,url:f,data:i,callback:h})}else a(g,f,i,h)}var e=this;d.urls={};d.flush=function(g){t(d.urls,function(f,i){var h=f.requests;if(h&&h.length){f.requests=[];f.callbacks=[];a("POST",i,{requests:h},function(j,k){t(k,function(l,n){try{l.status==200?(h[n].callback||D)(l.status,l.response):b(h[n],l)}catch(q){c.error(q)}});(g||D)()});e.$eval()}})};this.$onEval(99999,d.flush);return d},["$xhr","$xhr.error","$log"]);
Q("$xhr.cache",function(a,b,c){function d(g,f,i,h,j){if(K(i)){h=i;i=y}if(g=="GET"){var k;if(k=d.data[f]){b(function(){h(200,R(k.value))});if(!j)return}if(j=e[f])j.callbacks.push(h);else{e[f]={callbacks:[h]};d.delegate(g,f,i,function(l,n){if(l==200)d.data[f]={value:n};var q=e[f].callbacks;delete e[f];t(q,function(o){try{(o||D)(l,R(n))}catch(x){c.error(x)}})})}}else{d.data={};d.delegate(g,f,i,h)}}var e={};d.data={};d.delegate=a;return d},["$xhr.bulk","$defer","$log"]);Q("$xhr.error",function(a){return function(b,
c){a.error("ERROR: XHR: "+b.url,b,c)}},["$log"]);Q("$xhr",function(a,b,c){var d=this;return function(e,g,f,i){if(K(f)){i=f;f=y}if(f&&W(f))f=da(f);a.xhr(e,g,f,function(h,j){try{if(G(j)){if(j.match(/^\)\]\}',\n/))j=j.substr(6);if(/^\s*[\[\{]/.exec(j)&&/[\}\]]\s*$/.exec(j))j=ua(j,true)}h==200?i(h,j):b({method:e,url:g,data:f,callback:i},{status:h,body:j})}catch(k){c.error(k)}finally{d.$eval()}})}},["$browser","$xhr.error","$log"]);P("ng:init",function(a){return function(b){this.$tryEval(a,b)}});P("ng:controller",
function(a){this.scope(true);return function(){var b=Ia(J,a,true)||Ia(this,a,true);if(!b)throw"Can not find '"+a+"' controller.";if(!K(b))throw"Reference '"+a+"' is not a class.";this.$become(b)}});P("ng:eval",function(a){return function(b){this.$onEval(a,b)}});P("ng:bind",function(a,b){b.addClass("ng-binding");return function(c){var d=D,e=D;this.$onEval(function(){var g,f,i,h,j;h=this.hasOwnProperty(mc)?this.$element:$;this.$element=c;f=this.$tryEval(a,function(k){g=$a(k)});this.$element=h;if(h=
f instanceof ab)f=(i=f).html;if(!(d===f&&e==g)){j=f&&(f.nodeName||f.bind&&f.find);if(!h&&!j&&W(f))f=da(f,true);if(f!=d||g!=e){d=f;e=g;sa(c,Pa,g);if(g)f=g;if(h)c.html(i.get());else if(j){c.html("");c.append(f)}else c.text(f==$?"":f)}}},c)}});var lc={};P("ng:bind-template",function(a,b){b.addClass("ng-binding");var c=kc(a);return function(d){var e;this.$onEval(function(){var g=c.call(this,d,true);if(g!=e){d.text(g);e=g}},d)}});var jd={disabled:"disabled",readonly:"readOnly",checked:"checked",selected:"selected"};
P("ng:bind-attr",function(a){return function(b){var c={},d=b.data("$update")||D;this.$onEval(function(){var e=this.$eval(a),g=D,f;for(f in e){var i=kc(e[f]).call(this,b),h=jd[O(f)];if(c[f]!==i){c[f]=i;if(h){if(Da(i)){b.attr(h,h);b.attr("ng-"+h,i)}else{b.removeAttr(h);b.removeAttr("ng-"+h)}(b.data(zb)||D)()}else b.attr(f,i);g=d}}g()},b)}});P("ng:click",function(a){return B(function(b,c){var d=this;c.bind("click",function(e){d.$tryEval(a,c);b();e.stopPropagation()})},{$inject:["$updateView"]})});P("ng:submit",
function(a){return B(function(b,c){var d=this;c.bind("submit",function(e){d.$tryEval(a,c);b();e.preventDefault()})},{$inject:["$updateView"]})});P("ng:class",wb(function(){return true}));P("ng:class-odd",wb(function(a){return a%2===0}));P("ng:class-even",wb(function(a){return a%2===1}));P("ng:show",function(a){return function(b){this.$onEval(function(){b.css("display",Da(this.$eval(a))?"":"none")},b)}});P("ng:hide",function(a){return function(b){this.$onEval(function(){b.css("display",Da(this.$eval(a))?
"none":"")},b)}});P("ng:style",function(a){return function(b){var c=Uc(b);this.$onEval(function(){var d=this.$eval(a)||{},e,g={};for(e in d){if(c[e]===$)c[e]="";g[e]=d[e]}for(e in c)g[e]=g[e]||c[e];b.css(g)},b)}});bb("{{}}",function(a,b,c){var d=Ta(a);if(d.length>1||Ua(d[0])!==y)if(xc(c[0]))c.attr("ng:bind-template",a);else{var e=b,g;t(Ta(a),function(f){var i=Ua(f);if(i){g=C("<span>");g.attr("ng:bind",i)}else g=C(ga.createTextNode(f));if(ka&&f.charAt(0)==" "){g=C("<span>&nbsp;</span>");i=g.html();
g.text(f.substr(1));g.html(i+g.html())}e.after(g);e=g});b.remove()}});bb("option",function(a,b,c){if(O(Ha(c))=="option")if(ka<=7)Bb(c[0].outerHTML,{start:function(d,e){N(e.value)&&c.attr("value",a)}});else c[0].getAttribute("value")==null&&c.attr("value",a)});var kd={"ng:src":"src","ng:href":"href"};Gb("{{}}",function(a,b,c){if(!(P(b)||P("@"+b))){if(ka&&b=="src")a=decodeURI(a);var d=Ta(a);if(d.length>1||Ua(d[0])!==y){c.removeAttr(b);d=ua(c.attr("ng:bind-attr")||"{}");d[kd[b]||b]=a;c.attr("ng:bind-attr",
da(d))}}});V=Ea("keydown change",Ka,yb,Wa(),true);ca=Ea("click",oc,oc,D);var Xc={text:V,textarea:V,hidden:V,password:V,button:ca,submit:ca,reset:ca,image:ca,checkbox:Ea("click",xb,function(a,b){var c=b[0];return{get:function(){return!!c.checked},set:function(d){c.checked=Da(d)}}},Wa(false)),radio:Ea("click",xb,function(a,b){var c=b[0];return{get:function(){return c.checked?c.value:y},set:function(d){c.checked=d==c.value}}},function(a,b,c){var d=a.get(),e=b.get();c=c[0];c.checked=false;c.name=this.$id+
"@"+c.name;if(N(d))a.set(d=y);d==y&&e!==y&&a.set(e);b.set(d)}),"select-one":Ea("change",Ka,yb,Wa(y)),"select-multiple":Ea("change",Ka,nc,Wa([]))};Z("input",Xa);Z("textarea",Xa);Z("button",Xa);Z("select",function(a){this.descend(true);return Xa.call(this,a)});Z("option",function(){this.descend(true);this.directives(true);return function(a){var b=a.parent(),c=b[0].type=="select-multiple",d=b.scope(),e=Ka(d,b);if(e){var g=xb(d,b),f=c?nc(d,b):yb(d,b),i=a.attr("value"),h=a.attr("ng-selected");a.data("$update",
c?function(){f.set(e.get())}:function(){var j=a.attr("value"),k=a.attr("ng-selected"),l=e.get();if(h!=k||i!=j){h=k;i=j;if(k||!l==null||l==undefined)g.set(j);j==l&&f.set(i)}})}}});Z("ng:include",function(a){var b=this,c=a.attr("src"),d=a.attr("scope")||"",e=a[0].getAttribute("onload")||"";if(a[0]["ng:compiled"]){this.descend(true);this.directives(true)}else{a[0]["ng:compiled"]=true;return B(function(g,f){function i(){k++}var h=this,j,k=0,l=false;this.$watch(c,i);this.$watch(d,i);h.$onEval(function(){if(j&&
!l){l=true;try{j.$eval()}finally{l=false}}});this.$watch(function(){return k},function(){var n=this.$eval(c),q=this.$eval(d);if(n)g("GET",n,function(o,x){f.html(x);j=q||la(h);b.compile(f)(j);h.$eval(e)});else{j=null;f.html("")}})},{$inject:["$xhr.cache"]})}});var ld=Z("ng:switch",function(a){var b=this,c=a.attr("on"),d=a.attr("using")||"equals",e=d.split(":"),g=ld[e.shift()],f=a.attr("change")||"",i=[];if(!g)throw"Using expression '"+d+"' unknown.";if(!c)throw"Missing 'on' attribute.";Mb(a,function(h){var j=
h.attr("ng:switch-when"),k={change:f,element:h,template:b.compile(h)};if(G(j)){k.when=function(l,n){var q=[n,j];t(e,function(o){q.push(o)});return g.apply(l,q)};i.unshift(k)}else if(G(h.attr("ng:switch-default"))){k.when=Ma(true);i.push(k)}});t(i,function(h){h.element.remove()});a.html("");return function(h){var j=this,k;this.$watch(c,function(l){var n=false;h.html("");k=la(j);t(i,function(q){if(!n&&q.when(k,l)){n=true;k.$tryEval(q.change,h);q.template(k,function(o){h.append(o)})}})});j.$onEval(function(){k&&
k.$eval()})}},{equals:function(a,b){return""+a==b}});Z("a",function(){this.descend(true);this.directives(true);return function(a){a.attr("href")===""&&a.bind("click",function(b){b.preventDefault()})}});Z("@ng:repeat",function(a,b){b.removeAttr("ng:repeat");b.replaceWith(C("<!-- ng:repeat: "+a+" --!>"));var c=this.compile(b);return function(d){var e=a.match(/^\s*(.+)\s+in\s+(.*)\s*$/),g,f,i,h;if(!e)throw aa("Expected ng:repeat in form of 'item in collection' but got '"+a+"'.");g=e[1];f=e[2];e=g.match(/^([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\)$/);
if(!e)throw aa("'item' in 'item in collection' should be identifier or (key, value) but got '"+keyValue+"'.");i=e[3]||e[1];h=e[2];var j=[],k=this;this.$onEval(function(){var l=0,n=j.length,q=d,o=this.$tryEval(f,d),x=0,s,p;if(ia(o))x=o.length;else for(p in o)o.hasOwnProperty(p)&&x++;for(p in o)if(o.hasOwnProperty(p)){if(l<n){s=j[l];s[i]=o[p];if(h)s[h]=p;q=s.$element}else{s=la(k);s[i]=o[p];if(h)s[h]=p;s.$index=l;s.$position=l==0?"first":l==x-1?"last":"middle";j.push(s);c(s,function(A){A.attr("ng:repeat-index",
l);q.after(A);q=A})}s.$eval();l++}for(;j.length>l;)j.pop().$element.remove()},d)}});Z("@ng:non-bindable",D);Z("ng:view",function(a){var b=this;if(a[0]["ng:compiled"]){this.descend(true);this.directives(true)}else{a[0]["ng:compiled"]=true;return B(function(c,d,e){var g;d.onChange(function(){var f;if(d.current){f=d.current.template;g=d.current.scope}f?c("GET",f,function(i,h){e.html(h);b.compile(e)(g)}):e.html("")})();this.$onEval(function(){g&&g.$eval()})},{$inject:["$xhr.cache","$route"]})}});var na;
kb("$browser",function(a){if(!na){na=new Lc(J,C(J.document),C(J.document.body),Zc,a);var b=na.addPollFn;na.addPollFn=function(){na.addPollFn=b;na.startPoller(100,function(c,d){setTimeout(c,d)});return b.apply(na,arguments)};na.bind()}return na},{$inject:["$log"]});B(E,{element:C,compile:Eb,scope:la,copy:R,extend:B,equals:Ga,forEach:t,injector:Sb,noop:D,bind:S,toJson:da,fromJson:ua,identity:qa,isUndefined:N,isDefined:I,isString:G,isFunction:K,isObject:W,isNumber:Ba,isArray:ia});Ib();fb(ga).ready(function(){var a=
zc(ga);if(a.autobind){var b=Eb(J.document)(la({$config:a})).$service("$browser");if(a.css)b.addCss(a.base_url+a.css);else ka<8&&b.addJs(a.base_url+a.ie_compat,a.ie_compat_id)}})})(window,document);document.write('<style type="text/css">@charset "UTF-8";.ng-format-negative{color:red;}.ng-exception{border:2px solid #FF0000;font-family:"Courier New",Courier,monospace;font-size:smaller;white-space:pre;}.ng-validation-error{border:2px solid #FF0000;}#ng-callout{margin:0;padding:0;border:0;outline:0;font-size:13px;font-weight:normal;font-family:Verdana,Arial,Helvetica,sans-serif;vertical-align:baseline;background:transparent;text-decoration:none;}#ng-callout .ng-arrow-left{background-image:url("data:image/gif;base64,R0lGODlhCwAXAKIAAMzMzO/v7/f39////////wAAAAAAAAAAACH5BAUUAAQALAAAAAALABcAAAMrSLoc/AG8FeUUIN+sGebWAnbKSJodqqlsOxJtqYooU9vvk+vcJIcTkg+QAAA7");background-repeat:no-repeat;background-position:left top;position:absolute;z-index:101;left:-12px;height:23px;width:10px;top:-3px;}#ng-callout .ng-arrow-right{background-image:url("data:image/gif;base64,R0lGODlhCwAXAKIAAMzMzO/v7/f39////////wAAAAAAAAAAACH5BAUUAAQALAAAAAALABcAAAMrCLTcoM29yN6k9socs91e5X3EyJloipYrO4ohTMqA0Fn2XVNswJe+H+SXAAA7");background-repeat:no-repeat;background-position:left top;position:absolute;z-index:101;height:23px;width:11px;top:-2px;}#ng-callout{position:absolute;z-index:100;border:2px solid #CCCCCC;background-color:#fff;}#ng-callout .ng-content{padding:10px 10px 10px 10px;color:#333333;}#ng-callout .ng-title{background-color:#CCCCCC;text-align:left;padding-left:8px;padding-bottom:5px;padding-top:2px;font-weight:bold;}.ng-input-indicator-wait{background-image:url("data:image/png;base64,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");background-position:right;background-repeat:no-repeat;}</style>');
(function(J,da,qa){function t(a,b,c){var d;if(a)if(L(a))for(d in a)d!="prototype"&&d!=sc&&d!=tc&&a.hasOwnProperty(d)&&b.call(c,a[d],d);else if(a.forEach&&a.forEach!==t)a.forEach(b,c);else if(X(a)&&Ca(a.length))for(d=0;d<a.length;d++)b.call(c,a[d],d);else for(d in a)b.call(c,a[d],d);return a}function $a(a,b,c){var d=[],e;for(e in a)d.push(e);d.sort();for(e=0;e<d.length;e++)b.call(c,a[d[e]],d[e]);return d}function ab(a){if(a instanceof ba)if(a.stack)a=a.stack;else if(a.sourceURL)a=a.message+"\n"+a.sourceURL+
":"+a.line;return a}function B(a){t(arguments,function(b){b!==a&&t(b,function(c,d){a[d]=c})});return a}function uc(a,b){return B(new (B(function(){},{prototype:a})),b)}function D(){}function ra(a){return a}function Na(a){return function(){return a}}function ha(a,b,c){var d;return a[b]||(d=a[b]=function(e,g,f){e=(c||ra)(e);if(I(g))d[e]=B(g,f||{});return d[e]})}function N(a){return typeof a==sa}function I(a){return typeof a!=sa}function X(a){return a!=A&&typeof a==Bb}function G(a){return typeof a==
vc}function Ca(a){return typeof a==wc}function ia(a){return a instanceof Array}function L(a){return typeof a==ja}function Da(a){return G(a)?a.replace(/^\s*/,"").replace(/\s*$/,""):a}function bb(a,b){this.html=a;this.get=O(b)=="unsafe"?Na(a):function(){var c=[];Cb(a,Db(c));return c.join("")}}function xc(a,b,c){var d=[];t(a,function(e,g,f){d.push(b.call(c,e,g,f))});return d}function Eb(a,b){for(var c=0;c<a.length;c++)if(b===a[c])return true;return false}function Ga(a,b){for(var c=0;c<a.length;c++)if(b===
a[c])return c;return-1}function yc(a){if(a)switch(a.nodeName){case "OPTION":case "PRE":case "TITLE":return true}return false}function U(a,b){if(b)if(ia(a)){for(;b.length;)b.pop();for(var c=0;c<a.length;c++)b.push(U(a[c]))}else{t(b,function(d,e){delete b[e]});for(c in a)b[c]=U(a[c])}else if(b=a)if(ia(a))b=U(a,[]);else if(a instanceof Date)b=new Date(a.getTime());else if(X(a))b=U(a,{});return b}function Ha(a,b){if(a==b)return true;if(a===null||b===null)return false;var c=typeof a,d;if(c==typeof b&&
c=="object")if(a instanceof Array){if((c=a.length)==b.length){for(d=0;d<c;d++)if(!Ha(a[d],b[d]))return false;return true}}else{c={};for(d in a){if(d.charAt(0)!=="$"&&!L(a[d])&&!Ha(a[d],b[d]))return false;c[d]=true}for(d in b)if(!c[d]&&d.charAt(0)!=="$"&&!L(b[d]))return false;return true}return false}function zc(a){return(a=a&&a[0]&&a[0].nodeName)&&a.charAt(0)!="#"&&!Eb(["TR","COL","COLGROUP","TBODY","THEAD","TFOOT"],a)}function ta(a,b,c){for(;!zc(a);)a=a.parent()||C(da.body);if(a[0].$NG_ERROR!==c)if(a[0].$NG_ERROR=
c){a.addClass(b);a.attr(b,c.message||c)}else{a.removeClass(b);a.removeAttr(b)}}function V(a,b){var c=arguments.length>2?ua.call(arguments,2,arguments.length):[];return typeof b==ja&&!(b instanceof RegExp)?c.length?function(){return arguments.length?b.apply(a,c.concat(ua.call(arguments,0,arguments.length))):b.apply(a,c)}:function(){return arguments.length?b.apply(a,arguments):b.call(a)}:b}function Ea(a){if(a&&a.length!==0){a=O(""+a);a=!(a=="f"||a=="0"||a=="false"||a=="no"||a=="n"||a=="[]")}else a=
false;return a}function Fb(a){return(new Gb(cb,Hb,P,Z)).compile(a)}function db(a){var b={},c,d;t((a||"").split("&"),function(e){if(e){c=e.split("=");d=unescape(c[0]);b[d]=I(c[1])?unescape(c[1]):true}});return b}function Ib(a){var b=[];t(a,function(c,d){b.push(escape(d)+(c===true?"":"="+escape(c)))});return b.length?b.join("&"):""}function eb(a){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+").replace(/%24/g,"$").replace(/%2C/gi,
",")}function Ac(a,b){Jb();var c=a.getElementsByTagName("script"),d;b=B({ie_compat_id:"ng-ie-compat"},b);for(var e=0;e<c.length;e++)if(d=(c[e].src||"").match(Bc)){b.base_url=d[1];b.ie_compat=d[1]+"angular-ie-compat"+(d[2]||"")+".js";B(b,db(d[6]));Oa(C(c[e]),function(g,f){if(/^ng:/.exec(f)){f=f.substring(3).replace(/-/g,"_");g=g||true;b[f]=g}})}return b}function Jb(){if(fb=J.jQuery){C=fb;B(fb.fn,{scope:Kb.scope})}else C=gb;E.element=C}function Lb(a,b,c){if(!a){a=new ba("Argument '"+(b||"?")+"' is "+
(c||"required"));J.console&&J.console.log(a.stack);throw a;}}function ea(a,b){var c=[];hb(c,a,b?"\n ":A,[]);return c.join("")}function va(a,b){function c(i){if(G(i)&&i.length===Mb)return ib.toDate(i);else if(ia(i)||X(i))t(i,function(h,j){i[j]=c(h)});return i}if(!G(a))return a;var d,e,g;try{if(b&&J.JSON&&J.JSON.parse){d=JSON.parse(a);return c(d)}e=wa(a,true);g=e.primary();e.assertAllConsumed();return g()}catch(f){Cc("fromJson error: ",a,f);throw f;}}function hb(a,b,c,d){if(X(b)){if(b===J){a.push("WINDOW");
return}if(b===da){a.push("DOCUMENT");return}if(Eb(d,b)){a.push("RECURSION");return}d.push(b)}if(b===A)a.push(Pa);else if(b instanceof RegExp)a.push(E.String.quoteUnicode(b.toString()));else if(L(b))return;else if(typeof b==Dc)a.push(""+b);else if(Ca(b))isNaN(b)?a.push(Pa):a.push(""+b);else if(G(b))return a.push(E.String.quoteUnicode(b));else if(X(b))if(ia(b)){a.push("[");for(var e=b.length,g=false,f=0;f<e;f++){var i=b[f];g&&a.push(",");!(i instanceof RegExp)&&(L(i)||N(i))?a.push(Pa):hb(a,i,c,d);g=
true}a.push("]")}else if(b instanceof Date)a.push(E.String.quoteUnicode(E.Date.toString(b)));else{a.push("{");c&&a.push(c);e=false;g=c?c+" ":false;f=[];for(i in b)b[i]!==$&&f.push(i);f.sort();for(i=0;i<f.length;i++){var h=f[i],j=b[h];if(typeof j!=ja){if(e){a.push(",");c&&a.push(c)}a.push(E.String.quote(h));a.push(":");hb(a,j,g,d);e=true}}a.push("}")}X(b)&&d.pop()}function jb(a){this.paths=[];this.children=[];this.inits=[];this.priority=a;this.newScope=false}function Gb(a,b,c,d){this.markup=a;this.attrMarkup=
b;this.directives=c;this.widgets=d}function Nb(a,b){var c,d=a[0].childNodes||[],e;for(c=0;c<d.length;c++){var g=e=d[c];Ia(g)=="#text"||b(C(e),c)}}function Oa(a,b){var c,d=a[0].attributes||[],e,g,f={};for(c=0;c<d.length;c++){e=d[c];g=e.name;e=e.value;if(ka&&g=="href")e=decodeURIComponent(a[0].getAttribute(g,2));f[g]=e}$a(f,b)}function Ja(a,b,c){if(!b)return a;for(var d=b.split("."),e,g=a,f=d.length,i=0;i<f;i++){e=d[i];if(!e.match(/^[\$\w][\$\w\d]*$/))throw"Expression '"+b+"' is not a valid expression for accesing variables.";
if(a){g=a;a=a[e]}if(N(a)&&e.charAt(0)=="$"){var h=E.Global.typeOf(g);if(e=(h=E[h.charAt(0).toUpperCase()+h.substring(1)])?h[[e.substring(1)]]:$)return a=V(g,e,g)}}if(!c&&L(a))return V(g,a);return a}function kb(a,b,c){b=b.split(".");for(var d=0;b.length>1;d++){var e=b.shift(),g=a[e];if(!g){g={};a[e]=g}a=g}return a[b.shift()]=c}function Ob(a){var b=Pb[a];if(b)return b;var c="var l, fn, t;\n";t(a.split("."),function(d){d=Qb[d]?'["'+d+'"]':"."+d;c+="if(!s) return s;\nl=s;\ns=s"+d+';\nif(typeof s=="function" && !(s instanceof RegExp)) s = function(){ return l'+
d+".apply(l, arguments); };\n";if(d.charAt(1)=="$"){d=d.substr(2);c+='if(!s) {\n t = angular.Global.typeOf(l);\n fn = (angular[t.charAt(0).toUpperCase() + t.substring(1)]||{})["'+d+'"];\n if (fn) s = function(){ return fn.apply(l, [l].concat(Array.prototype.slice.call(arguments, 0, arguments.length))); };\n}\n'}});c+="return s;";b=Function("s",c);b.toString=function(){return c};return Pb[a]=b}function xa(a){if(typeof a===ja)return a;var b=Rb[a];if(!b){b=wa(a);var c=b.statements();b.assertAllConsumed();
b=Rb[a]=B(function(){return c(this)},{fnSelf:c})}return b}function la(a,b,c){function d(){}a=d.prototype=a||{};var e=new d,g={sorted:[]},f,i;B(e,{"this":e,$id:Ec++,$parent:a,$bind:V(e,V,e),$get:V(e,Ja,e),$set:V(e,kb,e),$eval:function(h){var j=typeof h,k,l,n;if(j==sa){h=0;for(j=g.sorted.length;h<j;h++){n=g.sorted[h];l=n.length;for(k=0;k<l;k++)e.$tryEval(n[k].fn,n[k].handler)}}else if(j===ja)return h.call(e);else if(j==="string")return xa(h).call(e)},$tryEval:function(h,j){var k=typeof h;try{if(k==
ja)return h.call(e);else if(k=="string")return xa(h).call(e)}catch(l){f&&f.error(l);if(L(j))j(l);else if(j)ta(j,Qa,I(l)?ab(l):l);else L(i)&&i(l)}},$watch:function(h,j,k,l){function n(x){var s=q.call(e),p=o;if(x||p!==s){o=s;e.$tryEval(function(){return j.call(e,s,p)},k)}}var q=xa(h),o=q.call(e);j=xa(j);e.$onEval(Sb,n);if(N(l))l=true;l&&n(true)},$onEval:function(h,j,k){if(!Ca(h)){k=j;j=h;h=0}var l=g[h];if(!l){l=g[h]=[];l.priority=h;g.sorted.push(l);g.sorted.sort(function(n,q){return n.priority-q.priority})}l.push({fn:xa(j),
handler:k})},$become:function(h){if(L(h)){e.constructor=h;t(h.prototype,function(j,k){e[k]=V(e,j)});e.$service.apply(e,[h,e].concat(ua.call(arguments,1,arguments.length)));L(h.prototype.init)&&e.init()}},$new:function(h){var j=la(e);j.$become.apply(e,[h].concat(ua.call(arguments,1,arguments.length)));e.$onEval(j.$eval);return j}});if(!a.$root){e.$root=e;e.$parent=e;(e.$service=Tb(e,b,c))()}f=e.$service("$log");i=e.$service("$exceptionHandler");return e}function Tb(a,b,c){b=b||lb;c=c||{};a=a||{};return function d(e,
g){var f,i;if(G(e)){if(!(e in c)){i=b[e];if(!i)throw"Unknown provider for '"+e+"'.";c[e]=d(i,a)}f=c[e]}else if(ia(e)){f=[];t(e,function(h){f.push(d(h))})}else if(L(e)){f=d(Fc(e));f=e.apply(g,f.concat(ua.call(arguments,2,arguments.length)))}else if(X(e))t(b,function(h,j){h.$eager&&d(j);if(h.$creation)throw new ba("Failed to register service '"+j+"': $creation property is unsupported. Use $eager:true or see release notes.");});else f=d(a);return f}}function Q(a,b,c,d){lb(a,b,{$inject:c,$eager:d})}function Fc(a){Lb(L(a,
void 0,"not a function"));if(!a.$inject){var b=a.$inject=[],c=a.toString().replace(Gc,"").match(Hc);t(c[1].split(Ic),function(d){d.replace(Jc,function(e,g,f,i,h){Lb(b,g,"after non-injectable arg");if(i||h)b.push(f);else b=null})})}return a.$inject}function Kc(a,b){function c(w){return w.indexOf(s)!=-1}function d(){return o+1<a.length?a.charAt(o+1):false}function e(w){return"0"<=w&&w<="9"}function g(w){return"a"<=w&&w<="z"||"A"<=w&&w<="Z"||"_"==w||w=="$"}function f(w){return w=="-"||w=="+"||e(w)}function i(w,
M,y){y=y||o;throw ba("Lexer Error: "+w+" at column"+(I(M)?"s "+M+"-"+o+" ["+a.substring(M,y)+"]":" "+y)+" in expression ["+a+"].");}function h(){for(var w="",M=o;o<a.length;){var y=O(a.charAt(o));if(y=="."||e(y))w+=y;else{var F=d();if(y=="e"&&f(F))w+=y;else if(f(y)&&F&&e(F)&&w.charAt(w.length-1)=="e")w+=y;else if(f(y)&&(!F||!e(F))&&w.charAt(w.length-1)=="e")i("Invalid exponent");else break}o++}w=1*w;n.push({index:M,text:w,json:true,fn:function(){return w}})}function j(){for(var w="",M=o,y;o<a.length;){y=
a.charAt(o);if(y=="."||g(y)||e(y))w+=y;else break;o++}y=mb[w];n.push({index:M,text:w,json:y,fn:y||B(Ob(w),{assign:function(F,R){return kb(F,w,R)}})})}function k(w){var M=o;o++;for(var y="",F=w,R=false;o<a.length;){var S=a.charAt(o);F+=S;if(R){if(S=="u"){S=a.substring(o+1,o+5);S.match(/[\da-f]{4}/i)||i("Invalid unicode escape [\\u"+S+"]");o+=4;y+=String.fromCharCode(parseInt(S,16))}else{R=Lc[S];y+=R?R:S}R=false}else if(S=="\\")R=true;else if(S==w){o++;n.push({index:M,text:F,string:y,json:true,fn:function(){return y.length==
l?E.String.toDate(y):y}});return}else y+=S;o++}i("Unterminated quote",M)}for(var l=b?Mb:-1,n=[],q,o=0,x=[],s,p=":";o<a.length;){s=a.charAt(o);if(c("\"'"))k(s);else if(e(s)||c(".")&&e(d()))h();else if(g(s)){j();if("{,".indexOf(p)!=-1&&x[0]=="{"&&(q=n[n.length-1]))q.json=q.text.indexOf(".")==-1}else if(c("(){}[].,;:")){n.push({index:o,text:s,json:":[,".indexOf(p)!=-1&&c("{[")||c("}]:,")});c("{[")&&x.unshift(s);c("}]")&&x.shift();o++}else if(s==" "||s=="\r"||s=="\t"||s=="\n"||s=="\u000b"||s=="\u00a0"){o++;
continue}else{var z=s+d(),K=mb[s],aa=mb[z];if(aa){n.push({index:o,text:z,fn:aa});o+=2}else if(K){n.push({index:o,text:s,fn:K,json:"[,:".indexOf(p)!=-1&&c("+-")});o+=1}else i("Unexpected next character ",o,o+1)}p=s}return n}function wa(a,b){function c(m,r){throw ba("Parse Error: Token '"+r.text+"' "+m+" at column "+(r.index+1)+" of expression ["+a+"] starting at ["+a.substring(r.index)+"].");}function d(){if(y.length===0)throw ba("Unexpected end of expression: "+a);return y[0]}function e(m,r,u,v){if(y.length>
0){var H=y[0],Y=H.text;if(Y==m||Y==r||Y==u||Y==v||!m&&!r&&!u&&!v)return H}return false}function g(m,r,u,v){if(m=e(m,r,u,v)){if(b&&!m.json){index=m.index;c("is not valid json",m)}y.shift();return this.currentToken=m}return false}function f(m){g(m)||c("is unexpected, expecting ["+m+"]",e())}function i(m,r){return function(u){return m(u,r(u))}}function h(m,r,u){return function(v){return r(v,m(v),u(v))}}function j(){y.length!==0&&c("is extra token not part of expression",y[0])}function k(){for(var m=
[];;){y.length>0&&!e("}",")",";","]")&&m.push(nb());if(!g(";"))return function(r){for(var u,v=0;v<m.length;v++){var H=m[v];if(H)u=H(r)}return u}}}function l(){return ob(fa)}function n(){for(var m=q(),r;;)if(r=g("||"))m=h(m,r.fn,q());else return m}function q(){var m=o(),r;if(r=g("&&"))m=h(m,r.fn,q());return m}function o(){var m=x(),r;if(r=g("==","!="))m=h(m,r.fn,o());return m}function x(){var m;m=s();for(var r;r=g("+","-");)m=h(m,r.fn,s());m=m;if(r=g("<",">","<=",">="))m=h(m,r.fn,x());return m}function s(){for(var m=
p(),r;r=g("*","/","%");)m=h(m,r.fn,p());return m}function p(){var m;return g("+")?z():(m=g("-"))?h(M,m.fn,p()):(m=g("!"))?i(m.fn,p()):z()}function z(){var m;if(g("(")){m=nb();f(")");m=m}else if(g("["))m=K();else if(g("{"))m=aa();else{var r=g();(m=r.fn)||c("not a primary expression",r)}for(;r=g("(","[",".");)if(r.text==="(")m=S(m);else if(r.text==="[")m=Ub(m);else if(r.text===".")m=Vb(m);else c("IMPOSSIBLE");return m}function K(){var m=[];if(d().text!="]"){do m.push(F());while(g(","))}f("]");return function(r){for(var u=
[],v=0;v<m.length;v++)u.push(m[v](r));return u}}function aa(){var m=[];if(d().text!="}"){do{var r=g();r=r.string||r.text;f(":");var u=F();m.push({key:r,value:u})}while(g(","))}f("}");return function(v){for(var H={},Y=0;Y<m.length;Y++){var ya=m[Y],oa=ya.value(v);H[ya.key]=oa}return H}}function w(){var m=g().text;f(":");var r;if(d().text=="{"){f("{");r=k();f("}")}else r=F();return function(){return{name:m,fn:r}}}var M=Na(0),y=Kc(a,b),F=function(){var m=n(),r,u;if(u=g("=")){m.assign||c("implies assignment but ["+
a.substring(0,u.index)+"] can not be assigned to",u);r=n();return function(v){return m.assign(v,r(v))}}else return m},R=n,S=function(m){var r=[];if(d().text!=")"){do r.push(F());while(g(","))}f(")");return function(u){for(var v=[],H=0;H<r.length;H++)v.push(r[H](u));H=m(u)||D;return H.apply?H.apply(u,v):H(v[0],v[1],v[2],v[3],v[4])}},Vb=function(m){var r=g().text,u=Ob(r);return B(function(v){return u(m(v))},{assign:function(v,H){return kb(m(v),r,H)}})},Ub=function(m){var r=F();f("]");return B(function(u){var v=
m(u);u=r(u);return v?v[u]:$},{assign:function(u,v){return m(u)[r(u)]=v}})},nb=function(){for(var m=F(),r;;)if(r=g("|"))m=h(m,r.fn,l());else return m},Wb=function(m){var r=g(),u=r.text.split(".");m=m;for(var v,H=0;H<u.length;H++){v=u[H];if(m)m=m[v]}typeof m!=ja&&c("should be a function",r);return m},ob=function(m){for(var r=Wb(m),u=[];;)if(g(":"))u.push(F());else{var v=function(H,Y){for(var ya=[Y],oa=0;oa<u.length;oa++)ya.push(u[oa](H));return r.apply(H,ya)};return function(){return v}}};if(b){F=n;
S=Vb=Ub=R=nb=Wb=ob=function(){c("is not valid json",{text:a,index:0})}}return{assertAllConsumed:j,assignable:R,primary:z,statements:k,validator:function(){return ob(pb)},formatter:function(){function m(H){return function(Y,ya){for(var oa=[ya],qb=0;qb<v.length;qb++)oa.push(v[qb](Y));return H.apply(Y,oa)}}var r=g(),u=pa[r.text],v=[];for(u||c("is not a valid formatter.",r);;)if(r=g(":"))v.push(F());else return Na({format:m(u.format),parse:m(u.parse)})},filter:l,watch:function(){for(var m=[];y.length>
0;){m.push(w());g(";")||j()}j();return function(r){for(var u=0;u<m.length;u++){var v=m[u](r);r.addListener(v.name,v.fn)}}}}}function Xb(a,b){this.template=a+="#";this.defaults=b||{};var c=this.urlParams={};t(a.split(/\W/),function(d){if(d&&a.match(RegExp(":"+d+"\\W")))c[d]=true})}function Ra(a){this.xhr=a}function Mc(a,b,c,d,e){function g(p){try{p.apply(null,ua.call(arguments,1))}finally{k--;if(k===0)for(;l.length;)try{l.pop()()}catch(z){e.error(z)}}}var f=this,i=a.location,h=a.setTimeout;f.isMock=
false;var j=0,k=0,l=[];f.xhr=function(p,z,K,aa,w){k++;if(O(p)=="json"){var M=("angular_"+Math.random()+"_"+j++).replace(/\d\./,""),y=C("<script>").attr({type:"text/javascript",src:z.replace("JSON_CALLBACK",M)});a[M]=function(R){a[M]=$;y.remove();g(aa,200,R)};c.append(y)}else{var F=new d;F.open(p,z,true);t(B(Nc,w||{}),function(R,S){R&&F.setRequestHeader(S,R)});F.onreadystatechange=function(){if(F.readyState==4)g(aa,F.status||200,F.responseText)};F.send(K||"")}};f.notifyWhenNoOutstandingRequests=function(p){k===
0?p():l.push(p)};var n=[];f.poll=function(){t(n,function(p){p()})};f.addPollFn=function(p){n.push(p);return p};f.startPoller=function(p,z){(function K(){f.poll();z(K,p)})()};f.setUrl=function(p){i.href.match(/#/);p.match(/#/)||(p+="#");i.href=p};f.getUrl=function(){return i.href};f.onHashChange=function(p){if("onhashchange"in a)C(a).bind("hashchange",p);else{var z=f.getUrl();f.addPollFn(function(){if(z!=f.getUrl()){p();z=f.getUrl()}})}return p};var q=b[0],o={},x="";f.cookies=function(p,z){var K,aa,
w,M;if(p)if(z===$)q.cookie=escape(p)+"=;expires=Thu, 01 Jan 1970 00:00:00 GMT";else{if(G(z)){q.cookie=escape(p)+"="+escape(z);K=p.length+z.length+1;K>4096&&e.warn("Cookie '"+p+"' possibly not set or overflowed because it was too large ("+K+" > 4096 bytes)!");o.length>20&&e.warn("Cookie '"+p+"' possibly not set or overflowed because too many cookies were already set ("+o.length+" > 20 )")}}else{if(q.cookie!==x){x=q.cookie;K=x.split("; ");o={};for(w=0;w<K.length;w++){aa=K[w];M=aa.indexOf("=");if(M>
0)o[unescape(aa.substring(0,M))]=unescape(aa.substring(M+1))}}return o}};f.defer=function(p,z){k++;h(function(){g(p)},z||0)};var s=D;f.hover=function(p){s=p};f.bind=function(){b.bind("mouseover",function(p){s(C(ka?p.srcElement:p.target),true);return true});b.bind("mouseleave mouseout click dblclick keypress keyup",function(p){s(C(p.target),false);return true})};f.addCss=function(p){var z=C(q.createElement("link"));z.attr("rel","stylesheet");z.attr("type","text/css");z.attr("href",p);c.append(z)};
f.addJs=function(p,z){var K=C(q.createElement("script"));K.attr("type","text/javascript");K.attr("src",p);z&&K.attr("id",z);c.append(K)}}function Cb(a,b){function c(h,j,k,l){j=O(j);if(Yb[j])for(;f.last()&&Zb[f.last()];)d("",f.last());$b[j]&&f.last()==j&&d("",j);(l=ac[j]||!!l)||f.push(j);var n={};k.replace(Oc,function(q,o,x,s,p){n[o]=rb(x||s||p||"")});b.start&&b.start(j,n,l)}function d(h,j){var k=0,l;if(j=O(j))for(k=f.length-1;k>=0;k--)if(f[k]==j)break;if(k>=0){for(l=f.length-1;l>=k;l--)b.end&&b.end(f[l]);
f.length=k}}var e,g,f=[],i=a;for(f.last=function(){return f[f.length-1]};a;){g=true;if(!f.last()||!bc[f.last()]){if(a.indexOf("<!--")===0){e=a.indexOf("--\>");if(e>=0){b.comment&&b.comment(a.substring(4,e));a=a.substring(e+3);g=false}}else if(Pc.test(a)){if(e=a.match(cc)){a=a.substring(e[0].length);e[0].replace(cc,d);g=false}}else if(Qc.test(a))if(e=a.match(dc)){a=a.substring(e[0].length);e[0].replace(dc,c);g=false}if(g){e=a.indexOf("<");g=e<0?a:a.substring(0,e);a=e<0?"":a.substring(e);b.chars&&b.chars(rb(g))}}else{a=
a.replace(RegExp("(.*)<\\s*\\/\\s*"+f.last()+"[^>]*>","i"),function(h,j){j=j.replace(Rc,"$1").replace(Sc,"$1");b.chars&&b.chars(rb(j));return""});d("",f.last())}if(a==i)throw"Parse Error: "+a;i=a}d()}function za(a){var b={};a=a.split(",");var c;for(c=0;c<a.length;c++)b[a[c]]=true;return b}function rb(a){sb.innerHTML=a.replace(/</g,"&lt;");return sb.innerText||sb.textContent||""}function ec(a){return a.replace(/&/g,"&amp;").replace(Tc,function(b){return"&#"+b.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,
"&gt;")}function Db(a){var b=false,c=V(a,a.push);return{start:function(d,e,g){d=O(d);if(!b&&bc[d])b=d;if(!b&&fc[d]==true){c("<");c(d);t(e,function(f,i){var h=O(i);if(Uc[h]==true&&(gc[h]!==true||f.match(Vc))){c(" ");c(i);c('="');c(ec(f));c('"')}});c(g?"/>":">")}},end:function(d){d=O(d);if(!b&&fc[d]==true){c("</");c(d);c(">")}if(d==b)b=false},chars:function(d){b||c(ec(d))}}}function Wc(a){var b={};a=a[0].style;var c,d;if(typeof a.length=="number")for(c=0;c<a.length;c++){d=a[c];b[d]=a[d]}else for(d in a){c=
a[d];if(1*d!=d&&d!="cssText"&&c&&typeof c=="string"&&c!="false")b[d]=c}return b}function gb(a){if(G(a)&&a.charAt(0)!="<")throw new ba("selectors not implemented");return new ma(a)}function ma(a){if(a instanceof ma)return a;else if(G(a)){var b=da.createElement("div");b.innerHTML="<div>&nbsp;</div>"+a;b.removeChild(b.firstChild);tb(this,b.childNodes);this.remove()}else tb(this,a)}function Ka(a){hc(a);var b=0;for(a=a.childNodes||[];b<a.length;b++)Ka(a[b])}function hc(a){var b=a[Sa],c=Ta[b];if(c){t(c.bind||
{},function(d,e){Xc(a,e,d)});delete Ta[b];a[Sa]=qa}}function ub(a,b,c){var d=a[Sa];d=Ta[d||-1];if(I(c)){if(!d){a[Sa]=d=Yc++;d=Ta[d]={}}d[b]=c}else return d?d[b]:A}function vb(a,b){var c=" "+b+" ";return(" "+a.className+" ").replace(/[\n\t]/g," ").indexOf(c)>-1}function ic(a,b){a.className=Da((" "+a.className+" ").replace(/[\n\t]/g," ").replace(" "+b+" ",""))}function jc(a,b){if(!vb(a,b))a.className=Da(a.className+" "+b)}function tb(a,b){if(b){b=!b.nodeName&&I(b.length)&&!(b&&b.document&&b.location&&
b.alert&&b.setInterval)?b:[b];for(var c=0;c<b.length;c++)b[c].nodeType!=11&&a.push(b[c])}}function Aa(a,b){E[a]=E[a]||{};t(b,function(c){B(E[a],c)})}function ga(a,b,c){var d="";if(a<0){d="-";a=-a}for(a=""+a;a.length<b;)a="0"+a;if(c)a=a.substr(a.length-b);return d+a}function W(a,b,c,d){return function(e){e=e["get"+a]();if(c>0||e>-c)e+=c;if(e===0&&c==-12)e=12;return ga(e,b,d)}}function Ba(a,b){return{format:a,parse:b||a}}function kc(a){return I(a)&&a!==A?""+a:a}function wb(a){function b(){d=false;c.$eval()}
var c=this,d;return a.isMock?b:function(){if(!d){d=true;a.defer(b,wb.delay)}}}function lc(a){var b=mc[a];if(!b){var c=[];t(Ua(a),function(d){var e=Va(d);c.push(e?function(g){var f,i=this.$tryEval(e,function(h){f=ea(h)});ta(g,Qa,f);return f?f:i}:function(){return d})});mc[a]=b=function(d,e){var g=[],f=this.hasOwnProperty(nc)?this.$element:$;this.$element=d;for(var i=0;i<c.length;i++){var h=c[i].call(this,d);if(h&&(h.nodeName||h.bind&&h.find))h="";else if(X(h))h=ea(h,e);g.push(h)}this.$element=f;return g.join("")}}return b}
function xb(a){return function(b,c){var d=c[0].className+" ";return function(e){this.$onEval(function(){if(a(this.$index)){var g=this.$eval(b);if(ia(g))g=g.join(" ");e[0].className=Da(d+g)}},e)}}}function Ua(a){for(var b=[],c=0,d;(d=a.indexOf("{{",c))>-1;){c<d&&b.push(a.substr(c,d-c));c=d;d=a.indexOf("}}",d);d=d<0?a.length:d+2;b.push(a.substr(c,d-c));c=d}c!=a.length&&b.push(a.substr(c,a.length-c));return b.length===0?[a]:b}function Va(a){return(a=a.replace(/\n/gm," ").match(/^\{\{(.*)\}\}$/))?a[1]:
A}function La(a,b){var c=b.attr("name"),d;if(c){d=wa(c).assignable().assign;if(!d)throw new ba("Expression '"+c+"' is not assignable.");return{get:function(){return a.$eval(c)},set:function(e){if(e!==$)return a.$tryEval(function(){d(a,e)},b)}}}}function yb(a,b){var c=La(a,b),d=b.attr("ng:format")||Wa,e=wa(d).formatter()();if(c)return{get:function(){return e.format(a,c.get())},set:function(g){return c.set(e.parse(a,g))}}}function zb(a,b){function c(){var n=Da(b.val());if(b[0].disabled||b[0].readOnly){ta(b,
Ma,A);l.markValid(b)}else{var q=uc(a,{$element:b});n=k&&!n?"Required":n?e(q,n):A;ta(b,Ma,n);(j=n)?l.markInvalid(b):l.markValid(b)}}var d=b.attr("ng:validate")||Wa,e=wa(d).validator()(),g=b.attr("ng:required"),f=b.attr("ng:format")||Wa;f=wa(f).formatter()();var i,h,j,k,l=a.$service("$invalidWidgets")||{markValid:D,markInvalid:D};if(!e)throw"Validator named '"+d+"' not found.";i=f.format;h=f.parse;if(g)a.$watch(g,function(n){k=n;c()});else k=g==="";b.data(Ab,c);return{get:function(){j&&ta(b,Ma,A);try{var n=
h(a,b.val());c();return n}catch(q){j=q;ta(b,Ma,q)}},set:function(n){var q=b.val();n=i(a,n);if(q!=n)b.val(n||"");c()}}}function oc(a,b){var c=b.attr("ng:format")||Wa,d=wa(c).formatter()();return{get:function(){var e=[];t(b[0].options,function(g){g.selected&&e.push(d.parse(a,g.value))});return e},set:function(e){var g={};t(e,function(f){g[d.format(a,f)]=true});t(b[0].options,function(f){f.selected=g[f.value]})}}}function pc(){return{get:D,set:D}}function Xa(a){return function(b,c){var d=c.get();if(!d&&
I(a))d=U(a);N(b.get())&&I(d)&&b.set(d)}}function Fa(a,b,c,d,e){return B(function(g,f,i){var h=this,j=b(h,i),k=c(h,i),l=i.attr("ng:change")||"",n;if(j){d.call(h,j,k,i);this.$eval(i.attr("ng:init")||"");i.bind(a,function(q){function o(){var x=k.get();if(!e||x!=n){j.set(x);n=j.get();h.$tryEval(l,i);g()}}q.type=="keydown"?f(o):o()});h.$watch(j.get,function(q){if(n!==q)k.set(n=q)})}},{$inject:["$updateView","$defer"]})}function Ya(a){this.directives(true);this.descend(true);return Zc[O(a[0].type)]||D}
if(typeof da.getAttribute==sa)da.getAttribute=function(){};var O=function(a){return G(a)?a.toLowerCase():a},Za=function(a){return G(a)?a.toUpperCase():a},T=function(a){return G(a)?a.replace(/[A-Z]/g,function(b){b=b.charCodeAt(0)|32;return String.fromCharCode(b)}):a},ca=function(a){return G(a)?a.replace(/[a-z]/g,function(b){b=b.charCodeAt(0)&-33;return String.fromCharCode(b)}):a};if("i"!=="I".toLowerCase()){O=T;Za=ca}var $=qa,A=null,nc="$element",Ab="$validate",Dc="boolean",ja="function",sc="length",
tc="name",Pa="null",wc="number",Bb="object",vc="string",sa="undefined",Qa="ng-exception",Ma="ng-validation-error",Wa="noop",Sb=-1E3,$c={FIRST:-99999,LAST:99999,WATCH:Sb},ba=J.Error,ka=parseInt((/msie (\d+)/.exec(O(navigator.userAgent))||[])[1],10),C,fb,ua=[].slice;T=[].push;var Cc=J.console?V(J.console,J.console.error||D):D,E=J.angular||(J.angular={}),cb=ha(E,"markup"),Hb=ha(E,"attrMarkup"),P=ha(E,"directive"),Z=ha(E,"widget",O),pb=ha(E,"validator"),fa=ha(E,"filter"),pa=ha(E,"formatter"),lb=ha(E,
"service");ha(E,"callbacks");var Ia,Bc=/^(|.*\/)angular(-.*?)?(\.min)?.js(\?[^#]*)?(#(.*))?$/,Mb=24;Ia=ka?function(a){a=a.nodeName?a:a[0];return a.scopeName&&a.scopeName!="HTML"?Za(a.scopeName+":"+a.nodeName):a.nodeName}:function(a){return a.nodeName?a.nodeName:a[0].nodeName};E.toJson=ea;E.fromJson=va;jb.prototype={attach:function(a,b){var c={};this.collectInits(a,c,b);$a(c,function(d){t(d,function(e){e()})})},collectInits:function(a,b,c){var d=b[this.priority],e=c;d||(b[this.priority]=d=[]);if(this.newScope){e=
la(c);c.$onEval(e.$eval);a.data("$scope",e)}t(this.inits,function(j){d.push(function(){e.$tryEval(function(){return e.$service(j,e,a)},a)})});var g=a[0].childNodes,f=this.children,i=this.paths,h=i.length;for(c=0;c<h;c++)f[c].collectInits(C(g[i[c]]),b,e)},addInit:function(a){a&&this.inits.push(a)},addChild:function(a,b){if(b){this.paths.push(a);this.children.push(b)}},empty:function(){return this.inits.length===0&&this.paths.length===0}};Gb.prototype={compile:function(a){a=C(a);var b=0,c,d=a.parent();
if(d&&d[0]){d=d[0];for(var e=0;e<d.childNodes.length;e++)if(d.childNodes[e]==a[0])b=e}c=this.templatize(a,b,0)||new jb;return function(g,f){var i=f?Kb.clone.call(a):a;g=g||la();i.data("$scope",g);g.$element=i;(f||D)(i,g);c.attach(i,g);g.$eval();return g}},templatize:function(a,b,c){var d=this,e,g,f=d.directives,i=true,h=true,j=Ia(a),k=j.indexOf(":")>0?O(j).replace(":","-"):"",l,n={compile:V(d,d.compile),descend:function(s){if(I(s))i=s;return i},directives:function(s){if(I(s))h=s;return h},scope:function(s){if(I(s))l.newScope=
l.newScope||s;return l.newScope}};try{c=a.attr("ng:eval-order")||c||0}catch(q){c=c||0}a.addClass(k);if(G(c))c=$c[Za(c)]||parseInt(c,10);l=new jb(c);Oa(a,function(s,p){if(!e)if(e=d.widgets("@"+p)){a.addClass("ng-attr-widget");e=V(n,e,s,a)}});if(!e)if(e=d.widgets(j)){k&&a.addClass("ng-widget");e=V(n,e,a)}if(e){h=i=false;j=a.parent();l.addInit(e.call(n,a));if(j&&j[0])a=C(j[0].childNodes[b])}if(i)for(var o=0,x=a[0].childNodes;o<x.length;o++)Ia(x[o])=="#text"&&t(d.markup,function(s){if(o<x.length){var p=
C(x[o]);s.call(n,p.text(),p,a)}});if(h){Oa(a,function(s,p){t(d.attrMarkup,function(z){z.call(n,s,p,a)})});Oa(a,function(s,p){if(g=f[p]){a.addClass("ng-directive");l.addInit(f[p].call(n,s,a))}})}i&&Nb(a,function(s,p){l.addChild(p,d.templatize(s,p,c))});return l.empty()?A:l}};var Ec=0,Pb={},Rb={},Qb={};t("abstract,boolean,break,byte,case,catch,char,class,const,continue,debugger,default,delete,do,double,else,enum,export,extends,false,final,finally,float,for,function,goto,if,implements,import,ininstanceof,intinterface,long,native,new,null,package,private,protected,public,return,short,static,super,switch,synchronized,this,throw,throws,transient,true,try,typeof,var,volatile,void,undefined,while,with".split(/,/),
function(a){Qb[a]=true});var Hc=/^function\s*[^\(]*\(([^\)]*)\)/,Ic=/,/,Jc=/^\s*(((\$?).+?)(_?))\s*$/,Gc=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,mb={"null":function(){return A},"true":function(){return true},"false":function(){return false},$undefined:D,"+":function(a,b,c){return(I(b)?b:0)+(I(c)?c:0)},"-":function(a,b,c){return(I(b)?b:0)-(I(c)?c:0)},"*":function(a,b,c){return b*c},"/":function(a,b,c){return b/c},"%":function(a,b,c){return b%c},"^":function(a,b,c){return b^c},"=":D,"==":function(a,b,c){return b==
c},"!=":function(a,b,c){return b!=c},"<":function(a,b,c){return b<c},">":function(a,b,c){return b>c},"<=":function(a,b,c){return b<=c},">=":function(a,b,c){return b>=c},"&&":function(a,b,c){return b&&c},"||":function(a,b,c){return b||c},"&":function(a,b,c){return b&c},"|":function(a,b,c){return c(a,b)},"!":function(a,b){return!b}},Lc={n:"\n",f:"\u000c",r:"\r",t:"\t",v:"\u000b","'":"'",'"':'"'};Xb.prototype={url:function(a){var b=this,c=this.template,d;a=a||{};t(this.urlParams,function(g,f){d=eb(a[f]||
b.defaults[f]||"");c=c.replace(RegExp(":"+f+"(\\W)"),d+"$1")});c=c.replace(/\/?#$/,"");var e=[];$a(a,function(g,f){b.urlParams[f]||e.push(eb(f)+"="+eb(g))});c=c.replace(/\/*$/,"");return c+(e.length?"?"+e.join("&"):"")}};Ra.DEFAULT_ACTIONS={get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:true},remove:{method:"DELETE"},"delete":{method:"DELETE"}};Ra.prototype={route:function(a,b,c){function d(i){var h={};t(b||{},function(j,k){h[k]=j.charAt&&j.charAt(0)=="@"?Ja(i,j.substr(1)):j});
return h}function e(i){U(i||{},this)}var g=this,f=new Xb(a);c=B({},Ra.DEFAULT_ACTIONS,c);t(c,function(i,h){var j=i.method=="POST"||i.method=="PUT";e[h]=function(k,l,n){var q={},o,x=D;switch(arguments.length){case 3:x=n;case 2:if(L(l))x=l;else{q=k;o=l;break}case 1:if(L(k))x=k;else if(j)o=k;else q=k;break;case 0:break;default:throw"Expected between 0-3 arguments [params, data, callback], got "+arguments.length+" arguments.";}var s=this instanceof e?this:i.isArray?[]:new e(o);g.xhr(i.method,f.url(B({},
i.params||{},d(o),q)),o,function(p,z){if(p==200){if(i.isArray){s.length=0;t(z,function(K){s.push(new e(K))})}else U(z,s);(x||D)(s)}else throw{status:p,response:z,message:p+": "+z};},i.verifyCache);return s};e.bind=function(k){return g.route(a,B({},b,k),c)};e.prototype["$"+h]=function(k,l){var n=d(this),q=D;switch(arguments.length){case 2:n=k;q=l;case 1:if(typeof k==ja)q=k;else n=k;case 0:break;default:throw"Expected between 1-2 arguments [params, callback], got "+arguments.length+" arguments.";}e[h].call(this,
n,j?this:$,q)}});return e}};var ad=J.XMLHttpRequest||function(){try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(b){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(c){}throw new ba("This browser does not support XMLHttpRequest.");},Nc={"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json, text/plain, */*","X-Requested-With":"XMLHttpRequest"},dc=/^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/,
cc=/^<\s*\/\s*([\w:-]+)[^>]*>/,Oc=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,Qc=/^</,Pc=/^<\s*\//,Rc=/<!--(.*?)--\>/g,Sc=/<!\[CDATA\[(.*?)]]\>/g,Vc=/^((ftp|https?):\/\/|mailto:|#)/,Tc=/([^\#-~| |!])/g,ac=za("area,br,col,hr,img"),Yb=za("address,blockquote,center,dd,del,dir,div,dl,dt,hr,ins,li,map,menu,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul"),Zb=za("a,abbr,acronym,b,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,q,s,samp,small,span,strike,strong,sub,sup,tt,u,var"),
$b=za("colgroup,dd,dt,li,p,td,tfoot,th,thead,tr"),bc=za("script,style"),fc=B({},ac,Yb,Zb,$b),gc=za("background,href,longdesc,src,usemap"),Uc=B({},gc,za("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,span,start,summary,target,title,type,valign,value,vspace,width")),sb=da.createElement("pre"),Ta={},Sa="ng-"+(new Date).getTime(),
Yc=1,bd=J.document.addEventListener?function(a,b,c){a.addEventListener(b,c,false)}:function(a,b,c){a.attachEvent("on"+b,c)},Xc=J.document.removeEventListener?function(a,b,c){a.removeEventListener(b,c,false)}:function(a,b,c){a.detachEvent("on"+b,c)};ka&&B(ma.prototype,{text:function(a){var b=this[0];if(b.nodeType==3){if(I(a))b.nodeValue=a;return b.nodeValue}else{if(I(a))b.innerText=a;return b.innerText}}});var Kb=ma.prototype={ready:function(a){function b(){if(!c){c=true;a()}}var c=false;this.bind("DOMContentLoaded",
b);gb(J).bind("load",b)},toString:function(){var a=[];t(this,function(b){a.push(""+b)});return"["+a.join(", ")+"]"},length:0,push:T,sort:[].sort,splice:[].splice};t({data:ub,scope:function(a){for(var b;a&&!(b=C(a).data("$scope"));)a=a.parentNode;return b},removeAttr:function(a,b){a.removeAttribute(b)},hasClass:vb,css:function(a,b,c){if(I(c))a.style[b]=c;else return a.style[b]},attr:function(a,b,c){if(I(c))a.setAttribute(b,c);else if(a.getAttribute)return a.getAttribute(b,2)},text:B(ka?function(a,
b){if(a.nodeType==3){if(N(b))return a.nodeValue;a.nodeValue=b}else{if(N(b))return a.innerText;a.innerText=b}}:function(a,b){if(N(b))return a.textContent;a.textContent=b},{$dv:""}),val:function(a,b){if(N(b))return a.value;a.value=b},html:function(a,b){if(N(b))return a.innerHTML;for(var c=0,d=a.childNodes;c<d.length;c++)Ka(d[c]);a.innerHTML=b}},function(a,b){ma.prototype[b]=function(c,d){if((a.length==2?c:d)===qa)if(X(c)){for(var e=0;e<this.length;e++)for(var g in c)a(this[e],g,c[g]);return this}else{if(this.length)return a(this[0],
c,d)}else{for(e=0;e<this.length;e++)a(this[e],c,d);return this}return a.$dv}});t({removeData:hc,dealoc:Ka,bind:function(a,b,c){var d=ub(a,"bind"),e;d||ub(a,"bind",d={});t(b.split(" "),function(g){e=d[g];if(!e){d[g]=e=function(f){if(!f.preventDefault)f.preventDefault=function(){f.returnValue=false};if(!f.stopPropagation)f.stopPropagation=function(){f.cancelBubble=true};t(e.fns,function(i){i.call(a,f)})};e.fns=[];bd(a,g,e)}e.fns.push(c)})},replaceWith:function(a,b){var c,d=a.parentNode;Ka(a);t(new ma(b),
function(e){c?d.insertBefore(e,c.nextSibling):d.replaceChild(e,a);c=e})},children:function(a){var b=[];t(a.childNodes,function(c){c.nodeName!="#text"&&b.push(c)});return b},append:function(a,b){t(new ma(b),function(c){a.appendChild(c)})},remove:function(a){Ka(a);var b=a.parentNode;b&&b.removeChild(a)},after:function(a,b){var c=a,d=a.parentNode;t(new ma(b),function(e){d.insertBefore(e,c.nextSibling);c=e})},addClass:jc,removeClass:ic,toggleClass:function(a,b,c){if(N(c))c=!vb(a,b);(c?jc:ic)(a,b)},parent:function(a){return a.parentNode||
null},next:function(a){return a.nextSibling},find:function(a,b){return a.getElementsByTagName(b)},clone:function(a){return a.cloneNode(true)}},function(a,b){ma.prototype[b]=function(c,d){for(var e,g=0;g<this.length;g++)if(e==qa){e=a(this[g],c,d);if(e!==qa)e=C(e)}else tb(e,a(this[g],c,d));return e==qa?this:e}});T={typeOf:function(a){if(a===A)return Pa;var b=typeof a;if(b==Bb){if(a instanceof Array)return"array";if(a instanceof Date)return"date";if(a.nodeType==1)return"element"}return b}};ca={copy:U,
size:function(a){var b=0,c;if(a)if(Ca(a.length))return a.length;else if(X(a))for(c in a)b++;return b},equals:Ha};var cd={extend:B},dd={indexOf:Ga,sum:function(a,b){for(var c=E.Function.compile(b),d=0,e=0;e<a.length;e++){var g=1*c(a[e]);isNaN(g)||(d+=g)}return d},remove:function(a,b){var c=Ga(a,b);c>=0&&a.splice(c,1);return b},filter:function(a,b){var c=[];c.check=function(h){for(var j=0;j<c.length;j++)if(!c[j](h))return false;return true};var d=function(h,j){if(j.charAt(0)==="!")return!d(h,j.substr(1));
switch(typeof h){case "boolean":case "number":case "string":return(""+h).toLowerCase().indexOf(j)>-1;case "object":for(var k in h)if(k.charAt(0)!=="$"&&d(h[k],j))return true;return false;case "array":for(k=0;k<h.length;k++)if(d(h[k],j))return true;return false;default:return false}};switch(typeof b){case "boolean":case "number":case "string":b={$:b};case "object":for(var e in b)e=="$"?function(){var h=(""+b[e]).toLowerCase();h&&c.push(function(j){return d(j,h)})}():function(){var h=e,j=(""+b[e]).toLowerCase();
j&&c.push(function(k){return d(Ja(k,h),j)})}();break;case ja:c.push(b);break;default:return a}for(var g=[],f=0;f<a.length;f++){var i=a[f];c.check(i)&&g.push(i)}return g},add:function(a,b){a.push(N(b)?{}:b);return a},count:function(a,b){if(!b)return a.length;var c=E.Function.compile(b),d=0;t(a,function(e){c(e)&&d++});return d},orderBy:function(a,b,c){function d(i,h){return Ea(h)?function(j,k){return i(k,j)}:i}function e(i,h){var j=typeof i,k=typeof h;if(j==k){if(j=="string")i=i.toLowerCase();if(j==
"string")h=h.toLowerCase();if(i===h)return 0;return i<h?-1:1}else return j<k?-1:1}b=ia(b)?b:[b];b=xc(b,function(i){var h=false,j=i||ra;if(G(i)){if(i.charAt(0)=="+"||i.charAt(0)=="-"){h=i.charAt(0)=="-";i=i.substring(1)}j=xa(i).fnSelf}return d(function(k,l){return e(j(k),j(l))},h)});for(var g=[],f=0;f<a.length;f++)g.push(a[f]);return g.sort(d(function(i,h){for(var j=0;j<b.length;j++){var k=b[j](i,h);if(k!==0)return k}return 0},c))},limitTo:function(a,b){b=parseInt(b,10);var c=[],d,e;if(b>0){d=0;e=
b}else{d=a.length+b;e=a.length}for(;d<e;d++)c.push(a[d]);return c}},ed=/^(\d{4})-(\d\d)-(\d\d)(?:T(\d\d)(?:\:(\d\d)(?:\:(\d\d)(?:\.(\d{3}))?)?)?Z)?$/,ib={quote:function(a){return'"'+a.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v")+'"'},quoteUnicode:function(a){a=E.String.quote(a);for(var b=[],c=0;c<a.length;c++){var d=a.charCodeAt(c);if(d<128)b.push(a.charAt(c));else{d="000"+d.toString(16);b.push("\\u"+
d.substring(d.length-4))}}return b.join("")},toDate:function(a){var b;if(G(a)&&(b=a.match(ed))){a=new Date(0);a.setUTCFullYear(b[1],b[2]-1,b[3]);a.setUTCHours(b[4]||0,b[5]||0,b[6]||0,b[7]||0);return a}return a}},qc={toString:function(a){return!a?a:a.toISOString?a.toISOString():ga(a.getUTCFullYear(),4)+"-"+ga(a.getUTCMonth()+1,2)+"-"+ga(a.getUTCDate(),2)+"T"+ga(a.getUTCHours(),2)+":"+ga(a.getUTCMinutes(),2)+":"+ga(a.getUTCSeconds(),2)+"."+ga(a.getUTCMilliseconds(),3)+"Z"}};Aa("Global",[T]);Aa("Collection",
[T,ca]);Aa("Array",[T,ca,dd]);Aa("Object",[T,ca,cd]);Aa("String",[T,ib]);Aa("Date",[T,qc]);E.Date.toString=qc.toString;Aa("Function",[T,ca,{compile:function(a){return L(a)?a:a?xa(a).fnSelf:ra}}]);fa.currency=function(a){this.$element.toggleClass("ng-format-negative",a<0);return"$"+fa.number.apply(this,[a,2])};fa.number=function(a,b){if(isNaN(a)||!isFinite(a))return"";b=typeof b==sa?2:b;var c=a<0;a=Math.abs(a);var d=""+Math.round(a*Math.pow(10,b)),e=d.substring(0,d.length-b);e=e||"0";var g=d.substring(d.length-
b);d=c?"-":"";for(c=0;c<e.length;c++){if((e.length-c)%3===0&&c!==0)d+=",";d+=e.charAt(c)}if(b>0){for(e=g.length;e<b;e++)g+="0";d+="."+g.substring(0,b)}return d};var fd={yyyy:W("FullYear",4),yy:W("FullYear",2,0,true),MM:W("Month",2,1),M:W("Month",1,1),dd:W("Date",2),d:W("Date",1),HH:W("Hours",2),H:W("Hours",1),hh:W("Hours",2,-12),h:W("Hours",1,-12),mm:W("Minutes",2),m:W("Minutes",1),ss:W("Seconds",2),s:W("Seconds",1),a:function(a){return a.getHours()<12?"am":"pm"},Z:function(a){a=a.getTimezoneOffset();
return ga(a/60,2)+ga(Math.abs(a%60),2)}},gd=/([^yMdHhmsaZ]*)(y+|M+|d+|H+|h+|m+|s+|a|Z)(.*)/,hd=/^\d+$/;fa.date=function(a,b){if(G(a))a=hd.test(a)?parseInt(a,10):ib.toDate(a);if(Ca(a))a=new Date(a);if(!(a instanceof Date))return a;var c=a.toLocaleDateString(),d;if(b&&G(b)){c="";for(var e=[],g;b;)if(g=gd.exec(b)){e=e.concat(ua.call(g,1,g.length));b=e.pop()}else{e.push(b);b=null}t(e,function(f){d=fd[f];c+=d?d(a):f})}return c};fa.json=function(a){this.$element.addClass("ng-monospace");return ea(a,true)};
fa.lowercase=O;fa.uppercase=Za;fa.html=function(a,b){return new bb(a,b)};fa.linky=function(a){if(!a)return a;for(var b=/((ftp|https?):\/\/|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s\.\;\,\(\)\{\}\<\>]/,c=a,d=[],e=Db(d),g,f;a=c.match(b);){g=a[0];if(a[2]==a[3])g="mailto:"+g;f=a.index;e.chars(c.substr(0,f));e.start("a",{href:g});e.chars(a[0].replace(/^mailto:/,""));e.end("a");c=c.substring(f+a[0].length)}e.chars(c);return new bb(d.join(""))};var id=/^\s*[-+]?\d*(\.\d*)?\s*$/;pa.noop=Ba(ra,ra);pa.json=Ba(ea,
function(a){return va(a||"null")});pa["boolean"]=Ba(kc,Ea);pa.number=Ba(kc,function(a){if(a==A||id.exec(a))return a===A||a===""?A:1*a;else throw"Not a number";});pa.list=Ba(function(a){return a?a.join(", "):a},function(a){var b=[];t((a||"").split(","),function(c){(c=Da(c))&&b.push(c)});return b});pa.trim=Ba(function(a){return a?Da(""+a):""});pa.index=Ba(function(a,b){return""+Ga(b||[],a)},function(a,b){return(b||[])[a]});B(pb,{noop:function(){return A},regexp:function(a,b,c){return a.match(b)?A:c||
"Value does not match expected format "+b+"."},number:function(a,b,c){var d=1*a;if(d==a){if(typeof b!=sa&&d<b)return"Value can not be less than "+b+".";if(typeof b!=sa&&d>c)return"Value can not be greater than "+c+".";return A}else return"Not a number"},integer:function(a,b,c){if(b=pb.number(a,b,c))return b;if(!(""+a).match(/^\s*[\d+]*\s*$/)||a!=Math.round(a))return"Not a whole number";return A},date:function(a){var b=(a=/^(\d\d?)\/(\d\d?)\/(\d\d\d\d)$/.exec(a))?new Date(a[3],a[1]-1,a[2]):0;return b&&
b.getFullYear()==a[3]&&b.getMonth()==a[1]-1&&b.getDate()==a[2]?A:"Value is not a date. (Expecting format: 12/31/2009)."},email:function(a){if(a.match(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/))return A;return"Email needs to be in username@host.com format."},phone:function(a){if(a.match(/^1\(\d\d\d\)\d\d\d-\d\d\d\d$/))return A;if(a.match(/^\+\d{2,3} (\(\d{1,5}\))?[\d ]+\d$/))return A;return"Phone number needs to be in 1(987)654-3210 format in North America or +999 (123) 45678 906 internationaly."},
url:function(a){if(a.match(/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/))return A;return"URL needs to be in http://server[:port]/path format."},json:function(a){try{va(a);return A}catch(b){return b.toString()}},asynchronous:function(a,b,c){if(a){var d=this,e=d.$element,g=e.data("$asyncValidator");g||e.data("$asyncValidator",g={inputs:{}});g.current=a;var f=g.inputs[a],i=d.$service("$invalidWidgets");if(f)f.inFlight?i.markInvalid(d.$element):(c||D)(f.response);
else{g.inputs[a]=f={inFlight:true};i.markInvalid(d.$element);e.addClass("ng-input-indicator-wait");b(a,function(h,j){f.response=j;f.error=h;f.inFlight=false;if(g.current==a){e.removeClass("ng-input-indicator-wait");i.markValid(e)}e.data(Ab)();d.$service("$updateView")()})}return f.error}}});Q("$cookieStore",function(a){return{get:function(b){return va(a[b])},put:function(b,c){a[b]=ea(c)},remove:function(b){delete a[b]}}},["$cookies"]);Q("$cookies",function(a){var b=this,c={},d={},e,g=false;a.addPollFn(function(){var f=
a.cookies();if(e!=f){e=f;U(f,d);U(f,c);g&&b.$eval()}})();g=true;this.$onEval(99999,function(){var f,i,h;for(f in d)N(c[f])&&a.cookies(f,$);for(f in c){i=c[f];if(G(i)){if(i!==d[f]){a.cookies(f,i);h=true}}else if(I(d[f]))c[f]=d[f];else delete c[f]}if(h){i=a.cookies();for(f in c)if(c[f]!==i[f])if(N(i[f]))delete c[f];else c[f]=i[f]}});return c},["$browser"]);Q("$defer",function(a,b,c){return function(d,e){a.defer(function(){try{d()}catch(g){b(g)}finally{c()}},e)}},["$browser","$exceptionHandler","$updateView"]);
Q("$document",function(a){return C(a.document)},["$window"]);Q("$exceptionHandler",function(a){return function(b){a.error(b)}},["$log"]);Q("$hover",function(a,b){var c,d,e=C(b[0].body);a.hover(function(g,f){if(f&&(d=g.attr(Qa)||g.attr(Ma))){if(!c){c={callout:C('<div id="ng-callout"></div>'),arrow:C("<div></div>"),title:C('<div class="ng-title"></div>'),content:C('<div class="ng-content"></div>')};c.callout.append(c.arrow);c.callout.append(c.title);c.callout.append(c.content);e.append(c.callout)}var i=
e[0].getBoundingClientRect(),h=g[0].getBoundingClientRect();i=i.right-h.right-10;c.title.text(g.hasClass("ng-exception")?"EXCEPTION:":"Validation error...");c.content.text(d);if(i<300){c.arrow.addClass("ng-arrow-right");c.arrow.css({left:"301px"});c.callout.css({position:"fixed",left:h.left-10-300-4+"px",top:h.top-3+"px",width:"300px"})}else{c.arrow.addClass("ng-arrow-left");c.callout.css({position:"fixed",left:h.right+10+"px",top:h.top-3+"px",width:"300px"})}}else if(c){c.callout.remove();c=A}})},
["$browser","$document"],true);Q("$invalidWidgets",function(){function a(c){if(c==J.document)return false;c=c.parentNode;return!c||a(c)}var b=[];b.markValid=function(c){c=Ga(b,c);c!=-1&&b.splice(c,1)};b.markInvalid=function(c){Ga(b,c)===-1&&b.push(c)};b.visible=function(){var c=0;t(b,function(d){var e=c;d=d[0].getBoundingClientRect();var g=d.height||d.bottom||0-d.top||0;c=e+((d.width||d.right||0-d.left||0)>0&&g>0?1:0)});return c};this.$onEval(99999,function(){for(var c=0;c<b.length;){var d=b[c];if(a(d[0])){b.splice(c,
1);d.dealoc&&d.dealoc()}else c++}});return b});var jd=/^(file|ftp|http|https):\/\/(\w+:{0,1}\w*@)?([\w\.-]*)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,kd=/^([^\?]*)?(\?([^\?]*))?$/,rc={http:80,https:443,ftp:21};Q("$location",function(a){function b(k){if(G(k)){var l=B,n=h,q={},o=jd.exec(k);if(o){q.href=k.replace(/#$/,"");q.protocol=o[1];q.host=o[3]||"";q.port=o[5]||rc[q.protocol]||A;q.path=o[6]||"";q.search=db(o[8]);q.hash=o[10]||"";B(q,f(q.hash))}l(n,q)}else{if(I(k.hash))B(k,G(k.hash)?f(k.hash):
k.hash);B(h,k);if(I(k.hashPath||k.hashSearch))h.hash=g(h);h.href=e(h)}}function c(k,l){var n={};if(G(k)){n.hashPath=k;n.hashSearch=l||{}}else n.hashSearch=k;n.hash=g(n);b({hash:n})}function d(){if(!Ha(h,j)){if(h.href==j.href)if(h.hash!=j.hash){var k=f(h.hash);c(k.hashPath,k.hashSearch)}else{h.hash=g(h);h.href=e(h)}b(h.href)}}function e(k){var l=Ib(k.search),n=k.port==rc[k.protocol]?A:k.port;return k.protocol+"://"+k.host+(n?":"+n:"")+k.path+(l?"?"+l:"")+(k.hash?"#"+k.hash:"")}function g(k){var l=
Ib(k.hashSearch);return escape(k.hashPath).replace(/%21/gi,"!").replace(/%3A/gi,":").replace(/%24/gi,"$")+(l?"?"+l:"")}function f(k){var l={},n=kd.exec(k);if(n){l.hash=k;l.hashPath=unescape(n[1]||"");l.hashSearch=db(n[3])}return l}var i=this,h={update:b,updateHash:c},j={};a.onHashChange(function(){b(a.getUrl());U(h,j);i.$eval()})();this.$onEval(-99999,d);this.$onEval(99999,function(){d();if(a.getUrl()!=h.href){a.setUrl(h.href);U(h,j)}});return h},["$browser"]);Q("$log",function(a){function b(c){var d=
a.console||{},e=d[c]||d.log||D;return e.apply?function(){var g=[];t(arguments,function(f){g.push(ab(f))});return e.apply(d,g)}:e}return{log:b("log"),warn:b("warn"),info:b("info"),error:b("error")}},["$window"]);Q("$resource",function(a){a=new Ra(a);return V(a,a.route)},["$xhr.cache"]);Q("$route",function(a,b){var c={},d=[],e=function(h,j,k){var l="^"+j.replace(/[\.\\\(\)\^\$]/g,"$1")+"$",n=[],q={};t(j.split(/\W/),function(x){if(x){var s=RegExp(":"+x+"([\\W])");if(l.match(s)){l=l.replace(s,"([^/]*)$1");
n.push(x)}}});var o=h.match(RegExp(l));if(o){t(n,function(x,s){q[x]=o[s+1]});k&&this.$set(k,q)}return o?q:A},g=this,f=0,i={routes:c,onChange:function(h){d.push(h);return h},parent:function(h){if(h)g=h},when:function(h,j){if(N(h))return c;var k=c[h];k||(k=c[h]={});j&&B(k,j);f++;return k},otherwise:function(h){i.when(null,h)},reload:function(){f++}};this.$watch(function(){return f+a.hash},function(){var h,j,k,l,n,q;i.current=A;t(c,function(o,x){if(!k)if(k=e(a.hashPath,x))j=o});if(j=j||c[A]){if(j.redirectTo){if(G(j.redirectTo)){q=
{hashPath:"",hashSearch:B({},a.hashSearch,k)};t(j.redirectTo.split(":"),function(o,x){if(x==0)q.hashPath+=o;else{l=o.match(/(\w+)(.*)/);n=l[1];q.hashPath+=k[n]||a.hashSearch[n];q.hashPath+=l[2]||"";delete q.hashSearch[n]}})}else q={hash:j.redirectTo(k,a.hash,a.hashPath,a.hashSearch)};a.update(q);b();return}h=la(g);i.current=B({},j,{scope:h,params:B({},a.hashSearch,k)})}t(d,g.$tryEval);h&&h.$become(i.current.controller)});return i},["$location","$updateView"]);wb.delay=25;Q("$updateView",wb,["$browser"]);
Q("$window",V(J,ra,J));Q("$xhr.bulk",function(a,b,c){function d(g,f,i,h){if(L(i)){h=i;i=A}var j;t(d.urls,function(k){if(L(k.match)?k.match(f):k.match.exec(f))j=k});if(j){if(!j.requests)j.requests=[];j.requests.push({method:g,url:f,data:i,callback:h})}else a(g,f,i,h)}var e=this;d.urls={};d.flush=function(g){t(d.urls,function(f,i){var h=f.requests;if(h&&h.length){f.requests=[];f.callbacks=[];a("POST",i,{requests:h},function(j,k){t(k,function(l,n){try{l.status==200?(h[n].callback||D)(l.status,l.response):
b(h[n],l)}catch(q){c.error(q)}});(g||D)()});e.$eval()}})};this.$onEval(99999,d.flush);return d},["$xhr","$xhr.error","$log"]);Q("$xhr.cache",function(a,b,c){function d(g,f,i,h,j){if(L(i)){h=i;i=A}if(g=="GET"){var k;if(k=d.data[f]){b(function(){h(200,U(k.value))});if(!j)return}if(j=e[f])j.callbacks.push(h);else{e[f]={callbacks:[h]};d.delegate(g,f,i,function(l,n){if(l==200)d.data[f]={value:n};var q=e[f].callbacks;delete e[f];t(q,function(o){try{(o||D)(l,U(n))}catch(x){c.error(x)}})})}}else{d.data={};
d.delegate(g,f,i,h)}}var e={};d.data={};d.delegate=a;return d},["$xhr.bulk","$defer","$log"]);Q("$xhr.error",function(a){return function(b,c){a.error("ERROR: XHR: "+b.url,b,c)}},["$log"]);Q("$xhr",function(a,b,c,d){return function(e,g,f,i){if(L(f)){i=f;f=A}if(f&&X(f))f=ea(f);a.xhr(e,g,f,function(h,j){try{if(G(j)){if(j.match(/^\)\]\}',\n/))j=j.substr(6);if(/^\s*[\[\{]/.exec(j)&&/[\}\]]\s*$/.exec(j))j=va(j,true)}200<=h&&h<300?i(h,j):b({method:e,url:g,data:f,callback:i},{status:h,body:j})}catch(k){c.error(k)}finally{d()}},
{"X-XSRF-TOKEN":a.cookies()["XSRF-TOKEN"]})}},["$browser","$xhr.error","$log","$updateView"]);P("ng:init",function(a){return function(b){this.$tryEval(a,b)}});P("ng:controller",function(a){this.scope(true);return function(){var b=Ja(J,a,true)||Ja(this,a,true);if(!b)throw"Can not find '"+a+"' controller.";if(!L(b))throw"Reference '"+a+"' is not a class.";this.$become(b)}});P("ng:eval",function(a){return function(b){this.$onEval(a,b)}});P("ng:bind",function(a,b){b.addClass("ng-binding");return function(c){var d=
D,e=D;this.$onEval(function(){var g,f,i,h,j;h=this.hasOwnProperty(nc)?this.$element:$;this.$element=c;f=this.$tryEval(a,function(k){g=ab(k)});this.$element=h;if(h=f instanceof bb)f=(i=f).html;if(!(d===f&&e==g)){j=f&&(f.nodeName||f.bind&&f.find);if(!h&&!j&&X(f))f=ea(f,true);if(f!=d||g!=e){d=f;e=g;ta(c,Qa,g);if(g)f=g;if(h)c.html(i.get());else if(j){c.html("");c.append(f)}else c.text(f==$?"":f)}}},c)}});var mc={};P("ng:bind-template",function(a,b){b.addClass("ng-binding");var c=lc(a);return function(d){var e;
this.$onEval(function(){var g=c.call(this,d,true);if(g!=e){d.text(g);e=g}},d)}});var ld={disabled:"disabled",readonly:"readOnly",checked:"checked",selected:"selected"};P("ng:bind-attr",function(a){return function(b){var c={},d=b.data("$update")||D;this.$onEval(function(){var e=this.$eval(a),g=D,f;for(f in e){var i=lc(e[f]).call(this,b),h=ld[O(f)];if(c[f]!==i){c[f]=i;if(h){if(Ea(i)){b.attr(h,h);b.attr("ng-"+h,i)}else{b.removeAttr(h);b.removeAttr("ng-"+h)}(b.data(Ab)||D)()}else b.attr(f,i);g=d}}g()},
b)}});P("ng:click",function(a){return B(function(b,c){var d=this;c.bind("click",function(e){d.$tryEval(a,c);b();e.stopPropagation()})},{$inject:["$updateView"]})});P("ng:submit",function(a){return B(function(b,c){var d=this;c.bind("submit",function(e){d.$tryEval(a,c);b();e.preventDefault()})},{$inject:["$updateView"]})});P("ng:class",xb(function(){return true}));P("ng:class-odd",xb(function(a){return a%2===0}));P("ng:class-even",xb(function(a){return a%2===1}));P("ng:show",function(a){return function(b){this.$onEval(function(){b.css("display",
Ea(this.$eval(a))?"":"none")},b)}});P("ng:hide",function(a){return function(b){this.$onEval(function(){b.css("display",Ea(this.$eval(a))?"none":"")},b)}});P("ng:style",function(a){return function(b){var c=Wc(b);this.$onEval(function(){var d=this.$eval(a)||{},e,g={};for(e in d){if(c[e]===$)c[e]="";g[e]=d[e]}for(e in c)g[e]=g[e]||c[e];b.css(g)},b)}});cb("{{}}",function(a,b,c){var d=Ua(a);if(d.length>1||Va(d[0])!==A)if(yc(c[0]))c.attr("ng:bind-template",a);else{var e=b,g;t(Ua(a),function(f){var i=Va(f);
if(i){g=C("<span>");g.attr("ng:bind",i)}else g=C(da.createTextNode(f));if(ka&&f.charAt(0)==" "){g=C("<span>&nbsp;</span>");i=g.html();g.text(f.substr(1));g.html(i+g.html())}e.after(g);e=g});b.remove()}});cb("option",function(a,b,c){if(O(Ia(c))=="option")if(ka<=7)Cb(c[0].outerHTML,{start:function(d,e){N(e.value)&&c.attr("value",a)}});else c[0].getAttribute("value")==null&&c.attr("value",a)});var md={"ng:src":"src","ng:href":"href"};Hb("{{}}",function(a,b,c){if(!(P(b)||P("@"+b))){if(ka&&b=="src")a=
decodeURI(a);var d=Ua(a);if(d.length>1||Va(d[0])!==A){c.removeAttr(b);d=va(c.attr("ng:bind-attr")||"{}");d[md[b]||b]=a;c.attr("ng:bind-attr",ea(d))}}});T=Fa("keydown change",La,zb,Xa(),true);ca=Fa("click",pc,pc,D);var Zc={text:T,textarea:T,hidden:T,password:T,button:ca,submit:ca,reset:ca,image:ca,checkbox:Fa("click",yb,function(a,b){var c=b[0];return{get:function(){return!!c.checked},set:function(d){c.checked=Ea(d)}}},Xa(false)),radio:Fa("click",yb,function(a,b){var c=b[0];return{get:function(){return c.checked?
c.value:A},set:function(d){c.checked=d==c.value}}},function(a,b,c){var d=a.get(),e=b.get();c=c[0];c.checked=false;c.name=this.$id+"@"+c.name;if(N(d))a.set(d=A);d==A&&e!==A&&a.set(e);b.set(d)}),"select-one":Fa("change",La,zb,Xa(A)),"select-multiple":Fa("change",La,oc,Xa([]))};Z("input",Ya);Z("textarea",Ya);Z("button",Ya);Z("select",function(a){this.descend(true);return Ya.call(this,a)});Z("option",function(){this.descend(true);this.directives(true);return function(a){var b=a.parent(),c=b[0].type==
"select-multiple",d=b.scope(),e=La(d,b);if(e){var g=yb(d,b),f=c?oc(d,b):zb(d,b),i=a.attr("value"),h=a.attr("ng-selected");a.data("$update",c?function(){f.set(e.get())}:function(){var j=a.attr("value"),k=a.attr("ng-selected"),l=e.get();if(h!=k||i!=j){h=k;i=j;if(k||!l==null||l==qa)g.set(j);j==l&&f.set(i)}})}}});Z("ng:include",function(a){var b=this,c=a.attr("src"),d=a.attr("scope")||"",e=a[0].getAttribute("onload")||"";if(a[0]["ng:compiled"]){this.descend(true);this.directives(true)}else{a[0]["ng:compiled"]=
true;return B(function(g,f){function i(){k++}var h=this,j,k=0,l=false;this.$watch(c,i);this.$watch(d,i);h.$onEval(function(){if(j&&!l){l=true;try{j.$eval()}finally{l=false}}});this.$watch(function(){return k},function(){var n=this.$eval(c),q=this.$eval(d);if(n)g("GET",n,function(o,x){f.html(x);j=q||la(h);b.compile(f)(j);h.$eval(e)});else{j=null;f.html("")}})},{$inject:["$xhr.cache"]})}});var nd=Z("ng:switch",function(a){var b=this,c=a.attr("on"),d=a.attr("using")||"equals",e=d.split(":"),g=nd[e.shift()],
f=a.attr("change")||"",i=[];if(!g)throw"Using expression '"+d+"' unknown.";if(!c)throw"Missing 'on' attribute.";Nb(a,function(h){var j=h.attr("ng:switch-when"),k={change:f,element:h,template:b.compile(h)};if(G(j)){k.when=function(l,n){var q=[n,j];t(e,function(o){q.push(o)});return g.apply(l,q)};i.unshift(k)}else if(G(h.attr("ng:switch-default"))){k.when=Na(true);i.push(k)}});t(i,function(h){h.element.remove()});a.html("");return function(h){var j=this,k;this.$watch(c,function(l){var n=false;h.html("");
k=la(j);t(i,function(q){if(!n&&q.when(k,l)){n=true;k.$tryEval(q.change,h);q.template(k,function(o){h.append(o)})}})});j.$onEval(function(){k&&k.$eval()})}},{equals:function(a,b){return""+a==b}});Z("a",function(){this.descend(true);this.directives(true);return function(a){a.attr("href")===""&&a.bind("click",function(b){b.preventDefault()})}});Z("@ng:repeat",function(a,b){b.removeAttr("ng:repeat");b.replaceWith(C("<!-- ng:repeat: "+a+" --!>"));var c=this.compile(b);return function(d){var e=a.match(/^\s*(.+)\s+in\s+(.*)\s*$/),
g,f,i,h;if(!e)throw ba("Expected ng:repeat in form of 'item in collection' but got '"+a+"'.");g=e[1];f=e[2];e=g.match(/^([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\)$/);if(!e)throw ba("'item' in 'item in collection' should be identifier or (key, value) but got '"+keyValue+"'.");i=e[3]||e[1];h=e[2];var j=[],k=this;this.$onEval(function(){var l=0,n=j.length,q=d,o=this.$tryEval(f,d),x=0,s,p;if(ia(o))x=o.length;else for(p in o)o.hasOwnProperty(p)&&x++;for(p in o)if(o.hasOwnProperty(p)){if(l<n){s=j[l];s[i]=
o[p];if(h)s[h]=p;q=s.$element}else{s=la(k);s[i]=o[p];if(h)s[h]=p;s.$index=l;s.$position=l==0?"first":l==x-1?"last":"middle";j.push(s);c(s,function(z){z.attr("ng:repeat-index",l);q.after(z);q=z})}s.$eval();l++}for(;j.length>l;)j.pop().$element.remove()},d)}});Z("@ng:non-bindable",D);Z("ng:view",function(a){var b=this;if(a[0]["ng:compiled"]){this.descend(true);this.directives(true)}else{a[0]["ng:compiled"]=true;return B(function(c,d,e){var g;d.onChange(function(){var f;if(d.current){f=d.current.template;
g=d.current.scope}f?c("GET",f,function(i,h){e.html(h);b.compile(e)(g)}):e.html("")})();this.$onEval(function(){g&&g.$eval()})},{$inject:["$xhr.cache","$route"]})}});var na;lb("$browser",function(a){if(!na){na=new Mc(J,C(J.document),C(J.document.body),ad,a);var b=na.addPollFn;na.addPollFn=function(){na.addPollFn=b;na.startPoller(100,function(c,d){setTimeout(c,d)});return b.apply(na,arguments)};na.bind()}return na},{$inject:["$log"]});B(E,{element:C,compile:Fb,scope:la,copy:U,extend:B,equals:Ha,forEach:t,
injector:Tb,noop:D,bind:V,toJson:ea,fromJson:va,identity:ra,isUndefined:N,isDefined:I,isString:G,isFunction:L,isObject:X,isNumber:Ca,isArray:ia});Jb();gb(da).ready(function(){var a=Ac(da),b=da,c=a.autobind;if(c){b=G(c)?b.getElementById(c):b;b=Fb(b)(la({$config:a})).$service("$browser");if(a.css)b.addCss(a.base_url+a.css);else ka<8&&b.addJs(a.base_url+a.ie_compat,a.ie_compat_id)}})})(window,document);angular.element(document).find("head").append('<style type="text/css">@charset "UTF-8";.ng-format-negative{color:red;}.ng-exception{border:2px solid #FF0000;font-family:"Courier New",Courier,monospace;font-size:smaller;white-space:pre;}.ng-validation-error{border:2px solid #FF0000;}#ng-callout{margin:0;padding:0;border:0;outline:0;font-size:13px;font-weight:normal;font-family:Verdana,Arial,Helvetica,sans-serif;vertical-align:baseline;background:transparent;text-decoration:none;}#ng-callout .ng-arrow-left{background-image:url("data:image/gif;base64,R0lGODlhCwAXAKIAAMzMzO/v7/f39////////wAAAAAAAAAAACH5BAUUAAQALAAAAAALABcAAAMrSLoc/AG8FeUUIN+sGebWAnbKSJodqqlsOxJtqYooU9vvk+vcJIcTkg+QAAA7");background-repeat:no-repeat;background-position:left top;position:absolute;z-index:101;left:-12px;height:23px;width:10px;top:-3px;}#ng-callout .ng-arrow-right{background-image:url("data:image/gif;base64,R0lGODlhCwAXAKIAAMzMzO/v7/f39////////wAAAAAAAAAAACH5BAUUAAQALAAAAAALABcAAAMrCLTcoM29yN6k9socs91e5X3EyJloipYrO4ohTMqA0Fn2XVNswJe+H+SXAAA7");background-repeat:no-repeat;background-position:left top;position:absolute;z-index:101;height:23px;width:11px;top:-2px;}#ng-callout{position:absolute;z-index:100;border:2px solid #CCCCCC;background-color:#fff;}#ng-callout .ng-content{padding:10px 10px 10px 10px;color:#333333;}#ng-callout .ng-title{background-color:#CCCCCC;text-align:left;padding-left:8px;padding-bottom:5px;padding-top:2px;font-weight:bold;}.ng-input-indicator-wait{background-image:url("data:image/png;base64,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");background-position:right;background-repeat:no-repeat;}</style>');

@ -1,2 +1,2 @@
0.9.12
0.9.13

@ -101,28 +101,27 @@ function MockBrowser() {
};
self.xhr = function(method, url, data, callback) {
if (angular.isFunction(data)) {
callback = data;
data = null;
}
self.xhr = function(method, url, data, callback, headers) {
headers = headers || {};
if (data && angular.isObject(data)) data = angular.toJson(data);
if (data && angular.isString(data)) url += "|" + data;
var expect = expectations[method] || {};
var response = expect[url];
if (!response) {
throw {
message: "Unexpected request for method '" + method + "' and url '" + url + "'.",
name: "Unexpected Request"
};
var expectation = expect[url];
if (!expectation) {
throw new Error("Unexpected request for method '" + method + "' and url '" + url + "'.");
}
requests.push(function(){
callback(response.code, response.response);
forEach(expectation.headers, function(value, key){
if (headers[key] !== value) {
throw new Error("Missing HTTP request header: " + key + ": " + value);
}
});
callback(expectation.code, expectation.response);
});
};
self.xhr.expectations = expectations;
self.xhr.requests = requests;
self.xhr.expect = function(method, url, data) {
self.xhr.expect = function(method, url, data, headers) {
if (data && angular.isObject(data)) data = angular.toJson(data);
if (data && angular.isString(data)) url += "|" + data;
var expect = expectations[method] || (expectations[method] = {});
@ -132,7 +131,7 @@ function MockBrowser() {
response = code;
code = 200;
}
expect[url] = {code:code, response:response};
expect[url] = {code:code, response:response, headers: headers || {}};
}
};
};

@ -6354,8 +6354,8 @@ var _undefined = undefined,
msie = parseInt((/msie (\d+)/.exec(lowercase(navigator.userAgent)) || [])[1], 10),
jqLite, // delay binding since jQuery could be loaded after us.
jQuery, // delay binding
slice = Array.prototype.slice,
push = Array.prototype.push,
slice = [].slice,
push = [].push,
error = window[$console]
? bind(window[$console], window[$console]['error'] || noop)
: noop,
@ -7101,19 +7101,7 @@ function encodeUriSegment(val) {
* This section explains how to bootstrap your application with angular, using either the angular
* javascript file, or manually.
*
*
* ## The angular distribution
* Note that there are two versions of the angular javascript file that you can use:
*
* * `angular.js` - the development version - this file is unobfuscated, uncompressed, and thus
* human-readable and useful when developing your angular applications.
* * `angular.min.js` - the production version - this is a minified and obfuscated version of
* `angular.js`. You want to use this version when you want to load a smaller but functionally
* equivalent version of the code in your application. We use the Closure compiler to create this
* file.
*
*
* ## Auto-bootstrap with `ng:autobind`
* # Auto-bootstrap with `ng:autobind`
* The simplest way to get an <angular/> application up and running is by inserting a script tag in
* your HTML file that bootstraps the `http://code.angularjs.org/angular-x.x.x.min.js` code and uses
* the special `ng:autobind` attribute, like in this snippet of HTML:
@ -7131,9 +7119,13 @@ function encodeUriSegment(val) {
&lt;/html&gt;
* </pre>
*
* The `ng:autobind` attribute tells <angular/> to compile and manage the whole HTML document. The
* compilation occurs in the page's `onLoad` handler. Note that you don't need to explicitly add an
* `onLoad` event; auto bind mode takes care of all the magic for you.
* The `ng:autobind` attribute without any value tells angular to compile and manage the whole HTML
* document. The compilation occurs as soon as the document is ready for DOM manipulation. Note that
* you don't need to explicitly add an `onLoad` event handler; auto bind mode takes care of all the
* work for you.
*
* In order to compile only a part of the document, specify the id of the element that should be
* compiled as the value of the `ng:autobind` attribute, e.g. `ng:autobind="angularContent"`.
*
*
* ## Auto-bootstrap with `#autobind`
@ -7158,6 +7150,8 @@ function encodeUriSegment(val) {
*
* In this case it's the `#autobind` URL fragment that tells angular to auto-bootstrap.
*
* Similarly to `ng:autobind`, you can specify an element id that should be exclusively targeted for
* compilation as the value of the `#autobind`, e.g. `#autobind=angularContent`.
*
* ## Filename Restrictions for Auto-bootstrap
* In order for us to find the auto-bootstrap script attribute or URL fragment, the value of the
@ -7191,12 +7185,9 @@ function encodeUriSegment(val) {
&lt;script type="text/javascript" src="http://code.angularjs.org/angular-0.9.3.min.js"
ng:autobind&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
(function(window, previousOnLoad){
window.onload = function(){
try { (previousOnLoad||angular.noop)(); } catch(e) {}
angular.compile(window.document);
};
})(window, window.onload);
(angular.element(document).ready(function() {
angular.compile(document)();
})(document);
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
@ -7238,10 +7229,12 @@ function encodeUriSegment(val) {
* APIs are bound to fields of this global object.
*
*/
function angularInit(config){
if (config.autobind) {
// TODO default to the source of angular.js
var scope = compile(window.document)(createScope({'$config':config})),
function angularInit(config, document){
var autobind = config.autobind;
if (autobind) {
var element = isString(autobind) ? document.getElementById(autobind) : document,
scope = compile(element)(createScope({'$config':config})),
$browser = scope.$service('$browser');
if (config.css)
@ -7267,7 +7260,7 @@ function angularJsConfig(document, config) {
eachAttribute(jqLite(scripts[j]), function(value, name){
if (/^ng:/.exec(name)) {
name = name.substring(3).replace(/-/g, '_');
if (name == 'autobind') value = true;
value = value || true;
config[name] = value;
}
});
@ -7346,7 +7339,7 @@ function fromJson(json, useNative) {
var obj, p, expression;
try {
if (useNative && JSON && JSON.parse) {
if (useNative && window.JSON && window.JSON.parse) {
obj = JSON.parse(json);
return transformDates(obj);
}
@ -9404,6 +9397,11 @@ var XHR = window.XMLHttpRequest || function () {
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e3) {}
throw new Error("This browser does not support XMLHttpRequest.");
};
var XHR_HEADERS = {
"Content-Type": "application/x-www-form-urlencoded",
"Accept": "application/json, text/plain, */*",
"X-Requested-With": "XMLHttpRequest"
};
/**
* @private
@ -9467,35 +9465,37 @@ function Browser(window, document, body, XHR, $log) {
*
* @param {string} method Requested method (get|post|put|delete|head|json)
* @param {string} url Requested url
* @param {string=} post Post data to send
* @param {?string} post Post data to send (null if nothing to post)
* @param {function(number, string)} callback Function that will be called on response
* @param {object=} header additional HTTP headers to send with XHR.
* Standard headers are:
* <ul>
* <li><tt>Content-Type</tt>: <tt>application/x-www-form-urlencoded</tt></li>
* <li><tt>Accept</tt>: <tt>application/json, text/plain, &#42;/&#42;</tt></li>
* <li><tt>X-Requested-With</tt>: <tt>XMLHttpRequest</tt></li>
* </ul>
*
* @description
* Send ajax request
*/
self.xhr = function(method, url, post, callback) {
if (isFunction(post)) {
callback = post;
post = _null;
}
self.xhr = function(method, url, post, callback, headers) {
outstandingRequestCount ++;
if (lowercase(method) == 'json') {
var callbackId = "angular_" + Math.random() + '_' + (idCounter++);
callbackId = callbackId.replace(/\d\./, '');
var script = document[0].createElement('script');
script.type = 'text/javascript';
script.src = url.replace('JSON_CALLBACK', callbackId);
var callbackId = ("angular_" + Math.random() + '_' + (idCounter++)).replace(/\d\./, '');
var script = jqLite('<script>')
.attr({type: 'text/javascript', src: url.replace('JSON_CALLBACK', callbackId)});
window[callbackId] = function(data){
window[callbackId] = _undefined;
script.remove();
completeOutstandingRequest(callback, 200, data);
};
body.append(script);
} else {
var xhr = new XHR();
xhr.open(method, url, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Accept", "application/json, text/plain, */*");
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
forEach(extend(XHR_HEADERS, headers || {}), function(value, key){
if (value) xhr.setRequestHeader(key, value);
});
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
completeOutstandingRequest(callback, xhr.status || 200, xhr.responseText);
@ -9677,7 +9677,7 @@ function Browser(window, document, body, XHR, $log) {
* @returns {Object} Hash of all cookies (if called without any parameter)
*/
self.cookies = function (name, value) {
var cookieLength, cookieArray, i, keyValue;
var cookieLength, cookieArray, cookie, i, keyValue, index;
if (name) {
if (value === _undefined) {
@ -9704,9 +9704,10 @@ function Browser(window, document, body, XHR, $log) {
lastCookies = {};
for (i = 0; i < cookieArray.length; i++) {
keyValue = cookieArray[i].split("=");
if (keyValue.length === 2) { //ignore nameless cookies
lastCookies[unescape(keyValue[0])] = unescape(keyValue[1]);
cookie = cookieArray[i];
index = cookie.indexOf('=');
if (index > 0) { //ignore nameless cookies
lastCookies[unescape(cookie.substring(0, index))] = unescape(cookie.substring(index + 1));
}
}
}
@ -10242,7 +10243,7 @@ function JQLiteAddNodes(root, elements) {
//////////////////////////////////////////
// Functions which are declared directly.
//////////////////////////////////////////
var JQLitePrototype = JQLite.prototype = extend([], {
var JQLitePrototype = JQLite.prototype = {
ready: function(fn) {
var fired = false;
@ -10260,8 +10261,12 @@ var JQLitePrototype = JQLite.prototype = extend([], {
var value = [];
forEach(this, function(e){ value.push('' + e);});
return '[' + value.join(', ') + ']';
}
});
},
length: 0,
push: push,
sort: [].sort,
splice: [].splice
};
//////////////////////////////////////////
// Functions iterating getter/setters.
@ -11039,12 +11044,13 @@ var angularArray = {
* {@link angular.Array} for more info.
*
* @param {Array} array The array to sort.
* @param {function(*, *)|string|Array.<(function(*, *)|string)>} expression A predicate to be
* @param {function(*)|string|Array.<(function(*)|string)>} expression A predicate to be
* used by the comparator to determine the order of elements.
*
* Can be one of:
*
* - `function`: JavaScript's Array#sort comparator function
* - `function`: getter function. The result of this function will be sorted using the
* `<`, `=`, `>` operator
* - `string`: angular expression which evaluates to an object to order by, such as 'name' to
* sort by a property called 'name'. Optionally prefixed with `+` or `-` to control ascending
* or descending sort order (e.g. +name or -name).
@ -13920,13 +13926,71 @@ angularServiceInject('$xhr.error', function($log){
* @ngdoc service
* @name angular.service.$xhr
* @function
* @requires $browser
* @requires $xhr.error
* @requires $log
* @requires $browser $xhr delegates all XHR requests to the `$browser.xhr()`. A mock version
* of the $browser exists which allows setting expectaitions on XHR requests
* in your tests
* @requires $xhr.error $xhr delegates all non `2xx` response code to this service.
* @requires $log $xhr delegates all exceptions to `$log.error()`.
* @requires $updateView After a server response the view needs to be updated for data-binding to
* take effect.
*
* @description
* Generates an XHR request. The $xhr service adds error handling then delegates all requests to
* {@link angular.service.$browser $browser.xhr()}.
* Generates an XHR request. The $xhr service delegates all requests to
* {@link angular.service.$browser $browser.xhr()} and adds error handling and security features.
* While $xhr service provides nicer api than raw XmlHttpRequest, it is still considered a lower
* level api in angular. For a higher level abstraction that utilizes `$xhr`, please check out the
* {@link angular.service$resource $resource} service.
*
* # Error handling
* All XHR responses with response codes other then `2xx` are delegated to
* {@link angular.service.$xhr.error $xhr.error}. The `$xhr.error` can intercept the request
* and process it in application specific way, or resume normal execution by calling the
* request callback method.
*
* # Security Considerations
* When designing web applications your design needs to consider security threats from
* {@link http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx
* JSON Vulnerability} and {@link http://en.wikipedia.org/wiki/Cross-site_request_forgery XSRF}.
* Both server and the client must cooperate in order to eliminate these threats. Angular comes
* pre-configured with strategies that address these issues, but for this to work backend server
* cooperation is required.
*
* ## JSON Vulnerability Protection
* A {@link http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx
* JSON Vulnerability} allows third party web-site to turn your JSON resource URL into
* {@link http://en.wikipedia.org/wiki/JSON#JSONP JSONP} request under some conditions. To
* counter this your server can prefix all JSON requests with following string `")]}',\n"`.
* Angular will automatically strip the prefix before processing it as JSON.
*
* For example if your server needs to return:
* <pre>
* ['one','two']
* </pre>
*
* which is vulnerable to attack, your server can return:
* <pre>
* )]}',
* ['one','two']
* </pre>
*
* angular will strip the prefix, before processing the JSON.
*
*
* ## Cross Site Request Forgery (XSRF) Protection
* {@link http://en.wikipedia.org/wiki/Cross-site_request_forgery XSRF} is a technique by which an
* unauthorized site can gain your user's private data. Angular provides following mechanism to
* counter XSRF. When performing XHR requests, the $xhr service reads a token from a cookie
* called `XSRF-TOKEN` and sets it as the HTTP header `X-XSRF-TOKEN`. Since only JavaScript that
* runs on your domain could read the cookie, your server can be assured that the XHR came from
* JavaScript running on your domain.
*
* To take advantage of this, your server needs to set a token in a JavaScript readable session
* cookie called `XSRF-TOKEN` on first HTTP GET request. On subsequent non-GET requests the server
* can verify that the cookie matches `X-XSRF-TOKEN` HTTP header, and therefore be sure that only
* JavaScript running on your domain could have read the token. The token must be unique for each
* user and must be verifiable by the server (to prevent the JavaScript making up its own tokens).
* We recommend that the token is a digest of your site's authentication cookie with
* {@link http://en.wikipedia.org/wiki/Rainbow_table salt for added security}.
*
* @param {string} method HTTP method to use. Valid values are: `GET`, `POST`, `PUT`, `DELETE`, and
* `JSON`. `JSON` is a special case which causes a
@ -13984,8 +14048,7 @@ angularServiceInject('$xhr.error', function($log){
</doc:source>
</doc:example>
*/
angularServiceInject('$xhr', function($browser, $error, $log){
var self = this;
angularServiceInject('$xhr', function($browser, $error, $log, $updateView){
return function(method, url, post, callback){
if (isFunction(post)) {
callback = post;
@ -13994,6 +14057,7 @@ angularServiceInject('$xhr', function($browser, $error, $log){
if (post && isObject(post)) {
post = toJson(post);
}
$browser.xhr(method, url, post, function(code, response){
try {
if (isString(response)) {
@ -14002,7 +14066,7 @@ angularServiceInject('$xhr', function($browser, $error, $log){
response = fromJson(response, true);
}
}
if (code == 200) {
if (200 <= code && code < 300) {
callback(code, response);
} else {
$error(
@ -14012,11 +14076,13 @@ angularServiceInject('$xhr', function($browser, $error, $log){
} catch (e) {
$log.error(e);
} finally {
self.$eval();
$updateView();
}
}, {
'X-XSRF-TOKEN': $browser.cookies()['XSRF-TOKEN']
});
};
}, ['$browser', '$xhr.error', '$log']);
}, ['$browser', '$xhr.error', '$log', '$updateView']);
/**
* @workInProgress
* @ngdoc directive
@ -18056,5 +18122,5 @@ angular.scenario.output('object', function(context, runner) {
});
})(window, document);
document.write('<style type="text/css">@charset "UTF-8";\n\n.ng-format-negative {\n color: red;\n}\n\n.ng-exception {\n border: 2px solid #FF0000;\n font-family: "Courier New", Courier, monospace;\n font-size: smaller;\n white-space: pre;\n}\n\n.ng-validation-error {\n border: 2px solid #FF0000;\n}\n\n\n/*****************\n * TIP\n *****************/\n#ng-callout {\n margin: 0;\n padding: 0;\n border: 0;\n outline: 0;\n font-size: 13px;\n font-weight: normal;\n font-family: Verdana, Arial, Helvetica, sans-serif;\n vertical-align: baseline;\n background: transparent;\n text-decoration: none;\n}\n\n#ng-callout .ng-arrow-left{\n background-image: url("data:image/gif;base64,R0lGODlhCwAXAKIAAMzMzO/v7/f39////////wAAAAAAAAAAACH5BAUUAAQALAAAAAALABcAAAMrSLoc/AG8FeUUIN+sGebWAnbKSJodqqlsOxJtqYooU9vvk+vcJIcTkg+QAAA7");\n background-repeat: no-repeat;\n background-position: left top;\n position: absolute;\n z-index:101;\n left:-12px;\n height:23px;\n width:10px;\n top:-3px;\n}\n\n#ng-callout .ng-arrow-right{\n background-image: url("data:image/gif;base64,R0lGODlhCwAXAKIAAMzMzO/v7/f39////////wAAAAAAAAAAACH5BAUUAAQALAAAAAALABcAAAMrCLTcoM29yN6k9socs91e5X3EyJloipYrO4ohTMqA0Fn2XVNswJe+H+SXAAA7");\n background-repeat: no-repeat;\n background-position: left top;\n position: absolute;\n z-index:101;\n height:23px;\n width:11px;\n top:-2px;\n}\n\n#ng-callout {\n position: absolute;\n z-index:100;\n border: 2px solid #CCCCCC;\n background-color: #fff;\n}\n\n#ng-callout .ng-content{\n padding:10px 10px 10px 10px;\n color:#333333;\n}\n\n#ng-callout .ng-title{\n background-color: #CCCCCC;\n text-align: left;\n padding-left: 8px;\n padding-bottom: 5px;\n padding-top: 2px;\n font-weight:bold;\n}\n\n\n/*****************\n * indicators\n *****************/\n.ng-input-indicator-wait {\n background-image: url("data:image/png;base64,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");\n background-position: right;\n background-repeat: no-repeat;\n}\n</style>');
document.write('<style type="text/css">@charset "UTF-8";\n/* CSS Document */\n\n/** Structure */\nbody {\n font-family: Arial, sans-serif;\n margin: 0;\n font-size: 14px;\n}\n\n#system-error {\n font-size: 1.5em;\n text-align: center;\n}\n\n#json, #xml {\n display: none;\n}\n\n#header {\n position: fixed;\n width: 100%;\n}\n\n#specs {\n padding-top: 50px;\n}\n\n#header .angular {\n font-family: Courier New, monospace;\n font-weight: bold;\n}\n\n#header h1 {\n font-weight: normal;\n float: left;\n font-size: 30px;\n line-height: 30px;\n margin: 0;\n padding: 10px 10px;\n height: 30px;\n}\n\n#application h2,\n#specs h2 {\n margin: 0;\n padding: 0.5em;\n font-size: 1.1em;\n}\n\n#status-legend {\n margin-top: 10px;\n margin-right: 10px;\n}\n\n#header,\n#application,\n.test-info,\n.test-actions li {\n overflow: hidden;\n}\n\n#application {\n margin: 10px;\n}\n\n#application iframe {\n width: 100%;\n height: 758px;\n}\n\n#application .popout {\n float: right;\n}\n\n#application iframe {\n border: none;\n}\n\n.tests li,\n.test-actions li,\n.test-it li,\n.test-it ol,\n.status-display {\n list-style-type: none;\n}\n\n.tests,\n.test-it ol,\n.status-display {\n margin: 0;\n padding: 0;\n}\n\n.test-info {\n margin-left: 1em;\n margin-top: 0.5em;\n border-radius: 8px 0 0 8px;\n -webkit-border-radius: 8px 0 0 8px;\n -moz-border-radius: 8px 0 0 8px;\n cursor: pointer;\n}\n\n.test-info:hover .test-name {\n text-decoration: underline;\n}\n\n.test-info .closed:before {\n content: \'\\25b8\\00A0\';\n}\n\n.test-info .open:before {\n content: \'\\25be\\00A0\';\n font-weight: bold;\n}\n\n.test-it ol {\n margin-left: 2.5em;\n}\n\n.status-display,\n.status-display li {\n float: right;\n}\n\n.status-display li {\n padding: 5px 10px;\n}\n\n.timer-result,\n.test-title {\n display: inline-block;\n margin: 0;\n padding: 4px;\n}\n\n.test-actions .test-title,\n.test-actions .test-result {\n display: table-cell;\n padding-left: 0.5em;\n padding-right: 0.5em;\n}\n\n.test-actions {\n display: table;\n}\n\n.test-actions li {\n display: table-row;\n}\n\n.timer-result {\n width: 4em;\n padding: 0 10px;\n text-align: right;\n font-family: monospace;\n}\n\n.test-it pre,\n.test-actions pre {\n clear: left;\n color: black;\n margin-left: 6em;\n}\n\n.test-describe {\n padding-bottom: 0.5em;\n}\n\n.test-describe .test-describe {\n margin: 5px 5px 10px 2em;\n}\n\n.test-actions .status-pending .test-title:before {\n content: \'\\00bb\\00A0\';\n}\n\n.scrollpane {\n max-height: 20em;\n overflow: auto;\n}\n\n/** Colors */\n\n#header {\n background-color: #F2C200;\n}\n\n#specs h2 {\n border-top: 2px solid #BABAD1;\n}\n\n#specs h2,\n#application h2 {\n background-color: #efefef;\n}\n\n#application {\n border: 1px solid #BABAD1;\n}\n\n.test-describe .test-describe {\n border-left: 1px solid #BABAD1;\n border-right: 1px solid #BABAD1;\n border-bottom: 1px solid #BABAD1;\n}\n\n.status-display {\n border: 1px solid #777;\n}\n\n.status-display .status-pending,\n.status-pending .test-info {\n background-color: #F9EEBC;\n}\n\n.status-display .status-success,\n.status-success .test-info {\n background-color: #B1D7A1;\n}\n\n.status-display .status-failure,\n.status-failure .test-info {\n background-color: #FF8286;\n}\n\n.status-display .status-error,\n.status-error .test-info {\n background-color: black;\n color: white;\n}\n\n.test-actions .status-success .test-title {\n color: #30B30A;\n}\n\n.test-actions .status-failure .test-title {\n color: #DF0000;\n}\n\n.test-actions .status-error .test-title {\n color: black;\n}\n\n.test-actions .timer-result {\n color: #888;\n}\n</style>');
angular.element(document).find('head').append('<style type="text/css">@charset "UTF-8";\n\n.ng-format-negative {\n color: red;\n}\n\n.ng-exception {\n border: 2px solid #FF0000;\n font-family: "Courier New", Courier, monospace;\n font-size: smaller;\n white-space: pre;\n}\n\n.ng-validation-error {\n border: 2px solid #FF0000;\n}\n\n\n/*****************\n * TIP\n *****************/\n#ng-callout {\n margin: 0;\n padding: 0;\n border: 0;\n outline: 0;\n font-size: 13px;\n font-weight: normal;\n font-family: Verdana, Arial, Helvetica, sans-serif;\n vertical-align: baseline;\n background: transparent;\n text-decoration: none;\n}\n\n#ng-callout .ng-arrow-left{\n background-image: url("data:image/gif;base64,R0lGODlhCwAXAKIAAMzMzO/v7/f39////////wAAAAAAAAAAACH5BAUUAAQALAAAAAALABcAAAMrSLoc/AG8FeUUIN+sGebWAnbKSJodqqlsOxJtqYooU9vvk+vcJIcTkg+QAAA7");\n background-repeat: no-repeat;\n background-position: left top;\n position: absolute;\n z-index:101;\n left:-12px;\n height:23px;\n width:10px;\n top:-3px;\n}\n\n#ng-callout .ng-arrow-right{\n background-image: url("data:image/gif;base64,R0lGODlhCwAXAKIAAMzMzO/v7/f39////////wAAAAAAAAAAACH5BAUUAAQALAAAAAALABcAAAMrCLTcoM29yN6k9socs91e5X3EyJloipYrO4ohTMqA0Fn2XVNswJe+H+SXAAA7");\n background-repeat: no-repeat;\n background-position: left top;\n position: absolute;\n z-index:101;\n height:23px;\n width:11px;\n top:-2px;\n}\n\n#ng-callout {\n position: absolute;\n z-index:100;\n border: 2px solid #CCCCCC;\n background-color: #fff;\n}\n\n#ng-callout .ng-content{\n padding:10px 10px 10px 10px;\n color:#333333;\n}\n\n#ng-callout .ng-title{\n background-color: #CCCCCC;\n text-align: left;\n padding-left: 8px;\n padding-bottom: 5px;\n padding-top: 2px;\n font-weight:bold;\n}\n\n\n/*****************\n * indicators\n *****************/\n.ng-input-indicator-wait {\n background-image: url("data:image/png;base64,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");\n background-position: right;\n background-repeat: no-repeat;\n}\n</style>');
angular.element(document).find('head').append('<style type="text/css">@charset "UTF-8";\n/* CSS Document */\n\n/** Structure */\nbody {\n font-family: Arial, sans-serif;\n margin: 0;\n font-size: 14px;\n}\n\n#system-error {\n font-size: 1.5em;\n text-align: center;\n}\n\n#json, #xml {\n display: none;\n}\n\n#header {\n position: fixed;\n width: 100%;\n}\n\n#specs {\n padding-top: 50px;\n}\n\n#header .angular {\n font-family: Courier New, monospace;\n font-weight: bold;\n}\n\n#header h1 {\n font-weight: normal;\n float: left;\n font-size: 30px;\n line-height: 30px;\n margin: 0;\n padding: 10px 10px;\n height: 30px;\n}\n\n#application h2,\n#specs h2 {\n margin: 0;\n padding: 0.5em;\n font-size: 1.1em;\n}\n\n#status-legend {\n margin-top: 10px;\n margin-right: 10px;\n}\n\n#header,\n#application,\n.test-info,\n.test-actions li {\n overflow: hidden;\n}\n\n#application {\n margin: 10px;\n}\n\n#application iframe {\n width: 100%;\n height: 758px;\n}\n\n#application .popout {\n float: right;\n}\n\n#application iframe {\n border: none;\n}\n\n.tests li,\n.test-actions li,\n.test-it li,\n.test-it ol,\n.status-display {\n list-style-type: none;\n}\n\n.tests,\n.test-it ol,\n.status-display {\n margin: 0;\n padding: 0;\n}\n\n.test-info {\n margin-left: 1em;\n margin-top: 0.5em;\n border-radius: 8px 0 0 8px;\n -webkit-border-radius: 8px 0 0 8px;\n -moz-border-radius: 8px 0 0 8px;\n cursor: pointer;\n}\n\n.test-info:hover .test-name {\n text-decoration: underline;\n}\n\n.test-info .closed:before {\n content: \'\\25b8\\00A0\';\n}\n\n.test-info .open:before {\n content: \'\\25be\\00A0\';\n font-weight: bold;\n}\n\n.test-it ol {\n margin-left: 2.5em;\n}\n\n.status-display,\n.status-display li {\n float: right;\n}\n\n.status-display li {\n padding: 5px 10px;\n}\n\n.timer-result,\n.test-title {\n display: inline-block;\n margin: 0;\n padding: 4px;\n}\n\n.test-actions .test-title,\n.test-actions .test-result {\n display: table-cell;\n padding-left: 0.5em;\n padding-right: 0.5em;\n}\n\n.test-actions {\n display: table;\n}\n\n.test-actions li {\n display: table-row;\n}\n\n.timer-result {\n width: 4em;\n padding: 0 10px;\n text-align: right;\n font-family: monospace;\n}\n\n.test-it pre,\n.test-actions pre {\n clear: left;\n color: black;\n margin-left: 6em;\n}\n\n.test-describe {\n padding-bottom: 0.5em;\n}\n\n.test-describe .test-describe {\n margin: 5px 5px 10px 2em;\n}\n\n.test-actions .status-pending .test-title:before {\n content: \'\\00bb\\00A0\';\n}\n\n.scrollpane {\n max-height: 20em;\n overflow: auto;\n}\n\n/** Colors */\n\n#header {\n background-color: #F2C200;\n}\n\n#specs h2 {\n border-top: 2px solid #BABAD1;\n}\n\n#specs h2,\n#application h2 {\n background-color: #efefef;\n}\n\n#application {\n border: 1px solid #BABAD1;\n}\n\n.test-describe .test-describe {\n border-left: 1px solid #BABAD1;\n border-right: 1px solid #BABAD1;\n border-bottom: 1px solid #BABAD1;\n}\n\n.status-display {\n border: 1px solid #777;\n}\n\n.status-display .status-pending,\n.status-pending .test-info {\n background-color: #F9EEBC;\n}\n\n.status-display .status-success,\n.status-success .test-info {\n background-color: #B1D7A1;\n}\n\n.status-display .status-failure,\n.status-failure .test-info {\n background-color: #FF8286;\n}\n\n.status-display .status-error,\n.status-error .test-info {\n background-color: black;\n color: white;\n}\n\n.test-actions .status-success .test-title {\n color: #30B30A;\n}\n\n.test-actions .status-failure .test-title {\n color: #DF0000;\n}\n\n.test-actions .status-error .test-title {\n color: black;\n}\n\n.test-actions .timer-result {\n color: #888;\n}\n</style>');

@ -1,2 +1,2 @@
0.9.12
0.9.13