/*!**/
/** Copyright 2015 Open Networking Laboratory*/
/***/
/** Licensed under the Apache License, Version 2.0 (the "License");*/
/** you may not use this file except in compliance with the License.*/
/** You may obtain a copy of the License at*/
/***/
/**     http://www.apache.org/licenses/LICENSE-2.0*/
/***/
/** Unless required by applicable law or agreed to in writing, software*/
/** distributed under the License is distributed on an "AS IS" BASIS,*/
/** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.*/
/** See the License for the specific language governing permissions and*/
/** limitations under the License.*/
/**!*/
/*div.mast {*/
/*width: 100%;*/
/*height: 85px;*/
/*background-color: white;*/
/*position: relative;*/
/*box-shadow: 0 10px 5px -7px gray;*/
/*z-index: 100;*/
/*}*/
/*.mast div {*/
/*position: absolute;*/
/*top: 50%;*/
/*transform: translate(0, -50%);*/
/*}*/
/*.mast div.left {*/
/*left: 25px;*/
/*}*/
/*.mast div.right {*/
/*right: 7%;*/
/*width: 37%;*/
/*}*/
/*.mast img {*/
/*width: 220px;*/
/*}*/
/*.mast a,*/
/*.mast a:visited {*/
/*text-decoration: none;*/
/*color: #3C3C3C;*/
/*}*/
/*.mast li.logout {*/
/*list-style-type: none;*/
/*position: absolute;*/
/*right: 0;*/
/*top: 50%;*/
/*transform: translate(0, -50%);*/
/*font-size: 90%;*/
/*}*/
/*.mast li.logout:hover {*/
/*font-weight: bold;*/
/*list-style-type: none;*/
/*cursor: pointer;*/
/*}*/

/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAic3JjL3N0eWxlL21hc3QuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSJzcmMvYXBwL2Z3L21hc3QvbWFzdC5jc3MiCgldLAoJIm1hcHBpbmdzIjogIkFBQUEsTUFBTTtBQUNMLCtDQUErQztBQUMvQyxLQUFLO0FBQ0wscUVBQXFFO0FBQ3JFLHNFQUFzRTtBQUN0RSw2Q0FBNkM7QUFDN0MsS0FBSztBQUNMLG9EQUFvRDtBQUNwRCxLQUFLO0FBQ0wseUVBQXlFO0FBQ3pFLHVFQUF1RTtBQUN2RSw4RUFBOEU7QUFDOUUseUVBQXlFO0FBQ3pFLG9DQUFvQztBQUNwQyxNQUFNO0FBRVAsY0FBYztBQUNWLGdCQUFnQjtBQUNoQixpQkFBaUI7QUFDakIsNEJBQTRCO0FBQzVCLHVCQUF1QjtBQUN2QixxQ0FBcUM7QUFDckMsaUJBQWlCO0FBQ3JCLEtBQUs7QUFFTCxlQUFlO0FBQ1gsdUJBQXVCO0FBQ3ZCLGFBQWE7QUFDYixrQ0FBa0M7QUFDdEMsS0FBSztBQUVMLG9CQUFvQjtBQUNoQixlQUFlO0FBQ25CLEtBQUs7QUFFTCxxQkFBcUI7QUFDakIsY0FBYztBQUNkLGVBQWU7QUFDbkIsS0FBSztBQUVMLGVBQWU7QUFDWCxpQkFBaUI7QUFDckIsS0FBSztBQUVMLFlBQVk7QUFDWixxQkFBcUI7QUFDakIsMEJBQTBCO0FBQzFCLG1CQUFtQjtBQUN2QixLQUFLO0FBRUwscUJBQXFCO0FBQ2pCLDBCQUEwQjtBQUMxQix1QkFBdUI7QUFDdkIsYUFBYTtBQUNiLGFBQWE7QUFDYixrQ0FBa0M7QUFDbEMsbUJBQW1CO0FBQ3ZCLEtBQUs7QUFDTCwyQkFBMkI7QUFDdkIsc0JBQXNCO0FBQ3RCLDBCQUEwQjtBQUMxQixvQkFBb0I7QUFDeEIsS0FBSyIsCgkibmFtZXMiOiBbXQp9 */