@ -1,38 +1,38 @@
//
// LESS - Leaner CSS v1.0.1 0
// LESS - Leaner CSS v1.0.1 3
// http://lesscss.org
//
// Copyright (c) 2010, Alexis Sellier
// Licensed under the MIT license.
//
if ( ! Array . isArray ) Array . isArray = function ( b ) { return Object . prototype . toString . call ( b ) === "[object Array]" || b instanceof Array } ; if ( ! Array . prototype . forEach ) Array . prototype . forEach = function ( b , a ) { for ( var e = this . length >>> 0 , f = 0 ; f < e ; f ++ ) f in this && b . call ( a , this [ f ] , f , this ) } ; if ( ! Array . prototype . map ) Array . prototype . map = function ( b , a ) { for ( var e = this . length >>> 0 , f = new Array ( e ) , g= 0 ; g < e ; g ++ ) if ( g in this ) f [ g ] = b . call ( a , this [ g] , g , this ) ; return f } ;
if ( ! Array . isArray ) Array . isArray = function ( b ) { return Object . prototype . toString . call ( b ) === "[object Array]" || b instanceof Array } ; if ( ! Array . prototype . forEach ) Array . prototype . forEach = function ( b , a ) { for ( var e = this . length >>> 0 , f = 0 ; f < e ; f ++ ) f in this && b . call ( a , this [ f ] , f , this ) } ; if ( ! Array . prototype . map ) Array . prototype . map = function ( b , a ) { for ( var e = this . length >>> 0 , f = new Array ( e ) , h= 0 ; h < e ; h ++ ) if ( h in this ) f [ h ] = b . call ( a , this [ h] , h , this ) ; return f } ;
if ( ! Array . prototype . filter ) Array . prototype . filter = function ( b , a ) { for ( var e = [ ] , f = 0 ; f < this . length ; f ++ ) b . call ( a , this [ f ] ) && e . push ( this [ f ] ) ; return e } ; if ( ! Array . prototype . reduce ) Array . prototype . reduce = function ( b ) { var a = this . length >>> 0 , e = 0 ; if ( a === 0 && arguments . length === 1 ) throw new TypeError ; if ( arguments . length >= 2 ) var f = arguments [ 1 ] ; else { do { if ( e in this ) { f = this [ e ++ ] ; break } if ( ++ e >= a ) throw new TypeError ; } while ( 1 ) } for ( ; e < a ; e ++ ) if ( e in this ) f = b . call ( null , f , this [ e ] , e , this ) ; return f } ;
if ( ! Array . prototype . indexOf ) Array . prototype . indexOf = function ( b , a ) { var e = this . length ; a = a || 0 ; if ( ! e ) return - 1 ; if ( a >= e ) return - 1 ; if ( a < 0 ) a += e ; for ( ; a < e ; a ++ ) if ( Object . prototype . hasOwnProperty . call ( this , a ) ) if ( b === this [ a ] ) return a ; return - 1 } ; if ( ! Object . keys ) Object . keys = function ( b ) { var a = [ ] ; for ( var e in b ) Object . prototype . hasOwnProperty . call ( b , e ) && a . push ( e ) ; return a } ; if ( ! String . prototype . trim ) String . prototype . trim = function ( ) { return String ( this ) . replace ( /^\s\s*/ , "" ) . replace ( /\s\s*$/ , "" ) } ;
if ( typeof require !== "undefined" ) var less = exports , tree = require ( "less/tree" ) ; else less = tree = { } ;
less . Parser = function ( b ) { function a ( d ) { var h, i , o ; if ( d instanceof Function ) return d . call ( j . parsers ) ; else if ( typeof d === "string" ) { h= f . charAt ( g ) === d ? d : null ; i = 1 } else { if ( g>= r + n [ k ] . length && k < n . length - 1 ) r += n [ k ++ ] . length ; d . lastIndex = o= g - r ; if ( h = d . exec ( n [ k ] ) ) { i = h [ 0 ] . length ; if ( d . lastIndex - i !== o) return } } if ( h ) { g += i ; for ( i = r + n [ k ] . length ; g <= i ; ) { d = f . charCodeAt ( g ) ; if ( ! ( d === 32 || d === 10 || d === 9 ) ) break ; g++ } return typeof h === "string" ? h : h . length === 1 ? h [ 0 ] : h } } function e ( d ) { var h ; if ( typeof d === "string" ) return f . charAt ( g ) === d ;
else { d . lastIndex = g; if ( ( h = d . exec ( f ) ) && d . lastIndex - h[ 0 ] . length === g ) return h } } var f , g , k , l , n , r , j , p = this , q = function ( ) { } , m = this . imports = { paths : b && b . paths || [ ] , queue : [ ] , files : { } , push : function ( d , h ) { var i = this ; this . queue . push ( d ) ; less . Parser . importer ( d , this . paths , function ( o ) { i . queue . splice ( i . queue . indexOf ( d ) , 1 ) ; i . files [ d ] = o; h ( o ) ; i . queue . length === 0 && q ( ) } ) } } ; this . env = b || { } ; this . optimization = "optimization" in this . env ? this . env . optimization : 1 ; return j= { imports : m , parse : function ( d , h ) { var i , o , s = null ; g = k = r = l = 0 ; n = [ ] ;
f = d . replace ( /\r\n/g , "\n" ) ; if ( p . optimization > 0 ) { f = f . replace ( /\/\*(?:[^*]|\*+[^\/*])*\*+\//g , function ( v) { return p . optimization > 1 ? "" : v . replace ( /\n(\s*\n)+/g , "\n" ) } ) ; n = f . split ( /^(?=\n)/mg ) } else n = [ f ] ; i = new tree . Ruleset ( [ ] , a ( this . parsers . primary ) ) ; i . root = true ; i . toCSS = function ( v) { var t , u ; return function ( ) { try { return v. call ( this ) } catch ( w ) { u = f . split ( "\n" ) ; t = ( f . slice ( 0 , w . index ) . match ( /\n/g ) || "" ) . length + 1 ; for ( var x= w . index , z = - 1 ; x >= 0 && f . charAt ( x ) !== "\n" ; x -- ) z ++ ; throw { name : "NameError" , message : w . message , line : t ,
column : z , extract : [ u[ t - 2 ] , u [ t - 1 ] , u [ t ] ] } ; } } } ( i . toCSS ) ; if ( g< f . length - 1 ) { g = l ; o = f . split ( "\n" ) ; d = ( f . slice ( 0 , g ) . match ( /\n/g ) || "" ) . length + 1 ; for ( var y= g , A = - 1 ; y >= 0 && f . charAt ( y ) !== "\n" ; y -- ) A ++ ; s = { name : "ParseError" , message : "Syntax Error on line " + d , filename : b . filename , line : d , column : A , extract : [ o[ d - 2 ] , o [ d - 1 ] , o [ d ] ] } } if ( this . imports . queue . length > 0 ) q= function ( ) { h ( s , i ) } ; else h ( s , i ) } , parsers : { primary : function ( ) { for ( var d , h = [ ] ; d = a ( this . mixin . definition ) || a ( this . rule ) || a ( this . ruleset ) || a ( this . mixin . call ) || a ( this . comment ) ||
a ( /[\n\s]+/g ) || a ( this . directive ) ; ) h. push ( d ) ; return h } , comment : function ( ) { var d ; if ( f . charAt ( g ) === "/" ) return ( d = a ( /\/\*(?:[^*]|\*+[^\/*])*\*+\/\n?/g ) ) ? new tree . Comment ( d ) : a ( /\/\/.*/g ) } , entities : { quoted : function ( ) { var d ; if ( ! ( f . charAt ( g ) !== '"' && f . charAt ( g ) !== "'" ) ) if ( d = a ( /"((?:[^"\\\r\n]|\\.)*)"|'((?:[^'\\\r\n]|\\.)*)'/g ) ) return new tree . Quoted ( d [ 0 ] , d [ 1 ] || d [ 2 ] ) } , keyword : function ( ) { var d ; if ( d = a ( /[A-Za-z-]+/g ) ) return new tree . Keyword ( d ) } , call : function ( ) { var d , h ; if ( d = a ( /([a-zA-Z0-9_-]+|%)\(/g ) ) { if ( d [ 1 ] . toLowerCase ( ) ===
"alpha" ) return a ( this . alpha ) ; h = a ( this . entities . arguments ) ; if ( a ( ")" ) ) if ( d ) return new tree . Call ( d [ 1 ] , h ) } } , arguments : function ( ) { for ( var d = [ ] , h; h = a ( this . expression ) ; ) { d . push ( h ) ; if ( ! a ( "," ) ) break } return d } , literal : function ( ) { return a ( this . entities . dimension ) || a ( this . entities . color ) || a ( this . entities . quoted ) } , url : function ( ) { var d ; if ( ! ( f . charAt ( g ) !== "u" || ! a ( /url\(/g ) ) ) { d = a ( this . entities . quoted ) || a ( /[-a-zA-Z0-9_%@$\/.&=:;#+?]+/g ) ; if ( ! a ( ")" ) ) throw new Error ( "missing closing ) for url()" ) ; return new tree . URL ( d . value ?
d : new tree . Anonymous ( d ) ) } } , variable : function ( ) { var d , h= g ; if ( f . charAt ( g ) === "@" && ( d = a ( /@[a-zA-Z0-9_-]+/g ) ) ) return new tree . Variable ( d , h ) } , color : function ( ) { var d ; if ( f . charAt ( g ) === "#" && ( d = a ( /#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})/g ) ) ) return new tree . Color ( d [ 1 ] ) } , dimension : function ( ) { var d ; d = f . charCodeAt ( g ) ; if ( ! ( d > 57 || d < 45 || d === 47 ) ) if ( d = a ( /(-?[0-9]*\.?[0-9]+)(px|%|em|pc|ex|in|deg|s|ms|pt|cm|mm)?/g ) ) return new tree . Dimension ( d [ 1 ] , d [ 2 ] ) } } , variable : function ( ) { var d ; if ( f . charAt ( g ) === "@" && ( d = a ( /(@[a-zA-Z0-9_-]+)\s*:/g ) ) ) return d [ 1 ] } ,
shorthand : function ( ) { var d , h ; if ( e ( /[@\w.-]+\/[@\w.-]+/g ) ) if ( ( d = a ( this . entity ) ) && a ( "/" ) && ( h = a ( this . entity ) ) ) return new tree . Shorthand ( d , h ) } , mixin : { call : function ( ) { for ( var d = [ ] , h, i , o , s = g ; h = a ( /[#.][a-zA-Z0-9_-]+/g ) ; ) { d . push ( new tree . Element ( i , h ) ) ; i = a ( ">" ) } a ( "(" ) && ( o = a ( this . entities . arguments ) ) && a ( ")" ) ; if ( d . length > 0 && ( a ( ";" ) || e ( "}" ) ) ) return new tree . mixin . Call ( d , o, s ) } , definition : function ( ) { var d , h= [ ] , i , o ; if ( ! ( f . charAt ( g ) !== "." || e ( /[^{]*(;|})/g ) ) ) if ( d = a ( /([#.][a-zA-Z0-9_-]+)\s*\(/g ) ) { for ( d = d [ 1 ] ; i = a ( /@[\w-]+/g ) ||
a ( this . entities . literal ) || a ( this . entities . keyword ) ; ) { if ( i [ 0 ] === "@" ) if ( a ( ":" ) ) if ( o= a ( this . expression ) ) h . push ( { name : i , value : o } ) ; else throw new Error ( "Expected value" ) ; else h . push ( { name : i } ) ; else h . push ( { value : i } ) ; if ( ! a ( "," ) ) break } if ( ! a ( ")" ) ) throw new Error ( "Expected )" ) ; if ( i = a ( this . block ) ) return new tree . mixin . Definition ( d , h , i ) } } } , entity : function ( ) { return a ( this . entities . literal ) || a ( this . entities . variable ) || a ( this . entities . url ) || a ( this . entities . call ) || a ( this . entities . keyword ) } , end : function ( ) { return a ( ";" ) ||
e ( "}" ) } , alpha : function ( ) { var d ; if ( a ( /opacity=/gi ) ) if ( d = a ( /[0-9]+/g ) || a ( this . entities . variable ) ) { if ( ! a ( ")" ) ) throw new Error ( "missing closing ) for alpha()" ) ; return new tree . Alpha ( d ) } } , element : function ( ) { var d ; c = a ( this . combinator ) ; if ( d = a ( /[.#:]?[a-zA-Z0-9_-]+/g ) || a ( "*" ) || a ( this . attribute ) || a ( /\([^)@]+\)/g ) ) return new tree . Element ( c , d ) } , combinator : function ( ) { var d ; return ( d = a ( /[+>~]/g ) || a ( "&" ) || a ( /::/g ) ) ? new tree . Combinator ( d ) : new tree . Combinator ( f . charAt ( g - 1 ) === " " ? " " : null ) } , selector : function ( ) { for ( var d ,
h = [ ] ; d = a ( this . element ) ; ) h. push ( d ) ; if ( h . length > 0 ) return new tree . Selector ( h ) } , tag : function ( ) { return a ( /[a-zA-Z][a-zA-Z-]*[0-9]?/g ) || a ( "*" ) } , attribute : function ( ) { var d = "" , h, i , o ; if ( a ( "[" ) ) { if ( h = a ( /[a-z-]+/g ) || a ( this . entities . quoted ) ) d = ( o = a ( /[|~*$^]?=/g ) ) && ( i = a ( this . entities . quoted ) || a ( /[\w-]+/g ) ) ? [ h, o , i . toCSS ? i . toCSS ( ) : i ] . join ( "" ) : h ; if ( a ( "]" ) ) if ( d ) return "[" + d + "]" } } , block : function ( ) { var d ; if ( a ( "{" ) && ( d = a ( this . primary ) ) && a ( "}" ) ) return d } , ruleset : function ( ) { var d = [ ] , h, i , o = g ; if ( h = e ( /([a-z.#: _-]+)[\s\n]*\{/g ) ) { g +=
h [ 0 ] . length - 1 ; d = [ new tree . Selector ( [ new tree . Element ( null , h [ 1 ] ) ] ) ] } else { for ( ; h = a ( this . selector ) ; ) { d . push ( h ) ; if ( ! a ( "," ) ) break } h && a ( this . comment ) } if ( d . length > 0 && ( i = a ( this . block ) ) ) return new tree . Ruleset ( d , i ) ; else { l= g ; g = o } } , rule : function ( ) { var d , h= g ; if ( name = a ( this . property ) || a ( this . variable ) ) { if ( name . charAt ( 0 ) != "@" && ( match = e ( /([^@+\/*(;{}-]*);/g ) ) ) { g += match [ 0 ] . length - 1 ; d = new tree . Anonymous ( match [ 1 ] ) } else d = name === "font" ? a ( this . font ) : a ( this . value ) ; if ( a ( this . end ) ) return new tree . Rule ( name , d , h) ; else { l =
g; g = h } } } , "import" : function ( ) { var d ; if ( a ( /@import\s+/g ) && ( d = a ( this . entities . quoted ) || a ( this . entities . url ) ) && a ( ";" ) ) return new tree . Import ( d , m ) } , directive : function ( ) { var d , h, i ; if ( f . charAt ( g ) === "@" ) if ( h = a ( this [ "import" ] ) ) return h ; else if ( d = a ( /@media|@page/g ) ) { i = a ( /[^{]+/g ) . trim ( ) ; if ( h = a ( this . block ) ) return new tree . Directive ( d + " " + i , h ) } else if ( d = a ( /@[-a-z]+/g ) ) if ( d === "@font-face" ) { if ( h = a ( this . block ) ) return new tree . Directive ( d , h) } else if ( ( h = a ( this . entity ) ) && a ( ";" ) ) return new tree . Directive ( d , h ) } , font : function ( ) { for ( var d =
[ ] , h = [ ] , i ; i = a ( this . shorthand ) || a ( this . entity ) ; ) h . push ( i ) ; d . push ( new tree . Expression ( h ) ) ; if ( a ( "," ) ) for ( ; i = a ( this . expression ) ; ) { d . push ( i ) ; if ( ! a ( "," ) ) break } return new tree . Value ( d , a ( this . important ) ) } , value : function ( ) { for ( var d , h = [ ] ; d = a ( this . expression ) ; ) { h . push ( d ) ; if ( ! a ( "," ) ) break } d = a ( this . important ) ; if ( h . length > 0 ) return new tree . Value ( h , d ) } , important : function ( ) { return a ( /!\s*important/g ) } , sub : function ( ) { var d ; if ( a ( "(" ) && ( d = a ( this . expression ) ) && a ( ")" ) ) return d } , multiplication : function ( ) { var d , h, i , o ;
if ( d = a ( this . operand ) ) { for ( ; ( i = a ( /[\/*]/g ) ) && ( h = a ( this . operand ) ) ; ) o = new tree . Operation ( i , [ o|| d , h ] ) ; return o || d } } , addition : function ( ) { var d , h, i , o ; if ( d = a ( this . multiplication ) ) { for ( ; ( i = a ( /[-+]\s+/g ) || f . charAt ( g - 1 ) != " " && a ( /[-+]/g ) ) && ( h = a ( this . multiplication ) ) ; ) o = new tree . Operation ( i , [ o|| d , h ] ) ; return o || d } } , operand : function ( ) { return a ( this . sub ) || a ( this . entities . dimension ) || a ( this . entities . color ) || a ( this . entities . variable ) } , expression : function ( ) { for ( var d , h = [ ] ; d = a ( this . addition ) || a ( this . entity ) ; ) h . push ( d ) ;
if ( h . length > 0 ) return new tree . Expression ( h ) } , property : function ( ) { var d ; if ( d = a ( /(\*?-?[-a-z_0-9]+)\s*:/g ) ) return d [ 1 ] } } } } ; less . Parser . importer = null ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ;
tree . functions = { rgb : function ( b , a , e ) { return this . rgba ( b , a , e , 1 ) } , rgba : function ( b , a , e , f ) { b = [ b , a , e ] . map ( function ( g) { return number ( g ) } ) ; f = number ( f ) ; return new tree . Color ( b , f ) } , hsl : function ( b , a , e ) { return this . hsla ( b , a , e , 1 ) } , hsla : function ( b , a , e , f ) { function g ( n ) { n = n < 0 ? n + 1 : n > 1 ? n - 1 : n ; return n * 6 < 1 ? l+ ( k - l ) * n * 6 : n * 2 < 1 ? k: n * 3 < 2 ? l + ( k - l ) * ( 2 / 3 - n ) * 6 : l } b = ( number ( b ) % 360 + 360 ) % 360 / 360 ; a = number ( a ) ; e = number ( e ) ; f = number ( f ) ; var k = e <= 0.5 ? e * ( a + 1 ) : e + a - e * a , l= e * 2 - k ; return this . rgba ( g ( b + 1 / 3 ) * 255 , g( b ) * 255 , g ( b - 1 / 3 ) * 255 , f ) } , saturate : function ( b ,
less . Parser = function ( b ) { function a ( d ) { var g, i , m ; if ( d instanceof Function ) return d . call ( s . parsers ) ; else if ( typeof d === "string" ) { g= f . charAt ( h ) === d ? d : null ; i = 1 } else { if ( h>= q + n [ l ] . length && l < n . length - 1 ) q += n [ l ++ ] . length ; d . lastIndex = m= h - q ; if ( g = d . exec ( n [ l ] ) ) { i = g [ 0 ] . length ; if ( d . lastIndex - i !== m) return } } if ( g ) { h += i ; for ( i = q + n [ l ] . length ; h <= i ; ) { d = f . charCodeAt ( h ) ; if ( ! ( d === 32 || d === 10 || d === 9 ) ) break ; h++ } return typeof g === "string" ? g : g . length === 1 ? g [ 0 ] : g } } function e ( d ) { var g ; if ( typeof d === "string" ) return f . charAt ( h ) === d ;
else { d . lastIndex = h; if ( ( g = d . exec ( f ) ) && d . lastIndex - g[ 0 ] . length === h ) return g } } var f , h , l , k , n , q , s , j = this , o = function ( ) { } , p = this . imports = { paths : b && b . paths || [ ] , queue : [ ] , files : { } , push : function ( d , g ) { var i = this ; this . queue . push ( d ) ; less . Parser . importer ( d , this . paths , function ( m ) { i . queue . splice ( i . queue . indexOf ( d ) , 1 ) ; i . files [ d ] = m; g ( m ) ; i . queue . length === 0 && o ( ) } ) } } ; this . env = b || { } ; this . optimization = "optimization" in this . env ? this . env . optimization : 1 ; return s= { imports : p , parse : function ( d , g ) { var i , m , r = null ; h = l = q = k = 0 ; n = [ ] ;
f = d . replace ( /\r\n/g , "\n" ) ; if ( j . optimization > 0 ) { f = f . replace ( /\/\*(?:[^*]|\*+[^\/*])*\*+\//g , function ( w) { return j . optimization > 1 ? "" : w . replace ( /\n(\s*\n)+/g , "\n" ) } ) ; n = f . split ( /^(?=\n)/mg ) } else n = [ f ] ; i = new tree . Ruleset ( [ ] , a ( this . parsers . primary ) ) ; i . root = true ; i . toCSS = function ( w) { var t , v ; return function ( ) { try { return w. call ( this ) } catch ( x ) { v = f . split ( "\n" ) ; t = ( f . slice ( 0 , x . index ) . match ( /\n/g ) || "" ) . length + 1 ; for ( var y= x . index , z = - 1 ; y >= 0 && f . charAt ( y ) !== "\n" ; y -- ) z ++ ; throw { name : "NameError" , message : x . message , line : t ,
column : z , extract : [ v[ t - 2 ] , v [ t - 1 ] , v [ t ] ] } ; } } } ( i . toCSS ) ; if ( h< f . length - 1 ) { h = k ; m = f . split ( "\n" ) ; d = ( f . slice ( 0 , h ) . match ( /\n/g ) || "" ) . length + 1 ; for ( var u= h , A = - 1 ; u >= 0 && f . charAt ( u ) !== "\n" ; u -- ) A ++ ; r = { name : "ParseError" , message : "Syntax Error on line " + d , filename : b . filename , line : d , column : A , extract : [ m[ d - 2 ] , m [ d - 1 ] , m [ d ] ] } } if ( this . imports . queue . length > 0 ) o= function ( ) { g ( r , i ) } ; else g ( r , i ) } , parsers : { primary : function ( ) { for ( var d , g = [ ] ; d = a ( this . mixin . definition ) || a ( this . rule ) || a ( this . ruleset ) || a ( this . mixin . call ) || a ( this . comment ) ||
a ( /[\n\s]+/g ) || a ( this . directive ) ; ) g. push ( d ) ; return g } , comment : function ( ) { var d ; if ( f . charAt ( h ) === "/" ) return ( d = a ( /\/\*(?:[^*]|\*+[^\/*])*\*+\/\n?/g ) ) ? new tree . Comment ( d ) : a ( /\/\/.*/g ) } , entities : { quoted : function ( ) { var d ; if ( ! ( f . charAt ( h ) !== '"' && f . charAt ( h ) !== "'" ) ) if ( d = a ( /"((?:[^"\\\r\n]|\\.)*)"|'((?:[^'\\\r\n]|\\.)*)'/g ) ) return new tree . Quoted ( d [ 0 ] , d [ 1 ] || d [ 2 ] ) } , keyword : function ( ) { var d ; if ( d = a ( /[A-Za-z-]+/g ) ) return new tree . Keyword ( d ) } , call : function ( ) { var d , g ; if ( d = a ( /([a-zA-Z0-9_-]+|%)\(/g ) ) { if ( d [ 1 ] . toLowerCase ( ) ===
"alpha" ) return a ( this . alpha ) ; g = a ( this . entities . arguments ) ; if ( a ( ")" ) ) if ( d ) return new tree . Call ( d [ 1 ] , g ) } } , arguments : function ( ) { for ( var d = [ ] , g; g = a ( this . expression ) ; ) { d . push ( g ) ; if ( ! a ( "," ) ) break } return d } , literal : function ( ) { return a ( this . entities . dimension ) || a ( this . entities . color ) || a ( this . entities . quoted ) } , url : function ( ) { var d ; if ( ! ( f . charAt ( h ) !== "u" || ! a ( /url\(/g ) ) ) { d = a ( this . entities . quoted ) || a ( /[-a-zA-Z0-9_%@$\/.&=:;#+?]+/g ) ; if ( ! a ( ")" ) ) throw new Error ( "missing closing ) for url()" ) ; return new tree . URL ( d . value ?
d : new tree . Anonymous ( d ) ) } } , variable : function ( ) { var d , g= h ; if ( f . charAt ( h ) === "@" && ( d = a ( /@[a-zA-Z0-9_-]+/g ) ) ) return new tree . Variable ( d , g ) } , color : function ( ) { var d ; if ( f . charAt ( h ) === "#" && ( d = a ( /#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})/g ) ) ) return new tree . Color ( d [ 1 ] ) } , dimension : function ( ) { var d ; d = f . charCodeAt ( h ) ; if ( ! ( d > 57 || d < 45 || d === 47 ) ) if ( d = a ( /(-?[0-9]*\.?[0-9]+)(px|%|em|pc|ex|in|deg|s|ms|pt|cm|mm)?/g ) ) return new tree . Dimension ( d [ 1 ] , d [ 2 ] ) } } , variable : function ( ) { var d ; if ( f . charAt ( h ) === "@" && ( d = a ( /(@[a-zA-Z0-9_-]+)\s*:/g ) ) ) return d [ 1 ] } ,
shorthand : function ( ) { var d , g ; if ( e ( /[@\w.-]+\/[@\w.-]+/g ) ) if ( ( d = a ( this . entity ) ) && a ( "/" ) && ( g = a ( this . entity ) ) ) return new tree . Shorthand ( d , g ) } , mixin : { call : function ( ) { for ( var d = [ ] , g, i , m , r = h ; g = a ( /[#.][a-zA-Z0-9_-]+/g ) ; ) { d . push ( new tree . Element ( i , g ) ) ; i = a ( ">" ) } a ( "(" ) && ( m = a ( this . entities . arguments ) ) && a ( ")" ) ; if ( d . length > 0 && ( a ( ";" ) || e ( "}" ) ) ) return new tree . mixin . Call ( d , m, r ) } , definition : function ( ) { var d , g= [ ] , i , m ; if ( ! ( f . charAt ( h ) !== "." || e ( /[^{]*(;|})/g ) ) ) if ( d = a ( /([#.][a-zA-Z0-9_-]+)\s*\(/g ) ) { for ( d = d [ 1 ] ; i = a ( /@[\w-]+/g ) ||
a ( this . entities . literal ) || a ( this . entities . keyword ) ; ) { if ( i [ 0 ] === "@" ) if ( a ( ":" ) ) if ( m= a ( this . expression ) ) g . push ( { name : i , value : m } ) ; else throw new Error ( "Expected value" ) ; else g . push ( { name : i } ) ; else g . push ( { value : i } ) ; if ( ! a ( "," ) ) break } if ( ! a ( ")" ) ) throw new Error ( "Expected )" ) ; if ( i = a ( this . block ) ) return new tree . mixin . Definition ( d , g , i ) } } } , entity : function ( ) { return a ( this . entities . literal ) || a ( this . entities . variable ) || a ( this . entities . url ) || a ( this . entities . call ) || a ( this . entities . keyword ) } , end : function ( ) { return a ( ";" ) ||
e ( "}" ) } , alpha : function ( ) { var d ; if ( a ( /opacity=/gi ) ) if ( d = a ( /[0-9]+/g ) || a ( this . entities . variable ) ) { if ( ! a ( ")" ) ) throw new Error ( "missing closing ) for alpha()" ) ; return new tree . Alpha ( d ) } } , element : function ( ) { var d ; c = a ( this . combinator ) ; if ( d = a ( /[.#:]?[a-zA-Z0-9_-]+/g ) || a ( "*" ) || a ( this . attribute ) || a ( /\([^)@]+\)/g ) ) return new tree . Element ( c , d ) } , combinator : function ( ) { var d ; return ( d = a ( /[+>~]/g ) || a ( "&" ) || a ( /::/g ) ) ? new tree . Combinator ( d ) : new tree . Combinator ( f . charAt ( h - 1 ) === " " ? " " : null ) } , selector : function ( ) { for ( var d ,
g = [ ] ; d = a ( this . element ) ; ) g. push ( d ) ; if ( g . length > 0 ) return new tree . Selector ( g ) } , tag : function ( ) { return a ( /[a-zA-Z][a-zA-Z-]*[0-9]?/g ) || a ( "*" ) } , attribute : function ( ) { var d = "" , g, i , m ; if ( a ( "[" ) ) { if ( g = a ( /[a-z-]+/g ) || a ( this . entities . quoted ) ) d = ( m = a ( /[|~*$^]?=/g ) ) && ( i = a ( this . entities . quoted ) || a ( /[\w-]+/g ) ) ? [ g, m , i . toCSS ? i . toCSS ( ) : i ] . join ( "" ) : g ; if ( a ( "]" ) ) if ( d ) return "[" + d + "]" } } , block : function ( ) { var d ; if ( a ( "{" ) && ( d = a ( this . primary ) ) && a ( "}" ) ) return d } , ruleset : function ( ) { var d = [ ] , g, i , m = h ; if ( g = e ( /([a-z.#: _-]+)[\s\n]*\{/g ) ) { h +=
g [ 0 ] . length - 1 ; d = [ new tree . Selector ( [ new tree . Element ( null , g [ 1 ] ) ] ) ] } else { for ( ; g = a ( this . selector ) ; ) { d . push ( g ) ; if ( ! a ( "," ) ) break } g && a ( this . comment ) } if ( d . length > 0 && ( i = a ( this . block ) ) ) return new tree . Ruleset ( d , i ) ; else { k= h ; h = m } } , rule : function ( ) { var d , g= h ; if ( name = a ( this . property ) || a ( this . variable ) ) { if ( name . charAt ( 0 ) != "@" && ( match = e ( /([^@+\/*(;{}-]*);/g ) ) ) { h += match [ 0 ] . length - 1 ; d = new tree . Anonymous ( match [ 1 ] ) } else d = name === "font" ? a ( this . font ) : a ( this . value ) ; if ( a ( this . end ) ) return new tree . Rule ( name , d , g) ; else { k =
h; h = g } } } , "import" : function ( ) { var d ; if ( a ( /@import\s+/g ) && ( d = a ( this . entities . quoted ) || a ( this . entities . url ) ) && a ( ";" ) ) return new tree . Import ( d , p ) } , directive : function ( ) { var d , g, i ; if ( f . charAt ( h ) === "@" ) if ( g = a ( this [ "import" ] ) ) return g ; else if ( d = a ( /@media|@page/g ) ) { i = a ( /[^{]+/g ) . trim ( ) ; if ( g = a ( this . block ) ) return new tree . Directive ( d + " " + i , g ) } else if ( d = a ( /@[-a-z]+/g ) ) if ( d === "@font-face" ) { if ( g = a ( this . block ) ) return new tree . Directive ( d , g) } else if ( ( g = a ( this . entity ) ) && a ( ";" ) ) return new tree . Directive ( d , g ) } , font : function ( ) { for ( var d =
[ ] , g = [ ] , i ; i = a ( this . shorthand ) || a ( this . entity ) ; ) g . push ( i ) ; d . push ( new tree . Expression ( g ) ) ; if ( a ( "," ) ) for ( ; i = a ( this . expression ) ; ) { d . push ( i ) ; if ( ! a ( "," ) ) break } return new tree . Value ( d , a ( this . important ) ) } , value : function ( ) { for ( var d , g = [ ] ; d = a ( this . expression ) ; ) { g . push ( d ) ; if ( ! a ( "," ) ) break } d = a ( this . important ) ; if ( g . length > 0 ) return new tree . Value ( g , d ) } , important : function ( ) { return a ( /!\s*important/g ) } , sub : function ( ) { var d ; if ( a ( "(" ) && ( d = a ( this . expression ) ) && a ( ")" ) ) return d } , multiplication : function ( ) { var d , g, i , m ;
if ( d = a ( this . operand ) ) { for ( ; ( i = a ( /[\/*]/g ) ) && ( g = a ( this . operand ) ) ; ) m = new tree . Operation ( i , [ m|| d , g ] ) ; return m || d } } , addition : function ( ) { var d , g, i , m ; if ( d = a ( this . multiplication ) ) { for ( ; ( i = a ( /[-+]\s+/g ) || f . charAt ( h - 1 ) != " " && a ( /[-+]/g ) ) && ( g = a ( this . multiplication ) ) ; ) m = new tree . Operation ( i , [ m|| d , g ] ) ; return m || d } } , operand : function ( ) { return a ( this . sub ) || a ( this . entities . dimension ) || a ( this . entities . color ) || a ( this . entities . variable ) } , expression : function ( ) { for ( var d , g = [ ] ; d = a ( this . addition ) || a ( this . entity ) ; ) g . push ( d ) ;
if ( g . length > 0 ) return new tree . Expression ( g ) } , property : function ( ) { var d ; if ( d = a ( /(\*?-?[-a-z_0-9]+)\s*:/g ) ) return d [ 1 ] } } } } ; less . Parser . importer = null ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ;
tree . functions = { rgb : function ( b , a , e ) { return this . rgba ( b , a , e , 1 ) } , rgba : function ( b , a , e , f ) { b = [ b , a , e ] . map ( function ( h) { return number ( h ) } ) ; f = number ( f ) ; return new tree . Color ( b , f ) } , hsl : function ( b , a , e ) { return this . hsla ( b , a , e , 1 ) } , hsla : function ( b , a , e , f ) { function h ( n ) { n = n < 0 ? n + 1 : n > 1 ? n - 1 : n ; return n * 6 < 1 ? k+ ( l - k ) * n * 6 : n * 2 < 1 ? l: n * 3 < 2 ? k + ( l - k ) * ( 2 / 3 - n ) * 6 : k } b = ( number ( b ) % 360 + 360 ) % 360 / 360 ; a = number ( a ) ; e = number ( e ) ; f = number ( f ) ; var l = e <= 0.5 ? e * ( a + 1 ) : e + a - e * a , k= e * 2 - l ; return this . rgba ( h ( b + 1 / 3 ) * 255 , h( b ) * 255 , h ( b - 1 / 3 ) * 255 , f ) } , saturate : function ( b ,
a ) { b = b . toHSL ( ) ; b . s += a . value / 100 ; b . s = clamp ( b . s ) ; return this . hsl ( b . h , b . s , b . l ) } , desaturate : function ( b , a ) { b = b . toHSL ( ) ; b . s -= a . value / 100 ; b . s = clamp ( b . s ) ; return this . hsl ( b . h , b . s , b . l ) } , lighten : function ( b , a ) { b = b . toHSL ( ) ; b . l *= 1 + a . value / 100 ; b . l = clamp ( b . l ) ; return this . hsl ( b . h , b . s , b . l ) } , darken : function ( b , a ) { b = b . toHSL ( ) ; b . l *= 1 - a . value / 100 ; b . l = clamp ( b . l ) ; return this . hsl ( b . h , b . s , b . l ) } , greyscale : function ( b ) { return this . desaturate ( b , new tree . Dimension ( 100 ) ) } , e : function ( b ) { return new tree . Anonymous ( b ) } , "%" : function ( b ) { for ( var a =
Array . prototype . slice . call ( arguments , 1 ) , e = b . content , f = 0 ; f < a . length ; f ++ ) e = e . replace ( /%s/ , a [ f ] . content ) . replace ( /%[da]/ , a [ f ] . toCSS ( ) ) ; e = e . replace ( /%%/g , "%" ) ; return new tree . Quoted ( '"' + e + '"' , e ) } } ; function number ( b ) { if ( b instanceof tree . Dimension ) return parseFloat ( b . unit == "%" ? b . value / 100 : b . value ) ; else if ( typeof b === "number" ) return b ; else throw { error : "RuntimeError" , message : "color functions take numbers as parameters" } ; } function clamp ( b ) { return Math . min ( 1 , Math . max ( 0 , b ) ) }
if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ; tree . Alpha = function ( b ) { this . value = b } ; tree . Alpha . prototype = { toCSS : function ( ) { return "alpha(opacity=" + this . value . toCSS ( ) + ")" } , eval : function ( ) { return this } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ; tree . Anonymous = function ( b ) { this . value = b . content || b } ; tree . Anonymous . prototype = { toCSS : function ( ) { return this . value } , eval : function ( ) { return this } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ;
tree . Call = function ( b , a ) { this . name = b ; this . args = a } ; tree . Call . prototype = { eval : function ( b ) { var a = this . args . map ( function ( e ) { return e . eval ( b ) } ) ; return this . name in tree . functions ? tree . functions [ this . name ] . apply ( tree . functions , a ) : new tree . Anonymous ( this . name + "(" + a . map ( function ( e ) { return e . toCSS ( ) } ) . join ( ", " ) + ")" ) } , toCSS : function ( b ) { return this . eval ( b ) . toCSS ( ) } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ;
tree . Color = function ( b , a ) { if ( Array . isArray ( b ) ) { this . rgb = b ; this . alpha = a } else this . rgb = b . length == 6 ? b . match ( /.{2}/g ) . map ( function ( e ) { return parseInt ( e , 16 ) } ) : b . split ( "" ) . map ( function ( e ) { return parseInt ( e + e , 16 ) } ) } ;
tree . Color . prototype = { eval : function ( ) { return this } , toCSS : function ( ) { return this . alpha && this . alpha < 1 ? "rgba(" + this . rgb . concat ( this . alpha ) . join ( ", " ) + ")" : "#" + this . rgb . map ( function ( b ) { b = Math . round ( b ) ; b = ( b > 255 ? 255 : b < 0 ? 0 : b ) . toString ( 16 ) ; return b . length === 1 ? "0" + b : b } ) . join ( "" ) } , operate : function ( b , a ) { var e = [ ] ; a instanceof tree . Color || ( a = a . toColor ( ) ) ; for ( var f = 0 ; f < 3 ; f ++ ) e [ f ] = tree . operate ( b , this . rgb [ f ] , a . rgb [ f ] ) ; return new tree . Color ( e ) } , toHSL : function ( ) { var b = this . rgb [ 0 ] / 255 , a = this . rgb [ 1 ] / 255 , e = this . rgb [ 2 ] /
255 , f = Math . max ( b , a , e ) , g = Math . min ( b , a , e ) , k, l = ( f + g ) / 2 , n = f - g ; if ( f === g ) k = g = 0 ; else { g = l > 0.5 ? n / ( 2 - f - g) : n / ( f + g ) ; switch ( f ) { case b : k = ( a - e ) / n + ( a < e ? 6 : 0 ) ; break ; case a : k = ( e - b ) / n + 2 ; break ; case e : k = ( b - a ) / n + 4 ; break } k/= 6 } return { h : k * 360 , s : g , l : l } } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ; tree . Comment = function ( b ) { this . value = b } ; tree . Comment . prototype = { toCSS : function ( ) { return this . value } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ;
255 , f = Math . max ( b , a , e ) , h = Math . min ( b , a , e ) , l, k = ( f + h ) / 2 , n = f - h ; if ( f === h ) l = h = 0 ; else { h = k > 0.5 ? n / ( 2 - f - h) : n / ( f + h ) ; switch ( f ) { case b : l = ( a - e ) / n + ( a < e ? 6 : 0 ) ; break ; case a : l = ( e - b ) / n + 2 ; break ; case e : l = ( b - a ) / n + 4 ; break } l/= 6 } return { h : l * 360 , s : h , l : k } } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ; tree . Comment = function ( b ) { this . value = b } ; tree . Comment . prototype = { toCSS : function ( ) { return this . value } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ;
tree . Dimension = function ( b , a ) { this . value = parseFloat ( b ) ; this . unit = a || null } ; tree . Dimension . prototype = { eval : function ( ) { return this } , toColor : function ( ) { return new tree . Color ( [ this . value , this . value , this . value ] ) } , toCSS : function ( ) { return this . value + this . unit } , operate : function ( b , a ) { return new tree . Dimension ( tree . operate ( b , this . value , a . value ) , this . unit || a . unit ) } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ;
tree . Directive = function ( b , a ) { this . name = b ; if ( Array . isArray ( a ) ) this . ruleset = new tree . Ruleset ( [ ] , a ) ; else this . value = a } ;
tree . Directive . prototype = { toCSS : function ( b , a ) { if ( this . ruleset ) { this . ruleset . root = true ; return this . name + " {\n " + this . ruleset . toCSS ( b , a ) . trim ( ) . replace ( /\n/g , "\n " ) + "\n}\n" } else return this . name + " " + this . value . toCSS ( ) + ";\n" } , eval : function ( b ) { b . frames . unshift ( this ) ; this . ruleset && this . ruleset . evalRules ( b ) ; b . frames . shift ( ) ; return this } , variable : function ( b ) { return tree . Ruleset . prototype . variable . call ( this . ruleset , b ) } , find : function ( ) { return tree . Ruleset . prototype . find . apply ( this . ruleset , arguments ) } , rulesets : function ( ) { return tree . Ruleset . prototype . rulesets . apply ( this . ruleset ) } } ;
@ -41,26 +41,26 @@ tree.Combinator.prototype.toCSS=function(){switch(this.value){case "":return"";c
if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ; tree . Import = function ( b , a ) { var e = this ; this . _path = b ; this . path = b instanceof tree . Quoted ? /\.(le?|c)ss$/ . test ( b . content ) ? b . content : b . content + ".less" : b . value . content || b . value ; ( this . css = /css$/ . test ( this . path ) ) || a . push ( this . path , function ( f ) { e . root = f } ) } ;
tree . Import . prototype = { toCSS : function ( ) { return this . css ? "@import " + this . _path . toCSS ( ) + ";\n" : "" } , eval : function ( ) { if ( this . css ) return this ; else { for ( var b = 0 ; b < this . root . rules . length ; b ++ ) this . root . rules [ b ] instanceof tree . Import && Array . prototype . splice . apply ( this . root . rules , [ b , 1 ] . concat ( this . root . rules [ b ] . eval ( ) ) ) ; return this . root . rules } } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ; tree . Keyword = function ( b ) { this . value = b } ; tree . Keyword . prototype = { eval : function ( ) { return this } , toCSS : function ( ) { return this . value } } ;
if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ; tree . mixin = { } ; tree . mixin . Call = function ( b , a , e ) { this . selector = new tree . Selector ( b ) ; this . arguments = a ; this . index = e } ;
tree . mixin . Call . prototype = { eval : function ( b ) { for ( var a , e = [ ] , f = false , g= 0 ; g < b . frames . length ; g ++ ) if ( ( a = b . frames [ g ] . find ( this . selector ) ) . length > 0 ) { for ( g= 0 ; g < a . length ; g ++ ) if ( a [ g ] . match ( this . arguments , b ) ) try { Array . prototype . push . apply ( e , a [ g ] . eval ( this . arguments , b ) . rules ) ; f = true } catch ( k) { throw { message : k . message , index : this . index } ; } if ( f ) return e ; else throw { message : "No matching definition was found for `" + this . selector . toCSS ( ) . trim ( ) + "(" + this . arguments . map ( function ( l) { return l . toCSS ( ) } ) . join ( ", " ) + ")`" , index : this . index } ;
} throw { message : this . selector . toCSS ( ) . trim ( ) + " is undefined" , index : this . index } ; } } ; tree . mixin . Definition = function ( b , a , e ) { this . name = b ; this . selectors = [ new tree . Selector ( [ new tree . Element ( null , b ) ] ) ] ; this . params = a ; this . arity = a . length ; this . rules = e ; this . _lookups = { } ; this . required = a . reduce ( function ( f , g) { return g . name && ! g . value ? f + 1 : f } , 0 ) } ;
tree . mixin . Definition . prototype = { toCSS : function ( ) { return "" } , variable : function ( b ) { return tree . Ruleset . prototype . variable . call ( this , b ) } , find : function ( ) { return tree . Ruleset . prototype . find . apply ( this , arguments ) } , rulesets : function ( ) { return tree . Ruleset . prototype . rulesets . apply ( this ) } , eval : function ( b , a ) { for ( var e = new tree . Ruleset ( null , [ ] ) , f = 0 , g ; f < this . params . length ; f ++ ) if ( this . params [ f ] . name ) if ( g = b && b [ f ] || this . params [ f ] . value ) e . rules . unshift ( new tree . Rule ( this . params [ f ] . name , g . eval ( a ) ) ) ; else throw { message : "wrong number of arguments for " +
tree . mixin . Call . prototype = { eval : function ( b ) { for ( var a , e = [ ] , f = false , h= 0 ; h < b . frames . length ; h ++ ) if ( ( a = b . frames [ h ] . find ( this . selector ) ) . length > 0 ) { for ( h= 0 ; h < a . length ; h ++ ) if ( a [ h ] . match ( this . arguments , b ) ) try { Array . prototype . push . apply ( e , a [ h ] . eval ( this . arguments , b ) . rules ) ; f = true } catch ( l) { throw { message : l . message , index : this . index } ; } if ( f ) return e ; else throw { message : "No matching definition was found for `" + this . selector . toCSS ( ) . trim ( ) + "(" + this . arguments . map ( function ( k) { return k . toCSS ( ) } ) . join ( ", " ) + ")`" , index : this . index } ;
} throw { message : this . selector . toCSS ( ) . trim ( ) + " is undefined" , index : this . index } ; } } ; tree . mixin . Definition = function ( b , a , e ) { this . name = b ; this . selectors = [ new tree . Selector ( [ new tree . Element ( null , b ) ] ) ] ; this . params = a ; this . arity = a . length ; this . rules = e ; this . _lookups = { } ; this . required = a . reduce ( function ( f , h) { return h . name && ! h . value ? f + 1 : f } , 0 ) } ;
tree . mixin . Definition . prototype = { toCSS : function ( ) { return "" } , variable : function ( b ) { return tree . Ruleset . prototype . variable . call ( this , b ) } , find : function ( ) { return tree . Ruleset . prototype . find . apply ( this , arguments ) } , rulesets : function ( ) { return tree . Ruleset . prototype . rulesets . apply ( this ) } , eval : function ( b , a ) { for ( var e = new tree . Ruleset ( null , [ ] ) , f = 0 , h ; f < this . params . length ; f ++ ) if ( this . params [ f ] . name ) if ( h = b && b [ f ] || this . params [ f ] . value ) e . rules . unshift ( new tree . Rule ( this . params [ f ] . name , h . eval ( a ) ) ) ; else throw { message : "wrong number of arguments for " +
this . name + " (" + b . length + " for " + this . arity + ")" } ; return ( new tree . Ruleset ( null , this . rules ) ) . evalRules ( { frames : [ this , e ] . concat ( a . frames ) } ) } , match : function ( b , a ) { var e = b && b . length || 0 ; if ( e < this . required ) return false ; for ( var f = 0 ; f < Math . min ( e , this . arity ) ; f ++ ) if ( ! this . params [ f ] . name ) if ( ! b [ f ] . wildcard ) if ( b [ f ] . eval ( a ) . toCSS ( ) != this . params [ f ] . value . eval ( a ) . toCSS ( ) ) return false ; return true } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ; tree . Operation = function ( b , a ) { this . op = b . trim ( ) ; this . operands = a } ;
tree . Operation . prototype . eval = function ( b ) { var a = this . operands [ 0 ] . eval ( b ) ; b = this . operands [ 1 ] . eval ( b ) ; var e ; if ( a instanceof tree . Dimension && b instanceof tree . Color ) if ( this . op === "*" || this . op === "+" ) { e = b ; b = a ; a = e } else throw { name : "OperationError" , message : "Can't substract or divide a color from a number" } ; return a . operate ( this . op , b ) } ; tree . operate = function ( b , a , e ) { switch ( b ) { case "+" : return a + e ; case "-" : return a - e ; case "*" : return a * e ; case "/" : return a / e } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ;
tree . Quoted = function ( b , a ) { this . value = b ; this . content = a } ; tree . Quoted . prototype = { toCSS : function ( ) { return this . value } , eval : function ( ) { return this } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ; tree . Rule = function ( b , a , e ) { this . name = b ; this . value = a instanceof tree . Value ? a : new tree . Value ( [ a ] ) ; this . index = e ; this . variable = b . charAt ( 0 ) === "@" ? true : false } ; tree . Rule . prototype . toCSS = function ( ) { return this . variable ? "" : this . name + ": " + this . value . toCSS ( ) + ";" } ;
tree . Rule . prototype . eval = function ( b ) { return new tree . Rule ( this . name , this . value . eval ( b ) ) } ; tree . Value = function ( b ) { this . value = b ; this . is = "value" } ; tree . Value . prototype = { eval : function ( b ) { return this . value . length === 1 ? this . value [ 0 ] . eval ( b ) : new tree . Value ( this . value . map ( function ( a ) { return a . eval ( b ) } ) ) } , toCSS : function ( ) { return this . value . map ( function ( b ) { return b . toCSS ( ) } ) . join ( ", " ) } } ; tree . Shorthand = function ( b , a ) { this . a = b ; this . b = a } ;
tree . Shorthand . prototype = { toCSS : function ( b ) { return this . a . toCSS ( b ) + "/" + this . b . toCSS ( b ) } , eval : function ( ) { return this } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ; tree . Ruleset = function ( b , a ) { this . selectors = b ; this . rules = a ; this . _lookups = { } } ;
tree . Ruleset . prototype = { eval : function ( ) { return this } , evalRules : function ( b ) { var a = [ ] ; this . rules . forEach ( function ( e ) { if ( e . evalRules ) a . push ( e . evalRules ( b ) ) ; else e instanceof tree . mixin . Call ? Array . prototype . push . apply ( a , e . eval ( b ) ) : a . push ( e . eval ( b ) ) } ) ; this . rules = a ; return this } , match : function ( b ) { return ! b || b . length === 0 } , variable : function ( b ) { return this . _variables ? this . _variables [ b ] : ( this . _variables = this . rules . reduce ( function ( a , e ) { if ( e instanceof tree . Rule && e . variable === true ) a [ e . name ] = e ; return a } , { } ) ) [ b ] } ,
rulesets : function ( ) { return this . _rulesets ? this . _rulesets : ( this . _rulesets = this . rules . filter ( function ( b ) { if ( b instanceof tree . Ruleset || b instanceof tree . mixin . Definition ) return b } ) ) } , find : function ( b , a ) { a = a || this ; var e = [ ] , f = b . toCSS ( ) ; if ( f in this . _lookups ) return this . _lookups [ f ] ; this . rulesets ( ) . forEach ( function ( g) { if ( g !== a ) for ( var k = 0 ; k < g . selectors . length ; k ++ ) if ( b . match ( g . selectors [ k ] ) ) { b . elements . length > 1 ? Array . prototype . push . apply ( e , g . find ( new tree . Selector ( b . elements . slice ( 1 ) ) , a ) ) : e . push ( g ) ; break } } ) ;
return this . _lookups [ f ] = e } , toCSS : function ( b , a ) { var e = [ ] , f = [ ] , g= [ ] , k = [ ] ; if ( this . root ) { b = [ ] ; a = { frames : [ ] } ; for ( var l= 0 ; l < this . rules . length ; l ++ ) this . rules [ l ] instanceof tree . Import && Array . prototype . splice . apply ( this . rules , [ l , 1 ] . concat ( this . rules [ l ] . eval ( a ) ) ) } else if ( b . length === 0 ) k = this . selectors . map ( function ( r) { return [ r ] } ) ; else for ( l = 0 ; l < this . selectors . length ; l ++ ) for ( var n = 0 ; n < b . length ; n ++ ) k . push ( b [ n ] . concat ( [ this . selectors [ l ] ] ) ) ; a . frames . unshift ( this ) ; for ( l= 0 ; l < this . rules . length ; l ++ ) this . rules [ l ] instanceof
tree . mixin . Call && Array . prototype . splice . apply ( this . rules , [ l , 1 ] . concat ( this . rules [ l ] . eval ( a ) ) ) ; for ( l= 0 ; l < this . rules . length ; l ++ ) { b = this . rules [ l ] ; if ( b instanceof tree . Directive ) g . push ( b . eval ( a ) . toCSS ( k , a ) ) ; else if ( b . rules ) g. push ( b . toCSS ( k , a ) ) ; else if ( b instanceof tree . Comment ) this . root ? g . push ( b . toCSS ( ) ) : f . push ( b . toCSS ( ) ) ; else if ( b . toCSS && ! b . variable ) f . push ( b . eval ( a ) . toCSS ( ) ) ; else b . value && ! b . variable && f . push ( b . value . toString ( ) ) } g= g . join ( "" ) ; if ( this . root ) e . push ( f . join ( "\n" ) ) ; else if ( f . length > 0 ) { k= k . map ( function ( r ) { return r . map ( function ( j ) { return j . toCSS ( ) } ) . join ( "" ) . trim ( ) } ) . join ( k . length >
3 ? ",\n" : ", " ) ; e . push ( k , " {\n " + f . join ( "\n " ) + "\n}\n" ) } e . push ( g ) ; a . frames . shift ( ) ; return e . join ( "" ) } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ; tree . Selector = function ( b ) { this . elements = b ; if ( this . elements [ 0 ] . combinator . value === "" ) this . elements [ 0 ] . combinator . value = " " } ; tree . Selector . prototype . match = function ( b ) { return this . elements [ 0 ] . value === b . elements [ 0 ] . value ? true : false } ;
rulesets : function ( ) { return this . _rulesets ? this . _rulesets : ( this . _rulesets = this . rules . filter ( function ( b ) { if ( b instanceof tree . Ruleset || b instanceof tree . mixin . Definition ) return b } ) ) } , find : function ( b , a ) { a = a || this ; var e = [ ] , f = b . toCSS ( ) ; if ( f in this . _lookups ) return this . _lookups [ f ] ; this . rulesets ( ) . forEach ( function ( h) { if ( h !== a ) for ( var l = 0 ; l < h . selectors . length ; l ++ ) if ( b . match ( h . selectors [ l ] ) ) { b . elements . length > 1 ? Array . prototype . push . apply ( e , h . find ( new tree . Selector ( b . elements . slice ( 1 ) ) , a ) ) : e . push ( h ) ; break } } ) ;
return this . _lookups [ f ] = e } , toCSS : function ( b , a ) { var e = [ ] , f = [ ] , h= [ ] , l = [ ] ; if ( this . root ) { b = [ ] ; a = { frames : [ ] } ; for ( var k= 0 ; k < this . rules . length ; k ++ ) this . rules [ k ] instanceof tree . Import && Array . prototype . splice . apply ( this . rules , [ k , 1 ] . concat ( this . rules [ k ] . eval ( a ) ) ) } else if ( b . length === 0 ) l = this . selectors . map ( function ( q) { return [ q ] } ) ; else for ( k = 0 ; k < this . selectors . length ; k ++ ) for ( var n = 0 ; n < b . length ; n ++ ) l . push ( b [ n ] . concat ( [ this . selectors [ k ] ] ) ) ; a . frames . unshift ( this ) ; for ( k= 0 ; k < this . rules . length ; k ++ ) this . rules [ k ] instanceof
tree . mixin . Call && Array . prototype . splice . apply ( this . rules , [ k , 1 ] . concat ( this . rules [ k ] . eval ( a ) ) ) ; for ( k= 0 ; k < this . rules . length ; k ++ ) { b = this . rules [ k ] ; if ( b instanceof tree . Directive ) h . push ( b . eval ( a ) . toCSS ( l , a ) ) ; else if ( b . rules ) h. push ( b . toCSS ( l , a ) ) ; else if ( b instanceof tree . Comment ) this . root ? h . push ( b . toCSS ( ) ) : f . push ( b . toCSS ( ) ) ; else if ( b . toCSS && ! b . variable ) f . push ( b . eval ( a ) . toCSS ( ) ) ; else b . value && ! b . variable && f . push ( b . value . toString ( ) ) } h= h . join ( "" ) ; if ( this . root ) e . push ( f . join ( "\n" ) ) ; else if ( f . length > 0 ) { l= l . map ( function ( q ) { return q . map ( function ( s ) { return s . toCSS ( ) } ) . join ( "" ) . trim ( ) } ) . join ( l . length >
3 ? ",\n" : ", " ) ; e . push ( l , " {\n " + f . join ( "\n " ) + "\n}\n" ) } e . push ( h ) ; a . frames . shift ( ) ; return e . join ( "" ) } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ; tree . Selector = function ( b ) { this . elements = b ; if ( this . elements [ 0 ] . combinator . value === "" ) this . elements [ 0 ] . combinator . value = " " } ; tree . Selector . prototype . match = function ( b ) { return this . elements [ 0 ] . value === b . elements [ 0 ] . value ? true : false } ;
tree . Selector . prototype . toCSS = function ( ) { if ( this . _css ) return this . _css ; return this . _css = this . elements . map ( function ( b ) { return typeof b === "string" ? " " + b . trim ( ) : b . toCSS ( ) } ) . join ( "" ) } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ; tree . URL = function ( b ) { this . value = b } ; tree . URL . prototype = { toCSS : function ( ) { return "url(" + this . value . toCSS ( ) + ")" } , eval : function ( ) { return this } } ; if ( typeof require !== "undefined" ) tree = require ( "less/tree" ) ; tree . Variable = function ( b , a ) { this . name = b ; this . index = a } ;
tree . Variable . prototype = { eval : function ( b ) { var a , e , f = this . name ; if ( a = tree . find ( b . frames , function ( g) { if ( e = g . variable ( f ) ) return e . value . eval ( b ) } ) ) return a ; else throw { message : "variable " + this . name + " is undefined" , index : this . index } ; } } ; if ( typeof require !== "undefined" ) tree = exports ; tree . find = function ( b , a ) { for ( var e = 0 , f ; e < b . length ; e ++ ) if ( f = a . call ( b , b [ e ] ) ) return f ; return null } ;
( function ( ) { function b ( j ) { for( var p = 0 ; p < n . length ; p ++ ) a ( n [ p ] , j ) } function a ( j , p ) { var q = typeof localStorage !== "undefined" && localStorage . getItem ( j . href ) , m= q && JSON . parse ( q ) ; f ( j . href , function ( d , h ) { if ( m && ( new Date ( h ) ) . valueOf ( ) === ( new Date ( m . timestamp ) ) . valueOf ( ) ) { e( m . css , j ) ; p ( null , j , { local : true } ) } else ( new less . Parser ( { optimization : 3 } ) ) . parse ( d, function ( i , o ) { if ( i ) return l ( i , j . href ) ; try { p ( o , j , { local : false , lastModified : h } ) } catch ( s ) { l ( s , j . href ) } } ) } , function ( d ) { throw new Error ( "Couldn't load " + j . href + " (" + d +
")" ) ; } ) } function e ( j , p , q ) { var m = document . createElement ( "style" ) ; m . type = "text/css" ; m . media = "screen" ; m . title = "less-sheet" ; if ( p ) { m . title = p . title || p . href . match ( /(?:^|\/)([-\w]+)\.[a-z]+$/i ) [ 1 ] ; q&& typeof localStorage !== "undefined" && localStorage . setItem ( p . href , JSON . stringify ( { timestamp : q , css : j } ) ) } if ( m . styleSheet ) m . styleSheet . cssText = j ; else m . appendChild ( document . createTextNode ( j ) ) ; document . getElementsByTagName ( "head" ) [ 0 ] . appendChild ( m) } function f ( j , p , q ) { var m = g ( ) ; if ( window . location . protocol === "file:" ) { m . open ( "GET" ,
j , false ) ; m. send ( null ) ; m . status === 0 ? p ( m . responseText ) : q ( m . status ) } else { m . open ( "GET" , j , true ) ; m . onreadystatechange = function ( ) { if ( m. readyState == 4 ) if ( m . status >= 200 && m . status < 300 ) p ( m . responseText , m . getResponseHeader ( "Last-Modified" ) ) ; else typeof q === "function" && q ( m . status ) } ; m . send ( null ) } } function g ( ) { if ( window . XMLHttpRequest ) return new XMLHttpRequest ; else try { return new ActiveXObject ( "MSXML2.XMLHTTP.3.0" ) } catch ( j ) { k ( "less: browser doesn't support AJAX." ) ; return null } } function k ( j ) { less . env == "development" &&
typeof console !== "undefined" && console . log ( j ) } function l ( j , p ) { var q = document . createElement ( "div" ) , m ; q . id = "less-error-message" ; q . innerHTML = "<h3>" + ( j . message || "There is an error in your .less file" ) + '</h3><p><a href="' + p + '">' + p + "</a> on line " + j . line + ", column " + ( j . column + 1 ) + ":</p>" + '<div>\n<pre class="ctx"><span>[-1]</span>{0}</pre>\n<pre><span>[0]</span>{current}</pre>\n<pre class="ctx"><span>[1]</span>{2}</pre>\n</div>' . replace ( /\[(-?\d)\]/g , function ( d , h ) { return j . line + parseInt ( h ) } ) . replace ( /\{(\d)\}/g ,
function ( d , h ) { return j . extract [ parseInt ( h ) ] } ) . replace ( /\{current\}/ , j . extract [ 1 ] . slice ( 0 , j . column ) + '<span class="error">' + j . extract [ 1 ] . slice ( j . column ) + "</span>" ) ; e ( "#less-error-message span {margin-right: 15px;}#less-error-message pre {color: #ee4444;padding: 4px 0;margin: 0;}#less-error-message pre.ctx {color: #dd7777;}#less-error-message h3 {padding: 15px 0 5px 0;margin: 0;}#less-error-message a {color: #10a}#less-error-message .error {color: red;font-weight: bold;padding-bottom: 2px;border-bottom: 1px dashed red;}" );
q . style . cssText = "font-family: Arial, sans-serif;border: 1px solid #e00;background-color: #eee;border-radius: 5px;color: #e00;padding: 15px;margin-bottom: 15px" ; if ( less . env == "development" ) m = setInterval ( function ( ) { if ( document . body ) { document . body . insertBefore ( q , document . body . childNodes [ 0 ] ) ; clearInterval ( m) } } , 10 ) } var n = [ ] ; less . env = location . hostname == "127.0.0.1" || location . hostname == "0.0.0.0" || location . hostname == "localhost" || location . protocol == "file:" ? "development" : "production" ; var r = setInterval ( function ( ) { if ( document . body ) { if ( ! document . querySelectorAll &&
typeof jQuery === "undefined" ) k ( "No selector method found" ) ; else n = ( document . querySelectorAll || jQuery ) . call ( document , 'link[rel="stylesheet/less"]' ) ; clearInterval ( r) ; b ( function ( j , p , q ) { e ( j . toCSS ( ) , p , q . lastModified ) ; q . local ? k ( "less: loading " + p . href + " from local storage." ) : k ( "less: parsed " + p . href + " successfully." ) } ) } } , 10 ) ; if ( less . env === "development" ) refreshTimer = setInterval ( function ( ) { /!refresh/ . test ( location . hash ) && b ( function ( j , p , q ) { e ( j . toCSS ( ) , p , q ) } ) } , 1E3 ) ; less . Parser . importer = function ( j , p , q ) { a ( { href : j ,
title : j } , function ( m) { q ( m ) } ) } } ) ( ) ;
tree . Variable . prototype = { eval : function ( b ) { var a , e , f = this . name ; if ( a = tree . find ( b . frames , function ( h) { if ( e = h . variable ( f ) ) return e . value . eval ( b ) } ) ) return a ; else throw { message : "variable " + this . name + " is undefined" , index : this . index } ; } } ; if ( typeof require !== "undefined" ) tree = exports ; tree . find = function ( b , a ) { for ( var e = 0 , f ; e < b . length ; e ++ ) if ( f = a . call ( b , b [ e ] ) ) return f ; return null } ;
( function ( ) { function b ( j ) { if( ! document . querySelectorAll && typeof jQuery === "undefined" ) k ( "No selector method found" ) ; else return ( document . querySelectorAll || jQuery ) . call ( document , j ) } function a ( j ) { for ( var o = 0 ; o < q . length ; o ++ ) e ( q [ o ] , j ) } function e ( j , o ) { var p = typeof localStorage !== "undefined" && localStorage . getItem ( j . href ) , d= p && JSON . parse ( p ) ; h ( j . href , function ( g , i ) { if ( d && ( new Date ( i ) ) . valueOf ( ) === ( new Date ( d . timestamp ) ) . valueOf ( ) ) { f( d . css , j ) ; o ( null , j , { local : true } ) } else ( new less . Parser ( { optimization : 3 } ) ) . parse ( g,
function ( m , r ) { if ( m ) return n ( m , j . href ) ; try { o ( r , j , { local : false , lastModified : i } ) } catch ( u ) { n ( u , j . href ) } } ) } , function ( g ) { throw new Error ( "Couldn't load " + j . href + " (" + g + ")" ) ; } ) } function f ( j , o , p ) { var d , g , i ; g = o . title || o . href . match ( /(?:^|\/)([-\w]+)\.[a-z]+$/i ) [ 1 ] ; i= "-less-" + g ; if ( ( d = document . getElementById ( i ) ) === null ) { d = document . createElement ( "style" ) ; d . type = "text/css" ; d . media = "screen" ; d . title = g ; d . id = i ; document . getElementsByTagName ( "head" ) [ 0 ] . appendChild ( d) } if ( d . styleSheet ) try { d . styleSheet . cssText = j } catch ( m ) { throw new Error ( "Couldn't reassign styleSheet.cssText." ) ;
} else { d . childNodes . length > 0 && d . removeChild ( d . childNodes [ 0 ] ) ; d . appendChild ( document . createTextNode ( j ) ) } p && typeof localStorage !== "undefined" && localStorage . setItem ( o . href , JSON . stringify ( { timestamp : p , css : j } ) ) } function h ( j , o , p ) { var d = l ( ) ; if ( window . location . protocol === "file:" ) { d . open ( "GET" , j , false ) ; d. send ( null ) ; d . status === 0 ? o ( d . responseText ) : p ( d . status ) } else { d . open ( "GET" , j , true ) ; d . onreadystatechange = function ( ) { if ( d. readyState == 4 ) if ( d . status >= 200 && d . status < 300 ) o ( d . responseText , d . getResponseHeader ( "Last-Modified" ) ) ;
else typeof p === "function" && p ( d . status ) } ; d . send ( null ) } } function l ( ) { if ( window . XMLHttpRequest ) return new XMLHttpRequest ; else try { return new ActiveXObject ( "MSXML2.XMLHTTP.3.0" ) } catch ( j ) { k ( "less: browser doesn't support AJAX." ) ; return null } } function k ( j ) { less . env == "development" && typeof console !== "undefined" && console . log ( j ) } function n ( j , o ) { if ( ! document . getElementById ( "less-error-message" ) ) { var p = document . createElement ( "div" ) , d ; p . id = "less-error-message" ; p . innerHTML = "<h3>" + ( j . message || "There is an error in your .less file" ) +
'</h3><p><a href="' + o + '">' + o + "</a> on line " + j . line + ", column " + ( j . column + 1 ) + ":</p>" + '<div>\n<pre class="ctx"><span>[-1]</span>{0}</pre>\n<pre><span>[0]</span>{current}</pre>\n<pre class="ctx"><span>[1]</span>{2}</pre>\n</div>' . replace ( /\[(-?\d)\]/g , function ( g , i ) { return j . line + parseInt ( i ) } ) . replace ( /\{(\d)\}/g , function ( g , i ) { return j . extract [ parseInt ( i ) ] } ) . replace ( /\{current\}/ , j . extract [ 1 ] . slice ( 0 , j . column ) + '<span class="error">' + j . extract [ 1 ] . slice ( j . column ) + "</span>" ) ; f ( "#less-error-message span {margin-right: 15px;}#less-error-message pre {color: #ee4444;padding: 4px 0;margin: 0;}#less-error-message pre.ctx {color: #dd7777;}#less-error-message h3 {padding: 15px 0 5px 0;margin: 0;}#less-error-message a {color: #10a}#less-error-message .error {color: red;font-weight: bold;padding-bottom: 2px;border-bottom: 1px dashed red;}" ,
{ title : "error-message" } ) ; p . style . cssText = "font-family: Arial, sans-serif;border: 1px solid #e00;background-color: #eee;border-radius: 5px;color: #e00;padding: 15px;margin-bottom: 15px" ; if ( less . env == "development" ) d = setInterval ( function ( ) { if ( document . body ) { document . body . insertBefore ( p , document . body . childNodes [ 0 ] ) ; clearInterval ( d) } } , 10 ) } } var q = [ ] ; less . env = location . hostname == "127.0.0.1" || location . hostname == "0.0.0.0" || location . hostname == "localhost" || location . protocol == "file:" ? "development" : "production" ;
less . watch = function ( ) { return this . watchMode = true } ; less . unwatch = function ( ) { return this . watchMode = false } ; var s = setInterval ( function ( ) { if ( document . body ) { q = b ( 'link[rel="stylesheet/less"]' ) ; clearInterval ( s) ; a ( function ( j , o , p ) { if ( p . local ) k ( "less: loading " + o . href + " from local storage." ) ; else { f ( j . toCSS ( ) , o , p . lastModified ) ; k ( "less: parsed " + o . href + " successfully." ) } } ) } } , 10 ) ; if ( less . env === "development" && /!refresh/ . test ( location . hash ) ) less . watchMode = true ; if ( less . env === "development" ) refreshTimer = setInterval ( function ( ) { less . watchMode &&
a ( function ( j , o , p ) { j && f ( j . toCSS ( ) , o , p ) } ) } , 1E3 ) ; less . Parser . importer = function ( j , o , p ) { e ( { href : j , title : j } , function ( d) { p ( d ) } ) } } ) ( ) ;