Guest User

Untitled

a guest
May 2nd, 2019
539
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 300.00 KB | None | 0 0
  1. Index: resources/assets/js/components/layouts/footer-page.vue
  2. IDEA additional info:
  3. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  4. <+>UTF-8
  5. ===================================================================
  6. --- resources/assets/js/components/layouts/footer-page.vue (date 1556261584000)
  7. +++ resources/assets/js/components/layouts/footer-page.vue (date 1556782116827)
  8. @@ -63,11 +63,11 @@
  9. EventBus.$on('logotype.set.edit-url', url => {
  10.  
  11. // If is first set then don't shake button
  12. - if (this.url) {
  13. + if (this.url && url !== this.url) {
  14. // Set the flag to shake up the buttons
  15. this.isNewUrl = true;
  16.  
  17. - // Disable shake up after 3 sec.
  18. + // Disable shake up after 1 sec.
  19. this.disableButtonShake();
  20. }
  21.  
  22. Index: resources/assets/js/bootstrap.js
  23. IDEA additional info:
  24. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  25. <+>UTF-8
  26. ===================================================================
  27. --- resources/assets/js/bootstrap.js (date 1556261584000)
  28. +++ resources/assets/js/bootstrap.js (date 1556782116905)
  29. @@ -31,6 +31,10 @@
  30. // Require tippy lib
  31. window.tippy = require('tippy.js').default;
  32.  
  33. +import ElementUI from 'element-ui';
  34. +import 'element-ui/lib/theme-chalk/index.css';
  35. +Vue.use(ElementUI, { size: 'small', zIndex: 3000 });
  36. +
  37. // Init empty object.
  38. window.FormProcessor = {};
  39. window.Requester = require('./classes/requester');
  40. Index: resources/assets/sass/app.scss
  41. IDEA additional info:
  42. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  43. <+>UTF-8
  44. ===================================================================
  45. --- resources/assets/sass/app.scss (date 1556261584000)
  46. +++ resources/assets/sass/app.scss (date 1556782116927)
  47. @@ -1,18 +1,14 @@
  48. // Bootstrap
  49. @import '~bootstrap/scss/bootstrap';
  50. -
  51. @import '../../../node_modules/vue-multiselect/dist/vue-multiselect.min.css';
  52. -
  53. @import '../../../node_modules/tippy.js/themes/light.css';
  54. @import '../../../node_modules/vue2-animate/dist/vue2-animate.min.css';
  55. -
  56. // Variables
  57. @import "variables";
  58. @import "home-page";
  59. @import "auth";
  60. @import "fonts";
  61. @import "preview";
  62. -
  63. @import "media";
  64.  
  65. #editor {
  66. @@ -26,76 +22,122 @@
  67.  
  68. body {
  69. background-color: #E5E5E5;
  70. + font-family: 'Poppins', sans-serif !important;
  71. }
  72.  
  73. -.nav-menu {
  74. - list-style-type: none;
  75. - margin: 0;
  76. - padding: 0;
  77. - position: relative;
  78. - li {
  79. - list-style-type: none;
  80. +.top-right-menu {
  81. + .el-menu.el-menu--horizontal {
  82. + background: none;
  83. + border: none;
  84. + }
  85. + .el-submenu__title {
  86. + font-size: 17px;
  87. + }
  88. + .el-menu-item:hover {
  89. + background: #000;
  90. + }
  91. + .el-submenu .el-submenu__title:focus,
  92. + .el-submenu .el-submenu__title:hover {
  93. + background: none;
  94. + //color: white;
  95. + }
  96. +
  97. + //list-style-type: none;
  98. + //margin: 0;
  99. + //padding: 0;
  100. + //position: relative;
  101. + //li {
  102. + // list-style-type: none;
  103. + //}
  104. + //ul {
  105. + // margin: 0;
  106. + // padding: 0;
  107. + //}
  108. + //.submenu {
  109. + // position: absolute;
  110. + // right: -1px;
  111. + // z-index: 5;
  112. + // width: 180px;
  113. + // visibility: hidden;
  114. + // opacity: 0;
  115. + // transform: translateY(20px);
  116. + // transition: .3s ease-in-out;
  117. + // border: 1px solid #E7E7E7;
  118. + // box-sizing: border-box;
  119. + // border-radius: 0 0 5px 5px;
  120. + // background-color: #fff;
  121. + // box-shadow: 0 0 5px 1px rgba(0, 0, 0, 0.1);
  122. + // li {
  123. + // position: relative;
  124. + // border-bottom: 1px solid #E6E6E6;
  125. + // &:last-child {
  126. + // border-bottom: none;
  127. + // }
  128. + // &:hover {
  129. + // background-color: #E6E6E6;
  130. + // }
  131. + // }
  132. + // a {
  133. + // color: #1c1c1c;
  134. + // padding: 10px 20px;
  135. + // display: flex;
  136. + // text-decoration: none;
  137. + // align-items: center;
  138. + // justify-content: flex-end;
  139. + // font-family: 'Poppins', sans-serif;
  140. + // font-style: normal;
  141. + // font-weight: normal;
  142. + // line-height: normal;
  143. + // font-size: 14px;
  144. + // }
  145. + // .submenu {
  146. + // position: absolute;
  147. + // top: 0;
  148. + // right: calc(100% + 10px);
  149. + // }
  150. + //}
  151. + //li:hover > .submenu {
  152. + // visibility: visible;
  153. + // opacity: 1;
  154. + // transform: translateY(10px);
  155. + //}
  156. + //.submenu-link {
  157. + // svg {
  158. + // margin-right: 10px;
  159. + // }
  160. + // span {
  161. + // flex-grow: 3;
  162. + // text-align: right;
  163. + // }
  164. + //}
  165. +}
  166. +
  167. +#app {
  168. + .el-form-item__error {
  169. + color: #F56C6C;
  170. + font-size: 12px;
  171. + line-height: 1;
  172. + position: relative;
  173. + margin-top: 4px;
  174. + left: 0;
  175. }
  176. - ul {
  177. - margin: 0;
  178. + .el-form-item--small
  179. + .el-form-item__error {
  180. padding: 0;
  181. }
  182. - .submenu {
  183. - position: absolute;
  184. - right: -1px;
  185. - z-index: 5;
  186. - width: 180px;
  187. - visibility: hidden;
  188. - opacity: 0;
  189. - transform: translateY(20px);
  190. - transition: .3s ease-in-out;
  191. - border: 1px solid #E7E7E7;
  192. - box-sizing: border-box;
  193. - border-radius: 0 0 5px 5px;
  194. - background-color: #fff;
  195. - box-shadow: 0 0 5px 1px rgba(0, 0, 0, 0.1);
  196. - li {
  197. - position: relative;
  198. - border-bottom: 1px solid #E6E6E6;
  199. - &:last-child {
  200. - border-bottom: none;
  201. - }
  202. - &:hover {
  203. - background-color: #E6E6E6;
  204. - }
  205. - }
  206. - a {
  207. - color: #1c1c1c;
  208. - padding: 10px 20px;
  209. - display: flex;
  210. - text-decoration: none;
  211. - align-items: center;
  212. - justify-content: flex-end;
  213. - font-family: 'Poppins', sans-serif;
  214. - font-style: normal;
  215. - font-weight: normal;
  216. - line-height: normal;
  217. - font-size: 14px;
  218. - }
  219. - .submenu {
  220. - position: absolute;
  221. - top: 0;
  222. - right: calc(100% + 10px);
  223. - }
  224. - }
  225. - li:hover > .submenu {
  226. - visibility: visible;
  227. - opacity: 1;
  228. - transform: translateY(10px);
  229. - }
  230. - .submenu-link {
  231. - svg {
  232. - margin-right: 10px;
  233. - }
  234. - span {
  235. - flex-grow: 3;
  236. - text-align: right;
  237. - }
  238. + .el-form-item__label {
  239. + text-align: right;
  240. + float: left;
  241. + font-size: 11px;
  242. + color: #606266;
  243. + line-height: 20px;
  244. + padding: 0 12px 0 0;
  245. + -webkit-box-sizing: border-box;
  246. + box-sizing: border-box;
  247. + }
  248. + .el-form-item--small
  249. + .el-form-item__label {
  250. + line-height: 20px;
  251. }
  252. }
  253.  
  254. Index: resources/assets/js/components/editor.vue
  255. IDEA additional info:
  256. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  257. <+>UTF-8
  258. ===================================================================
  259. --- resources/assets/js/components/editor.vue (date 1556261584000)
  260. +++ resources/assets/js/components/editor.vue (date 1556782116851)
  261. @@ -1,6 +1,6 @@
  262. <template>
  263. <div id="svg_editor">
  264. - <div id="workarea" @scroll="scrollWorkarea">
  265. + <div id="workarea" @scroll="scrollWorkarea" v-loading="!states.is_loaded">
  266. <div id="svgcanvas" style="position:relative;"></div>
  267. <span class="helper">
  268. <!--<svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg">-->
  269. @@ -289,8 +289,8 @@
  270. Line
  271. </span>
  272. <span @click="toolSelect">Select</span>
  273. - <!--<span @click="clickShowIconsSidebar">-->
  274. - <!--<svg :class="showIcons ? 'show' : ''" width="27" height="27" viewBox="0 0 27 27" fill="none"-->
  275. + <!--<span @click="showIcons">-->
  276. + <!--<svg :class="show_icons ? 'show' : ''" width="27" height="27" viewBox="0 0 27 27" fill="none"-->
  277. <!--xmlns="http://www.w3.org/2000/svg">-->
  278. <!--<circle cx="13.5" cy="13.5" r="13" stroke="#3A58F9"/>-->
  279. <!--<path d="M11 8L16.5 13.5L11 19" stroke="#3A58F9"/>-->
  280. @@ -301,7 +301,7 @@
  281. <!--Left Sidebar end-->
  282.  
  283. <!--Icons sidebar start-->
  284. - <!--<div :class="showIcons ? 'show' : ''" class="icons-sidebar">-->
  285. + <!--<div :class="show_icons ? 'show' : ''" class="icons-sidebar">-->
  286. <!--<svg class="search" width="18" height="18" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">-->
  287. <!--<path d="M8.5 8.85416C9.42062 8.03018 10 6.83275 10 5.5C10 3.01472 7.98528 1 5.5 1C3.01472 1 1 3.01472 1 5.5C1 7.98528 3.01472 10 5.5 10C6.65253 10 7.70387 9.56672 8.5 8.85416ZM8.5 8.85416L13 13.3542" stroke="#3A58F9"/>-->
  288. <!--</svg>-->
  289. @@ -325,19 +325,20 @@
  290.  
  291. <input id="zoom" size="3" value="100%" type="hidden" readonly="readonly"/>
  292.  
  293. - <div :class="showIcons ? 'show' : ''" class="overlay"></div>
  294. + <div :class="show_icons ? 'show' : ''" class="overlay"></div>
  295. </div>
  296. </template>
  297.  
  298. <script>
  299. import svgToImage from '../classes/svg-to-image';
  300. import Driver from 'driver.js';
  301. - import devtools from '../editor/lib/devtools-detect'
  302. - import mousetrap from 'mousetrap'
  303. + import appMixin from '../mixins/app-mixin';
  304.  
  305. export default {
  306. name: 'editor',
  307.  
  308. + mixins:[appMixin],
  309. +
  310. data() {
  311. return {
  312. logotype: null,
  313. @@ -347,7 +348,7 @@
  314. },
  315. hash: null,
  316. canvas: {},
  317. - showIcons: false,
  318. + show_icons: false,
  319.  
  320. attributes: {
  321. // Main attributes
  322. @@ -450,6 +451,8 @@
  323. self.initTippyForRotate();
  324. });
  325. }, 100);
  326. +
  327. + self.states.is_loaded = true;
  328. });
  329. });
  330. }).catch(error => {
  331. @@ -458,8 +461,8 @@
  332. },
  333.  
  334. methods: {
  335. - clickShowIconsSidebar() {
  336. - this.showIcons = !this.showIcons;
  337. + showIcons() {
  338. + this.show_icons = !this.show_icons;
  339. },
  340.  
  341. startLogoSaver() {
  342. @@ -953,21 +956,14 @@
  343.  
  344. EventBus.$on('editor.preview.show', () => {
  345. try {
  346. - // Create logo dom object
  347. - let fakeElem = document.createElement('div');
  348. - fakeElem.innerHTML = this.getLogo();
  349. - let logotype = fakeElem.firstChild;
  350. + // Get dom logotype
  351. + let logotype = this.logoFromStr(this.getLogo());
  352.  
  353. - // Get snap lines
  354. - let snapLineX = logotype.getElementById('snap_line_x');
  355. - let snapLineY = logotype.getElementById('snap_line_y');
  356. -
  357. - // Hide snap lines
  358. - snapLineX.style.display = 'none';
  359. - snapLineY.style.display = 'none';
  360. + // Clear logotype
  361. + this.clearLogotype(logotype);
  362.  
  363. // Save as png for preview
  364. - svgAsPngUri(logotype, {}, function (uri) {
  365. + svgAsPngUri(logotype, {scale: 0.3}, function (uri) {
  366. EventBus.$emit('preview.logotype.set-preview', uri);
  367. EventBus.$emit('logotype.preview.popup.show');
  368. });
  369. @@ -1135,11 +1131,7 @@
  370.  
  371. return cleanItems;
  372. },
  373. - rot13(str) {
  374. - return str.replace(/[a-zA-Z]/g, function (c) {
  375. - return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);
  376. - });
  377. - },
  378. +
  379. focusOnTextInput() {
  380. setTimeout(() => {
  381. // Focus
  382. @@ -1241,28 +1233,7 @@
  383. return x;
  384. },
  385.  
  386. - downloadProtection() {
  387. - // Only for servers
  388. - if (!location.host.includes("local")) {
  389. - if (!user.permissions.devtools) {
  390. - EventBus.$on("devtoolschange", event => {
  391. - if (event.isOpen) {
  392. - window.location.href = '/';
  393. - }
  394. - });
  395.  
  396. - // Disable context menu
  397. - document.oncontextmenu = function() {
  398. - return false;
  399. - };
  400. - }
  401. - }
  402. -
  403. - mousetrap.bind(['command+s', 'ctrl+s'], function(e) {
  404. - e.preventDefault();
  405. - e.stopPropagation();
  406. - });
  407. - },
  408.  
  409. initTippy() {
  410. const htmlCollection = document.getElementsByClassName('placeholder');
  411. Index: public/images/logo.svg
  412. IDEA additional info:
  413. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  414. <+>UTF-8
  415. ===================================================================
  416. --- public/images/logo.svg (date 1556261584000)
  417. +++ public/images/logo.svg (date 1556804401693)
  418. @@ -1,15 +1,9 @@
  419. <svg width="60" height="52" viewBox="0 0 60 52" fill="none" xmlns="http://www.w3.org/2000/svg">
  420. - <path fill-rule="evenodd" clip-rule="evenodd"
  421. - d="M1.27799 8.69056L6.93164 1.96436C7.97791 0.719597 9.52705 0 11.1605 0H48.959C50.5864 0 52.1305 0.714307 53.1768 1.95122L58.7109 8.49343C60.3327 10.4106 60.4345 13.1761 58.958 15.2056L33.8375 49.7341C31.6101 52.7957 26.9995 52.7462 24.8393 49.6376L0.9734 15.2931C-0.429802 13.2739 -0.305254 10.5742 1.27799 8.69056ZM9.82724 5.44809L4.50905 11.3782C4.1825 11.7423 4.14747 12.2802 4.42409 12.683L27.2932 45.983C28.31 47.4636 30.5006 47.4905 31.554 46.0354L51.5131 18.465C52.022 17.762 51.5157 16.7825 50.6434 16.7825H34.3121C33.9462 16.7825 33.6057 16.5971 33.409 16.2909L32.2862 14.5421C31.832 13.8347 32.344 12.9085 33.1892 12.9085H53.5767C54.4754 12.9085 54.9743 11.8762 54.4117 11.1807L49.1267 4.64769C48.9234 4.39647 48.6163 4.2503 48.2916 4.2503H16.7019C15.8449 4.2503 15.3352 5.1996 15.8131 5.90547L27.8163 23.6335C28.0152 23.9273 28.3484 24.1035 28.705 24.1035H34.1818C35.0824 24.1035 35.5807 25.1395 35.0143 25.8343L30.1651 31.7835C29.7061 32.3466 28.8263 32.299 28.4317 31.6896L11.528 5.58015C11.1449 4.98836 10.2985 4.92265 9.82724 5.44809Z"
  422. - fill="url(#paint0_angular)"/>
  423. + <path fill-rule="evenodd" clip-rule="evenodd" d="M1.27799 8.69056L6.93164 1.96436C7.97791 0.719597 9.52705 0 11.1605 0H48.959C50.5864 0 52.1305 0.714307 53.1768 1.95122L58.7109 8.49343C60.3327 10.4106 60.4345 13.1761 58.958 15.2056L33.8375 49.7341C31.6101 52.7957 26.9995 52.7462 24.8393 49.6376L0.9734 15.2931C-0.429802 13.2739 -0.305254 10.5742 1.27799 8.69056ZM9.82724 5.44809L4.50905 11.3782C4.1825 11.7423 4.14747 12.2802 4.42409 12.683L27.2932 45.983C28.31 47.4636 30.5006 47.4905 31.554 46.0354L51.5131 18.465C52.022 17.762 51.5157 16.7825 50.6434 16.7825H34.3121C33.9462 16.7825 33.6057 16.5971 33.409 16.2909L32.2862 14.5421C31.832 13.8347 32.344 12.9085 33.1892 12.9085H53.5767C54.4754 12.9085 54.9743 11.8762 54.4117 11.1807L49.1267 4.64769C48.9234 4.39647 48.6163 4.2503 48.2916 4.2503H16.7019C15.8449 4.2503 15.3352 5.1996 15.8131 5.90547L27.8163 23.6335C28.0152 23.9273 28.3484 24.1035 28.705 24.1035H34.1818C35.0824 24.1035 35.5807 25.1395 35.0143 25.8343L30.1651 31.7835C29.7061 32.3466 28.8263 32.299 28.4317 31.6896L11.528 5.58015C11.1449 4.98836 10.2985 4.92265 9.82724 5.44809Z" fill="url(#paint0_linear)"/>
  424. <defs>
  425. - <radialGradient id="paint0_angular" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse"
  426. - gradientTransform="translate(30 55.5) rotate(-90) scale(12 12.0116)">
  427. - <stop stop-color="#347CE9"/>
  428. - <stop offset="0.276243" stop-color="#15E4E4"/>
  429. - <stop offset="0.502762" stop-color="#3446E9"/>
  430. - <stop offset="0.734807" stop-color="#AF34E9"/>
  431. - <stop offset="1" stop-color="#347CE9"/>
  432. - </radialGradient>
  433. + <linearGradient id="paint0_linear" x1="60" y1="15.5" x2="9.55109e-08" y2="15.5" gradientUnits="userSpaceOnUse">
  434. + <stop stop-color="#6063E9"/>
  435. + <stop offset="1" stop-color="#2AA0E8"/>
  436. + </linearGradient>
  437. </defs>
  438. </svg>
  439. Index: app/Http/Controllers/HomeController.php
  440. IDEA additional info:
  441. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  442. <+>UTF-8
  443. ===================================================================
  444. --- app/Http/Controllers/HomeController.php (date 1556261584000)
  445. +++ app/Http/Controllers/HomeController.php (date 1556782116616)
  446. @@ -19,7 +19,7 @@
  447. /**
  448. * Show the application dashboard.
  449. *
  450. - * @return \Illuminate\Http\Response
  451. + * @return \Illuminate\Contracts\Support\Renderable
  452. */
  453. public function index()
  454. {
  455. Index: resources/assets/images/logo.svg
  456. IDEA additional info:
  457. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  458. <+>UTF-8
  459. ===================================================================
  460. --- resources/assets/images/logo.svg (date 1556261584000)
  461. +++ resources/assets/images/logo.svg (date 1556800254574)
  462. @@ -1,15 +1,9 @@
  463. <svg width="60" height="52" viewBox="0 0 60 52" fill="none" xmlns="http://www.w3.org/2000/svg">
  464. - <path fill-rule="evenodd" clip-rule="evenodd"
  465. - d="M1.27799 8.69056L6.93164 1.96436C7.97791 0.719597 9.52705 0 11.1605 0H48.959C50.5864 0 52.1305 0.714307 53.1768 1.95122L58.7109 8.49343C60.3327 10.4106 60.4345 13.1761 58.958 15.2056L33.8375 49.7341C31.6101 52.7957 26.9995 52.7462 24.8393 49.6376L0.9734 15.2931C-0.429802 13.2739 -0.305254 10.5742 1.27799 8.69056ZM9.82724 5.44809L4.50905 11.3782C4.1825 11.7423 4.14747 12.2802 4.42409 12.683L27.2932 45.983C28.31 47.4636 30.5006 47.4905 31.554 46.0354L51.5131 18.465C52.022 17.762 51.5157 16.7825 50.6434 16.7825H34.3121C33.9462 16.7825 33.6057 16.5971 33.409 16.2909L32.2862 14.5421C31.832 13.8347 32.344 12.9085 33.1892 12.9085H53.5767C54.4754 12.9085 54.9743 11.8762 54.4117 11.1807L49.1267 4.64769C48.9234 4.39647 48.6163 4.2503 48.2916 4.2503H16.7019C15.8449 4.2503 15.3352 5.1996 15.8131 5.90547L27.8163 23.6335C28.0152 23.9273 28.3484 24.1035 28.705 24.1035H34.1818C35.0824 24.1035 35.5807 25.1395 35.0143 25.8343L30.1651 31.7835C29.7061 32.3466 28.8263 32.299 28.4317 31.6896L11.528 5.58015C11.1449 4.98836 10.2985 4.92265 9.82724 5.44809Z"
  466. - fill="url(#paint0_angular)"/>
  467. + <path fill-rule="evenodd" clip-rule="evenodd" d="M1.27799 8.69056L6.93164 1.96436C7.97791 0.719597 9.52705 0 11.1605 0H48.959C50.5864 0 52.1305 0.714307 53.1768 1.95122L58.7109 8.49343C60.3327 10.4106 60.4345 13.1761 58.958 15.2056L33.8375 49.7341C31.6101 52.7957 26.9995 52.7462 24.8393 49.6376L0.9734 15.2931C-0.429802 13.2739 -0.305254 10.5742 1.27799 8.69056ZM9.82724 5.44809L4.50905 11.3782C4.1825 11.7423 4.14747 12.2802 4.42409 12.683L27.2932 45.983C28.31 47.4636 30.5006 47.4905 31.554 46.0354L51.5131 18.465C52.022 17.762 51.5157 16.7825 50.6434 16.7825H34.3121C33.9462 16.7825 33.6057 16.5971 33.409 16.2909L32.2862 14.5421C31.832 13.8347 32.344 12.9085 33.1892 12.9085H53.5767C54.4754 12.9085 54.9743 11.8762 54.4117 11.1807L49.1267 4.64769C48.9234 4.39647 48.6163 4.2503 48.2916 4.2503H16.7019C15.8449 4.2503 15.3352 5.1996 15.8131 5.90547L27.8163 23.6335C28.0152 23.9273 28.3484 24.1035 28.705 24.1035H34.1818C35.0824 24.1035 35.5807 25.1395 35.0143 25.8343L30.1651 31.7835C29.7061 32.3466 28.8263 32.299 28.4317 31.6896L11.528 5.58015C11.1449 4.98836 10.2985 4.92265 9.82724 5.44809Z" fill="url(#paint0_linear)"/>
  468. <defs>
  469. - <radialGradient id="paint0_angular" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse"
  470. - gradientTransform="translate(30 55.5) rotate(-90) scale(12 12.0116)">
  471. - <stop stop-color="#347CE9"/>
  472. - <stop offset="0.276243" stop-color="#15E4E4"/>
  473. - <stop offset="0.502762" stop-color="#3446E9"/>
  474. - <stop offset="0.734807" stop-color="#AF34E9"/>
  475. - <stop offset="1" stop-color="#347CE9"/>
  476. - </radialGradient>
  477. + <linearGradient id="paint0_linear" x1="60" y1="15.5" x2="9.55109e-08" y2="15.5" gradientUnits="userSpaceOnUse">
  478. + <stop stop-color="#6063E9"/>
  479. + <stop offset="1" stop-color="#2AA0E8"/>
  480. + </linearGradient>
  481. </defs>
  482. </svg>
  483. Index: app/Http/Controllers/Auth/RegisterController.php
  484. IDEA additional info:
  485. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  486. <+>UTF-8
  487. ===================================================================
  488. --- app/Http/Controllers/Auth/RegisterController.php (date 1556261584000)
  489. +++ app/Http/Controllers/Auth/RegisterController.php (date 1556782116572)
  490. @@ -7,6 +7,7 @@
  491. use Illuminate\Foundation\Auth\RegistersUsers;
  492. use Illuminate\Http\Request;
  493. use Illuminate\Support\Facades\Validator;
  494. +use Illuminate\Auth\Events\Registered;
  495.  
  496. class RegisterController extends Controller
  497. {
  498. @@ -34,6 +35,23 @@
  499.  
  500. $this->users = $users;
  501. }
  502. +
  503. + /**
  504. + * @param Request $request
  505. + * @return \Illuminate\Http\RedirectResponse
  506. + * @throws \Throwable
  507. + */
  508. + public function register(Request $request)
  509. + {
  510. + $validated = $this->validator($request->all())->validate();
  511. +
  512. + event(new Registered($user = $this->create($validated)));
  513. +
  514. + $this->guard()->login($user);
  515. +
  516. + return $this->registered($request, $user)
  517. + ?: redirect($this->redirectPath());
  518. + }
  519.  
  520. /**
  521. * Get a validator for an incoming registration request.
  522. @@ -48,13 +66,11 @@
  523. 'password' => 'required|string|min:6|confirmed',
  524. ]);
  525. }
  526. -
  527. +
  528. /**
  529. - * Create a new user instance after a valid registration.
  530. - *
  531. - * @param array $attributes
  532. - *
  533. + * @param array $attributes
  534. * @return \App\Models\User
  535. + * @throws \Throwable
  536. */
  537. protected function create(array $attributes)
  538. {
  539. Index: app/Http/Controllers/Auth/SocialAccountController.php
  540. IDEA additional info:
  541. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  542. <+>UTF-8
  543. ===================================================================
  544. --- app/Http/Controllers/Auth/SocialAccountController.php (date 1556261584000)
  545. +++ app/Http/Controllers/Auth/SocialAccountController.php (date 1556801486173)
  546. @@ -7,37 +7,37 @@
  547.  
  548. class SocialAccountController extends Controller
  549. {
  550. + /**
  551. + * @param $provider
  552. + * @return mixed
  553. + */
  554. public function redirectToProvider($provider)
  555. {
  556. return \Socialite::driver($provider)->redirect();
  557. }
  558.  
  559. -
  560. /**
  561. * @param LinkedSocialAccount $accountService
  562. * @param $provider
  563. *
  564. - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
  565. + * @return \Illuminate\Http\RedirectResponse|
  566. + * @throws \Throwable
  567. */
  568. public function handleProviderCallback(LinkedSocialAccount $accountService, $provider)
  569. {
  570. try {
  571. $user = \Socialite::with($provider)->user();
  572. } catch (\Exception $e) {
  573. - dd($e);
  574. -
  575. - return redirect('/login');
  576. + return redirect()->route('login', ['type' => 'error', 'message' => $e->getMessage()]);
  577. }
  578.  
  579. - dd($user, $user->getEmail());
  580. + // Create or find user
  581. + $user = $accountService->findOrCreate($user, $provider);
  582.  
  583. - $authUser = $accountService->findOrCreate(
  584. - $user,
  585. - $provider
  586. - );
  587. + // Try login user
  588. + auth()->login($user, true);
  589.  
  590. - auth()->login($authUser, true);
  591. -
  592. - return redirect()->to('/home');
  593. + // Redirect to authorized resource
  594. + return redirect()->intended();
  595. }
  596. }
  597. Index: app/Models/User.php
  598. IDEA additional info:
  599. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  600. <+>UTF-8
  601. ===================================================================
  602. --- app/Models/User.php (date 1556261584000)
  603. +++ app/Models/User.php (date 1556782116676)
  604. @@ -3,39 +3,53 @@
  605. namespace App\Models;
  606.  
  607. use App\Enums\Roles;
  608. +use App\Notifications\VerifyEmail;
  609. use App\Repositories\UserLogoRepository;
  610. +use Illuminate\Contracts\Auth\MustVerifyEmail;
  611. use Illuminate\Foundation\Auth\User as Authenticatable;
  612. +use Illuminate\Notifications\Notifiable;
  613. use Spatie\Permission\Traits\HasRoles;
  614.  
  615. -class User extends Authenticatable
  616. +class User extends Authenticatable implements MustVerifyEmail
  617. {
  618. - use HasRoles;
  619. -
  620. + use HasRoles, Notifiable;
  621. +
  622. /**
  623. * The attributes that are mass assignable.
  624. *
  625. * @var array
  626. */
  627. - protected $fillable = [
  628. - 'name', 'email', 'password',
  629. - ];
  630. -
  631. + protected $guarded = [
  632. + 'email_verified_at',
  633. + ];
  634. +
  635. + /**
  636. + * @var array
  637. + */
  638. protected $appends = [
  639. 'last_user_hash',
  640. 'permissions',
  641. ];
  642. -
  643. +
  644. + /**
  645. + * @var array
  646. + */
  647. + protected $casts = [
  648. + 'social_meta' => 'array',
  649. + ];
  650. +
  651. /**
  652. * The attributes that should be hidden for arrays.
  653. *
  654. * @var array
  655. */
  656. protected $hidden = [
  657. - 'password', 'remember_token',
  658. + 'password',
  659. + 'remember_token',
  660. ];
  661. -
  662. +
  663. protected $guard_name = 'web';
  664. -
  665. +
  666. /**
  667. * @return \Illuminate\Database\Eloquent\Relations\HasMany
  668. */
  669. @@ -43,7 +57,7 @@
  670. {
  671. return $this->hasMany(LinkedSocialAccount::class);
  672. }
  673. -
  674. +
  675. /**
  676. * @return mixed
  677. */
  678. @@ -51,14 +65,40 @@
  679. {
  680. return \Session::get(UserLogoRepository::LAST_USER_HASH);
  681. }
  682. -
  683. +
  684. /**
  685. * @return array
  686. */
  687. public function getPermissionsAttribute()
  688. {
  689. return [
  690. - 'devtools' => $this->hasRole(Roles::ADMIN)
  691. + 'devtools' => $this->hasRole(Roles::ADMIN),
  692. ];
  693. }
  694. +
  695. + /**
  696. + * Send the email verification notification.
  697. + *
  698. + * @return void
  699. + */
  700. + public function sendEmailVerificationNotification()
  701. + {
  702. + $this->notify(new VerifyEmail);
  703. + }
  704. +
  705. + /**
  706. + * @param $pass
  707. + */
  708. + public function setPasswordAttribute($pass)
  709. + {
  710. + if ($pass) {
  711. + $passInfo = password_get_info($pass);
  712. +
  713. + if (!in_array($passInfo['algoName'], ['bcrypt'])) {
  714. + $pass = \Hash::make($pass);
  715. + }
  716. +
  717. + $this->attributes['password'] = $pass;
  718. + }
  719. + }
  720. }
  721. Index: app/Models/LinkedSocialAccount.php
  722. IDEA additional info:
  723. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  724. <+>UTF-8
  725. ===================================================================
  726. --- app/Models/LinkedSocialAccount.php (date 1556261584000)
  727. +++ app/Models/LinkedSocialAccount.php (date 1556782948245)
  728. @@ -2,46 +2,60 @@
  729.  
  730. namespace App\Models;
  731.  
  732. +use App\Repositories\UserRepository;
  733. use Illuminate\Database\Eloquent\Model;
  734. use Laravel\Socialite\Contracts\User as ProviderUser;
  735.  
  736. class LinkedSocialAccount extends Model
  737. {
  738. -
  739. protected $fillable = ['provider_name', 'provider_id'];
  740. -
  741. -
  742. +
  743. + /**
  744. + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
  745. + */
  746. public function user()
  747. {
  748. - return $this->belongsTo('App\User');
  749. + return $this->belongsTo(User::class);
  750. }
  751. -
  752. - public function findOrCreate(ProviderUser $providerUser, $provider)
  753. +
  754. + /**
  755. + * @param ProviderUser $providerUser
  756. + * @param string $provider
  757. + * @return User|Model|null
  758. + * @throws \Throwable
  759. + */
  760. + public function findOrCreate(ProviderUser $providerUser, string $provider)
  761. {
  762. + $repository = app(UserRepository::class);
  763. +
  764. $account = LinkedSocialAccount::where('provider_name', $provider)
  765. ->where('provider_id', $providerUser->getId())
  766. ->first();
  767. -
  768. +
  769. if ($account) {
  770. + // Mark as verified
  771. + if (!$account->user->hasVerifiedEmail()) {
  772. + $account->user->markEmailAsVerified();
  773. + }
  774. +
  775. return $account->user;
  776. } else {
  777. -
  778. - $user = User::where('email', $providerUser->getEmail())->first();
  779. -
  780. + $user = $repository->first('email', $providerUser->getEmail());
  781. +
  782. if (!$user) {
  783. - $user = User::create([
  784. - 'email' => $providerUser->getEmail(),
  785. - 'name' => $providerUser->getName(),
  786. + $user = $repository->create([
  787. + 'email' => $providerUser->getEmail(),
  788. + 'name' => $providerUser->getName(),
  789. + 'social_meta' => $providerUser->user,
  790. ]);
  791. }
  792. -
  793. +
  794. $user->accounts()->create([
  795. 'provider_id' => $providerUser->getId(),
  796. 'provider_name' => $provider,
  797. ]);
  798. -
  799. +
  800. return $user;
  801. -
  802. }
  803. }
  804. }
  805. Index: resources/assets/js/components/choose-logo.vue
  806. IDEA additional info:
  807. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  808. <+>UTF-8
  809. ===================================================================
  810. --- resources/assets/js/components/choose-logo.vue (date 1556261584000)
  811. +++ resources/assets/js/components/choose-logo.vue (date 1556782116836)
  812. @@ -1,24 +1,28 @@
  813. <template>
  814. - <div class="choose-logo-content row">
  815. - <transition name="slideLeft">
  816. - <div v-show="previewsIsReady" @scroll="scrollLogotypes($event)" style="height: 200px;"
  817. - class="col-md-3 left-content">
  818. - <ul>
  819. - <li v-for="(url, hash) in previews">
  820. - <a href="#"
  821. - @click.prevent="clickPreview(url, hash)"
  822. - :hash="hash"
  823. - class="logo-preview-image"
  824. - >
  825. - <img :src="url" alt="logo" width="300" height="auto">
  826. - <logo-hover :ref="'logo-hover-'+hash" :preview-url="url"></logo-hover>
  827. - </a>
  828. - </li>
  829. - </ul>
  830. - </div>
  831. - </transition>
  832. - <div class="col-md-9 right-content">
  833. - <preview></preview>
  834. + <div class="row">
  835. + <div class="col-12">
  836. + <div class="choose-logo-content row" v-loading="!previewsIsReady">
  837. + <transition name="slideLeft">
  838. + <div v-show="previewsIsReady" @scroll="scrollLogotypes($event)" style="height: 200px;"
  839. + class="col-md-3 left-content">
  840. + <ul>
  841. + <li v-for="(url, hash) in previews">
  842. + <a href="#"
  843. + @click.prevent="clickPreview(url, hash)"
  844. + :hash="hash"
  845. + class="logo-preview-image"
  846. + >
  847. + <img :src="url" alt="logo" width="300" height="auto">
  848. + <logo-hover :ref="'logo-hover-'+hash" :preview-url="url"></logo-hover>
  849. + </a>
  850. + </li>
  851. + </ul>
  852. + </div>
  853. + </transition>
  854. + <div class="col-md-9 right-content">
  855. + <preview></preview>
  856. + </div>
  857. + </div>
  858. </div>
  859. </div>
  860. </template>
  861. @@ -50,7 +54,7 @@
  862. // Previews not loaded
  863. self.isLoaded = false;
  864.  
  865. - return new Promise(function(resolve) {
  866. + return new Promise(function (resolve) {
  867.  
  868. // Get logos array hash
  869. let loadedLogos = Object.keys(self.previews);
  870. @@ -97,7 +101,7 @@
  871. initTippy() {
  872. const self = this;
  873.  
  874. - setTimeout(function() {
  875. + setTimeout(function () {
  876. tippy('a.logo-preview-image', {
  877. duration: 0,
  878. followCursor: true,
  879. Index: resources/views/client/profile.blade.php
  880. IDEA additional info:
  881. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  882. <+>UTF-8
  883. ===================================================================
  884. --- resources/views/client/profile.blade.php (date 1556782116964)
  885. +++ resources/views/client/profile.blade.php (date 1556782116964)
  886. @@ -0,0 +1,18 @@
  887. +@extends('layouts.main')
  888. +
  889. +@section('content')
  890. + <div class="container-fluid">
  891. + <div class="row">
  892. + <header-page></header-page>
  893. + </div>
  894. + <profile></profile>
  895. + </div>
  896. + <div class="row">
  897. + <footer-page></footer-page>
  898. + </div>
  899. + </div>
  900. +@endsection
  901. +
  902. +@section('custom-css')
  903. + <link rel="stylesheet" href="{{ asset('/fonts/css/fonts.css') }}" type="text/css"/>
  904. +@endsection
  905. \ No newline at end of file
  906. Index: resources/lang/en/client.php
  907. IDEA additional info:
  908. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  909. <+>UTF-8
  910. ===================================================================
  911. --- resources/lang/en/client.php (date 1556782116933)
  912. +++ resources/lang/en/client.php (date 1556782116933)
  913. @@ -0,0 +1,18 @@
  914. +<?php
  915. +
  916. +return [
  917. + 'profile' => [
  918. + 'update' => [
  919. + 'success' => 'Profile has been updated',
  920. + ],
  921. + 'password' => [
  922. + 'update' => [
  923. + 'success' => 'Password has been updated'
  924. + ]
  925. + ]
  926. + ],
  927. + 'verification' => [
  928. + 'success' => 'Email has been verified.',
  929. + 'sent' => 'We have e-mailed your email verification link.',
  930. + ],
  931. +];
  932. Index: resources/assets/js/mixins/app-mixin.js
  933. IDEA additional info:
  934. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  935. <+>UTF-8
  936. ===================================================================
  937. --- resources/assets/js/mixins/app-mixin.js (date 1556801612459)
  938. +++ resources/assets/js/mixins/app-mixin.js (date 1556801612459)
  939. @@ -0,0 +1,57 @@
  940. +import mousetrap from 'mousetrap';
  941. +import devtools from '../editor/lib/devtools-detect';
  942. +
  943. +export default {
  944. + mounted() {
  945. + //
  946. + },
  947. +
  948. + methods: {
  949. + downloadProtection() {
  950. + if (!location.host.includes("local")) {
  951. + if (!user.permissions.devtools) {
  952. + EventBus.$on("devtoolschange", event => {
  953. + if (event.isOpen) {
  954. + window.location.href = '/';
  955. + }
  956. + });
  957. +
  958. + document.oncontextmenu = function () {
  959. + return false;
  960. + };
  961. + }
  962. + }
  963. +
  964. + mousetrap.bind(['command+s', 'ctrl+s'], function (e) {
  965. + e.preventDefault();
  966. + e.stopPropagation();
  967. + });
  968. + },
  969. + rot13(str) {
  970. + return str.replace(/[a-zA-Z]/g, function (c) {
  971. + return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);
  972. + });
  973. + },
  974. +
  975. + clearLogotype(logotype) {
  976. + try {
  977. + // Get snap lines
  978. + let snapLineX = logotype.getElementById('snap_line_x');
  979. + let snapLineY = logotype.getElementById('snap_line_y');
  980. +
  981. + // Hide snap lines
  982. + snapLineX.style.display = 'none';
  983. + snapLineY.style.display = 'none';
  984. + } catch (e) {
  985. + console.warn(e);
  986. + }
  987. + },
  988. +
  989. + logoFromStr(xml) {
  990. + // Create logo dom object
  991. + let fakeElem = document.createElement('div');
  992. + fakeElem.innerHTML = xml;
  993. + return fakeElem.children[0];
  994. + },
  995. + }
  996. +}
  997. \ No newline at end of file
  998. Index: resources/views/auth/verify.blade.php
  999. IDEA additional info:
  1000. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1001. <+>UTF-8
  1002. ===================================================================
  1003. --- resources/views/auth/verify.blade.php (date 1556782116951)
  1004. +++ resources/views/auth/verify.blade.php (date 1556782116951)
  1005. @@ -0,0 +1,15 @@
  1006. +@extends('beautymail::templates.widgets')
  1007. +
  1008. +@section('content')
  1009. +
  1010. + @include('beautymail::templates.widgets.articleStart', ['color' => '#0000FF'])
  1011. +
  1012. + <h4 class="secondary">
  1013. + <strong>Hello!</strong>
  1014. + </h4>
  1015. + <p>Please click the button below to verify your email address.</p>
  1016. +
  1017. + @include('beautymail::templates.widgets.articleEnd')
  1018. +
  1019. +
  1020. +@stop
  1021. \ No newline at end of file
  1022. Index: app/Services/ImageConverter/src/js/psvg-convert.js
  1023. IDEA additional info:
  1024. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1025. <+>UTF-8
  1026. ===================================================================
  1027. --- app/Services/ImageConverter/src/js/psvg-convert.js (date 1556261584000)
  1028. +++ app/Services/ImageConverter/src/js/psvg-convert.js (date 1556811214410)
  1029. @@ -77,7 +77,7 @@
  1030. var fsvg = getSVGRect();
  1031. //page.clipRect = { left: fsvg.left, top: fsvg.top, width: fsvg.width, height: fsvg.height };
  1032.  
  1033. - page.render(outfile, {'format': rformat });
  1034. + page.render(outfile, {'format': rformat, scale: 1 });
  1035. phantom.exit(0);
  1036. } catch (error) {
  1037. console.log('Error: ' + error);
  1038. Index: database/migrations/2019_05_01_203948_add_social_meta_field.php
  1039. IDEA additional info:
  1040. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1041. <+>UTF-8
  1042. ===================================================================
  1043. --- database/migrations/2019_05_01_203948_add_social_meta_field.php (date 1556782116758)
  1044. +++ database/migrations/2019_05_01_203948_add_social_meta_field.php (date 1556782116758)
  1045. @@ -0,0 +1,32 @@
  1046. +<?php
  1047. +
  1048. +use Illuminate\Support\Facades\Schema;
  1049. +use Illuminate\Database\Schema\Blueprint;
  1050. +use Illuminate\Database\Migrations\Migration;
  1051. +
  1052. +class AddSocialMetaField extends Migration
  1053. +{
  1054. + /**
  1055. + * Run the migrations.
  1056. + *
  1057. + * @return void
  1058. + */
  1059. + public function up()
  1060. + {
  1061. + Schema::table('users', function (Blueprint $table) {
  1062. + $table->json('social_meta')->nullable();
  1063. + });
  1064. + }
  1065. +
  1066. + /**
  1067. + * Reverse the migrations.
  1068. + *
  1069. + * @return void
  1070. + */
  1071. + public function down()
  1072. + {
  1073. + Schema::table('users', function (Blueprint $table) {
  1074. + $table->dropColumn('social_meta');
  1075. + });
  1076. + }
  1077. +}
  1078. Index: resources/assets/js/components/client/profile.vue
  1079. IDEA additional info:
  1080. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1081. <+>UTF-8
  1082. ===================================================================
  1083. --- resources/assets/js/components/client/profile.vue (date 1556803680710)
  1084. +++ resources/assets/js/components/client/profile.vue (date 1556803680710)
  1085. @@ -0,0 +1,290 @@
  1086. +<template>
  1087. + <el-row class="main-padding">
  1088. + <el-col :span="16" class="logotypes-block">
  1089. + <el-card class="box-card" v-loading="!logotypes">
  1090. + <div slot="header" class="clearfix">
  1091. + <span>Recent logotypes</span>
  1092. + </div>
  1093. + <template v-if="hasLogotypes">
  1094. + <el-card v-for="logotype in logotypes"
  1095. + :key="logotype.url"
  1096. + v-loading="!logotype.preview"
  1097. + class="logo-card">
  1098. + <img :src="logotype.preview" class="image">
  1099. + <div class="bot-logo-card">
  1100. + <div class="bottom-block clearfix">
  1101. + <time class="time">{{ logotype.updated_at }}</time>
  1102. + <hr>
  1103. + <el-link :href="logotype.url" target="_blank" type="text"
  1104. + class="edit-logo-button primary">
  1105. + Edit logo
  1106. + </el-link>
  1107. + </div>
  1108. + </div>
  1109. + </el-card>
  1110. + </template>
  1111. + <template v-else>
  1112. + <el-alert v-show="logotypes && !hasLogotypes"
  1113. + type="info"
  1114. + description="You don't have any logos yet"
  1115. + show-icon>
  1116. + </el-alert>
  1117. + </template>
  1118. + </el-card>
  1119. + </el-col>
  1120. + <el-col :span="8">
  1121. + <div class="grid-content bg-purple-dark">
  1122. + <el-tabs type="border-card">
  1123. + <el-tab-pane label="Profile" icon="user-solid">
  1124. + <el-form label-position="top">
  1125. + <el-form-item label="Name" :error="forms.profile.errors.get('name')">
  1126. + <el-input v-model="models.profile.name"></el-input>
  1127. + </el-form-item>
  1128. + <el-form-item label="Email" :error="forms.profile.errors.get('email')">
  1129. + <el-input v-model="models.profile.email">
  1130. + <template v-if="user.email_verified_at" slot="append">
  1131. + <i class="el-icon-success icon-success"></i> Verified
  1132. + </template>
  1133. + <template v-else slot="append">
  1134. + <i class="el-icon-warning icon-warning"></i> Not verified
  1135. + </template>
  1136. + </el-input>
  1137. +
  1138. + <el-button
  1139. + v-if="!user.email_verified_at"
  1140. + @click="resendEmailVerification"
  1141. + :loading="forms.resend.busy"
  1142. + size="mini"
  1143. + class="resend-button">
  1144. + Resend verification
  1145. + </el-button>
  1146. + </el-form-item>
  1147. + <el-form-item>
  1148. + <el-button
  1149. + @click="updateProfile()"
  1150. + :loading="forms.profile.busy"
  1151. + type="primary"
  1152. + icon="el-icon-refresh">Update
  1153. + </el-button>
  1154. + </el-form-item>
  1155. + </el-form>
  1156. + </el-tab-pane>
  1157. + <el-tab-pane label="Password">
  1158. + <el-form label-position="top">
  1159. + <el-form-item label="Password" :error="forms.password.errors.get('password')">
  1160. + <el-input placeholder="Please input password" v-model="models.password.password" show-password></el-input>
  1161. + </el-form-item>
  1162. + <el-form-item label="Repeat password" :error="forms.password.errors.get('password_confirmation')">
  1163. + <el-input placeholder="Please repeat password" v-model="models.password.password_confirmation" show-password></el-input>
  1164. + </el-form-item>
  1165. + <el-form-item>
  1166. + <el-button
  1167. + @click="updatePassword()"
  1168. + :loading="forms.password.busy"
  1169. + type="primary"
  1170. + icon="el-icon-refresh">Set new password
  1171. + </el-button>
  1172. + </el-form-item>
  1173. + </el-form>
  1174. + </el-tab-pane>
  1175. + </el-tabs>
  1176. + </div>
  1177. + </el-col>
  1178. + </el-row>
  1179. +</template>
  1180. +
  1181. +<style lang="scss" scoped>
  1182. + .box-card {
  1183. + /*min-height: 200px;*/
  1184. + }
  1185. +
  1186. + .el-card__body {
  1187. + padding: 15px;
  1188. + }
  1189. +
  1190. + .logo-card {
  1191. + width: 200px;
  1192. + padding: 0;
  1193. + margin-left: 40px;
  1194. + margin-bottom: 25px;
  1195. + float: left;
  1196. + }
  1197. +
  1198. + .main-padding {
  1199. + padding-top: 110px;
  1200. + }
  1201. +
  1202. + .logotypes-block {
  1203. + padding-right: 20px;
  1204. + }
  1205. +
  1206. + .time {
  1207. + font-size: 13px;
  1208. + color: #999;
  1209. + }
  1210. +
  1211. + .bottom-block {
  1212. + margin-top: 13px;
  1213. + line-height: 12px;
  1214. + }
  1215. +
  1216. + .edit-logo-button {
  1217. + padding-top: 20px;
  1218. + }
  1219. +
  1220. + .image {
  1221. + width: 100%;
  1222. + display: block;
  1223. + }
  1224. +
  1225. + .clearfix:before,
  1226. + .clearfix:after {
  1227. + display: table;
  1228. + content: "";
  1229. + }
  1230. +
  1231. + .clearfix:after {
  1232. + clear: both
  1233. + }
  1234. +
  1235. + .bot-logo-card {
  1236. + padding-top: 5px;
  1237. + }
  1238. +
  1239. + .icon-success {
  1240. + color: #67c23a;
  1241. + }
  1242. +
  1243. + .icon-warning {
  1244. + color: #e6a23c;
  1245. + }
  1246. +
  1247. + .resend-button {
  1248. + margin-top: 10px;
  1249. + }
  1250. +</style>
  1251. +
  1252. +<script>
  1253. + import appMixin from '../../mixins/app-mixin';
  1254. + import svgToImage from '../../classes/svg-to-image';
  1255. +
  1256. + export default {
  1257. + name: 'profile',
  1258. + mixins: [appMixin],
  1259. + props: {
  1260. + customUser: {
  1261. + type: Object,
  1262. + default: null
  1263. + },
  1264. + },
  1265. + data() {
  1266. + return {
  1267. + user: this.customUser || window.user,
  1268. + logotypes: null,
  1269. +
  1270. + forms: {
  1271. + profile: new Form(),
  1272. + resend: new Form(),
  1273. + password: new Form(),
  1274. + },
  1275. +
  1276. + models: {
  1277. + profile: {
  1278. + name: user.name,
  1279. + email: user.email,
  1280. + },
  1281. + password: {
  1282. + password: null,
  1283. + password_confirmation: null,
  1284. + },
  1285. + },
  1286. + };
  1287. + },
  1288. + computed: {
  1289. + hasLogotypes: function () {
  1290. + return this.logotypes && this.logotypes.length > 0;
  1291. + }
  1292. + },
  1293. +
  1294. + mounted() {
  1295. + this.downloadProtection();
  1296. + this.loadMenu();
  1297. + },
  1298. +
  1299. + methods: {
  1300. + loadMenu() {
  1301. + if (this.user) {
  1302. + Requester.get(route('client.logotypes.get')).then((response) => {
  1303. + let logotypes = response.data;
  1304. +
  1305. + _.forEach(logotypes, (logo) => {
  1306. + return new Promise((resolve) => {
  1307. + setTimeout(() => {
  1308. + // Get dom logotype
  1309. + let logotype = this.logoFromStr(this.rot13(logo.content));
  1310. +
  1311. + // Clear logotype
  1312. + this.clearLogotype(logotype);
  1313. +
  1314. + return resolve(logotype);
  1315. + });
  1316. + }).then((logotype) => {
  1317. + // Save as image for preview
  1318. + svgAsPngUri(logotype, {scale: 0.3}, (preview) => {
  1319. + logo.preview = preview;
  1320. + logo.content = null;
  1321. + });
  1322. + });
  1323. + });
  1324. +
  1325. + this.logotypes = logotypes;
  1326. + });
  1327. + }
  1328. + },
  1329. +
  1330. + updateProfile() {
  1331. + // Actualize form object
  1332. + this.forms.profile.email = this.models.profile.email;
  1333. + this.forms.profile.name = this.models.profile.name;
  1334. +
  1335. + // Send request
  1336. + FormProcessor.post(route('client.profile.update'), this.forms.profile).then((response) => {
  1337. + // Set updated user
  1338. + this.user = response.user;
  1339. +
  1340. + this.$notify({
  1341. + message: response.message,
  1342. + type: response.status,
  1343. + });
  1344. + });
  1345. + },
  1346. +
  1347. + resendEmailVerification() {
  1348. + FormProcessor.post(route('verification.resend'), this.forms.resend).then((response) => {
  1349. + this.$notify({
  1350. + message: response.message,
  1351. + type: response.status,
  1352. + });
  1353. + });
  1354. + },
  1355. +
  1356. + updatePassword() {
  1357. + // Actualize form object
  1358. + this.forms.password.password = this.models.password.password;
  1359. + this.forms.password.password_confirmation = this.models.password.password_confirmation;
  1360. +
  1361. + // Send request
  1362. + FormProcessor.post(route('client.profile.password.update'), this.forms.password).then((response) => {
  1363. + // Clear form with passwords
  1364. + this.models.password.password = null;
  1365. + this.models.password.password_confirmation = null;
  1366. +
  1367. + this.$notify({
  1368. + message: response.message,
  1369. + type: response.status,
  1370. + });
  1371. + });
  1372. + },
  1373. + },
  1374. + };
  1375. +</script>
  1376. \ No newline at end of file
  1377. Index: app/Http/Requests/UpdateProfileRequest.php
  1378. IDEA additional info:
  1379. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1380. <+>UTF-8
  1381. ===================================================================
  1382. --- app/Http/Requests/UpdateProfileRequest.php (date 1556782116656)
  1383. +++ app/Http/Requests/UpdateProfileRequest.php (date 1556782116656)
  1384. @@ -0,0 +1,31 @@
  1385. +<?php
  1386. +
  1387. +namespace App\Http\Requests;
  1388. +
  1389. +use Illuminate\Foundation\Http\FormRequest;
  1390. +
  1391. +class UpdateProfileRequest extends FormRequest
  1392. +{
  1393. + /**
  1394. + * Determine if the user is authorized to make this request.
  1395. + *
  1396. + * @return bool
  1397. + */
  1398. + public function authorize()
  1399. + {
  1400. + return true;
  1401. + }
  1402. +
  1403. + /**
  1404. + * Get the validation rules that apply to the request.
  1405. + *
  1406. + * @return array
  1407. + */
  1408. + public function rules()
  1409. + {
  1410. + return [
  1411. + 'name' => 'string|min:1|max:50',
  1412. + 'email' => 'required|email',
  1413. + ];
  1414. + }
  1415. +}
  1416. Index: config/beautymail.php
  1417. IDEA additional info:
  1418. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1419. <+>UTF-8
  1420. ===================================================================
  1421. --- config/beautymail.php (date 1556782116742)
  1422. +++ config/beautymail.php (date 1556782116742)
  1423. @@ -0,0 +1,37 @@
  1424. +<?php
  1425. +
  1426. +return [
  1427. +
  1428. + // These CSS rules will be applied after the regular template CSS
  1429. +
  1430. + /*
  1431. + 'css' => [
  1432. + '.button-content .button { background: red }',
  1433. + ],
  1434. + */
  1435. +
  1436. + 'colors' => [
  1437. +
  1438. + 'highlight' => '#004ca3',
  1439. + 'button' => '#004cad',
  1440. +
  1441. + ],
  1442. +
  1443. + 'view' => [
  1444. + 'senderName' => null,
  1445. + 'reminder' => null,
  1446. + 'unsubscribe' => null,
  1447. + 'address' => null,
  1448. +
  1449. + 'logo' => [
  1450. + 'path' => '%PUBLIC%/images/logo.svg',
  1451. + 'width' => '',
  1452. + 'height' => '',
  1453. + ],
  1454. +
  1455. + 'twitter' => null,
  1456. + 'facebook' => null,
  1457. + 'flickr' => null,
  1458. + ],
  1459. +
  1460. +];
  1461. Index: app/Notifications/VerifyEmail.php
  1462. IDEA additional info:
  1463. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1464. <+>UTF-8
  1465. ===================================================================
  1466. --- app/Notifications/VerifyEmail.php (date 1556782116686)
  1467. +++ app/Notifications/VerifyEmail.php (date 1556782116686)
  1468. @@ -0,0 +1,68 @@
  1469. +<?php
  1470. +
  1471. +namespace App\Notifications;
  1472. +
  1473. +use Illuminate\Bus\Queueable;
  1474. +use Illuminate\Contracts\Queue\ShouldQueue;
  1475. +use Illuminate\Support\Carbon;
  1476. +use Illuminate\Support\Facades\URL;
  1477. +use Illuminate\Support\Facades\Lang;
  1478. +use Illuminate\Support\Facades\Config;
  1479. +use Illuminate\Notifications\Notification;
  1480. +use Illuminate\Notifications\Messages\MailMessage;
  1481. +
  1482. +class VerifyEmail extends Notification implements ShouldQueue
  1483. +{
  1484. + use Queueable;
  1485. +
  1486. + /**
  1487. + * Get the notification's channels.
  1488. + *
  1489. + * @param mixed $notifiable
  1490. + * @return array|string
  1491. + */
  1492. + public function via($notifiable)
  1493. + {
  1494. + return ['mail'];
  1495. + }
  1496. +
  1497. +
  1498. + public function toMail($notifiable)
  1499. + {
  1500. +// $beautymail = app()->make(\Snowfire\Beautymail\Beautymail::class);
  1501. +// $beautymail
  1502. +//
  1503. +// ->send('auth.verify', [], function($message)
  1504. +// {
  1505. +// $message
  1506. +// ->from('bar@example.com')
  1507. +// ->to('foo@example.com', 'John Smith')
  1508. +// ->subject('Verify Email Address!');
  1509. +// });
  1510. +
  1511. +
  1512. + return (new MailMessage)
  1513. + ->subject(Lang::getFromJson('Verify Email Address'))
  1514. + ->line(Lang::getFromJson('Please click the button below to verify your email address.'))
  1515. + ->action(
  1516. + Lang::getFromJson('Verify Email Address'),
  1517. + $this->verificationUrl($notifiable)
  1518. + )
  1519. + ->line(Lang::getFromJson('If you did not create an account, no further action is required.'));
  1520. + }
  1521. +
  1522. + /**
  1523. + * Get the verification URL for the given notifiable.
  1524. + *
  1525. + * @param mixed $notifiable
  1526. + * @return string
  1527. + */
  1528. + protected function verificationUrl($notifiable)
  1529. + {
  1530. + return URL::temporarySignedRoute(
  1531. + 'verification.verify',
  1532. + Carbon::now()->addMinutes(Config::get('auth.verification.expire', 60)),
  1533. + ['id' => $notifiable->getKey()]
  1534. + );
  1535. + }
  1536. +}
  1537. Index: package.json
  1538. IDEA additional info:
  1539. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1540. <+>UTF-8
  1541. ===================================================================
  1542. --- package.json (date 1556261584000)
  1543. +++ package.json (date 1556782117029)
  1544. @@ -58,6 +58,7 @@
  1545. "clamp": "^1.0.1",
  1546. "dom-to-image": "^2.6.0",
  1547. "driver.js": "^0.9.5",
  1548. + "element-ui": "^2.8.2",
  1549. "imports-loader": "^0.8.0",
  1550. "lodash.throttle": "^4.0.0",
  1551. "material-colors": "^1.0.0",
  1552. Index: app/Http/Controllers/ClientController.php
  1553. IDEA additional info:
  1554. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1555. <+>UTF-8
  1556. ===================================================================
  1557. --- app/Http/Controllers/ClientController.php (date 1556803577223)
  1558. +++ app/Http/Controllers/ClientController.php (date 1556803577223)
  1559. @@ -0,0 +1,80 @@
  1560. +<?php
  1561. +
  1562. +namespace App\Http\Controllers;
  1563. +
  1564. +use App\Enums\HttpStatusEnum;
  1565. +use App\Http\Requests\UpdatePasswordRequest;
  1566. +use App\Http\Requests\UpdateProfileRequest;
  1567. +use App\Repositories\UserLogoRepository;
  1568. +use App\Repositories\UserRepository;
  1569. +use Illuminate\Http\JsonResponse;
  1570. +
  1571. +class ClientController extends Controller
  1572. +{
  1573. + /**
  1574. + * @var UserLogoRepository
  1575. + */
  1576. + protected $userLogo;
  1577. +
  1578. + /**
  1579. + * @var UserRepository
  1580. + */
  1581. + protected $users;
  1582. +
  1583. + public function __construct(UserLogoRepository $userLogo, UserRepository $users)
  1584. + {
  1585. + $this->userLogo = $userLogo;
  1586. + $this->users = $users;
  1587. + }
  1588. +
  1589. + /**
  1590. + * @return \Illuminate\View\View
  1591. + */
  1592. + public function profile()
  1593. + {
  1594. + return view('client.profile');
  1595. + }
  1596. +
  1597. + public function updateProfile(UpdateProfileRequest $request)
  1598. + {
  1599. + $data = $request->validated();
  1600. + $user = $request->user();
  1601. +
  1602. + // Update user data
  1603. + $user = $this->users->update($user, $data);
  1604. +
  1605. + return JsonResponse::create([
  1606. + 'user' => $user,
  1607. + 'status' => HttpStatusEnum::HTTP_SUCCESS,
  1608. + 'message' => __('client.profile.update.success'),
  1609. + ]);
  1610. + }
  1611. +
  1612. + /**
  1613. + * @param UpdatePasswordRequest $request
  1614. + * @return JsonResponse
  1615. + * @throws \Throwable
  1616. + */
  1617. + public function updatePassword(UpdatePasswordRequest $request)
  1618. + {
  1619. + $data = $request->validated();
  1620. + $user = $request->user();
  1621. +
  1622. + // Update user data
  1623. + $user = $this->users->update($user, $data);
  1624. +
  1625. + return JsonResponse::create([
  1626. + 'user' => $user,
  1627. + 'status' => HttpStatusEnum::HTTP_SUCCESS,
  1628. + 'message' => __('client.profile.password.update.success'),
  1629. + ]);
  1630. + }
  1631. +
  1632. + /**
  1633. + * @return \Illuminate\Http\JsonResponse
  1634. + */
  1635. + public function getClientLogotypes()
  1636. + {
  1637. + return response()->json($this->userLogo->getUrlsForEditor());
  1638. + }
  1639. +}
  1640. \ No newline at end of file
  1641. Index: app/Http/Controllers/Auth/VerificationController.php
  1642. IDEA additional info:
  1643. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1644. <+>UTF-8
  1645. ===================================================================
  1646. --- app/Http/Controllers/Auth/VerificationController.php (date 1556782116594)
  1647. +++ app/Http/Controllers/Auth/VerificationController.php (date 1556782116594)
  1648. @@ -0,0 +1,103 @@
  1649. +<?php
  1650. +
  1651. +namespace App\Http\Controllers\Auth;
  1652. +
  1653. +use App\Enums\HttpStatusEnum;
  1654. +use App\Http\Controllers\Controller;
  1655. +use Illuminate\Auth\Access\AuthorizationException;
  1656. +use Illuminate\Auth\Events\Verified;
  1657. +use Illuminate\Foundation\Auth\VerifiesEmails;
  1658. +use Illuminate\Http\Request;
  1659. +
  1660. +class VerificationController extends Controller
  1661. +{
  1662. + /*
  1663. + |--------------------------------------------------------------------------
  1664. + | Email Verification Controller
  1665. + |--------------------------------------------------------------------------
  1666. + |
  1667. + | This controller is responsible for handling email verification for any
  1668. + | user that recently registered with the application. Emails may also
  1669. + | be re-sent if the user didn't receive the original email message.
  1670. + |
  1671. + */
  1672. +
  1673. + use VerifiesEmails;
  1674. +
  1675. + /**
  1676. + * Where to redirect users after verification.
  1677. + *
  1678. + * @var string
  1679. + */
  1680. + protected $redirectTo = '/client/profile';
  1681. +
  1682. + /**
  1683. + * Create a new controller instance.
  1684. + *
  1685. + * @return void
  1686. + */
  1687. + public function __construct()
  1688. + {
  1689. + $this->middleware('auth');
  1690. + $this->middleware('signed')->only('verify');
  1691. + $this->middleware('throttle:6,1')->only('verify', 'resend');
  1692. + }
  1693. +
  1694. + /**
  1695. + * Resend the email verification notification.
  1696. + *
  1697. + * @param \Illuminate\Http\Request $request
  1698. + * @return \Illuminate\Http\Response
  1699. + */
  1700. + public function resend(Request $request)
  1701. + {
  1702. + if ($request->user()->hasVerifiedEmail()) {
  1703. + return response()->json([
  1704. + 'message' => __('client.verification.success'),
  1705. + 'status' => HttpStatusEnum::HTTP_SUCCESS,
  1706. + ]);
  1707. + }
  1708. +
  1709. + $request->user()->sendEmailVerificationNotification();
  1710. +
  1711. + return response()->json([
  1712. + 'message' => __('client.verification.sent'),
  1713. + 'status' => HttpStatusEnum::HTTP_SUCCESS,
  1714. + ]);
  1715. + }
  1716. +
  1717. + /**
  1718. + * Mark the authenticated user's email address as verified.
  1719. + *
  1720. + * @param \Illuminate\Http\Request $request
  1721. + * @return \Illuminate\Http\Response
  1722. + * @throws \Illuminate\Auth\Access\AuthorizationException
  1723. + */
  1724. + public function verify(Request $request)
  1725. + {
  1726. + if ($request->route('id') != $request->user()->getKey()) {
  1727. + throw new AuthorizationException;
  1728. + }
  1729. +
  1730. + if ($request->user()->hasVerifiedEmail()) {
  1731. + return redirect($this->redirectPath());
  1732. + }
  1733. +
  1734. + if ($request->user()->markEmailAsVerified()) {
  1735. + event(new Verified($request->user()));
  1736. + }
  1737. +
  1738. + return redirect($this->redirectPath())->with('verified', true);
  1739. + }
  1740. +
  1741. + /**
  1742. + * @return string
  1743. + */
  1744. + public function redirectPath()
  1745. + {
  1746. + return route('client.profile.show', [
  1747. + 'type' => HttpStatusEnum::HTTP_SUCCESS,
  1748. + 'message' => __('client.verification.success'),
  1749. + ]);
  1750. + }
  1751. +}
  1752. \ No newline at end of file
  1753. Index: app/Http/Requests/UpdatePasswordRequest.php
  1754. IDEA additional info:
  1755. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1756. <+>UTF-8
  1757. ===================================================================
  1758. --- app/Http/Requests/UpdatePasswordRequest.php (date 1556782116648)
  1759. +++ app/Http/Requests/UpdatePasswordRequest.php (date 1556782116648)
  1760. @@ -0,0 +1,30 @@
  1761. +<?php
  1762. +
  1763. +namespace App\Http\Requests;
  1764. +
  1765. +use Illuminate\Foundation\Http\FormRequest;
  1766. +
  1767. +class UpdatePasswordRequest extends FormRequest
  1768. +{
  1769. + /**
  1770. + * Determine if the user is authorized to make this request.
  1771. + *
  1772. + * @return bool
  1773. + */
  1774. + public function authorize()
  1775. + {
  1776. + return true;
  1777. + }
  1778. +
  1779. + /**
  1780. + * Get the validation rules that apply to the request.
  1781. + *
  1782. + * @return array
  1783. + */
  1784. + public function rules()
  1785. + {
  1786. + return [
  1787. + 'password' => 'required|string|min:6|confirmed',
  1788. + ];
  1789. + }
  1790. +}
  1791. Index: app/Http/Middleware/EnsureEmailIsVerified.php
  1792. IDEA additional info:
  1793. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1794. <+>UTF-8
  1795. ===================================================================
  1796. --- app/Http/Middleware/EnsureEmailIsVerified.php (date 1556782116641)
  1797. +++ app/Http/Middleware/EnsureEmailIsVerified.php (date 1556782116641)
  1798. @@ -0,0 +1,31 @@
  1799. +<?php
  1800. +
  1801. +namespace App\Http\Middleware;
  1802. +
  1803. +use Closure;
  1804. +use Illuminate\Support\Facades\Redirect;
  1805. +use Illuminate\Contracts\Auth\MustVerifyEmail;
  1806. +
  1807. +class EnsureEmailIsVerified
  1808. +{
  1809. + /**
  1810. + * Handle an incoming request.
  1811. + *
  1812. + * @param \Illuminate\Http\Request $request
  1813. + * @param \Closure $next
  1814. + * @param string $redirectToRoute
  1815. + * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
  1816. + */
  1817. + public function handle($request, Closure $next, $redirectToRoute = null)
  1818. + {
  1819. + if (! $request->user() ||
  1820. + ($request->user() instanceof MustVerifyEmail &&
  1821. + ! $request->user()->hasVerifiedEmail())) {
  1822. + return $request->expectsJson()
  1823. + ? abort(403, 'Your email address is not verified.')
  1824. + : Redirect::route($redirectToRoute ?: 'verification.notice');
  1825. + }
  1826. +
  1827. + return $next($request);
  1828. + }
  1829. +}
  1830. Index: app/Repositories/LogotypeRepository.php
  1831. IDEA additional info:
  1832. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1833. <+>UTF-8
  1834. ===================================================================
  1835. --- app/Repositories/LogotypeRepository.php (date 1556261584000)
  1836. +++ app/Repositories/LogotypeRepository.php (date 1556810850243)
  1837. @@ -75,18 +75,18 @@
  1838. return self::DIRECTORY.DIRECTORY_SEPARATOR.$hash.'.'.self::EXTENSION;
  1839. }
  1840.  
  1841. - public function createPreview(string $hash)
  1842. + public function createPreview($xml)
  1843. {
  1844. // Get svg path
  1845. - $absolutePath = $this->getAbsolutePath($hash);
  1846. - $content = file_get_contents($absolutePath);
  1847. -
  1848. - $svg = SVG::fromString($content);
  1849. + $svg = SVG::fromString($xml);
  1850. // ../../../public/fonts/
  1851. - $style = (new SVGFont('ForteMT', 'http://logosos.local/font/Forte.ttf'));
  1852. - $svg->getDocument()->addChild($style);
  1853. + $style1 = (new SVGFont('FuturaBT Book', public_path('fonts/futurabt book.woff')));
  1854. + $style2 = (new SVGFont('Hitch Hike', public_path('fonts/hitch hike.otf')));
  1855. +
  1856. + $svg->getDocument()->addChild($style1)->addChild($style2);
  1857. $content = $svg->toXMLString();
  1858.  
  1859. +
  1860. // Make preview
  1861. $phantomSvg = new PSVG();
  1862. $phantomSvg->load($content);
  1863. @@ -94,7 +94,9 @@
  1864. $phantomSvg->convert();
  1865.  
  1866. // Save preview
  1867. - $phantomSvg->save($this->getPreviewPath($hash));
  1868. + $phantomSvg->save(public_path('test44.png'));
  1869. +
  1870. + dd(base64_encode(file_get_contents(public_path('test44.png')))) ;
  1871.  
  1872. return $this;
  1873. }
  1874. Index: app/Enums/HttpStatusEnum.php
  1875. IDEA additional info:
  1876. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1877. <+>UTF-8
  1878. ===================================================================
  1879. --- app/Enums/HttpStatusEnum.php (date 1556782116564)
  1880. +++ app/Enums/HttpStatusEnum.php (date 1556782116564)
  1881. @@ -0,0 +1,10 @@
  1882. +<?php
  1883. +
  1884. +namespace App\Enums;
  1885. +
  1886. +
  1887. +class HttpStatusEnum
  1888. +{
  1889. + const HTTP_SUCCESS = 'success';
  1890. + const HTTP_ERROR = 'error';
  1891. +}
  1892. \ No newline at end of file
  1893. Index: app/Repositories/BaseRepository.php
  1894. IDEA additional info:
  1895. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1896. <+>UTF-8
  1897. ===================================================================
  1898. --- app/Repositories/BaseRepository.php (date 1556261584000)
  1899. +++ app/Repositories/BaseRepository.php (date 1556782116693)
  1900. @@ -2,6 +2,7 @@
  1901.  
  1902. namespace App\Repositories;
  1903.  
  1904. +use App\Models\User;
  1905. use Illuminate\Database\Eloquent\Builder;
  1906. use Illuminate\Database\Eloquent\Model;
  1907. use Illuminate\Database\Eloquent\ModelNotFoundException;
  1908. @@ -87,6 +88,7 @@
  1909. public function first(string $field, $value)
  1910. {
  1911. $condition = ucfirst($field);
  1912. +
  1913. if ($value) {
  1914. return $this->model->{"where$condition"}($value)->first();
  1915. }
  1916. @@ -206,31 +208,30 @@
  1917. }
  1918.  
  1919. /**
  1920. - * @param array $attributes
  1921. + * @param array $data
  1922. *
  1923. * @return mixed
  1924. */
  1925. - public function create(array $attributes)
  1926. + public function create(array $data)
  1927. {
  1928. - $model = $this->model->newInstance((array)$attributes);
  1929. + $model = $this->model->newInstance((array)$data);
  1930. $model->save();
  1931.  
  1932. return $model;
  1933. }
  1934.  
  1935. /**
  1936. - * @param array $attributes
  1937. - * @param array $id
  1938. + * @param User $user
  1939. + * @param array $data
  1940. *
  1941. - * @return mixed
  1942. + * @return User
  1943. */
  1944. - public function update(array $attributes = [], array $id = [])
  1945. + public function update(User $user, array $data): User
  1946. {
  1947. - $model = $this->model->findOrFail($id);
  1948. - $model->fill($attributes);
  1949. - $model->save();
  1950. + $user->fill($data);
  1951. + $user->save();
  1952.  
  1953. - return $model;
  1954. + return $user;
  1955. }
  1956.  
  1957. /**
  1958. Index: app/Repositories/UserLogoRepository.php
  1959. IDEA additional info:
  1960. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  1961. <+>UTF-8
  1962. ===================================================================
  1963. --- app/Repositories/UserLogoRepository.php (date 1556261584000)
  1964. +++ app/Repositories/UserLogoRepository.php (date 1556782116704)
  1965. @@ -11,36 +11,36 @@
  1966. class UserLogoRepository extends BaseRepository
  1967. {
  1968. public $model = UserLogo::class;
  1969. -
  1970. +
  1971. public $logotype;
  1972. -
  1973. +
  1974. public $sanitizer;
  1975. -
  1976. +
  1977. const LAST_USER_HASH = 'last_user_hash';
  1978. -
  1979. +
  1980. public function __construct(LogotypeRepository $logotype, Sanitizer $sanitizer)
  1981. {
  1982. parent::__construct();
  1983. -
  1984. +
  1985. $this->logotype = $logotype;
  1986. $this->sanitizer = $sanitizer;
  1987. }
  1988. -
  1989. +
  1990. public function createByHash(string $hash)
  1991. {
  1992. $logotype = $this->logotype->first('hash', $hash);
  1993. $userHash = $this->getUserHash($logotype);
  1994. -
  1995. +
  1996. // If user want repeat work on this logo
  1997. $userWork = $this->first('hash', $userHash);
  1998. -
  1999. +
  2000. if ($userWork) {
  2001. $userHash = $this->getUserHash($logotype, true);
  2002. }
  2003. -
  2004. +
  2005. // Save user hash to session
  2006. $this->saveHashToSession($userHash);
  2007. -
  2008. +
  2009. // Create user work with logotype
  2010. return $this->create([
  2011. 'user_id' => auth()->id(),
  2012. @@ -49,57 +49,59 @@
  2013. 'logo_content' => $logotype->content,
  2014. ]);
  2015. }
  2016. -
  2017. +
  2018. public function saveHashToSession(string $hash)
  2019. {
  2020. \Session::put(self::LAST_USER_HASH, $hash);
  2021. }
  2022. -
  2023. +
  2024. public function getUserHash(Logotype $logotype, $isRepeatedLogo = false)
  2025. {
  2026. $userHash = hash('sha256', $logotype->hash.auth()->id());
  2027. -
  2028. +
  2029. return $isRepeatedLogo ? hash('sha256', $userHash.time()) : $userHash;
  2030. }
  2031. -
  2032. +
  2033. public function synchronize(string $logotype, $hash)
  2034. {
  2035. // Encrypt logo
  2036. $logotype = str_rot13($logotype);
  2037. -
  2038. +
  2039. // Sanitize logo
  2040. $sanitizedLogo = $this->sanitizer->sanitize($logotype);
  2041. -
  2042. +
  2043. // Get some valid svg logo
  2044. $logotype = $sanitizedLogo ?: $logotype;
  2045. -
  2046. +
  2047. $userWork = $this->first('hash', $hash);
  2048. $userWork->update([
  2049. 'logo_content' => $logotype,
  2050. ]);
  2051. }
  2052. -
  2053. +
  2054. public function isEdited(Model $userLogo)
  2055. {
  2056. return !((string)$userLogo->created_at === (string)$userLogo->updated_at);
  2057. }
  2058. -
  2059. +
  2060. /**
  2061. * @return array
  2062. */
  2063. - public function getUrlsForEditor(): array
  2064. + public function getUrlsForEditor() : array
  2065. {
  2066. $result = [];
  2067. $user = auth()->user();
  2068. - $logotypes = $this->model->where('user_id', $user->id)->get();
  2069. -
  2070. + $logotypes = $this->model->where('user_id', $user->id)->orderBy('updated_at', 'desc')->get();
  2071. +
  2072. foreach ($logotypes as $logotype) {
  2073. $result[] = [
  2074. 'url' => route('logo.edit', $logotype->hash),
  2075. - 'created_at' => Carbon::parse($logotype->created_at)->format('d.m.Y H:m:s'),
  2076. + 'content' => $logotype->getEncryptedLogoContent(),
  2077. + 'updated_at' => Carbon::parse($logotype->updated_at)->format('d.m.Y H:m:s'),
  2078. + 'preview' => null,
  2079. ];
  2080. }
  2081. -
  2082. +
  2083. return $result;
  2084. }
  2085. }
  2086. \ No newline at end of file
  2087. Index: app/Repositories/UserRepository.php
  2088. IDEA additional info:
  2089. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  2090. <+>UTF-8
  2091. ===================================================================
  2092. --- app/Repositories/UserRepository.php (date 1556261584000)
  2093. +++ app/Repositories/UserRepository.php (date 1556782116718)
  2094. @@ -9,28 +9,86 @@
  2095. class UserRepository extends BaseRepository
  2096. {
  2097. public $model = User::class;
  2098. -
  2099. +
  2100. /**
  2101. - * @param array $attributes
  2102. - *
  2103. - * @return mixed
  2104. + * @param array $data
  2105. + * @return User
  2106. + * @throws \Throwable
  2107. + */
  2108. + public function create(array $data) : User
  2109. + {
  2110. + $user = \DB::transaction(function () use ($data) {
  2111. + if (!data_get($data, 'name')) {
  2112. + $fullName = $this->generateNameByEmail(data_get($data, 'email'));
  2113. + } else {
  2114. + // For social auth registration
  2115. + $fullName = data_get($data, 'name');
  2116. + }
  2117. +
  2118. +
  2119. + $user = $this->model->create(array_merge([
  2120. + 'name' => $fullName,
  2121. + ], $data));
  2122. +
  2123. + return $user;
  2124. + });
  2125. +
  2126. + // If register by social auth
  2127. + if (data_get($data, 'password')) {
  2128. + $user->sendEmailVerificationNotification();
  2129. + } else {
  2130. + $user->markEmailAsVerified();
  2131. + }
  2132. +
  2133. + return $user;
  2134. + }
  2135. +
  2136. + /**
  2137. + * @param User $user
  2138. + * @param array $data
  2139. + * @return User
  2140. + * @throws \Throwable
  2141. + */
  2142. + public function update(User $user, array $data) : User
  2143. + {
  2144. + return \DB::transaction(function () use ($user, $data) {
  2145. + // Fill data
  2146. + $user->fill($data);
  2147. +
  2148. + // Delete verification if email is changed
  2149. + if ($user->isDirty('email')) {
  2150. + $user->email_verified_at = null;
  2151. +
  2152. + $user->sendEmailVerificationNotification();
  2153. + }
  2154. +
  2155. + // Save user
  2156. + $user->save();
  2157. +
  2158. + return $user;
  2159. + });
  2160. + }
  2161. +
  2162. + /**
  2163. + * @param string $email
  2164. + * @return string
  2165. */
  2166. - public function create(array $attributes)
  2167. + protected function generateNameByEmail(string $email) : string
  2168. {
  2169. - $name = Arr::first(explode('@', $attributes['email']));
  2170. - $name = Str::replaceArray(' ', ['.', '_', '-'], $name);
  2171. - $name = explode(' ', $name);
  2172. -
  2173. - $fullName = null;
  2174. -
  2175. - foreach ($name as $item) {
  2176. - $fullName .= ' '.ucfirst($item);
  2177. - }
  2178. -
  2179. - return $this->model->create([
  2180. - 'name' => trim($fullName),
  2181. - 'email' => $attributes['email'],
  2182. - 'password' => \Hash::make($attributes['password']),
  2183. - ]);
  2184. + try {
  2185. + $name = Arr::first(explode('@', $email));
  2186. + $name = Str::replaceArray(' ', ['.', '_', '-'], $name);
  2187. + $name = explode(' ', $name);
  2188. +
  2189. + $fullName = null;
  2190. +
  2191. + foreach ($name as $item) {
  2192. + $fullName .= ' '.ucfirst($item);
  2193. + }
  2194. +
  2195. + return trim($fullName);
  2196. + } catch (\Exception $e) {
  2197. + return $email;
  2198. + }
  2199. }
  2200. }
  2201. \ No newline at end of file
  2202. Index: composer.lock
  2203. IDEA additional info:
  2204. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  2205. <+>UTF-8
  2206. ===================================================================
  2207. --- composer.lock (date 1556261584000)
  2208. +++ composer.lock (date 1556782117023)
  2209. @@ -4,7 +4,7 @@
  2210. "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
  2211. "This file is @generated automatically"
  2212. ],
  2213. - "content-hash": "282f4b8f12356c5a93210ff86edb95ea",
  2214. + "content-hash": "0535edcd494bc80d0f2f7cc37caeac54",
  2215. "packages": [
  2216. {
  2217. "name": "ammadeuss/laravel-html-dom-parser",
  2218. @@ -241,16 +241,16 @@
  2219. },
  2220. {
  2221. "name": "composer/composer",
  2222. - "version": "1.8.4",
  2223. + "version": "1.8.5",
  2224. "source": {
  2225. "type": "git",
  2226. "url": "https://github.com/composer/composer.git",
  2227. - "reference": "bc364c2480c17941e2135cfc568fa41794392534"
  2228. + "reference": "949b116f9e7d98d8d276594fed74b580d125c0e6"
  2229. },
  2230. "dist": {
  2231. "type": "zip",
  2232. - "url": "https://api.github.com/repos/composer/composer/zipball/bc364c2480c17941e2135cfc568fa41794392534",
  2233. - "reference": "bc364c2480c17941e2135cfc568fa41794392534",
  2234. + "url": "https://api.github.com/repos/composer/composer/zipball/949b116f9e7d98d8d276594fed74b580d125c0e6",
  2235. + "reference": "949b116f9e7d98d8d276594fed74b580d125c0e6",
  2236. "shasum": ""
  2237. },
  2238. "require": {
  2239. @@ -317,7 +317,7 @@
  2240. "dependency",
  2241. "package"
  2242. ],
  2243. - "time": "2019-02-11T09:52:10+00:00"
  2244. + "time": "2019-04-09T15:46:48+00:00"
  2245. },
  2246. {
  2247. "name": "composer/semver",
  2248. @@ -1336,16 +1336,16 @@
  2249. },
  2250. {
  2251. "name": "laravel/framework",
  2252. - "version": "v5.8.10",
  2253. + "version": "v5.8.15",
  2254. "source": {
  2255. "type": "git",
  2256. "url": "https://github.com/laravel/framework.git",
  2257. - "reference": "505325b4577968750e622d7a5a271cf8785a7a1a"
  2258. + "reference": "8a34004aed6ff0aa4072360e3e5bd875edebc223"
  2259. },
  2260. "dist": {
  2261. "type": "zip",
  2262. - "url": "https://api.github.com/repos/laravel/framework/zipball/505325b4577968750e622d7a5a271cf8785a7a1a",
  2263. - "reference": "505325b4577968750e622d7a5a271cf8785a7a1a",
  2264. + "url": "https://api.github.com/repos/laravel/framework/zipball/8a34004aed6ff0aa4072360e3e5bd875edebc223",
  2265. + "reference": "8a34004aed6ff0aa4072360e3e5bd875edebc223",
  2266. "shasum": ""
  2267. },
  2268. "require": {
  2269. @@ -1479,7 +1479,7 @@
  2270. "framework",
  2271. "laravel"
  2272. ],
  2273. - "time": "2019-04-04T13:39:49+00:00"
  2274. + "time": "2019-04-30T14:05:03+00:00"
  2275. },
  2276. {
  2277. "name": "laravel/socialite",
  2278. @@ -1816,16 +1816,16 @@
  2279. },
  2280. {
  2281. "name": "nesbot/carbon",
  2282. - "version": "2.16.3",
  2283. + "version": "2.17.1",
  2284. "source": {
  2285. "type": "git",
  2286. "url": "https://github.com/briannesbitt/Carbon.git",
  2287. - "reference": "373d9f0d58651af366435148c39beb702c2b7ef4"
  2288. + "reference": "96acbc0c03782e8115156dd4dd8b736267155066"
  2289. },
  2290. "dist": {
  2291. "type": "zip",
  2292. - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/373d9f0d58651af366435148c39beb702c2b7ef4",
  2293. - "reference": "373d9f0d58651af366435148c39beb702c2b7ef4",
  2294. + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/96acbc0c03782e8115156dd4dd8b736267155066",
  2295. + "reference": "96acbc0c03782e8115156dd4dd8b736267155066",
  2296. "shasum": ""
  2297. },
  2298. "require": {
  2299. @@ -1835,9 +1835,9 @@
  2300. },
  2301. "require-dev": {
  2302. "friendsofphp/php-cs-fixer": "^2.14 || ^3.0",
  2303. - "kylekatarnls/multi-tester": "^0.1",
  2304. + "kylekatarnls/multi-tester": "^1.1",
  2305. "phpmd/phpmd": "^2.6",
  2306. - "phpstan/phpstan": "^0.10.8",
  2307. + "phpstan/phpstan": "^0.11",
  2308. "phpunit/phpunit": "^7.5 || ^8.0",
  2309. "squizlabs/php_codesniffer": "^3.4"
  2310. },
  2311. @@ -1872,7 +1872,7 @@
  2312. "datetime",
  2313. "time"
  2314. ],
  2315. - "time": "2019-04-06T17:09:23+00:00"
  2316. + "time": "2019-04-27T18:04:27+00:00"
  2317. },
  2318. {
  2319. "name": "opis/closure",
  2320. @@ -1981,6 +1981,80 @@
  2321. "time": "2018-07-02T15:55:56+00:00"
  2322. },
  2323. {
  2324. + "name": "pelago/emogrifier",
  2325. + "version": "v2.1.1",
  2326. + "source": {
  2327. + "type": "git",
  2328. + "url": "https://github.com/MyIntervals/emogrifier.git",
  2329. + "reference": "8ee7fb5ad772915451ed3415c1992bd3697d4983"
  2330. + },
  2331. + "dist": {
  2332. + "type": "zip",
  2333. + "url": "https://api.github.com/repos/MyIntervals/emogrifier/zipball/8ee7fb5ad772915451ed3415c1992bd3697d4983",
  2334. + "reference": "8ee7fb5ad772915451ed3415c1992bd3697d4983",
  2335. + "shasum": ""
  2336. + },
  2337. + "require": {
  2338. + "ext-dom": "*",
  2339. + "ext-libxml": "*",
  2340. + "php": "^5.5.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0",
  2341. + "symfony/css-selector": "^3.4.0 || ^4.0.0"
  2342. + },
  2343. + "require-dev": {
  2344. + "friendsofphp/php-cs-fixer": "^2.2.0",
  2345. + "phpmd/phpmd": "^2.6.0",
  2346. + "phpunit/phpunit": "^4.8.0",
  2347. + "squizlabs/php_codesniffer": "^3.3.2"
  2348. + },
  2349. + "type": "library",
  2350. + "extra": {
  2351. + "branch-alias": {
  2352. + "dev-master": "2.1.x-dev"
  2353. + }
  2354. + },
  2355. + "autoload": {
  2356. + "psr-4": {
  2357. + "Pelago\\": "src/"
  2358. + }
  2359. + },
  2360. + "notification-url": "https://packagist.org/downloads/",
  2361. + "license": [
  2362. + "MIT"
  2363. + ],
  2364. + "authors": [
  2365. + {
  2366. + "name": "John Reeve",
  2367. + "email": "jreeve@pelagodesign.com"
  2368. + },
  2369. + {
  2370. + "name": "Cameron Brooks"
  2371. + },
  2372. + {
  2373. + "name": "Jaime Prado"
  2374. + },
  2375. + {
  2376. + "name": "Oliver Klee",
  2377. + "email": "github@oliverklee.de"
  2378. + },
  2379. + {
  2380. + "name": "Zoli Szabó",
  2381. + "email": "zoli.szabo+github@gmail.com"
  2382. + },
  2383. + {
  2384. + "name": "Jake Hotson",
  2385. + "email": "jake@qzdesign.co.uk"
  2386. + }
  2387. + ],
  2388. + "description": "Converts CSS styles into inline style attributes in your HTML code",
  2389. + "homepage": "https://www.myintervals.com/emogrifier.php",
  2390. + "keywords": [
  2391. + "css",
  2392. + "email",
  2393. + "pre-processing"
  2394. + ],
  2395. + "time": "2018-12-10T10:36:30+00:00"
  2396. + },
  2397. + {
  2398. "name": "phpoption/phpoption",
  2399. "version": "1.5.0",
  2400. "source": {
  2401. @@ -2031,6 +2105,56 @@
  2402. "time": "2015-07-25T16:39:46+00:00"
  2403. },
  2404. {
  2405. + "name": "predis/predis",
  2406. + "version": "v1.1.1",
  2407. + "source": {
  2408. + "type": "git",
  2409. + "url": "https://github.com/nrk/predis.git",
  2410. + "reference": "f0210e38881631afeafb56ab43405a92cafd9fd1"
  2411. + },
  2412. + "dist": {
  2413. + "type": "zip",
  2414. + "url": "https://api.github.com/repos/nrk/predis/zipball/f0210e38881631afeafb56ab43405a92cafd9fd1",
  2415. + "reference": "f0210e38881631afeafb56ab43405a92cafd9fd1",
  2416. + "shasum": ""
  2417. + },
  2418. + "require": {
  2419. + "php": ">=5.3.9"
  2420. + },
  2421. + "require-dev": {
  2422. + "phpunit/phpunit": "~4.8"
  2423. + },
  2424. + "suggest": {
  2425. + "ext-curl": "Allows access to Webdis when paired with phpiredis",
  2426. + "ext-phpiredis": "Allows faster serialization and deserialization of the Redis protocol"
  2427. + },
  2428. + "type": "library",
  2429. + "autoload": {
  2430. + "psr-4": {
  2431. + "Predis\\": "src/"
  2432. + }
  2433. + },
  2434. + "notification-url": "https://packagist.org/downloads/",
  2435. + "license": [
  2436. + "MIT"
  2437. + ],
  2438. + "authors": [
  2439. + {
  2440. + "name": "Daniele Alessandri",
  2441. + "email": "suppakilla@gmail.com",
  2442. + "homepage": "http://clorophilla.net"
  2443. + }
  2444. + ],
  2445. + "description": "Flexible and feature-complete Redis client for PHP and HHVM",
  2446. + "homepage": "http://github.com/nrk/predis",
  2447. + "keywords": [
  2448. + "nosql",
  2449. + "predis",
  2450. + "redis"
  2451. + ],
  2452. + "time": "2016-06-16T16:22:20+00:00"
  2453. + },
  2454. + {
  2455. "name": "psr/container",
  2456. "version": "1.0.0",
  2457. "source": {
  2458. @@ -2440,17 +2564,60 @@
  2459. "time": "2015-10-13T18:44:15+00:00"
  2460. },
  2461. {
  2462. + "name": "snowfire/beautymail",
  2463. + "version": "dev-master",
  2464. + "source": {
  2465. + "type": "git",
  2466. + "url": "https://github.com/Snowfire/Beautymail.git",
  2467. + "reference": "6f503e1db32663ea1a460515c7de9cb0920a5acc"
  2468. + },
  2469. + "dist": {
  2470. + "type": "zip",
  2471. + "url": "https://api.github.com/repos/Snowfire/Beautymail/zipball/6f503e1db32663ea1a460515c7de9cb0920a5acc",
  2472. + "reference": "6f503e1db32663ea1a460515c7de9cb0920a5acc",
  2473. + "shasum": ""
  2474. + },
  2475. + "require": {
  2476. + "illuminate/support": "4.*|5.*",
  2477. + "pelago/emogrifier": "@dev",
  2478. + "php": ">=5.4.0"
  2479. + },
  2480. + "type": "library",
  2481. + "autoload": {
  2482. + "psr-0": {
  2483. + "Snowfire\\Beautymail\\": "src/"
  2484. + }
  2485. + },
  2486. + "notification-url": "https://packagist.org/downloads/",
  2487. + "license": [
  2488. + "MIT"
  2489. + ],
  2490. + "authors": [
  2491. + {
  2492. + "name": "Emil Sundberg",
  2493. + "email": "emil@snowfire.net"
  2494. + }
  2495. + ],
  2496. + "description": "Send beautiful html emails with Laravel",
  2497. + "keywords": [
  2498. + "email",
  2499. + "html",
  2500. + "laravel"
  2501. + ],
  2502. + "time": "2019-04-16T08:34:39+00:00"
  2503. + },
  2504. + {
  2505. "name": "spatie/laravel-permission",
  2506. - "version": "2.36.1",
  2507. + "version": "2.37.0",
  2508. "source": {
  2509. "type": "git",
  2510. "url": "https://github.com/spatie/laravel-permission.git",
  2511. - "reference": "0d9c442dc4361ce829986697bc436578d816a9ca"
  2512. + "reference": "81dbe9d372d70c255b66a2727a235076509f8d45"
  2513. },
  2514. "dist": {
  2515. "type": "zip",
  2516. - "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/0d9c442dc4361ce829986697bc436578d816a9ca",
  2517. - "reference": "0d9c442dc4361ce829986697bc436578d816a9ca",
  2518. + "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/81dbe9d372d70c255b66a2727a235076509f8d45",
  2519. + "reference": "81dbe9d372d70c255b66a2727a235076509f8d45",
  2520. "shasum": ""
  2521. },
  2522. "require": {
  2523. @@ -2502,7 +2669,7 @@
  2524. "security",
  2525. "spatie"
  2526. ],
  2527. - "time": "2019-03-05T14:58:35+00:00"
  2528. + "time": "2019-04-09T12:45:17+00:00"
  2529. },
  2530. {
  2531. "name": "sunra/php-simple-html-dom-parser",
  2532. @@ -2554,16 +2721,16 @@
  2533. },
  2534. {
  2535. "name": "swiftmailer/swiftmailer",
  2536. - "version": "v6.2.0",
  2537. + "version": "v6.2.1",
  2538. "source": {
  2539. "type": "git",
  2540. "url": "https://github.com/swiftmailer/swiftmailer.git",
  2541. - "reference": "6fa3232ff9d3f8237c0fae4b7ff05e1baa4cd707"
  2542. + "reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a"
  2543. },
  2544. "dist": {
  2545. "type": "zip",
  2546. - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/6fa3232ff9d3f8237c0fae4b7ff05e1baa4cd707",
  2547. - "reference": "6fa3232ff9d3f8237c0fae4b7ff05e1baa4cd707",
  2548. + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a",
  2549. + "reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a",
  2550. "shasum": ""
  2551. },
  2552. "require": {
  2553. @@ -2612,20 +2779,20 @@
  2554. "mail",
  2555. "mailer"
  2556. ],
  2557. - "time": "2019-03-10T07:52:41+00:00"
  2558. + "time": "2019-04-21T09:21:45+00:00"
  2559. },
  2560. {
  2561. "name": "symfony/console",
  2562. - "version": "v4.2.5",
  2563. + "version": "v4.2.8",
  2564. "source": {
  2565. "type": "git",
  2566. "url": "https://github.com/symfony/console.git",
  2567. - "reference": "24206aff3efe6962593297e57ef697ebb220e384"
  2568. + "reference": "e2840bb38bddad7a0feaf85931e38fdcffdb2f81"
  2569. },
  2570. "dist": {
  2571. "type": "zip",
  2572. - "url": "https://api.github.com/repos/symfony/console/zipball/24206aff3efe6962593297e57ef697ebb220e384",
  2573. - "reference": "24206aff3efe6962593297e57ef697ebb220e384",
  2574. + "url": "https://api.github.com/repos/symfony/console/zipball/e2840bb38bddad7a0feaf85931e38fdcffdb2f81",
  2575. + "reference": "e2840bb38bddad7a0feaf85931e38fdcffdb2f81",
  2576. "shasum": ""
  2577. },
  2578. "require": {
  2579. @@ -2684,7 +2851,7 @@
  2580. ],
  2581. "description": "Symfony Console Component",
  2582. "homepage": "https://symfony.com",
  2583. - "time": "2019-04-01T07:32:59+00:00"
  2584. + "time": "2019-04-08T14:23:48+00:00"
  2585. },
  2586. {
  2587. "name": "symfony/contracts",
  2588. @@ -2756,7 +2923,7 @@
  2589. },
  2590. {
  2591. "name": "symfony/css-selector",
  2592. - "version": "v4.2.5",
  2593. + "version": "v4.2.8",
  2594. "source": {
  2595. "type": "git",
  2596. "url": "https://github.com/symfony/css-selector.git",
  2597. @@ -2809,16 +2976,16 @@
  2598. },
  2599. {
  2600. "name": "symfony/debug",
  2601. - "version": "v4.2.5",
  2602. + "version": "v4.2.8",
  2603. "source": {
  2604. "type": "git",
  2605. "url": "https://github.com/symfony/debug.git",
  2606. - "reference": "43ce8ab34c734dcc8a4af576cb86711daab964c5"
  2607. + "reference": "2d279b6bb1d582dd5740d4d3251ae8c18812ed37"
  2608. },
  2609. "dist": {
  2610. "type": "zip",
  2611. - "url": "https://api.github.com/repos/symfony/debug/zipball/43ce8ab34c734dcc8a4af576cb86711daab964c5",
  2612. - "reference": "43ce8ab34c734dcc8a4af576cb86711daab964c5",
  2613. + "url": "https://api.github.com/repos/symfony/debug/zipball/2d279b6bb1d582dd5740d4d3251ae8c18812ed37",
  2614. + "reference": "2d279b6bb1d582dd5740d4d3251ae8c18812ed37",
  2615. "shasum": ""
  2616. },
  2617. "require": {
  2618. @@ -2861,20 +3028,20 @@
  2619. ],
  2620. "description": "Symfony Debug Component",
  2621. "homepage": "https://symfony.com",
  2622. - "time": "2019-03-10T17:09:50+00:00"
  2623. + "time": "2019-04-11T11:27:41+00:00"
  2624. },
  2625. {
  2626. "name": "symfony/event-dispatcher",
  2627. - "version": "v4.2.5",
  2628. + "version": "v4.2.8",
  2629. "source": {
  2630. "type": "git",
  2631. "url": "https://github.com/symfony/event-dispatcher.git",
  2632. - "reference": "ca5af306fbc37f3cf597e91bc9cfa0c7d3f33544"
  2633. + "reference": "fbce53cd74ac509cbe74b6f227622650ab759b02"
  2634. },
  2635. "dist": {
  2636. "type": "zip",
  2637. - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ca5af306fbc37f3cf597e91bc9cfa0c7d3f33544",
  2638. - "reference": "ca5af306fbc37f3cf597e91bc9cfa0c7d3f33544",
  2639. + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/fbce53cd74ac509cbe74b6f227622650ab759b02",
  2640. + "reference": "fbce53cd74ac509cbe74b6f227622650ab759b02",
  2641. "shasum": ""
  2642. },
  2643. "require": {
  2644. @@ -2925,11 +3092,11 @@
  2645. ],
  2646. "description": "Symfony EventDispatcher Component",
  2647. "homepage": "https://symfony.com",
  2648. - "time": "2019-03-30T15:58:42+00:00"
  2649. + "time": "2019-04-06T13:51:08+00:00"
  2650. },
  2651. {
  2652. "name": "symfony/filesystem",
  2653. - "version": "v4.2.5",
  2654. + "version": "v4.2.8",
  2655. "source": {
  2656. "type": "git",
  2657. "url": "https://github.com/symfony/filesystem.git",
  2658. @@ -2979,16 +3146,16 @@
  2659. },
  2660. {
  2661. "name": "symfony/finder",
  2662. - "version": "v4.2.5",
  2663. + "version": "v4.2.8",
  2664. "source": {
  2665. "type": "git",
  2666. "url": "https://github.com/symfony/finder.git",
  2667. - "reference": "267b7002c1b70ea80db0833c3afe05f0fbde580a"
  2668. + "reference": "e45135658bd6c14b61850bf131c4f09a55133f69"
  2669. },
  2670. "dist": {
  2671. "type": "zip",
  2672. - "url": "https://api.github.com/repos/symfony/finder/zipball/267b7002c1b70ea80db0833c3afe05f0fbde580a",
  2673. - "reference": "267b7002c1b70ea80db0833c3afe05f0fbde580a",
  2674. + "url": "https://api.github.com/repos/symfony/finder/zipball/e45135658bd6c14b61850bf131c4f09a55133f69",
  2675. + "reference": "e45135658bd6c14b61850bf131c4f09a55133f69",
  2676. "shasum": ""
  2677. },
  2678. "require": {
  2679. @@ -3024,20 +3191,20 @@
  2680. ],
  2681. "description": "Symfony Finder Component",
  2682. "homepage": "https://symfony.com",
  2683. - "time": "2019-02-23T15:42:05+00:00"
  2684. + "time": "2019-04-06T13:51:08+00:00"
  2685. },
  2686. {
  2687. "name": "symfony/http-foundation",
  2688. - "version": "v4.2.5",
  2689. + "version": "v4.2.8",
  2690. "source": {
  2691. "type": "git",
  2692. "url": "https://github.com/symfony/http-foundation.git",
  2693. - "reference": "5b7ab6beaa5b053b8d3c9b13367ada9b292e12e1"
  2694. + "reference": "1ea878bd3af18f934dedb8c0de60656a9a31a718"
  2695. },
  2696. "dist": {
  2697. "type": "zip",
  2698. - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5b7ab6beaa5b053b8d3c9b13367ada9b292e12e1",
  2699. - "reference": "5b7ab6beaa5b053b8d3c9b13367ada9b292e12e1",
  2700. + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/1ea878bd3af18f934dedb8c0de60656a9a31a718",
  2701. + "reference": "1ea878bd3af18f934dedb8c0de60656a9a31a718",
  2702. "shasum": ""
  2703. },
  2704. "require": {
  2705. @@ -3078,20 +3245,20 @@
  2706. ],
  2707. "description": "Symfony HttpFoundation Component",
  2708. "homepage": "https://symfony.com",
  2709. - "time": "2019-03-30T15:58:42+00:00"
  2710. + "time": "2019-05-01T08:36:31+00:00"
  2711. },
  2712. {
  2713. "name": "symfony/http-kernel",
  2714. - "version": "v4.2.5",
  2715. + "version": "v4.2.8",
  2716. "source": {
  2717. "type": "git",
  2718. "url": "https://github.com/symfony/http-kernel.git",
  2719. - "reference": "e8b940bbeebf0f96789b5d17d9d77f8b2613960b"
  2720. + "reference": "a7713bc522f1a1cdf0b39f809fa4542523fc3114"
  2721. },
  2722. "dist": {
  2723. "type": "zip",
  2724. - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e8b940bbeebf0f96789b5d17d9d77f8b2613960b",
  2725. - "reference": "e8b940bbeebf0f96789b5d17d9d77f8b2613960b",
  2726. + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a7713bc522f1a1cdf0b39f809fa4542523fc3114",
  2727. + "reference": "a7713bc522f1a1cdf0b39f809fa4542523fc3114",
  2728. "shasum": ""
  2729. },
  2730. "require": {
  2731. @@ -3167,7 +3334,7 @@
  2732. ],
  2733. "description": "Symfony HttpKernel Component",
  2734. "homepage": "https://symfony.com",
  2735. - "time": "2019-04-02T19:03:51+00:00"
  2736. + "time": "2019-05-01T13:31:08+00:00"
  2737. },
  2738. {
  2739. "name": "symfony/polyfill-ctype",
  2740. @@ -3464,16 +3631,16 @@
  2741. },
  2742. {
  2743. "name": "symfony/process",
  2744. - "version": "v4.2.5",
  2745. + "version": "v4.2.8",
  2746. "source": {
  2747. "type": "git",
  2748. "url": "https://github.com/symfony/process.git",
  2749. - "reference": "1e6cbb41dadcaf29e0db034d6ad0d039a9df06e6"
  2750. + "reference": "8cf39fb4ccff793340c258ee7760fd40bfe745fe"
  2751. },
  2752. "dist": {
  2753. "type": "zip",
  2754. - "url": "https://api.github.com/repos/symfony/process/zipball/1e6cbb41dadcaf29e0db034d6ad0d039a9df06e6",
  2755. - "reference": "1e6cbb41dadcaf29e0db034d6ad0d039a9df06e6",
  2756. + "url": "https://api.github.com/repos/symfony/process/zipball/8cf39fb4ccff793340c258ee7760fd40bfe745fe",
  2757. + "reference": "8cf39fb4ccff793340c258ee7760fd40bfe745fe",
  2758. "shasum": ""
  2759. },
  2760. "require": {
  2761. @@ -3509,20 +3676,20 @@
  2762. ],
  2763. "description": "Symfony Process Component",
  2764. "homepage": "https://symfony.com",
  2765. - "time": "2019-03-10T20:07:02+00:00"
  2766. + "time": "2019-04-10T16:20:36+00:00"
  2767. },
  2768. {
  2769. "name": "symfony/routing",
  2770. - "version": "v4.2.5",
  2771. + "version": "v4.2.8",
  2772. "source": {
  2773. "type": "git",
  2774. "url": "https://github.com/symfony/routing.git",
  2775. - "reference": "319f600c1ea0f981f6bdc2f042cfc1690957c0e0"
  2776. + "reference": "f4e43bb0dff56f0f62fa056c82d7eadcdb391bab"
  2777. },
  2778. "dist": {
  2779. "type": "zip",
  2780. - "url": "https://api.github.com/repos/symfony/routing/zipball/319f600c1ea0f981f6bdc2f042cfc1690957c0e0",
  2781. - "reference": "319f600c1ea0f981f6bdc2f042cfc1690957c0e0",
  2782. + "url": "https://api.github.com/repos/symfony/routing/zipball/f4e43bb0dff56f0f62fa056c82d7eadcdb391bab",
  2783. + "reference": "f4e43bb0dff56f0f62fa056c82d7eadcdb391bab",
  2784. "shasum": ""
  2785. },
  2786. "require": {
  2787. @@ -3585,20 +3752,20 @@
  2788. "uri",
  2789. "url"
  2790. ],
  2791. - "time": "2019-03-30T15:58:42+00:00"
  2792. + "time": "2019-04-27T09:38:08+00:00"
  2793. },
  2794. {
  2795. "name": "symfony/translation",
  2796. - "version": "v4.2.5",
  2797. + "version": "v4.2.8",
  2798. "source": {
  2799. "type": "git",
  2800. "url": "https://github.com/symfony/translation.git",
  2801. - "reference": "e46933cc31b68f51f7fc5470fb55550407520f56"
  2802. + "reference": "181a426dd129cb496f12d7e7555f6d0b37a7615b"
  2803. },
  2804. "dist": {
  2805. "type": "zip",
  2806. - "url": "https://api.github.com/repos/symfony/translation/zipball/e46933cc31b68f51f7fc5470fb55550407520f56",
  2807. - "reference": "e46933cc31b68f51f7fc5470fb55550407520f56",
  2808. + "url": "https://api.github.com/repos/symfony/translation/zipball/181a426dd129cb496f12d7e7555f6d0b37a7615b",
  2809. + "reference": "181a426dd129cb496f12d7e7555f6d0b37a7615b",
  2810. "shasum": ""
  2811. },
  2812. "require": {
  2813. @@ -3620,7 +3787,9 @@
  2814. "symfony/console": "~3.4|~4.0",
  2815. "symfony/dependency-injection": "~3.4|~4.0",
  2816. "symfony/finder": "~2.8|~3.0|~4.0",
  2817. + "symfony/http-kernel": "~3.4|~4.0",
  2818. "symfony/intl": "~3.4|~4.0",
  2819. + "symfony/var-dumper": "~3.4|~4.0",
  2820. "symfony/yaml": "~3.4|~4.0"
  2821. },
  2822. "suggest": {
  2823. @@ -3658,20 +3827,20 @@
  2824. ],
  2825. "description": "Symfony Translation Component",
  2826. "homepage": "https://symfony.com",
  2827. - "time": "2019-04-01T14:13:08+00:00"
  2828. + "time": "2019-05-01T12:55:36+00:00"
  2829. },
  2830. {
  2831. "name": "symfony/var-dumper",
  2832. - "version": "v4.2.5",
  2833. + "version": "v4.2.8",
  2834. "source": {
  2835. "type": "git",
  2836. "url": "https://github.com/symfony/var-dumper.git",
  2837. - "reference": "9f87189ac10b42edf7fb8edc846f1937c6d157cf"
  2838. + "reference": "3c4084cb1537c0e2ad41aad622bbf55a44a5c9ce"
  2839. },
  2840. "dist": {
  2841. "type": "zip",
  2842. - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/9f87189ac10b42edf7fb8edc846f1937c6d157cf",
  2843. - "reference": "9f87189ac10b42edf7fb8edc846f1937c6d157cf",
  2844. + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3c4084cb1537c0e2ad41aad622bbf55a44a5c9ce",
  2845. + "reference": "3c4084cb1537c0e2ad41aad622bbf55a44a5c9ce",
  2846. "shasum": ""
  2847. },
  2848. "require": {
  2849. @@ -3734,7 +3903,7 @@
  2850. "debug",
  2851. "dump"
  2852. ],
  2853. - "time": "2019-02-23T15:17:42+00:00"
  2854. + "time": "2019-05-01T12:55:36+00:00"
  2855. },
  2856. {
  2857. "name": "tightenco/ziggy",
  2858. @@ -4258,20 +4427,20 @@
  2859. },
  2860. {
  2861. "name": "myclabs/deep-copy",
  2862. - "version": "1.9.0",
  2863. + "version": "1.9.1",
  2864. "source": {
  2865. "type": "git",
  2866. "url": "https://github.com/myclabs/DeepCopy.git",
  2867. - "reference": "78af75148f9fdd34ea727c8b529a9b4a8f7b740c"
  2868. + "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72"
  2869. },
  2870. "dist": {
  2871. "type": "zip",
  2872. - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/78af75148f9fdd34ea727c8b529a9b4a8f7b740c",
  2873. - "reference": "78af75148f9fdd34ea727c8b529a9b4a8f7b740c",
  2874. + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72",
  2875. + "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72",
  2876. "shasum": ""
  2877. },
  2878. "require": {
  2879. - "php": "^7.2"
  2880. + "php": "^7.1"
  2881. },
  2882. "replace": {
  2883. "myclabs/deep-copy": "self.version"
  2884. @@ -4279,8 +4448,6 @@
  2885. "require-dev": {
  2886. "doctrine/collections": "^1.0",
  2887. "doctrine/common": "^2.6",
  2888. - "phpstan/phpstan": "^0.9.2",
  2889. - "phpstan/phpstan-phpunit": "^0.9.4",
  2890. "phpunit/phpunit": "^7.1"
  2891. },
  2892. "type": "library",
  2893. @@ -4304,7 +4471,7 @@
  2894. "object",
  2895. "object graph"
  2896. ],
  2897. - "time": "2018-10-30T00:14:44+00:00"
  2898. + "time": "2019-04-07T13:18:21+00:00"
  2899. },
  2900. {
  2901. "name": "nunomaduro/collision",
  2902. @@ -4528,16 +4695,16 @@
  2903. },
  2904. {
  2905. "name": "phpdocumentor/reflection-docblock",
  2906. - "version": "4.3.0",
  2907. + "version": "4.3.1",
  2908. "source": {
  2909. "type": "git",
  2910. "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
  2911. - "reference": "94fd0001232e47129dd3504189fa1c7225010d08"
  2912. + "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c"
  2913. },
  2914. "dist": {
  2915. "type": "zip",
  2916. - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08",
  2917. - "reference": "94fd0001232e47129dd3504189fa1c7225010d08",
  2918. + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c",
  2919. + "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c",
  2920. "shasum": ""
  2921. },
  2922. "require": {
  2923. @@ -4575,7 +4742,7 @@
  2924. }
  2925. ],
  2926. "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
  2927. - "time": "2017-11-30T07:14:17+00:00"
  2928. + "time": "2019-04-30T17:48:53+00:00"
  2929. },
  2930. {
  2931. "name": "phpdocumentor/type-resolver",
  2932. @@ -4941,16 +5108,16 @@
  2933. },
  2934. {
  2935. "name": "phpunit/phpunit",
  2936. - "version": "7.5.8",
  2937. + "version": "7.5.9",
  2938. "source": {
  2939. "type": "git",
  2940. "url": "https://github.com/sebastianbergmann/phpunit.git",
  2941. - "reference": "c29c0525cf4572c11efe1db49a8b8aee9dfac58a"
  2942. + "reference": "134669cf0eeac3f79bc7f0c793efbc158bffc160"
  2943. },
  2944. "dist": {
  2945. "type": "zip",
  2946. - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c29c0525cf4572c11efe1db49a8b8aee9dfac58a",
  2947. - "reference": "c29c0525cf4572c11efe1db49a8b8aee9dfac58a",
  2948. + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/134669cf0eeac3f79bc7f0c793efbc158bffc160",
  2949. + "reference": "134669cf0eeac3f79bc7f0c793efbc158bffc160",
  2950. "shasum": ""
  2951. },
  2952. "require": {
  2953. @@ -5021,7 +5188,7 @@
  2954. "testing",
  2955. "xunit"
  2956. ],
  2957. - "time": "2019-03-26T13:23:54+00:00"
  2958. + "time": "2019-04-19T15:50:46+00:00"
  2959. },
  2960. {
  2961. "name": "sebastian/code-unit-reverse-lookup",
  2962. @@ -5190,16 +5357,16 @@
  2963. },
  2964. {
  2965. "name": "sebastian/environment",
  2966. - "version": "4.1.0",
  2967. + "version": "4.2.1",
  2968. "source": {
  2969. "type": "git",
  2970. "url": "https://github.com/sebastianbergmann/environment.git",
  2971. - "reference": "6fda8ce1974b62b14935adc02a9ed38252eca656"
  2972. + "reference": "3095910f0f0fb155ac4021fc51a4a7a39ac04e8a"
  2973. },
  2974. "dist": {
  2975. "type": "zip",
  2976. - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6fda8ce1974b62b14935adc02a9ed38252eca656",
  2977. - "reference": "6fda8ce1974b62b14935adc02a9ed38252eca656",
  2978. + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/3095910f0f0fb155ac4021fc51a4a7a39ac04e8a",
  2979. + "reference": "3095910f0f0fb155ac4021fc51a4a7a39ac04e8a",
  2980. "shasum": ""
  2981. },
  2982. "require": {
  2983. @@ -5214,7 +5381,7 @@
  2984. "type": "library",
  2985. "extra": {
  2986. "branch-alias": {
  2987. - "dev-master": "4.1-dev"
  2988. + "dev-master": "4.2-dev"
  2989. }
  2990. },
  2991. "autoload": {
  2992. @@ -5239,7 +5406,7 @@
  2993. "environment",
  2994. "hhvm"
  2995. ],
  2996. - "time": "2019-02-01T05:27:49+00:00"
  2997. + "time": "2019-04-25T07:55:20+00:00"
  2998. },
  2999. {
  3000. "name": "sebastian/exporter",
  3001. @@ -5683,7 +5850,9 @@
  3002. ],
  3003. "aliases": [],
  3004. "minimum-stability": "dev",
  3005. - "stability-flags": [],
  3006. + "stability-flags": {
  3007. + "snowfire/beautymail": 20
  3008. + },
  3009. "prefer-stable": true,
  3010. "prefer-lowest": false,
  3011. "platform": {
  3012. Index: composer.json
  3013. IDEA additional info:
  3014. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  3015. <+>UTF-8
  3016. ===================================================================
  3017. --- composer.json (date 1556261584000)
  3018. +++ composer.json (date 1556782116986)
  3019. @@ -14,6 +14,8 @@
  3020. "laravel/framework": "5.8.*",
  3021. "laravel/socialite": "^3.1",
  3022. "meyfa/php-svg": "^0.9.0",
  3023. + "predis/predis": "^1.1",
  3024. + "snowfire/beautymail": "dev-master",
  3025. "spatie/laravel-permission": "^2.21",
  3026. "tightenco/ziggy": "v0.6.8.1"
  3027. },
  3028. Index: yarn.lock
  3029. IDEA additional info:
  3030. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  3031. <+>UTF-8
  3032. ===================================================================
  3033. --- yarn.lock (date 1556261584000)
  3034. +++ yarn.lock (date 1556782117056)
  3035. @@ -513,6 +513,12 @@
  3036. version "1.0.0"
  3037. resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
  3038.  
  3039. +async-validator@~1.8.1:
  3040. + version "1.8.5"
  3041. + resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0"
  3042. + dependencies:
  3043. + babel-runtime "6.x"
  3044. +
  3045. async@1.5.2, async@^1.5.2:
  3046. version "1.5.2"
  3047. resolved "http://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
  3048. @@ -731,6 +737,10 @@
  3049. babel-traverse "^6.24.1"
  3050. babel-types "^6.24.1"
  3051.  
  3052. +babel-helper-vue-jsx-merge-props@^2.0.0:
  3053. + version "2.0.3"
  3054. + resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6"
  3055. +
  3056. babel-helpers@^6.24.1:
  3057. version "6.24.1"
  3058. resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
  3059. @@ -1030,7 +1040,6 @@
  3060. babel-polyfill@^6.26.0:
  3061. version "6.26.0"
  3062. resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
  3063. - integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=
  3064. dependencies:
  3065. babel-runtime "^6.26.0"
  3066. core-js "^2.5.0"
  3067. @@ -1102,7 +1111,7 @@
  3068. mkdirp "^0.5.1"
  3069. source-map-support "^0.4.15"
  3070.  
  3071. -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0:
  3072. +babel-runtime@6.x, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0:
  3073. version "6.26.0"
  3074. resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
  3075. dependencies:
  3076. @@ -2216,6 +2225,10 @@
  3077. version "0.1.3"
  3078. resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
  3079.  
  3080. +deepmerge@^1.2.0:
  3081. + version "1.5.2"
  3082. + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753"
  3083. +
  3084. define-properties@^1.1.2:
  3085. version "1.1.3"
  3086. resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
  3087. @@ -2451,6 +2464,17 @@
  3088. version "1.3.83"
  3089. resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.83.tgz#74584eb0972bb6777811c5d68d988c722f5e6666"
  3090.  
  3091. +element-ui@^2.8.2:
  3092. + version "2.8.2"
  3093. + resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.8.2.tgz#21a7a4cb92616b0f8b75d4d4e637d3a1cd8c09de"
  3094. + dependencies:
  3095. + async-validator "~1.8.1"
  3096. + babel-helper-vue-jsx-merge-props "^2.0.0"
  3097. + deepmerge "^1.2.0"
  3098. + normalize-wheel "^1.0.1"
  3099. + resize-observer-polyfill "^1.5.0"
  3100. + throttle-debounce "^1.0.1"
  3101. +
  3102. elliptic@^6.0.0:
  3103. version "6.4.1"
  3104. resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a"
  3105. @@ -4790,7 +4814,6 @@
  3106. mousetrap@^1.6.3:
  3107. version "1.6.3"
  3108. resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.3.tgz#80fee49665fd478bccf072c9d46bdf1bfed3558a"
  3109. - integrity sha512-bd+nzwhhs9ifsUrC2tWaSgm24/oo2c83zaRyZQF06hYA6sANfsXHtnZ19AbbbDXCDzeH5nZBSQ4NvCjgD62tJA==
  3110.  
  3111. move-concurrently@^1.0.1:
  3112. version "1.0.1"
  3113. @@ -5031,6 +5054,10 @@
  3114. query-string "^4.1.0"
  3115. sort-keys "^1.0.0"
  3116.  
  3117. +normalize-wheel@^1.0.1:
  3118. + version "1.0.1"
  3119. + resolved "https://registry.yarnpkg.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45"
  3120. +
  3121. npm-bundled@^1.0.1:
  3122. version "1.0.5"
  3123. resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979"
  3124. @@ -6072,7 +6099,6 @@
  3125. regenerator-runtime@^0.10.5:
  3126. version "0.10.5"
  3127. resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
  3128. - integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=
  3129.  
  3130. regenerator-runtime@^0.11.0, regenerator-runtime@^0.11.1:
  3131. version "0.11.1"
  3132. @@ -6213,6 +6239,10 @@
  3133. version "1.0.0"
  3134. resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
  3135.  
  3136. +resize-observer-polyfill@^1.5.0:
  3137. + version "1.5.1"
  3138. + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
  3139. +
  3140. resolve-cwd@^2.0.0:
  3141. version "2.0.0"
  3142. resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
  3143. @@ -6994,6 +7024,10 @@
  3144. chalk "^1.1.1"
  3145. object-path "^0.9.0"
  3146.  
  3147. +throttle-debounce@^1.0.1:
  3148. + version "1.1.0"
  3149. + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz#51853da37be68a155cb6e827b3514a3c422e89cd"
  3150. +
  3151. through2@^2.0.0:
  3152. version "2.0.3"
  3153. resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
  3154. @@ -7036,7 +7070,6 @@
  3155. tippy.js@^4.2.1:
  3156. version "4.2.1"
  3157. resolved "https://registry.yarnpkg.com/tippy.js/-/tippy.js-4.2.1.tgz#9e4939d976465f77229b05a3cb233b5dc28cf850"
  3158. - integrity sha512-xEE7zYNgQxCDdPcuT6T04f0frPh0wO7CcIqJKMFazU/NqusyjCgYSkLRosIHoiRkZMRzSPOudC8wRN5GjvAyOQ==
  3159. dependencies:
  3160. popper.js "^1.14.7"
  3161.  
  3162. @@ -7365,11 +7398,6 @@
  3163. object-assign "^4.1.1"
  3164. swiper "^4.0.7"
  3165.  
  3166. -vue-class-component@^7.0.1:
  3167. - version "7.0.2"
  3168. - resolved "https://registry.yarnpkg.com/vue-class-component/-/vue-class-component-7.0.2.tgz#c5f35a91c0e9341532392b84d606a84911fb13bc"
  3169. - integrity sha512-8xw/wkZI2tgHcwvkSRC1ax7GeP1CG27wKhedvOAdjdASm05VU4RijGsCYti6s6CzBioBL5BQUmntQQTCsp1wnQ==
  3170. -
  3171. vue-hot-reload-api@^1.3.x:
  3172. version "1.3.3"
  3173. resolved "http://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-1.3.3.tgz#54d22d83786a878493f639cc76bca7992a23be46"
  3174. @@ -7400,19 +7428,9 @@
  3175. version "2.1.3"
  3176. resolved "https://registry.yarnpkg.com/vue-multiselect/-/vue-multiselect-2.1.3.tgz#5454731086d8c431b527051a56910a8babe090af"
  3177.  
  3178. -vue-property-decorator@^8.0.0:
  3179. - version "8.1.0"
  3180. - resolved "https://registry.yarnpkg.com/vue-property-decorator/-/vue-property-decorator-8.1.0.tgz#66493a5350e7f643e852e7698ec2c883554daa79"
  3181. - integrity sha512-TUWpbadApSW/sx9hlbrUq092ULm4E3RkL5X4fFhkiJ88/Y99lVubjh3bd3VbFQ8JRlKaTeqMOKaFHQRzWBCFPg==
  3182. - dependencies:
  3183. - vue-class-component "^7.0.1"
  3184. -
  3185. -vue-slider-component@^3.0.30:
  3186. - version "3.0.30"
  3187. - resolved "https://registry.yarnpkg.com/vue-slider-component/-/vue-slider-component-3.0.30.tgz#fc82382f1cac5d04488850b99e07864b1edefc15"
  3188. - integrity sha512-3o82VfWeMa3b8unkedT/4eNBbvBsdsu+r75Ut/2j8pBKOn4lJoz0SS6h4qWC4L/yeOdVEStdwJH2s+rn3oGN9g==
  3189. - dependencies:
  3190. - vue-property-decorator "^8.0.0"
  3191. +vue-slider-component@^2.8.0:
  3192. + version "2.8.16"
  3193. + resolved "https://registry.yarnpkg.com/vue-slider-component/-/vue-slider-component-2.8.16.tgz#b2036f816ed64fa4fcd6741219b80c5063b4fd60"
  3194.  
  3195. vue-style-loader@^3.0.0, vue-style-loader@^3.1.2:
  3196. version "3.1.2"
  3197. @@ -7442,7 +7460,6 @@
  3198. vue2-animate@^2.1.0:
  3199. version "2.1.0"
  3200. resolved "https://registry.yarnpkg.com/vue2-animate/-/vue2-animate-2.1.0.tgz#93eee5f381d8d6493bae0507bcad6b615fdacb7f"
  3201. - integrity sha512-OEuwx9Y2dmx3+hQ/K7zLc514v4xhc8tGDQl/ZTJh06r+/EG/oYQkhy2Fo4OOhDwiRJYFuTfkFhGlDtTnT4XGsw==
  3202.  
  3203. vue@^2.5.7:
  3204. version "2.5.17"
  3205. Index: resources/assets/js/components/elements/preview.vue
  3206. IDEA additional info:
  3207. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  3208. <+>UTF-8
  3209. ===================================================================
  3210. --- resources/assets/js/components/elements/preview.vue (date 1556261584000)
  3211. +++ resources/assets/js/components/elements/preview.vue (date 1556782116807)
  3212. @@ -5,24 +5,23 @@
  3213. <!-- slides -->
  3214. <swiper-slide>
  3215. <div class="preview slide1">
  3216. - <svg width="100%" height="100%" viewBox="0 0 559 760" fill="none"
  3217. - xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  3218. - <g filter="url(#card_filter0_d)">
  3219. - <rect x="3" y="6" width="536" height="340" fill="white"/>
  3220. - </g>
  3221. - <g filter="url(#card_filter1_d)">
  3222. - <rect x="3" y="400" width="536" height="340" fill="white"/>
  3223. - </g>
  3224. - <rect x="0.5" y="1.5" width="545" height="350" fill="url(#card_pattern0)" stroke="#E3E3E3"/>
  3225. - <rect x="0.5" y="394.5" width="545" height="350" fill="url(#card_pattern1)"
  3226. - stroke="#E3E3E3"/>
  3227. -
  3228. - <transition name="jackInTheBox">
  3229. - <g v-show="previewUpdated" filter="url(#card_filter2_i)">
  3230. + <transition name="fade">
  3231. + <svg v-show="previewUpdated" width="100%" height="100%" viewBox="0 0 559 760" fill="none"
  3232. + xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  3233. + <g filter="url(#card_filter0_d)">
  3234. + <rect x="3" y="6" width="536" height="340" fill="white"/>
  3235. + </g>
  3236. + <g filter="url(#card_filter1_d)">
  3237. + <rect x="3" y="400" width="536" height="340" fill="white"/>
  3238. + </g>
  3239. + <rect x="0.5" y="1.5" width="545" height="350" fill="url(#card_pattern0)"
  3240. + stroke="#E3E3E3"/>
  3241. + <rect x="0.5" y="394.5" width="545" height="350" fill="url(#card_pattern1)"
  3242. + stroke="#E3E3E3"/>
  3243. + <g filter="url(#card_filter2_i)">
  3244. <rect x="73" y="30" width="400" height="225" fill="url(#card_pattern2)"/>
  3245. </g>
  3246. - </transition>
  3247. - <text fill="#272F3F" xml:space="preserve" style="white-space: pre"
  3248. + <text fill="#272F3F" xml:space="preserve" style="white-space: pre"
  3249. font-family="Montserrat"
  3250. font-size="21" font-weight="500"
  3251. letter-spacing="0.4em"><tspan x="32" y="443.328">JOHNATAN</tspan>
  3252. @@ -64,137 +63,153 @@
  3253. <text fill="#272F3F" xml:space="preserve" style="white-space: pre"
  3254. font-family="Montserrat" font-size="12" letter-spacing="0.1em">
  3255. <tspan x="32" y="700.616">WWW.JOHNROB.COM</tspan></text>
  3256. - <line x1="243" y1="265.5" x2="303" y2="265.5" :stroke="getLogoColor()" stroke-width="3"/>
  3257. - <line x1="32" y1="500.5" x2="92" y2="500.5" :stroke="getLogoColor()" stroke-width="3"/>
  3258. - <defs>
  3259. - <filter id="card_filter0_d" x="3" y="6" width="556" height="360"
  3260. - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3261. - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3262. - <feColorMatrix in="SourceAlpha" type="matrix"
  3263. - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
  3264. - <feOffset dx="10" dy="10"/>
  3265. - <feGaussianBlur stdDeviation="5"/>
  3266. - <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3267. - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
  3268. - <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
  3269. - </filter>
  3270. - <filter id="card_filter1_d" x="3" y="400" width="556" height="360"
  3271. - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3272. - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3273. - <feColorMatrix in="SourceAlpha" type="matrix"
  3274. - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
  3275. - <feOffset dx="10" dy="10"/>
  3276. - <feGaussianBlur stdDeviation="5"/>
  3277. - <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3278. - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
  3279. - <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
  3280. - </filter>
  3281. - <pattern id="card_pattern0" patternContentUnits="objectBoundingBox" width="1"
  3282. - height="1">
  3283. - <use xlink:href="#card_image0"
  3284. - transform="translate(0 1.61698) scale(0.000694444 0.00108025) rotate(-90)"/>
  3285. - </pattern>
  3286. - <pattern id="card_pattern1" patternContentUnits="objectBoundingBox" width="1"
  3287. - height="1">
  3288. - <use xlink:href="#card_image0"
  3289. - transform="translate(0 1.61698) scale(0.000694444 0.00108025) rotate(-90)"/>
  3290. - </pattern>
  3291. - <filter id="card_filter2_i" x="73" y="30" width="400" height="229"
  3292. - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3293. - <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
  3294. - </filter>
  3295. - <pattern id="card_pattern2" patternContentUnits="objectBoundingBox" width="1"
  3296. - height="1">
  3297. - <use xlink:href="#card_image1"
  3298. - transform="translate(0 0.144444) scale(0.000352734 0.000627082)"/>
  3299. - </pattern>
  3300. - <image id="card_image0" width="2068" height="1440"
  3301. - xlink:href="/images/preview/visit-card/bg.png"/>
  3302. - <image id="card_image1" width="2835" height="1134" :href="previewUrl"/>
  3303. - </defs>
  3304. - </svg>
  3305. + <line x1="243" y1="265.5" x2="303" y2="265.5" :stroke="getLogoColor()"
  3306. + stroke-width="3"/>
  3307. + <line x1="32" y1="500.5" x2="92" y2="500.5" :stroke="getLogoColor()" stroke-width="3"/>
  3308. + <defs>
  3309. + <filter id="card_filter0_d" x="3" y="6" width="556" height="360"
  3310. + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3311. + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3312. + <feColorMatrix in="SourceAlpha" type="matrix"
  3313. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
  3314. + <feOffset dx="10" dy="10"/>
  3315. + <feGaussianBlur stdDeviation="5"/>
  3316. + <feColorMatrix type="matrix"
  3317. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3318. + <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
  3319. + <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow"
  3320. + result="shape"/>
  3321. + </filter>
  3322. + <filter id="card_filter1_d" x="3" y="400" width="556" height="360"
  3323. + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3324. + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3325. + <feColorMatrix in="SourceAlpha" type="matrix"
  3326. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
  3327. + <feOffset dx="10" dy="10"/>
  3328. + <feGaussianBlur stdDeviation="5"/>
  3329. + <feColorMatrix type="matrix"
  3330. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3331. + <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
  3332. + <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow"
  3333. + result="shape"/>
  3334. + </filter>
  3335. + <pattern id="card_pattern0" patternContentUnits="objectBoundingBox" width="1"
  3336. + height="1">
  3337. + <use xlink:href="#card_image0"
  3338. + transform="translate(0 1.61698) scale(0.000694444 0.00108025) rotate(-90)"/>
  3339. + </pattern>
  3340. + <pattern id="card_pattern1" patternContentUnits="objectBoundingBox" width="1"
  3341. + height="1">
  3342. + <use xlink:href="#card_image0"
  3343. + transform="translate(0 1.61698) scale(0.000694444 0.00108025) rotate(-90)"/>
  3344. + </pattern>
  3345. + <filter id="card_filter2_i" x="73" y="30" width="400" height="229"
  3346. + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3347. + <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
  3348. + </filter>
  3349. + <pattern id="card_pattern2" patternContentUnits="objectBoundingBox" width="1"
  3350. + height="1">
  3351. + <use xlink:href="#card_image1"
  3352. + transform="translate(0 0.144444) scale(0.000352734 0.000627082)"/>
  3353. + </pattern>
  3354. + <image id="card_image0" width="2068" height="1440"
  3355. + xlink:href="/images/preview/visit-card/bg.png"/>
  3356. + <image id="card_image1" width="2835" height="1134" :href="previewUrl"/>
  3357. + </defs>
  3358. + </svg>
  3359. + </transition>
  3360. </div>
  3361. </swiper-slide>
  3362. <swiper-slide>
  3363. <div class="preview slide2">
  3364. - <svg width="100%" height="100%" viewBox="0 0 623 723" fill="none"
  3365. - xmlns="http://www.w3.org/2000/svg"
  3366. - xmlns:xlink="http://www.w3.org/1999/xlink">
  3367. - <rect width="623" height="723" fill="url(#blank_pattern0)"/>
  3368. - <transition name="jackInTheBox">
  3369. - <rect v-show="previewUpdated" x="111" y="154" width="164" height="92" fill="url(#blank_pattern1)"
  3370. + <transition name="fade">
  3371. + <svg v-show="previewUpdated" width="100%" height="100%" viewBox="0 0 623 723" fill="none"
  3372. + xmlns="http://www.w3.org/2000/svg"
  3373. + xmlns:xlink="http://www.w3.org/1999/xlink">
  3374. + <rect width="623" height="723" fill="url(#blank_pattern0)"/>
  3375. +
  3376. + <rect x="111" y="154" width="164" height="92"
  3377. + fill="url(#blank_pattern1)"
  3378. fill-opacity="0.8"/>
  3379. - </transition>
  3380. - <transition name="jackInTheBox">
  3381. - <rect v-show="previewUpdated" x="479" y="349" width="94.0441" height="52.4897" fill="url(#blank_pattern2)"
  3382. +
  3383. +
  3384. + <rect x="479" y="349" width="94.0441" height="52.4897"
  3385. + fill="url(#blank_pattern2)"
  3386. fill-opacity="0.9"/>
  3387. - </transition>
  3388. - <line x1="484" y1="419" x2="496" y2="419" :stroke="getLogoColor()" stroke-opacity="0.4"
  3389. - stroke-width="2"/>
  3390. - <defs>
  3391. - <pattern id="blank_pattern0" patternContentUnits="objectBoundingBox" width="1"
  3392. - height="1">
  3393. - <use xlink:href="#blank_image0"
  3394. - transform="translate(0 0.0153457) scale(0.00103734 0.000893867)"/>
  3395. - </pattern>
  3396. - <pattern id="blank_pattern1" patternContentUnits="objectBoundingBox" width="1"
  3397. - height="1">
  3398. - <use xlink:href="#blank_image1"
  3399. - transform="translate(-0.0609756) scale(0.0022897 0.00408163)"/>
  3400. - </pattern>
  3401. - <pattern id="blank_pattern2" patternContentUnits="objectBoundingBox" width="1"
  3402. - height="1">
  3403. - <use xlink:href="#blank_image1"
  3404. - transform="translate(-0.0581395) scale(0.00227812 0.00408163)"/>
  3405. - </pattern>
  3406. - <image id="blank_image0" width="964" height="1055"
  3407. - xlink:href="/images/preview/blank/bg.png"/>
  3408. - <image id="blank_image1" width="490" height="245" :href="previewUrl"/>
  3409. - </defs>
  3410. - </svg>
  3411. +
  3412. + <line x1="484" y1="419" x2="496" y2="419" :stroke="getLogoColor()" stroke-opacity="0.4"
  3413. + stroke-width="2"/>
  3414. + <defs>
  3415. + <pattern id="blank_pattern0" patternContentUnits="objectBoundingBox" width="1"
  3416. + height="1">
  3417. + <use xlink:href="#blank_image0"
  3418. + transform="translate(0 0.0153457) scale(0.00103734 0.000893867)"/>
  3419. + </pattern>
  3420. + <pattern id="blank_pattern1" patternContentUnits="objectBoundingBox" width="1"
  3421. + height="1">
  3422. + <use xlink:href="#blank_image1"
  3423. + transform="translate(-0.0609756) scale(0.0022897 0.00408163)"/>
  3424. + </pattern>
  3425. + <pattern id="blank_pattern2" patternContentUnits="objectBoundingBox" width="1"
  3426. + height="1">
  3427. + <use xlink:href="#blank_image1"
  3428. + transform="translate(-0.0581395) scale(0.00227812 0.00408163)"/>
  3429. + </pattern>
  3430. + <image id="blank_image0" width="964" height="1055"
  3431. + xlink:href="/images/preview/blank/bg.png"/>
  3432. + <image id="blank_image1" width="490" height="245" :href="previewUrl"/>
  3433. + </defs>
  3434. + </svg>
  3435. + </transition>
  3436. </div>
  3437. </swiper-slide>
  3438. <swiper-slide>
  3439. <div class="preview slide3">
  3440. - <svg width="100%" height="100%" viewBox="0 0 621 723" fill="none"
  3441. - xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  3442. - <rect width="621" height="723" fill="url(#envelope_pattern0)"/>
  3443. - <line x1="524" y1="325.5" x2="543" y2="325.5" :stroke="getLogoColor()" stroke-width="2"/>
  3444. - <path d="M210 9L538.5 9.5L543.49 73.4991L201 74L210 9Z" fill="#C1689D" fill-opacity="0.25"/>
  3445. - <transition name="jackInTheBox">
  3446. - <rect v-show="previewUpdated" x="100" y="323.5" width="211" height="119" fill="url(#envelope_pattern1)"
  3447. + <transition name="fade">
  3448. + <svg v-show="previewUpdated" width="100%" height="100%" viewBox="0 0 621 723" fill="none"
  3449. + xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  3450. + <rect width="621" height="723" fill="url(#envelope_pattern0)"/>
  3451. + <line x1="524" y1="325.5" x2="543" y2="325.5" :stroke="getLogoColor()"
  3452. + stroke-width="2"/>
  3453. + <path d="M210 9L538.5 9.5L543.49 73.4991L201 74L210 9Z" fill="#C1689D"
  3454. + fill-opacity="0.25"/>
  3455. +
  3456. + <rect x="100" y="323.5" width="211" height="119"
  3457. + fill="url(#envelope_pattern1)"
  3458. fill-opacity="0.8"/>
  3459. - </transition>
  3460. - <line x1="354" y1="566.5" x2="373" y2="566.5" :stroke="getLogoColor()" stroke-width="2"/>
  3461. - <defs>
  3462. - <pattern id="envelope_pattern0" patternContentUnits="objectBoundingBox" width="1"
  3463. - height="1">
  3464. - <use xlink:href="#envelope_image0"
  3465. - transform="translate(0 -0.00483129) scale(0.00107296 0.000921589)"/>
  3466. - </pattern>
  3467. - <pattern id="envelope_pattern1" patternContentUnits="objectBoundingBox" width="1"
  3468. - height="1">
  3469. - <use xlink:href="#envelope_image1"
  3470. - transform="translate(-0.063981) scale(0.00230196 0.00408163)"/>
  3471. - </pattern>
  3472. - <image id="envelope_image0" width="932" height="971"
  3473. - xlink:href="/images/preview/envelope/bg.png"/>
  3474. - `
  3475. - <image id="envelope_image1" width="490" height="245" :href="previewUrl"/>
  3476. - </defs>
  3477. - </svg>
  3478. + <line x1="354" y1="566.5" x2="373" y2="566.5" :stroke="getLogoColor()"
  3479. + stroke-width="2"/>
  3480. + <defs>
  3481. + <pattern id="envelope_pattern0" patternContentUnits="objectBoundingBox" width="1"
  3482. + height="1">
  3483. + <use xlink:href="#envelope_image0"
  3484. + transform="translate(0 -0.00483129) scale(0.00107296 0.000921589)"/>
  3485. + </pattern>
  3486. + <pattern id="envelope_pattern1" patternContentUnits="objectBoundingBox" width="1"
  3487. + height="1">
  3488. + <use xlink:href="#envelope_image1"
  3489. + transform="translate(-0.063981) scale(0.00230196 0.00408163)"/>
  3490. + </pattern>
  3491. + <image id="envelope_image0" width="932" height="971"
  3492. + xlink:href="/images/preview/envelope/bg.png"/>
  3493. + `
  3494. + <image id="envelope_image1" width="490" height="245" :href="previewUrl"/>
  3495. + </defs>
  3496. + </svg>
  3497. + </transition>
  3498. </div>
  3499. </swiper-slide>
  3500. <swiper-slide>
  3501. <div class="preview slide4">
  3502. - <svg width="100%" height="100%" viewBox="0 0 594 362" fill="none"
  3503. - xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  3504. - <rect width="594" height="362" fill="url(#macbook_pattern0)"/>
  3505. - <transition name="jackInTheBox">
  3506. - <rect v-show="previewUpdated" x="245" y="31" width="100" height="56" fill="url(#macbook_pattern1)"
  3507. + <transition name="fade">
  3508. + <svg v-show="previewUpdated" width="100%" height="100%" viewBox="0 0 594 362" fill="none"
  3509. + xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  3510. + <rect width="594" height="362" fill="url(#macbook_pattern0)"/>
  3511. +
  3512. + <rect x="245" y="31" width="100" height="56"
  3513. + fill="url(#macbook_pattern1)"
  3514. fill-opacity="0.8"/>
  3515. - </transition>
  3516. - <text fill="#929292" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
  3517. + <text fill="#929292" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
  3518. font-size="10" letter-spacing="0em"><tspan x="70.1309" y="62.28">HOME</tspan></text>
  3519. <text fill="#080808" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
  3520. font-size="10" letter-spacing="0em"><tspan x="136.19" y="62.28">SHOP</tspan></text>
  3521. @@ -208,188 +223,200 @@
  3522. font-size="10" letter-spacing="0em"><tspan x="194.33" y="62.28">PAGES</tspan></text>
  3523. <text fill="#080808" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
  3524. font-size="10" letter-spacing="0em"><tspan x="494.394" y="62.28">LOGIN</tspan></text>
  3525. - <rect x="431" y="54" width="11" height="10" fill="url(#macbook_pattern2)"/>
  3526. - <rect width="14" height="14" transform="matrix(-1 0 0 1 492 51)"
  3527. - fill="url(#macbook_pattern3)"/>
  3528. - <text fill="#4E4E4E" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
  3529. + <rect x="431" y="54" width="11" height="10" fill="url(#macbook_pattern2)"/>
  3530. + <rect width="14" height="14" transform="matrix(-1 0 0 1 492 51)"
  3531. + fill="url(#macbook_pattern3)"/>
  3532. + <text fill="#4E4E4E" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
  3533. font-size="10" font-weight="500" letter-spacing="0em"><tspan x="70" y="114.28">FEATURED ITEMS</tspan></text>
  3534. - <g filter="url(#macbook_filter0_d)">
  3535. - <rect x="70" y="129" width="129.013" height="134" fill="white"/>
  3536. - <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre"
  3537. + <g filter="url(#macbook_filter0_d)">
  3538. + <rect x="70" y="129" width="129.013" height="134" fill="white"/>
  3539. + <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre"
  3540. font-family="Catamaran" font-size="10" font-weight="300" letter-spacing="0em"><tspan x="74" y="239.28">Pin Button Badge</tspan></text>
  3541. <text fill="#808080" xml:space="preserve" style="white-space: pre"
  3542. font-family="Montserrat" font-size="8" font-weight="300" letter-spacing="0em"><tspan x="182.522" y="255.694">12$</tspan></text>
  3543. <text fill="#808080" xml:space="preserve" style="white-space: pre"
  3544. font-family="Catamaran" font-size="8" font-weight="300" letter-spacing="0em"><tspan x="74" y="253.424">Cosmetic</tspan></text>
  3545. - </g>
  3546. - <g filter="url(#macbook_filter1_d)">
  3547. - <rect x="231.993" y="129" width="129.013" height="134" fill="white"/>
  3548. - <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre"
  3549. + </g>
  3550. + <g filter="url(#macbook_filter1_d)">
  3551. + <rect x="231.993" y="129" width="129.013" height="134" fill="white"/>
  3552. + <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre"
  3553. font-family="Catamaran" font-size="10" font-weight="300" letter-spacing="0em"><tspan x="236" y="239.28">Soap Package</tspan></text>
  3554. <text fill="#808080" xml:space="preserve" style="white-space: pre"
  3555. font-family="Catamaran" font-size="8" font-weight="300" letter-spacing="0em"><tspan x="236" y="253.424">Hygiene</tspan></text>
  3556. <text fill="#808080" xml:space="preserve" style="white-space: pre"
  3557. font-family="Montserrat" font-size="8" font-weight="300" letter-spacing="0em"><tspan x="345" y="255.694">16$</tspan></text>
  3558. - </g>
  3559. - <g filter="url(#macbook_filter2_d)">
  3560. - <rect x="393.987" y="129" width="129.013" height="134" fill="white"/>
  3561. - <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre"
  3562. + </g>
  3563. + <g filter="url(#macbook_filter2_d)">
  3564. + <rect x="393.987" y="129" width="129.013" height="134" fill="white"/>
  3565. + <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre"
  3566. font-family="Catamaran" font-size="10" font-weight="300" letter-spacing="0em"><tspan x="398" y="239.28">Milk Glass Bottle</tspan></text>
  3567. <text fill="#808080" xml:space="preserve" style="white-space: pre"
  3568. font-family="Catamaran" font-size="8" font-weight="300" letter-spacing="0em"><tspan x="398" y="253.424">Foodstuff </tspan></text>
  3569. <text fill="#808080" xml:space="preserve" style="white-space: pre"
  3570. font-family="Montserrat" font-size="8" font-weight="300" letter-spacing="0em"><tspan x="510.39" y="255.694">2$</tspan></text>
  3571. - </g>
  3572. - <rect width="9" height="9" transform="matrix(-1 0 0 1 523 107)"
  3573. - fill="url(#macbook_pattern4)"/>
  3574. - <rect width="9" height="9" transform="matrix(-1 0 0 1 508 107)"
  3575. - fill="url(#macbook_pattern5)"/>
  3576. - <rect x="70" y="292" width="453" height="30" fill="#D9D9D9"/>
  3577. - <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
  3578. + </g>
  3579. + <rect width="9" height="9" transform="matrix(-1 0 0 1 523 107)"
  3580. + fill="url(#macbook_pattern4)"/>
  3581. + <rect width="9" height="9" transform="matrix(-1 0 0 1 508 107)"
  3582. + fill="url(#macbook_pattern5)"/>
  3583. + <rect x="70" y="292" width="453" height="30" fill="#D9D9D9"/>
  3584. + <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
  3585. font-size="8" font-weight="300" letter-spacing="0em"><tspan x="89" y="308.8">&#xa9; 2019. All rights reserved.</tspan></text>
  3586. - <path d="M469 303.065C468.595 303.246 468.161 303.368 467.704 303.423C468.17 303.142 468.527 302.696 468.696 302.166C468.259 302.426 467.776 302.616 467.262 302.718C466.851 302.276 466.265 302 465.615 302C464.369 302 463.359 303.018 463.359 304.272C463.359 304.45 463.379 304.624 463.417 304.79C461.542 304.695 459.879 303.79 458.766 302.415C458.572 302.751 458.461 303.141 458.461 303.558C458.461 304.346 458.86 305.042 459.465 305.449C459.095 305.437 458.747 305.334 458.443 305.164V305.192C458.443 306.293 459.221 307.212 460.253 307.421C460.063 307.472 459.864 307.501 459.658 307.501C459.512 307.501 459.371 307.486 459.233 307.459C459.52 308.362 460.354 309.019 461.341 309.037C460.569 309.646 459.595 310.009 458.538 310.009C458.356 310.009 458.177 309.997 458 309.977C458.999 310.623 460.184 311 461.459 311C465.61 311 467.879 307.537 467.879 304.533L467.871 304.239C468.315 303.921 468.698 303.52 469 303.065Z"
  3587. - :fill="getLogoColor()"/>
  3588. - <path d="M484.597 311V306.895H485.775L485.952 305.295H484.597V304.273C484.597 303.81 484.706 303.494 485.275 303.494L486 303.494V302.063C485.875 302.044 485.444 302 484.944 302C483.898 302 483.182 302.746 483.182 304.115V305.295H482V306.895H483.182V311H484.597Z"
  3589. - :fill="getLogoColor()"/>
  3590. - <path d="M500.318 311H506.682C507.409 311 508 310.409 508 309.682V303.318C508 302.591 507.409 302 506.682 302H500.318C499.591 302 499 302.591 499 303.318V309.682C499 310.409 499.591 311 500.318 311ZM499.527 303.318C499.527 302.882 499.882 302.527 500.318 302.527H506.682C507.118 302.527 507.473 302.882 507.473 303.318V309.682C507.473 310.118 507.118 310.473 506.682 310.473H500.318C499.882 310.473 499.527 310.118 499.527 309.682V303.318Z"
  3591. - :fill="getLogoColor()"/>
  3592. - <path d="M503.5 308.873C504.808 308.873 505.873 307.808 505.873 306.5C505.873 305.192 504.808 304.127 503.5 304.127C502.192 304.127 501.127 305.192 501.127 306.5C501.127 307.808 502.192 308.873 503.5 308.873ZM503.5 304.654C504.518 304.654 505.346 305.482 505.346 306.5C505.346 307.518 504.518 308.346 503.5 308.346C502.482 308.346 501.654 307.518 501.654 306.5C501.654 305.482 502.482 304.654 503.5 304.654Z"
  3593. - :fill="getLogoColor()"/>
  3594. - <path d="M506.137 304.654C506.573 304.654 506.928 304.299 506.928 303.863C506.928 303.427 506.573 303.072 506.137 303.072C505.701 303.072 505.346 303.427 505.346 303.863C505.346 304.299 505.701 304.654 506.137 304.654ZM506.137 303.6C506.282 303.6 506.4 303.718 506.4 303.863C506.4 304.009 506.282 304.127 506.137 304.127C505.991 304.127 505.873 304.009 505.873 303.863C505.873 303.718 505.991 303.6 506.137 303.6Z"
  3595. - :fill="getLogoColor()"/>
  3596. - <rect x="70" y="129" width="129" height="96" fill="#D9D9D9"/>
  3597. - <rect x="232" y="129" width="129" height="96" fill="#D9D9D9"/>
  3598. - <rect x="394" y="129" width="129" height="96" fill="#D9D9D9"/>
  3599. - <path d="M44 15.3C44 8.5069 49.5069 3 56.3 3H536.7C543.493 3 549 8.5069 549 15.3V22H44V15.3Z"
  3600. - fill="#F1F1F1"/>
  3601. - <g filter="url(#macbook_filter3_i)">
  3602. - <circle cx="57.5" cy="12.5" r="3.5" fill="#DA4F00"/>
  3603. - </g>
  3604. - <g filter="url(#macbook_filter4_i)">
  3605. - <circle cx="69.5" cy="12.5" r="3.5" fill="#F79B12"/>
  3606. - </g>
  3607. - <g filter="url(#macbook_filter5_i)">
  3608. - <circle cx="81.5" cy="12.5" r="3.5" fill="#2BCB71"/>
  3609. - </g>
  3610. - <line x1="522" y1="8.625" x2="534" y2="8.625" stroke="#9E9E9E" stroke-width="0.75"/>
  3611. - <line x1="522" y1="12.625" x2="534" y2="12.625" stroke="#9E9E9E" stroke-width="0.75"/>
  3612. - <line x1="522" y1="16.625" x2="534" y2="16.625" stroke="#9E9E9E" stroke-width="0.75"/>
  3613. - <rect x="141" y="7" width="309" height="11" rx="2" fill="white"/>
  3614. - <text fill="#CECECE" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
  3615. + <path d="M469 303.065C468.595 303.246 468.161 303.368 467.704 303.423C468.17 303.142 468.527 302.696 468.696 302.166C468.259 302.426 467.776 302.616 467.262 302.718C466.851 302.276 466.265 302 465.615 302C464.369 302 463.359 303.018 463.359 304.272C463.359 304.45 463.379 304.624 463.417 304.79C461.542 304.695 459.879 303.79 458.766 302.415C458.572 302.751 458.461 303.141 458.461 303.558C458.461 304.346 458.86 305.042 459.465 305.449C459.095 305.437 458.747 305.334 458.443 305.164V305.192C458.443 306.293 459.221 307.212 460.253 307.421C460.063 307.472 459.864 307.501 459.658 307.501C459.512 307.501 459.371 307.486 459.233 307.459C459.52 308.362 460.354 309.019 461.341 309.037C460.569 309.646 459.595 310.009 458.538 310.009C458.356 310.009 458.177 309.997 458 309.977C458.999 310.623 460.184 311 461.459 311C465.61 311 467.879 307.537 467.879 304.533L467.871 304.239C468.315 303.921 468.698 303.52 469 303.065Z"
  3616. + :fill="getLogoColor()"/>
  3617. + <path d="M484.597 311V306.895H485.775L485.952 305.295H484.597V304.273C484.597 303.81 484.706 303.494 485.275 303.494L486 303.494V302.063C485.875 302.044 485.444 302 484.944 302C483.898 302 483.182 302.746 483.182 304.115V305.295H482V306.895H483.182V311H484.597Z"
  3618. + :fill="getLogoColor()"/>
  3619. + <path d="M500.318 311H506.682C507.409 311 508 310.409 508 309.682V303.318C508 302.591 507.409 302 506.682 302H500.318C499.591 302 499 302.591 499 303.318V309.682C499 310.409 499.591 311 500.318 311ZM499.527 303.318C499.527 302.882 499.882 302.527 500.318 302.527H506.682C507.118 302.527 507.473 302.882 507.473 303.318V309.682C507.473 310.118 507.118 310.473 506.682 310.473H500.318C499.882 310.473 499.527 310.118 499.527 309.682V303.318Z"
  3620. + :fill="getLogoColor()"/>
  3621. + <path d="M503.5 308.873C504.808 308.873 505.873 307.808 505.873 306.5C505.873 305.192 504.808 304.127 503.5 304.127C502.192 304.127 501.127 305.192 501.127 306.5C501.127 307.808 502.192 308.873 503.5 308.873ZM503.5 304.654C504.518 304.654 505.346 305.482 505.346 306.5C505.346 307.518 504.518 308.346 503.5 308.346C502.482 308.346 501.654 307.518 501.654 306.5C501.654 305.482 502.482 304.654 503.5 304.654Z"
  3622. + :fill="getLogoColor()"/>
  3623. + <path d="M506.137 304.654C506.573 304.654 506.928 304.299 506.928 303.863C506.928 303.427 506.573 303.072 506.137 303.072C505.701 303.072 505.346 303.427 505.346 303.863C505.346 304.299 505.701 304.654 506.137 304.654ZM506.137 303.6C506.282 303.6 506.4 303.718 506.4 303.863C506.4 304.009 506.282 304.127 506.137 304.127C505.991 304.127 505.873 304.009 505.873 303.863C505.873 303.718 505.991 303.6 506.137 303.6Z"
  3624. + :fill="getLogoColor()"/>
  3625. + <rect x="70" y="129" width="129" height="96" fill="#D9D9D9"/>
  3626. + <rect x="232" y="129" width="129" height="96" fill="#D9D9D9"/>
  3627. + <rect x="394" y="129" width="129" height="96" fill="#D9D9D9"/>
  3628. + <path d="M44 15.3C44 8.5069 49.5069 3 56.3 3H536.7C543.493 3 549 8.5069 549 15.3V22H44V15.3Z"
  3629. + fill="#F1F1F1"/>
  3630. + <g filter="url(#macbook_filter3_i)">
  3631. + <circle cx="57.5" cy="12.5" r="3.5" fill="#DA4F00"/>
  3632. + </g>
  3633. + <g filter="url(#macbook_filter4_i)">
  3634. + <circle cx="69.5" cy="12.5" r="3.5" fill="#F79B12"/>
  3635. + </g>
  3636. + <g filter="url(#macbook_filter5_i)">
  3637. + <circle cx="81.5" cy="12.5" r="3.5" fill="#2BCB71"/>
  3638. + </g>
  3639. + <line x1="522" y1="8.625" x2="534" y2="8.625" stroke="#9E9E9E" stroke-width="0.75"/>
  3640. + <line x1="522" y1="12.625" x2="534" y2="12.625" stroke="#9E9E9E" stroke-width="0.75"/>
  3641. + <line x1="522" y1="16.625" x2="534" y2="16.625" stroke="#9E9E9E" stroke-width="0.75"/>
  3642. + <rect x="141" y="7" width="309" height="11" rx="2" fill="white"/>
  3643. + <text fill="#CECECE" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
  3644. font-size="8" letter-spacing="0em"><tspan x="265.766" y="14.74">www.website.com</tspan></text>
  3645. - <defs>
  3646. - <pattern id="macbook_pattern0" patternContentUnits="objectBoundingBox" width="1"
  3647. - height="1">
  3648. - <use xlink:href="#macbook_image0"
  3649. - transform="translate(-0.000488477) scale(0.000394707 0.000647668)"/>
  3650. - </pattern>
  3651. - <pattern id="macbook_pattern1" patternContentUnits="objectBoundingBox" width="1"
  3652. - height="1">
  3653. - <use xlink:href="#macbook_image1"
  3654. - transform="translate(-0.06) scale(0.00228571 0.00408163)"/>
  3655. - </pattern>
  3656. - <pattern id="macbook_pattern2" patternContentUnits="objectBoundingBox" width="1"
  3657. - height="1">
  3658. - <use xlink:href="#macbook_image2"
  3659. - transform="translate(0 0.00612245) scale(0.00102041 0.00112245)"/>
  3660. - </pattern>
  3661. - <pattern id="macbook_pattern3" patternContentUnits="objectBoundingBox" width="1"
  3662. - height="1">
  3663. - <use xlink:href="#macbook_image3" transform="scale(0.0277778)"/>
  3664. - </pattern>
  3665. - <filter id="macbook_filter0_d" x="68.1" y="127.1" width="133.013" height="138"
  3666. - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3667. - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3668. - <feColorMatrix in="SourceAlpha" type="matrix"
  3669. - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
  3670. - <feOffset dx="0.1" dy="0.1"/>
  3671. - <feGaussianBlur stdDeviation="1"/>
  3672. - <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3673. - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
  3674. - <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
  3675. - </filter>
  3676. - <filter id="macbook_filter1_d" x="230.093" y="127.1" width="133.013" height="138"
  3677. - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3678. - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3679. - <feColorMatrix in="SourceAlpha" type="matrix"
  3680. - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
  3681. - <feOffset dx="0.1" dy="0.1"/>
  3682. - <feGaussianBlur stdDeviation="1"/>
  3683. - <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3684. - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
  3685. - <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
  3686. - </filter>
  3687. - <filter id="macbook_filter2_d" x="392.087" y="127.1" width="133.013" height="138"
  3688. - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3689. - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3690. - <feColorMatrix in="SourceAlpha" type="matrix"
  3691. - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
  3692. - <feOffset dx="0.1" dy="0.1"/>
  3693. - <feGaussianBlur stdDeviation="1"/>
  3694. - <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3695. - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
  3696. - <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
  3697. - </filter>
  3698. - <pattern id="macbook_pattern4" patternContentUnits="objectBoundingBox" width="1"
  3699. - height="1">
  3700. - <use xlink:href="#macbook_image4" transform="scale(0.00195312)"/>
  3701. - </pattern>
  3702. - <pattern id="macbook_pattern5" patternContentUnits="objectBoundingBox" width="1"
  3703. - height="1">
  3704. - <use xlink:href="#macbook_image4"
  3705. - transform="translate(1 1) scale(0.00195313) rotate(180)"/>
  3706. - </pattern>
  3707. - <filter id="macbook_filter3_i" x="54" y="9" width="7.1" height="7.1"
  3708. - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3709. - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3710. - <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
  3711. - <feColorMatrix in="SourceAlpha" type="matrix"
  3712. - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
  3713. - result="hardAlpha"/>
  3714. - <feOffset dx="0.1" dy="0.1"/>
  3715. - <feGaussianBlur stdDeviation="0.5"/>
  3716. - <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
  3717. - <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3718. - <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
  3719. - </filter>
  3720. - <filter id="macbook_filter4_i" x="66" y="9" width="7.1" height="7.1"
  3721. - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3722. - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3723. - <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
  3724. - <feColorMatrix in="SourceAlpha" type="matrix"
  3725. - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
  3726. - result="hardAlpha"/>
  3727. - <feOffset dx="0.1" dy="0.1"/>
  3728. - <feGaussianBlur stdDeviation="0.5"/>
  3729. - <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
  3730. - <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3731. - <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
  3732. - </filter>
  3733. - <filter id="macbook_filter5_i" x="78" y="9" width="7.1" height="7.1"
  3734. - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3735. - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3736. - <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
  3737. - <feColorMatrix in="SourceAlpha" type="matrix"
  3738. - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
  3739. - result="hardAlpha"/>
  3740. - <feOffset dx="0.1" dy="0.1"/>
  3741. - <feGaussianBlur stdDeviation="0.5"/>
  3742. - <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
  3743. - <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3744. - <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
  3745. - </filter>
  3746. - <image id="macbook_image0" width="2536" height="1544"
  3747. - xlink:href="/images/preview/macbook/macbook.png"/>
  3748. - <image id="macbook_image1" width="490" height="245" :href="previewUrl"/>
  3749. - <image id="macbook_image2" width="980" height="880"
  3750. - xlink:href="/images/preview/macbook/like.png"/>
  3751. - <image id="macbook_image3" width="36" height="36"
  3752. - xlink:href="/images/preview/macbook/user.png"/>
  3753. - <image id="macbook_image4" width="512" height="512"
  3754. - xlink:href="/images/preview/macbook/next-icon.png"/>
  3755. - </defs>
  3756. - </svg>
  3757. -
  3758. + <defs>
  3759. + <pattern id="macbook_pattern0" patternContentUnits="objectBoundingBox" width="1"
  3760. + height="1">
  3761. + <use xlink:href="#macbook_image0"
  3762. + transform="translate(-0.000488477) scale(0.000394707 0.000647668)"/>
  3763. + </pattern>
  3764. + <pattern id="macbook_pattern1" patternContentUnits="objectBoundingBox" width="1"
  3765. + height="1">
  3766. + <use xlink:href="#macbook_image1"
  3767. + transform="translate(-0.06) scale(0.00228571 0.00408163)"/>
  3768. + </pattern>
  3769. + <pattern id="macbook_pattern2" patternContentUnits="objectBoundingBox" width="1"
  3770. + height="1">
  3771. + <use xlink:href="#macbook_image2"
  3772. + transform="translate(0 0.00612245) scale(0.00102041 0.00112245)"/>
  3773. + </pattern>
  3774. + <pattern id="macbook_pattern3" patternContentUnits="objectBoundingBox" width="1"
  3775. + height="1">
  3776. + <use xlink:href="#macbook_image3" transform="scale(0.0277778)"/>
  3777. + </pattern>
  3778. + <filter id="macbook_filter0_d" x="68.1" y="127.1" width="133.013" height="138"
  3779. + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3780. + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3781. + <feColorMatrix in="SourceAlpha" type="matrix"
  3782. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
  3783. + <feOffset dx="0.1" dy="0.1"/>
  3784. + <feGaussianBlur stdDeviation="1"/>
  3785. + <feColorMatrix type="matrix"
  3786. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3787. + <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
  3788. + <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow"
  3789. + result="shape"/>
  3790. + </filter>
  3791. + <filter id="macbook_filter1_d" x="230.093" y="127.1" width="133.013" height="138"
  3792. + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3793. + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3794. + <feColorMatrix in="SourceAlpha" type="matrix"
  3795. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
  3796. + <feOffset dx="0.1" dy="0.1"/>
  3797. + <feGaussianBlur stdDeviation="1"/>
  3798. + <feColorMatrix type="matrix"
  3799. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3800. + <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
  3801. + <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow"
  3802. + result="shape"/>
  3803. + </filter>
  3804. + <filter id="macbook_filter2_d" x="392.087" y="127.1" width="133.013" height="138"
  3805. + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3806. + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3807. + <feColorMatrix in="SourceAlpha" type="matrix"
  3808. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
  3809. + <feOffset dx="0.1" dy="0.1"/>
  3810. + <feGaussianBlur stdDeviation="1"/>
  3811. + <feColorMatrix type="matrix"
  3812. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3813. + <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
  3814. + <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow"
  3815. + result="shape"/>
  3816. + </filter>
  3817. + <pattern id="macbook_pattern4" patternContentUnits="objectBoundingBox" width="1"
  3818. + height="1">
  3819. + <use xlink:href="#macbook_image4" transform="scale(0.00195312)"/>
  3820. + </pattern>
  3821. + <pattern id="macbook_pattern5" patternContentUnits="objectBoundingBox" width="1"
  3822. + height="1">
  3823. + <use xlink:href="#macbook_image4"
  3824. + transform="translate(1 1) scale(0.00195313) rotate(180)"/>
  3825. + </pattern>
  3826. + <filter id="macbook_filter3_i" x="54" y="9" width="7.1" height="7.1"
  3827. + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3828. + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3829. + <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix"
  3830. + result="shape"/>
  3831. + <feColorMatrix in="SourceAlpha" type="matrix"
  3832. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
  3833. + result="hardAlpha"/>
  3834. + <feOffset dx="0.1" dy="0.1"/>
  3835. + <feGaussianBlur stdDeviation="0.5"/>
  3836. + <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
  3837. + <feColorMatrix type="matrix"
  3838. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3839. + <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
  3840. + </filter>
  3841. + <filter id="macbook_filter4_i" x="66" y="9" width="7.1" height="7.1"
  3842. + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3843. + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3844. + <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix"
  3845. + result="shape"/>
  3846. + <feColorMatrix in="SourceAlpha" type="matrix"
  3847. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
  3848. + result="hardAlpha"/>
  3849. + <feOffset dx="0.1" dy="0.1"/>
  3850. + <feGaussianBlur stdDeviation="0.5"/>
  3851. + <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
  3852. + <feColorMatrix type="matrix"
  3853. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3854. + <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
  3855. + </filter>
  3856. + <filter id="macbook_filter5_i" x="78" y="9" width="7.1" height="7.1"
  3857. + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
  3858. + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
  3859. + <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix"
  3860. + result="shape"/>
  3861. + <feColorMatrix in="SourceAlpha" type="matrix"
  3862. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
  3863. + result="hardAlpha"/>
  3864. + <feOffset dx="0.1" dy="0.1"/>
  3865. + <feGaussianBlur stdDeviation="0.5"/>
  3866. + <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
  3867. + <feColorMatrix type="matrix"
  3868. + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
  3869. + <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
  3870. + </filter>
  3871. + <image id="macbook_image0" width="2536" height="1544"
  3872. + xlink:href="/images/preview/macbook/macbook.png"/>
  3873. + <image id="macbook_image1" width="490" height="245" :href="previewUrl"/>
  3874. + <image id="macbook_image2" width="980" height="880"
  3875. + xlink:href="/images/preview/macbook/like.png"/>
  3876. + <image id="macbook_image3" width="36" height="36"
  3877. + xlink:href="/images/preview/macbook/user.png"/>
  3878. + <image id="macbook_image4" width="512" height="512"
  3879. + xlink:href="/images/preview/macbook/next-icon.png"/>
  3880. + </defs>
  3881. + </svg>
  3882. + </transition>
  3883. </div>
  3884. </swiper-slide>
  3885. <!-- Optional controls -->
  3886. @@ -460,7 +487,7 @@
  3887.  
  3888.  
  3889. let self = this;
  3890. - setTimeout(function() {
  3891. + setTimeout(function () {
  3892. self.previewUpdated = true;
  3893. self.previewUrl = previewUrl;
  3894. });
  3895. @@ -492,7 +519,7 @@
  3896. let colorsString = empty;
  3897. let count = this.colors.length - 1;
  3898.  
  3899. - this.colors.forEach(function(color, i) {
  3900. + this.colors.forEach(function (color, i) {
  3901. let delimiter = ', ';
  3902.  
  3903. if (i === count) {
  3904. @@ -507,74 +534,4 @@
  3905. },
  3906. },
  3907. };
  3908. -</script>
  3909. -
  3910. -<style scoped>
  3911. - @-webkit-keyframes jackInTheBox {
  3912. - from {
  3913. - opacity: 0;
  3914. - -webkit-transform: scale(0.1) rotate(30deg);
  3915. - transform: scale(0.1) rotate(30deg);
  3916. - -webkit-transform-origin: center bottom;
  3917. - transform-origin: center bottom;
  3918. - }
  3919. -
  3920. - 50% {
  3921. - -webkit-transform: rotate(-10deg);
  3922. - transform: rotate(-10deg);
  3923. - }
  3924. -
  3925. - 70% {
  3926. - -webkit-transform: rotate(3deg);
  3927. - transform: rotate(3deg);
  3928. - }
  3929. -
  3930. - to {
  3931. - opacity: 1;
  3932. - -webkit-transform: scale(1);
  3933. - transform: scale(1);
  3934. - }
  3935. - }
  3936. -
  3937. - @keyframes jackInTheBox {
  3938. - from {
  3939. - opacity: 0;
  3940. - -webkit-transform: scale(0.1) rotate(30deg);
  3941. - transform: scale(0.1) rotate(30deg);
  3942. - -webkit-transform-origin: center bottom;
  3943. - transform-origin: center bottom;
  3944. - }
  3945. -
  3946. - 50% {
  3947. - -webkit-transform: rotate(-10deg);
  3948. - transform: rotate(-10deg);
  3949. - }
  3950. -
  3951. - 70% {
  3952. - -webkit-transform: rotate(3deg);
  3953. - transform: rotate(3deg);
  3954. - }
  3955. -
  3956. - to {
  3957. - opacity: 1;
  3958. - -webkit-transform: scale(1);
  3959. - transform: scale(1);
  3960. - }
  3961. - }
  3962. -
  3963. - .jackInTheBox {
  3964. - -webkit-animation-name: jackInTheBox;
  3965. - animation-name: jackInTheBox;
  3966. - }
  3967. -
  3968. - .jackInTheBox-enter-active {
  3969. - animation: bounce-in 1s;
  3970. - -webkit-animation-name: jackInTheBox;
  3971. - animation-name: jackInTheBox;
  3972. - }
  3973. - .jackInTheBox-leave-active {
  3974. - animation: bounce-in 1s reverse;
  3975. - -webkit-animation-name: jackInTheBox;
  3976. - animation-name: jackInTheBox;
  3977. - }
  3978. -</style>
  3979. \ No newline at end of file
  3980. +</script>
  3981. \ No newline at end of file
  3982. Index: config/app.php
  3983. IDEA additional info:
  3984. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  3985. <+>UTF-8
  3986. ===================================================================
  3987. --- config/app.php (date 1556261584000)
  3988. +++ config/app.php (date 1556782116730)
  3989. @@ -13,7 +13,7 @@
  3990. |
  3991. */
  3992.  
  3993. - 'name' => env('APP_NAME', 'Laravel'),
  3994. + 'name' => env('APP_NAME', 'Logosos'),
  3995.  
  3996. /*
  3997. |--------------------------------------------------------------------------
  3998. @@ -160,6 +160,7 @@
  3999. App\Providers\EventServiceProvider::class,
  4000. App\Providers\RouteServiceProvider::class,
  4001. Laravel\Socialite\SocialiteServiceProvider::class,
  4002. + Snowfire\Beautymail\BeautymailServiceProvider::class,
  4003.  
  4004. ],
  4005.  
  4006. Index: config/services.php
  4007. IDEA additional info:
  4008. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  4009. <+>UTF-8
  4010. ===================================================================
  4011. --- config/services.php (date 1556261584000)
  4012. +++ config/services.php (date 1556782116750)
  4013. @@ -40,5 +40,10 @@
  4014. 'client_secret' => env('FACEBOOK_SECRET'),
  4015. 'redirect' => env('FACEBOOK_URL'),
  4016. ],
  4017. + 'google' => [
  4018. + 'client_id' => env('GOOGLE_ID'),
  4019. + 'client_secret' => env('GOOGLE_SECRET'),
  4020. + 'redirect' => env('GOOGLE_URL'),
  4021. + ],
  4022.  
  4023. ];
  4024. Index: resources/assets/js/components/elements/top-right-menu.vue
  4025. IDEA additional info:
  4026. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  4027. <+>UTF-8
  4028. ===================================================================
  4029. --- resources/assets/js/components/elements/top-right-menu.vue (date 1556261584000)
  4030. +++ resources/assets/js/components/elements/top-right-menu.vue (date 1556782116816)
  4031. @@ -1,29 +1,26 @@
  4032. <template>
  4033. - <div class="nav">
  4034. - <ul class="nav-menu" v-if="user">
  4035. - <li class="register-person">
  4036. - <span>{{ user.name }}</span>
  4037. - <svg width="7" height="5" viewBox="0 0 7 5" fill="none" xmlns="http://www.w3.org/2000/svg">
  4038. - <path d="M0.5 0.5L3.5 3.5L6.5 0.5" stroke="white" stroke-opacity="0.5"/>
  4039. - </svg>
  4040. - <ul class="submenu">
  4041. - <li>
  4042. - <a @click.prevent="idleClick($event)" href="/my-logotypes" class="submenu-link">
  4043. - <svg width="6" height="9" viewBox="0 0 6 9" fill="none" xmlns="http://www.w3.org/2000/svg">
  4044. - <path d="M5 0.5L1 4.5L5 8.5" stroke="black"/>
  4045. - </svg>
  4046. - My logotypes
  4047. - </a>
  4048. - <ul v-if="url.logotypes" class="submenu">
  4049. - <li v-for="(item, key) in url.logotypes">
  4050. - <a :href="item.url" :title="item.created_at">logo â„– {{ ++key }}</a>
  4051. - </li>
  4052. - </ul>
  4053. - </li>
  4054. - <li><a :href="url.logout">Logout</a></li>
  4055. - </ul>
  4056. - </li>
  4057. - </ul>
  4058. + <div class="top-right-menu">
  4059. + <!--<ul class="nav-menu" v-if="user">-->
  4060. + <!--<li class="register-person">-->
  4061. + <!--<span>{{ user.name }}</span>-->
  4062. + <!--<svg width="7" height="5" viewBox="0 0 7 5" fill="none" xmlns="http://www.w3.org/2000/svg">-->
  4063. + <!--<path d="M0.5 0.5L3.5 3.5L6.5 0.5" stroke="white" stroke-opacity="0.5"/>-->
  4064. + <!--</svg>-->
  4065. + <!--<ul class="submenu">-->
  4066. + <!--<li><a :href="url.profile">Profile</a></li>-->
  4067. + <!--<li><a :href="url.logout">Logout</a></li>-->
  4068. + <!--</ul>-->
  4069. + <!--</li>-->
  4070. + <!--</ul>-->
  4071. +
  4072. + <el-menu v-if="user" mode="horizontal" ref="top-right-menu">
  4073. + <el-submenu index="1">
  4074. + <template slot="title">{{ user.name }}</template>
  4075. + <el-menu-item @click="clickMenu(url.profile)">Profile</el-menu-item>
  4076. + <el-menu-item @click="clickMenu(url.logout)">Logout</el-menu-item>
  4077. + </el-submenu>
  4078. + </el-menu>
  4079. +
  4080. <div class="nav-button" v-else>
  4081. <a :href="url.login">
  4082. <button class="login">Login</button>
  4083. @@ -43,7 +40,7 @@
  4084. return {
  4085. user: window.user,
  4086. url: {
  4087. - logotypes: null,
  4088. + profile: route('client.profile.show'),
  4089. logout: route('logout'),
  4090. login: route('login'),
  4091. register: route('register'),
  4092. @@ -52,21 +49,15 @@
  4093. },
  4094.  
  4095. mounted() {
  4096. - this.loadMenu();
  4097. + //
  4098. },
  4099.  
  4100. methods: {
  4101. - loadMenu() {
  4102. - if (this.user) {
  4103. - Requester.get(route('user-logotypes.url-for-editor.get')).then((response) => {
  4104. - this.url.logotypes = response.data;
  4105. - })
  4106. - }
  4107. + clickMenu(routeName) {
  4108. + window.location.href = routeName;
  4109. },
  4110. - idleClick(e) {
  4111. - e.preventDefault(e);
  4112. -
  4113. - return false;
  4114. + closeMenu() {
  4115. + this.$refs['top-right-menu'].closeMenu();
  4116. }
  4117. }
  4118. }
  4119. Index: resources/assets/js/mixins/notifications.js
  4120. IDEA additional info:
  4121. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  4122. <+>UTF-8
  4123. ===================================================================
  4124. --- resources/assets/js/mixins/notifications.js (date 1556801690961)
  4125. +++ resources/assets/js/mixins/notifications.js (date 1556801690961)
  4126. @@ -0,0 +1,33 @@
  4127. +export default {
  4128. + mounted() {
  4129. + this.showNotification();
  4130. + },
  4131. +
  4132. + methods: {
  4133. + showNotification() {
  4134. + let type = this.getParameterByName('type');
  4135. + let message = this.getParameterByName('message');
  4136. +
  4137. + if (type && message) {
  4138. + setTimeout(() => {
  4139. + this.$notify({
  4140. + message: message,
  4141. + type: type,
  4142. + });
  4143. + }, 1000);
  4144. +
  4145. + window.history.replaceState(null, null, window.location.pathname);
  4146. + }
  4147. + },
  4148. +
  4149. + getParameterByName(name, url) {
  4150. + if (!url) url = window.location.href;
  4151. + name = name.replace(/[\[\]]/g, '\\$&');
  4152. + var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
  4153. + results = regex.exec(url);
  4154. + if (!results) return null;
  4155. + if (!results[2]) return '';
  4156. + return decodeURIComponent(results[2].replace(/\+/g, ' '));
  4157. + }
  4158. + }
  4159. +}
  4160. \ No newline at end of file
  4161. Index: resources/lang/en/passwords.php
  4162. IDEA additional info:
  4163. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  4164. <+>UTF-8
  4165. ===================================================================
  4166. --- resources/lang/en/passwords.php (date 1556261584000)
  4167. +++ resources/lang/en/passwords.php (date 1556782116942)
  4168. @@ -13,10 +13,11 @@
  4169. |
  4170. */
  4171.  
  4172. - 'password' => 'Passwords must be at least six characters and match the confirmation.',
  4173. - 'reset' => 'Your password has been reset!',
  4174. - 'sent' => 'We have e-mailed your password reset link!',
  4175. - 'token' => 'This password reset token is invalid.',
  4176. - 'user' => "We can't find a user with that e-mail address.",
  4177. + 'password' => 'Passwords must be at least six characters and match the confirmation.',
  4178. + 'reset' => 'Your password has been reset!',
  4179. + 'sent' => 'We have e-mailed your password reset link.',
  4180. + 'verification_sent' => 'We have e-mailed your email verification link.',
  4181. + 'token' => 'This password reset token is invalid.',
  4182. + 'user' => "We can't find a user with that e-mail address.",
  4183.  
  4184. ];
  4185. Index: resources/views/choose.blade.php
  4186. IDEA additional info:
  4187. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  4188. <+>UTF-8
  4189. ===================================================================
  4190. --- resources/views/choose.blade.php (date 1556261584000)
  4191. +++ resources/views/choose.blade.php (date 1556782116969)
  4192. @@ -6,13 +6,7 @@
  4193. <div class="row">
  4194. <header-page></header-page>
  4195. </div>
  4196. -
  4197. - <div class="row">
  4198. - <div class="col-12">
  4199. - <choose-logo></choose-logo>
  4200. - </div>
  4201. - </div>
  4202. -
  4203. + <choose-logo></choose-logo>
  4204. <div class="row">
  4205. <footer-page></footer-page>
  4206. </div>
  4207. Index: resources/views/chunks/service.blade.php
  4208. IDEA additional info:
  4209. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  4210. <+>UTF-8
  4211. ===================================================================
  4212. --- resources/views/chunks/service.blade.php (date 1556261584000)
  4213. +++ resources/views/chunks/service.blade.php (date 1556782116956)
  4214. @@ -1,3 +1,3 @@
  4215. -<script>
  4216. +<script type="text/javascript">
  4217. window.user = @json(auth()->user());
  4218. </script>
  4219. \ No newline at end of file
  4220. Index: routes/web.php
  4221. IDEA additional info:
  4222. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  4223. <+>UTF-8
  4224. ===================================================================
  4225. --- routes/web.php (date 1556261584000)
  4226. +++ routes/web.php (date 1556806350016)
  4227. @@ -3,6 +3,7 @@
  4228. use App\Http\Controllers\AdminController;
  4229. use App\Http\Controllers\Auth\LoginController;
  4230. use App\Http\Controllers\Auth\SocialAccountController;
  4231. +use App\Http\Controllers\ClientController;
  4232. use App\Http\Controllers\LogoController;
  4233.  
  4234. /*
  4235. @@ -16,8 +17,9 @@
  4236. |
  4237. */
  4238.  
  4239. -//Auth::routes(['verify' => true]);
  4240. -Auth::routes();
  4241. +Auth::routes(['verify' => true]);
  4242. +
  4243. +Route::post('email/resend', 'Auth\VerificationController@resend')->name('verification.resend');
  4244.  
  4245. Route::get('/logout', [LoginController::class, 'logout']);
  4246.  
  4247. @@ -50,12 +52,21 @@
  4248.  
  4249. Route::group(['middleware' => 'auth'], function () {
  4250. Route::get('get/{user_logo_hash}', [LogoController::class, 'getLogo'])->name('logotypes.get');
  4251. - Route::get('users/url-for-editor/get',
  4252. - [LogoController::class, 'getUrlsForEditor'])->name('user-logotypes.url-for-editor.get');
  4253. +
  4254. Route::post('save', [LogoController::class, 'saveLogo'])->name('logotypes.save');
  4255. });
  4256. });
  4257.  
  4258. +// Client routing
  4259. +Route::group(['middleware' => 'auth'], function () {
  4260. + Route::group(['prefix' => 'client'], function () {
  4261. + Route::get('profile', [ClientController::class, 'profile'])->name('client.profile.show');
  4262. + Route::post('profile', [ClientController::class, 'updateProfile'])->name('client.profile.update');
  4263. + Route::post('profile/password', [ClientController::class, 'updatePassword'])->name('client.profile.password.update');
  4264. + Route::get('logotypes/get', [ClientController::class, 'getClientLogotypes'])->name('client.logotypes.get');
  4265. + });
  4266. +});
  4267. +
  4268. // Admin routing
  4269. Route::group(['middleware' => 'auth', 'prefix' => 'admin'], function () {
  4270. Route::get('/', [AdminController::class, 'index'])->name('admin.index');
  4271. @@ -64,5 +75,27 @@
  4272. });
  4273.  
  4274. // Social auth routing
  4275. -Route::get('auth/{provider}', [SocialAccountController::class, 'redirectToProvider']);
  4276. -Route::get('auth/{provider}/callback', [SocialAccountController::class, 'handleProviderCallback']);
  4277. \ No newline at end of file
  4278. +Route::get('login/{provider}', [SocialAccountController::class, 'redirectToProvider']);
  4279. +Route::get('login/{provider}/callback', [SocialAccountController::class, 'handleProviderCallback']);
  4280. +
  4281. +
  4282. +
  4283. +Route::get('test', function() {
  4284. + $logo = \App\Models\UserLogo::first();
  4285. +
  4286. + $repo = app(\App\Repositories\LogotypeRepository::class);
  4287. + $repo->createPreview($logo->getLogoContent());
  4288. +
  4289. +
  4290. + dd('end');
  4291. +
  4292. +
  4293. +
  4294. + $svg = (new \App\Services\ImageConverter\SVG\SVG())->init('phantomjs', '222.svg');
  4295. + $svg->setFormat('png');
  4296. + $svg->convert();
  4297. + $f = $svg->save('outputfile.png');
  4298. +
  4299. + dd(base64_encode(file_get_contents((public_path('outputfile.png')))));
  4300. +
  4301. +});
  4302. \ No newline at end of file
  4303. Index: resources/assets/js/classes/svg-to-image.js
  4304. IDEA additional info:
  4305. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  4306. <+>UTF-8
  4307. ===================================================================
  4308. --- resources/assets/js/classes/svg-to-image.js (date 1556261584000)
  4309. +++ resources/assets/js/classes/svg-to-image.js (date 1556809514311)
  4310. @@ -1,266 +1,239 @@
  4311. -'use strict';
  4312. -
  4313. -(function () {
  4314. - var out$ = window;
  4315. - if (typeof define !== 'undefined') define('save-svg-as-png', [], function () {
  4316. - return out$;
  4317. - });
  4318. +(function() {
  4319. + const out$ = window;
  4320. + if (typeof define !== 'undefined') define('save-svg-as-png', [], () => out$);
  4321. out$.default = out$;
  4322.  
  4323. - var xmlns = 'http://www.w3.org/2000/xmlns/';
  4324. - var doctype = '<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [<!ENTITY nbsp "&#160;">]>';
  4325. - var urlRegex = /url\(["']?(.+?)["']?\)/;
  4326. - var fontFormats = {
  4327. + const xhtmlNs = 'http://www.w3.org/2000/xmlns/';
  4328. + const svgNs = 'http://www.w3.org/2000/svg';
  4329. + const doctype = '<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [<!ENTITY nbsp "&#160;">]>';
  4330. + const urlRegex = /url\(["']?(.+?)["']?\)/;
  4331. + const fontFormats = {
  4332. woff2: 'font/woff2',
  4333. woff: 'font/woff',
  4334. otf: 'application/x-font-opentype',
  4335. ttf: 'application/x-font-ttf',
  4336. eot: 'application/vnd.ms-fontobject',
  4337. sfnt: 'application/font-sfnt',
  4338. - svg: 'image/svg+xml'
  4339. + svg: 'image/svg+xml',
  4340. };
  4341.  
  4342. - var isElement = function isElement(obj) {
  4343. - return obj instanceof HTMLElement || obj instanceof SVGElement;
  4344. - };
  4345. - var requireDomNode = function requireDomNode(el) {
  4346. - if (!isElement(el)) throw new Error('an HTMLElement or SVGElement is required; got ' + el);
  4347. + const isElement = obj => obj instanceof HTMLElement || obj instanceof SVGElement;
  4348. + const requireDomNode = el => {
  4349. + if (!isElement(el)) throw new Error(`an HTMLElement or SVGElement is required; got ${el}`);
  4350. };
  4351. - var isExternal = function isExternal(url) {
  4352. - return url && url.lastIndexOf('http', 0) === 0 && url.lastIndexOf(window.location.host) === -1;
  4353. - };
  4354. + const isExternal = url => url && url.lastIndexOf('http', 0) === 0 && url.lastIndexOf(window.location.host) === -1;
  4355.  
  4356. - var getFontMimeTypeFromUrl = function getFontMimeTypeFromUrl(fontUrl) {
  4357. - var formats = Object.keys(fontFormats).filter(function (extension) {
  4358. - return fontUrl.indexOf('.' + extension) > 0;
  4359. - }).map(function (extension) {
  4360. - return fontFormats[extension];
  4361. - });
  4362. + const getFontMimeTypeFromUrl = fontUrl => {
  4363. + const formats = Object.keys(fontFormats).filter(extension => fontUrl.indexOf(`.${extension}`) > 0).map(extension => fontFormats[extension]);
  4364. if (formats) return formats[0];
  4365. - console.error('Unknown font format for ' + fontUrl + '. Fonts may not be working correctly.');
  4366. + console.error(`Unknown font format for ${fontUrl}. Fonts may not be working correctly.`);
  4367. return 'application/octet-stream';
  4368. };
  4369.  
  4370. - var arrayBufferToBase64 = function arrayBufferToBase64(buffer) {
  4371. - var binary = '';
  4372. - var bytes = new Uint8Array(buffer);
  4373. - for (var i = 0; i < bytes.byteLength; i++) {
  4374. - binary += String.fromCharCode(bytes[i]);
  4375. - }return window.btoa(binary);
  4376. + const arrayBufferToBase64 = buffer => {
  4377. + let binary = '';
  4378. + const bytes = new Uint8Array(buffer);
  4379. + for (let i = 0; i < bytes.byteLength; i++) binary += String.fromCharCode(bytes[i]);
  4380. + return window.btoa(binary);
  4381. };
  4382.  
  4383. - var getDimension = function getDimension(el, clone, dim) {
  4384. - var v = el.viewBox && el.viewBox.baseVal && el.viewBox.baseVal[dim] || clone.getAttribute(dim) !== null && !clone.getAttribute(dim).match(/%$/) && parseInt(clone.getAttribute(dim)) || el.getBoundingClientRect()[dim] || parseInt(clone.style[dim]) || parseInt(window.getComputedStyle(el).getPropertyValue(dim));
  4385. + const getDimension = (el, clone, dim) => {
  4386. + const v =
  4387. + (el.viewBox && el.viewBox.baseVal && el.viewBox.baseVal[dim]) ||
  4388. + (clone.getAttribute(dim) !== null && !clone.getAttribute(dim).match(/%$/) && parseInt(clone.getAttribute(dim))) ||
  4389. + el.getBoundingClientRect()[dim] ||
  4390. + parseInt(clone.style[dim]) ||
  4391. + parseInt(window.getComputedStyle(el).getPropertyValue(dim));
  4392. return typeof v === 'undefined' || v === null || isNaN(parseFloat(v)) ? 0 : v;
  4393. };
  4394.  
  4395. - var getDimensions = function getDimensions(el, clone, width, height) {
  4396. + const getDimensions = (el, clone, width, height) => {
  4397. if (el.tagName === 'svg') return {
  4398. width: width || getDimension(el, clone, 'width'),
  4399. - height: height || getDimension(el, clone, 'height')
  4400. - };else if (el.getBBox) {
  4401. - var _el$getBBox = el.getBBox(),
  4402. - x = _el$getBBox.x,
  4403. - y = _el$getBBox.y,
  4404. - _width = _el$getBBox.width,
  4405. - _height = _el$getBBox.height;
  4406. -
  4407. + height: height || getDimension(el, clone, 'height'),
  4408. + };
  4409. + else if (el.getBBox) {
  4410. + const {x, y, width, height} = el.getBBox();
  4411. return {
  4412. - width: x + _width,
  4413. - height: y + _height
  4414. + width: x + width,
  4415. + height: y + height,
  4416. };
  4417. }
  4418. };
  4419.  
  4420. - var reEncode = function reEncode(data) {
  4421. - return decodeURIComponent(encodeURIComponent(data).replace(/%([0-9A-F]{2})/g, function (match, p1) {
  4422. - var c = String.fromCharCode('0x' + p1);
  4423. - return c === '%' ? '%25' : c;
  4424. - }));
  4425. - };
  4426. + const reEncode = data =>
  4427. + decodeURIComponent(
  4428. + encodeURIComponent(data).replace(/%([0-9A-F]{2})/g, (match, p1) => {
  4429. + const c = String.fromCharCode(`0x${p1}`);
  4430. + return c === '%' ? '%25' : c;
  4431. + }),
  4432. + );
  4433.  
  4434. - var uriToBlob = function uriToBlob(uri) {
  4435. - var byteString = window.atob(uri.split(',')[1]);
  4436. - var mimeString = uri.split(',')[0].split(':')[1].split(';')[0];
  4437. - var buffer = new ArrayBuffer(byteString.length);
  4438. - var intArray = new Uint8Array(buffer);
  4439. - for (var i = 0; i < byteString.length; i++) {
  4440. - intArray[i] = byteString.charCodeAt(i);
  4441. - }
  4442. - return new Blob([buffer], { type: mimeString });
  4443. - };
  4444. -
  4445. - var query = function query(el, selector) {
  4446. + const query = (el, selector) => {
  4447. if (!selector) return;
  4448. try {
  4449. return el.querySelector(selector) || el.parentNode && el.parentNode.querySelector(selector);
  4450. } catch (err) {
  4451. - console.warn('Invalid CSS selector "' + selector + '"', err);
  4452. + console.warn(`Invalid CSS selector "${selector}"`, err);
  4453. }
  4454. };
  4455.  
  4456. - var detectCssFont = function detectCssFont(rule, href) {
  4457. - // Match CSS font-face rules to external links.
  4458. - var match = rule.cssText.match(urlRegex);
  4459. - var fontName = _.replace(rule.style.fontFamily, /"/g, "");
  4460. + const detectCssFont = (rule, href) => {
  4461. + const match = rule.cssText.match(urlRegex);
  4462. + const url = (match && match[1]) || '';
  4463. + let fontName = _.replace(rule.style.cssText.substr(0, rule.style.cssText.indexOf(';')), 'font-family: ', '');
  4464. + fontName = _.replace(fontName, /"/g, '');
  4465. + fontName = fontName.trim();
  4466.  
  4467. - var url = match && match[1] || '';
  4468. +
  4469. if (!url || url.match(/^data:/) || url === 'about:blank') return;
  4470. - var fullUrl = url.startsWith('../') ? href + '/../' + url : url.startsWith('./') ? href + '/.' + url : url;
  4471. -
  4472. + const fullUrl =
  4473. + url.startsWith('../') ? `${href}/../${url}`
  4474. + : url.startsWith('./') ? `${href}/.${url}`
  4475. + : url;
  4476. return {
  4477. text: rule.cssText,
  4478. format: getFontMimeTypeFromUrl(fullUrl),
  4479. url: fullUrl,
  4480. - fontName: fontName
  4481. + fontName: fontName,
  4482. };
  4483. };
  4484.  
  4485. - var inlineImages = function inlineImages(el) {
  4486. - return Promise.all(Array.from(el.querySelectorAll('image')).map(function (image) {
  4487. - var href = image.getAttributeNS('http://www.w3.org/1999/xlink', 'href') || image.getAttribute('href');
  4488. - if (!href) return Promise.resolve(null);
  4489. - if (isExternal(href)) {
  4490. - href += (href.indexOf('?') === -1 ? '?' : '&') + 't=' + new Date().valueOf();
  4491. - }
  4492. - return new Promise(function (resolve, reject) {
  4493. - var canvas = document.createElement('canvas');
  4494. - var img = new Image();
  4495. - img.crossOrigin = 'anonymous';
  4496. - img.src = href;
  4497. - img.onerror = function () {
  4498. - return reject(new Error('Could not load ' + href));
  4499. - };
  4500. - img.onload = function () {
  4501. - canvas.width = img.width;
  4502. - canvas.height = img.height;
  4503. - canvas.getContext('2d').drawImage(img, 0, 0);
  4504. - image.setAttributeNS('http://www.w3.org/1999/xlink', 'href', canvas.toDataURL('image/png'));
  4505. - resolve(true);
  4506. - };
  4507. - });
  4508. - }));
  4509. - };
  4510. + const inlineImages = el => Promise.all(
  4511. + Array.from(el.querySelectorAll('image')).map(image => {
  4512. + let href = image.getAttributeNS('http://www.w3.org/1999/xlink', 'href') || image.getAttribute('href');
  4513. + if (!href) return Promise.resolve(null);
  4514. + if (isExternal(href)) {
  4515. + href += (href.indexOf('?') === -1 ? '?' : '&') + 't=' + new Date().valueOf();
  4516. + }
  4517. + return new Promise((resolve, reject) => {
  4518. + const canvas = document.createElement('canvas');
  4519. + const img = new Image();
  4520. + img.crossOrigin = 'anonymous';
  4521. + img.src = href;
  4522. + img.onerror = () => reject(new Error(`Could not load ${href}`));
  4523. + img.onload = () => {
  4524. + canvas.width = img.width;
  4525. + canvas.height = img.height;
  4526. + canvas.getContext('2d').drawImage(img, 0, 0);
  4527. + image.setAttributeNS('http://www.w3.org/1999/xlink', 'href', canvas.toDataURL('image/png'));
  4528. + resolve(true);
  4529. + };
  4530. + });
  4531. + }),
  4532. + );
  4533.  
  4534. - var cachedFonts = {};
  4535. - var inlineFonts = function inlineFonts(fonts) {
  4536. - return Promise.all(fonts.map(function (font) {
  4537. - return new Promise(function (resolve, reject) {
  4538. - if (cachedFonts[font.url]) return resolve(cachedFonts[font.url]);
  4539. -
  4540. - var req = new XMLHttpRequest();
  4541. - req.addEventListener('load', function () {
  4542. - // TODO: it may also be worth it to wait until fonts are fully loaded before
  4543. - // attempting to rasterize them. (e.g. use https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet)
  4544. - var fontInBase64 = arrayBufferToBase64(req.response);
  4545. - var fontUri = font.text.replace(urlRegex, 'url("data:' + font.format + ';base64,' + fontInBase64 + '")') + '\n';
  4546. - cachedFonts[font.url] = fontUri;
  4547. - resolve(fontUri);
  4548. - });
  4549. - req.addEventListener('error', function (e) {
  4550. - console.warn('Failed to load font from: ' + font.url, e);
  4551. - cachedFonts[font.url] = null;
  4552. - resolve(null);
  4553. - });
  4554. - req.addEventListener('abort', function (e) {
  4555. - console.warn('Aborted loading font from: ' + font.url, e);
  4556. - resolve(null);
  4557. - });
  4558. - req.open('GET', font.url);
  4559. - req.responseType = 'arraybuffer';
  4560. - req.send();
  4561. - });
  4562. - })).then(function (fontCss) {
  4563. - return fontCss.filter(function (x) {
  4564. - return x;
  4565. - }).join('');
  4566. - });
  4567. - };
  4568. + const cachedFonts = {};
  4569. + const inlineFonts = fonts => Promise.all(
  4570. + fonts.map(font =>
  4571. + new Promise((resolve, reject) => {
  4572. + if (cachedFonts[font.url]) return resolve(cachedFonts[font.url]);
  4573. + const req = new XMLHttpRequest();
  4574. + req.addEventListener('load', () => {
  4575. + // TODO: it may also be worth it to wait until fonts are fully loaded before
  4576. + // attempting to rasterize them. (e.g. use https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet)
  4577. + const fontInBase64 = arrayBufferToBase64(req.response);
  4578. + const fontUri = font.text.replace(urlRegex, `url("data:${font.format};base64,${fontInBase64}")`) + '\n';
  4579. +
  4580. + cachedFonts[font.url] = fontUri;
  4581. + resolve(fontUri);
  4582. + });
  4583. + req.addEventListener('error', e => {
  4584. + console.warn(`Failed to load font from: ${font.url}`, e);
  4585. + cachedFonts[font.url] = null;
  4586. + resolve(null);
  4587. + });
  4588. + req.addEventListener('abort', e => {
  4589. + console.warn(`Aborted loading font from: ${font.url}`, e);
  4590. + resolve(null);
  4591. + });
  4592. + req.open('GET', font.url);
  4593. + req.responseType = 'arraybuffer';
  4594. + req.send();
  4595. + }),
  4596. + ),
  4597. + ).then(fontCss => fontCss.filter(x => x).join(''));
  4598.  
  4599. - var cachedRules = null;
  4600. - var styleSheetRules = function styleSheetRules() {
  4601. + let cachedRules = null;
  4602. + const styleSheetRules = () => {
  4603. if (cachedRules) return cachedRules;
  4604. - return cachedRules = Array.from(document.styleSheets).map(function (sheet) {
  4605. +
  4606. + let styles = Array.from(document.styleSheets).filter(function(style) {
  4607. + return style.href && style.href.substr(-9) === 'fonts.css';
  4608. + });
  4609. +
  4610. + return cachedRules = styles.map(sheet => {
  4611. try {
  4612. - return { rules: sheet.cssRules, href: sheet.href };
  4613. + return {rules: sheet.cssRules, href: sheet.href};
  4614. } catch (e) {
  4615. - console.warn('Stylesheet could not be loaded: ' + sheet.href, e);
  4616. + console.warn(`Stylesheet could not be loaded: ${sheet.href}`, e);
  4617. return {};
  4618. }
  4619. });
  4620. };
  4621.  
  4622. - var inlineCss = function inlineCss(el, options) {
  4623. - var _ref = options || {},
  4624. - selectorRemap = _ref.selectorRemap,
  4625. - modifyStyle = _ref.modifyStyle,
  4626. - modifyCss = _ref.modifyCss,
  4627. - fonts = _ref.fonts;
  4628. + const inlineCss = (el, options) => {
  4629. + const {
  4630. + selectorRemap,
  4631. + modifyStyle,
  4632. + modifyCss,
  4633. + fonts,
  4634. + } = options || {};
  4635. + const generateCss = modifyCss || ((selector, properties) => {
  4636. + const sel = selectorRemap ? selectorRemap(selector) : selector;
  4637. + const props = modifyStyle ? modifyStyle(properties) : properties;
  4638. + return `${sel}{${props}}\n`;
  4639. + });
  4640. + const css = [];
  4641. + const detectFonts = typeof fonts === 'undefined';
  4642. + const fontList = fonts || [];
  4643.  
  4644. - var generateCss = modifyCss || function (selector, properties) {
  4645. - var sel = selectorRemap ? selectorRemap(selector) : selector;
  4646. - var props = modifyStyle ? modifyStyle(properties) : properties;
  4647. - return sel + '{' + props + '}\n';
  4648. - };
  4649. - var css = [];
  4650. - var detectFonts = typeof fonts === 'undefined';
  4651. - var fontList = fonts || [];
  4652. - styleSheetRules().forEach(function (_ref2) {
  4653. - var rules = _ref2.rules,
  4654. - href = _ref2.href;
  4655. -
  4656. + styleSheetRules().forEach(({rules, href}) => {
  4657. if (!rules) return;
  4658. - Array.from(rules).forEach(function (rule) {
  4659. + Array.from(rules).forEach(rule => {
  4660. if (typeof rule.style != 'undefined') {
  4661. - if (query(el, rule.selectorText)) css.push(generateCss(rule.selectorText, rule.style.cssText));else if (detectFonts && rule.cssText.match(/^@font-face/)) {
  4662. - var font = detectCssFont(rule, href);
  4663. - var innerHtml = el.outerHTML;
  4664. + if (query(el, rule.selectorText)) css.push(generateCss(rule.selectorText, rule.style.cssText));
  4665. + else if (detectFonts && rule.cssText.match(/^@font-face/)) {
  4666. + const font = detectCssFont(rule, href);
  4667. + const innerHtml = el.outerHTML;
  4668.  
  4669. - if (innerHtml.toLowerCase().indexOf(font.fontName.toLowerCase()) !== -1) {
  4670. - if (font) fontList.push(font);
  4671. + if (innerHtml && font.fontName) {
  4672. + if (innerHtml.toLowerCase().indexOf('"'+font.fontName.toLowerCase()) !== -1) {
  4673. + if (font) fontList.push(font);
  4674. + }
  4675. }
  4676. - } else css.push(rule.cssText);
  4677. + } else {
  4678. + css.push(rule.cssText);
  4679. + }
  4680. }
  4681. });
  4682. });
  4683.  
  4684. - return inlineFonts(fontList).then(function (fontCss) {
  4685. - return css.join('\n') + fontCss;
  4686. - });
  4687. + return inlineFonts(fontList).then(fontCss => css.join('\n') + fontCss);
  4688. };
  4689.  
  4690. - out$.prepareSvg = function (el, options, done) {
  4691. + out$.prepareSvg = (el, options, done) => {
  4692. requireDomNode(el);
  4693. -
  4694. - var _ref3 = options || {},
  4695. - _ref3$left = _ref3.left,
  4696. - left = _ref3$left === undefined ? 0 : _ref3$left,
  4697. - _ref3$top = _ref3.top,
  4698. - top = _ref3$top === undefined ? 0 : _ref3$top,
  4699. - w = _ref3.width,
  4700. - h = _ref3.height,
  4701. - _ref3$scale = _ref3.scale,
  4702. - scale = _ref3$scale === undefined ? 1 : _ref3$scale,
  4703. - _ref3$responsive = _ref3.responsive,
  4704. - responsive = _ref3$responsive === undefined ? false : _ref3$responsive;
  4705. -
  4706. - return inlineImages(el).then(function () {
  4707. - var clone = el.cloneNode(true);
  4708. -
  4709. - var _ref4 = options || {},
  4710. - _ref4$backgroundColor = _ref4.backgroundColor,
  4711. - backgroundColor = _ref4$backgroundColor === undefined ? 'transparent' : _ref4$backgroundColor;
  4712. + const {
  4713. + left = 0,
  4714. + top = 0,
  4715. + width: w,
  4716. + height: h,
  4717. + scale = 1,
  4718. + responsive = false,
  4719. + } = options || {};
  4720.  
  4721. - clone.style.backgroundColor = backgroundColor;
  4722. -
  4723. - var _getDimensions = getDimensions(el, clone, w, h),
  4724. - width = _getDimensions.width,
  4725. - height = _getDimensions.height;
  4726. + return inlineImages(el).then(() => {
  4727. + let clone = el.cloneNode(true);
  4728. + clone.style.backgroundColor = (options || {}).backgroundColor || el.style.backgroundColor;
  4729. + const {width, height} = getDimensions(el, clone, w, h);
  4730.  
  4731. if (el.tagName !== 'svg') {
  4732. if (el.getBBox) {
  4733. - clone.setAttribute('transform', clone.getAttribute('transform').replace(/translate\(.*?\)/, ''));
  4734. - var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
  4735. + if (clone.getAttribute('transform') != null) {
  4736. + clone.setAttribute('transform', clone.getAttribute('transform').replace(/translate\(.*?\)/, ''));
  4737. + }
  4738. + const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
  4739. svg.appendChild(clone);
  4740. clone = svg;
  4741. } else {
  4742. @@ -271,8 +244,8 @@
  4743.  
  4744. clone.setAttribute('version', '1.1');
  4745. clone.setAttribute('viewBox', [left, top, width, height].join(' '));
  4746. - if (!clone.getAttribute('xmlns')) clone.setAttributeNS(xmlns, 'xmlns', 'http://www.w3.org/2000/svg');
  4747. - if (!clone.getAttribute('xmlns:xlink')) clone.setAttributeNS(xmlns, 'xmlns:xlink', 'http://www.w3.org/1999/xlink');
  4748. + if (!clone.getAttribute('xmlns')) clone.setAttributeNS(xhtmlNs, 'xmlns', svgNs);
  4749. + if (!clone.getAttribute('xmlns:xlink')) clone.setAttributeNS(xhtmlNs, 'xmlns:xlink', 'http://www.w3.org/1999/xlink');
  4750.  
  4751. if (responsive) {
  4752. clone.removeAttribute('width');
  4753. @@ -283,76 +256,70 @@
  4754. clone.setAttribute('height', height * scale);
  4755. }
  4756.  
  4757. - Array.from(clone.querySelectorAll('foreignObject > *')).forEach(function (foreignObject) {
  4758. - if (!foreignObject.getAttribute('xmlns')) foreignObject.setAttributeNS(xmlns, 'xmlns', 'http://www.w3.org/1999/xhtml');
  4759. + Array.from(clone.querySelectorAll('foreignObject > *')).forEach(foreignObject => {
  4760. + if (foreignObject.tagName === 'svg')
  4761. + foreignObject.setAttributeNS(xhtmlNs, 'xmlns', svgNs);
  4762. + else if (!foreignObject.getAttribute('xmlns'))
  4763. + foreignObject.setAttributeNS(xhtmlNs, 'xmlns', xhtmlNs);
  4764. });
  4765.  
  4766. - return inlineCss(el, options).then(function (css) {
  4767. - var style = document.createElement('style');
  4768. + return inlineCss(el, options).then(css => {
  4769. + const style = document.createElement('style');
  4770. style.setAttribute('type', 'text/css');
  4771. - style.innerHTML = '<![CDATA[\n' + css + '\n]]>';
  4772. + style.innerHTML = `<![CDATA[\n${css}\n]]>`;
  4773.  
  4774. - var defs = document.createElement('defs');
  4775. + const defs = document.createElement('defs');
  4776. defs.appendChild(style);
  4777. clone.insertBefore(defs, clone.firstChild);
  4778.  
  4779. - var outer = document.createElement('div');
  4780. + const outer = document.createElement('div');
  4781. outer.appendChild(clone);
  4782. - var src = outer.innerHTML.replace(/NS\d+:href/gi, 'xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href');
  4783. + const src = outer.innerHTML.replace(/NS\d+:href/gi, 'xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href');
  4784.  
  4785. - if (typeof done === 'function') done(src, width, height);else return { src: src, width: width, height: height };
  4786. + if (typeof done === 'function') done(src, width, height);
  4787. + else return {src, width, height};
  4788. });
  4789. });
  4790. };
  4791.  
  4792. - out$.svgAsDataUri = function (el, options, done) {
  4793. + out$.svgAsDataUri = (el, options, done) => {
  4794. requireDomNode(el);
  4795. - var result = out$.prepareSvg(el, options).then(function (_ref5) {
  4796. - var src = _ref5.src,
  4797. - width = _ref5.width,
  4798. - height = _ref5.height;
  4799. -
  4800. - var svgXml = 'data:image/svg+xml;base64,' + window.btoa(reEncode(doctype + src));
  4801. + return out$.prepareSvg(el, options).then(({src, width, height}) => {
  4802. + const svgXml = `data:image/svg+xml;base64,${window.btoa(reEncode(doctype + src))}`;
  4803. if (typeof done === 'function') {
  4804. done(svgXml, width, height);
  4805. }
  4806. return svgXml;
  4807. });
  4808. - return result;
  4809. };
  4810.  
  4811. - out$.svgAsPngUri = function (el, options, done) {
  4812. + out$.svgAsPngUri = (el, options, done) => {
  4813. requireDomNode(el);
  4814. -
  4815. - var _ref6 = options || {},
  4816. - _ref6$encoderType = _ref6.encoderType,
  4817. - encoderType = _ref6$encoderType === undefined ? 'image/png' : _ref6$encoderType,
  4818. - _ref6$encoderOptions = _ref6.encoderOptions,
  4819. - encoderOptions = _ref6$encoderOptions === undefined ? 0.8 : _ref6$encoderOptions,
  4820. - canvg = _ref6.canvg;
  4821. + const {
  4822. + encoderType = 'image/png',
  4823. + encoderOptions = 0.0001,
  4824. + canvg,
  4825. + } = options || {};
  4826.  
  4827. - var convertToPng = function convertToPng(_ref7) {
  4828. - var src = _ref7.src,
  4829. - width = _ref7.width,
  4830. - height = _ref7.height;
  4831. -
  4832. - var canvas = document.createElement('canvas');
  4833. - var context = canvas.getContext('2d');
  4834. - var pixelRatio = window.devicePixelRatio || 1;
  4835. + const convertToPng = ({src, width, height}) => {
  4836. + const canvas = document.createElement('canvas');
  4837. + const context = canvas.getContext('2d');
  4838. + const pixelRatio = window.devicePixelRatio || 1;
  4839.  
  4840. canvas.width = width * pixelRatio;
  4841. canvas.height = height * pixelRatio;
  4842. - canvas.style.width = canvas.width + 'px';
  4843. - canvas.style.height = canvas.height + 'px';
  4844. + canvas.style.width = `${canvas.width}px`;
  4845. + canvas.style.height = `${canvas.height}px`;
  4846. context.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);
  4847.  
  4848. - if (canvg) canvg(canvas, src);else context.drawImage(src, 0, 0);
  4849. + if (canvg) canvg(canvas, src);
  4850. + else context.drawImage(src, 0, 0);
  4851.  
  4852. - var png = void 0;
  4853. + let png;
  4854. try {
  4855. png = canvas.toDataURL(encoderType, encoderOptions);
  4856. } catch (e) {
  4857. - if (typeof SecurityError !== 'undefined' && e instanceof SecurityError || e.name === 'SecurityError') {
  4858. + if ((typeof SecurityError !== 'undefined' && e instanceof SecurityError) || e.name === 'SecurityError') {
  4859. console.error('Rendered SVG images cannot be downloaded in this browser.');
  4860. return;
  4861. } else throw e;
  4862. @@ -361,63 +328,21 @@
  4863. return Promise.resolve(png);
  4864. };
  4865.  
  4866. - if (canvg) return out$.prepareSvg(el, options).then(convertToPng);else return out$.svgAsDataUri(el, options).then(function (uri) {
  4867. - return new Promise(function (resolve, reject) {
  4868. - var image = new Image();
  4869. - image.onload = function () {
  4870. - return resolve(convertToPng({
  4871. - src: image,
  4872. - width: image.width,
  4873. - height: image.height
  4874. - }));
  4875. - };
  4876. - image.onerror = function () {
  4877. - reject('There was an error loading the data URI as an image on the following SVG\n' + window.atob(uri.slice(26)) + 'Open the following link to see browser\'s diagnosis\n' + uri);
  4878. + if (canvg) return out$.prepareSvg(el, options).then(convertToPng);
  4879. +
  4880. + else return out$.svgAsDataUri(el, options).then(uri => {
  4881. + return new Promise((resolve, reject) => {
  4882. + const image = new Image();
  4883. + image.onload = () => resolve(convertToPng({
  4884. + src: image,
  4885. + width: image.width,
  4886. + height: image.height,
  4887. + }));
  4888. + image.onerror = () => {
  4889. + reject(`There was an error loading the data URI as an image on the following SVG\n${window.atob(uri.slice(26))}Open the following link to see browser's diagnosis\n${uri}`);
  4890. };
  4891. image.src = uri;
  4892. });
  4893. });
  4894. };
  4895. -
  4896. - out$.download = function (name, uri) {
  4897. - if (navigator.msSaveOrOpenBlob) navigator.msSaveOrOpenBlob(uriToBlob(uri), name);else {
  4898. - var saveLink = document.createElement('a');
  4899. - if ('download' in saveLink) {
  4900. - saveLink.download = name;
  4901. - saveLink.style.display = 'none';
  4902. - document.body.appendChild(saveLink);
  4903. - try {
  4904. - var blob = uriToBlob(uri);
  4905. - var url = URL.createObjectURL(blob);
  4906. - saveLink.href = url;
  4907. - saveLink.onclick = function () {
  4908. - return requestAnimationFrame(function () {
  4909. - return URL.revokeObjectURL(url);
  4910. - });
  4911. - };
  4912. - } catch (e) {
  4913. - console.warn('This browser does not support object URLs. Falling back to string URL.');
  4914. - saveLink.href = uri;
  4915. - }
  4916. - saveLink.click();
  4917. - document.body.removeChild(saveLink);
  4918. - } else {
  4919. - window.open(uri, '_temp', 'menubar=no,toolbar=no,status=no');
  4920. - }
  4921. - }
  4922. - };
  4923. -
  4924. - out$.saveSvg = function (el, name, options) {
  4925. - requireDomNode(el);
  4926. - out$.svgAsDataUri(el, options || {}, function (uri) {
  4927. - return out$.download(name, uri);
  4928. - });
  4929. - };
  4930. -
  4931. - out$.saveSvgAsPng = function (el, name, options) {
  4932. - requireDomNode(el);
  4933. - out$.svgAsPngUri(el, options || {}, function (uri) {
  4934. - return out$.download(name, uri);
  4935. - });
  4936. - };
  4937. })();
  4938. \ No newline at end of file
  4939. Index: public/fonts/css/fonts.css
  4940. IDEA additional info:
  4941. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  4942. <+>UTF-8
  4943. ===================================================================
  4944. --- public/fonts/css/fonts.css (date 1556261584000)
  4945. +++ public/fonts/css/fonts.css (date 1556782116766)
  4946. @@ -733,6 +733,13 @@
  4947. src: url("../poppins.ttf") format('truetype');
  4948. }
  4949.  
  4950. +@font-face {
  4951. + font-family: 'Poppins';
  4952. + font-style: normal;
  4953. + font-weight: 400;
  4954. + src: url("../poppins.woff") format('truetype');
  4955. +}
  4956. +
  4957. @font-face {
  4958. font-family: 'Quantico';
  4959. font-style: normal;
  4960. @@ -754,6 +761,13 @@
  4961. src: url("../raleway.ttf") format('truetype');
  4962. }
  4963.  
  4964. +@font-face {
  4965. + font-family: 'Raleway';
  4966. + font-style: normal;
  4967. + font-weight: 400;
  4968. + src: url("../raleway.woff") format('truetype');
  4969. +}
  4970. +
  4971. @font-face {
  4972. font-family: 'Rationale';
  4973. font-style: normal;
  4974. Index: app/Http/Controllers/LogoController.php
  4975. IDEA additional info:
  4976. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  4977. <+>UTF-8
  4978. ===================================================================
  4979. --- app/Http/Controllers/LogoController.php (date 1556261584000)
  4980. +++ app/Http/Controllers/LogoController.php (date 1556782116629)
  4981. @@ -11,6 +11,27 @@
  4982.  
  4983. class LogoController extends Controller
  4984. {
  4985. +
  4986. + /**
  4987. + * @var LogotypeRepository
  4988. + */
  4989. + protected $logotype;
  4990. +
  4991. + /**
  4992. + * @var mixed
  4993. + */
  4994. + protected $company;
  4995. +
  4996. + /**
  4997. + * @var UserLogoRepository
  4998. + */
  4999. + protected $userLogo;
  5000. +
  5001. + /**
  5002. + * @var FontRepository
  5003. + */
  5004. + protected $fonts;
  5005. +
  5006. /**
  5007. * LogoController constructor.
  5008. *
  5009. @@ -114,12 +135,4 @@
  5010.  
  5011. return response()->json($this->logotype->getPreviewPaths($loadedLogos));
  5012. }
  5013. -
  5014. - /**
  5015. - * @return \Illuminate\Http\JsonResponse
  5016. - */
  5017. - public function getUrlsForEditor()
  5018. - {
  5019. - return response()->json($this->userLogo->getUrlsForEditor());
  5020. - }
  5021. }
  5022. \ No newline at end of file
  5023. Index: resources/assets/js/components/logo-hover.vue
  5024. IDEA additional info:
  5025. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  5026. <+>UTF-8
  5027. ===================================================================
  5028. --- resources/assets/js/components/logo-hover.vue (date 1556261584000)
  5029. +++ resources/assets/js/components/logo-hover.vue (date 1556782116887)
  5030. @@ -29,13 +29,15 @@
  5031.  
  5032. methods: {
  5033. setColors() {
  5034. - Vibrant.from(this.previewUrl).getSwatches().then((swatches) => {
  5035. - // Set colors
  5036. - for (var swatch in swatches) {
  5037. - if (swatches.hasOwnProperty(swatch) && swatches[swatch]) {
  5038. - this.colors.push(swatches[swatch].getHex());
  5039. - }
  5040. - }
  5041. + setTimeout(() => {
  5042. + Vibrant.from(this.previewUrl).getSwatches().then((swatches) => {
  5043. + // Set colors
  5044. + for (var swatch in swatches) {
  5045. + if (swatches.hasOwnProperty(swatch) && swatches[swatch]) {
  5046. + this.colors.push(swatches[swatch].getHex());
  5047. + }
  5048. + }
  5049. + });
  5050. });
  5051. }
  5052. }
  5053. Index: resources/assets/sass/_auth.scss
  5054. IDEA additional info:
  5055. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  5056. <+>UTF-8
  5057. ===================================================================
  5058. --- resources/assets/sass/_auth.scss (date 1556261584000)
  5059. +++ resources/assets/sass/_auth.scss (date 1556782116921)
  5060. @@ -167,10 +167,10 @@
  5061. &.error {
  5062. position: relative;
  5063. input {
  5064. - border-color: #D8000C;
  5065. + border-color: #F56C6C;
  5066. }
  5067. .error-block {
  5068. - color: #D8000C;
  5069. + color: #F56C6C;
  5070. font-size: 13px;
  5071. }
  5072. &:after {
  5073. Index: resources/assets/js/components/login.vue
  5074. IDEA additional info:
  5075. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  5076. <+>UTF-8
  5077. ===================================================================
  5078. --- resources/assets/js/components/login.vue (date 1556261584000)
  5079. +++ resources/assets/js/components/login.vue (date 1556801918232)
  5080. @@ -10,22 +10,22 @@
  5081. <form action="/login" method="post">
  5082. <span class="title">Log in</span>
  5083. <div class="social">
  5084. - <span class="facebook">
  5085. + <a href="/login/facebook" class="facebook">
  5086. <span class="icon">
  5087. <svg width="8" height="15" viewBox="0 0 8 15" fill="none" xmlns="http://www.w3.org/2000/svg">
  5088. <path d="M2.10547 14.75V8.48828H0V6H2.10547V4.03125C2.10547 2.99219 2.39714 2.1901 2.98047 1.625C3.5638 1.04167 4.33854 0.75 5.30469 0.75C6.08854 0.75 6.72656 0.786458 7.21875 0.859375V3.07422H5.90625C5.41406 3.07422 5.07682 3.18359 4.89453 3.40234C4.7487 3.58464 4.67578 3.8763 4.67578 4.27734V6H7L6.67188 8.48828H4.67578V14.75H2.10547Z" fill="white"/>
  5089. </svg>
  5090. </span>
  5091. <span class="name-button">Facebook</span>
  5092. - </span>
  5093. - <span class="google-plus">
  5094. + </a>
  5095. + <a href="/login/google" class="google-plus">
  5096. <span class="icon">
  5097. <svg width="18" height="11" viewBox="0 0 18 11" fill="none" xmlns="http://www.w3.org/2000/svg">
  5098. <path d="M10.5547 4.98438C10.6094 5.29427 10.6367 5.58594 10.6367 5.85938C10.6367 6.86198 10.4271 7.75521 10.0078 8.53906C9.58854 9.30469 8.99609 9.90625 8.23047 10.3438C7.46484 10.7812 6.58984 11 5.60547 11C4.65755 11 3.77344 10.763 2.95312 10.2891C2.15104 9.8151 1.51302 9.17708 1.03906 8.375C0.583333 7.57292 0.355469 6.69792 0.355469 5.75C0.355469 4.80208 0.583333 3.92708 1.03906 3.125C1.51302 2.32292 2.15104 1.6849 2.95312 1.21094C3.77344 0.736979 4.65755 0.5 5.60547 0.5C6.97266 0.5 8.13932 0.955729 9.10547 1.86719L7.68359 3.23438C7.13672 2.70573 6.44401 2.44141 5.60547 2.44141C5.02214 2.44141 4.47526 2.58724 3.96484 2.87891C3.47266 3.17057 3.08073 3.57161 2.78906 4.08203C2.4974 4.59245 2.35156 5.14844 2.35156 5.75C2.35156 6.35156 2.4974 6.90755 2.78906 7.41797C3.08073 7.92839 3.47266 8.32943 3.96484 8.62109C4.47526 8.91276 5.02214 9.05859 5.60547 9.05859C6.24349 9.05859 6.79948 8.92188 7.27344 8.64844C7.65625 8.42969 7.96615 8.11979 8.20312 7.71875C8.40365 7.40885 8.53125 7.10807 8.58594 6.81641H5.60547V4.98438H10.5547ZM15.6133 5.17578V3.64453H14.082V5.17578H12.5781V6.70703H14.082V8.23828H15.6133V6.70703H17.1445V5.17578H15.6133Z" fill="white"/>
  5099. </svg>
  5100. </span>
  5101. <span class="name-button">Google+</span>
  5102. - </span>
  5103. + </a>
  5104. </div>
  5105. <span class="or">
  5106. or
  5107. Index: resources/assets/js/vue.js
  5108. IDEA additional info:
  5109. Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
  5110. <+>UTF-8
  5111. ===================================================================
  5112. --- resources/assets/js/vue.js (date 1556261584000)
  5113. +++ resources/assets/js/vue.js (date 1556801807775)
  5114. @@ -28,11 +28,17 @@
  5115. // Admin components
  5116. Vue.component('import-logo', require('./components/admin/import-logo.vue'));
  5117.  
  5118. +// Client components
  5119. +Vue.component('profile', require('./components/client/profile'));
  5120. +
  5121. Vue.config.devtools = true;
  5122. Vue.config.debug = true;
  5123. Vue.config.silent = false;
  5124. Vue.config.productionTip = true;
  5125.  
  5126. +import notifications from './mixins/notifications';
  5127. +
  5128. const app = new Vue({
  5129. - el: '#app'
  5130. + el: '#app',
  5131. + mixins: [notifications]
  5132. });
  5133. \ No newline at end of file
  5134. diff --git public/fonts/vendor/element-ui/lib/theme-chalk/element-icons.woff public/fonts/vendor/element-ui/lib/theme-chalk/element-icons.woff
  5135. new file mode 100644
  5136. index 0000000000000000000000000000000000000000..02b9a2539e425a7a8c244faba92527602be76212
  5137. GIT binary patch
  5138. literal 28200
  5139. zc${RHQ*<Rvu!ZAHY}=Ta6WjL0wr$%sPI!WeZQIVow(aE3fA8b1wf5?-c31c6r><^y
  5140. z1#xi@P>_FNM-2k^-?*0YfBF9p2^BSA5D?HG|B&^cgloSVE)`T5S^jyv|8miPQs={z
  5141. z>NK`Bbol25fPg@&f`FjV{(_w^H@ERL0|EK52m+#+1p-nR^K)Hz$HLUm1O&wBUo8mZ
  5142. zKXIU6^^jWpGyi${|8jzVB8T3B$g;3?@%ZQU{>w2yKp;&1EdsHzH~z2gF9--2+kf&6
  5143. zt1z%N^!T@zDg3`_qJJU=V+P5vGqg4R=h6K;kMzGf!-1F*PzQTw7Z4D$e|tjLf`A~v
  5144. z9XLbcdE^)ym>3xB7$q3b8XCAb-oqH~7#J7^fF!^h%bR(TD#DM0kJklQA`+VgM}UDu
  5145. zk%23K{O=k=gPh*p@!r10F_*Bwzycy+)^0N<qXPp210w@dvtC%Rc^wsO{5*OOzo@od
  5146. ze{d0aXK)d4#S9d3XpmP81bL5~&6UTNbXUxw+vnqXUFG0DgNgizzhm(5Ztkque>eXH
  5147. zHN~bR8G)PoITvN{9x>%r_$Tzsd+l<x>$R?X)qB_NMHiAHbQ#5W!kX7TR@7GEk%Vt!
  5148. z<(CINZuOVPWtNy%4;sOvC;Oa0*kEx6hK#Xi<+%DPKabh*MPgUI0>dQ5AN4?fb3ypn
  5149. zF=n2$p{UBS<y8_M)AWnXt_FLCYW`!!FAU!<c^hGcCv%AX42jy5)Dpu}_4af>c3lmB
  5150. z`B*(;TVE>IatUADlSht1W;qLK)~tn~v_>NYt%b1W#v(rdB5><^OzVcY?(ClPpOq6{
  5151. zl`~K_qvAG|H7lCi?pPeAtnKw&n}36@Y{t}WrZ{XS+-znLFGl4rCK(=f03R|nwOHRk
  5152. z&W?J#js|G&dMxh-r1yG&-a9D%s1W`n3I4bt{xk~ym=gXJGrkPbmxzAczK8sd=$j)d
  5153. zl{0Lq6K<(9l(`e8xijLi6XCHlD3%inmNQJc6HdA_q=plQhBLy76TylzIHwaDr!!oO
  5154. z6JComw7V0QyED?W6VdZM2+|!g(*2M4JM8#-h)>U?QtVzqDCP_j-YLZ}W*vdc#26zs
  5155. zW9&bGcMnRYL@C|@6ChKnrK~v=YvxeHq#2^~V|L~Y7-oIM5Zx|U-ZA9Xj@;Is*wzt&
  5156. z-kz!6uA1JyuHG@<)-gE$0U7@h8vh|H|1sRBT{7cqRLyIc{i}S>>34n1^=sha$LRO(
  5157. zK84BybH7~;zkT;F1GRz_WfiN`wG#Pq?X%RklE5!++|=O`DNC)a)T0tHOHHj*cIoqZ
  5158. zU?ctI1GLIB<M-9q_cwd>m-YP8wW>hsiT#oa5xA@ZCi84XN`#O)g&2G@t&mZ~DGYg7
  5159. zR-Twq#%VcuSazO*QHa_YDw*629rJjF23C>W3^ViagD9G@+zbcv^g{~TzT6BCbKk=O
  5160. z8k!uApe#!XDD!Fx+#tG&FtUoArjRUa1z^TS#SfWPR!Vr1%@me-B86elMr9h=SvFE+
  5161. zlHC-Ec_u}8&_{(31x|KMl#b05y>2u`eb7k74n;;5Mx57toMq2br2>U9<1W@?F2!X~
  5162. z1~^Hk*Ia?HhoORqT9bvE=rNTNJ9rLEA>U#;q__pra7DJr;z)PeN~`P<s8pj~XQ8Hf
  5163. z%%n68z5^F2_?ZqFZwqK5BjaT=WqoX<&G*n$<k0|GsM#-*DVu}GKy<2Zrb8|ipb6D{
  5164. z%I#n}u#u{p<&gijsT?%IURGDo$Jz>Vk4HrSSw>Dyh>q12>b9$#FM>#xPneFA9k#B2
  5165. zk$zACm`0+W^%nNBy2v}o2t*|HV{bya%`Q)m*p@>O`!GDCHA*dS8pT!dPi&Hv6JO?V
  5166. z#nl{Hv@_9FnMr(<jg?sDbR}BtT?{f2Q6Wl-m7S90;BX~h9b8N^QBko^nvzA3=HPUt
  5167. zS?yn}Fp*K|Nve{SlWFE~Wmp|v>^9L>K}x=qjg@WYbY)%bTbw`00(Mibu&{HsHJ1;J
  5168. zxystgyRkiTuZ}I=9JB+gsa9B<_}jY6zsC?{Wdb&48(~IcWzPdP{x+hG%E?9tUf8T5
  5169. znqVzN5p%L%!Z@)m)Dw4PaX_`TS=uIS%60^A^fwBQUIFQa?JTt@4%C6Z!gjV=v<Do(
  5170. zDPcQnEye>kAc2UTy%yU6BG6Xk%0i3lKpxm7a%H2%f4~4l5Pf2*BB?L6#7gXvg^Rqf
  5171. zU6Vej1}=$SnXM@tTmdP>t_;^y5AuMnVppbXng?6JA+amtHNAswAcpvr`I_;;7tmCk
  5172. z&|uBtAQ0FjPH3`bd(a1jlpr)(b2=yhs!0%<t+^lU0!t(a4cB}Q5`m8rgr;kO2XjC%
  5173. zNkZebu!A~as^k;%rC5E9C0Ei&CI`7^r=?sHRfZddXQ8EG(x<F;GVfR;_gJ#rdou4(
  5174. zqv)85Ty_fYRHOXZf*emO??B`4F;=<tRNje3qp=1#?=;?#Mw>BbIlOe<nMSv<d%2GE
  5175. z&fdm=F*rHxjLy-<sIh3d_l(ZL#*{G`x$Ml&$;P~~2|1pu&i=--v7d75S)JpJ^<#hJ
  5176. zyt6xp8#~9W<?wPkryGaI&gD9CI{O-D$MEE|b34Zx*T%Bt-g7&L8V|;_<+AfSry8%u
  5177. z*5!Brodb<8V?1)}fX)dQ$OQN7E6_W_1yjK->vojUci9y%&z@5|Vj?D8<bz<Kc974g
  5178. zi&_Fw_7&V6%0h_{zg0We=!onJ^lR%WA_;&=m)yjE!B&{xvR!$!RQ4H`tJkG10bGs~
  5179. zo@>-)Dj`_T9f51mWj8?~+m67g?DUKzJoAdksr3|<R3gKU)T#KCn^Yq6irlI3)QEHh
  5180. z`|J_ldZ_@gUwM*?Z(nlu0i#|q4Y2qJQvbkzxMG5qO1qrfKPt82zEtZUWc>&KIbr|6
  5181. z{68n{9{`$^UB7I8svXbN{R5r<py40*{9OBP>y=*mhO1Kj?D_i-WGWlq(Goul3p{cv
  5182. zyI>5omr|KNu6)-ttXt@{myM*{@P9U&O1b6yor!GV#v}P7f*Kk^E{G}|P#gBcB0Pm6
  5183. z1XOyU(Li#dHg#SY*hq(=UGPag(YT<@t=N+5#;tEz%Hx9D^>MuMp7(I@n|$(_YT5U_
  5184. z>)6h`=NQ%t^eZx4G<gSkPq=iJaS{yz_2wBq(Z-$y#T7M}(}1n`1X+sGYu8Mn_c}Ct
  5185. z4rkHg=FQtFL>DM|h$2AM)l<v%TkrZj+tp>q_5LzEEBzrEh{qG$x02q|?c?(B2t1rJ
  5186. z&JCZ;gMw?Dw&B0BU|)~d#%<B08@XhT{%qxvy!r}V{dnu0)AaSN(Z&^Mt&4nMwB%o0
  5187. z?d&{#oKqUze*^*%a>MBm2wB;Mq(&}})JF}oOXlv-dD!6!iF4?pf~a9!g|lZNAEO>j
  5188. zSgW^0=}_5UboBhSuALJsNHZf#B<I;Bof45@TJZ<}3i&9u*o4KP_3gUx9FPJ<iC0rK
  5189. zNt?`J#+v_(1RdBpp@9-Mq??TGrVXz*tUfvVl#l8s-5xsnAWl_*w|+5nQ!=3Q3WqaM
  5190. zPePBP29t}z4<qA{XR-+<kh1QG_X4I&(Z)jhBI3b+nDy`MZYBmud<jNi6F9J1vV};-
  5191. zq3WubWmT2Wu`{KloctXf#qL^uEtkuVTl7w^(R)AKsMN03mL&JOnlE{u_9SClQwXv*
  5192. z@ousCJX}+|dX4t?s_c7?+C*(gHgd>f&p2h`fZX6i83lKOwQZlLzFKpb{=B@cF1b8v
  5193. z)1cGxDo_%j^uLcKJ|#lvs(UYuKJL({`aE2w?=tQVvo|J!6)!uMa;*79`WvE$iQEQx
  5194. z8jS(7I&96%3+*qsCAO)OG369Pwp2TnXe_BJKiDHWS}+^I1iZ38G2Tu%vhDDin?d>z
  5195. zOC%0CCVOMTk48mkX55%=@|j@)!6d7=y1alNwkct8M5Js;d>9Yy)A#MQGf!`OLeX|<
  5196. zbuDVsEl;@Sr*wU-HF3q5Q;p(<7dwEtqn_!7_0FEQ6%qLMow7}Ojs?YrljeA+$2U@w
  5197. zy*ns4hlD-774`U&`b5WUnTJ`&$k<RSn{^wG<;(pmhj}Uiyi4L@GHG$2v0885JZ37b
  5198. z%jI7@S&w~|kNcs5A|e5}a;!d2-q%g<W*IRqU;_TD&FSXG$@<%NuH04Ysg4iyw_bI`
  5199. zgCQwQDhaiwhUlf<A9~=8sBD7dq6n#!a(yS`ki3aHQ3p_lX~PAYFE%%Ckt0H%5F<9A
  5200. za6uuGW0iK|g|W>X;~H$u^UZ_sx*V(P;)tgjIYq2jdgY9tne|?24hP9S@6K?t4WcCQ
  5201. zA_Q53mp_v8Oh4b|Sz}RzNn>5|y8ShgXwstKKA>m#y#cP+JfL4DXk)+AuXU-gfBOy>
  5202. z@RP<6WbdGw!3`)<>2qU6Le3NFbBBJ~%N`prP^Z$Z&|}Iym_gSDsmbl!i}Iq-ess$-
  5203. zV4mkC@K^NQo{VD7EX<e0v(pLAmiXyb>TPKgEj%_<(A|6un91RNXkEc3lNJA_Mj!37
  5204. zuUfTqvB%+(vfm0fcwTBjo>x}T3yz)wJW(uJrBlko21PEFfVf%)ZArm$8G@Mg>KFzR
  5205. zdw}ql2}ZD?f#@x8F<CWm@wy9ody+;}nW1e7ObwnR75mnK?wu1mJoH|#KgM5ffB*LV
  5206. zC4`!2r&}qswSv6hDzS5?bNBv+w^GxS_#x@$o;ctX49q4>FD@j<Apel4X*=MMw(l6+
  5207. zKuaXGZ1BlcF3O&=Y@IXKZ%Cfcy(4o9L@y}$?aZ}t(<JIpS$C^}UIY3O#hx?GM91a>
  5208. zcY7ZP+KX0c9G0(bp!{TJNcff;U<N)c$zl|ec!J`Lm>vCAKC+riZr8y(aYZ?1R|;*{
  5209. zW`kHXA`gvESTD$^?ZV|%UGk7&$|jFEWI1Q~^A}jj^Cd%it~hvH&{W&l?jtwHZTlD)
  5210. z2FN+Fk66GA@n6UqWb{H|9>L6Dzu%-k98bcF`^qFb?U{xPHe<g6plJdH0=iH~kM{m@
  5211. zt>zH6|AbZ(I!ln;``HOcAc{{OVcF@2o7Y73=vtb6l1$U3GoKwP1CaLHtn8s|GEZA?
  5212. z3l&KHMpTF_<DB@`^*pP<^Xo2NNzXgBtZianUy}yDyzSprJFDIKb>^(xQ#i5rUDQ|2
  5213. z>Zinx@is~%Gr_%$gCxVe4GZNg{<{T<%GB(QphDk3ZO2R#iE(lSJ+yxOsZ3PE=SdE8
  5214. z@e--*6KoHcv%7vs@%Uz6*<b_$y*H0u@oeJ$x@dO|7{IY>hOMmHFh#g-e_fdORFO3_
  5215. za2%UH1WaAAK<O6R`aL6>d#G6%3!%f|sr>1mCO8e10q=Gx>O;0*@><KeqIXVfx=gF)
  5216. zri>b?PICL#-s)5o&u;5q0)A<X!X69q)d#XAjRyd@HFJ%i@)2k<KIC%@pz;CevjmD0
  5217. zm{E_y%CHAu+oJy-{YEdCN%J7r>OL#E5IV_Bv#z_f*cOjZ$CzHrO~1~-GA)QtIk~$K
  5218. zzPN)Kk0z=m>E$0r7;-fPirU6D3~t|C0>%GKcg?OC**zdPOs#BY;8>sK&TUgSjWp!u
  5219. zW}0ZXyN0r-YoFO>N&#3R2Q3gMSIK+)#Io0yW(6lP=gL;H%T|TU8V!)@^nbMmpk`0e
  5220. zhIQIDT&k<|ZuxsM*-&1IM{iz``s%KKJGi|w&9STC7Lu=bh5yDv<WQWWXZkuWeqniV
  5221. zXPjK2_^Yhw8%FI&N*ZL+G(5~&>o(p`tpM`I%+efGho>p30Z-L8)q0e3;=7=gt~ZQL
  5222. z7RGRW_uOKpdtS|Q>Rzeq-P+e<V%lh%e|zDX_sA2o9BhnN%{I@M?qnBKqFUNUJOk*l
  5223. zcv{UNhR?~p;yhu{Z23}Qc>i0$4u~BztH#yy9@1JVsC&dZXCT7s5aO@&gFeka%88BL
  5224. zj&_eA>_aHhAs#kiDF1@L3eZmnzoH$ZO)H9*2jq@zX1CW|uU8wl*wpDdphW6*8$Q}s
  5225. zw;lbYpDOa4cdNWw+VCy+ey<N+uy51x`!0mD(Y`C1qStRb%G$0BbF?sdITW(kW}7Va
  5226. z>}N5oO2C>9S6(HC-95SIq5hCWr?!)xEIA=&<C>=q)u9oU9U>KfBzG8>x=KOAwYzeY
  5227. zaK9M+mHx1FiYg-Izu&HVj{7-Q5K>)jAIaKaEU~z`IeEijEJu+)+1qR8KZu0nKN-kx
  5228. zZcz@{Vzb@PQ!=(0+i>%}p7y+VdpcV`W{AX*c(%z|X6x!6V$vYl5j%)ZWLJ+9$aeWS
  5229. zEhcNs&1=equr-Hbz&@3LzB{IM-U4}Gm}+$`ygNXdE+WHt=!+NBaJI{K-g0V<TA^GO
  5230. zliZa|48ft|U|{`<JlK_Q?kc{yLg#<A?9RYK*EEFKaRjHM1}7ny0R7%XFeO!*5JiVi
  5231. z4A?~jPs5)TXUPJwN|?BTfvha;J29$+PU64NC(V$3n#>o#k)F1(1z-VL;K#r<u6u^h
  5232. z9+%xY-`BMyI|Y`z^IvY3xLd%-8n4d6?|+<1QF<Jl4taIql+{xqTagzKf0hC+TEmij
  5233. zvvmmp@g8T{c##rcxyL-(IO)IY9(f2~$*<8N74Ep%;b6*?*e$B9dSURa$7DmonhvdZ
  5234. zlANLKUKT;Y*om!3Kr~7$SbVqXQ?}}BMn$F7pO{jrpyd%|;vXo<pnOA`3U1LAle*d>
  5235. zh>DpnmRmb3bA8BHm<fSpp+~)~)Jj6ABjt_$j($0}R7hj>VDPSfk88pt0)CeoOYO$5
  5236. z2*T&8u8de^vwR@c?MH|82UUBCn;r2H@O0c_mL^cVq3$5$C0jL7(E$r5SmMZ7iqLXV
  5237. z-4%DN<e)ja9O?2w8_>o-!Q_&}!;lZmzljsb4P?LqI24DO(Uh?NrrcF^Qa@K?^1n{F
  5238. zwHWW>C!g3e9gj(Gw{5m?Z9HLY{^^f&=3pCt)-gx*ML4=0DvoxEM8(<gojdaae0&w*
  5239. ze@KkU*a0vysv4?dT?-G-GVc+=-c29d+%%P6T`#8=!U-EW7L_LO?m`b3rq6{+yMHX*
  5240. z4_H`1$515@_Bx<Pf}#PI3J#3ef<$Q_A6paj!`B&<Mk}u|obgy@o5U>Gu(bra>!W{Y
  5241. zs%DAfV9*$56?Uj&YFrgI{_Svl4`XOQ@&UV)`TclL1zAs>t*h!4xDtYC@^n_6D!R9C
  5242. z2j<buw3C`K3!{_wGiXQz&O1TohNP7rBR9oR{@KJCCu7;AP?fw&C?P;QyrdbQq>Tec
  5243. zI+-FM5&Wl6wvf!BWr6CCX4H9UXplr%5Pq6kFB2LOHZe~y%24o9k|H#u2#ttr5N<5N
  5244. zB}k_!BSVDgNLh$CUI@(x`1w`hcp70Lx~#%qf<M5H*+o|^n4NBv^qD31*5GW7(Xc%A
  5245. z<2cO4QP<JPGR+J^iVzvuww|_P;ga>{_ins|39pyrktR3IWI=?|W)AJ%A{O=?)0PFL
  5246. z39-3S<YP>-v+BtrAD#sTef*y<+3GBeuitOPYF2KkSvC@4kmH?s^6bsq(q<HVW)?0U
  5247. zIlLhtw}~J<Ef9BBphzak)hS^RP(vZ5&_vi^lDPL7AIAG)=p=~6utywoZ~G79`rBR8
  5248. zvz^GiNd3o9*(W5zq()l{YwRI4CA4HG-rv(E?31~B75!~jITpI@zO8<`7&yK{4zpvS
  5249. zeo~x+WkX5#xc##5-3AlJe5iYXeMNOT_uaIt^9R-CU0@MO6oCui2@-@e3+QC}@k!y4
  5250. zj|NrVPsU;jA$S<wR~uOxm@OEF_6nrS`DM^s@)|k1BrPt7g%PybFz_{zM%Ok;l($KM
  5251. zuFp?P;G4<TRb~ytqkgS@`J;tyX=SK%<ov;857Y0d#JcB<&UgG(ZTwLQ9x@@)LATXk
  5252. zE7xz1TX>m%ensva$(`WSa5IhGRp3M1$<NpBYD4GqqqwK4u5M~Z`IXY~qc`x@7&f%m
  5253. z%MaXP39LXngJu#16AZc`%JREYJjmD@${{f2c7F5;d=)$evQ!emIe2lqUlZSV5ZcBR
  5254. z0^5o_lTRe296`uvoHAzgHxdeSg$((DfQNDyP0LmhoT%~Bx{aCjY?t=&lh@{;rXOnb
  5255. z8q&Jlvbeh?((AGfXQD<tjtlnyiT#@M%IiDHCgb-(v)5T&a0uL~xrHoXV~g?|v|;Yj
  5256. z4Z6x~-S+7>TmJpYW<qKBuT-j7_2f?uZ#GQi?UIJgSmQ8A@d1+f<Ld8?>p)(l%_p3W
  5257. z@Ok=-WjGxwZU%<H%ysz1V5w$DF}?_4WC^?oF;&^U$b!}b^15HiSrLp$1>31<S<=q3
  5258. zG8ErowgJ4NC#?0h;09PYwQ#Rn88-Ip>%NdiE$n|0I97#=jgCvx>EB(BXL}bqYSZ2M
  5259. z_?RXYWfNdo&e*oUI{SVkDV=Upp!Z<p=%7PGQW>=C8U7e9E2LFagXR)fZ6!t*$~B5&
  5260. z>Q6Q-`aA0BiAwWl6vRD{_meb@&@PUB$-GjRL=)?*-s~*fXzC4s&+}BYx_2uQ9v3Z|
  5261. z1hB<Ar#lEKk+-3OG++c}WkKi*XzCDy1=_T56zr9rs%z6yH@Rp(j`)$EZFgaHhvLh_
  5262. zVrf;XPlRIVfqM3lF9?D+T}=tUgHZ?>pg@DAFboFcU}+>Xb)Lj`%oEo{jH3x&^ON@W
  5263. z+QpIh=4~Tce)}wr4US?Vo}K&3C@E<qj53aa?8E4T{^Gi4agNo^n|c{YzpysD^QPbI
  5264. zNr!tMQ6GPHx~$3g4i^w8>(w%-oi@o@XAM!SnZu=?X-ZO~?*(M{<bha%gGnsUg!Ak^
  5265. zP?r>0rX}eoW>%7JH~aXA5jt-+hBi=Z+c}K^%x6YUA^)iB3TjsD98(Qp4Wjgs4;pqN
  5266. z8Eo$T$g2|@v_uRJce<qr&pJki1a*WG`gDO+K)K|y_%SQmi%c5K2ALda(>{&Egh7ok
  5267. z1G9<-H%-Vi=ioh^hOJBZCQ)znH6AWts?GoXa(D62vhtAKti$iHJQ^R#nP<bYEY{`Q
  5268. zd}sNcyn=I1u#!2zhN;DzReQKLu*iFV0SV)Me>oAy_}lD#ap321uGn<c6rc6-7yZ#!
  5269. zll}KRo-0mvvLoXh{e$=p8)zx%9uKz7OmC+hlw}c~$=*=EbOvjM8%`Z3y~3%ia7Yx;
  5270. z6HuZluuEb!3vO0gSC;5YChikej2iC%uSA^P^D?76^Ln0q1T3?AE9xc4K@Z^baA{}g
  5271. z6jB<OdDuCcg03-jLVHd36xX(<M89dH&s+9t7h@<a2PMx6AIqcgv>*G|iZJWHZX``=
  5272. zw^%yaf660`f3wyE%P<k#M-<eF%p7h{LDQJTG>0F3Rg0_CirL#sjZS1jq|^xbEUATK
  5273. z<lJ)HNFWv{MSxI^xDJoXzibXm_S0KYr&h#HGVL9aLAEnx>q-)NY`E`Herr@?WInip
  5274. zl}bpXy9n^RU5p%PE^?x@^Tck<_UkCrd~72L$m-MwqUHA25uLjTP)_X{SX(nq9`TcJ
  5275. z2ZB36E}&%5LWVMugDD25I7l}3CPwnMjMtvozU_V4y+?{XU481Om_lZ#BLqC`FohfZ
  5276. zZ9R&svE6uS;#nSr!(qDfhUFt?f;PETpPSYSWxg0)tGLf{rqw}6J5mO37)clv2Yxvi
  5277. zP+D(w+ywoB`Ke1q0`!rVc(U1ez}G!TWEn=$cYdIYb$8?Qruq4WEfI0NnI2K_LkALk
  5278. zfH22gY>!7U1577TWT8TwA^kC$!S)F+-PixT%^EkGXbWyg1|QpL2@<PY;`-DupM{X)
  5279. zL=WeDs=L#C1p$5hxK`)wB1Tn*`rJ*)-3kM2mNi%BPXT7Rm@bzI2C^c`E%As?mnN-6
  5280. zY8J11njZjSJ?MrrxG7ybg>7vdt)|Rg=q&?FA1=upbbwhltgsVyeF451(=f7D{%;sB
  5281. zoYRP<2K<j=W=la=qyQ}El7==Dh6Gzsn-tkzq&zU@nAdsGMJrtJHjr8>P!DJeeQq=v
  5282. z(#T01b_|4C+PiKbR?qgXeN&aD3gFD6$N0-f60C0gP$#>``Dk+bBu~=0{~SM4+uZVw
  5283. zL*hyFkA0R%-qC2d5AaU42okNN-(uh3pqPo1M+>`Yodjk&4*7BZNG_{VeIbAi`SRkN
  5284. z+J()1Nn%&HD}B7L%YYl1;J4Pa&wU^5Ber!%y5>52?dmqdOMFO%GFB$I;976<6fuki
  5285. z#lZ%ccoH1;P>hj}YTN`3v)5z^ckpG|m~|fGH$QL%=ekZTro&}#RP(rWR1?pQzXzH+
  5286. z4x$+D4Ks|`^N-6s^_d$ES+jQxw{Ohi6sNbGgl$-R(khyV-!atd&+_}3!Y)+g^3)E!
  5287. zl)o8)-ABJVBq<H>y$tc2;c#|_A>)DCI}p&i_8fYf_7;7Ya<ZQHk<}!^VeK9j@C~*q
  5288. z8`<nbU6FUO)deJ`bVz{RE|wYbZ#WN*6b8Y#IJ6y{#NDG9H)1^{gy9Dao!_qVxTAc_
  5289. ztqY_zZ0uU!3x$8I8|Qh(qxgq(=*yohmN<Mf;<$$-bx#46UJL1Rv3_$dDMj5zO9hkK
  5290. zXAs<dNB;1|#DOoN0YXfaAtvfSR9n6m7sOu3>Xc}|U*r8#zGZ3ZK5r8NEiK<4D0#~n
  5291. zpf3H4Jy+%e^U*z)%bdqE{tM&tvQvgr7q<BNs|F@i`MMN_<xG?pf_$Ok5l<G3dz0d2
  5292. zjm>)ABxc@%X@SoMv=6A4q2V0@4*EX|yYj(CED-&O?Wwy!rOFk#1Pm<MSbM@n%<jS<
  5293. zkqBE2U(;46b8rwd@eVyPTh~we@Cw;n8HWC~E7?zW&j#g;4HcT0^N}xVJu2=1EZhL*
  5294. z(bPT5E2my+2ZpK&Y!(cyh_x_S`h%|@g?5+TSRixBqgQg-dD$&WGKL536%$Q@1U1Tf
  5295. zy!M(u=X>vm_p27Ltjn=tH4>$#tiej-x6z2O7ABLTxLGbzNcxKz4Ia_2(M}klbA@yg
  5296. z$(4baaspyHI?DT9kuy5mIcBUQ7oO1+_VJmv3zC(agq%EgN8&PDvb>L&oyNC2sa*D!
  5297. z55LzApMeFz;5xks9<%aymxwRucE9fu(u;D*fd#!`o?2&ogBuLr#RUB94V;rNFdKsU
  5298. za6aHX*0@sC+!GQ8@ZLC&$3dYhLa0(8>?^UoUS5fi;cwU-bx=7Qs4haa?R?^|5@xIq
  5299. zcYr7lp|w{?UNjsykG&SmQmOFgV6*5$g$L@65c|KTmcYHdev84@46OSoJHj=-<9+T%
  5300. z{Mt6^Wl@7XZ%VEyay5Pf;ko=o<wR-fYiS2Ub+#)of$kE6LE$`^R?o<=*HswR+30a=
  5301. z3SPq9jPx<RZB%^}tRKF_=hNo+k-?r2sxjZp)4sj<hz?&Na^@y7+>%j+w@ANr`9_o-
  5302. z^+1`olbabwU-_L8R~QlV&hME)Tc=N3?YFz%@u#_$eRkW{jW$0gQ#9WS3(tQtsgb{`
  5303. z-8aiDw~x4~q--Be9kixj@d=+McBSka*FUsR6aswJ(Di-O{DaSgRZT1Iu1oW`c?6^M
  5304. zE4Ai~$1>uLD<Yg?0vkaq?Wco}Ttclm%{=&g$;&%Sa=}9|?Q1*ABr4Vs^K(T>oV~Lu
  5305. z)9oERECgIv?RV-+28BqsH6a-3`U`Xd0<{7PWba*{(uX|<Zd5VJ0m0Hw+}~NgDOcM2
  5306. z&q#D+CaVGZc3K}lefBk?9SyMP(!gX<)w;j8zP&$b7u=9NIK^teLLNmpS(~g7D=(<Z
  5307. z^?%A+mgu>aR9D!cS<W!s6j_X&iPd1llMbiI(M1XF@9oJz9pD479mRNkdheLCmh~Kn
  5308. zNRKqbD#$30Bz1)3qr@__N(zM`yN8j`=Rj&8a#H@{<R%m+iNe(@n*C^;6hh&$>VMQV
  5309. z!MEtznR|i25LLH`w8XnNJqlnVc>gt;&=>V3f-;Hz1%R=zWC^?{nL%){pg!Pey;ZS4
  5310. z#CV0<&6fxagS#~WBPU=LqOVBY`1DmxD{%b5<P?0^c0GXXoD(7=S`n1LOd`>PxJXph
  5311. zZ9xJFwcX2xI(iSPkEA(=MkP<2%j?*W2%hh>B~8Td2zE-YBPf*RY$p-iDRBbGe9{w?
  5312. zkPz*S$v>D3$Vx8VAgReXpE6mrNsG@u-!z-2>M{GeS=4^uq)h%OYn!7JuyPtuiIhC@
  5313. znm~VMV_F2=j$;z^G#gH3+H)93IO|tFSdj$aI0dpyxjdxs^z@+~6zZ^Xw#u3`mGsG~
  5314. z1Dv8;=)00r5iad-giQ;?l4rTPBB?inG*N7i9yk>Pp`x3?uAGQ;rM)%z(K~)PkJs6V
  5315. zMq+4PhY1(l!6U8}m{=qMjKtVl$9?7ed*4I^9gr#WkW~3#x9^u-HP*7fh6@*^RRZz@
  5316. z%b_h8YO;}>Sjc|kP;`7J5wT`ZA#{==IKZyRHOhTa$#jJZD*Zg5A|8sqpNt9f*Ii`R
  5317. zne8(Vw>o?-QA-sc+Afra{QdBEbp!vn+K&e*+ZDR`x^v~4`#XB0cS!k;ZPoHQpBB>p
  5318. zVVHpD+D(gbwfj@ZGy4s;n071Ipk4Z4ch0DkhCY8z!ixn~O5>(hcySd2gUz(&Kua{u
  5319. zPoKSs43hwlL~Li+u^o#|aZ*V?Ox2HJ#*%wPF~@zxS!_iSIXysj5o`l$#h4XZcgc{G
  5320. ze+*7ge`vwEMNpr7C)y-~o4oe{vSI~Kt@4xNidYcS(M1#f3czWPK;kL*`mh&!>_ZY~
  5321. zXXhmJXpvYO1Ua;d75A*xYM+FkW)nvMS1f95xFEOH&TjqF1!O&YC0M2cP)x~{`q#7e
  5322. zwT{JHIg!&Nx=2V3bCAqjC)zRc87;>8q(Ip48O4>K4uy=#2qLr#qMCbLNj6{~i+f_}
  5323. z<jq~BXhJpzD30csrHf$pW^xL!Wk`>${_YvwNn(;sfeFjwy21rA_I64Daw2F)Y1c@R
  5324. z26XW~qk?=Gz&}0JIa$pVjaHe?)YHuULrhaBnbhv$Rqr%tusL|yI?9Z2b7sNZ2h3Kf
  5325. zUl(phj%U_Q;0}lkX7OryVzpAhR~H0QyC>hyE~J*IB#*wLbA`BG^1+-z?;1%b31jtG
  5326. znQ;CnSkUbY8TDNs!mv)rj}an(--Rbn2y%bQC>0WsY&c>)x5=v)>5?HRfNo)TrKNg&
  5327. zN?__2srd~Uk?<{x1H`DG4?jDr_B)wh{tjP&ccyxhyw;x;R8V<}{Jgq*#mAK78We70
  5328. zT>6-}EW8mb<VJTKT)dd5KwWEs%%5r~3r3mtnQt>QjxZh$35J@7G49WuXokXHB#ICj
  5329. z^4Zj*=3Cgrn|(qyaPkNsg$$I?R3^r<7kHj{&mNfZ{IV_kE{v8sc)RaT!SXio{!JG)
  5330. zKvjJ6>p9W*{?5@ZT?km=@ahhY@RR@hVz?lfGZ9Fz9wZZs<#T!Hs*L@GfgZ~R`$~-9
  5331. zyh&Bcs1Vr|lpBi&4HKwpEIF6cx4&`-&waFhG>x;-qn|_A`aY$Bsq?lF4xK%zza@j3
  5332. z?mkLI=yh`Jx@;b2%ep`&qyM>8#aetQ7mW1%pq%XEk?y%(XI|+l;D16=c;2exr}0SS
  5333. z6TRCIF-!L2GK2?)<&;R#j<>K{K@dr~b%b{k)D<Vj0^tt&1ot%_Yr}F5g8}<PZg=gx
  5334. zE4F47E2*9D`F#WH>Q_%jbu|4<G%%Xs0&a@mW4npI@Aqfg1g9IDTY`V<PS6b3lfC7+
  5335. z&$9~WhJdWy-=_1i<<UEOdhQ8|2@M;vqEGkDx~NJ$y5&QtAuex5D~*vU?Lt5w?EVp3
  5336. zLLQFEyd|;H1bq}Yw#<S7egR@U&thQ^`8=y6N{KUqW=IDC3#^zwW*wxPUeBtfJOlTH
  5337. zL7PF!MJ@+7GNtu9ho0<EQTn(<^X3`T_0}FwtJ$So;~aV(pAok;wWXUrce@7~0#b~;
  5338. zcH?p78`-PO70PLocFX2M?U`_}U-0rVj-}t9*(o2nW!UwQ=uqo63~yRQ!OC(n7059a
  5339. zbi-R%b2K?sU58Lvq?I;R-9-~hH;wX!gBJSOBlIYXT(dQ(-{oja>NL)l5<>{O=(NWr
  5340. zc#}u+InOlCWRID*JAHUVxRpPA<?pK~iM&AWgif(os6T;8Gter6;U~qo+*h3W1CQc_
  5341. zz&~;MOM}5L<oGuovCR1XN{!ptO%Y->UB5bP2fltveqy|HHcr{<w;CUZA7B6e`=yBy
  5342. ziA*B9BRkxn9qBn$p=N!6WZ!ibY$}sR_r60L$HuhFF9A!Zo&Y?{6nBxt#t6~DAY4GN
  5343. ziV4lwL(3-s_nK;F=rZF4(UGkQxqRlqXykQ&N*grR&~=qHxk@i9_(&RJ339rRDA^tC
  5344. z(Z=2BM-7G(JDlug=r_M%c7FyEpE=3T?fSLeb(bW`wRJ(3k)8Q?Cv49zGd_Q-m#m-Z
  5345. zwI8OXpM?=T>-yaK23QDmQ^K}SZ+{e1^LyTJ4Wtlm!3{pTq#~ndK{&gK-hd*G!I1T9
  5346. z_5*2kj8q%#S0M(-=Fq2@R%p7xDl3dmSv&H3B394c(K%K$*TOZB+g(%eHJt)Adya^P
  5347. z*4@XvJ67Tvllaa*pqDGVX?&(BO3L~z<X!Xe5at5gfQKTs;_pXXMcOn|jG9hk>4w!!
  5348. zah2z|9a~LzV8MQ$PS<jGZK=aAFQNs`GtB-W9K8m@8zYISTBZljtnlf(PNC9dw}_8C
  5349. zQn;yN8-0L~7X19fHJk2`v+C&?eTlKG*ELFF<C@k@U{J}DG5<BIhnY<oC-(Gvrpa44
  5350. zeX8_EGll;sv(0v$!LEF1^BP<;9XY)#n(J;m)r|$~UpyOyvTpy>Zn-|}DOgs=oIKBK
  5351. zpl==iN6a{iKcMn?+Em8x&gu<@TQ;ef>0`L0J`Ro`-ljKOOzG!^l>0MCJi&P!n7g=B
  5352. zX7P#in-Naeo_V=@iSI4GbBxp^u}##zG%ZMQ9^izu_@`34HtA5+Q#<#&x)Lk^1Og2D
  5353. z6|Q-E^`Iw#+ugWZAzcn%%EZ-|{KKvTr!}9<jgvWjU5$33?U!P^-(p8DN+>H>9oQiB
  5354. zAS^O~3JpA;j30TH)zW1HwJ{`8`&jc0ndrt&v_AC41LXjiEUc6i4T)fz`KKF!#uI7K
  5355. zgK{FccBq089d@X2QrSkrmOv|{coxz%1N^sFYOT^=2Av1yrc8*2aO<ruC?!5Ar)=s5
  5356. z>)YgC`5ijV(5tMxFevu(@zxUFBr0w!l3rHJT~*5Kx3pFsza7KXvF<;|K_jN-cSr=9
  5357. zTe55gQ~ZrtTh;=F{Q@5Fo7|hUqNl6b5NXO};Ls;b)G}oj>6G9iG@H}l#Lf^xX@524
  5358. z;}Fs0xF)U@4VVvxNgoA#M~420N>B=h#?{=9LoEsdN+DY2;Kq?ePgklVN@+SYY0kHn
  5359. zT2ydp?C%NI>^gx^QbC#?uB5|;MiDHJUOdi3-~Z+lR*bJ?()g|CZ88W>U3I)Co-&vu
  5360. zs{12zM~|-C!zckNhWZSf?4)hzBhN}*rn|akV*ZRHQUAW^<JfU&6yBG0*@(|u;W-8v
  5361. zi1>$(V%oN@y7Na3Q2RnT_H7ygaA{M{lU;Ivxm;BF2E5`k*VZ=sOTPe}Wo9w`vk~Qe
  5362. z4*C%=%v2`mv9y{6NlFa_v+wM*5?>(pQh=b89$Y{yQ-gP|K4@OI?~%((7~%Ru8h@XL
  5363. z<Wz(xBX#cPQ9!L=Q;L=9*Ba6-N%>2^{wtkx`$MJ;Ac>Zvok>mm$yezIdkRMdsY9-*
  5364. zy1QMtGv(ErJ()&0=cK2i5vJOueDra$sD_-t1rI>)ho4#uO8o)rUAE&)uM=$kBeif)
  5365. zm5yWF3yPyz9?qoBCWji31Eq8M$8(9_(<<8yWW|MYR)I@U9`5OvKH5^Xqsq(gTDWnR
  5366. z(p@VoNU@nVG1fGJv0v5fZVHfB$zZ_jke|@j)=|k?Sd2%snr<Nz78`={RL7Uv9mx?2
  5367. zTP_R9q^oUi+w>_#KfGk*4sUH-SK$g5X5e``KIuhL5Sv~)atEp#SUOoU8&tI`XupT8
  5368. zjD3)_aVvi82VtgKe=MJ2eczK&X1BidNyu>^;Ns1-R?hVoAu(Xu0woCXF>HhOc=S|V
  5369. zdRvdYxt`UPF$)f6z4$euKOB>#A<hWn9gZMNa0mCrhJNNS3c{qps%m;G?@8RPs!(Yq
  5370. zO4h5xh{08u>NPE=W3~4tqBlezV996tLbM4rGv!ezs<B#MzZY~<TG;EDhk4n@kUC+W
  5371. z#lN073}x1*$0K6@dShegnHtjJYqP25EQo&v{}N=mjG|Ps42G|%8;4Qbzo)qcB|TPZ
  5372. z8-b3<{&*I5Ufg!M(asJxKjSNr;m{-nZ5@|keH;{VlbMHbo^l+`AY87@M-ELM7o-RZ
  5373. z(F^lwEtu5Wz`9-kBE>4n)UWrZxD3^yPGfh@k-dMtPpC(9>8=G6C$RE0Y7GKAp+A?l
  5374. zgBV7}qE2_IZ6eEJH?-_up{e@|sflcaN+1d_1Z5B=m!nM6KZ_3WrptvY61dQtasBsU
  5375. zG3=R3V0jK9>y}B!VjJG<oTQr1fr^%qRZ2GOqO0W0u#k4q)N8cU$F=7=iwiyTI9?7l
  5376. zx+*FdoWESg!q7t;iK+*VoAFuIqDNy6DE+Al@>a`ZhhVLgJNd-!rac00V@<e!1;-vB
  5377. z$rgduE6RxIXVgw!)%gMM<}4f4LUowUDAPRh9ce~D$bCO2L6|GW$KER8_+(AFVEt|P
  5378. zJXSv=pY<XCy70=|wss1j`)L3lfW8p67{-l|Btw@xJ;;*xtp-VGRKNW4U5I<YXF?FL
  5379. zI=xakO^%QCmf@u+>bRP9LeED0sJleD)Nf-y_T6B<`r+!W+Qk}QLI&fx!@rOvHd%_V
  5380. zW^Lq^wA)|=VoQ>YDJmb=D?%ASL#EXOp9fYiEbe(mwLetP)vGl5GedSqLT5P~7}t5H
  5381. z(iuy+owV3iMJ!ZEDkc=$au@V#a*e>)>qna?!NS!N4#IA+K+eQ61)5<|LEH;CU7;Xi
  5382. zT&rG&LzNh5rd(|=7~`hHfSk#@T*COXO=r%7PPhB@;T>N3H3im)Fu|A5X@RNu{*gvH
  5383. z9qa^>EiHo<vUPmeI<DCifAb<!%g3f1Coiae`Sv`2k>je!e0~oZ`Z+wK)?LL%@YCNQ
  5384. zu^~CAfqCNwbM{6tHkM932j;U@!Y%~_k}N!Q=Rp$OeQH!>JJ8#Kow<VEh%A;X3-d~T
  5385. zrbo>r&;5h(aJ@!Ue&X+?qipxp!~);!<JSYMVwoL5K*OszgD&-R)oJ@Vf4%cUR$j+d
  5386. z@-@ji_(|~YwdmCEiUu@Y8*ZLeHFFSMW=a8}kr*f=&07CKth=f8PWuS>*CYFO4~Olb
  5387. z32~n%<rQ(KEnoM?>Q(Y>=WSg+mja?~B$vWwgoaRf9v+p8@pv40zo1%bCr?wqp;aps
  5388. z9mrouCie{?O@c>FyoqK{k(wut#-w&kl)JKk`(rRDVk-xg8M{Qf4TG6mGhVoB++<Ln
  5389. zVsm#ZuPFgVA`6@7$^4EYzC_EufR6xn%m$#Ff<jm}8F^NYT`b!KsK+v4WvK?oBJ?^L
  5390. z-(68TdS??hVQ8|6?=SQ^xfSkpBn!y7uE#IcN&zlb&ML;OOK)SzQal!qi!c84rZIb>
  5391. z`t}3on=yC;sV?2yZcAtcD320o!iU$}5|R$mKX<Q&=x5lB31Em8fwX^cKYhAzs=v(=
  5392. zDf3T-Nf}6tS_)$8Js7W`aj|;U0EN($soZ^{)?U4{?hXdI6YPszYx4`P(><<kRfueK
  5393. zKE@s8_WP!H_8R`a7R#~GLAwMkSN3e;NBS}sB)XMNrqcxXH?Qk9{WnrAf8N(#m5gud
  5394. z?HRb)WZvGabbmE}PC>>7F6l0WKiglBxx2Q|$s@F{aq=er=5eqE7z*OH8QaOw0j)Eg
  5395. zSBJajm8TXDJ#KZef9ev4=M&lX0&@FwPAo~I+Pg4Kt_o%}LD-w)lIkH-*hCR*wB~Sn
  5396. z>A%CL1-bJu%dZajtqR}e&&pmNT!I-6q{MTKj5aKr!#l6-*(KHskE*V{wQbCfJ%nAv
  5397. zlk)7hJt5~#4@yPJBEL)Jp8<|W=zt_w?s;>R^Zl)7{%c7}yullHUcH)Q9>Y44Oc$Ro
  5398. zKKo8RHb6}Y87xP%#_#zYg@J~og`1kfd_w|u{1Tl-9VWL1*pehMT)SjRT)z}dg^`?!
  5399. zJM?D}=UzIwf;{XMk94lnn27}fXGZ~{t3KKG1qOup+<WQ?t6zUE_a4C2<dcf2bMaNF
  5400. z0hkl<LrhlQziKFQsGZX4BVdV@xHa1XsLrgZCS2a7nx6_2heU5uvF>|kXB?V1SW$=n
  5401. zu>E=E(+;NJ=5^S~rthorw&O>S`FL;!WdDFhLissf;9~UE%cG&^30>l@<9Wyfes2!w
  5402. zJg=^a-dnl;xENy$F-@?EM6aGNa_HD0)(YkqCsLm<?*^{cP-fryG`-p=41tGQb*@`G
  5403. zknBOlg8L}#cPgir_XE&1D|<%K{lMR7M?^iOA-WZN26LgyR2?%zHrl{JO+zvM{zM$d
  5404. zr*Hhq>!jz=yhzWYmqO1Zl+g(B{k3#Yk;<EedXr3d5*)mkCTcpKDT?o-a|X))SwU$o
  5405. zifh>f)HXL}1D;=iCO4t@v1cXm4z$Tu%4y<mUjcX)u}}18r2wv(L3XdY1QUhKOl^5O
  5406. zBVTp6i}hxLixoyz%cs6-fa<bptJ{JZi%|dSy{tj-7T=hh8g8uet1tGxQ$aYEw~ODy
  5407. zbFJ^0T051h1P;Tu!P&rBE>*~$GIoYLT=$I;>wseJ=h0W(URkZuk(E;m`c6~(JquC?
  5408. z$^`1Oj~h!6S}Xq76|LG#`M@fT6X;IX7B_ne>qjHRUljQzW0lDu*%0I$24%7KR@8u#
  5409. z&)j{&8IR-7zMj+>tKP3?TrX-Tg~#IyS?d8Yz6iKl?}RE-b8AYWBnZ^8G`W0(;9}PP
  5410. z6n-^%5X3N{z<CVGbH?)C3G%WGMvTGzJ8KIZ5jY$gbj4jd(zcWU;k2;G;xc;0a|SHQ
  5411. z-PzlDgh?#oziV1^JWd;b$0+o5pus=PB3>4Ie??s!?SY~@F3}*l1r!VP=11c(MPUfR
  5412. zCEX&SdL~1te0ha2EBIs>lVW$75@~;~H*lnl`(0hR7LOXF`bPk9Sn2D7$x)=nry~HH
  5413. z<+$z<E~`bcP&&vqwQeIS4O-@y(@EdgWDX+2SGnDVFJWqX5Pu7NnZ=X))2VGD`%@h9
  5414. zLS7qbqajjmSTpb5eDqi8zy<?gal8E0S>3#<xx*~d2sh|#`6IfkutVjW{C{CDI4hS)
  5415. zW)9rwiUAs(RwA+Hpus+g@D01IVgVx6%B#Htj&#EZ_uyf=#Fd!M`QKhqCOYF4Hm;x{
  5416. z6GS)02^l#va9xRPM<2XvhbgIGX_Qe(z;-vB7q=qd`{*$b_~VicSz34)3keOMo8DQc
  5417. zs(e;Ozp~ZR>Mg_u0{d3YrQ&=ltTc1sqECBcH0PKUNz<sA%_ZEkjK)*-x$Q4TjNC$)
  5418. z;+>7BDowu@W44ExHAIQ5ue_IpzfgSF&|C6E<TeOMLfIHa0I6I5QN?xWl2i3ki>3(7
  5419. zhIP=58+TX2o@AF~fZOPH$;6>PvUx8;Ql<Q{L$-pCNnMouPnt4*7NbOYCS6-RZS5?K
  5420. zqnyB*>h`_HarcqZE^POd*YG6K)KL@Zzs&6s>)8hgrbV$%5QM?jGz4XJCe<Cnrkjht
  5421. zQ6;DO!*dcE)xnyYb3Z-CE8l1wqUnqhBK`oB#(pcNj#5|{nl!5+IQ_wXueEepvRDZJ
  5422. z({p`wdhX~Ch?@w)jSg`<8}F4!VJH8tr@*x(=@WSQ@Y^QBX7E9JaRNQEjCk!+z<R@;
  5423. zR-&ZU<_kl-QNty&y*I5`b0Tu3&ay*?MBLQGG8X%}7clutCv{<HpEssncsSLb@@ZX1
  5424. z&r8rVvph5-wX&=!RBh)_-GihWaygX;Qfp~CPhElZ493x)w-xQ{=;(B6D*h(e2UH-=
  5425. zTF8&WgLX3aMg0)~_O4C0l?rzwfpt>|S62f5<&v4?_1TI{8JNhxdiaBUt{8e&=$aTS
  5426. zW<Kja;^^Zi=W@+tdby4Dq<<WhMb0XR?(^IPqknO*%X6DOHyGkeur#kSe=;LApxITc
  5427. z^z?fsk?dOn$@2PX`p6zHi|;$5P5EtJA3m(d2WFmuWqoV*uR-{mEI%wQqT>5eW7plS
  5428. zoPRrq`iVygU*f*0o~ikA;hIqPf?kdg5BEgyZ!swIc^BQaK-oVA0%#d%V>LQNzuP|N
  5429. z{4s`Fh`cXs>)7{*z(?QKfOFg3pHKEQpPSkmISU+{%RukT=?=Z6Q@yS~_QwxLSRirQ
  5430. ztSgf=147D^*C`Ww_~}nz3<PFM)61~h3ihD)vZl9{R{b>FWp}fAiZ{u{aUf0WGCHR>
  5431. z11eP?m`zpDrTocQ>2-G@-1&<aCDPS44r7e6yATdUZqYe4kD^1HEWWX~tdnuVv|9#N
  5432. zKWSniY!|`hdW)9ijdrlEg`pg<R)^y6a!ppIwr5Yf9UFY81j5=yZqmVk&P+`%&?P)+
  5433. z^(llQEw7vj3_)10=bZi`dRsYpnRa0-D#6i9D<q%AOv&HulLrHe3eL_m-;9EA7y`D)
  5434. ze2QPh{1D}xWo_w}`e28%0uBn3OlftUOt9EShf<=R$(Si9f(|)iBA@rn%E?y0l2zq2
  5435. z68Unt;%k3|evr)1ifIm6Xh%%B%sd~Kfcb}oCztXIxGUc4#AZ7qZ@JX5mx4uz1-IgE
  5436. zkI94i9i8OKnlOijgKIn@p(q59pPrW^_&%x5(1YV~kECH8Bdklr{~W0sPnLg0${k#7
  5437. zGu%nbOX;!~v9ej@=dEe|Xm!H>DL~S2qXsghl*at>F%sc~ZR*`rEA^M;0;3we8q2QQ
  5438. z;iBnA5HWM<x45JFP;!LVp3tYt+6Xm+Kx7$}Z20j&$@W>K44)whAxna`IG<xVmFN;9
  5439. zt(gmYZVLbYNDmm?ksm(VYwX>rK>c}5-GlyS99T<ex=NkH8K0dMqlI)bZD?(4;!5t@
  5440. zTqF&PaMAUMFnP+OfwQ3-BJE|a$@zW;2@d$h9kBxqDU^=jvG?zgU;kba?xLzNFX3CI
  5441. zsuorh`gR!vF4&bLQ$kc2xIXrcgHq=zkBO`IW)e2boNFDL>oD{<&yF2Ss@Iu*dOQ*0
  5442. z0ZiY1$?5I3Rnyz+mnMI)*x|L>$&etm57h{jBc`lub1}R}&rqQ+ow*O}g|Z>ezjv-q
  5443. zV%D=BcU3MXA1j{9f%;ME`c{?8{7dz7q^N`%<qRlR*e2$GKDeBBOgQ3tqBtWlk31Ja
  5444. z6e(IIvX+TzLM_y=wDcE1=QqKp5FCO`C@G}^@K=2l(UI(?SwRzZ90Al@?p!jA7H^tp
  5445. zA42ns59u7J_Sr&6M-z<Ce`*ZR`rTj7?}}b3aFGrnEd*k?&WzpOGKpV{G{otW-Ck8|
  5446. zdK(#YrOf8}6=K>_oI<M=?BP}0a;b$l3_MIoxl9GXEKE1Zp$O-K1~J-{3#c(lz<Lrm
  5447. z8GZ{ImvEj)Q$q4x)!MLUHfx>SLY6#ROe(#>COc0%Wwm6=u1}Kdq@;${g!X&XN!~da
  5448. zr2kZpk(pGOZC}x`-?C0Ur`#-C?kT&~XJSb~HW#8vnx(?tbw%bRl&bd-!tNr)WXA@V
  5449. zT|sf*31bYzk9R2V9^KxFS2RFn?~)c+L)NV`6LS%{?(>AJo>BnJE!7p&m6tOQRWIB)
  5450. zY~Drij$T0r%f*^>Po4dV7sD;F7)he!wZ_)^)u>j~v<7kw8H~3R?J7-}cxXI9b}-~b
  5451. zxa8Sm+QbguBy9EtVzxY9UzP4(wbWbgQdl;~GQ{579f1j5+BDj-d{NjxR)14!R8#+<
  5452. zA>v6&Yg8EY7?Qk(l!Dy-F<^LEZ%Ux;{Dj~bHcJ;`=r(15Tr?3XvWZ2RE&iwpH};w^
  5453. zo~SdA0VC@422wMREGWZ&{&14!(L9w%l+iHNAbRYW#7?eyjO?!~q0`g;>GsON`I*(x
  5454. zSh>pK&b`X!TV0izV#djRD1a1;%EB#bGc8{K_mTrA(xZyPGHObbL4Z;!v}(aCpdhnZ
  5455. z4aa`AdS;F^x!u7%9>uVnxa?L!)t<<|H#pmn8fC|LJTbP-h2uD?mGsmE{%-<)@gen%
  5456. z*W*EZgox(n{{*ZpQ_}k-n~P?t$8nA>wqWIgnC^Oh4EhEa5Bi=6cFF>MXsPFcaCVOK
  5457. zGj-9<&JiHt*Yo4J+rd{6=bbir-07dTsIzm?G?rcvibg|87uhN23&Xnbm-2aeoZvSj
  5458. zokTeb+{a7dom5<ma^_NDBkHPZ`5`B()SI<b&uY9SXeJDEBkI)~xQPf5q5z`ET0?B5
  5459. zio9zMLisSmAV6mFqNBmD8!P>d(Nb%jC>iSG`u@kJ5owxKV=%tYC`65i^m%ua+isN$
  5460. zcE7=9Cp%G>X~X4ACif%nbdhkEs&~zc8-Qvw2vHXC7`hx6f#vi}DX$o)a`9}BIF)=e
  5461. zL8T8p(>+%a(Z<*R+K3omH~my$h0ZBGPv?Bs>FoJ|#aX(I4V#OdmLD|B=S?AhX!MQ<
  5462. zo0Zw>dvNWPi^cAB`63zd6G8YPmEJrpkVSGmK=@sGuu!1SpCO#OGXC;G8@3~qK)+z#
  5463. zu&|qz$>!5T%f^*8<*MC}qzG5Z0D+Pvj8V&dgHX9918O`mp$!nZheJ&B<0UD~HN4C<
  5464. zANP`xl-+aKWRwe)Jyj|;=m6lV0Unjgpm@b{4Les!_cG6qsqWYEC3zs!LUga(efKLm
  5465. z($dlr)qn7nuY917wM==J9DtOcLkbW1E4o+6z(6P}ZK8CO6b%hD4#u`#P3hHJV}tM3
  5466. zxPKj_{Cw-xgYcBUBW)5YzO5)j#f3$Tw@2*kiXl54Kq85)&vsT}d;f3^G{Go0r`*T>
  5467. zVVkjF@3C)5bvy8}Mg&?Y+-<SyOgakx^hTZ4Qd+5AOX&J4opPIB)5qc3sHapeXq=-*
  5468. zxW6<JilnH1DZ8t`{1GX_aQV^X+vImu*YalVCM1=uE!1|RKLf67fiNm87tY3LUcBBI
  5469. zmw>edYM5EQQO(R+B6B9Kq>uR6{{Z~Ng3e%cnwwfmueCIpokk3m&8}&maxIxnt`_IC
  5470. zX{FbuO>?%mOlIYp_D!4S2*dS>f>_|c0@7$Yt2!h3Q1vyrLO!H?spLeisLDAZ;RZ}v
  5471. z+p!+zZL?yTG$Q(gSqj))Gf#nw#K2E+U`CR$WZL86ylKWoW<Mti&&j*U15V2uCO%J1
  5472. zZ&)S}Tv90XH1#N~rYO8qdWW{XBUwK%+e(kIiMq;W{=f=?bRWi$c}+SgsG)`wpJjy2
  5473. z2+}I|#hAe;IC}27B8XmG?dXsTP?3lVXq8brGNr<5%H;(U@&pOPFV9l=$$4D7j9vv&
  5474. z*{YX66<yvm#i|rwssvPQp@N{GxGV6LWv61#p{X!xC4RLicwiPYiZmH->eVnLF*P)B
  5475. zkwR&zIRjGiJD#cHj*YRXsH6m^;`<~N75zt1(T5bZ>kM2Vjm+TOD3it`D5}pUF@%Me
  5476. zn68FspdA0#7okPB1BEh&yMS@6I0O}64#x!H+~o_nMFYiESOviRc?KbeMGGg_^;x7c
  5477. zE`Ld};kKjwR<BZ!@(HPMC<<H3w>iUo=ExIDjL_-)SUQKXAHcgs>1L-#%u|<5mf-U0
  5478. zr^qcUOaB&Dg5VM5D7F9-;jlee@02C0!(pS_OGQ#p;QA(XT>!ZFR<^3VT((aQycOg2
  5479. z{)mU10&`x>LFs!%m$md`$_7n|In6#!9eJ5n!z>C7Sh`(Oonj=^i<BmVs>)o|?bU^n
  5480. z@F#1tc+!|dw~SBRc;upU&gt;X@;oW`omo3dd-mMz_y4FIQ&yP+*rqMaYh#L)7JA%i
  5481. zDD48QgbQ$8xa-j5i68-Mp>C*0q(VXC(j?&kEf$Lf^#0=hk-ul<+5zW;fFn$>HNgS~
  5482. zBsRvBRoan2I+IJQVB}Cd50Ios3&hh;_eu2(nbohjV&UhQC&tc?3iqaDN2*Q(3kRim
  5483. z#X^286yCx&#Ha=)s?5n8j50sR21L&z{b=T25$hq}Lh@$6ndEJ}?&Rlki2R&be?j6#
  5484. zqx=)#=l+{bDwngoKKJVKdSM<7p?lIQEh~wL*yJcB#gxc@B&|`A#IU-O%IDj+()?C=
  5485. zDS6%I5-%1#&e94P7Z-~zvX61<l7t6QKsQ6lVU-1EeZ7+kR);L`CA)H=EX!2-zLmj+
  5486. zYgVSjg@|$3j*AfmDdyDBOi4C2_-<6d2A9S)VS4s45+%TBP>>NpwJom7*i&Hl3k6X?
  5487. z!?2`;*JI3PNq{@~(u88S!0;6X`0hoZ9Qk}+uuM5_apx=+!)7Yz0}8i*|Kkd*$UzXK
  5488. zwUge3DZ-c4C~Wc`WC+SX1i4TuV!fzToTyqwb4o=}2ZZaqaV%2aA6mn9l~0P9t;t}!
  5489. ze>oU~02~iDA;g%UOpf@<R;)mop+8&xE$)d>=zNm9R*YlhtKCExAKpmm#^K?O_j2kf
  5490. zB7FeVA0D}MCtp7&!(hfpSrZfVz?LlsC_V6khIccSX_Qf;cVsp|;)=OqQ&CH;g3nj;
  5491. zg5;(AWaN=T+g<e^w5Gs+k|LNmP)I434Sn3&XRV^+)sV6{A5+qGoK0s2ZPmqO>Q5aK
  5492. z40k@KPW_t#dZ{GPNi`@|`7db3^pue2V9esLFiB`zMvEnARsm(SQ-&Fiz>03L!1e+4
  5493. z3QfR!bfP~3NV_=Va^<3oXoz&M?Nfjd_$r1sUoL=gZ~3B!L=u~W`6Mf}6!6oc1Q0DR
  5494. zT~T_19zoqV4=`TL<7QP7iPi1eRTm@U6c?!!kor2@GwD6qMWqN*EEpNgD2<WA>6X7Q
  5495. zUHW%PzQOCVtyyDpdCT&|3!=dG#dSg}vDv~~#E8rP(_#c@NF)QplSB}kYDITXmV{BD
  5496. z$>TgOm4JbKR6d8UEXoBC<w|#wcf97OMBbj_Q)ZBLixQ9u0(8FsM1mHHOFn8e$qzAt
  5497. zv(98BJ6xQ<=W?&8M7!y&fq_sn-_11h-MwPcgPJ>kHs`@DRx!@JaU8lZtO+#w1`@9u
  5498. zd)}#E-g3a&V1B3PordKt*H{}&bYcoT1OG}-CP`z9C2*cev=B#|{Kpnk{Wg<mo#elY
  5499. zGo-I<t>hR*vt+djPG&<xIJxzV!CBii7lDxPPJOd+By<xH$p4x4x8QKo&E|kv*@og&
  5500. z_rjmBPt2)rG#Gs68mV!jYr?Pd!kI~^_$4viSjYCQRWW>|Y>#AHs<}KcgbCYOEjD?d
  5501. z#2n*hs*RcjZkSOlQNSV;aBE*QgTa8Fw1)Jr9P{&674<KS4SrqVp8fba{#t{C(>bk&
  5502. z{xI?&P>NDmuvN1*R^9V4cS@a@Qu>qEg?lkc|BE`DA?#w+c+b@s>zOp%P5Tr=%YH~P
  5503. zVi~@e5Pzo*cM$5v**}!(iuiA;kv=Yull(ZNt8gNZ^HW8?e^f*%Hp(O_)!{d$(T*_z
  5504. zA%fn2DZ+xp8VPRjkO0XWJp#Eio+3Ue!FiG8`)r1c;3_Hk8FF7!lYHD{J--e&*)@?R
  5505. z%}bTF#1%)kCU>bo{6;blmsH8ml8c*`H^Vp7NdtA~Ta9E%Q`w(KV)T_o4`$4Nd4Vv@
  5506. zv?v0GtAvU0a&S)Y<<bP|+yIAu1as>nK%>ZT%=?1R_XYY45}98Bru??i_-(+IVzZ;-
  5507. zQ#k=m(+pfEu0dLeD|2GWm@&o`^i^BTU|V4%=BhACxtbUB=tYY!x)*-00$pR>!x{oW
  5508. z38OYj4s);e$Eywn>{e)}F!y>aP2k!GSs<F=W14l<8WBQJ{9eBy{z}{qBd;DXt#;i=
  5509. znn(N_BzhN{80Z=qA;r&r)m-;)M~}P}ltS`{Pd)i-z4!ytPBuGVc=O!jH_tW55pmXV
  5510. z=s%8r?q!|$#I0ZZfywo^ryl(ak?+6lg{~IE+?$V|D^#^3(j6Dmz`}g>Mbd2St79w>
  5511. z%LVkYWG*ZgPe{N7mn2oa@#5m!b7bM-YjeO3FfD3{jh2bOhkx>uFt6870UtE7ebyp^
  5512. z&`Df+Lo)92=>55P)*nE17~bICu*khoU_|A^4u^c$O!n#ZWM6X!X{nd5(d*@F>RU($
  5513. zxm1!OS$Z%-X{K}?{Z@vMjF@OHT~{B|;ckw)SUo-1oLFCy6khK?U`|V{epaBYDpxHa
  5514. zUyo~m35%|i_Terl_|v03BAE+7T@Zth1J7J6jddPEZ;3;lrS+X;Ha`_5q_05P5tB5)
  5515. z4fzj{94|kwv@hr3Fd_tt7l+a&+x-wwB6l@GS)-O^j!Xa)6WqZ7Ju#Ujqy*@UWNSFV
  5516. zL;DpuUONwvoy3q{4QF>1#&5Ctin`2&!YW}Wz&Kfj3CyCR!gQ%>&g3a7VbtkWD>VaJ
  5517. zQ7@-Vu!QQt3>75*($nJ()mcm?OI^s_({tyf%R2`p|BMDZ{A-xumj<gZcOr+$F&jf^
  5518. z7=D-*luzXks<R?q<yunml0T@<n|PJ$0_Sq`%CtrQ^=!MMS5t8g?iV;EqUj(U4WUjv
  5519. z&Nrk8@ck%~WXCB8<yDSp=t72A0=V4d&I7w`al7q~8w%Cf1keizzQV)kIeo{bLr#6n
  5520. z`SiJEpLz5Nv@=YId?T_BII2;$>SbFu<}e^bfZ2jECO_AHuqD~)NCNi^2QC@j5DO(F
  5521. zx<w)&={!-Y^Uo&tJNJA)?l6n<(Nl@92tnd|fF2Mn23!8UCi%^z(?N>(MUm~TDlF(f
  5522. zYx(^77>bM;g}IfVInmD>Nwwd4Ykyyt#%`VDD;9{Vlg#!go1`kdLB;DogYGN=zEv68
  5523. z>vM5_V7r%z1<s3wMrK91M9%p!ejc4Q5@JgiSc0`w&o6Ru2F~S*&5WroJIX3u)uvs*
  5524. zN4S20C*@O(-<ibrHxuHFIy0zT5e|HWL$5@FVR5ur!LqVeSLS<6(3!!vjsQYuV*?AA
  5525. z1O(ZC>k}d%b49lPn|NI8g^@Uod$bc{d53qvt2x|4!5`qexWLSWIhhkZ7`fFbCJAoe
  5526. zm%!-zXoyZxoVp=Gg$v2z*|WELT-|;Bdm|g<4@`Q0gNb}5dQpF0x68A2_N-BodE3<B
  5527. z*PGr;$~XFZx|;QVe{^xmM!)Fy>zcdMzOXH|m<%2r9J87S2L>)|tdI3xPj0q0)ak9I
  5528. zH+y6CjTa6K44SQDgJcb9x9aN}tny2J@*1b!Kdm?A^gHG(Zg8eD)BO6n`q5!W#rM4k
  5529. zqea2nxZ5u<kV#)P|I<tZE>wR2?*)7fQsRmN80b~8SU?eyjOS$`Ur^0_ZpUj+NTjQc
  5530. z$&eM@wUc?Y_nzLDO&c-TQ&xp)9Vr;rR*lz+N5#KrG%JTy9mZr%SE}&1S>$;SDu|$B
  5531. zm{j6RvwihC*sgl&(iqN`a_#~6QPj97Pm};8qNGIOK_wM)ghDNrvWpzoW>HDA=`!%4
  5532. z+*u0bZ4?Lie8DpYV8tg*fR>wqu^g*IKd4N8*@=5nyV7t)Cx!beSE|if{pw&i1#JKa
  5533. ztv?^%ibm^&r}9?siw}q+f}2NViU)XrTSIG7iG$$QdM{`Lb&E|0aJkBXPs`6<zRz&^
  5534. zHDu(vt3C2s9&CxFeobfIegK0D9N6u-`Z_Xl&E<xDm&?!oP<;_na*etus2Zl3r-vz{
  5535. zS>s$CMJRoG826tN<>&N}R==NDV%5<qxK9W5=^;BE92#4z!ox+B{bPZ;iphvEmR2mM
  5536. zEo72CsTMzl6iyUg4a;wae?6WuhdiX)9WtlJ%L*s*xYm}e*~E-85n7Tq)_FX28?^`q
  5537. zrg+6pJV&#InNap`n9#t_pvRrT%Ui{`G)_gV5_-)_FOk{6L8O#U0F_tFiWM%RG@(io
  5538. zZq$%bp?FeYB8r1dsKE(wc&f3CDtH6;+pCJEi~3Jv(o9feQ&C|ami`1xEt#EC7Ie`$
  5539. z@*w#R-jiSI6h1D$crIWDp4yeJ&hLYi{1SZnCrOPc`9Y`r60psGBHt1C-ZLMG$HaMT
  5540. zuh48yfG_S%Vo>-1Zr`B<<xfQ6c8K6j2U|2o$7UTJ=<AbTTK@X-(NS`DO5WMm2e-)V
  5541. zc)V?UQhpZ&U6SaO-*xw-TkRm99bwPqmqth76Y{x~eEz`ES$%zEHoTrlzz4V^4SwKp
  5542. z*jszM-5MW6)Yr^aZ2ycCtmb<W>G`JMk9`r;D(LZ{t2ZS=GdV<`3*#4xO5j%_sJ;+J
  5543. zgFRpkx6Gr$yq2&vU^f^QFNM2hv<+id7pT$d_LcVg+*TuHsF@q83aUTDIm(yCqLQ2Z
  5544. zMJ0E9y9lTqIJSB0bC#9-3_-gQ<f5U6dXS_1LX?kNoOeE=8M-iRGF%~oN)U{WAj5EN
  5545. zd{7P(4DY9O`ZBbe0SzWXNubh$4>C>VxT-zIkf8WNwJw*J%k5~j%0^)o#W*zN*C_jO
  5546. zY?twIOly{pu^c72C{^(Rl$DSBO(cB*R{W%TgSeQ?iHQe`yxdY=TjM3iQ@^;k6U#!2
  5547. zzJS103M_r|c;_$f)5wUbeq6B^PNjQ_D}L=z)tC})3{}Kf^TH(Kl(+|QHVEVr=W|LD
  5548. zhWo<b6lVN!hED*oA*L^V4IAQ=Hi*`40}z#=8K5DI$yzNjcSCAyL+997=Z3LVt@e0-
  5549. zEVV&>?bJSKtXV$xe~ohA;1!;-JZPH9@_AV^Fjd=YhuLIX2^(KUHv6V9jA(~eS?0l#
  5550. zF_s=HD*}9FV6tBu8(NT`yuBd*4+$5DhCn@byz}QUvWh?!1ei8u$2CZ0OL<&XmlgY%
  5551. zvNT;-qr~f=Yj_7i4^COGq&|jpa@oO;DVtk-rYh6Hx^K$D^3o@&p9VeEDC;oCPE!}A
  5552. zpeDXo#y6R+%#N$?NJNZyGLdA=g**r;3nKy5GZ@_<#66`?<>@s&@`Ht6%@kc$x~$aC
  5553. zXfpr+6E48LHb{}F=>ezz+G@v*+<1f%N1l6XXx27iU2E2K>e@|NEk5?26(1H?3%GB(
  5554. zh1ns5T)>kQ136D12W)_zbmM9O->WZ9y!cV%_U$kBzbNk{1=1}SJ|YW9@uz#qr}oOy
  5555. zohiC$@40(R&(ot%ly)ow(xHi$(V(pAP<H9$nh-U*7;f}ZGkV7NH?Vzb#xU^nh7A}8
  5556. zdTb2!BZq1Qt|+j_>Z|-S7Rck>THz}+@hbvCjzwMGAnXt>5f1V;K4tepUj)ccg%_{(
  5557. zUs9rZYB;xm<~;Wa??YcA$0oBqzyPoCfZ3H^bzq#1u&P?tByXJIJ!VoZGDb1XQxpRE
  5558. znbt1B?#RmCfW^}v1VP<nN}`Cr1v802S%5XEBo`{r80Y9QV<<|3E(8TqP@Vx;_>8y+
  5559. z3^q0^iKOlcH_o4#DIJ&DL)`L>@r-{HKO>r%?p*IT>IVsrzmtn2bBMZ-c!J+c(1+xI
  5560. zHHoCYdBeI$^z3|2FaNrJ@$$4Ov3O~Sq#TK{^%>{VO*HmwWAOYoe`@W<>47CZ=SPFS
  5561. zS!d0QS(~2iTGJj}b<U8kf`f><hqB<&*c;<D&b3=plS0i4?Jm@{Ql+g={!lzB)-&C`
  5562. z(clkEx!d=vyL6(lysP(3Ca?Jh`47W-o$+Q{M5HCN$5`IJ`(~p~KTMoAn7yW(YzBoV
  5563. zQ}B;RiSxoDB2A%(@u82ESYCb%9pDY&5>ck1)AQA6+%Gz(hF}+kYIO|`^`h4Cwz0D(
  5564. z)qoxx^0%V1ROO!P`$!}tu1rc*>{Sy$aVNAgT;udc_-lucVl!j#r$#Zu4Ak*>E&aVv
  5565. z51f2%%J6Qa=|83p;MR1-)X~|>av#b?PNo%Md)`$`dFe^l<TTIO>{mjORZbP7-sIc3
  5566. zNt{MGp*feOT2E9NzsPJR1{~3GK5XMWP;VODMH8$S5nuaQFt(VwNiHdt=GXcCbu;PV
  5567. zy~G)A4LixcTj)%@rI=nNKVZ;5?SHhv9rk*|?#4$i`x6WpzfjhrhDAKnGpyl@;7Xq`
  5568. za;)+MkhUU7Eb5#?J1yT4=9HD^F~tYlS$jS8xEh3xA1_UrTHNwqQ4jDzOQr?>x`zoF
  5569. z?$$;Y8rQ6KVyZo^29TGAa<d@Q;qLC?!&R1*O1v^Fvx90dfJfQ9lu5EFVyub@`43xd
  5570. zEdlF6YuHMRPHTr#)JAkH{dTK05V9S#;=>NBQ>ZQ{F?Bg?Cp!!lfJh<7H-)PTL%9=*
  5571. zwC&t!3$#F5H_htg=T$|^S1Zr?yH4x0I({yw`%vatTmlyN4%I+f!XBD>{XZ3adk02W
  5572. zsmmQ!jSlSfDL&C_FQxR-wJZ(OHN&f)9y{_lrH>!k@b%ThYsgn&_Q&Jd*2Cf@Yn3-I
  5573. zsp1Kpz+JZs!sHngXRBX8Vu)glW>JHi@+!j)6Y9h~OQYps(fUVA$ntq}(}QIMR0;Uv
  5574. zaR0|Vi{)Vwwb`Dr5)v=tn5zCrPU?>sHoyQbH|)vI#s!OL3(K&5^{P7Lb9dsLxziu^
  5575. zmrttu;zI2sb|Q#MY)*;kVS1}eR#2_i@9E7Z(H@Y<c~~q?qt6gvtI3U`0b_Djfk8-P
  5576. zG@6b^<CJ7fE`yn@(>Jxm&Tb)iskex0jZLwhk!r~P*wWhqfAZ%HUh{0Th3YKC*VLvX
  5577. z{nMQmc0+HKKWIoAN#CTgTVD;a$fNV{Z62$jiu&uwrC4S8mbyvJG7oNt{r;+WZS`n(
  5578. z*5(|D8Uh|>pn)bRFL|n-5RFk9pq?fVq|rtmzNM<9XA+HoFI_Icos9`uAWayprKzf1
  5579. zFN^-K?R~W<=7E;xAt4iNfhzJP)d27^{aDR8d7F87Xz0@Luxofx(wePC2=kP(i474c
  5580. zSvfqs%kP~rvppK}%^ICio|^@jo9L(8jK0Wa?<ioiBh}l%#;7o%QDD*#da{)_e|1nv
  5581. zqYy0(Yj=6Ysb?<Jyvg=<^uA_`Azd*MWQqV<+<{Ywptq_k=JK!=%dreCpgUc$D4|!6
  5582. z1X4Y}lndNzMsZa=DHNGCw5Yr&3qT@pznzLM(!+N0MEb<&LOO#B-hpZvP%%gM9#M?w
  5583. z*(2#h^4!9?$wcWrQ6OLZA}3^DOk8^9!i85}DrY5)++L}d5OFa-Aoe5UMLCQ-3rhd!
  5584. zhKEX)GW}<^EBwa6J^IxD#2DbJXtWP8hfu6wkvZYw9!i253k_Fvpy!XE$2Rk#9<dpP
  5585. z5Y#ua%?&~nv26zJDup5u=FV=8$;IZT<s)w2?K_v>bM3s+1lh6fvd>USl4y9vtv&U_
  5586. z3AZCY$3OJ-tvl}uxLUU#zWBT=sU+TatxEs7ACw6tLZY-_z@v_1K;87R8y}!2iu8dS
  5587. zFMEsbU$<^QWhuF6+B>)2`p&ekkR$3XNR>R_Ve^7vW#Go4-wmj8FeHu1Tp|hGpUow6
  5588. zfovcb5X)2p(9wy(hTXdx26GSQ)~tb~>gp2hV$JKM)y37)=KN;A9}?|_{Fug3LQAWR
  5589. zAji9yKL+Y{ut!Leh&Voq<0T0dhF7GHli8i}?}vzhPF-|DlK+$6`UCk{KCc-U7%L!H
  5590. z_B~89wVaW~p3N~HNeo1&!uY?1z5PTO-AOUo#(eBJQ$J3_<KzEdUDp>HM-j$%W^QjU
  5591. zce{JHyZ0wK+gvV}%QdyBNiWya=1(_;TGU!gY1-1(a(&4|UxZePFT#~rnu3BT^vT+N
  5592. zkWeUsXrY1#2PG&<A2gsMh-vUi^u>r+>}{Oyo87y;vmx2tnZ4QBzccgA@B4k<M|?X6
  5593. znsX%IW(Ce6{0`<ZrijorD*sC`ekawuLDzb7xv^aCpN`FE4X{yKB9I>Ay?EDlp;>nv
  5594. zTKDD@0vC%Q&SCMnuu&!hwB|TXr&eRw2wh&Jvu&UT03IjFRQZeL4-|%080`R>7^>eH
  5595. zdy6l$*SF$;26Jfs>z(iOg}f%LLfSf$I&$$8jQuBpC5ct86lA^>3p0VRf1s3UN)7Zn
  5596. z2n4&J*E>4EKYp7xDMx$*p1u;E=>v9?<vg}6@PVK*FTx4>fPt>Vi%AC)7It$zHaC4^
  5597. zH6CBRF+CS+e%O&E4qvUuSAXVv;D^p!pkGp;B^L$dC|^yd(0M`EYNBf8X~Ra8{|g3k
  5598. z2kBa|Y0z;u>>pzq7db|Pixwldym8e=ImiNiEY^!I_<@HBI&@mYn!qU*itoG|sy86i
  5599. z%!p?Xjew>U>{BD)H=P)u&;f7+$Xa%-R_7fT*gCjtwHg=Jk=ovt=RtQ5)`3znFQWOC
  5600. zK=)C}dx2$;(aiIpTl1YQ*}geA>LD85)i_QoMWjX}*p6dfZ!bPMg?AxU%WKm`Xw9Qb
  5601. zqf7pO%xl@aqa*`?{d5O5Z+<^*{6gF_pNSX<JR1m7Nbm=f5!XiUX`?-7sv|zfkFW?U
  5602. z_7Ka+*vziG2Z-DJ^u-1M9Zh?KyzSm}&y%NK@y3<SO@18l=7?Zxzb6eQ9r(iX6(Sr7
  5603. zfG;D=TOGd_D&$IRd}cgG4!WOX!u^-5VB(7S!JYI9thke6e|>wQu-(QL8F+m9v16AN
  5604. z9J?|KLfrr%;nr>sU29HV>iFLIXjw!AHeUe(0w3ET0vtnnon3E@m90KmNDb{?8I3h7
  5605. zfV8&z<r<pr3dXzFF>fNsP9=PStmFJ~U`OQf3JhQKY6GngFP@-CL6MgWeHyjvT|RfS
  5606. zkCEhBQ=9z&pF;ozK$|MyZ)a;4|CjFHk3CGK9;#Vzo|o+q<Q}aAP|ClSmY!XX?};x*
  5607. zh?dsLVLh!84~OaEy9;!6i)-tM-UyCqTA3{`vCy*I*!t?|wxCB#*!th{FYE(;Z6I-1
  5608. z;F)`-rR7fZuSwz=TEz*M1z9J^TJa4|7d3-ELoK}-)-9eew0pjtl|5gkpOoj#ZRRFK
  5609. z52Lm8iHnq8JdsXl&4!*zaUoSpq$iIMa%A!ZNLPZwfa_M<hJI-~ewif*yIJu>8*#<r
  5610. zah6hafDeduCozAO(S@_-<x{6Fn`aj&yE>m3KzS6B=N8qI7bv}OQe8X;1*tcF{!WD*
  5611. zEblRaY6YmAU{CVtjJ*L2YBHi&W(=LpH}`EI4f_Wr6p2TfrJFvEy4j$=v7}@|Js9iW
  5612. z55NwNdl3`f01gE|lGjBy9{qtZ+RC5NWM7n@fLGVT@0MAFw}ld)8_r5cq%*w6E*^O?
  5613. z58CKtKP_WeYhz+JRfMBd;U+a7%w%+QD+LqTiD5-J3=$bOnjI|kHJAGegIRjIx!k*J
  5614. z(6R=1_0rQ`>K)B6vWDSaQ%%_3!mO!^4gF>?>-P5*3VmcfJ2*{Dex%#ak2E1g)**Gr
  5615. zRNYlxTqC2J(N3%86fv}Z)iBh4&A85!u)kkz;aY#QHyHSHp9W?@C`VFhpdSN1x)%^r
  5616. z)Zr`0ysqv=2PF#s19FQjvOrvi!d0^C8W}!gGCAxzk%VljJ=TK=lL<R``-O9(Q}(y#
  5617. zlRGst#KKzQn)}n4<NN8myjVt$riYY7c()u<=)L1Ji#eji<zHo{Y~#h>lM@j}tI@I9
  5618. z@6NwGI;BRfY$PtLJ;!I><R|++#FRp2JdxqY9^!Si^v1Ku+Ac_Acvr1BQ~?@BInQM#
  5619. zhQ9F;0}=1f^MD)7keUDk1t2KY3^4s#<5R!}C;{}2u)ytLe_%xX2-xoqOcw!ow1tU*
  5620. zsKHMM=EreqN;(XqN*ALpOf%^aQYZkvZW9{Q=m|*pII9--mMW#;A>Zej4|ab{9U);i
  5621. zYq<UL)#`Ic30=@*VH%3ZipJdCrz@pn2d+<3B8S2&MkJb$b%ji*a{Q?4lDQd$$vb2{
  5622. zoJ;m-Nm*xhyRI>)`=gg!_w`HF=Oa;GC}Tuo6QyHwclV7%#t94S@@0OCUWJ9eit6Nv
  5623. zi&ghF)CF}WwI`FgFq8fRBHxLf004NLV_;-pU;yGw`{}yz{5D@1xLFuL;KuX4Z3z1R
  5624. zOcn;_1|XM%fe9oE05*LKN&tAAV_;-pU~c%|z!1a200KagkpTrTN&)~!Ap(N{004NL
  5625. zV_{%mU>U`ucodIf8essjI|O9_000000001P0J;G#0p0>e0;~fb18xKM1X={{1!x7H
  5626. z20R9Y2JQze2W$tZ2owlt2(k$@35p5+3W^He3qlK+3<L~z4EPN|4TcTK4h#-j4)_mH
  5627. z54aEv5M&Vi5m*t%5(*Ml62cQQ6QUFX6dDvp6l4^V6x0<G6*d)G6@V3}748;77N!>n
  5628. z7cv)O7m^pe7w#As7)Tg+7}yyO8Dtrt8R#0O8tfZh8^Rn+9Izb}9b6s09&8@aA5b5#
  5629. zAN(L%Ahsa_A!s3}A|N87BN!ucBibYsB$g!hC5k2{CZHz%CtfGEC-f*}D4Hn_DO@R{
  5630. zDc~wDDx@m%D^@GOEKV$bEZ{9FErKoJE>JFrF6J*JFTOAsFmy27F(fhQGE6d<GVC*C
  5631. zGw?J>G@LaOHLf-MHc&R8Hx@UlI4n4NIQTg>IfgmXIvzTDI<`9iJ1jeRJJvirJcvBp
  5632. zJwQEjJ<>iLK5jnBKQ=#<Kj1((Kx#nJK@LGaL4HBLLJ&fvLhwUOL$E{YL|#OcMC?T}
  5633. zMSw-hMkYpJM!-i1M=(cNN2W*|NLWaiNYF_dNm@ycNybV1N;*nxN~B8SOAJdoOO8xB
  5634. zOh`;tOk_-QOs-7uO(IQ@O}tJRPE<~4PP|U=Pclz-Pq<I?P)<;KP_|J3Q8rO_QKC`2
  5635. zQQT4(QbJOQQm#_qQyNn+Q(9AsQ^HgFR3KD5RBTk5RI*ggRT@<~RZ>-YRhm`iRy0<K
  5636. zR=QT+R{~drSL|3uSjKpqV_;-pV3cI&Vc=r`0VW{k0zw9c|6o1?02%iI%K&(sU6DIZ
  5637. z!$1&*f9EM2i2?)_#Y#vNL2@2tL>DRPQ@EpWoOK?uz1DgYDJAFO1e|~q(9&=UI(|EY
  5638. z1hF+U-~2l>9@_w}@Cgs6>xOn>4_#&_ZjkSUo8)`p7P&9nMh_$54)rHtACH&{_i&Az
  5639. z6TH?1vp!ygJzU~dxIumsZj#@HTjUSnHg54H+@bz0>?8EL!aY2A&;Hcv$mx|@9@REB
  5640. zd17+s>r`htcMHAVr;(LRLa1%IHMtrELs8~B*Y<Ztd03B~OH^V_re>yUON}b5+3DB?
  5641. z8|RA2V33F&#3tiPQ&?z3aP%uEEODgYB8K6|NNVp`r;*Y!T9q#t*Vt2w>i)lH|Fe+M
  5642. zqU6MClHyMYFg&Z7*RiTQ-=oBV&lyv7+(pqW=VYXrY*tN5$qGe%wxbeL53s4b3QREI
  5643. zot)JN^&4hCU<PZk004NLZB_-C<GK;v-)jnO_U+z1Dl@w6UYVJh85CJb)Yz6!k~c3`
  5644. zW@ct)W@ct)W@hG&<Rp9d+I(N^8EG^c{Kp%?M*Hh-{NEo=Lx4?$h!7(|iVnKyp^pK!
  5645. zFvK=a!VY$E2#0YpPQj@pe>%>Bv*K(xJI;Y~;#@d4&V%#fd^kTYfD7V6xG*k)iz36t
  5646. zaB*A$dpLqi;!?OYE`!VBa=1LMfGgrkxH7JStKw?7I<A3h;##;iu7m61dbmDrfE(gQ
  5647. zxG`>mo8o4;Ic|Yl;#RmdZiCz6cDOz6fIH$&xHIm8yW(zO7=a^)z!(!uA#r!iP@qHw
  5648. zg&IepVPMf<A9I|61&-k!xF_y~d*eR1FYbr?;{kXe9)t(uA$TYrhKJ)3cqAT$N8>Sg
  5649. zEFOo);|X{oo`fgkDR?TLhNt5hcqX2OXX80|E}n<y;{|vjUW6CpC3q=bhL__NcqLwi
  5650. zSK~E!EnbJ$;|+Kt-h?;fEqE*5hPUG#cqiV4cjG;HFW!gu;{*60K7<eBBlsvjhL7VD
  5651. z_#{4sPvbNAEIx<N;|usAzJxF1EBGqDhOgrr_$I!EZ{s`oF20BF;|KU5euN+6C-^CT
  5652. zhM(gX_$7XYU*k9UEq;gJ;}7^F{)9i{FZe6|hQH$<_$U5_f8#&FMt~p)HiIyTf;dQm
  5653. zH0T7~pcnLmL9i7JgYDp?U?<oO4h4sUlY>)&Q-jlj(>I2ai;Qc*%1o=K%C`@AbF^Vv
  5654. zq=hO9S*v<bE6c3PjMcI>X(@|YW(DiG1G$#fEO8XA#9WQXLc~h5Y9hi~FdebFE=0_y
  5655. zLhD6$&aBX-C{z_qG^<5li?Nmyp-H{onW#}A?DF<(+!V#&gr(k+b31WMceyI^)`)I<
  5656. zdB&T%<L~j*RN2gPowa*OE{qY{My8oC-LZ@m%}IScYBZVBomFy7*DF2ix<_VerK*Ha
  5657. zC7+2Z94nQ_xir&kFLW>Of*`gKV>?(e<kZv-NoysmNv0ZG$VwzeSWEn%o~lZ$R{N#W
  5658. zYbG7bij;~x+?QgW6pH0^AX%ynDXz27C~fJ`NERaVnn<tSC-*`liXt^GBBU<P1qDb%
  5659. zrK}ng)<t6?$^xH7yii6A@{DP%=B=gu73ZAj{tua}dDS~kJZ<Tw-kga=*wFQHQx%HO
  5660. zLigCTs_xK#DeEYwEAnhOVtf{ll(nktx35;Nw`BaaB}F`|yu2f~$>b(qWUR_F(^S=B
  5661. zP%~|dMb@sz?JM$IF+C~H9eQbLM7EbKsqR#;{Y9pktU85L?NZbAlwa)5C8@8~T<C}@
  5662. zhEEg!%=RKHOQCzLV7hcS@>#!R<dfpeN>vTpIIsCW%kwpJXhmeQqGBpNy}e#sW<9D4
  5663. z#zjiy#MQpggR#`cW=!VUOi}=~s;7%=FK&sb6gevr|IGF}hT`iD-7F<fN6d&3qxLY0
  5664. zbD>kJR_pjKZOnuxQ)8LVs8<GD)eFikZ%R?wp6ja2P=|<WVCK@fK58f>)h3f=$m#A>
  5665. z<*FoCb?73}=TdVjL0?o`T9jn^%Awumo~ycb^^XV?j!m0zL{+-ui!iH{m1Efkqf7QX
  5666. z2dSWUZKEq^Vs@~W*2+jH=LpN0&M5@Ou!-2_Q)V-F#S$lmej!&Y+}K+49_V_WJzmtG
  5667. z^?O~<dordfq7qM6wuGt{6@g4u3GVC&>C|kK*G*)nO*x9kqGW{#-6NVbG8f@g6m?jM
  5668. zxe3iw){)f>pCu#77ZjRKtvzV6Nt^bjvhkd<BW%c(tfG=!UUVpAv&{LrIZ|gNHDLf{
  5669. zYRgPjT{~PEu}OC1M0RhuX6c;Gj+}|#+c}YUSx-!<X0913!uXbqri$9S>#;E_SXsx0
  5670. zPn9Z$6bNVcsF8(3roL6uL2^xCuIaoLBc*29kpprs8k2-^KwY$f>uAA++^5sST5<~S
  5671. zx@-=giC^Z#G*peu^>Vr*LsDAyMK0}1cI)5*7u7+|EF-{R#llF_siiAaa=7c)N6OU?
  5672. z4Fl&xuVfR+X}S@>lbK4>B6Gm$LeTN@zDY;AG1G)lB&W(qDdn09nWctHLy&Cx`;>D<
  5673. zQ6;coaf{ChvsN>16H2F~5tklQ1aV|>;t5$%kulAuaeJz7*-WrGTVyWXP3_?SNb1nn
  5674. zQ5_#-P9vErK~~g<{Z;d3ggNPo*<P>u))e{RV1YV*xaL~mI^f$LPFx&>HCtmEByNf>
  5675. zl`Prz(28r1be9}ivD$FWBJ#N9LYJsDUbxN=DXgMH6-c#10M>7*b_DcV#!rQAOZ)j@
  5676. zD1X#nG%X{K2s_6IJfpEE^Q6VLDkOiJ!4e;qTY2Vn^-q*<2quk*=<9^Cv%=+MS%<yj
  5677. zU@UY19xp?*9PH`QMi`G>ZU(k0W0Os^)7%D*SXV*xa-kRy8rC(<?}o}@k&;Y9_+65)
  5678. zrRFm3P(f(hA!(|?iVLE+DqVJ*hJsCcCM%hy{J75ox{AI=3~f26p_l9J*!bZ0onS@o
  5679. zyTf!-n^n?BRV%22+#y19(pPI$D(6MdpVU4CbfT%8$z2jCn03R8?xW_Q`Q(gROLp5d
  5680. zkkF#HBpHPxYE5g4xZ}QA{AWbssixkghT{a4<Txpn6LPnR$TFHM%X#XfxwX1G^LrZ`
  5681. J{{@=IX+uE~NQ?jg
  5682.  
  5683. diff --git public/fonts/vendor/element-ui/lib/theme-chalk/element-icons.ttf public/fonts/vendor/element-ui/lib/theme-chalk/element-icons.ttf
  5684. new file mode 100644
  5685. index 0000000000000000000000000000000000000000..91b74de36778b0ff8958d37d07ce70fb3b26f50b
  5686. GIT binary patch
  5687. literal 55956
  5688. zc%1CLcYIvM)i*vfcYD=#b#2k^N|v>jwAx+SvZX6q?!7l`ud%U>v5hfcI$lZ=$22FQ
  5689. z#3TWM1EB>7;Dk^YLJJQekV;4(O52;~f$)$DNxav;b7t<YR<=cX-rxJr`*~!a+js7n
  5690. zcFy;lIWw0~LWq^*h(tPOE?qwLLG|H35kh<5>ePixCv;8m&wc{VFNX6Kn|5y8-DCOD
  5691. z-Gmt6zH8jp9T#kA`{mSOLTbKD$hWTEcG||x-uIpk!?SRWq_@EZ<J-EM;TX~&&D(aK
  5692. zbN*(6fAlAW=r->-bJNC4K6_7=kN{j}-8(m)zngUuNQ+j(L&04ecb@jWtM32~|Dzf1
  5693. zZ`^(6+2{QJY<(ReKiE%*-Adq&lslFqr|5X9u%%?wAFbh6fKKnfseOZU^52P7Jo|?7
  5694. z<Y!0r#}4TrB{($^R{AOb_0`0|&+w`R{=uUo_u;&ej3;z(#=K?lOI^hsy5sb%8{wLE
  5695. z2KRJ)Zvrxq5}#B@=s}_<CiZ#u3Y=dj_VgXnMNRlpy+ls>w`j}s%|tE?DKCrs1Mj(V
  5696. zs{B>|OaDv%OaDv%w+R09Kq#Nai%ZhKg#2NDgR7KZmr!EDbsc*N&ch@K&#}T#;Twf-
  5697. z7oIM>SNLn;nBq}tl%Ue43@Fo;jmnG4%f~>%!ZU{pcNZQlJX3hT@DGJ4KBZ0xEA7gl
  5698. zGE>>4eE(QU3XlCq;eBB;jtr6|<UaBcd5#pwd*nlEp<T3_Zetz%83sJ+ASVW51leo`
  5699. zeyzkt>>%}>q>8wRn|O$q_=ukbNHwV;wWN;JlLnCcO^}-qydgrGNtDD$oV1WucwZaj
  5700. zyPYJ+1kyn|Nf$|yZjvHtk|8~0BAG;b$z(Ex^pSodlL0c7Oal(5lNn?tnMG!kIb<%G
  5701. zN9L0SWFc8Z76b1~$uhE>tRO4NDzciaA#2GgWF1*gHjpgYNKPf2$YydH*+RCGZRB*a
  5702. zot!~-key@~Ig{)rXOTVRY;q1cm+U3yk@Lv~<U(>0xtLr+E+zX&j$B4ACs&Xw$!ExC
  5703. z$>+#^@_BNATm?Gs8gebUjvORkAYUY3BG;1}$c^MC(94I&&EzZOtK@6s7IG^YBDay-
  5704. z$zk$!atFDSe1qIY?k4w;d!e+yN$w{PkO#@PpxhrOkB}qe+vGdsQSx2#7<nA9z?0-D
  5705. z@-)elXUMbUdr&jalNZQ~<R$Wb@-q1k@(TF@`6>As`8j!&yg`0Jen?&;uah5<ACou9
  5706. zPslIHugF{EZSrft7{4LECBGxTCx3vtRmdO7f0F+q?~r%NpP;7yo4il{O#VXtO8!Rv
  5707. zPX0kYARm%{l7EqZlcS_aRC0_GN-3if)loe)P$M-_GqesXwNX2DP$#XTF6yQp>ZLyF
  5708. zrvbzy)bO$G?*IKi8*c0!;si^jFeC_jec`YmL`;RR3qmPTxI++1io%_OP=XY`AqY`X
  5709. z;ch|D7fInBL5QIW_X>jkNecG~LdjD2rXc9Eq;S6=<gW05An3=W@Sq^XafNRQg1$`(
  5710. z4+(-^P6`hTg8ohlj|hUEPYOo_feavpZwmrxKnjlv0=Ym6-xUNBf)pMT1hRq@9v4Kg
  5711. ze4Y>l@`Dtf6a<ol6rK_UGKCbL76j6T6rK?Ta)uP16$BE86uu`2WDhAkCkUhvDLgL-
  5712. z<Pj;nAP6KADZD5MWE3g9BnYGxDSTfL$SqQMSrAAtQuq%+Aj?SM6+s}?NZ|*9K)#W}
  5713. ztAaq%k-`rJfy^U?*94(9D7-ER<RB^hNDxRwQuwhTkd3796G0#)N#Uo0Kwgr<&jf+w
  5714. zB!!;~0vSpQZwLZuN(#Ra1ag%W-V_89mK1&|2xKiO{7Mi=T~c^U5XfIrcv}!iVp90E
  5715. zAdtzVFf0h9Gb#K=5Xfm#_^lw2*rf0~K_I(H;rD_-ij%@01c5v!g@PcE?4+Ow0vS&V
  5716. ze-s4Lo)rF55XgN}_%A`A0Z8E;L7)pr;ax$X6-ePvf<Qlz!h3>1Q;@>@f<R}G!k-0!
  5717. z_8^772m(Dq3V#&@8if@8AqaE}DSRLZv<xYHC<ycoDg09qXdY7dmmttVr0{P+pp8i3
  5718. zs36cwq)-$D8j2KDL7=Nh;g}%MT0~)jKz|WM5(JuzC^|u)(}<!M1lo-#20@_bh+-53
  5719. z8jmO@L7@AHVip8ikSG>Gpbv>+6$F}*C^kW$BZ*=c1lp1)4nd$diQ*Il8k8tif<TuN
  5720. z#U%)|DpA~mK)({jBM3AtQG9|x=Mu#)2(&Lz0)jvf6Qx=ZXk?<)2m;+qlsZA6rHN86
  5721. z2=p~k8U%snCQ73q(BVXB5(L_uC_zD>*NGAq1R9<w5ka8qiP9_xv_4Uyf<XThB_;@v
  5722. z08!$C022_UMG&9^qO=MEoIsRuf&eiPrA-iE2conK0u(`%gdo5ZM42E6kOfgX1Odh%
  5723. zN~a(|8${_61h|7JNkM=>h|(<xun197f&i5eB`pZ>2~jeF0I3kAM-X5ZqD&M7=!Gbg
  5724. z1ObjAO0OV5G(?#!2(S%NrU(L*LzF&2fOm+}F9?tiQDi}Yfrv672+$Bw1_c2wBFc0@
  5725. zfRKnXQxIS!qRbM6-V9~7Aiz&VnIj006jA010!&4ed4d345oNw0z*$6DAP5i_Q5FgU
  5726. z>_wDCf&hgPWw9W@V?<dZ2#^_3mI?xlMwDfO0Id;axgfx8L|GvS5FAlf3IZ%glvRQN
  5727. z)e&X2Ai#G-StAIL9#Pf`0?bF0Qv?C}Bg#5KfCGuLUJxKcqHGWZ*pMh$L4Xp8vQZG=
  5728. zMWSpH1jvynn*{-eB+6-m08J8Qiy*+2MA<3`5GGN!2?DH1l+y(P>Lki`L4ZGra)uy4
  5729. zqD0vt2rwy8b_zmIm9k3^;8dcVDF_fNQFaRg>`Iig1ObXA${s<0XNhvQAV9W6IY$s+
  5730. zT%w#S2+%H3_6h>rOO*2j0Rkq<`GNoo6XgOyfQpH7p&-D=M7c;1AZ4OlEC?_&Q7#b#
  5731. z=$R;&3IZHWlzoB#Q4=L62(UF#E)xVOn<$qH0=!L>D+B@ZCd!q90D}|dGlBq(6Xmml
  5732. z0GAWxbAkY&6J@_3!0JT#ydXgBL^&V`@H<hi5(G$|C|3&tOiz?+1Od7y%C&+3=M&{R
  5733. zL4f#)a!?Rpf1-Rr5PBMwFA4&CfGA%Q1eO6&t``J00#R-d1l9skZWIJ|15s`g1QrBQ
  5734. zzAOlA38EYl1Xcx6ZWaXg1yQ~t2rLbvd{q$G97Oq=Ah14&a*H6aLx^&#Ah1Y?G9(CW
  5735. z6QbNE2&@#M+%5?06`~v#1eOa?zAgxC7^2)E2&@^R+$jj`8lrqd5Lh@wxl0h(Iz+i!
  5736. z5Li7#xknJ#KSa4#5LiM)xla(-L`3<fAh3>za=#$3lZf(wAh4K-@}MB}fhyk;goeKI
  5737. zkRS>t%EN*v>ikCpQPlZI1X0xa-xfqs=YK~KT2{)Vf+*_z?+QXcsPdQ~iaP&sK@@fV
  5738. z6M`t}{3iub)cH>dqNwwq7DQ3!=LJ#J`OgTVsPmr{L{aB|PY^|&|C}I-I{$e=6!5?D
  5739. zf*^|e|3yI*_5b$;QPlr03*w$^{M$tyqY3&po5Ajr8l_#*KXhw!@9DScZ!t_ZTxodE
  5740. zINrF!c$dj*+Gcvl+-*K!RxJlCZ(FBYziiXl_S!zQ%l6OOUvk(SYaAas7daoTvQ=%a
  5741. zI_g^GdckdRuW&!>>GIs}W!_rv4DV*|7rj66xqWHh8eh(Lm+w9QRR5g;Q=ltwYT%23
  5742. zCj#$PS69!fKEL{n8b{6MnxUFM*4|nBZr%F2XY1$HKiJ@HIHlpK#vP5XH7#m-u<2-U
  5743. zP4L?x7TOlND;x~p9;uG(iM-kDZN9PjAJGG`SZpY!#@ENc9sgU)=9ZgV9j&Ld-rhPq
  5744. zE-~)w<NngNqAfpu!T3wZ54VqNzr1}ou_&=WQJBy?;i-=5j&nMG)!E$n$F6x@U+#K0
  5745. zxjFfM_pI)(rrfFfQ%BQ_(nA@4=ANGMJs0+TI59o(vlD+bsd3VUlfK<cddK&k-}|%4
  5746. zlPB+={HrPQls!{^)K}lPtMBFhbpQ4J!*Y+jUH;L4W1w%~(t)R@R!#l-)c2>&oA%(e
  5747. z{~BCBc>UnJ)4QhUroTKRHX}PDKhrd`W9F)vch0JxwQAOvXT3JNcJ`Xt*Uo-n_R%?$
  5748. z=IogB^*O(tYnwZ1?zQtK&6_oE#k|e)_RPC~-uv^z^AFB{VnOwSWec_~cw)i(3%eHX
  5749. zUHIt2zb#s@=)y(cUQ8CJ7w=ts`{E}S|7uC~lBrAfFS&oo@Y33)9ZT0NJ+SoIrT<zM
  5750. zTsC>xj%7D5duZ9K%WIcUTE1lYh0AYVURcq+V*iTAR=mBEt-NyOyQ^lbdVzb_h_qia
  5751. zf#n(nOKKuo3pC*G>Zj@Mcr5Is25-P<NU(kyk9EVvu7KYQ7sC^n(ctxWWhg&Q(2-l>
  5752. zn0EipQe%0gr)Tn^-dD_D*xxX3BCY>idtKct3tw3{ckV0o3mew7?>BpDEc7z7`G}+0
  5753. zY(HYD-E6TOu}3WSBj!4K)9=jYS9%Xk?&*2OQv2@b>gmLJ4g1?07S_KqcP^yyN`3v>
  5754. z_WhO`kC~a^O-JnJW=LVPrPlHYKQyC1;8<QFk_^^&3tE6Q)Rj)Tx?_=0*x++{{Ykyg
  5755. zLBp|lDw3daS0BxU8fn1gpvE@pgS@3vbchm%+wD;ExTS=qm!zrOnx-_}TH5DicfFeu
  5756. zxXm9@WrtfHYE7qGhw!1icu2*Ehwwh(zKLW1mR^!(fyLhj79ZGTG}cEOslnJt`)Dc&
  5757. z93<!jxDfECGwE17W-#LI0J0e~ctmx?;FdqoNR1A-7&jUkX@*f<eQKPozSh;-AD7vh
  5758. z!NE1`Qs<TH*B`9*E?mCyo0-X1Up9-%?9}=5_nh)-<J^g~?$vbn#!Y`%xy(Id&aV&G
  5759. z_@1|0B6gau8)vOcwHfOJ?yeA|0Vy@EzrZN%SbNHCt<jG8t>$Ux&z^sVQNKog?A1Ct
  5760. zac<+QJAXZAhI`q{KWy6Ay~bDb0@fk=SB@Q%c1wfALi}LOt_4fzEVKe>syl`?kc3ti
  5761. zHl~vNw1FnO8ktdo%!eSKQml_9BdI>-52OQP*T@<$w{2KukyLB~jf4$NGz2BoMvVre
  5762. zFD{bt_tJPN#Yk5`f-*`%#rIQ|g_^4Kx=!=Du+Db-qIDMCWMg-;nr-ejPS#oKqP{Ac
  5763. zm_5lF3iF+RLW}=0Pj|!KhHeiv=<4R$-BJT<Y>?dcxpjJd9ujeR>vFJ@qh8l0kL0q^
  5764. zA)8C`upybZg$He$Z8l!*L+)VQr#=yGqqHqd2YvCNdnlSR$C~ZdDBqj)b>pgsa)Fwf
  5765. z05h5<`0TgbV)soj8QC!Y{5jihk&I1!WsBA6v~JPb(bLl9QjSDOf=ogm0Zl<GPImdd
  5766. z1}G&cfKVedj1*}CT306E31t#A(+9mY3dJINgV#?z4(6xWW^?!=*ibp1)=h}Du;yCz
  5767. z{Mu&L5}Tk)$GcnTe*L0TbjF=a^u@n1p3fq-eEM&HW~OPfM1s)Np-9}0AnjT(QD1z#
  5768. zHbiNtmQB}BT+l`H#r#bFzNJg|SO>5Y;J<33DeJ=BtI#(G`5BUMl-NjY#6_l{uY>xM
  5769. znNTE<^!Snqtbb!N1ARfuWI1n<aI8Dsiy0hM1U^s56Jq53Dm9<4dQkqb`g4Z{H+mkG
  5770. z&$+K=CbBM1)J3Y*-PIA@M4pwI-p_8RD1$$$9YK1K=5x6m-S_m0ZASOT!DH;IJ;-)X
  5771. zbrYpc)$}De+3*=(yp-+Y@G<UBguLV+FZED6agrgu&;zES&&31$K?WLW0|n+QDhFC^
  5772. zI)ld!C@)V4rPUNF>ZgHv{eh$}(o2196!spV7pm{uyZ658V2s8>ow`Vkx~C?h>kPr^
  5773. zsr3Eo&#hklIr?+e-9fKaYbvVgep$}Ta!$rScJbNQF?QYA=B|(&N}APkwH#e#PQryQ
  5774. z`-*LhZBy@2b2JYn#f!_~hF{AR+Zu0wdFf)1ub9K}T*5-ZH&MT+7+^fcE2bZ+1v+JS
  5775. z8v3E%31T*248=o6Xo(&v<FL7ypLv{}aq70KlkILA?{s?LlFQ~WdhD#%;h{72szsM!
  5776. zr&@~lS>{IR{wT{kZ8=Av__p2Uva@i&k+V71JG@@UdXYC39m5vRUmo}~5IgabIua(W
  5777. zz-0#N0c_wX)I;20)T7)t7^6_`Mt{JAn!q2xS_z~xQLLPFMi14Mfvli*h{f>{QH2gF
  5778. z^-+{GUOx*?-j(={(@pj9gkCM`&D5n&#J^+KU!2%A+3nmY?yCQWyHwJf)&Cy3>#7=f
  5779. zs;Ji&pAy@;=H_&BGd;<#KPv4i*GSs;m(zNxNH3z8TpE2ejJL@wlt(@KA3@zXDAbLE
  5780. zI+=s|AU}|+?$`td`2*dONuxqCI6?6=QJz^N&p1{lYt-otks1T-95A`P;}g<t7himv
  5781. zlo;=In`f-GIU?h2)eeKLvEDMU%4UN`tb5_c8(+}TDQTPYTy}}g?lRW7B-@P6t<K=G
  5782. z#JZd$<<=#Z1)W=yv*rhU$y$RUP-FD8INckkE@;^)UwBxO4qqtmY+0}f&2FBL=cL=E
  5783. zX(Ww)Jem$9QB?-~%*pc<F@SDJK<9U22Qz^FWFYQ9TQ)Jw7phWF7x*MXl?098Q>aP<
  5784. zqFV7;cN}C*%)nL!gHoW`J25lMv#QBa6-b2xalg^&t?^eGd=X!IQDRPPV&t6Z)e{=(
  5785. z%{3OUPZy}Q>fEz@P3Bq;HQRihwW&4r-4iC(%B|6KdwVM0l5AdN&1B|#n<lYGOcFJk
  5786. z15?+lubkiFcGc8SvqduM^(JPvP$tjZMeS$w&1BSOvr3KLmMM0tDPW&?UR}^k-L)3G
  5787. z*+qLgw)}Z%>j2d?FxJRux^ow`&g!dSlADi*fc||B>bo2I>pUze$UYa8*bz}c@?2x#
  5788. z8F)FRp_Ru#{1`c`;BX_2;)=^8xEQTCrh4DF=K1GxV8q4c4gQJEY1gU?P5P}XS6*A=
  5789. zpSL93(p$T9x@YxPqjle!wHFxKu5$#M;9I7vIH6CSK6}bip%8kPCMOznXRlg)rOUo%
  5790. z*@_!Okx9!2R-V7owSUd(vvlXJS#yPYZRvNg?W;KEZR36EOOl7Uag2i+<C%Dg4DNtm
  5791. zmjQGY=NZeed&f^nWo}8_+Vg_z@YNe_+s~xo^VTkZ=i-YWXlj_7r7ef6Ud-H@xTPoE
  5792. zH~#AL)VI&vZrhlh+tBpD#TUPWek~)HFLy%uCZRt~Ckx0*l11+=<&CHjTc6*-fM^&r
  5793. zZbHf=SRWKQ>L^WJX-cdlMU16`zzGML6AoCgq0=4Sx;5pT*Hfj7^~e3St9Goa^~d{T
  5794. zx~iUe&eYbeVRvT(m)jhg%AlD6z@~pLc6Wcojy-8;svciIZr!fA#>l*Bt@`e5)2DCi
  5795. z*0)ZZ7ctJ=wQgMf`06IZG);l$5f>vg*7m<SZvX4!_JohgLD|Vrc4k1qs6W~epO?US
  5796. z4d}ZhN9(kN$wLC8qZaf5;h?%e+X8v3!BJS7re~vuqj?(SNNh;u_=#rWO1ibEVRr^U
  5797. z`E@p*C7P`;2>iH#7qo#;k7WRVcfvbSsii`igor`&i2x)Au@Mi)KpSLIqC)}nG#FhR
  5798. zdZ6mV`lZBVvZwm|@y7V1=GN&!rb3gv<f6S7TfN@u&IW%=6OB%cw9d@meUZ-XKsBwq
  5799. z=<Y0XdW;($S$39QZw9UG2{hKy#ya+uUv9ma(LEbn9-ohTsvBylM}5!p{Y@Mt4sZIt
  5800. zM?EGgMU#^vPYpQkMn|*e8qGN6Z7rS(v0&x<EBI0~mt1k>B@}W%OD_SwMqW+F@41?>
  5801. ztM}x&Ny*<m0PofVlEb%$y5k{(KE%t=cmgZ&?o7xJ))-c6R9(<YKUAwYhRIiQbIFh-
  5802. zGa^evOx`;uJH+wHU8<@v!<^r`G?&W`UHYw3-tql4I2L(g-peo4^d2xbI_KqgshgyO
  5803. zJ9i$GI9u!_Z=)07E<6J)Y59Ipnhi)}B96k*M&@8~$v5i#DH;Q0m(C>PVD~}W3PF)1
  5804. z5fFm??C%4W1h6CkVgqd)GnGj1`h;)EnVB~$`BT4XcROZHHA(&&bCxdgo!WVw!);&G
  5805. zxhxnvWo@l`^JON<S7RQULpx}PB-6f~XD+Yysc+va*uR&4&+W4U*jj3>t&%JkO`5(B
  5806. z;Fs0s+F?m#SG6{b@4wSpQ^hQ=s%Ov}h!%_^JuBe|bOYoq2|4Qm3CB<waPzs;lw4d#
  5807. z(9lSJJubxSaM>l1)aq_2vo-})n}<S!rUj}aJ)6?m#c_;lks@vrY{!!Pk{yiYyVq@5
  5808. z+rd_xPN94$&wln8p|jKJ*~Mo>PFPOmkM3APWzp`20rLexu0(KTIO+=F>!E}_h!T9r
  5809. zuCF9c$~-5#(wP)=Yc^cW)8;y`fSU*8mJFqt78%~A%D|&wR)#WzlFG7NF;~}2X*25u
  5810. zK{5>TB**iSW?azZ)nVuq4(x_pPuwn@FRcgeT)<Ta*fn!-B$I|xA*l04NTREcO#ypM
  5811. zGYTT%1j7bGkvXp+%v+05u#f(VJ{qk&sVr>jqHn9=hSXqeOKdRJ06;kG@Iv8j>0UQ0
  5812. z?xjr*ucy)Dy~yc-zT1Es5Rm0#wUgcB^mv@b6|kkZ5AILK2GjNR>A_g?2Vfw+z4Hq!
  5813. zHhW$7+whBSuj5_>+^`v>9_JQ3-ojHYA0PdJr@`xOz+p@-?+<}JG!^7)4GD6Km0Lo6
  5814. zRD&Q%Y6!={Qs?+WukFkTIRXjF5yxf5GZs2>t5%(7$_(nMdWR)!Ru2x)M&qKMo<(#O
  5815. zZ89yK*t1Z5omPQ_`bX2|N%mEHms_C%^9#2dSDZohXRivZ?=Ak(;b7H0Gbx?f!?)+F
  5816. zXVYtL?MzA&XR<kyEE6<4GzYSy4s^i;uowDp9NYty(8n~4$ej_ul`jI#CYl5^fq)Zn
  5817. zQyLB&(BP8dKoV{xV?`C^>N=+c{pZe`cdkD;rL#_Y?vQ-wIa>d$t|{nPzGt~3*fd{X
  5818. z6&)X~($nFq#nBy?e#=?B()leW{83y4(BWWJaN@Ws{p?kgu9~f{8aFZ6ap-4N8#h+{
  5819. z?7Q(9)tPD2GSxHU{+8O>7C+yr2c)4(E*UzkX$Z{ccR^OoB%NdunM!5>f?3ABe_kWS
  5820. zwlx7zAmdmXVLzxn5Ls}D+A!0{{7nMl=tDk$l_3Dss4~0y8Fw3k#gvX25m@(ADXfdd
  5821. z)IWO?-3hneqYH#1_UmkBYn^+i&h7QOsk3}161HD!H(6`l#a;C2DQ>DRUt`ee4Ew!F
  5822. z&kd*Vh3#JTm)BJ@j~y&r*nXZx^zkh%>Yp(g-A;F%)oi=Y9tj6@9=#jV^iZdEr`Bq+
  5823. zUuO?T0@9moio14=VW!cr-{ZMK+3SHc_h0vUyN9ujxUJTFqC?U==(!D`J-B5X)!c(<
  5824. z1PQT$QlunFJP|aPoHP>URulDwQtV}UzNt9XG+*|w-3-D*f;yv{*Mf9WLAuZ%tWoXF
  5825. zX1gy(?Y0`b!KPZMoNxckf(4&x@9%wd2iEeAM|%gjh^b>lMW5#DUo{xPGAjN`M)O;f
  5826. z$$6=dI6=~NW4wq*a}|_a2N|wZgdr3{pJIY?#gpQ#*eI|(4V7JFAiKbxeiq*zY>3oX
  5827. zr>q@~s;;ranyRjkH0XbM`0&rCNJsYXKO#|CeWF#Wve2WJDyfy`0A7M*<Q{@vYiE;O
  5828. zm#|$^kB*=EYix-+xvA5tKm2n^|K=_5TS(y;Im2SLTFw~33Wx>c+yf2Tx;qW!3z`I(
  5829. zMHvWOx=;?LT*6Jl<)T08N`k#2X?H-p`zV2i-4H?jJYynkC(b~hOoV=IpT62RA02f$
  5830. znf`(Ha!mL<@F~E{q!o5`3de`vv#*#Wt~GVOujclyS)$$|yuVWRvwyo&<2A>5oy0x2
  5831. zpO9C5h1Wp4Uujv5#rTsmR#Q-Ipy2508E_?-oXgnUB;V2koy0Tpg5{$#a-ZwKMgdVa
  5832. z9&o8&<@bl!_GQbqGrra2^TX0J(jYOBD75!p%v%)MGd4-s&7tuyVZLP0^W4b5K%79)
  5833. zKb^os6nhTV2x1~&Xrz5C0iA)azswmh<roW2ZM4T`F6}k3U~9$}o4c^_i*(V9C3jzG
  5834. zTR7v$!u0spS4=c*Jg;~0;4i2*8m~82g}ptt^5MjXFEds<E;9#Nq;b*Qm@U&9Waddr
  5835. zXU6OeUs!Nt<^tQ5cQ2W~m@bY?TReI1M)Sm#um8atb{QMuQ7_fa@`m6r28R-#5kaKK
  5836. zp<g$Ewb2PS@f?gl@|3*GD7{&^OQ&KIWHc%2EXnH$cVUAbBs+_Qjr=!K$fsE<(U6c3
  5837. zIlAHN-;ldbUmZ8shjruc1$1zX06e&Nye_y_bIQwX--ZqQF6DL;{q}UDtvS^g@VPCX
  5838. z=4!T4&Err5STuLjUGuWuqT8EgO?36OgQ31^%fP0zG`>##*Yq}F!L&`MhT1m0uzxq~
  5839. zV~{Y8Jv2=0s5R9!>FrH1bs@KavenmKc;U60%y=E}k%QEd5XRb3Aq)aOzuOp!xuptC
  5840. zRq{rrxN`H+9GjI+&tkXV?>l<H|G=dZx4w>I_ee-Y_lv`ae?gx>e-mXplZb|9WxBf6
  5841. z|GxWf>QW6t>EsUoLZ|x$Z3xyiH`fJ4WH*t%FA<Ik#v?bQ92CAr37G0*RB%$s939Sz
  5842. zQ5l}S^<UrHX+OH(-nsYds;V*5T)`mQHy}6|Fs}I0L+jQ(^raQ*EY6JjmZlFW^Z`}6
  5843. zMzZr#;eZ{XZK+=iq$1p4Nnthc@faFf$K4+eOk~AdXKcTS^0(_`l$4L?=&p6^pJXfD
  5844. zbsRY2V~(!*(e{of&f%{=ECk|dx5grE<TxI<^bnX8m2WTQ4sgv5O_n@znY3SWRVKe~
  5845. z!H+kcx}vt>?%nWuSujH{+<wMe?B*`cD#x&O?j@1#^mDs*T*2V|f|qlin2?B)vTqlC
  5846. zr&bbxnrRnajnXSCMOOx)0x~M092AnTJIzR?Q&XhQw?C$JEp_mJ0xvJOBv*JVk3L^|
  5847. z3byxo@v%Dk1V}h8$<UN9@%AX^t%=Mdt1#9M^fLBRR|FKKF>XM253m<;CDWOBCXj9d
  5848. zX%vqE!Cg>>5nnQZUQJ^l699M;fM-DWB~y_&s>qD7BBKGGMN!x6thd|z&9)UQsuOK*
  5849. zx6POVn?PjbbehfIK50^Wcvq+)=5-EEtFqL48$!Fnqc55pJq@7`L{Aml3NM%>=jPV-
  5850. zg^rPF>AAVNb~|k9ri5te)aH$wtX5O6+#7E1Y0I@WbX14oq;xHjfopZiK)82)Iq?nq
  5851. zM!Cm$**(Y0u7>yiPLO}Jkvnw}9DvXU*fxR2pp+1~1&lNkFiI(H@KM_@WYp*}7pn}m
  5852. zLng0zhWdU)uQT3k3mJFlq`}3fC+Om}+n(A58b=1z1$7HekiJ$tW|VY0j3L|2Mx8!F
  5853. zt7e$Jrb9MERnhDTJhg4D`at6J#jINfCADP7vodcpglIB5Plur$dZ8V*k`%_sdMc^~
  5854. z4zSU6r=z3m4M%XhV<)}%U`Ict{T*VfHM7kpxi<ME*M`d%I{N#ywmk3&uaz+y`%l1Z
  5855. zXkCCE9i@O75pWBj9f*#&1|#|rSvcyL*3g@+QKv;+Vyd+&7F|`Xm3^t~=+lO)<<fX`
  5856. zX>9shHrFYIs)}E+>P_D?)%qpVAtCzmqjqI%sUvKd_x}jSQd2((7>F@O;%O2XUH&KU
  5857. zF61xN#+drIzx+l08)MY=mwSHO+WOmj#CD7xz=r+mD}GM28)=;NhcjmU(8{-|F`G3X
  5858. zZxiy$1}!@V<tmf;WDUmHjxwS>l_ya?MyQpxzVbv$cY!Sf&p}t{rj;ii5&j@zA!y|Z
  5859. zBSNA%#E!nI)dp;exsl^bEVX7H_pskgU$x-Q0~ah$o6S6!VZXUnoo<1vwH~}6$tO=G
  5860. zKl)u0PX259!;zP%T_Z0O{;|JEmq`x5LcP!ig;P8!LJqhF&Lm4NhSZ2IL~p~0E)?+y
  5861. zl5XW&+d=8cbm#i@PflM~sbSQrQKu_GJ6@<gc-n$y)PbiBMVrUZsnlL9I!aYmJVu0m
  5862. z{DE}8l;k6+=p(~Q>8ITK0;s1&pFn*%*aYed#ZfagRn$|+B`h^jn|ROl*f^UxV$WJE
  5863. zS$o868%HCp_NdvBHP>3QX6mW7;1!Dp&&*j%t;f=;zBLX59N+{lz>QX#ZFRs;;esU#
  5864. zX*pVHY#bVFn5L!LL(Q$~FI(ZKX8wd3e*zaU)&ifv${I&wn$PkcXv1Ev{e@xSb<kKG
  5865. zSj}`Ivz~5*;E*3<C+0w?TZ$nFR=3Bf{@iSaTK;PuPiU(+fqN2%fJgsiahh~^z0Pd0
  5866. z{FNQzr|=toTAZYXr*IuHBxR+n=9`Cd&-jE7EdwwY&6*JObI)->Gw~7*7}h*!w3ufy
  5867. z+Pg9w2Q`m75&PFPiI~d@3pXpXpg1~;4thy@tcd%ALh^Fk>uKqEX(s6bTXzOWBn}=C
  5868. zFf#Zb5$FT@a6sS_-klMaw9y2^!9ReydLgBvA_G#kD`}sZ@qPXj;a}`K)#u{|aFx?>
  5869. z>z+NgI-FI!_=3|mM>;3+q0HjfHD6zjyCP|!Ve{E5-D`F-wBM#r60(==KFHX?-Au@1
  5870. zI{&hB!#BPtNiRMjeuM5pbY+(8-z%Zs+rWySQyN8&#3Mc-sY2R50@emV-;4)`(>2s?
  5871. zOo@E@Xk2@$vJX&}zryZf9=U1@uyzcM%q>Z}TD`*IVH26leuc0tWx*2t{%m+)Ha6uP
  5872. zG}Ih4WtOe7e{V<>jM%C~_Bohrukx?h!`Pk`et+)*N*DC{)%rOFe4;Q18+OiO$w4P6
  5873. z+4n#AKhNJtx9tP$rWw|sGJhCmR?3<KGy7@s*Nk0S%a>itYst5Xx@Q3JD2`-xW7LXA
  5874. zGh@m_ESf>%66Q+^>>QsIa)msi!HPDTtUM7hL_D$#T}Rx^k%fbt=JU|Cig`^7JS27u
  5875. z#em2J92EHx8<ypw%yKFz1A<C$kViyKg};jq;S4uVMNCjm;x8?7Z)3I$4k-7r4}lF?
  5876. zH{$=$3^NV?a|10&hp|6o#Q+=*6pAspp%X7<HTw(sV25yaT{Ip8OUF#ni)y4d{TQ8P
  5877. zI5-3nxyJJ3kD-Y<j=?DkRYFR6$guC=>^G1_I6?{l-@rW*i1`55LsIPM(W9s*j~=x{
  5878. z0~k4OW_KSwih2@G;6)Y3VjK<99%O&x-g|<9jwpb+LdlpxG{;Z4LZ3HRo9SG$Sv_K|
  5879. zcAIIB`jYvB6ECrMOeXbSbFEpu*W`w~GL_BMmXlno;GqiV-vJNsJ~KxpTsfR@fw}N4
  5880. z>Pxi845`37&1~)oSKh%lsChMSu5p>@a!ZYwE<fRtHsAVs{%$CLgBLOjB^rmy>5hfj
  5881. zMofxUCeGf04AfXEGvF@Q(K)P}r^B#{Fr^GnMw0nUtKINY$UNtRwP^{O)JOO$YFy>I
  5882. zW<TNeL69BfNu&c=55w<8>AFYCo4sSva#isHQo&Of&bZ`x^Fc~xWGkg5_n+#0X0y3Q
  5883. zWTXZT;k=%;s9&*ETPVD0k@_HP@#Hi!*WurhbX*p+iQZ8f<@Y5^E{&0Ri%~AXyvNS_
  5884. z=8y>W+jgy4cgdD*xA<MBe_af4@hyFnZnJyPm4d`Rw{_c1PV3oQw%n<1E<FO<lH48U
  5885. zzDmUKIAT}vwm^kH(v#9ux+aG;rOwY7sd)Di;YH-zAD4#OQHrh^q<KK&*xhp#Tud!J
  5886. z3|sZdtkCH~LJ91S$C|GpC(Q$!s0q-9@MH4;-BQ4A^tdPh{U}T?!UBDvfG?Ed?vMcY
  5887. z7nGvjm^Rv96afNswh)*3y1mn<ub?ywBA=bL?v$@ZG0aWPl_FYX%wSFn_J#eeBj}sP
  5888. z2V|RL>r6RTn_GXtTeV{4h#tW57WojC>Zi#`rljmVSp1loPm+;WMTz5ps!F7TpEwso
  5889. zvZyC$*HA;b+|Glg{xDAp;p}1!UIMBP3lS3#@`X)y)w+IVs&$#E(^PAsPP41V%pNX&
  5890. z!{&0?*y{g6fJ=kWQHHsA7P4!AJp=t7V{$?zLss(^dARHn!c!vZshstvc;3vIK#?cI
  5891. zwOiSq{W-p)IE-5@{m@AIB@KoJ55+E(Bn@_GBEqnFGFtj9_|fT$GT8{}2RQcztWIO4
  5892. z$bsb9UyI-5b+z=k>{C>8|H+TwJ$Pe;=NzPIMV>tse$Bw~Qhm5$WW0`A@b~JlnJ1?u
  5893. zj{^hh2gkny_4FSknSF?SM_nT3IzC$L8d>lp?5$y!@;6@op~Y8gRbRDOXqUCtXCdXf
  5894. zyiJsKR1}72+n9Vnl(Kk9w(NQsRg<EiwQ%`t24Bbo$D~}BrS!|?qTwQ`)D*GBj9HhX
  5895. z-q2e40vz+q>!5}6m~`RU=ogYP=3s$j%ouZL(#-(}^9Q1kF<++_-k$304pi0<NOHJ=
  5896. zCIy9CX_}*FZ8`OudmDmJdVbnJ@yxSm=<?I<$Vy$RJt*aa!J~3;NW{qTetEwbmqAdK
  5897. zJMZN_!=kS~v95pL0b0LxbKQL7_J^KZB?sXzr+LiL$Omg!_&$Yxc|__acHV9rv=OWt
  5898. zLxN=t9=|SQ(DB$dcgEm;e@?RZrXM~(^PFGb-B)k^=5880uT4FA*ImD@vOa!zvzZ;7
  5899. z|Kbm>nIJE$@4Nfg=a|%McbGRHe%xC1+q>?fy0-JwH%sw@uW@-6!kO}|R0Iif>mNjJ
  5900. zG*p_OfDxo{jYpV+=rR~_G{_%dE7ZSizuuzDZSQ+0cj@Kc+UM0XXw|OUeC{*0o}N!u
  5901. zMHXfy)0t=VG)~!f>!nR~k?M`-t!t}oqo3Wr{mYKM8(Z4nyz+|M2Iv(#c0Al1TDY-E
  5902. zXE}S}qRn*f#2db}j4q!eRb~35sk_f?Ew!81BtPdB+Revs`pGzxKZcXid-IYG+R`{^
  5903. zN9e;70k!BL33c@`6zRf477}5HTtl(nglvIrmv3;I<FgkVEZgVO-Q(u=2I<P4b!Rc@
  5904. z&^hYC&DS{0J2(3Ftyp=0)tZ7+22G3m<7W3cbLXsQ!QQ#!X75^DeK33W%@VtG)8?CN
  5905. zmYreHudR%EMxEbGI(e+gO0t=pg>$Q;V;}%&OdnavkUYT=79Bx0;n=7X;gIPPK9^A^
  5906. zV}gmDqug2Q>y}z`0!_4bGiw2<)Q)begt@qNBn(|5Bge%n%;t9N_X%??^O<qy!3+5@
  5907. zpa^@i;<pv)uuC8vw0<Fh;yWYhyn7PvP@IhBPQ(r9aK4d;`>I1YYT`k85)Am=#t62*
  5908. zFpl3CD+P<b@?>et+P&w~>ht%mZJE|OYwNZTPTxAK^~RDAp(IG*NX4UTsCmV*Wh>MV
  5909. zuDS5t1@q=Dc=tjfG;kwgjx=6yrJ-u>5$(qn95SQiSjDTgwh+-`0xH{pzG7aNzM?$<
  5910. zU)-;R<@a8RwX6vCmZifNUU*pI;g{&4yu)G{M7w#=QgifImKr#*MBqeoIdiu2@H6<a
  5911. z2=``S>I$UjaNj-hyk#Vra(Uy*Ea>y?LcCR(zs&zxmaeP%-qlxsuWG<?>se>r3WD~d
  5912. zbE1js>{Sm-(!*EnzLv3TcY|{MxJ(dDCqbVbBtDQK88S!~<2n=-vc#x)-_kKIN5Tn~
  5913. z;-OPw2H2>KB|q5-`(4Cdy*0O?%F;Tph_X#{>A`v1&H5Ezl)kV--QBrzu$k^!<-cUb
  5914. z@&mzB&Mt;Epn0+#TW1LOPBSg+Z!y|8Or5)lvFyBgXMYp=TJzwljy0FNmTWiZS1<G)
  5915. zP){8xjE~-EdhSUckI;haqeOi|Se3Gjct6Eu8BSLiDI`&$ekV<$vq%K^)8NKSSUEQv
  5916. z&StucvNKjOx?)CU5zsZyyWOUorP*UX?elnKtf@8_PWz2)`s~J$OkB4yyWcTj-#T;F
  5917. zHfLqFXKtKDo2rJZf>jUV-e$1Z*d8p!{*Baa0@`SrOu}~h$!j<1i)4U|+8*iC)!wOm
  5918. z%1^em{S*}@%W@ECNG|)hF!0C**er}*VNbHN3ov%1GYsgAW>Rs<757C_dM(aU?@Icj
  5919. z86FrDn?QLN$C*^X20K00L1{;<c#}-?o9tCp_Dzx;JPHB?cIww`@7dJ9(<*muwnvwa
  5920. z9gL-QJv8`cs~J$xLAx90XKUpum-So}G~Gn>yL}=JX9Q&hf)A7x2tH3L0!)W|V4$ax
  5921. z7`R0$6_Xg9=i9qPgLk8l%>{?@U^g8jd0EZpDs;=V($lb|Z-E)lZFw-Zc=kyym(Qzw
  5922. z%h!;q$U_r}lMcwkRFKlk$U3qG*KZj!H^=ep5uSIiK`I@@#h54`*AfR&5O<k$7s4|<
  5923. zXr$h_ALovCL!$hkk9Lij_m+{|4vo@=*J|O=rOA8+2M9Jxjfeii-fXskQhvu~ZnlGl
  5924. zd>8dOdhf<6EjDGOaA>YHwLlx09QDq5r6kb{h)Fh=Uy9lrUaHB|Tt)jxV6O{}-8y_m
  5925. zEU0(}@K2<Xq6rx`c%YCg!ciiOR20enilBzW2+{edl|$AhTy2mm!c!`;IjthZfn6-@
  5926. z0NflS+RU#za=DRlSR)^=e@dFp^U(<TNRw%}veH;BBN{+!JrgyeB^IZpiI6c7#o~*`
  5927. z`dGk-rj9X$ky||OY0PY?m-Td5n%yS)N3mD`HdGp9hPqkPWL>(eb3%P@o7J9>rZriY
  5928. zoQY@SEp~Z~{7wrlbv9Kk<y(3+uTh?TQ|GRw)}{$|%lO{<2^Gg9x)JNq2l*ezB`BdH
  5929. z>wL}vCE8GdH(H)GQ&Av#PY60n$kPg<RSF7Ja@`lcaGg4=4hg8D4vCVl6N5T@OPjaA
  5930. z19^3L3p=y;vw7@UIxKL>>OWj{)gRP}R2~*+WjL?Z_dw~Vuzltj!AX+&68{@DxmnFu
  5931. za-0C|uo8KlJTr9EBW2{rPM!sV;4pZM1i6?Qi&siCc&N$qO1}C&Ay=9cQya0-<}>iN
  5932. z^|4Im%Yzf;gO6di^3iN*eDcIHZNs(LJ^}Y9Z6F`Z_K=tp)mjmz@R4liv}sNQqeB!l
  5933. zKj+4Zw)|<@@mOv5MCLv%W4hyHW#8DI;&^3<7Y~&z2g0Q)!azRG&fBwc8<ieDaNuEy
  5934. zZd<wMY9>SkyLwFL@s!fE7Zj(TA8>a1oBA2+Z}N9K2V9F&A~UJQrLokK{Tmru;(Pei
  5935. zP|X-8m7=^NZmoLGH|{anq&auqYqC{{vB8RvHI}>g&N-6JbkCi0B^%LV$Mc#G80UO1
  5936. z6wylBB$Nz}o*(Z6{-{nRfp(9E1b9KK2IY8OiwYMLQ0j^~rp-MmiaovY#EzDyvRdhc
  5937. zV!6`Dd}*}4JkbUAG@qWWK666vqlgCi#CX0Te636<@7o~1CMa*5XNG=nTt#Ft`j18H
  5938. za7DSZSF{djIQk?`zs*EkU72*IJEo8L1O7lf=?cfuX@h{*I4TIWBIZ*T4MfeNb5Ar7
  5939. zH~sH*=CHqh-_sigCh0xJv)5Zf0XWObll0U>cgpfG56y9?xV^Sw28Be9X$_SU8KVqE
  5940. zb3>aozbE9k{aww=lkTv4<;oK^moIzfgqjxp=Pqp?=nP!zFoa&82+p7Yeaov-3<Bd4
  5941. z7igEX@wp=vbHb8T%v0iP7o@?6iM3IEiZ5`{NRxDU;W@rgu*=eJF#3b;)xx*A+8y*8
  5942. z4GD8sFyuRDVXk6uH>-+{G_}U!k`l~hSgn%P1`|t2F3YplE%T#Ihuo3IDp9#rjS=^u
  5943. z#@PHV)@L;=hiyfhQ)ROrGFb9?i{X&fHX?gVn6(jlSPQO|IVP@(_`vQAWPJVruHlf*
  5944. zU;wXCiiLsFV}i|D0I(Y(a<nzBUUhD~HTo5nc6ivNd+)h-67!6K9;GQSnM^PJ%I;HD
  5945. zpPknGo$6<@S$dJvf4r@LYXBs;H)L$ClVG_-Qpr>#<@q0F;4W@!4gC+YLEl2?0AM>i
  5946. zW_FH~ag8654~8NxJ*IeT?3H^iY>~&3Y_F;R+O=TDs$C_&vsg<<#<eh`$%;wLC+th3
  5947. ziOJ&zK1T*Xo9J;9B9C8zhYkZMqm^+PVhh3wf%3`k4CTwi0gilDlVn8faatb^b!0Wt
  5948. zqK%HfB$xWOCIo3oD3a28E6+#+yxeh350Z&haqnK0(GZOLgPC+yJQg$>s;ED}R}{#=
  5949. z9_I^F;kAgx(=ooV!1u1W;sD)p0JiGQ>&~NH=k4Bop8D!}yXjex#x{SSeAfb_al?!A
  5950. zW(U=~*5_x>jI@S>Ej5#;9G-8OR{q_AD;|Vjm43^5jK&3b$$kE|#z=c`_PiI>pR`71
  5951. z&d#ql80H_IGP$NDRAIyGiHmE;)fjzhXk?i_DMKBSF^VPu6(b;iXgoSJ7|~NE0_}{W
  5952. zciepz=g~Ns@~#_432#^bVe?Ht_hA2?4by$<GxFK6V^7+AgXhdrdscMZa4X%menr;}
  5953. zx2iYOEdh+d@VBF9EYaSMAvW#p{H#5Ip%};C!N80fYMHrr(AVgjzF|*4?f1=Ce^%d~
  5954. zndc7r?8T0C^t4-V=w7j2z4_J~y4Wl~J|AdDZyP2H3AVQ<_?aIQJpK;yqS@sm{VU36
  5955. zi{LE4>0p~L#&u^aXY<4>dY_br8aKwG24ftK^cjC9U;w2C7xnxSO~VC#A1_AJ@T@T&
  5956. zz*~BLWz4Ag+p7b$Eujf)XSgdgt}dY7ZjD5&iJjx)!G;hG$H!Yk4Qc@HwboU$3u>zC
  5957. zT0>pxy@>=oH3x15<8*bfF=QKG8EoHMX^8Hw_9r3}<C8MudZL}aSNnCkeuKyE?{Qh{
  5958. z{q}yVOFaeeOaMsg?TGe_+h;JqBVBN#$Bz&7+cjHN^baGc;#eR72xw->RyF#?d^4Q?
  5959. z%~zU$qHC0J3K72yWt7HiQ9tOo0M7c9JkY619Za$&dksDNdRMtz{q1v`x;jqzX?w@=
  5960. zK+UXIx0rg?ovZ$7`FHv!e{ObNaO*XDYmK29mr{G9F4EjI^-I(7{_DKMh)%bo^U@h%
  5961. zW8Jxr&E7v*{?2k;FtX)`Giw9OJH`*}UDrcz=xmyk=ySEMeLS|Z_tG9iuRQprX-$!c
  5962. zu4(GI>w1dwE4r?bi*G_(=>R(f<7fl^^aLJ4&thTp?KL5|hdSpAsPTD}j8C9sjm*Hi
  5963. z6`KHP`S&^lZF^K=x?_8oiS0S2W74DJ4Z228Jmi#OLr$~3(fjr$bGRjJ-t@M&$!2yA
  5964. z#Uy7a?s?(*^Qlg!J|Y=uRMF{_C^brts5%|(u}IZX?^|DW#N#zm@cSOG*Yo|LR1=Ro
  5965. zzWSCoS}mDRuhb)&G>eWv(u}VHv(k^juM(+%junVf%~zaoxH(Fs(%BVglgbr%l;uAT
  5966. zoR;h<5r^i0UYbBZG0yQWBk7dO(;0DzI6)D?OgodV3XGlcXwzy0)OHE|fi5Rm)|^fb
  5967. zM#_iz@@*-I-X4Lq$kDujlzDUjN%FCg6Sz})>{wZEKg{P|)bceEeC5eJ(DYNnt<47s
  5968. zqoX{l*<G9JnjX94lE<3rHto7<e_iO;U;grNux>xKq8-YHXY{^t!3AGp>`ND1@J8>9
  5969. zDaUTO;X9J_o$GHr_O+l2mMxWoqx>jhT(A#EgFeC^Hdf61n8SW!!i=Xz51;KCi9lf$
  5970. z(d}cP5NT~i0DQh8cx6<g8a~PMwf;gUi5t+53QUB%l!%G?MG-u}<dKj`NL>UFF#fU}
  5971. zf5gFfphac8rzp#IzV^$QB}p}#9^bAR`*5fiQ!2%3N`NQ%q7M!_wk4`E0TQwC39AQi
  5972. z`i1q*kUZFIO*T)#)tD}`2TaylpfQS)J}yuu=B8|oZ}Cs-uMJF`+0LGDnd;o?n>wCE
  5973. zZQ%HP3LpDNdQi)r0jbgzGiILNF8R|n*VR}!^zlmLU%0rA!@w;cVds~Ei%Q}CW3tnR
  5974. zBgh!DV;RE1-OrE3&XQ69&Jh0Kz)5@#qZYpyt6gL(!g22(gQZe%kD48Wnd9c^iFrDe
  5975. zBfRBk;&3eRNjTBm`N5B2C|~iDAC1ME=>*=o$wZJl)5fl?_*k`=0i*=FG@f=+fJvZY
  5976. z1BS8X%^1!nc3b<9$1~J^Tirj)M`Q5*?=k#P^ybk&=SP)exabFQ@$dJ<OLHc{k^~jW
  5977. zr%j+?gQ_#coj#+2032L`f~L#S=07kZ-bv9hU(88I)R%B%3`fXlE{6_h3Du<x8nQS*
  5978. zWzB7YUUxM|bNi1Jui&u&b<NEqen%l2+lA$e^I!mPHd0?{VI0kNbBP5Man`9=>;P4N
  5979. zfO8i$;3`%WN05wvmgx^^UBX|@CFao&GTa1XSMTAof4f#j66r7Bw2J0Auj<cmXvWO)
  5980. zd?(9PmeUiWOWR9>J5)aR-dY1r2sT(dqlwAQlX8pI|GEb*$cWzA^IB}!$T|UbC|_Ko
  5981. zNy8-?EYU!Tz$84TRhuNBEkBbg&(HUjhebdcFjC?7Pgk^^t_u&Nm}UDm$Q$-yY%8up
  5982. zR~r9taL{v%j98fi@VgOz(vlrVpT!smjDK(h#jG`P45`ZH0UjY^aZNryNZ6TVIeuLN
  5983. z^N@0Bv$9JQAYA@{9~X(q_`FaXabw0WR=YfDrU24}(b6o<T?X84tf)Tv)%HO3=&2D4
  5984. z8~am@a&paSiPI7p`D7WE6U&xHV{o;x_O{9jr5%YnIYPCZkC%6dA~{A9vu(!ap5R3J
  5985. zg6>t_HK!%QCn*BCZd&W6w7A+fxA7a56^=UnE$J?)1!~?8*iK(Z`5YdKV^&;$#-)GJ
  5986. z{+4%(<E>7~YLP5vw*%1d%Q}zWNjvGU+tioYLiKml8E}IotJ68$=A$24tdi48bEOy=
  5987. zDbI$vueOEHEluMWRX#Rmw>0B)RP2tg@?^+S#t%iAX)BXy%Z{<xV!TORTOPF0_JA>j
  5988. zm(qbAOCGvQM&?c3s*N=5s|fVbmGfZMX7mzI8LFSax5QTrl5qAjIvH~%Cvp)=7{PYQ
  5989. zgWN1dKB%9&Y;OGr%YW?d>gjU-m<_3<v=#|R>RQ7`k=3vMp(z}0qIG}v`Tf2>b6NNn
  5990. z;Bx#jQX`LpACKS1>8B<8fzKYp0QgZJpUUD(jVjAM%%OR@(G=K!eN}|NS~CY!j&Msz
  5991. z7x&X~l@&Uq{bqQt&E;j6Xb*F@5FaJWSB`~^@GC~)Nwkt#SLOt6OXKXx(m|+nK;0kB
  5992. z?y$e1VSGcwJz}SB7yF?~mY=UXk>_@NYV?1N_t*G(S1ynr9e_n=VMz!4$+9N(`f(ym
  5993. z3|G2Ll~*7M$2}kpy8DD-l&m-oRUAL?x#}g^vX*U*_)qcF87H-j*M0chb06wpyYti^
  5994. zIsy*(51F{9e57tKAGWkx$Las$;KBdU!?t@%d&3Kc2G18$7sz+~-C+3p9kA`7Q|vXh
  5995. zHFn6)@q1E|0j0Y6*joAMqW`!u*7W#Dc}DrS_4+<(iB>k+Oy$WZC`V_x5toF)Cn>s)
  5996. z%7)BF@%~A8j>R9iJg{WTy+4wq*YCUUb*VYzUjv-=w2Whadj0i3G4|eT=bzFt-qxaf
  5997. z>G~U9)ahQlp=aCphG&3}Yf=|aE%QMWJnmH3;zE|<*9ZsrDrYP4yGS250_Hi{i07yx
  5998. zJn0joBD9A!`6QQGK&je`!s+m{6G!<irLxYScu$>EmdeAW231O49!ZrqF7=s{1OeQN
  5999. z)uLv{x>J(fDtn3J89t6eN20+>rKA-Slu;KHfmp5fH~>Fq2Liwybcfih*V7$WeOIUZ
  6000. z?p5mbV&B-=2>%lRI{Omyw=%YMKHsu^@U-|1Y-huR;_<7#t1fIvPD(bw<B7gGrN?3W
  6001. zX?dpqW1i^;ja>~5UH`u@O-ACh@#}Td(DQ;Ul_xcKbMH%_yz~!TlTsWqmM2C5AlB}L
  6002. zv?p0kYXKD7S-5fH3|y(HG;k)DJY9KybJBFmS11%WQHRb>YlF7A$Rzg+UsleEd$>Dx
  6003. z;{8+mD(;uo&DjS}y7-(^0%lPk&c=80gMgn0y2oQ_T*JeGv-<m~CqU!umBiW}d!p;=
  6004. z-nH#(7Uri9*ykS6_G?D&w5xw^r_T1Zy;pZ7>^*A}Yv$Sqrso$P(e`V~cj#n%l<@B!
  6005. zYBq-G|G1(YuCl$HtS4K^ZgK&+9KWCSah}8sg4IY$3s%L0Q0c&f{->mmYg};<Djjei
  6006. zo)4#fmkwN|1HQyV3Q|jz4qT-JTJkSy!{}%_X>}&{{{RT)z8^R0tL4Kl^7DuI_D60<
  6007. zPK<?@w^HuJYhtK9SMfG^<RyIF$jeUr(b1D6goC~x$q_00!KOj)?9<9S&gaMRfn;1@
  6008. zS1baTpi;mEdcKRV5XaZ@6BQBG7W~8LQ%35W={IYp)Hw{+Bj!3MBQ?HPo1(P&k?PQt
  6009. z=~F^B>#MDuyzEF*%6-IcHC21YpVkVd5eUqGAMi4_t=aj$-A)I5VMCv#Gjvy7v%1Vf
  6010. zbCJo-&66W{SzS_}eQKNfG?YnQ^`G5s?NM8UK6t`7b9Kr4G-g~%rN7iT+WR!t7%d9n
  6011. zp_106WQ+mXDJ6W)1338@$3LV4l7&Ye)$nif@`$v`c)TWB>AI+lHSMLHT~OS>Cs<}u
  6012. zoCfH@4f`Z%--awV5b621O46<8@$L5d-_*l@*wokmy@f_wCa`_k^1~BLkKxvZ&xps>
  6013. zd-2iIdMM98`Qe(QK0Z!A2`qn%%7~<rE?+4sFzHLC;;E$16X7AH!lCQa8v~=lPP9cf
  6014. zpn0T18SQ%nP|Em`7`Vl9vT)?exxAd0bK*o@H*+S76klaaxD|B2!?MX_+GJrzW)|OK
  6015. z5l8U>Zs#m^nm3zFo6R(sSG9?+x!h1bPqVP&r;8R1$vjTby4zfB-fdN@j=M10|5952
  6016. z1y_b5QNAce9O?vDc<sXvkHq<ULAZKFBy2DSxUVDXzz@CzGGc|x(u3j&aSIJ5siIcd
  6017. zhik)&RxApy?cO(i=B3&36FS<~*4Ee8Cir<0ZmwDwQv3Mzy1M#WI>To5RYyX#a=2|?
  6018. zJs#Ec&+6Y);k8-|&(+nfg<q`F(g-bFvoJ)TEvGR$?bocfn*L@;%pbtSnt8I->K`jT
  6019. za3wvF*VZz{Il#V9r3_A13g5AM7bC~Y#$QQ#mF>SVoF|fICTdcT9IO0+wuG<v;XviI
  6020. zWgVY$_FZWLX&^!9T@yIR7;@n#eHSL3ME6+}&G=Bu(M;SG3WPHHfXGrma7%A=dUW$V
  6021. zo2RO`Pu=X9r}H@J3ffrZkp5UjU4<`vLA}Av9&#5KG}xw%r|ZX0vo+A-lv=0yxBj`5
  6022. z&h4i*XDyxMcAJb;y3`UkMW!xP?~~=+rg2>WXvS^Q+8dPXlPu4zF8sR3Abtn6wEjpb
  6023. z+Q%R8;Kwku72qS<p0~MVI^zntLdkdpU`PhG<yGMIrGv{t4sG`D9X1zBGmqmGU1a8x
  6024. znGxOPVqfR$o73leu&!Mt?5_Eq+k@$;&d*nc+uH|0g<mfALvDwdMVxio)FG#T-0b%D
  6025. z+2i<jdt*4<7<bWaYBo2Z3*M2<szVfiGuTeGJrOZp8g?qlVze{olXd8;8Y>PtKFYm0
  6026. zmg~8+-VziOE^{O4OBe7XBA|!@C?dydVoOTGd(1|tUdts2sF|$fsPXI86#vO}skKUy
  6027. z4b@To#QVlkd7L~(V|<%yh%s)mr`+{!yH(BE{RW$zZbM(D4W~1i-1ofEL4zG7ziU=n
  6028. z3tFRwg!zicP~|uYETiX6d2N6y6HRwXC$n#cnf!rgyyrqH*~I)`8<nD~#-C`cu&KqT
  6029. z*wmMu&aR(WoW<*SvpLIY`ALI%+DYt>3cn-rX60k`T{w5j#n<k2`9dk_Q*rnKlYjWJ
  6030. zOy=q3z~RekUoOX<`h<My%JRzxW!Q>bg8qVj!<XG0>1;kdlx$R+Q(hYPqX{ZpGN7PT
  6031. z8P}*4u|eouQ$aKy9j;s;a+lzkWrvD#P<VKGXg+>RM%KQb!#ksz8~LWn$QX10WL2+N
  6032. zmCB$+#R?C*a7lOb$d8j<A1jvR_Qocvd;X@Ip4ZW)rlzp|-3K0cS08CQ=~a3OY{fBb
  6033. z;ih;*_dM<GZ4Arn8Cx%h8+&W}BAYH^?4nJPzBk9Xei>}V@urLV;I4Q^UQb41ThWG!
  6034. zlGz;FqjYvf5KaeBNn+{qFRSox{|FB>#Z_)jxQ_M1KgNQ!$A3#lmxE|)l(1axCW}>P
  6035. z(lPkc8+BGoaY^Z1#?V*!gv;Wb-4EwRJ!5LFA~<?b#7k3>r}@$^Rrly${+#Bax%~Y2
  6036. z%k;fb=jw*akC2Rf+M-lW>^FeAW|FyNA%58!^276u>k{yiKo2v|H@ca5Nu)kWDd|H#
  6037. z{x1L|<#Yz4(_G(Fe5tA4>@?z1+5DXKXy>xo<Z5z`8&`a3+&E{G%VgHhS<kp}jv$;L
  6038. z%}F^yIn>c?^5}%r{iDz6`Rab{ms(2n{81^#Wc&bA<=C+v`fY<YGHFEd2fY-edqqD5
  6039. z6p0HzMFEV&Bk`oiC9rAAMW;L|ktfw1^meD^Rg>tardKV)$S%$0y6U?$s40;*if^!%
  6040. zH)QL(W?S(--cgs?%<o#kknX`XWL}bwk<wB_TFf%?W&~?h#9~a~8XO~cT_F@Nu2u}l
  6041. z1+HkQ#OSC&?a)abRwtcaFsu&KAW)WXfz&KcUdE^bxjd?uJyBd9ILWLO096DXTj(Ij
  6042. zY2gZDX4#3-v;Slgb!7c&iFlwFbB%Po+|-wrA&Hch2F^2hTWL50w)8!bs1}ZmYf&*-
  6043. zTbxRKCn2x-Kk}MCBwsntzy;RG1c64mH6B7!eF}{rFXD~K(H!-b*Z=i}Sl;bGqs-yX
  6044. z;ks6WgOOMc$1oM>@)`U@1H)NZIgtEW&Y|F?l2765v&dyx{yl9Bw-v{4^(75bKA<BA
  6045. zMT4c{GiUgnIr^ZsM(B94FP_5T2Vl1_+u-y_S?02-GMrxY2)%kq@uxv;5j?8xr6vFo
  6046. z4%?m8PF1!#95%M4n5Q|7ug9S30)XP1`K<EtyM3jFw<2P^Kjfh&@SK%0@b=x3%Ub*e
  6047. z<Bg`sgJ$n%j;zW?^DL1Xe7jvP1;xnd7bzakYRTprU0xk%34gjWi^h!^49ob`g-6dk
  6048. z<&-whWY5ED&nGKKdDpI+{QjSp*Ob-z0G4SJkJ>oNObb1JX(;Iese}`7UHH|Z<2!;3
  6049. z(4zD~Ju2sN6(LPBHqd-NpTp=c5g++Jf3F>6P9q?~7@reNa6w{YM4P1@3M5mRWQmOo
  6050. zn&$x;_f#_R=%YPyH5X>pi_V|*WgdyK?ZezH3DuFPs^CSil0Scz*ynPu;S*B0f+wc+
  6051. z$qckIzmNu0FIM`g=zn?4hk7;5n*C;)wTZmb->QxDx77MO8Z{c#Ujm-{Z{Dd~&hq@+
  6052. zi^}tb#cBwh$Ia5R(vXBjj#g4cTltSBD_kTI%&uI*`SwjLyGfl-U$MEQvm}qRxCq+C
  6053. zS(1zH;YeMUaVHTBGn5@xl{l-bos3u=DiKq5)m+(@8L9hb&KJ&EIjJl}iNn9R7}A7d
  6054. zrnEFuoVN|}H7bC?#i5F2diHP?MW8ik!ib{V7H4Jb%JJ*DoJ4S7Sk{);<6yH$;7YbQ
  6055. ztc_dX@)bGw-Ls%Mve_)LoV4BIm$Ud9HYejgprHl)7u9%01VK^P9``JC5izYsgUP!P
  6056. z5R?g7&K2{RFDB=QN6n%+AtUGm!g=1<7MZAz%7N`sF)3y~Cxd_e%fSHxARaM<5aDq$
  6057. z8R{#KVg<^8eyRE={3b%K{b3PWF@!5$?WAOAU>#%Y1_svMBDAN3`T<0LaPXXMV*Z>8
  6058. zjTu+U8XjhsY}|MWW0yQrf!$1H9c8TWJMu9=>Wa7`C)1Xd4nE(QCp0T(j~5;Z9J?F+
  6059. zA4-!5k~PD`fksNcJkTdb`>dn%_-Ib~Iv*$1>)4w<8MmWOj@SOoAwzQ)ed@&jC*fW$
  6060. z5_Vh;@}uGxD%$i(InO|wMams#v@KxyA`~k@8|{Q<hAnW!H<;t!0rir4z#i=wj{w##
  6061. zwzy3BRYn|$bnwrofFkgX47~X=0bKW1OnQjLu{d~4vZhNxKFyAS((<xJ#Ru6z^nHs3
  6062. z#`9VHSd~m8RXcW6Md%R2Nh&$iz7F>!c5`}mF@zcmS_U7K#+Aa^#(&SB|8H5n!t1iF
  6063. zSYdN{%l5=G65-#)bwVle-XcoGh|~X*QV4WNC<V=vhESSTn(m%74WdDl#eQ5Y0)V_%
  6064. zJ%ugFt2r>`ir3ROyyizFQJ&HxX0UbhGN=j)dOrtBg5{}8J!CYgcX5TY%4DQlT>{?=
  6065. zyI0ayyXhW70-<NVlY8bnyQR1XJ$L?e#)F?&#dYS5Lr{gmiiJjBMdkImt~aU|HeF(^
  6066. zF~8CEM$N*ei>);#HhdB}1AoPb<FvNP5;)ByS*W8${Y#Undb3Hg9v8ogJ*1~RS}7z-
  6067. z#gx@ieDX0g<Wr2EaX!Zm%|#~En-Y)J4mKVD1^KUW|EwFRzsejiYoDPwF}(1X{3qtb
  6068. zcWVs3Q;p0x+%fFedEv-JM&gpVY^>tntu0CTP<cF(e^SlmfhJ7(m(?Q2e<v}+(ah*U
  6069. z&72sR(MF;GBINMXzBmj94f?n_r2i0-Up%V0f1z!N^PGt6$DboL*HNM8DkJm<5QD&5
  6070. zw3pR2SImtqee*GMLY}x&`qSq{L@~+#gFJjf-lb9PJu^mIPbJ}M(x)j}PN*>=DKVK4
  6071. z>BQy^M%@tqL#r;2e<y3{L+TLC4spE-2kMYG)cpI0B(!3~+@dN4{6;FgW86RpVf0^u
  6072. z@<n2e6hH6~1IrsD0!1*MW<F_)^CINCF+~S)mX!K9y|unxJz}z+UWFgoHPLwu^R>Ce
  6073. zBY|%9?qZJmjdVIrsZyVyXVoukfZs4D3sjwMHPU(Y<#-;M>sP*dFbDtT3Bu6R!pIoT
  6074. z5~k$2x~X-~6^GI11~T+R=vyCx7)8J_{cAqo*VyBzWPS&d@&%*u1(20egJUG7au|xH
  6075. z0Z=E-L7Ig#b0YDGF(MrFqdqZ%WrZs-k6K14Gv*09bmp8hZvlD{^ct@oUJ$@a5WP`q
  6076. zP(-!gKWdl5YK3wNim1opFwT8Y39VRstYThug$Y5lxYzGW1!)VkylRlNmGefDV#U8c
  6077. zs(0~@fuWHhn!oW|=Bl3_I`~?h+^Bx=$isisOFyBlbc6GmAD(*Ts%Zu_BuyS@{QaRX
  6078. zKc|x(yyl^wm|XvS<leti^|tGt>1Z-cyXwfPWK=n#-f?jcEc91jD9PJ?sf`69nSeeL
  6079. z&jh9XQ5isRQ7*YRo}KfB44pOS(hR@>?nN!~)-wF>;4gm}6#4o!$b(w`owX1l?bM|=
  6080. z#G@{c-k*u4{Q-1`;RO*5i|B;`5LK^rIMi#+bdO$7_cXN8rfT(Ky<WYzx{0>Yb7VP`
  6081. zX8Tf%rHYrar&E-sq*z1ovg(KqzvifmRI_~zvDHOc!+O7mJ}vY7SwXXwP&GkZk8^-2
  6082. zUtK5Z!>^zq>2W+Fo(Vu+P=XHuX3iJawC~4giT&-x)$MeOIFw}6ub|mclGMNj_0O<5
  6083. zQocV@z5>JHiV%FgIJ7qT*AGD?ick}@HO3m5qr<?(um~{t|0??$z_zOE;CJ4W^z<)F
  6084. zvL)L%wrs@~3CM|ml|Kg=5}<^imXd@eKrPG9wy>n9>L<o6DavREw1uTBYs<d2cpYE9
  6085. z^3gHYmC_ZqYGjOdTYuR)#y;AV_S^dHOSiV!I@qF@opbMd(vxF1TVlO;?|t|G=iGD8
  6086. zIrkir#AKY1I)XEp+&~B(`>)2~nu5SC$$;Jl!tO>Lzrxll(K4?WZW9)<j%!Jnh%D+P
  6087. zOus?qj9o+$CYoL=Q8R2l>Lv6AHe^UJV*}xfqoaY|HmBY0Z0ik-jy}4^`{>?eXj_*D
  6088. z|8;E(CHJ;^7YW1Ukd1*fQa>zK^`zR_)~uji_b2tdw6m>wL%Z&;ax8a7U$!K_KDkAw
  6089. zs~Iqd>;<k1Xs!SbhKMFU$PH42xjl*)EL;RoUgnTSyq*D;FkLr!^mxua=y8Aa{%R{U
  6090. zLGXeHU*SoToc`!t5BjW8-<M_^GV>%8=wXnM@J2!%XjaqNYMhyFOpro`FyjT2PJT}P
  6091. zU{|uo`iID7IAX~dL#ozk)2)F(Tj%+DTWAV?+n0Z3(Cd({B}pZIBZM~J<Kl72X>-rK
  6092. z-lKgp=JP_0Qq-7jRpGjw@3`gKYe^LuV+wOFKNF(gzi)WU!w>J=vE9VCj`14{V9+Ed
  6093. zM|C5qI&RRE`kx?imM}L}M*RB3Ab&CIWm1*nV!iwJ4Db^<$H%yPV9&l@c6EV0sFj9W
  6094. z^>YNy?~m?^8X`OTEnS1BU8PTSe}O+5PLteOlG!&C2HEb+YUS_emG9@Z*EPW~JzA__
  6095. zO~0$FaT^ojuFJl45&=4!8&trWO2Dy)pOFxl>u2k?q-UjZoQYexL_5e03-1V56J$am
  6096. z6y{c3aAo3}Oh`e}+$u{kAoG1gq<x<l(ZeDw-ChudCAeW~DjoEX?ATf8KdPOzTSHxT
  6097. zcxXV~xnsm1Oi%4O02AM~cZIC>*JIiPq0#M|tfA1r4a08niBQP0X=JP;;vT*M_CB`v
  6098. zh|95e_wJ?c&gl5B!iQX4ZB|$Po8!^W?xo$k_c~lh_QE09;<C1NxwO+ev_n2?XzTc}
  6099. zFXX-YhA!Xm#MY3tt@FUNw<-Hx!`Y(4ZL;=@2xP3I75~{JhW$kTK->%Q8rq4Q1Yq2+
  6100. zYPBjIAz^h!6K1Lgn=jz~>N82$emOfsHfh&BCec2AX<0V2#^7Ls6lxZvU{Kp&Uh5JS
  6101. zUo=rx9x-SbYcbtq6UUt-ocBH*5HuN+x_)V9SMLgDRnNE@!_iWXJs>_x6c_!Au7E^J
  6102. z>RNb+NW}!9h>E3Kk>k`XF=;ZojCd#)mcsKk9S8V&As4G)QzlKop4&#c99vaC7)X9Y
  6103. zh<i=HijgKwitH*ko6S-ER%JL<vjPXRJRdhjW0t}*aI5c0pON+n0j`m0Fw7O)+BU~@
  6104. zJqQ7_^nzJYx72f-uB#mXfcC<2(YAaq>^t$^pmvxmTVl_UX)r%>oRkY3&jsIm0`}dz
  6105. zY%4BnFMQXCh)=lJxD?b{r(Kt>(}d}cbE_7iu}jzS*hN}?E?v{s_%ph$I<ckRm#X!p
  6106. zYj&x6n0T!^4%e^SkHy_piuKFUF`aYT2W$9A8{t#5!%4!+5$&6iAFmEOdV??$=yeRQ
  6107. zHV97ew3(M|GGZpOBXlx(XIn7XcBdJ@;1X~0iLW-9FcTW`4QEXCXSFBG;0;qTev?oU
  6108. zYlPKw(@SDJa6D2b&*LtyvlW|IME#6$k_ZrmOcZJt1a?I6!Wlz3Ax%$1mr)aLkiESY
  6109. zZMsDNlw%GcicOP*`AG5{BDF9ztY7F7uh#a$*C<Ro9T$FCeuIgy1958qSZjV~hqcp~
  6110. z^jy-=D0w!nokq0z9DGgSwrAdyen;BRY=usahWX{*7%7Dhllcx^DgV#_2KNF5dfBBh
  6111. z@yMRXcJJ7soxbHSZ#i%PK0d51?%07rFf}-M`Fu=!jSjjn6xUu0jE-&g;Q8z%`>vfn
  6112. zZ~&9QCx*4m?#K4**a1@*eP{?1kVP6w5cGOBkB<aQGKfU4xkl&xGfc1*?<Jtuu?~LR
  6113. z(N9zbD}D5j4@=lhUa7-R`U@pp@hb?1EQD<Hgk6!o{i3kHFX9S&Y_cw;@NtcJ!!*=Y
  6114. zQFaA7>c=_)E?H!tnKP=YhCIU^ddgZ&&rN$m&z)k|5VRx4wx1<uS!vG$@r^JS(|%~h
  6115. zb5uwe;PaN&T?d$^E>4>XP7om?2x&*qaJqJ%(jq|W{q#Y<nfPY72ZK--#N??{j8eI3
  6116. zP>)F^C`D+c<??blA8n(u>99)2IAY{)Q1;W*FRQEc+^~Go<(SlJ$re07WaX2+iC9ON
  6117. z6~Ct4cwCGnq@hzaUT%HH+~OOb9sc2`<5U)L^aZM1v%vb7pN;?Uanl*mppWbP!u4oR
  6118. zgSuQhHZ`iN8zT}iwY<89IVI&0X5)c8$?=?elGJ_CZyh%NDuX8o*a*_sKTjQTQ6CI!
  6119. z+y{76#%{olkYgM5#5G5Uj~tC3ITAm5WO$?g_}-D>qeirg$Dn(|@@f1xDEAw@!RwZX
  6120. zU9<Ll-k=Pu*Z1aWww71I=2wlazI7NQ=Bd><^H9m8OOKV+k9cKxty~+MT9}_UU)BB{
  6121. zB2_SLP@j7?{szvh8g2^$E}Mqn8a_2=V_vnE75yb;nTBwK5>MdJ@BzXRT({h$@fn|M
  6122. z%f9TFl+8Il>y_zc!?$i>Gs*u}`%K_zgR&ms&}sd`bkM|YWqg^@$~<)Y4*I43;6#5c
  6123. z>L(lo8i$dvAsI|!5K_MW{u%M!QSDUq?{`Ulmw0o1C)=B`0=VG9TxtVqj7*O({l_j3
  6124. z8FJ$qO1v{%Qp0q&iQ2khOV@ARy3OKq{{`tu>7YP%)18bDAtb`Vm=sO~!wEzKtS~~i
  6125. z0XklO@yv^F_J3sl#hou|i%^9Tt@<Wh2et1P;Qa+H`RK5CS7EkL|6}p7XX*<#<JMu)
  6126. zm(iu)>d>upa!QDyU5pI9Y^Xism7~l~%@I=keDo;kfj)AC=pzqqq`0EWJ{wVaGN#Dm
  6127. zwT;wQnDkeKg#^>Od{kHvO2U1-k1w)b*wK&MPZJk!m0!}ed73b{u*seHZ-(Po62_)6
  6128. z8(;`mxWeq_sCr3HN5mj4n;zfzFNQIeYK<X^5&on@Aa|Mh5-dd1Z3EUW{SpMj##B-y
  6129. z_$@e~AIn0hDJHdQ^Bcn)gAP(f2_!;Lg{uAyt3}_y4>;M_s)VFr6K<7%bBN-q#y*nC
  6130. zH-<C5B|RiL8138|lC67z>)%NX5^_kikij7yHY9#l`;J|L&P_*e?;m*QOv0-Dxbucv
  6131. z#_U5k+|&!h-k~GEGU2=FE;0H-_hp&OL&JyfyfS>_XlCHDjy><#A9eM-u>H`M%Wk{l
  6132. zDoYavfnh^g2%7kfgB!Tbrm3O2p~q~6dZVY_*B8DkJtlQB+P!QGh1a$A{c_eK$qlRC
  6133. zAGEhS?$>@cZMDcBa`#JO-4T=<=DR;6TddRIyWi1n|DfBZ<77Jg3F>-Ym`0>^=rA25
  6134. zV<k1NAL9VD_tF(nMxnFv+h|-aI$@|_mxNYw4Ndi$S@5<yK04e*5**rB2KE@lJwx^p
  6135. zlC-(9Q>xCdI)gjz8S@#g`^s+o+k%OryQ27KXfdM<jQRLJ@uxy3V)BV~)w@B@kJeY<
  6136. z)^pGL+SwZCJ~|iq7*&MXylXw>jji#+CBC!Oud5<!I(4Sr+F&vgXCh9R+*)#@FUA?a
  6137. z#&{++n$d%N+75C>y<;RUI>bhi;B^O6#uhb<<U*}}ZCfbRwo81Z0KUlPh!2V%7I#sQ
  6138. z&U#IT5Q3gN_Ec9O(%v2kbU#%&hZ80wH0Y=iiCk6&H9Gp~rcZ=0R_zRKZ8bcx7;BFB
  6139. zwA>=hMK{l*x(v2&<NMUBh7vmdE)U!L0@^Q#4sf<_q7VN@rU9l$%$kK(O?RCbX^)cu
  6140. zw3~Vpdoa`Kk&)>~S~x3BePu4j2Q@)}pl-aBon(hWZqW((YiW01*ma*P;sV*{y22-!
  6141. zH9FRRl6HlA-S@fZ;}tHS&|1#W`sFZ7cBCwTfI@;Bg=<kmxrjx&7Z=^(K76)qb@{lv
  6142. zrD*NF`gb1J=i1uF-GX6<a)#+8V0!O}3}oKed)L4JFA5!n-3M+nt~=azV0WQImx(@H
  6143. z7RB;m_Kb*!rVoDU$jPTg@#&LCpF22x2!0<||KQ-{=0~K`VLfK41t;_&cD+Rq)~=vI
  6144. zcKZcS3<IR2Su(+<83SR*1$BPEv)lQk<oda@*ZE0D&#49gYASs327a{P>3k9f-0tUH
  6145. z0D}z}(=r~hHRBPb4%kiC4M!)Z=)xlL!X}tqy_Ny_#G|xk9t}l84M*!(ESWzshal;?
  6146. zIg^YIGu~RV4r<#&!STr$@dJhuL8gmS?y!Z~ZE{(%kxtH*Y5;T(42%s742m#e_uCwB
  6147. zyS1k;`p!Neuhl6XmV2V3`&w)E^S<#u{L?;RYj;dJoT9}E9X*#@VCR)SCkwE;w6k3?
  6148. z8Fs9hyPd5ymbi8vZsxJ2Rs*3nC{vTQ54Wx9mi-tU358npwRIBT*_?BDz!nZN1`T#W
  6149. z<H}R(g6JL)!(y-}h|hs;uD+$Er00ja5nlTJ2s^unGy!@@TT4$%x$R8*zj^eHqL>8Q
  6150. z7*`27#4e~3Uea0tUS^1zdG(CjF@4ol<;b*u`fV}SWGg_}ua^yO0;F*3^mI1VzHQf*
  6151. zf!>Zi2eviVW);^a$?0w)S>%Rv6r$Pvt>$2(qHxAUz!ZB)lC5F<)hi}V1kw7m*~%*|
  6152. zJx62DTgz`J>1%cw(jS%ZOc5rIJ7Nm`B(3U?`h)Doa&$thk~m$hmL#d3B%bQISF3WV
  6153. z8C_KMf>2}J(3&1m6L5<ldpk{9WRO|%r2UEQ3u6;>;T?A^8xiKj!bzQpK6!F%C^lQ2
  6154. zjSbabmjrm?3BHj%F;rf;{`!@&HkmY?+nenY`u$7}i2Y!-rbP&6q0>K!;SrIgvHvsP
  6155. z6{YcVi9X{$$YD;3CjJl;2&D$rm=G@6P!bGXXmq24B!2`e^;tX75jW8xgy@aTxIwQ-
  6156. z&~}3OD%BbY*Gz4SYPC&0x9kgad}Q&K-+JHv`WaZbz4DNlOeV$1+aDh7oE{2z2d@rY
  6157. z^;~-KH^ctT^N+k+SrL=c<L@)}e=Y}QrxPLQJs1ue^B6(5Sb5+x;`y5RnFlK05|7<}
  6158. z`!SI{LEZZ5!w<i@_4nYU5rj`Y&sW*HU{D#caU6FWksNF>IhGiT;qXr;Vu|o%I1!c_
  6159. zy9R=z^Lx8;xvss5Q;9=|@X_KcnJ;UeNFJ;mOulR8U7-*@%pUD?CP4}FUM1r>-p}MQ
  6160. zh_*u`0x^(ie$-a$Ng^2DGyE(}#kHSa1p*0miD#19Kk%TR!4GC;O!I<t1zgsUJse|X
  6161. zIhpC6O)wlu3ipdT;{Pog?Pnq+PD+nCCS%8u`c*Nqx(dcU2eEHeFz&2S8C>sRKeH*q
  6162. zd5!W#4hdV5==Y0fI{W&z_w~Km^7>MZ?kGJ7<lc@@e9e2gUR_-ktNNLO)5YwJ&Jo13
  6163. zuzw69;>_x5eRXC=VvA72D6MOQaR8`0A)LU0#SW#dm3BKKO>C}yVf%;iCw3aQIB3CK
  6164. zH~;5bKZ!r6@LM5Go=KI-;>pbRpFlTBf@2d=EB*$fdrfBlh$&MSYE0`O3D}vn-iZ;M
  6165. z{7GC=t9%aV{7UN6A4rc&eY&(Q$pcYlx`h*_1BO6{Zj+7<EYjm|xDHNz>J^{wl}}9_
  6166. zbk(0|@xm%T-tfKhI)>1PR-Xwj$+VIOxyVs}BGkc@7p!@VCxZQAEy<|-e<Ts!0c#%8
  6167. z6!Exg$yZ$-L^-yYe;yZnR^L~X3=awtKbGaoRPd7=Ch^e48I}_%#bW3?f}v`SOwDZ3
  6168. z??W?!reKDtcG8;;eq!hlafF1mk~1?^1YC62K|3=ugUC7)ZExc9#Ji{4fx=)vx8@fk
  6169. z-p540Zdis%G^3w*YlgC=q;Vab@gZt@ZB|zsE)Z%p^E!6v(4J2@89_)QsITckTFvnX
  6170. z;}05tE`4PqpoEAiT)dnuZ){JKe!<&}ClNm*Jo_1uLZJV27}1hU_O#YKGgTRV4pRg{
  6171. z8gxL=A5Kcis&+MK^*^|&Mud)f@*F&@J+7r-o2u_C7cO8r(9ei;*M2laS31~$^-lm-
  6172. zBtW{1m_OL^Jvsp&aE<I8alwA=dFIgm172c|5AYA#Zau<F+HM|R-4u;(O0ow;)_1SF
  6173. zcLmLRS6F7GZXzMEce1&4oms64E%P0B%Rxqg?Vlh41l-%m0-VIe>yp*RUfF=j9BXJo
  6174. zWp-I}f+(#`xIDwI?{bNE9WY;DM0QbN11PnW?<47mepUm&!Ff%RSRboAFqA@Ma=8T4
  6175. z#AJ1i&fV^HFuBIj<|-nelK};yHcgPeosCuem%jdW*IOMOZ@Ifkd0ux5B6t2J6P5B`
  6176. z9(?fHQ@&B(DLZ&VUbxX4@_<f<StIYxsjC~*t;KpHDW++7HmqW_adTti+KD}8jh6H_
  6177. z=JNNYPh;H(<DQ^C*RPh2wO;?)4f;hZA0RF$wGvq;j0>mtd;H=~G3c$^yg_vMJ*SO(
  6178. zR>}D>@$+Nzfu6txvK}VRgbo!&v3Mxd=Bd}b9UX|IdfGy}Zw9z|_aVZrxCjG#Hr6)5
  6179. zrA=&R#>njEgpS(q8uRXqb%+t%5UZ<g^AAYk@*RN_x8HsuaL2MJJuu%EVfZLH@4DZ8
  6180. z_-;|W`>^}|yC|Zl@1JKyeh(HQCW%@RRgOzf;&CQ<jwGmIiyRENn6ml$u5(Nb`)_26
  6181. z-RG2o-he?zy-*YXQEC?gln=9YZx~=F#l4Ise2!!&FeT<Co;&{&Mn-$-=g#&nCl-L&
  6182. zHRyMzBs;E!7@iHMg`0(=nBy8b^1*)MMz{BhW6Z3ze|%V!xuR6ACbi$}3457ZDLTlG
  6183. z56N6%5cf#&?ty4m{Zv<Upj$jrKh=5VKrlFPWv6&Vcb)Y3{oQ`Q_K-V3@6R%Cz|CLc
  6184. zUkr3>y<O307rfCuFa-fjsr6#Y0J-1|a(yA-)?UHr9*BGVO}9I+2mGF1x8LvX_4q%A
  6185. zP73dJH|Scwkd8~F&wYv{3oL!m5hC$pqK{4z#gy^zWhQx@m}Ck{Wc*LUEmrO&!F7t9
  6186. zfGZz@p`!uGYSUKjZPtL>5&VH&vVye#sRMV#_awiaYTxP!SR|XL?IG>8qqkip{su-1
  6187. zd!3=pa+__~YLUg$x9z>Z4`iS9M^;Jh!RQ~gw%H{y;oLs`oz$K2J#J^P+wQZv9k=a$
  6188. zKNj{~izG+GBW+<!dmZN0;2TdfsqLt+owcfAhsq>|G1iYblf-o6Ga3jVKV1W^*#k42
  6189. z7|02NoXtSTuQPZAtPvBy+hP{DY3z?K5uYdN_f<MB65%n)uNd$g47cfg>=X6~H`1=M
  6190. zMxxFphC>!6LP6x~ra)teX#(Op&Ju%@v5DBwW<%$hLF|4;T;&*ceTKbXE+^jhb`Y1n
  6191. zE}Llaxd#0QpW87JyY=diO^IN&*k1D6oo!aH4C8LA@9mlf2lvX7^>VA%*4OUvv|GJW
  6192. zvYFR*%KLY3(X@L?i5u)rj1>0UUE{G^4?eeRi+uzno7Z{*i|CXk%U7LVxU87ao}#=c
  6193. z&vwrh?R_@3DFuY@aR`L}It*xpPZ@on<4v;Aqq}MMjp}X-y0_|XE5iQ~-EG70J-XW|
  6194. zTp?Vey9q1GV-8@UQ~6fmgzm<{6`s=FBD()jcT4DgS$A8|{nxtNDujd|>TVl`zoomK
  6195. z!Xc1#w@Vm;JDt}Ql~h@oi_ES>GHEqGujb26C9C9=eEC*op^{A%b)Wt^q!ddTH6Ixn
  6196. z-mZsSr{tBQkw@v+!f3fXADJ(zxyZFDCCjRjLQ%b2NtcHg%jLqZZQJJc@Zq$Y!zx`P
  6197. z6a_^{31xiF;l4C0tl%>vqy-f_W1c<B7*7$h_{-ss{I}wJL8xF@ilsMyYxNz%cTp%|
  6198. zj+9db2Voc&UTd7|*qh?5tw%{XhUJW6Xc_Ag!Cw*c$)W37y=IhC7Tpn{z`os$A!!UB
  6199. z78Y5mg0KtG#BGh181aW$3v&&;o6UuF|3MdsAb|y}U;`QK-~cDMzzrU<RSj+6hX4ej
  6200. z9XcR{n^q^r?}p2u2S~|!A4H%Z1|SNXVGxG!xO_Qmfvs=_TnTYpf!km^jKC<2!8lC7
  6201. zBqU%5?1Wvo<?n$hW(y+;({MFh1N&e<TnpF1_3$>h0S>^8a1-1Nx4_%s9dIkW6K;cp
  6202. za0m{=?eHsb1dhTTa3|aa@51A23T7b<bD+RHEWjdU;BHugEaV^$Diq+|P=pecp#sNX
  6203. z8Sa4<cn`c6?uFy<KDZAL+9%*w;eL2Od;oq89>Bx!L-0ZP5PTROhDYGn;Us(negi%V
  6204. zkHT-l$Kd1e33v>C3;qXu5<Uf=hR0zQej7dmzXMOe|AbTUzu>d*B>Zo93O)zF3s1xE
  6205. z!87pt@Ok(H_yRl&Uxer2OYn#AWq2N5fIosihOgiu;7{O1I1PUaFTtO|%kWkB8vHr@
  6206. z1^gv^9linIgm1yO;XCjO{1yB)d>8%(UWLDf*WmBq|G?|;J@`JHfgivd@I&|!{9pKc
  6207. z_y_ng{6F|d`2TPgeggjl{|rBcpTW=J9Q+IXEBpff4c>&e;NRgt;5^hpgA1Y{f{18~
  6208. zXc4WVO_W8u=n$QvOLU7K(JT7IHqkEz#Gu$Nc8DP{EOv@rVz=PSq?LFYmv=5+R4e(p
  6209. zwx+-I?h3AJdsfY6GX=HaDX8UCS&f&<#Y~}O&t<Yp@v@R~P=dK)Cch+;3qx#ab$(t^
  6210. zY-%x;Ur;OsB~`Sh3Wcm<OD`(L;)-(_;XpB`WYxTNp_nQt?xHeZ%q$RmP>X>DbvCP%
  6211. z_0r?>m2B4266Df-^u@;A&a|4H<CSpo!sF>m!NJO5u0^#RXFf-xdGef6Dk;UXwNzP1
  6212. z6&>XiX0(ji+h!|8tcr6fpP9$v)#8$q9`RB^Rr7LsF_T_W@|Jm3owLnlN{jIk3%ytq
  6213. z6!d15`Lf6GV51hxKFl?r$uGp!N;#X!D{@IGm(lMjEUJ0M2zBSwV#8yf&*U*vWzKRe
  6214. zqb$o=H8qC`WIbC8_Un?Rq!!DVXf~5o;w&f3w|ESjXDK1nw3nzyFgx2E0^qV@&1LeH
  6215. zlBJNXl&m-k=_PAAtCkecTs&1Qs>{5lZo@~7a9-q`Q<w8DQ*=9bR|?XSvSO)V@wQ4n
  6216. ztEQJM^pMJG!GS+LF1aW#EAv`rQ|Tq!tXeLsIX8dtcrM+;ip^n<$MY;cIoq(xmARF8
  6217. zDnA!5Rr2{2Pa#z-XIJ7p+{Ry4_Q{4%>}LnQikXrUACYyJb5ThhTZtD_nY<%QS<}!s
  6218. znTrKFmou1sL0wjgR-7^EMVUS0Bi3>zrxaZ&-0N~wVtUD)OJSSTbgGP7osai(!|zVb
  6219. z%{4sjh9jQAy|b8O?zTptKI+y&HkDTFIGxh!F{S94&lF4Lcq%g&U&>$y7S+PyN_@n|
  6220. z9oC#Om&(fQ86R<!uzy)arCcU$pG}pN*%U61lA2B{MLW*cGWnhOVM$?5d#Ri%#&NB9
  6221. z(rRG^$2MJ|ZQ4bvDqg}BqU1fL<qS1_wt_>Fmr|LWC5>g<)j2hXO)XleN8IU5F^yA@
  6222. zO)76u$zj!v1_kwRH0v6(e-?qldloB}S)8Q-HVNZ-wVavH@Xl~z{i%UCp@Zd0F;7*D
  6223. zH^b}&wUnWF<S3_8#X0PPQYp2dw51nQ<v10g!wDY?m{Se7;cfUCpmQ;=IVwxbzB!qn
  6224. zIc+$LaEjZFx>(eLl1Ctu&m*dW^{`;7B`IB~Sj&r*+^lV0$)&Q2g&x+0N@h;6EGpT8
  6225. zC9f=(ETzRv!CEd>(o6DeCcT1P<0upv&`d4xVXx%Nwq+b0rEE#7nY=ZJO<r+emo3Gq
  6226. zt<tP|k6b_)fFtECEvkhA!Ijz6LVUE<JK}42F<m)6y2d{eX!X;m%cY#UM2jJhFrGWD
  6227. ziz+T_CxeagY${i<mC}o<n)P8vP`zg>nJhsjcUjF4NG>2SFJk(#GOMaf@zJJp#5#{L
  6228. zN(890yyF~2C9PzRVQOC?lg93COq-51etk?z6`YMJTFZ9BX~9f$Ze=c0HsX4l1yHYg
  6229. z=2GPp0*q94rIaZ-3K^QH*kC6MpH*r8;ATK=aOF}9nKbTh2;i}rY7qld1URV+94tOt
  6230. zq_f3JX;DTfGKVw6jzf;9Z#HEwr86Z2$tCwO9CH<W6@f*{#^JM^Dwm6?bXmsX%-|Mh
  6231. ze~*eF4r?qkM<$PxELBV|+IT8=IklvumQyQn8tzJg!2hV7pf9-`tdrBYCF4xUAc|ac
  6232. z8;duNFvo6q+8Uv3X)1G`W&o~uU&F@%SJTheuuT1+luO=u+(>8_)icq(Jdxq!Nu0V5
  6233. zYhiq##iGpFxX(fZ)qoeY@-5h{iUVgL&K(3`Ztmh+fQx(BuHfWuwttjx{BV8YZfRu@
  6234. zAz<$CIBt8HIhn(@yan4+@#yeD|1=k8dAVETR}f5=N>;>9aC8i~EbH^oWddUs0^l~i
  6235. zi}a1%{_cuWVz7($K%S+o6kjM(&b;H$OEU;x)D<3thJ^y|-xZt=D|U=iLHM1+$Yoqy
  6236. zB}$Y<XzRe(I0y4-1zmUuqS2uovZ)1EDV|FeaeN3Zz@iWvDd8sqHTa^nZ7Z?PcT>bX
  6237. zHlGq>Nqkf>KRU4C3Zg^^%`rbbedSbYg^Q&uvM#_Bl{{71i4n4?GHqU19xe{tpQuue
  6238. zm`*+n7-_|&J5$&lR$etei5-NqFf>ADu1X<@3oebI5*v=0W)`rySt~m+y7m2(^`_S-
  6239. LJI=o0S?50idm+<b
Add Comment
Please, Sign In to add comment