Authored by 徐炜

Merge remote-tracking branch 'origin/master'

Showing 100 changed files with 639 additions and 303 deletions

Too many changes to show.

To preserve performance only 100 of 100+ files are displayed.

  1 +/* eslint no-unused-vars: ["error", {"args": "none"}] */
  2 +
  3 +'use strict';
  4 +const model = require('../models/live');
  5 +
  6 +const status = {
  7 + wait: 0,
  8 + living: 1,
  9 + end: 2
  10 +};
  11 +const liveModel = require('../models/live');
  12 +
  13 +exports.index = (req, res, next) => {
  14 + liveModel.getAllList().then(result => {
  15 + res.render('live/entry', {
  16 + title: '直播列表',
  17 + module: 'activity',
  18 + page: 'entry',
  19 + best: result[0],
  20 + living: result[1],
  21 + pre: result[2],
  22 + record: result[3],
  23 + content: result[4],
  24 + isApp: req.yoho.isApp
  25 + });
  26 + }).catch(next);
  27 +};
  28 +
  29 +exports.main = (req, res, next) => {
  30 + const isReplay = /^\/live\/replay\//.test(req.path);
  31 + const id = req.params.id;
  32 +
  33 + res.locals.liveRoom = id;
  34 + res.locals.module = 'activity';
  35 + res.locals.page = 'live-play';
  36 +
  37 + model.fetchInfo(id, isReplay)
  38 + .then(result => {
  39 + if (!result.data) {
  40 + return next();
  41 + }
  42 + res.render('live/play', result.data);
  43 + })
  44 + .catch(next);
  45 +};
  46 +
  47 +exports.barrage = (req, res, next) => {
  48 + const type = req.query.type;
  49 +
  50 + model.getBarrageHost(type)
  51 + .then(result => {
  52 + if (result.code !== 200) {
  53 + next(result.message);
  54 + return;
  55 + }
  56 +
  57 + res.json(result);
  58 + })
  59 + .catch(next);
  60 +};
  61 +
  62 +exports.replayBarrage = (req, res, next) => {
  63 + const id = req.query.id;
  64 + const startTime = req.query.startTime;
  65 + const timeInterval = req.query.timeInterval;
  66 +
  67 + model.getReplyBarrage(id, startTime, timeInterval)
  68 + .then(result => {
  69 + res.json(result);
  70 + })
  71 + .catch(next);
  72 +};
  1 +'use strict';
  2 +const moment = require('moment');
  3 +const service = global.yoho.ServiceAPI;
  4 +const liveAPI = global.yoho.LiveAPI;
  5 +const contentCodeConfig = require('../../../config/content-code');
  6 +const resourcesProcess = require(`${global.utils}/resources-process`);
  7 +const helpers = global.yoho.helpers;
  8 +
  9 +const _formatTime = (timestamp, b) => {
  10 + let date = b ? 'M.D ' : 'M月D日';
  11 + let time = 'HH:mm';
  12 + let startTime = moment(timestamp);
  13 + let now = moment();
  14 + let diff = moment.duration(startTime.clone().startOf('day') - now.startOf('day')).days();
  15 +
  16 + switch (diff) {
  17 + case 0:
  18 + date = '[今天]';
  19 + break;
  20 + case 1:
  21 + date = '[明日]';
  22 + break;
  23 + default:
  24 + null;
  25 + }
  26 +
  27 + return startTime.format(`${date}${time}`);
  28 +};
  29 +
  30 +/**
  31 + * 根据 时长(秒) 返回 时长格式化后的 字符串 HH:mm:ss
  32 + */
  33 +const _getHumanDuration = (duration) => {
  34 + duration = moment.duration(duration, 's');
  35 + let durationH = duration.hours();
  36 + let durationM = duration.minutes();
  37 + let durationS = duration.seconds();
  38 +
  39 + duration = [durationH, durationM, durationS].map((item) => {
  40 + if (item < 10) {
  41 + return `0${item}`;
  42 + } else {
  43 + return String(item);
  44 + }
  45 + });
  46 +
  47 + return `${duration[0]}:${duration[1]}:${duration[2]}`;
  48 +};
  49 +
  50 +// 获取顶部bannel
  51 +let _getBannerData = () => {
  52 + return service.get('operations/api/v5/resource/get', {
  53 + content_code: contentCodeConfig.live.index,
  54 + platform: 'iphone'
  55 + }, {
  56 + code: 200,
  57 + cache: true
  58 + }).then((result) => {
  59 + return result && result.data ? resourcesProcess(result.data) : [];
  60 + });
  61 +};
  62 +
  63 +// 获取精选视频
  64 +const _getBestList = () => {
  65 + return liveAPI.get('v1/living/best', {}, {
  66 + code: 200,
  67 + cache: false
  68 + }).then(result => {
  69 + let list = result && result.data || [];
  70 +
  71 + if (result && result.data && result.data.length !== 2) {
  72 + result.data = [];
  73 + }
  74 +
  75 + for (let item of list) {
  76 + switch (item.living) {
  77 + case 0:
  78 + item.pre_living = true;
  79 + break;
  80 + case 1:
  81 + default:
  82 + item.now_living = true;
  83 + break;
  84 + case 2:
  85 + // 直播结束不显示
  86 + result.data = [];
  87 + break;
  88 + }
  89 +
  90 + // 格式化时间
  91 + item.starting_time = _formatTime(item.starting_time * 1000, true);
  92 + }
  93 +
  94 + return result && result.data || [];
  95 + });
  96 +};
  97 +
  98 +// 获取直播中所有视频
  99 +const _getLivingList = () => {
  100 + return liveAPI.get('v1/living/listing', {}, {
  101 + code: 200,
  102 + cache: false
  103 + }).then(result => {
  104 + return result && result.data || [];
  105 + });
  106 +};
  107 +
  108 +// 获取直播预告列表
  109 +const _getPrelivingList = () => {
  110 + return liveAPI.get('v1/living/starting', {}, {
  111 + code: 200,
  112 + cache: false
  113 + }).then(result => {
  114 + let list = result && result.data || [];
  115 +
  116 + for (let item of list) {
  117 + item.starting_time = _formatTime(item.starting_time * 1000);
  118 + }
  119 + return result && result.data || [];
  120 + });
  121 +};
  122 +
  123 +// 获取回看列表
  124 +const _getRecordList = () => {
  125 + return liveAPI.get('v1/living/replaying', {}, {
  126 + code: 200,
  127 + cache: false
  128 + }).then(result => {
  129 + return result && result.data || [];
  130 + });
  131 +};
  132 +
  133 +// 返回所有数据
  134 +const getAllList = () => {
  135 + return Promise.all([_getBestList(), _getLivingList(), _getPrelivingList(), _getRecordList(), _getBannerData()]);
  136 +};
  137 +
  138 +// 获取 回放视屏 信息
  139 +const fetchReplayInfo = (videoID) => {
  140 + let url = 'v1/living/detail';
  141 + let data = { video_id: videoID };
  142 + let options = { cache: true };
  143 +
  144 + return liveAPI.get(url, data, options)
  145 + .then(result => {
  146 + if (result && result.data) {
  147 + let d = result.data;
  148 +
  149 + d.background = helpers.image(d.background, 640, 968);
  150 + d.pic = helpers.image(d.pic, 640, 968);
  151 + d.master_pic = helpers.image(d.master_pic, 180, 180);
  152 + d.humanTime = _formatTime(data.live_start_time * 1000);
  153 + d.video_src = d.url;
  154 +
  155 + // 自定义数据
  156 + d.duration = '00:00:00'; // 回看时长 前端JS根据video获取
  157 + d.living = 3; // 重播 状态
  158 + d.canPlay = true;
  159 + d.atEnd = false;
  160 + d.isReplay = true;
  161 + }
  162 +
  163 + return result || {};
  164 + });
  165 +};
  166 +
  167 +// 获取 直播视屏 信息
  168 +const fetchLiveInfo = (roomID) => {
  169 + let url = 'v1/living/detail';
  170 + let data = { room_id: roomID };
  171 +
  172 + return liveAPI.get(url, data)
  173 + .then(result => {
  174 + if (result && result.data) {
  175 + let d = result.data;
  176 +
  177 + d.background_pic = helpers.image(d.background_pic, 640, 968);
  178 + d.pic = helpers.image(d.pic, 640, 968);
  179 + d.master_pic = helpers.image(d.master_pic, 180, 180);
  180 + d.humanTime = _formatTime(d.starting_time * 1000); // 预告 开始时间
  181 + d.video_src = d.hls_downstream_address;
  182 +
  183 + // 自定义数据
  184 + d.duration = _getHumanDuration(d.live_last_time);
  185 + d.canPlay = d.living === 1;
  186 + d.notBegin = d.living === 0;
  187 + d.atEnd = d.living === 2;
  188 + }
  189 +
  190 + return result || {};
  191 + });
  192 +};
  193 +
  194 +const fetchInfo = (id, isReplay) => {
  195 + if (isReplay) {
  196 + return fetchReplayInfo(id);
  197 + } else {
  198 + return fetchLiveInfo(id);
  199 + }
  200 +};
  201 +
  202 +// 获取 直播 弹幕 host
  203 +const getBarrageHost = (type) => {
  204 + return liveAPI.get('v1/system/gethosts', { type });
  205 +};
  206 +
  207 +const getReplyBarrage = (videoID, startTime, timeInterval) => {
  208 + const url = 'v1/living/getreplaybarrage';
  209 + const data = {
  210 + startTime,
  211 + timeInterval,
  212 + video_id: videoID
  213 + };
  214 + const options = { cache: true };
  215 +
  216 + return liveAPI.get(url, data, options);
  217 +};
  218 +
  219 +// 处理直播时间
  220 +module.exports = {
  221 + getAllList,
  222 + fetchInfo,
  223 + getBarrageHost,
  224 + getReplyBarrage
  225 +};
@@ -12,6 +12,7 @@ const cRoot = './controllers'; @@ -12,6 +12,7 @@ const cRoot = './controllers';
12 const coupon = require(`${cRoot}/coupon`); 12 const coupon = require(`${cRoot}/coupon`);
13 const wechat = require(`${cRoot}/wechat`); 13 const wechat = require(`${cRoot}/wechat`);
14 const student = require(`${cRoot}/student`); 14 const student = require(`${cRoot}/student`);
  15 +const live = require(`${cRoot}/live`);
15 const invite = require(`${cRoot}/invite`); 16 const invite = require(`${cRoot}/invite`);
16 17
17 // routers 18 // routers
@@ -40,6 +41,12 @@ router.get('/student/detail/:type', student.getUser, student.detail); @@ -40,6 +41,12 @@ router.get('/student/detail/:type', student.getUser, student.detail);
40 41
41 // router.get('/student/getCoupons',student.getCoupons) 42 // router.get('/student/getCoupons',student.getCoupons)
42 43
  44 +router.get('/live', live.index);
  45 +router.get('/live/barrage', live.barrage);
  46 +router.get('/live/replay/barrage', live.replayBarrage);
  47 +router.get('/live/replay/:id', live.main);
  48 +router.get('/live/:id', live.main);
  49 +
43 router.get('/invite', invite.index); 50 router.get('/invite', invite.index);
44 router.get('/invite/index', invite.index); 51 router.get('/invite/index', invite.index);
45 52
@@ -54,4 +61,5 @@ router.get('/invite/getwxinfo', invite.getwxinfo); @@ -54,4 +61,5 @@ router.get('/invite/getwxinfo', invite.getwxinfo);
54 router.get('/invite/shareover', invite.shareover); 61 router.get('/invite/shareover', invite.shareover);
55 router.get('/invite/over', invite.over); 62 router.get('/invite/over', invite.over);
56 63
  64 +
57 module.exports = router; 65 module.exports = router;
  1 +<div class="yoho-live yoho-page">
  2 + {{! 导航条}}
  3 + {{#unless isApp}}
  4 + <div class="home-header clearfix yoho-header">
  5 + <a href="javascript:history.go(-1);" class="iconfont nav-back buriedpoint" data-bp-id="page_header_back_0"></a>
  6 + <p class="nav-title">直播列表</p>
  7 + </div>
  8 + {{/unless}}
  9 +
  10 +
  11 + {{#content}}
  12 + {{! 头部banner}}
  13 + {{#if focus}}
  14 + {{> resources/banner-top}}
  15 + {{/if}}
  16 + {{/content}}
  17 +
  18 + {{#if content}}
  19 + {{#if best}}
  20 + <div class="head_margin"></div>
  21 + {{/if}}
  22 + {{/if}}
  23 +
  24 + {{! 精选房间}}
  25 + {{#if best}}
  26 + <div class="liverec">
  27 + {{#best}}
  28 + <div class="liverec_child">
  29 + <a href='http://m.yohobuy.com/activity/live/{{room_id}}?openby:yohobuy={"action":"go.videolive", "params":{"type":"{{living}}","room":"{{room_id}}","bgpic":"{{pic}}"}}'>
  30 + <img class="liverec_pic" src="{{image pic 320 320}}" alt="直播预览">
  31 + {{#if now_living}}
  32 + <p class="living">直播</p>
  33 + {{else if pre_living}}
  34 + <p class="pre-living">预告 {{starting_time}}</p>
  35 + {{/if}}
  36 + </a>
  37 + <div class="liverec_info">
  38 + <img class="liverec_head" src="{{image master_pic 120 120}}" alt="头像">
  39 + <div class="liverec_pannel">
  40 + <p class="liverec_name clearfix">
  41 + <span class="name-name">{{master_name}}</span>
  42 + <span class="name-tag">{{master_meta}}</span>
  43 + </p>
  44 + <p class="liverec_tag">{{title}}</p>
  45 + </div>
  46 + </div>
  47 +
  48 + </div>
  49 + {{/best}}
  50 + </div>
  51 + {{/if}}
  52 +
  53 + {{! 直播中房间}}
  54 + {{#if living}}
  55 + <h2 class="living_title">直播中</h2>
  56 + {{/if}}
  57 + {{#living}}
  58 + <div class="liveliving">
  59 + <header>
  60 + <img class="main-head" src="{{image master_pic 120 120}}" alt="头像">
  61 + <div class="header-info">
  62 + <p class="main-name">{{master_name}}</p>
  63 + <p class="main-tag">{{master_meta}}</p>
  64 + </div>
  65 + </header>
  66 + <section>
  67 + <a href='http://m.yohobuy.com/activity/live/{{room_id}}?openby:yohobuy={"action":"go.videolive", "params":{"type":"1","room":"{{room_id}}","bgpic":"{{pic}}"}}'>
  68 + <img class="main-bg" src="{{image pic 640 640}}" alt="正在直播">
  69 + <p class="main-living">直播</p>
  70 + <p class="main-intro">{{title}}</p>
  71 + <div class="main-people">
  72 + <span class="people-icon"></span>
  73 + <p class="people-sum">{{audience_num}}人观看</p>
  74 + </div>
  75 + </a>
  76 + </section>
  77 + </div>
  78 + {{/living}}
  79 +
  80 + {{! 直播预告列表}}
  81 + {{#if pre}}
  82 + <div class="live-list">
  83 + <h2 class="title">直播预告</h2>
  84 + <ul class="list">
  85 + {{#pre}}
  86 + <li class="pre-list">
  87 + <a href='http://m.yohobuy.com/activity/live/{{room_id}}?openby:yohobuy={"action":"go.videolive", "params":{"type":"0","room":"{{room_id}}","bgpic":"{{pic}}"}}'>
  88 + <img class="pre-pic" src="{{image pic 150 150}}" alt="直播预览图">
  89 + <p class="pre-icon">预告</p>
  90 + <p class="pre-time">{{starting_time}}</p>
  91 + <div class="pre-pannel">
  92 + <p class="pre-title text-overflow">{{title}}</p>
  93 + <p class="pre-cast">主播:{{master_name}}</p>
  94 + </div>
  95 + </a>
  96 + </li>
  97 + {{/pre}}
  98 + </ul>
  99 + </div>
  100 + {{/if}}
  101 +
  102 + {{! 精彩回看}}
  103 + {{#if record}}
  104 + <h2 class="living_title">精彩回看</h2>
  105 + {{/if}}
  106 + {{#record}}
  107 + <div class="liveliving">
  108 + <header>
  109 + <img class="main-head" src="{{image master_pic 120 120}}" alt="头像">
  110 + <div class="header-info">
  111 + <p class="main-name">{{master_name}}</p>
  112 + <p class="main-tag">{{master_meta}}</p>
  113 + </div>
  114 + </header>
  115 + <section>
  116 + <a href='http://m.yohobuy.com/activity/live/replay/{{video_id}}?openby:yohobuy={"action":"go.videoreplay", "params":{"videoid":"{{video_id}}","bgpic":"{{pic}}"}}'>
  117 + <div class="record-icon"></div>
  118 + <img class="main-bg" src="{{image pic 640 640}}" alt="精彩回放">
  119 + <p class="main-living">回放</p>
  120 + <p class="main-intro">{{title}}</p>
  121 + <div class="main-people">
  122 + <span class="eye-icon"></span>
  123 + <p class="people-sum">{{audience_num}}人看过</p>
  124 + </div>
  125 + </a>
  126 + </section>
  127 + </div>
  128 + {{/record}}
  129 +</div>
  1 +{{! 直播 播放页 }}
  2 +<div class="live-wrapper">
  3 + {{#canPlay}}
  4 + <div class="live-main">
  5 + <!-- 视频部分start-->
  6 + <!--http://live-hls-pili.1iptv.com/meipai-live/57651bb975b6255acc01444c.m3u8-->
  7 + <section id="live_container" class="live-video-main" style="background-image: url('{{pic}}');">
  8 + <div id="video_container" class="video_player" data-video="{{video_src}}">
  9 + </div>
  10 + <div class="live-loading-container">
  11 + <div class="live-video-loading">
  12 + <div class="img"></div>
  13 + <p>加载中</p>
  14 + </div>
  15 + <div class="live-loading-cover" style="background-image: url('{{pic}}');"></div>
  16 + </div>
  17 +
  18 + <div id="live_touch_layer"></div>
  19 + <!--弹幕-->
  20 + <div class="live-chat-pannel">
  21 + <ul id="live_chat_ul">
  22 +
  23 + </ul>
  24 + </div>
  25 + <!--点赞-->
  26 + <div class="live-like-pannel">
  27 + <div id="live_like_pannel" class="animate_pannel"></div>
  28 + <div class="like-main"></div>
  29 + <span id="like_num">0</span>
  30 +
  31 + </div>
  32 + <!--播放按钮-->
  33 + <div class="live-video-play-button">
  34 + <a href="javascript:void(0)">
  35 + <div class="img"></div>
  36 + </a>
  37 + </div>
  38 +
  39 + <!--直播状态-->
  40 + <div class="live-status">
  41 + <div class="overflow-hidden">
  42 + <div class="img"></div>
  43 + <div class="live-time">
  44 + {{#if isReplay}}
  45 + <span>Yoho!Buy回看</span>
  46 + {{else}}
  47 + <span>Yoho!Buy直播</span>&nbsp;<span id="live_time"></span>
  48 + {{/if}}
  49 + </div>
  50 + <div class="live-num">
  51 + {{#if isRelay}}
  52 + <span>{{audience_num}}人观看</span>
  53 + {{else}}
  54 + <span></span>
  55 + {{/if}}
  56 + </div>
  57 + </div>
  58 + <div class="title hide" id="live-watermark">
  59 + {{#if watemark }}
  60 + <span>{{watermark}}</span>
  61 + {{/if}}
  62 + </div>
  63 + </div>
  64 +
  65 + <a href="javascript:;" class="live-btn-share">
  66 + <i class="iconfont">&#xe600</i>
  67 + </a>
  68 + <a href="javascript: history.back();" class="live-btn-close">
  69 + <i class="iconfont">&#xe623</i>
  70 + </a>
  71 + </section>
  72 + </div>
  73 + {{/canPlay}}
  74 +
  75 + {{!直播已结束}}
  76 + <div id="live-state-end" class="live-state is-no-start {{#atEnd}}show{{/atEnd}}">
  77 + <div class="live-state-inner" style="background-image: url('{{background_pic}}');">
  78 + <div class="live-state__txt">直播已结束</div>
  79 + <ul class="live-state-info">
  80 + <li class="audience text-center">
  81 + <span class="val">{{audience_num}}</span>
  82 + <br>
  83 + <span class="label">总观看人数</span>
  84 + </li>
  85 + <li class="duration">
  86 + <div class="inner pull-right">
  87 + <span class="val">{{duration}}</span>
  88 + <br>
  89 + <span class="label">直播时长</span>
  90 + </div>
  91 + </li>
  92 + <li class="favorite">
  93 + <div class="inner pull-left">
  94 + <span class="val">{{like_num}}</span>
  95 + <br>
  96 + <span class="label">点赞数</span>
  97 + </div>
  98 + </li>
  99 + </ul>
  100 + <a href="javascript: history.back();" class="live-btn-close">
  101 + <i class="iconfont">&#xe623</i>
  102 + </a>
  103 + </div>
  104 + </div>
  105 +
  106 + {{!直播未开始}}
  107 + {{#notBegin}}
  108 + <div class="live-state is-no-start show">
  109 + <div class="live-state-inner" style="background-image: url('{{background_pic}}');">
  110 + <div class="live-state__txt">直播未开始</div>
  111 + <div class="live-state-info text-center">
  112 + <img src="{{master_pic}}" alt="" class="avatar">
  113 + <span class="name text-overflow">{{master_name}}</span><br>
  114 + <h5 class="title">直播主题: {{title}}</h5>
  115 + <p class="begin-time">开始时间: {{humanTime}}</p>
  116 + </div>
  117 + <a href="javascript: history.back();" class="live-btn-close">
  118 + <i class="iconfont">&#xe623</i>
  119 + </a>
  120 + </div>
  121 + </div>
  122 + {{/notBegin}}
  123 +
  124 + {{! footer}}
  125 + <div class="float-layer" id="float-layer-app">
  126 + <div class="float-layer-left">
  127 + <span class="yoho-icon iconfont">&#xe60d;</span>
  128 + <p>新用户送惊喜礼包</p>
  129 + </div>
  130 + <a href="javascript:void(0);" id="float-layer-close" >
  131 + <i class="close-icon iconfont">&#xe623;</i>
  132 + <div class="circle-rightbottom"></div>
  133 + </a>
  134 + <a href="http://a.app.qq.com/o/simple.jsp?pkgname=com.yoho" id="float-layer-btn">
  135 + 立即下载
  136 + </a>
  137 + </div>
  138 +</div>
  139 +<script>
  140 + var live_start_time = {{live_start_time}};//该直播开始时间
  141 + var live_type = {{living}};//是否是直播 0直播未开始,1直播中,2直播结束,3重播
  142 + var live_room = {{liveRoom}};//房间id,资讯id
  143 + var replay_total_likes = {{like_num}};//重播总计点赞数,取的是直播最终点赞数
  144 + var replay_user_nums = {{audience_num}};//重播观看人数,取的是直播时最终观看人数
  145 + var site_url = '';
  146 + var site_domain = 'http://api.live.yoho.cn/';
  147 +
  148 + // share data
  149 + var shareTitle = '{{share_title}}';
  150 + var shareContent = '{{share_content}}';
  151 + var sharePic = '{{pic}}'
  152 +</script>
  1 +{{! 直播 播放页: 状态页}}
@@ -55,4 +55,12 @@ @@ -55,4 +55,12 @@
55 {{#if newUserFloor}} 55 {{#if newUserFloor}}
56 {{> resources/fresh-only}} 56 {{> resources/fresh-only}}
57 {{/if}} 57 {{/if}}
  58 + {{! 标题楼层}}
  59 + {{#if titleFloor}}
  60 + {{> resources/title-floor}}
  61 + {{/if}}
  62 + {{! 直播楼层}}
  63 + {{#if livePicture}}
  64 + {{> resources/live-picture}}
  65 + {{/if}}
58 {{/content}} 66 {{/content}}
@@ -14,11 +14,11 @@ module.exports = { @@ -14,11 +14,11 @@ module.exports = {
14 port: 6001, 14 port: 6001,
15 siteUrl: '//m.yohobuy.com', 15 siteUrl: '//m.yohobuy.com',
16 domains: { 16 domains: {
17 - // api: 'http://192.168.102.14:8080/gateway/',  
18 - // service: 'http://192.168.102.14:8080/gateway/'  
19 - 17 + // api: 'http://devapi.yoho.cn:58078/',
  18 + // service: 'http://devservice.yoho.cn:58077/'
20 api: 'http://api-test3.yohops.com:9999/', 19 api: 'http://api-test3.yohops.com:9999/',
21 - service: 'http://service-test3.yohops.com:9999/' 20 + service: 'http://service-test3.yohops.com:9999/',
  21 + liveApi: 'http://testapi.live.yohops.com:9999/'
22 }, 22 },
23 subDomains: { 23 subDomains: {
24 host: '.m.yohobuy.com', 24 host: '.m.yohobuy.com',
@@ -60,7 +60,8 @@ module.exports = { @@ -60,7 +60,8 @@ module.exports = {
60 name: 'error', 60 name: 'error',
61 level: 'error', 61 level: 'error',
62 filename: 'logs/error.log', 62 filename: 'logs/error.log',
63 - handleExceptions: true 63 + handleExceptions: true,
  64 + maxFiles: 7
64 }, 65 },
65 udp: { // send by udp 66 udp: { // send by udp
66 measurement: 'yohobuy_wap_log', 67 measurement: 'yohobuy_wap_log',
@@ -87,7 +88,8 @@ if (isProduction) { @@ -87,7 +88,8 @@ if (isProduction) {
87 appName: 'm.yohobuy.com', 88 appName: 'm.yohobuy.com',
88 domains: { 89 domains: {
89 api: 'http://api.yoho.yohoops.org/', 90 api: 'http://api.yoho.yohoops.org/',
90 - service: 'http://service.yoho.yohoops.org/' 91 + service: 'http://service.yoho.yohoops.org/',
  92 + liveApi: 'http://api.live.yoho.cn/'
91 }, 93 },
92 memcache: { 94 memcache: {
93 master: ['memcache1.yohoops.org:12111', 'memcache2.yohoops.org:12111', 'memcache3.yohoops.org:12111'], 95 master: ['memcache1.yohoops.org:12111', 'memcache2.yohoops.org:12111', 'memcache3.yohoops.org:12111'],
@@ -115,7 +117,8 @@ if (isProduction) { @@ -115,7 +117,8 @@ if (isProduction) {
115 appName: 'm.yohobuy.com for test', 117 appName: 'm.yohobuy.com for test',
116 domains: { 118 domains: {
117 api: 'http://api-test3.yohops.com:9999/', 119 api: 'http://api-test3.yohops.com:9999/',
118 - service: 'http://service-test3.yohops.com:9999/' 120 + service: 'http://service-test3.yohops.com:9999/',
  121 + liveApi: 'http://testapi.live.yohops.com:9999/'
119 }, 122 },
120 memcache: { 123 memcache: {
121 master: ['127.0.0.1:12111'], 124 master: ['127.0.0.1:12111'],
@@ -48,10 +48,15 @@ const bottomBannerContentCode = { @@ -48,10 +48,15 @@ const bottomBannerContentCode = {
48 48
49 const outletContentCode = 'c19ffa03f053f4cac3690b22c8da26b7'; 49 const outletContentCode = 'c19ffa03f053f4cac3690b22c8da26b7';
50 50
  51 +const liveContentCode = {
  52 + index: '345c80537dca15611f37ae4863004bfe'
  53 +};
  54 +
51 module.exports = { 55 module.exports = {
52 sale: saleContentCode, 56 sale: saleContentCode,
53 outlet: outletContentCode, 57 outlet: outletContentCode,
54 channel: channelContentCode, 58 channel: channelContentCode,
55 bottom: bottomBannerContentCode, 59 bottom: bottomBannerContentCode,
56 - guang: guangContentCode 60 + guang: guangContentCode,
  61 + live: liveContentCode
57 }; 62 };
@@ -14,9 +14,15 @@ @@ -14,9 +14,15 @@
14 <link rel="dns-prefetch" href="//static.yohobuy.com"> 14 <link rel="dns-prefetch" href="//static.yohobuy.com">
15 <link rel="dns-prefetch" href="//img12.static.yhbimg.com"> 15 <link rel="dns-prefetch" href="//img12.static.yhbimg.com">
16 <link rel="dns-prefetch" href="//img13.static.yhbimg.com"> 16 <link rel="dns-prefetch" href="//img13.static.yhbimg.com">
  17 + {{#if width750}}
  18 + <script type="text/javascript">
  19 + (function(d,c){var e=d.documentElement,a="orientationchange" in window?"orientationchange":"resize",b=function(){var f=e.clientWidth;if(!f){return}if(f>=750){e.style.fontSize="40px"}else{e.style.fontSize=40*(f/750)+"px"}};if(!d.addEventListener){return}b();c.addEventListener(a,b,false);d.addEventListener("DOMContentLoaded",b,false)})(document,window);
  20 + </script>
  21 + {{^}}
17 <script type="text/javascript"> 22 <script type="text/javascript">
18 (function(d,c){var e=d.documentElement,a="orientationchange" in window?"orientationchange":"resize",b=function(){var f=e.clientWidth;if(!f){return}if(f>=640){e.style.fontSize="40px"}else{e.style.fontSize=40*(f/640)+"px"}};if(!d.addEventListener){return}b();c.addEventListener(a,b,false);d.addEventListener("DOMContentLoaded",b,false)})(document,window); 23 (function(d,c){var e=d.documentElement,a="orientationchange" in window?"orientationchange":"resize",b=function(){var f=e.clientWidth;if(!f){return}if(f>=640){e.style.fontSize="40px"}else{e.style.fontSize=40*(f/640)+"px"}};if(!d.addEventListener){return}b();c.addEventListener(a,b,false);d.addEventListener("DOMContentLoaded",b,false)})(document,window);
19 </script> 24 </script>
  25 + {{/if}}
20 {{#if devEnv}} 26 {{#if devEnv}}
21 <link rel="stylesheet" href="//{{devHost}}:5001/css/index.css"> 27 <link rel="stylesheet" href="//{{devHost}}:5001/css/index.css">
22 {{^}} 28 {{^}}
@@ -26,7 +32,7 @@ @@ -26,7 +32,7 @@
26 <link rel="apple-touch-startup-image" sizes="640x920" href="http://static.yohobuy.com/m/v1/img/startup/startup-retina.png" media="screen and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2)"> 32 <link rel="apple-touch-startup-image" sizes="640x920" href="http://static.yohobuy.com/m/v1/img/startup/startup-retina.png" media="screen and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2)">
27 <link rel="apple-touch-startup-image" sizes="320x460" href="http://static.yohobuy.com/m/v1/img/startup/startup.png" media="screen and (max-device-width: 320)"> 33 <link rel="apple-touch-startup-image" sizes="320x460" href="http://static.yohobuy.com/m/v1/img/startup/startup.png" media="screen and (max-device-width: 320)">
28 </head> 34 </head>
29 - <body {{#if isPassportPage}}class=passport-body{{/if}} {{#if isStarIndexPage}} class="star-index-bg"{{/if}} {{#if isStarDetailPage}}class="star-class-body"{{/if}} {{#if isInstallmentPage}}class=installment-body{{/if}}> 35 + <body class="{{#if width750}}width750{{/if}} {{#if isPassportPage}}passport-body{{/if}} {{#if isStarIndexPage}}star-index-bg{{/if}} {{#if isStarDetailPage}}star-class-body{{/if}} {{#if isInstallmentPage}}installment-body{{/if}}">
30 <div class="main-wrap"> 36 <div class="main-wrap">
31 {{#if systemUpdate}} 37 {{#if systemUpdate}}
32 {{> updata}} 38 {{> updata}}
  1 +{{> resources/title-floor}}
  2 +{{> resources/three-picture}}
  1 +{{#data}}
  2 +<div class="three-picture clearfix">
  3 + {{#list}}
  4 + <a href="{{url}}">
  5 + <img src="{{image src 210 280}}">
  6 + </a>
  7 + {{/list}}
  8 +</div>
  9 +{{/data}}
  1 +{{#data}}
  2 +{{> common/floor-header-more}}
  3 +{{/data}}
@@ -39,7 +39,7 @@ @@ -39,7 +39,7 @@
39 "express-handlebars": "^3.0.0", 39 "express-handlebars": "^3.0.0",
40 "express-session": "^1.14.0", 40 "express-session": "^1.14.0",
41 "influxdb-winston": "^1.0.1", 41 "influxdb-winston": "^1.0.1",
42 - "lodash": "^4.13.1", 42 + "lodash": "^4.15.0",
43 "md5": "^2.1.0", 43 "md5": "^2.1.0",
44 "memcached": "^2.2.1", 44 "memcached": "^2.2.1",
45 "moment": "^2.14.1", 45 "moment": "^2.14.1",
@@ -55,12 +55,12 @@ @@ -55,12 +55,12 @@
55 "serve-favicon": "^2.3.0", 55 "serve-favicon": "^2.3.0",
56 "uuid": "^2.0.2", 56 "uuid": "^2.0.2",
57 "winston": "^2.2.0", 57 "winston": "^2.2.0",
58 - "winston-daily-rotate-file": "^1.1.4", 58 + "winston-daily-rotate-file": "^1.2.0",
59 "yoho-node-lib": "0.0.43" 59 "yoho-node-lib": "0.0.43"
60 }, 60 },
61 "devDependencies": { 61 "devDependencies": {
62 "autoprefixer": "^6.3.7", 62 "autoprefixer": "^6.3.7",
63 - "ava": "^0.15.2", 63 + "ava": "^0.16.0",
64 "babel-preset-es2015": "^6.9.0", 64 "babel-preset-es2015": "^6.9.0",
65 "babel-register": "^6.9.0", 65 "babel-register": "^6.9.0",
66 "eslint": "^3.0.1", 66 "eslint": "^3.0.1",
@@ -72,8 +72,8 @@ @@ -72,8 +72,8 @@
72 "gulp-sourcemaps": "^2.0.0-alpha", 72 "gulp-sourcemaps": "^2.0.0-alpha",
73 "gulp-util": "^3.0.7", 73 "gulp-util": "^3.0.7",
74 "husky": "^0.11.4", 74 "husky": "^0.11.4",
75 - "nodemon": "1.9.2",  
76 - "nyc": "^6.6.1", 75 + "nodemon": "^1.10.0",
  76 + "nyc": "^8.1.0",
77 "postcss-assets": "^4.0.1", 77 "postcss-assets": "^4.0.1",
78 "postcss-cachebuster": "^0.1.3", 78 "postcss-cachebuster": "^0.1.3",
79 "postcss-calc": "^5.2.1", 79 "postcss-calc": "^5.2.1",
@@ -89,7 +89,7 @@ @@ -89,7 +89,7 @@
89 "rewire": "^2.5.2", 89 "rewire": "^2.5.2",
90 "shelljs": "^0.7.0", 90 "shelljs": "^0.7.0",
91 "stylelint": "^7.1.0", 91 "stylelint": "^7.1.0",
92 - "stylelint-config-yoho": "^1.2.3", 92 + "stylelint-config-yoho": "^1.2.7",
93 "webpack": "^1.13.1", 93 "webpack": "^1.13.1",
94 "webpack-dev-server": "^1.14.1", 94 "webpack-dev-server": "^1.14.1",
95 "webpack-stream": "^3.1.0", 95 "webpack-stream": "^3.1.0",
@@ -100,7 +100,6 @@ @@ -100,7 +100,6 @@
100 "yoho-jquery": "^2.2.4", 100 "yoho-jquery": "^2.2.4",
101 "yoho-jquery-lazyload": "^1.9.7", 101 "yoho-jquery-lazyload": "^1.9.7",
102 "yoho-mlellipsis": "0.0.3", 102 "yoho-mlellipsis": "0.0.3",
103 - "yoho-node-lib": "0.0.32",  
104 "yoho-swiper": "^3.3.1" 103 "yoho-swiper": "^3.3.1"
105 } 104 }
106 } 105 }
@@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
8 "merge_logs": true, 8 "merge_logs": true,
9 "log_date_format": "YYYY-MM-DD HH:mm Z", 9 "log_date_format": "YYYY-MM-DD HH:mm Z",
10 "env": { 10 "env": {
  11 + "TZ": "Asia/Shanghai",
11 "PORT": 6001 12 "PORT": 6001
12 } 13 }
13 } 14 }
No preview for this file type
1 -<?xml version="1.0" standalone="no"?>  
2 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >  
3 -<svg xmlns="http://www.w3.org/2000/svg">  
4 -<metadata>  
5 -Created by FontForge 20120731 at Wed Jun 29 15:45:02 2016  
6 - By admin  
7 -</metadata>  
8 -<defs>  
9 -<font id="iconfont" horiz-adv-x="1024" >  
10 - <font-face  
11 - font-family="iconfont"  
12 - font-weight="500"  
13 - font-stretch="normal"  
14 - units-per-em="1024"  
15 - panose-1="2 0 6 3 0 0 0 0 0 0"  
16 - ascent="896"  
17 - descent="-128"  
18 - x-height="792"  
19 - bbox="-0.75 -128 3943 896.75"  
20 - underline-thickness="50"  
21 - underline-position="-100"  
22 - unicode-range="U+0078-E64C"  
23 - />  
24 -<missing-glyph horiz-adv-x="374"  
25 -d="M34 0v682h272v-682h-272zM68 34h204v614h-204v-614z" />  
26 - <glyph glyph-name=".notdef" horiz-adv-x="374"  
27 -d="M34 0v682h272v-682h-272zM68 34h204v614h-204v-614z" />  
28 - <glyph glyph-name=".null" horiz-adv-x="0"  
29 - />  
30 - <glyph glyph-name="nonmarkingreturn" horiz-adv-x="341"  
31 - />  
32 - <glyph glyph-name="x" unicode="x" horiz-adv-x="1001"  
33 -d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5  
34 -t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5  
35 -t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />  
36 - <glyph glyph-name="uniE600" unicode="&#xe600;" horiz-adv-x="1463"  
37 -d="M798 -64q0 -46 25 -58t61 16l537 420q36 28 36 68t-36 68l-537 424q-36 29 -61 16.5t-25 -57.5v-238q-486 0 -676 -290q-102 -157 -102 -361q0 -49 2 -49q47 62 87 104t90 78t103.5 57.5t127 36.5t161.5 21t207 6v-262z" />  
38 - <glyph glyph-name="uniE601" unicode="&#xe601;"  
39 -d="M281 468q-14 -9 -23 -23t-9 -28v-7v-19v-464h1q5 -24 24 -39.5t44 -15.5h582q28 0 48.5 20t20.5 49t-20.5 49t-48.5 20h-215h256q35 0 59 24.5t24 58.5t-24 58.5t-59 24.5h-235h235q35 0 59 24t24 58.5t-24 58.5t-59 24h-259h211q31 0 53.5 22.5t22.5 53.5v-13  
40 -q0 31 -22.5 54t-53.5 24q-125 6 -259 9q40 148 16 278q-8 44 -30.5 70.5t-49.5 31t-53 -4t-43 -35t-17 -62.5q-5 -34 -6.5 -64t-2.5 -42t-5 -30.5t-14 -42.5q-24 -60 -133 -115q-7 -2 -13 -6zM60 452q-25 0 -42.5 -17.5t-17.5 -42.5v-405q0 -25 17.5 -42.5t42.5 -17.5h134  
41 -v525h-134z" />  
42 - <glyph glyph-name="uniE602" unicode="&#xe602;" horiz-adv-x="1323"  
43 -d="M643 568q0 -68 -47.5 -116t-113.5 -48q0 -68 47 -116t113.5 -48t113.5 48t47 116t-47 116t-113 48zM643 896q-79 0 -162 -28.5t-152 -74.5t-131 -102t-105 -110.5t-68 -101.5t-25 -75t25 -75t68 -102t105 -111t131 -101.5t152 -74.5t161.5 -29t161.5 29t152 74.5  
44 -t131 101.5t105 111t68 102t25 75t-25 75t-68 101.5t-105 110.5t-131 102t-152 74.5t-161 28.5zM643 75q-88 0 -162 44t-117 120t-43 165t43 164.5t117 119.5t161.5 44t161.5 -44t117 -119.5t43 -164.5t-43 -165t-117 -120t-161 -44z" />  
45 - <glyph glyph-name="uniE603" unicode="&#xe603;"  
46 -d="M512 382v343h85v-426h-81v-2h-256v85h252zM512 -128q139 0 257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5t-257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5z" />  
47 - <glyph glyph-name="uniE604" unicode="&#xe604;"  
48 -d="M774 420q13 -17 11.5 -39.5t-17.5 -38.5q0 -1 -1 -1l-427 -428q-18 -17 -42.5 -17t-42 17.5t-17.5 42t17 41.5l387 387l-387 387q-17 17 -17 41.5t17.5 42t42 17.5t42.5 -17l427 -428q1 0 1 -1z" />  
49 - <glyph glyph-name="uniE605" unicode="&#xe605;"  
50 -d="M707 844q-112 0 -195 -77q-83 77 -195 77q-121 0 -207 -88t-86 -212q0 -110 69 -194l2 -2l344 -391q30 -33 73 -33t73 33l344 391l2 2q69 84 69 194q0 124 -86 212t-207 88z" />  
51 - <glyph glyph-name="uniE606" unicode="&#xe606;" horiz-adv-x="1000"  
52 -d="M109.5 511q37.5 0 64 -26.5t26.5 -63.5t-26.5 -63.5t-64 -26.5t-64 26.5t-26.5 63.5t26.5 63.5t64 26.5zM515.5 511q37.5 0 63.5 -26.5t26 -63.5t-26 -63.5t-63.5 -26.5t-64 26.5t-26.5 63.5t26.5 63.5t64 26.5zM921 511q37 0 63.5 -26.5t26.5 -63.5t-26.5 -63.5  
53 -t-63.5 -26.5t-63.5 26.5t-26.5 63.5t26.5 63.5t63.5 26.5z" />  
54 - <glyph glyph-name="uniE607" unicode="&#xe607;" horiz-adv-x="1643"  
55 -d="M547 286h-1l45 -46l248 239l-45 46l-201 -194l-195 201l-46 -44z" />  
56 - <glyph glyph-name="uniE608" unicode="&#xe608;" horiz-adv-x="1821"  
57 -d="M930 231q-14 -13 -33.5 -13t-33.5 13l-252 242q-14 13 -14 32t14 32t34 13t34 -13l251 -242q14 -13 14 -32t-14 -32zM360 231q-14 13 -14 32t14 32l251 242q14 13 34 13t33.5 -13t13.5 -32t-13 -32l-252 -242q-14 -13 -33.5 -13t-33.5 13z" />  
58 - <glyph glyph-name="uniE609" unicode="&#xe609;" horiz-adv-x="1821"  
59 -d="M930 473l-251 -242q-14 -13 -34 -13t-34 13t-14 32t14 32l252 242q14 13 33.5 13t33.5 -13t14 -32t-14 -32zM427 537l252 -242q13 -13 13 -32t-13.5 -32t-33.5 -13t-34 13l-251 242q-14 13 -14 32t14 32t33.5 13t33.5 -13z" />  
60 - <glyph glyph-name="uniE60A" unicode="&#xe60a;"  
61 -d="M1024 384q0 -139 -68.5 -257t-186.5 -186.5t-257 -68.5t-257 68.5t-186.5 186.5t-68.5 257t68.5 257t186.5 186.5t257 68.5t257 -68.5t186.5 -186.5t68.5 -257zM801 594l-365 -366l-156 156l-37 -37l193 -193l403 403z" />  
62 - <glyph glyph-name="uniE60B" unicode="&#xe60b;" horiz-adv-x="1344"  
63 -d="M1280 320h-1216q-27 0 -45.5 18.5t-18.5 45.5t18.5 45.5t45.5 18.5h1216q27 0 45.5 -18.5t18.5 -45.5t-18.5 -45.5t-45.5 -18.5zM1280 -128h-1216q-27 0 -45.5 18.5t-18.5 45.5t18.5 45.5t45.5 18.5h1216q27 0 45.5 -18.5t18.5 -45.5t-18.5 -45.5t-45.5 -18.5zM1280 768  
64 -h-1216q-27 0 -45.5 18.5t-18.5 45.5t18.5 45.5t45.5 18.5h1216q27 0 45.5 -18.5t18.5 -45.5t-18.5 -45.5t-45.5 -18.5z" />  
65 - <glyph glyph-name="uniE60C" unicode="&#xe60c;"  
66 -d="M1024 384q0 -139 -68.5 -257t-186.5 -186.5t-257 -68.5t-257 68.5t-186.5 186.5t-68.5 257t68.5 257t186.5 186.5t257 68.5t257 -68.5t186.5 -186.5t68.5 -257z" />  
67 - <glyph glyph-name="uniE60D" unicode="&#xe60d;" horiz-adv-x="1685"  
68 -d="M1229 7l289 -135l58 124l-281 131q-21 -54 -66 -120zM944 559v-134h137v258q42 47 62 81l-118 69q-2 -4 -8 -12t-24.5 -30.5t-41 -45.5t-60.5 -54.5t-81 -59.5l75 -114q30 20 59 42zM1524 103v304h-605v-304h137v167h332v-167h136zM1283 253h-137v-66q0 -31 -20 -57.5  
69 -t-49.5 -45t-70.5 -34.5t-76.5 -25t-73.5 -17l74 -124q55 14 103 30.5t95.5 43t80.5 58t53.5 75.5t20.5 96v66zM1088 654l31 -133q42 9 85 21q19 -49 59 -78q49 -36 120 -36q45 0 92 14q69 21 133 78l-67 125q-17 -19 -46 -40.5t-60 -31.5q-63 -19 -91 1q-4 3 -8 9  
70 -q147 51 240 103l-81 111q-74 -38 -173 -74v85h-137v-129q-50 -14 -97 -25zM755 561v137h-348q11 42 19 84l-134 26q-11 -56 -28 -110h-200v-137h142q-79 -149 -206 -260l90 -103q43 38 85 83v-389h137v165h260v-24h-124l48 -137h83q54 0 92 38t38 92v490h-373q11 22 21 45  
71 -h398zM312 218h260v-24h-260v24zM312 379h260v-24h-260v24zM1683 816q0 -33 -22.5 -56t-55.5 -23t-56 23t-23 56t23 55.5t56 22.5t55.5 -22.5t22.5 -55.5zM1545 816q0 -26 17.5 -44.5t42.5 -18.5t41.5 18t16.5 44q0 27 -16.5 45.5t-42.5 18.5q-25 0 -42 -18.5t-17 -44.5z  
72 -M1592 775h-17v79q17 2 29 2q18 0 26 -6t8 -17q0 -13 -16 -19v-1q10 -3 14 -19q2 -13 6 -19h-19q-2 3 -6 19q-2 12 -16 12h-9v-31zM1593 819h8q18 0 18 12t-16 12q-6 0 -10 -1v-23z" />  
73 - <glyph glyph-name="uniE60E" unicode="&#xe60e;" horiz-adv-x="3958"  
74 -d="M611 723h-177l-150 -222l-95 222h-178l168 -395v-2l-31 -243h156l30 231zM699 565q-100 0 -179.5 -72.5t-92.5 -175.5q-13 -105 51 -178q61 -68 157 -68q99 0 178.5 72.5t92.5 175.5q13 104 -51 177q-60 69 -156 69zM759 317q-5 -41 -35.5 -70.5t-68.5 -29.5  
75 -q-37 0 -60 27q-27 30 -21 75q5 41 36 70.5t69 29.5q36 0 59 -27q27 -30 21 -75zM1656 565q-100 0 -179.5 -72.5t-92.5 -175.5q-13 -105 51 -178q61 -68 157 -68q99 0 178.5 72.5t92.5 175.5q13 104 -51 177q-60 69 -156 69zM1717 317q-6 -41 -36.5 -70.5t-68.5 -29.5  
76 -q-37 0 -60 27q-27 30 -21 75q5 41 36 70.5t69 29.5q36 0 60 -27q26 -30 21 -75zM1332 502q-44 50 -114 50q-51 0 -97 -27l-10 -6l26 204h-156l-80 -640h155l37 288q3 24 22 41t43 17q25 0 40.5 -17.5t11.5 -41.5l-36 -287h156l37 298q10 71 -35 121zM2949 544l-37 -288  
77 -q-3 -24 -22 -41t-44 -17q-24 0 -39.5 17.5t-12.5 41.5l37 287h-156l-38 -298q-9 -71 36 -121q43 -50 114 -50q51 0 97 27l9 6l-3 -25h156l58 461h-155zM1951 723l-55 -432h156l55 432h-156zM1970 252q-37 0 -67 -26.5t-34.5 -63.5t18.5 -63q22 -26 59 -26t67 26.5t34 63.5  
78 -q5 37 -18 63t-59 26zM2608 262q6 51 -14.5 93.5t-62.5 65.5l-8 5l8 5q39 21 64 57t30 78q8 63 -30 108q-37 44 -97 48l-6 1h-314l-81 -640h317q72 3 128.5 55t65.5 124zM2451 284q-3 -27 -25 -46.5t-50 -19.5h-106l17 134h107q27 -1 43.5 -20.5t13.5 -47.5zM2483 531  
79 -q-3 -25 -23 -43t-45 -18h-113l15 124h112q25 0 41.5 -18.5t12.5 -44.5zM3132 -127q65 0 124 37.5t89 99.5l264 534h-156l-127 -258l-63 258h-156l113 -471l-7 -14q-8 -18 -25 -29t-36 -11q-10 0 -20 4l-29 11l-67 -139l29 -10q31 -12 67 -12zM3943 730q0 -65 -45 -110.5  
80 -t-110.5 -45.5t-111 45.5t-45.5 111t45.5 110.5t111.5 45q65 0 110 -45t45 -111zM3670 730q0 -52 34 -88t84 -36q49 -1 82.5 35.5t33.5 87.5q0 53 -33.5 89.5t-84.5 36.5q-49 0 -82.5 -36.5t-33.5 -88.5zM3763 650h-35v155q35 5 58 5q36 0 52 -12t16 -34q0 -26 -32 -37v-2  
81 -q20 -6 27 -37q5 -26 11 -38h-37q-4 5 -12 38q-4 23 -31 23h-17v-61zM3764 737h17q35 0 35 23t-32 23q-13 0 -20 -1v-45z" />  
82 - <glyph glyph-name="uniE60F" unicode="&#xe60f;"  
83 -d="M682 158q-108 -89 -249 -89q-107 0 -197.5 53t-143.5 143.5t-53 197.5t53 197.5t143.5 143.5t197.5 53t197.5 -53t143.5 -143.5t53 -197.5q0 -141 -89 -249l286 -286l-56 -56zM433.5 148q130.5 0 222.5 92t92 222.5t-92 223t-222.5 92.5t-223 -92.5t-92.5 -223  
84 -t92.5 -222.5t223 -92z" />  
85 - <glyph glyph-name="uniE610" unicode="&#xe610;"  
86 -d="M245 384l-9 9l472 472l80 -80l-400 -401l400 -401l-80 -80l-472 472z" />  
87 - <glyph glyph-name="uniE611" unicode="&#xe611;"  
88 -d="M509 876q-4 -2 -245 -245q-176 -179 -208.5 -213.5t-32.5 -46.5q0 -35 42 -33q7 0 233 227l225 228l226 -228q225 -227 232 -227q21 -1 31.5 7.5t10.5 25.5q0 12 -31.5 46t-206.5 212q-241 243 -246 246q-15 8 -30 1zM171 341q-12 -8 -14 -38.5t-2 -188t2 -188t14 -38.5  
89 -q7 -6 352.5 -6t352.5 6q11 8 13 38.5t2 188t-2 188t-13 38.5q-8 7 -21.5 5.5t-21.5 -10.5l-10 -9v-381h-600v381l-10 9q-8 9 -21 10.5t-21 -5.5zM398 298l-11 -12v-215l11 -12q10 -13 25.5 -13t25.5 13l10 12v175h128v-175l11 -12q11 -13 25.5 -13t25.5 13l10 12v215l-20 24  
90 -h-231z" />  
91 - <glyph glyph-name="uniE612" unicode="&#xe612;"  
92 -d="M951 77h-878l439 614z" />  
93 - <glyph glyph-name="uniE613" unicode="&#xe613;"  
94 -d="M512 77l-439 614h878z" />  
95 - <glyph glyph-name="uniE614" unicode="&#xe614;"  
96 -d="M313 35l349 349l-349 349q-7 7 -7 16.5t6.5 16t16 6.5t16.5 -6l345 -345q16 -15 21 -20q7 -7 7 -17t-7 -17q-44 -44 -48 -47l-318 -318q-7 -6 -16.5 -6t-16 6.5t-6.5 16t7 16.5z" />  
97 - <glyph glyph-name="uniE615" unicode="&#xe615;"  
98 -d="M527 559q8 0 14 -6l293 -288q6 -6 6.5 -14.5t-5.5 -14.5t-14.5 -6t-14.5 6l-279 273l-278 -273q-7 -6 -15 -6t-14 6t-6 14.5t6 14.5l293 288q6 6 14 6z" />  
99 - <glyph glyph-name="uniE616" unicode="&#xe616;"  
100 -d="M527.5 230q-8.5 0 -14.5 6l-293 288q-6 6 -6 14t6 14.5t14 6.5t15 -6l278 -274l279 274q6 6 14.5 6t14.5 -6.5t5.5 -14.5t-6.5 -14l-293 -288q-5 -6 -13.5 -6z" />  
101 - <glyph glyph-name="uniE617" unicode="&#xe617;" horiz-adv-x="1030"  
102 -d="M-195 258zM520 866q-98 0 -187.5 -38t-154 -102.5t-102.5 -154t-38 -187.5t38 -187.5t102.5 -154t154 -102.5t187.5 -38t187.5 38t154 102.5t102.5 154t38 187.5t-38 187.5t-102.5 154t-154 102.5t-187.5 38zM857 581l-339 -451l-328 238q-12 9 -14 23.5t6.5 26.5t23 14  
103 -t26.5 -6l271 -198l297 396q9 12 23.5 14t26.5 -7t14 -23.5t-7 -26.5z" />  
104 - <glyph glyph-name="uniE618" unicode="&#xe618;"  
105 -d="M224 288q-40 0 -68 28t-28 68t28 68t68 28t68 -28t28 -68t-28 -68t-68 -28zM512 288q-40 0 -68 28t-28 68t28 68t68 28t68 -28t28 -68t-28 -68t-68 -28zM800 288q-40 0 -68 28t-28 68t28 68t68 28t68 -28t28 -68t-28 -68t-68 -28z" />  
106 - <glyph glyph-name="uniE619" unicode="&#xe619;"  
107 -d="M125.5 309q30.5 0 51 21.5t20.5 52.5q0 33 -20.5 54.5t-51 21.5t-51.5 -21.5t-21 -54.5q0 -31 21 -52.5t51.5 -21.5zM512.5 309q30.5 0 51 21.5t20.5 52.5q0 33 -20.5 54.5t-51 21.5t-51.5 -21.5t-21 -54.5q0 -31 21 -52.5t51.5 -21.5zM899.5 309q30.5 0 51 21.5  
108 -t20.5 52.5q0 33 -20.5 54.5t-51 21.5t-51.5 -21.5t-21 -54.5q0 -31 21 -52.5t51.5 -21.5z" />  
109 - <glyph glyph-name="uniE61A" unicode="&#xe61a;"  
110 -d="M512 -62q-91 0 -173.5 35.5t-142 95t-95 142t-35.5 173.5t35.5 173.5t95 142t142 95t173.5 35.5t173.5 -35.5t142 -95t95 -142t35.5 -173.5t-35.5 -173.5t-95 -142t-142 -95t-173.5 -35.5zM512 766q-104 0 -192 -51t-139 -139t-51 -192t51 -192t139 -139t192 -51t192 51  
111 -t139 139t51 192t-51 192t-139 139t-192 51zM512 592zM464 592q0 20 14 34t34 14t34 -14t14 -34t-14 -34t-34 -14t-34 14t-14 34zM512 128q-13 0 -22.5 9.5t-9.5 22.5v288q0 13 9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5v-288q0 -13 -9.5 -22.5t-22.5 -9.5z" />  
112 - <glyph glyph-name="uniE61B" unicode="&#xe61b;"  
113 -d="M437 137h-193q-27 2 -41.5 22.5t-17.5 45.5q3 25 17.5 41t41.5 18h193v63l-193 1q-27 2 -41.5 19t-17.5 43q3 25 17.5 41t41.5 18h144l-134 236q-10 12 -19 30.5t-8 40.5q5 28 20 45.5t56 22.5q24 -2 43 -16.5t31 -31.5l152 -278l167 280q12 17 31 30t43 16  
114 -q15 -1 27.5 -4t22 -10t16 -20t9.5 -34q0 -29 -20 -55l-155 -252h147q26 -2 41 -18t17 -41q-2 -26 -17.5 -44t-41.5 -20l-191 -1v-61h192q26 -2 41 -20t17 -43q-2 -26 -17 -43.5t-41 -19.5l-192 1v-106q-4 -85 -93 -85q-44 0 -68.5 21t-26.5 64v104z" />  
115 - <glyph glyph-name="uniE61C" unicode="&#xe61c;"  
116 -d="M946 -112h-868q-26 0 -44 18t-18 44v868q0 26 18 44t44 18h868q26 0 44 -18t18 -44v-868q0 -26 -18 -44t-44 -18zM946 787q0 13 -9 22t-22 9h-806q-13 0 -22 -9t-9 -22v-806q0 -13 9 -22t22 -9h806q13 0 22 9t9 22v806z" />  
117 - <glyph glyph-name="uniE61D" unicode="&#xe61d;"  
118 -d="M939 -106h-876q-26 0 -44.5 18.5t-18.5 44.5v876q0 26 18.5 44.5t44.5 18.5h876q26 0 44.5 -18.5t18.5 -44.5v-876q0 -26 -18.5 -44.5t-44.5 -18.5zM814 708l-376 -438l-250 188l-63 -126l313 -250l439 501z" />  
119 - <glyph glyph-name="uniE61E" unicode="&#xe61e;"  
120 -d="M224 307l416 410l179 -179l-416 -410zM659 621l-19 19l-333 -333l19 -19zM698 582l-20 20l-332 -333l19 -19zM736 544l-19 19l-333 -333l19 -19zM717 800q14 14 38 14t39 -14l102 -102q14 -15 14 -39t-14 -38l-64 -58l-173 173zM211 282l167 -167l-148 -51l-70 70z  
121 -M205 51l-83 -32l32 83z" />  
122 - <glyph glyph-name="uniE61F" unicode="&#xe61f;"  
123 -d="M512 896q-138 0 -256 -69t-187 -187t-69 -256t69 -256t187 -187t256 -69t256 69t187 187t69 256t-69 256t-187 187t-256 69zM563 128h-102v307h102v-307zM563 538h-102v102h102v-102z" />  
124 - <glyph glyph-name="uniE620" unicode="&#xe620;"  
125 -d="M938 372h-30h-370v274h-50v-274h-395h-4q-31 0 -53 21.5t-22 52.5v175q0 31 22 53t53 22h90q-40 47 -40 100q0 27 10 47.5t25 30t29.5 15t24.5 6.5l11 1q53 0 100 -15.5t81 -42t56 -50t39 -50.5q17 27 39.5 51t56 50t79.5 41.5t98 15.5q4 0 11 -1t24 -7t30 -15.5  
126 -t24 -30.5t11 -49q0 -51 -35 -97h85q31 0 53 -22t22 -53v-175q0 -31 -22 -52.5t-53 -21.5zM264 821q-15 0 -26 -2.5t-15.5 -6t-6.5 -7.5t-2 -6v-3q0 -49 66 -100h173q-14 30 -30 52.5t-34 35.5t-33 21t-34.5 11.5t-30 4t-27.5 0.5zM763 819q-17 0 -27.5 -1t-29.5 -4  
127 -t-33.5 -11t-32 -20.5t-33.5 -34.5t-30 -52h177q59 50 59 97q2 0 0 6.5t-14 13t-36 6.5zM488 -128h-349q-31 0 -53 22t-22 53v375h424v-450zM538 322h400v-375q0 -31 -22 -53t-53 -22h-325v450z" />  
128 - <glyph glyph-name="uniE621" unicode="&#xe621;"  
129 -d="M160 576v-640q0 -26 19 -45t45 -19h576q26 0 45 19t19 45v640h-704zM352 0h-64v448h64v-448zM480 0h-64v448h64v-448zM608 0h-64v448h64v-448zM736 0h-64v448h64v-448zM880 768h-208v80q0 20 -14 34t-34 14h-224q-20 0 -34 -14t-14 -34v-80h-208q-20 0 -34 -14t-14 -34  
130 -v-80h832v80q0 20 -14 34t-34 14zM608 768h-192v63h192v-63z" />  
131 - <glyph glyph-name="uniE622" unicode="&#xe622;" horiz-adv-x="1173"  
132 -d="M586 672q-28 65 -69 113t-86.5 73.5t-96 34t-97.5 -2t-90 -39.5t-75.5 -73t-51.5 -107.5t-20 -138.5q0 -41 9 -78.5t24 -66.5t39 -57.5t47 -48.5t55.5 -43t56.5 -38t58.5 -35.5t53.5 -33.5q93 -61 162 -138.5t82 -120.5q10 39 81.5 118.5t160.5 142.5q24 17 71.5 47  
133 -t79 50.5t71.5 54.5t64 67t41 81t16 102q0 75 -19.5 138t-52.5 105.5t-76.5 70.5t-91 37.5t-98 1t-96 -34.5t-85.5 -72.5t-67 -108.5z" />  
134 - <glyph glyph-name="uniE623" unicode="&#xe623;"  
135 -d="M835 660l-60 63l-263 -275v0l-263 275l-60 -63l262 -276l-262 -276l60 -63l263 275v0l263 -275l60 63l-262 276z" />  
136 - <glyph glyph-name="uniE624" unicode="&#xe624;" horiz-adv-x="1000"  
137 -d="M459 850h55h54v-120v-142v-120h191h191v-109h-191h-191v-191v-190h-109v190v191h-191h-190q-1 37 -1 109h191h191v382z" />  
138 - <glyph glyph-name="uniE625" unicode="&#xe625;" horiz-adv-x="1000"  
139 -d="M77 468h873v-109h-873v109z" />  
140 - <glyph glyph-name="uniE626" unicode="&#xe626;"  
141 -d="M866.5 747.5q-97.5 97.5 -228 132t-261.5 0t-228.5 -132t-132 -228.5t0 -261.5t132 -228t228.5 -132t261.5 0t228 132t132 228t0 261.5t-132 228.5zM798 199l-101 -101l-187 186l-186 -186l-101 101l186 186l-186 187l101 101l186 -186l187 186l101 -101l-186 -187z" />  
142 - <glyph glyph-name="uniE627" unicode="&#xe627;"  
143 -d="M741 342q-23 9 -22 34q6 114 -8 186q-13 68 -37.5 125.5t-48 89.5t-50.5 57t-38 32t-18 10l-7 3l-7 -3q-7 -3 -18 -10t-38 -32t-50.5 -57t-48 -89.5t-37.5 -125.5q-14 -72 -8 -186q1 -25 -22 -34q-25 -11 -47.5 -26t-47 -40.5t-39 -65t-14.5 -87.5v-16h198  
144 -q2 -22 17.5 -36.5t37.5 -14.5h248q22 0 37.5 14.5t17.5 36.5h198v16q0 48 -14.5 87.5t-39 65t-47 40.5t-47.5 26zM512 526q-31 0 -53 22t-22 53t22 53t53 22t53 -22t22 -53t-22 -53t-53 -22zM453 23q-14 0 -23.5 -10t-9.5 -24v-83q0 -14 9.5 -24t23.5 -10t24 10t10 24v83  
145 -q0 14 -10 24t-24 10zM571 23q-14 0 -24 -10t-10 -24v-83q0 -14 10 -24t24 -10t23.5 10t9.5 24v83q0 14 -9.5 24t-23.5 10z" />  
146 - <glyph glyph-name="uniE628" unicode="&#xe628;"  
147 -d="M505 860q95 0 182 -37t150 -100t100.5 -150t37.5 -182t-37.5 -182t-100.5 -150t-150 -100.5t-182 -37.5t-182 37.5t-150 100.5t-100 150t-37 182t37 182t100 150t150 100t182 37zM505 -20q112 0 206.5 55t149.5 149.5t55 206t-55 206t-149.5 149.5t-206 55t-206 -55  
148 -t-149.5 -149.5t-55 -206t55 -206t149.5 -149.5t205.5 -55zM528 222v-59h-58v59h58zM470 648h58v-349h-58v349z" />  
149 - <glyph glyph-name="uniE629" unicode="&#xe629;"  
150 -d="M512 893v0q-58 0 -112.5 -12t-105.5 -38t-80.5 -44t-77.5 -51v-450q0 -57 19.5 -110.5t49 -93.5t69 -76t75.5 -59.5t73.5 -43t57 -28t32.5 -12.5q13 4 32.5 12.5t57 28t73.5 43t75.5 59.5t69 76t49 93.5t19.5 110.5v450q-48 33 -77.5 51t-80.5 44t-105.5 38t-112.5 12z  
151 -M808 298q0 -76 -36.5 -138t-112.5 -117q-73 -53 -147 -82q-74 29 -147 82q-76 55 -112.5 117t-36.5 138v421q87 53 146.5 75t149.5 23q90 -1 149.5 -23t146.5 -75v-421zM512 755q-67 0 -112.5 -12.5t-119.5 -49.5v-399q0 -35 12.5 -68.5t30 -57.5t44 -46t47 -35.5t46 -26  
152 -t34 -16t18.5 -6.5q10 3 18.5 6.5t34 16t46 26t47 35.5t44 46t30 57.5t12.5 68.5v399q-74 37 -119.5 49.5t-112.5 12.5v0zM667 599v-47h-105v-67h92v-61h-92v-77h116v-57h-332v57h42v168h64v-168h46v205h-138v61h307v-14z" />  
153 - <glyph glyph-name="uniE62A" unicode="&#xe62a;"  
154 -d="M497 890l-451 -386q-20 -18 -20 -45v-500q0 -32 22.5 -54.5t53.5 -22.5h256v333h308v-333h256q31 0 53.5 22.5t22.5 54.5v500q0 27 -20 45l-451 386q-15 13 -30 0z" />  
155 - <glyph glyph-name="uniE62B" unicode="&#xe62b;"  
156 -d="M761 623q0 -104 -73 -177t-176.5 -73t-177 73t-73.5 177t73.5 177t177 73t176.5 -73t73 -177zM888 -80q11 22 9 48q-7 99 -60 181.5t-139 130t-186.5 47.5t-187 -47.5t-139.5 -130t-60 -181.5q-1 -26 10 -48q12 -25 40 -25h673q27 0 40 25z" />  
157 - <glyph glyph-name="uniE62C" unicode="&#xe62c;" horiz-adv-x="1048"  
158 -d="M832 -42.5q0 -35.5 -25 -60.5t-60.5 -25t-60.5 25t-25 60.5t25 60.5t60.5 25t60.5 -25t25 -60.5zM533 -42.5q0 -35.5 -25 -60.5t-60 -25t-60 25t-25 60.5t25 60.5t60 25t60 -25t25 -60.5zM277 704l-35 159q-3 14 -15 23.5t-27 9.5h-147q-22 0 -37.5 -15.5t-15.5 -37.5  
159 -t15.5 -38t37.5 -16h54l157 -627q6 -25 25.5 -40t44.5 -15h527q25 0 44.5 15t25.5 40l113 452q9 34 -13 62t-57 28h-697z" />  
160 - <glyph glyph-name="uniE62D" unicode="&#xe62d;"  
161 -d="M442 358h-84v-76h-230v76h-81q-20 0 -33.5 -12.5t-13.5 -31.5v-395q0 -20 13.5 -33.5t33.5 -13.5h395q19 0 31.5 13.5t12.5 33.5v395q0 19 -12.5 31.5t-31.5 12.5zM977 896h-81v-77h-230v77h-84q-19 0 -31.5 -13.5t-12.5 -33.5v-395q0 -19 12.5 -31.5t31.5 -12.5h395  
162 -q20 0 33.5 12.5t13.5 31.5v395q0 20 -13.5 33.5t-33.5 13.5zM977 358h-81v-76h-230v76h-84q-19 0 -31.5 -12.5t-12.5 -31.5v-395q0 -20 12.5 -33.5t31.5 -13.5h395q20 0 33.5 13.5t13.5 33.5v395q0 19 -13.5 31.5t-33.5 12.5z" />  
163 - <glyph glyph-name="uniE62E" unicode="&#xe62e;" horiz-adv-x="1639"  
164 -d="M1 867h1045v-625h-1045v625zM1424 867h-337v-625l61 -33q33 14 70 14q66 0 116 -42t61 -105l7 -4h205v398zM1178 495v290h164l121 -290h-285zM235 209h-235v-163h111q2 57 36.5 101.5t87.5 61.5zM452 38q0 66 -47 112.5t-113.5 46.5t-114 -46.5t-47.5 -112.5t47.5 -112.5  
165 -t114 -46.5t113.5 46.5t47 112.5zM1067 209h-721q54 -17 88.5 -61.5t36.5 -101.5h570q0 50 26 92v71zM1380 40q0 66 -47 112.5t-113.5 46.5t-113.5 -46.5t-47 -112.5t47 -112.5t113.5 -46.5t113.5 46.5t47 112.5z" />  
166 - <glyph glyph-name="uniE62F" unicode="&#xe62f;"  
167 -d="M474 112v161h-167v50h167v74h-167v49h134l-168 265h87l152 -257v386q-35 0 -70.5 2t-64 6t-55 8.5t-46.5 8.5t-34.5 8t-22.5 6t-7 2q-2 -43 -16.5 -74t-34 -44t-38.5 -20t-33 -7h-13q0 -40 1.5 -78t3.5 -69t5.5 -59.5t7 -51t6.5 -41.5t6.5 -32.5t5.5 -23t3 -13.5l2 -5  
168 -q15 -61 45 -120.5t65.5 -105.5t75 -87t76.5 -70.5t67 -50.5t47.5 -32t17.5 -10v225h-38zM550 112v161h167v50h-167v74h167v49h-134l168 265h-87l-152 -257v386q76 0 151 10.5t112 20.5l37 10q2 -43 16.5 -74t34 -44t38.5 -20t33 -7h13q0 -234 -40 -368l-1 -5  
169 -q-15 -61 -44.5 -120.5t-65.5 -105.5t-75.5 -87t-76.5 -70.5t-66.5 -50.5t-47.5 -32t-18 -10v225h38z" />  
170 - <glyph glyph-name="uniE630" unicode="&#xe630;"  
171 -d="M629 25h-268v20q0 31 -21.5 53t-52.5 22t-52.5 -22t-21.5 -53v-20h-174v609h590v-609zM400 66h188v527h-508v-527h94q7 41 39 68t74 27t74 -27t39 -68zM989 25h-136v20q0 31 -21.5 53t-52.5 22t-52.5 -22t-21.5 -53v-20h-117v476h210q22 0 57 -34q27 -26 58 -67  
172 -q31 -40 52 -75q24 -41 24 -62v-238zM892 66h56v197q0 9 -18 40t-46 68t-53 63q-23 23 -34 26h-168v-394h37q7 41 39 68t74 27t74 -27t39 -68zM989 233h-287v193h191l6 -8q35 -43 61 -84q29 -48 29 -71v-30zM743 274h202q-6 15 -21 39q-21 34 -50 72h-131v-111zM779.5 -70  
173 -q-47.5 0 -81.5 34t-34 81.5t34 81.5t81.5 34t81 -34t33.5 -81.5t-33.5 -81.5t-81 -34zM779 120q-31 0 -52.5 -22t-21.5 -52.5t21.5 -52.5t52.5 -22t52.5 22t21.5 52.5t-21.5 52.5t-52.5 22zM287 -70q-48 0 -81.5 34t-33.5 81.5t33.5 81.5t81.5 34t81.5 -34t33.5 -81.5  
174 -t-33.5 -81.5t-81.5 -34zM287 120q-31 0 -52.5 -22t-21.5 -52.5t21.5 -52.5t52.5 -22t52.5 22t21.5 52.5t-21.5 52.5t-52.5 22z" />  
175 - <glyph glyph-name="uniE631" unicode="&#xe631;"  
176 -d="M24 895v-1022v1022zM47 895v-1022v1022zM70 895v-1022v1022zM94 895v-1022v1022zM117 895v-1022v1022zM140 895v-1022v1022zM163 895v-1022v1022zM187 895v-1022v1022zM210 895v-1022v1022zM233 895v-1022v1022zM256 895v-1022v1022zM280 895v-1022v1022zM303 895v-1022  
177 -v1022zM326 895v-1022v1022zM349 895v-1022v1022zM373 895v-1022v1022zM396 895v-1022v1022zM419 895v-1022v1022zM442 895v-1022v1022zM466 895v-1022v1022zM489 895v-1022v1022zM512 895v-1022v1022zM535 895v-1022v1022zM558 895v-1022v1022zM582 895v-1022v1022zM605 895  
178 -v-1022v1022zM628 895v-1022v1022zM651 895v-1022v1022zM675 895v-1022v1022zM698 895v-1022v1022zM721 895v-1022v1022zM744 895v-1022v1022zM768 895v-1022v1022zM791 895v-1022v1022zM814 895v-1022v1022zM837 895v-1022v1022zM861 895v-1022v1022zM884 895v-1022v1022z  
179 -M907 895v-1022v1022zM930 895v-1022v1022zM954 895v-1022v1022zM977 895v-1022v1022zM1000 895v-1022v1022zM1 872h1022h-1022zM1 849h1022h-1022zM1 826h1022h-1022zM1 802h1022h-1022zM1 779h1022h-1022zM1 756h1022h-1022zM1 733h1022h-1022zM1 709h1022h-1022zM1 686  
180 -h1022h-1022zM1 663h1022h-1022zM1 640h1022h-1022zM1 616h1022h-1022zM1 593h1022h-1022zM1 570h1022h-1022zM1 547h1022h-1022zM1 523h1022h-1022zM1 500h1022h-1022zM1 477h1022h-1022zM1 454h1022h-1022zM1 430h1022h-1022zM1 407h1022h-1022zM1 384h1022h-1022zM1 361  
181 -h1022h-1022zM1 338h1022h-1022zM1 314h1022h-1022zM1 291h1022h-1022zM1 268h1022h-1022zM1 245h1022h-1022zM1 221h1022h-1022zM1 198h1022h-1022zM1 175h1022h-1022zM1 152h1022h-1022zM1 128h1022h-1022zM1 105h1022h-1022zM1 82h1022h-1022zM1 59h1022h-1022zM1 35h1022  
182 -h-1022zM1 12h1022h-1022zM1 -11h1022h-1022zM1 -34h1022h-1022zM1 -58h1022h-1022zM1 -81h1022h-1022zM1 -104h1022h-1022zM512 -127q-7 8 -18.5 22t-45.5 59t-64.5 91t-68 113.5t-64.5 131.5t-45.5 139t-18.5 141q0 52 11 96.5t30 75.5t43 56.5t51 41t54 27t51.5 17  
183 -t43.5 8.5t30 3h11q7 0 18.5 -0.5t45.5 -7t64.5 -17.5t68 -35.5t64.5 -57.5t45.5 -87t18.5 -120q0 -237 -215 -552q-60 -88 -110 -145zM740 613q-16 85 -86 140q-1 1 -4 3.5t-5 3.5q-5 4 -22 13t-19 10q-1 0 -20 7q-21 7 -24 7q-24 5 -48 5v0q-24 0 -47 -5q-44 -8 -82 -34h-1  
184 -q-12 -9 -27 -23q-2 -1 -5 -4l-3 -3q-4 -4 -16 -19.5t-13 -16.5q-2 -3 -4.5 -7.5t-3.5 -5.5q-10 -19 -13 -27q-1 -2 -2 -6t-2 -5q-7 -21 -9 -32q-4 -22 -4 -44q0 -65 23.5 -146.5t58 -151.5t68.5 -129.5t58 -95.5t24 -35q9 13 25 36.5t56 92t70.5 133.5t55.5 148t25 148  
185 -q0 22 -4 43zM373 570q0 58 40.5 98.5t98.5 40.5t98.5 -40.5t40.5 -98.5t-40.5 -99t-98.5 -41t-98.5 41t-40.5 99z" />  
186 - <glyph glyph-name="uniE632" unicode="&#xe632;"  
187 -d="M313 247h397v69h-397v-69zM313 110h397v68h-397v-68zM611 831h-430q-14 0 -23.5 -10t-9.5 -24v-825q0 -14 9.5 -24t23.5 -10h661q14 0 24 10t10 24v619zM644 710l131 -119h-131v119zM809 7h-595v755h364v-206q0 -14 9.5 -24t23.5 -10h198v-515zM313 384h397v69h-397v-69z  
188 -" />  
189 - <glyph glyph-name="uniE633" unicode="&#xe633;" horiz-adv-x="1304"  
190 -d="M1303 538l-161 242h-304v-443h233q19 0 32.5 14t13.5 33t-13.5 33t-32.5 14h-140v256h161l118 -177v-242h-442v577q0 21 -15 36t-36 15h-666q-21 0 -36 -15t-15 -36v-620q0 -21 15 -35.5t36 -14.5h142q-30 -49 -30 -105q0 -82 58 -140t140 -58t140 58t58 140  
191 -q0 56 -31 105h363q-30 -49 -30 -105q0 -82 58 -140t140 -58t140 58t58 140q0 56 -31 105h77v363zM93 803h582v-535h-582v535zM465 70q0 -43 -30.5 -74t-74 -31t-74 31t-30.5 74t30.5 74t74 31t74 -31t30.5 -74zM1164 70q0 -43 -31 -74t-74 -31t-74 31t-31 74t31 74t74 31  
192 -t74 -31t31 -74z" />  
193 - <glyph glyph-name="uniE634" unicode="&#xe634;" horiz-adv-x="1476"  
194 -d="M1403 896h-1331q-30 0 -51 -21t-21 -51v-880q0 -30 21 -51t51 -21h1331q30 0 51.5 21t21.5 51v880q0 30 -21.5 51t-51.5 21zM120 776h1235v-151h-1235v151zM120 414h1235v-422h-1235v422zM211 294h572v-61h-572v61zM211 173h331v-60h-331v60z" />  
195 - <glyph glyph-name="uniE635" unicode="&#xe635;"  
196 -d="M512 881q-102 0 -194.5 -39.5t-160 -106.5t-107 -160t-39.5 -194.5t39.5 -194.5t107 -160t160 -107t194.5 -40t194.5 40t160 107t107 160t39.5 194.5t-39.5 194.5t-107 160t-160 106.5t-194.5 39.5zM512 -34q-112 0 -207.5 55.5t-151 151t-55.5 208t55.5 207.5t151 150.5  
197 -t207.5 55.5t207.5 -55.5t151 -150.5t55.5 -207.5t-55.5 -208t-151 -151t-207.5 -55.5zM512 555q25 0 43 -18t18 -44h87q0 50 -29 89t-75 53v50q0 9 -6.5 15.5t-15.5 6.5h-44q-9 0 -15.5 -6.5t-6.5 -15.5v-50q-46 -14 -75 -53t-29 -89q0 -104 133 -154q27 -9 44 -20t23 -22  
198 -t7.5 -16.5t1.5 -13.5q0 -25 -18 -43t-43 -18t-43 18t-18 43h-87q0 -49 29 -88t75 -54v-50q0 -9 6.5 -15t15.5 -6h44q9 0 15.5 6t6.5 15v50q46 15 75 54t29 88q0 105 -133 154q-27 10 -44 21t-23 22t-7.5 16.5t-1.5 12.5q0 26 18 44t43 18z" />  
199 - <glyph glyph-name="uniE636" unicode="&#xe636;"  
200 -d="M947 759h-892q-23 0 -39 -16t-16 -38v-642q0 -23 16 -39t39 -16h892q22 0 38 16t16 39v642q0 22 -16 38t-38 16zM836 668l-335 -260l-336 260h671zM91 100v511l376 -293q15 -11 33.5 -11t33.5 11l376 293v-511h-819z" />  
201 - <glyph glyph-name="uniE637" unicode="&#xe637;"  
202 -d="M512 656q-63 0 -107.5 -44.5t-44.5 -107.5t44.5 -107.5t107.5 -44.5t107.5 44.5t44.5 107.5t-44.5 107.5t-107.5 44.5zM512 880q-102 0 -188.5 -50.5t-136.5 -137t-50 -188.5q0 -56 36 -137.5t81 -151t104 -146.5t85 -107t44 -50l25 -28l25 28q18 20 44 50t85 107  
203 -t104 146.5t81 151t36 137.5q0 102 -50 188.5t-136.5 137t-188.5 50.5zM512 -13q-46 54 -93.5 115.5t-98.5 137t-83 147t-32 117.5q0 127 90 217t217 90t217 -90t90 -217q0 -46 -32 -117.5t-83 -147t-98.5 -137t-93.5 -115.5z" />  
204 - <glyph glyph-name="uniE638" unicode="&#xe638;" horiz-adv-x="1335"  
205 -d="M1273 -4h-1179q-26 0 -44 -18t-18 -44t18 -44t44 -18h1179q26 0 44 18t18 44t-18 44t-44 18zM841 741h429q27 0 46 18t19 44t-19 44t-46 18h-429q-27 0 -46 -18t-19 -44t19 -44t46 -18zM841 314h429q27 0 46 18t19 44t-19 44t-46 18h-429q-27 0 -46 -18t-19 -44t19 -44  
206 -t46 -18zM85 314h434q26 0 44 18t18 44v435q0 25 -18 43.5t-44 18.5h-434q-26 0 -44 -18.5t-18 -43.5v-435q0 -25 18 -43.5t44 -18.5zM147 749h310v-311h-310v311z" />  
207 - <glyph glyph-name="uniE639" unicode="&#xe639;"  
208 -d="M507 895q-101 0 -194 -40t-160 -107t-107 -160t-40 -194.5t40 -194.5t107 -160t160 -107t194.5 -40t194.5 40t160 107t107 160t40 194.5t-40 194.5t-107 160t-160 107t-195 40zM507 -20q-112 0 -207.5 55.5t-150.5 150.5t-55 207.5t55 208t150.5 151t208 55.5  
209 -t207.5 -55.5t150.5 -151t55.5 -208t-55.5 -207.5t-150.5 -150.5t-208 -55.5zM506 689h-1h-1q-67 0 -115 -47q-48 -48 -48 -116q0 -18 12.5 -31t30.5 -13t31 13t13 31q0 32 22 54q22 21 55 22q30 -1 52.5 -23t22.5 -52q1 -24 -12 -43t-34 -29q-34 -14 -54 -44.5t-20 -68.5  
210 -v-36q0 -18 13 -30.5t31 -12.5t31 12.5t13 30.5v36q0 24 20 33q46 20 73 61.5t26 91.5q-1 66 -48 113t-113 48zM504 219q-23 0 -39 -16t-16 -38.5t16 -38.5t39 -16t38.5 16t15.5 38.5t-15.5 38.5t-38.5 16z" />  
211 - <glyph glyph-name="uniE63A" unicode="&#xe63a;"  
212 -d="M964 460q21 1 35 16t14 36v147q0 21 -15.5 36.5t-36.5 15.5h-898q-21 0 -36.5 -15.5t-15.5 -36.5v-147q0 -21 14 -36t35 -16q29 -2 49.5 -24t20.5 -52t-20.5 -52t-49.5 -24q-21 -1 -35 -16t-14 -36v-147q0 -21 15.5 -36.5t36.5 -15.5h898q21 0 36.5 15.5t15.5 36.5v147  
213 -q0 21 -14 36t-35 16q-29 2 -49.5 24t-20.5 52t20.5 52t49.5 24zM926 227v-83h-828v83q52 15 85.5 58.5t33.5 98.5t-33.5 98.5t-85.5 58.5v83h283v-66h66v66h479v-83q-52 -15 -85.5 -58.5t-33.5 -98.5t33.5 -98.5t85.5 -58.5zM381 362h66v-109h-66v109zM381 515h66v-109h-66  
214 -v109zM381 210h66v-66h-66v66z" />  
215 - <glyph glyph-name="uniE63B" unicode="&#xe63b;" horiz-adv-x="1199"  
216 -d="M1149 896h-1099q-21 0 -35.5 -14.5t-14.5 -35.5v-350q0 -20 14.5 -35t35.5 -15h1099q21 0 35.5 15t14.5 35v350q0 21 -14.5 35.5t-35.5 14.5zM100 796h999v-250h-999v250zM1024 396q-21 0 -35.5 -14.5t-14.5 -34.5v-375h-749v375q0 20 -14.5 34.5t-35.5 14.5t-35.5 -14.5  
217 -t-14.5 -34.5v-425q0 -21 14.5 -35.5t35.5 -14.5h849q21 0 35.5 14.5t14.5 35.5v425q0 20 -14.5 34.5t-35.5 14.5zM325 396q-21 0 -35.5 -14.5t-14.5 -34.5v-200q0 -21 14.5 -35.5t35.5 -14.5h549q21 0 35.5 14.5t14.5 35.5v200q0 20 -14.5 34.5t-35.5 14.5t-35.5 -14.5  
218 -t-14.5 -34.5v-150h-449v150q0 20 -15 34.5t-35 14.5z" />  
219 - <glyph glyph-name="uniE63C" unicode="&#xe63c;" horiz-adv-x="1048"  
220 -d="M297.5 521q-20.5 0 -35 -14.5t-14.5 -35.5t14.5 -35.5t35 -14.5t35.5 14.5t15 35.5t-15 35.5t-35.5 14.5zM953 29q95 93 95 215t-94 214q2 20 2 23q0 111 -64 205t-174.5 148.5t-240 54.5t-239.5 -54.5t-174 -148.5t-64 -205q0 -78 33 -148.5t93 -125.5l-77 -123  
221 -q-8 -12 -6.5 -26t10.5 -25q13 -15 32 -15q9 0 18 4l180 80q4 2 7 4q20 -7 39 -12q48 -80 138.5 -128t199.5 -48q75 0 145 25q1 -1 2 -1l140 -62q8 -4 17 -4q20 0 32 15q10 10 11 24t-7 26zM286 244q0 -17 2 -35v1q-88 42 -140.5 114t-52.5 157t51.5 157t139.5 114t192 42  
222 -q142 0 249.5 -76.5t128.5 -189.5q-88 43 -189 43q-104 0 -191.5 -43.5t-138.5 -119t-51 -164.5zM381 244q0 96 84 164t202 68t202 -68t84 -163.5t-84 -163.5t-202 -68t-202 68t-84 163zM527 275q-16 0 -27.5 -11t-11.5 -27t11.5 -27.5t27.5 -11.5t27.5 11.5t11.5 27.5  
223 -t-11.5 27t-27.5 11zM667 275q-16 0 -27.5 -11t-11.5 -27t11.5 -27.5t27.5 -11.5t27.5 11.5t11.5 27.5t-11.5 27t-27.5 11zM806 275q-16 0 -27 -11t-11 -27t11 -27.5t27 -11.5t27.5 11.5t11.5 27.5t-11.5 27t-27.5 11z" />  
224 - <glyph glyph-name="uniE63D" unicode="&#xe63d;"  
225 -d="M512 13q-131 0 -241.5 55t-175 149.5t-64.5 205.5t64.5 205.5t175 149.5t241.5 55t241.5 -55t175 -149.5t64.5 -205.5t-64.5 -205.5t-175 -149.5t-241.5 -55zM512 751q-108 0 -200 -44t-145.5 -119.5t-53.5 -164.5t53.5 -164.5t145.5 -119.5t200 -44t200 44t145.5 119.5  
226 -t53.5 164.5t-53.5 164.5t-145.5 119.5t-200 44zM730 75l184 -82l-102 164zM914 -44q-8 0 -15 3l-184 82q-14 6 -19.5 20.5t0.5 28.5t20.5 19.5t28.5 -1.5l74 -33l-39 62q-8 13 -4.5 28t16.5 23t28 4.5t23 -16.5l102 -164q15 -23 -3 -43q-11 -13 -28 -13zM379 412.5  
227 -q0 -21.5 -15 -36.5t-36.5 -15t-36.5 15t-15 36.5t15 36.5t36.5 15t36.5 -15t15 -36.5zM563 412.5q0 -21.5 -15 -36.5t-36 -15t-36 15t-15 36.5t15 36.5t36 15t36 -15t15 -36.5zM748 413q0 -22 -15 -37t-36.5 -15t-36.5 15t-15 36.5t15 36.5t36.5 15t36.5 -15t15 -36z" />  
228 - <glyph glyph-name="uniE63E" unicode="&#xe63e;"  
229 -d="M521 401zM768 -94q-94 0 -205 56q-145 72 -277 204.5t-205 277.5q-55 113 -56.5 201t52.5 140q13 13 30 13t29.5 -13t12.5 -30t-12 -30q-32 -32 -26.5 -98t47.5 -149q68 -137 187.5 -256.5t256.5 -187.5q83 -42 149 -47.5t98 26.5q13 13 30 13t30 -13t13 -30t-13 -30  
230 -q-54 -47 -141 -47zM333 439q-26 0 -39 26q-9 16 -4 32.5t21 23.5l99 46q15 8 26 23t8 33q0 13 -17 30l-141 145q-20 20 -56 13q-12 -7 -25 -13l-68 -73q-13 -12 -30 -12t-30 12.5t-13 29.5t13 30l68 68q28 28 60 34q80 20 141 -34l140 -140q32 -32 39 -82q6 -41 -16.5 -81.5  
231 -t-64.5 -63.5l-98 -47h-13zM875 -55q-17 0 -30 12.5t-13 29.5t13 30l68 68q5 6 7.5 8.5t4 7t1.5 10.5q7 35 -13 55l-141 141q-4 4 -30 17q-18 3 -33 -7t-22 -27l-47 -98q-6 -16 -22.5 -21.5t-32.5 4.5q-17 6 -22 22.5t4 32.5l47 99q23 42 62 64.5t83 16.5q45 -7 77 -39  
232 -l141 -141q29 -28 38 -65t-4 -75q-17 -43 -34 -60l-72 -73q-13 -12 -30 -12zM602 171q-9 0 -26 8q-77 58 -154 128q-76 77 -128 154q-9 12 -6 29.5t19 30.5q16 9 33 6.5t27 -15.5q69 -95 119 -141q94 -85 141 -119q16 -10 18.5 -27t-9.5 -33q-6 -21 -34 -21z" />  
233 - <glyph glyph-name="uniE63F" unicode="&#xe63f;" horiz-adv-x="1025"  
234 -d="M512 18q-11 0 -31 -1t-36.5 -1t-30.5 2l-222 -146q0 227 5 243q-91 65 -144 152.5t-53 189.5q0 122 68.5 223t186 158.5t257.5 57.5t257.5 -57.5t186 -158.5t68.5 -222.5t-68.5 -223t-186 -159t-257.5 -57.5zM512 847q-122 0 -229 -52.5t-170.5 -143t-63.5 -194.5  
235 -q0 -95 53 -179t142 -138v-170l146 97q16 -3 35.5 -4t49 0t37.5 1q122 0 229 53.5t170.5 144.5t63.5 195t-63.5 194.5t-170.5 143t-229 52.5zM768 384q-27 0 -45.5 18.5t-18.5 45.5t18.5 45.5t45.5 18.5t45.5 -18.5t18.5 -45.5t-18.5 -45.5t-45.5 -18.5zM512 384  
236 -q-27 0 -45.5 18.5t-18.5 45.5t18.5 45.5t45.5 18.5t45.5 -18.5t18.5 -45.5t-18.5 -45.5t-45.5 -18.5zM256 384q-27 0 -45.5 18.5t-18.5 45.5t18.5 45.5t45.5 18.5t45.5 -18.5t18.5 -45.5t-18.5 -45.5t-45.5 -18.5z" />  
237 - <glyph glyph-name="uniE640" unicode="&#xe640;"  
238 -d="M957 594q-12 19 -38 19h-598l-29 62q-3 7 -8 14q-3 4 -8 8q-4 3 -7 6l-2 1l-8 4h-2q-5 2 -9 2l-4 1h-5h-118q-23 0 -40 -16.5t-17 -40t17 -40.5t40 -17h81l33 -71q2 -6 5 -13t5 -12t4.5 -9.5t3.5 -6.5l1 -2l81 -181q0 -2 2 -5l15 -32q9 -30 39 -38v-3h392l18 1v2  
239 -q30 9 39 38l98 217q40 77 19 112zM909 497l-93 -207l-3 1l-4 -15q-5 -19 -25 -19l-19 1v-1h-340h-18q-19 0 -24 19l-4 15l-3 -1l-93 208q-10 17 -18 40l-42 92h-102q-10 0 -17 7t-7 17t7 17.5t17 7.5h119l3 -1q1 0 4 -1q2 0 4 -2q2 -1 4 -3q2 -1 3 -3l4 -6l38 -83h619  
240 -q8 0 10 -3q5 -8 -1.5 -32.5t-18.5 -47.5zM470 191q-33 0 -56.5 -23t-23.5 -56t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5t-23.5 56t-56.5 23zM470 61q-21 0 -36 15t-15 36t15 36t36 15t36 -15t15 -36.5t-15 -36t-36 -14.5zM747 191q-33 0 -56.5 -23t-23.5 -56t23.5 -56.5  
241 -t56.5 -23.5t56.5 23.5t23.5 56.5t-23.5 56t-56.5 23zM747 61q-21 0 -36 14.5t-15 36t15 36.5t36 15t36 -15t15 -36t-15 -36t-36 -15z" />  
242 - <glyph glyph-name="uniE641" unicode="&#xe641;" horiz-adv-x="1045"  
243 -d="M522 893q-103 0 -197 -40t-162 -108t-108.5 -162t-40.5 -197.5t40.5 -197.5t108.5 -162t162 -108t197.5 -40t197.5 40t162 108t108 162t40 197.5t-40 197.5t-108 162t-162 108t-198 40zM522 -49q-88 0 -168.5 34.5t-138.5 93t-92.5 138.5t-34.5 168.5t34.5 169  
244 -t92.5 138.5t138.5 92.5t169 34.5t168.5 -34.5t138.5 -92.5t93 -138.5t34.5 -169t-34.5 -168.5t-93 -138.5t-138.5 -93t-169 -34.5zM775 268l-105 61q-11 4 -21 6.5t-18 2.5t-15 -0.5t-13 -4t-10 -5.5t-9 -6l-6 -7q-2 -2 -6 -7l-3 -4l-6 -10q-34 -4 -59 21l-51 50  
245 -q-24 25 -20 60l9 4q3 5 16 16t17 18t4 25t-11 43h-1l-60 105q-12 20 -33 25.5t-41 -5.5l-62 -36q-6 -3 -14 -11.5t-13 -14.5l-5 -6q-14 -87 24.5 -183.5t121.5 -174.5q72 -68 157 -101.5t165 -29.5q4 1 10.5 2.5t20.5 10t21 20.5l36 62q11 20 5.5 41.5t-25.5 32.5z" />  
246 - <glyph glyph-name="uniE642" unicode="&#xe642;"  
247 -d="M439 324h110l-54 148zM501 881q-101 0 -192.5 -39.5t-158 -105.5t-105.5 -158t-39 -192.5t39 -192.5t105.5 -158.5t158 -105.5t192.5 -39t192.5 39t158 105.5t105.5 158.5t39 192.5t-39 192.5t-105.5 158t-158 105.5t-192.5 39.5zM656 180l-19 -9q-5 -3 -11 -3q-5 0 -9 2  
248 -q-10 4 -14 14l-27 69h-163l-25 -69q-4 -10 -14.5 -14t-19.5 1l-20 9q-9 4 -12.5 13t-0.5 18l151 401q6 16 23 16t23 -16l151 -401q3 -9 -0.5 -18t-12.5 -13z" />  
249 - <glyph glyph-name="uniE643" unicode="&#xe643;" horiz-adv-x="1124"  
250 -d="M859 896h-595q-109 0 -186.5 -77.5t-77.5 -186.5v-760l200 135q18 14 49.5 24t63.5 14.5t71.5 6.5t66 2t57 -1t34.5 -1h317q109 0 186.5 77.5t77.5 186.5v316q0 109 -77.5 186.5t-186.5 77.5zM477 367q-42 0 -71.5 29.5t-29.5 70.5t29.5 70t71.5 29t71.5 -29t29.5 -70  
251 -t-29.5 -70.5t-71.5 -29.5zM848 367q-42 0 -71.5 29.5t-29.5 70.5t29.5 70t71.5 29t71.5 -29t29.5 -70t-29.5 -70.5t-71.5 -29.5z" />  
252 - <glyph glyph-name="uniE644" unicode="&#xe644;"  
253 -d="M523 881q-101 0 -192.5 -39.5t-158 -105.5t-105.5 -158t-39 -192.5t39 -192.5t105.5 -158.5t158 -105.5t192.5 -39t192.5 39t158 105.5t105.5 158.5t39 192.5t-39 192.5t-105.5 158t-158 105.5t-192.5 39.5zM739 224q8 -8 7.5 -18.5t-8.5 -17.5q-11 -10 -15 -14  
254 -q-7 -7 -17 -7t-18 7l-34 34q-59 -42 -131 -42q-94 0 -160.5 66.5t-66.5 160.5t67 160.5t160.5 66.5t160 -66.5t66.5 -160.5q0 -75 -45 -135zM592 337q8 7 18 6.5t17 -7.5l27 -27q25 39 25 84q0 64 -45.5 109.5t-110 45.5t-110 -45.5t-45.5 -109.5t45.5 -109.5t109.5 -45.5  
255 -q44 0 80 21l-27 28q-8 7 -7.5 18t7.5 18z" />  
256 - <glyph glyph-name="uniE645" unicode="&#xe645;"  
257 -d="M512 894q-104 0 -198 -40.5t-162.5 -109t-109 -162.5t-40.5 -198t40.5 -198t109 -162.5t162.5 -109t198 -40.5t198 40.5t162.5 109t109 162.5t40.5 198t-40.5 198t-109 162.5t-162.5 109t-198 40.5zM512 -53q-89 0 -170 34.5t-139.5 93t-93 139.5t-34.5 170t34.5 170  
258 -t93 139.5t139.5 93t170 34.5t170 -34.5t139.5 -93t93 -139.5t34.5 -170t-34.5 -170t-93 -139.5t-139.5 -93t-170 -34.5zM659 384q15 0 25.5 10.5t10.5 25.5t-10.5 26t-25.5 11h-111v17l135 141q11 11 10.5 26t-11 25.5t-25.5 10t-26 -11.5l-115 -121l-123 122  
259 -q-11 11 -26 10.5t-25.5 -11t-11 -25.5t10.5 -26l135 -135v-22h-108q-15 0 -26 -11t-11 -26t11 -25.5t26 -10.5h108v-73h-108q-15 0 -26 -10.5t-11 -25.5t11 -26t26 -11h108v-108q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v108h111q15 0 25.5 11t10.5 26t-10.5 25.5  
260 -t-25.5 10.5h-111v73h111z" />  
261 - <glyph glyph-name="uniE646" unicode="&#xe646;"  
262 -d="M708 553l-257 -267l-135 141q-12 13 -28.5 13t-28 -12.5t-11.5 -29.5t11 -29l164 -170q4 -4 8 -7q12 -7 25.5 -5.5t23.5 12.5l284 295q12 13 12 30t-12 29q-41 16 -56 0zM512 384zM17 384q0 101 39 192.5t105.5 158t158 105.5t192.5 39t192.5 -39t158 -105.5t105.5 -158  
263 -t39 -192.5t-39 -192.5t-105.5 -158t-158 -105.5t-192.5 -39t-192.5 39t-158 105.5t-105.5 158t-39 192.5z" />  
264 - <glyph glyph-name="uniE647" unicode="&#xe647;"  
265 -d="M512 -92q-97 0 -185 37.5t-152 101.5t-101.5 152t-37.5 185t37.5 185t101.5 152t152 101.5t185 37.5t185 -37.5t152 -101.5t101.5 -152t37.5 -185t-37.5 -185t-101.5 -152t-152 -101.5t-185 -37.5zM512 828q-90 0 -172.5 -35t-142 -94.5t-94.5 -142t-35 -172.5t35 -172.5  
266 -t94.5 -142t142 -94.5t172.5 -35t172.5 35t142 94.5t94.5 142t35 172.5t-35 172.5t-94.5 142t-142 94.5t-172.5 35z" />  
267 - <glyph glyph-name="uniE648" unicode="&#xe648;"  
268 -d="M512 882q-101 0 -193.5 -39.5t-159 -106t-106 -159t-39.5 -193.5t39.5 -193.5t106 -159t159 -106t193.5 -39.5t193.5 39.5t159 106t106 159t39.5 193.5t-39.5 193.5t-106 159t-159 106t-193.5 39.5zM512 -82q-95 0 -181 37t-148.5 99.5t-99.5 148.5t-37 181t37 181  
269 -t99.5 148.5t148.5 99.5t181 37t181 -37t148.5 -99.5t99.5 -148.5t37 -181t-37 -181t-99.5 -148.5t-148.5 -99.5t-181 -37zM420 217l-156 155l-22 -22l178 -179l361 361l-23 23z" />  
270 - <glyph glyph-name="uniE649" unicode="&#xe649;"  
271 -d="M875 126l-363 -164l-363 164v610q247 75 363 75t363 -75v-610zM930 808q-34 11 -84.5 26t-159.5 38.5t-174 23.5t-174 -23.5t-159.5 -38.5t-84.5 -26q-14 -4 -22 -15.5t-8 -25.5v-669q0 -27 25 -39l405 -183q9 -3 18 -3t18 3l405 183q25 12 25 39v669q0 14 -8 25.5  
272 -t-22 15.5zM751 552v83h-473v-83h206v-298h-72v237h-87v-237h-66v-84h506v84h-193v119h151v83h-151v96h179z" />  
273 - <glyph glyph-name="uniE64A" unicode="&#xe64a;"  
274 -d="M510.5 -61q-90.5 0 -173.5 35.5t-142.5 95t-95 142.5t-35.5 173.5t35.5 173.5t95 142.5t142.5 95t173.5 35.5t173.5 -35.5t142.5 -95t95 -142.5t35.5 -173.5t-35.5 -173.5t-95 -142.5t-142.5 -95t-173.5 -35.5zM510.5 793q-110.5 0 -204.5 -54.5t-148.5 -148.5  
275 -t-54.5 -204.5t54.5 -204.5t148.5 -148.5t204.5 -54.5t204.5 54.5t148.5 148.5t54.5 204.5t-54.5 204.5t-148.5 148.5t-204.5 54.5zM491 347q-8 0 -13.5 5.5t-5.5 13.5v330q0 8 5.5 14t13.5 6t14 -6t6 -14v-330q0 -8 -6 -13.5t-14 -5.5zM763 347h-272q-8 0 -13.5 5.5  
276 -t-5.5 13.5t5.5 13.5t13.5 5.5h272q8 0 13.5 -5.5t5.5 -13.5t-5.5 -13.5t-13.5 -5.5z" />  
277 - <glyph glyph-name="uniE64B" unicode="&#xe64b;"  
278 -d="M379 -128q-57 0 -122 51.5t-97 132.5q-26 71 -27 149.5t24 151.5q11 33 32.5 70.5t37 58.5t46.5 62q17 20 51 68l11 14l23 34q9 14 21 35t18.5 38.5t11.5 38t4 42.5t-7 44q-6 11 7 24q7 7 20 7q149 -50 216 -284q27 50 58 69q12 6 23 0t11 -21q-3 -59 11.5 -126.5  
279 -t42.5 -126.5q4 -5 9 -17t8 -17q51 -89 55 -157q4 -63 -14.5 -126.5t-65.5 -120t-115 -80.5q-30 -11 -61 -11q-18 0 -30.5 5t-18 12.5t-7.5 13t-2 10.5q0 7 2 13t4 10t7.5 9.5t7.5 7t9 6.5t8 6l3 3q36 26 54 75.5t7 95.5q-4 28 -27 75q-2 6 -7.5 20t-8.5 22t-6.5 20t-4.5 23  
280 -q0 -2 -2 -5t-2 -5q-15 -42 -20 -75q0 -45 7 -58q7 -5 7.5 -14.5t-4.5 -16.5q-5 -8 -14 -10t-17 3v0q-67 44 -85 120q7 34 7 78v21v24q0 68 -10 92q-14 -53 -28 -72q-22 -39 -37 -58q-6 -6 -15.5 -20t-12.5 -18q-13 -22 -24 -46.5t-21.5 -61.5t-5.5 -78t28 -76  
281 -q3 -7 7.5 -12.5t8 -10t8.5 -10t7.5 -8t8 -7t7.5 -6.5t7.5 -6.5t6.5 -4.5q11 -9 16.5 -14.5t10 -14.5t0.5 -19q-5 -18 -21.5 -29.5t-39.5 -11.5z" />  
282 - <glyph glyph-name="uniE64C" unicode="&#xe64c;"  
283 -d="M911 725h-242v123q0 21 -13.5 34.5t-34.5 13.5h-246q-20 0 -33.5 -13.5t-13.5 -34.5v-123h-246q-21 0 -34.5 -13.5t-13.5 -34t13.5 -34t34.5 -13.5h293h243h293q21 0 34.5 13.5t13.5 34t-13.5 34t-34.5 13.5zM423 725v72h147v-72h-147zM765 579q-21 0 -34.5 -14  
284 -t-13.5 -34v-560h-441v560q0 20 -13.5 34t-34 14t-34 -14t-13.5 -34v-611q0 -21 13.5 -34.5t34.5 -13.5h536q20 0 33.5 13.5t13.5 34.5v611q3 20 -11.5 34t-35.5 14zM447 67v389q0 20 -13.5 33.5t-34 13.5t-34 -13.5t-13.5 -33.5v-389q0 -21 13.5 -34.5t34 -13.5t34 13.5  
285 -t13.5 34.5zM645 67v389q0 20 -13.5 33.5t-34.5 13.5q-20 0 -35.5 -13.5t-15.5 -33.5v-389q0 -21 13.5 -34.5t34.5 -13.5t36 13.5t15 34.5z" />  
286 - </font>  
287 -</defs></svg>