2013-02-05 14:16:51 -05:00
/ *
* Sugar Library v1 . 3.5
*
* Freely distributable and licensed under the MIT - style license .
* Copyright ( c ) 2012 Andrew Plummer
* http : //sugarjs.com/
*
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- * /
( function ( ) { var k = true , l = null , n = false ; function aa ( a ) { return function ( ) { return a } } var p = Object , q = Array , r = RegExp , s = Date , t = String , u = Number , v = Math , ba = typeof global !== "undefined" ? global : this , ca = p . defineProperty && p . defineProperties , x = "Array,Boolean,Date,Function,Number,String,RegExp" . split ( "," ) , da = y ( x [ 0 ] ) , fa = y ( x [ 1 ] ) , ga = y ( x [ 2 ] ) , z = y ( x [ 3 ] ) , A = y ( x [ 4 ] ) , C = y ( x [ 5 ] ) , D = y ( x [ 6 ] ) ; function y ( a ) { return function ( b ) { return p . prototype . toString . call ( b ) === "[object " + a + "]" } }
function ha ( a ) { if ( ! a . SugarMethods ) { ia ( a , "SugarMethods" , { } ) ; E ( a , n , n , { restore : function ( ) { var b = arguments . length === 0 , c = F ( arguments ) ; G ( a . SugarMethods , function ( d , e ) { if ( b || c . indexOf ( d ) > - 1 ) ia ( e . wa ? a . prototype : a , d , e . method ) } ) } , extend : function ( b , c , d ) { E ( a , d !== n , c , b ) } } ) } } function E ( a , b , c , d ) { var e = b ? a . prototype : a , g ; ha ( a ) ; G ( d , function ( f , i ) { g = e [ f ] ; if ( typeof c === "function" ) i = ja ( e [ f ] , i , c ) ; if ( c !== n || ! e [ f ] ) ia ( e , f , i ) ; a . SugarMethods [ f ] = { wa : b , method : i , Da : g } } ) }
function H ( a , b , c , d , e ) { var g = { } ; d = C ( d ) ? d . split ( "," ) : d ; d . forEach ( function ( f , i ) { e ( g , f , i ) } ) ; E ( a , b , c , g ) } function ja ( a , b , c ) { return function ( ) { return a && ( c === k || ! c . apply ( this , arguments ) ) ? a . apply ( this , arguments ) : b . apply ( this , arguments ) } } function ia ( a , b , c ) { if ( ca ) p . defineProperty ( a , b , { value : c , configurable : k , enumerable : n , writable : k } ) ; else a [ b ] = c } function F ( a , b ) { var c = [ ] , d ; for ( d = 0 ; d < a . length ; d ++ ) { c . push ( a [ d ] ) ; b && b . call ( a , a [ d ] , d ) } return c } function I ( a ) { return a !== void 0 } function K ( a ) { return a === void 0 }
function ka ( a ) { return a && typeof a === "object" } function L ( a ) { return ! ! a && p . prototype . toString . call ( a ) === "[object Object]" && "hasOwnProperty" in a } function la ( a , b ) { return p . hasOwnProperty . call ( a , b ) } function G ( a , b ) { for ( var c in a ) if ( la ( a , c ) ) if ( b . call ( a , c , a [ c ] ) === n ) break } function ma ( a , b ) { G ( b , function ( c ) { a [ c ] = b [ c ] } ) ; return a } function na ( a ) { ma ( this , a ) } na . prototype . constructor = p ; function oa ( a , b , c , d ) { var e = [ ] ; a = parseInt ( a ) ; for ( var g = d < 0 ; ! g && a <= b || g && a >= b ; ) { e . push ( a ) ; c && c . call ( this , a ) ; a += d || 1 } return e }
function M ( a , b , c ) { c = v [ c || "round" ] ; var d = v . pow ( 10 , v . abs ( b || 0 ) ) ; if ( b < 0 ) d = 1 / d ; return c ( a * d ) / d } function N ( a , b ) { return M ( a , b , "floor" ) } function P ( a , b , c , d ) { d = v . abs ( a ) . toString ( d || 10 ) ; d = pa ( b - d . replace ( /\.\d+/ , "" ) . length , "0" ) + d ; if ( c || a < 0 ) d = ( a < 0 ? "-" : "+" ) + d ; return d } function qa ( a ) { if ( a >= 11 && a <= 13 ) return "th" ; else switch ( a % 10 ) { case 1 : return "st" ; case 2 : return "nd" ; case 3 : return "rd" ; default : return "th" } }
function ra ( ) { return "\t\n\u000b\u000c\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u2028\u2029\u3000\ufeff" } function pa ( a , b ) { return q ( v . max ( 0 , I ( a ) ? a : 1 ) + 1 ) . join ( b || "" ) } function sa ( a , b ) { var c = a . toString ( ) . match ( /[^/]*$/ ) [ 0 ] ; if ( b ) c = ( c + b ) . split ( "" ) . sort ( ) . join ( "" ) . replace ( /([gimy])\1+/g , "$1" ) ; return c } function Q ( a ) { C ( a ) || ( a = t ( a ) ) ; return a . replace ( /([\\/'*+?|()\[\]{}.^$])/g , "\\$1" ) }
function ta ( a , b ) { var c = typeof a , d , e , g , f , i , j ; if ( c === "string" ) return a ; g = p . prototype . toString . call ( a ) ; d = L ( a ) ; e = g === "[object Array]" ; if ( a != l && d || e ) { b || ( b = [ ] ) ; if ( b . length > 1 ) for ( j = b . length ; j -- ; ) if ( b [ j ] === a ) return "CYC" ; b . push ( a ) ; d = t ( a . constructor ) ; f = e ? a : p . keys ( a ) . sort ( ) ; for ( j = 0 ; j < f . length ; j ++ ) { i = e ? j : f [ j ] ; d += i + ta ( a [ i ] , b ) } b . pop ( ) } else d = 1 / a === - Infinity ? "-0" : t ( a && a . valueOf ? a . valueOf ( ) : a ) ; return c + g + d }
function ua ( a ) { var b = p . prototype . toString . call ( a ) ; return b === "[object Date]" || b === "[object Array]" || b === "[object String]" || b === "[object Number]" || b === "[object RegExp]" || b === "[object Boolean]" || b === "[object Arguments]" || L ( a ) } function va ( a , b , c ) { var d = [ ] , e = a . length , g = b [ b . length - 1 ] !== n , f ; F ( b , function ( i ) { if ( fa ( i ) ) return n ; if ( g ) { i %= e ; if ( i < 0 ) i = e + i } f = c ? a . charAt ( i ) || "" : a [ i ] ; d . push ( f ) } ) ; return d . length < 2 ? d [ 0 ] : d }
function wa ( a , b ) { H ( b , k , n , a , function ( c , d ) { c [ d + ( d === "equal" ? "s" : "" ) ] = function ( ) { return p [ d ] . apply ( l , [ this ] . concat ( F ( arguments ) ) ) } } ) } ha ( p ) ; G ( x , function ( a , b ) { ha ( ba [ b ] ) } ) ;
E ( p , n , n , { keys : function ( a ) { var b = [ ] ; if ( ! ka ( a ) && ! D ( a ) && ! z ( a ) ) throw new TypeError ( "Object required" ) ; G ( a , function ( c ) { b . push ( c ) } ) ; return b } } ) ;
function xa ( a , b , c , d ) { var e = a . length , g = d == - 1 , f = g ? e - 1 : 0 ; c = isNaN ( c ) ? f : parseInt ( c >> 0 ) ; if ( c < 0 ) c = e + c ; if ( ! g && c < 0 || g && c >= e ) c = f ; for ( ; g && c >= 0 || ! g && c < e ; ) { if ( a [ c ] === b ) return c ; c += d } return - 1 } function ya ( a , b , c , d ) { var e = a . length , g = 0 , f = I ( c ) ; za ( b ) ; if ( e == 0 && ! f ) throw new TypeError ( "Reduce called on empty array with no initial value" ) ; else if ( f ) c = c ; else { c = a [ d ? e - 1 : g ] ; g ++ } for ( ; g < e ; ) { f = d ? e - g - 1 : g ; if ( f in a ) c = b ( c , a [ f ] , f , a ) ; g ++ } return c } function za ( a ) { if ( ! a || ! a . call ) throw new TypeError ( "Callback is not callable" ) ; }
function Aa ( a ) { if ( a . length === 0 ) throw new TypeError ( "First argument must be defined" ) ; } E ( q , n , n , { isArray : function ( a ) { return da ( a ) } } ) ;
E ( q , k , n , { every : function ( a , b ) { var c = this . length , d = 0 ; for ( Aa ( arguments ) ; d < c ; ) { if ( d in this && ! a . call ( b , this [ d ] , d , this ) ) return n ; d ++ } return k } , some : function ( a , b ) { var c = this . length , d = 0 ; for ( Aa ( arguments ) ; d < c ; ) { if ( d in this && a . call ( b , this [ d ] , d , this ) ) return k ; d ++ } return n } , map : function ( a , b ) { var c = this . length , d = 0 , e = Array ( c ) ; for ( Aa ( arguments ) ; d < c ; ) { if ( d in this ) e [ d ] = a . call ( b , this [ d ] , d , this ) ; d ++ } return e } , filter : function ( a , b ) { var c = this . length , d = 0 , e = [ ] ; for ( Aa ( arguments ) ; d < c ; ) { d in this && a . call ( b , this [ d ] , d , this ) &&
e . push ( this [ d ] ) ; d ++ } return e } , indexOf : function ( a , b ) { if ( C ( this ) ) return this . indexOf ( a , b ) ; return xa ( this , a , b , 1 ) } , lastIndexOf : function ( a , b ) { if ( C ( this ) ) return this . lastIndexOf ( a , b ) ; return xa ( this , a , b , - 1 ) } , forEach : function ( a , b ) { var c = this . length , d = 0 ; for ( za ( a ) ; d < c ; ) { d in this && a . call ( b , this [ d ] , d , this ) ; d ++ } } , reduce : function ( a , b ) { return ya ( this , a , b ) } , reduceRight : function ( a , b ) { return ya ( this , a , b , k ) } } ) ;
E ( Function , k , n , { bind : function ( a ) { var b = this , c = F ( arguments ) . slice ( 1 ) , d ; if ( ! z ( this ) ) throw new TypeError ( "Function.prototype.bind called on a non-function" ) ; d = function ( ) { return b . apply ( b . prototype && this instanceof b ? this : a , c . concat ( F ( arguments ) ) ) } ; d . prototype = this . prototype ; return d } } ) ; E ( s , n , n , { now : function ( ) { return ( new s ) . getTime ( ) } } ) ;
( function ( ) { var a = ra ( ) . match ( /^\s+$/ ) ; try { t . prototype . trim . call ( [ 1 ] ) } catch ( b ) { a = n } E ( t , k , ! a , { trim : function ( ) { return this . toString ( ) . trimLeft ( ) . trimRight ( ) } , trimLeft : function ( ) { return this . replace ( r ( "^[" + ra ( ) + "]+" ) , "" ) } , trimRight : function ( ) { return this . replace ( r ( "[" + ra ( ) + "]+$" ) , "" ) } } ) } ) ( ) ;
( function ( ) { var a = new s ( s . UTC ( 1999 , 11 , 31 ) ) ; a = a . toISOString && a . toISOString ( ) === "1999-12-31T00:00:00.000Z" ; H ( s , k , ! a , "toISOString,toJSON" , function ( b , c ) { b [ c ] = function ( ) { return P ( this . getUTCFullYear ( ) , 4 ) + "-" + P ( this . getUTCMonth ( ) + 1 , 2 ) + "-" + P ( this . getUTCDate ( ) , 2 ) + "T" + P ( this . getUTCHours ( ) , 2 ) + ":" + P ( this . getUTCMinutes ( ) , 2 ) + ":" + P ( this . getUTCSeconds ( ) , 2 ) + "." + P ( this . getUTCMilliseconds ( ) , 3 ) + "Z" } } ) } ) ( ) ;
function Ba ( a , b , c , d ) { var e = k ; if ( a === b ) return k ; else if ( D ( b ) && C ( a ) ) return r ( b ) . test ( a ) ; else if ( z ( b ) && ! z ( a ) ) return b . apply ( c , d ) ; else if ( L ( b ) && ka ( a ) ) { G ( b , function ( g ) { Ba ( a [ g ] , b [ g ] , c , [ a [ g ] , a ] ) || ( e = n ) } ) ; return e } else return ua ( a ) && ua ( b ) ? ta ( a ) === ta ( b ) : a === b } function R ( a , b , c , d ) { return K ( b ) ? a : z ( b ) ? b . apply ( c , d || [ ] ) : z ( a [ b ] ) ? a [ b ] . call ( a ) : a [ b ] }
function T ( a , b , c , d ) { var e , g ; if ( c < 0 ) c = a . length + c ; g = isNaN ( c ) ? 0 : c ; for ( c = d === k ? a . length + g : a . length ; g < c ; ) { e = g % a . length ; if ( e in a ) { if ( b . call ( a , a [ e ] , e , a ) === n ) break } else return Ca ( a , b , g , d ) ; g ++ } } function Ca ( a , b , c ) { var d = [ ] , e ; for ( e in a ) e in a && e >>> 0 == e && e != 4294967295 && e >= c && d . push ( parseInt ( e ) ) ; d . sort ( ) . each ( function ( g ) { return b . call ( a , a [ g ] , g , a ) } ) ; return a } function Ea ( a , b , c , d , e ) { var g , f ; T ( a , function ( i , j , h ) { if ( Ba ( i , b , h , [ i , j , h ] ) ) { g = i ; f = j ; return n } } , c , d ) ; return e ? f : g }
function Fa ( a , b ) { var c = [ ] , d = { } , e ; T ( a , function ( g , f ) { e = b ? R ( g , b , a , [ g , f , a ] ) : g ; Ga ( d , e ) || c . push ( g ) } ) ; return c } function Ha ( a , b , c ) { var d = [ ] , e = { } ; b . each ( function ( g ) { Ga ( e , g ) } ) ; a . each ( function ( g ) { var f = ta ( g ) , i = ! ua ( g ) ; if ( Ia ( e , f , g , i ) != c ) { var j = 0 ; if ( i ) for ( f = e [ f ] ; j < f . length ; ) if ( f [ j ] === g ) f . splice ( j , 1 ) ; else j += 1 ; else delete e [ f ] ; d . push ( g ) } } ) ; return d } function Ja ( a , b , c ) { b = b || Infinity ; c = c || 0 ; var d = [ ] ; T ( a , function ( e ) { if ( da ( e ) && c < b ) d = d . concat ( Ja ( e , b , c + 1 ) ) ; else d . push ( e ) } ) ; return d }
function Ka ( a ) { var b = [ ] ; F ( a , function ( c ) { b = b . concat ( c ) } ) ; return b } function Ia ( a , b , c , d ) { var e = b in a ; if ( d ) { a [ b ] || ( a [ b ] = [ ] ) ; e = a [ b ] . indexOf ( c ) !== - 1 } return e } function Ga ( a , b ) { var c = ta ( b ) , d = ! ua ( b ) , e = Ia ( a , c , b , d ) ; if ( d ) a [ c ] . push ( b ) ; else a [ c ] = b ; return e } function La ( a , b , c , d ) { var e , g = [ ] , f = c === "max" , i = c === "min" , j = Array . isArray ( a ) ; G ( a , function ( h ) { var m = a [ h ] ; h = R ( m , b , a , j ? [ m , parseInt ( h ) , a ] : [ ] ) ; if ( h === e ) g . push ( m ) ; else if ( K ( e ) || f && h > e || i && h < e ) { g = [ m ] ; e = h } } ) ; j || ( g = Ja ( g , 1 ) ) ; return d ? g : g [ 0 ] }
function Ma ( a ) { if ( q [ Na ] ) a = a . toLowerCase ( ) ; return a . replace ( q [ Oa ] , "" ) } function Pa ( a , b ) { var c = a . charAt ( b ) ; return ( q [ Qa ] || { } ) [ c ] || c } function Ra ( a ) { var b = q [ Sa ] ; return a ? b . indexOf ( a ) : l } var Sa = "AlphanumericSortOrder" , Oa = "AlphanumericSortIgnore" , Na = "AlphanumericSortIgnoreCase" , Qa = "AlphanumericSortEquivalents" ; E ( q , n , n , { create : function ( ) { var a = [ ] , b ; F ( arguments , function ( c ) { if ( ka ( c ) ) { b = q . prototype . slice . call ( c ) ; if ( b . length > 0 ) c = b } a = a . concat ( c ) } ) ; return a } } ) ;
E ( q , k , n , { find : function ( a , b , c ) { return Ea ( this , a , b , c ) } , findAll : function ( a , b , c ) { var d = [ ] ; T ( this , function ( e , g , f ) { Ba ( e , a , f , [ e , g , f ] ) && d . push ( e ) } , b , c ) ; return d } , findIndex : function ( a , b , c ) { a = Ea ( this , a , b , c , k ) ; return K ( a ) ? - 1 : a } , count : function ( a ) { if ( K ( a ) ) return this . length ; return this . findAll ( a ) . length } , removeAt : function ( a , b ) { if ( K ( a ) ) return this ; if ( K ( b ) ) b = a ; for ( var c = 0 ; c <= b - a ; c ++ ) this . splice ( a , 1 ) ; return this } , include : function ( a , b ) { return this . clone ( ) . add ( a , b ) } , exclude : function ( ) { return q . prototype . remove . apply ( this . clone ( ) ,
arguments ) } , clone : function ( ) { return ma ( [ ] , this ) } , unique : function ( a ) { return Fa ( this , a ) } , flatten : function ( a ) { return Ja ( this , a ) } , union : function ( ) { return Fa ( this . concat ( Ka ( arguments ) ) ) } , intersect : function ( ) { return Ha ( this , Ka ( arguments ) , n ) } , subtract : function ( ) { return Ha ( this , Ka ( arguments ) , k ) } , at : function ( ) { return va ( this , arguments ) } , first : function ( a ) { if ( K ( a ) ) return this [ 0 ] ; if ( a < 0 ) a = 0 ; return this . slice ( 0 , a ) } , last : function ( a ) { if ( K ( a ) ) return this [ this . length - 1 ] ; return this . slice ( this . length - a < 0 ? 0 : this . length -
a ) } , from : function ( a ) { return this . slice ( a ) } , to : function ( a ) { if ( K ( a ) ) a = this . length ; return this . slice ( 0 , a ) } , min : function ( a , b ) { return La ( this , a , "min" , b ) } , max : function ( a , b ) { return La ( this , a , "max" , b ) } , least : function ( a , b ) { return La ( this . groupBy . apply ( this , [ a ] ) , "length" , "min" , b ) } , most : function ( a , b ) { return La ( this . groupBy . apply ( this , [ a ] ) , "length" , "max" , b ) } , sum : function ( a ) { a = a ? this . map ( a ) : this ; return a . length > 0 ? a . reduce ( function ( b , c ) { return b + c } ) : 0 } , average : function ( a ) { a = a ? this . map ( a ) : this ; return a . length > 0 ?
a . sum ( ) / a . length : 0 } , inGroups : function ( a , b ) { var c = arguments . length > 1 , d = this , e = [ ] , g = M ( this . length / a , void 0 , "ceil" ) ; oa ( 0 , a - 1 , function ( f ) { f = f * g ; var i = d . slice ( f , f + g ) ; c && i . length < g && oa ( 1 , g - i . length , function ( ) { i = i . add ( b ) } ) ; e . push ( i ) } ) ; return e } , inGroupsOf : function ( a , b ) { var c = [ ] , d = this . length , e = this , g ; if ( d === 0 || a === 0 ) return e ; if ( K ( a ) ) a = 1 ; if ( K ( b ) ) b = l ; oa ( 0 , M ( d / a , void 0 , "ceil" ) - 1 , function ( f ) { for ( g = e . slice ( a * f , a * f + a ) ; g . length < a ; ) g . push ( b ) ; c . push ( g ) } ) ; return c } , isEmpty : function ( ) { return this . compact ( ) . length ==
0 } , sortBy : function ( a , b ) { var c = this . clone ( ) ; c . sort ( function ( d , e ) { var g , f ; g = R ( d , a , c , [ d ] ) ; f = R ( e , a , c , [ e ] ) ; if ( C ( g ) && C ( f ) ) { g = g ; f = f ; var i , j , h , m , o = 0 , w = 0 ; g = Ma ( g ) ; f = Ma ( f ) ; do { h = Pa ( g , o ) ; m = Pa ( f , o ) ; i = Ra ( h ) ; j = Ra ( m ) ; if ( i === - 1 || j === - 1 ) { i = g . charCodeAt ( o ) || l ; j = f . charCodeAt ( o ) || l } h = h !== g . charAt ( o ) ; m = m !== f . charAt ( o ) ; if ( h !== m && w === 0 ) w = h - m ; o += 1 } while ( i != l && j != l && i === j ) ; g = i === j ? w : i < j ? - 1 : 1 } else g = g < f ? - 1 : g > f ? 1 : 0 ; return g * ( b ? - 1 : 1 ) } ) ; return c } , randomize : function ( ) { for ( var a = this . concat ( ) , b , c , d = a . length ; d ; b = parseInt ( v . random ( ) *
d ) , c = a [ -- d ] , a [ d ] = a [ b ] , a [ b ] = c ) ; return a } , zip : function ( ) { var a = F ( arguments ) ; return this . map ( function ( b , c ) { return [ b ] . concat ( a . map ( function ( d ) { return c in d ? d [ c ] : l } ) ) } ) } , sample : function ( a ) { var b = [ ] , c = this . clone ( ) , d ; if ( K ( a ) ) a = 1 ; for ( ; b . length < a ; ) { d = N ( v . random ( ) * ( c . length - 1 ) ) ; b . push ( c [ d ] ) ; c . removeAt ( d ) ; if ( c . length == 0 ) break } return arguments . length > 0 ? b : b [ 0 ] } , each : function ( a , b , c ) { T ( this , a , b , c ) ; return this } , add : function ( a , b ) { if ( ! A ( u ( b ) ) || isNaN ( b ) ) b = this . length ; q . prototype . splice . apply ( this , [ b , 0 ] . concat ( a ) ) ;
return this } , remove : function ( ) { var a , b = this ; F ( arguments , function ( c ) { for ( a = 0 ; a < b . length ; ) if ( Ba ( b [ a ] , c , b , [ b [ a ] , a , b ] ) ) b . splice ( a , 1 ) ; else a ++ } ) ; return b } , compact : function ( a ) { var b = [ ] ; T ( this , function ( c ) { if ( da ( c ) ) b . push ( c . compact ( ) ) ; else if ( a && c ) b . push ( c ) ; else ! a && c != l && c . valueOf ( ) === c . valueOf ( ) && b . push ( c ) } ) ; return b } , groupBy : function ( a , b ) { var c = this , d = { } , e ; T ( c , function ( g , f ) { e = R ( g , a , c , [ g , f , c ] ) ; d [ e ] || ( d [ e ] = [ ] ) ; d [ e ] . push ( g ) } ) ; b && G ( d , b ) ; return d } , none : function ( ) { return ! this . any . apply ( this , arguments ) } } ) ;
E ( q , k , n , { all : q . prototype . every , any : q . prototype . some , insert : q . prototype . add } ) ; function Ta ( a ) { if ( a && a . valueOf ) a = a . valueOf ( ) ; return p . keys ( a ) } function Ua ( a , b ) { H ( p , n , n , a , function ( c , d ) { c [ d ] = function ( e , g , f ) { f = q . prototype [ d ] . call ( Ta ( e ) , function ( i ) { return b ? R ( e [ i ] , g , e , [ i , e [ i ] , e ] ) : Ba ( e [ i ] , g , e , [ i , e [ i ] , e ] ) } , f ) ; if ( da ( f ) ) f = f . reduce ( function ( i , j ) { i [ j ] = e [ j ] ; return i } , { } ) ; return f } } ) ; wa ( a , na ) }
E ( p , n , n , { map : function ( a , b ) { return Ta ( a ) . reduce ( function ( c , d ) { c [ d ] = R ( a [ d ] , b , a , [ d , a [ d ] , a ] ) ; return c } , { } ) } , reduce : function ( a ) { var b = Ta ( a ) . map ( function ( c ) { return a [ c ] } ) ; return b . reduce . apply ( b , F ( arguments ) . slice ( 1 ) ) } , size : function ( a ) { return Ta ( a ) . length } } ) ; ( function ( ) { H ( q , k , function ( ) { var a = arguments ; return a . length > 0 && ! z ( a [ 0 ] ) } , "map,every,all,some,any,none,filter" , function ( a , b ) { a [ b ] = function ( c ) { return this [ b ] ( function ( d , e ) { return b === "map" ? R ( d , c , this , [ d , e , this ] ) : Ba ( d , c , this , [ d , e , this ] ) } ) } } ) } ) ( ) ;
( function ( ) { q [ Sa ] = "A\u00c1\u00c0\u00c2\u00c3\u0104BC\u0106\u010c\u00c7D\u010e\u00d0E\u00c9\u00c8\u011a\u00ca\u00cb\u0118FG\u011eH\u0131I\u00cd\u00cc\u0130\u00ce\u00cfJKL\u0141MN\u0143\u0147\u00d1O\u00d3\u00d2\u00d4PQR\u0158S\u015a\u0160\u015eT\u0164U\u00da\u00d9\u016e\u00db\u00dcVWXY\u00ddZ\u0179\u017b\u017d\u00de\u00c6\u0152\u00d8\u00d5\u00c5\u00c4\u00d6" . split ( "" ) . map ( function ( b ) { return b + b . toLowerCase ( ) } ) . join ( "" ) ; var a = { } ; T ( "A\u00c1\u00c0\u00c2\u00c3\u00c4,C\u00c7,E\u00c9\u00c8\u00ca\u00cb,I\u00cd\u00cc\u0130\u00ce\u00cf,O\u00d3\u00d2\u00d4\u00d5\u00d6,S\u00df,U\u00da\u00d9\u00db\u00dc" . split ( "," ) ,
function ( b ) { var c = b . charAt ( 0 ) ; T ( b . slice ( 1 ) . split ( "" ) , function ( d ) { a [ d ] = c ; a [ d . toLowerCase ( ) ] = c . toLowerCase ( ) } ) } ) ; q [ Na ] = k ; q [ Qa ] = a } ) ( ) ; Ua ( "each,any,all,none,count,find,findAll,isEmpty" ) ; Ua ( "sum,average,min,max,least,most" , k ) ; wa ( "map,reduce,size" , na ) ;
var U , Va , Wa = [ "ampm" , "hour" , "minute" , "second" , "ampm" , "utc" , "offset_sign" , "offset_hours" , "offset_minutes" , "ampm" ] , Xa = "({t})?\\s*(\\d{1,2}(?:[,.]\\d+)?)(?:{h}(\\d{1,2}(?:[,.]\\d+)?)?{m}(?::?(\\d{1,2}(?:[,.]\\d+)?){s})?\\s*(?:({t})|(Z)|(?:([+-])(\\d{2,2})(?::?(\\d{2,2}))?)?)?|\\s*({t}))" , Ya = { } , Za , $a , ab , bb = [ ] , cb = [ { ba : "f{1,4}|ms|milliseconds" , format : function ( a ) { return V ( a , "Milliseconds" ) } } , { ba : "ss?|seconds" , format : function ( a ) { return V ( a , "Seconds" ) } } , { ba : "mm?|minutes" , format : function ( a ) { return V ( a , "Minutes" ) } } ,
{ ba : "hh?|hours|12hr" , format : function ( a ) { a = V ( a , "Hours" ) ; return a === 0 ? 12 : a - N ( a / 13 ) * 12 } } , { ba : "HH?|24hr" , format : function ( a ) { return V ( a , "Hours" ) } } , { ba : "dd?|date|day" , format : function ( a ) { return V ( a , "Date" ) } } , { ba : "dow|weekday" , la : k , format : function ( a , b , c ) { a = V ( a , "Day" ) ; return b . weekdays [ a + ( c - 1 ) * 7 ] } } , { ba : "MM?" , format : function ( a ) { return V ( a , "Month" ) + 1 } } , { ba : "mon|month" , la : k , format : function ( a , b , c ) { a = V ( a , "Month" ) ; return b . months [ a + ( c - 1 ) * 12 ] } } , { ba : "y{2,4}|year" , format : function ( a ) { return V ( a , "FullYear" ) } } , { ba : "[Tt]{1,2}" ,
format : function ( a , b , c , d ) { if ( b . ampm . length == 0 ) return "" ; a = V ( a , "Hours" ) ; b = b . ampm [ N ( a / 12 ) ] ; if ( d . length === 1 ) b = b . slice ( 0 , 1 ) ; if ( d . slice ( 0 , 1 ) === "T" ) b = b . toUpperCase ( ) ; return b } } , { ba : "z{1,4}|tz|timezone" , text : k , format : function ( a , b , c , d ) { a = a . getUTCOffset ( ) ; if ( d == "z" || d == "zz" ) a = a . replace ( /(\d{2})(\d{2})/ , function ( e , g ) { return P ( g , d . length ) } ) ; return a } } , { ba : "iso(tz|timezone)" , format : function ( a ) { return a . getUTCOffset ( k ) } } , { ba : "ord" , format : function ( a ) { a = V ( a , "Date" ) ; return a + qa ( a ) } } ] , db = [ { $ : "year" , method : "FullYear" ,
ja : k , da : function ( a ) { return ( 365 + ( a ? a . isLeapYear ( ) ? 1 : 0 : 0.25 ) ) * 24 * 60 * 60 * 1E3 } } , { $ : "month" , method : "Month" , ja : k , da : function ( a , b ) { var c = 30.4375 , d ; if ( a ) { d = a . daysInMonth ( ) ; if ( b <= d . days ( ) ) c = d } return c * 24 * 60 * 60 * 1E3 } } , { $ : "week" , method : "Week" , da : aa ( 6048E5 ) } , { $ : "day" , method : "Date" , ja : k , da : aa ( 864E5 ) } , { $ : "hour" , method : "Hours" , da : aa ( 36E5 ) } , { $ : "minute" , method : "Minutes" , da : aa ( 6E4 ) } , { $ : "second" , method : "Seconds" , da : aa ( 1E3 ) } , { $ : "millisecond" , method : "Milliseconds" , da : aa ( 1 ) } ] , eb = { } ;
function fb ( a ) { ma ( this , a ) ; this . ga = bb . concat ( ) }
fb . prototype = { getMonth : function ( a ) { return A ( a ) ? a - 1 : this . months . indexOf ( a ) % 12 } , getWeekday : function ( a ) { return this . weekdays . indexOf ( a ) % 7 } , oa : function ( a ) { var b ; return A ( a ) ? a : a && ( b = this . numbers . indexOf ( a ) ) !== - 1 ? ( b + 1 ) % 10 : 1 } , ta : function ( a ) { var b = this ; return a . replace ( r ( this . num , "g" ) , function ( c ) { return b . oa ( c ) || "" } ) } , ra : function ( a ) { return U . units [ this . units . indexOf ( a ) % 8 ] } , ua : function ( a ) { return this . na ( a , a [ 2 ] > 0 ? "future" : "past" ) } , qa : function ( a ) { return this . na ( gb ( a ) , "duration" ) } , va : function ( a ) { a = a || this . code ;
return a === "en" || a === "en-US" ? k : this . variant } , ya : function ( a ) { return a === this . ampm [ 0 ] } , za : function ( a ) { return a && a === this . ampm [ 1 ] } , na : function ( a , b ) { var c , d , e = a [ 0 ] , g = a [ 1 ] , f = a [ 2 ] , i = this [ b ] || this . relative ; if ( z ( i ) ) return i . call ( this , e , g , f , b ) ; d = this . units [ ( this . plural && e > 1 ? 1 : 0 ) * 8 + g ] || this . units [ g ] ; if ( this . capitalizeUnit ) d = hb ( d ) ; c = this . modifiers . filter ( function ( j ) { return j . name == "sign" && j . value == ( f > 0 ? 1 : - 1 ) } ) [ 0 ] ; return i . replace ( /\{(.*?)\}/g , function ( j , h ) { switch ( h ) { case "num" : return e ; case "unit" : return d ;
case "sign" : return c . src } } ) } , sa : function ( ) { return this . ma ? [ this . ma ] . concat ( this . ga ) : this . ga } , addFormat : function ( a , b , c , d , e ) { var g = c || [ ] , f = this , i ; a = a . replace ( /\s+/g , "[-,. ]*" ) ; a = a . replace ( /\{([^,]+?)\}/g , function ( j , h ) { var m , o , w , B = h . match ( /\?$/ ) ; w = h . match ( /^(\d+)\??$/ ) ; var J = h . match ( /(\d)(?:-(\d))?/ ) , O = h . replace ( /[^a-z]+$/ , "" ) ; if ( w ) m = f . tokens [ w [ 1 ] ] ; else if ( f [ O ] ) m = f [ O ] ; else if ( f [ O + "s" ] ) { m = f [ O + "s" ] ; if ( J ) { o = [ ] ; m . forEach ( function ( ea , Da ) { var S = Da % ( f . units ? 8 : m . length ) ; if ( S >= J [ 1 ] && S <= ( J [ 2 ] || J [ 1 ] ) ) o . push ( ea ) } ) ;
m = o } m = ib ( m ) } if ( w ) w = "(?:" + m + ")" ; else { c || g . push ( O ) ; w = "(" + m + ")" } if ( B ) w += "?" ; return w } ) ; if ( b ) { b = jb ( Xa , f , e ) ; e = [ "t" , "[\\s\\u3000]" ] . concat ( f . timeMarker ) ; i = a . match ( /\\d\{\d,\d\}\)+\??$/ ) ; kb ( f , "(?:" + b + ")[,\\s\\u3000]+?" + a , Wa . concat ( g ) , d ) ; kb ( f , a + "(?:[,\\s]*(?:" + e . join ( "|" ) + ( i ? "+" : "*" ) + ")" + b + ")?" , g . concat ( Wa ) , d ) } else kb ( f , a , g , d ) } } ; function lb ( a , b ) { var c ; C ( a ) || ( a = "" ) ; c = eb [ a ] || eb [ a . slice ( 0 , 2 ) ] ; if ( b === n && ! c ) throw Error ( "Invalid locale." ) ; return c || Va }
function mb ( a , b ) { function c ( j ) { var h = f [ j ] ; if ( C ( h ) ) f [ j ] = h . split ( "," ) ; else h || ( f [ j ] = [ ] ) } function d ( j , h ) { j = j . split ( "+" ) . map ( function ( m ) { return m . replace ( /(.+):(.+)$/ , function ( o , w , B ) { return B . split ( "|" ) . map ( function ( J ) { return w + J } ) . join ( "|" ) } ) } ) . join ( "|" ) ; return j . split ( "|" ) . forEach ( h ) } function e ( j , h , m ) { var o = [ ] ; f [ j ] . forEach ( function ( w , B ) { if ( h ) w += "+" + w . slice ( 0 , 3 ) ; d ( w , function ( J , O ) { o [ O * m + B ] = J . toLowerCase ( ) } ) } ) ; f [ j ] = o } function g ( j , h , m ) { j = "\\d{" + j + "," + h + "}" ; if ( m ) j += "|(?:" + ib ( f . numbers ) + ")+" ; return j } var f ,
i ; f = new fb ( b ) ; c ( "modifiers" ) ; "months,weekdays,units,numbers,articles,tokens,timeMarker,ampm,timeSuffixes,dateParse,timeParse" . split ( "," ) . forEach ( c ) ; i = ! f . monthSuffix ; e ( "months" , i , 12 ) ; e ( "weekdays" , i , 7 ) ; e ( "units" , n , 8 ) ; e ( "numbers" , n , 10 ) ; f . code = a ; f . date = g ( 1 , 2 , f . digitDate ) ; f . year = g ( 4 , 4 ) ; f . num = function ( ) { var j = [ "\\d+" ] . concat ( f . articles ) ; if ( f . numbers ) j = j . concat ( f . numbers ) ; return ib ( j ) } ( ) ; ( function ( ) { var j = [ ] ; f . ha = { } ; f . modifiers . forEach ( function ( h ) { var m = h . name ; d ( h . src , function ( o ) { var w = f [ m ] ; f . ha [ o ] = h ; j . push ( { name : m ,
src : o , value : h . value } ) ; f [ m ] = w ? w + "|" + o : o } ) } ) ; f . day += "|" + ib ( f . weekdays ) ; f . modifiers = j } ) ( ) ; if ( f . monthSuffix ) { f . month = g ( 1 , 2 ) ; f . months = oa ( 1 , 12 ) . map ( function ( j ) { return j + f . monthSuffix } ) } f . full _month = g ( 1 , 2 ) + "|" + ib ( f . months ) ; f . timeSuffixes . length > 0 && f . addFormat ( jb ( Xa , f ) , n , Wa ) ; f . addFormat ( "{day}" , k ) ; f . addFormat ( "{month}" + ( f . monthSuffix || "" ) ) ; f . addFormat ( "{year}" + ( f . yearSuffix || "" ) ) ; f . timeParse . forEach ( function ( j ) { f . addFormat ( j , k ) } ) ; f . dateParse . forEach ( function ( j ) { f . addFormat ( j ) } ) ; return eb [ a ] = f }
function kb ( a , b , c , d ) { a . ga . unshift ( { Ba : d , xa : a , Aa : r ( "^" + b + "$" , "i" ) , to : c } ) } function hb ( a ) { return a . slice ( 0 , 1 ) . toUpperCase ( ) + a . slice ( 1 ) } function ib ( a ) { return a . filter ( function ( b ) { return ! ! b } ) . join ( "|" ) } function nb ( a , b ) { var c ; if ( L ( a [ 0 ] ) ) return a ; else if ( A ( a [ 0 ] ) && ! A ( a [ 1 ] ) ) return [ a [ 0 ] ] ; else if ( C ( a [ 0 ] ) && b ) return [ ob ( a [ 0 ] ) , a [ 1 ] ] ; c = { } ; $a . forEach ( function ( d , e ) { c [ d . $ ] = a [ e ] } ) ; return [ c ] }
function ob ( a , b ) { var c = { } ; if ( match = a . match ( /^(\d+)?\s?(\w+?)s?$/i ) ) { if ( K ( b ) ) b = parseInt ( match [ 1 ] ) || 1 ; c [ match [ 2 ] . toLowerCase ( ) ] = b } return c } function pb ( a , b ) { var c = { } , d , e ; b . forEach ( function ( g , f ) { d = a [ f + 1 ] ; if ( ! ( K ( d ) || d === "" ) ) { if ( g === "year" ) c . Ca = d ; e = parseFloat ( d . replace ( /,/ , "." ) ) ; c [ g ] = ! isNaN ( e ) ? e : d . toLowerCase ( ) } } ) ; return c } function qb ( a ) { a = a . trim ( ) . replace ( /^(just )?now|\.+$/i , "" ) ; return rb ( a ) }
function rb ( a ) { return a . replace ( Za , function ( b , c , d ) { var e = 0 , g = 1 , f , i ; if ( c ) return b ; d . split ( "" ) . reverse ( ) . forEach ( function ( j ) { j = Ya [ j ] ; var h = j > 9 ; if ( h ) { if ( f ) e += g ; g *= j / ( i || 1 ) ; i = j } else { if ( f === n ) g *= 10 ; e += g * j } f = h } ) ; if ( f ) e += g ; return e } ) }
function sb ( a , b , c , d ) { var e = new s , g = n , f , i , j , h , m , o , w , B , J ; e . utc ( d ) ; if ( ga ( a ) ) e = new s ( a . getTime ( ) ) ; else if ( A ( a ) ) e = new s ( a ) ; else if ( L ( a ) ) { e . set ( a , k ) ; h = a } else if ( C ( a ) ) { f = lb ( b ) ; a = qb ( a ) ; f && G ( f . sa ( ) , function ( O , ea ) { var Da = a . match ( ea . Aa ) ; if ( Da ) { j = ea ; i = j . xa ; h = pb ( Da , j . to , i ) ; h . utc && e . utc ( ) ; i . ma = j ; if ( h . timestamp ) { h = h . timestamp ; return n } if ( j . Ba && ! C ( h . month ) && ( C ( h . date ) || f . va ( b ) ) ) { B = h . month ; h . month = h . date ; h . date = B } if ( h . year && h . Ca . length === 2 ) h . year = M ( V ( new s , "FullYear" ) / 100 ) * 100 - M ( h . year / 100 ) * 100 + h . year ; if ( h . month ) { h . month =
i . getMonth ( h . month ) ; if ( h . shift && ! h . unit ) h . unit = i . units [ 7 ] } if ( h . weekday && h . date ) delete h . weekday ; else if ( h . weekday ) { h . weekday = i . getWeekday ( h . weekday ) ; if ( h . shift && ! h . unit ) h . unit = i . units [ 5 ] } if ( h . day && ( B = i . ha [ h . day ] ) ) { h . day = B . value ; e . reset ( ) ; g = k } else if ( h . day && ( o = i . getWeekday ( h . day ) ) > - 1 ) { delete h . day ; if ( h . num && h . month ) { J = function ( ) { var S = e . getWeekday ( ) ; e . setWeekday ( 7 * ( h . num - 1 ) + ( S > o ? o + 7 : o ) ) } ; h . day = 1 } else h . weekday = o } if ( h . date && ! A ( h . date ) ) h . date = i . ta ( h . date ) ; if ( i . za ( h . ampm ) && h . hour < 12 ) h . hour += 12 ; else if ( i . ya ( h . ampm ) &&
h . hour === 12 ) h . hour = 0 ; if ( "offset_hours" in h || "offset_minutes" in h ) { e . utc ( ) ; h . offset _minutes = h . offset _minutes || 0 ; h . offset _minutes += h . offset _hours * 60 ; if ( h . offset _sign === "-" ) h . offset _minutes *= - 1 ; h . minute -= h . offset _minutes } if ( h . unit ) { g = k ; w = i . oa ( h . num ) ; m = i . ra ( h . unit ) ; if ( h . shift || h . edge ) { w *= ( B = i . ha [ h . shift ] ) ? B . value : 0 ; if ( m === "month" && I ( h . date ) ) { e . set ( { day : h . date } , k ) ; delete h . date } if ( m === "year" && I ( h . month ) ) { e . set ( { month : h . month , day : h . date } , k ) ; delete h . month ; delete h . date } } if ( h . sign && ( B = i . ha [ h . sign ] ) ) w *= B . value ;
if ( I ( h . weekday ) ) { e . set ( { weekday : h . weekday } , k ) ; delete h . weekday } h [ m ] = ( h [ m ] || 0 ) + w } if ( h . year _sign === "-" ) h . year *= - 1 ; ab . slice ( 1 , 4 ) . forEach ( function ( S , Ub ) { var zb = h [ S . $ ] , Ab = zb % 1 ; if ( Ab ) { h [ ab [ Ub ] . $ ] = M ( Ab * ( S . $ === "second" ? 1E3 : 60 ) ) ; h [ S . $ ] = N ( zb ) } } ) ; return n } } ) ; if ( j ) if ( g ) e . advance ( h ) ; else { e . _utc && e . reset ( ) ; tb ( e , h , k , n , c ) } else e = a ? new s ( a ) : new s ; if ( h && h . edge ) { B = i . ha [ h . edge ] ; G ( ab . slice ( 4 ) , function ( O , ea ) { if ( I ( h [ ea . $ ] ) ) { m = ea . $ ; return n } } ) ; if ( m === "year" ) h . fa = "month" ; else if ( m === "month" || m === "week" ) h . fa = "day" ; e [ ( B . value <
0 ? "endOf" : "beginningOf" ) + hb ( m ) ] ( ) ; B . value === - 2 && e . reset ( ) } J && J ( ) } e . utc ( n ) ; return { ea : e , set : h } } function gb ( a ) { var b , c = v . abs ( a ) , d = c , e = 0 ; ab . slice ( 1 ) . forEach ( function ( g , f ) { b = N ( M ( c / g . da ( ) * 10 ) / 10 ) ; if ( b >= 1 ) { d = b ; e = f + 1 } } ) ; return [ d , e , a ] }
function ub ( a , b , c , d ) { var e , g = lb ( d ) , f = r ( /^[A-Z]/ ) ; if ( a . isValid ( ) ) if ( Date [ b ] ) b = Date [ b ] ; else { if ( z ( b ) ) { e = gb ( a . millisecondsFromNow ( ) ) ; b = b . apply ( a , e . concat ( g ) ) } } else return "Invalid Date" ; if ( ! b && c ) { e = e || gb ( a . millisecondsFromNow ( ) ) ; if ( e [ 1 ] === 0 ) { e [ 1 ] = 1 ; e [ 0 ] = 1 } return g . ua ( e ) } b = b || "long" ; b = g [ b ] || b ; cb . forEach ( function ( i ) { b = b . replace ( r ( "\\{(" + i . ba + ")(\\d)?\\}" , i . la ? "i" : "" ) , function ( j , h , m ) { j = i . format ( a , g , m || 1 , h ) ; m = h . length ; var o = h . match ( /^(.)\1+$/ ) ; if ( i . la ) { if ( m === 3 ) j = j . slice ( 0 , 3 ) ; if ( o || h . match ( f ) ) j = hb ( j ) } else if ( o &&
! i . text ) j = ( A ( j ) ? P ( j , m ) : j . toString ( ) ) . slice ( - m ) ; return j } ) } ) ; return b }
function vb ( a , b , c , d ) { var e = sb ( b , l , l , d ) , g = 0 ; d = b = 0 ; var f ; if ( c > 0 ) { b = d = c ; f = k } if ( ! e . ea . isValid ( ) ) return n ; if ( e . set && e . set . fa ) { db . forEach ( function ( j ) { if ( j . $ === e . set . fa ) g = j . da ( e . ea , a - e . ea ) - 1 } ) ; c = hb ( e . set . fa ) ; if ( e . set . edge || e . set . shift ) e . ea [ "beginningOf" + c ] ( ) ; if ( e . set . fa === "month" ) i = e . ea . clone ( ) [ "endOf" + c ] ( ) . getTime ( ) ; if ( ! f && e . set . sign && e . set . fa != "millisecond" ) { b = 50 ; d = - 50 } } f = a . getTime ( ) ; c = e . ea . getTime ( ) ; var i = i || c + g ; return f >= c - b && f <= i + d }
function tb ( a , b , c , d , e ) { function g ( h ) { return I ( b [ h ] ) ? b [ h ] : b [ h + "s" ] } function f ( h ) { return I ( g ( h ) ) } var i , j ; if ( A ( b ) && d ) b = { milliseconds : b } ; else if ( A ( b ) ) { a . setTime ( b ) ; return a } if ( b . date ) b . day = b . date ; G ( ab , function ( h , m ) { var o = m . $ === "day" ; if ( f ( m . $ ) || o && f ( "weekday" ) ) { b . fa = m . $ ; j = + h ; return n } else if ( c && m . $ !== "week" && ( ! o || ! f ( "week" ) ) ) W ( a , m . method , o ? 1 : 0 ) } ) ; db . forEach ( function ( h ) { var m = h . $ ; h = h . method ; var o ; o = g ( m ) ; if ( ! K ( o ) ) { if ( d ) { if ( m === "week" ) { o = ( b . day || 0 ) + o * 7 ; h = "Date" } o = o * d + V ( a , h ) } else m === "month" && f ( "day" ) && W ( a ,
"Date" , 15 ) ; W ( a , h , o ) ; if ( d && m === "month" ) { m = o ; if ( m < 0 ) m += 12 ; m % 12 != V ( a , "Month" ) && W ( a , "Date" , 0 ) } } } ) ; if ( ! d && ! f ( "day" ) && f ( "weekday" ) ) { i = g ( "weekday" ) ; a . setWeekday ( i ) } ( function ( ) { var h = new s ; return e === - 1 && a > h || e === 1 && a < h } ) ( ) && G ( ab . slice ( j + 1 ) , function ( h , m ) { if ( ( m . ja || m . $ === "week" && f ( "weekday" ) ) && ! ( f ( m . $ ) || m . $ === "day" && f ( "weekday" ) ) ) { a [ m . ia ] ( e ) ; return n } } ) ; return a } function V ( a , b ) { return a [ "get" + ( a . _utc ? "UTC" : "" ) + b ] ( ) } function W ( a , b , c ) { return a [ "set" + ( a . _utc ? "UTC" : "" ) + b ] ( c ) }
function jb ( a , b , c ) { var d = { h : 0 , m : 1 , s : 2 } , e ; b = b || U ; return a . replace ( /{([a-z])}/g , function ( g , f ) { var i = [ ] , j = f === "h" , h = j && ! c ; if ( f === "t" ) return b . ampm . join ( "|" ) ; else { j && i . push ( ":" ) ; if ( e = b . timeSuffixes [ d [ f ] ] ) i . push ( e + "\\s*" ) ; return i . length === 0 ? "" : "(?:" + i . join ( "|" ) + ")" + ( h ? "" : "?" ) } } ) } function X ( a , b , c ) { var d , e ; if ( A ( a [ 1 ] ) ) d = nb ( a ) [ 0 ] ; else { d = a [ 0 ] ; e = a [ 1 ] } return sb ( d , e , b , c ) . ea }
s . extend ( { create : function ( ) { return X ( arguments ) } , past : function ( ) { return X ( arguments , - 1 ) } , future : function ( ) { return X ( arguments , 1 ) } , addLocale : function ( a , b ) { return mb ( a , b ) } , setLocale : function ( a ) { var b = lb ( a , n ) ; Va = b ; if ( a && a != b . code ) b . code = a ; return b } , getLocale : function ( a ) { return ! a ? Va : lb ( a , n ) } , addFormat : function ( a , b , c ) { kb ( lb ( c ) , a , b ) } } , n , n ) ;
s . extend ( { set : function ( ) { var a = nb ( arguments ) ; return tb ( this , a [ 0 ] , a [ 1 ] ) } , setWeekday : function ( a ) { if ( ! K ( a ) ) return W ( this , "Date" , V ( this , "Date" ) + a - V ( this , "Day" ) ) } , setWeek : function ( a ) { if ( ! K ( a ) ) { V ( this , "Date" ) ; W ( this , "Month" , 0 ) ; W ( this , "Date" , a * 7 + 1 ) ; return this . getTime ( ) } } , getWeek : function ( ) { var a = this ; a = a . clone ( ) ; var b = V ( a , "Day" ) || 7 ; a . addDays ( 4 - b ) . reset ( ) ; return 1 + N ( a . daysSince ( a . clone ( ) . beginningOfYear ( ) ) / 7 ) } , getUTCOffset : function ( a ) { var b = this . _utc ? 0 : this . getTimezoneOffset ( ) , c = a === k ? ":" : "" ; if ( ! b && a ) return "Z" ;
return P ( M ( - b / 60 ) , 2 , k ) + c + P ( b % 60 , 2 ) } , utc : function ( a ) { this . _utc = a === k || arguments . length === 0 ; return this } , isUTC : function ( ) { return ! ! this . _utc || this . getTimezoneOffset ( ) === 0 } , advance : function ( ) { var a = nb ( arguments , k ) ; return tb ( this , a [ 0 ] , a [ 1 ] , 1 ) } , rewind : function ( ) { var a = nb ( arguments , k ) ; return tb ( this , a [ 0 ] , a [ 1 ] , - 1 ) } , isValid : function ( ) { return ! isNaN ( this . getTime ( ) ) } , isAfter : function ( a , b ) { return this . getTime ( ) > s . create ( a ) . getTime ( ) - ( b || 0 ) } , isBefore : function ( a , b ) { return this . getTime ( ) < s . create ( a ) . getTime ( ) + ( b ||
0 ) } , isBetween : function ( a , b , c ) { var d = this . getTime ( ) ; a = s . create ( a ) . getTime ( ) ; var e = s . create ( b ) . getTime ( ) ; b = v . min ( a , e ) ; a = v . max ( a , e ) ; c = c || 0 ; return b - c < d && a + c > d } , isLeapYear : function ( ) { var a = V ( this , "FullYear" ) ; return a % 4 === 0 && a % 100 !== 0 || a % 400 === 0 } , daysInMonth : function ( ) { return 32 - V ( new s ( V ( this , "FullYear" ) , V ( this , "Month" ) , 32 ) , "Date" ) } , format : function ( a , b ) { return ub ( this , a , n , b ) } , relative : function ( a , b ) { if ( C ( a ) ) { b = a ; a = l } return ub ( this , a , k , b ) } , is : function ( a , b , c ) { var d , e ; if ( this . isValid ( ) ) { if ( C ( a ) ) { a = a . trim ( ) . toLowerCase ( ) ;
e = this . clone ( ) . utc ( c ) ; switch ( k ) { case a === "future" : return this . getTime ( ) > ( new s ) . getTime ( ) ; case a === "past" : return this . getTime ( ) < ( new s ) . getTime ( ) ; case a === "weekday" : return V ( e , "Day" ) > 0 && V ( e , "Day" ) < 6 ; case a === "weekend" : return V ( e , "Day" ) === 0 || V ( e , "Day" ) === 6 ; case ( d = U . weekdays . indexOf ( a ) % 7 ) > - 1 : return V ( e , "Day" ) === d ; case ( d = U . months . indexOf ( a ) % 12 ) > - 1 : return V ( e , "Month" ) === d } } return vb ( this , a , b , c ) } } , reset : function ( a ) { var b = { } , c ; a = a || "hours" ; if ( a === "date" ) a = "days" ; c = db . some ( function ( d ) { return a === d . $ ||
a === d . $ + "s" } ) ; b [ a ] = a . match ( /^days?/ ) ? 1 : 0 ; return c ? this . set ( b , k ) : this } , clone : function ( ) { var a = new s ( this . getTime ( ) ) ; a . _utc = this . _utc ; return a } } ) ; s . extend ( { iso : function ( ) { return this . toISOString ( ) } , getWeekday : s . prototype . getDay , getUTCWeekday : s . prototype . getUTCDay } ) ;
function wb ( a , b ) { function c ( ) { return M ( this * b ) } function d ( ) { return X ( arguments ) [ a . ia ] ( this ) } function e ( ) { return X ( arguments ) [ a . ia ] ( - this ) } var g = a . $ , f = { } ; f [ g ] = c ; f [ g + "s" ] = c ; f [ g + "Before" ] = e ; f [ g + "sBefore" ] = e ; f [ g + "Ago" ] = e ; f [ g + "sAgo" ] = e ; f [ g + "After" ] = d ; f [ g + "sAfter" ] = d ; f [ g + "FromNow" ] = d ; f [ g + "sFromNow" ] = d ; u . extend ( f ) } u . extend ( { duration : function ( a ) { return lb ( a ) . qa ( this ) } } ) ;
U = Va = s . addLocale ( "en" , { plural : k , timeMarker : "at" , ampm : "am,pm" , months : "January,February,March,April,May,June,July,August,September,October,November,December" , weekdays : "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday" , units : "millisecond:|s,second:|s,minute:|s,hour:|s,day:|s,week:|s,month:|s,year:|s" , numbers : "one,two,three,four,five,six,seven,eight,nine,ten" , articles : "a,an,the" , tokens : "the,st|nd|rd|th,of" , "short" : "{Month} {d}, {yyyy}" , "long" : "{Month} {d}, {yyyy} {h}:{mm}{tt}" , full : "{Weekday} {Month} {d}, {yyyy} {h}:{mm}:{ss}{tt}" ,
past : "{num} {unit} {sign}" , future : "{num} {unit} {sign}" , duration : "{num} {unit}" , modifiers : [ { name : "day" , src : "yesterday" , value : - 1 } , { name : "day" , src : "today" , value : 0 } , { name : "day" , src : "tomorrow" , value : 1 } , { name : "sign" , src : "ago|before" , value : - 1 } , { name : "sign" , src : "from now|after|from|in|later" , value : 1 } , { name : "edge" , src : "last day" , value : - 2 } , { name : "edge" , src : "end" , value : - 1 } , { name : "edge" , src : "first day|beginning" , value : 1 } , { name : "shift" , src : "last" , value : - 1 } , { name : "shift" , src : "the|this" , value : 0 } , { name : "shift" ,
src : "next" , value : 1 } ] , dateParse : [ "{num} {unit} {sign}" , "{sign} {num} {unit}" , "{month} {year}" , "{shift} {unit=5-7}" , "{0?} {date}{1}" , "{0?} {edge} of {shift?} {unit=4-7?}{month?}{year?}" ] , timeParse : [ "{0} {num}{1} {day} of {month} {year?}" , "{weekday?} {month} {date}{1?} {year?}" , "{date} {month} {year}" , "{shift} {weekday}" , "{shift} week {weekday}" , "{weekday} {2?} {shift} week" , "{num} {unit=4-5} {sign} {day}" , "{0?} {date}{1} of {month}" , "{0?}{month?} {date?}{1?} of {shift} {unit=6-7}" ] } ) ; ab = db . concat ( ) . reverse ( ) ;
$a = db . concat ( ) ; $a . splice ( 2 , 1 ) ;
H ( s , k , n , db , function ( a , b , c ) { var d = b . $ , e = hb ( d ) , g = b . da ( ) , f , i ; b . ia = "add" + e + "s" ; f = function ( j , h ) { return M ( ( this . getTime ( ) - s . create ( j , h ) . getTime ( ) ) / g ) } ; i = function ( j , h ) { return M ( ( s . create ( j , h ) . getTime ( ) - this . getTime ( ) ) / g ) } ; a [ d + "sAgo" ] = i ; a [ d + "sUntil" ] = i ; a [ d + "sSince" ] = f ; a [ d + "sFromNow" ] = f ; a [ b . ia ] = function ( j , h ) { var m = { } ; m [ d ] = j ; return this . advance ( m , h ) } ; wb ( b , g ) ; c < 3 && [ "Last" , "This" , "Next" ] . forEach ( function ( j ) { a [ "is" + j + e ] = function ( ) { return this . is ( j + " " + d ) } } ) ; if ( c < 4 ) { a [ "beginningOf" + e ] = function ( ) { var j = { } ; switch ( d ) { case "year" : j . year =
V ( this , "FullYear" ) ; break ; case "month" : j . month = V ( this , "Month" ) ; break ; case "day" : j . day = V ( this , "Date" ) ; break ; case "week" : j . weekday = 0 } return this . set ( j , k ) } ; a [ "endOf" + e ] = function ( ) { var j = { hours : 23 , minutes : 59 , seconds : 59 , milliseconds : 999 } ; switch ( d ) { case "year" : j . month = 11 ; j . day = 31 ; break ; case "month" : j . day = this . daysInMonth ( ) ; break ; case "week" : j . weekday = 6 } return this . set ( j , k ) } } } ) ; U . addFormat ( "([+-])?(\\d{4,4})[-.]?{full_month}[-.]?(\\d{1,2})?" , k , [ "year_sign" , "year" , "month" , "date" ] , n , k ) ;
U . addFormat ( "(\\d{1,2})[-.\\/]{full_month}(?:[-.\\/](\\d{2,4}))?" , k , [ "date" , "month" , "year" ] , k ) ; U . addFormat ( "{full_month}[-.](\\d{4,4})" , n , [ "month" , "year" ] ) ; U . addFormat ( "\\/Date\\((\\d+(?:\\+\\d{4,4})?)\\)\\/" , n , [ "timestamp" ] ) ; U . addFormat ( jb ( Xa , U ) , n , Wa ) ; bb = U . ga . slice ( 0 , 7 ) . reverse ( ) ; U . ga = U . ga . slice ( 7 ) . concat ( bb ) ; H ( s , k , n , "short,long,full" , function ( a , b ) { a [ b ] = function ( c ) { return ub ( this , b , n , c ) } } ) ;
"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d\u5341\u767e\u5343\u4e07" . split ( "" ) . forEach ( function ( a , b ) { if ( b > 9 ) b = v . pow ( 10 , b - 9 ) ; Ya [ a ] = b } ) ; "\uff10\uff11\uff12\uff13\uff14\uff15\uff16\uff17\uff18\uff19" . split ( "" ) . forEach ( function ( a , b ) { Ya [ a ] = b } ) ; Za = r ( "([\u671f\u9031\u5468])?([\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d\u5341\u767e\u5343\u4e07\uff10\uff11\uff12\uff13\uff14\uff15\uff16\uff17\uff18\uff19]+)(?!\u6628)" , "g" ) ;
( function ( ) { var a = "today,yesterday,tomorrow,weekday,weekend,future,past" . split ( "," ) , b = U . weekdays . slice ( 0 , 7 ) , c = U . months . slice ( 0 , 12 ) ; H ( s , k , n , a . concat ( b ) . concat ( c ) , function ( d , e ) { d [ "is" + hb ( e ) ] = function ( g ) { return this . is ( e , 0 , g ) } } ) } ) ( ) ; ( function ( ) { s . extend ( { utc : { create : function ( ) { return X ( arguments , 0 , k ) } , past : function ( ) { return X ( arguments , - 1 , k ) } , future : function ( ) { return X ( arguments , 1 , k ) } } } , n , n ) } ) ( ) ;
s . extend ( { RFC1123 : "{Dow}, {dd} {Mon} {yyyy} {HH}:{mm}:{ss} {tz}" , RFC1036 : "{Weekday}, {dd}-{Mon}-{yy} {HH}:{mm}:{ss} {tz}" , ISO8601 _DATE : "{yyyy}-{MM}-{dd}" , ISO8601 _DATETIME : "{yyyy}-{MM}-{dd}T{HH}:{mm}:{ss}.{fff}{isotz}" } , n , n ) ;
DateRange = function ( a , b ) { this . start = s . create ( a ) ; this . end = s . create ( b ) } ; DateRange . prototype . toString = function ( ) { return this . isValid ( ) ? this . start . full ( ) + ".." + this . end . full ( ) : "Invalid DateRange" } ;
E ( DateRange , k , n , { isValid : function ( ) { return this . start < this . end } , duration : function ( ) { return this . isValid ( ) ? this . end . getTime ( ) - this . start . getTime ( ) : NaN } , contains : function ( a ) { var b = this ; return ( a . start && a . end ? [ a . start , a . end ] : [ a ] ) . every ( function ( c ) { return c >= b . start && c <= b . end } ) } , every : function ( a , b ) { var c = this . start . clone ( ) , d = [ ] , e = 0 , g , f ; if ( C ( a ) ) { c . advance ( ob ( a , 0 ) , k ) ; g = ob ( a ) ; f = a . toLowerCase ( ) === "day" } else g = { milliseconds : a } ; for ( ; c <= this . end ; ) { d . push ( c ) ; b && b ( c , e ) ; if ( f && V ( c , "Hours" ) === 23 ) { c = c . clone ( ) ; W ( c ,
"Hours" , 48 ) } else c = c . clone ( ) . advance ( g , k ) ; e ++ } return d } , union : function ( a ) { return new DateRange ( this . start < a . start ? this . start : a . start , this . end > a . end ? this . end : a . end ) } , intersect : function ( a ) { return new DateRange ( this . start > a . start ? this . start : a . start , this . end < a . end ? this . end : a . end ) } } ) ; H ( DateRange , k , n , "Millisecond,Second,Minute,Hour,Day,Week,Month,Year" , function ( a , b ) { a [ "each" + b ] = function ( c ) { return this . every ( b , c ) } } ) ; E ( s , n , n , { range : function ( a , b ) { return new DateRange ( a , b ) } } ) ;
function xb ( a , b , c , d , e ) { var g ; if ( ! a . timers ) a . timers = [ ] ; A ( b ) || ( b = 0 ) ; a . timers . push ( setTimeout ( function ( ) { a . timers . splice ( g , 1 ) ; c . apply ( d , e || [ ] ) } , b ) ) ; g = a . timers . length }
E ( Function , k , n , { lazy : function ( a , b ) { function c ( ) { if ( ! ( g && e . length > b - 2 ) ) { e . push ( [ this , arguments ] ) ; f ( ) } } var d = this , e = [ ] , g = n , f , i , j ; a = a || 1 ; b = b || Infinity ; i = M ( a , void 0 , "ceil" ) ; j = M ( i / a ) ; f = function ( ) { if ( ! ( g || e . length == 0 ) ) { for ( var h = v . max ( e . length - j , 0 ) ; e . length > h ; ) Function . prototype . apply . apply ( d , e . shift ( ) ) ; xb ( c , i , function ( ) { g = n ; f ( ) } ) ; g = k } } ; return c } , delay : function ( a ) { var b = F ( arguments ) . slice ( 1 ) ; xb ( this , a , this , this , b ) ; return this } , throttle : function ( a ) { return this . lazy ( a , 1 ) } , debounce : function ( a ) { function b ( ) { b . cancel ( ) ;
xb ( b , a , c , this , arguments ) } var c = this ; return b } , cancel : function ( ) { if ( da ( this . timers ) ) for ( ; this . timers . length > 0 ; ) clearTimeout ( this . timers . shift ( ) ) ; return this } , after : function ( a ) { var b = this , c = 0 , d = [ ] ; if ( A ( a ) ) { if ( a === 0 ) { b . call ( ) ; return b } } else a = 1 ; return function ( ) { var e ; d . push ( F ( arguments ) ) ; c ++ ; if ( c == a ) { e = b . call ( this , d ) ; c = 0 ; d = [ ] ; return e } } } , once : function ( ) { var a = this ; return function ( ) { return la ( a , "memo" ) ? a . memo : a . memo = a . apply ( this , arguments ) } } , fill : function ( ) { var a = this , b = F ( arguments ) ; return function ( ) { var c =
F ( arguments ) ; b . forEach ( function ( d , e ) { if ( d != l || e >= c . length ) c . splice ( e , 0 , d ) } ) ; return a . apply ( this , c ) } } } ) ;
function yb ( a , b , c , d , e , g ) { var f = a . toFixed ( 20 ) , i = f . search ( /\./ ) ; f = f . search ( /[1-9]/ ) ; i = i - f ; if ( i > 0 ) i -= 1 ; e = v . max ( v . min ( ( i / 3 ) . floor ( ) , e === n ? c . length : e ) , - d ) ; d = c . charAt ( e + d - 1 ) ; if ( i < - 9 ) { e = - 3 ; b = i . abs ( ) - 9 ; d = c . slice ( 0 , 1 ) } return ( a / ( g ? ( 2 ) . pow ( 10 * e ) : ( 10 ) . pow ( e * 3 ) ) ) . round ( b || 0 ) . format ( ) + d . trim ( ) }
E ( u , n , n , { random : function ( a , b ) { var c , d ; if ( arguments . length == 1 ) { b = a ; a = 0 } c = v . min ( a || 0 , K ( b ) ? 1 : b ) ; d = v . max ( a || 0 , K ( b ) ? 1 : b ) + 1 ; return N ( v . random ( ) * ( d - c ) + c ) } } ) ;
E ( u , k , n , { log : function ( a ) { return v . log ( this ) / ( a ? v . log ( a ) : 1 ) } , abbr : function ( a ) { return yb ( this , a , "kmbt" , 0 , 4 ) } , metric : function ( a , b ) { return yb ( this , a , "n\u03bcm kMGTPE" , 4 , K ( b ) ? 1 : b ) } , bytes : function ( a , b ) { return yb ( this , a , "kMGTPE" , 0 , K ( b ) ? 4 : b , k ) + "B" } , isInteger : function ( ) { return this % 1 == 0 } , isOdd : function ( ) { return ! this . isMultipleOf ( 2 ) } , isEven : function ( ) { return this . isMultipleOf ( 2 ) } , isMultipleOf : function ( a ) { return this % a === 0 } , format : function ( a , b , c ) { var d , e , g = /(\d+)(\d{3})/ ; if ( t ( b ) . match ( /\d/ ) ) throw new TypeError ( "Thousands separator cannot contain numbers." ) ;
d = A ( a ) ? M ( this , a || 0 ) . toFixed ( v . max ( a , 0 ) ) : this . toString ( ) ; b = b || "," ; c = c || "." ; e = d . split ( "." ) ; d = e [ 0 ] ; for ( e = e [ 1 ] || "" ; d . match ( g ) ; ) d = d . replace ( g , "$1" + b + "$2" ) ; if ( e . length > 0 ) d += c + pa ( ( a || 0 ) - e . length , "0" ) + e ; return d } , hex : function ( a ) { return this . pad ( a || 1 , n , 16 ) } , upto : function ( a , b , c ) { return oa ( this , a , b , c || 1 ) } , downto : function ( a , b , c ) { return oa ( this , a , b , - ( c || 1 ) ) } , times : function ( a ) { if ( a ) for ( var b = 0 ; b < this ; b ++ ) a . call ( this , b ) ; return this . toNumber ( ) } , chr : function ( ) { return t . fromCharCode ( this ) } , pad : function ( a , b , c ) { return P ( this ,
a , b , c ) } , ordinalize : function ( ) { var a = this . abs ( ) ; a = parseInt ( a . toString ( ) . slice ( - 2 ) ) ; return this + qa ( a ) } , toNumber : function ( ) { return parseFloat ( this , 10 ) } } ) ; H ( u , k , n , "round,floor,ceil" , function ( a , b ) { a [ b ] = function ( c ) { return M ( this , c , b ) } } ) ; H ( u , k , n , "abs,pow,sin,asin,cos,acos,tan,atan,exp,pow,sqrt" , function ( a , b ) { a [ b ] = function ( c , d ) { return v [ b ] ( this , c , d ) } } ) ;
var Bb = "isObject,isNaN" . split ( "," ) , Cb = "keys,values,each,merge,clone,equal,watch,tap,has" . split ( "," ) ;
function Db ( a , b , c , d ) { var e = /^(.+?)(\[.*\])$/ , g , f , i ; if ( d !== n && ( f = b . match ( e ) ) ) { i = f [ 1 ] ; b = f [ 2 ] . replace ( /^\[|\]$/g , "" ) . split ( "][" ) ; b . forEach ( function ( j ) { g = ! j || j . match ( /^\d+$/ ) ; if ( ! i && da ( a ) ) i = a . length ; a [ i ] || ( a [ i ] = g ? [ ] : { } ) ; a = a [ i ] ; i = j } ) ; if ( ! i && g ) i = a . length . toString ( ) ; Db ( a , i , c ) } else a [ b ] = c . match ( /^[\d.]+$/ ) ? parseFloat ( c ) : c === "true" ? k : c === "false" ? n : c } E ( p , n , k , { watch : function ( a , b , c ) { if ( ca ) { var d = a [ b ] ; p . defineProperty ( a , b , { enumerable : k , configurable : k , get : function ( ) { return d } , set : function ( e ) { d = c . call ( a , b , d , e ) } } ) } } } ) ;
E ( p , n , function ( a , b ) { return z ( b ) } , { keys : function ( a , b ) { var c = p . keys ( a ) ; c . forEach ( function ( d ) { b . call ( a , d , a [ d ] ) } ) ; return c } } ) ;
E ( p , n , n , { isObject : function ( a ) { return L ( a ) } , isNaN : function ( a ) { return A ( a ) && a . valueOf ( ) !== a . valueOf ( ) } , equal : function ( a , b ) { return ua ( a ) && ua ( b ) ? ta ( a ) === ta ( b ) : a === b } , extended : function ( a ) { return new na ( a ) } , merge : function ( a , b , c , d ) { var e , g ; if ( a && typeof b != "string" ) for ( e in b ) if ( la ( b , e ) && a ) { g = b [ e ] ; if ( I ( a [ e ] ) ) { if ( d === n ) continue ; if ( z ( d ) ) g = d . call ( b , e , a [ e ] , b [ e ] ) } if ( c === k && g && ka ( g ) ) if ( ga ( g ) ) g = new s ( g . getTime ( ) ) ; else if ( D ( g ) ) g = new r ( g . source , sa ( g ) ) ; else { a [ e ] || ( a [ e ] = q . isArray ( g ) ? [ ] : { } ) ; p . merge ( a [ e ] , b [ e ] , c , d ) ; continue } a [ e ] =
g } return a } , values : function ( a , b ) { var c = [ ] ; G ( a , function ( d , e ) { c . push ( e ) ; b && b . call ( a , e ) } ) ; return c } , clone : function ( a , b ) { if ( ! ka ( a ) ) return a ; if ( q . isArray ( a ) ) return a . concat ( ) ; var c = a instanceof na ? new na : { } ; return p . merge ( c , a , b ) } , fromQueryString : function ( a , b ) { var c = p . extended ( ) ; a = a && a . toString ? a . toString ( ) : "" ; a . replace ( /^.*?\?/ , "" ) . split ( "&" ) . forEach ( function ( d ) { d = d . split ( "=" ) ; d . length === 2 && Db ( c , d [ 0 ] , decodeURIComponent ( d [ 1 ] ) , b ) } ) ; return c } , tap : function ( a , b ) { var c = b ; z ( b ) || ( c = function ( ) { b && a [ b ] ( ) } ) ; c . call ( a ,
a ) ; return a } , has : function ( a , b ) { return la ( a , b ) } } ) ; H ( p , n , n , x , function ( a , b ) { var c = "is" + b ; Bb . push ( c ) ; a [ c ] = function ( d ) { return p . prototype . toString . call ( d ) === "[object " + b + "]" } } ) ; ( function ( ) { E ( p , n , function ( ) { return arguments . length === 0 } , { extend : function ( ) { wa ( Bb . concat ( Cb ) , p ) } } ) } ) ( ) ; wa ( Cb , na ) ;
E ( r , n , n , { escape : function ( a ) { return Q ( a ) } } ) ;
E ( r , k , n , { getFlags : function ( ) { return sa ( this ) } , setFlags : function ( a ) { return r ( this . source , a ) } , addFlag : function ( a ) { return this . setFlags ( sa ( this , a ) ) } , removeFlag : function ( a ) { return this . setFlags ( sa ( this ) . replace ( a , "" ) ) } } ) ;
var Eb , Fb ;
E ( t , k , n , { escapeRegExp : function ( ) { return Q ( this ) } , escapeURL : function ( a ) { return a ? encodeURIComponent ( this ) : encodeURI ( this ) } , unescapeURL : function ( a ) { return a ? decodeURI ( this ) : decodeURIComponent ( this ) } , escapeHTML : function ( ) { return this . replace ( /&/g , "&" ) . replace ( /</g , "<" ) . replace ( />/g , ">" ) } , unescapeHTML : function ( ) { return this . replace ( /</g , "<" ) . replace ( />/g , ">" ) . replace ( /&/g , "&" ) } , encodeBase64 : function ( ) { return Eb ( this ) } , decodeBase64 : function ( ) { return Fb ( this ) } , each : function ( a , b ) { var c ,
d ; if ( z ( a ) ) { b = a ; a = /[\s\S]/g } else if ( a ) if ( C ( a ) ) a = r ( Q ( a ) , "gi" ) ; else { if ( D ( a ) ) a = r ( a . source , sa ( a , "g" ) ) } else a = /[\s\S]/g ; c = this . match ( a ) || [ ] ; if ( b ) for ( d = 0 ; d < c . length ; d ++ ) c [ d ] = b . call ( this , c [ d ] , d , c ) || c [ d ] ; return c } , shift : function ( a ) { var b = "" ; a = a || 0 ; this . codes ( function ( c ) { b += t . fromCharCode ( c + a ) } ) ; return b } , codes : function ( a ) { for ( var b = [ ] , c = 0 ; c < this . length ; c ++ ) { var d = this . charCodeAt ( c ) ; b . push ( d ) ; a && a . call ( this , d , c ) } return b } , chars : function ( a ) { return this . each ( a ) } , words : function ( a ) { return this . trim ( ) . each ( /\S+/g ,
a ) } , lines : function ( a ) { return this . trim ( ) . each ( /^.*$/gm , a ) } , paragraphs : function ( a ) { var b = this . trim ( ) . split ( /[\r\n]{2,}/ ) ; return b = b . map ( function ( c ) { if ( a ) var d = a . call ( c ) ; return d ? d : c } ) } , startsWith : function ( a , b ) { if ( K ( b ) ) b = k ; var c = D ( a ) ? a . source . replace ( "^" , "" ) : Q ( a ) ; return r ( "^" + c , b ? "" : "i" ) . test ( this ) } , endsWith : function ( a , b ) { if ( K ( b ) ) b = k ; var c = D ( a ) ? a . source . replace ( "$" , "" ) : Q ( a ) ; return r ( c + "$" , b ? "" : "i" ) . test ( this ) } , isBlank : function ( ) { return this . trim ( ) . length === 0 } , has : function ( a ) { return this . search ( D ( a ) ?
a : Q ( a ) ) !== - 1 } , add : function ( a , b ) { b = K ( b ) ? this . length : b ; return this . slice ( 0 , b ) + a + this . slice ( b ) } , remove : function ( a ) { return this . replace ( a , "" ) } , reverse : function ( ) { return this . split ( "" ) . reverse ( ) . join ( "" ) } , compact : function ( ) { return this . trim ( ) . replace ( /([\r\n\s\u3000])+/g , function ( a , b ) { return b === "\u3000" ? b : " " } ) } , at : function ( ) { return va ( this , arguments , k ) } , from : function ( a ) { return this . slice ( a ) } , to : function ( a ) { if ( K ( a ) ) a = this . length ; return this . slice ( 0 , a ) } , dasherize : function ( ) { return this . underscore ( ) . replace ( /_/g ,
"-" ) } , underscore : function ( ) { return this . replace ( /[-\s]+/g , "_" ) . replace ( t . Inflector && t . Inflector . acronymRegExp , function ( a , b ) { return ( b > 0 ? "_" : "" ) + a . toLowerCase ( ) } ) . replace ( /([A-Z\d]+)([A-Z][a-z])/g , "$1_$2" ) . replace ( /([a-z\d])([A-Z])/g , "$1_$2" ) . toLowerCase ( ) } , camelize : function ( a ) { return this . underscore ( ) . replace ( /(^|_)([^_]+)/g , function ( b , c , d , e ) { b = d ; b = ( c = t . Inflector ) && c . acronyms [ b ] ; b = C ( b ) ? b : void 0 ; e = a !== n || e > 0 ; if ( b ) return e ? b : b . toLowerCase ( ) ; return e ? d . capitalize ( ) : d } ) } , spacify : function ( ) { return this . underscore ( ) . replace ( /_/g ,
" " ) } , stripTags : function ( ) { var a = this ; F ( arguments . length > 0 ? arguments : [ "" ] , function ( b ) { a = a . replace ( r ( "</?" + Q ( b ) + "[^<>]*>" , "gi" ) , "" ) } ) ; return a } , removeTags : function ( ) { var a = this ; F ( arguments . length > 0 ? arguments : [ "\\S+" ] , function ( b ) { b = r ( "<(" + b + ")[^<>]*(?:\\/>|>.*?<\\/\\1>)" , "gi" ) ; a = a . replace ( b , "" ) } ) ; return a } , truncate : function ( a , b , c , d ) { var e = "" , g = "" , f = this . toString ( ) , i = "[" + ra ( ) + "]+" , j = "[^" + ra ( ) + "]*" , h = r ( i + j + "$" ) ; d = K ( d ) ? "..." : t ( d ) ; if ( f . length <= a ) return f ; switch ( c ) { case "left" : a = f . length - a ; e = d ; f = f . slice ( a ) ;
h = r ( "^" + j + i ) ; break ; case "middle" : a = N ( a / 2 ) ; g = d + f . slice ( f . length - a ) . trimLeft ( ) ; f = f . slice ( 0 , a ) ; break ; default : a = a ; g = d ; f = f . slice ( 0 , a ) } if ( b === n && this . slice ( a , a + 1 ) . match ( /\S/ ) ) f = f . remove ( h ) ; return e + f + g } , pad : function ( a , b ) { return pa ( b , a ) + this + pa ( b , a ) } , padLeft : function ( a , b ) { return pa ( b , a ) + this } , padRight : function ( a , b ) { return this + pa ( b , a ) } , first : function ( a ) { if ( K ( a ) ) a = 1 ; return this . substr ( 0 , a ) } , last : function ( a ) { if ( K ( a ) ) a = 1 ; return this . substr ( this . length - a < 0 ? 0 : this . length - a ) } , repeat : function ( a ) { var b = "" , c = 0 ; if ( A ( a ) &&
a > 0 ) for ( ; c < a ; ) { b += this ; c ++ } return b } , toNumber : function ( a ) { var b = this . replace ( /,/g , "" ) ; return b . match ( /\./ ) ? parseFloat ( b ) : parseInt ( b , a || 10 ) } , capitalize : function ( a ) { var b ; return this . toLowerCase ( ) . replace ( a ? /[\s\S]/g : /^\S/ , function ( c ) { var d = c . toUpperCase ( ) , e ; e = b ? c : d ; b = d !== c ; return e } ) } , assign : function ( ) { var a = { } ; F ( arguments , function ( b , c ) { if ( L ( b ) ) ma ( a , b ) ; else a [ c + 1 ] = b } ) ; return this . replace ( /\{([^{]+?)\}/g , function ( b , c ) { return la ( a , c ) ? a [ c ] : b } ) } , namespace : function ( a ) { a = a || ba ; G ( this . split ( "." ) , function ( b ,
c ) { return ! ! ( a = a [ c ] ) } ) ; return a } } ) ; E ( t , k , n , { insert : t . prototype . add } ) ;
( function ( a ) { if ( this . btoa ) { Eb = this . btoa ; Fb = this . atob } else { var b = /[^A-Za-z0-9\+\/\=]/g ; Eb = function ( c ) { var d = "" , e , g , f , i , j , h , m = 0 ; do { e = c . charCodeAt ( m ++ ) ; g = c . charCodeAt ( m ++ ) ; f = c . charCodeAt ( m ++ ) ; i = e >> 2 ; e = ( e & 3 ) << 4 | g >> 4 ; j = ( g & 15 ) << 2 | f >> 6 ; h = f & 63 ; if ( isNaN ( g ) ) j = h = 64 ; else if ( isNaN ( f ) ) h = 64 ; d = d + a . charAt ( i ) + a . charAt ( e ) + a . charAt ( j ) + a . charAt ( h ) } while ( m < c . length ) ; return d } ; Fb = function ( c ) { var d = "" , e , g , f , i , j , h = 0 ; if ( c . match ( b ) ) throw Error ( "String contains invalid base64 characters" ) ; c = c . replace ( /[^A-Za-z0-9\+\/\=]/g , "" ) ;
2013-03-13 04:35:17 -04:00
do { e = a . indexOf ( c . charAt ( h ++ ) ) ; g = a . indexOf ( c . charAt ( h ++ ) ) ; i = a . indexOf ( c . charAt ( h ++ ) ) ; j = a . indexOf ( c . charAt ( h ++ ) ) ; e = e << 2 | g >> 4 ; g = ( g & 15 ) << 4 | i >> 2 ; f = ( i & 3 ) << 6 | j ; d += t . fromCharCode ( e ) ; if ( i != 64 ) d += t . fromCharCode ( g ) ; if ( j != 64 ) d += t . fromCharCode ( f ) } while ( h < c . length ) ; return d } } } ) ( "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" ) ;
var Gb = [ ] , Hb = [ ] , Y = [ ] , Ib = [ ] , Jb = { } , Kb , Z ; function Lb ( a , b ) { var c = a . indexOf ( b ) ; c > - 1 && a . splice ( c , 1 ) }
function Mb ( a , b , c ) { C ( b ) && Lb ( Y , b ) ; Lb ( Y , c ) ; a . unshift ( { ka : b , pa : c } ) } function Nb ( a , b ) { return a == b || a == "all" || ! a } function Ob ( a ) { return Y . some ( function ( b ) { return ( new r ( "\\b" + b + "$" , "i" ) ) . test ( a ) } ) } function Pb ( a , b ) { a = C ( a ) ? a . toString ( ) : "" ; return a . isBlank ( ) || Ob ( a ) ? a : Qb ( a , b ? Gb : Hb ) } function Qb ( a , b ) { G ( b , function ( c , d ) { if ( a . match ( d . ka ) ) { a = a . replace ( d . ka , d . pa ) ; return n } } ) ; return a } function Rb ( a ) { return a . replace ( /^\W*[a-z]/ , function ( b ) { return b . toUpperCase ( ) } ) }
Z = { acronym : function ( a ) { Jb [ a . toLowerCase ( ) ] = a ; a = p . keys ( Jb ) . map ( function ( b ) { return Jb [ b ] } ) ; Z . acronymRegExp = r ( a . join ( "|" ) , "g" ) } , plural : function ( a , b ) { Mb ( Gb , a , b ) } , singular : function ( a , b ) { Mb ( Hb , a , b ) } , irregular : function ( a , b ) { var c = a . first ( ) , d = a . from ( 1 ) , e = b . first ( ) , g = b . from ( 1 ) , f = e . toUpperCase ( ) , i = e . toLowerCase ( ) , j = c . toUpperCase ( ) , h = c . toLowerCase ( ) ; Lb ( Y , a ) ; Lb ( Y , b ) ; if ( j == f ) { Z . plural ( new r ( "({1}){2}$" . assign ( c , d ) , "i" ) , "$1" + g ) ; Z . plural ( new r ( "({1}){2}$" . assign ( e , g ) , "i" ) , "$1" + g ) ; Z . singular ( new r ( "({1}){2}$" . assign ( e ,
g ) , "i" ) , "$1" + d ) } else { Z . plural ( new r ( "{1}{2}$" . assign ( j , d ) ) , f + g ) ; Z . plural ( new r ( "{1}{2}$" . assign ( h , d ) ) , i + g ) ; Z . plural ( new r ( "{1}{2}$" . assign ( f , g ) ) , f + g ) ; Z . plural ( new r ( "{1}{2}$" . assign ( i , g ) ) , i + g ) ; Z . singular ( new r ( "{1}{2}$" . assign ( f , g ) ) , j + d ) ; Z . singular ( new r ( "{1}{2}$" . assign ( i , g ) ) , h + d ) } } , uncountable : function ( a ) { var b = q . isArray ( a ) ? a : F ( arguments ) ; Y = Y . concat ( b ) } , human : function ( a , b ) { Ib . unshift ( { ka : a , pa : b } ) } , clear : function ( a ) { if ( Nb ( a , "singulars" ) ) Hb = [ ] ; if ( Nb ( a , "plurals" ) ) Gb = [ ] ; if ( Nb ( a , "uncountables" ) ) Y = [ ] ;
if ( Nb ( a , "humans" ) ) Ib = [ ] ; if ( Nb ( a , "acronyms" ) ) Jb = { } } } ; Kb = [ "and" , "or" , "nor" , "a" , "an" , "the" , "so" , "but" , "to" , "of" , "at" , "by" , "from" , "into" , "on" , "onto" , "off" , "out" , "in" , "over" , "with" , "for" ] ; Z . plural ( /$/ , "s" ) ; Z . plural ( /s$/gi , "s" ) ; Z . plural ( /(ax|test)is$/gi , "$1es" ) ; Z . plural ( /(octop|vir|fung|foc|radi|alumn)(i|us)$/gi , "$1i" ) ; Z . plural ( /(census|alias|status)$/gi , "$1es" ) ; Z . plural ( /(bu)s$/gi , "$1ses" ) ; Z . plural ( /(buffal|tomat)o$/gi , "$1oes" ) ; Z . plural ( /([ti])um$/gi , "$1a" ) ; Z . plural ( /([ti])a$/gi , "$1a" ) ;
Z . plural ( /sis$/gi , "ses" ) ; Z . plural ( /f+e?$/gi , "ves" ) ; Z . plural ( /(cuff|roof)$/gi , "$1s" ) ; Z . plural ( /([ht]ive)$/gi , "$1s" ) ; Z . plural ( /([^aeiouy]o)$/gi , "$1es" ) ; Z . plural ( /([^aeiouy]|qu)y$/gi , "$1ies" ) ; Z . plural ( /(x|ch|ss|sh)$/gi , "$1es" ) ; Z . plural ( /(matr|vert|ind)(?:ix|ex)$/gi , "$1ices" ) ; Z . plural ( /([ml])ouse$/gi , "$1ice" ) ; Z . plural ( /([ml])ice$/gi , "$1ice" ) ; Z . plural ( /^(ox)$/gi , "$1en" ) ; Z . plural ( /^(oxen)$/gi , "$1" ) ; Z . plural ( /(quiz)$/gi , "$1zes" ) ; Z . plural ( /(phot|cant|hom|zer|pian|portic|pr|quart|kimon)o$/gi , "$1os" ) ;
Z . plural ( /(craft)$/gi , "$1" ) ; Z . plural ( /([ft])[eo]{2}(th?)$/gi , "$1ee$2" ) ; Z . singular ( /s$/gi , "" ) ; Z . singular ( /([pst][aiu]s)$/gi , "$1" ) ; Z . singular ( /([aeiouy])ss$/gi , "$1ss" ) ; Z . singular ( /(n)ews$/gi , "$1ews" ) ; Z . singular ( /([ti])a$/gi , "$1um" ) ; Z . singular ( /((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/gi , "$1$2sis" ) ; Z . singular ( /(^analy)ses$/gi , "$1sis" ) ; Z . singular ( /(i)(f|ves)$/i , "$1fe" ) ; Z . singular ( /([aeolr]f?)(f|ves)$/i , "$1f" ) ; Z . singular ( /([ht]ive)s$/gi , "$1" ) ; Z . singular ( /([^aeiouy]|qu)ies$/gi , "$1y" ) ;
Z . singular ( /(s)eries$/gi , "$1eries" ) ; Z . singular ( /(m)ovies$/gi , "$1ovie" ) ; Z . singular ( /(x|ch|ss|sh)es$/gi , "$1" ) ; Z . singular ( /([ml])(ous|ic)e$/gi , "$1ouse" ) ; Z . singular ( /(bus)(es)?$/gi , "$1" ) ; Z . singular ( /(o)es$/gi , "$1" ) ; Z . singular ( /(shoe)s?$/gi , "$1" ) ; Z . singular ( /(cris|ax|test)[ie]s$/gi , "$1is" ) ; Z . singular ( /(octop|vir|fung|foc|radi|alumn)(i|us)$/gi , "$1us" ) ; Z . singular ( /(census|alias|status)(es)?$/gi , "$1" ) ; Z . singular ( /^(ox)(en)?/gi , "$1" ) ; Z . singular ( /(vert|ind)(ex|ices)$/gi , "$1ex" ) ;
Z . singular ( /(matr)(ix|ices)$/gi , "$1ix" ) ; Z . singular ( /(quiz)(zes)?$/gi , "$1" ) ; Z . singular ( /(database)s?$/gi , "$1" ) ; Z . singular ( /ee(th?)$/gi , "oo$1" ) ; Z . irregular ( "person" , "people" ) ; Z . irregular ( "man" , "men" ) ; Z . irregular ( "child" , "children" ) ; Z . irregular ( "sex" , "sexes" ) ; Z . irregular ( "move" , "moves" ) ; Z . irregular ( "save" , "saves" ) ; Z . irregular ( "save" , "saves" ) ; Z . irregular ( "cow" , "kine" ) ; Z . irregular ( "goose" , "geese" ) ; Z . irregular ( "zombie" , "zombies" ) ; Z . uncountable ( "equipment,information,rice,money,species,series,fish,sheep,jeans" . split ( "," ) ) ;
E ( t , k , n , { pluralize : function ( ) { return Pb ( this , k ) } , singularize : function ( ) { return Pb ( this , n ) } , humanize : function ( ) { var a = Qb ( this , Ib ) ; a = a . replace ( /_id$/g , "" ) ; a = a . replace ( /(_)?([a-z\d]*)/gi , function ( b , c , d ) { return ( c ? " " : "" ) + ( Jb [ d ] || d . toLowerCase ( ) ) } ) ; return Rb ( a ) } , titleize : function ( ) { var a = /[.:;!]$/ , b , c , d ; return this . spacify ( ) . humanize ( ) . words ( function ( e , g , f ) { b = a . test ( e ) ; d = g == 0 || g == f . length - 1 || b || c ; c = b ; return d || Kb . indexOf ( e ) === - 1 ? Rb ( e ) : e } ) . join ( " " ) } , parameterize : function ( a ) { var b = this ; if ( a === undefined ) a =
"-" ; if ( b . normalize ) b = b . normalize ( ) ; b = b . replace ( /[^a-z0-9\-_]+/gi , a ) ; if ( a ) b = b . replace ( new r ( "^{sep}+|{sep}+$|({sep}){sep}+" . assign ( { sep : Q ( a ) } ) , "g" ) , "$1" ) ; return encodeURI ( b . toLowerCase ( ) ) } } ) ; t . Inflector = Z ; t . Inflector . acronyms = Jb ;
var Sb , Tb = "" , Vb , Wb = [ { type : "a" , shift : 65248 , start : 65 , end : 90 } , { type : "a" , shift : 65248 , start : 97 , end : 122 } , { type : "n" , shift : 65248 , start : 48 , end : 57 } , { type : "p" , shift : 65248 , start : 33 , end : 47 } , { type : "p" , shift : 65248 , start : 58 , end : 64 } , { type : "p" , shift : 65248 , start : 91 , end : 96 } , { type : "p" , shift : 65248 , start : 123 , end : 126 } ] , Xb , Yb = /[\u0020-\u00A5]|[\uFF61-\uFF9F][\uff9e\uff9f]?/g , Zb = /[\u3000-\u301C]|[\u301A-\u30FC]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g , $b = "\uff61\uff64\uff62\uff63\u00a5\u00a2\u00a3" , ac = "\u3002\u3001\u300c\u300d\uffe5\uffe0\uffe1" ,
bc = /[\u30ab\u30ad\u30af\u30b1\u30b3\u30b5\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8\u30cf\u30d2\u30d5\u30d8\u30db]/ , cc = /[\u30cf\u30d2\u30d5\u30d8\u30db\u30f2]/ , dc = "\uff71\uff72\uff73\uff74\uff75\uff67\uff68\uff69\uff6a\uff6b\uff76\uff77\uff78\uff79\uff7a\uff7b\uff7c\uff7d\uff7e\uff7f\uff80\uff81\uff82\uff6f\uff83\uff84\uff85\uff86\uff87\uff88\uff89\uff8a\uff8b\uff8c\uff8d\uff8e\uff8f\uff90\uff91\uff92\uff93\uff94\uff6c\uff95\uff6d\uff96\uff6e\uff97\uff98\uff99\uff9a\uff9b\uff9c\uff66\uff9d\uff70\uff65" ,
ec = "\u30a2\u30a4\u30a6\u30a8\u30aa\u30a1\u30a3\u30a5\u30a7\u30a9\u30ab\u30ad\u30af\u30b1\u30b3\u30b5\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c3\u30c6\u30c8\u30ca\u30cb\u30cc\u30cd\u30ce\u30cf\u30d2\u30d5\u30d8\u30db\u30de\u30df\u30e0\u30e1\u30e2\u30e4\u30e3\u30e6\u30e5\u30e8\u30e7\u30e9\u30ea\u30eb\u30ec\u30ed\u30ef\u30f2\u30f3\u30fc\u30fb" ;
function fc ( a , b , c , d ) { Xb || gc ( ) ; var e = F ( b ) . join ( "" ) , g = Xb [ d ] ; e = e . replace ( /all/ , "" ) . replace ( /(\w)lphabet|umbers?|atakana|paces?|unctuation/g , "$1" ) ; return a . replace ( c , function ( f ) { return g [ f ] && ( ! e || e . has ( g [ f ] . type ) ) ? g [ f ] . to : f } ) }
function gc ( ) { var a ; Xb = { zenkaku : { } , hankaku : { } } ; Wb . forEach ( function ( b ) { oa ( b . start , b . end , function ( c ) { $ ( b . type , t . fromCharCode ( c ) , t . fromCharCode ( c + b . shift ) ) } ) } ) ; ec . each ( function ( b , c ) { a = dc . charAt ( c ) ; $ ( "k" , a , b ) ; b . match ( bc ) && $ ( "k" , a + "\uff9e" , b . shift ( 1 ) ) ; b . match ( cc ) && $ ( "k" , a + "\uff9f" , b . shift ( 2 ) ) } ) ; ac . each ( function ( b , c ) { $ ( "p" , $b . charAt ( c ) , b ) } ) ; $ ( "k" , "\uff73\uff9e" , "\u30f4" ) ; $ ( "k" , "\uff66\uff9e" , "\u30fa" ) ; $ ( "s" , " " , "\u3000" ) } function $ ( a , b , c ) { Xb . zenkaku [ b ] = { type : a , to : c } ; Xb . hankaku [ c ] = { type : a , to : b } }
function hc ( ) { Sb = { } ; G ( Vb , function ( a , b ) { b . split ( "" ) . forEach ( function ( c ) { Sb [ c ] = a } ) ; Tb += b } ) ; Tb = r ( "[" + Tb + "]" , "g" ) }
Vb = { A : "A\u24b6\uff21\u00c0\u00c1\u00c2\u1ea6\u1ea4\u1eaa\u1ea8\u00c3\u0100\u0102\u1eb0\u1eae\u1eb4\u1eb2\u0226\u01e0\u00c4\u01de\u1ea2\u00c5\u01fa\u01cd\u0200\u0202\u1ea0\u1eac\u1eb6\u1e00\u0104\u023a\u2c6f" , B : "B\u24b7\uff22\u1e02\u1e04\u1e06\u0243\u0182\u0181" , C : "C\u24b8\uff23\u0106\u0108\u010a\u010c\u00c7\u1e08\u0187\u023b\ua73e" , D : "D\u24b9\uff24\u1e0a\u010e\u1e0c\u1e10\u1e12\u1e0e\u0110\u018b\u018a\u0189\ua779" , E : "E\u24ba\uff25\u00c8\u00c9\u00ca\u1ec0\u1ebe\u1ec4\u1ec2\u1ebc\u0112\u1e14\u1e16\u0114\u0116\u00cb\u1eba\u011a\u0204\u0206\u1eb8\u1ec6\u0228\u1e1c\u0118\u1e18\u1e1a\u0190\u018e" ,
F : "F\u24bb\uff26\u1e1e\u0191\ua77b" , G : "G\u24bc\uff27\u01f4\u011c\u1e20\u011e\u0120\u01e6\u0122\u01e4\u0193\ua7a0\ua77d\ua77e" , H : "H\u24bd\uff28\u0124\u1e22\u1e26\u021e\u1e24\u1e28\u1e2a\u0126\u2c67\u2c75\ua78d" , I : "I\u24be\uff29\u00cc\u00cd\u00ce\u0128\u012a\u012c\u0130\u00cf\u1e2e\u1ec8\u01cf\u0208\u020a\u1eca\u012e\u1e2c\u0197" , J : "J\u24bf\uff2a\u0134\u0248" , K : "K\u24c0\uff2b\u1e30\u01e8\u1e32\u0136\u1e34\u0198\u2c69\ua740\ua742\ua744\ua7a2" , L : "L\u24c1\uff2c\u013f\u0139\u013d\u1e36\u1e38\u013b\u1e3c\u1e3a\u0141\u023d\u2c62\u2c60\ua748\ua746\ua780" ,
M : "M\u24c2\uff2d\u1e3e\u1e40\u1e42\u2c6e\u019c" , N : "N\u24c3\uff2e\u01f8\u0143\u00d1\u1e44\u0147\u1e46\u0145\u1e4a\u1e48\u0220\u019d\ua790\ua7a4" , O : "O\u24c4\uff2f\u00d2\u00d3\u00d4\u1ed2\u1ed0\u1ed6\u1ed4\u00d5\u1e4c\u022c\u1e4e\u014c\u1e50\u1e52\u014e\u022e\u0230\u00d6\u022a\u1ece\u0150\u01d1\u020c\u020e\u01a0\u1edc\u1eda\u1ee0\u1ede\u1ee2\u1ecc\u1ed8\u01ea\u01ec\u00d8\u01fe\u0186\u019f\ua74a\ua74c" , P : "P\u24c5\uff30\u1e54\u1e56\u01a4\u2c63\ua750\ua752\ua754" , Q : "Q\u24c6\uff31\ua756\ua758\u024a" , R : "R\u24c7\uff32\u0154\u1e58\u0158\u0210\u0212\u1e5a\u1e5c\u0156\u1e5e\u024c\u2c64\ua75a\ua7a6\ua782" ,
S : "S\u24c8\uff33\u1e9e\u015a\u1e64\u015c\u1e60\u0160\u1e66\u1e62\u1e68\u0218\u015e\u2c7e\ua7a8\ua784" , T : "T\u24c9\uff34\u1e6a\u0164\u1e6c\u021a\u0162\u1e70\u1e6e\u0166\u01ac\u01ae\u023e\ua786" , U : "U\u24ca\uff35\u00d9\u00da\u00db\u0168\u1e78\u016a\u1e7a\u016c\u00dc\u01db\u01d7\u01d5\u01d9\u1ee6\u016e\u0170\u01d3\u0214\u0216\u01af\u1eea\u1ee8\u1eee\u1eec\u1ef0\u1ee4\u1e72\u0172\u1e76\u1e74\u0244" , V : "V\u24cb\uff36\u1e7c\u1e7e\u01b2\ua75e\u0245" , W : "W\u24cc\uff37\u1e80\u1e82\u0174\u1e86\u1e84\u1e88\u2c72" ,
X : "X\u24cd\uff38\u1e8a\u1e8c" , Y : "Y\u24ce\uff39\u1ef2\u00dd\u0176\u1ef8\u0232\u1e8e\u0178\u1ef6\u1ef4\u01b3\u024e\u1efe" , Z : "Z\u24cf\uff3a\u0179\u1e90\u017b\u017d\u1e92\u1e94\u01b5\u0224\u2c7f\u2c6b\ua762" , a : "a\u24d0\uff41\u1e9a\u00e0\u00e1\u00e2\u1ea7\u1ea5\u1eab\u1ea9\u00e3\u0101\u0103\u1eb1\u1eaf\u1eb5\u1eb3\u0227\u01e1\u00e4\u01df\u1ea3\u00e5\u01fb\u01ce\u0201\u0203\u1ea1\u1ead\u1eb7\u1e01\u0105\u2c65\u0250" , b : "b\u24d1\uff42\u1e03\u1e05\u1e07\u0180\u0183\u0253" , c : "c\u24d2\uff43\u0107\u0109\u010b\u010d\u00e7\u1e09\u0188\u023c\ua73f\u2184" ,
d : "d\u24d3\uff44\u1e0b\u010f\u1e0d\u1e11\u1e13\u1e0f\u0111\u018c\u0256\u0257\ua77a" , e : "e\u24d4\uff45\u00e8\u00e9\u00ea\u1ec1\u1ebf\u1ec5\u1ec3\u1ebd\u0113\u1e15\u1e17\u0115\u0117\u00eb\u1ebb\u011b\u0205\u0207\u1eb9\u1ec7\u0229\u1e1d\u0119\u1e19\u1e1b\u0247\u025b\u01dd" , f : "f\u24d5\uff46\u1e1f\u0192\ua77c" , g : "g\u24d6\uff47\u01f5\u011d\u1e21\u011f\u0121\u01e7\u0123\u01e5\u0260\ua7a1\u1d79\ua77f" , h : "h\u24d7\uff48\u0125\u1e23\u1e27\u021f\u1e25\u1e29\u1e2b\u1e96\u0127\u2c68\u2c76\u0265" , i : "i\u24d8\uff49\u00ec\u00ed\u00ee\u0129\u012b\u012d\u00ef\u1e2f\u1ec9\u01d0\u0209\u020b\u1ecb\u012f\u1e2d\u0268\u0131" ,
j : "j\u24d9\uff4a\u0135\u01f0\u0249" , k : "k\u24da\uff4b\u1e31\u01e9\u1e33\u0137\u1e35\u0199\u2c6a\ua741\ua743\ua745\ua7a3" , l : "l\u24db\uff4c\u0140\u013a\u013e\u1e37\u1e39\u013c\u1e3d\u1e3b\u017f\u0142\u019a\u026b\u2c61\ua749\ua781\ua747" , m : "m\u24dc\uff4d\u1e3f\u1e41\u1e43\u0271\u026f" , n : "n\u24dd\uff4e\u01f9\u0144\u00f1\u1e45\u0148\u1e47\u0146\u1e4b\u1e49\u019e\u0272\u0149\ua791\ua7a5" , o : "o\u24de\uff4f\u00f2\u00f3\u00f4\u1ed3\u1ed1\u1ed7\u1ed5\u00f5\u1e4d\u022d\u1e4f\u014d\u1e51\u1e53\u014f\u022f\u0231\u00f6\u022b\u1ecf\u0151\u01d2\u020d\u020f\u01a1\u1edd\u1edb\u1ee1\u1edf\u1ee3\u1ecd\u1ed9\u01eb\u01ed\u00f8\u01ff\u0254\ua74b\ua74d\u0275" ,
p : "p\u24df\uff50\u1e55\u1e57\u01a5\u1d7d\ua751\ua753\ua755" , q : "q\u24e0\uff51\u024b\ua757\ua759" , r : "r\u24e1\uff52\u0155\u1e59\u0159\u0211\u0213\u1e5b\u1e5d\u0157\u1e5f\u024d\u027d\ua75b\ua7a7\ua783" , s : "s\u24e2\uff53\u015b\u1e65\u015d\u1e61\u0161\u1e67\u1e63\u1e69\u0219\u015f\u023f\ua7a9\ua785\u1e9b" , t : "t\u24e3\uff54\u1e6b\u1e97\u0165\u1e6d\u021b\u0163\u1e71\u1e6f\u0167\u01ad\u0288\u2c66\ua787" , u : "u\u24e4\uff55\u00f9\u00fa\u00fb\u0169\u1e79\u016b\u1e7b\u016d\u00fc\u01dc\u01d8\u01d6\u01da\u1ee7\u016f\u0171\u01d4\u0215\u0217\u01b0\u1eeb\u1ee9\u1eef\u1eed\u1ef1\u1ee5\u1e73\u0173\u1e77\u1e75\u0289" ,
v : "v\u24e5\uff56\u1e7d\u1e7f\u028b\ua75f\u028c" , w : "w\u24e6\uff57\u1e81\u1e83\u0175\u1e87\u1e85\u1e98\u1e89\u2c73" , x : "x\u24e7\uff58\u1e8b\u1e8d" , y : "y\u24e8\uff59\u1ef3\u00fd\u0177\u1ef9\u0233\u1e8f\u00ff\u1ef7\u1e99\u1ef5\u01b4\u024f\u1eff" , z : "z\u24e9\uff5a\u017a\u1e91\u017c\u017e\u1e93\u1e95\u01b6\u0225\u0240\u2c6c\ua763" , AA : "\ua732" , AE : "\u00c6\u01fc\u01e2" , AO : "\ua734" , AU : "\ua736" , AV : "\ua738\ua73a" , AY : "\ua73c" , DZ : "\u01f1\u01c4" , Dz : "\u01f2\u01c5" , LJ : "\u01c7" , Lj : "\u01c8" , NJ : "\u01ca" , Nj : "\u01cb" , OI : "\u01a2" ,
OO : "\ua74e" , OU : "\u0222" , TZ : "\ua728" , VY : "\ua760" , aa : "\ua733" , ae : "\u00e6\u01fd\u01e3" , ao : "\ua735" , au : "\ua737" , av : "\ua739\ua73b" , ay : "\ua73d" , dz : "\u01f3\u01c6" , hv : "\u0195" , lj : "\u01c9" , nj : "\u01cc" , oi : "\u01a3" , ou : "\u0223" , oo : "\ua74f" , ss : "\u00df" , tz : "\ua729" , vy : "\ua761" } ;
E ( t , k , n , { normalize : function ( ) { Sb || hc ( ) ; return this . replace ( Tb , function ( a ) { return Sb [ a ] } ) } , hankaku : function ( ) { return fc ( this , arguments , Zb , "hankaku" ) } , zenkaku : function ( ) { return fc ( this , arguments , Yb , "zenkaku" ) } , hiragana : function ( a ) { var b = this ; if ( a !== n ) b = b . zenkaku ( "k" ) ; return b . replace ( /[\u30A1-\u30F6]/g , function ( c ) { return c . shift ( - 96 ) } ) } , katakana : function ( ) { return this . replace ( /[\u3041-\u3096]/g , function ( a ) { return a . shift ( 96 ) } ) } } ) ;
[ { ca : [ "Arabic" ] , source : "\u0600-\u06ff" } , { ca : [ "Cyrillic" ] , source : "\u0400-\u04ff" } , { ca : [ "Devanagari" ] , source : "\u0900-\u097f" } , { ca : [ "Greek" ] , source : "\u0370-\u03ff" } , { ca : [ "Hangul" ] , source : "\uac00-\ud7af\u1100-\u11ff" } , { ca : [ "Han" , "Kanji" ] , source : "\u4e00-\u9fff\uf900-\ufaff" } , { ca : [ "Hebrew" ] , source : "\u0590-\u05ff" } , { ca : [ "Hiragana" ] , source : "\u3040-\u309f\u30fb-\u30fc" } , { ca : [ "Kana" ] , source : "\u3040-\u30ff\uff61-\uff9f" } , { ca : [ "Katakana" ] , source : "\u30a0-\u30ff\uff61-\uff9f" } , { ca : [ "Latin" ] , source : "\u0001- \u0080-\u00ff\u0100-\u017f\u0180-\u024f" } ,
{ ca : [ "Thai" ] , source : "\u0e00-\u0e7f" } ] . forEach ( function ( a ) { var b = r ( "^[" + a . source + "\\s]+$" ) , c = r ( "[" + a . source + "]" ) ; a . ca . forEach ( function ( d ) { ia ( t . prototype , "is" + d , function ( ) { return b . test ( this . trim ( ) ) } ) ; ia ( t . prototype , "has" + d , function ( ) { return c . test ( this ) } ) } ) } ) ;
Date . addLocale ( "da" , { plural : k , months : "januar,februar,marts,april,maj,juni,juli,august,september,oktober,november,december" , weekdays : "s\u00f8ndag|sondag,mandag,tirsdag,onsdag,torsdag,fredag,l\u00f8rdag|lordag" , units : "millisekund:|er,sekund:|er,minut:|ter,tim:e|er,dag:|e,ug:e|er|en,m\u00e5ned:|er|en+maaned:|er|en,\u00e5r:||et+aar:||et" , numbers : "en|et,to,tre,fire,fem,seks,syv,otte,ni,ti" , tokens : "den,for" , articles : "den" , "short" : "d. {d}. {month} {yyyy}" , "long" : "den {d}. {month} {yyyy} {H}:{mm}" , full : "{Weekday} den {d}. {month} {yyyy} {H}:{mm}:{ss}" ,
past : "{num} {unit} {sign}" , future : "{sign} {num} {unit}" , duration : "{num} {unit}" , ampm : "am,pm" , modifiers : [ { name : "day" , src : "forg\u00e5rs|i forg\u00e5rs|forgaars|i forgaars" , value : - 2 } , { name : "day" , src : "i g\u00e5r|ig\u00e5r|i gaar|igaar" , value : - 1 } , { name : "day" , src : "i dag|idag" , value : 0 } , { name : "day" , src : "i morgen|imorgen" , value : 1 } , { name : "day" , src : "over morgon|overmorgen|i over morgen|i overmorgen|iovermorgen" , value : 2 } , { name : "sign" , src : "siden" , value : - 1 } , { name : "sign" , src : "om" , value : 1 } , { name : "shift" , src : "i sidste|sidste" ,
value : - 1 } , { name : "shift" , src : "denne" , value : 0 } , { name : "shift" , src : "n\u00e6ste|naeste" , value : 1 } ] , dateParse : [ "{num} {unit} {sign}" , "{sign} {num} {unit}" , "{1?} {num} {unit} {sign}" , "{shift} {unit=5-7}" ] , timeParse : [ "{0?} {weekday?} {date?} {month} {year}" , "{date} {month}" , "{shift} {weekday}" ] } ) ;
Date . addLocale ( "de" , { plural : k , capitalizeUnit : k , months : "Januar,Februar,M\u00e4rz|Marz,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember" , weekdays : "Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag" , units : "Millisekunde:|n,Sekunde:|n,Minute:|n,Stunde:|n,Tag:|en,Woche:|n,Monat:|en,Jahr:|en" , numbers : "ein:|e|er|en|em,zwei,drei,vier,fuenf,sechs,sieben,acht,neun,zehn" , tokens : "der" , "short" : "{d}. {Month} {yyyy}" , "long" : "{d}. {Month} {yyyy} {H}:{mm}" , full : "{Weekday} {d}. {Month} {yyyy} {H}:{mm}:{ss}" ,
past : "{sign} {num} {unit}" , future : "{sign} {num} {unit}" , duration : "{num} {unit}" , timeMarker : "um" , ampm : "am,pm" , modifiers : [ { name : "day" , src : "vorgestern" , value : - 2 } , { name : "day" , src : "gestern" , value : - 1 } , { name : "day" , src : "heute" , value : 0 } , { name : "day" , src : "morgen" , value : 1 } , { name : "day" , src : "\u00fcbermorgen|ubermorgen|uebermorgen" , value : 2 } , { name : "sign" , src : "vor:|her" , value : - 1 } , { name : "sign" , src : "in" , value : 1 } , { name : "shift" , src : "letzte:|r|n|s" , value : - 1 } , { name : "shift" , src : "n\u00e4chste:|r|n|s+nachste:|r|n|s+naechste:|r|n|s+kommende:n|r" ,
value : 1 } ] , dateParse : [ "{sign} {num} {unit}" , "{num} {unit} {sign}" , "{shift} {unit=5-7}" ] , timeParse : [ "{weekday?} {date?} {month} {year?}" , "{shift} {weekday}" ] } ) ;
Date . addLocale ( "es" , { plural : k , months : "enero,febrero,marzo,abril,mayo,junio,julio,agosto,septiembre,octubre,noviembre,diciembre" , weekdays : "domingo,lunes,martes,mi\u00e9rcoles|miercoles,jueves,viernes,s\u00e1bado|sabado" , units : "milisegundo:|s,segundo:|s,minuto:|s,hora:|s,d\u00eda|d\u00edas|dia|dias,semana:|s,mes:|es,a\u00f1o|a\u00f1os|ano|anos" , numbers : "uno,dos,tres,cuatro,cinco,seis,siete,ocho,nueve,diez" , tokens : "el,de" , "short" : "{d} {month} {yyyy}" , "long" : "{d} {month} {yyyy} {H}:{mm}" , full : "{Weekday} {d} {month} {yyyy} {H}:{mm}:{ss}" ,
past : "{sign} {num} {unit}" , future : "{num} {unit} {sign}" , duration : "{num} {unit}" , timeMarker : "a las" , ampm : "am,pm" , modifiers : [ { name : "day" , src : "anteayer" , value : - 2 } , { name : "day" , src : "ayer" , value : - 1 } , { name : "day" , src : "hoy" , value : 0 } , { name : "day" , src : "ma\u00f1ana|manana" , value : 1 } , { name : "sign" , src : "hace" , value : - 1 } , { name : "sign" , src : "de ahora" , value : 1 } , { name : "shift" , src : "pasad:o|a" , value : - 1 } , { name : "shift" , src : "pr\u00f3ximo|pr\u00f3xima|proximo|proxima" , value : 1 } ] , dateParse : [ "{sign} {num} {unit}" , "{num} {unit} {sign}" ,
"{0?} {unit=5-7} {shift}" , "{0?} {shift} {unit=5-7}" ] , timeParse : [ "{shift} {weekday}" , "{weekday} {shift}" , "{date?} {1?} {month} {1?} {year?}" ] } ) ;
Date . addLocale ( "fi" , { plural : k , timeMarker : "kello" , ampm : "," , months : "tammikuu,helmikuu,maaliskuu,huhtikuu,toukokuu,kes\u00e4kuu,hein\u00e4kuu,elokuu,syyskuu,lokakuu,marraskuu,joulukuu" , weekdays : "sunnuntai,maanantai,tiistai,keskiviikko,torstai,perjantai,lauantai" , units : "millisekun:ti|tia|teja|tina|nin,sekun:ti|tia|teja|tina|nin,minuut:ti|tia|teja|tina|in,tun:ti|tia|teja|tina|nin,p\u00e4iv:\u00e4|\u00e4\u00e4|i\u00e4|\u00e4n\u00e4|\u00e4n,viik:ko|koa|koja|on|kona,kuukau:si|sia|tta|den|tena,vuo:si|sia|tta|den|tena" , numbers : "yksi|ensimm\u00e4inen,kaksi|toinen,kolm:e|as,nelj\u00e4:s,vii:si|des,kuu:si|des,seitsem\u00e4:n|s,kahdeksa:n|s,yhdeks\u00e4:n|s,kymmene:n|s" ,
articles : "" , optionals : "" , "short" : "{d}. {month}ta {yyyy}" , "long" : "{d}. {month}ta {yyyy} kello {H}.{mm}" , full : "{Weekday}na {d}. {month}ta {yyyy} kello {H}.{mm}" , relative : function ( a , b , c , d ) { function e ( f ) { return ( a === 1 ? "" : a + " " ) + g [ 8 * f + b ] } var g = this . units ; switch ( d ) { case "duration" : return e ( 0 ) ; case "past" : return e ( a > 1 ? 1 : 0 ) + " sitten" ; case "future" : return e ( 4 ) + " p\u00e4\u00e4st\u00e4" } } , modifiers : [ { name : "day" , src : "toissa p\u00e4iv\u00e4n\u00e4|toissa p\u00e4iv\u00e4ist\u00e4" , value : - 2 } , { name : "day" , src : "eilen|eilist\u00e4" ,
value : - 1 } , { name : "day" , src : "t\u00e4n\u00e4\u00e4n" , value : 0 } , { name : "day" , src : "huomenna|huomista" , value : 1 } , { name : "day" , src : "ylihuomenna|ylihuomista" , value : 2 } , { name : "sign" , src : "sitten|aiemmin" , value : - 1 } , { name : "sign" , src : "p\u00e4\u00e4st\u00e4|kuluttua|my\u00f6hemmin" , value : 1 } , { name : "edge" , src : "viimeinen|viimeisen\u00e4" , value : - 2 } , { name : "edge" , src : "lopussa" , value : - 1 } , { name : "edge" , src : "ensimm\u00e4inen|ensimm\u00e4isen\u00e4" , value : 1 } , { name : "shift" , src : "edellinen|edellisen\u00e4|edelt\u00e4v\u00e4|edelt\u00e4v\u00e4n\u00e4|viime|toissa" ,
value : - 1 } , { name : "shift" , src : "t\u00e4n\u00e4|t\u00e4m\u00e4n" , value : 0 } , { name : "shift" , src : "seuraava|seuraavana|tuleva|tulevana|ensi" , value : 1 } ] , dateParse : [ "{num} {unit} {sign}" , "{sign} {num} {unit}" , "{num} {unit=4-5} {sign} {day}" , "{month} {year}" , "{shift} {unit=5-7}" ] , timeParse : [ "{0} {num}{1} {day} of {month} {year?}" , "{weekday?} {month} {date}{1} {year?}" , "{date} {month} {year}" , "{shift} {weekday}" , "{shift} week {weekday}" , "{weekday} {2} {shift} week" , "{0} {date}{1} of {month}" , "{0}{month?} {date?}{1} of {shift} {unit=6-7}" ] } ) ;
Date . addLocale ( "fr" , { plural : k , months : "janvier,f\u00e9vrier|fevrier,mars,avril,mai,juin,juillet,ao\u00fbt,septembre,octobre,novembre,d\u00e9cembre|decembre" , weekdays : "dimanche,lundi,mardi,mercredi,jeudi,vendredi,samedi" , units : "milliseconde:|s,seconde:|s,minute:|s,heure:|s,jour:|s,semaine:|s,mois,an:|s|n\u00e9e|nee" , numbers : "un:|e,deux,trois,quatre,cinq,six,sept,huit,neuf,dix" , tokens : [ "l'|la|le" ] , "short" : "{d} {month} {yyyy}" , "long" : "{d} {month} {yyyy} {H}:{mm}" , full : "{Weekday} {d} {month} {yyyy} {H}:{mm}:{ss}" ,
past : "{sign} {num} {unit}" , future : "{sign} {num} {unit}" , duration : "{num} {unit}" , timeMarker : "\u00e0" , ampm : "am,pm" , modifiers : [ { name : "day" , src : "hier" , value : - 1 } , { name : "day" , src : "aujourd'hui" , value : 0 } , { name : "day" , src : "demain" , value : 1 } , { name : "sign" , src : "il y a" , value : - 1 } , { name : "sign" , src : "dans|d'ici" , value : 1 } , { name : "shift" , src : "derni:\u00e8r|er|\u00e8re|ere" , value : - 1 } , { name : "shift" , src : "prochain:|e" , value : 1 } ] , dateParse : [ "{sign} {num} {unit}" , "{sign} {num} {unit}" , "{0?} {unit=5-7} {shift}" ] , timeParse : [ "{0?} {date?} {month} {year?}" ,
"{0?} {weekday} {shift}" ] } ) ;
Date . addLocale ( "it" , { plural : k , months : "Gennaio,Febbraio,Marzo,Aprile,Maggio,Giugno,Luglio,Agosto,Settembre,Ottobre,Novembre,Dicembre" , weekdays : "Domenica,Luned:\u00ec|i,Marted:\u00ec|i,Mercoled:\u00ec|i,Gioved:\u00ec|i,Venerd:\u00ec|i,Sabato" , units : "millisecond:o|i,second:o|i,minut:o|i,or:a|e,giorn:o|i,settiman:a|e,mes:e|i,ann:o|i" , numbers : "un:|a|o|',due,tre,quattro,cinque,sei,sette,otto,nove,dieci" , tokens : "l'|la|il" , "short" : "{d} {Month} {yyyy}" , "long" : "{d} {Month} {yyyy} {H}:{mm}" , full : "{Weekday} {d} {Month} {yyyy} {H}:{mm}:{ss}" ,
past : "{num} {unit} {sign}" , future : "{num} {unit} {sign}" , duration : "{num} {unit}" , timeMarker : "alle" , ampm : "am,pm" , modifiers : [ { name : "day" , src : "ieri" , value : - 1 } , { name : "day" , src : "oggi" , value : 0 } , { name : "day" , src : "domani" , value : 1 } , { name : "day" , src : "dopodomani" , value : 2 } , { name : "sign" , src : "fa" , value : - 1 } , { name : "sign" , src : "da adesso" , value : 1 } , { name : "shift" , src : "scors:o|a" , value : - 1 } , { name : "shift" , src : "prossim:o|a" , value : 1 } ] , dateParse : [ "{num} {unit} {sign}" , "{0?} {unit=5-7} {shift}" , "{0?} {shift} {unit=5-7}" ] , timeParse : [ "{weekday?} {date?} {month} {year?}" ,
"{shift} {weekday}" ] } ) ;
Date . addLocale ( "ja" , { monthSuffix : "\u6708" , weekdays : "\u65e5\u66dc\u65e5,\u6708\u66dc\u65e5,\u706b\u66dc\u65e5,\u6c34\u66dc\u65e5,\u6728\u66dc\u65e5,\u91d1\u66dc\u65e5,\u571f\u66dc\u65e5" , units : "\u30df\u30ea\u79d2,\u79d2,\u5206,\u6642\u9593,\u65e5,\u9031\u9593|\u9031,\u30f6\u6708|\u30f5\u6708|\u6708,\u5e74" , "short" : "{yyyy}\u5e74{M}\u6708{d}\u65e5" , "long" : "{yyyy}\u5e74{M}\u6708{d}\u65e5 {H}\u6642{mm}\u5206" , full : "{yyyy}\u5e74{M}\u6708{d}\u65e5 {Weekday} {H}\u6642{mm}\u5206{ss}\u79d2" , past : "{num}{unit}{sign}" ,
future : "{num}{unit}{sign}" , duration : "{num}{unit}" , timeSuffixes : "\u6642,\u5206,\u79d2" , ampm : "\u5348\u524d,\u5348\u5f8c" , modifiers : [ { name : "day" , src : "\u4e00\u6628\u65e5" , value : - 2 } , { name : "day" , src : "\u6628\u65e5" , value : - 1 } , { name : "day" , src : "\u4eca\u65e5" , value : 0 } , { name : "day" , src : "\u660e\u65e5" , value : 1 } , { name : "day" , src : "\u660e\u5f8c\u65e5" , value : 2 } , { name : "sign" , src : "\u524d" , value : - 1 } , { name : "sign" , src : "\u5f8c" , value : 1 } , { name : "shift" , src : "\u53bb|\u5148" , value : - 1 } , { name : "shift" , src : "\u6765" , value : 1 } ] , dateParse : [ "{num}{unit}{sign}" ] ,
timeParse : [ "{shift}{unit=5-7}{weekday?}" , "{year}\u5e74{month?}\u6708?{date?}\u65e5?" , "{month}\u6708{date?}\u65e5?" , "{date}\u65e5" ] } ) ;
Date . addLocale ( "ko" , { digitDate : k , monthSuffix : "\uc6d4" , weekdays : "\uc77c\uc694\uc77c,\uc6d4\uc694\uc77c,\ud654\uc694\uc77c,\uc218\uc694\uc77c,\ubaa9\uc694\uc77c,\uae08\uc694\uc77c,\ud1a0\uc694\uc77c" , units : "\ubc00\ub9ac\ucd08,\ucd08,\ubd84,\uc2dc\uac04,\uc77c,\uc8fc,\uac1c\uc6d4|\ub2ec,\ub144" , numbers : "\uc77c|\ud55c,\uc774,\uc0bc,\uc0ac,\uc624,\uc721,\uce60,\ud314,\uad6c,\uc2ed" , "short" : "{yyyy}\ub144{M}\uc6d4{d}\uc77c" , "long" : "{yyyy}\ub144{M}\uc6d4{d}\uc77c {H}\uc2dc{mm}\ubd84" , full : "{yyyy}\ub144{M}\uc6d4{d}\uc77c {Weekday} {H}\uc2dc{mm}\ubd84{ss}\ucd08" ,
past : "{num}{unit} {sign}" , future : "{num}{unit} {sign}" , duration : "{num}{unit}" , timeSuffixes : "\uc2dc,\ubd84,\ucd08" , ampm : "\uc624\uc804,\uc624\ud6c4" , modifiers : [ { name : "day" , src : "\uadf8\uc800\uaed8" , value : - 2 } , { name : "day" , src : "\uc5b4\uc81c" , value : - 1 } , { name : "day" , src : "\uc624\ub298" , value : 0 } , { name : "day" , src : "\ub0b4\uc77c" , value : 1 } , { name : "day" , src : "\ubaa8\ub808" , value : 2 } , { name : "sign" , src : "\uc804" , value : - 1 } , { name : "sign" , src : "\ud6c4" , value : 1 } , { name : "shift" , src : "\uc9c0\ub09c|\uc791" , value : - 1 } , { name : "shift" , src : "\uc774\ubc88" ,
value : 0 } , { name : "shift" , src : "\ub2e4\uc74c|\ub0b4" , value : 1 } ] , dateParse : [ "{num}{unit} {sign}" , "{shift?} {unit=5-7}" ] , timeParse : [ "{shift} {unit=5?} {weekday}" , "{year}\ub144{month?}\uc6d4?{date?}\uc77c?" , "{month}\uc6d4{date?}\uc77c?" , "{date}\uc77c" ] } ) ;
Date . addLocale ( "nl" , { plural : k , months : "januari,februari,maart,april,mei,juni,juli,augustus,september,oktober,november,december" , weekdays : "zondag|zo,maandag|ma,dinsdag|di,woensdag|woe|wo,donderdag|do,vrijdag|vrij|vr,zaterdag|za" , units : "milliseconde:|n,seconde:|n,minu:ut|ten,uur,dag:|en,we:ek|ken,maand:|en,jaar" , numbers : "een,twee,drie,vier,vijf,zes,zeven,acht,negen" , tokens : "" , "short" : "{d} {Month} {yyyy}" , "long" : "{d} {Month} {yyyy} {H}:{mm}" , full : "{Weekday} {d} {Month} {yyyy} {H}:{mm}:{ss}" , past : "{num} {unit} {sign}" ,
future : "{num} {unit} {sign}" , duration : "{num} {unit}" , timeMarker : "'s|om" , modifiers : [ { name : "day" , src : "gisteren" , value : - 1 } , { name : "day" , src : "vandaag" , value : 0 } , { name : "day" , src : "morgen" , value : 1 } , { name : "day" , src : "overmorgen" , value : 2 } , { name : "sign" , src : "geleden" , value : - 1 } , { name : "sign" , src : "vanaf nu" , value : 1 } , { name : "shift" , src : "laatste|vorige|afgelopen" , value : - 1 } , { name : "shift" , src : "volgend:|e" , value : 1 } ] , dateParse : [ "{num} {unit} {sign}" , "{0?} {unit=5-7} {shift}" , "{0?} {shift} {unit=5-7}" ] , timeParse : [ "{weekday?} {date?} {month} {year?}" ,
"{shift} {weekday}" ] } ) ;
Date . addLocale ( "pl" , { plural : k , months : "Stycze\u0144|Stycznia,Luty|Lutego,Marzec|Marca,Kwiecie\u0144|Kwietnia,Maj|Maja,Czerwiec|Czerwca,Lipiec|Lipca,Sierpie\u0144|Sierpnia,Wrzesie\u0144|Wrze\u015bnia,Pa\u017adziernik|Pa\u017adziernika,Listopad|Listopada,Grudzie\u0144|Grudnia" , weekdays : "Niedziela|Niedziel\u0119,Poniedzia\u0142ek,Wtorek,\u015arod:a|\u0119,Czwartek,Pi\u0105tek,Sobota|Sobot\u0119" , units : "milisekund:a|y|,sekund:a|y|,minut:a|y|,godzin:a|y|,dzie\u0144|dni,tydzie\u0144|tygodnie|tygodni,miesi\u0105ce|miesi\u0105ce|miesi\u0119cy,rok|lata|lat" , numbers : "jeden|jedn\u0105,dwa|dwie,trzy,cztery,pi\u0119\u0107,sze\u015b\u0107,siedem,osiem,dziewi\u0119\u0107,dziesi\u0119\u0107" ,
optionals : "w|we,roku" , "short" : "{d} {Month} {yyyy}" , "long" : "{d} {Month} {yyyy} {H}:{mm}" , full : "{Weekday}, {d} {Month} {yyyy} {H}:{mm}:{ss}" , past : "{num} {unit} {sign}" , future : "{sign} {num} {unit}" , duration : "{num} {unit}" , timeMarker : "o" , ampm : "am,pm" , modifiers : [ { name : "day" , src : "przedwczoraj" , value : - 2 } , { name : "day" , src : "wczoraj" , value : - 1 } , { name : "day" , src : "dzisiaj|dzi\u015b" , value : 0 } , { name : "day" , src : "jutro" , value : 1 } , { name : "day" , src : "pojutrze" , value : 2 } , { name : "sign" , src : "temu|przed" , value : - 1 } , { name : "sign" ,
src : "za" , value : 1 } , { name : "shift" , src : "zesz\u0142y|zesz\u0142a|ostatni|ostatnia" , value : - 1 } , { name : "shift" , src : "nast\u0119pny|nast\u0119pna|nast\u0119pnego|przysz\u0142y|przysz\u0142a|przysz\u0142ego" , value : 1 } ] , dateParse : [ "{num} {unit} {sign}" , "{sign} {num} {unit}" , "{month} {year}" , "{shift} {unit=5-7}" , "{0} {shift?} {weekday}" ] , timeParse : [ "{date} {month} {year?} {1}" , "{0} {shift?} {weekday}" ] } ) ;
Date . addLocale ( "pt" , { plural : k , months : "janeiro,fevereiro,mar\u00e7o,abril,maio,junho,julho,agosto,setembro,outubro,novembro,dezembro" , weekdays : "domingo,segunda-feira,ter\u00e7a-feira,quarta-feira,quinta-feira,sexta-feira,s\u00e1bado|sabado" , units : "milisegundo:|s,segundo:|s,minuto:|s,hora:|s,dia:|s,semana:|s,m\u00eas|m\u00eases|mes|meses,ano:|s" , numbers : "um,dois,tr\u00eas|tres,quatro,cinco,seis,sete,oito,nove,dez,uma,duas" , tokens : "a,de" , "short" : "{d} de {month} de {yyyy}" , "long" : "{d} de {month} de {yyyy} {H}:{mm}" ,
full : "{Weekday}, {d} de {month} de {yyyy} {H}:{mm}:{ss}" , past : "{num} {unit} {sign}" , future : "{sign} {num} {unit}" , duration : "{num} {unit}" , timeMarker : "\u00e0s" , ampm : "am,pm" , modifiers : [ { name : "day" , src : "anteontem" , value : - 2 } , { name : "day" , src : "ontem" , value : - 1 } , { name : "day" , src : "hoje" , value : 0 } , { name : "day" , src : "amanh:\u00e3|a" , value : 1 } , { name : "sign" , src : "atr\u00e1s|atras|h\u00e1|ha" , value : - 1 } , { name : "sign" , src : "daqui a" , value : 1 } , { name : "shift" , src : "passad:o|a" , value : - 1 } , { name : "shift" , src : "pr\u00f3ximo|pr\u00f3xima|proximo|proxima" ,
value : 1 } ] , dateParse : [ "{num} {unit} {sign}" , "{sign} {num} {unit}" , "{0?} {unit=5-7} {shift}" , "{0?} {shift} {unit=5-7}" ] , timeParse : [ "{date?} {1?} {month} {1?} {year?}" , "{0?} {shift} {weekday}" ] } ) ;
Date . addLocale ( "ru" , { months : "\u042f\u043d\u0432\u0430\u0440:\u044f|\u044c,\u0424\u0435\u0432\u0440\u0430\u043b:\u044f|\u044c,\u041c\u0430\u0440\u0442:\u0430|,\u0410\u043f\u0440\u0435\u043b:\u044f|\u044c,\u041c\u0430:\u044f|\u0439,\u0418\u044e\u043d:\u044f|\u044c,\u0418\u044e\u043b:\u044f|\u044c,\u0410\u0432\u0433\u0443\u0441\u0442:\u0430|,\u0421\u0435\u043d\u0442\u044f\u0431\u0440:\u044f|\u044c,\u041e\u043a\u0442\u044f\u0431\u0440:\u044f|\u044c,\u041d\u043e\u044f\u0431\u0440:\u044f|\u044c,\u0414\u0435\u043a\u0430\u0431\u0440:\u044f|\u044c" , weekdays : "\u0412\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435,\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a,\u0412\u0442\u043e\u0440\u043d\u0438\u043a,\u0421\u0440\u0435\u0434\u0430,\u0427\u0435\u0442\u0432\u0435\u0440\u0433,\u041f\u044f\u0442\u043d\u0438\u0446\u0430,\u0421\u0443\u0431\u0431\u043e\u0442\u0430" ,
units : "\u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434:\u0430|\u0443|\u044b|,\u0441\u0435\u043a\u0443\u043d\u0434:\u0430|\u0443|\u044b|,\u043c\u0438\u043d\u0443\u0442:\u0430|\u0443|\u044b|,\u0447\u0430\u0441:||\u0430|\u043e\u0432,\u0434\u0435\u043d\u044c|\u0434\u0435\u043d\u044c|\u0434\u043d\u044f|\u0434\u043d\u0435\u0439,\u043d\u0435\u0434\u0435\u043b:\u044f|\u044e|\u0438|\u044c|\u0435,\u043c\u0435\u0441\u044f\u0446:||\u0430|\u0435\u0432|\u0435,\u0433\u043e\u0434|\u0433\u043e\u0434|\u0433\u043e\u0434\u0430|\u043b\u0435\u0442|\u0433\u043e\u0434\u0443" ,
numbers : "\u043e\u0434:\u0438\u043d|\u043d\u0443,\u0434\u0432:\u0430|\u0435,\u0442\u0440\u0438,\u0447\u0435\u0442\u044b\u0440\u0435,\u043f\u044f\u0442\u044c,\u0448\u0435\u0441\u0442\u044c,\u0441\u0435\u043c\u044c,\u0432\u043e\u0441\u0435\u043c\u044c,\u0434\u0435\u0432\u044f\u0442\u044c,\u0434\u0435\u0441\u044f\u0442\u044c" , tokens : "\u0432|\u043d\u0430,\u0433\u043e\u0434\u0430" , "short" : "{d} {month} {yyyy} \u0433\u043e\u0434\u0430" , "long" : "{d} {month} {yyyy} \u0433\u043e\u0434\u0430 {H}:{mm}" , full : "{Weekday} {d} {month} {yyyy} \u0433\u043e\u0434\u0430 {H}:{mm}:{ss}" ,
relative : function ( a , b , c , d ) { c = a . toString ( ) . slice ( - 1 ) ; switch ( k ) { case a >= 11 && a <= 15 : mult = 3 ; break ; case c == 1 : mult = 1 ; break ; case c >= 2 && c <= 4 : mult = 2 ; break ; default : mult = 3 } a = a + " " + this . units [ mult * 8 + b ] ; switch ( d ) { case "duration" : return a ; case "past" : return a + " \u043d\u0430\u0437\u0430\u0434" ; case "future" : return "\u0447\u0435\u0440\u0435\u0437 " + a } } , timeMarker : "\u0432" , ampm : " \u0443\u0442\u0440\u0430, \u0432\u0435\u0447\u0435\u0440\u0430" , modifiers : [ { name : "day" , src : "\u043f\u043e\u0437\u0430\u0432\u0447\u0435\u0440\u0430" ,
value : - 2 } , { name : "day" , src : "\u0432\u0447\u0435\u0440\u0430" , value : - 1 } , { name : "day" , src : "\u0441\u0435\u0433\u043e\u0434\u043d\u044f" , value : 0 } , { name : "day" , src : "\u0437\u0430\u0432\u0442\u0440\u0430" , value : 1 } , { name : "day" , src : "\u043f\u043e\u0441\u043b\u0435\u0437\u0430\u0432\u0442\u0440\u0430" , value : 2 } , { name : "sign" , src : "\u043d\u0430\u0437\u0430\u0434" , value : - 1 } , { name : "sign" , src : "\u0447\u0435\u0440\u0435\u0437" , value : 1 } , { name : "shift" , src : "\u043f\u0440\u043e\u0448\u043b:\u044b\u0439|\u043e\u0439|\u043e\u043c" ,
value : - 1 } , { name : "shift" , src : "\u0441\u043b\u0435\u0434\u0443\u044e\u0449:\u0438\u0439|\u0435\u0439|\u0435\u043c" , value : 1 } ] , dateParse : [ "{num} {unit} {sign}" , "{sign} {num} {unit}" , "{month} {year}" , "{0?} {shift} {unit=5-7}" ] , timeParse : [ "{date} {month} {year?} {1?}" , "{0?} {shift} {weekday}" ] } ) ;
Date . addLocale ( "sv" , { plural : k , months : "januari,februari,mars,april,maj,juni,juli,augusti,september,oktober,november,december" , weekdays : "s\u00f6ndag|sondag,m\u00e5ndag:|en+mandag:|en,tisdag,onsdag,torsdag,fredag,l\u00f6rdag|lordag" , units : "millisekund:|er,sekund:|er,minut:|er,timm:e|ar,dag:|ar,veck:a|or|an,m\u00e5nad:|er|en+manad:|er|en,\u00e5r:||et+ar:||et" , numbers : "en|ett,tv\u00e5|tva,tre,fyra,fem,sex,sju,\u00e5tta|atta,nio,tio" , tokens : "den,f\u00f6r|for" , articles : "den" , "short" : "den {d} {month} {yyyy}" ,
"long" : "den {d} {month} {yyyy} {H}:{mm}" , full : "{Weekday} den {d} {month} {yyyy} {H}:{mm}:{ss}" , past : "{num} {unit} {sign}" , future : "{sign} {num} {unit}" , duration : "{num} {unit}" , ampm : "am,pm" , modifiers : [ { name : "day" , src : "f\u00f6rrg\u00e5r|i f\u00f6rrg\u00e5r|if\u00f6rrg\u00e5r|forrgar|i forrgar|iforrgar" , value : - 2 } , { name : "day" , src : "g\u00e5r|i g\u00e5r|ig\u00e5r|gar|i gar|igar" , value : - 1 } , { name : "day" , src : "dag|i dag|idag" , value : 0 } , { name : "day" , src : "morgon|i morgon|imorgon" , value : 1 } , { name : "day" , src : "\u00f6ver morgon|\u00f6vermorgon|i \u00f6ver morgon|i \u00f6vermorgon|i\u00f6vermorgon|over morgon|overmorgon|i over morgon|i overmorgon|iovermorgon" ,
value : 2 } , { name : "sign" , src : "sedan|sen" , value : - 1 } , { name : "sign" , src : "om" , value : 1 } , { name : "shift" , src : "i f\u00f6rra|f\u00f6rra|i forra|forra" , value : - 1 } , { name : "shift" , src : "denna" , value : 0 } , { name : "shift" , src : "n\u00e4sta|nasta" , value : 1 } ] , dateParse : [ "{num} {unit} {sign}" , "{sign} {num} {unit}" , "{1?} {num} {unit} {sign}" , "{shift} {unit=5-7}" ] , timeParse : [ "{0?} {weekday?} {date?} {month} {year}" , "{date} {month}" , "{shift} {weekday}" ] } ) ;
Date . addLocale ( "zh-CN" , { variant : k , monthSuffix : "\u6708" , weekdays : "\u661f\u671f\u65e5|\u5468\u65e5,\u661f\u671f\u4e00|\u5468\u4e00,\u661f\u671f\u4e8c|\u5468\u4e8c,\u661f\u671f\u4e09|\u5468\u4e09,\u661f\u671f\u56db|\u5468\u56db,\u661f\u671f\u4e94|\u5468\u4e94,\u661f\u671f\u516d|\u5468\u516d" , units : "\u6beb\u79d2,\u79d2\u949f,\u5206\u949f,\u5c0f\u65f6,\u5929,\u4e2a\u661f\u671f|\u5468,\u4e2a\u6708,\u5e74" , tokens : "\u65e5|\u53f7" , "short" : "{yyyy}\u5e74{M}\u6708{d}\u65e5" , "long" : "{yyyy}\u5e74{M}\u6708{d}\u65e5 {tt}{h}:{mm}" ,
full : "{yyyy}\u5e74{M}\u6708{d}\u65e5 {weekday} {tt}{h}:{mm}:{ss}" , past : "{num}{unit}{sign}" , future : "{num}{unit}{sign}" , duration : "{num}{unit}" , timeSuffixes : "\u70b9|\u65f6,\u5206\u949f?,\u79d2" , ampm : "\u4e0a\u5348,\u4e0b\u5348" , modifiers : [ { name : "day" , src : "\u524d\u5929" , value : - 2 } , { name : "day" , src : "\u6628\u5929" , value : - 1 } , { name : "day" , src : "\u4eca\u5929" , value : 0 } , { name : "day" , src : "\u660e\u5929" , value : 1 } , { name : "day" , src : "\u540e\u5929" , value : 2 } , { name : "sign" , src : "\u524d" , value : - 1 } , { name : "sign" , src : "\u540e" , value : 1 } ,
{ name : "shift" , src : "\u4e0a|\u53bb" , value : - 1 } , { name : "shift" , src : "\u8fd9" , value : 0 } , { name : "shift" , src : "\u4e0b|\u660e" , value : 1 } ] , dateParse : [ "{num}{unit}{sign}" , "{shift}{unit=5-7}" ] , timeParse : [ "{shift}{weekday}" , "{year}\u5e74{month?}\u6708?{date?}{0?}" , "{month}\u6708{date?}{0?}" , "{date}[\u65e5\u53f7]" ] } ) ;
Date . addLocale ( "zh-TW" , { monthSuffix : "\u6708" , weekdays : "\u661f\u671f\u65e5|\u9031\u65e5,\u661f\u671f\u4e00|\u9031\u4e00,\u661f\u671f\u4e8c|\u9031\u4e8c,\u661f\u671f\u4e09|\u9031\u4e09,\u661f\u671f\u56db|\u9031\u56db,\u661f\u671f\u4e94|\u9031\u4e94,\u661f\u671f\u516d|\u9031\u516d" , units : "\u6beb\u79d2,\u79d2\u9418,\u5206\u9418,\u5c0f\u6642,\u5929,\u500b\u661f\u671f|\u9031,\u500b\u6708,\u5e74" , tokens : "\u65e5|\u865f" , "short" : "{yyyy}\u5e74{M}\u6708{d}\u65e5" , "long" : "{yyyy}\u5e74{M}\u6708{d}\u65e5 {tt}{h}:{mm}" ,
full : "{yyyy}\u5e74{M}\u6708{d}\u65e5 {Weekday} {tt}{h}:{mm}:{ss}" , past : "{num}{unit}{sign}" , future : "{num}{unit}{sign}" , duration : "{num}{unit}" , timeSuffixes : "\u9ede|\u6642,\u5206\u9418?,\u79d2" , ampm : "\u4e0a\u5348,\u4e0b\u5348" , modifiers : [ { name : "day" , src : "\u524d\u5929" , value : - 2 } , { name : "day" , src : "\u6628\u5929" , value : - 1 } , { name : "day" , src : "\u4eca\u5929" , value : 0 } , { name : "day" , src : "\u660e\u5929" , value : 1 } , { name : "day" , src : "\u5f8c\u5929" , value : 2 } , { name : "sign" , src : "\u524d" , value : - 1 } , { name : "sign" , src : "\u5f8c" , value : 1 } ,
{ name : "shift" , src : "\u4e0a|\u53bb" , value : - 1 } , { name : "shift" , src : "\u9019" , value : 0 } , { name : "shift" , src : "\u4e0b|\u660e" , value : 1 } ] , dateParse : [ "{num}{unit}{sign}" , "{shift}{unit=5-7}" ] , timeParse : [ "{shift}{weekday}" , "{year}\u5e74{month?}\u6708?{date?}{0?}" , "{month}\u6708{date?}{0?}" , "{date}[\u65e5\u865f]" ] } ) ; } ) ( ) ;