.CodeRay{background-color:#FFF;border:1px solid #CCC;line-height:1.3em;font-size:12px;font-family:Monospace;color:#000;padding:1em 0 1em 1em}.CodeRay pre,.CodeRay code{padding:0;margin:0}div.CodeRay{padding:0}span.CodeRay{white-space:pre;border:0;padding:2px}table.CodeRay{border-collapse:collapse;width:100%;padding:2px}table.CodeRay td{padding:1em .5em;vertical-align:top}.CodeRay .line-numbers,.CodeRay .no{border:1px solid #ECECEC;margin:0 inherit;background-color:#ECECEC;color:#AAA;padding:0 7px;text-align:right}.CodeRay .line-numbers tt{font-weight:700}.CodeRay .line-numbers .highlighted{color:red}.CodeRay .line{display:block;float:left;width:100%}.CodeRay .no{padding:0 4px}.CodeRay .code{width:100%}ol.CodeRay{font-size:10pt}ol.CodeRay li{white-space:pre}.CodeRay .code pre{overflow:auto}.CodeRay .debug{color:white !important;background:blue !important}.CodeRay .attribute-name-fat{color:#00C}.CodeRay .attribute-name{color:#007}.CodeRay .annotation{color:#f08}.CodeRay .attribute-value{color:#700}.CodeRay .attribute-value-fat{color:#C00}.CodeRay .binary{color:#509;font-weight:700}.CodeRay .comment{color:#998;font-style:italic}.CodeRay .char{color:#04D}.CodeRay .ch .content{color:#04D}.CodeRay .ch .delimiter{color:#039}.CodeRay .class{color:#458;font-weight:700}.CodeRay .complex{color:#A08;font-weight:700}.CodeRay .constant{color:teal}.CodeRay .color{color:#0A0}.CodeRay .class-variable{color:#369}.CodeRay .decorator{color:#B0B}.CodeRay .definition{color:#099;font-weight:700}.CodeRay .directive{color:#088;font-weight:700}.CodeRay .delimiter{color:black}.CodeRay .doc{color:#970}.CodeRay .doc-type{color:#34b}.CodeRay .doc-string{color:#D42;font-weight:700}.CodeRay .escape{color:#666;font-weight:700}.CodeRay .entity{color:#800;font-weight:700}.CodeRay .error{color:#F00;background-color:#FAA}.CodeRay .exception{color:#C00;font-weight:700}.CodeRay .float{color:#099}.CodeRay .function{color:#900;font-weight:700}.CodeRay .global-variable{color:teal;font-weight:700}.CodeRay .hex{color:#058;font-weight:700}.CodeRay .imaginary{color:#099}.CodeRay .include{color:#B44;font-weight:700}.CodeRay .inline{color:black}.CodeRay .inline .inline{background:#ccc}.CodeRay .inline .inline .inline{background:#bbb}.CodeRay .inline .inline-delimiter{color:#D14}.CodeRay .inline-delimiter{color:#D14}.CodeRay .imaginary{color:#f00}.CodeRay .include{color:#B2B;font-weight:700}.CodeRay .instance-variable{color:teal}.CodeRay .label{color:#970;font-weight:700}.CodeRay .local-variable{color:#963}.CodeRay .octal{color:#40E;font-weight:700}.CodeRay .operator-fat{color:#000;font-weight:700}.CodeRay .predefined-constant{font-weight:700}.CodeRay .predefined{color:#369;font-weight:700}.CodeRay .preprocessor{color:#579}.CodeRay .pseudo-class{color:#00C;font-weight:700}.CodeRay .predefined-type{color:#074;font-weight:700}.CodeRay .reserved,.keyword{color:#000;font-weight:700}.CodeRay .key{color:#808}.CodeRay .key .delimiter{color:#606}.CodeRay .key .char{color:#80f}.CodeRay .value{color:#088}.CodeRay .regexp{background-color:#fff0ff}.CodeRay .regexp .content{color:#808}.CodeRay .regexp .delimiter{color:#404}.CodeRay .regexp .modifier{color:#C2C}.CodeRay .regexp .function{color:#404;font-weight:700}.CodeRay .string{color:#D20}.CodeRay .string .content{color:#D14}.CodeRay .string .char{color:#D14}.CodeRay .string .delimiter{color:#D14}.CodeRay .shell{color:#D14}.CodeRay .shell .delimiter{color:#D14}.CodeRay .symbol{color:#990073}.CodeRay .symbol .content{color:#A60}.CodeRay .symbol .delimiter{color:#630}.CodeRay .tag{color:#070}.CodeRay .tag-fat{color:#070;font-weight:700}.CodeRay .tag-special{color:#D70;font-weight:700}.CodeRay .type{color:#339;font-weight:700}.CodeRay .variable{color:#036}.CodeRay .xml-text{color:#444}.CodeRay .insert{background:#afa}.CodeRay .delete{background:#faa}.CodeRay .change{color:#aaf;background:#007}.CodeRay .head{color:#f8f;background:#505}.CodeRay .insert .insert{color:#080;font-weight:700}.CodeRay .delete .delete{color:#800;font-weight:700}.CodeRay .change .change{color:#66f}.CodeRay .head .head{color:#f4f}*{margin:0;padding:0}ul{list-style:none}a{outline:none;color:#3366cc;text-decoration:none}body{background-color:#efefe6;font-family:"Lucida Grande",Verdana,Helvetica,Arial,sans-serif;line-height:1}body #main{padding-top:40px;background-color:white;width:874px;margin:0 auto;padding-left:43px;padding-right:43px;padding-bottom:54px;margin-bottom:50px}body #main h1{font-size:36px;color:#26241d;font-weight:400;text-align:right}body #main p#author{font-size:16px;font-family:Georgia,Times,"Times New Roman",serif;color:#999999;text-align:right;margin-top:8px;margin-bottom:41px}body #main p#intro{font-size:20px;line-height:28px;font-family:Georgia,Times,"Times New Roman",serif;color:#888888;margin-top:10px;padding-bottom:24px;border-bottom:1px solid #dddddd;margin-bottom:47px}body #main .section{padding-top:0}body #main .section h2{font-size:26px;color:#3c4c6c;font-weight:400;margin-top:20px;padding-top:15px;margin-bottom:18px}body #main .section p{font-size:14px;line-height:22px;color:black;margin-top:14px;margin-bottom:15px}body #main .section p em{font-weight:700;font-style:normal}body #main .section pre{padding-top:10px;padding-bottom:12px;padding-left:17px;margin-top:18px;margin-bottom:17px;overflow:auto}body #main .section pre code{font-size:12px;line-height:18px;font-family:Monaco,"Courier New",Courier,monospace}body #main .section p.note{font-size:15px;font-style:oblique;color:#666666}body #main p#rate{font-size:15px;line-height:29px;color:black;margin-top:33px}body #main p#rate a{text-decoration:underline}