首页 技术 正文
技术 2022年11月6日
0 收藏 885 点赞 204 浏览 183825 个字

<!–
.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:before,.container:after{content:” “;display:table}.container:after{clear:both}.container:before,.container:after{content:” “;display:table}.container:after{clear:both}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-left:-15px;margin-right:-15px}.row:before,.row:after{content:” “;display:table}.row:after{clear:both}.row:before,.row:after{content:” “;display:table}.row:after{clear:both}.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:21px}.table>–>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.45;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:none}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=”col-“]{position:static;float:none;display:table-column}table td[class*=”col-“],table th[class*=”col-“]{float:none;display:table-cell}.table>thead>tr>.active,.table>tbody>tr>.active,.table>tfoot>tr>.active,.table>thead>.active>td,.table>tbody>.active>td,.table>tfoot>.active>td,.table>thead>.active>th,.table>tbody>.active>th,.table>tfoot>.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>.active:hover,.table-hover>tbody>.active:hover>td,.table-hover>tbody>.active:hover>th{background-color:#e8e8e8}.table>thead>tr>.success,.table>tbody>tr>.success,.table>tfoot>tr>.success,.table>thead>.success>td,.table>tbody>.success>td,.table>tfoot>.success>td,.table>thead>.success>th,.table>tbody>.success>th,.table>tfoot>.success>th{background-color:#dff0d8}.table-hover>tbody>tr>.success:hover,.table-hover>tbody>.success:hover>td,.table-hover>tbody>.success:hover>th{background-color:#d0e9c6}.table>thead>tr>.danger,.table>tbody>tr>.danger,.table>tfoot>tr>.danger,.table>thead>.danger>td,.table>tbody>.danger>td,.table>tfoot>.danger>td,.table>thead>.danger>th,.table>tbody>.danger>th,.table>tfoot>.danger>th{background-color:rgba(232,76,61,0.1)}.table-hover>tbody>tr>.danger:hover,.table-hover>tbody>.danger:hover>td,.table-hover>tbody>.danger:hover>th{background-color:rgba(229,55,38,0.1)}.table>thead>tr>.warning,.table>tbody>tr>.warning,.table>tfoot>tr>.warning,.table>thead>.warning>td,.table>tbody>.warning>td,.table>tfoot>.warning>td,.table>thead>.warning>th,.table>tbody>.warning>th,.table>tfoot>.warning>th{background-color:rgba(255,209,0,0.12)}.table-hover>tbody>tr>.warning:hover,.table-hover>tbody>.warning:hover>td,.table-hover>tbody>.warning:hover>th{background-color:rgba(230,188,0,0.12)}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type=”search”]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=”radio”],input[type=”checkbox”]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=”file”]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type=”file”]:focus,input[type=”radio”]:focus,input[type=”checkbox”]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type=”number”]::-webkit-outer-spin-button,input[type=”number”]::-webkit-inner-spin-button{height:auto}output{display:block;padding-top:7px;font-size:15px;line-height:1.45;color:#2c3f51;vertical-align:middle}.form-control{display:block;width:100%;height:42px;padding:6px 12px;font-size:15px;line-height:1.45;color:#2c3f51;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #dee6ed;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control:focus{border-color:#dee6ed;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px rgba(102, 128, 153, 0.6);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px rgba(102, 128, 153, 0.6)}.form-control:focus{border-color:rgba(25,128,230,0.5);outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px #1980e6;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px #1980e6}.form-control:-moz-placeholder{color:#d5dfe9}.form-control::-moz-placeholder{color:#d5dfe9;opacity:1}.form-control:-ms-input-placeholder{color:#d5dfe9}.form-control::-webkit-input-placeholder{color:#d5dfe9}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:none}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:21px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type=”radio”],.radio-inline input[type=”radio”],.checkbox input[type=”checkbox”],.checkbox-inline input[type=”checkbox”]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=”radio”][disabled],input[type=”checkbox”][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=”radio”],fieldset[disabled] input[type=”checkbox”],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}select.input-sm{height:31px;line-height:31px}textarea.input-sm{height:auto}.input-lg{height:48px;padding:10px 16px;font-size:19px;line-height:1.33;border-radius:6px}select.input-lg{height:48px;line-height:48px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#b89600}.has-warning .form-control{border-color:#b89600;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#856d00;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffd61f;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffd61f}.has-warning .input-group-addon{color:#b89600;border-color:#b89600;background-color:rgba(255,209,0,0.12)}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#d82a1a}.has-error .form-control{border-color:#d82a1a;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#ab2114;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ed766b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ed766b}.has-error .input-group-addon{color:#d82a1a;border-color:#d82a1a;background-color:rgba(232,76,61,0.1)}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#587ea4}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline select.form-control{width:auto}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.form-inline .radio input[type=”radio”],.form-inline .checkbox input[type=”checkbox”]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:28px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:” “;display:table}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:” “;display:table}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:15px;line-height:1.45;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#425e7b;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#425e7b;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#425e7b;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-default .badge{color:rgba(0,0,0,0);background-color:#fff}.btn-primary{color:#425e7b;background-color:#e4ebf1;border-color:rgba(0,128,255,0.05)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#425e7b;background-color:#cad6e2;border-color:rgba(0,97,194,0.05)}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#e4ebf1;border-color:rgba(0,128,255,0.05)}.btn-primary .badge{color:#e4ebf1;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-success{color:#364d63;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#364d63;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-success .badge{color:rgba(0,0,0,0);background-color:#fff}.btn-info{color:rgba(102,128,153,0.35);background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:rgba(102,128,153,0.35);background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-info .badge{color:rgba(0,0,0,0);background-color:#fff}.btn-link{color:#1980e6;font-weight:normal;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#0f4d8a;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:19px;line-height:1.33;border-radius:6px}.btn-sm{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=”submit”].btn-block,input[type=”reset”].btn-block,input[type=”button”].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:’Glyphicons Halflings’;src:url(‘../fonts/glyphicons-halflings-regular.eot’);src:url(‘../fonts/glyphicons-halflings-regular.eot?#iefix’) format(’embedded-opentype’),url(‘../fonts/glyphicons-halflings-regular.woff’) format(‘woff’),url(‘../fonts/glyphicons-halflings-regular.ttf’) format(‘truetype’),url(‘../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular’) format(‘svg’)}.glyphicon{position:relative;top:1px;display:inline-block;font-family:’Glyphicons Halflings’;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon:empty{width:1em}.glyphicon-asterisk:before{content:”\2a”}.glyphicon-plus:before{content:”\2b”}.glyphicon-euro:before{content:”\20ac”}.glyphicon-minus:before{content:”\2212″}.glyphicon-cloud:before{content:”\2601″}.glyphicon-envelope:before{content:”\2709″}.glyphicon-pencil:before{content:”\270f”}.glyphicon-glass:before{content:”\e001″}.glyphicon-music:before{content:”\e002″}.glyphicon-search:before{content:”\e003″}.glyphicon-heart:before{content:”\e005″}.glyphicon-star:before{content:”\e006″}.glyphicon-star-empty:before{content:”\e007″}.glyphicon-user:before{content:”\e008″}.glyphicon-film:before{content:”\e009″}.glyphicon-th-large:before{content:”\e010″}.glyphicon-th:before{content:”\e011″}.glyphicon-th-list:before{content:”\e012″}.glyphicon-ok:before{content:”\e013″}.glyphicon-remove:before{content:”\e014″}.glyphicon-zoom-in:before{content:”\e015″}.glyphicon-zoom-out:before{content:”\e016″}.glyphicon-off:before{content:”\e017″}.glyphicon-signal:before{content:”\e018″}.glyphicon-cog:before{content:”\e019″}.glyphicon-trash:before{content:”\e020″}.glyphicon-home:before{content:”\e021″}.glyphicon-file:before{content:”\e022″}.glyphicon-time:before{content:”\e023″}.glyphicon-road:before{content:”\e024″}.glyphicon-download-alt:before{content:”\e025″}.glyphicon-download:before{content:”\e026″}.glyphicon-upload:before{content:”\e027″}.glyphicon-inbox:before{content:”\e028″}.glyphicon-play-circle:before{content:”\e029″}.glyphicon-repeat:before{content:”\e030″}.glyphicon-refresh:before{content:”\e031″}.glyphicon-list-alt:before{content:”\e032″}.glyphicon-lock:before{content:”\e033″}.glyphicon-flag:before{content:”\e034″}.glyphicon-headphones:before{content:”\e035″}.glyphicon-volume-off:before{content:”\e036″}.glyphicon-volume-down:before{content:”\e037″}.glyphicon-volume-up:before{content:”\e038″}.glyphicon-qrcode:before{content:”\e039″}.glyphicon-barcode:before{content:”\e040″}.glyphicon-tag:before{content:”\e041″}.glyphicon-tags:before{content:”\e042″}.glyphicon-book:before{content:”\e043″}.glyphicon-bookmark:before{content:”\e044″}.glyphicon-print:before{content:”\e045″}.glyphicon-camera:before{content:”\e046″}.glyphicon-font:before{content:”\e047″}.glyphicon-bold:before{content:”\e048″}.glyphicon-italic:before{content:”\e049″}.glyphicon-text-height:before{content:”\e050″}.glyphicon-text-width:before{content:”\e051″}.glyphicon-align-left:before{content:”\e052″}.glyphicon-align-center:before{content:”\e053″}.glyphicon-align-right:before{content:”\e054″}.glyphicon-align-justify:before{content:”\e055″}.glyphicon-list:before{content:”\e056″}.glyphicon-indent-left:before{content:”\e057″}.glyphicon-indent-right:before{content:”\e058″}.glyphicon-facetime-video:before{content:”\e059″}.glyphicon-picture:before{content:”\e060″}.glyphicon-map-marker:before{content:”\e062″}.glyphicon-adjust:before{content:”\e063″}.glyphicon-tint:before{content:”\e064″}.glyphicon-edit:before{content:”\e065″}.glyphicon-share:before{content:”\e066″}.glyphicon-check:before{content:”\e067″}.glyphicon-move:before{content:”\e068″}.glyphicon-step-backward:before{content:”\e069″}.glyphicon-fast-backward:before{content:”\e070″}.glyphicon-backward:before{content:”\e071″}.glyphicon-play:before{content:”\e072″}.glyphicon-pause:before{content:”\e073″}.glyphicon-stop:before{content:”\e074″}.glyphicon-forward:before{content:”\e075″}.glyphicon-fast-forward:before{content:”\e076″}.glyphicon-step-forward:before{content:”\e077″}.glyphicon-eject:before{content:”\e078″}.glyphicon-chevron-left:before{content:”\e079″}.glyphicon-chevron-right:before{content:”\e080″}.glyphicon-plus-sign:before{content:”\e081″}.glyphicon-minus-sign:before{content:”\e082″}.glyphicon-remove-sign:before{content:”\e083″}.glyphicon-ok-sign:before{content:”\e084″}.glyphicon-question-sign:before{content:”\e085″}.glyphicon-info-sign:before{content:”\e086″}.glyphicon-screenshot:before{content:”\e087″}.glyphicon-remove-circle:before{content:”\e088″}.glyphicon-ok-circle:before{content:”\e089″}.glyphicon-ban-circle:before{content:”\e090″}.glyphicon-arrow-left:before{content:”\e091″}.glyphicon-arrow-right:before{content:”\e092″}.glyphicon-arrow-up:before{content:”\e093″}.glyphicon-arrow-down:before{content:”\e094″}.glyphicon-share-alt:before{content:”\e095″}.glyphicon-resize-full:before{content:”\e096″}.glyphicon-resize-small:before{content:”\e097″}.glyphicon-exclamation-sign:before{content:”\e101″}.glyphicon-gift:before{content:”\e102″}.glyphicon-leaf:before{content:”\e103″}.glyphicon-fire:before{content:”\e104″}.glyphicon-eye-open:before{content:”\e105″}.glyphicon-eye-close:before{content:”\e106″}.glyphicon-warning-sign:before{content:”\e107″}.glyphicon-plane:before{content:”\e108″}.glyphicon-calendar:before{content:”\e109″}.glyphicon-random:before{content:”\e110″}.glyphicon-comment:before{content:”\e111″}.glyphicon-magnet:before{content:”\e112″}.glyphicon-chevron-up:before{content:”\e113″}.glyphicon-chevron-down:before{content:”\e114″}.glyphicon-retweet:before{content:”\e115″}.glyphicon-shopping-cart:before{content:”\e116″}.glyphicon-folder-close:before{content:”\e117″}.glyphicon-folder-open:before{content:”\e118″}.glyphicon-resize-vertical:before{content:”\e119″}.glyphicon-resize-horizontal:before{content:”\e120″}.glyphicon-hdd:before{content:”\e121″}.glyphicon-bullhorn:before{content:”\e122″}.glyphicon-bell:before{content:”\e123″}.glyphicon-certificate:before{content:”\e124″}.glyphicon-thumbs-up:before{content:”\e125″}.glyphicon-thumbs-down:before{content:”\e126″}.glyphicon-hand-right:before{content:”\e127″}.glyphicon-hand-left:before{content:”\e128″}.glyphicon-hand-up:before{content:”\e129″}.glyphicon-hand-down:before{content:”\e130″}.glyphicon-circle-arrow-right:before{content:”\e131″}.glyphicon-circle-arrow-left:before{content:”\e132″}.glyphicon-circle-arrow-up:before{content:”\e133″}.glyphicon-circle-arrow-down:before{content:”\e134″}.glyphicon-globe:before{content:”\e135″}.glyphicon-wrench:before{content:”\e136″}.glyphicon-tasks:before{content:”\e137″}.glyphicon-filter:before{content:”\e138″}.glyphicon-briefcase:before{content:”\e139″}.glyphicon-fullscreen:before{content:”\e140″}.glyphicon-dashboard:before{content:”\e141″}.glyphicon-paperclip:before{content:”\e142″}.glyphicon-heart-empty:before{content:”\e143″}.glyphicon-link:before{content:”\e144″}.glyphicon-phone:before{content:”\e145″}.glyphicon-pushpin:before{content:”\e146″}.glyphicon-usd:before{content:”\e148″}.glyphicon-gbp:before{content:”\e149″}.glyphicon-sort:before{content:”\e150″}.glyphicon-sort-by-alphabet:before{content:”\e151″}.glyphicon-sort-by-alphabet-alt:before{content:”\e152″}.glyphicon-sort-by-order:before{content:”\e153″}.glyphicon-sort-by-order-alt:before{content:”\e154″}.glyphicon-sort-by-attributes:before{content:”\e155″}.glyphicon-sort-by-attributes-alt:before{content:”\e156″}.glyphicon-unchecked:before{content:”\e157″}.glyphicon-expand:before{content:”\e158″}.glyphicon-collapse-down:before{content:”\e159″}.glyphicon-collapse-up:before{content:”\e160″}.glyphicon-log-in:before{content:”\e161″}.glyphicon-flash:before{content:”\e162″}.glyphicon-log-out:before{content:”\e163″}.glyphicon-new-window:before{content:”\e164″}.glyphicon-record:before{content:”\e165″}.glyphicon-save:before{content:”\e166″}.glyphicon-open:before{content:”\e167″}.glyphicon-saved:before{content:”\e168″}.glyphicon-import:before{content:”\e169″}.glyphicon-export:before{content:”\e170″}.glyphicon-send:before{content:”\e171″}.glyphicon-floppy-disk:before{content:”\e172″}.glyphicon-floppy-saved:before{content:”\e173″}.glyphicon-floppy-remove:before{content:”\e174″}.glyphicon-floppy-save:before{content:”\e175″}.glyphicon-floppy-open:before{content:”\e176″}.glyphicon-credit-card:before{content:”\e177″}.glyphicon-transfer:before{content:”\e178″}.glyphicon-cutlery:before{content:”\e179″}.glyphicon-header:before{content:”\e180″}.glyphicon-compressed:before{content:”\e181″}.glyphicon-earphone:before{content:”\e182″}.glyphicon-phone-alt:before{content:”\e183″}.glyphicon-tower:before{content:”\e184″}.glyphicon-stats:before{content:”\e185″}.glyphicon-sd-video:before{content:”\e186″}.glyphicon-hd-video:before{content:”\e187″}.glyphicon-subtitles:before{content:”\e188″}.glyphicon-sound-stereo:before{content:”\e189″}.glyphicon-sound-dolby:before{content:”\e190″}.glyphicon-sound-5-1:before{content:”\e191″}.glyphicon-sound-6-1:before{content:”\e192″}.glyphicon-sound-7-1:before{content:”\e193″}.glyphicon-copyright-mark:before{content:”\e194″}.glyphicon-registration-mark:before{content:”\e195″}.glyphicon-cloud-download:before{content:”\e197″}.glyphicon-cloud-upload:before{content:”\e198″}.glyphicon-tree-conifer:before{content:”\e199″}.glyphicon-tree-deciduous:before{content:”\e200″}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;background-color:#fff;border:1px solid #ccc;border:1px solid #dee6ed;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#dee6ed}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.45;color:#2c3f51;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#2d4053;background-color:rgba(102,128,153,0.04)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#d5dfe9}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.45;color:rgba(129,158,187,0.6)}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:””}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:none}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{content:” “;display:table}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{content:” “;display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:19px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:” “;display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:” “;display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=”buttons”]>.btn>input[type=”radio”],[data-toggle=”buttons”]>.btn>input[type=”checkbox”]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=”col-“]{float:none;padding-left:0;padding-right:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:48px;padding:10px 16px;font-size:19px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:48px;line-height:48px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:31px;line-height:31px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:15px;font-weight:normal;line-height:1;color:#2c3f51;text-align:center;background-color:none;border:1px solid #dee6ed;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:13px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:19px;border-radius:6px}.input-group-addon input[type=”radio”],.input-group-addon input[type=”checkbox”]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn:first-child>.btn{margin-right:-1px}.input-group-btn:last-child>.btn{margin-left:-1px}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{content:” “;display:table}.nav:after{clear:both}.nav:before,.nav:after{content:” “;display:table}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:rgba(102,128,153,0.04)}.nav>li.disabled>a{color:#d5dfe9}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#d5dfe9;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:rgba(102,128,153,0.04);border-color:#1980e6}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid rgba(0,0,0,0)}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.45;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:none;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:none}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:none}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:21px;border:1px solid transparent}.navbar:before,.navbar:after{content:” “;display:table}.navbar:after{clear:both}.navbar:before,.navbar:after{content:” “;display:table}.navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{content:” “;display:table}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{content:” “;display:table}.navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{content:” “;display:table}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{content:” “;display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:14.5px 15px;font-size:19px;line-height:21px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.25px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:14.5px;padding-bottom:14.5px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:4px;margin-bottom:4px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form select.form-control{width:auto}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.navbar-form .radio input[type=”radio”],.navbar-form .checkbox input[type=”checkbox”]{float:none;margin-left:0}}@media (min-width:768px){.navbar-form .col-sm-1{width:8.33333333% !important}.navbar-form .col-sm-2{width:16.66666667% !important}.navbar-form .col-sm-3{width:25% !important}.navbar-form .col-sm-4{width:33.33333333% !important}.navbar-form .col-sm-5{width:41.66666667% !important}.navbar-form .col-sm-6{width:50% !important}.navbar-form .col-sm-7{width:58.33333333% !important}.navbar-form .col-sm-8{width:66.66666667% !important}.navbar-form .col-sm-9{width:75% !important}.navbar-form .col-sm-10{width:83.33333333% !important}.navbar-form .col-sm-11{width:91.66666667% !important}.navbar-form .col-sm-12{width:100% !important}}.navbar-form *{float:none}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0}.navbar-btn{margin-top:4px;margin-bottom:4px}.navbar-btn.btn-sm{margin-top:9.5px;margin-bottom:9.5px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:14.5px;margin-bottom:14.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#e4ebf1;border-color:#cfdae5}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#cfdae5}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#cfdae5}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#cfdae5;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#cfdae5}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:”/\00a0″;padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.45;text-decoration:none;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:none}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:19px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:13px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager:before,.pager:after{content:” “;display:table}.pager:after{clear:both}.pager:before,.pager:after{content:” “;display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:none}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#ebc000}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#b89600}.label-danger{background-color:#e63b2b}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c62717}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#1980e6;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:23px;font-weight:200;line-height:2.175;color:inherit;background-color:none}.jumbotron h1,.jumbotron .h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:67.5px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.45;background-color:none;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#1980e6}.thumbnail .caption{padding:9px;color:#2c3f51}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:rgba(255,209,0,0.12);border-color:rgba(255,209,0,0.24);color:#b89600}.alert-warning hr{border-top-color:rgba(230,188,0,0.24)}.alert-warning .alert-link{color:#856d00}.alert-danger{background-color:rgba(232,76,61,0.1);border-color:rgba(232,76,61,0.15);color:#d82a1a}.alert-danger hr{border-top-color:rgba(229,55,38,0.15)}.alert-danger .alert-link{color:#ab2114}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:13px;line-height:21px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#f6f7f9;border:1px solid rgba(0,0,0,0)}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#eee}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#4b5666}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#2d4053;background-color:#e4ebf1;border-color:rgba(0,128,255,0.05)}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#fff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:” “;display:table}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{content:” “;display:table}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child th,.panel>.table>tbody:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:last-child>th,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:last-child>td,.panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:rgba(255,209,0,0.24)}.panel-warning>.panel-heading{color:#b89600;background-color:rgba(255,209,0,0.12);border-color:rgba(255,209,0,0.24)}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:rgba(255,209,0,0.24)}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:rgba(255,209,0,0.24)}.panel-danger{border-color:rgba(232,76,61,0.15)}.panel-danger>.panel-heading{color:#d82a1a;background-color:rgba(232,76,61,0.1);border-color:rgba(232,76,61,0.15)}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:rgba(232,76,61,0.15)}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:rgba(232,76,61,0.15)}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:22.5px;font-weight:bold;line-height:1;color:#2c3f51;text-shadow:0 1px 0 #fff;opacity:.2;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=20);filter:alpha(opacity=20)}.close:hover,.close:focus{color:#2c3f51;text-decoration:none;cursor:pointer;opacity:.5;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.modal-dialog{position:relative;width:auto;margin:10px;z-index:1050}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid #dee6ed;border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#73808c}.modal-backdrop.fade{opacity:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #ebf0f4;min-height:16.45px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.45}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #ebf0f4}.modal-footer:before,.modal-footer:after{content:” “;display:table}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{content:” “;display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:13px;line-height:1.4;opacity:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);filter:alpha(opacity=0)}.tooltip.in{opacity:.9;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=90);filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:250px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#475160;background-clip:padding-box;border:1px solid #ccc;border:1px solid #dee6ed;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:15px;font-weight:normal;line-height:18px;background-color:rgba(0,0,0,0);border-bottom:1px solid rgba(0,0,0,0);border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:””}.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:#dee6ed;bottom:-11px}.popover.top .arrow:after{content:” “;bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#475160}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:#dee6ed}.popover.right .arrow:after{content:” “;left:1px;bottom:-10px;border-left-width:0;border-right-color:#475160}.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:#dee6ed;top:-11px}.popover.bottom .arrow:after{content:” “;top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#475160}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:#dee6ed}.popover.left .arrow:after{content:” “;right:1px;border-right-width:0;border-left-color:#475160;bottom:-10px}.clearfix:before,.clearfix:after{content:” “;display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@font-face{font-family:’fontello’;src:url(‘../font/fontello.eot?70892477’);src:url(‘../font/fontello.eot?70892477#iefix’) format(’embedded-opentype’),url(‘../font/fontello.woff?70892477’) format(‘woff’),url(‘../font/fontello.ttf?70892477’) format(‘truetype’),url(‘../font/fontello.svg?70892477#fontello’) format(‘svg’);font-weight:normal;font-style:normal}[class^=”icon-“]:before,[class*=” icon-“]:before{font-family:”fontello”;font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-glass:before{content:’\e800′}.icon-resize-full-1:before{content:’\e801′}.icon-search:before{content:’\e802′}.icon-mail:before{content:’\e803′}.icon-mail-alt:before{content:’\e804′}.icon-heart:before{content:’\e805′}.icon-heart-empty:before{content:’\e806′}.icon-star:before{content:’\e807′}.icon-star-empty:before{content:’\e808′}.icon-star-half:before{content:’\e809′}.icon-star-half-alt:before{content:’\e80a’}.icon-user:before{content:’\e80b’}.icon-users:before{content:’\e80c’}.icon-male:before{content:’\e80d’}.icon-female:before{content:’\e80e’}.icon-video:before{content:’\e80f’}.icon-videocam:before{content:’\e810′}.icon-picture:before{content:’\e811′}.icon-camera:before{content:’\e812′}.icon-camera-alt:before{content:’\e813′}.icon-th-large:before{content:’\e814′}.icon-th:before{content:’\e815′}.icon-th-list:before{content:’\e816′}.icon-ok:before{content:’\e817′}.icon-ok-circled:before{content:’\e818′}.icon-ok-circled2:before{content:’\e819′}.icon-ok-squared:before{content:’\e81a’}.icon-cancel:before{content:’\e81b’}.icon-cancel-circled:before{content:’\e81c’}.icon-cancel-circled2:before{content:’\e81d’}.icon-plus:before{content:’\e81e’}.icon-plus-circled:before{content:’\e81f’}.icon-plus-squared:before{content:’\e820′}.icon-plus-squared-small:before{content:’\e821′}.icon-minus:before{content:’\e822′}.icon-minus-circled:before{content:’\e823′}.icon-minus-squared:before{content:’\e824′}.icon-minus-squared-alt:before{content:’\e825′}.icon-minus-squared-small:before{content:’\e826′}.icon-help:before{content:’\e827′}.icon-help-circled:before{content:’\e828′}.icon-info-circled:before{content:’\e829′}.icon-info:before{content:’\e82a’}.icon-home:before{content:’\e82b’}.icon-link:before{content:’\e82c’}.icon-unlink:before{content:’\e82d’}.icon-link-ext:before{content:’\e82e’}.icon-link-ext-alt:before{content:’\e82f’}.icon-attach:before{content:’\e830′}.icon-lock:before{content:’\e831′}.icon-lock-open:before{content:’\e832′}.icon-lock-open-alt:before{content:’\e833′}.icon-pin:before{content:’\e834′}.icon-eye:before{content:’\e835′}.icon-eye-off:before{content:’\e836′}.icon-tag:before{content:’\e837′}.icon-tags:before{content:’\e838′}.icon-bookmark:before{content:’\e839′}.icon-bookmark-empty:before{content:’\e83a’}.icon-flag:before{content:’\e83b’}.icon-flag-empty:before{content:’\e83c’}.icon-flag-checkered:before{content:’\e83d’}.icon-thumbs-up:before{content:’\e83e’}.icon-thumbs-down:before{content:’\e83f’}.icon-thumbs-up-alt:before{content:’\e840′}.icon-thumbs-down-alt:before{content:’\e841′}.icon-download:before{content:’\e842′}.icon-upload:before{content:’\e843′}.icon-download-cloud:before{content:’\e844′}.icon-upload-cloud:before{content:’\e845′}.icon-reply:before{content:’\e846′}.icon-reply-all:before{content:’\e847′}.icon-forward:before{content:’\e848′}.icon-quote-left:before{content:’\e849′}.icon-quote-right:before{content:’\e84a’}.icon-export-alt:before{content:’\e84b’}.icon-pencil:before{content:’\e84c’}.icon-pencil-squared:before{content:’\e84d’}.icon-edit:before{content:’\e84e’}.icon-print:before{content:’\e84f’}.icon-retweet:before{content:’\e850′}.icon-keyboard:before{content:’\e851′}.icon-gamepad:before{content:’\e852′}.icon-comment:before{content:’\e853′}.icon-chat:before{content:’\e854′}.icon-comment-empty:before{content:’\e855′}.icon-chat-empty:before{content:’\e856′}.icon-bell:before{content:’\e857′}.icon-bell-alt:before{content:’\e858′}.icon-attention-alt:before{content:’\e859′}.icon-attention:before{content:’\e85a’}.icon-attention-circled:before{content:’\e85b’}.icon-location:before{content:’\e85c’}.icon-direction:before{content:’\e85d’}.icon-compass:before{content:’\e85e’}.icon-doc:before{content:’\e85f’}.icon-docs:before{content:’\e860′}.icon-doc-text:before{content:’\e861′}.icon-file:before{content:’\e862′}.icon-doc-text-inv:before{content:’\e863′}.icon-folder-empty:before{content:’\e864′}.icon-folder-open-empty:before{content:’\e865′}.icon-box:before{content:’\e866′}.icon-rss:before{content:’\e867′}.icon-rss-squared:before{content:’\e868′}.icon-phone:before{content:’\e869′}.icon-phone-squared:before{content:’\e86a’}.icon-menu:before{content:’\e86b’}.icon-cog:before{content:’\e86c’}.icon-cog-alt:before{content:’\e86d’}.icon-wrench:before{content:’\e86e’}.icon-basket:before{content:’\e86f’}.icon-calendar:before{content:’\e870′}.icon-calendar-empty:before{content:’\e871′}.icon-login:before{content:’\e872′}.icon-logout:before{content:’\e873′}.icon-mic:before{content:’\e874′}.icon-mute:before{content:’\e875′}.icon-volume-off:before{content:’\e876′}.icon-volume-down:before{content:’\e877′}.icon-volume-up:before{content:’\e878′}.icon-headphones:before{content:’\e879′}.icon-clock:before{content:’\e87a’}.icon-lightbulb:before{content:’\e87b’}.icon-block:before{content:’\e87c’}.icon-resize-full-alt:before{content:’\e87d’}.icon-resize-small:before{content:’\e87e’}.icon-resize-vertical:before{content:’\e87f’}.icon-resize-horizontal:before{content:’\e880′}.icon-move:before{content:’\e881′}.icon-zoom-in:before{content:’\e882′}.icon-zoom-out:before{content:’\e883′}.icon-down-circled2:before{content:’\e884′}.icon-up-circled2:before{content:’\e885′}.icon-down-dir:before{content:’\e886′}.icon-up-dir:before{content:’\e887′}.icon-left-dir:before{content:’\e888′}.icon-right-dir:before{content:’\e889′}.icon-down-open:before{content:’\e88a’}.icon-left-open:before{content:’\e88b’}.icon-right-open:before{content:’\e88c’}.icon-up-open:before{content:’\e88d’}.icon-angle-left:before{content:’\e88e’}.icon-angle-right:before{content:’\e88f’}.icon-angle-up:before{content:’\e890′}.icon-angle-down:before{content:’\e891′}.icon-angle-circled-left:before{content:’\e892′}.icon-angle-circled-right:before{content:’\e893′}.icon-angle-circled-up:before{content:’\e894′}.icon-angle-circled-down:before{content:’\e895′}.icon-angle-double-left:before{content:’\e896′}.icon-angle-double-right:before{content:’\e897′}.icon-angle-double-up:before{content:’\e898′}.icon-angle-double-down:before{content:’\e899′}.icon-down:before{content:’\e89a’}.icon-left:before{content:’\e89b’}.icon-right:before{content:’\e89c’}.icon-up:before{content:’\e89d’}.icon-down-big:before{content:’\e89e’}.icon-music:before{content:’\e89f’}.icon-archive:before{content:’\e8a0′}.icon-up-big:before{content:’\e8a1′}.icon-right-hand:before{content:’\e8a2′}.icon-resize-small-1:before{content:’\e8a3′}.icon-cancel-squared:before{content:’\e8a4′}.icon-down-hand:before{content:’\e8a5′}.icon-left-circled:before{content:’\e8a6′}.icon-right-circled:before{content:’\e8a7′}.icon-up-circled:before{content:’\e8a8′}.icon-down-circled:before{content:’\e8a9′}.icon-cw:before{content:’\e8aa’}.icon-ccw:before{content:’\e8ab’}.icon-refresh:before{content:’\e8ac’}.icon-level-up:before{content:’\e8ad’}.icon-level-down:before{content:’\e8ae’}.icon-shuffle:before{content:’\e8af’}.icon-exchange:before{content:’\e8b0′}.icon-collapse:before{content:’\e8b1′}.icon-collapse-top:before{content:’\e8b2′}.icon-expand:before{content:’\e8b3′}.icon-play:before{content:’\e8b4′}.icon-play-circled:before{content:’\e8b5′}.icon-play-circled2:before{content:’\e8b6′}.icon-stop:before{content:’\e8b7′}.icon-pause:before{content:’\e8b8′}.icon-to-end:before{content:’\e8b9′}.icon-to-end-alt:before{content:’\e8ba’}.icon-to-start:before{content:’\e8bb’}.icon-to-start-alt:before{content:’\e8bc’}.icon-fast-fw:before{content:’\e8bd’}.icon-fast-bw:before{content:’\e8be’}.icon-eject:before{content:’\e8bf’}.icon-signal:before{content:’\e8c0′}.icon-award:before{content:’\e8c1′}.icon-desktop:before{content:’\e8c2′}.icon-laptop:before{content:’\e8c3′}.icon-tablet:before{content:’\e8c4′}.icon-mobile:before{content:’\e8c5′}.icon-inbox:before{content:’\e8c6′}.icon-globe:before{content:’\e8c7′}.icon-sun:before{content:’\e8c8′}.icon-cloud:before{content:’\e8c9′}.icon-flash:before{content:’\e8ca’}.icon-moon:before{content:’\e8cb’}.icon-umbrella:before{content:’\e8cc’}.icon-flight:before{content:’\e8cd’}.icon-fighter-jet:before{content:’\e8ce’}.icon-leaf:before{content:’\e8cf’}.icon-font:before{content:’\e8d0′}.icon-bold:before{content:’\e8d1′}.icon-italic:before{content:’\e8d2′}.icon-text-height:before{content:’\e8d3′}.icon-text-width:before{content:’\e8d4′}.icon-align-left:before{content:’\e8d5′}.icon-align-center:before{content:’\e8d6′}.icon-align-right:before{content:’\e8d7′}.icon-align-justify:before{content:’\e8d8′}.icon-list:before{content:’\e8d9′}.icon-indent-left:before{content:’\e8da’}.icon-indent-right:before{content:’\e8db’}.icon-list-bullet:before{content:’\e8dc’}.icon-list-numbered:before{content:’\e8dd’}.icon-strike:before{content:’\e8de’}.icon-underline:before{content:’\e8df’}.icon-superscript:before{content:’\e8e0′}.icon-subscript:before{content:’\e8e1′}.icon-table:before{content:’\e8e2′}.icon-columns:before{content:’\e8e3′}.icon-crop:before{content:’\e8e4′}.icon-scissors:before{content:’\e8e5′}.icon-paste:before{content:’\e8e6′}.icon-briefcase:before{content:’\e8e7′}.icon-suitcase:before{content:’\e8e8′}.icon-ellipsis:before{content:’\e8e9′}.icon-ellipsis-vert:before{content:’\e8ea’}.icon-off:before{content:’\e8eb’}.icon-road:before{content:’\e8ec’}.icon-list-alt:before{content:’\e8ed’}.icon-qrcode:before{content:’\e8ee’}.icon-barcode:before{content:’\e8ef’}.icon-book:before{content:’\e8f0′}.icon-ajust:before{content:’\e8f1′}.icon-tint:before{content:’\e8f2′}.icon-check:before{content:’\e8f3′}.icon-check-empty:before{content:’\e8f4′}.icon-circle:before{content:’\e8f5′}.icon-circle-empty:before{content:’\e8f6′}.icon-asterisk:before{content:’\e8f7′}.icon-gift:before{content:’\e8f8′}.icon-fire:before{content:’\e8f9′}.icon-magnet:before{content:’\e8fa’}.icon-ticket:before{content:’\e8fb’}.icon-credit-card:before{content:’\e8fc’}.icon-floppy:before{content:’\e8fd’}.icon-megaphone:before{content:’\e8fe’}.icon-key:before{content:’\e8ff’}.icon-fork:before{content:’\e900′}.icon-rocket:before{content:’\e901′}.icon-bug:before{content:’\e902′}.icon-certificate:before{content:’\e903′}.icon-tasks:before{content:’\e904′}.icon-filter:before{content:’\e905′}.icon-beaker:before{content:’\e906′}.icon-magic:before{content:’\e907′}.icon-truck:before{content:’\e908′}.icon-money:before{content:’\e909′}.icon-euro:before{content:’\e90a’}.icon-pound:before{content:’\e90b’}.icon-dollar:before{content:’\e90c’}.icon-rupee:before{content:’\e90d’}.icon-yen:before{content:’\e90e’}.icon-renminbi:before{content:’\e90f’}.icon-won:before{content:’\e910′}.icon-bitcoin:before{content:’\e911′}.icon-sort:before{content:’\e912′}.icon-sort-down:before{content:’\e913′}.icon-sort-up:before{content:’\e914′}.icon-sort-alt-up:before{content:’\e915′}.icon-sort-alt-down:before{content:’\e916′}.icon-sort-name-up:before{content:’\e917′}.icon-sort-name-down:before{content:’\e918′}.icon-sort-number-up:before{content:’\e919′}.icon-sort-number-down:before{content:’\e91a’}.icon-hammer:before{content:’\e91b’}.icon-gauge:before{content:’\e91c’}.icon-sitemap:before{content:’\e91d’}.icon-spinner:before{content:’\e91e’}.icon-coffee:before{content:’\e91f’}.icon-food:before{content:’\e920′}.icon-beer:before{content:’\e921′}.icon-user-md:before{content:’\e922′}.icon-stethoscope:before{content:’\e923′}.icon-ambulance:before{content:’\e924′}.icon-medkit:before{content:’\e925′}.icon-h-sigh:before{content:’\e926′}.icon-hospital:before{content:’\e927′}.icon-building:before{content:’\e928′}.icon-smile:before{content:’\e929′}.icon-frown:before{content:’\e92a’}.icon-meh:before{content:’\e92b’}.icon-anchor:before{content:’\e92c’}.icon-terminal:before{content:’\e92d’}.icon-eraser:before{content:’\e92e’}.icon-puzzle:before{content:’\e92f’}.icon-shield:before{content:’\e930′}.icon-extinguisher:before{content:’\e931′}.icon-bullseye:before{content:’\e932′}.icon-resize-full:before{content:’\e933′}.icon-target:before{content:’\e934′}.icon-layers:before{content:’\e935′}.icon-chart-bar:before{content:’\e936′}.icon-share:before{content:’\e937′}.icon-hdd:before{content:’\e938′}.icon-trash:before{content:’\e939′}.icon-folder:before{content:’\e93a’}.icon-code:before{content:’\e93b’}.icon-folder-open:before{content:’\e93c’}.icon-left-big:before{content:’\e93d’}.icon-evernote:before{content:’\e93e’}.icon-right-big:before{content:’\e93f’}.icon-spin3:before{content:’\e940′}.icon-spin4:before{content:’\e941′}.icon-spin6:before{content:’\e942′}.icon-arrows-cw:before{content:’\e943′}.icon-resize-normal:before{content:’\e944′}.icon-left-hand:before{content:’\e945′}.icon-evernote-1:before{content:’\e946′}.icon-up-hand:before{content:’\e947′}.icon-file-pdf:before{content:’\e948′}.icon-doc-text-1:before{content:’\e949′}.icon-file-word:before{content:’\e94a’}.icon-file-excel:before{content:’\e94b’}.icon-file-powerpoint:before{content:’\e94c’}.icon-file-image:before{content:’\e94d’}.icon-file-archive:before{content:’\e94e’}.icon-file-audio:before{content:’\e94f’}.icon-file-video:before{content:’\e950′}.icon-file-code:before{content:’\e951′}.icon-doc-1:before{content:’\e952′}.icon-share-1:before{content:’\e953′}.icon-users-1:before{content:’\e954′}/*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a{background:transparent}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:”\201C” “\201D” “\2018” “\2019″}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=”button”],input[type=”reset”],input[type=”submit”]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type=”checkbox”],input[type=”radio”]{box-sizing:border-box;padding:0}input[type=”search”]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=”search”]::-webkit-search-cancel-button,input[type=”search”]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:”Helvetica Neue”,Arial,”Hiragino Sans GB”,”STHeiti”,”Microsoft YaHei”,”WenQuanYi Micro Hei”,SimSun,Song,sans-serif;font-size:15px;line-height:1.45;color:#2c3f51;background-color:none}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#1980e6;text-decoration:none}a:hover,a:focus{color:#0f4d8a;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.45;background-color:none;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid rgba(102,128,153,0.1)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:300;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:21px;margin-bottom:10.5px}h1 small,h2 small,h3 small,h1 .small,h2 .small,h3 .small{font-size:65%}h4,h5,h6{margin-top:10.5px;margin-bottom:10.5px}h4 small,h5 small,h6 small,h4 .small,h5 .small,h6 .small{font-size:75%}h1,.h1{font-size:39px}h2,.h2{font-size:32px}h3,.h3{font-size:26px}h4,.h4{font-size:19px}h5,.h5{font-size:15px}h6,.h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}small,.small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-primary:hover{color:#3071a9}.text-warning{color:#b89600}.text-warning:hover{color:#856d00}.text-danger{color:#d82a1a}.text-danger:hover{color:#ab2114}.text-success{color:#3c763d}.text-success:hover{color:#2b542c}.text-info{color:#31708f}.text-info:hover{color:#245269}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid none}ul,ol{margin-top:0;margin-bottom:10.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}.list-inline>li:first-child{padding-left:0}dl{margin-top:0;margin-bottom:21px}dt,dd{line-height:1.45}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{content:” “;display:table}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{content:” “;display:table}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;border-left:5px solid rgba(102,128,153,0.075)}blockquote p{font-size:18.75px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small,blockquote .small{display:block;line-height:1.45;color:#999}blockquote small:before,blockquote .small:before{content:’\2014 \00A0′}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid rgba(102,128,153,0.075);border-left:0}blockquote.pull-right p,blockquote.pull-right small,blockquote.pull-right .small{text-align:right}blockquote.pull-right small:before,blockquote.pull-right .small:before{content:”}blockquote.pull-right small:after,blockquote.pull-right .small:after{content:’\00A0 \2014′}blockquote:before,blockquote:after{content:””}address{margin-bottom:21px;font-style:normal;line-height:1.45}code,kbd,pre,samp{font-family:”Source Code Pro”,monospace}code{padding:2px 4px;font-size:90%;color:#2c3f51;background-color:rgba(102,128,153,0.075);white-space:nowrap;border-radius:4px}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.45;word-break:break-all;word-wrap:break-word;color:#333;background-color:rgba(102,128,153,0.05);border:1px solid rgba(102,128,153,0.075);border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.pln{color:#000}.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:#f00}pre.prettyprint{padding:0;border:0}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}@font-face{font-family:’fontello’;src:url(‘../font/fontello.svg?1482341078908#fontello’) format(‘svg’),url(‘../font/fontello.woff?1482341078908’) format(‘woff’);font-weight:normal;font-style:normal}@font-face{font-family:’Source Sans Pro’;font-style:normal;font-weight:300;src:local(‘Source Sans Pro Light’),local(‘SourceSansPro-Light’),url(“../font/SourceSansPro-Light-webfont.woff”) format(‘woff’)}@font-face{font-family:’Source Sans Pro’;font-style:normal;font-weight:400;src:local(‘Source Sans Pro’),local(‘SourceSansPro’),url(“../font/SourceSansPro-Regular-webfont.woff”) format(‘woff’)}@font-face{font-family:’Source Sans Pro’;font-style:normal;font-weight:700;src:local(‘Source Sans Pro Bold’),local(‘SourceSansPro-Bold’),url(“../font/SourceSansPro-Bold-webfont.woff”) format(‘woff’)}@font-face{font-family:’Source Sans Pro’;font-style:italic;font-weight:300;src:local(‘Source Sans Pro Light Italic’),local(‘SourceSansProLight-Italic’),url(“../font/SourceSansPro-LightItalic-webfont.woff”) format(‘woff’)}@font-face{font-family:’Source Sans Pro’;font-style:italic;font-weight:400;src:local(‘Source Sans Pro Italic’),local(‘SourceSansPro-Italic’),url(“../font/SourceSansPro-Italic-webfont.woff”) format(‘woff’)}@font-face{font-family:’Source Sans Pro’;font-style:italic;font-weight:700;src:local(‘Source Sans Pro Bold Italic’),local(‘SourceSansPro-BoldItalic’),url(“../font/SourceSansPro-BoldItalic-webfont.woff”) format(‘woff’)}@font-face{font-family:’Source Code Pro’;font-style:normal;font-weight:400;src:local(‘Source Code Pro’),local(‘SourceCodePro-Regular’),url(“../font/SourceCodePro-Regular-webfont.woff”) format(‘woff’)}@font-face{font-family:’Source Code Pro’;font-style:normal;font-weight:700;src:local(‘Source Code Pro Bold’),local(‘SourceCodePro-Bold’),url(“../font/SourceCodePro-Bold-webfont.woff”) format(‘woff’)}.container{margin-bottom:180px;text-align:justify}a code{color:inherit}h1{font-size:2.6em}h2{font-size:2.15em}h3{font-size:1.7em}h4{font-size:1.25em}h5{font-size:1em}h6{font-size:.85em}h1,h2,h3,h4,h5,h6{margin:1.8em 0;text-align:start}pre{word-break:break-word}p,pre,pre.prettyprint,blockquote{margin:0 0 1.1em}hr{margin:2em 0}img{max-width:100%}.sequence-diagram,.flow-chart{text-align:center;margin-bottom:1.1em}.sequence-diagram text,.flow-chart text{font-size:15px !important;font-family:”Helvetica Neue”,Arial,”Hiragino Sans GB”,”STHeiti”,”Microsoft YaHei”,”WenQuanYi Micro Hei”,SimSun,Song,sans-serif !important}.sequence-diagram [stroke=”#000000″],.flow-chart [stroke=”#000000″]{stroke:#2c3f51}.sequence-diagram text[stroke=”#000000″],.flow-chart text[stroke=”#000000″]{stroke:none}.sequence-diagram [fill=”#000″],.flow-chart [fill=”#000″],.sequence-diagram [fill=”#000000″],.flow-chart [fill=”#000000″],.sequence-diagram [fill=”black”],.flow-chart [fill=”black”]{fill:#2c3f51}code,pre{font-family:”Source Code Pro”,monospace;font-size:.9em}code{white-space:normal}pre,pre.prettyprint{text-align:start;border:0;border-radius:5px;word-break:break-all}pre code,pre.prettyprint code{padding:1.3em 2em !important}pre.prettyprint.with-line-number{position:relative}pre.prettyprint.with-line-number code{padding-left:3.3em !important}pre.prettyprint.with-line-number .hljs-comment.line-number{min-width:2.2em;display:inline-block;text-align:right;opacity:.8;position:absolute;left:.3em}.hljs-comment.line-number{display:none}dt,dd{margin-top:5px;margin-bottom:5px}dd{margin-left:40px}table{margin-bottom:20px}table th,table td{padding:8px;line-height:20px;vertical-align:top;border-top:1px solid #ddd}table th{font-weight:bold}table thead th{vertical-align:bottom}table caption+thead tr:first-child th,table caption+thead tr:first-child td,table colgroup+thead tr:first-child th,table colgroup+thead tr:first-child td,table thead:first-child tr:first-child th,table thead:first-child tr:first-child td{border-top:0}table tbody+tbody{border-top:2px solid #ddd}blockquote{border-left-width:10px;background-color:rgba(102,128,153,0.05);border-top-right-radius:5px;border-bottom-right-radius:5px;padding:15px 20px}blockquote p{margin-bottom:1.1em;font-size:1em;line-height:1.45}blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}ul,ol{margin-bottom:1.1em}ul ul,ol ul,ul ol,ol ol{margin-bottom:1.1em}kbd{padding:.1em .6em;border:1px solid rgba(44,63,81,0.25);-webkit-box-shadow:0 1px 0 rgba(44,63,81,0.25);box-shadow:0 1px 0 rgba(44,63,81,0.25);font-size:.7em;font-family:sans-serif;background-color:#fff;color:#333;border-radius:3px;display:inline-block;margin:0 .1em;white-space:nowrap}.toc ul{list-style-type:none;margin-bottom:15px}.footnote{vertical-align:top;position:relative;top:-0.5em;font-size:.8em}li.checklist-item{list-style:none;margin-left:-1.2em}.checklist{margin-bottom:1.1em}.checklist-item>.checklist{margin-left:1.4em}li>p:last-child{margin-bottom:0}[class^=”icon-“],[class*=” icon-“]{display:inline-block;line-height:1.35em;vertical-align:middle;background-repeat:no-repeat}.icon-code{font-size:83%;line-height:1.65em}.icon-code:before{margin-left:.1em;margin-right:.6em}.icon-trash{line-height:1.5em}.icon-folder-open{font-size:80%}.icon-folder-open:before{margin-right:.6em}.icon-chart-bar{font-size:95%}.icon-chart-bar:before{margin-left:.3em;margin-right:.3em}.icon-comment-alt,.icon-chat{font-size:92%}.icon-comment-alt:before,.icon-chat:before{margin-left:.1em;margin-right:.4em}.icon-file{font-size:104%;margin-left:0;margin-right:0}.icon-link{font-size:104%}[class^=”icon-provider-“],[class*=” icon-provider-“]{background-image:url(“../img/icons.png”);width:18px;height:16px;margin-top:-2px;margin-left:2px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min–moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2/1),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){[class^=”icon-provider-“],[class*=” icon-provider-“]{background-image:url(“../img/icons2x.png”);background-size:256px 16px}}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min–moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2/1),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){[class^=”icon-provider-“],[class*=” icon-provider-“]{background-image:url(“../img/icons2x.png”);background-size:256px 16px}}.icon-provider-stackedit{background-position:0 0}.icon-provider-gdrive,.icon-provider-gdrivesec,.icon-provider-gdriveter{background-position:-18px 0}.icon-provider-dropbox{background-position:-37px 0}.icon-provider-github,.icon-provider-gist{background-position:-54px 0}.icon-provider-blogger,.icon-provider-bloggerpage{background-position:-72px 0}.icon-provider-tumblr{background-position:-90px 0}.icon-provider-wordpress{background-position:-108px 0}.icon-provider-ssh{background-position:-126px 0}.icon-provider-gplus{background-position:-144px 0}.icon-provider-couchdb{background-position:-162px 0}body.rtl #wmd-input,body.rtl #preview-contents,body.rtl .input-file-title,body.rtl .search-bar input,body.rtl .modal-document-manager input,body.rtl .comments-popover,body.rtl .container{direction:rtl}.MathJax_SVG_Display{text-align:center;margin:1em 0;position:relative;display:block !important;text-indent:0;max-width:none;max-height:none;min-width:0;min-height:0;width:100%}.MathJax_SVG{display:inline;font-style:normal;font-weight:normal;line-height:normal;font-size:100%;font-size-adjust:none;text-indent:0;text-align:left;text-transform:none;letter-spacing:normal;word-spacing:normal;word-wrap:normal;white-space:nowrap;float:none;direction:ltr;max-width:none;max-height:none;min-width:0;min-height:0;border:0;padding:0;margin:0;vertical-align:middle}.hljs-light .hljs{display:block;padding:.5em;background-color:#f0f0f0}.hljs-light .hljs,.hljs-light .hljs-subst,.hljs-light .hljs-tag .hljs-title,.hljs-light .lisp .hljs-title,.hljs-light .clojure .hljs-built_in,.hljs-light .nginx .hljs-title{color:#000}.hljs-light .hljs-string,.hljs-light .hljs-title,.hljs-light .hljs-constant,.hljs-light .hljs-parent,.hljs-light .hljs-tag .hljs-value,.hljs-light .hljs-rules .hljs-value,.hljs-light .hljs-rules .hljs-value .hljs-number,.hljs-light .hljs-preprocessor,.hljs-light .hljs-pragma,.hljs-light .haml .hljs-symbol,.hljs-light .ruby .hljs-symbol,.hljs-light .ruby .hljs-symbol .hljs-string,.hljs-light .hljs-aggregate,.hljs-light .hljs-template_tag,.hljs-light .django .hljs-variable,.hljs-light .smalltalk .hljs-class,.hljs-light .hljs-addition,.hljs-light .hljs-flow,.hljs-light .hljs-stream,.hljs-light .bash .hljs-variable,.hljs-light .apache .hljs-tag,.hljs-light .apache .hljs-cbracket,.hljs-light .tex .hljs-command,.hljs-light .tex .hljs-special,.hljs-light .erlang_repl .hljs-function_or_atom,.hljs-light .asciidoc .hljs-header,.hljs-light .markdown .hljs-header,.hljs-light .coffeescript .hljs-attribute{color:#800}.hljs-light .smartquote,.hljs-light .hljs-comment,.hljs-light .hljs-annotation,.hljs-light .hljs-template_comment,.hljs-light .diff .hljs-header,.hljs-light .hljs-chunk,.hljs-light .asciidoc .hljs-blockquote,.hljs-light .markdown .hljs-blockquote{color:#888}.hljs-light .hljs-number,.hljs-light .hljs-date,.hljs-light .hljs-regexp,.hljs-light .hljs-literal,.hljs-light .hljs-hexcolor,.hljs-light .smalltalk .hljs-symbol,.hljs-light .smalltalk .hljs-char,.hljs-light .go .hljs-constant,.hljs-light .hljs-change,.hljs-light .lasso .hljs-variable,.hljs-light .makefile .hljs-variable,.hljs-light .asciidoc .hljs-bullet,.hljs-light .markdown .hljs-bullet,.hljs-light .asciidoc .hljs-link_url,.hljs-light .markdown .hljs-link_url{color:#080}.hljs-light .hljs-label,.hljs-light .hljs-javadoc,.hljs-light .ruby .hljs-string,.hljs-light .hljs-decorator,.hljs-light .hljs-filter .hljs-argument,.hljs-light .hljs-localvars,.hljs-light .hljs-array,.hljs-light .hljs-attr_selector,.hljs-light .hljs-important,.hljs-light .hljs-pseudo,.hljs-light .hljs-pi,.hljs-light .haml .hljs-bullet,.hljs-light .hljs-doctype,.hljs-light .hljs-deletion,.hljs-light .hljs-envvar,.hljs-light .hljs-shebang,.hljs-light .apache .hljs-sqbracket,.hljs-light .nginx .hljs-built_in,.hljs-light .tex .hljs-formula,.hljs-light .erlang_repl .hljs-reserved,.hljs-light .hljs-prompt,.hljs-light .asciidoc .hljs-link_label,.hljs-light .markdown .hljs-link_label,.hljs-light .vhdl .hljs-attribute,.hljs-light .clojure .hljs-attribute,.hljs-light .asciidoc .hljs-attribute,.hljs-light .lasso .hljs-attribute,.hljs-light .coffeescript .hljs-property,.hljs-light .hljs-phony{color:#88f}.hljs-light .hljs-keyword,.hljs-light .hljs-id,.hljs-light .hljs-title,.hljs-light .hljs-built_in,.hljs-light .hljs-aggregate,.hljs-light .css .hljs-tag,.hljs-light .hljs-javadoctag,.hljs-light .hljs-phpdoc,.hljs-light .hljs-yardoctag,.hljs-light .smalltalk .hljs-class,.hljs-light .hljs-winutils,.hljs-light .bash .hljs-variable,.hljs-light .apache .hljs-tag,.hljs-light .go .hljs-typename,.hljs-light .tex .hljs-command,.hljs-light .asciidoc .hljs-strong,.hljs-light .markdown .hljs-strong,.hljs-light .hljs-request,.hljs-light .hljs-status{font-weight:bold}.hljs-light .asciidoc .hljs-emphasis,.hljs-light .markdown .hljs-emphasis{font-style:italic}.hljs-light .nginx .hljs-built_in{font-weight:normal}.hljs-light .coffeescript .javascript,.hljs-light .javascript .xml,.hljs-light .lasso .markup,.hljs-light .tex .hljs-formula,.hljs-light .xml .javascript,.hljs-light .xml .vbscript,.hljs-light .xml .css,.hljs-light .xml .hljs-cdata{opacity:.5}.hljs-dark{background:#f6f6f6}.hljs-dark .hljs{display:block;padding:.5em;background:#23241f}.hljs-dark .hljs,.hljs-dark .hljs-tag,.hljs-dark .css .hljs-rules,.hljs-dark .css .hljs-value,.hljs-dark .css .hljs-function .hljs-preprocessor,.hljs-dark .hljs-pragma{color:#f8f8f2}.hljs-dark .hljs-strongemphasis,.hljs-dark .hljs-strong,.hljs-dark .hljs-emphasis{color:#a8a8a2}.hljs-dark .hljs-bullet,.hljs-dark .hljs-blockquote,.hljs-dark .hljs-horizontal_rule,.hljs-dark .hljs-number,.hljs-dark .hljs-regexp,.hljs-dark .alias .hljs-keyword,.hljs-dark .hljs-literal,.hljs-dark .hljs-hexcolor{color:#ae81ff}.hljs-dark .hljs-tag .hljs-value,.hljs-dark .hljs-code,.hljs-dark .hljs-title,.hljs-dark .css .hljs-class,.hljs-dark .hljs-class .hljs-title:last-child{color:#a6e22e}.hljs-dark .hljs-link_url{font-size:80%}.hljs-dark .hljs-strong,.hljs-dark .hljs-strongemphasis{font-weight:bold}.hljs-dark .hljs-emphasis,.hljs-dark .hljs-strongemphasis,.hljs-dark .hljs-class .hljs-title:last-child{font-style:italic}.hljs-dark .hljs-keyword,.hljs-dark .hljs-function,.hljs-dark .hljs-change,.hljs-dark .hljs-winutils,.hljs-dark .hljs-flow,.hljs-dark .lisp .hljs-title,.hljs-dark .clojure .hljs-built_in,.hljs-dark .nginx .hljs-title,.hljs-dark .tex .hljs-special,.hljs-dark .hljs-header,.hljs-dark .hljs-attribute,.hljs-dark .hljs-symbol,.hljs-dark .hljs-symbol .hljs-string,.hljs-dark .hljs-tag .hljs-title,.hljs-dark .hljs-value,.hljs-dark .alias .hljs-keyword:first-child,.hljs-dark .css .hljs-tag,.hljs-dark .css .unit,.hljs-dark .css .hljs-important{color:#f92672}.hljs-dark .hljs-function .hljs-keyword,.hljs-dark .hljs-class .hljs-keyword:first-child,.hljs-dark .hljs-constant,.hljs-dark .css .hljs-attribute{color:#66d9ef}.hljs-dark .hljs-variable,.hljs-dark .hljs-params,.hljs-dark .hljs-class .hljs-title{color:#f8f8f2}.hljs-dark .hljs-string,.hljs-dark .css .hljs-id,.hljs-dark .hljs-subst,.hljs-dark .haskell .hljs-type,.hljs-dark .ruby .hljs-class .hljs-parent,.hljs-dark .hljs-built_in,.hljs-dark .sql .hljs-aggregate,.hljs-dark .django .hljs-template_tag,.hljs-dark .django .hljs-variable,.hljs-dark .smalltalk .hljs-class,.hljs-dark .django .hljs-filter .hljs-argument,.hljs-dark .smalltalk .hljs-localvars,.hljs-dark .smalltalk .hljs-array,.hljs-dark .hljs-attr_selector,.hljs-dark .hljs-pseudo,.hljs-dark .hljs-addition,.hljs-dark .hljs-stream,.hljs-dark .hljs-envvar,.hljs-dark .apache .hljs-tag,.hljs-dark .apache .hljs-cbracket,.hljs-dark .tex .hljs-command,.hljs-dark .hljs-prompt,.hljs-dark .hljs-link_label,.hljs-dark .hljs-link_url{color:#e6db74}.hljs-dark .hljs-comment,.hljs-dark .hljs-javadoc,.hljs-dark .java .hljs-annotation,.hljs-dark .python .hljs-decorator,.hljs-dark .hljs-template_comment,.hljs-dark .hljs-pi,.hljs-dark .hljs-doctype,.hljs-dark .hljs-deletion,.hljs-dark .hljs-shebang,.hljs-dark .apache .hljs-sqbracket,.hljs-dark .tex .hljs-formula{color:#75715e}.hljs-dark .coffeescript .javascript,.hljs-dark .javascript .xml,.hljs-dark .tex .hljs-formula,.hljs-dark .xml .javascript,.hljs-dark .xml .vbscript,.hljs-dark .xml .css,.hljs-dark .xml .hljs-cdata,.hljs-dark .xml .php,.hljs-dark .php .xml{opacity:.5}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}h1,h2,h3,h4,h5,h6{font-weight:bold;margin:1.2em 0 .6em 0}blockquote h1,blockquote h2,blockquote h3,blockquote h4,blockquote h5,blockquote h6{font-weight:bold;margin:.6em 0}.note-tags{color:rgba(44,63,81,0.3)}.note-tags code{color:rgba(44,63,81,0.5);background:rgba(102,128,153,0.075);border-radius:0;padding:2px 5px}.note-tags code:empty{display:none}.note-tags .notebook{background:rgba(44,63,81,0.3);color:#fff;margin-right:6px}table th,table td,table thead:first-child tr:first-child th{padding:.5em;border:1px solid #ddd;line-height:1.5}.note-content{line-height:1.5;color:#2c3f51}.note-content div,.note-content dl,.note-content dt,.note-content em,.note-content font,.note-content h3,.note-content h4,.note-content h5,.note-content h6,.note-content hr,.note-content i,.note-content ins,.note-content kbd,.note-content li,.note-content map,.note-content ol,.note-content p,.note-content pre,.note-content q,.note-content s,.note-content samp,.note-content small,.note-content span,.note-content strike,.note-content strong,.note-content sub,.note-content sup,.note-content table,.note-content tbody,.note-content td,.note-content tfoot,.note-content th,.note-content thead,.note-content tr,.note-content tt,.note-content u,.note-content ul{line-height:1.6}.image-broken-replacement{text-align:center;font-style:italic;padding:8px;border-radius:5px;color:rgba(102,128,153,0.6);background-color:rgba(102,128,153,0.075)}th[align=’center’]{text-align:center}th[align=’right’]{text-align:right}.image-caption{font-size:.86em;margin-top:.6em;margin-bottom:0}.alertify,.alertify-show,.alertify-log{-webkit-transition:all 500ms cubic-bezier(.175, .885, .32, 1.275);-moz-transition:all 500ms cubic-bezier(.175, .885, .32, 1.275);-ms-transition:all 500ms cubic-bezier(.175, .885, .32, 1.275);-o-transition:all 500ms cubic-bezier(.175, .885, .32, 1.275);transition:all 500ms cubic-bezier(.175, .885, .32, 1.275)}.alertify-hide{-webkit-transition:all 250ms cubic-bezier(.6, -0.28, .735, .045);-moz-transition:all 250ms cubic-bezier(.6, -0.28, .735, .045);-ms-transition:all 250ms cubic-bezier(.6, -0.28, .735, .045);-o-transition:all 250ms cubic-bezier(.6, -0.28, .735, .045);transition:all 250ms cubic-bezier(.6, -0.28, .735, .045)}.alertify-log-hide{-webkit-transition:all 500ms cubic-bezier(.6, -0.28, .735, .045);-moz-transition:all 500ms cubic-bezier(.6, -0.28, .735, .045);-ms-transition:all 500ms cubic-bezier(.6, -0.28, .735, .045);-o-transition:all 500ms cubic-bezier(.6, -0.28, .735, .045);transition:all 500ms cubic-bezier(.6, -0.28, .735, .045)}.alertify-cover{position:fixed;z-index:99999;top:0;right:0;bottom:0;left:0;background-color:#fff;filter:alpha(opacity=0);opacity:0}.alertify-cover-hidden{display:none}.alertify{position:fixed;z-index:99999;top:50px;left:50%;width:550px;margin-left:-275px;opacity:1}.alertify-hidden{opacity:0;display:none}:root *>.alertify-hidden{display:block;visibility:hidden}.alertify-logs{position:fixed;z-index:5000;bottom:10px;right:10px;width:300px}.alertify-logs-hidden{display:none}.alertify-log{display:block;margin-top:10px;position:relative;right:-300px;opacity:0}.alertify-log-show{right:0;opacity:1}.alertify-log-hide{-webkit-transform:translate(300px, 0);-moz-transform:translate(300px, 0);-ms-transform:translate(300px, 0);-o-transform:translate(300px, 0);transform:translate(300px, 0);opacity:0}.alertify-dialog{padding:25px}.alertify-resetFocus{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.alertify-inner{text-align:center}.alertify-text{margin-bottom:15px;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:100%}.alertify-isHidden{display:none}@media only screen and (max-width:680px){.alertify,.alertify-logs{width:90%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.alertify{left:5%;margin:0}}.alertify,.alertify-log{font-family:”Helvetica Neue”,Arial,”Hiragino Sans GB”,”STHeiti”,”Microsoft YaHei”,”WenQuanYi Micro Hei”,SimSun,Song,sans-serif}.alertify{background:#fff;border:1px solid #dee6ed;border-radius:6px;width:398px;margin-left:-200px;-webkit-background-clip:padding;-moz-background-clip:padding;background-clip:padding-box}.alertify-dialog{padding:0}.alertify-inner{text-align:left}.alertify-message{padding:15px;margin:0}.alertify-text-wrapper{padding:0 15px}.alertify-text{display:block;width:100%;height:42px;padding:6px 12px;font-size:15px;line-height:1.45;color:#2c3f51;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #dee6ed;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.alertify-text:focus:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.alertify-text:focus:focus{border-color:#dee6ed;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px rgba(102, 128, 153, 0.6);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px rgba(102, 128, 153, 0.6)}.alertify-text:focus:focus{border-color:rgba(25,128,230,0.5);outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px #1980e6;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px #1980e6}.alertify-buttons{padding:14px 15px 15px;background:#f6f7f9;border-top:1px solid #ebf0f4;text-align:right;border-radius:0 0 6px 6px}.alertify-button{margin-left:10px}.alertify-button-cancel,.alertify-button-ok{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:15px;line-height:1.45;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.alertify-button-cancel:focus,.alertify-button-ok:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.alertify-button-cancel:hover,.alertify-button-ok:hover,.alertify-button-cancel:focus,.alertify-button-ok:focus{color:#425e7b;text-decoration:none}.alertify-button-cancel:active,.alertify-button-ok:active,.alertify-button-cancel.active,.alertify-button-ok.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.alertify-button-cancel{color:#425e7b;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.alertify-button-cancel:hover,.alertify-button-cancel:focus,.alertify-button-cancel:active,.alertify-button-cancel.active,.open .dropdown-toggle.alertify-button-cancel{color:#425e7b;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.alertify-button-cancel:active,.alertify-button-cancel.active,.open .dropdown-toggle.alertify-button-cancel{background-image:none}.alertify-button-cancel.disabled,.alertify-button-cancel[disabled],fieldset[disabled] .alertify-button-cancel,.alertify-button-cancel.disabled:hover,.alertify-button-cancel[disabled]:hover,fieldset[disabled] .alertify-button-cancel:hover,.alertify-button-cancel.disabled:focus,.alertify-button-cancel[disabled]:focus,fieldset[disabled] .alertify-button-cancel:focus,.alertify-button-cancel.disabled:active,.alertify-button-cancel[disabled]:active,fieldset[disabled] .alertify-button-cancel:active,.alertify-button-cancel.disabled.active,.alertify-button-cancel[disabled].active,fieldset[disabled] .alertify-button-cancel.active{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.alertify-button-cancel .badge{color:rgba(0,0,0,0);background-color:#fff}.alertify-button-ok{color:#425e7b;background-color:#e4ebf1;border-color:rgba(0,128,255,0.05)}.alertify-button-ok:hover,.alertify-button-ok:focus,.alertify-button-ok:active,.alertify-button-ok.active,.open .dropdown-toggle.alertify-button-ok{color:#425e7b;background-color:#cad6e2;border-color:rgba(0,97,194,0.05)}.alertify-button-ok:active,.alertify-button-ok.active,.open .dropdown-toggle.alertify-button-ok{background-image:none}.alertify-button-ok.disabled,.alertify-button-ok[disabled],fieldset[disabled] .alertify-button-ok,.alertify-button-ok.disabled:hover,.alertify-button-ok[disabled]:hover,fieldset[disabled] .alertify-button-ok:hover,.alertify-button-ok.disabled:focus,.alertify-button-ok[disabled]:focus,fieldset[disabled] .alertify-button-ok:focus,.alertify-button-ok.disabled:active,.alertify-button-ok[disabled]:active,fieldset[disabled] .alertify-button-ok:active,.alertify-button-ok.disabled.active,.alertify-button-ok[disabled].active,fieldset[disabled] .alertify-button-ok.active{background-color:#e4ebf1;border-color:rgba(0,128,255,0.05)}.alertify-button-ok .badge{color:#e4ebf1;background-color:#fff}.alertify-log{background:#d9edf7;padding:8px 14px;border-radius:4px;color:#3a8abf;text-shadow:0 1px 0 rgba(255,255,255,0.5);border:1px solid #bce8f1}.alertify-log-error{color:#b94a48;background:#f2dede;border:1px solid #eed3d7}.alertify-log-success{color:#468847;background:#dff0d8;border:1px solid #d6e9c6}.tour-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000;opacity:.8}.tour-step-backdrop{position:relative;z-index:1031;background:inherit}.tour-step-background{position:absolute;z-index:1030;background:inherit;border-radius:6px}.popover[class*=”tour-“]{z-index:1030}.popover[class*=”tour-“] .popover-navigation{padding:9px 14px}.popover[class*=”tour-“] .popover-navigation *[data-role=end]{float:right}.popover[class*=”tour-“] .popover-navigation *[data-role=prev],.popover[class*=”tour-“] .popover-navigation *[data-role=next],.popover[class*=”tour-“] .popover-navigation *[data-role=end]{cursor:pointer}.popover[class*=”tour-“] .popover-navigation *[data-role=prev].disabled,.popover[class*=”tour-“] .popover-navigation *[data-role=next].disabled,.popover[class*=”tour-“] .popover-navigation *[data-role=end].disabled{cursor:default}.popover[class*=”tour-“].orphan{position:fixed;margin-top:0}.popover[class*=”tour-“].orphan .arrow{display:none}div.jGrowl{z-index:9999;color:#fff;font-size:12px}div.jGrowl{position:absolute}body>div.jGrowl{position:fixed}div.jGrowl.top-left{left:0;top:0}div.jGrowl.top-right{right:0;top:0}div.jGrowl.bottom-left{left:0;bottom:0}div.jGrowl.bottom-right{right:0;bottom:0}div.jGrowl.center{top:0;width:50%;left:25%}div.center div.jGrowl-notification,div.center div.jGrowl-closer{margin-left:auto;margin-right:auto}div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{background-color:#000;zoom:1;width:235px;padding:10px;margin-top:5px;margin-bottom:5px;font-family:Tahoma,Arial,Helvetica,sans-serif;font-size:1em;text-align:left;display:none;-moz-border-radius:5px;-webkit-border-radius:5px}div.jGrowl div.jGrowl-notification{min-height:40px}div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{margin:10px}div.jGrowl div.jGrowl-notification div.jGrowl-header{font-weight:bold;font-size:.85em}div.jGrowl div.jGrowl-notification div.jGrowl-close{z-index:99;float:right;font-weight:bold;font-size:1em;cursor:pointer}div.jGrowl div.jGrowl-closer{padding-top:4px;padding-bottom:4px;cursor:pointer;font-size:.9em;font-weight:bold;text-align:center}@media print{div.jGrowl{display:none}}.animate-spin{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;display:inline-block}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.toast-title{font-weight:bold}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-0.3em;top:-0.3em;float:right;font-size:20px;font-weight:bold;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:30px;bottom:10px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999}#toast-container.toast-top-full-width>div,#toast-container.toast-bottom-full-width>div{width:96%;margin:auto}.toast{margin:0 0 6px;padding:8px;padding-left:50px;min-width:200px;box-shadow:none;border-radius:15px}.toast{background-image:none !important}.toast:before{position:fixed;font-family:fontello;font-size:24px;line-height:22px;float:left;padding-right:.5em;margin:auto .5em auto -1.5em}.toast-warning:before{content:”\e858″}.toast-error:before{content:”\e81a”}.toast-info:before{content:”\e828″}.toast-success:before{content:”\e816″}.toast-wait:before{content:”\e879″}.toast{border:2px solid #000;color:#030303;background-color:rgba(120,120,120,0.9)}.toast-success{border:2px solid #499249;color:#51a351;background-color:rgba(234,245,234,0.9)}.toast-error{border:2px solid #a9302a;color:#bd362f;background-color:rgba(247,225,223,0.9)}.toast-info{border:2px solid #2a85a0;color:#2f96b4;background-color:rgba(217,239,245,0.9)}.toast-warning{border:2px solid #b9751d;color:#cf8321;background-color:rgba(250,239,224,0.9)}.toast-wait{border:none;padding:3px 16px;color:#fff;font-size:12px;background:none;margin:0;width:auto;min-width:initial;min-width:auto;position:relative}.toast-wait .toast-message{position:relative}.toast-wait:before{content:”;background:#ed1d70;display:block;position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;-webkit-animation:2s loadingBefore infinite ease-in-out;-ms-animation:2s loadingBefore infinite ease-in-out;-moz-animation:2s loadingBefore infinite ease-in-out}@-webkit-keyframes loadingBefore{0%{-webkit-transform:translateX(-14px)}50%{-webkit-transform:translateX(14px);opacity:.6}100%{-webkit-transform:translateX(-14px)}}@-moz-keyframes loadingBefore{0%{-moz-transform:translateX(-14px)}50%{-moz-transform:translateX(14px);opacity:.6}100%{-moz-transform:translateX(-14px)}}@-ms-keyframes loadingBefore{0%{-ms-transform:translateX(-14px)}50%{-ms-transform:translateX(14px);opacity:.6}100%{-ms-transform:translateX(-14px)}}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-0.2em;top:-0.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-0.2em;top:-0.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}}body{tab-size:4;text-align:start}*{outline:none !important}.working{cursor:progress}.dragging{cursor:move !important}.btn,.dropdown-menu{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.dropdown-menu,.modal-content,.panel-content,.search-bar,.popover,.find-replace,.alertify{-webkit-box-shadow:0 4px 16px rgba(0,0,0,0.225);box-shadow:0 4px 16px rgba(0,0,0,0.225)}.dropdown-menu>li>a{padding:5px 20px;border-top:1px solid transparent;border-bottom:1px solid transparent}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{border-color:#475160}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{border-color:transparent}.collapsed>.icon-up-dir:before{content:’\e94d’}.modal.fade .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.modal-content{background-color:#f6f7f9}.modal-body{background-color:#fff;padding-bottom:30px}.modal-footer{margin-top:0}.modal-iframe{display:block;margin:30px auto 0;z-index:1040;border-radius:0}a{-webkit-transition:background-color ease-in-out .15s, color ease-in-out .15s, border-color ease-in-out .15s;transition:background-color ease-in-out .15s, color ease-in-out .15s, border-color ease-in-out .15s}.nav-pills>li>a{border:1px solid rgba(0,0,0,0)}.nav-pills>li>a:hover,.nav-pills>li>a:focus{color:#036;border-color:#475160}.nav-pills>li.open>a .caret,.nav-pills>li>a:hover .caret,.nav-pills>li>a:focus .caret{border-top-color:#036;border-bottom-color:#036}.nav-pills>li.disabled>a:hover,.nav-pills>li.disabled>a:focus{border-color:rgba(0,0,0,0)}.nav-pills>li.open>a,.nav-pills>li.open>a:hover,.nav-pills>li.open>a:focus{color:#036;border-color:#475160}.list-group-item{padding:10px 15px;border-left-width:0;border-right-width:0;margin-bottom:0}.list-group .list-group-item{border-radius:0}a.list-group-item:hover,a.list-group-item:focus{color:#036;border-color:#475160}.list-group-item .checkbox{float:right;margin:0;padding:0;cursor:pointer}.list-group-item .checkbox input{cursor:pointer;margin:0 16px;height:38px}.form-group{margin-bottom:1px;padding:5px}.text-danger:hover{color:#d82a1a}.bring-to-front{z-index:1050 !important}.dialog-header-message{position:absolute;top:12px;right:55px;font-weight:bold}.btn{padding:8px 11px;-webkit-transition:background-color ease-in-out .15s, color ease-in-out .15s, border-color ease-in-out .15s;transition:background-color ease-in-out .15s, color ease-in-out .15s, border-color ease-in-out .15s}.btn-default:hover,.alertify-button-cancel:hover,.btn-default:focus,.alertify-button-cancel:focus,.btn-default:active,.alertify-button-cancel:active,.open .btn-default.dropdown-toggle,.open .alertify-button-cancel.dropdown-toggle{color:#036;border-color:rgba(0,128,255,0.1);background-color:rgba(102,128,153,0.04) !important}.btn-primary:hover,.alertify-button-ok:hover,.btn-primary:focus,.alertify-button-ok:focus,.btn-primary:active,.alertify-button-ok:active,.open .btn-primary.dropdown-toggle,.open .alertify-button-ok.dropdown-toggle{color:#036;border-color:rgba(0,128,255,0.1);background-color:#dae3eb !important}.btn-success:hover,.btn-success:focus,.btn-success:active,.open .btn-success.dropdown-toggle{color:#036 !important;border-color:rgba(0,128,255,0.1);background-color:rgba(89,128,166,0.05) !important}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.info-tooltip,.info-tooltip .btn-info,.open .btn-info.dropdown-toggle{color:#036;border-color:rgba(0,128,255,0.08);background-color:#f0f2f5 !important}.btn-link:hover{text-decoration:none}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:0}.btn-group>.btn+.dropdown-toggle{padding-right:11px;padding-left:11px}.form-control{-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025)}@media (min-width:768px){.form-inline .col-sm-1{width:8.33333333% !important}.form-inline .col-sm-2{width:16.66666667% !important}.form-inline .col-sm-3{width:25% !important}.form-inline .col-sm-4{width:33.33333333% !important}.form-inline .col-sm-5{width:41.66666667% !important}.form-inline .col-sm-6{width:50% !important}.form-inline .col-sm-7{width:58.33333333% !important}.form-inline .col-sm-8{width:66.66666667% !important}.form-inline .col-sm-9{width:75% !important}.form-inline .col-sm-10{width:83.33333333% !important}.form-inline .col-sm-11{width:91.66666667% !important}.form-inline .col-sm-12{width:100% !important}}.form-inline *{float:none}.form-control.error{border-color:#e84c3d;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 8px #e84c3d;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 8px #e84c3d}.help-block{font-size:12px}.input-group-addon{-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025)}a.input-group-addon{color:#1980e6}.input-group-btn .btn i{font-size:110%}.input-group-btn:first-child .btn{margin-right:6px}.input-group-btn:last-child .btn{margin-left:6px}.navbar{position:absolute;top:0;left:0;width:100%;padding:0;border:0;border-top:1px solid rgba(0,128,255,0.1);border-bottom:1px solid rgba(0,128,255,0.1);border-radius:0;z-index:20}.navbar .left-space,.navbar .right-space{width:25px;height:38px}.navbar .nav{float:left;margin:5px 9px;height:38px}.navbar .nav>li{display:inline-block}.navbar .nav.pull-right{float:right}.navbar .nav.pull-right>li>.dropdown-menu{right:0;left:auto}.navbar .nav.pull-right>li>.dropdown-menu .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0}.navbar .btn{height:38px;padding:6px 8px}.navbar .btn-group>.btn.disabled *,.navbar .btn-group>.btn.blocked *,.navbar .btn-group>.btn[disabled] *{color:rgba(54,77,99,0.3)}.navbar .button-open-discussion.some{color:#e0b800 !important}.navbar .button-open-discussion.replied{color:#e74434 !important}.navbar .file-title-navbar{display:inline-block;vertical-align:middle;padding:1px 15px;font-size:1.5em;line-height:1.45em;font-weight:200;overflow:hidden;white-space:nowrap}.navbar .file-title-navbar a i{-webkit-transition:all ease-in-out .15s;transition:all ease-in-out .15s}.navbar .file-title-navbar a .icon-link-ext-alt{color:transparent;position:relative;font-size:12px;top:-12px;right:6px;width:0}.navbar .file-title-navbar a:hover [class^=”icon-provider-“],.navbar .file-title-navbar a:hover [class*=” icon-provider-“]{opacity:.5;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);filter:alpha(opacity=50)}.navbar .file-title-navbar a:hover .icon-link-ext-alt{color:#036}.navbar .input-file-title-container{display:inline-block;vertical-align:middle}.navbar .input-file-title-container .input-file-title{width:400px;font-size:16px;height:38px}.navbar .working-indicator{display:inline-block;vertical-align:middle;overflow:hidden;height:38px;width:60px;padding-top:8px}.navbar .working-indicator .bar{display:inline-block;width:14px;height:6px;border-radius:1px;margin:0 2px;opacity:.25;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=25);filter:alpha(opacity=25);background-color:rgba(54,77,99,0.75)}.navbar .offline-status>div{display:inline-block;vertical-align:middle;height:38px;padding:9px 10px}.navbar .buttons-dropdown>.nav{margin-left:0;margin-right:0}.navbar div.dropdown-menu{top:initial;padding:5px;margin:10px}.menu-panel,.document-panel{height:100%;z-index:30;overflow:initial}.menu-panel .toggle-button,.document-panel .toggle-button{background-color:#fff;height:38px;border-radius:8px;position:absolute;margin-top:6px;-webkit-transition:border-width ease-in-out .15s, left ease-in-out 0.15s, right ease-in-out 0.15s, background-color ease-in-out 0.15s;transition:border-width ease-in-out .15s, left ease-in-out 0.15s, right ease-in-out 0.15s, background-color ease-in-out 0.15s;-webkit-box-shadow:0 0 1px rgba(0,0,0,.5);box-shadow:0 0 1px rgba(0,0,0,.5)}.menu-panel .toggle-button:active,.document-panel .toggle-button:active{-webkit-box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 1px rgba(0,0,0,.5);box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 1px rgba(0,0,0,.5)}.menu-panel .toggle-button i,.document-panel .toggle-button i{color:#737373;font-size:14px}.menu-panel .toggle-button:hover,.document-panel .toggle-button:hover,.menu-panel.panel-open>.toggle-button,.document-panel.panel-open>.toggle-button{border-width:1px}.menu-panel .panel-content,.document-panel .panel-content{overflow:auto;padding-bottom:30px;height:100%}.menu-panel .panel-content a>i,.document-panel .panel-content a>i{color:inherit}.menu-panel{position:absolute;top:0;right:0;width:320px}.menu-panel i{margin-right:8px}.menu-panel small{color:rgba(129,158,187,0.6);padding-left:30px}.menu-panel .nav{margin:10px 0 20px}.menu-panel .nav>li>a:hover,.menu-panel .nav>li>a:focus{background-color:rgba(0,0,0,0)}.menu-panel .alert{padding:10px;margin-left:-10px;margin-right:-10px}.menu-panel .toggle-button{border-top:4px solid rgba(255,230,0,0.9);border-right:5px solid rgba(117,183,253,0.9);border-bottom:4px solid rgba(255,138,0,0.9);right:-37px;z-index:-1;padding:0 10px 0 50px}.menu-panel .toggle-button:hover,.menu-panel.panel-open>.toggle-button{right:-45px}.menu-panel .panel-content{background-color:#f6f7f9;padding-top:6px;border-right:1px solid #ebf0f4}.document-panel{position:absolute;top:0;left:0;width:380px}.document-panel .toggle-button{border-top:4px solid rgba(255,230,0,0.9);border-left:5px solid rgba(187,213,0,0.9);border-bottom:4px solid rgba(255,138,0,0.9);left:-37px;padding:0 50px 0 3px;z-index:-1}.document-panel .toggle-button i.icon-folder-open{font-size:19px;padding-bottom:1px}.document-panel .toggle-button:hover,.document-panel.panel-open>.toggle-button{left:-45px}.document-panel .panel-content{background-color:#f6f7f9;padding-top:210px;border-left:1px solid #ebf0f4}.viewer .document-panel .panel-content{padding-top:75px}.document-panel .panel-content .icon-layers{font-size:135%}.document-panel .search-bar{position:absolute;background-color:#475160;margin:-10px 25px 0;padding:15px 20px;z-index:3;border:1px solid #dee6ed;border-radius:6px}.document-panel .search-bar .nav{margin-bottom:10px}.document-panel .search-bar .nav>li>a{padding:8px 15px}.document-panel .search-bar .nav>li>a:hover,.document-panel .search-bar .nav>li>a:focus{background-color:rgba(0,0,0,0)}.document-panel .list-group-item{margin:0}.document-panel .folder{font-weight:bold;color:#425e7b;border-top-color:#f2f5f8}.document-panel .list-group{margin:0}.document-panel .list-group .nav{border:0;margin:0}.document-panel .list-group .nav .file{padding-left:30px;padding-right:30px}.dropdown-file-selector{top:6px;right:45px;left:auto;margin:0;min-width:280px;max-width:400px;overflow-x:hidden;max-height:400px;overflow-y:auto}.modal-document-manager{margin-bottom:0}.modal-document-manager .nav-pills{margin-bottom:15px}.modal-document-manager .list-group .nav{margin-bottom:30px;border:0;margin:0}.modal-document-manager .list-group .nav .file{padding-left:20px}.modal-document-manager .file-list .list-group-item{background-color:rgba(0,0,0,0);padding:0 3px}.modal-document-manager .input-rename{width:220px;height:38px}.modal .list-group .list-group-item{border-radius:4px}.modal .list-group-item{padding:3px;margin:0;border-left-width:1px;border-right-width:1px}.modal .list-group-item i{margin-right:3px}.modal .list-group-item .btn{float:right;margin-right:3px}.modal .list-group-item .btn i{margin:0;font-size:105%}.modal .list-group-item .btn i.icon-pencil{font-size:115%}.modal .folder,.modal .document{font-weight:bold;color:#425e7b;font-size:15px;background-color:rgba(0,0,0,0)}.modal .name,.modal .date,.modal .file-count{padding:9px 20px 9px 15px}.modal .name i.icon-file,.modal .name i.icon-folder{margin-right:8px;font-size:20px;line-height:15px;margin-top:-2px}.modal .date{font-weight:normal}.extension-buttons>.btn-group>.btn,.extension-preview-buttons>.btn-group>.btn,.extension-buttons>.btn-group>.btn,.extension-preview-buttons>.btn-group>.btn{border-radius:0}.extension-buttons>.btn-group:first-child>.btn,.extension-preview-buttons>.btn-group:first-child>.btn,.extension-buttons>.btn-group:first-child>.btn,.extension-preview-buttons>.btn-group:first-child>.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.extension-buttons>.btn-group:last-child>.btn,.extension-preview-buttons>.btn-group:last-child>.btn,.extension-buttons>.btn-group:last-child>.btn,.extension-preview-buttons>.btn-group:last-child>.btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.extension-preview-buttons{position:absolute;right:0;bottom:0;z-index:40;background-color:#e4ebf1;border:1px solid #cfdae5;border-radius:4px;cursor:move}.extension-preview-buttons.animate{-webkit-transition:350ms ease-in-out all;transition:350ms ease-in-out all}.extension-preview-buttons .btn-group .btn{position:initial;border:0}.extension-preview-buttons .dropdown-menu{margin-top:6px;margin-bottom:6px;padding-bottom:20px}.extension-preview-buttons hr{margin:0}.extension-preview-buttons .markdown-syntax,.extension-preview-buttons .table-of-contents{overflow-y:auto;overflow-x:hidden;padding-right:20px;margin-right:-20px;width:330px}.extension-preview-buttons .markdown-syntax{white-space:normal}.extension-preview-buttons .table-of-contents{padding:20px 0 15px;margin-left:-10px}.extension-preview-buttons .table-of-contents ul{margin-left:10px;padding-left:10px}.extension-preview-buttons .stat-button .value{vertical-align:text-top}.extension-preview-buttons .drag-me{color:#364d63}.extension-preview-buttons .drag-me i:before{width:5px}.modal-settings .modal-header{padding-bottom:0}.modal-settings textarea{max-width:100%;min-height:100px}.modal-settings .panel{border:0;border-radius:inherit;background:#fff;border-bottom:1px solid #f2f5f8;-webkit-box-shadow:none;box-shadow:none}.modal-settings .accordion-heading{padding:12px 15px}.modal-settings .accordion-heading .checkbox{margin-top:0;margin-bottom:0}.modal-settings .accordion-inner{border:0;padding:10px 40px 20px}.modal-settings .accordion-inner .form-horizontal .control-label{text-align:left}.modal-settings .accordion-inner .form-horizontal .form-inline .label-text{margin-left:15px}.modal-settings .tab-pane-button-container{width:220px;margin:10px auto 20px}.modal-settings .tab-pane-button-container .btn{text-align:start;padding-left:15px}.modal-settings .nav-tabs{margin:15px 0 0}.modal-settings .nav-tabs>li>a:hover,.modal-settings .nav-tabs>li>a:focus{color:#036;border-color:rgba(0,128,255,0.1);background-color:rgba(102,128,153,0.04);border-bottom-color:rgba(0,0,0,0)}.modal-settings .nav-tabs>li.active>a,.modal-settings .nav-tabs>li.active>a:hover,.modal-settings .nav-tabs>li.active>a:focus{color:#2c3f51;background-color:#fff;border-color:#ebf0f4;border-bottom-color:rgba(0,0,0,0);margin-bottom:-1px;padding:10px 15px 11px}.modal-manage-sync .sync-list,.modal-manage-publish .publish-list,.modal-manage-sharing .share-editor-list,.modal-manage-sharing .share-viewer-list{margin-bottom:20px}.modal-manage-sync .sync-list .entry,.modal-manage-publish .publish-list .entry,.modal-manage-sharing .share-editor-list .entry,.modal-manage-sharing .share-viewer-list .entry{margin-bottom:10px}.publish-custom-template-collapse{margin-bottom:0}.publish-custom-template-collapse textarea{max-width:100%;min-height:100px}.layout-wrapper-l1,.layout-wrapper-l2,.layout-wrapper-l3{position:absolute;top:0;left:0;overflow:hidden}.layout-animate{-webkit-transition:-webkit-transform 350ms ease-in-out;-moz-transition:-moz-transform 350ms ease-in-out;-o-transition:-o-transform 350ms ease-in-out;transition:transform 350ms ease-in-out}.layout-resizer{position:absolute;top:0;left:0;width:32px;height:32px}.layout-resizer.open{cursor:e-resize}.layout-vertical .layout-resizer.open{cursor:s-resize}.layout-toggler{position:absolute;top:0;left:0;padding:0;margin:0;width:32px;height:32px}.layout-toggler i{font-size:22px}.layout-toggler.layout-toggler-preview{line-height:55px}.layout-animate .layout-toggler.layout-toggler-preview{-webkit-transition:-webkit-transform 350ms ease-in-out;-moz-transition:-moz-transform 350ms ease-in-out;-o-transition:-o-transform 350ms ease-in-out;transition:transform 350ms ease-in-out}.layout-toggler.layout-toggler-preview i:before{content:’\e87d’}.layout-toggler.layout-toggler-preview.open>i:before{content:’\e87e’}.layout-vertical .layout-toggler.layout-toggler-preview{line-height:1.45}.layout-vertical .layout-toggler.layout-toggler-preview i:before{content:’\e87f’}.layout-vertical .layout-toggler.layout-toggler-preview.open>i:before{content:’\e880′}.layout-toggler.layout-toggler-navbar{line-height:0}.layout-toggler.layout-toggler-navbar i{font-size:16px;height:12px;overflow:hidden}@font-face{font-family:’PT Sans’;font-style:normal;font-weight:400;src:local(‘PT Sans’),local(‘PTSans’),url(“../font/PTSans-Regular-webfont.woff”) format(‘woff’)}@font-face{font-family:’PT Sans’;font-style:normal;font-weight:700;src:local(‘PT Sans Bold’),local(‘PTSans-Bold’),url(“../font/PTSans-Bold-webfont.woff”) format(‘woff’)}@font-face{font-family:’PT Sans’;font-style:italic;font-weight:400;src:local(‘PT Sans Italic’),local(‘PTSans-Italic’),url(“../font/PTSans-Italic-webfont.woff”) format(‘woff’)}@font-face{font-family:’PT Sans’;font-style:italic;font-weight:700;src:local(‘PT Sans Bold Italic’),local(‘PTSans-BoldItalic’),url(“../font/PTSans-BoldItalic-webfont.woff”) format(‘woff’)}#wmd-input{position:absolute;top:0;left:0;font-family:”PT Sans”,sans-serif;line-height:1.65;letter-spacing:normal;border-radius:0;-webkit-box-shadow:none;box-shadow:none;resize:none;border:none;padding:0;overflow:auto;white-space:pre-wrap;word-wrap:break-word;word-break:normal}#wmd-input>.editor-content{padding-bottom:230px}#wmd-input>.editor-margin{position:absolute;top:0;left:0}#wmd-input>.editor-margin .discussion{font-size:17px;position:absolute;cursor:pointer}#wmd-input>.editor-margin .discussion.new{display:none}#wmd-input>.editor-margin .discussion.new:hover,#wmd-input>.editor-margin .discussion.new.active,#wmd-input>.editor-margin .discussion.new.active:hover{display:inline-block;color:rgba(102,128,153,0.35) !important}#wmd-input>.editor-margin .discussion.added{color:rgba(235,192,0,0.7)}#wmd-input>.editor-margin .discussion.added:hover,#wmd-input>.editor-margin .discussion.added.active,#wmd-input>.editor-margin .discussion.added.active:hover{color:#ebc000 !important}#wmd-input>.editor-margin .discussion.replied{color:rgba(230,59,43,0.7)}#wmd-input>.editor-margin .discussion.replied:hover,#wmd-input>.editor-margin .discussion.replied.active,#wmd-input>.editor-margin .discussion.replied.active:hover{color:rgba(230,59,43,0.8) !important}#wmd-input>.editor-margin .discussion.icon-split{font-size:22px}#wmd-input>.editor-margin .discussion.icon-split:before{margin-right:0}#wmd-input>.editor-margin .discussion:hover,#wmd-input>.editor-margin .discussion.active{text-decoration:none}#wmd-input.has-selection>.editor-margin .discussion.new{display:inline-block;color:rgba(102,128,153,0.25)}#wmd-input.font-monospaced *{font-family:”Source Code Pro”,monospace !important;line-height:1.65 !important;font-size:1em !important}#wmd-input.ace_editor{font-family:”Source Code Pro”,monospace !important}#wmd-input .comment-highlight,#wmd-input .find-replace-highlight{background-color:rgba(255,230,0,0.5)}#wmd-input .find-replace-select{background-color:#b5d5ff}#wmd-input .conflict{font-weight:bold;color:#e63b2b}#wmd-input .ace_print-margin{margin-left:-20px;background:none !important}.editor .md,.editor .hr{color:rgba(102,128,153,0.6);font-style:normal;font-weight:normal}.editor .code,.editor .pre{color:#29333d;font:normal .9em “Source Code Pro”,monospace}.editor .tag{color:#29333d;font:bold .9em “Source Code Pro”,monospace}.editor .tag .punctuation,.editor .tag .attr-value,.editor .tag .attr-name{font-weight:normal}.editor .latex,.editor .math{color:#668099}.editor .entity{font:italic .9em “Source Code Pro”,monospace;color:#668099}.editor .table{font:normal .9em “Source Code Pro”,monospace}.editor .table *{font-size:1em}.editor .comment{font-size:.9em;color:rgba(102,128,153,0.6)}.editor .keyword{color:#47596b;font-weight:bold}.editor .code,.editor .img,.editor .imgref,.editor .md-toc{background-color:rgba(102,128,153,0.075);border-radius:4px;padding:.15em 0}.editor .md-toc{font-size:2.5em;padding:.2em}.editor .md-underlined-text{color:inherit}.editor .blockquote{color:#668099}.editor .h1,.editor .h2,.editor .h3,.editor .h4,.editor .h5,.editor .h6{font-weight:600}.editor .h1 .md-hash,.editor .h2 .md-hash,.editor .h3 .md-hash,.editor .h4 .md-hash,.editor .h5 .md-hash,.editor .h6 .md-hash{color:rgba(102,128,153,0.4)}.editor .h1,.editor .h11{font-size:1.7em}.editor .h2,.editor .h22{font-size:1.4em}.editor .h3{font-size:1.2em}.editor .h4{font-size:1.1em}.editor .h5{font-size:1em}.editor .h6{font-size:.9em}.editor .em,.editor .em .md{font-style:italic}.editor .strong,.editor .strong .md{font-weight:bold}.editor .md-strike-text{text-decoration:line-through}.editor .url,.editor .email,.editor .md-underlined-text{text-decoration:underline}.editor .linkdef .url{color:rgba(102,128,153,0.6)}.editor .img,.editor .imgref{padding:.2em .4em;padding-right:0}.editor .md-bang,.editor .md-alt,.editor .md-title{color:#587ea4}.editor .md-checkbox{display:inline-block;font-size:0}.editor .md-checkbox:before{content:”\2610″;font-size:26px;vertical-align:-1px;line-height:0;cursor:pointer}.editor .md-checkbox.checked:before{content:”\2611″}.editor .md-checkbox.checked+.md-checkbox-content{text-decoration:line-through}.ace_dark .md,.ace_dark .hr{color:rgba(139,158,177,0.8)}.ace_dark .code,.ace_dark .img,.ace_dark .imgref,.ace_dark .md-toc{background-color:rgba(0,0,0,0.33)}.ace_dark .tag{color:#868686}.ace_dark .code,.ace_dark .pre{color:#868686}.find-replace{position:absolute;bottom:0;width:410px;background-color:#f6f7f9;padding:15px 20px;border-top:1px solid #dee6ed;border-right:1px solid #dee6ed;border-top-right-radius:6px}.find-replace .form-group{width:180px;padding:0 5px}.find-replace .close{position:absolute;right:20px;top:10px}.preview-panel{position:absolute;top:0;left:0;overflow:hidden;-webkit-box-shadow:inset 1px 0 rgba(0,128,255,0.06);box-shadow:inset 1px 0 rgba(0,128,255,0.06);z-index:9}.layout-animate .preview-panel{-webkit-transition:350ms ease-in-out all;transition:350ms ease-in-out all}.layout-vertical .preview-panel{-webkit-box-shadow:inset 0 1px rgba(0,128,255,0.06);box-shadow:inset 0 1px rgba(0,128,255,0.06)}.preview-container{position:absolute;overflow:auto}.wmd-prompt-background{display:none}div.dropdown-menu{padding:5px 20px;background-color:#475160}div.dropdown-menu p,div.dropdown-menu blockquote{margin:10px 0}div.dropdown-menu .stat{margin:20px 0 10px}div.dropdown-menu i{margin-right:0}div.dropdown-menu textarea{width:250px;height:150px;resize:none}div.dropdown-menu a:hover,div.dropdown-menu a:focus{color:#0f4d8a}div.dropdown-menu h1,div.dropdown-menu h2,div.dropdown-menu h3{margin:1em 0}.title-icon-category{display:inline-block;opacity:.15;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=15);filter:alpha(opacity=15);margin-top:-2px;margin-left:-2px;margin-right:3px;font-size:1em;vertical-align:top}.file-title-navbar .title-icon-category{font-size:16px}.picker-dialog{z-index:1050 !important}.picker-dialog-bg{z-index:1040 !important}.tooltip-inner{text-align:left}.tooltip li{line-height:1.4}input[type=”file”]{line-height:inherit;height:inherit;border:none !important}.drop-zone{border:2px dashed #bbb;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;padding:40px;text-align:center;font-size:24px;color:#bbb}.modal-import-harddrive-html textarea{width:530px;max-width:530px;height:120px}.label.comment{white-space:inherit}.sharing-tweet{float:left;margin:5px 10px 0 0}.popover{max-width:350px;padding:15px}.popover .popover-title{font-weight:300;font-size:24px;padding:10px 15px}.popover .disabled{display:none}.popover iframe{position:absolute}.comments-popover .popover{max-width:230px;padding:10px 20px 0}.comments-popover .popover .popover-title{padding:5px 0 15px;border-bottom:1px solid rgba(102,128,153,0.1);line-height:1.1;overflow:hidden}.comments-popover .popover .popover-title .action-remove-discussion{font-size:16px;line-height:22px}.comments-popover .popover .popover-content{margin:0;padding:0}.comments-popover .popover .popover-content .scrollport{overflow:auto;max-height:230px;padding:10px 20px 0;margin:0 -20px}.comments-popover .popover .popover-content .btn{padding:6px 11px}.comments-popover .popover .popover-content .comment-block{margin-bottom:5px}.comments-popover .popover .popover-content .form-group,.comments-popover .popover .popover-content blockquote{margin-bottom:10px;padding:0}.comments-popover .popover .popover-content .comment-author{font-weight:bold;color:#2c3f51}.comments-popover .popover .popover-content .icon-comment{font-size:15px;color:rgba(235,192,0,0.6)}.comments-popover .popover .popover-content .reply .icon-comment{color:rgba(230,59,43,0.7)}.comments-popover .popover .popover-content .new-comment-block .icon-comment{color:rgba(102,128,153,0.35)}.comments-popover .popover .popover-content .input-comment-author{border:none;background:none;-webkit-box-shadow:none;box-shadow:none;font-weight:bold;height:28px;padding:0 0 5px;width:140px;display:inline-block}.comments-popover .popover .popover-content hr{margin:0 0 10px}.comments-popover .popover.top .arrow,.comments-popover .popover.bottom .arrow{margin-right:1px;border-right-width:0}.comments-popover .popover.top .arrow:after,.comments-popover .popover.bottom .arrow:after{margin-left:-11px;border-right-width:0}.comments-popover .popover.top .arrow:after{bottom:2px}.comments-popover .popover.bottom .arrow:after{top:2px}div.jGrowl{z-index:1040;font-size:14px}div.jGrowl.bottom-right{right:35px}div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{background-color:rgba(115,128,140,0.9);width:240px;margin:6px 0;padding:10px 12px;-ms-filter:none;filter:none;border-radius:4px;font-family:”Helvetica Neue”,Arial,”Hiragino Sans GB”,”STHeiti”,”Microsoft YaHei”,”WenQuanYi Micro Hei”,SimSun,Song,sans-serif}div.jGrowl div.jGrowl-notification{min-height:65px}.viewer .document-panel .search-bar{padding:20px 20px 10px}.viewer .document-panel .search-bar .input-group-btn{display:none}.viewer .navbar .file-title-navbar{cursor:initial;-webkit-box-shadow:none;box-shadow:none}@media print{html,body{background:transparent !important;overflow:visible !important}.layout-wrapper-l1>*,.layout-wrapper-l2>*,.layout-wrapper-l3>*,.preview-panel>*,#titlebar,#ime-focus-saver{display:none !important}.layout-wrapper-l2:before{visibility:hidden}.layout-wrapper-l1,.layout-wrapper-l2,.layout-wrapper-l3,.preview-panel,.preview-container{background:transparent !important;display:block !important;position:static !important;overflow:visible !important;width:auto !important;height:auto !important;-webkit-transform:translate(0, 0) !important;-ms-transform:translate(0, 0) !important;transform:translate(0, 0) !important;-webkit-box-shadow:none !important;box-shadow:none !important}#preview-contents{padding:0 50px !important}#images_area{display:none}#toast-container{display:none}thead{display:table-header-group}tr,img,svg,pre,blockquote,p{page-break-inside:avoid}img{max-width:100% !important}h2,h3{page-break-after:avoid}select{background:#fff !important}}.layout-toggler{display:none}.editor-navbar{-webkit-transition:none;transition:none;position:absolute;z-index:10;right:50%;background:none !important;margin-top:6px;margin-right:20px}.editor-navbar .editor-navbar-bg{width:100%;height:100%;position:absolute;left:0;top:0;opacity:.8;pointer-events:none;border-radius:4px}.editor-navbar .btn{color:inherit;opacity:.5}.editor-navbar .btn:hover{opacity:.9}.editor-navbar .btn:active,.editor-navbar .btn:focus{color:inherit !important}.editor-navbar .btn-success:hover,.editor-navbar .btn-success:focus,.editor-navbar .btn-success:active,.editor-navbar .btn-success.active,.editor-navbar .open .dropdown-toggle.btn-success{color:inherit !important}.preview-buttons-container .btn{color:rgba(102,128,153,0.35)}.preview-buttons-container .btn:hover,.preview-buttons-container .btn:active,.preview-buttons-container .btn:focus{color:#036}.preview-buttons-container .btn,.editor-navbar-buttons .btn{font-size:16px}.editor-navbar-buttons>.btn-group{display:inline-block}.wmd-buttons-group{display:inline-block}.wmd-buttons-group .wmd-button-group1{opacity:0;-webkit-transition:all ease-in-out .2s;transition:all ease-in-out .2s;-webkit-transition-delay:.6s;transition-delay:.6s}.wmd-buttons-group .wmd-button-group1 li{display:none}.wmd-buttons-group:hover .wmd-button-group1{opacity:1;visibility:visible}.wmd-buttons-group:hover .wmd-button-group1 li{display:block}.shrink-editor-btn{display:none}.file-status-lock{display:none}.resize-editor-btn{position:fixed;right:50%;bottom:10px;margin-right:20px}.open-folder-btn{background:none;border:2px solid;border-radius:0 10px 10px 0;padding:1px 4px;left:-5px;top:6px;position:absolute;border-color:inherit;border-color:currentColor;opacity:.5;z-index:10;color:inherit}.open-folder-btn:hover{color:inherit;opacity:.9}.profile-btn{top:10px;background:none;box-shadow:none;padding:3px;border:2px solid rgba(102,128,153,0.35);border-radius:40px;border-color:currentColor;margin-left:10px}.profile-btn:hover{border-color:currentColor}.preview-buttons-container{position:absolute;z-index:100;margin-top:6px;right:20px}.ui-layout-resizer-south-closed .preview-buttons-container{display:none !important}.preview-buttons-container .btn-group .btn{position:initial}.preview-buttons-container .dropdown-menu{padding-bottom:20px}.preview-buttons-container .markdown-syntax,.preview-buttons-container .table-of-contents{overflow-y:auto;overflow-x:hidden;padding-right:20px;margin-right:-20px;width:330px}.preview-buttons-container .markdown-syntax{white-space:normal;max-height:350px}.preview-buttons-container .table-of-contents{margin-left:-10px;max-height:400px}.preview-buttons-container .table-of-contents ul{margin-left:10px;padding-left:10px}#theme-list{max-height:500px;overflow-x:hidden;overflow-y:scroll}.editor-hosted-buttons{display:inline-block}#app_wrap.no-preview .preview-buttons{display:inline-block}.preview-buttons{padding-right:10px}.full-editor-btn.open .icon-resize-full{display:inline-block}.full-editor-btn.open .icon-resize-small-1{display:none}.full-editor-btn .icon-resize-full{display:none}.full-editor-btn .icon-resize-small-1{display:inline-block}#app_wrap.no-preview .editor-navbar{-webkit-transition:all ease-in-out .2s;transition:all ease-in-out .2s;right:20px;margin-right:0}.dropdown-menu{background-color:#546072;border-color:#3e4755}.dropdown-menu>li>a{color:#eee;padding:5px 20px;border-top:1px solid transparent;border-bottom:1px solid transparent}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#eee;background-color:#4b5666;border-color:#475160}.dropdown-menu>li>a.selected{background:#74b936 !important;color:#fff !important}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{border-color:transparent}.menu-panel .panel-content,.document-panel .panel-content{background-color:#546072}.modal-content,.panel-content{-webkit-box-shadow:0 1px 4px 2px rgba(0,0,0,0.3);box-shadow:0 1px 4px 2px rgba(0,0,0,0.3)}.document-panel .panel-content{border-left:none}.menu-panel .panel-content{border-right:none}.list-group .nav{border-left:10px solid #e4ebf1;margin-left:15px}.list-group .nav>li>a{border-top:1px solid rgba(0,0,0,0);border-bottom:1px solid rgba(0,0,0,0)}.list-group .nav>li>a:hover,.list-group .nav>li>a:focus{border-top-color:#475160;border-bottom-color:#475160}.list-group .nav>li>a.active{border-top-color:rgba(0,128,255,0.05);border-bottom-color:rgba(0,128,255,0.05)}.list-group .nav>li:focus{outline:none}.list-group .nav>li.active>a{background:#4b5666;border-top-color:rgba(0,128,255,0.05);border-bottom-color:rgba(0,128,255,0.05)}.nav-pills>li>a{border:1px solid rgba(0,0,0,0)}.nav-pills>li>a:hover,.nav-pills>li>a:focus{border-color:#475160}.nav-pills>li.disabled>a:hover,.nav-pills>li.disabled>a:focus{border-color:rgba(0,0,0,0)}.nav-pills>li.open>a,.nav-pills>li.open>a:hover,.nav-pills>li.open>a:focus{border-color:#475160}.list-group-item{padding:10px 15px;margin-bottom:0}.list-group .list-group-item{border-radius:0;background:#546072}.list-group-item:hover{border-top-color:#475160;border-bottom-color:#475160;background:#4b5666 !important}.list-group-item:focus,.active>.list-group-item{border-top-color:#475160;border-bottom-color:#475160;background:#3a424f !important}a.list-group-item{-webkit-transition:none;transition:none}a.list-group-item:hover,a.list-group-item:focus{color:#eee}.username{padding:10px 20px;background:#454f5d;color:#fff;margin-top:-6px}.vip-status{float:right;background:#74b936;color:#fff;border-radius:20px;padding:2px;-webkit-transition:all ease-in-out 0.35s;transition:all ease-in-out 0.35s;cursor:pointer}.vip-status .renew{padding:0 6px;display:none}.vip-status:hover .renew{display:inline}.vip-status.expired{background:#ccc}.vip-status .icon{margin-right:0}.menu-panel i{margin-right:2px}.menu-panel .sub-menu,.document-panel .sub-menu{background:#4b5666;box-shadow:#000 0 0 7px -4px inset}.menu-panel .sub-menu a,.document-panel .sub-menu a{color:#eee}.menu-panel .sub-menu .nav,.document-panel .sub-menu .nav{margin-left:0;border-left:none;margin:0}.menu-panel .sub-menu .nav li:hover,.document-panel .sub-menu .nav li:hover{background:#454f5d}.document-panel.panel-open{width:385px}.document-panel .panel-content{background-color:#546072;padding-top:60px}.document-panel .panel-content .icon-layers{font-size:135%}.document-panel .search-bar{position:absolute;background-color:#475160;margin:-10px 25px 0;padding:20px 5px 10px 15px;z-index:3;border:1px solid #3e4755;border-top:0;border-radius:6px;width:100%;margin:0;border-radius:0;box-shadow:none;padding:10px 10px}.document-panel .search-bar .input-group-addon{color:#eee;background-color:#546072;border-color:#3e4755;border-left:1px solid #3e4755}.document-panel .search-bar input[type=’text’]{border-color:#3e4755}.document-panel .dropdown-header{padding-top:10px}#search-and-sync input{width:calc(100% – 30px)}#search-and-sync .input-group-addon,#search-and-sync input{border-radius:4px;border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-left-radius:4px;border-top-left-radius:4px}.file-action{float:right;display:none}.file-action i{padding-top:2px}.folder-wrapper .icon-folder-open-empty{display:none}.folder-wrapper.active .icon-folder-open-empty{display:inline-block}.folder-wrapper.active .icon-folder-empty{display:none}.folder-wrapper.active a.collapsed .icon-folder-open-empty{display:none}.folder-wrapper.active a.collapsed .icon-folder-empty{display:inline-block}.folder-wrapper .file-notebook{display:none !important}.folder-wrapper.active>.list-group-item{border-top-color:#3a424f;border-bottom-color:#3a424f}.folder-wrapper>.list-group-item .shared-icon{float:right}.file-item:hover .file-action,li.active>.file-item .file-action{display:block}.file-item:hover .file-notebook,li.active>.file-item .file-notebook{display:none}.file-item .file-notebook{float:right;opacity:.8}.file-item .file-notebook .label{display:inline-block;max-width:130px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.file-item .file-notebook .icon-star-empty{color:rgba(255,255,255,0.66)}.file-item .file-notebook .label{padding:.4em .6em}.file-item.synced{color:#bbb}.file-status-label{color:#aaa}.archive-splitter:last-child{display:none}.document-list{height:100%;overflow:auto;position:relative}.document-list .sub-menu .file-item{background:none}.document-list .sub-menu .file-item:hover,.document-list .sub-menu .file-item:focus{background:none !important}.document-list ul>li.active .file-item,.document-list .file-wrapper.active .file-item{background:#74b936 !important;color:#fff}.document-list ul>li.active .file-status-label,.document-list .file-wrapper.active .file-status-label{color:#fff}.document-list ul>li.active .label-success,.document-list .file-wrapper.active .label-success{background:#2a4313}.folder-top{position:absolute;display:none;z-index:10000;width:100%}.footer-left-btn{float:left;position:relative}.extension-preview-buttons{background-color:#546072;border-color:#3e4755}.extension-preview-buttons .drag-me{color:#eee}.extension-preview-buttons .btn-success{color:#eee}.extension-preview-buttons .btn-success:hover,.extension-preview-buttons .btn-success:active{color:#eee !important;background-color:#454f5d !important}.extension-preview-buttons .open .btn-success{color:#eee !important;background-color:#454f5d !important}.extension-preview-buttons .dropdown-menu{background-color:#fff;border-color:#dee6ed}.extension-preview-buttons.closed{opacity:.25;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=25);filter:alpha(opacity=25)}.extension-preview-buttons.closed.info-tooltip-container{opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100)}.atwho-view-ul{max-height:300px;overflow:scroll;position:relative}.atwho-view-ul li[shared=”1″]:before{content:’\e954′;margin-right:.4em;margin-left:0}#app_wrap.readonly .editor-navbar-buttons,#app_wrap.readonly .save-file{display:none}#app_wrap.readonly .file-status-lock{display:inline-block}.markdown-syntax pre{margin:0;background:none;font-size:12px}.markdown-syntax table td{border:2px solid #fff}.markdown-syntax table tr td:first-child{background:#91b82d;color:#fff;font-weight:bold}.markdown-syntax table tr td{background:#eee}.markdown-syntax table tr td i{font-size:12px;color:#aaa;font-style:initial}.markdown-syntax table tr td:last-child{background:#fff}.markdown-syntax kbd{padding:.1em .6em;border:1px solid #ccc;font-size:11px;background-color:#f7f7f7;color:#333;-moz-box-shadow:0 1px 0 rgba(0,0,0,0.2),0 0 0 2px #fff inset;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.2),0 0 0 2px #fff inset;box-shadow:0 1px 0 rgba(0,0,0,0.2),0 0 0 2px #fff inset;border-radius:3px;display:inline-block;margin:0 .2em;text-shadow:0 1px 0 #fff;line-height:1.4;white-space:nowrap}.modal-help .modal-dialog{width:870px}.modal-help .modal-dialog .markdown-table{float:left}.modal-help .modal-dialog .key-table{width:260px;float:right}.modal-changelog .modal-dialog .modal-body{text-align:left}#toggle-preview{display:none}.full-preview{overflow-x:hidden;overflow-y:scroll;padding:0;background:#fff}.full-preview .layout-wrapper-l3{overflow-x:hidden;overflow-y:scroll}.full-preview #wmd-input,.full-preview #ace-input,.full-preview .extension-preview-buttons,.full-preview .editor-navbar,.full-preview .modal-backdrop,.full-preview .preview-buttons,.full-preview .open-folder-btn{display:none}.full-preview .preview-container{width:auto !important;position:relative;height:auto !important;overflow-y:hidden}.full-preview .preview-panel{position:relative;max-width:960px;margin:auto;left:0;width:auto !important;height:auto !important;transform:none !important;-webkit-transform:none !important;-ms-transform:none !important;overflow:visible;display:block !important;min-height:100%;-webkit-transition:all ease-in-out .4s;transition:all ease-in-out .4s;-webkit-box-shadow:none;box-shadow:none}.full-preview .preview-panel:before{background:inherit;content:’ ‘;position:absolute;width:100%;height:100%;top:0;left:-100%}.full-preview .preview-panel:after{background:inherit;content:’ ‘;position:absolute;width:100%;height:100%;top:0;right:-100%}.full-preview #toggle-preview{display:block;font-size:24px;position:absolute;right:10px;top:10px;color:#aaa;cursor:pointer;color:rgba(102,128,153,0.35);z-index:10}.full-preview #toggle-preview:hover,.full-preview #toggle-preview:active,.full-preview #toggle-preview:focus{color:#036}#readme,#images_area{display:none}#titlebar{height:20px;line-height:18px;z-index:1000000}#titlebar~.layout-wrapper-l1{top:20px}#titlebar~.layout-wrapper-l1 .open-folder-btn{top:22px}#titlebar [class^=’icon’]:before{margin:0 .1em}#titlebar i{opacity:.8;cursor:pointer}#titlebar i:hover{opacity:.9}#titlebar .window-file{position:absolute;left:1px}#titlebar-bg{position:absolute;width:100%;height:100%;-webkit-filter:contrast(112%)}#dragbar{height:100%;-webkit-app-region:drag;overflow:hidden;margin:0 20px}#dragbar.disabled{-webkit-app-region:no-drag}.window_resizer{float:right;margin-top:1px}.editor-hosted-buttons{display:inline-block}.window-fullscreen{position:absolute;right:4px;top:-1px}body.app{overflow:hidden}body.app .open-folder-btn{display:none}body.app .for-mac{display:none}body.app.mac .window_resizer{display:none}body.app.mac .window_resizer.for-mac{float:left;display:flex;margin-left:4px;margin-top:0}body.app.mac #titlebar .window-file{position:static;order:4;margin-left:15px}body.app.mac #titlebar i{margin:1px}body.app.mac .window-close{order:1}body.app.mac .window-min{order:2}body.app.mac .window-max{order:3}body.app img[src^=’http’]{animation:img_load .1s;-webkit-animation:img_load .1s}body.app .preview-container{user-select:auto;-webkit-user-select:auto}@-webkit-keyframes img_load{0%{opacity:.9}100%{opacity:1}}#settings .col-lg-4{float:left;text-align:right;width:33.33333333%}#settings .col-lg-7{float:left;width:58.33333333%}#settings .form-inline .col-lg-7{width:58.33333333%}#settings .form-inline .form-control{display:inline-block}#settings .form-inline *{float:none}#settings .help-block{font-size:12px}#settings .form-control{height:34px}#settings textarea.form-control{width:100%}.toast-warning:before{content:”\e859″}.toast-error:before{content:”\e81b”}.toast-info:before{content:”\e829″}.toast-success:before{content:”\e817″}.modal.slim .modal-dialog{width:400px}.modal.slim .modal-title{text-align:inherit}.modal.slim .modal-content{background:#fff;text-align:center}.modal.slim .modal-content p{color:#777}.modal.slim .modal-body{padding-top:0;padding-bottom:0}.modal.slim .modal-footer{border:none;text-align:center}.modal.slim .modal-header{border:none;color:#546072}.modal.slim .btn-primary{background:#74b936;color:#fff}.modal.slim .btn-primary:hover,.modal.slim .btn-primary:active,.modal.slim .btn-primary:focus{background:#68a530 !important}.modal-dialog.slim .modal-header{padding:10px 15px}.modal-dialog.slim .modal-body{padding:10px 20px}.modal-dialog.slim .modal-footer{padding:10px;background-color:#fff}.modal.error .modal-header{color:#b90b0b}#ace-input{display:none}.layout-wrapper-l2:before{position:absolute;content:”;width:100%;height:100%;background:#f9fafb}#preview-contents{margin-top:30px;padding-left:10px;padding-right:10px}.ace_dark .ace_gutter{color:#aaa !important;background:rgba(0,0,0,0.2) !important}.ace_gutter-cell{padding-left:0 !important}.attachment-wrapper{overflow:hidden}.attachment-placeholder{float:left;display:block}.attachment-placeholder:hover{text-decoration:none}.attachment-placeholder i{font-size:3em;float:left}.attachment-placeholder .file-name{vertical-align:-0.6em;font-weight:bold;line-height:1.8em}.attachment-placeholder .file-size{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;opacity:.6;font-size:80%;white-space:nowrap}.attachment-placeholder img{display:none}#edit-conflict-container{left:50%;bottom:6px;right:1em;margin-left:1em;position:fixed;z-index:11111111;display:none}#edit-conflict-container .toast{margin-bottom:0}#edit-conflict-container .message-content{background-color:#f9f0e3;color:#cf8321;padding:4px 4px;border-radius:4px;float:left;padding-right:10px}.no-preview #edit-conflict-container{left:0}@media (max-width:450px){.full-editor-btn{display:none}}#loading{position:fixed;top:0;left:0;bottom:0;right:0;z-index:10000000;background:#fff;color:#74b936;text-align:center}#loading .loading-container{position:absolute;margin:auto;left:0;right:0;top:30%;bottom:0}#loading b{color:#fff;background:#74b936;font-weight:normal;padding:5px 5px;margin:10px;font-size:50px}#loading h1,#loading h2,#loading h3,#loading h4{font-family:”Helvetica Neue”,Arial,”Hiragino Sans GB”,”STHeiti”,”Microsoft YaHei”,”WenQuanYi Micro Hei”,SimSun,sans-serif;text-align:center}#loading .reverse{color:#fff !important;background:#74b936 !important;padding:4px;border-radius:4px}#loading #loading-app-name{text-align:center;font-size:54px;margin-top:0;margin-bottom:.8em}#loading #loading-slogan{font-weight:normal}#loading #loading-text{margin:80px auto;text-align:center;margin-bottom:40px}#loading #loading-view-doc{font-size:16px;margin:10px auto}#loading #loading-view-doc a{padding:10px;border-radius:6px;border:1px solid #74b936}#loading #loading-view-doc a:link,#loading #loading-view-doc a:hover,#loading #loading-view-doc a:active,#loading #loading-view-doc a:visited{color:#74b936;text-decoration:none}.slim-scroll ::-webkit-scrollbar{height:10px;width:7px;background:transparent}.slim-scroll ::-webkit-scrollbar:hover{background:rgba(128,128,128,0.1)}.slim-scroll ::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.3);-webkit-border-radius:6px}.slim-scroll ::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.6)}.slim-scroll ::-webkit-scrollbar-corner{background:#000}.slim-scroll .ace_dark .ace_scrollbar::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.3);-webkit-border-radius:6px}.slim-scroll .ace_dark .ace_scrollbar::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.6)}.slim-scroll .ace_scroller{right:4px !important}.slim-scroll .ace_scrollbar-v{right:4px !important}.slim-scroll #preview{right:2px}.atwho-view{position:absolute;top:0;left:0;display:none;margin-top:18px;background:#fff;color:#000;border:1px solid #ddd;border-radius:3px;box-shadow:0 0 5px rgba(0,0,0,0.1);min-width:120px;z-index:11110 !important}.atwho-view .cur{background:#36f;color:#fff}.atwho-view .cur small{color:#fff}.atwho-view strong{color:#36f}.atwho-view .cur strong{color:#fff;font:bold}.atwho-view ul{list-style:none;padding:0;margin:auto}.atwho-view ul li{display:block;padding:5px 10px;border-bottom:1px solid #ddd;cursor:pointer}.atwho-view small{font-size:smaller;color:#777;font-weight:normal}
–>
<!–
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/

code[class*=”language-“],
pre[class*=”language-“] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, ‘Andale Mono’, ‘Ubuntu Mono’, monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;

-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;

-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}

pre[class*=”language-“]::-moz-selection, pre[class*=”language-“] ::-moz-selection,
code[class*=”language-“]::-moz-selection, code[class*=”language-“] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}

pre[class*=”language-“]::selection, pre[class*=”language-“] ::selection,
code[class*=”language-“]::selection, code[class*=”language-“] ::selection {
text-shadow: none;
background: #b3d4fc;
}

@media print {
code[class*=”language-“],
pre[class*=”language-“] {
text-shadow: none;
}
}

/* Code blocks */
pre[class*=”language-“] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}

:not(pre) >–> code[class*=”language-“],
pre[class*=”language-“] {
background: #f5f2f0;
}

/* Inline code */
:not(pre) > code[class*=”language-“] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}

.token.punctuation {
color: #999;
}

.namespace {
opacity: .7;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #a67f59;
background: hsla(0, 0%, 100%, .5);
}

.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}

.token.function {
color: #DD4A68;
}

.token.regex,
.token.important,
.token.variable {
color: #e90;
}

.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}

.token.entity {
cursor: help;
}
–>
<!–
pre.line-numbers {
position: relative;
padding-left: 3.8em;
counter-reset: linenumber;
}

pre.line-numbers >–> code {
position: relative;
}

.line-numbers .line-numbers-rows {
position: absolute;
pointer-events: none;
top: 0;
font-size: 100%;
left: -3.8em;
width: 3em; /* works for line-numbers below 1000 lines */
letter-spacing: -1px;
border-right: 1px solid #999;

-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;

}

.line-numbers-rows > span {
pointer-events: none;
display: block;
counter-increment: linenumber;
}

.line-numbers-rows > span:before {
content: counter(linenumber);
color: #999;
display: block;
padding-right: 0.8em;
text-align: right;
}
–>

进程间通信

进程间通信(IPC,Inter-Process Communication),多进程开发中,进程间通信是一个永远也绕不开的问题。在 web开发中,我们经常遇到的并发请求问题,本质上也可以作为进程间通信来处理。

进程间通信,指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位(严格说来是线程)。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。

根据定义可知,要进行进程间通信,我们需要解决两个问题:

  • 互相访问:消息传输和暂时存储介质选择问题;
  • 协调工作:消息的存取冲突问题;

文章介绍的中心就是围绕着这么两点来说的, 为了更使文章更简明,这边以之前在公司做的一个需求为例:

需要一个循环ID生成器,循环生成从 Min 到 Max 的数字ID,在ID递增到 Max 后,返回到 Min 重新开始递增;必须能保证多个进程并发请求时生成的ID不同。

此需求要解决的问题恰好为我们要解决的进程间通信需要解决的两个问题:

  • 需要一个消息传输通道来传输和存储当前的递增值。这个比较容易解决,我们常用的文件、数据库、session、缓存等都能做到。
  • 需要解决多进程同时访问生成器生成相同ID的问题。要满足这个需要就必须要用到锁了,而且为了保证多个进程读取的数据是不同的,需要互斥锁,另外为了能保证调用成功率,锁的获取最好能实现自旋。

本文通过此需求的不同实现,来介绍通过外部介质进行的进程间通信的方式。另外,不只PHP语言,其他语言也能使用这些方法。

文章如有错漏之处,烦请指出,如果您有更优的办法,欢迎在下面留言讨论。


文件

flock

文件是最基本的存储介质,它当然可以作为消息的传输通道来使用。文件的存取各种语言都有各自的多种方案,问题点是多进程并发时的冲突问题。

解决存取冲突问题我们使用PHP的 flock() 函数:

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )

  • $handler 是 使用fopen($path_to_file)获取到的文件句柄;
  • $operation 是 对文件加锁的方式,有以下值可选:

    LOCK_SH (获取共享锁) / LOCK_EX (获取互斥锁) / LOCK_UN (解锁)

    这里我们选用互斥锁,一个进程获取到互斥锁后,其他进程在尝试获取锁会被阻塞,直到锁被释放,即实现了自旋;

    此外,还有一个参数 LOCK_NB,flock 在获取不到锁时,默认会阻塞住直到锁被其他进程释放,传入 LOCK_NB 与 LOCK_SH 或 LOCK_EX 进行或运算结果(LOCK_EX | LOCK_NB),flock 在锁被其他进程占有时,不会阻塞,而是直接返回 false,这里仅作介绍,我们并不使用它。

  • $wouldblock 参数是一个引用值,在获取不到锁,且不阻塞模式时,$wouldblock 会被设置为 true;(手册中说阻塞时才会被设置为 true。其实我也奇怪这个变量名的。不知道是不是 bug,我的PHP版本是 5.4.5,有知道的烦请解惑)

代码实现

下面是循环ID生成器代码,说明在注释中:


function getCycleIdFromFile($max, $min = 0) {
$handler = fopen('/tmp/cycle_id_generator.txt', 'c+');
if (!flock($handler, LOCK_EX)) {
throw new Exception('error_get_file_lock!');
} $cycle_id = trim(fread($handler, 9));
$cycle_id++; if ($cycle_id > $max) {
$cycle_id = $min;
} // 文件指针返回到文件头,并向文件内写入新的cycle_id
rewind($handler);
fwrite($handler, $cycle_id); // 多写入一些空格为了防止数值升到多位后,突然置为少位后面的数字仍保留
fwrite($handler, str_repeat(' ', 9)); flock($handler, LOCK_UN); return $cycle_id;
}

mysql

select for update

我们常用的 mysql 也可以被当作中间介质来实现进程间的通信,我们规定好某一个数据表内的某一行数据作为消息交换的中转站,使用 mysql 自带的锁来协调多个进程的存取冲突。

事务的设计目的就是为了解决多进程并发查询时数据冲突的问题,可是我们常用的事务只能保证数据冲突时会被回滚,数据不会出现错误,并不能实现请求的并行化。对一些数据冲突回滚的请求,需要我们在外层添加逻辑重试。

这里介绍 mysql 的一种语法: select for update,会给固定数据加上互斥锁,且另一个请求在获取锁失败时,会阻塞至获取锁成功,mysql 帮我们实现了自旋;

用法如下:

  1. 关闭 mysql 的自动提交,自动提交默认打开,除非使用 transition 语句显示开启事务,默认会将每一条 sql 作为一个事务直接提交执行,这里关闭。 set autocommit=0;
  2. 使用select for update 语句给数据添加互斥锁。注意:需求 mysql 的 innodb 引擎支持;
  3. 进行数据更新和处理操作;
  4. 主动提交事务,并将 自动提交恢复;commit; set autocommit=1;

代码实现

然后是代码实现:


// 数据库连接实现各有不同,demo 可以自己修改一下。
function getCycleIdFromMysql($max, $min = 0){
Db::db()->execute('set autocommit = 0');
$res = Db::db()->qsqlone('SELECT cycle_id FROM cycle_id_generator WHERE id = 1 FOR UPDATE'); $cycle_id = $res['cycle_id'] + 1;
if($cycle_id > $max){
$cycle_id = $min;
} Db::db()->execute("UPDATE cycle_id_generator SET cycle_id = {$cycle_id} WHERE id = 1"); Db::db()->execute('commit');
Db::db()->execute('set autocommit = 1'); return $cycle_id;
}

redis

incr

redis 是我们常用的缓存服务器,由于其使用内存存储数据,性能很高。我们使用一个固定的普通键来作为消息中转站,然后利用其 incr 命令的原子性和其执行结果(递增后的值),实现 cycle_id 的递增。

incr(key) 若 key 不存在,redis 会先将值设置为0,然后执行递增操作;

递增没有问题,可是我们还有个需求是在要其值达到 max 时,再将其置为 min,这时就可能会出现进程A在更新值为 min 时,另一个进程B也检测到值大于了 max,然后将值置为 min,可是这时的值已经不是 max,即发生了值重复更新,那么返回的值必然会有重复;

这时,我们就需要自己来实现锁了。

SETNX

redis 的 SETNX 命令检测某一个 key 是否存在,若不存在,则将 key 的值设置为 value,并返回结果1; 若 key 已存在,则设置失败,返回值0。

SETNX key value

它能实现锁是因为它是一个原子命令,即 检测 key 是否存在和设置 key 值在一个事务内,不会出现同时两个进程都检测到 key 不存在,然后同时去设置 key 的情况。

我们以另一个值的存在与否,来表示 cycle_id 是否正在被另一个进程修改。

代码实现


function getCycleIdFromRedis($max, $min = 0) {
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$key_id = 'cycle_id_generator'; $cycle_id = $redis->incr($key_id); if ($cycle_id > $max) {
// 设置"锁键"的结果 = 获取互斥结果
$key_lock = 'cycle_id_lock';
if (!$redis->setnx($key_lock, 1)) {
return null;
} $cycle_id = $min;
$redis->set($key_id, $cycle_id); // 最后别忘记释放互斥锁
$redis->delete($key_lock);
} $redis->close(); return $cycle_id;
}

注意:由于 redis 里没有能实现自旋锁的命令,如果需求最高的获取成功率,我们在检测到 cycle_id 已经是最大值,且试图修改获取锁失败时,退出重试,在外层进行重试。


function getCycleId($max, $min = 0) {
$cycle_id = getCycleIdFromRedis($max, $min);
if (!is_null($cycle_id)) {
return $cycle_id;
}
// 稍微等待下正在更改的进程
usleep(500);
// 这里使用递归,直至获取成功 并发很高,cycle_id重置很频繁时慎用.
return getCycleId($max, $min);
}

优化

审查代码我们会发现,如果 max-min 的值很小的话,redis 会需要经常重置 key 的值,也就经常需要加锁,重试也就很多。这里,我提供一个优化方法:

我们将其 max 设置为一个很大的值(要能被 max-min 整除),返回值时稍做处理,返回 $current % ($max - $min) + $min;。这样,key 需要递增到一个很大的值才会被重置,加锁逻辑和外层逻辑会很少执行到,达到提升效率的目的。

总结:

这里简单的评价一下上面所说的三种方法:

  • 性能上没有测试,而且 redis 的性能跟 ID 的大小差值相关,不过猜测在ID大小差值大的情况下 redis 应该更好一点。

  • 代码上非常直观,使用 mysql 非常简洁,而且 redis 要自己实现自旋,比较恶心。

  • 实现上,当然是文件最为方便,无任何添加。

本文介绍的都是通过外部介质来进行的通信,下篇介绍下通过 PHP内置函数库来进行进程间通信,欢迎关注;

如果您觉得本文对您有帮助,您可以点一下推荐。博客持续更新,欢迎关注。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,077
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,552
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,401
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,813
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,896