Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: resources/assets/js/components/layouts/footer-page.vue
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/js/components/layouts/footer-page.vue (date 1556261584000)
- +++ resources/assets/js/components/layouts/footer-page.vue (date 1556782116827)
- @@ -63,11 +63,11 @@
- EventBus.$on('logotype.set.edit-url', url => {
- // If is first set then don't shake button
- - if (this.url) {
- + if (this.url && url !== this.url) {
- // Set the flag to shake up the buttons
- this.isNewUrl = true;
- - // Disable shake up after 3 sec.
- + // Disable shake up after 1 sec.
- this.disableButtonShake();
- }
- Index: resources/assets/js/bootstrap.js
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/js/bootstrap.js (date 1556261584000)
- +++ resources/assets/js/bootstrap.js (date 1556782116905)
- @@ -31,6 +31,10 @@
- // Require tippy lib
- window.tippy = require('tippy.js').default;
- +import ElementUI from 'element-ui';
- +import 'element-ui/lib/theme-chalk/index.css';
- +Vue.use(ElementUI, { size: 'small', zIndex: 3000 });
- +
- // Init empty object.
- window.FormProcessor = {};
- window.Requester = require('./classes/requester');
- Index: resources/assets/sass/app.scss
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/sass/app.scss (date 1556261584000)
- +++ resources/assets/sass/app.scss (date 1556782116927)
- @@ -1,18 +1,14 @@
- // Bootstrap
- @import '~bootstrap/scss/bootstrap';
- -
- @import '../../../node_modules/vue-multiselect/dist/vue-multiselect.min.css';
- -
- @import '../../../node_modules/tippy.js/themes/light.css';
- @import '../../../node_modules/vue2-animate/dist/vue2-animate.min.css';
- -
- // Variables
- @import "variables";
- @import "home-page";
- @import "auth";
- @import "fonts";
- @import "preview";
- -
- @import "media";
- #editor {
- @@ -26,76 +22,122 @@
- body {
- background-color: #E5E5E5;
- + font-family: 'Poppins', sans-serif !important;
- }
- -.nav-menu {
- - list-style-type: none;
- - margin: 0;
- - padding: 0;
- - position: relative;
- - li {
- - list-style-type: none;
- +.top-right-menu {
- + .el-menu.el-menu--horizontal {
- + background: none;
- + border: none;
- + }
- + .el-submenu__title {
- + font-size: 17px;
- + }
- + .el-menu-item:hover {
- + background: #000;
- + }
- + .el-submenu .el-submenu__title:focus,
- + .el-submenu .el-submenu__title:hover {
- + background: none;
- + //color: white;
- + }
- +
- + //list-style-type: none;
- + //margin: 0;
- + //padding: 0;
- + //position: relative;
- + //li {
- + // list-style-type: none;
- + //}
- + //ul {
- + // margin: 0;
- + // padding: 0;
- + //}
- + //.submenu {
- + // position: absolute;
- + // right: -1px;
- + // z-index: 5;
- + // width: 180px;
- + // visibility: hidden;
- + // opacity: 0;
- + // transform: translateY(20px);
- + // transition: .3s ease-in-out;
- + // border: 1px solid #E7E7E7;
- + // box-sizing: border-box;
- + // border-radius: 0 0 5px 5px;
- + // background-color: #fff;
- + // box-shadow: 0 0 5px 1px rgba(0, 0, 0, 0.1);
- + // li {
- + // position: relative;
- + // border-bottom: 1px solid #E6E6E6;
- + // &:last-child {
- + // border-bottom: none;
- + // }
- + // &:hover {
- + // background-color: #E6E6E6;
- + // }
- + // }
- + // a {
- + // color: #1c1c1c;
- + // padding: 10px 20px;
- + // display: flex;
- + // text-decoration: none;
- + // align-items: center;
- + // justify-content: flex-end;
- + // font-family: 'Poppins', sans-serif;
- + // font-style: normal;
- + // font-weight: normal;
- + // line-height: normal;
- + // font-size: 14px;
- + // }
- + // .submenu {
- + // position: absolute;
- + // top: 0;
- + // right: calc(100% + 10px);
- + // }
- + //}
- + //li:hover > .submenu {
- + // visibility: visible;
- + // opacity: 1;
- + // transform: translateY(10px);
- + //}
- + //.submenu-link {
- + // svg {
- + // margin-right: 10px;
- + // }
- + // span {
- + // flex-grow: 3;
- + // text-align: right;
- + // }
- + //}
- +}
- +
- +#app {
- + .el-form-item__error {
- + color: #F56C6C;
- + font-size: 12px;
- + line-height: 1;
- + position: relative;
- + margin-top: 4px;
- + left: 0;
- }
- - ul {
- - margin: 0;
- + .el-form-item--small
- + .el-form-item__error {
- padding: 0;
- }
- - .submenu {
- - position: absolute;
- - right: -1px;
- - z-index: 5;
- - width: 180px;
- - visibility: hidden;
- - opacity: 0;
- - transform: translateY(20px);
- - transition: .3s ease-in-out;
- - border: 1px solid #E7E7E7;
- - box-sizing: border-box;
- - border-radius: 0 0 5px 5px;
- - background-color: #fff;
- - box-shadow: 0 0 5px 1px rgba(0, 0, 0, 0.1);
- - li {
- - position: relative;
- - border-bottom: 1px solid #E6E6E6;
- - &:last-child {
- - border-bottom: none;
- - }
- - &:hover {
- - background-color: #E6E6E6;
- - }
- - }
- - a {
- - color: #1c1c1c;
- - padding: 10px 20px;
- - display: flex;
- - text-decoration: none;
- - align-items: center;
- - justify-content: flex-end;
- - font-family: 'Poppins', sans-serif;
- - font-style: normal;
- - font-weight: normal;
- - line-height: normal;
- - font-size: 14px;
- - }
- - .submenu {
- - position: absolute;
- - top: 0;
- - right: calc(100% + 10px);
- - }
- - }
- - li:hover > .submenu {
- - visibility: visible;
- - opacity: 1;
- - transform: translateY(10px);
- - }
- - .submenu-link {
- - svg {
- - margin-right: 10px;
- - }
- - span {
- - flex-grow: 3;
- - text-align: right;
- - }
- + .el-form-item__label {
- + text-align: right;
- + float: left;
- + font-size: 11px;
- + color: #606266;
- + line-height: 20px;
- + padding: 0 12px 0 0;
- + -webkit-box-sizing: border-box;
- + box-sizing: border-box;
- + }
- + .el-form-item--small
- + .el-form-item__label {
- + line-height: 20px;
- }
- }
- Index: resources/assets/js/components/editor.vue
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/js/components/editor.vue (date 1556261584000)
- +++ resources/assets/js/components/editor.vue (date 1556782116851)
- @@ -1,6 +1,6 @@
- <template>
- <div id="svg_editor">
- - <div id="workarea" @scroll="scrollWorkarea">
- + <div id="workarea" @scroll="scrollWorkarea" v-loading="!states.is_loaded">
- <div id="svgcanvas" style="position:relative;"></div>
- <span class="helper">
- <!--<svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg">-->
- @@ -289,8 +289,8 @@
- Line
- </span>
- <span @click="toolSelect">Select</span>
- - <!--<span @click="clickShowIconsSidebar">-->
- - <!--<svg :class="showIcons ? 'show' : ''" width="27" height="27" viewBox="0 0 27 27" fill="none"-->
- + <!--<span @click="showIcons">-->
- + <!--<svg :class="show_icons ? 'show' : ''" width="27" height="27" viewBox="0 0 27 27" fill="none"-->
- <!--xmlns="http://www.w3.org/2000/svg">-->
- <!--<circle cx="13.5" cy="13.5" r="13" stroke="#3A58F9"/>-->
- <!--<path d="M11 8L16.5 13.5L11 19" stroke="#3A58F9"/>-->
- @@ -301,7 +301,7 @@
- <!--Left Sidebar end-->
- <!--Icons sidebar start-->
- - <!--<div :class="showIcons ? 'show' : ''" class="icons-sidebar">-->
- + <!--<div :class="show_icons ? 'show' : ''" class="icons-sidebar">-->
- <!--<svg class="search" width="18" height="18" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">-->
- <!--<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"/>-->
- <!--</svg>-->
- @@ -325,19 +325,20 @@
- <input id="zoom" size="3" value="100%" type="hidden" readonly="readonly"/>
- - <div :class="showIcons ? 'show' : ''" class="overlay"></div>
- + <div :class="show_icons ? 'show' : ''" class="overlay"></div>
- </div>
- </template>
- <script>
- import svgToImage from '../classes/svg-to-image';
- import Driver from 'driver.js';
- - import devtools from '../editor/lib/devtools-detect'
- - import mousetrap from 'mousetrap'
- + import appMixin from '../mixins/app-mixin';
- export default {
- name: 'editor',
- + mixins:[appMixin],
- +
- data() {
- return {
- logotype: null,
- @@ -347,7 +348,7 @@
- },
- hash: null,
- canvas: {},
- - showIcons: false,
- + show_icons: false,
- attributes: {
- // Main attributes
- @@ -450,6 +451,8 @@
- self.initTippyForRotate();
- });
- }, 100);
- +
- + self.states.is_loaded = true;
- });
- });
- }).catch(error => {
- @@ -458,8 +461,8 @@
- },
- methods: {
- - clickShowIconsSidebar() {
- - this.showIcons = !this.showIcons;
- + showIcons() {
- + this.show_icons = !this.show_icons;
- },
- startLogoSaver() {
- @@ -953,21 +956,14 @@
- EventBus.$on('editor.preview.show', () => {
- try {
- - // Create logo dom object
- - let fakeElem = document.createElement('div');
- - fakeElem.innerHTML = this.getLogo();
- - let logotype = fakeElem.firstChild;
- + // Get dom logotype
- + let logotype = this.logoFromStr(this.getLogo());
- - // Get snap lines
- - let snapLineX = logotype.getElementById('snap_line_x');
- - let snapLineY = logotype.getElementById('snap_line_y');
- -
- - // Hide snap lines
- - snapLineX.style.display = 'none';
- - snapLineY.style.display = 'none';
- + // Clear logotype
- + this.clearLogotype(logotype);
- // Save as png for preview
- - svgAsPngUri(logotype, {}, function (uri) {
- + svgAsPngUri(logotype, {scale: 0.3}, function (uri) {
- EventBus.$emit('preview.logotype.set-preview', uri);
- EventBus.$emit('logotype.preview.popup.show');
- });
- @@ -1135,11 +1131,7 @@
- return cleanItems;
- },
- - rot13(str) {
- - return str.replace(/[a-zA-Z]/g, function (c) {
- - return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);
- - });
- - },
- +
- focusOnTextInput() {
- setTimeout(() => {
- // Focus
- @@ -1241,28 +1233,7 @@
- return x;
- },
- - downloadProtection() {
- - // Only for servers
- - if (!location.host.includes("local")) {
- - if (!user.permissions.devtools) {
- - EventBus.$on("devtoolschange", event => {
- - if (event.isOpen) {
- - window.location.href = '/';
- - }
- - });
- - // Disable context menu
- - document.oncontextmenu = function() {
- - return false;
- - };
- - }
- - }
- -
- - mousetrap.bind(['command+s', 'ctrl+s'], function(e) {
- - e.preventDefault();
- - e.stopPropagation();
- - });
- - },
- initTippy() {
- const htmlCollection = document.getElementsByClassName('placeholder');
- Index: public/images/logo.svg
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- public/images/logo.svg (date 1556261584000)
- +++ public/images/logo.svg (date 1556804401693)
- @@ -1,15 +1,9 @@
- <svg width="60" height="52" viewBox="0 0 60 52" fill="none" xmlns="http://www.w3.org/2000/svg">
- - <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_angular)"/>
- + <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)"/>
- <defs>
- - <radialGradient id="paint0_angular" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse"
- - gradientTransform="translate(30 55.5) rotate(-90) scale(12 12.0116)">
- - <stop stop-color="#347CE9"/>
- - <stop offset="0.276243" stop-color="#15E4E4"/>
- - <stop offset="0.502762" stop-color="#3446E9"/>
- - <stop offset="0.734807" stop-color="#AF34E9"/>
- - <stop offset="1" stop-color="#347CE9"/>
- - </radialGradient>
- + <linearGradient id="paint0_linear" x1="60" y1="15.5" x2="9.55109e-08" y2="15.5" gradientUnits="userSpaceOnUse">
- + <stop stop-color="#6063E9"/>
- + <stop offset="1" stop-color="#2AA0E8"/>
- + </linearGradient>
- </defs>
- </svg>
- Index: app/Http/Controllers/HomeController.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Http/Controllers/HomeController.php (date 1556261584000)
- +++ app/Http/Controllers/HomeController.php (date 1556782116616)
- @@ -19,7 +19,7 @@
- /**
- * Show the application dashboard.
- *
- - * @return \Illuminate\Http\Response
- + * @return \Illuminate\Contracts\Support\Renderable
- */
- public function index()
- {
- Index: resources/assets/images/logo.svg
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/images/logo.svg (date 1556261584000)
- +++ resources/assets/images/logo.svg (date 1556800254574)
- @@ -1,15 +1,9 @@
- <svg width="60" height="52" viewBox="0 0 60 52" fill="none" xmlns="http://www.w3.org/2000/svg">
- - <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_angular)"/>
- + <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)"/>
- <defs>
- - <radialGradient id="paint0_angular" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse"
- - gradientTransform="translate(30 55.5) rotate(-90) scale(12 12.0116)">
- - <stop stop-color="#347CE9"/>
- - <stop offset="0.276243" stop-color="#15E4E4"/>
- - <stop offset="0.502762" stop-color="#3446E9"/>
- - <stop offset="0.734807" stop-color="#AF34E9"/>
- - <stop offset="1" stop-color="#347CE9"/>
- - </radialGradient>
- + <linearGradient id="paint0_linear" x1="60" y1="15.5" x2="9.55109e-08" y2="15.5" gradientUnits="userSpaceOnUse">
- + <stop stop-color="#6063E9"/>
- + <stop offset="1" stop-color="#2AA0E8"/>
- + </linearGradient>
- </defs>
- </svg>
- Index: app/Http/Controllers/Auth/RegisterController.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Http/Controllers/Auth/RegisterController.php (date 1556261584000)
- +++ app/Http/Controllers/Auth/RegisterController.php (date 1556782116572)
- @@ -7,6 +7,7 @@
- use Illuminate\Foundation\Auth\RegistersUsers;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Validator;
- +use Illuminate\Auth\Events\Registered;
- class RegisterController extends Controller
- {
- @@ -34,6 +35,23 @@
- $this->users = $users;
- }
- +
- + /**
- + * @param Request $request
- + * @return \Illuminate\Http\RedirectResponse
- + * @throws \Throwable
- + */
- + public function register(Request $request)
- + {
- + $validated = $this->validator($request->all())->validate();
- +
- + event(new Registered($user = $this->create($validated)));
- +
- + $this->guard()->login($user);
- +
- + return $this->registered($request, $user)
- + ?: redirect($this->redirectPath());
- + }
- /**
- * Get a validator for an incoming registration request.
- @@ -48,13 +66,11 @@
- 'password' => 'required|string|min:6|confirmed',
- ]);
- }
- -
- +
- /**
- - * Create a new user instance after a valid registration.
- - *
- - * @param array $attributes
- - *
- + * @param array $attributes
- * @return \App\Models\User
- + * @throws \Throwable
- */
- protected function create(array $attributes)
- {
- Index: app/Http/Controllers/Auth/SocialAccountController.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Http/Controllers/Auth/SocialAccountController.php (date 1556261584000)
- +++ app/Http/Controllers/Auth/SocialAccountController.php (date 1556801486173)
- @@ -7,37 +7,37 @@
- class SocialAccountController extends Controller
- {
- + /**
- + * @param $provider
- + * @return mixed
- + */
- public function redirectToProvider($provider)
- {
- return \Socialite::driver($provider)->redirect();
- }
- -
- /**
- * @param LinkedSocialAccount $accountService
- * @param $provider
- *
- - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
- + * @return \Illuminate\Http\RedirectResponse|
- + * @throws \Throwable
- */
- public function handleProviderCallback(LinkedSocialAccount $accountService, $provider)
- {
- try {
- $user = \Socialite::with($provider)->user();
- } catch (\Exception $e) {
- - dd($e);
- -
- - return redirect('/login');
- + return redirect()->route('login', ['type' => 'error', 'message' => $e->getMessage()]);
- }
- - dd($user, $user->getEmail());
- + // Create or find user
- + $user = $accountService->findOrCreate($user, $provider);
- - $authUser = $accountService->findOrCreate(
- - $user,
- - $provider
- - );
- + // Try login user
- + auth()->login($user, true);
- - auth()->login($authUser, true);
- -
- - return redirect()->to('/home');
- + // Redirect to authorized resource
- + return redirect()->intended();
- }
- }
- Index: app/Models/User.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Models/User.php (date 1556261584000)
- +++ app/Models/User.php (date 1556782116676)
- @@ -3,39 +3,53 @@
- namespace App\Models;
- use App\Enums\Roles;
- +use App\Notifications\VerifyEmail;
- use App\Repositories\UserLogoRepository;
- +use Illuminate\Contracts\Auth\MustVerifyEmail;
- use Illuminate\Foundation\Auth\User as Authenticatable;
- +use Illuminate\Notifications\Notifiable;
- use Spatie\Permission\Traits\HasRoles;
- -class User extends Authenticatable
- +class User extends Authenticatable implements MustVerifyEmail
- {
- - use HasRoles;
- -
- + use HasRoles, Notifiable;
- +
- /**
- * The attributes that are mass assignable.
- *
- * @var array
- */
- - protected $fillable = [
- - 'name', 'email', 'password',
- - ];
- -
- + protected $guarded = [
- + 'email_verified_at',
- + ];
- +
- + /**
- + * @var array
- + */
- protected $appends = [
- 'last_user_hash',
- 'permissions',
- ];
- -
- +
- + /**
- + * @var array
- + */
- + protected $casts = [
- + 'social_meta' => 'array',
- + ];
- +
- /**
- * The attributes that should be hidden for arrays.
- *
- * @var array
- */
- protected $hidden = [
- - 'password', 'remember_token',
- + 'password',
- + 'remember_token',
- ];
- -
- +
- protected $guard_name = 'web';
- -
- +
- /**
- * @return \Illuminate\Database\Eloquent\Relations\HasMany
- */
- @@ -43,7 +57,7 @@
- {
- return $this->hasMany(LinkedSocialAccount::class);
- }
- -
- +
- /**
- * @return mixed
- */
- @@ -51,14 +65,40 @@
- {
- return \Session::get(UserLogoRepository::LAST_USER_HASH);
- }
- -
- +
- /**
- * @return array
- */
- public function getPermissionsAttribute()
- {
- return [
- - 'devtools' => $this->hasRole(Roles::ADMIN)
- + 'devtools' => $this->hasRole(Roles::ADMIN),
- ];
- }
- +
- + /**
- + * Send the email verification notification.
- + *
- + * @return void
- + */
- + public function sendEmailVerificationNotification()
- + {
- + $this->notify(new VerifyEmail);
- + }
- +
- + /**
- + * @param $pass
- + */
- + public function setPasswordAttribute($pass)
- + {
- + if ($pass) {
- + $passInfo = password_get_info($pass);
- +
- + if (!in_array($passInfo['algoName'], ['bcrypt'])) {
- + $pass = \Hash::make($pass);
- + }
- +
- + $this->attributes['password'] = $pass;
- + }
- + }
- }
- Index: app/Models/LinkedSocialAccount.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Models/LinkedSocialAccount.php (date 1556261584000)
- +++ app/Models/LinkedSocialAccount.php (date 1556782948245)
- @@ -2,46 +2,60 @@
- namespace App\Models;
- +use App\Repositories\UserRepository;
- use Illuminate\Database\Eloquent\Model;
- use Laravel\Socialite\Contracts\User as ProviderUser;
- class LinkedSocialAccount extends Model
- {
- -
- protected $fillable = ['provider_name', 'provider_id'];
- -
- -
- +
- + /**
- + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
- + */
- public function user()
- {
- - return $this->belongsTo('App\User');
- + return $this->belongsTo(User::class);
- }
- -
- - public function findOrCreate(ProviderUser $providerUser, $provider)
- +
- + /**
- + * @param ProviderUser $providerUser
- + * @param string $provider
- + * @return User|Model|null
- + * @throws \Throwable
- + */
- + public function findOrCreate(ProviderUser $providerUser, string $provider)
- {
- + $repository = app(UserRepository::class);
- +
- $account = LinkedSocialAccount::where('provider_name', $provider)
- ->where('provider_id', $providerUser->getId())
- ->first();
- -
- +
- if ($account) {
- + // Mark as verified
- + if (!$account->user->hasVerifiedEmail()) {
- + $account->user->markEmailAsVerified();
- + }
- +
- return $account->user;
- } else {
- -
- - $user = User::where('email', $providerUser->getEmail())->first();
- -
- + $user = $repository->first('email', $providerUser->getEmail());
- +
- if (!$user) {
- - $user = User::create([
- - 'email' => $providerUser->getEmail(),
- - 'name' => $providerUser->getName(),
- + $user = $repository->create([
- + 'email' => $providerUser->getEmail(),
- + 'name' => $providerUser->getName(),
- + 'social_meta' => $providerUser->user,
- ]);
- }
- -
- +
- $user->accounts()->create([
- 'provider_id' => $providerUser->getId(),
- 'provider_name' => $provider,
- ]);
- -
- +
- return $user;
- -
- }
- }
- }
- Index: resources/assets/js/components/choose-logo.vue
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/js/components/choose-logo.vue (date 1556261584000)
- +++ resources/assets/js/components/choose-logo.vue (date 1556782116836)
- @@ -1,24 +1,28 @@
- <template>
- - <div class="choose-logo-content row">
- - <transition name="slideLeft">
- - <div v-show="previewsIsReady" @scroll="scrollLogotypes($event)" style="height: 200px;"
- - class="col-md-3 left-content">
- - <ul>
- - <li v-for="(url, hash) in previews">
- - <a href="#"
- - @click.prevent="clickPreview(url, hash)"
- - :hash="hash"
- - class="logo-preview-image"
- - >
- - <img :src="url" alt="logo" width="300" height="auto">
- - <logo-hover :ref="'logo-hover-'+hash" :preview-url="url"></logo-hover>
- - </a>
- - </li>
- - </ul>
- - </div>
- - </transition>
- - <div class="col-md-9 right-content">
- - <preview></preview>
- + <div class="row">
- + <div class="col-12">
- + <div class="choose-logo-content row" v-loading="!previewsIsReady">
- + <transition name="slideLeft">
- + <div v-show="previewsIsReady" @scroll="scrollLogotypes($event)" style="height: 200px;"
- + class="col-md-3 left-content">
- + <ul>
- + <li v-for="(url, hash) in previews">
- + <a href="#"
- + @click.prevent="clickPreview(url, hash)"
- + :hash="hash"
- + class="logo-preview-image"
- + >
- + <img :src="url" alt="logo" width="300" height="auto">
- + <logo-hover :ref="'logo-hover-'+hash" :preview-url="url"></logo-hover>
- + </a>
- + </li>
- + </ul>
- + </div>
- + </transition>
- + <div class="col-md-9 right-content">
- + <preview></preview>
- + </div>
- + </div>
- </div>
- </div>
- </template>
- @@ -50,7 +54,7 @@
- // Previews not loaded
- self.isLoaded = false;
- - return new Promise(function(resolve) {
- + return new Promise(function (resolve) {
- // Get logos array hash
- let loadedLogos = Object.keys(self.previews);
- @@ -97,7 +101,7 @@
- initTippy() {
- const self = this;
- - setTimeout(function() {
- + setTimeout(function () {
- tippy('a.logo-preview-image', {
- duration: 0,
- followCursor: true,
- Index: resources/views/client/profile.blade.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/views/client/profile.blade.php (date 1556782116964)
- +++ resources/views/client/profile.blade.php (date 1556782116964)
- @@ -0,0 +1,18 @@
- +@extends('layouts.main')
- +
- +@section('content')
- + <div class="container-fluid">
- + <div class="row">
- + <header-page></header-page>
- + </div>
- + <profile></profile>
- + </div>
- + <div class="row">
- + <footer-page></footer-page>
- + </div>
- + </div>
- +@endsection
- +
- +@section('custom-css')
- + <link rel="stylesheet" href="{{ asset('/fonts/css/fonts.css') }}" type="text/css"/>
- +@endsection
- \ No newline at end of file
- Index: resources/lang/en/client.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/lang/en/client.php (date 1556782116933)
- +++ resources/lang/en/client.php (date 1556782116933)
- @@ -0,0 +1,18 @@
- +<?php
- +
- +return [
- + 'profile' => [
- + 'update' => [
- + 'success' => 'Profile has been updated',
- + ],
- + 'password' => [
- + 'update' => [
- + 'success' => 'Password has been updated'
- + ]
- + ]
- + ],
- + 'verification' => [
- + 'success' => 'Email has been verified.',
- + 'sent' => 'We have e-mailed your email verification link.',
- + ],
- +];
- Index: resources/assets/js/mixins/app-mixin.js
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/js/mixins/app-mixin.js (date 1556801612459)
- +++ resources/assets/js/mixins/app-mixin.js (date 1556801612459)
- @@ -0,0 +1,57 @@
- +import mousetrap from 'mousetrap';
- +import devtools from '../editor/lib/devtools-detect';
- +
- +export default {
- + mounted() {
- + //
- + },
- +
- + methods: {
- + downloadProtection() {
- + if (!location.host.includes("local")) {
- + if (!user.permissions.devtools) {
- + EventBus.$on("devtoolschange", event => {
- + if (event.isOpen) {
- + window.location.href = '/';
- + }
- + });
- +
- + document.oncontextmenu = function () {
- + return false;
- + };
- + }
- + }
- +
- + mousetrap.bind(['command+s', 'ctrl+s'], function (e) {
- + e.preventDefault();
- + e.stopPropagation();
- + });
- + },
- + rot13(str) {
- + return str.replace(/[a-zA-Z]/g, function (c) {
- + return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);
- + });
- + },
- +
- + clearLogotype(logotype) {
- + try {
- + // Get snap lines
- + let snapLineX = logotype.getElementById('snap_line_x');
- + let snapLineY = logotype.getElementById('snap_line_y');
- +
- + // Hide snap lines
- + snapLineX.style.display = 'none';
- + snapLineY.style.display = 'none';
- + } catch (e) {
- + console.warn(e);
- + }
- + },
- +
- + logoFromStr(xml) {
- + // Create logo dom object
- + let fakeElem = document.createElement('div');
- + fakeElem.innerHTML = xml;
- + return fakeElem.children[0];
- + },
- + }
- +}
- \ No newline at end of file
- Index: resources/views/auth/verify.blade.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/views/auth/verify.blade.php (date 1556782116951)
- +++ resources/views/auth/verify.blade.php (date 1556782116951)
- @@ -0,0 +1,15 @@
- +@extends('beautymail::templates.widgets')
- +
- +@section('content')
- +
- + @include('beautymail::templates.widgets.articleStart', ['color' => '#0000FF'])
- +
- + <h4 class="secondary">
- + <strong>Hello!</strong>
- + </h4>
- + <p>Please click the button below to verify your email address.</p>
- +
- + @include('beautymail::templates.widgets.articleEnd')
- +
- +
- +@stop
- \ No newline at end of file
- Index: app/Services/ImageConverter/src/js/psvg-convert.js
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Services/ImageConverter/src/js/psvg-convert.js (date 1556261584000)
- +++ app/Services/ImageConverter/src/js/psvg-convert.js (date 1556811214410)
- @@ -77,7 +77,7 @@
- var fsvg = getSVGRect();
- //page.clipRect = { left: fsvg.left, top: fsvg.top, width: fsvg.width, height: fsvg.height };
- - page.render(outfile, {'format': rformat });
- + page.render(outfile, {'format': rformat, scale: 1 });
- phantom.exit(0);
- } catch (error) {
- console.log('Error: ' + error);
- Index: database/migrations/2019_05_01_203948_add_social_meta_field.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- database/migrations/2019_05_01_203948_add_social_meta_field.php (date 1556782116758)
- +++ database/migrations/2019_05_01_203948_add_social_meta_field.php (date 1556782116758)
- @@ -0,0 +1,32 @@
- +<?php
- +
- +use Illuminate\Support\Facades\Schema;
- +use Illuminate\Database\Schema\Blueprint;
- +use Illuminate\Database\Migrations\Migration;
- +
- +class AddSocialMetaField extends Migration
- +{
- + /**
- + * Run the migrations.
- + *
- + * @return void
- + */
- + public function up()
- + {
- + Schema::table('users', function (Blueprint $table) {
- + $table->json('social_meta')->nullable();
- + });
- + }
- +
- + /**
- + * Reverse the migrations.
- + *
- + * @return void
- + */
- + public function down()
- + {
- + Schema::table('users', function (Blueprint $table) {
- + $table->dropColumn('social_meta');
- + });
- + }
- +}
- Index: resources/assets/js/components/client/profile.vue
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/js/components/client/profile.vue (date 1556803680710)
- +++ resources/assets/js/components/client/profile.vue (date 1556803680710)
- @@ -0,0 +1,290 @@
- +<template>
- + <el-row class="main-padding">
- + <el-col :span="16" class="logotypes-block">
- + <el-card class="box-card" v-loading="!logotypes">
- + <div slot="header" class="clearfix">
- + <span>Recent logotypes</span>
- + </div>
- + <template v-if="hasLogotypes">
- + <el-card v-for="logotype in logotypes"
- + :key="logotype.url"
- + v-loading="!logotype.preview"
- + class="logo-card">
- + <img :src="logotype.preview" class="image">
- + <div class="bot-logo-card">
- + <div class="bottom-block clearfix">
- + <time class="time">{{ logotype.updated_at }}</time>
- + <hr>
- + <el-link :href="logotype.url" target="_blank" type="text"
- + class="edit-logo-button primary">
- + Edit logo
- + </el-link>
- + </div>
- + </div>
- + </el-card>
- + </template>
- + <template v-else>
- + <el-alert v-show="logotypes && !hasLogotypes"
- + type="info"
- + description="You don't have any logos yet"
- + show-icon>
- + </el-alert>
- + </template>
- + </el-card>
- + </el-col>
- + <el-col :span="8">
- + <div class="grid-content bg-purple-dark">
- + <el-tabs type="border-card">
- + <el-tab-pane label="Profile" icon="user-solid">
- + <el-form label-position="top">
- + <el-form-item label="Name" :error="forms.profile.errors.get('name')">
- + <el-input v-model="models.profile.name"></el-input>
- + </el-form-item>
- + <el-form-item label="Email" :error="forms.profile.errors.get('email')">
- + <el-input v-model="models.profile.email">
- + <template v-if="user.email_verified_at" slot="append">
- + <i class="el-icon-success icon-success"></i> Verified
- + </template>
- + <template v-else slot="append">
- + <i class="el-icon-warning icon-warning"></i> Not verified
- + </template>
- + </el-input>
- +
- + <el-button
- + v-if="!user.email_verified_at"
- + @click="resendEmailVerification"
- + :loading="forms.resend.busy"
- + size="mini"
- + class="resend-button">
- + Resend verification
- + </el-button>
- + </el-form-item>
- + <el-form-item>
- + <el-button
- + @click="updateProfile()"
- + :loading="forms.profile.busy"
- + type="primary"
- + icon="el-icon-refresh">Update
- + </el-button>
- + </el-form-item>
- + </el-form>
- + </el-tab-pane>
- + <el-tab-pane label="Password">
- + <el-form label-position="top">
- + <el-form-item label="Password" :error="forms.password.errors.get('password')">
- + <el-input placeholder="Please input password" v-model="models.password.password" show-password></el-input>
- + </el-form-item>
- + <el-form-item label="Repeat password" :error="forms.password.errors.get('password_confirmation')">
- + <el-input placeholder="Please repeat password" v-model="models.password.password_confirmation" show-password></el-input>
- + </el-form-item>
- + <el-form-item>
- + <el-button
- + @click="updatePassword()"
- + :loading="forms.password.busy"
- + type="primary"
- + icon="el-icon-refresh">Set new password
- + </el-button>
- + </el-form-item>
- + </el-form>
- + </el-tab-pane>
- + </el-tabs>
- + </div>
- + </el-col>
- + </el-row>
- +</template>
- +
- +<style lang="scss" scoped>
- + .box-card {
- + /*min-height: 200px;*/
- + }
- +
- + .el-card__body {
- + padding: 15px;
- + }
- +
- + .logo-card {
- + width: 200px;
- + padding: 0;
- + margin-left: 40px;
- + margin-bottom: 25px;
- + float: left;
- + }
- +
- + .main-padding {
- + padding-top: 110px;
- + }
- +
- + .logotypes-block {
- + padding-right: 20px;
- + }
- +
- + .time {
- + font-size: 13px;
- + color: #999;
- + }
- +
- + .bottom-block {
- + margin-top: 13px;
- + line-height: 12px;
- + }
- +
- + .edit-logo-button {
- + padding-top: 20px;
- + }
- +
- + .image {
- + width: 100%;
- + display: block;
- + }
- +
- + .clearfix:before,
- + .clearfix:after {
- + display: table;
- + content: "";
- + }
- +
- + .clearfix:after {
- + clear: both
- + }
- +
- + .bot-logo-card {
- + padding-top: 5px;
- + }
- +
- + .icon-success {
- + color: #67c23a;
- + }
- +
- + .icon-warning {
- + color: #e6a23c;
- + }
- +
- + .resend-button {
- + margin-top: 10px;
- + }
- +</style>
- +
- +<script>
- + import appMixin from '../../mixins/app-mixin';
- + import svgToImage from '../../classes/svg-to-image';
- +
- + export default {
- + name: 'profile',
- + mixins: [appMixin],
- + props: {
- + customUser: {
- + type: Object,
- + default: null
- + },
- + },
- + data() {
- + return {
- + user: this.customUser || window.user,
- + logotypes: null,
- +
- + forms: {
- + profile: new Form(),
- + resend: new Form(),
- + password: new Form(),
- + },
- +
- + models: {
- + profile: {
- + name: user.name,
- + email: user.email,
- + },
- + password: {
- + password: null,
- + password_confirmation: null,
- + },
- + },
- + };
- + },
- + computed: {
- + hasLogotypes: function () {
- + return this.logotypes && this.logotypes.length > 0;
- + }
- + },
- +
- + mounted() {
- + this.downloadProtection();
- + this.loadMenu();
- + },
- +
- + methods: {
- + loadMenu() {
- + if (this.user) {
- + Requester.get(route('client.logotypes.get')).then((response) => {
- + let logotypes = response.data;
- +
- + _.forEach(logotypes, (logo) => {
- + return new Promise((resolve) => {
- + setTimeout(() => {
- + // Get dom logotype
- + let logotype = this.logoFromStr(this.rot13(logo.content));
- +
- + // Clear logotype
- + this.clearLogotype(logotype);
- +
- + return resolve(logotype);
- + });
- + }).then((logotype) => {
- + // Save as image for preview
- + svgAsPngUri(logotype, {scale: 0.3}, (preview) => {
- + logo.preview = preview;
- + logo.content = null;
- + });
- + });
- + });
- +
- + this.logotypes = logotypes;
- + });
- + }
- + },
- +
- + updateProfile() {
- + // Actualize form object
- + this.forms.profile.email = this.models.profile.email;
- + this.forms.profile.name = this.models.profile.name;
- +
- + // Send request
- + FormProcessor.post(route('client.profile.update'), this.forms.profile).then((response) => {
- + // Set updated user
- + this.user = response.user;
- +
- + this.$notify({
- + message: response.message,
- + type: response.status,
- + });
- + });
- + },
- +
- + resendEmailVerification() {
- + FormProcessor.post(route('verification.resend'), this.forms.resend).then((response) => {
- + this.$notify({
- + message: response.message,
- + type: response.status,
- + });
- + });
- + },
- +
- + updatePassword() {
- + // Actualize form object
- + this.forms.password.password = this.models.password.password;
- + this.forms.password.password_confirmation = this.models.password.password_confirmation;
- +
- + // Send request
- + FormProcessor.post(route('client.profile.password.update'), this.forms.password).then((response) => {
- + // Clear form with passwords
- + this.models.password.password = null;
- + this.models.password.password_confirmation = null;
- +
- + this.$notify({
- + message: response.message,
- + type: response.status,
- + });
- + });
- + },
- + },
- + };
- +</script>
- \ No newline at end of file
- Index: app/Http/Requests/UpdateProfileRequest.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Http/Requests/UpdateProfileRequest.php (date 1556782116656)
- +++ app/Http/Requests/UpdateProfileRequest.php (date 1556782116656)
- @@ -0,0 +1,31 @@
- +<?php
- +
- +namespace App\Http\Requests;
- +
- +use Illuminate\Foundation\Http\FormRequest;
- +
- +class UpdateProfileRequest extends FormRequest
- +{
- + /**
- + * Determine if the user is authorized to make this request.
- + *
- + * @return bool
- + */
- + public function authorize()
- + {
- + return true;
- + }
- +
- + /**
- + * Get the validation rules that apply to the request.
- + *
- + * @return array
- + */
- + public function rules()
- + {
- + return [
- + 'name' => 'string|min:1|max:50',
- + 'email' => 'required|email',
- + ];
- + }
- +}
- Index: config/beautymail.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- config/beautymail.php (date 1556782116742)
- +++ config/beautymail.php (date 1556782116742)
- @@ -0,0 +1,37 @@
- +<?php
- +
- +return [
- +
- + // These CSS rules will be applied after the regular template CSS
- +
- + /*
- + 'css' => [
- + '.button-content .button { background: red }',
- + ],
- + */
- +
- + 'colors' => [
- +
- + 'highlight' => '#004ca3',
- + 'button' => '#004cad',
- +
- + ],
- +
- + 'view' => [
- + 'senderName' => null,
- + 'reminder' => null,
- + 'unsubscribe' => null,
- + 'address' => null,
- +
- + 'logo' => [
- + 'path' => '%PUBLIC%/images/logo.svg',
- + 'width' => '',
- + 'height' => '',
- + ],
- +
- + 'twitter' => null,
- + 'facebook' => null,
- + 'flickr' => null,
- + ],
- +
- +];
- Index: app/Notifications/VerifyEmail.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Notifications/VerifyEmail.php (date 1556782116686)
- +++ app/Notifications/VerifyEmail.php (date 1556782116686)
- @@ -0,0 +1,68 @@
- +<?php
- +
- +namespace App\Notifications;
- +
- +use Illuminate\Bus\Queueable;
- +use Illuminate\Contracts\Queue\ShouldQueue;
- +use Illuminate\Support\Carbon;
- +use Illuminate\Support\Facades\URL;
- +use Illuminate\Support\Facades\Lang;
- +use Illuminate\Support\Facades\Config;
- +use Illuminate\Notifications\Notification;
- +use Illuminate\Notifications\Messages\MailMessage;
- +
- +class VerifyEmail extends Notification implements ShouldQueue
- +{
- + use Queueable;
- +
- + /**
- + * Get the notification's channels.
- + *
- + * @param mixed $notifiable
- + * @return array|string
- + */
- + public function via($notifiable)
- + {
- + return ['mail'];
- + }
- +
- +
- + public function toMail($notifiable)
- + {
- +// $beautymail = app()->make(\Snowfire\Beautymail\Beautymail::class);
- +// $beautymail
- +//
- +// ->send('auth.verify', [], function($message)
- +// {
- +// $message
- +// ->from('bar@example.com')
- +// ->to('foo@example.com', 'John Smith')
- +// ->subject('Verify Email Address!');
- +// });
- +
- +
- + return (new MailMessage)
- + ->subject(Lang::getFromJson('Verify Email Address'))
- + ->line(Lang::getFromJson('Please click the button below to verify your email address.'))
- + ->action(
- + Lang::getFromJson('Verify Email Address'),
- + $this->verificationUrl($notifiable)
- + )
- + ->line(Lang::getFromJson('If you did not create an account, no further action is required.'));
- + }
- +
- + /**
- + * Get the verification URL for the given notifiable.
- + *
- + * @param mixed $notifiable
- + * @return string
- + */
- + protected function verificationUrl($notifiable)
- + {
- + return URL::temporarySignedRoute(
- + 'verification.verify',
- + Carbon::now()->addMinutes(Config::get('auth.verification.expire', 60)),
- + ['id' => $notifiable->getKey()]
- + );
- + }
- +}
- Index: package.json
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- package.json (date 1556261584000)
- +++ package.json (date 1556782117029)
- @@ -58,6 +58,7 @@
- "clamp": "^1.0.1",
- "dom-to-image": "^2.6.0",
- "driver.js": "^0.9.5",
- + "element-ui": "^2.8.2",
- "imports-loader": "^0.8.0",
- "lodash.throttle": "^4.0.0",
- "material-colors": "^1.0.0",
- Index: app/Http/Controllers/ClientController.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Http/Controllers/ClientController.php (date 1556803577223)
- +++ app/Http/Controllers/ClientController.php (date 1556803577223)
- @@ -0,0 +1,80 @@
- +<?php
- +
- +namespace App\Http\Controllers;
- +
- +use App\Enums\HttpStatusEnum;
- +use App\Http\Requests\UpdatePasswordRequest;
- +use App\Http\Requests\UpdateProfileRequest;
- +use App\Repositories\UserLogoRepository;
- +use App\Repositories\UserRepository;
- +use Illuminate\Http\JsonResponse;
- +
- +class ClientController extends Controller
- +{
- + /**
- + * @var UserLogoRepository
- + */
- + protected $userLogo;
- +
- + /**
- + * @var UserRepository
- + */
- + protected $users;
- +
- + public function __construct(UserLogoRepository $userLogo, UserRepository $users)
- + {
- + $this->userLogo = $userLogo;
- + $this->users = $users;
- + }
- +
- + /**
- + * @return \Illuminate\View\View
- + */
- + public function profile()
- + {
- + return view('client.profile');
- + }
- +
- + public function updateProfile(UpdateProfileRequest $request)
- + {
- + $data = $request->validated();
- + $user = $request->user();
- +
- + // Update user data
- + $user = $this->users->update($user, $data);
- +
- + return JsonResponse::create([
- + 'user' => $user,
- + 'status' => HttpStatusEnum::HTTP_SUCCESS,
- + 'message' => __('client.profile.update.success'),
- + ]);
- + }
- +
- + /**
- + * @param UpdatePasswordRequest $request
- + * @return JsonResponse
- + * @throws \Throwable
- + */
- + public function updatePassword(UpdatePasswordRequest $request)
- + {
- + $data = $request->validated();
- + $user = $request->user();
- +
- + // Update user data
- + $user = $this->users->update($user, $data);
- +
- + return JsonResponse::create([
- + 'user' => $user,
- + 'status' => HttpStatusEnum::HTTP_SUCCESS,
- + 'message' => __('client.profile.password.update.success'),
- + ]);
- + }
- +
- + /**
- + * @return \Illuminate\Http\JsonResponse
- + */
- + public function getClientLogotypes()
- + {
- + return response()->json($this->userLogo->getUrlsForEditor());
- + }
- +}
- \ No newline at end of file
- Index: app/Http/Controllers/Auth/VerificationController.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Http/Controllers/Auth/VerificationController.php (date 1556782116594)
- +++ app/Http/Controllers/Auth/VerificationController.php (date 1556782116594)
- @@ -0,0 +1,103 @@
- +<?php
- +
- +namespace App\Http\Controllers\Auth;
- +
- +use App\Enums\HttpStatusEnum;
- +use App\Http\Controllers\Controller;
- +use Illuminate\Auth\Access\AuthorizationException;
- +use Illuminate\Auth\Events\Verified;
- +use Illuminate\Foundation\Auth\VerifiesEmails;
- +use Illuminate\Http\Request;
- +
- +class VerificationController extends Controller
- +{
- + /*
- + |--------------------------------------------------------------------------
- + | Email Verification Controller
- + |--------------------------------------------------------------------------
- + |
- + | This controller is responsible for handling email verification for any
- + | user that recently registered with the application. Emails may also
- + | be re-sent if the user didn't receive the original email message.
- + |
- + */
- +
- + use VerifiesEmails;
- +
- + /**
- + * Where to redirect users after verification.
- + *
- + * @var string
- + */
- + protected $redirectTo = '/client/profile';
- +
- + /**
- + * Create a new controller instance.
- + *
- + * @return void
- + */
- + public function __construct()
- + {
- + $this->middleware('auth');
- + $this->middleware('signed')->only('verify');
- + $this->middleware('throttle:6,1')->only('verify', 'resend');
- + }
- +
- + /**
- + * Resend the email verification notification.
- + *
- + * @param \Illuminate\Http\Request $request
- + * @return \Illuminate\Http\Response
- + */
- + public function resend(Request $request)
- + {
- + if ($request->user()->hasVerifiedEmail()) {
- + return response()->json([
- + 'message' => __('client.verification.success'),
- + 'status' => HttpStatusEnum::HTTP_SUCCESS,
- + ]);
- + }
- +
- + $request->user()->sendEmailVerificationNotification();
- +
- + return response()->json([
- + 'message' => __('client.verification.sent'),
- + 'status' => HttpStatusEnum::HTTP_SUCCESS,
- + ]);
- + }
- +
- + /**
- + * Mark the authenticated user's email address as verified.
- + *
- + * @param \Illuminate\Http\Request $request
- + * @return \Illuminate\Http\Response
- + * @throws \Illuminate\Auth\Access\AuthorizationException
- + */
- + public function verify(Request $request)
- + {
- + if ($request->route('id') != $request->user()->getKey()) {
- + throw new AuthorizationException;
- + }
- +
- + if ($request->user()->hasVerifiedEmail()) {
- + return redirect($this->redirectPath());
- + }
- +
- + if ($request->user()->markEmailAsVerified()) {
- + event(new Verified($request->user()));
- + }
- +
- + return redirect($this->redirectPath())->with('verified', true);
- + }
- +
- + /**
- + * @return string
- + */
- + public function redirectPath()
- + {
- + return route('client.profile.show', [
- + 'type' => HttpStatusEnum::HTTP_SUCCESS,
- + 'message' => __('client.verification.success'),
- + ]);
- + }
- +}
- \ No newline at end of file
- Index: app/Http/Requests/UpdatePasswordRequest.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Http/Requests/UpdatePasswordRequest.php (date 1556782116648)
- +++ app/Http/Requests/UpdatePasswordRequest.php (date 1556782116648)
- @@ -0,0 +1,30 @@
- +<?php
- +
- +namespace App\Http\Requests;
- +
- +use Illuminate\Foundation\Http\FormRequest;
- +
- +class UpdatePasswordRequest extends FormRequest
- +{
- + /**
- + * Determine if the user is authorized to make this request.
- + *
- + * @return bool
- + */
- + public function authorize()
- + {
- + return true;
- + }
- +
- + /**
- + * Get the validation rules that apply to the request.
- + *
- + * @return array
- + */
- + public function rules()
- + {
- + return [
- + 'password' => 'required|string|min:6|confirmed',
- + ];
- + }
- +}
- Index: app/Http/Middleware/EnsureEmailIsVerified.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Http/Middleware/EnsureEmailIsVerified.php (date 1556782116641)
- +++ app/Http/Middleware/EnsureEmailIsVerified.php (date 1556782116641)
- @@ -0,0 +1,31 @@
- +<?php
- +
- +namespace App\Http\Middleware;
- +
- +use Closure;
- +use Illuminate\Support\Facades\Redirect;
- +use Illuminate\Contracts\Auth\MustVerifyEmail;
- +
- +class EnsureEmailIsVerified
- +{
- + /**
- + * Handle an incoming request.
- + *
- + * @param \Illuminate\Http\Request $request
- + * @param \Closure $next
- + * @param string $redirectToRoute
- + * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
- + */
- + public function handle($request, Closure $next, $redirectToRoute = null)
- + {
- + if (! $request->user() ||
- + ($request->user() instanceof MustVerifyEmail &&
- + ! $request->user()->hasVerifiedEmail())) {
- + return $request->expectsJson()
- + ? abort(403, 'Your email address is not verified.')
- + : Redirect::route($redirectToRoute ?: 'verification.notice');
- + }
- +
- + return $next($request);
- + }
- +}
- Index: app/Repositories/LogotypeRepository.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Repositories/LogotypeRepository.php (date 1556261584000)
- +++ app/Repositories/LogotypeRepository.php (date 1556810850243)
- @@ -75,18 +75,18 @@
- return self::DIRECTORY.DIRECTORY_SEPARATOR.$hash.'.'.self::EXTENSION;
- }
- - public function createPreview(string $hash)
- + public function createPreview($xml)
- {
- // Get svg path
- - $absolutePath = $this->getAbsolutePath($hash);
- - $content = file_get_contents($absolutePath);
- -
- - $svg = SVG::fromString($content);
- + $svg = SVG::fromString($xml);
- // ../../../public/fonts/
- - $style = (new SVGFont('ForteMT', 'http://logosos.local/font/Forte.ttf'));
- - $svg->getDocument()->addChild($style);
- + $style1 = (new SVGFont('FuturaBT Book', public_path('fonts/futurabt book.woff')));
- + $style2 = (new SVGFont('Hitch Hike', public_path('fonts/hitch hike.otf')));
- +
- + $svg->getDocument()->addChild($style1)->addChild($style2);
- $content = $svg->toXMLString();
- +
- // Make preview
- $phantomSvg = new PSVG();
- $phantomSvg->load($content);
- @@ -94,7 +94,9 @@
- $phantomSvg->convert();
- // Save preview
- - $phantomSvg->save($this->getPreviewPath($hash));
- + $phantomSvg->save(public_path('test44.png'));
- +
- + dd(base64_encode(file_get_contents(public_path('test44.png')))) ;
- return $this;
- }
- Index: app/Enums/HttpStatusEnum.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Enums/HttpStatusEnum.php (date 1556782116564)
- +++ app/Enums/HttpStatusEnum.php (date 1556782116564)
- @@ -0,0 +1,10 @@
- +<?php
- +
- +namespace App\Enums;
- +
- +
- +class HttpStatusEnum
- +{
- + const HTTP_SUCCESS = 'success';
- + const HTTP_ERROR = 'error';
- +}
- \ No newline at end of file
- Index: app/Repositories/BaseRepository.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Repositories/BaseRepository.php (date 1556261584000)
- +++ app/Repositories/BaseRepository.php (date 1556782116693)
- @@ -2,6 +2,7 @@
- namespace App\Repositories;
- +use App\Models\User;
- use Illuminate\Database\Eloquent\Builder;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Database\Eloquent\ModelNotFoundException;
- @@ -87,6 +88,7 @@
- public function first(string $field, $value)
- {
- $condition = ucfirst($field);
- +
- if ($value) {
- return $this->model->{"where$condition"}($value)->first();
- }
- @@ -206,31 +208,30 @@
- }
- /**
- - * @param array $attributes
- + * @param array $data
- *
- * @return mixed
- */
- - public function create(array $attributes)
- + public function create(array $data)
- {
- - $model = $this->model->newInstance((array)$attributes);
- + $model = $this->model->newInstance((array)$data);
- $model->save();
- return $model;
- }
- /**
- - * @param array $attributes
- - * @param array $id
- + * @param User $user
- + * @param array $data
- *
- - * @return mixed
- + * @return User
- */
- - public function update(array $attributes = [], array $id = [])
- + public function update(User $user, array $data): User
- {
- - $model = $this->model->findOrFail($id);
- - $model->fill($attributes);
- - $model->save();
- + $user->fill($data);
- + $user->save();
- - return $model;
- + return $user;
- }
- /**
- Index: app/Repositories/UserLogoRepository.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Repositories/UserLogoRepository.php (date 1556261584000)
- +++ app/Repositories/UserLogoRepository.php (date 1556782116704)
- @@ -11,36 +11,36 @@
- class UserLogoRepository extends BaseRepository
- {
- public $model = UserLogo::class;
- -
- +
- public $logotype;
- -
- +
- public $sanitizer;
- -
- +
- const LAST_USER_HASH = 'last_user_hash';
- -
- +
- public function __construct(LogotypeRepository $logotype, Sanitizer $sanitizer)
- {
- parent::__construct();
- -
- +
- $this->logotype = $logotype;
- $this->sanitizer = $sanitizer;
- }
- -
- +
- public function createByHash(string $hash)
- {
- $logotype = $this->logotype->first('hash', $hash);
- $userHash = $this->getUserHash($logotype);
- -
- +
- // If user want repeat work on this logo
- $userWork = $this->first('hash', $userHash);
- -
- +
- if ($userWork) {
- $userHash = $this->getUserHash($logotype, true);
- }
- -
- +
- // Save user hash to session
- $this->saveHashToSession($userHash);
- -
- +
- // Create user work with logotype
- return $this->create([
- 'user_id' => auth()->id(),
- @@ -49,57 +49,59 @@
- 'logo_content' => $logotype->content,
- ]);
- }
- -
- +
- public function saveHashToSession(string $hash)
- {
- \Session::put(self::LAST_USER_HASH, $hash);
- }
- -
- +
- public function getUserHash(Logotype $logotype, $isRepeatedLogo = false)
- {
- $userHash = hash('sha256', $logotype->hash.auth()->id());
- -
- +
- return $isRepeatedLogo ? hash('sha256', $userHash.time()) : $userHash;
- }
- -
- +
- public function synchronize(string $logotype, $hash)
- {
- // Encrypt logo
- $logotype = str_rot13($logotype);
- -
- +
- // Sanitize logo
- $sanitizedLogo = $this->sanitizer->sanitize($logotype);
- -
- +
- // Get some valid svg logo
- $logotype = $sanitizedLogo ?: $logotype;
- -
- +
- $userWork = $this->first('hash', $hash);
- $userWork->update([
- 'logo_content' => $logotype,
- ]);
- }
- -
- +
- public function isEdited(Model $userLogo)
- {
- return !((string)$userLogo->created_at === (string)$userLogo->updated_at);
- }
- -
- +
- /**
- * @return array
- */
- - public function getUrlsForEditor(): array
- + public function getUrlsForEditor() : array
- {
- $result = [];
- $user = auth()->user();
- - $logotypes = $this->model->where('user_id', $user->id)->get();
- -
- + $logotypes = $this->model->where('user_id', $user->id)->orderBy('updated_at', 'desc')->get();
- +
- foreach ($logotypes as $logotype) {
- $result[] = [
- 'url' => route('logo.edit', $logotype->hash),
- - 'created_at' => Carbon::parse($logotype->created_at)->format('d.m.Y H:m:s'),
- + 'content' => $logotype->getEncryptedLogoContent(),
- + 'updated_at' => Carbon::parse($logotype->updated_at)->format('d.m.Y H:m:s'),
- + 'preview' => null,
- ];
- }
- -
- +
- return $result;
- }
- }
- \ No newline at end of file
- Index: app/Repositories/UserRepository.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Repositories/UserRepository.php (date 1556261584000)
- +++ app/Repositories/UserRepository.php (date 1556782116718)
- @@ -9,28 +9,86 @@
- class UserRepository extends BaseRepository
- {
- public $model = User::class;
- -
- +
- /**
- - * @param array $attributes
- - *
- - * @return mixed
- + * @param array $data
- + * @return User
- + * @throws \Throwable
- + */
- + public function create(array $data) : User
- + {
- + $user = \DB::transaction(function () use ($data) {
- + if (!data_get($data, 'name')) {
- + $fullName = $this->generateNameByEmail(data_get($data, 'email'));
- + } else {
- + // For social auth registration
- + $fullName = data_get($data, 'name');
- + }
- +
- +
- + $user = $this->model->create(array_merge([
- + 'name' => $fullName,
- + ], $data));
- +
- + return $user;
- + });
- +
- + // If register by social auth
- + if (data_get($data, 'password')) {
- + $user->sendEmailVerificationNotification();
- + } else {
- + $user->markEmailAsVerified();
- + }
- +
- + return $user;
- + }
- +
- + /**
- + * @param User $user
- + * @param array $data
- + * @return User
- + * @throws \Throwable
- + */
- + public function update(User $user, array $data) : User
- + {
- + return \DB::transaction(function () use ($user, $data) {
- + // Fill data
- + $user->fill($data);
- +
- + // Delete verification if email is changed
- + if ($user->isDirty('email')) {
- + $user->email_verified_at = null;
- +
- + $user->sendEmailVerificationNotification();
- + }
- +
- + // Save user
- + $user->save();
- +
- + return $user;
- + });
- + }
- +
- + /**
- + * @param string $email
- + * @return string
- */
- - public function create(array $attributes)
- + protected function generateNameByEmail(string $email) : string
- {
- - $name = Arr::first(explode('@', $attributes['email']));
- - $name = Str::replaceArray(' ', ['.', '_', '-'], $name);
- - $name = explode(' ', $name);
- -
- - $fullName = null;
- -
- - foreach ($name as $item) {
- - $fullName .= ' '.ucfirst($item);
- - }
- -
- - return $this->model->create([
- - 'name' => trim($fullName),
- - 'email' => $attributes['email'],
- - 'password' => \Hash::make($attributes['password']),
- - ]);
- + try {
- + $name = Arr::first(explode('@', $email));
- + $name = Str::replaceArray(' ', ['.', '_', '-'], $name);
- + $name = explode(' ', $name);
- +
- + $fullName = null;
- +
- + foreach ($name as $item) {
- + $fullName .= ' '.ucfirst($item);
- + }
- +
- + return trim($fullName);
- + } catch (\Exception $e) {
- + return $email;
- + }
- }
- }
- \ No newline at end of file
- Index: composer.lock
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- composer.lock (date 1556261584000)
- +++ composer.lock (date 1556782117023)
- @@ -4,7 +4,7 @@
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
- "This file is @generated automatically"
- ],
- - "content-hash": "282f4b8f12356c5a93210ff86edb95ea",
- + "content-hash": "0535edcd494bc80d0f2f7cc37caeac54",
- "packages": [
- {
- "name": "ammadeuss/laravel-html-dom-parser",
- @@ -241,16 +241,16 @@
- },
- {
- "name": "composer/composer",
- - "version": "1.8.4",
- + "version": "1.8.5",
- "source": {
- "type": "git",
- "url": "https://github.com/composer/composer.git",
- - "reference": "bc364c2480c17941e2135cfc568fa41794392534"
- + "reference": "949b116f9e7d98d8d276594fed74b580d125c0e6"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/composer/composer/zipball/bc364c2480c17941e2135cfc568fa41794392534",
- - "reference": "bc364c2480c17941e2135cfc568fa41794392534",
- + "url": "https://api.github.com/repos/composer/composer/zipball/949b116f9e7d98d8d276594fed74b580d125c0e6",
- + "reference": "949b116f9e7d98d8d276594fed74b580d125c0e6",
- "shasum": ""
- },
- "require": {
- @@ -317,7 +317,7 @@
- "dependency",
- "package"
- ],
- - "time": "2019-02-11T09:52:10+00:00"
- + "time": "2019-04-09T15:46:48+00:00"
- },
- {
- "name": "composer/semver",
- @@ -1336,16 +1336,16 @@
- },
- {
- "name": "laravel/framework",
- - "version": "v5.8.10",
- + "version": "v5.8.15",
- "source": {
- "type": "git",
- "url": "https://github.com/laravel/framework.git",
- - "reference": "505325b4577968750e622d7a5a271cf8785a7a1a"
- + "reference": "8a34004aed6ff0aa4072360e3e5bd875edebc223"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/laravel/framework/zipball/505325b4577968750e622d7a5a271cf8785a7a1a",
- - "reference": "505325b4577968750e622d7a5a271cf8785a7a1a",
- + "url": "https://api.github.com/repos/laravel/framework/zipball/8a34004aed6ff0aa4072360e3e5bd875edebc223",
- + "reference": "8a34004aed6ff0aa4072360e3e5bd875edebc223",
- "shasum": ""
- },
- "require": {
- @@ -1479,7 +1479,7 @@
- "framework",
- "laravel"
- ],
- - "time": "2019-04-04T13:39:49+00:00"
- + "time": "2019-04-30T14:05:03+00:00"
- },
- {
- "name": "laravel/socialite",
- @@ -1816,16 +1816,16 @@
- },
- {
- "name": "nesbot/carbon",
- - "version": "2.16.3",
- + "version": "2.17.1",
- "source": {
- "type": "git",
- "url": "https://github.com/briannesbitt/Carbon.git",
- - "reference": "373d9f0d58651af366435148c39beb702c2b7ef4"
- + "reference": "96acbc0c03782e8115156dd4dd8b736267155066"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/373d9f0d58651af366435148c39beb702c2b7ef4",
- - "reference": "373d9f0d58651af366435148c39beb702c2b7ef4",
- + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/96acbc0c03782e8115156dd4dd8b736267155066",
- + "reference": "96acbc0c03782e8115156dd4dd8b736267155066",
- "shasum": ""
- },
- "require": {
- @@ -1835,9 +1835,9 @@
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^2.14 || ^3.0",
- - "kylekatarnls/multi-tester": "^0.1",
- + "kylekatarnls/multi-tester": "^1.1",
- "phpmd/phpmd": "^2.6",
- - "phpstan/phpstan": "^0.10.8",
- + "phpstan/phpstan": "^0.11",
- "phpunit/phpunit": "^7.5 || ^8.0",
- "squizlabs/php_codesniffer": "^3.4"
- },
- @@ -1872,7 +1872,7 @@
- "datetime",
- "time"
- ],
- - "time": "2019-04-06T17:09:23+00:00"
- + "time": "2019-04-27T18:04:27+00:00"
- },
- {
- "name": "opis/closure",
- @@ -1981,6 +1981,80 @@
- "time": "2018-07-02T15:55:56+00:00"
- },
- {
- + "name": "pelago/emogrifier",
- + "version": "v2.1.1",
- + "source": {
- + "type": "git",
- + "url": "https://github.com/MyIntervals/emogrifier.git",
- + "reference": "8ee7fb5ad772915451ed3415c1992bd3697d4983"
- + },
- + "dist": {
- + "type": "zip",
- + "url": "https://api.github.com/repos/MyIntervals/emogrifier/zipball/8ee7fb5ad772915451ed3415c1992bd3697d4983",
- + "reference": "8ee7fb5ad772915451ed3415c1992bd3697d4983",
- + "shasum": ""
- + },
- + "require": {
- + "ext-dom": "*",
- + "ext-libxml": "*",
- + "php": "^5.5.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0",
- + "symfony/css-selector": "^3.4.0 || ^4.0.0"
- + },
- + "require-dev": {
- + "friendsofphp/php-cs-fixer": "^2.2.0",
- + "phpmd/phpmd": "^2.6.0",
- + "phpunit/phpunit": "^4.8.0",
- + "squizlabs/php_codesniffer": "^3.3.2"
- + },
- + "type": "library",
- + "extra": {
- + "branch-alias": {
- + "dev-master": "2.1.x-dev"
- + }
- + },
- + "autoload": {
- + "psr-4": {
- + "Pelago\\": "src/"
- + }
- + },
- + "notification-url": "https://packagist.org/downloads/",
- + "license": [
- + "MIT"
- + ],
- + "authors": [
- + {
- + "name": "John Reeve",
- + "email": "jreeve@pelagodesign.com"
- + },
- + {
- + "name": "Cameron Brooks"
- + },
- + {
- + "name": "Jaime Prado"
- + },
- + {
- + "name": "Oliver Klee",
- + "email": "github@oliverklee.de"
- + },
- + {
- + "name": "Zoli Szabó",
- + "email": "zoli.szabo+github@gmail.com"
- + },
- + {
- + "name": "Jake Hotson",
- + "email": "jake@qzdesign.co.uk"
- + }
- + ],
- + "description": "Converts CSS styles into inline style attributes in your HTML code",
- + "homepage": "https://www.myintervals.com/emogrifier.php",
- + "keywords": [
- + "css",
- + "email",
- + "pre-processing"
- + ],
- + "time": "2018-12-10T10:36:30+00:00"
- + },
- + {
- "name": "phpoption/phpoption",
- "version": "1.5.0",
- "source": {
- @@ -2031,6 +2105,56 @@
- "time": "2015-07-25T16:39:46+00:00"
- },
- {
- + "name": "predis/predis",
- + "version": "v1.1.1",
- + "source": {
- + "type": "git",
- + "url": "https://github.com/nrk/predis.git",
- + "reference": "f0210e38881631afeafb56ab43405a92cafd9fd1"
- + },
- + "dist": {
- + "type": "zip",
- + "url": "https://api.github.com/repos/nrk/predis/zipball/f0210e38881631afeafb56ab43405a92cafd9fd1",
- + "reference": "f0210e38881631afeafb56ab43405a92cafd9fd1",
- + "shasum": ""
- + },
- + "require": {
- + "php": ">=5.3.9"
- + },
- + "require-dev": {
- + "phpunit/phpunit": "~4.8"
- + },
- + "suggest": {
- + "ext-curl": "Allows access to Webdis when paired with phpiredis",
- + "ext-phpiredis": "Allows faster serialization and deserialization of the Redis protocol"
- + },
- + "type": "library",
- + "autoload": {
- + "psr-4": {
- + "Predis\\": "src/"
- + }
- + },
- + "notification-url": "https://packagist.org/downloads/",
- + "license": [
- + "MIT"
- + ],
- + "authors": [
- + {
- + "name": "Daniele Alessandri",
- + "email": "suppakilla@gmail.com",
- + "homepage": "http://clorophilla.net"
- + }
- + ],
- + "description": "Flexible and feature-complete Redis client for PHP and HHVM",
- + "homepage": "http://github.com/nrk/predis",
- + "keywords": [
- + "nosql",
- + "predis",
- + "redis"
- + ],
- + "time": "2016-06-16T16:22:20+00:00"
- + },
- + {
- "name": "psr/container",
- "version": "1.0.0",
- "source": {
- @@ -2440,17 +2564,60 @@
- "time": "2015-10-13T18:44:15+00:00"
- },
- {
- + "name": "snowfire/beautymail",
- + "version": "dev-master",
- + "source": {
- + "type": "git",
- + "url": "https://github.com/Snowfire/Beautymail.git",
- + "reference": "6f503e1db32663ea1a460515c7de9cb0920a5acc"
- + },
- + "dist": {
- + "type": "zip",
- + "url": "https://api.github.com/repos/Snowfire/Beautymail/zipball/6f503e1db32663ea1a460515c7de9cb0920a5acc",
- + "reference": "6f503e1db32663ea1a460515c7de9cb0920a5acc",
- + "shasum": ""
- + },
- + "require": {
- + "illuminate/support": "4.*|5.*",
- + "pelago/emogrifier": "@dev",
- + "php": ">=5.4.0"
- + },
- + "type": "library",
- + "autoload": {
- + "psr-0": {
- + "Snowfire\\Beautymail\\": "src/"
- + }
- + },
- + "notification-url": "https://packagist.org/downloads/",
- + "license": [
- + "MIT"
- + ],
- + "authors": [
- + {
- + "name": "Emil Sundberg",
- + "email": "emil@snowfire.net"
- + }
- + ],
- + "description": "Send beautiful html emails with Laravel",
- + "keywords": [
- + "email",
- + "html",
- + "laravel"
- + ],
- + "time": "2019-04-16T08:34:39+00:00"
- + },
- + {
- "name": "spatie/laravel-permission",
- - "version": "2.36.1",
- + "version": "2.37.0",
- "source": {
- "type": "git",
- "url": "https://github.com/spatie/laravel-permission.git",
- - "reference": "0d9c442dc4361ce829986697bc436578d816a9ca"
- + "reference": "81dbe9d372d70c255b66a2727a235076509f8d45"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/0d9c442dc4361ce829986697bc436578d816a9ca",
- - "reference": "0d9c442dc4361ce829986697bc436578d816a9ca",
- + "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/81dbe9d372d70c255b66a2727a235076509f8d45",
- + "reference": "81dbe9d372d70c255b66a2727a235076509f8d45",
- "shasum": ""
- },
- "require": {
- @@ -2502,7 +2669,7 @@
- "security",
- "spatie"
- ],
- - "time": "2019-03-05T14:58:35+00:00"
- + "time": "2019-04-09T12:45:17+00:00"
- },
- {
- "name": "sunra/php-simple-html-dom-parser",
- @@ -2554,16 +2721,16 @@
- },
- {
- "name": "swiftmailer/swiftmailer",
- - "version": "v6.2.0",
- + "version": "v6.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/swiftmailer/swiftmailer.git",
- - "reference": "6fa3232ff9d3f8237c0fae4b7ff05e1baa4cd707"
- + "reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/6fa3232ff9d3f8237c0fae4b7ff05e1baa4cd707",
- - "reference": "6fa3232ff9d3f8237c0fae4b7ff05e1baa4cd707",
- + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a",
- + "reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a",
- "shasum": ""
- },
- "require": {
- @@ -2612,20 +2779,20 @@
- "mail",
- "mailer"
- ],
- - "time": "2019-03-10T07:52:41+00:00"
- + "time": "2019-04-21T09:21:45+00:00"
- },
- {
- "name": "symfony/console",
- - "version": "v4.2.5",
- + "version": "v4.2.8",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/console.git",
- - "reference": "24206aff3efe6962593297e57ef697ebb220e384"
- + "reference": "e2840bb38bddad7a0feaf85931e38fdcffdb2f81"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/symfony/console/zipball/24206aff3efe6962593297e57ef697ebb220e384",
- - "reference": "24206aff3efe6962593297e57ef697ebb220e384",
- + "url": "https://api.github.com/repos/symfony/console/zipball/e2840bb38bddad7a0feaf85931e38fdcffdb2f81",
- + "reference": "e2840bb38bddad7a0feaf85931e38fdcffdb2f81",
- "shasum": ""
- },
- "require": {
- @@ -2684,7 +2851,7 @@
- ],
- "description": "Symfony Console Component",
- "homepage": "https://symfony.com",
- - "time": "2019-04-01T07:32:59+00:00"
- + "time": "2019-04-08T14:23:48+00:00"
- },
- {
- "name": "symfony/contracts",
- @@ -2756,7 +2923,7 @@
- },
- {
- "name": "symfony/css-selector",
- - "version": "v4.2.5",
- + "version": "v4.2.8",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/css-selector.git",
- @@ -2809,16 +2976,16 @@
- },
- {
- "name": "symfony/debug",
- - "version": "v4.2.5",
- + "version": "v4.2.8",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/debug.git",
- - "reference": "43ce8ab34c734dcc8a4af576cb86711daab964c5"
- + "reference": "2d279b6bb1d582dd5740d4d3251ae8c18812ed37"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/symfony/debug/zipball/43ce8ab34c734dcc8a4af576cb86711daab964c5",
- - "reference": "43ce8ab34c734dcc8a4af576cb86711daab964c5",
- + "url": "https://api.github.com/repos/symfony/debug/zipball/2d279b6bb1d582dd5740d4d3251ae8c18812ed37",
- + "reference": "2d279b6bb1d582dd5740d4d3251ae8c18812ed37",
- "shasum": ""
- },
- "require": {
- @@ -2861,20 +3028,20 @@
- ],
- "description": "Symfony Debug Component",
- "homepage": "https://symfony.com",
- - "time": "2019-03-10T17:09:50+00:00"
- + "time": "2019-04-11T11:27:41+00:00"
- },
- {
- "name": "symfony/event-dispatcher",
- - "version": "v4.2.5",
- + "version": "v4.2.8",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/event-dispatcher.git",
- - "reference": "ca5af306fbc37f3cf597e91bc9cfa0c7d3f33544"
- + "reference": "fbce53cd74ac509cbe74b6f227622650ab759b02"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ca5af306fbc37f3cf597e91bc9cfa0c7d3f33544",
- - "reference": "ca5af306fbc37f3cf597e91bc9cfa0c7d3f33544",
- + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/fbce53cd74ac509cbe74b6f227622650ab759b02",
- + "reference": "fbce53cd74ac509cbe74b6f227622650ab759b02",
- "shasum": ""
- },
- "require": {
- @@ -2925,11 +3092,11 @@
- ],
- "description": "Symfony EventDispatcher Component",
- "homepage": "https://symfony.com",
- - "time": "2019-03-30T15:58:42+00:00"
- + "time": "2019-04-06T13:51:08+00:00"
- },
- {
- "name": "symfony/filesystem",
- - "version": "v4.2.5",
- + "version": "v4.2.8",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/filesystem.git",
- @@ -2979,16 +3146,16 @@
- },
- {
- "name": "symfony/finder",
- - "version": "v4.2.5",
- + "version": "v4.2.8",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/finder.git",
- - "reference": "267b7002c1b70ea80db0833c3afe05f0fbde580a"
- + "reference": "e45135658bd6c14b61850bf131c4f09a55133f69"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/symfony/finder/zipball/267b7002c1b70ea80db0833c3afe05f0fbde580a",
- - "reference": "267b7002c1b70ea80db0833c3afe05f0fbde580a",
- + "url": "https://api.github.com/repos/symfony/finder/zipball/e45135658bd6c14b61850bf131c4f09a55133f69",
- + "reference": "e45135658bd6c14b61850bf131c4f09a55133f69",
- "shasum": ""
- },
- "require": {
- @@ -3024,20 +3191,20 @@
- ],
- "description": "Symfony Finder Component",
- "homepage": "https://symfony.com",
- - "time": "2019-02-23T15:42:05+00:00"
- + "time": "2019-04-06T13:51:08+00:00"
- },
- {
- "name": "symfony/http-foundation",
- - "version": "v4.2.5",
- + "version": "v4.2.8",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/http-foundation.git",
- - "reference": "5b7ab6beaa5b053b8d3c9b13367ada9b292e12e1"
- + "reference": "1ea878bd3af18f934dedb8c0de60656a9a31a718"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5b7ab6beaa5b053b8d3c9b13367ada9b292e12e1",
- - "reference": "5b7ab6beaa5b053b8d3c9b13367ada9b292e12e1",
- + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/1ea878bd3af18f934dedb8c0de60656a9a31a718",
- + "reference": "1ea878bd3af18f934dedb8c0de60656a9a31a718",
- "shasum": ""
- },
- "require": {
- @@ -3078,20 +3245,20 @@
- ],
- "description": "Symfony HttpFoundation Component",
- "homepage": "https://symfony.com",
- - "time": "2019-03-30T15:58:42+00:00"
- + "time": "2019-05-01T08:36:31+00:00"
- },
- {
- "name": "symfony/http-kernel",
- - "version": "v4.2.5",
- + "version": "v4.2.8",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/http-kernel.git",
- - "reference": "e8b940bbeebf0f96789b5d17d9d77f8b2613960b"
- + "reference": "a7713bc522f1a1cdf0b39f809fa4542523fc3114"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e8b940bbeebf0f96789b5d17d9d77f8b2613960b",
- - "reference": "e8b940bbeebf0f96789b5d17d9d77f8b2613960b",
- + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a7713bc522f1a1cdf0b39f809fa4542523fc3114",
- + "reference": "a7713bc522f1a1cdf0b39f809fa4542523fc3114",
- "shasum": ""
- },
- "require": {
- @@ -3167,7 +3334,7 @@
- ],
- "description": "Symfony HttpKernel Component",
- "homepage": "https://symfony.com",
- - "time": "2019-04-02T19:03:51+00:00"
- + "time": "2019-05-01T13:31:08+00:00"
- },
- {
- "name": "symfony/polyfill-ctype",
- @@ -3464,16 +3631,16 @@
- },
- {
- "name": "symfony/process",
- - "version": "v4.2.5",
- + "version": "v4.2.8",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/process.git",
- - "reference": "1e6cbb41dadcaf29e0db034d6ad0d039a9df06e6"
- + "reference": "8cf39fb4ccff793340c258ee7760fd40bfe745fe"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/symfony/process/zipball/1e6cbb41dadcaf29e0db034d6ad0d039a9df06e6",
- - "reference": "1e6cbb41dadcaf29e0db034d6ad0d039a9df06e6",
- + "url": "https://api.github.com/repos/symfony/process/zipball/8cf39fb4ccff793340c258ee7760fd40bfe745fe",
- + "reference": "8cf39fb4ccff793340c258ee7760fd40bfe745fe",
- "shasum": ""
- },
- "require": {
- @@ -3509,20 +3676,20 @@
- ],
- "description": "Symfony Process Component",
- "homepage": "https://symfony.com",
- - "time": "2019-03-10T20:07:02+00:00"
- + "time": "2019-04-10T16:20:36+00:00"
- },
- {
- "name": "symfony/routing",
- - "version": "v4.2.5",
- + "version": "v4.2.8",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/routing.git",
- - "reference": "319f600c1ea0f981f6bdc2f042cfc1690957c0e0"
- + "reference": "f4e43bb0dff56f0f62fa056c82d7eadcdb391bab"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/symfony/routing/zipball/319f600c1ea0f981f6bdc2f042cfc1690957c0e0",
- - "reference": "319f600c1ea0f981f6bdc2f042cfc1690957c0e0",
- + "url": "https://api.github.com/repos/symfony/routing/zipball/f4e43bb0dff56f0f62fa056c82d7eadcdb391bab",
- + "reference": "f4e43bb0dff56f0f62fa056c82d7eadcdb391bab",
- "shasum": ""
- },
- "require": {
- @@ -3585,20 +3752,20 @@
- "uri",
- "url"
- ],
- - "time": "2019-03-30T15:58:42+00:00"
- + "time": "2019-04-27T09:38:08+00:00"
- },
- {
- "name": "symfony/translation",
- - "version": "v4.2.5",
- + "version": "v4.2.8",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/translation.git",
- - "reference": "e46933cc31b68f51f7fc5470fb55550407520f56"
- + "reference": "181a426dd129cb496f12d7e7555f6d0b37a7615b"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/symfony/translation/zipball/e46933cc31b68f51f7fc5470fb55550407520f56",
- - "reference": "e46933cc31b68f51f7fc5470fb55550407520f56",
- + "url": "https://api.github.com/repos/symfony/translation/zipball/181a426dd129cb496f12d7e7555f6d0b37a7615b",
- + "reference": "181a426dd129cb496f12d7e7555f6d0b37a7615b",
- "shasum": ""
- },
- "require": {
- @@ -3620,7 +3787,9 @@
- "symfony/console": "~3.4|~4.0",
- "symfony/dependency-injection": "~3.4|~4.0",
- "symfony/finder": "~2.8|~3.0|~4.0",
- + "symfony/http-kernel": "~3.4|~4.0",
- "symfony/intl": "~3.4|~4.0",
- + "symfony/var-dumper": "~3.4|~4.0",
- "symfony/yaml": "~3.4|~4.0"
- },
- "suggest": {
- @@ -3658,20 +3827,20 @@
- ],
- "description": "Symfony Translation Component",
- "homepage": "https://symfony.com",
- - "time": "2019-04-01T14:13:08+00:00"
- + "time": "2019-05-01T12:55:36+00:00"
- },
- {
- "name": "symfony/var-dumper",
- - "version": "v4.2.5",
- + "version": "v4.2.8",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/var-dumper.git",
- - "reference": "9f87189ac10b42edf7fb8edc846f1937c6d157cf"
- + "reference": "3c4084cb1537c0e2ad41aad622bbf55a44a5c9ce"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/9f87189ac10b42edf7fb8edc846f1937c6d157cf",
- - "reference": "9f87189ac10b42edf7fb8edc846f1937c6d157cf",
- + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3c4084cb1537c0e2ad41aad622bbf55a44a5c9ce",
- + "reference": "3c4084cb1537c0e2ad41aad622bbf55a44a5c9ce",
- "shasum": ""
- },
- "require": {
- @@ -3734,7 +3903,7 @@
- "debug",
- "dump"
- ],
- - "time": "2019-02-23T15:17:42+00:00"
- + "time": "2019-05-01T12:55:36+00:00"
- },
- {
- "name": "tightenco/ziggy",
- @@ -4258,20 +4427,20 @@
- },
- {
- "name": "myclabs/deep-copy",
- - "version": "1.9.0",
- + "version": "1.9.1",
- "source": {
- "type": "git",
- "url": "https://github.com/myclabs/DeepCopy.git",
- - "reference": "78af75148f9fdd34ea727c8b529a9b4a8f7b740c"
- + "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/78af75148f9fdd34ea727c8b529a9b4a8f7b740c",
- - "reference": "78af75148f9fdd34ea727c8b529a9b4a8f7b740c",
- + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72",
- + "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72",
- "shasum": ""
- },
- "require": {
- - "php": "^7.2"
- + "php": "^7.1"
- },
- "replace": {
- "myclabs/deep-copy": "self.version"
- @@ -4279,8 +4448,6 @@
- "require-dev": {
- "doctrine/collections": "^1.0",
- "doctrine/common": "^2.6",
- - "phpstan/phpstan": "^0.9.2",
- - "phpstan/phpstan-phpunit": "^0.9.4",
- "phpunit/phpunit": "^7.1"
- },
- "type": "library",
- @@ -4304,7 +4471,7 @@
- "object",
- "object graph"
- ],
- - "time": "2018-10-30T00:14:44+00:00"
- + "time": "2019-04-07T13:18:21+00:00"
- },
- {
- "name": "nunomaduro/collision",
- @@ -4528,16 +4695,16 @@
- },
- {
- "name": "phpdocumentor/reflection-docblock",
- - "version": "4.3.0",
- + "version": "4.3.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- - "reference": "94fd0001232e47129dd3504189fa1c7225010d08"
- + "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08",
- - "reference": "94fd0001232e47129dd3504189fa1c7225010d08",
- + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c",
- + "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c",
- "shasum": ""
- },
- "require": {
- @@ -4575,7 +4742,7 @@
- }
- ],
- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- - "time": "2017-11-30T07:14:17+00:00"
- + "time": "2019-04-30T17:48:53+00:00"
- },
- {
- "name": "phpdocumentor/type-resolver",
- @@ -4941,16 +5108,16 @@
- },
- {
- "name": "phpunit/phpunit",
- - "version": "7.5.8",
- + "version": "7.5.9",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit.git",
- - "reference": "c29c0525cf4572c11efe1db49a8b8aee9dfac58a"
- + "reference": "134669cf0eeac3f79bc7f0c793efbc158bffc160"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c29c0525cf4572c11efe1db49a8b8aee9dfac58a",
- - "reference": "c29c0525cf4572c11efe1db49a8b8aee9dfac58a",
- + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/134669cf0eeac3f79bc7f0c793efbc158bffc160",
- + "reference": "134669cf0eeac3f79bc7f0c793efbc158bffc160",
- "shasum": ""
- },
- "require": {
- @@ -5021,7 +5188,7 @@
- "testing",
- "xunit"
- ],
- - "time": "2019-03-26T13:23:54+00:00"
- + "time": "2019-04-19T15:50:46+00:00"
- },
- {
- "name": "sebastian/code-unit-reverse-lookup",
- @@ -5190,16 +5357,16 @@
- },
- {
- "name": "sebastian/environment",
- - "version": "4.1.0",
- + "version": "4.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/environment.git",
- - "reference": "6fda8ce1974b62b14935adc02a9ed38252eca656"
- + "reference": "3095910f0f0fb155ac4021fc51a4a7a39ac04e8a"
- },
- "dist": {
- "type": "zip",
- - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6fda8ce1974b62b14935adc02a9ed38252eca656",
- - "reference": "6fda8ce1974b62b14935adc02a9ed38252eca656",
- + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/3095910f0f0fb155ac4021fc51a4a7a39ac04e8a",
- + "reference": "3095910f0f0fb155ac4021fc51a4a7a39ac04e8a",
- "shasum": ""
- },
- "require": {
- @@ -5214,7 +5381,7 @@
- "type": "library",
- "extra": {
- "branch-alias": {
- - "dev-master": "4.1-dev"
- + "dev-master": "4.2-dev"
- }
- },
- "autoload": {
- @@ -5239,7 +5406,7 @@
- "environment",
- "hhvm"
- ],
- - "time": "2019-02-01T05:27:49+00:00"
- + "time": "2019-04-25T07:55:20+00:00"
- },
- {
- "name": "sebastian/exporter",
- @@ -5683,7 +5850,9 @@
- ],
- "aliases": [],
- "minimum-stability": "dev",
- - "stability-flags": [],
- + "stability-flags": {
- + "snowfire/beautymail": 20
- + },
- "prefer-stable": true,
- "prefer-lowest": false,
- "platform": {
- Index: composer.json
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- composer.json (date 1556261584000)
- +++ composer.json (date 1556782116986)
- @@ -14,6 +14,8 @@
- "laravel/framework": "5.8.*",
- "laravel/socialite": "^3.1",
- "meyfa/php-svg": "^0.9.0",
- + "predis/predis": "^1.1",
- + "snowfire/beautymail": "dev-master",
- "spatie/laravel-permission": "^2.21",
- "tightenco/ziggy": "v0.6.8.1"
- },
- Index: yarn.lock
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- yarn.lock (date 1556261584000)
- +++ yarn.lock (date 1556782117056)
- @@ -513,6 +513,12 @@
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
- +async-validator@~1.8.1:
- + version "1.8.5"
- + resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0"
- + dependencies:
- + babel-runtime "6.x"
- +
- async@1.5.2, async@^1.5.2:
- version "1.5.2"
- resolved "http://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
- @@ -731,6 +737,10 @@
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
- +babel-helper-vue-jsx-merge-props@^2.0.0:
- + version "2.0.3"
- + resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6"
- +
- babel-helpers@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
- @@ -1030,7 +1040,6 @@
- babel-polyfill@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
- - integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=
- dependencies:
- babel-runtime "^6.26.0"
- core-js "^2.5.0"
- @@ -1102,7 +1111,7 @@
- mkdirp "^0.5.1"
- source-map-support "^0.4.15"
- -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0:
- +babel-runtime@6.x, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
- dependencies:
- @@ -2216,6 +2225,10 @@
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
- +deepmerge@^1.2.0:
- + version "1.5.2"
- + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753"
- +
- define-properties@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
- @@ -2451,6 +2464,17 @@
- version "1.3.83"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.83.tgz#74584eb0972bb6777811c5d68d988c722f5e6666"
- +element-ui@^2.8.2:
- + version "2.8.2"
- + resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.8.2.tgz#21a7a4cb92616b0f8b75d4d4e637d3a1cd8c09de"
- + dependencies:
- + async-validator "~1.8.1"
- + babel-helper-vue-jsx-merge-props "^2.0.0"
- + deepmerge "^1.2.0"
- + normalize-wheel "^1.0.1"
- + resize-observer-polyfill "^1.5.0"
- + throttle-debounce "^1.0.1"
- +
- elliptic@^6.0.0:
- version "6.4.1"
- resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a"
- @@ -4790,7 +4814,6 @@
- mousetrap@^1.6.3:
- version "1.6.3"
- resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.3.tgz#80fee49665fd478bccf072c9d46bdf1bfed3558a"
- - integrity sha512-bd+nzwhhs9ifsUrC2tWaSgm24/oo2c83zaRyZQF06hYA6sANfsXHtnZ19AbbbDXCDzeH5nZBSQ4NvCjgD62tJA==
- move-concurrently@^1.0.1:
- version "1.0.1"
- @@ -5031,6 +5054,10 @@
- query-string "^4.1.0"
- sort-keys "^1.0.0"
- +normalize-wheel@^1.0.1:
- + version "1.0.1"
- + resolved "https://registry.yarnpkg.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45"
- +
- npm-bundled@^1.0.1:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979"
- @@ -6072,7 +6099,6 @@
- regenerator-runtime@^0.10.5:
- version "0.10.5"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
- - integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=
- regenerator-runtime@^0.11.0, regenerator-runtime@^0.11.1:
- version "0.11.1"
- @@ -6213,6 +6239,10 @@
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
- +resize-observer-polyfill@^1.5.0:
- + version "1.5.1"
- + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
- +
- resolve-cwd@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
- @@ -6994,6 +7024,10 @@
- chalk "^1.1.1"
- object-path "^0.9.0"
- +throttle-debounce@^1.0.1:
- + version "1.1.0"
- + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz#51853da37be68a155cb6e827b3514a3c422e89cd"
- +
- through2@^2.0.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
- @@ -7036,7 +7070,6 @@
- tippy.js@^4.2.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/tippy.js/-/tippy.js-4.2.1.tgz#9e4939d976465f77229b05a3cb233b5dc28cf850"
- - integrity sha512-xEE7zYNgQxCDdPcuT6T04f0frPh0wO7CcIqJKMFazU/NqusyjCgYSkLRosIHoiRkZMRzSPOudC8wRN5GjvAyOQ==
- dependencies:
- popper.js "^1.14.7"
- @@ -7365,11 +7398,6 @@
- object-assign "^4.1.1"
- swiper "^4.0.7"
- -vue-class-component@^7.0.1:
- - version "7.0.2"
- - resolved "https://registry.yarnpkg.com/vue-class-component/-/vue-class-component-7.0.2.tgz#c5f35a91c0e9341532392b84d606a84911fb13bc"
- - integrity sha512-8xw/wkZI2tgHcwvkSRC1ax7GeP1CG27wKhedvOAdjdASm05VU4RijGsCYti6s6CzBioBL5BQUmntQQTCsp1wnQ==
- -
- vue-hot-reload-api@^1.3.x:
- version "1.3.3"
- resolved "http://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-1.3.3.tgz#54d22d83786a878493f639cc76bca7992a23be46"
- @@ -7400,19 +7428,9 @@
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/vue-multiselect/-/vue-multiselect-2.1.3.tgz#5454731086d8c431b527051a56910a8babe090af"
- -vue-property-decorator@^8.0.0:
- - version "8.1.0"
- - resolved "https://registry.yarnpkg.com/vue-property-decorator/-/vue-property-decorator-8.1.0.tgz#66493a5350e7f643e852e7698ec2c883554daa79"
- - integrity sha512-TUWpbadApSW/sx9hlbrUq092ULm4E3RkL5X4fFhkiJ88/Y99lVubjh3bd3VbFQ8JRlKaTeqMOKaFHQRzWBCFPg==
- - dependencies:
- - vue-class-component "^7.0.1"
- -
- -vue-slider-component@^3.0.30:
- - version "3.0.30"
- - resolved "https://registry.yarnpkg.com/vue-slider-component/-/vue-slider-component-3.0.30.tgz#fc82382f1cac5d04488850b99e07864b1edefc15"
- - integrity sha512-3o82VfWeMa3b8unkedT/4eNBbvBsdsu+r75Ut/2j8pBKOn4lJoz0SS6h4qWC4L/yeOdVEStdwJH2s+rn3oGN9g==
- - dependencies:
- - vue-property-decorator "^8.0.0"
- +vue-slider-component@^2.8.0:
- + version "2.8.16"
- + resolved "https://registry.yarnpkg.com/vue-slider-component/-/vue-slider-component-2.8.16.tgz#b2036f816ed64fa4fcd6741219b80c5063b4fd60"
- vue-style-loader@^3.0.0, vue-style-loader@^3.1.2:
- version "3.1.2"
- @@ -7442,7 +7460,6 @@
- vue2-animate@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/vue2-animate/-/vue2-animate-2.1.0.tgz#93eee5f381d8d6493bae0507bcad6b615fdacb7f"
- - integrity sha512-OEuwx9Y2dmx3+hQ/K7zLc514v4xhc8tGDQl/ZTJh06r+/EG/oYQkhy2Fo4OOhDwiRJYFuTfkFhGlDtTnT4XGsw==
- vue@^2.5.7:
- version "2.5.17"
- Index: resources/assets/js/components/elements/preview.vue
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/js/components/elements/preview.vue (date 1556261584000)
- +++ resources/assets/js/components/elements/preview.vue (date 1556782116807)
- @@ -5,24 +5,23 @@
- <!-- slides -->
- <swiper-slide>
- <div class="preview slide1">
- - <svg width="100%" height="100%" viewBox="0 0 559 760" fill="none"
- - xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- - <g filter="url(#card_filter0_d)">
- - <rect x="3" y="6" width="536" height="340" fill="white"/>
- - </g>
- - <g filter="url(#card_filter1_d)">
- - <rect x="3" y="400" width="536" height="340" fill="white"/>
- - </g>
- - <rect x="0.5" y="1.5" width="545" height="350" fill="url(#card_pattern0)" stroke="#E3E3E3"/>
- - <rect x="0.5" y="394.5" width="545" height="350" fill="url(#card_pattern1)"
- - stroke="#E3E3E3"/>
- -
- - <transition name="jackInTheBox">
- - <g v-show="previewUpdated" filter="url(#card_filter2_i)">
- + <transition name="fade">
- + <svg v-show="previewUpdated" width="100%" height="100%" viewBox="0 0 559 760" fill="none"
- + xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- + <g filter="url(#card_filter0_d)">
- + <rect x="3" y="6" width="536" height="340" fill="white"/>
- + </g>
- + <g filter="url(#card_filter1_d)">
- + <rect x="3" y="400" width="536" height="340" fill="white"/>
- + </g>
- + <rect x="0.5" y="1.5" width="545" height="350" fill="url(#card_pattern0)"
- + stroke="#E3E3E3"/>
- + <rect x="0.5" y="394.5" width="545" height="350" fill="url(#card_pattern1)"
- + stroke="#E3E3E3"/>
- + <g filter="url(#card_filter2_i)">
- <rect x="73" y="30" width="400" height="225" fill="url(#card_pattern2)"/>
- </g>
- - </transition>
- - <text fill="#272F3F" xml:space="preserve" style="white-space: pre"
- + <text fill="#272F3F" xml:space="preserve" style="white-space: pre"
- font-family="Montserrat"
- font-size="21" font-weight="500"
- letter-spacing="0.4em"><tspan x="32" y="443.328">JOHNATAN</tspan>
- @@ -64,137 +63,153 @@
- <text fill="#272F3F" xml:space="preserve" style="white-space: pre"
- font-family="Montserrat" font-size="12" letter-spacing="0.1em">
- <tspan x="32" y="700.616">WWW.JOHNROB.COM</tspan></text>
- - <line x1="243" y1="265.5" x2="303" y2="265.5" :stroke="getLogoColor()" stroke-width="3"/>
- - <line x1="32" y1="500.5" x2="92" y2="500.5" :stroke="getLogoColor()" stroke-width="3"/>
- - <defs>
- - <filter id="card_filter0_d" x="3" y="6" width="556" height="360"
- - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- - <feColorMatrix in="SourceAlpha" type="matrix"
- - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
- - <feOffset dx="10" dy="10"/>
- - <feGaussianBlur stdDeviation="5"/>
- - <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"/>
- - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
- - <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
- - </filter>
- - <filter id="card_filter1_d" x="3" y="400" width="556" height="360"
- - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- - <feColorMatrix in="SourceAlpha" type="matrix"
- - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
- - <feOffset dx="10" dy="10"/>
- - <feGaussianBlur stdDeviation="5"/>
- - <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"/>
- - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
- - <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
- - </filter>
- - <pattern id="card_pattern0" patternContentUnits="objectBoundingBox" width="1"
- - height="1">
- - <use xlink:href="#card_image0"
- - transform="translate(0 1.61698) scale(0.000694444 0.00108025) rotate(-90)"/>
- - </pattern>
- - <pattern id="card_pattern1" patternContentUnits="objectBoundingBox" width="1"
- - height="1">
- - <use xlink:href="#card_image0"
- - transform="translate(0 1.61698) scale(0.000694444 0.00108025) rotate(-90)"/>
- - </pattern>
- - <filter id="card_filter2_i" x="73" y="30" width="400" height="229"
- - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- - <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
- - </filter>
- - <pattern id="card_pattern2" patternContentUnits="objectBoundingBox" width="1"
- - height="1">
- - <use xlink:href="#card_image1"
- - transform="translate(0 0.144444) scale(0.000352734 0.000627082)"/>
- - </pattern>
- - <image id="card_image0" width="2068" height="1440"
- - xlink:href="/images/preview/visit-card/bg.png"/>
- - <image id="card_image1" width="2835" height="1134" :href="previewUrl"/>
- - </defs>
- - </svg>
- + <line x1="243" y1="265.5" x2="303" y2="265.5" :stroke="getLogoColor()"
- + stroke-width="3"/>
- + <line x1="32" y1="500.5" x2="92" y2="500.5" :stroke="getLogoColor()" stroke-width="3"/>
- + <defs>
- + <filter id="card_filter0_d" x="3" y="6" width="556" height="360"
- + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- + <feColorMatrix in="SourceAlpha" type="matrix"
- + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
- + <feOffset dx="10" dy="10"/>
- + <feGaussianBlur stdDeviation="5"/>
- + <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"/>
- + <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
- + <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow"
- + result="shape"/>
- + </filter>
- + <filter id="card_filter1_d" x="3" y="400" width="556" height="360"
- + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- + <feColorMatrix in="SourceAlpha" type="matrix"
- + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
- + <feOffset dx="10" dy="10"/>
- + <feGaussianBlur stdDeviation="5"/>
- + <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"/>
- + <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
- + <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow"
- + result="shape"/>
- + </filter>
- + <pattern id="card_pattern0" patternContentUnits="objectBoundingBox" width="1"
- + height="1">
- + <use xlink:href="#card_image0"
- + transform="translate(0 1.61698) scale(0.000694444 0.00108025) rotate(-90)"/>
- + </pattern>
- + <pattern id="card_pattern1" patternContentUnits="objectBoundingBox" width="1"
- + height="1">
- + <use xlink:href="#card_image0"
- + transform="translate(0 1.61698) scale(0.000694444 0.00108025) rotate(-90)"/>
- + </pattern>
- + <filter id="card_filter2_i" x="73" y="30" width="400" height="229"
- + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- + <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
- + </filter>
- + <pattern id="card_pattern2" patternContentUnits="objectBoundingBox" width="1"
- + height="1">
- + <use xlink:href="#card_image1"
- + transform="translate(0 0.144444) scale(0.000352734 0.000627082)"/>
- + </pattern>
- + <image id="card_image0" width="2068" height="1440"
- + xlink:href="/images/preview/visit-card/bg.png"/>
- + <image id="card_image1" width="2835" height="1134" :href="previewUrl"/>
- + </defs>
- + </svg>
- + </transition>
- </div>
- </swiper-slide>
- <swiper-slide>
- <div class="preview slide2">
- - <svg width="100%" height="100%" viewBox="0 0 623 723" fill="none"
- - xmlns="http://www.w3.org/2000/svg"
- - xmlns:xlink="http://www.w3.org/1999/xlink">
- - <rect width="623" height="723" fill="url(#blank_pattern0)"/>
- - <transition name="jackInTheBox">
- - <rect v-show="previewUpdated" x="111" y="154" width="164" height="92" fill="url(#blank_pattern1)"
- + <transition name="fade">
- + <svg v-show="previewUpdated" width="100%" height="100%" viewBox="0 0 623 723" fill="none"
- + xmlns="http://www.w3.org/2000/svg"
- + xmlns:xlink="http://www.w3.org/1999/xlink">
- + <rect width="623" height="723" fill="url(#blank_pattern0)"/>
- +
- + <rect x="111" y="154" width="164" height="92"
- + fill="url(#blank_pattern1)"
- fill-opacity="0.8"/>
- - </transition>
- - <transition name="jackInTheBox">
- - <rect v-show="previewUpdated" x="479" y="349" width="94.0441" height="52.4897" fill="url(#blank_pattern2)"
- +
- +
- + <rect x="479" y="349" width="94.0441" height="52.4897"
- + fill="url(#blank_pattern2)"
- fill-opacity="0.9"/>
- - </transition>
- - <line x1="484" y1="419" x2="496" y2="419" :stroke="getLogoColor()" stroke-opacity="0.4"
- - stroke-width="2"/>
- - <defs>
- - <pattern id="blank_pattern0" patternContentUnits="objectBoundingBox" width="1"
- - height="1">
- - <use xlink:href="#blank_image0"
- - transform="translate(0 0.0153457) scale(0.00103734 0.000893867)"/>
- - </pattern>
- - <pattern id="blank_pattern1" patternContentUnits="objectBoundingBox" width="1"
- - height="1">
- - <use xlink:href="#blank_image1"
- - transform="translate(-0.0609756) scale(0.0022897 0.00408163)"/>
- - </pattern>
- - <pattern id="blank_pattern2" patternContentUnits="objectBoundingBox" width="1"
- - height="1">
- - <use xlink:href="#blank_image1"
- - transform="translate(-0.0581395) scale(0.00227812 0.00408163)"/>
- - </pattern>
- - <image id="blank_image0" width="964" height="1055"
- - xlink:href="/images/preview/blank/bg.png"/>
- - <image id="blank_image1" width="490" height="245" :href="previewUrl"/>
- - </defs>
- - </svg>
- +
- + <line x1="484" y1="419" x2="496" y2="419" :stroke="getLogoColor()" stroke-opacity="0.4"
- + stroke-width="2"/>
- + <defs>
- + <pattern id="blank_pattern0" patternContentUnits="objectBoundingBox" width="1"
- + height="1">
- + <use xlink:href="#blank_image0"
- + transform="translate(0 0.0153457) scale(0.00103734 0.000893867)"/>
- + </pattern>
- + <pattern id="blank_pattern1" patternContentUnits="objectBoundingBox" width="1"
- + height="1">
- + <use xlink:href="#blank_image1"
- + transform="translate(-0.0609756) scale(0.0022897 0.00408163)"/>
- + </pattern>
- + <pattern id="blank_pattern2" patternContentUnits="objectBoundingBox" width="1"
- + height="1">
- + <use xlink:href="#blank_image1"
- + transform="translate(-0.0581395) scale(0.00227812 0.00408163)"/>
- + </pattern>
- + <image id="blank_image0" width="964" height="1055"
- + xlink:href="/images/preview/blank/bg.png"/>
- + <image id="blank_image1" width="490" height="245" :href="previewUrl"/>
- + </defs>
- + </svg>
- + </transition>
- </div>
- </swiper-slide>
- <swiper-slide>
- <div class="preview slide3">
- - <svg width="100%" height="100%" viewBox="0 0 621 723" fill="none"
- - xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- - <rect width="621" height="723" fill="url(#envelope_pattern0)"/>
- - <line x1="524" y1="325.5" x2="543" y2="325.5" :stroke="getLogoColor()" stroke-width="2"/>
- - <path d="M210 9L538.5 9.5L543.49 73.4991L201 74L210 9Z" fill="#C1689D" fill-opacity="0.25"/>
- - <transition name="jackInTheBox">
- - <rect v-show="previewUpdated" x="100" y="323.5" width="211" height="119" fill="url(#envelope_pattern1)"
- + <transition name="fade">
- + <svg v-show="previewUpdated" width="100%" height="100%" viewBox="0 0 621 723" fill="none"
- + xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- + <rect width="621" height="723" fill="url(#envelope_pattern0)"/>
- + <line x1="524" y1="325.5" x2="543" y2="325.5" :stroke="getLogoColor()"
- + stroke-width="2"/>
- + <path d="M210 9L538.5 9.5L543.49 73.4991L201 74L210 9Z" fill="#C1689D"
- + fill-opacity="0.25"/>
- +
- + <rect x="100" y="323.5" width="211" height="119"
- + fill="url(#envelope_pattern1)"
- fill-opacity="0.8"/>
- - </transition>
- - <line x1="354" y1="566.5" x2="373" y2="566.5" :stroke="getLogoColor()" stroke-width="2"/>
- - <defs>
- - <pattern id="envelope_pattern0" patternContentUnits="objectBoundingBox" width="1"
- - height="1">
- - <use xlink:href="#envelope_image0"
- - transform="translate(0 -0.00483129) scale(0.00107296 0.000921589)"/>
- - </pattern>
- - <pattern id="envelope_pattern1" patternContentUnits="objectBoundingBox" width="1"
- - height="1">
- - <use xlink:href="#envelope_image1"
- - transform="translate(-0.063981) scale(0.00230196 0.00408163)"/>
- - </pattern>
- - <image id="envelope_image0" width="932" height="971"
- - xlink:href="/images/preview/envelope/bg.png"/>
- - `
- - <image id="envelope_image1" width="490" height="245" :href="previewUrl"/>
- - </defs>
- - </svg>
- + <line x1="354" y1="566.5" x2="373" y2="566.5" :stroke="getLogoColor()"
- + stroke-width="2"/>
- + <defs>
- + <pattern id="envelope_pattern0" patternContentUnits="objectBoundingBox" width="1"
- + height="1">
- + <use xlink:href="#envelope_image0"
- + transform="translate(0 -0.00483129) scale(0.00107296 0.000921589)"/>
- + </pattern>
- + <pattern id="envelope_pattern1" patternContentUnits="objectBoundingBox" width="1"
- + height="1">
- + <use xlink:href="#envelope_image1"
- + transform="translate(-0.063981) scale(0.00230196 0.00408163)"/>
- + </pattern>
- + <image id="envelope_image0" width="932" height="971"
- + xlink:href="/images/preview/envelope/bg.png"/>
- + `
- + <image id="envelope_image1" width="490" height="245" :href="previewUrl"/>
- + </defs>
- + </svg>
- + </transition>
- </div>
- </swiper-slide>
- <swiper-slide>
- <div class="preview slide4">
- - <svg width="100%" height="100%" viewBox="0 0 594 362" fill="none"
- - xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- - <rect width="594" height="362" fill="url(#macbook_pattern0)"/>
- - <transition name="jackInTheBox">
- - <rect v-show="previewUpdated" x="245" y="31" width="100" height="56" fill="url(#macbook_pattern1)"
- + <transition name="fade">
- + <svg v-show="previewUpdated" width="100%" height="100%" viewBox="0 0 594 362" fill="none"
- + xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- + <rect width="594" height="362" fill="url(#macbook_pattern0)"/>
- +
- + <rect x="245" y="31" width="100" height="56"
- + fill="url(#macbook_pattern1)"
- fill-opacity="0.8"/>
- - </transition>
- - <text fill="#929292" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
- + <text fill="#929292" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
- font-size="10" letter-spacing="0em"><tspan x="70.1309" y="62.28">HOME</tspan></text>
- <text fill="#080808" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
- font-size="10" letter-spacing="0em"><tspan x="136.19" y="62.28">SHOP</tspan></text>
- @@ -208,188 +223,200 @@
- font-size="10" letter-spacing="0em"><tspan x="194.33" y="62.28">PAGES</tspan></text>
- <text fill="#080808" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
- font-size="10" letter-spacing="0em"><tspan x="494.394" y="62.28">LOGIN</tspan></text>
- - <rect x="431" y="54" width="11" height="10" fill="url(#macbook_pattern2)"/>
- - <rect width="14" height="14" transform="matrix(-1 0 0 1 492 51)"
- - fill="url(#macbook_pattern3)"/>
- - <text fill="#4E4E4E" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
- + <rect x="431" y="54" width="11" height="10" fill="url(#macbook_pattern2)"/>
- + <rect width="14" height="14" transform="matrix(-1 0 0 1 492 51)"
- + fill="url(#macbook_pattern3)"/>
- + <text fill="#4E4E4E" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
- font-size="10" font-weight="500" letter-spacing="0em"><tspan x="70" y="114.28">FEATURED ITEMS</tspan></text>
- - <g filter="url(#macbook_filter0_d)">
- - <rect x="70" y="129" width="129.013" height="134" fill="white"/>
- - <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre"
- + <g filter="url(#macbook_filter0_d)">
- + <rect x="70" y="129" width="129.013" height="134" fill="white"/>
- + <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre"
- font-family="Catamaran" font-size="10" font-weight="300" letter-spacing="0em"><tspan x="74" y="239.28">Pin Button Badge</tspan></text>
- <text fill="#808080" xml:space="preserve" style="white-space: pre"
- font-family="Montserrat" font-size="8" font-weight="300" letter-spacing="0em"><tspan x="182.522" y="255.694">12$</tspan></text>
- <text fill="#808080" xml:space="preserve" style="white-space: pre"
- font-family="Catamaran" font-size="8" font-weight="300" letter-spacing="0em"><tspan x="74" y="253.424">Cosmetic</tspan></text>
- - </g>
- - <g filter="url(#macbook_filter1_d)">
- - <rect x="231.993" y="129" width="129.013" height="134" fill="white"/>
- - <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre"
- + </g>
- + <g filter="url(#macbook_filter1_d)">
- + <rect x="231.993" y="129" width="129.013" height="134" fill="white"/>
- + <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre"
- font-family="Catamaran" font-size="10" font-weight="300" letter-spacing="0em"><tspan x="236" y="239.28">Soap Package</tspan></text>
- <text fill="#808080" xml:space="preserve" style="white-space: pre"
- font-family="Catamaran" font-size="8" font-weight="300" letter-spacing="0em"><tspan x="236" y="253.424">Hygiene</tspan></text>
- <text fill="#808080" xml:space="preserve" style="white-space: pre"
- font-family="Montserrat" font-size="8" font-weight="300" letter-spacing="0em"><tspan x="345" y="255.694">16$</tspan></text>
- - </g>
- - <g filter="url(#macbook_filter2_d)">
- - <rect x="393.987" y="129" width="129.013" height="134" fill="white"/>
- - <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre"
- + </g>
- + <g filter="url(#macbook_filter2_d)">
- + <rect x="393.987" y="129" width="129.013" height="134" fill="white"/>
- + <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre"
- font-family="Catamaran" font-size="10" font-weight="300" letter-spacing="0em"><tspan x="398" y="239.28">Milk Glass Bottle</tspan></text>
- <text fill="#808080" xml:space="preserve" style="white-space: pre"
- font-family="Catamaran" font-size="8" font-weight="300" letter-spacing="0em"><tspan x="398" y="253.424">Foodstuff </tspan></text>
- <text fill="#808080" xml:space="preserve" style="white-space: pre"
- font-family="Montserrat" font-size="8" font-weight="300" letter-spacing="0em"><tspan x="510.39" y="255.694">2$</tspan></text>
- - </g>
- - <rect width="9" height="9" transform="matrix(-1 0 0 1 523 107)"
- - fill="url(#macbook_pattern4)"/>
- - <rect width="9" height="9" transform="matrix(-1 0 0 1 508 107)"
- - fill="url(#macbook_pattern5)"/>
- - <rect x="70" y="292" width="453" height="30" fill="#D9D9D9"/>
- - <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
- + </g>
- + <rect width="9" height="9" transform="matrix(-1 0 0 1 523 107)"
- + fill="url(#macbook_pattern4)"/>
- + <rect width="9" height="9" transform="matrix(-1 0 0 1 508 107)"
- + fill="url(#macbook_pattern5)"/>
- + <rect x="70" y="292" width="453" height="30" fill="#D9D9D9"/>
- + <text fill="#2E2E2E" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
- font-size="8" font-weight="300" letter-spacing="0em"><tspan x="89" y="308.8">© 2019. All rights reserved.</tspan></text>
- - <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"
- - :fill="getLogoColor()"/>
- - <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"
- - :fill="getLogoColor()"/>
- - <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"
- - :fill="getLogoColor()"/>
- - <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"
- - :fill="getLogoColor()"/>
- - <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"
- - :fill="getLogoColor()"/>
- - <rect x="70" y="129" width="129" height="96" fill="#D9D9D9"/>
- - <rect x="232" y="129" width="129" height="96" fill="#D9D9D9"/>
- - <rect x="394" y="129" width="129" height="96" fill="#D9D9D9"/>
- - <path d="M44 15.3C44 8.5069 49.5069 3 56.3 3H536.7C543.493 3 549 8.5069 549 15.3V22H44V15.3Z"
- - fill="#F1F1F1"/>
- - <g filter="url(#macbook_filter3_i)">
- - <circle cx="57.5" cy="12.5" r="3.5" fill="#DA4F00"/>
- - </g>
- - <g filter="url(#macbook_filter4_i)">
- - <circle cx="69.5" cy="12.5" r="3.5" fill="#F79B12"/>
- - </g>
- - <g filter="url(#macbook_filter5_i)">
- - <circle cx="81.5" cy="12.5" r="3.5" fill="#2BCB71"/>
- - </g>
- - <line x1="522" y1="8.625" x2="534" y2="8.625" stroke="#9E9E9E" stroke-width="0.75"/>
- - <line x1="522" y1="12.625" x2="534" y2="12.625" stroke="#9E9E9E" stroke-width="0.75"/>
- - <line x1="522" y1="16.625" x2="534" y2="16.625" stroke="#9E9E9E" stroke-width="0.75"/>
- - <rect x="141" y="7" width="309" height="11" rx="2" fill="white"/>
- - <text fill="#CECECE" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
- + <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"
- + :fill="getLogoColor()"/>
- + <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"
- + :fill="getLogoColor()"/>
- + <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"
- + :fill="getLogoColor()"/>
- + <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"
- + :fill="getLogoColor()"/>
- + <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"
- + :fill="getLogoColor()"/>
- + <rect x="70" y="129" width="129" height="96" fill="#D9D9D9"/>
- + <rect x="232" y="129" width="129" height="96" fill="#D9D9D9"/>
- + <rect x="394" y="129" width="129" height="96" fill="#D9D9D9"/>
- + <path d="M44 15.3C44 8.5069 49.5069 3 56.3 3H536.7C543.493 3 549 8.5069 549 15.3V22H44V15.3Z"
- + fill="#F1F1F1"/>
- + <g filter="url(#macbook_filter3_i)">
- + <circle cx="57.5" cy="12.5" r="3.5" fill="#DA4F00"/>
- + </g>
- + <g filter="url(#macbook_filter4_i)">
- + <circle cx="69.5" cy="12.5" r="3.5" fill="#F79B12"/>
- + </g>
- + <g filter="url(#macbook_filter5_i)">
- + <circle cx="81.5" cy="12.5" r="3.5" fill="#2BCB71"/>
- + </g>
- + <line x1="522" y1="8.625" x2="534" y2="8.625" stroke="#9E9E9E" stroke-width="0.75"/>
- + <line x1="522" y1="12.625" x2="534" y2="12.625" stroke="#9E9E9E" stroke-width="0.75"/>
- + <line x1="522" y1="16.625" x2="534" y2="16.625" stroke="#9E9E9E" stroke-width="0.75"/>
- + <rect x="141" y="7" width="309" height="11" rx="2" fill="white"/>
- + <text fill="#CECECE" xml:space="preserve" style="white-space: pre" font-family="Catamaran"
- font-size="8" letter-spacing="0em"><tspan x="265.766" y="14.74">www.website.com</tspan></text>
- - <defs>
- - <pattern id="macbook_pattern0" patternContentUnits="objectBoundingBox" width="1"
- - height="1">
- - <use xlink:href="#macbook_image0"
- - transform="translate(-0.000488477) scale(0.000394707 0.000647668)"/>
- - </pattern>
- - <pattern id="macbook_pattern1" patternContentUnits="objectBoundingBox" width="1"
- - height="1">
- - <use xlink:href="#macbook_image1"
- - transform="translate(-0.06) scale(0.00228571 0.00408163)"/>
- - </pattern>
- - <pattern id="macbook_pattern2" patternContentUnits="objectBoundingBox" width="1"
- - height="1">
- - <use xlink:href="#macbook_image2"
- - transform="translate(0 0.00612245) scale(0.00102041 0.00112245)"/>
- - </pattern>
- - <pattern id="macbook_pattern3" patternContentUnits="objectBoundingBox" width="1"
- - height="1">
- - <use xlink:href="#macbook_image3" transform="scale(0.0277778)"/>
- - </pattern>
- - <filter id="macbook_filter0_d" x="68.1" y="127.1" width="133.013" height="138"
- - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- - <feColorMatrix in="SourceAlpha" type="matrix"
- - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
- - <feOffset dx="0.1" dy="0.1"/>
- - <feGaussianBlur stdDeviation="1"/>
- - <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"/>
- - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
- - <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
- - </filter>
- - <filter id="macbook_filter1_d" x="230.093" y="127.1" width="133.013" height="138"
- - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- - <feColorMatrix in="SourceAlpha" type="matrix"
- - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
- - <feOffset dx="0.1" dy="0.1"/>
- - <feGaussianBlur stdDeviation="1"/>
- - <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"/>
- - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
- - <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
- - </filter>
- - <filter id="macbook_filter2_d" x="392.087" y="127.1" width="133.013" height="138"
- - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- - <feColorMatrix in="SourceAlpha" type="matrix"
- - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
- - <feOffset dx="0.1" dy="0.1"/>
- - <feGaussianBlur stdDeviation="1"/>
- - <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"/>
- - <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
- - <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
- - </filter>
- - <pattern id="macbook_pattern4" patternContentUnits="objectBoundingBox" width="1"
- - height="1">
- - <use xlink:href="#macbook_image4" transform="scale(0.00195312)"/>
- - </pattern>
- - <pattern id="macbook_pattern5" patternContentUnits="objectBoundingBox" width="1"
- - height="1">
- - <use xlink:href="#macbook_image4"
- - transform="translate(1 1) scale(0.00195313) rotate(180)"/>
- - </pattern>
- - <filter id="macbook_filter3_i" x="54" y="9" width="7.1" height="7.1"
- - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- - <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
- - <feColorMatrix in="SourceAlpha" type="matrix"
- - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
- - result="hardAlpha"/>
- - <feOffset dx="0.1" dy="0.1"/>
- - <feGaussianBlur stdDeviation="0.5"/>
- - <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
- - <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"/>
- - <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
- - </filter>
- - <filter id="macbook_filter4_i" x="66" y="9" width="7.1" height="7.1"
- - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- - <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
- - <feColorMatrix in="SourceAlpha" type="matrix"
- - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
- - result="hardAlpha"/>
- - <feOffset dx="0.1" dy="0.1"/>
- - <feGaussianBlur stdDeviation="0.5"/>
- - <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
- - <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"/>
- - <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
- - </filter>
- - <filter id="macbook_filter5_i" x="78" y="9" width="7.1" height="7.1"
- - filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- - <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- - <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
- - <feColorMatrix in="SourceAlpha" type="matrix"
- - values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
- - result="hardAlpha"/>
- - <feOffset dx="0.1" dy="0.1"/>
- - <feGaussianBlur stdDeviation="0.5"/>
- - <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
- - <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"/>
- - <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
- - </filter>
- - <image id="macbook_image0" width="2536" height="1544"
- - xlink:href="/images/preview/macbook/macbook.png"/>
- - <image id="macbook_image1" width="490" height="245" :href="previewUrl"/>
- - <image id="macbook_image2" width="980" height="880"
- - xlink:href="/images/preview/macbook/like.png"/>
- - <image id="macbook_image3" width="36" height="36"
- - xlink:href="/images/preview/macbook/user.png"/>
- - <image id="macbook_image4" width="512" height="512"
- - xlink:href="/images/preview/macbook/next-icon.png"/>
- - </defs>
- - </svg>
- -
- + <defs>
- + <pattern id="macbook_pattern0" patternContentUnits="objectBoundingBox" width="1"
- + height="1">
- + <use xlink:href="#macbook_image0"
- + transform="translate(-0.000488477) scale(0.000394707 0.000647668)"/>
- + </pattern>
- + <pattern id="macbook_pattern1" patternContentUnits="objectBoundingBox" width="1"
- + height="1">
- + <use xlink:href="#macbook_image1"
- + transform="translate(-0.06) scale(0.00228571 0.00408163)"/>
- + </pattern>
- + <pattern id="macbook_pattern2" patternContentUnits="objectBoundingBox" width="1"
- + height="1">
- + <use xlink:href="#macbook_image2"
- + transform="translate(0 0.00612245) scale(0.00102041 0.00112245)"/>
- + </pattern>
- + <pattern id="macbook_pattern3" patternContentUnits="objectBoundingBox" width="1"
- + height="1">
- + <use xlink:href="#macbook_image3" transform="scale(0.0277778)"/>
- + </pattern>
- + <filter id="macbook_filter0_d" x="68.1" y="127.1" width="133.013" height="138"
- + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- + <feColorMatrix in="SourceAlpha" type="matrix"
- + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
- + <feOffset dx="0.1" dy="0.1"/>
- + <feGaussianBlur stdDeviation="1"/>
- + <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"/>
- + <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
- + <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow"
- + result="shape"/>
- + </filter>
- + <filter id="macbook_filter1_d" x="230.093" y="127.1" width="133.013" height="138"
- + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- + <feColorMatrix in="SourceAlpha" type="matrix"
- + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
- + <feOffset dx="0.1" dy="0.1"/>
- + <feGaussianBlur stdDeviation="1"/>
- + <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"/>
- + <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
- + <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow"
- + result="shape"/>
- + </filter>
- + <filter id="macbook_filter2_d" x="392.087" y="127.1" width="133.013" height="138"
- + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- + <feColorMatrix in="SourceAlpha" type="matrix"
- + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
- + <feOffset dx="0.1" dy="0.1"/>
- + <feGaussianBlur stdDeviation="1"/>
- + <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"/>
- + <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
- + <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow"
- + result="shape"/>
- + </filter>
- + <pattern id="macbook_pattern4" patternContentUnits="objectBoundingBox" width="1"
- + height="1">
- + <use xlink:href="#macbook_image4" transform="scale(0.00195312)"/>
- + </pattern>
- + <pattern id="macbook_pattern5" patternContentUnits="objectBoundingBox" width="1"
- + height="1">
- + <use xlink:href="#macbook_image4"
- + transform="translate(1 1) scale(0.00195313) rotate(180)"/>
- + </pattern>
- + <filter id="macbook_filter3_i" x="54" y="9" width="7.1" height="7.1"
- + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- + <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix"
- + result="shape"/>
- + <feColorMatrix in="SourceAlpha" type="matrix"
- + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
- + result="hardAlpha"/>
- + <feOffset dx="0.1" dy="0.1"/>
- + <feGaussianBlur stdDeviation="0.5"/>
- + <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
- + <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"/>
- + <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
- + </filter>
- + <filter id="macbook_filter4_i" x="66" y="9" width="7.1" height="7.1"
- + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- + <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix"
- + result="shape"/>
- + <feColorMatrix in="SourceAlpha" type="matrix"
- + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
- + result="hardAlpha"/>
- + <feOffset dx="0.1" dy="0.1"/>
- + <feGaussianBlur stdDeviation="0.5"/>
- + <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
- + <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"/>
- + <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
- + </filter>
- + <filter id="macbook_filter5_i" x="78" y="9" width="7.1" height="7.1"
- + filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
- + <feFlood flood-opacity="0" result="BackgroundImageFix"/>
- + <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix"
- + result="shape"/>
- + <feColorMatrix in="SourceAlpha" type="matrix"
- + values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
- + result="hardAlpha"/>
- + <feOffset dx="0.1" dy="0.1"/>
- + <feGaussianBlur stdDeviation="0.5"/>
- + <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
- + <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"/>
- + <feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
- + </filter>
- + <image id="macbook_image0" width="2536" height="1544"
- + xlink:href="/images/preview/macbook/macbook.png"/>
- + <image id="macbook_image1" width="490" height="245" :href="previewUrl"/>
- + <image id="macbook_image2" width="980" height="880"
- + xlink:href="/images/preview/macbook/like.png"/>
- + <image id="macbook_image3" width="36" height="36"
- + xlink:href="/images/preview/macbook/user.png"/>
- + <image id="macbook_image4" width="512" height="512"
- + xlink:href="/images/preview/macbook/next-icon.png"/>
- + </defs>
- + </svg>
- + </transition>
- </div>
- </swiper-slide>
- <!-- Optional controls -->
- @@ -460,7 +487,7 @@
- let self = this;
- - setTimeout(function() {
- + setTimeout(function () {
- self.previewUpdated = true;
- self.previewUrl = previewUrl;
- });
- @@ -492,7 +519,7 @@
- let colorsString = empty;
- let count = this.colors.length - 1;
- - this.colors.forEach(function(color, i) {
- + this.colors.forEach(function (color, i) {
- let delimiter = ', ';
- if (i === count) {
- @@ -507,74 +534,4 @@
- },
- },
- };
- -</script>
- -
- -<style scoped>
- - @-webkit-keyframes jackInTheBox {
- - from {
- - opacity: 0;
- - -webkit-transform: scale(0.1) rotate(30deg);
- - transform: scale(0.1) rotate(30deg);
- - -webkit-transform-origin: center bottom;
- - transform-origin: center bottom;
- - }
- -
- - 50% {
- - -webkit-transform: rotate(-10deg);
- - transform: rotate(-10deg);
- - }
- -
- - 70% {
- - -webkit-transform: rotate(3deg);
- - transform: rotate(3deg);
- - }
- -
- - to {
- - opacity: 1;
- - -webkit-transform: scale(1);
- - transform: scale(1);
- - }
- - }
- -
- - @keyframes jackInTheBox {
- - from {
- - opacity: 0;
- - -webkit-transform: scale(0.1) rotate(30deg);
- - transform: scale(0.1) rotate(30deg);
- - -webkit-transform-origin: center bottom;
- - transform-origin: center bottom;
- - }
- -
- - 50% {
- - -webkit-transform: rotate(-10deg);
- - transform: rotate(-10deg);
- - }
- -
- - 70% {
- - -webkit-transform: rotate(3deg);
- - transform: rotate(3deg);
- - }
- -
- - to {
- - opacity: 1;
- - -webkit-transform: scale(1);
- - transform: scale(1);
- - }
- - }
- -
- - .jackInTheBox {
- - -webkit-animation-name: jackInTheBox;
- - animation-name: jackInTheBox;
- - }
- -
- - .jackInTheBox-enter-active {
- - animation: bounce-in 1s;
- - -webkit-animation-name: jackInTheBox;
- - animation-name: jackInTheBox;
- - }
- - .jackInTheBox-leave-active {
- - animation: bounce-in 1s reverse;
- - -webkit-animation-name: jackInTheBox;
- - animation-name: jackInTheBox;
- - }
- -</style>
- \ No newline at end of file
- +</script>
- \ No newline at end of file
- Index: config/app.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- config/app.php (date 1556261584000)
- +++ config/app.php (date 1556782116730)
- @@ -13,7 +13,7 @@
- |
- */
- - 'name' => env('APP_NAME', 'Laravel'),
- + 'name' => env('APP_NAME', 'Logosos'),
- /*
- |--------------------------------------------------------------------------
- @@ -160,6 +160,7 @@
- App\Providers\EventServiceProvider::class,
- App\Providers\RouteServiceProvider::class,
- Laravel\Socialite\SocialiteServiceProvider::class,
- + Snowfire\Beautymail\BeautymailServiceProvider::class,
- ],
- Index: config/services.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- config/services.php (date 1556261584000)
- +++ config/services.php (date 1556782116750)
- @@ -40,5 +40,10 @@
- 'client_secret' => env('FACEBOOK_SECRET'),
- 'redirect' => env('FACEBOOK_URL'),
- ],
- + 'google' => [
- + 'client_id' => env('GOOGLE_ID'),
- + 'client_secret' => env('GOOGLE_SECRET'),
- + 'redirect' => env('GOOGLE_URL'),
- + ],
- ];
- Index: resources/assets/js/components/elements/top-right-menu.vue
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/js/components/elements/top-right-menu.vue (date 1556261584000)
- +++ resources/assets/js/components/elements/top-right-menu.vue (date 1556782116816)
- @@ -1,29 +1,26 @@
- <template>
- - <div class="nav">
- - <ul class="nav-menu" v-if="user">
- - <li class="register-person">
- - <span>{{ user.name }}</span>
- - <svg width="7" height="5" viewBox="0 0 7 5" fill="none" xmlns="http://www.w3.org/2000/svg">
- - <path d="M0.5 0.5L3.5 3.5L6.5 0.5" stroke="white" stroke-opacity="0.5"/>
- - </svg>
- - <ul class="submenu">
- - <li>
- - <a @click.prevent="idleClick($event)" href="/my-logotypes" class="submenu-link">
- - <svg width="6" height="9" viewBox="0 0 6 9" fill="none" xmlns="http://www.w3.org/2000/svg">
- - <path d="M5 0.5L1 4.5L5 8.5" stroke="black"/>
- - </svg>
- - My logotypes
- - </a>
- - <ul v-if="url.logotypes" class="submenu">
- - <li v-for="(item, key) in url.logotypes">
- - <a :href="item.url" :title="item.created_at">logo â„– {{ ++key }}</a>
- - </li>
- - </ul>
- - </li>
- - <li><a :href="url.logout">Logout</a></li>
- - </ul>
- - </li>
- - </ul>
- + <div class="top-right-menu">
- + <!--<ul class="nav-menu" v-if="user">-->
- + <!--<li class="register-person">-->
- + <!--<span>{{ user.name }}</span>-->
- + <!--<svg width="7" height="5" viewBox="0 0 7 5" fill="none" xmlns="http://www.w3.org/2000/svg">-->
- + <!--<path d="M0.5 0.5L3.5 3.5L6.5 0.5" stroke="white" stroke-opacity="0.5"/>-->
- + <!--</svg>-->
- + <!--<ul class="submenu">-->
- + <!--<li><a :href="url.profile">Profile</a></li>-->
- + <!--<li><a :href="url.logout">Logout</a></li>-->
- + <!--</ul>-->
- + <!--</li>-->
- + <!--</ul>-->
- +
- + <el-menu v-if="user" mode="horizontal" ref="top-right-menu">
- + <el-submenu index="1">
- + <template slot="title">{{ user.name }}</template>
- + <el-menu-item @click="clickMenu(url.profile)">Profile</el-menu-item>
- + <el-menu-item @click="clickMenu(url.logout)">Logout</el-menu-item>
- + </el-submenu>
- + </el-menu>
- +
- <div class="nav-button" v-else>
- <a :href="url.login">
- <button class="login">Login</button>
- @@ -43,7 +40,7 @@
- return {
- user: window.user,
- url: {
- - logotypes: null,
- + profile: route('client.profile.show'),
- logout: route('logout'),
- login: route('login'),
- register: route('register'),
- @@ -52,21 +49,15 @@
- },
- mounted() {
- - this.loadMenu();
- + //
- },
- methods: {
- - loadMenu() {
- - if (this.user) {
- - Requester.get(route('user-logotypes.url-for-editor.get')).then((response) => {
- - this.url.logotypes = response.data;
- - })
- - }
- + clickMenu(routeName) {
- + window.location.href = routeName;
- },
- - idleClick(e) {
- - e.preventDefault(e);
- -
- - return false;
- + closeMenu() {
- + this.$refs['top-right-menu'].closeMenu();
- }
- }
- }
- Index: resources/assets/js/mixins/notifications.js
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/js/mixins/notifications.js (date 1556801690961)
- +++ resources/assets/js/mixins/notifications.js (date 1556801690961)
- @@ -0,0 +1,33 @@
- +export default {
- + mounted() {
- + this.showNotification();
- + },
- +
- + methods: {
- + showNotification() {
- + let type = this.getParameterByName('type');
- + let message = this.getParameterByName('message');
- +
- + if (type && message) {
- + setTimeout(() => {
- + this.$notify({
- + message: message,
- + type: type,
- + });
- + }, 1000);
- +
- + window.history.replaceState(null, null, window.location.pathname);
- + }
- + },
- +
- + getParameterByName(name, url) {
- + if (!url) url = window.location.href;
- + name = name.replace(/[\[\]]/g, '\\$&');
- + var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
- + results = regex.exec(url);
- + if (!results) return null;
- + if (!results[2]) return '';
- + return decodeURIComponent(results[2].replace(/\+/g, ' '));
- + }
- + }
- +}
- \ No newline at end of file
- Index: resources/lang/en/passwords.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/lang/en/passwords.php (date 1556261584000)
- +++ resources/lang/en/passwords.php (date 1556782116942)
- @@ -13,10 +13,11 @@
- |
- */
- - 'password' => 'Passwords must be at least six characters and match the confirmation.',
- - 'reset' => 'Your password has been reset!',
- - 'sent' => 'We have e-mailed your password reset link!',
- - 'token' => 'This password reset token is invalid.',
- - 'user' => "We can't find a user with that e-mail address.",
- + 'password' => 'Passwords must be at least six characters and match the confirmation.',
- + 'reset' => 'Your password has been reset!',
- + 'sent' => 'We have e-mailed your password reset link.',
- + 'verification_sent' => 'We have e-mailed your email verification link.',
- + 'token' => 'This password reset token is invalid.',
- + 'user' => "We can't find a user with that e-mail address.",
- ];
- Index: resources/views/choose.blade.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/views/choose.blade.php (date 1556261584000)
- +++ resources/views/choose.blade.php (date 1556782116969)
- @@ -6,13 +6,7 @@
- <div class="row">
- <header-page></header-page>
- </div>
- -
- - <div class="row">
- - <div class="col-12">
- - <choose-logo></choose-logo>
- - </div>
- - </div>
- -
- + <choose-logo></choose-logo>
- <div class="row">
- <footer-page></footer-page>
- </div>
- Index: resources/views/chunks/service.blade.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/views/chunks/service.blade.php (date 1556261584000)
- +++ resources/views/chunks/service.blade.php (date 1556782116956)
- @@ -1,3 +1,3 @@
- -<script>
- +<script type="text/javascript">
- window.user = @json(auth()->user());
- </script>
- \ No newline at end of file
- Index: routes/web.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- routes/web.php (date 1556261584000)
- +++ routes/web.php (date 1556806350016)
- @@ -3,6 +3,7 @@
- use App\Http\Controllers\AdminController;
- use App\Http\Controllers\Auth\LoginController;
- use App\Http\Controllers\Auth\SocialAccountController;
- +use App\Http\Controllers\ClientController;
- use App\Http\Controllers\LogoController;
- /*
- @@ -16,8 +17,9 @@
- |
- */
- -//Auth::routes(['verify' => true]);
- -Auth::routes();
- +Auth::routes(['verify' => true]);
- +
- +Route::post('email/resend', 'Auth\VerificationController@resend')->name('verification.resend');
- Route::get('/logout', [LoginController::class, 'logout']);
- @@ -50,12 +52,21 @@
- Route::group(['middleware' => 'auth'], function () {
- Route::get('get/{user_logo_hash}', [LogoController::class, 'getLogo'])->name('logotypes.get');
- - Route::get('users/url-for-editor/get',
- - [LogoController::class, 'getUrlsForEditor'])->name('user-logotypes.url-for-editor.get');
- +
- Route::post('save', [LogoController::class, 'saveLogo'])->name('logotypes.save');
- });
- });
- +// Client routing
- +Route::group(['middleware' => 'auth'], function () {
- + Route::group(['prefix' => 'client'], function () {
- + Route::get('profile', [ClientController::class, 'profile'])->name('client.profile.show');
- + Route::post('profile', [ClientController::class, 'updateProfile'])->name('client.profile.update');
- + Route::post('profile/password', [ClientController::class, 'updatePassword'])->name('client.profile.password.update');
- + Route::get('logotypes/get', [ClientController::class, 'getClientLogotypes'])->name('client.logotypes.get');
- + });
- +});
- +
- // Admin routing
- Route::group(['middleware' => 'auth', 'prefix' => 'admin'], function () {
- Route::get('/', [AdminController::class, 'index'])->name('admin.index');
- @@ -64,5 +75,27 @@
- });
- // Social auth routing
- -Route::get('auth/{provider}', [SocialAccountController::class, 'redirectToProvider']);
- -Route::get('auth/{provider}/callback', [SocialAccountController::class, 'handleProviderCallback']);
- \ No newline at end of file
- +Route::get('login/{provider}', [SocialAccountController::class, 'redirectToProvider']);
- +Route::get('login/{provider}/callback', [SocialAccountController::class, 'handleProviderCallback']);
- +
- +
- +
- +Route::get('test', function() {
- + $logo = \App\Models\UserLogo::first();
- +
- + $repo = app(\App\Repositories\LogotypeRepository::class);
- + $repo->createPreview($logo->getLogoContent());
- +
- +
- + dd('end');
- +
- +
- +
- + $svg = (new \App\Services\ImageConverter\SVG\SVG())->init('phantomjs', '222.svg');
- + $svg->setFormat('png');
- + $svg->convert();
- + $f = $svg->save('outputfile.png');
- +
- + dd(base64_encode(file_get_contents((public_path('outputfile.png')))));
- +
- +});
- \ No newline at end of file
- Index: resources/assets/js/classes/svg-to-image.js
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/js/classes/svg-to-image.js (date 1556261584000)
- +++ resources/assets/js/classes/svg-to-image.js (date 1556809514311)
- @@ -1,266 +1,239 @@
- -'use strict';
- -
- -(function () {
- - var out$ = window;
- - if (typeof define !== 'undefined') define('save-svg-as-png', [], function () {
- - return out$;
- - });
- +(function() {
- + const out$ = window;
- + if (typeof define !== 'undefined') define('save-svg-as-png', [], () => out$);
- out$.default = out$;
- - var xmlns = 'http://www.w3.org/2000/xmlns/';
- - 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 " ">]>';
- - var urlRegex = /url\(["']?(.+?)["']?\)/;
- - var fontFormats = {
- + const xhtmlNs = 'http://www.w3.org/2000/xmlns/';
- + const svgNs = 'http://www.w3.org/2000/svg';
- + 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 " ">]>';
- + const urlRegex = /url\(["']?(.+?)["']?\)/;
- + const fontFormats = {
- woff2: 'font/woff2',
- woff: 'font/woff',
- otf: 'application/x-font-opentype',
- ttf: 'application/x-font-ttf',
- eot: 'application/vnd.ms-fontobject',
- sfnt: 'application/font-sfnt',
- - svg: 'image/svg+xml'
- + svg: 'image/svg+xml',
- };
- - var isElement = function isElement(obj) {
- - return obj instanceof HTMLElement || obj instanceof SVGElement;
- - };
- - var requireDomNode = function requireDomNode(el) {
- - if (!isElement(el)) throw new Error('an HTMLElement or SVGElement is required; got ' + el);
- + const isElement = obj => obj instanceof HTMLElement || obj instanceof SVGElement;
- + const requireDomNode = el => {
- + if (!isElement(el)) throw new Error(`an HTMLElement or SVGElement is required; got ${el}`);
- };
- - var isExternal = function isExternal(url) {
- - return url && url.lastIndexOf('http', 0) === 0 && url.lastIndexOf(window.location.host) === -1;
- - };
- + const isExternal = url => url && url.lastIndexOf('http', 0) === 0 && url.lastIndexOf(window.location.host) === -1;
- - var getFontMimeTypeFromUrl = function getFontMimeTypeFromUrl(fontUrl) {
- - var formats = Object.keys(fontFormats).filter(function (extension) {
- - return fontUrl.indexOf('.' + extension) > 0;
- - }).map(function (extension) {
- - return fontFormats[extension];
- - });
- + const getFontMimeTypeFromUrl = fontUrl => {
- + const formats = Object.keys(fontFormats).filter(extension => fontUrl.indexOf(`.${extension}`) > 0).map(extension => fontFormats[extension]);
- if (formats) return formats[0];
- - console.error('Unknown font format for ' + fontUrl + '. Fonts may not be working correctly.');
- + console.error(`Unknown font format for ${fontUrl}. Fonts may not be working correctly.`);
- return 'application/octet-stream';
- };
- - var arrayBufferToBase64 = function arrayBufferToBase64(buffer) {
- - var binary = '';
- - var bytes = new Uint8Array(buffer);
- - for (var i = 0; i < bytes.byteLength; i++) {
- - binary += String.fromCharCode(bytes[i]);
- - }return window.btoa(binary);
- + const arrayBufferToBase64 = buffer => {
- + let binary = '';
- + const bytes = new Uint8Array(buffer);
- + for (let i = 0; i < bytes.byteLength; i++) binary += String.fromCharCode(bytes[i]);
- + return window.btoa(binary);
- };
- - var getDimension = function getDimension(el, clone, dim) {
- - 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));
- + const getDimension = (el, clone, dim) => {
- + const 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));
- return typeof v === 'undefined' || v === null || isNaN(parseFloat(v)) ? 0 : v;
- };
- - var getDimensions = function getDimensions(el, clone, width, height) {
- + const getDimensions = (el, clone, width, height) => {
- if (el.tagName === 'svg') return {
- width: width || getDimension(el, clone, 'width'),
- - height: height || getDimension(el, clone, 'height')
- - };else if (el.getBBox) {
- - var _el$getBBox = el.getBBox(),
- - x = _el$getBBox.x,
- - y = _el$getBBox.y,
- - _width = _el$getBBox.width,
- - _height = _el$getBBox.height;
- -
- + height: height || getDimension(el, clone, 'height'),
- + };
- + else if (el.getBBox) {
- + const {x, y, width, height} = el.getBBox();
- return {
- - width: x + _width,
- - height: y + _height
- + width: x + width,
- + height: y + height,
- };
- }
- };
- - var reEncode = function reEncode(data) {
- - return decodeURIComponent(encodeURIComponent(data).replace(/%([0-9A-F]{2})/g, function (match, p1) {
- - var c = String.fromCharCode('0x' + p1);
- - return c === '%' ? '%25' : c;
- - }));
- - };
- + const reEncode = data =>
- + decodeURIComponent(
- + encodeURIComponent(data).replace(/%([0-9A-F]{2})/g, (match, p1) => {
- + const c = String.fromCharCode(`0x${p1}`);
- + return c === '%' ? '%25' : c;
- + }),
- + );
- - var uriToBlob = function uriToBlob(uri) {
- - var byteString = window.atob(uri.split(',')[1]);
- - var mimeString = uri.split(',')[0].split(':')[1].split(';')[0];
- - var buffer = new ArrayBuffer(byteString.length);
- - var intArray = new Uint8Array(buffer);
- - for (var i = 0; i < byteString.length; i++) {
- - intArray[i] = byteString.charCodeAt(i);
- - }
- - return new Blob([buffer], { type: mimeString });
- - };
- -
- - var query = function query(el, selector) {
- + const query = (el, selector) => {
- if (!selector) return;
- try {
- return el.querySelector(selector) || el.parentNode && el.parentNode.querySelector(selector);
- } catch (err) {
- - console.warn('Invalid CSS selector "' + selector + '"', err);
- + console.warn(`Invalid CSS selector "${selector}"`, err);
- }
- };
- - var detectCssFont = function detectCssFont(rule, href) {
- - // Match CSS font-face rules to external links.
- - var match = rule.cssText.match(urlRegex);
- - var fontName = _.replace(rule.style.fontFamily, /"/g, "");
- + const detectCssFont = (rule, href) => {
- + const match = rule.cssText.match(urlRegex);
- + const url = (match && match[1]) || '';
- + let fontName = _.replace(rule.style.cssText.substr(0, rule.style.cssText.indexOf(';')), 'font-family: ', '');
- + fontName = _.replace(fontName, /"/g, '');
- + fontName = fontName.trim();
- - var url = match && match[1] || '';
- +
- if (!url || url.match(/^data:/) || url === 'about:blank') return;
- - var fullUrl = url.startsWith('../') ? href + '/../' + url : url.startsWith('./') ? href + '/.' + url : url;
- -
- + const fullUrl =
- + url.startsWith('../') ? `${href}/../${url}`
- + : url.startsWith('./') ? `${href}/.${url}`
- + : url;
- return {
- text: rule.cssText,
- format: getFontMimeTypeFromUrl(fullUrl),
- url: fullUrl,
- - fontName: fontName
- + fontName: fontName,
- };
- };
- - var inlineImages = function inlineImages(el) {
- - return Promise.all(Array.from(el.querySelectorAll('image')).map(function (image) {
- - var href = image.getAttributeNS('http://www.w3.org/1999/xlink', 'href') || image.getAttribute('href');
- - if (!href) return Promise.resolve(null);
- - if (isExternal(href)) {
- - href += (href.indexOf('?') === -1 ? '?' : '&') + 't=' + new Date().valueOf();
- - }
- - return new Promise(function (resolve, reject) {
- - var canvas = document.createElement('canvas');
- - var img = new Image();
- - img.crossOrigin = 'anonymous';
- - img.src = href;
- - img.onerror = function () {
- - return reject(new Error('Could not load ' + href));
- - };
- - img.onload = function () {
- - canvas.width = img.width;
- - canvas.height = img.height;
- - canvas.getContext('2d').drawImage(img, 0, 0);
- - image.setAttributeNS('http://www.w3.org/1999/xlink', 'href', canvas.toDataURL('image/png'));
- - resolve(true);
- - };
- - });
- - }));
- - };
- + const inlineImages = el => Promise.all(
- + Array.from(el.querySelectorAll('image')).map(image => {
- + let href = image.getAttributeNS('http://www.w3.org/1999/xlink', 'href') || image.getAttribute('href');
- + if (!href) return Promise.resolve(null);
- + if (isExternal(href)) {
- + href += (href.indexOf('?') === -1 ? '?' : '&') + 't=' + new Date().valueOf();
- + }
- + return new Promise((resolve, reject) => {
- + const canvas = document.createElement('canvas');
- + const img = new Image();
- + img.crossOrigin = 'anonymous';
- + img.src = href;
- + img.onerror = () => reject(new Error(`Could not load ${href}`));
- + img.onload = () => {
- + canvas.width = img.width;
- + canvas.height = img.height;
- + canvas.getContext('2d').drawImage(img, 0, 0);
- + image.setAttributeNS('http://www.w3.org/1999/xlink', 'href', canvas.toDataURL('image/png'));
- + resolve(true);
- + };
- + });
- + }),
- + );
- - var cachedFonts = {};
- - var inlineFonts = function inlineFonts(fonts) {
- - return Promise.all(fonts.map(function (font) {
- - return new Promise(function (resolve, reject) {
- - if (cachedFonts[font.url]) return resolve(cachedFonts[font.url]);
- -
- - var req = new XMLHttpRequest();
- - req.addEventListener('load', function () {
- - // TODO: it may also be worth it to wait until fonts are fully loaded before
- - // attempting to rasterize them. (e.g. use https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet)
- - var fontInBase64 = arrayBufferToBase64(req.response);
- - var fontUri = font.text.replace(urlRegex, 'url("data:' + font.format + ';base64,' + fontInBase64 + '")') + '\n';
- - cachedFonts[font.url] = fontUri;
- - resolve(fontUri);
- - });
- - req.addEventListener('error', function (e) {
- - console.warn('Failed to load font from: ' + font.url, e);
- - cachedFonts[font.url] = null;
- - resolve(null);
- - });
- - req.addEventListener('abort', function (e) {
- - console.warn('Aborted loading font from: ' + font.url, e);
- - resolve(null);
- - });
- - req.open('GET', font.url);
- - req.responseType = 'arraybuffer';
- - req.send();
- - });
- - })).then(function (fontCss) {
- - return fontCss.filter(function (x) {
- - return x;
- - }).join('');
- - });
- - };
- + const cachedFonts = {};
- + const inlineFonts = fonts => Promise.all(
- + fonts.map(font =>
- + new Promise((resolve, reject) => {
- + if (cachedFonts[font.url]) return resolve(cachedFonts[font.url]);
- + const req = new XMLHttpRequest();
- + req.addEventListener('load', () => {
- + // TODO: it may also be worth it to wait until fonts are fully loaded before
- + // attempting to rasterize them. (e.g. use https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet)
- + const fontInBase64 = arrayBufferToBase64(req.response);
- + const fontUri = font.text.replace(urlRegex, `url("data:${font.format};base64,${fontInBase64}")`) + '\n';
- +
- + cachedFonts[font.url] = fontUri;
- + resolve(fontUri);
- + });
- + req.addEventListener('error', e => {
- + console.warn(`Failed to load font from: ${font.url}`, e);
- + cachedFonts[font.url] = null;
- + resolve(null);
- + });
- + req.addEventListener('abort', e => {
- + console.warn(`Aborted loading font from: ${font.url}`, e);
- + resolve(null);
- + });
- + req.open('GET', font.url);
- + req.responseType = 'arraybuffer';
- + req.send();
- + }),
- + ),
- + ).then(fontCss => fontCss.filter(x => x).join(''));
- - var cachedRules = null;
- - var styleSheetRules = function styleSheetRules() {
- + let cachedRules = null;
- + const styleSheetRules = () => {
- if (cachedRules) return cachedRules;
- - return cachedRules = Array.from(document.styleSheets).map(function (sheet) {
- +
- + let styles = Array.from(document.styleSheets).filter(function(style) {
- + return style.href && style.href.substr(-9) === 'fonts.css';
- + });
- +
- + return cachedRules = styles.map(sheet => {
- try {
- - return { rules: sheet.cssRules, href: sheet.href };
- + return {rules: sheet.cssRules, href: sheet.href};
- } catch (e) {
- - console.warn('Stylesheet could not be loaded: ' + sheet.href, e);
- + console.warn(`Stylesheet could not be loaded: ${sheet.href}`, e);
- return {};
- }
- });
- };
- - var inlineCss = function inlineCss(el, options) {
- - var _ref = options || {},
- - selectorRemap = _ref.selectorRemap,
- - modifyStyle = _ref.modifyStyle,
- - modifyCss = _ref.modifyCss,
- - fonts = _ref.fonts;
- + const inlineCss = (el, options) => {
- + const {
- + selectorRemap,
- + modifyStyle,
- + modifyCss,
- + fonts,
- + } = options || {};
- + const generateCss = modifyCss || ((selector, properties) => {
- + const sel = selectorRemap ? selectorRemap(selector) : selector;
- + const props = modifyStyle ? modifyStyle(properties) : properties;
- + return `${sel}{${props}}\n`;
- + });
- + const css = [];
- + const detectFonts = typeof fonts === 'undefined';
- + const fontList = fonts || [];
- - var generateCss = modifyCss || function (selector, properties) {
- - var sel = selectorRemap ? selectorRemap(selector) : selector;
- - var props = modifyStyle ? modifyStyle(properties) : properties;
- - return sel + '{' + props + '}\n';
- - };
- - var css = [];
- - var detectFonts = typeof fonts === 'undefined';
- - var fontList = fonts || [];
- - styleSheetRules().forEach(function (_ref2) {
- - var rules = _ref2.rules,
- - href = _ref2.href;
- -
- + styleSheetRules().forEach(({rules, href}) => {
- if (!rules) return;
- - Array.from(rules).forEach(function (rule) {
- + Array.from(rules).forEach(rule => {
- if (typeof rule.style != 'undefined') {
- - if (query(el, rule.selectorText)) css.push(generateCss(rule.selectorText, rule.style.cssText));else if (detectFonts && rule.cssText.match(/^@font-face/)) {
- - var font = detectCssFont(rule, href);
- - var innerHtml = el.outerHTML;
- + if (query(el, rule.selectorText)) css.push(generateCss(rule.selectorText, rule.style.cssText));
- + else if (detectFonts && rule.cssText.match(/^@font-face/)) {
- + const font = detectCssFont(rule, href);
- + const innerHtml = el.outerHTML;
- - if (innerHtml.toLowerCase().indexOf(font.fontName.toLowerCase()) !== -1) {
- - if (font) fontList.push(font);
- + if (innerHtml && font.fontName) {
- + if (innerHtml.toLowerCase().indexOf('"'+font.fontName.toLowerCase()) !== -1) {
- + if (font) fontList.push(font);
- + }
- }
- - } else css.push(rule.cssText);
- + } else {
- + css.push(rule.cssText);
- + }
- }
- });
- });
- - return inlineFonts(fontList).then(function (fontCss) {
- - return css.join('\n') + fontCss;
- - });
- + return inlineFonts(fontList).then(fontCss => css.join('\n') + fontCss);
- };
- - out$.prepareSvg = function (el, options, done) {
- + out$.prepareSvg = (el, options, done) => {
- requireDomNode(el);
- -
- - var _ref3 = options || {},
- - _ref3$left = _ref3.left,
- - left = _ref3$left === undefined ? 0 : _ref3$left,
- - _ref3$top = _ref3.top,
- - top = _ref3$top === undefined ? 0 : _ref3$top,
- - w = _ref3.width,
- - h = _ref3.height,
- - _ref3$scale = _ref3.scale,
- - scale = _ref3$scale === undefined ? 1 : _ref3$scale,
- - _ref3$responsive = _ref3.responsive,
- - responsive = _ref3$responsive === undefined ? false : _ref3$responsive;
- -
- - return inlineImages(el).then(function () {
- - var clone = el.cloneNode(true);
- -
- - var _ref4 = options || {},
- - _ref4$backgroundColor = _ref4.backgroundColor,
- - backgroundColor = _ref4$backgroundColor === undefined ? 'transparent' : _ref4$backgroundColor;
- + const {
- + left = 0,
- + top = 0,
- + width: w,
- + height: h,
- + scale = 1,
- + responsive = false,
- + } = options || {};
- - clone.style.backgroundColor = backgroundColor;
- -
- - var _getDimensions = getDimensions(el, clone, w, h),
- - width = _getDimensions.width,
- - height = _getDimensions.height;
- + return inlineImages(el).then(() => {
- + let clone = el.cloneNode(true);
- + clone.style.backgroundColor = (options || {}).backgroundColor || el.style.backgroundColor;
- + const {width, height} = getDimensions(el, clone, w, h);
- if (el.tagName !== 'svg') {
- if (el.getBBox) {
- - clone.setAttribute('transform', clone.getAttribute('transform').replace(/translate\(.*?\)/, ''));
- - var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
- + if (clone.getAttribute('transform') != null) {
- + clone.setAttribute('transform', clone.getAttribute('transform').replace(/translate\(.*?\)/, ''));
- + }
- + const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
- svg.appendChild(clone);
- clone = svg;
- } else {
- @@ -271,8 +244,8 @@
- clone.setAttribute('version', '1.1');
- clone.setAttribute('viewBox', [left, top, width, height].join(' '));
- - if (!clone.getAttribute('xmlns')) clone.setAttributeNS(xmlns, 'xmlns', 'http://www.w3.org/2000/svg');
- - if (!clone.getAttribute('xmlns:xlink')) clone.setAttributeNS(xmlns, 'xmlns:xlink', 'http://www.w3.org/1999/xlink');
- + if (!clone.getAttribute('xmlns')) clone.setAttributeNS(xhtmlNs, 'xmlns', svgNs);
- + if (!clone.getAttribute('xmlns:xlink')) clone.setAttributeNS(xhtmlNs, 'xmlns:xlink', 'http://www.w3.org/1999/xlink');
- if (responsive) {
- clone.removeAttribute('width');
- @@ -283,76 +256,70 @@
- clone.setAttribute('height', height * scale);
- }
- - Array.from(clone.querySelectorAll('foreignObject > *')).forEach(function (foreignObject) {
- - if (!foreignObject.getAttribute('xmlns')) foreignObject.setAttributeNS(xmlns, 'xmlns', 'http://www.w3.org/1999/xhtml');
- + Array.from(clone.querySelectorAll('foreignObject > *')).forEach(foreignObject => {
- + if (foreignObject.tagName === 'svg')
- + foreignObject.setAttributeNS(xhtmlNs, 'xmlns', svgNs);
- + else if (!foreignObject.getAttribute('xmlns'))
- + foreignObject.setAttributeNS(xhtmlNs, 'xmlns', xhtmlNs);
- });
- - return inlineCss(el, options).then(function (css) {
- - var style = document.createElement('style');
- + return inlineCss(el, options).then(css => {
- + const style = document.createElement('style');
- style.setAttribute('type', 'text/css');
- - style.innerHTML = '<![CDATA[\n' + css + '\n]]>';
- + style.innerHTML = `<![CDATA[\n${css}\n]]>`;
- - var defs = document.createElement('defs');
- + const defs = document.createElement('defs');
- defs.appendChild(style);
- clone.insertBefore(defs, clone.firstChild);
- - var outer = document.createElement('div');
- + const outer = document.createElement('div');
- outer.appendChild(clone);
- - var src = outer.innerHTML.replace(/NS\d+:href/gi, 'xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href');
- + const src = outer.innerHTML.replace(/NS\d+:href/gi, 'xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href');
- - if (typeof done === 'function') done(src, width, height);else return { src: src, width: width, height: height };
- + if (typeof done === 'function') done(src, width, height);
- + else return {src, width, height};
- });
- });
- };
- - out$.svgAsDataUri = function (el, options, done) {
- + out$.svgAsDataUri = (el, options, done) => {
- requireDomNode(el);
- - var result = out$.prepareSvg(el, options).then(function (_ref5) {
- - var src = _ref5.src,
- - width = _ref5.width,
- - height = _ref5.height;
- -
- - var svgXml = 'data:image/svg+xml;base64,' + window.btoa(reEncode(doctype + src));
- + return out$.prepareSvg(el, options).then(({src, width, height}) => {
- + const svgXml = `data:image/svg+xml;base64,${window.btoa(reEncode(doctype + src))}`;
- if (typeof done === 'function') {
- done(svgXml, width, height);
- }
- return svgXml;
- });
- - return result;
- };
- - out$.svgAsPngUri = function (el, options, done) {
- + out$.svgAsPngUri = (el, options, done) => {
- requireDomNode(el);
- -
- - var _ref6 = options || {},
- - _ref6$encoderType = _ref6.encoderType,
- - encoderType = _ref6$encoderType === undefined ? 'image/png' : _ref6$encoderType,
- - _ref6$encoderOptions = _ref6.encoderOptions,
- - encoderOptions = _ref6$encoderOptions === undefined ? 0.8 : _ref6$encoderOptions,
- - canvg = _ref6.canvg;
- + const {
- + encoderType = 'image/png',
- + encoderOptions = 0.0001,
- + canvg,
- + } = options || {};
- - var convertToPng = function convertToPng(_ref7) {
- - var src = _ref7.src,
- - width = _ref7.width,
- - height = _ref7.height;
- -
- - var canvas = document.createElement('canvas');
- - var context = canvas.getContext('2d');
- - var pixelRatio = window.devicePixelRatio || 1;
- + const convertToPng = ({src, width, height}) => {
- + const canvas = document.createElement('canvas');
- + const context = canvas.getContext('2d');
- + const pixelRatio = window.devicePixelRatio || 1;
- canvas.width = width * pixelRatio;
- canvas.height = height * pixelRatio;
- - canvas.style.width = canvas.width + 'px';
- - canvas.style.height = canvas.height + 'px';
- + canvas.style.width = `${canvas.width}px`;
- + canvas.style.height = `${canvas.height}px`;
- context.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);
- - if (canvg) canvg(canvas, src);else context.drawImage(src, 0, 0);
- + if (canvg) canvg(canvas, src);
- + else context.drawImage(src, 0, 0);
- - var png = void 0;
- + let png;
- try {
- png = canvas.toDataURL(encoderType, encoderOptions);
- } catch (e) {
- - if (typeof SecurityError !== 'undefined' && e instanceof SecurityError || e.name === 'SecurityError') {
- + if ((typeof SecurityError !== 'undefined' && e instanceof SecurityError) || e.name === 'SecurityError') {
- console.error('Rendered SVG images cannot be downloaded in this browser.');
- return;
- } else throw e;
- @@ -361,63 +328,21 @@
- return Promise.resolve(png);
- };
- - if (canvg) return out$.prepareSvg(el, options).then(convertToPng);else return out$.svgAsDataUri(el, options).then(function (uri) {
- - return new Promise(function (resolve, reject) {
- - var image = new Image();
- - image.onload = function () {
- - return resolve(convertToPng({
- - src: image,
- - width: image.width,
- - height: image.height
- - }));
- - };
- - image.onerror = function () {
- - 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);
- + if (canvg) return out$.prepareSvg(el, options).then(convertToPng);
- +
- + else return out$.svgAsDataUri(el, options).then(uri => {
- + return new Promise((resolve, reject) => {
- + const image = new Image();
- + image.onload = () => resolve(convertToPng({
- + src: image,
- + width: image.width,
- + height: image.height,
- + }));
- + image.onerror = () => {
- + 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}`);
- };
- image.src = uri;
- });
- });
- };
- -
- - out$.download = function (name, uri) {
- - if (navigator.msSaveOrOpenBlob) navigator.msSaveOrOpenBlob(uriToBlob(uri), name);else {
- - var saveLink = document.createElement('a');
- - if ('download' in saveLink) {
- - saveLink.download = name;
- - saveLink.style.display = 'none';
- - document.body.appendChild(saveLink);
- - try {
- - var blob = uriToBlob(uri);
- - var url = URL.createObjectURL(blob);
- - saveLink.href = url;
- - saveLink.onclick = function () {
- - return requestAnimationFrame(function () {
- - return URL.revokeObjectURL(url);
- - });
- - };
- - } catch (e) {
- - console.warn('This browser does not support object URLs. Falling back to string URL.');
- - saveLink.href = uri;
- - }
- - saveLink.click();
- - document.body.removeChild(saveLink);
- - } else {
- - window.open(uri, '_temp', 'menubar=no,toolbar=no,status=no');
- - }
- - }
- - };
- -
- - out$.saveSvg = function (el, name, options) {
- - requireDomNode(el);
- - out$.svgAsDataUri(el, options || {}, function (uri) {
- - return out$.download(name, uri);
- - });
- - };
- -
- - out$.saveSvgAsPng = function (el, name, options) {
- - requireDomNode(el);
- - out$.svgAsPngUri(el, options || {}, function (uri) {
- - return out$.download(name, uri);
- - });
- - };
- })();
- \ No newline at end of file
- Index: public/fonts/css/fonts.css
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- public/fonts/css/fonts.css (date 1556261584000)
- +++ public/fonts/css/fonts.css (date 1556782116766)
- @@ -733,6 +733,13 @@
- src: url("../poppins.ttf") format('truetype');
- }
- +@font-face {
- + font-family: 'Poppins';
- + font-style: normal;
- + font-weight: 400;
- + src: url("../poppins.woff") format('truetype');
- +}
- +
- @font-face {
- font-family: 'Quantico';
- font-style: normal;
- @@ -754,6 +761,13 @@
- src: url("../raleway.ttf") format('truetype');
- }
- +@font-face {
- + font-family: 'Raleway';
- + font-style: normal;
- + font-weight: 400;
- + src: url("../raleway.woff") format('truetype');
- +}
- +
- @font-face {
- font-family: 'Rationale';
- font-style: normal;
- Index: app/Http/Controllers/LogoController.php
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- app/Http/Controllers/LogoController.php (date 1556261584000)
- +++ app/Http/Controllers/LogoController.php (date 1556782116629)
- @@ -11,6 +11,27 @@
- class LogoController extends Controller
- {
- +
- + /**
- + * @var LogotypeRepository
- + */
- + protected $logotype;
- +
- + /**
- + * @var mixed
- + */
- + protected $company;
- +
- + /**
- + * @var UserLogoRepository
- + */
- + protected $userLogo;
- +
- + /**
- + * @var FontRepository
- + */
- + protected $fonts;
- +
- /**
- * LogoController constructor.
- *
- @@ -114,12 +135,4 @@
- return response()->json($this->logotype->getPreviewPaths($loadedLogos));
- }
- -
- - /**
- - * @return \Illuminate\Http\JsonResponse
- - */
- - public function getUrlsForEditor()
- - {
- - return response()->json($this->userLogo->getUrlsForEditor());
- - }
- }
- \ No newline at end of file
- Index: resources/assets/js/components/logo-hover.vue
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/js/components/logo-hover.vue (date 1556261584000)
- +++ resources/assets/js/components/logo-hover.vue (date 1556782116887)
- @@ -29,13 +29,15 @@
- methods: {
- setColors() {
- - Vibrant.from(this.previewUrl).getSwatches().then((swatches) => {
- - // Set colors
- - for (var swatch in swatches) {
- - if (swatches.hasOwnProperty(swatch) && swatches[swatch]) {
- - this.colors.push(swatches[swatch].getHex());
- - }
- - }
- + setTimeout(() => {
- + Vibrant.from(this.previewUrl).getSwatches().then((swatches) => {
- + // Set colors
- + for (var swatch in swatches) {
- + if (swatches.hasOwnProperty(swatch) && swatches[swatch]) {
- + this.colors.push(swatches[swatch].getHex());
- + }
- + }
- + });
- });
- }
- }
- Index: resources/assets/sass/_auth.scss
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/sass/_auth.scss (date 1556261584000)
- +++ resources/assets/sass/_auth.scss (date 1556782116921)
- @@ -167,10 +167,10 @@
- &.error {
- position: relative;
- input {
- - border-color: #D8000C;
- + border-color: #F56C6C;
- }
- .error-block {
- - color: #D8000C;
- + color: #F56C6C;
- font-size: 13px;
- }
- &:after {
- Index: resources/assets/js/components/login.vue
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/js/components/login.vue (date 1556261584000)
- +++ resources/assets/js/components/login.vue (date 1556801918232)
- @@ -10,22 +10,22 @@
- <form action="/login" method="post">
- <span class="title">Log in</span>
- <div class="social">
- - <span class="facebook">
- + <a href="/login/facebook" class="facebook">
- <span class="icon">
- <svg width="8" height="15" viewBox="0 0 8 15" fill="none" xmlns="http://www.w3.org/2000/svg">
- <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"/>
- </svg>
- </span>
- <span class="name-button">Facebook</span>
- - </span>
- - <span class="google-plus">
- + </a>
- + <a href="/login/google" class="google-plus">
- <span class="icon">
- <svg width="18" height="11" viewBox="0 0 18 11" fill="none" xmlns="http://www.w3.org/2000/svg">
- <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"/>
- </svg>
- </span>
- <span class="name-button">Google+</span>
- - </span>
- + </a>
- </div>
- <span class="or">
- or
- Index: resources/assets/js/vue.js
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- --- resources/assets/js/vue.js (date 1556261584000)
- +++ resources/assets/js/vue.js (date 1556801807775)
- @@ -28,11 +28,17 @@
- // Admin components
- Vue.component('import-logo', require('./components/admin/import-logo.vue'));
- +// Client components
- +Vue.component('profile', require('./components/client/profile'));
- +
- Vue.config.devtools = true;
- Vue.config.debug = true;
- Vue.config.silent = false;
- Vue.config.productionTip = true;
- +import notifications from './mixins/notifications';
- +
- const app = new Vue({
- - el: '#app'
- + el: '#app',
- + mixins: [notifications]
- });
- \ No newline at end of file
- diff --git public/fonts/vendor/element-ui/lib/theme-chalk/element-icons.woff public/fonts/vendor/element-ui/lib/theme-chalk/element-icons.woff
- new file mode 100644
- index 0000000000000000000000000000000000000000..02b9a2539e425a7a8c244faba92527602be76212
- GIT binary patch
- literal 28200
- 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
- J{{@=IX+uE~NQ?jg
- diff --git public/fonts/vendor/element-ui/lib/theme-chalk/element-icons.ttf public/fonts/vendor/element-ui/lib/theme-chalk/element-icons.ttf
- new file mode 100644
- index 0000000000000000000000000000000000000000..91b74de36778b0ff8958d37d07ce70fb3b26f50b
- GIT binary patch
- literal 55956
- zc%1CLcYIvM)i*vfcYD=#b#2k^N|v>jwAx+SvZX6q?!7l`ud%U>v5hfcI$lZ=$22FQ
- z#3TWM1EB>7;Dk^YLJJQekV;4(O52;~f$)$DNxav;b7t<YR<=cX-rxJr`*~!a+js7n
- zcFy;lIWw0~LWq^*h(tPOE?qwLLG|H35kh<5>ePixCv;8m&wc{VFNX6Kn|5y8-DCOD
- z-Gmt6zH8jp9T#kA`{mSOLTbKD$hWTEcG||x-uIpk!?SRWq_@EZ<J-EM;TX~&&D(aK
- zbN*(6fAlAW=r->-bJNC4K6_7=kN{j}-8(m)zngUuNQ+j(L&04ecb@jWtM32~|Dzf1
- zZ`^(6+2{QJY<(ReKiE%*-Adq&lslFqr|5X9u%%?wAFbh6fKKnfseOZU^52P7Jo|?7
- z<Y!0r#}4TrB{($^R{AOb_0`0|&+w`R{=uUo_u;&ej3;z(#=K?lOI^hsy5sb%8{wLE
- z2KRJ)Zvrxq5}#B@=s}_<CiZ#u3Y=dj_VgXnMNRlpy+ls>w`j}s%|tE?DKCrs1Mj(V
- zs{B>|OaDv%OaDv%w+R09Kq#Nai%ZhKg#2NDgR7KZmr!EDbsc*N&ch@K&#}T#;Twf-
- z7oIM>SNLn;nBq}tl%Ue43@Fo;jmnG4%f~>%!ZU{pcNZQlJX3hT@DGJ4KBZ0xEA7gl
- zGE>>4eE(QU3XlCq;eBB;jtr6|<UaBcd5#pwd*nlEp<T3_Zetz%83sJ+ASVW51leo`
- zeyzkt>>%}>q>8wRn|O$q_=ukbNHwV;wWN;JlLnCcO^}-qydgrGNtDD$oV1WucwZaj
- zyPYJ+1kyn|Nf$|yZjvHtk|8~0BAG;b$z(Ex^pSodlL0c7Oal(5lNn?tnMG!kIb<%G
- zN9L0SWFc8Z76b1~$uhE>tRO4NDzciaA#2GgWF1*gHjpgYNKPf2$YydH*+RCGZRB*a
- zot!~-key@~Ig{)rXOTVRY;q1cm+U3yk@Lv~<U(>0xtLr+E+zX&j$B4ACs&Xw$!ExC
- z$>+#^@_BNATm?Gs8gebUjvORkAYUY3BG;1}$c^MC(94I&&EzZOtK@6s7IG^YBDay-
- z$zk$!atFDSe1qIY?k4w;d!e+yN$w{PkO#@PpxhrOkB}qe+vGdsQSx2#7<nA9z?0-D
- z@-)elXUMbUdr&jalNZQ~<R$Wb@-q1k@(TF@`6>As`8j!&yg`0Jen?&;uah5<ACou9
- zPslIHugF{EZSrft7{4LECBGxTCx3vtRmdO7f0F+q?~r%NpP;7yo4il{O#VXtO8!Rv
- zPX0kYARm%{l7EqZlcS_aRC0_GN-3if)loe)P$M-_GqesXwNX2DP$#XTF6yQp>ZLyF
- zrvbzy)bO$G?*IKi8*c0!;si^jFeC_jec`YmL`;RR3qmPTxI++1io%_OP=XY`AqY`X
- z;ch|D7fInBL5QIW_X>jkNecG~LdjD2rXc9Eq;S6=<gW05An3=W@Sq^XafNRQg1$`(
- z4+(-^P6`hTg8ohlj|hUEPYOo_feavpZwmrxKnjlv0=Ym6-xUNBf)pMT1hRq@9v4Kg
- ze4Y>l@`Dtf6a<ol6rK_UGKCbL76j6T6rK?Ta)uP16$BE86uu`2WDhAkCkUhvDLgL-
- z<Pj;nAP6KADZD5MWE3g9BnYGxDSTfL$SqQMSrAAtQuq%+Aj?SM6+s}?NZ|*9K)#W}
- ztAaq%k-`rJfy^U?*94(9D7-ER<RB^hNDxRwQuwhTkd3796G0#)N#Uo0Kwgr<&jf+w
- zB!!;~0vSpQZwLZuN(#Ra1ag%W-V_89mK1&|2xKiO{7Mi=T~c^U5XfIrcv}!iVp90E
- zAdtzVFf0h9Gb#K=5Xfm#_^lw2*rf0~K_I(H;rD_-ij%@01c5v!g@PcE?4+Ow0vS&V
- ze-s4Lo)rF55XgN}_%A`A0Z8E;L7)pr;ax$X6-ePvf<Qlz!h3>1Q;@>@f<R}G!k-0!
- z_8^772m(Dq3V#&@8if@8AqaE}DSRLZv<xYHC<ycoDg09qXdY7dmmttVr0{P+pp8i3
- zs36cwq)-$D8j2KDL7=Nh;g}%MT0~)jKz|WM5(JuzC^|u)(}<!M1lo-#20@_bh+-53
- z8jmO@L7@AHVip8ikSG>Gpbv>+6$F}*C^kW$BZ*=c1lp1)4nd$diQ*Il8k8tif<TuN
- z#U%)|DpA~mK)({jBM3AtQG9|x=Mu#)2(&Lz0)jvf6Qx=ZXk?<)2m;+qlsZA6rHN86
- z2=p~k8U%snCQ73q(BVXB5(L_uC_zD>*NGAq1R9<w5ka8qiP9_xv_4Uyf<XThB_;@v
- z08!$C022_UMG&9^qO=MEoIsRuf&eiPrA-iE2conK0u(`%gdo5ZM42E6kOfgX1Odh%
- zN~a(|8${_61h|7JNkM=>h|(<xun197f&i5eB`pZ>2~jeF0I3kAM-X5ZqD&M7=!Gbg
- z1ObjAO0OV5G(?#!2(S%NrU(L*LzF&2fOm+}F9?tiQDi}Yfrv672+$Bw1_c2wBFc0@
- zfRKnXQxIS!qRbM6-V9~7Aiz&VnIj006jA010!&4ed4d345oNw0z*$6DAP5i_Q5FgU
- z>_wDCf&hgPWw9W@V?<dZ2#^_3mI?xlMwDfO0Id;axgfx8L|GvS5FAlf3IZ%glvRQN
- z)e&X2Ai#G-StAIL9#Pf`0?bF0Qv?C}Bg#5KfCGuLUJxKcqHGWZ*pMh$L4Xp8vQZG=
- zMWSpH1jvynn*{-eB+6-m08J8Qiy*+2MA<3`5GGN!2?DH1l+y(P>Lki`L4ZGra)uy4
- zqD0vt2rwy8b_zmIm9k3^;8dcVDF_fNQFaRg>`Iig1ObXA${s<0XNhvQAV9W6IY$s+
- zT%w#S2+%H3_6h>rOO*2j0Rkq<`GNoo6XgOyfQpH7p&-D=M7c;1AZ4OlEC?_&Q7#b#
- z=$R;&3IZHWlzoB#Q4=L62(UF#E)xVOn<$qH0=!L>D+B@ZCd!q90D}|dGlBq(6Xmml
- z0GAWxbAkY&6J@_3!0JT#ydXgBL^&V`@H<hi5(G$|C|3&tOiz?+1Od7y%C&+3=M&{R
- zL4f#)a!?Rpf1-Rr5PBMwFA4&CfGA%Q1eO6&t``J00#R-d1l9skZWIJ|15s`g1QrBQ
- zzAOlA38EYl1Xcx6ZWaXg1yQ~t2rLbvd{q$G97Oq=Ah14&a*H6aLx^&#Ah1Y?G9(CW
- z6QbNE2&@#M+%5?06`~v#1eOa?zAgxC7^2)E2&@^R+$jj`8lrqd5Lh@wxl0h(Iz+i!
- z5Li7#xknJ#KSa4#5LiM)xla(-L`3<fAh3>za=#$3lZf(wAh4K-@}MB}fhyk;goeKI
- zkRS>t%EN*v>ikCpQPlZI1X0xa-xfqs=YK~KT2{)Vf+*_z?+QXcsPdQ~iaP&sK@@fV
- z6M`t}{3iub)cH>dqNwwq7DQ3!=LJ#J`OgTVsPmr{L{aB|PY^|&|C}I-I{$e=6!5?D
- zf*^|e|3yI*_5b$;QPlr03*w$^{M$tyqY3&po5Ajr8l_#*KXhw!@9DScZ!t_ZTxodE
- zINrF!c$dj*+Gcvl+-*K!RxJlCZ(FBYziiXl_S!zQ%l6OOUvk(SYaAas7daoTvQ=%a
- zI_g^GdckdRuW&!>>GIs}W!_rv4DV*|7rj66xqWHh8eh(Lm+w9QRR5g;Q=ltwYT%23
- zCj#$PS69!fKEL{n8b{6MnxUFM*4|nBZr%F2XY1$HKiJ@HIHlpK#vP5XH7#m-u<2-U
- zP4L?x7TOlND;x~p9;uG(iM-kDZN9PjAJGG`SZpY!#@ENc9sgU)=9ZgV9j&Ld-rhPq
- zE-~)w<NngNqAfpu!T3wZ54VqNzr1}ou_&=WQJBy?;i-=5j&nMG)!E$n$F6x@U+#K0
- zxjFfM_pI)(rrfFfQ%BQ_(nA@4=ANGMJs0+TI59o(vlD+bsd3VUlfK<cddK&k-}|%4
- zlPB+={HrPQls!{^)K}lPtMBFhbpQ4J!*Y+jUH;L4W1w%~(t)R@R!#l-)c2>&oA%(e
- z{~BCBc>UnJ)4QhUroTKRHX}PDKhrd`W9F)vch0JxwQAOvXT3JNcJ`Xt*Uo-n_R%?$
- z=IogB^*O(tYnwZ1?zQtK&6_oE#k|e)_RPC~-uv^z^AFB{VnOwSWec_~cw)i(3%eHX
- zUHIt2zb#s@=)y(cUQ8CJ7w=ts`{E}S|7uC~lBrAfFS&oo@Y33)9ZT0NJ+SoIrT<zM
- zTsC>xj%7D5duZ9K%WIcUTE1lYh0AYVURcq+V*iTAR=mBEt-NyOyQ^lbdVzb_h_qia
- zf#n(nOKKuo3pC*G>Zj@Mcr5Is25-P<NU(kyk9EVvu7KYQ7sC^n(ctxWWhg&Q(2-l>
- zn0EipQe%0gr)Tn^-dD_D*xxX3BCY>idtKct3tw3{ckV0o3mew7?>BpDEc7z7`G}+0
- zY(HYD-E6TOu}3WSBj!4K)9=jYS9%Xk?&*2OQv2@b>gmLJ4g1?07S_KqcP^yyN`3v>
- z_WhO`kC~a^O-JnJW=LVPrPlHYKQyC1;8<QFk_^^&3tE6Q)Rj)Tx?_=0*x++{{Ykyg
- zLBp|lDw3daS0BxU8fn1gpvE@pgS@3vbchm%+wD;ExTS=qm!zrOnx-_}TH5DicfFeu
- zxXm9@WrtfHYE7qGhw!1icu2*Ehwwh(zKLW1mR^!(fyLhj79ZGTG}cEOslnJt`)Dc&
- z93<!jxDfECGwE17W-#LI0J0e~ctmx?;FdqoNR1A-7&jUkX@*f<eQKPozSh;-AD7vh
- z!NE1`Qs<TH*B`9*E?mCyo0-X1Up9-%?9}=5_nh)-<J^g~?$vbn#!Y`%xy(Id&aV&G
- z_@1|0B6gau8)vOcwHfOJ?yeA|0Vy@EzrZN%SbNHCt<jG8t>$Ux&z^sVQNKog?A1Ct
- zac<+QJAXZAhI`q{KWy6Ay~bDb0@fk=SB@Q%c1wfALi}LOt_4fzEVKe>syl`?kc3ti
- zHl~vNw1FnO8ktdo%!eSKQml_9BdI>-52OQP*T@<$w{2KukyLB~jf4$NGz2BoMvVre
- zFD{bt_tJPN#Yk5`f-*`%#rIQ|g_^4Kx=!=Du+Db-qIDMCWMg-;nr-ejPS#oKqP{Ac
- zm_5lF3iF+RLW}=0Pj|!KhHeiv=<4R$-BJT<Y>?dcxpjJd9ujeR>vFJ@qh8l0kL0q^
- zA)8C`upybZg$He$Z8l!*L+)VQr#=yGqqHqd2YvCNdnlSR$C~ZdDBqj)b>pgsa)Fwf
- z05h5<`0TgbV)soj8QC!Y{5jihk&I1!WsBA6v~JPb(bLl9QjSDOf=ogm0Zl<GPImdd
- z1}G&cfKVedj1*}CT306E31t#A(+9mY3dJINgV#?z4(6xWW^?!=*ibp1)=h}Du;yCz
- z{Mu&L5}Tk)$GcnTe*L0TbjF=a^u@n1p3fq-eEM&HW~OPfM1s)Np-9}0AnjT(QD1z#
- zHbiNtmQB}BT+l`H#r#bFzNJg|SO>5Y;J<33DeJ=BtI#(G`5BUMl-NjY#6_l{uY>xM
- znNTE<^!Snqtbb!N1ARfuWI1n<aI8Dsiy0hM1U^s56Jq53Dm9<4dQkqb`g4Z{H+mkG
- z&$+K=CbBM1)J3Y*-PIA@M4pwI-p_8RD1$$$9YK1K=5x6m-S_m0ZASOT!DH;IJ;-)X
- zbrYpc)$}De+3*=(yp-+Y@G<UBguLV+FZED6agrgu&;zES&&31$K?WLW0|n+QDhFC^
- zI)ld!C@)V4rPUNF>ZgHv{eh$}(o2196!spV7pm{uyZ658V2s8>ow`Vkx~C?h>kPr^
- zsr3Eo&#hklIr?+e-9fKaYbvVgep$}Ta!$rScJbNQF?QYA=B|(&N}APkwH#e#PQryQ
- z`-*LhZBy@2b2JYn#f!_~hF{AR+Zu0wdFf)1ub9K}T*5-ZH&MT+7+^fcE2bZ+1v+JS
- z8v3E%31T*248=o6Xo(&v<FL7ypLv{}aq70KlkILA?{s?LlFQ~WdhD#%;h{72szsM!
- zr&@~lS>{IR{wT{kZ8=Av__p2Uva@i&k+V71JG@@UdXYC39m5vRUmo}~5IgabIua(W
- zz-0#N0c_wX)I;20)T7)t7^6_`Mt{JAn!q2xS_z~xQLLPFMi14Mfvli*h{f>{QH2gF
- z^-+{GUOx*?-j(={(@pj9gkCM`&D5n&#J^+KU!2%A+3nmY?yCQWyHwJf)&Cy3>#7=f
- zs;Ji&pAy@;=H_&BGd;<#KPv4i*GSs;m(zNxNH3z8TpE2ejJL@wlt(@KA3@zXDAbLE
- zI+=s|AU}|+?$`td`2*dONuxqCI6?6=QJz^N&p1{lYt-otks1T-95A`P;}g<t7himv
- zlo;=In`f-GIU?h2)eeKLvEDMU%4UN`tb5_c8(+}TDQTPYTy}}g?lRW7B-@P6t<K=G
- z#JZd$<<=#Z1)W=yv*rhU$y$RUP-FD8INckkE@;^)UwBxO4qqtmY+0}f&2FBL=cL=E
- zX(Ww)Jem$9QB?-~%*pc<F@SDJK<9U22Qz^FWFYQ9TQ)Jw7phWF7x*MXl?098Q>aP<
- zqFV7;cN}C*%)nL!gHoW`J25lMv#QBa6-b2xalg^&t?^eGd=X!IQDRPPV&t6Z)e{=(
- z%{3OUPZy}Q>fEz@P3Bq;HQRihwW&4r-4iC(%B|6KdwVM0l5AdN&1B|#n<lYGOcFJk
- z15?+lubkiFcGc8SvqduM^(JPvP$tjZMeS$w&1BSOvr3KLmMM0tDPW&?UR}^k-L)3G
- z*+qLgw)}Z%>j2d?FxJRux^ow`&g!dSlADi*fc||B>bo2I>pUze$UYa8*bz}c@?2x#
- z8F)FRp_Ru#{1`c`;BX_2;)=^8xEQTCrh4DF=K1GxV8q4c4gQJEY1gU?P5P}XS6*A=
- zpSL93(p$T9x@YxPqjle!wHFxKu5$#M;9I7vIH6CSK6}bip%8kPCMOznXRlg)rOUo%
- z*@_!Okx9!2R-V7owSUd(vvlXJS#yPYZRvNg?W;KEZR36EOOl7Uag2i+<C%Dg4DNtm
- zmjQGY=NZeed&f^nWo}8_+Vg_z@YNe_+s~xo^VTkZ=i-YWXlj_7r7ef6Ud-H@xTPoE
- zH~#AL)VI&vZrhlh+tBpD#TUPWek~)HFLy%uCZRt~Ckx0*l11+=<&CHjTc6*-fM^&r
- zZbHf=SRWKQ>L^WJX-cdlMU16`zzGML6AoCgq0=4Sx;5pT*Hfj7^~e3St9Goa^~d{T
- zx~iUe&eYbeVRvT(m)jhg%AlD6z@~pLc6Wcojy-8;svciIZr!fA#>l*Bt@`e5)2DCi
- z*0)ZZ7ctJ=wQgMf`06IZG);l$5f>vg*7m<SZvX4!_JohgLD|Vrc4k1qs6W~epO?US
- z4d}ZhN9(kN$wLC8qZaf5;h?%e+X8v3!BJS7re~vuqj?(SNNh;u_=#rWO1ibEVRr^U
- z`E@p*C7P`;2>iH#7qo#;k7WRVcfvbSsii`igor`&i2x)Au@Mi)KpSLIqC)}nG#FhR
- zdZ6mV`lZBVvZwm|@y7V1=GN&!rb3gv<f6S7TfN@u&IW%=6OB%cw9d@meUZ-XKsBwq
- z=<Y0XdW;($S$39QZw9UG2{hKy#ya+uUv9ma(LEbn9-ohTsvBylM}5!p{Y@Mt4sZIt
- zM?EGgMU#^vPYpQkMn|*e8qGN6Z7rS(v0&x<EBI0~mt1k>B@}W%OD_SwMqW+F@41?>
- ztM}x&Ny*<m0PofVlEb%$y5k{(KE%t=cmgZ&?o7xJ))-c6R9(<YKUAwYhRIiQbIFh-
- zGa^evOx`;uJH+wHU8<@v!<^r`G?&W`UHYw3-tql4I2L(g-peo4^d2xbI_KqgshgyO
- zJ9i$GI9u!_Z=)07E<6J)Y59Ipnhi)}B96k*M&@8~$v5i#DH;Q0m(C>PVD~}W3PF)1
- z5fFm??C%4W1h6CkVgqd)GnGj1`h;)EnVB~$`BT4XcROZHHA(&&bCxdgo!WVw!);&G
- zxhxnvWo@l`^JON<S7RQULpx}PB-6f~XD+Yysc+va*uR&4&+W4U*jj3>t&%JkO`5(B
- z;Fs0s+F?m#SG6{b@4wSpQ^hQ=s%Ov}h!%_^JuBe|bOYoq2|4Qm3CB<waPzs;lw4d#
- z(9lSJJubxSaM>l1)aq_2vo-})n}<S!rUj}aJ)6?m#c_;lks@vrY{!!Pk{yiYyVq@5
- z+rd_xPN94$&wln8p|jKJ*~Mo>PFPOmkM3APWzp`20rLexu0(KTIO+=F>!E}_h!T9r
- zuCF9c$~-5#(wP)=Yc^cW)8;y`fSU*8mJFqt78%~A%D|&wR)#WzlFG7NF;~}2X*25u
- zK{5>TB**iSW?azZ)nVuq4(x_pPuwn@FRcgeT)<Ta*fn!-B$I|xA*l04NTREcO#ypM
- zGYTT%1j7bGkvXp+%v+05u#f(VJ{qk&sVr>jqHn9=hSXqeOKdRJ06;kG@Iv8j>0UQ0
- z?xjr*ucy)Dy~yc-zT1Es5Rm0#wUgcB^mv@b6|kkZ5AILK2GjNR>A_g?2Vfw+z4Hq!
- zHhW$7+whBSuj5_>+^`v>9_JQ3-ojHYA0PdJr@`xOz+p@-?+<}JG!^7)4GD6Km0Lo6
- zRD&Q%Y6!={Qs?+WukFkTIRXjF5yxf5GZs2>t5%(7$_(nMdWR)!Ru2x)M&qKMo<(#O
- zZ89yK*t1Z5omPQ_`bX2|N%mEHms_C%^9#2dSDZohXRivZ?=Ak(;b7H0Gbx?f!?)+F
- zXVYtL?MzA&XR<kyEE6<4GzYSy4s^i;uowDp9NYty(8n~4$ej_ul`jI#CYl5^fq)Zn
- zQyLB&(BP8dKoV{xV?`C^>N=+c{pZe`cdkD;rL#_Y?vQ-wIa>d$t|{nPzGt~3*fd{X
- z6&)X~($nFq#nBy?e#=?B()leW{83y4(BWWJaN@Ws{p?kgu9~f{8aFZ6ap-4N8#h+{
- z?7Q(9)tPD2GSxHU{+8O>7C+yr2c)4(E*UzkX$Z{ccR^OoB%NdunM!5>f?3ABe_kWS
- zwlx7zAmdmXVLzxn5Ls}D+A!0{{7nMl=tDk$l_3Dss4~0y8Fw3k#gvX25m@(ADXfdd
- z)IWO?-3hneqYH#1_UmkBYn^+i&h7QOsk3}161HD!H(6`l#a;C2DQ>DRUt`ee4Ew!F
- z&kd*Vh3#JTm)BJ@j~y&r*nXZx^zkh%>Yp(g-A;F%)oi=Y9tj6@9=#jV^iZdEr`Bq+
- zUuO?T0@9moio14=VW!cr-{ZMK+3SHc_h0vUyN9ujxUJTFqC?U==(!D`J-B5X)!c(<
- z1PQT$QlunFJP|aPoHP>URulDwQtV}UzNt9XG+*|w-3-D*f;yv{*Mf9WLAuZ%tWoXF
- zX1gy(?Y0`b!KPZMoNxckf(4&x@9%wd2iEeAM|%gjh^b>lMW5#DUo{xPGAjN`M)O;f
- z$$6=dI6=~NW4wq*a}|_a2N|wZgdr3{pJIY?#gpQ#*eI|(4V7JFAiKbxeiq*zY>3oX
- zr>q@~s;;ranyRjkH0XbM`0&rCNJsYXKO#|CeWF#Wve2WJDyfy`0A7M*<Q{@vYiE;O
- zm#|$^kB*=EYix-+xvA5tKm2n^|K=_5TS(y;Im2SLTFw~33Wx>c+yf2Tx;qW!3z`I(
- zMHvWOx=;?LT*6Jl<)T08N`k#2X?H-p`zV2i-4H?jJYynkC(b~hOoV=IpT62RA02f$
- znf`(Ha!mL<@F~E{q!o5`3de`vv#*#Wt~GVOujclyS)$$|yuVWRvwyo&<2A>5oy0x2
- zpO9C5h1Wp4Uujv5#rTsmR#Q-Ipy2508E_?-oXgnUB;V2koy0Tpg5{$#a-ZwKMgdVa
- z9&o8&<@bl!_GQbqGrra2^TX0J(jYOBD75!p%v%)MGd4-s&7tuyVZLP0^W4b5K%79)
- zKb^os6nhTV2x1~&Xrz5C0iA)azswmh<roW2ZM4T`F6}k3U~9$}o4c^_i*(V9C3jzG
- zTR7v$!u0spS4=c*Jg;~0;4i2*8m~82g}ptt^5MjXFEds<E;9#Nq;b*Qm@U&9Waddr
- zXU6OeUs!Nt<^tQ5cQ2W~m@bY?TReI1M)Sm#um8atb{QMuQ7_fa@`m6r28R-#5kaKK
- zp<g$Ewb2PS@f?gl@|3*GD7{&^OQ&KIWHc%2EXnH$cVUAbBs+_Qjr=!K$fsE<(U6c3
- zIlAHN-;ldbUmZ8shjruc1$1zX06e&Nye_y_bIQwX--ZqQF6DL;{q}UDtvS^g@VPCX
- z=4!T4&Err5STuLjUGuWuqT8EgO?36OgQ31^%fP0zG`>##*Yq}F!L&`MhT1m0uzxq~
- zV~{Y8Jv2=0s5R9!>FrH1bs@KavenmKc;U60%y=E}k%QEd5XRb3Aq)aOzuOp!xuptC
- zRq{rrxN`H+9GjI+&tkXV?>l<H|G=dZx4w>I_ee-Y_lv`ae?gx>e-mXplZb|9WxBf6
- z|GxWf>QW6t>EsUoLZ|x$Z3xyiH`fJ4WH*t%FA<Ik#v?bQ92CAr37G0*RB%$s939Sz
- zQ5l}S^<UrHX+OH(-nsYds;V*5T)`mQHy}6|Fs}I0L+jQ(^raQ*EY6JjmZlFW^Z`}6
- zMzZr#;eZ{XZK+=iq$1p4Nnthc@faFf$K4+eOk~AdXKcTS^0(_`l$4L?=&p6^pJXfD
- zbsRY2V~(!*(e{of&f%{=ECk|dx5grE<TxI<^bnX8m2WTQ4sgv5O_n@znY3SWRVKe~
- z!H+kcx}vt>?%nWuSujH{+<wMe?B*`cD#x&O?j@1#^mDs*T*2V|f|qlin2?B)vTqlC
- zr&bbxnrRnajnXSCMOOx)0x~M092AnTJIzR?Q&XhQw?C$JEp_mJ0xvJOBv*JVk3L^|
- z3byxo@v%Dk1V}h8$<UN9@%AX^t%=Mdt1#9M^fLBRR|FKKF>XM253m<;CDWOBCXj9d
- zX%vqE!Cg>>5nnQZUQJ^l699M;fM-DWB~y_&s>qD7BBKGGMN!x6thd|z&9)UQsuOK*
- zx6POVn?PjbbehfIK50^Wcvq+)=5-EEtFqL48$!Fnqc55pJq@7`L{Aml3NM%>=jPV-
- zg^rPF>AAVNb~|k9ri5te)aH$wtX5O6+#7E1Y0I@WbX14oq;xHjfopZiK)82)Iq?nq
- zM!Cm$**(Y0u7>yiPLO}Jkvnw}9DvXU*fxR2pp+1~1&lNkFiI(H@KM_@WYp*}7pn}m
- zLng0zhWdU)uQT3k3mJFlq`}3fC+Om}+n(A58b=1z1$7HekiJ$tW|VY0j3L|2Mx8!F
- zt7e$Jrb9MERnhDTJhg4D`at6J#jINfCADP7vodcpglIB5Plur$dZ8V*k`%_sdMc^~
- z4zSU6r=z3m4M%XhV<)}%U`Ict{T*VfHM7kpxi<ME*M`d%I{N#ywmk3&uaz+y`%l1Z
- zXkCCE9i@O75pWBj9f*#&1|#|rSvcyL*3g@+QKv;+Vyd+&7F|`Xm3^t~=+lO)<<fX`
- zX>9shHrFYIs)}E+>P_D?)%qpVAtCzmqjqI%sUvKd_x}jSQd2((7>F@O;%O2XUH&KU
- zF61xN#+drIzx+l08)MY=mwSHO+WOmj#CD7xz=r+mD}GM28)=;NhcjmU(8{-|F`G3X
- zZxiy$1}!@V<tmf;WDUmHjxwS>l_ya?MyQpxzVbv$cY!Sf&p}t{rj;ii5&j@zA!y|Z
- zBSNA%#E!nI)dp;exsl^bEVX7H_pskgU$x-Q0~ah$o6S6!VZXUnoo<1vwH~}6$tO=G
- zKl)u0PX259!;zP%T_Z0O{;|JEmq`x5LcP!ig;P8!LJqhF&Lm4NhSZ2IL~p~0E)?+y
- zl5XW&+d=8cbm#i@PflM~sbSQrQKu_GJ6@<gc-n$y)PbiBMVrUZsnlL9I!aYmJVu0m
- z{DE}8l;k6+=p(~Q>8ITK0;s1&pFn*%*aYed#ZfagRn$|+B`h^jn|ROl*f^UxV$WJE
- zS$o868%HCp_NdvBHP>3QX6mW7;1!Dp&&*j%t;f=;zBLX59N+{lz>QX#ZFRs;;esU#
- zX*pVHY#bVFn5L!LL(Q$~FI(ZKX8wd3e*zaU)&ifv${I&wn$PkcXv1Ev{e@xSb<kKG
- zSj}`Ivz~5*;E*3<C+0w?TZ$nFR=3Bf{@iSaTK;PuPiU(+fqN2%fJgsiahh~^z0Pd0
- z{FNQzr|=toTAZYXr*IuHBxR+n=9`Cd&-jE7EdwwY&6*JObI)->Gw~7*7}h*!w3ufy
- z+Pg9w2Q`m75&PFPiI~d@3pXpXpg1~;4thy@tcd%ALh^Fk>uKqEX(s6bTXzOWBn}=C
- zFf#Zb5$FT@a6sS_-klMaw9y2^!9ReydLgBvA_G#kD`}sZ@qPXj;a}`K)#u{|aFx?>
- z>z+NgI-FI!_=3|mM>;3+q0HjfHD6zjyCP|!Ve{E5-D`F-wBM#r60(==KFHX?-Au@1
- zI{&hB!#BPtNiRMjeuM5pbY+(8-z%Zs+rWySQyN8Mc-sY2R50@emV-;4)`(>2s?
- zOo@E@Xk2@$vJX&}zryZf9=U1@uyzcM%q>Z}TD`*IVH26leuc0tWx*2t{%m+)Ha6uP
- zG}Ih4WtOe7e{V<>jM%C~_Bohrukx?h!`Pk`et+)*N*DC{)%rOFe4;Q18+OiO$w4P6
- z+4n#AKhNJtx9tP$rWw|sGJhCmR?3<KGy7@s*Nk0S%a>itYst5Xx@Q3JD2`-xW7LXA
- zGh@m_ESf>%66Q+^>>QsIa)msi!HPDTtUM7hL_D$#T}Rx^k%fbt=JU|Cig`^7JS27u
- z#em2J92EHx8<ypw%yKFz1A<C$kViyKg};jq;S4uVMNCjm;x8?7Z)3I$4k-7r4}lF?
- zH{$=$3^NV?a|10&hp|6o#Q+=*6pAspp%X7<HTw(sV25yaT{Ip8OUF#ni)y4d{TQ8P
- zI5-3nxyJJ3kD-Y<j=?DkRYFR6$guC=>^G1_I6?{l-@rW*i1`55LsIPM(W9s*j~=x{
- z0~k4OW_KSwih2@G;6)Y3VjK<99%O&x-g|<9jwpb+LdlpxG{;Z4LZ3HRo9SG$Sv_K|
- zcAIIB`jYvB6ECrMOeXbSbFEpu*W`w~GL_BMmXlno;GqiV-vJNsJ~KxpTsfR@fw}N4
- z>Pxi845`37&1~)oSKh%lsChMSu5p>@a!ZYwE<fRtHsAVs{%$CLgBLOjB^rmy>5hfj
- zMofxUCeGf04AfXEGvF@Q(K)P}r^B#{Fr^GnMw0nUtKINY$UNtRwP^{O)JOO$YFy>I
- zW<TNeL69BfNu&c=55w<8>AFYCo4sSva#isHQo&Of&bZ`x^Fc~xWGkg5_n+#0X0y3Q
- zWTXZT;k=%;s9&*ETPVD0k@_HP@#Hi!*WurhbX*p+iQZ8f<@Y5^E{&0Ri%~AXyvNS_
- z=8y>W+jgy4cgdD*xA<MBe_af4@hyFnZnJyPm4d`Rw{_c1PV3oQw%n<1E<FO<lH48U
- zzDmUKIAT}vwm^kH(v#9ux+aG;rOwY7sd)Di;YH-zAD4#OQHrh^q<KK&*xhp#Tud!J
- z3|sZdtkCH~LJ91S$C|GpC(Q$!s0q-9@MH4;-BQ4A^tdPh{U}T?!UBDvfG?Ed?vMcY
- z7nGvjm^Rv96afNswh)*3y1mn<ub?ywBA=bL?v$@ZG0aWPl_FYX%wSFn_J#eeBj}sP
- z2V|RL>r6RTn_GXtTeV{4h#tW57WojC>Zi#`rljmVSp1loPm+;WMTz5ps!F7TpEwso
- zvZyC$*HA;b+|Glg{xDAp;p}1!UIMBP3lS3#@`X)y)w+IVs&$#E(^PAsPP41V%pNX&
- z!{&0?*y{g6fJ=kWQHHsA7P4!AJp=t7V{$?zLss(^dARHn!c!vZshstvc;3vIK#?cI
- zwOiSq{W-p)IE-5@{m@AIB@KoJ55+E(Bn@_GBEqnFGFtj9_|fT$GT8{}2RQcztWIO4
- z$bsb9UyI-5b+z=k>{C>8|H+TwJ$Pe;=NzPIMV>tse$Bw~Qhm5$WW0`A@b~JlnJ1?u
- zj{^hh2gkny_4FSknSF?SM_nT3IzC$L8d>lp?5$y!@;6@op~Y8gRbRDOXqUCtXCdXf
- zyiJsKR1}72+n9Vnl(Kk9w(NQsRg<EiwQ%`t24Bbo$D~}BrS!|?qTwQ`)D*GBj9HhX
- z-q2e40vz+q>!5}6m~`RU=ogYP=3s$j%ouZL(#-(}^9Q1kF<++_-k$304pi0<NOHJ=
- zCIy9CX_}*FZ8`OudmDmJdVbnJ@yxSm=<?I<$Vy$RJt*aa!J~3;NW{qTetEwbmqAdK
- zJMZN_!=kS~v95pL0b0LxbKQL7_J^KZB?sXzr+LiL$Omg!_&$Yxc|__acHV9rv=OWt
- zLxN=t9=|SQ(DB$dcgEm;e@?RZrXM~(^PFGb-B)k^=5880uT4FA*ImD@vOa!zvzZ;7
- z|Kbm>nIJE$@4Nfg=a|%McbGRHe%xC1+q>?fy0-JwH%sw@uW@-6!kO}|R0Iif>mNjJ
- zG*p_OfDxo{jYpV+=rR~_G{_%dE7ZSizuuzDZSQ+0cj@Kc+UM0XXw|OUeC{*0o}N!u
- zMHXfy)0t=VG)~!f>!nR~k?M`-t!t}oqo3Wr{mYKM8(Z4nyz+|M2Iv(#c0Al1TDY-E
- zXE}S}qRn*f#2db}j4q!eRb~35sk_f?Ew!81BtPdB+Revs`pGzxKZcXid-IYG+R`{^
- zN9e;70k!BL33c@`6zRf477}5HTtl(nglvIrmv3;I<FgkVEZgVO-Q(u=2I<P4b!Rc@
- z&^hYC&DS{0J2(3Ftyp=0)tZ7+22G3m<7W3cbLXsQ!QQ#!X75^DeK33W%@VtG)8?CN
- zmYreHudR%EMxEbGI(e+gO0t=pg>$Q;V;}%&OdnavkUYT=79Bx0;n=7X;gIPPK9^A^
- zV}gmDqug2Q>y}z`0!_4bGiw2<)Q)begt@qNBn(|5Bge%n%;t9N_X%??^O<qy!3+5@
- zpa^@i;<pv)uuC8vw0<Fh;yWYhyn7PvP@IhBPQ(r9aK4d;`>I1YYT`k85)Am=#t62*
- zFpl3CD+P<b@?>et+P&w~>ht%mZJE|OYwNZTPTxAK^~RDAp(IG*NX4UTsCmV*Wh>MV
- zuDS5t1@q=Dc=tjfG;kwgjx=6yrJ-u>5$(qn95SQiSjDTgwh+-`0xH{pzG7aNzM?$<
- zU)-;R<@a8RwX6vCmZifNUU*pI;g{&4yu)G{M7w#=QgifImKr#*MBqeoIdiu2@H6<a
- z2=``S>I$UjaNj-hyk#Vra(Uy*Ea>y?LcCR(zs&zxmaeP%-qlxsuWG<?>se>r3WD~d
- zbE1js>{Sm-(!*EnzLv3TcY|{MxJ(dDCqbVbBtDQK88S!~<2n=-vc#x)-_kKIN5Tn~
- z;-OPw2H2>KB|q5-`(4Cdy*0O?%F;Tph_X#{>A`v1&H5Ezl)kV--QBrzu$k^!<-cUb
- z@&mzB&Mt;Epn0+#TW1LOPBSg+Z!y|8Or5)lvFyBgXMYp=TJzwljy0FNmTWiZS1<G)
- zP){8xjE~-EdhSUckI;haqeOi|Se3Gjct6Eu8BSLiDI`&$ekV<$vq%K^)8NKSSUEQv
- z&StucvNKjOx?)CU5zsZyyWOUorP*UX?elnKtf@8_PWz2)`s~J$OkB4yyWcTj-#T;F
- zHfLqFXKtKDo2rJZf>jUV-e$1Z*d8p!{*Baa0@`SrOu}~h$!j<1i)4U|+8*iC)!wOm
- z%1^em{S*}@%W@ECNG|)hF!0C**er}*VNbHN3ov%1GYsgAW>Rs<757C_dM(aU?@Icj
- z86FrDn?QLN$C*^X20K00L1{;<c#}-?o9tCp_Dzx;JPHB?cIww`@7dJ9(<*muwnvwa
- z9gL-QJv8`cs~J$xLAx90XKUpum-So}G~Gn>yL}=JX9Q&hf)A7x2tH3L0!)W|V4$ax
- z7`R0$6_Xg9=i9qPgLk8l%>{?@U^g8jd0EZpDs;=V($lb|Z-E)lZFw-Zc=kyym(Qzw
- z%h!;q$U_r}lMcwkRFKlk$U3qG*KZj!H^=ep5uSIiK`I@@#h54`*AfR&5O<k$7s4|<
- zXr$h_ALovCL!$hkk9Lij_m+{|4vo@=*J|O=rOA8+2M9Jxjfeii-fXskQhvu~ZnlGl
- zd>8dOdhf<6EjDGOaA>YHwLlx09QDq5r6kb{h)Fh=Uy9lrUaHB|Tt)jxV6O{}-8y_m
- zEU0(}@K2<Xq6rx`c%YCg!ciiOR20enilBzW2+{edl|$AhTy2mm!c!`;IjthZfn6-@
- z0NflS+RU#za=DRlSR)^=e@dFp^U(<TNRw%}veH;BBN{+!JrgyeB^IZpiI6c7#o~*`
- z`dGk-rj9X$ky||OY0PY?m-Td5n%yS)N3mD`HdGp9hPqkPWL>(eb3%P@o7J9>rZriY
- zoQY@SEp~Z~{7wrlbv9Kk<y(3+uTh?TQ|GRw)}{$|%lO{<2^Gg9x)JNq2l*ezB`BdH
- z>wL}vCE8GdH(H)GQ&Av#PY60n$kPg<RSF7Ja@`lcaGg4=4hg8D4vCVl6N5T@OPjaA
- z19^3L3p=y;vw7@UIxKL>>OWj{)gRP}R2~*+WjL?Z_dw~Vuzltj!AX+&68{@DxmnFu
- za-0C|uo8KlJTr9EBW2{rPM!sV;4pZM1i6?Qi&siCc&N$qO1}C&Ay=9cQya0-<}>iN
- z^|4Im%Yzf;gO6di^3iN*eDcIHZNs(LJ^}Y9Z6F`Z_K=tp)mjmz@R4liv}sNQqeB!l
- zKj+4Zw)|<@@mOv5MCLv%W4hyHW#8DI;&^3<7Y~&z2g0Q)!azRG&fBwc8<ieDaNuEy
- zZd<wMY9>SkyLwFL@s!fE7Zj(TA8>a1oBA2+Z}N9K2V9F&A~UJQrLokK{Tmru;(Pei
- zP|X-8m7=^NZmoLGH|{anq&auqYqC{{vB8RvHI}>g&N-6JbkCi0B^%LV$Mc#G80UO1
- z6wylBB$Nz}o*(Z6{-{nRfp(9E1b9KK2IY8OiwYMLQ0j^~rp-MmiaovY#EzDyvRdhc
- zV!6`Dd}*}4JkbUAG@qWWK666vqlgCi#CX0Te636<@7o~1CMa*5XNG=nTt#Ft`j18H
- za7DSZSF{djIQk?`zs*EkU72*IJEo8L1O7lf=?cfuX@h{*I4TIWBIZ*T4MfeNb5Ar7
- zH~sH*=CHqh-_sigCh0xJv)5Zf0XWObll0U>cgpfG56y9?xV^Sw28Be9X$_SU8KVqE
- zb3>aozbE9k{aww=lkTv4<;oK^moIzfgqjxp=Pqp?=nP!zFoa&82+p7Yeaov-3<Bd4
- z7igEX@wp=vbHb8T%v0iP7o@?6iM3IEiZ5`{NRxDU;W@rgu*=eJF#3b;)xx*A+8y*8
- z4GD8sFyuRDVXk6uH>-+{G_}U!k`l~hSgn%P1`|t2F3YplE%T#Ihuo3IDp9#rjS=^u
- z#@PHV)@L;=hiyfhQ)ROrGFb9?i{X&fHX?gVn6(jlSPQO|IVP@(_`vQAWPJVruHlf*
- zU;wXCiiLsFV}i|D0I(Y(a<nzBUUhD~HTo5nc6ivNd+)h-67!6K9;GQSnM^PJ%I;HD
- zpPknGo$6<@S$dJvf4r@LYXBs;H)L$ClVG_-Qpr>#<@q0F;4W@!4gC+YLEl2?0AM>i
- zW_FH~ag8654~8NxJ*IeT?3H^iY>~&3Y_F;R+O=TDs$C_&vsg<<#<eh`$%;wLC+th3
- ziOJ&zK1T*Xo9J;9B9C8zhYkZMqm^+PVhh3wf%3`k4CTwi0gilDlVn8faatb^b!0Wt
- zqK%HfB$xWOCIo3oD3a28E6+#+yxeh350Z&haqnK0(GZOLgPC+yJQg$>s;ED}R}{#=
- z9_I^F;kAgx(=ooV!1u1W;sD)p0JiGQ>&~NH=k4Bop8D!}yXjex#x{SSeAfb_al?!A
- zW(U=~*5_x>jI@S>Ej5#;9G-8OR{q_AD;|Vjm43^5jK&3b$$kE|#z=c`_PiI>pR`71
- z&d#ql80H_IGP$NDRAIyGiHmE;)fjzhXk?i_DMKBSF^VPu6(b;iXgoSJ7|~NE0_}{W
- zciepz=g~Ns@~#_432#^bVe?Ht_hA2?4by$<GxFK6V^7+AgXhdrdscMZa4X%menr;}
- zx2iYOEdh+d@VBF9EYaSMAvW#p{H#5Ip%};C!N80fYMHrr(AVgjzF|*4?f1=Ce^%d~
- zndc7r?8T0C^t4-V=w7j2z4_J~y4Wl~J|AdDZyP2H3AVQ<_?aIQJpK;yqS@sm{VU36
- zi{LE4>0p~L#&u^aXY<4>dY_br8aKwG24ftK^cjC9U;w2C7xnxSO~VC#A1_AJ@T@T&
- zz*~BLWz4Ag+p7b$Eujf)XSgdgt}dY7ZjD5&iJjx)!G;hG$H!Yk4Qc@HwboU$3u>zC
- zT0>pxy@>=oH3x15<8*bfF=QKG8EoHMX^8Hw_9r3}<C8MudZL}aSNnCkeuKyE?{Qh{
- z{q}yVOFaeeOaMsg?TGe_+h;JqBVBN#$Bz&7+cjHN^baGc;#eR72xw->RyF#?d^4Q?
- z%~zU$qHC0J3K72yWt7HiQ9tOo0M7c9JkY619Za$&dksDNdRMtz{q1v`x;jqzX?w@=
- zK+UXIx0rg?ovZ$7`FHv!e{ObNaO*XDYmK29mr{G9F4EjI^-I(7{_DKMh)%bo^U@h%
- zW8Jxr&E7v*{?2k;FtX)`Giw9OJH`*}UDrcz=xmyk=ySEMeLS|Z_tG9iuRQprX-$!c
- zu4(GI>w1dwE4r?bi*G_(=>R(f<7fl^^aLJ4&thTp?KL5|hdSpAsPTD}j8C9sjm*Hi
- z6`KHP`S&^lZF^K=x?_8oiS0S2W74DJ4Z228Jmi#OLr$~3(fjr$bGRjJ-t@M&$!2yA
- z#Uy7a?s?(*^Qlg!J|Y=uRMF{_C^brts5%|(u}IZX?^|DW#N#zm@cSOG*Yo|LR1=Ro
- zzWSCoS}mDRuhb)&G>eWv(u}VHv(k^juM(+%junVf%~zaoxH(Fs(%BVglgbr%l;uAT
- zoR;h<5r^i0UYbBZG0yQWBk7dO(;0DzI6)D?OgodV3XGlcXwzy0)OHE|fi5Rm)|^fb
- zM#_iz@@*-I-X4Lq$kDujlzDUjN%FCg6Sz})>{wZEKg{P|)bceEeC5eJ(DYNnt<47s
- zqoX{l*<G9JnjX94lE<3rHto7<e_iO;U;grNux>xKq8-YHXY{^t!3AGp>`ND1@J8>9
- zDaUTO;X9J_o$GHr_O+l2mMxWoqx>jhT(A#EgFeC^Hdf61n8SW!!i=Xz51;KCi9lf$
- z(d}cP5NT~i0DQh8cx6<g8a~PMwf;gUi5t+53QUB%l!%G?MG-u}<dKj`NL>UFF#fU}
- zf5gFfphac8rzp#IzV^$QB}p}#9^bAR`*5fiQ!2%3N`NQ%q7M!_wk4`E0TQwC39AQi
- z`i1q*kUZFIO*T)#)tD}`2TaylpfQS)J}yuu=B8|oZ}Cs-uMJF`+0LGDnd;o?n>wCE
- zZQ%HP3LpDNdQi)r0jbgzGiILNF8R|n*VR}!^zlmLU%0rA!@w;cVds~Ei%Q}CW3tnR
- zBgh!DV;RE1-OrE3&XQ69&Jh0Kz)5@#qZYpyt6gL(!g22(gQZe%kD48Wnd9c^iFrDe
- zBfRBk;&3eRNjTBm`N5B2C|~iDAC1ME=>*=o$wZJl)5fl?_*k`=0i*=FG@f=+fJvZY
- z1BS8X%^1!nc3b<9$1~J^Tirj)M`Q5*?=k#P^ybk&=SP)exabFQ@$dJ<OLHc{k^~jW
- zr%j+?gQ_#coj#+2032L`f~L#S=07kZ-bv9hU(88I)R%B%3`fXlE{6_h3Du<x8nQS*
- zWzB7YUUxM|bNi1Jui&u&b<NEqen%l2+lA$e^I!mPHd0?{VI0kNbBP5Man`9=>;P4N
- zfO8i$;3`%WN05wvmgx^^UBX|@CFao>a1XSMTAof4f#j66r7Bw2J0Auj<cmXvWO)
- zd?(9PmeUiWOWR9>J5)aR-dY1r2sT(dqlwAQlX8pI|GEb*$cWzA^IB}!$T|UbC|_Ko
- zNy8-?EYU!Tz$84TRhuNBEkBbg&(HUjhebdcFjC?7Pgk^^t_u&Nm}UDm$Q$-yY%8up
- zR~r9taL{v%j98fi@VgOz(vlrVpT!smjDK(h#jG`P45`ZH0UjY^aZNryNZ6TVIeuLN
- z^N@0Bv$9JQAYA@{9~X(q_`FaXabw0WR=YfDrU24}(b6o<T?X84tf)Tv)%HO3=&2D4
- z8~am@a&paSiPI7p`D7WE6U&xHV{o;x_O{9jr5%YnIYPCZkC%6dA~{A9vu(!ap5R3J
- zg6>t_HK!%QCn*BCZd&W6w7A+fxA7a56^=UnE$J?)1!~?8*iK(Z`5YdKV^&;$#-)GJ
- z{+4%(<E>7~YLP5vw*%1d%Q}zWNjvGU+tioYLiKml8E}IotJ68$=A$24tdi48bEOy=
- zDbI$vueOEHEluMWRX#Rmw>0B)RP2tg@?^+S#t%iAX)BXy%Z{<xV!TORTOPF0_JA>j
- zm(qbAOCGvQM&?c3s*N=5s|fVbmGfZMX7mzI8LFSax5QTrl5qAjIvH~%Cvp)=7{PYQ
- zgWN1dKB%9&Y;OGr%YW?d>gjU-m<_3<v=#|R>RQ7`k=3vMp(z}0qIG}v`Tf2>b6NNn
- z;Bx#jQX`LpACKS1>8B<8fzKYp0QgZJpUUD(jVjAM%%OR@(G=K!eN}|NS~CY!j&Msz
- z7x&X~l@&Uq{bqQt&E;j6Xb*F@5FaJWSB`~^@GC~)Nwkt#SLOt6OXKXx(m|+nK;0kB
- z?y$e1VSGcwJz}SB7yF?~mY=UXk>_@NYV?1N_t*G(S1ynr9e_n=VMz!4$+9N(`f(ym
- z3|G2Ll~*7M$2}kpy8DD-l&m-oRUAL?x#}g^vX*U*_)qcF87H-j*M0chb06wpyYti^
- zIsy*(51F{9e57tKAGWkx$Las$;KBdU!?t@%d&3Kc2G18$7sz+~-C+3p9kA`7Q|vXh
- zHFn6)@q1E|0j0Y6*joAMqW`!u*7W#Dc}DrS_4+<(iB>k+Oy$WZC`V_x5toF)Cn>s)
- z%7)BF@%~A8j>R9iJg{WTy+4wq*YCUUb*VYzUjv-=w2Whadj0i3G4|eT=bzFt-qxaf
- z>G~U9)ahQlp=aCphG&3}Yf=|aE%QMWJnmH3;zE|<*9ZsrDrYP4yGS250_Hi{i07yx
- zJn0joBD9A!`6QQGK&je`!s+m{6G!<irLxYScu$>EmdeAW231O49!ZrqF7=s{1OeQN
- z)uLv{x>J(fDtn3J89t6eN20+>rKA-Slu;KHfmp5fH~>Fq2Liwybcfih*V7$WeOIUZ
- z?p5mbV&B-=2>%lRI{Omyw=%YMKHsu^@U-|1Y-huR;_<7#t1fIvPD(bw<B7gGrN?3W
- zX?dpqW1i^;ja>~5UH`u@O-ACh@#}Td(DQ;Ul_xcKbMH%_yz~!TlTsWqmM2C5AlB}L
- zv?p0kYXKD7S-5fH3|y(HG;k)DJY9KybJBFmS11%WQHRb>YlF7A$Rzg+UsleEd$>Dx
- z;{8+mD(;uo&DjS}y7-(^0%lPk&c=80gMgn0y2oQ_T*JeGv-<m~CqU!umBiW}d!p;=
- z-nH#(7Uri9*ykS6_G?D&w5xw^r_T1Zy;pZ7>^*A}Yv$Sqrso$P(e`V~cj#n%l<@B!
- zYBq-G|G1(YuCl$HtS4K^ZgK&+9KWCSah}8sg4IY$3s%L0Q0c&f{->mmYg};<Djjei
- zo)4#fmkwN|1HQyV3Q|jz4qT-JTJkSy!{}%_X>}&{{{RT)z8^R0tL4Kl^7DuI_D60<
- zPK<?@w^HuJYhtK9SMfG^<RyIF$jeUr(b1D6goC~x$q_00!KOj)?9<9S&gaMRfn;1@
- zS1baTpi;mEdcKRV5XaZ@6BQBG7W~8LQ%35W={IYp)Hw{+Bj!3MBQ?HPo1(P&k?PQt
- z=~F^B>#MDuyzEF*%6-IcHC21YpVkVd5eUqGAMi4_t=aj$-A)I5VMCv#Gjvy7v%1Vf
- zbCJo-&66W{SzS_}eQKNfG?YnQ^`G5s?NM8UK6t`7b9Kr4G-g~%rN7iT+WR!t7%d9n
- zp_106WQ+mXDJ6W)1338@$3LV4l7&Ye)$nif@`$v`c)TWB>AI+lHSMLHT~OS>Cs<}u
- zoCfH@4f`Z%--awV5b621O46<8@$L5d-_*l@*wokmy@f_wCa`_k^1~BLkKxvZ&xps>
- zd-2iIdMM98`Qe(QK0Z!A2`qn%%7~<rE?+4sFzHLC;;E$16X7AH!lCQa8v~=lPP9cf
- zpn0T18SQ%nP|Em`7`Vl9vT)?exxAd0bK*o@H*+S76klaaxD|B2!?MX_+GJrzW)|OK
- z5l8U>Zs#m^nm3zFo6R(sSG9?+x!h1bPqVP&r;8R1$vjTby4zfB-fdN@j=M10|5952
- z1y_b5QNAce9O?vDc<sXvkHq<ULAZKFBy2DSxUVDXzz@CzGGc|x(u3j&aSIJ5siIcd
- zhik)&RxApy?cO(i=B3&36FS<~*4Ee8Cir<0ZmwDwQv3Mzy1M#WI>To5RYyX#a=2|?
- zJs#Ec&+6Y);k8-|&(+nfg<q`F(g-bFvoJ)TEvGR$?bocfn*L@;%pbtSnt8I->K`jT
- za3wvF*VZz{Il#V9r3_A13g5AM7bC~Y#$QQ#mF>SVoF|fICTdcT9IO0+wuG<v;XviI
- zWgVY$_FZWLX&^!9T@yIR7;@n#eHSL3ME6+}&G=Bu(M;SG3WPHHfXGrma7%A=dUW$V
- zo2RO`Pu=X9r}H@J3ffrZkp5UjU4<`vLA}Av9KG}xw%r|ZX0vo+A-lv=0yxBj`5
- z&h4i*XDyxMcAJb;y3`UkMW!xP?~~=+rg2>WXvS^Q+8dPXlPu4zF8sR3Abtn6wEjpb
- z+Q%R8;Kwku72qS<p0~MVI^zntLdkdpU`PhG<yGMIrGv{t4sG`D9X1zBGmqmGU1a8x
- znGxOPVqfR$o73leu&!Mt?5_Eq+k@$;&d*nc+uH|0g<mfALvDwdMVxio)FG#T-0b%D
- z+2i<jdt*4<7<bWaYBo2Z3*M2<szVfiGuTeGJrOZp8g?qlVze{olXd8;8Y>PtKFYm0
- zmg~8+-VziOE^{O4OBe7XBA|!@C?dydVoOTGd(1|tUdts2sF|$fsPXI86#vO}skKUy
- z4b@To#QVlkd7L~(V|<%yh%s)mr`+{!yH(BE{RW$zZbM(D4W~1i-1ofEL4zG7ziU=n
- z3tFRwg!zicP~|uYETiX6d2N6y6HRwXC$n#cnf!rgyyrqH*~I)`8<nD~#-C`cu&KqT
- z*wmMu&aR(WoW<*SvpLIY`ALI%+DYt>3cn-rX60k`T{w5j#n<k2`9dk_Q*rnKlYjWJ
- zOy=q3z~RekUoOX<`h<My%JRzxW!Q>bg8qVj!<XG0>1;kdlx$R+Q(hYPqX{ZpGN7PT
- z8P}*4u|eouQ$aKy9j;s;a+lzkWrvD#P<VKGXg+>RM%KQb!#ksz8~LWn$QX10WL2+N
- zmCB$+#R?C*a7lOb$d8j<A1jvR_Qocvd;X@Ip4ZW)rlzp|-3K0cS08CQ=~a3OY{fBb
- z;ih;*_dM<GZ4Arn8Cx%h8+&W}BAYH^?4nJPzBk9Xei>}V@urLV;I4Q^UQb41ThWG!
- zlGz;FqjYvf5KaeBNn+{qFRSox{|FB>#Z_)jxQ_M1KgNQ!$A3#lmxE|)l(1axCW}>P
- z(lPkc8+BGoaY^Z1#?V*!gv;Wb-4EwRJ!5LFA~<?b#7k3>r}@$^Rrly${+#Bax%~Y2
- z%k;fb=jw*akC2Rf+M-lW>^FeAW|FyNA%58!^276u>k{yiKo2v|H@ca5Nu)kWDd|H#
- z{x1L|<#Yz4(_G(Fe5tA4>@?z1+5DXKXy>xo<Z5z`8&`a3+&E{G%VgHhS<kp}jv$;L
- z%}F^yIn>c?^5}%r{iDz6`Rab{ms(2n{81^#Wc&bA<=C+v`fY<YGHFEd2fY-edqqD5
- z6p0HzMFEV&Bk`oiC9rAAMW;L|ktfw1^meD^Rg>tardKV)$S%$0y6U?$s40;*if^!%
- zH)QL(W?S(--cgs?%<o#kknX`XWL}bwk<wB_TFf%?W&~?h#9~a~8XO~cT_F@Nu2u}l
- z1+HkQ#OSC&?a)abRwtcaFsu&KAW)WXfz&KcUdE^bxjd?uJyBd9ILWLO096DXTj(Ij
- zY2gZDX4#3-v;Slgb!7c&iFlwFbB%Po+|-wrA&Hch2F^2hTWL50w)8!bs1}ZmYf&*-
- zTbxRKCn2x-Kk}MCBwsntzy;RG1c64mH6B7!eF}{rFXD~K(H!-b*Z=i}Sl;bGqs-yX
- z;ks6WgOOMc$1oM>@)`U@1H)NZIgtEW&Y|F?l2765v&dyx{yl9Bw-v{4^(75bKA<BA
- zMT4c{GiUgnIr^ZsM(B94FP_5T2Vl1_+u-y_S?02-GMrxY2)%kq@uxv;5j?8xr6vFo
- z4%?m8PF1!#95%M4n5Q|7ug9S30)XP1`K<EtyM3jFw<2P^Kjfh&@SK%0@b=x3%Ub*e
- z<Bg`sgJ$n%j;zW?^DL1Xe7jvP1;xnd7bzakYRTprU0xk%34gjWi^h!^49ob`g-6dk
- z<&-whWY5ED&nGKKdDpI+{QjSp*Ob-z0G4SJkJ>oNObb1JX(;Iese}`7UHH|Z<2!;3
- z(4zD~Ju2sN6(LPBHqd-NpTp=c5g++Jf3F>6P9q?~7@reNa6w{YM4P1@3M5mRWQmOo
- zn&$x;_f#_R=%YPyH5X>pi_V|*WgdyK?ZezH3DuFPs^CSil0Scz*ynPu;S*B0f+wc+
- z$qckIzmNu0FIM`g=zn?4hk7;5n*C;)wTZmb->QxDx77MO8Z{c#Ujm-{Z{Dd~&hq@+
- zi^}tb#cBwh$Ia5R(vXBjj#g4cTltSBD_kTI%&uI*`SwjLyGfl-U$MEQvm}qRxCq+C
- zS(1zH;YeMUaVHTBGn5@xl{l-bos3u=DiKq5)m+(@8L9hb&KJ&EIjJl}iNn9R7}A7d
- zrnEFuoVN|}H7bC?#i5F2diHP?MW8ik!ib{V7H4Jb%JJ*DoJ4S7Sk{);<6yH$;7YbQ
- ztc_dX@)bGw-Ls%Mve_)LoV4BIm$Ud9HYejgprHl)7u9%01VK^P9``JC5izYsgUP!P
- z5R?g7&K2{RFDB=QN6n%+AtUGm!g=1<7MZAz%7N`sF)3y~Cxd_e%fSHxARaM<5aDq$
- z8R{#KVg<^8eyRE={3b%K{b3PWF@!5$?WAOAU>#%Y1_svMBDAN3`T<0LaPXXMV*Z>8
- zjTu+U8XjhsY}|MWW0yQrf!$1H9c8TWJMu9=>Wa7`C)1Xd4nE(QCp0T(j~5;Z9J?F+
- zA4-!5k~PD`fksNcJkTdb`>dn%_-Ib~Iv*$1>)4w<8MmWOj@SOoAwzQ)ed@&jC*fW$
- z5_Vh;@}uGxD%$i(InO|wMams#v@KxyA`~k@8|{Q<hAnW!H<;t!0rir4z#i=wj{w##
- zwzy3BRYn|$bnwrofFkgX47~X=0bKW1OnQjLu{d~4vZhNxKFyAS((<xJ#Ru6z^nHs3
- z#`9VHSd~m8RXcW6Md%R2Nh&$iz7F>!c5`}mF@zcmS_U7K#+Aa^#(&SB|8H5n!t1iF
- zSYdN{%l5=G65-#)bwVle-XcoGh|~X*QV4WNC<V=vhESSTn(m%74WdDl#eQ5Y0)V_%
- zJ%ugFt2r>`ir3ROyyizFQJ&HxX0UbhGN=j)dOrtBg5{}8J!CYgcX5TY%4DQlT>{?=
- zyI0ayyXhW70-<NVlY8bnyQR1XJ$L?e#)F?&#dYS5Lr{gmiiJjBMdkImt~aU|HeF(^
- zF~8CEM$N*ei>);#HhdB}1AoPb<FvNP5;)ByS*W8${Y#Undb3Hg9v8ogJ*1~RS}7z-
- z#gx@ieDX0g<Wr2EaX!Zm%|#~En-Y)J4mKVD1^KUW|EwFRzsejiYoDPwF}(1X{3qtb
- zcWVs3Q;p0x+%fFedEv-JM&gpVY^>tntu0CTP<cF(e^SlmfhJ7(m(?Q2e<v}+(ah*U
- z&72sR(MF;GBINMXzBmj94f?n_r2i0-Up%V0f1z!N^PGt6$DboL*HNM8DkJm<5QD&5
- zw3pR2SImtqee*GMLY}x&`qSq{L@~+#gFJjf-lb9PJu^mIPbJ}M(x)j}PN*>=DKVK4
- z>BQy^M%@tqL#r;2e<y3{L+TLC4spE-2kMYG)cpI0B(!3~+@dN4{6;FgW86RpVf0^u
- z@<n2e6hH6~1IrsD0!1*MW<F_)^CINCF+~S)mX!K9y|unxJz}z+UWFgoHPLwu^R>Ce
- zBY|%9?qZJmjdVIrsZyVyXVoukfZs4D3sjwMHPU(Y<#-;M>sP*dFbDtT3Bu6R!pIoT
- z5~k$2x~X-~6^GI11~T+R=vyCx7)8J_{cAqo*VyBzWPS&d@&%*u1(20egJUG7au|xH
- z0Z=E-L7Ig#b0YDGF(MrFqdqZ%WrZs-k6K14Gv*09bmp8hZvlD{^ct@oUJ$@a5WP`q
- zP(-!gKWdl5YK3wNim1opFwT8Y39VRstYThug$Y5lxYzGW1!)VkylRlNmGefDV#U8c
- zs(0~@fuWHhn!oW|=Bl3_I`~?h+^Bx=$isisOFyBlbc6GmAD(*Ts%Zu_BuyS@{QaRX
- zKc|x(yyl^wm|XvS<leti^|tGt>1Z-cyXwfPWK=n#-f?jcEc91jD9PJ?sf`69nSeeL
- z&jh9XQ5isRQ7*YRo}KfB44pOS(hR@>?nN!~)-wF>;4gm}6#4o!$b(w`owX1l?bM|=
- z#G@{c-k*u4{Q-1`;RO*5i|B;`5LK^rIMi#+bdO$7_cXN8rfT(Ky<WYzx{0>Yb7VP`
- zX8Tf%rHYrar&E-sq*z1ovg(KqzvifmRI_~zvDHOc!+O7mJ}vY7SwXXwP&GkZk8^-2
- zUtK5Z!>^zq>2W+Fo(Vu+P=XHuX3iJawC~4giT&-x)$MeOIFw}6ub|mclGMNj_0O<5
- zQocV@z5>JHiV%FgIJ7qT*AGD?ick}@HO3m5qr<?(um~{t|0??$z_zOE;CJ4W^z<)F
- zvL)L%wrs@~3CM|ml|Kg=5}<^imXd@eKrPG9wy>n9>L<o6DavREw1uTBYs<d2cpYE9
- z^3gHYmC_ZqYGjOdTYuR)#y;AV_S^dHOSiV!I@qF@opbMd(vxF1TVlO;?|t|G=iGD8
- zIrkir#AKY1I)XEp+&~B(`>)2~nu5SC$$;Jl!tO>Lzrxll(K4?WZW9)<j%!Jnh%D+P
- zOus?qj9o+$CYoL=Q8R2l>Lv6AHe^UJV*}xfqoaY|HmBY0Z0ik-jy}4^`{>?eXj_*D
- z|8;E(CHJ;^7YW1Ukd1*fQa>zK^`zR_)~uji_b2tdw6m>wL%Z&;ax8a7U$!K_KDkAw
- zs~Iqd>;<k1Xs!SbhKMFU$PH42xjl*)EL;RoUgnTSyq*D;FkLr!^mxua=y8Aa{%R{U
- zLGXeHU*SoToc`!t5BjW8-<M_^GV>%8=wXnM@J2!%XjaqNYMhyFOpro`FyjT2PJT}P
- zU{|uo`iID7IAX~dL#ozk)2)F(Tj%+DTWAV?+n0Z3(Cd({B}pZIBZM~J<Kl72X>-rK
- z-lKgp=JP_0Qq-7jRpGjw@3`gKYe^LuV+wOFKNF(gzi)WU!w>J=vE9VCj`14{V9+Ed
- zM|C5qI&RRE`kx?imM}L}M*RB3Ab&CIWm1*nV!iwJ4Db^<$H%yPV9&l@c6EV0sFj9W
- z^>YNy?~m?^8X`OTEnS1BU8PTSe}O+5PLteOlG!&C2HEb+YUS_emG9@Z*EPW~JzA__
- zO~0$FaT^ojuFJl45&=4!8&trWO2Dy)pOFxl>u2k?q-UjZoQYexL_5e03-1V56J$am
- z6y{c3aAo3}Oh`e}+$u{kAoG1gq<x<l(ZeDw-ChudCAeW~DjoEX?ATf8KdPOzTSHxT
- zcxXV~xnsm1Oi%4O02AM~cZIC>*JIiPq0#M|tfA1r4a08niBQP0X=JP;;vT*M_CB`v
- zh|95e_wJ?c&gl5B!iQX4ZB|$Po8!^W?xo$k_c~lh_QE09;<C1NxwO+ev_n2?XzTc}
- zFXX-YhA!Xm#MY3tt@FUNw<-Hx!`Y(4ZL;=@2xP3I75~{JhW$kTK->%Q8rq4Q1Yq2+
- zYPBjIAz^h!6K1Lgn=jz~>N82$emOfsHfh&BCec2AX<0V2#^7Ls6lxZvU{Kp&Uh5JS
- zUo=rx9x-SbYcbtq6UUt-ocBH*5HuN+x_)V9SMLgDRnNE@!_iWXJs>_x6c_!Au7E^J
- z>RNb+NW}!9h>E3Kk>k`XF=;ZojCd#)mcsKk9S8V&As4G)QzlKop4&#c99vaC7)X9Y
- zh<i=HijgKwitH*ko6S-ER%JL<vjPXRJRdhjW0t}*aI5c0pON+n0j`m0Fw7O)+BU~@
- zJqQ7_^nzJYx72f-uB#mXfcC<2(YAaq>^t$^pmvxmTVl_UX)r%>oRkY3&jsIm0`}dz
- zY%4BnFMQXCh)=lJxD?b{r(Kt>(}d}cbE_7iu}jzS*hN}?E?v{s_%ph$I<ckRm#X!p
- zYj&x6n0T!^4%e^SkHy_piuKFUF`aYT2W$9A8{t#5!%4!+5$&6iAFmEOdV??$=yeRQ
- zHV97ew3(M|GGZpOBXlx(XIn7XcBdJ@;1X~0iLW-9FcTW`4QEXCXSFBG;0;qTev?oU
- zYlPKw(@SDJa6D2b&*LtyvlW|IME#6$k_ZrmOcZJt1a?I6!Wlz3Ax%$1mr)aLkiESY
- zZMsDNlw%GcicOP*`AG5{BDF9ztY7F7uh#a$*C<Ro9T$FCeuIgy1958qSZjV~hqcp~
- z^jy-=D0w!nokq0z9DGgSwrAdyen;BRY=usahWX{*7%7Dhllcx^DgV#_2KNF5dfBBh
- z@yMRXcJJ7soxbHSZ#i%PK0d51?%07rFf}-M`Fu=!jSjjn6xUu0jE-&g;Q8z%`>vfn
- zZ~&9QCx*4m?#K4**a1@*eP{?1kVP6w5cGOBkB<aQGKfU4xkl&xGfc1*?<Jtuu?~LR
- z(N9zbD}D5j4@=lhUa7-R`U@pp@hb?1EQD<Hgk6!o{i3kHFX9S&Y_cw;@NtcJ!!*=Y
- zQFaA7>c=_)E?H!tnKP=YhCIU^ddgZ&&rN$m&z)k|5VRx4wx1<uS!vG$@r^JS(|%~h
- zb5uwe;PaN&T?d$^E>4>XP7om?2x&*qaJqJ%(jq|W{q#Y<nfPY72ZK--#N??{j8eI3
- zP>)F^C`D+c<??blA8n(u>99)2IAY{)Q1;W*FRQEc+^~Go<(SlJ$re07WaX2+iC9ON
- z6~Ct4cwCGnq@hzaUT%HH+~OOb9sc2`<5U)L^aZM1v%vb7pN;?Uanl*mppWbP!u4oR
- zgSuQhHZ`iN8zT}iwY<89IVI&0X5)c8$?=?elGJ_CZyh%NDuX8o*a*_sKTjQTQ6CI!
- z+y{76#%{olkYgM5#5G5Uj~tC3ITAm5WO$?g_}-D>qeirg$Dn(|@@f1xDEAw@!RwZX
- zU9<Ll-k=Pu*Z1aWww71I=2wlazI7NQ=Bd><^H9m8OOKV+k9cKxty~+MT9}_UU)BB{
- zB2_SLP@j7?{szvh8g2^$E}Mqn8a_2=V_vnE75yb;nTBwK5>MdJ@BzXRT({h$@fn|M
- z%f9TFl+8Il>y_zc!?$i>Gs*u}`%K_zgR&ms&}sd`bkM|YWqg^@$~<)Y4*I43;6#5c
- z>L(lo8i$dvAsI|!5K_MW{u%M!QSDUq?{`Ulmw0o1C)=B`0=VG9TxtVqj7*O({l_j3
- z8FJ$qO1v{%Qp0q&iQ2khOV@ARy3OKq{{`tu>7YP%)18bDAtb`Vm=sO~!wEzKtS~~i
- z0XklO@yv^F_J3sl#hou|i%^9Tt@<Wh2et1P;Qa+H`RK5CS7EkL|6}p7XX*<#<JMu)
- zm(iu)>d>upa!QDyU5pI9Y^Xism7~l~%@I=keDo;kfj)AC=pzqqq`0EWJ{wVaGN#Dm
- zwT;wQnDkeKg#^>Od{kHvO2U1-k1w)b*wK&MPZJk!m0!}ed73b{u*seHZ-(Po62_)6
- z8(;`mxWeq_sCr3HN5mj4n;zfzFNQIeYK<X^5&on@Aa|Mh5-dd1Z3EUW{SpMj##B-y
- z_$@e~AIn0hDJHdQ^Bcn)gAP(f2_!;Lg{uAyt3}_y4>;M_s)VFr6K<7%bBN-q#y*nC
- zH-<C5B|RiL8138|lC67z>)%NX5^_kikij7yHY9#l`;J|L&P_*e?;m*QOv0-Dxbucv
- z#_U5k+|&!h-k~GEGU2=FE;0H-_hp&OL&JyfyfS>_XlCHDjy><#A9eM-u>H`M%Wk{l
- zDoYavfnh^g2%7kfgB!Tbrm3O2p~q~6dZVY_*B8DkJtlQB+P!QGh1a$A{c_eK$qlRC
- zAGEhS?$>@cZMDcBa`#JO-4T=<=DR;6TddRIyWi1n|DfBZ<77Jg3F>-Ym`0>^=rA25
- zV<k1NAL9VD_tF(nMxnFv+h|-aI$@|_mxNYw4Ndi$S@5<yK04e*5**rB2KE@lJwx^p
- zlC-(9Q>xCdI)gjz8S@#g`^s+o+k%OryQ27KXfdM<jQRLJ@uxy3V)BV~)w@B@kJeY<
- z)^pGL+SwZCJ~|iq7*&MXylXw>jji#+CBC!Oud5<!I(4Sr+F&vgXCh9R+*)#@FUA?a
- z#&{++n$d%N+75C>y<;RUI>bhi;B^O6#uhb<<U*}}ZCfbRwo81Z0KUlPh!2V%7I#sQ
- z&U#IT5Q3gN_Ec9O(%v2kbU#%&hZ80wH0Y=iiCk6&H9Gp~rcZ=0R_zRKZ8bcx7;BFB
- zwA>=hMK{l*x(v2&<NMUBh7vmdE)U!L0@^Q#4sf<_q7VN@rU9l$%$kK(O?RCbX^)cu
- zw3~Vpdoa`Kk&)>~S~x3BePu4j2Q@)}pl-aBon(hWZqW((YiW01*ma*P;sV*{y22-!
- zH9FRRl6HlA-S@fZ;}tHS&|1#W`sFZ7cBCwTfI@;Bg=<kmxrjx&7Z=^(K76)qb@{lv
- zrD*NF`gb1J=i1uF-GX6<a)#+8V0!O}3}oKed)L4JFA5!n-3M+nt~=azV0WQImx(@H
- z7RB;m_Kb*!rVoDU$jPTg@#&LCpF22x2!0<||KQ-{=0~K`VLfK41t;_&cD+Rq)~=vI
- zcKZcS3<IR2Su(+<83SR*1$BPEv)lQk<oda@*ZE0D1gYASs327a{P>3k9f-0tUH
- z0D}z}(=r~hHRBPb4%kiC4M!)Z=)xlL!X}tqy_Ny_#G|xk9t}l84M*!(ESWzshal;?
- zIg^YIGu~RV4r<#&!STr$@dJhuL8gmS?y!Z~ZE{(%kxtH*Y5;T(42%s742m#e_uCwB
- zyS1k;`p!Neuhl6XmV2V3`&w)E^S<#u{L?;RYj;dJoT9}E9X*#@VCR)SCkwE;w6k3?
- z8Fs9hyPd5ymbi8vZsxJ2Rs*3nC{vTQ54Wx9mi-tU358npwRIBT*_?BDz!nZN1`T#W
- z<H}R(g6JL)!(y-}h|hs;uD+$Er00ja5nlTJ2s^unGy!@@TT4$%x$R8*zj^eHqL>8Q
- z7*`27#4e~3Uea0tUS^1zdG(CjF@4ol<;b*u`fV}SWGg_}ua^yO0;F*3^mI1VzHQf*
- zf!>Zi2eviVW);^a$?0w)S>%Rv6r$Pvt>$2(qHxAUz!ZB)lC5F<)hi}V1kw7m*~%*|
- zJx62DTgz`J>1%cw(jS%ZOc5rIJ7Nm`B(3U?`h)Doa&$thk~m$hmL#d3B%bQISF3WV
- z8C_KMf>2}J(3&1m6L5<ldpk{9WRO|%r2UEQ3u6;>;T?A^8xiKj!bzQpK6!F%C^lQ2
- zjSbabmjrm?3BHj%F;rf;{`!@&HkmY?+nenY`u$7}i2Y!-rbP&6q0>K!;SrIgvHvsP
- z6{YcVi9X{$$YD;3CjJl;2&D$rm=G@6P!bGXXmq24B!2`e^;tX75jW8xgy@aTxIwQ-
- z&~}3OD%BbY*Gz4SYPC&0x9kgad}Q&K-+JHv`WaZbz4DNlOeV$1+aDh7oE{2z2d@rY
- z^;~-KH^ctT^N+k+SrL=c<L@)}e=Y}QrxPLQJs1ue^B6(5Sb5+x;`y5RnFlK05|7<}
- z`!SI{LEZZ5!w<i@_4nYU5rj`Y&sW*HU{D#caU6FWksNF>IhGiT;qXr;Vu|o%I1!c_
- zy9R=z^Lx8;xvss5Q;9=|@X_KcnJ;UeNFJ;mOulR8U7-*@%pUD?CP4}FUM1r>-p}MQ
- zh_*u`0x^(ie$-a$Ng^2DGyE(}#kHSa1p*0miD#19Kk%TR!4GC;O!I<t1zgsUJse|X
- zIhpC6O)wlu3ipdT;{Pog?Pnq+PD+nCCS%8u`c*Nqx(dcU2eEHeFz&2S8C>sRKeH*q
- zd5!W#4hdV5==Y0fI{W&z_w~Km^7>MZ?kGJ7<lc@@e9e2gUR_-ktNNLO)5YwJ&Jo13
- zuzw69;>_x5eRXC=VvA72D6MOQaR8`0A)LU0#SW#dm3BKKO>C}yVf%;iCw3aQIB3CK
- zH~;5bKZ!r6@LM5Go=KI-;>pbRpFlTBf@2d=EB*$fdrfBlh$&MSYE0`O3D}vn-iZ;M
- z{7GC=t9%aV{7UN6A4rc&eY&(Q$pcYlx`h*_1BO6{Zj+7<EYjm|xDHNz>J^{wl}}9_
- zbk(0|@xm%T-tfKhI)>1PR-Xwj$+VIOxyVs}BGkc@7p!@VCxZQAEy<|-e<Ts!0c#%8
- z6!Exg$yZ$-L^-yYe;yZnR^L~X3=awtKbGaoRPd7=Ch^e48I}_%#bW3?f}v`SOwDZ3
- z??W?!reKDtcG8;;eq!hlafF1mk~1?^1YC62K|3=ugUC7)ZExc9#Ji{4fx=)vx8@fk
- z-p540Zdis%G^3w*YlgC=q;Vab@gZt@ZB|zsE)Z%p^E!6v(4J2@89_)QsITckTFvnX
- z;}05tE`4PqpoEAiT)dnuZ){JKe!<&}ClNm*Jo_1uLZJV27}1hU_O#YKGgTRV4pRg{
- z8gxL=A5Kcis&+MK^*^|&Mud)f@*F&@J+7r-o2u_C7cO8r(9ei;*M2laS31~$^-lm-
- zBtW{1m_OL^Jvsp&aE<I8alwA=dFIgm172c|5AYA#Zau<F+HM|R-4u;(O0ow;)_1SF
- zcLmLRS6F7GZXzMEce1&4oms64E%P0B%Rxqg?Vlh41l-%m0-VIe>yp*RUfF=j9BXJo
- zWp-I}f+(#`xIDwI?{bNE9WY;DM0QbN11PnW?<47mepUm&!Ff%RSRboAFqA@Ma=8T4
- z#AJ1i&fV^HFuBIj<|-nelK};yHcgPeosCuem%jdW*IOMOZ@Ifkd0ux5B6t2J6P5B`
- z9(?fHQ@&B(DLZ&VUbxX4@_<f<StIYxsjC~*t;KpHDW++7HmqW_adTti+KD}8jh6H_
- z=JNNYPh;H(<DQ^C*RPh2wO;?)4f;hZA0RF$wGvq;j0>mtd;H=~G3c$^yg_vMJ*SO(
- zR>}D>@$+Nzfu6txvK}VRgbo!&v3Mxd=Bd}b9UX|IdfGy}Zw9z|_aVZrxCjG#Hr6)5
- zrA=&R#>njEgpS(q8uRXqb%+t%5UZ<g^AAYk@*RN_x8HsuaL2MJJuu%EVfZLH@4DZ8
- z_-;|W`>^}|yC|Zl@1JKyeh(HQCW%@RRgOzf;&CQ<jwGmIiyRENn6ml$u5(Nb`)_26
- z-RG2o-he?zy-*YXQEC?gln=9YZx~=F#l4Ise2!!&FeT<Co;&{&Mn-$-=g#&nCl-L&
- zHRyMzBs;E!7@iHMg`0(=nBy8b^1*)MMz{BhW6Z3ze|%V!xuR6ACbi$}3457ZDLTlG
- z56N6%5cf#&?ty4m{Zv<Upj$jrKh=5VKrlFPWv6&Vcb)Y3{oQ`Q_K-V3@6R%Cz|CLc
- zUkr3>y<O307rfCuFa-fjsr6#Y0J-1|a(yA-)?UHr9*BGVO}9I+2mGF1x8LvX_4q%A
- zP73dJH|Scwkd8~F&wYv{3oL!m5hC$pqK{4z#gy^zWhQx@m}Ck{Wc*LUEmrO&!F7t9
- zfGZz@p`!uGYSUKjZPtL>5&VH&vVye#sRMV#_awiaYTxP!SR|XL?IG>8qqkip{su-1
- zd!3=pa+__~YLUg$x9z>Z4`iS9M^;Jh!RQ~gw%H{y;oLs`oz$K2J#J^P+wQZv9k=a$
- zKNj{~izG+GBW+<!dmZN0;2TdfsqLt+owcfAhsq>|G1iYblf-o6Ga3jVKV1W^*#k42
- z7|02NoXtSTuQPZAtPvBy+hP{DY3z?K5uYdN_f<MB65%n)uNd$g47cfg>=X6~H`1=M
- zMxxFphC>!6LP6x~ra)teX#(Op&Ju%@v5DBwW<%$hLF|4;T;&*ceTKbXE+^jhb`Y1n
- zE}Llaxd#0QpW87JyY=diO^IN&*k1D6oo!aH4C8LA@9mlf2lvX7^>VA%*4OUvv|GJW
- zvYFR*%KLY3(X@L?i5u)rj1>0UUE{G^4?eeRi+uzno7Z{*i|CXk%U7LVxU87ao}#=c
- z&vwrh?R_@3DFuY@aR`L}It*xpPZ@on<4v;Aqq}MMjp}X-y0_|XE5iQ~-EG70J-XW|
- zTp?Vey9q1GV-8@UQ~6fmgzm<{6`s=FBD()jcT4DgS$A8|{nxtNDujd|>TVl`zoomK
- z!Xc1#w@Vm;JDt}Ql~h@oi_ES>GHEqGujb26C9C9=eEC*op^{A%b)Wt^q!ddTH6Ixn
- z-mZsSr{tBQkw@v+!f3fXADJ(zxyZFDCCjRjLQ%b2NtcHg%jLqZZQJJc@Zq$Y!zx`P
- z6a_^{31xiF;l4C0tl%>vqy-f_W1c<B7*7$h_{-ss{I}wJL8xF@ilsMyYxNz%cTp%|
- zj+9db2Voc&UTd7|*qh?5tw%{XhUJW6Xc_Ag!Cw*c$)W37y=IhC7Tpn{z`os$A!!UB
- z78Y5mg0KtG#BGh181aW$3v&&;o6UuF|3MdsAb|y}U;`QK-~cDMzzrU<RSj+6hX4ej
- z9XcR{n^q^r?}p2u2S~|!A4H%Z1|SNXVGxG!xO_Qmfvs=_TnTYpf!km^jKC<2!8lC7
- zBqU%5?1Wvo<?n$hW(y+;({MFh1N&e<TnpF1_3$>h0S>^8a1-1Nx4_%s9dIkW6K;cp
- za0m{=?eHsb1dhTTa3|aa@51A23T7b<bD+RHEWjdU;BHugEaV^$Diq+|P=pecp#sNX
- z8Sa4<cn`c6?uFy<KDZAL+9%*w;eL2Od;oq89>Bx!L-0ZP5PTROhDYGn;Us(negi%V
- zkHT-l$Kd1e33v>C3;qXu5<Uf=hR0zQej7dmzXMOe|AbTUzu>d*B>Zo93O)zF3s1xE
- z!87pt@Ok(H_yRl&Uxer2OYn#AWq2N5fIosihOgiu;7{O1I1PUaFTtO|%kWkB8vHr@
- z1^gv^9linIgm1yO;XCjO{1yB)d>8%(UWLDf*WmBq|G?|;J@`JHfgivd@I&|!{9pKc
- z_y_ng{6F|d`2TPgeggjl{|rBcpTW=J9Q+IXEBpff4c>&e;NRgt;5^hpgA1Y{f{18~
- zXc4WVO_W8u=n$QvOLU7K(JT7IHqkEz#Gu$Nc8DP{EOv@rVz=PSq?LFYmv=5+R4e(p
- zwx+-I?h3AJdsfY6GX=HaDX8UCS&f&<#Y~}O&t<Yp@v@R~P=dK)Cch+;3qx#ab$(t^
- zY-%x;Ur;OsB~`Sh3Wcm<OD`(L;)-(_;XpB`WYxTNp_nQt?xHeZ%q$RmP>X>DbvCP%
- z_0r?>m2B4266Df-^u@;A&a|4H<CSpo!sF>m!NJO5u0^#RXFf-xdGef6Dk;UXwNzP1
- z6&>XiX0(ji+h!|8tcr6fpP9$v)#8$q9`RB^Rr7LsF_T_W@|Jm3owLnlN{jIk3%ytq
- z6!d15`Lf6GV51hxKFl?r$uGp!N;#X!D{@IGm(lMjEUJ0M2zBSwV#8yf&*U*vWzKRe
- zqb$o=H8qC`WIbC8_Un?Rq!!DVXf~5o;w&f3w|ESjXDK1nw3nzyFgx2E0^qV@&1LeH
- zlBJNXl&m-k=_PAAtCkecTs&1Qs>{5lZo@~7a9-q`Q<w8DQ*=9bR|?XSvSO)V@wQ4n
- ztEQJM^pMJG!GS+LF1aW#EAv`rQ|Tq!tXeLsIX8dtcrM+;ip^n<$MY;cIoq(xmARF8
- zDnA!5Rr2{2Pa#z-XIJ7p+{Ry4_Q{4%>}LnQikXrUACYyJb5ThhTZtD_nY<%QS<}!s
- znTrKFmou1sL0wjgR-7^EMVUS0Bi3>zrxaZ&-0N~wVtUD)OJSSTbgGP7osai(!|zVb
- z%{4sjh9jQAy|b8O?zTptKI+y&HkDTFIGxh!F{S94&lF4Lcq%g&U&>$y7S+PyN_@n|
- z9oC#Om&(fQ86R<!uzy)arCcU$pG}pN*%U61lA2B{MLW*cGWnhOVM$?5d#Ri%#&NB9
- z(rRG^$2MJ|ZQ4bvDqg}BqU1fL<qS1_wt_>Fmr|LWC5>g<)j2hXO)XleN8IU5F^yA@
- zO)76u$zj!v1_kwRH0v6(e-?qldloB}S)8Q-HVNZ-wVavH@Xl~z{i%UCp@Zd0F;7*D
- zH^b}&wUnWF<S3_8#X0PPQYp2dw51nQ<v10g!wDY?m{Se7;cfUCpmQ;=IVwxbzB!qn
- zIc+$LaEjZFx>(eLl1Ctu&m*dW^{`;7B`IB~Sj&r*+^lV0$)&Q2g&x+0N@h;6EGpT8
- zC9f=(ETzRv!CEd>(o6DeCcT1P<0upv&`d4xVXx%Nwq+b0rEE#7nY=ZJO<r+emo3Gq
- zt<tP|k6b_)fFtECEvkhA!Ijz6LVUE<JK}42F<m)6y2d{eX!X;m%cY#UM2jJhFrGWD
- ziz+T_CxeagY${i<mC}o<n)P8vP`zg>nJhsjcUjF4NG>2SFJk(#GOMaf@zJJp#5#{L
- zN(890yyF~2C9PzRVQOC?lg93COq-51etk?z6`YMJTFZ9BX~9f$Ze=c0HsX4l1yHYg
- z=2GPp0*q94rIaZ-3K^QH*kC6MpH*r8;ATK=aOF}9nKbTh2;i}rY7qld1URV+94tOt
- zq_f3JX;DTfGKVw6jzf;9Z#HEwr86Z2$tCwO9CH<W6@f*{#^JM^Dwm6?bXmsX%-|Mh
- ze~*eF4r?qkM<$PxELBV|+IT8=IklvumQyQn8tzJg!2hV7pf9-`tdrBYCF4xUAc|ac
- z8;duNFvo6q+8Uv3X)1G`W&o~uU&F@%SJTheuuT1+luO=u+(>8_)icq(Jdxq!Nu0V5
- zYhiq##iGpFxX(fZ)qoeY@-5h{iUVgL&K(3`Ztmh+fQx(BuHfWuwttjx{BV8YZfRu@
- zAz<$CIBt8HIhn(@yan4+@#yeD|1=k8dAVETR}f5=N>;>9aC8i~EbH^oWddUs0^l~i
- zi}a1%{_cuWVz7($K%S+o6kjM(&b;H$OEU;x)D<3thJ^y|-xZt=D|U=iLHM1+$Yoqy
- zB}$Y<XzRe(I0y4-1zmUuqS2uovZ)1EDV|FeaeN3Zz@iWvDd8sqHTa^nZ7Z?PcT>bX
- zHlGq>Nqkf>KRU4C3Zg^^%`rbbedSbYg^Q&uvM#_Bl{{71i4n4?GHqU19xe{tpQuue
- zm`*+n7-_|&J5$&lR$etei5-NqFf>ADu1X<@3oebI5*v=0W)`rySt~m+y7m2(^`_S-
- LJI=o0S?50idm+<b
Add Comment
Please, Sign In to add comment